From 30ba9a00c1aa370dfb3f96a10112c4de0fe2ca25 Mon Sep 17 00:00:00 2001 From: revdavethompson Date: Sat, 8 Apr 2023 22:15:44 -0700 Subject: [PATCH 1/6] fix scss compile bug, update package description --- cli.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cli.js b/cli.js index 91b6e92..01f42ce 100755 --- a/cli.js +++ b/cli.js @@ -123,7 +123,7 @@ function runNodemon(outputType) { console.log(`Using default Nodemon settings with outputType: ${outputType}.`); nodemonConfig = { script: __filename, - ext: outputType === 'pdf' ? 'md,mdx,js,ejs,json,html,css,yaml' : 'md,mdx,js,ejs,json,html,css,yaml', + ext: outputType === 'pdf' ? 'md,mdx,js,ejs,json,html,css,scss,yaml' : 'md,mdx,js,ejs,json,html,css,scss,yaml', exec: `bookshop build --type ${outputType}`, watch: 'manuscript', }; diff --git a/package.json b/package.json index 7f727c8..bfcef29 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "bookshop", + "name": "@worlduniting/bookshop", "version": "0.2.0", "description": "An advanced book typesetting and publishing framework for publishing houses. Bookshop manages a manuscript-to-market toolchain allowing publishing firms and their authors to track one markdown-based manuscript source which can be built into any format, and can be professionally typeset for print with HTML, CSS and Javascript.", "main": "index.js", From aaf137469cf567e7da208d550cbf2277bd1e0040 Mon Sep 17 00:00:00 2001 From: revdavethompson Date: Sun, 16 Apr 2023 21:51:14 -0700 Subject: [PATCH 2/6] new Logo --- .vscode/settings.json | 3 +- README.md | 241 +++++++++++++++- assets/.DS_Store | Bin 0 -> 6148 bytes assets/bookpub-logo.gif | Bin 0 -> 6206 bytes assets/bookpub-logo.pdf | Bin 0 -> 86366 bytes assets/bookpub-logo_white.gif | Bin 0 -> 3285 bytes assets/bookpub-logo_white.pdf | Bin 0 -> 69981 bytes assets/bookpub-logo_white.png | Bin 0 -> 6892 bytes cli.js | 2 +- create-book-project.js | 66 +++++ package-lock.json | 510 +++++++++++++++++++++++++++++++++- package.json | 16 +- 12 files changed, 805 insertions(+), 33 deletions(-) create mode 100644 assets/.DS_Store create mode 100644 assets/bookpub-logo.gif create mode 100644 assets/bookpub-logo.pdf create mode 100644 assets/bookpub-logo_white.gif create mode 100644 assets/bookpub-logo_white.pdf create mode 100644 assets/bookpub-logo_white.png create mode 100755 create-book-project.js diff --git a/.vscode/settings.json b/.vscode/settings.json index c733fbc..abea9c5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -25,5 +25,6 @@ "workbench.colorTheme": "Default Dark+", "editor.fontFamily": "Inter, Monaco, 'Courier New', monospace", "editor.fontSize": 14, - "editor.fontWeight": "500" + "editor.fontWeight": "500", + "editor.wordWrap": "bounded" } \ No newline at end of file diff --git a/README.md b/README.md index 2451b52..a342646 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,237 @@ -# Bookshop +# BookPub - a book publishing framework for a web-driven world -Bookhsop is a markdown-based book publishing framework for small firms, allowing a manuscript to be written entirely in markdown and converted into standard publishing formats (PDF (Ebook), PDF (Print), Epub, Mobi, HTML). + + + + BookPub logo header + -## Features: +An advanced book typesetting and publishing framework for publishing houses. -* Composing the source of a manuscript in markdown. - * With the ability to extend the markdown language with custom formatting (GFM, Custom Comments, etc.)Able to be extended with additional +**BookPub** manages a manuscript-to-market toolchain, allowing publishing firms and their authors to track one markdown-based manuscript source, which can be built into any format (PDF, EPUB, MOBI, HTML), and can be professionally designed and typeset (for print houses) using HTML, CSS and Javascript Web Standards. -## Developer Notes +## Features -* bookshop is CommonJS by default, but runs its main libraries as ES Modules by adding .mjs as needed. - * As a general rule, we've attempted to use ES Modules whenever possible. - * This is done to ensure compatibility with legacy modules, like browser-sync, which is used when writing your manuscript with live previews in the browser. +1. **[Markdown](https://www.markdownguide.org/) Based Manuscript** + * **It's All Plain Text.** + + Easy-to-read, easy-to-write using the industry standard, Markdown, for authoring content. + * **Lot's of Ready Made Apps/Tools.** + + Because markdown is ubiquitous for authoring content, there are already loads of tools and apps out there. But you can use any plain text editor (or Code Editor) + * **Easy to Manage Edits & Versions.** + + Because it's plain text, we can use the most robust versioning software out there. We recommend github.com, but you can use any versioning platform. +2. **Javascript Enabled With [EJS](https://ejs.co/)** + * **BookPub** uses EJS (Embedded Javascript) Templating which means that the entire world of javascript is at your disposal: + + * Use conditionals to only render certain sections of your manuscript for certain formats (like pdf, epub, mobi, etc) + + * Use any NPM package or javascript library, to add a world of possibilities to your book + + * Use custom layouts and includes to reuse parts of your manuscript + * **Automatic Conversion of quotes and en/em-dashes** + * Using Smartypants, all quotes and en/em-dashes will be automatically converted to curly (left/right) quotes and the relevant UTF-8 Codes/Typeset for en/em-dashes + * **Multiple Formats** + * Formats currently supported: PDF-ebook, PDF-print, HTML + * Coming very soon (epub, mobi, and more) + +## Install + +### Install **BookPub** + + * From the command line: + + `npm install BookPub` + +### Install PrinceXML (to build PDFs) + + * [Installation and Setup Instructions Here](https://www.princexml.com/doc/installing/) + +## Usage + +**BookPub** is essentially an HTML/CSS/Javascript based book framework. All the different book formats are built off of this foundation. That said, we've attempted to help streamline the process by integrating common industry tools best-practices. + +### 1. Creating Your Book Project + +To create a new **BookPub** book project, simply type the following command on your command line: + +`npx create-book-project` + +This will walk you through the creation of a new book project, and will generate our default book example, with the following structure: + +```plain +bookpub-project + |- book.config.yml # Meta and Config Data (ISBN, Title, etc.) + |- README.md # Documentation for Contributors + |- assets/ # Media assets (illustrator, photoshop, etc.) + |- build/ # Built book formats (pdf, html, epub) + |- manuscript/ # Manuscript source + |-- index.md.ejs # Entryfile for your manuscript + |-- frontmatter/ # Frontmatter content (titlepage, preface, etc.) + |-- mainmatter/ # Main content (chapters, etc.) + |-- backmatter/ # Backmatter content (author's note, bibliography) + |-- theme/ # Theme & Design elements + |--- css/ # CSS for each format + |--- js/ # Javascript files + |--- media/ # Media & Artwork + |--- fonts/ # Custom fonts + |- release-builds/ # Publicly released builds +``` + +### 2. Managing Your Book's Meta Data (book.config.yml) + +The `book.config.yml` is a [YAML File](https://www.cloudbees.com/blog/yaml-tutorial-everything-you-need-get-started) used to store your book's meta-data and configuration settings. You can use this file to store details about the book, like the title, isbn, author, lccn, etc. + +All the data in `book.config.yml` is made available for you to use in the manuscript source. + +**For Example:** + +Let's say that we have the following `book.config.yml` file: + +```yml +# book.yml + +title: My Book Title +isbn-13: 012345678910 + +# (the rest of your meta data) + +settings: + entryfile: index.md.ejs +``` + +In your `index.md.ejs` you can access the book title using EJS syntax: + +```ejs +The title of my book is "<%= meta.title %>". +``` + +Your build file will then be renderred as: + +``` +The title of my book is "My Book Title". +``` + +### 3. Working With Your Manuscript + +We have tried to give users as much flexibility as possible. That said, there are a few things to keep in mind: + +1. All source code for your manuscript must be stored in the `manuscript/` folder. + +2. All files must end with .ejs + +* For a tutorial on using EJS, visit [the EJS Site](https://ejs.co/) + * Our convention for naming files has been `[name].[filetype].ejs`. + * If we have an html file that we want to add, it will be named `myname.html.ejs` + * The only part of the name that is necessary is the `.ejs` extension. For the sake of clarity, we recommend describing the file-type in the middle. +3. The entryfile (the beginning of your manuscript) must be in your `manuscript/` folder. + * We recommend keeping the first file as `index.md.ejs` + * You can choose another name or location. But it must be specified in your `book.config.yml` + + For example, if you want your entryfile to be `myentryfile.md.ejs`, record it in your book.config.yml as: + + ```yml + # book.config.yml + + # Let's set our entryfile + settings: + entryfile: myentryfile.md.ejs + + ``` + +### 4. Building Your Book + +The basic command for building a specific format (type) of your book is the following: + +`bookpub build -t [format-type]` + +1. The HTML format of your book + + * All that is needed to build the HTML format of your book is to type this command in your project's home directory: + + `bookpub build -t html` + + This will build your manuscript into an HTML version of your book, located in the `build/html/` folder. + +2. The Print-PDF version of your book + + * To build a pdf typeset version of your book for print, type this command in your project's root directory: + + `bookpub build -t pdf` + + This will build your manuscript into a print-ready PDF version of your book in the `build/pdf/` folder. + +### 5. "Dev" Mode - A Development Workflow + +We built the **BookPub** framework to make writing, designing, typesetting and formatting your book as streamlined and instantaneous as possible. + +With "dev" mode, you can work in REAL TIME. Changes in your manuscript are rebuilt and reloaded in your browser in real time. + +"Dev" mode will launch a browser window that will display the newly built version of your book, which will be updated as changes are made to your manuscript. + +#### HTML "DEV" Mode + +To work on the HTML version of your book in "dev" mode, type: + + `bookpub dev -t html` + +Now, as you edit your manuscript, the final HTML build will automatically be reloaded into your browser with the new updates. + +> Developer Note: +> +> 1. We are using Nodemon to watch for changes in your manuscript directory and build a new copy upon any change. +> 2. We are using Webpack to serve any new builds to your browser and refresh when a new build is created. + +#### PDF "DEV" MODE + +To work on the PDF version of your book in "dev" mode, type: + +`bookpub dev -t pdf` + +Now, as you edit your manuscript, the final PDF Print build will automatically reload in your browser (or PDF viewer). + +> Developer Note: +> +> 1. You can also open your preferred PDF viewer. Generally speaking, when new builds are created due to manuscript source changes, your PDF viewer should automatically update with the new PDF. We have tried this only with Mac's Preview app, which seems to load each new PDF build. + +### 6. Themes: Book Design & Typesetting + +**BookPub** uses industry standard web technologies for the design and layout of your book: HTML, CSS(3), and Javascript. + +We chose to use web standards for the design element because they are free, they are universal, they are flexible, and there is an unending supply of resources for learning and working with these standards. + +> Developer Note: +> +> There is clearly a significant audience who prefer to write their books using tools like Pandoc and LaTex for print typesetting. In our experience, even though these tools are powerful, they also requiring a significant learning curve, and their implementation is difficult to say the least. + +#### Your Theme Folder + +We have intentionally chosen to place all custom styling/fonts/media/etc. in the `theme/` folder of your manuscript/ directory. + +> Developer Note: +> +> You can actually use whatever structure/location you want. We decided to use the `theme/` convention in order to allow a consistent way to drop new formatting/themes into your book by simply copying a new theme into your manuscript folder. + +#### Styling with CSS or SASS + +**BookPub** allows you to use Plain CSS (.css), or Sass CSS (*.scss) to style your html book. + + * If you change your .css files to .scss, **BookPub** will use Sass to build your CSS prior to its use in the build process [(More information about SASS)](https://sass-lang.com/) + + * We recommend using a new stylesheet for each format + * This allows you to create a conditional statement in your index.md.ejs file, that loads a stylesheet based upon the output type (format). So if you are building html, the styles.html.scss file will be used. + +### 7. Working With the Print-Ready PDF + +We have chosen to use PrinceXML to create the PDF builds. In the future, we may also include the ability to use other pdf generators, but for now it's PrinceXML. + +Please consult the [princexml.com](princexml.com) website for their documentation on building PDFs from HTML/CSS/Javascript + +> Developer Note: +> +> PrinceXML is a pay-for-license and proprietary software, but they generously allow use of their software. The only tradeoff for free use is the presence of a small logo/watermark on the very first page of any PDF that is generated. +> +> You can also use Docusaurus (an online PDF generator that uses PrinceXML) as a pay-per-service version that uses PrinceXML. +> +> Currently, PrinceXML seems to have the best PDF rendering engine, especially for advanced typesetting, using HTML/CSS3/Javascript. \ No newline at end of file diff --git a/assets/.DS_Store b/assets/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 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 TG`=mrpkd5wLs~14fcF0Y1nGyr literal 0 HcmV?d00001 diff --git a/assets/bookpub-logo.pdf b/assets/bookpub-logo.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f468d2884ec2abb3b9d79c6d7d6976927b41299c GIT binary patch literal 86366 zcmeFadD!Dtbuix2_D7*W7oaSKG6X0AF{90rr6HNrn{3OnEL)rH5J0jdTed98vMgIF zOBZO%zK0JAgz~YILV=bx&_aRI5>iUp*FeKkTEf00W$kw)zwgXDlSv3IfBl}m&ol4n zmF_*d_uR9ebFUsC)w$#N3Hpu?`0VH2_rW{f9zTX13(WZ)FS-cr+Oc67v2l!mdjqsr zlcFHBqu90A@U#y9dK`Btoj<$`?TMF`^Q&V_@tZAveQ)q9NEV5j<>()l3i#_7Iu8hw5P6r@daOd%iAtE=2{nD zpi^C}8`kWZ+sYza&O~LBEhemW!6m0|f6?ybZW%5CN5^(c&tIS1U3`H7L$Oc7b$%PY z;8@WlUR-=ZC4X>i*p-geg2+C`p1_VzFbqFdW>4THdt#P|ha4j?fw*I3^wt_7hI6P==9IQ#FpXd7y0WG#UxKmf+e~$ zLKHuNp*Pd1*x#JXdm(!c;u1G(ocZ`PT@4Sxd?(&x3ye?<~n%VvuPypCD&&1a; z=L1d-aD3jW@8NKPADW zBMzd|0L~iskp{Q4blvXxyC1Ija(Uj@uj7GzhA7W^@nO$B!Upy_*hCW>nx7YM>$s8J zD$E}OY9xS{^MVSGu*q2?f(L*C5)lPaQYrNpo>)P!O7T;zK>PfsQTeU=?J5tg^z+W})2~!fq*SRdxP?jZUZtrN zw<`{6R@(4z+HX`VYNI+;x$1P$toBEIZ98pNr&FO`2|BfH&?x}ctCeoOvd#bX>y?t! zs4%^HwX1N|zS7uj&E{@BY3&&2^uKMRRoza+dIcN78%E8UI^YID@w@wvEAl%9Zw@((evnYK@9f%)V90XV-^Dr+@lfW!r87T3WTr0;UJgrtSK< z?e+lsl^VMWUnWc_fN*&v@+kDXF zYqRNi#slhBGN#3%)~QBm36&ZJK)k15%qCf*L?*Kqi%1BPX#sQ(@K8s>}^XM}HLn&$;)L{i#YT70>D+ zj*G_5P6~k5pr1HL)9u{z6zqP(nc1e)qJg4ZnQ1{7FYXUBL$ft5n{4!R4{e1 z&jkHcG0@t&A9FLe%S`K8dod3i6|x;RGZAYOWVK0jk~yhK$Yd%Z1;B}GH8;*mj||*4 z9BVS*+2N*KBW7Mn0%Kw72)NP@DM_}j@R*Iv*GdE>|sqpBwRviqGW+&oNWa6WhZaJ*g{AFW1 zwfbIcEEA@(1y5k*w>$;)g<^ybgU5WbSm17HhSRAa&{%^}Ck?;S3>%Y0Cs-{Ip$(W? z3(O|TDwvQ_)G$W7&G|;Dca)Y?W2=0 zXF2tLQ1b&h*lNa#R)YRk6z7DrR@|smLV2Tvr6ejkX)LbH-HuT0pud!5V>-|yrpouW z#Rvnm<#0oCN4X5*c-e>^Oj4SR^d%bL0V&%(+30BFMrR?m=#ju7a(U9P4?{NsB9iB^ z)n~S(YEOxE5bqadQ(iPZLY}6w+mrjqtWoJHU9vHACZ!eH<}UnjxY~=?-fRScOPR z=0utd*b=djBrG+Sq2lcbg4k(uvKS#np*|H3DMM$(dDWb&PS+|o$EJ}9lTj(4y@A*r zsEpkQjqPy#IWTfWxd~d4aynxyc|(oMisr2smHh}~Q@6qzW^{UJnc~SxYeRI_J5-2J zziVdFm}EGg!l!P+3KNDG`_ul8><-(gX=$qk;I*d6hG|-I5$;XR^Dd&ikg*EXx-pbmm4!gy65^m%5`65^pQ`Y3B zMd-5<-rQ9qq7zXRa71t7OIfxVkIhX>&+6vNNC$nw+l&?~+vfvvR6%JVRV7J-{6$*< zDd9bGFTUm(RjaPruRDLPh0E5ayFP@F49ID{z;om9kyj0=6VComvghJtAI@f7A&(|2pK-sO32Ln(@z z?8I1|4f-**>VUkYI1b%bU{1?m-ca-cU~|zE*;%z0X=SIJNc37$lyr_}9*!8j2r<|e zwsDlW>rIm=tr6ZV4tUQSkH?i+sf(4TVxQe9+>od+-Tf-Bo3^Nr%&J?FrDUfeW{XU z!+MpA+LSlqe6h1ODs^XF=>g__0j=<9i3yQmB9N4)XS84rbeRrEyhU13B^Xpidc7Dg z_5xN|C*5`jYf>va1aTARtJW1qNhCu&rMWOkE-{ETM{%`~Z$%w`u+s(z-r*{=vo5W6 zC>mIG2Je{-y*V#%$kc~!INfySTe49CE+9>2o@6ewLo6w!aWs=6AbgNH4R*WMqEVZ! zX>D`Nsz#fro=-McxDzQem=s+O zg5`QhBm;e|vNMaX*95UO?+1({O?u2M0_mbH_KKdOr!B@uMSL(sE3IbMD$jtS43v+u zS?DZCX2*7z%vkcRH7m+xt5lk$7HMb8`Ft>l+06jg!8icBBvbYy6oEoOb=oTf!!bk$u=TUB|!H)ob1-kCX`8xaEPw@8qoF3pg}()Wg$u~zkUx>7>Cm@?Yv z)rPIA5jSaEYRXfgG9SmttU`5?z|Som1|&;w0$fo~Wpdd317>JB6uN#-xGEwAlfp?W+ET+;~>=Cq^z^?2us?8%8W<&#%@KsR>_#iav+sO zU}OuWY{ZV+3}b781Pp6waXDy!_A5r%n@rr6OZTdzHbWH?)WKFnEMh}0V|1BO;ie2q zf?G9kzZuX%%jlX`rAi>pUXlT)?3_hJ30RW)h>o}gKwS*YkeevPLd#Z-pypAgYgL$e zx5VkB;o`K=x7M1|0l6_8dXj8a(Js=Vv9v1al5X+>LCxHX=0vTPTmT%%J+4w|b=#o` z0z!iIXSX@G^ph?}ty+|v3#iE~z{`?BP$OIly~d_GB&y5KoM?ijG*`{CDv84-Q7Ql? z{4#P3(&?5P{zx8nH(R7HsIAzISYGOoo-&XG$4fJ;E|;~oD8+4U));cmJm_?>S*0cV zy>izMfv}mqp9192>jOC{lF*_y1{*HDZD<;Hwi{}RIVkfjc07|cOzT%TwU6(?oZu^~!;PAY>M9u9N^4gD4CM{dNw6A*%9el;*>nv$ zux-j&?A3HOsW;b?i7^ivFl8y&Y20XqiU~u4UQP{ZIR|}Wh&y!GEv?eMa7clf7bG$w z7g?H__E7B3FxuY5y-`eV0>0^~y`ABAdOEN4<5-($qhX}Sw(VqXh7j%HXd{|9%~a%G zb1z`q>+O8r+J-Hz+3C1-CoC<>I4G_-mjVLgmwje~c2p1n4RpsvbwOO!+ID|7s0=uh znaYvZQyL3%vTRrPDuC=nDOjH(y_KH^a6~&Q z`J6t?DWd^xDIo&;u^vZY$+CT{S>Uj<)Q=-+Os4*)tHWb7a#x`i$>H^L)^m6!^QYFPj*qwz9xRzR1zGLmdCO)>`=+f#cO zl~KFHY-%_b%e{%(FqMs`wcAwG)K>K&a6Mf!D5}k@jUAG# zcOdLa!Dw0?H0N|Mz$DPQK<|Tx*ZIf9v*6BtDCeYT#2vXA`(a~fbR5*5rU^X z*pS3hlX0mr=QOGf(YGHMBk)bh?` z%1P?#JCSxo!b27fc0a;ESavft)Tgs*cV?n|2}~BI14@J1U|EjMWnzzFVX(jucG=g- z?nEEAM~hiwrcN7nNISh5$yto%XwshbD)m_$>VfW1I>}{LTbtr7bsV`VU*2`x{$h^$ zVFPsPvc<3{2!WtQ#mG3)DHQ`BUq`2lcDueC&YNJ%7C79ls#&LOZ3i$75#{SlCJFx1 zXA+TLC~AAK(tVJ<$tsT8G}vH5Z8}(X7U;;Fr&>}ca|7AP+1`=V+USRTMQ<4)}3{by`t}G&N!iXL-rR5v$Secd@~lnC>%#AV^dOCYtdzqr|)glMm&(`tCZ6T1Peicwb(Lu5omgub>Nr`ucUf~%(+w!h&89pWK&J8ezbW^FO? z0=x!`Ah)P4GD;4D7`8BERu(^F@cE#=!iJGxZ%Hq136m}wb+=u2J@2C1#YFGn;)X~g zT3}*b@^nFIn|?}~#6(|`5P+!}dnF}{qmUb!y=XA4uI7omGC|U)AZe&Rm=_C--82I? zf!tzegHl@-?K-I!ET=R`GdxivQxUv!Y|?~X_V%U-H`Z)^wA5-;Mc`>o?%;tl0&Coa zpv0U>9RXBm#s!-tGAwT-btH1`ral?so2|`(RRpeCm6*>xj3`!l zGzHzt!9vtXN7HY}$sb|G<~^%4wo6%67_(Qq2*$-J+EYlC;vdBXNKQFB1f=bO^F-LkvP zP?b9xug$P_l>4OZI;hfKgY+F5<(tdRKFng9jozR>>8`hnam8}6zB<#TX-fk8w3X%^ z>cqzFHic|x#Jp1S41A$hkX>V*Yf2ulH0dN+Q`@##eeW-apjSH>*`Yr!thHi-y!)i6-ohN74d$JN|geP>wntg|p%?#kbSpbSk#6xU+0C<2C%SXn7G z;;4hq^$t0mSG2~Uy3@2uxl-r!isSRhAn_t56PgWDonhsn(B(`)3%vTe!LLS?$`A22 zU7i*IwQ7}aXrcxLz$MUD6tpZg*4* z+)k&n0-w18vB81kkI`)I1rp_^d#x9`>82XCmg7cAv}V1DxLwUloZsh^v_%Zs;aw1oX1~hz znu>cE!Az4OM3+=KW`~Q$wBI%=6F1;&o#=!R-2|h(KCe;>Q1(l1VvowwaMTuh%-q#V zk;gZUIyTzvIi=y&7K{gKo1Ra=m~4<>>p^mW+RBD#I$3?B^w)j9W%P8>r2tz!9z3 z?($u9xx!^*nes;3i$VM8U5MY#CYnrB`&Fj4K7;TgD3S?A7|j5+MLKQz_KIne2sq3* zjMyWo?vz>Diq&P}Em>KK+dLJ!rObJ4H$L{XUB_D zixTKzFG1i9v^dGRrsaVU^++MqePdRasCZ*8Yjz2O;RDZYs7_lncb#w)Bs<2n(p{?< zVOr5f8;~m5EDtH!B-jPkf~l{omPB_~Ni!a(K`6EeM&5uBNU}NA?`=?zT{)gyb1*#- zC3`pB@HM>@7XWF8YdRaE)DpPi6r4yPt#q95y^tPKK~gq^;W+ZfET2RTu`5hEJ~yQn zIu~*vEo7DJwex6oby>{404RFGw!h2hp-@p`%h7qRUk68LH$gYK?_5IL5X9hj8I~~{ z5~88XrhzM&n1^_mn$g$OZZ(q|;zsA`y*byMh3g7L(KI_7t-Rqf8#;`HXx11nV^Sp1 z?X|f?kZ6)9tU|{%EUEhgL=t9l(!dx{^5PKfGk`MCNCzfyOO%jI;s8zsow9Bq0mD80s%;heGZlD0d-^T;un%rjgu`KjZwGIwh(}v7 z`-F8qA&4CORHj|5az6K;*0c+NfDf3^PiNW%z{4f~pHExfhx;-P&6X53-LPG|-gksa zb3v9DYGS&yNOQwv=dw+*C2WPpJWn71k%JrDne~T6u8urPz=M)#FG&@G1dzmwhN{pcl5(#v6CT-Eut}#kAEceu01Q-c2xKyY6xJ>x z7v*7GFQy!a4R<4I7+qeE#^Vmd+0@kLbN{|`v072Jr$Lb&mg+f4ib*q6K?Oy;q0)zq8=rEBr0-rnM zOuDs-Nt5(;6T%p#GLcBr#=={;H6Q2t%xde$?uth{LnaVS6kKF;Z?x~QB@1SaqLeh> zGiX);#ZNY>j-s)Qrj!{hw`^PWOhF*p2X#fbqL!QG*x!uG>OkKuDJJB`Q)fP?Dy3qC zdAPtIdP-Wh?6K3`ERCumhxG{^PIkn)yN>Nz+}Wz!rp<>*9^bR1n?+Fp@YW#vD4vd> z=q7kB0N&h+-C7_=`xgL@F1s65(9A&F!>onqwy$&SiU@S8+*&oV{y;F0DAg9jg-ov6 zOUPWQs6eL5s^!lihK_p9ULI1V$YAg~p2+^DHw+`XQP1MER9%vKdumz}%?@o7WS`$~ zGKdB+F}R~F88w%gPIv_7;Ud=Of>Vo1+wg3N99#s9KCrpW!V9))!0`@xavUX8~lL z2Ue}?M=jZ`5o@I*PN_K1T*^_lP&fc)<~fxTNCzxE98A5MVSAwDiV>Ri7)64#ywgOm zWZMp+t{{KHK$%G$!h8N&%bQXQ6p`mM(0oK>I*_}_L*)t80U!%f>ankP-y)3xJ;EL&UNs z&x=5<+1UW^F0kCIhiEk`$2?l1G!NZPU9>dqY6B2ld4e2%nF7ZNO-x;Z!%^yN=9PW? zP_E(iQTEY_}5f`gUV3a#a)j?*7lzAv+m@PDH43Q1U z*llfpb6eAwJ9O_n4mcES-i&0nXx3sf+hL6v?q^U*;FV1xB_`wPydfit#XPM+2qE<# zL!!X~2oXp&(Wh)Orfhr2w?|aDz#%P;#+lUM`>M8q4E;cH@)9551Rimg99716tHEp) zJtI04bFnazyw=H z)D-KWn4+3)W^D0hwQNwDFxE!9wC=*61UUP)3}&)FMX8iPA)8R^HG9XSYNTpWvYu*TXh3gO~qLdn3_J>6fTss#Vh0=1dNCXg{uY~0vHHZ1s7 z&bp1cIoeNIR~G#y*J0_h+KFfYQn0}}zZe5$C}8Fg4Th)*!a!9Z_qdZ%i4t)q^QmB+ z2>L!9yyUGxf@*AqtaELY>nf{Wb zHclDAA~fW^15OEYTG{ttQA0zqMG8_HN>o5f$B5}8Xxz!kVmU-t5YYm=MNF~@O0prK zsR50*^#VLwGxsWBNufzuPLRAurE@;;OyzWsqm2vjXOF(1!&{od`M}@O=nH_iG=-xB zx;3LO0G^)jd8Y7_j($I7Sb)(O8T(YrhBQC5Haje{mBvXODu3!#R`cw^Mix@3-E~#2 ztBuM~o`7~7TTc)o8lmg}0vf0Sd7ROz0CdWK2s@*D@+|*7xa2jWf~CWs+DLCwQl_dt#-Pi>|wN-5=Z zAG(JT#5#y?R|N&VT%J}zM`0#&ASoWqsBKM!_BHsQP=U}_ytmV4@T?9h5Gq@W5fYF+ zVxcae(o)KEh=bmYLOr8e&$$9kOF_Ve8kna?Sjp8b4*`&z>b)|W`lJW?STN!_iZ`Ho zD32-T)qv;za+)yhY>7h;WahBzpctXU4!WDpI%hAyH{jzC-`g7POdw(fynM6{6GAR2 zluZF11%uRatG*g8YbC`ujq%>L+3Kzq(u)j}s-jz6%L>-q1uJ9-aSiNB4KuW>kE@nwhgg19P%At%N5Tmk_xvWBP$us z0jqUm#6r>h_O^cJHu%?q<3k{`stg45pk|4Hq9^VMG9OL0wP@oe24cZxNNxubV4>~x zGA5w0SBEZp8tn;?%x4opLI*5L9*}0GeQ0W`Rcea6I5zB;QLP+r#3*DFev)-Xns0=~ zl*e7_4s%fBIVr3gr*A5JHwU{jutG_hBtrDtzYcW@sVJQe|5wunzn|hR!3Ii`W zaBm?h3abSB7(lO9n#5Q_0v)O#*xH%-Wkc}MSu}MEg6Dya5e1^*9?B$O@FHM}vU~0= zM)+e`*cT(zlh_(s9`}La#~|yp^IEUK7@Y!OFbLeX6}(2kY$AXep@DH0c;HEd;XY(~Q>g@!s)U1(1G%iAeb5{#to(8a zwkj0LK?FlN6rq;10YHGFLvATXsEtfyLZXY%>4E>!P9#JT@_G<5msu>>S-TW!2vZi( ziHJ`4$nu1Vj;#7SzBM7}6|+$KU8=~Clwyx> zK95yn(&5K))GhbYmCSKtNQvNkFTjubog_~h8!b>aGl<{RWCDnxBA7r(ssOdj$n1;? zII2Rx4^hDJgT4Y(ZXK@j8I=vXSBCT-2D!JJFe*^~`EA4lP0g2WpwnW?^D?^eNeG{S z_&N<~EuuXWP1VG&qw!+sqr3vd+9xKRsP-gD#x)9s;>gf;}Ni@$yazj_4 zo?&uOWjgb^5PVCyWD40bW7hBBO}@w4GeCj>(}bmhTAgj3f;xN$A%Ly7)qb2nyrXd% zK}lYUo@@JJgoVoAuUBQS?ZMeO)b{a;kkB8yRF$3y=19%oFUkz2ncMXhu922jTc}Cq zfVV4tOpQ@mN{~Zsf7)!QJJ}L&$IE$b7y(-b;rd|7iV?!P4R><7>+x;h=nb6p1~y3` zgJvg~vw{I8NjF}@lv4-qQ$(fl97m0srs|OaX}DB*h4inDvMDK;`@@=*MfH{gltAg0}S|rqZDbx&`fn z`G^9=IR!u-pHnL)AjqYZDJu;h3oE&1!e)z<6^D8S9W6Xt<13EZ+I6_*HcXO!XU#&~ z-Uog`R}7t@X*YI|6l&@AQ)X)l>cuE-TVvpu0XP7JQuxra!$1Hv%D{?hr#Uy}eIPap zsUzNW*r5;N=S=fTr?IaH%HLDzB)y!4@_uEW(d-JCyH&>{Z? zUfZk)7KM{|NlHRpNHj3bfyKpM47Ck-so&?Z3UIn??KwqO)J1tw_95g2skj5}1S0c* z_;b4NS|XZ47!nGpK~iojAq!qgIrodU)g!)WdCw_(LONqzf-id1IXdkZQ9$#|xl(cq zw(mjLMT^=OPSAoBC5vHJ4e(8W4YlpgguoPWUBMu#TQd*}*kHU^OcrXM=}{MbZ#bCt z({;T+ow9ks5>$;j)2Mm&Ly1^g%gw%Dvgq|%yJ z)y5Q$2uMBqXu2`;T840o&C#$sLn$aj0g-pWDJjHTd~lACMcRUJRiPr`*;%&%=LcQj z_O@0)s&o_xDI2+ZJpF=Vgh$>2<-vJaDp@)yMa@8qk1e_muFnc;tVT81?1Opom~-%< z)bMIX3x?YP$vw0jOz9`tFy7lXs2(A8B@$?V0_mGg$hq_SCaA6S(NqIdKQU@{tu&qc z(}k`#wLUX(8&FLKyQ)AwIH$Q1+$a$B#Rw1NJ(RTqf%AJes?t657eHSeHBoO)K7eaX zfNm}Tdf+4X;g8&%f)Z))8|=2NNFuU^oM|`qp;A-}Fub>eeDwxf)dp1>Q?`kw;7F|x zu|Ekt6a6dz9)>S70Lo{ug$>PyE7F&@SUqz%Qz7&y;|+qP%pEf4>r$t`9=0oJ!tgQ?b5WU5=W=C zetGQ^8@&|ikfZPr8&EthjZ1{PobOFyUFNsiSZ}GEvZ+G}(rG*&Mj6UbRkoAkr0aph zX)QME88)*GU6B_a*W!ZR3U(q0Zl;Ypd*QHNs00Km2uRzEAo&Mz->hmvx!G_7+i8Ol zwoHOegPYa);S}F>w*$Lht+xBx#NCv@o^tInL=wQDvS}!+ET%k5L=kUd^U1tbYnMtm z>kVLYE#zsFWyI`IskKbWDQwTP*JLx?>e*7R^(NC$o#03u;r7r(#xxYImN7ViDiW zIod(Af#YfWRmOS3b=WO}Ls~i4O%-0_kUXx<1`i`d{x|npxxqb#2@(H_5@& z8GHS_Fcs>~I-N?TH*Icr8n|x2Onu0=LET6?T*k(jg1s?4RbL9MjrV3NDQcwHY~E(} zp(>XLDbpN5CXA<=OhBSbG&4iT+iay;3GY~=MC*97rcZ>t49@ppx5^rJ?!bUhp&Jt% zW^U%!A;dz85#|mH1PGW2gsTsQ^-{-Qx;V3ijg%5SUSRZKT&`vFTz^1zD&*TcyB}}O zlBcR&zG*wQtYy);)FJ?4q6A>jaSMVQV5$uHXNFJXSDR`E1h?ib7Ztxppc2{ zB~q6|ppu}DvC^8xjM7H0vb}CGWt+6-gxY{jqCHb*$9PL;M~OAUVSfgR1d22nsv&AD z7Na#@C7Q@KFVhQheAgu=Zn|-qgbJa~tUidQ`(nHi&8IDd-WtQk782RC;S&y2ezAi> z2A>|`p@DGLBxV3OTd;`CKz(0|?4`}JK4?oSlhI<+7__14K%cI%{?sD-xY4y(oQ5sl zNUK(>_sb9)<5y9C73U#t8 z1Tw*gLi;9HvY%hP?d5K<2(>xef_)ePlmHQ6l!6pFSn6NaPyj%7+V3;dt!ezC-=q4ts$ol z4@v#zCkeBsreN1hVB>YgZ_=j9m%&=5I`Kv;K}EZ6HQl|UuP)l0z7ebeKEYOWy*waW zJ8iW>S&9bDaBO-$5&-K4lt_`vx>@;Q*sC~h=L9slCG0d z+vfAalE_IjYR$xmA$Ao_5|Cg^d!q#15Y?3@TZj-Cy}3gPl@_OhWIZ<;Qvd{e-N^>1 z1o9jit{V%Hg&@VYI;o(RAsFjO!P~2F*`v2$h7n|lK}|5DILjGgLfD1b#Y3(fO}6uO zspjk#rRi;PE~!ARhw7JnsjS2sXQWo38Y!()P!Mk0Nf*u>FzO~$#PFB$*8TYp@wisSI~Xt(M0s#)Pa=2(8UyaMz1q8S9 zv}N=mbF7uEF=S&8mvhX?`uNZzLW6`7hYFXjr0GIJP_7Aw z!AMYj1y$}A)nPDXFR?|7DjggI<=3D9mb2-+Fshwd+STAXHl5)Rm#Uw0#A8sZuNaIYkks$w5rHV zT`&f1a881ic^QA4GO@kK$6Cx~g*`t^ua7h=h2g=P(+YJO`8I}*eelax7qpXBOW z-6S6SEn>K+5tAxPn06?j5N*~Fbm?%fS+M&)iHj*mOp?IPpB1=K?n;p zU;}s^9Pg43rO(uG;ewj2+ha=u3lxV+GfbO-QmKyi)y}9NWGIY@h#P~3)=)d{w5nBt zN_Aa;gzclU)QpwA8bv~<4!dTYe4jKFH1WKOA&JT+n6EGsZNSY@tj*GMJ7z~E zjDU1OcVggWd!7s_z+aWgOJw>`Zy6zTsTd(6+2OF{VDnO$l_InRDT)QwLhA`FDQF$V zCAQ_1BP6grxDnICEm-ynkjwdKu>g4H0g4j+i!VNNe%AhQtaFdgx(MAL3U>BkVf(vh zpCML2I(gnh$MWOV;FQ3VVsSj=DZFTUj?7&^SCU`ZG;jiH|GTWb|r#Qn~ z+oyZqOru+Z)=TUtjNnALn+0{I#ZBRKja@zi+0E=*c}Utt#Sw=mx2H&oI#D8U24gQm z5AU6ML4Nq!{_YG~Vka9^2YZIW8qjx0%KPqTZr^;@d?`5Bvu|cO zPQ>x#a5QH%Js09F35T<(=QJsvOKgWkD0y)1Vm_YpQKD?GZn6{ylz6I^8vgmmku%kS z@ah8B!tts8KpJ7_fiTIB$3>x_|049vqcelf+sAI~ox{)tUe8uyXX6!))jjDMJ{)hm zJ8tdqbipYz2o~YSJPxNC2e&k(vjG~t6 zPu7FUCO?9{gMmm%QCwlGA9fg^n2h2@gHGspY-JE7> zp0Qq^3Zo!!P8Q^|pZ+<|Z_>XG8Z5CbE((^n-VlI<_(}H+?($`E0evOQqG`ggj+3Sd z%VJRWakg9r9NG?H!E#MloXVx~Io;2UDQCw0W9z1i{*ypI(*1nUga7IJ><4)sFz0(4 z7<@OgM0+sjJU;{CkkpQ>(GhW)i!C6Mmb-?NgVQ4qaxCWB;-@BOi=&ZG8k3yNPOS|f zmwXlBxa7loXNJ6&I{S6Z8=QwqZXE~g;UDRK^Y7TsZ2!zT$GAdZCrLQU{Pa1;dr(EI zn+F2bxA7Ki^GdE>Z`B#hd$4EsyLtGN8AxB-I)xsh?(oLBUCu9v57+c3J=6HCW%?g4 z-K~?m|LvtaeMEKn@QCXFKP=tN+EM3a-ittXpMwnSp6Jg*dYW%;{^}p!)i7@aJHU3}f`l+Go$R~)vJ-PUTEqq|;j&ODGg(A4hKW&tM z{^;NnN3~$%$HyT5;#%uV@%-CI@Cl|oI@F>xz>YB|7=kI$ z$4IJlf;~o-uoGpLz6`B;wr%BYAXI!T|F;h>6Yzf?JT6^^)*!?OHu?G(zW*3g4L%8V ziya{U8+Y?>iNMZ+3+pHIFQ8y0oWNO0m#_NM``qwPANUKb`s&|$Md<g~$KGvw!2Acl$`|i!T~H>X)y%p?mckUUk=`bJg8H@`lIX(+oU*@%U3O zd)W2Hm5+Mq<3IPLYyT$vsP(6R^y%1p-+i5{O7FeLdp=P9gFjxs?1%hYuDx7TK;Wyi_6>7gUyyBDi?OynxcRYIc#Eb9s>boWU!$0@$$N%ZI z@>P%d{io1h|J$os;Wpp->+7EM@h{xvUp_c|`*rv0eCHYX{9bqcrMvvgol4KApWXQ5 zyT0$?wYLx7@#gIECtv@cclom?T=fEc^(y+2GxV#kecn?Cw|mwTuKef&*zvdD`}WRn z@OLMF=MIlM_4zkH#J{lnFV9##;hMX@`rh|=;|K1vY5vi@#-B9QS3X_;)Ytxmef7`$ z-kZPif8Y7^N$F94`qC@^_)mZ9oiDxeF3MfvtDkWHhratsAGyQ#{_bgi^yDYL{O>Nm z&r3i5fT#cbpMLKnpSb8VcewtI={r9DvX3WM{juL@Kd}ASA3gis4eu>iyzf81`IyIi znU;XCC{ncIX zef6Eg+aV9W2Ycd?7d`u4FZh)H&4>M;pP`SN54rKBzwnad*IxSW8h@uRUGpn~@}lT3 z|3-Osdt3V2i@y5#dp_s|_UI8`W$yio?h`lb>;KTaV*d4uA8FnDeb2w`z1DC1UaJ1X z-@erR_}kxcjed{tF6b+tRYG6)OAj|T|9sWYN5B2W@BigzU&%b+;s5xu`@Q8k7k>NB z7hHDRJAeIduYbYhZIcIXZ}Y6<@A}qtBJs$-XlF0_bbP^WAN4!m&$chS~*p^~vK` zkG}c658j`8(p!~}&VK&Y&v|Zl`)hakjR$=K`?)uK>aDlA|1T=H;V)^t=~dsk_Ghza zF;9H%z3yuN?iXKpk1zk#@o&894a8HgKkiDx8y<4(es8B9`i5_Q^G?0rzR%B;zVMOX z@jo>Bd-JN3S6=+;mpu4+KO21IQuBci*gXvW@XvkdDX)A-?MH7Se)d8Cu3i7gI}umk zH7j5BfxExy_glxG_q{LOv-P*NKe_U&-~F`xa{eO^&l)E`^O*--^G>G!x=%dmcmD3A z@4e|c&;Ntl+y(u>x5UT4xN)EOZf_z^H~;N#|LIu#u(!VKiYNW&!(R86pLy`N|Ih7T@z=@g{`%KHbe})sKlGO` zdHF-_&!2ia_nB+neBx6tdCdbK{n{HZz0|t?^{-&xZC}28>&LI*wP&5W_Vpj_s$;u`XBz;Lm&4~$g%gn_;atPU)K2DE3SLj<@6)$FU@{<|4-lMitm2n^%q=w zrRrbU{;TJG=_76FjgR=HKl!=$$9E2{{q2jt@W3y>?>XD`WuqTnb=x2Q;bWiv7wW&= z{mR*mmw&tQm!Us;-s7IaTb}uz4+{VO;OEtzYc<|=_lLgr&L5@U`j0Ps z%{@QJ5l{KUXKX)p@k4&_ZQ_3Kzi*~K;i=F1`}gmD`L191!b?B$2=R8ef5XeK5AOTO zuQPv>eTJgG{MPU5$gA4wAAIR{Kf2`9-HzR;DermSr{DN)=1cPHzm@#_v#x*mQ`8Gj zUH0lH{A}`?e|zJ@Uh>3??(@Sxz86l)dDQ#A z_JG-QxkT|J(he_s`NUaGoY zV6atEiE&80ouCB0s99ISq1Go{hCT;PjzHgaZ`c%h6>rR9K^ovaA!Qw_z^?z&Iwxu7 zUb2M$sn*hT?=_CbaWWLe@Q!1h1!7IdIz~4YUip*7z2i11TeUs;+0BYgia(RBghGA} zieJ>s`dVmcg6a^4sQby!1yMTRF}He6clcXxJMrCHrh_A?3Z@CgS04}X(Q{j`eNVrA zd*kcB8}mDOsse^TAnaSs%u`Q@g;Bv(Y_GEB(haAl^r^WjtTIpSDt&Vsy1J@M1-S)p zTU4y}RCs}WK^Hp>W)roU#^P8`7fs?=H_H;*m6y~|KgA6vu}sJ|^?c}TOyJOzfF5)6 zn#6URqPev~Q7rC0OGt-sb_VMN#-X^)^fMm0G?b*sH>s3HWbwss?j7lKt6L@P3aM_6 zy0099b-tGz6@H3-T`cf*v$HfuC) zr>|;9(pgH2G6e7HQ`SxO897*&!BDWg; zn`1uJ@1s$7E(G_Y=W z=*G9M*h>;TT?J^ScqCpqOswh(&_Nct(xT)er^Q&gF!NpnZ<)og9KJfuKPrV-@Tx6m zu;ni;hQg(LST$3#=}OkL*tUb|bp>^$`XH@y8h2|pom)_EXQ9+nQ&v%B9A0Q>PisG} zPXwbBAVgUd+6*B<#IE|de@s|-B+GLF`x+KZVeOTUO(2|tP!TmkED|$<+}u9(HxwdVi(%^D!idk3`+Rn#pb(A z_Wc5qko3j(I{EPwLtBI^FR*nXiMtPs#j-`0--6^h4BW1<2tNW4s6qm|C9APokMu1D0kOCpIIDSBU@Y;en#j^;^U zO*fsd#ud5T%ezc>8cbO*n&g!|p`MR@ZEI`Y{#I-G(Nu=s5ks>yU50+p#ZRfBW#n9O z=iT&iR+KMS>bCdBt+aGW6GfN3T+|Oqc6}}_ta4=!6e%-?-sK)70 z#Qrs@(q_AU4QGvVh%qQGeo@KByNc5D>RMDWe3ai*-eI3X>dmLY*VR_oKe01asQn-s0y7|0*N*4Ww`2$|uE?}=hgC$9lOqVtx1gwfRvN@{quy&m< zg>~?X!0zRGsy)t;gZq?YNv9?sDn6CDQ;CE^e5ZG#ylCSeNQld=UG7&EhgJma^kh@M zFqd3bAg;mNew|mJ%S(TUgqy4n_DNkKFd!(wHvzFYAwaf*#9omEs2rKM8)K@lJb=fi z@^N}<@MqY@lBIoK66ee(R)0ofh_;BxV}37LjTfHG_fRB`ue879at!c28@CRiSV+^K zxS-SLa*pnrI=9)NpI1Dqx zOgC`$vks=ncJNARy)N-J&W>(ZcJuKs57v-KrjF5t0|k~LaW}7^Mew@?1|Mj%z6&*8 zm{)t0Y6Z*itE@)Qhz%mlhwaG$&zGbPv%^!_`h>8424k3J=+S|#BGK-`C7V_ql(o7j z1{sLivQcs00&Q%{vl*@tHM0PSo#tcW)z#dN`JzH0+`{2$#nqY{}{bqecG3%8(dIwKka+k`l-RMp{ zS0hXhJ}MklqoF1^W@2o=_QQ0_+#(O;*X$fLhGl5ZBR1OLM*7RJap~m_N%>JN5=JPc zEruO*g3Yg94^=dQRH?<9NLSD%tHl{a2|rA%u(G*e4{*jt^yUU1&uRi?F-E;R@5JNl zUP&f9Z?s3{Hkb7#G9L2CVH`N(^`GcJcD-oIFpq0h3`Ekn3c103MnR;*H@G8@Yg<_A ze9-T>lDsn&{QbpFxHG0!O-=KT0(2HcQpmbJY?Xy$8nRFq5a18n zr9w#9|2=HWfVm9|FT;4;x5_1@HfhjAgRqwKlIDf@3|Cex%|f{0i=e;m+FLn?ED7b< zV=moZQOCm^+4tiKuIgCYnYUGV!g!dS)7_R5OUwAX(Xe5&o1@;@$77wxS;sIYb=B_E zB|A;D9SLCV)F>v!sBKt>NpvQs0=XFr%)Ay=wjt82La`K$ad#|O{?<@J%Iy<7eO?4^ zPQj^Z3{>H&IKicr;pFx&%q^rb?d1;($#Zwh1H5P!E69^2B?oA3))yOyWK2K1Pj}#K zsLOJ=e&}qzOkiBBcjsfy0=KjgsVP@D~h&Wt*+)c6_ zyn5at(aTD|^oG132fNWB)Rz;Un985{QOpCoIvWf5(nki%Uo|A>J%4t@=J0PlA%2#b zuX#hg3b0j<9K9c;n34#;1{TRPyV$`l3pMYj4#M2e5kE`QHJb*0$KvtHh8E5z6$|e# zXvW=%*ZH-sdYBPRat&b^4wNi6x}nWJP5g;fuD`jh6eFe~7|HU%RP?~r=u|OlXsoa_ zXMRKLIarIN1|53`tf>Y2>&M#4IMlZgMn9(=kJ6`F4bz@M77qzQA}Oy=4u+)W^s#ac zYT)zV!iub7szHP3%N3TXlYZH3<>HTKM&Fz}J{BuV9ML`NrA;Iz`ryU#yka@ukbssa zI6-)8r~lc_c5BUW{}lG&#z6+WUE=ClsL?d{Eq@WcjkLKGZtbV}s(5RW4c8+E58S&? zL-D=YPjZX}pJb$u%Gf{T4?w+dE*+4kcRm(4!fSgo(_V3Z`dUZc4_lBMrF(jAXW0so zF>!R)GN-QPy2<=HTw;)A^#r;Zp3!X?qVv83X$iqab1`jr&mwt%9`dz*uPw<<$cllA zxj2r^l7};B*-9;MC?grm*3*Zzs6{^cu_!)R^(2$Z zj_3rhl*C3dGe2fbJwcPpwR3RPh-sds zU$dLsYI8&xABfqJNc%>)F5|;*!Gfeej!taYGpD4^V(58FUkg6agjXW=oh{kt+dwISjg1d`qdr1S4r+1P>^YAj99(r~E-Nb6)bfTk zs7v<@8+3!Y->_FnhLuA_(~oV$8|q=_%7(s?c=K`kF)V1B3wFfSG%41%|2?w?U$BVq z)3@?lg@DVML&4{J-ZWnFt7Vz9>t8xN2=6S7^R$mNE10|A$6V9%zs|qPq%M3L_A)rB z!?aCEK`}N_H{h|!cJ97)ZIG-xyy+SMz1XV4nV&w%7v86Ror!ou_U?AHmu_6h@s6W| zxXJZHuk4{o*K63C7FCw>bLfbI_l_J5=2M6-HQob3lUe2mTu}W`s%JF=F+R6}xzo-g zypJJdh;?LhzBeRVDDBSV1b0o&%pa#rYxquAL^l27UaoFFUp{Dv2Pt!Tqr0KxN|)^L_)yD#E68D0-4^ZnevMt;Fm@fi)Ccpk=3I zKC{QI#)IyW)HN}kU&$%XY!x7dz>IXT3ze}Dkbh`$y6WH3(M?O_u8C$M0n;=?rujh> zH16dw6pyviF=E5P%e6TzVHg%YwyX)ekH#`<^l%ikZB+H}rHw46oKnry91h7Dranb0 zkWks>ONL^L1-6Q%?l4${8F>|Z-g2i4&955Lrh9?CRGWUp%wi3@l64L{7V52X`@H4O z{t3_U!7Wx3b_^o!+OHV~a4oMO3h!%5i;D4Y+}KR}t3C%$_?YcU3tGLY&wEOGu3xRI zL&8-QL(5I6J`ZKTnFxvu5K=-By#` zKLomaE>r!p4o{)N_=^KwDQ8`scO83r$6ndp1afA{Z?lbgef>RO}=AD`0*Q4PtR3sU9$lEmjbV)AM2mTvu^1f4t?)m%_ zE5?XVV@`SldjoT=9ffJxcdLrR9MKM$M$VL{k-QAi)Fn83+b+2JLM1xG2;{jcI;?mJ*6~r!icgq4d}^n|TvG*1*x{ z`ZV{~k*}`Idp*60KNT|I(M}$-zFBReOnuUc@gYmoZ>(Kvu`ZoZcpfxf{1QdYJKHOq z;@6X?Vn*1}aJ?RBZsl)`m5={RTXV4)!$zo6m_=w9ywfnxTTds6%`^8aid-)n!}z+P z@FV2HC@Wg!dH~^9r-D_Jr=LI&X?Xc-_QHy9t~*42!Oh>?R3BL2XuzZl2ncaxsg;@a zR}wg_c^c*#s_(?v5D~P5_rZpkFd>gfCA68ZZoeHU;?w69IS5cYC9>;sR3{{HRCCN5 zXfJJiVT0k;TIy?`s%wxv>hkz@a1lYWX!I)j=Z7U1Ullnx@p}35fv}-9X%faL=D8hM zD7M?!JywPe$w9q`dv(@ipzfpZ@OaE~b%x-mTN|Z&TW&XIc7b z743kx5sMElAfqdoP4b+GgEE8^tuDRjU|5G`|po#UbS^-nZvG3 zsTH~AZ^oP%!c68Ebk2(xv1i8~+ZA*v@R2&H7Gi@&bSWEkKcTA{B#3Q<-+|LJl(}nW7Wtqptq)FXc>h*Qg$>qbme&~J?;P5{CNw^E}6d`P|ZT2 z5>#m9Nj)R^%3*QWSdA%&>odV1r|pCU4|Oz6MOC1NK_9Tqm!bp92YgJhO0kQYxu;m^ zXB~y11Oe^xrA3Y}ZMuke(vcV|?WI+-hIG9!Yz$TN*;s^0b>EQb-Cw~LC!1Ini!LP7 zxExw|$S?|0I-q^FmGB*gb~lMt_@(EdI9*Q?IWJSyunX|YuLxZs_u_e1^E&!$Vc`nLSn z`rB&dmg&iA5no>+haUmHLYo1;RU@8T4G(UQA$^U#`N(pb5vekzwtLe?4kF||J!qYS z@z%G`AEuA*zSn50*Wd`HGt`gP*y^>HYzCvFZp~jV@~D(~?;hAt=vW69eJw5@Vp`sC zqbJ=%3Q~|PTV4J=*M_99!6XNw)-YI&-tRsZA>aMbdU^4X@!_e_Xh1 z|M))j*~HW(-gATwI2-C_>i2-U5=GF2>UKCSYwv7gZWrO)E!P8W|ZqMk5YQ2TfZ>bu%VzH)&04 zv$w!WS$e>Z6ZBvKJ4O>;aRoO<8Fv(BQ8^{Ccd}+;Y8oc`JXG3r7Hl-4Oib)DV0}ds zdm}9#CwU8Y6AfGc{|_+0Umx+mRQG@8V^;yN<$%i=#KHHEH~fG2mjC?zS4?7ZN)R^_ zNfS2{5XV1GZ!tN*SN^X@|HwH&oB%WcFvTAvfQhvO#6{~L+7SpiN=m{7Vglfw|1II< zWm5xy3g!SI$q8U3K}_ub_`X4$|B?PDMUY_ zUmU{11z;4=X=whHt^nw-6!c%dbb2)g5GR0m00N20@frQk8596<^0Igr+n=ic8a0W3D493Tjo4NwCo z7l>DYiwC5l^yj{bg9ktc0JwbuAPycbJ}y8e{zoeSNejRU075PRU%}1?0`q}EJm5c> zk+lW@4*%~ktbE+OU_M@cE>18f_|F5Zyga<@U>*)0Fc{1QJk7<*%MBdc&cn&W!^_7D zL#IR50Svv%U*?S=px?jI0vHW@6Bk?HSq@GB zy7J$O;N<6L<>vxK{Or8^`~Xe@P$MfRFFz+g4<9c#patMIFDG#R?BC!2#HRtVclv{# z_^W;{c5YT~5EnnspX-0V|0^U=_`ji8csW=BY6}lLFE>9Az;odTnh_5xKQ}iQFBdl_ zmpOK5ciR~Fm$JZXVqByIaAzo546B8;hR(G9^_?fy{MRl1S3dZPK>XKNl zSR7%9iwXxC3keDe3PugJ9CZlwhpcp^Gt*5o^frd#3+NWrO6;qvwxP_HJ)~5}Pi8At zf2~?jBv8P{T>i_gA_J!ksBzlnG}S<%2U7S^_Q`Cg7aQro+jFL2oL`O(bM<#Yez|pW zrgV<~j)D#GuQtOTGr_P!q3{b+^#SB z-jH@as`yU2_+VeG^1?oTBBT`~t!qh{`d*nS9ZnN|x>D(Kgi5f?q_m+wRFn8Y?{ixxKmZNr^MlUYRbkhMi7Ju;J9-6^d+r zM)#$X_~X0pm@_Wh3nIhuuCER&n%rgVp)_w;aG(`66U!~I5b<8ENLsN2t5tK|JQieN(rMSz zih9(VUCQBEZXx|0&zlW`TkFNJ!_+;lk!F{eJy6D6we|POF%c~@j6{a#foT6H7e#;P zY<2!o!Z@=KhmD)!IT+!{N9cW#0HVQPISe9DYl`LmZ80XR=D)4JM98b$T9#teZiyovBTkfJoN24va%FCw;PNk&TYP6BBYA>AakV7I55v5A9yI;O3B1gYqtsoCl z);dfimzu8vzf?b}$#I_bpVB1FkwLLk7n`Mr`(dD$Sl`hUuJS}$Yh+LA;iq1XsSf8 zvd?_*$M+}74Kqrkh1$nqhQ8EY892`CUD~81U0KVLucQn0n@v5EQl4f(G=;WjvRa1< z^bQhM3ebkHV_Va1)UT`!z^O8VLUCYzd>;UHJxv35*k2pg;ot*p*wQs)Kh<3;H^CT@ z2Z`|gCi>>VF34~SCI4Lo>GhBbS6sWj-!3gd5a^L#0S%YKY#Wxe=J`7lL| zQ05@iLKhs}Rjv3@7`5iRK1>^YTKeJddPnr=)~91-_4WB%`#u^yU2Z?#n^dGPnmtJS zcg@=?)8iKpQs6V_HY8qAt#wy~iEG)HR)2jbP}&_(5`IZjd&@;meNFHE?zJ}VAcHM@ z()8_3t(1%imj1C^k9Aa?DEboBcp~h0kIN%}ZP<`Hc;gAaSzsDY;j z&?EflBQ4PMajw4Vss@J-H#>KpW_p4!E%3M26^Q#dNpX5O^XQ5;h?3`FTR3%6t-Mfo z8-eRj8_?GgsR~H9q=$Tm*|={;+TvDlB4Yh!KPm*)H-*cQrpJpg1@PUEENFjsLL27W z#SzhhP{sM#@|E;`D_!><9Lx37Pmj?OqkrhBKrPtPIv72vY!?xo$XLDYz<dpFJ{Zs>yC=UwQuI;rM;; zQHQMpU|OCQj`NSWF%j=XM1LI{54K(BY9_;&g5RRKHO!&2| z8@&-sYE#`8Q&SfStE`O!u9aRI9}WolrnksMTO3h+^lNvHK2Tm?nn!yxYPmcPTy*kzY16e=OyH%pvO z`kKTRedOB{Y!_h%n#DoJg40{YCe0d*e!{tm2wypg@K|PXzOHCz+v-S9h`cmBc>f;n zuYNL{@vCD+voqO7nBcA$uU!b7Zid!d@~dma9JfgE6KVA$loWv=zi7ri!0EBFA{Yi(pIof``kAq;!Wj9h@V4bf>P=woXYE(;n#=a9J()mE z2RNVB?3FJYqd8sk__B77)*@1+2kY0FmqIx54bjCWSMs{ zAMbKbAXh(BW139%`5A{mknlTN%SWfBnuTSH3vy_cLOYQ5qd9FUondwQ<%fykN`Jh_ z#yIqo7u2!lvervuV)W!Ss*y$IiC!y|@$xgn+u|*9b-}Nd80>AM%mb`;Uw#^y5J~pr zYSmn{-SRxVT$t=pgvWi1M*ni@1SamDwc?W=ArO{i#gnR=C86{LlWv84_;e&iE>4O$ z%OTu-AFVgJsZT)i=?<$65tEbp=S^t;8cKBs}L z(uB@V`G|gqQmj|jzkGLiuu<6qoX|XoY6NonE>QcVx)oZAx?13Z6*@0S=Z%Sg3CBVb z>V*^%E9F31SIbLe?tp6ofrI6JmflCjw%cKmSyyCi@o;O+lEXE3E>eO76TRnpKz_+) z{zNdD8iQT74h>dmZ^0fHRW=}Wh@xagTq-2&6cdaUR#``eiAOt2XVo0~HqcVPWk+0;lX zK$=I=7a8nrzvSlLhk2~jw#?hT7??c3=gy0kE*HTgB4V{U^CXIU6)d1f<$3uCTCRxC zC`5N36-&`grgimY4@t{?c@d(EY{W;O=2jmFIevPKQR7->gPISarmkc`a z4Xq}|6gEO*fdy>~fgn6Yo+0#1Z4QWV_r1l+F3qso>}|6sfjJ+JSk6vz2(Kzbs8B>X z@+htaZvmL}vXv+pSBiyAG%1AbP61h}&3f;B#KPOh)%1}~;;_aPm+aThxWqn>3lqi% zC9Kf!2`gE4XpoRSc3d=srH^?sCe*Y7L0xUuXFd>&VrX&V;k3Rg`Dz?WnV^{?`n#~( zh|1Jk>7zWH0_Np1>7fJOozkn9L@*?|v>Ea8ucA`-0gh*AHg6@UVDtS4G;+uY{*x69bOz{UB$WDAT^7NF}vapJjzSxAX zbvN}_04U)vmn+fKr%W0+raJ-)a9R(q~$&h)@G_OPelAgpM!bpdCz|LH4z{kK$ ziW=s;o1Of+jHbwGmlQ@d^%lQHxF3(mZAEadQ~qZtWS3iWN|jR%k0n*o*a^h!uv;3v za1?VB{=PayxnwGyxy)`sm6ZU4>FYw_p|h5+`Z6EYIrdp>P6pLykj`L}V__m%_n_}> zLrV?F0v zB_e|k?0DjcByDpr=G0n6k(sUrqZo!Oh{k+aSHLr;m)_Ue0xeE|&_m?{MpW*Sy``Ng zrpEEzsjeptx`8ycUvvdg@92Bs86a@U8oTbmF(4^k(PI&RfQ|S{5-HBQ(d!aNl7>Wi z%9;L(STFiYOHe%wbJA)30UzH{c2r=jJ)(UZ*BrI&2>W*ozU2oV18xX#D zQ*{^4R#ZKHDIP=lc8b7`bOkkjojgP(O*uN9Vth2dI&n3*st?_dEb`EYEHX!_8BQ2x z_MHf+Zw(nulGui^Vw%7U6`eQYHC3%B=!+L}@x722yH0;F41#zC(DP7FI(*HtqWDsf zuON5lngNHHnuQX6U)D#sap>ha!rnF1-+R@S5|e-mlbfq)Zr+aeDFx$ANz@Iuq_8cl zy2nY}gqkOwE>8gJfZXy2%2b$Fia(GFC&>9Sr!9>`Rf^Ti8hx{a1h+?M*d8`##*ixl z`6{M;vfm$AV!vulmaS4=EmuotDD^u0C?5Q%+Q?lMMi-n(1!Usf_%InV{GR56$?2DzPD?5SXcq4ul7{8GH%IGB!E9fVHq|)~`4C$GPHoob1efgB|PUh!mKB_f*xPxO< zjMdS*{fHf81?j_bYW(bhYqX7BE)KV3-K?XxLM}(0$3z0tm*);1pTgoaK>BV}!y&Wp zyBALd9^8|ox_K8}vGYo^bTg=6SxoLzgRZ88sUxb2=spO2tConWX0xSp zuk|iBO-N?Rx-1 z&B)2$<5-*tvtXMDB|_PED$=-~J)WKDij+4*2GZr>) zJS609fd8>Fh@s`dMP`yOWb2Gn?qh+oi5JovKgMfY*ot(uQ*G^FeF?7CpAw(@#j z`LR%E@bHWiwjFFmuNuXq)g;oFF}x4iCz6uAlWIt3jWg8p^vGce@qtHzuSX^Hq%V8p z5M3@H1zs4-vfe)WPPt*r0dXG{he=aF1Uo!>y>!6p3k`JH)%{DV=0URGV#`4?>2q`9 z4|swLk>yzO?T#(do)e<*vAPNWYt)dwZRqQ#DJzbbt)(!(REJ{%15iy(I%yK*$Jz)~ z<5{$(_6szO@0MlNYCP%h z)_tjB%&J3qBue?7i!;e4vQIhuI=EJ%5jmB;Vo2FE6Y23{<{NEMxuqjB2;bF zQ1fRSo3Sl7ez6E;^*6MB{9;INahmIF3RtR&x27!+8c!Yz7CGliHSc?VhfSR?wiF)* zSm@n^DZxc*8P#^C#-?5$CLVUVwiav7<{JGvy1x9;Tr^u#Ef~-e*2g(IvgtuP06pU( z7jmFbIBniU6(B5{qW)ujskXI(qi&G_c3q2<6$6f$&t%W|u|7|Wmj zZRNMo=WxVP_7?~atHTyogU_tlJWnQ(j7@GPr zIYU`W>r3$hEWV=35|z!lYGS8NdhYHe(&G7yK)`ugTg^V<3*1`MRN zC2r};p?xKb&jxadrp4D6!JtW>l$FS4DcT=ZYwlJjtRfr1NKdEN5c<>P1aC~PWQmTg zFWSX15e9eo4aw}1#=IdT(5L?E~Ak3mW!e=uBu+CeO-UOs}0iurrT z*VrA*QoI?bWRy1uQGW!bdR~d+tJF%$i@Gba;tXvqu8sv6(rU*{?e6@@zFWu29JD*P z&AcB2oxR~HHB~S+siSitV#79Lo9u8?uTt=pCX$lk5 z;VP?+CVJmT^hT?3c_;teMXrW~jYQ8S)qhf%7KuK_@MYcE6owwYEs&cyCX)W}5G+$G zkxA;=t7Kzj$c0rPJiii?BU=}dPJI;J-O@D`I)U66iX>^H7GW0U;AlUdS=%)xj83qY zaI{3jwVKYj1$LdDRAxA)!1qxgltmu$V}CbH5h^;#{9T6X6*k=*w@+aT;ice=WuFEm z2g7WihI3F;3#Wu3qaFt}Jv_W3qCP=<7L(Tm9d3CtdgE&W+#9X*gm<@*w$YzeqA)i; zTpGJ2ijA(XGkj(dh$FlZKwsB$Bbfcwj$+z-DpcTF_W)Mq5Af0w!#h$SoKNG#6D=Zs zT^TmN%vXp=-KQrp>MY`Ck~snYkO-7DTZC!W zbPlN`Z9?@U_o#%{^WsPaz{uE-XTZ+O^K&Qqq@u4tUkjEoj$@nHVCZUp9M3?zPrTp0 zd%Nh9uB*sJ3x2&bfJ3WC5YJ_Gih*fdzMX%4w$JI?g_{mQ)V5X=%c)bk81yO+u~KYF zrza|49&|Qczd2f#(t;@8Bo^;CNU?IR!M4i(L|QMR_kz> z`@Th%_Aq8T0kn#SqZOddnCo!1&jJ&X0nomC0qp1zC-Zzkv=KXDmL~)Rz5Xr^yppO3mPHI(JOwx$R$^Vc!JOgT_yHXv5F>KU18F;V;s-*6 z*rJgam@VqL;xmKS9Pbv$*6UdF~X77|b73}yTx`n>>nGu^I85tRPMnSSeWsbM9fN$wgS8_R}8iJ6Bw zW>!T!w~bBIhLMwcgifI1k4kObD+%=+66JJf&*0uJ5dzo8A%)m57@83nw{W$|iQtt= zQt6V4iT071P6vjyTMC6BfG7iB#_u}H(IWSih*2^wo0TbUjeA_=#AZljLrpMFi;5nV z@M~(Sm#HWWBSa*=PrbX_PO4q9{1$&+9yC=(!#>m@9w4rk>}&2LAL~+n9z2bq>_&|> zmh#+5kf0OT+@Mga#Ie3iIydLfhsVm8A8P6j^-++*chn_O5r0K&&F41-?b$m3v!@VS z<>GDi%px)ayun^wfI}4;vGmhc_9+i>`H>}24*ZY_!Y5epY|bG}W_JfQ5|Byn#C?N|>o<}1mW(d+Rw{e#k4Xvv&f=zSAMsC(GaT)0wbJi#Y9sGb~sBjP+b85()Y>|RQ7 zq+-cQDw>PDviQSG-PJ=vS?Y8TqDeRg@eo?rLv3y^I^e)^&f zYvq(3khXq!+5Gq94a*o&NwGc}>Y^{rRkJm3SMA4Bw@6|cAlbCWGme(j`t;F`ezY+k zelpP?A_In&%`N-LHTY$ zSURVHk|n;PAx=-FCN5I3Z4WOA!UH!-e8lTlDz&l-7c0WD=_M+{8vm9uGAL9RR)2SHIVYOWQ5V-2 z+U+`DsdNKj`g(p8q*U;-M zG3r%mlsHcmW4;VsUIhtv|E8Kt=2e{nVpZ}=VyNTJe60Z?v!*F6V<%QUM>y(-jF3FU z0^IaI+&K=3AYVIsQ9IjNZu!Ils=8_^UegTx4LLW~cGgw;_O2#EOzDw~gm=7*@hk!| zVxdRk+;&ywaE!LMxrYqaWZG-CJLGg>E!t*Bt`7vypP+~t|RaIH=>pJbG&w?GFQb8zjW(m-K@Kvji@z9k*fVceN z3t%@6pg9q*r7_6fDT;;XXbZbi(z}||9%mG7smgm3Dx%>IwCZdg2u^e$a1n(ki0gKq zk#n($SO`Prr65oliyw9MGD&@((i6CUpJWHE4GZxjD_1y&WtO=S7#O zK&`R_s_4VMlAGpc@CN%;FA8f&P_pdyFbzyTcGP?5AFhj>0_zdEem%N3SC>+Pi)gNBVi&^V`S?qB&wAjM2nCo@md zBKAO%LU=ot_qUZ4?-KRtrTg70%GD(LHPsh2fbP=W8-2mS!PSx5CeH(x)J+HIKQqvL zxQLJ#U#(5S#{8IC#$f+qi%9rUy&U;~#=sf*)k81s3S5@4I`U$WycDnP+w!A^dsjfx z>6y&v-*@;#@MLtszf0iT-Qu&Z55K26akNmS*ha!}5H22)qFOVuu#AaEspi*;ywC-a z?q!G3%+6wLeE;mUM&iU&r(Kl29r^Z$%iXih$tK7FSdMoDX5Q6ma?I`6zyNQKKnG03 zp!>y4Os9#Iy~qgZlKqEs6T-rOd@qQM>~-*~>H;-EYwo*uheorJFwqlPI{Luge!CYp zarCKt4-1j@CbJYG+~_Zmb^8X)5vE(bBfGFUGpBn5&=@LkTOF6S^1Ivk)2g-PPW*`ijyN`fx?UUK|J_8^7L1Th##P zc&T>Na)w(DizW8o76i%kYZJnRtI)C=y_ws=SSi0J`XSKGf=rC7oUxX*2dsX?z2|WQ z9Yv|v?BxkWe|hCG($UeyU=GvVbi^5g)v40Upj?nOs39>j8qolSuBAd5=ElK*uGmII z&ynXDL;xW=X=Sc~Ny_SGWXPORNx1Hn{p1lY z!y%{pED`)^046gj>v9*Ci@HF3c-`PS_VggSn|E;7*i;ma>AMlS8WIzi-41Q?P$fPg z8)p>NXwSWb6Rg!t@Rl*cRmQ=T3j5IoUyNjY$2we4bfbn_eAqTtm>rTK3`|%p_Ip3! zxuXx|A@5itKX_&`B%R{m4C##AF3NgGs7GDj*-*cEkt6JP*(GZF)LY%H0LRG#f&y}82sCrj4qP%TQ{bmL& zJI7g%EO|bP7uj$GQ$N;cwA;NCCnrCk$xKO0f`}Va7^OJjX`!`t8}3mM>ez{3 zBh#@|kXu%Yri4uks~}~G#0B%~7 zdo@z-P7 zHOea1d90>MpVv?bB=5+OkW~fR?+Z3Ip(nk$gsek4+BHw8lD58E5^j~B;|E8$HW4B& zje($JA=RWDB027_lCN-HCvZeE<0$gg_IaW0Y%0Qkzos}X-Z6(PIAM`0NPU#CvX~9V zsgp!j3Ku1Mi?Z9O&zFkv%lb$ooU)+UpOxSIEyFkz3BT@qL2n@7M#Pqh#5teBl9&6K zDCZ<^ z1$j+0Ie5=QBq~#amxdE46%SZoQI}9du-%G`NVMh5L8Sd;I555RP;i9fH)f;|h6-Wi z^RUwH+fzJbOc+-%W|uHgYaU9H*2csK+Xc(Pr_TVr0+)ODH3Wb6-`;h89bgIN? zJ`)L)Dv{`X)q@p?Iskq4tJ2?CpCU4yj&yS>D_1;|RM_!QfkA zHVMn#x;gTps0c);67Fq*`ViC-)o4BiK+)9+?65+B7zk#utKrXuNyUNMRRk%EjDm27 z8vM_S@tyBxU-Qa)gPEeHCT1v*^B61bi2nh(!$M2=L+dh*Xat!M9t|l`mS>JvqNOIC z#t#^3pjW+J;)`VZ(?(#O$TEwLCf?rsIIHB;VzH1k9-o9E#GpVesKE#rLY^8}zPHCI z@`Ns5={BZAIH80`OKA&&22L)&fv~6F+gVV+bVw&dVH2JbnSJgMAqtl_FQCskJJWE7 zBh~P+$FH7YrCP8&bcS$m0v>|3I~*wu@1RoAKPQhNbVNWJUSWWiP-5^DkF#MD{-lLY zAMs!^uq$pEpWlSm;{ghtW}MHGx@B)xuNVEW}9xR!zx%HlIA$Oo-~+7o7)@QkGQiG>8j zM$MA;z8Oi6vU!c1EoUwhV{(ulxEV?B>!n5CcoQ<=AWJMFCN~}vCDfpjLg+;nEoh)o zEx7nh7+-ajgFkq+11y0VNzeNQpVvs5^bVL0L4zD2f<9-|)Oa*15QYMYl2~+@NbPl+ z1IXwQ1D*t`K(^@iM$&X|DM~QhO0C+A6;ptA`VGt~RWj%SRH1yZ4tSCcmQd3WC@njl zkm31dV91(E2dh(tpvy7SAcxduD{9!SAw+~y(i>MJDWWI>71F$6r;DKtG*B;P@nMYi zG%B=zWvS>N!G+-<0WH8WgitAjED%wFOX={&A_f5!JQ)L+ONkP`#(|Oa9vzQf#2BSC zVDT@n&L(C-?TAu^cE+Pr^qvmX{*`7Rcee|}8Ds2~5vW%l6AoAuqshT92rdj~m}q5RRY4(_50tc;k?nE{UO3nvqGV!Aqbh z1@Z^s;aWbIhRlQ|SYPseQj%^ex|d0TJnw{lY{>_ zAduHBMg|1(#aJr3XM!NKis1@^3&VXW1vyQF6hdz-6`g-lkduO(#kizDiH2fvhIv|5F>mBSMmeA5@sh@wL2!)=wIts|Fcig=<5hp@utgF3gPMT(K-(=_{ z*xoXWPdFndY>1#r)WAHU4bKHnJTsDXQ7~HVevwSSd5A=1J;xS(Z?VhjfFc6K5_V+S z5LybI%hMb$uP4|~@3aYs4r^+=x6|I>NU4};BB69|7f)zykkEm%K^rlp#^oj~-$(W$ zfhvRn`{4=I*_N{_5~-vt3*q-hG2sr#@puej&7LBag{n1H4tv|%snH5}d)wR0SiMd& zBfW0b85rG%81TBiaV~z*b(+ieC90EglqZ3Sr=*=BjAtr??rBS~BGn#ipT;)@p!4z*HcZ<<3_hOn#D z0TJcQ5O%Z3h7;a2Y{BByWN)SEQ@VL?@W7;-7ZM65Rp=!m%5vAbunJ0~Ql$`48t1!6 zkzR!3XEB*)sMK>7vRG1*Od*73W<)S)1G5qUFd!rt5{YKR*|f?B6o3OnL?lc`L@q2G zC=kbDabO@42m}K;3?nIsqDT@lsLTv403d7Eio8oVy%25BZxx)5<-$W3_(m#VbixMp zeh6_D95_9|IoI>?I%^i}K)2z*vmfK`Sw<4J61v|Ylyd1=Xk{#~D{sNhcW_$oCm=2H z(6QqxXDk;YJkT!ejPT+om>Ov$h6>capcDV*<7^J`a844llkiF&Pn?x}C43>noc_Yh zhgd91Pr<-2TLoBP@#XiALt{n4v`+tz-M%TfZP*ixoz7&i@wh~iFc=Gb^t(Q3CKJrA z>;2}@HSEe&_rhsCpiC+MLJ+5WCD-`a)Ie6LO6Rb&gI&|TL`MV7t-YW*O>y#!7lvJYywZ2z(iX~Ky%HSDvH70M#j@(n z7m#Q%ll9&H)TbpCPKB?@(<9?f&JASP>Z4EKNSX|T!)sw$a$s&uhUKiHqz#M)LOKv#H9A!efl6!9)%z?zA7*GiF)UU_FJ8Ra#yF?HD0%%RE)seIo))4g=9Ak zfU)I?+QrR`Z@Jc8GNQ{qex$NkjI>;2%;qOU2G}Thl!*{I0I$i$H|RkE;7^&E>TyZo z0OKv9u+;^E#o}t6f~)Cl$h0f2AgqiI2+8pG)vhWODyvZdgS#QKGmWAh=$^zC`*=6z z60P$-6HOcVxzy~?&=$Sq;)kD3>y9c-7vYC?rXcbtWvm&CK{C_ZI@7hZp3TjONse|v zf=hs@X_|;sU+$GLBOdkJmUdmbp>A4tKsHUsLC@)Rg$&%?az@L!N>djDmUB1WNkC4>_Y;mxX1}=K>{Cn!vBV~E&>1|Hlw zPMU8gmiWkynA?h)8~qG){*!!`vODg=d+I=KX~3ZDV6A>9v{|9Y6J@>KyJ&D=uTz68 ztsh{=aL~IsPw0d0S_G5mdx>!n3bsaMC%!E25kQx11|5xnC7j$H^Q?H%bCWO_lkFa~ zX(Yep?Y$)nq}5gQUeTthp_>9gZybz_6P4oDu6PQ})DK*|TTa&oz`L}12opT`7~st4 zXnd0fIF$l@_a{16qnhyz2dT+?f#3bVuwtyXJ4reXZeDBA0Od1PC@*-c$cys-;M9XQ z2GyYLbEsxkI8EpB8nbTJXP#%DlhG^agx=^3pZptpEiBBU%#&kwV!V71aRGBYOn6xc zqDdzqs>jb&R9Ocd(@X!6bcVT?YxTQBl@~}|36?YpX*4tTM^fZXw}>fDTG6pmB}Rj6 zc3yrc9L@?Z<;?lZXVMz8gg?`snXTuwlW$w$=|^ckm9@HqIaW0X8Ou;%7r^*(H#xB4+DVg!#0|D=tPQ0MK zGk}rXTiW2}iR{r((1HlMy zm&$(-oL)rcRB633l!eqkGKZgADur_P45jSjNp!8Uf(;YQ0`+J5lEh;h4!`IOl9PLi zGt^!Bp)saDhXjn?3a5qui%i4XE42-02W^6f?MI$Tfhgf3XB&T}o6oOGC#f}U0(MV% zy;!ER5&<%kxHTkiy^N|%s3gkSklZAV?;@hQfHVY%GO1VLeO6O8XG{=88sKh{=9Pz5 zkg&K#&@ECql=P|KWXi0T%U81%D4`eSn=g?+B(>-V4_9kO; z0lcwRaJtP$IQ7pf^d9u*%XUu*MqF zWQx6|dyw_9T14h%B#CtsznEeMs(SFUxzEsgUsOF>SC(H&XrWv99&>q?GGdtq6!?yh5w>oSxXA zC5HDWuel)!ICV{3A0YRBXk+~ZGchtX$>E3%Msu;Rz{nY&aN10D)1iVyN`nV24whJ* zaxMxle~;4TAbwTN;=XbpXLxl88ZAPz90x&0PPgqIPRmlF6vCmlCF)D~W<@&xSu~-a zYjd?J*n-l6Erp)Kb^9v|;w0OcY*}wtB3B^C^$*9{P$*e?$Ox)wS(ivuDhDjwgZ~}W z>0d=?yF8L19@daFa>PD6gW=Aw6Mc23z8uGecG-c-AYq7`3tNt_^Q)@rRx(u36+316 z4;Re;g3_@blgN|RvCZ_H+QW2i_p?1>kv)g1bdp=PBxZ<2tXvooRi6x0Gid+A= zQQQ3B7^FUDk{#n%%=1;?}r%>gv& zKNPpPW!A(c10_GR|4ox7*I}2cOs)w92$m=`vKpvSTF%zMw}=uCOMUJfIGn|Fg=o@1 z(UUIwP9o2v3W5DGq#&!QvGuFwe{kyk1Kq4B>4XxtJ*Hg*ckdXS&(r2v3!!1T_62)o zbJp!yM6(n5x6jz9g6?h=#0aht52?OM3lKKgC?Y7H08w(WiPi=w%diCS-_bp*xZO)_ zph;uMPZ5xe=`?Qn2AIZJWP@i#ax#BMWCpc3X|M4UXaVD~8CtSEbYyay0|M>@Qn%j; znE2hOa+L;(Y^nkcyoCVUS6892S#8}*k#O_Q02z8$(1LW3$#2^{;F18mN#t%NsxWoI zyXeY=s%UrTt@0yC%`6;bkL6G$SR9G5$Ft6{!ka818-{3uyJ3Qsvf>gNANCa9reN-J zB0+6oK*ZI_#~-DpyEmaXAv;RK;W$K(D1w_f?9$K{-m7(Yg6xhz;a&Db_5#Y?)WtPb zvozRMDF(dB>BmQ9x9^+lIxKxfXo6erhVHKN1iY0W+5zneM9R|w$+uZGscmffV_9XI z+vRB=-exS-Hh^b;Fba_lR;L9?&sN{>mEDWJNRlb#n)I&hpwxHN_Sf8Qo7sL=a2rkm zWaI$0Yr8-T(2m=ZR} zkfURD(zL_U;#)-0CE%`z?h1PnK@le^*#fEE!?8ywBCE;X`$+sEAzo)*kpAwH)6joee5Jr`z?4?#RwZefDs)x{h#ltOl`YsS z>h6BnoW`d<^fxuE&I0S^=t+rJ$=Cavje+fTXogf&#jqunq%*eW{@b}0QXr0fv9tCe zJ4?e#hG69f$_m*7QPlm8*~a+3ksLTPLFOfT~X)~ ztRrXDjtz|cdU6Y~$~=%na}}#eV3$Gf@!+LAuZP*$u%dIc(`Z6bj*=VGVpJc&v? z&##+hcWVLdj7jGZ{=Qon@W}Q@ z3da8jb>}Og*oEno9G=>41h7Da$tD|7Wa-8ey|uQz%-W(JlWJ;v9e`hz;jEKrtqqM= z!$eqOF-jE4Og(8{xwI;=e;(4Zqm4Bi8-Crvnx2*QSOV5l>mn2-eb&+}Y!UQi9uC$` zTCva$*kB8zH6+Mi(N({vgP|JjSW)bJAk>4Z2GcDbUb})8*0X|^#880*XITn`1w<-| zgvlSZkCy7*58V$&gj7t`yjuM>$(AGj8P3a&Z4 z_u1(P`-cxX92BW+<7*MB^~B(qn2_BsMBx>%4kg`K(x;?3ra1AnaXf)J&$p>MZ|i#v zgH&zCmnWlW^mKSWUy28xIT@2=f5$}hFg`tr3aS1;GDn2%$<{WD=Ke#JNE~Sj(|ADc z@==Vw!E6EK_LWHLX+0*d%F9SbI>nNcgZ&zuk%&d^O0_#Uxm87i{Y+OiV-aj=a9H4p z)ns@ZVPK0YD7BsOKYN<0lpDTu>7=(k4@;u(HGo%iU#`s9i5mIYN1Z;T}FBs!vSz@zfkmXdhBStD)g== zmEW6zYBjS1F**?qNi^P65CqGoDMGd4Y4l06na^(zJmGsZ{(shn)=$Y_4z* z15Su1ug7SY(73|V=u&_AD0-m(+$Hq=A;NStKy9PzH zy?KX11(Mob>0hP!N|yBT=sF{kja{e`el>d zECKxxEACBzjY1rh4aHuCvHpLFxOJ*{h$NtJ%uf)1u1YZtw#Pt7q^byDAYKS-W;LyJ z?F{|8A|?t1Q{3e+!SszMJD#`UoEJ`K9<1?XPw^WQ9i7LMahMxCoHF=$LSC%@;>Ht) z9;T`ZCAOyLwAmg;H1M$CHCEEtW*q0;9)M2?;Gl z1sN|_AKrL!OTSgQr^}_!5$|_HH}o+(Sc}VQf^(1S4oV(|Uw3{06I;-b;O~*l4_`)K z$Qgfsxu)g$M?AcxpxtBwOkH^xcJ|E(U2<+J)XEu7+)ntekud|KC=9{A(65PFEJ-4~ zwatfmsq+(eh35k8wWUk1nfe2eGzHCMxz576Wj=5A|NZ=+GpN#NPl%;V2)t$7uk`dTZ4S~g#^8vX_RO4Om zFuytZ*ZQ-NGy6ku?UTO(y}@jZ>ZY?0uA=MUumYx?J%lj=tRvKgejftqQX>QA9cXX1 zs#sy{O23W3-bY0Y2TCh23bm__A)#?c;+QW$H^PIWpVZ_eMxR( zq~EzqkM>=;MHPG{Pc)J8Bv9^g88Jg(AYfITJC>)IM^;NJQ&R3qcx<)nWRgfPqfV$vBTY8KTB2B&4u?Aqhv(!)+PH0Jao z&6u@2?{jumy9PNe2}39p$R=)dTIt769JS)ihEq=Fd>}qVD%Ahv6!7THMRmL=QR)wu zlT%cJ0=*cYN13f1<2H~FQLy2Co!G6*v^aq=wnOyG1g3v!{(;U+7is{VM0FW*%_|F- zFrjLjge&@2LcBqC@tTQ$X9=I&Mf~F5P1kxMb7VqZ#sCA(6!fp+`rQ`zmzpU&6}f`& zFRfT&sgx}WXQ1p7l~*!F>ejy;!?Cj|;~D=>U2{_rDEc*GI#zbrBO1(pZnSK_}rhkE(L=ctt8S(EelT1;(z}Q-?#lJOww7-lrH^z*HHa}$9VkUyE=iR(3@fuMnACwtjG5#=S*u| z-z$QrEi3%X_x=^CrnZU*g^yfWH92N5!q6SwdkQ#+E_HvO!w}_^E`&m%DU(0OmYp&n zYZ@3vI&Nc{X8XBd6cTL}XZ)Y~%goUjAdaf*MeX+@h0&yKh$YLicYW9c&@yZwi0Ge4D*WtuZWPUVG8K5P5ydMl(79DngAIigjrGaPqJs>`J$L4l47O zi=`QzWVQ)cD6uW#JOYUbQ_SRxc69$0x3+LYWe9&O&HUTD!`3Lp6Xga+ZLTrm@%dk$ zMW)A#Ii@xSS#IgKQ1MjPAXbG#qDbY#aHT@}H658I%GIH;iJQvd4yh6$^<}4GpQbKB z#I_Fi%CaY5jKqza!rGU>!}qZmhQn2=hH$#F@Y0weok@q#fbn2bic*S5fbx2h9a@$x zL-)nY<%!7F*Q8g-!_OOScTyi9Hb)I3~Qt#%}5!8FtXv+f= zTp^wX<0*dw^h$a;ir!p-J2h&H}}lZDyX;L zvVr`d=@CtCr>1SES|P_sLuoB0j~VKPveXOj#2_7HXe&Y_rE*RGfQ>Rocs{nd)!({G z1|YIJ7i?&eIj+8pL9(tWurcYFAQ0uTbj@5oG7Nn-3ih5lSI`{>AM1NC?Wnp}g`vub zun7*|$^>6lzyQmv!(*N=W+Phhf4L`1V>3x;Ab=LF z70Vw?Oo$08@++<)&L=;$71KfFJP>=DM8&|{#xexNCe_>UdK8b^aSB!Q0?6RkhQU~< zqjcfL4r-N=EAOj3ad49qb516F-3NmWslMesQ!-9&8d}!))QhV3U_Yt^JO{K{XzuyyeR+AJ zCf;~j%hPK=L?WAd-HjDERjgolPhXa_lXJlFRc2?%s`0!>Kv68G#)l0-MKs6{}6CPf@S(Op3 zng6-!9m(#A+}!|k_pzdJzsW(tXolsw8AE!6Xyc;XHgjm(6KIr;q$FGsGq3My?A{ym z5&aYmOrGeCeH8VLhwy8f;D^#--*|bv?+II^)B1%cttG+wf!-TAa|&-z?$QZIgG>T` zHQtaxt)@;T0}rPpNHK^V?L6sB0WZWgVs_ztzsQiGK68VHhS8M*bPQd`t}!9q5t|fT z>j=P(v*KC)nRn2_bwV8q*k#fSZq@LHyG?zMVXg;jNdGAeMf3_(fZ4Zt%XHQ$tS$US z8{|QzPbxYSQAd|STH9>E8YxPA`N}^*;H@;iUU_dI2qsd-mk0vC(Av;xzT<8ewpa}v zHLSpF`D%4oU+ebCe^mJ|1A4(;;iQPhpYc-Reek4t2SfKnLO3uyx+h&Z1ikLDsNCBC zn$EfDTl|x&-=}xs2RF`qqZ}J7a#;EMN1SifVYp4W|s@x(KH4Re_kYp~hf72dHh6KNKL zPZQr-U5%M8DGih-Hv5qxVDk`XDCAXtrPvd|zPlG1lZS>^F`1SYY2Jy2n;~lgAv;=zH<|tO& zij=V5w`Y_wJFlJYbxRNz*g&NFYXclvn0of#Q;OrIkBPKPjE&`ZW=zV=Muyq}yITMQ z2YrvID{^MaZ*`*8vp7Dtu2;F6qV3eXks=XXOhxYrw`Ya4fth=uSUuUabi!b zQrdbMJ+i8(mDg=wv+CLI^biP2U{}?XAo^`Zza8`4yzcu_eseIpAVNxjfwGH=S+c1x z6;=W9joRjdfQAGIvYYb`;6AKH*9@N`Gz$QS@uXxO!)SVF!mck|K8_$>H$=R(7D6%L zhr+7}+w1L+Qfm~J!2J{qg+U$KNa>U$fhh(n4^%EVAOp%P21**fkvKVY^Mrg3cRBD- zHV$q}>{4XHGRW8ew+>s09lMeQ-C0A!JC%ngiN)u`3iy-b+HqhWBx|1njL0CO*e*m6 zqEK`JJ-Th9kww)AxHEGox=PkUT=c1r52dXMS~$9_uM#v+M>mp4DvOi22GAWNr;zlP zqZ?Df)t3AotL3Kp=rY5X=7ncx(PcI=l^$K@GnW=!gB)EUEc0Gyr7sL0T`nImt0R-x z`DFqEfiekg$)HF6oDcIrNTE8`EW@;CY)5snhNqM@OUh~=o*gAD?l_q)1yhQ;nt03xv%8zOn|4P5@^w>r@J`N1SLj3J(md)S}Fh zFqW)_l6XuKbY<0gh*ipf_bpd|gZ+}TqboB>Udks?S|m}vFGb!LCu|%{-#*f+N2jH} zC?D$ts;$Mu8IRZKePkWsL`JACiT)=ngsGegmQ8OZvH6(%E~Y$IXZ1_M09BsZs$oGK z?+<3*P9{W=u(yXgHyz&!3fao;B7(%^O$B#hDG@pHmS`ktGle0*4v9LGvRAy5j0((= z&=PYpFtmzB$dUg&qtW|~8gKSPrKwWz^yI2-EAAanz+`_;N%uoO;y8nCN8+jTmlhp> zM0;5Ym@a~5Jd`eNZhl|Asbae0Q@UhKL;s5|V!D4S+lGG+u$j<;!YXb#B&NHr@6Q)) z_QK@#*$t)OdyUcSEwA2RkEgn_tRw1Ja;+GZj#}XMCK2Oqc(90pB4Rf3s); zGn*Z; z)A&z#sf-^2NNXqf`-1-^99w!p)H8IC7Pv29wWzX3hcyn2FnJr3^BrJ zinz6I5(84mETJO!P64>~e^*eD8H3ok=>RzvSpnXTLF0)mG+RbL0gyv>G`<64~D0>lUZ4+(>_rVXH@-6R5+{wrhBRN0j)hvp!S*>YycHQ(|7 zdN=>u`SxY_(v>Xvx-iY=8g5O5}a!ey@_~P537Q4tFTnoha)y z8fUw2@?%_5*Z3)KZ`Vhk`5`vn1iYuwbncZD&pU=AyY{;s^L zsu@lBUI5QT-HO1UcOe!E#$$%00x0EE@Nq2BS>##ptY~8K+WJk@Mp?O&x}O1SaR8VQ zmkU9(=Y7v;qtcZCSmOPPvP?W;0x)J@T6s6Cwt)`>aeUBr7pzqA;Ik!LB|!@TO+H&a zo1%aa7<4gWG?V(Uj_7esw8o8ss@GI#vF;LNWF8kF8txhwj&n(+3dx@$*?F9S3Fqxt z56-_Fg^dTkw}{)H5f?~WCx}sCHx(0FLv(hU_t8d~#ky5OE}5`k#`^w2^{r*XdW%6> z8bNgNfqRHJzHn|brL)yj$%nSmb8WDzz5lC@2W4p=3Kl6 zyuUCt3mCPZS+upPxWeD;goq+39*H5eLk+IxHgy#qi&12TQ)j-l)X8sqdiSKg= z9}qT%GU{cawks8mLoL)ixm9vH7qlG!H_jcv1}gH8-Kq~8gww`2VkK#BeVCAr8lxk& zSH_6g(Vnsz@dA&p1Jgomm#J@|MC}o0He-L7Qz7(-Ic`zo^YqE;_~9%<)x6ySn=Y#U zut99Ei}zIU{F$Ng!NMFm5p@efW4}xQ#e_!ou zCz9BSIJaRgvyqE3bP|FtthZ=4(&Up3evnK?eA)P3_xVOS_RazU6}>LAlb9zUNEqiO z!Y&N$qWP3$iHu+iB8s=fyt?CJg{Y2aOmUV+>PKC=L<`$; zFtzM6{ZXpU`u@qoV+*E&vr4r^uVDDdDj{K*cr*JA?gggPZiSi=64{idiS<}Prww;k zUbWMXX5P+5Gz43&`sy46LLBia1o~s4w!%I~e%y-`9u{-zeA8bb3YLPNGa#y57 zW^NU05+Pew#*#S7PbC&3yOB700?3kh%f!e7 zTrCxj2l||G=n8pTOFmRNHAG?aU^k{L`Unif&^Xaii?+D@bB5~y%D(tWm?>L&2aE4B zW4BT=?1o&jZ5~;?U)~m9n>XtRO~UQUG1jPmi7w|%-z5Q6;2}2&KO!Zt2g!L5U@yT2 z59@722EL|cc`;rqs#dOy`XtbWzDNv)m>OG#yj+thL+m0h{;!3Cw<;xHYD+g@u8we? zGH>mS2gmCqhM7jOmP7ZpYWgzSD}dY~L|=mXn9T?&$q6~RRrW~G%g0VwbSj5v(F>I& z^Zq@5{_7Wjgui(+sxobqkqDjr&r8yY^{EGgvK*2R842~G7Lfa4qo3DwE`&!)$_!#i z(Z5E|myW?tEl}MbpB#XIR#B%3=^<37?{XEQmr$yioOBcPhW9wOSakP0LXL}-qp(il z3}luB*hL*PTNbltLJ-4P1`oKmcxN5bV7_#1O3s`DT0y4jl}NNdK{DJ8^t{#9&- zTEDa?L*sM}=CB|zLLE5bgDPjNGEuBAcaY0ae$R3ex1Um;yavbF(8M35JT-3%wOK)j zLsTQ~TY*P8B;PM;uZUO=5=5DSuy0gMCVp7PTP#&+eOGbYQ?~9*M@YFSiF`eVL0_F0 z?_RRq=9L8lQs#w}`BNo==p!$Wj8E7(^eTRQ6Z&ujasl3O-WU4t9f)7oHvM=@KOnlq zF)*ompXmE-aevPYdY_5BmMUj&NeJ!Y1ygXzlb&^kNE$|;OF`&mi47YF<4TH=V{wKk z(wM7+b*s^^eVn?en1i~1aNrn!ETrTBQ`ToyDxUAxs!m7CQVVYWH!y~nftbS!$3!CJ z!#QnSvrdRGOy>0wZEu>zptzia?lI}caH_5Dq95V%Ft{XWY={>7Hf!G zQ%g3^&%@1RYDfZ{q7HtYUZvGqkinxtJ=bmRXK_Z8S7Rn*yKJ7i1jzZ~hP(*9dnV

k1gy_aEr|;`9!NK-YZw88d!4;Tt7d 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 literal 0 HcmV?d00001 diff --git a/assets/bookpub-logo_white.png b/assets/bookpub-logo_white.png new file mode 100644 index 0000000000000000000000000000000000000000..0fbf6966e642186f6259542eacb94dfb4d427d21 GIT binary patch literal 6892 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 literal 0 HcmV?d00001 diff --git a/cli.js b/cli.js index 01f42ce..eb3243e 100755 --- a/cli.js +++ b/cli.js @@ -124,7 +124,7 @@ function runNodemon(outputType) { nodemonConfig = { script: __filename, ext: outputType === 'pdf' ? 'md,mdx,js,ejs,json,html,css,scss,yaml' : 'md,mdx,js,ejs,json,html,css,scss,yaml', - exec: `bookshop build --type ${outputType}`, + exec: `bookpub build --type ${outputType}`, watch: 'manuscript', }; } diff --git a/create-book-project.js b/create-book-project.js new file mode 100755 index 0000000..8abeb21 --- /dev/null +++ b/create-book-project.js @@ -0,0 +1,66 @@ +#!/usr/bin/env node + +import inquirer from 'inquirer'; +import fs from 'fs-extra'; +import path from 'path'; +import child_process from 'child_process'; + +const questions = [ + { + type: 'input', + name: 'bookTitle', + message: "What is your book's title?", + default: 'my-book', + }, + { + type: 'input', + name: 'authorName', + message: "What is the author's name?", + }, + { + type: 'input', + name: 'bookDescription', + message: "What's the book about?", + }, + { + type: 'input', + name: 'gitRepository', + message: "What's the git repository?", + }, +]; + +async function main() { + try { + // Get user input + const answers = await inquirer.prompt(questions); + + // Create the project directory + const projectPath = path.resolve(process.cwd(), answers.bookTitle); + await fs.ensureDir(projectPath); + + // Create the package.json + const packageJson = { + name: answers.bookTitle, + version: '0.1.0', + description: answers.bookDescription, + author: answers.authorName, + repository: { + type: 'git', + url: answers.gitRepository, + }, + }; + await fs.writeJson(path.join(projectPath, 'package.json'), packageJson, { spaces: 2 }); + + // Copy the example manuscript structure (assuming it is in a folder called 'example-manuscript') + await fs.copy('example-manuscript', path.join(projectPath, 'manuscript')); + + // Initialize git repository + child_process.execSync('git init', { cwd: projectPath }); + + console.log('Project created successfully!'); + } catch (error) { + console.error('Error:', error.message); + } +} + +main(); diff --git a/package-lock.json b/package-lock.json index 6e0e2ac..b03e11f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "bookshop", + "name": "bookpub", "version": "0.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "bookshop", + "name": "bookpub", "version": "0.2.0", "license": "WUI-LICENSE", "dependencies": { @@ -14,7 +14,8 @@ "concurrently": "^7.6.0", "css-loader": "^6.7.3", "ejs": "^3.1.9", - "fs-extra": "^11.1.0", + "fs-extra": "^11.1.1", + "inquirer": "^9.1.5", "install": "^0.13.0", "js-yaml": "^4.1.0", "mini-css-extract-plugin": "^2.7.5", @@ -32,7 +33,8 @@ "webpack-dev-server": "^4.13.1" }, "bin": { - "bookshop": "cli.js" + "bookpub": "cli.js", + "create-book-project": "create-book-project.js" } }, "node_modules/@ampproject/remapping": { @@ -2038,6 +2040,25 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -2051,6 +2072,16 @@ "node": ">=8" } }, + "node_modules/bl": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", + "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -2188,6 +2219,29 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -2312,6 +2366,11 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -2365,6 +2424,39 @@ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" }, + "node_modules/cli-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", + "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "dependencies": { + "restore-cursor": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.8.0.tgz", + "integrity": "sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.0.0.tgz", + "integrity": "sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==", + "engines": { + "node": ">= 12" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -2378,6 +2470,14 @@ "node": ">=12" } }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -2515,14 +2615,6 @@ "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, - "node_modules/concurrently/node_modules/rxjs": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", - "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, "node_modules/concurrently/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -2706,6 +2798,17 @@ "node": ">= 10" } }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -2775,6 +2878,11 @@ "node": ">=6" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -3171,6 +3279,19 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3208,6 +3329,21 @@ "bser": "2.1.1" } }, + "node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -3294,9 +3430,9 @@ } }, "node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -3759,6 +3895,25 @@ "postcss": "^8.1.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", @@ -3809,6 +3964,140 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/inquirer": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.5.tgz", + "integrity": "sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==", + "dependencies": { + "ansi-escapes": "^6.0.0", + "chalk": "^5.2.0", + "cli-cursor": "^4.0.0", + "cli-width": "^4.0.0", + "external-editor": "^3.0.3", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^6.1.2", + "run-async": "^2.4.0", + "rxjs": "^7.8.0", + "string-width": "^5.1.2", + "strip-ansi": "^7.0.1", + "through": "^2.3.6", + "wrap-ansi": "^8.1.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/inquirer/node_modules/ansi-escapes": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.1.0.tgz", + "integrity": "sha512-bQyg9bzRntwR/8b89DOEhGwctcwCrbWW/TuqTQnpqpy5Fz3aovcOTj5i8NJV6AHc8OGNdMaqdxAWww8pz2kiKg==", + "dependencies": { + "type-fest": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/type-fest": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.8.0.tgz", + "integrity": "sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q==", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/install": { "version": "0.13.0", "resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz", @@ -3971,6 +4260,17 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -4012,6 +4312,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -4802,6 +5113,32 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/log-symbols": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", + "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", + "dependencies": { + "chalk": "^5.0.0", + "is-unicode-supported": "^1.1.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -5839,6 +6176,14 @@ "multicast-dns": "cli.js" } }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -8778,6 +9123,72 @@ "node": ">=8" } }, + "node_modules/ora": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.0.tgz", + "integrity": "sha512-1/D8uRFY0ay2kgBpmAwmSA404w4OoPVhHMqRqtjvrcK/dnzcEZxMJ+V4DUbyICu8IIVRclHcOf5wlD1tMY4GUQ==", + "dependencies": { + "chalk": "^5.0.0", + "cli-cursor": "^4.0.0", + "cli-spinners": "^2.6.1", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^1.1.0", + "log-symbols": "^5.1.0", + "stdin-discarder": "^0.1.0", + "strip-ansi": "^7.0.1", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -9336,6 +9747,21 @@ "node": ">=10" } }, + "node_modules/restore-cursor": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", + "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -9358,6 +9784,22 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rxjs": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", + "integrity": "sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/sade": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", @@ -9755,6 +10197,20 @@ "node": ">=8" } }, + "node_modules/stdin-discarder": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", + "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", + "dependencies": { + "bl": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -9964,11 +10420,27 @@ "node": ">=8" } }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -10351,6 +10823,14 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dependencies": { + "defaults": "^1.0.3" + } + }, "node_modules/web-namespaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", diff --git a/package.json b/package.json index bfcef29..e591c17 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "@worlduniting/bookshop", + "name": "bookpub", "version": "0.2.0", - "description": "An advanced book typesetting and publishing framework for publishing houses. Bookshop manages a manuscript-to-market toolchain allowing publishing firms and their authors to track one markdown-based manuscript source which can be built into any format, and can be professionally typeset for print with HTML, CSS and Javascript.", + "description": "An advanced book typesetting and publishing framework for publishing houses. Bookpub manages a manuscript-to-market toolchain allowing publishing firms and their authors to track one markdown-based manuscript source which can be built into any format, and can be professionally typeset for print with HTML, CSS and Javascript.", "main": "index.js", "type": "module", "scripts": { @@ -10,11 +10,12 @@ "test": "" }, "bin": { - "bookshop": "./cli.js" + "create-book-project": "create-book-project.js", + "bookpub": "./cli.js" }, "repository": { "type": "git", - "url": "git+https://github.com/worlduniting/bookshop.git" + "url": "git+https://github.com/worlduniting/bookpub.git" }, "keywords": [ "book", @@ -33,16 +34,17 @@ "author": "Rev. Dave Thompson", "license": "WUI-LICENSE", "bugs": { - "url": "https://github.com/worlduniting/bookshop/issues" + "url": "https://github.com/worlduniting/bookpub/issues" }, - "homepage": "https://github.com/worlduniting/bookshop#readme", + "homepage": "https://github.com/worlduniting/bookpub#readme", "dependencies": { "@worlduniting/includerjs": "1.1.0", "commander": "^10.0.0", "concurrently": "^7.6.0", "css-loader": "^6.7.3", "ejs": "^3.1.9", - "fs-extra": "^11.1.0", + "fs-extra": "^11.1.1", + "inquirer": "^9.1.5", "install": "^0.13.0", "js-yaml": "^4.1.0", "mini-css-extract-plugin": "^2.7.5", From b9193a0f459a0ad6d34024b397303b62cb7a7ace Mon Sep 17 00:00:00 2001 From: revdavethompson Date: Fri, 21 Apr 2023 09:19:52 -0700 Subject: [PATCH 3/6] bookpub refactor: async --- .vscode/launch.json | 24 + __tests__/__mocks__/book.config.mock.yml | 49 + cli-wrapper.js | 21 + cli.js | 3 +- example-book/book.config.yml | 60 + lib/compile-scss.js | 14 + lib/convert.js | 149 +- lib/lint-ejs.js | 12 + lib/old-convert.js | 138 + lib/process-smartypants.js | 17 + lib/render-ejs.js | 11 + package-lock.json | 7312 ++++++++++------------ package.json | 8 +- 13 files changed, 3790 insertions(+), 4028 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 __tests__/__mocks__/book.config.mock.yml create mode 100644 cli-wrapper.js create mode 100644 example-book/book.config.yml create mode 100644 lib/compile-scss.js create mode 100644 lib/lint-ejs.js create mode 100644 lib/old-convert.js create mode 100644 lib/process-smartypants.js create mode 100644 lib/render-ejs.js diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..96f52a2 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Debug CLI", + "skipFiles": [ + "/**" + ], + "program": "${workspaceFolder}/cli.js", + "args": [ + "build", + "-t", + "html" + ], + "cwd": "${workspaceFolder}", + "runtimeArgs": [ + "--experimental-specifier-resolution=node" + ], + "nodeVersionHint": 14 + } + ] +} \ No newline at end of file diff --git a/__tests__/__mocks__/book.config.mock.yml b/__tests__/__mocks__/book.config.mock.yml new file mode 100644 index 0000000..f27698a --- /dev/null +++ b/__tests__/__mocks__/book.config.mock.yml @@ -0,0 +1,49 @@ +# Settings for the book which can be called within the book source files + +# ---------------- +# Book Meta Data +# Can be used in EJS: <%= meta.title %> +# ________________ +meta: + # add any additional data your want + # e.g. - pagecount: 221 (access with <%= meta.pagecount %>) + title: Becoming HUMAN + subtitle: A Mountaintop Experience + author: Rev Dave Thompson + isbn-13: + isbn-10: + publisher: World Uniting Press + date: 2013-03-31 + language: en + lccn: + +# ------------------- +# BookPub Settings +# ___________________ +settings: + # This is the entry point for the manuscript source + # Can also include an array of files [file1, file2, etc.] + entryfile: index.md.ejs + +# --------------------------- +# Embedded Javascript Syntax +# https://ejs.co/ +# ___________________________ +ejs-lint-options: + # Allow usage of await inside template [true/false] + await: true + # Allow old (pre-EJS v3) preprocessor-style includes [true/false] + preprocessor-include: + # Specify a custom delimiter ( i.e. { + process.exit(code); +}); diff --git a/cli.js b/cli.js index eb3243e..eda3153 100755 --- a/cli.js +++ b/cli.js @@ -20,6 +20,7 @@ const program = new Command(); program.version(packageJson.version); async function buildHtml(manuscriptDir, outputDir, outputType) { + console.log(`Your convert params are: ${manuscriptDir}, ${outputDir}, ${outputType}`) await convert(manuscriptDir, outputDir, outputType); } @@ -42,7 +43,6 @@ program .description('Build the output from the manuscript markdown files') .action(async (options) => { console.log(`Building ${options.type.toUpperCase()}...`); - if (options.type === 'html') { await buildHtml(manuscriptDir, path.join(process.cwd(), 'build', 'html'), options.type); } else if (options.type === 'pdf') { @@ -58,7 +58,6 @@ program .description('Run the development server with live-reloading') .action(async (options) => { console.log(`Running Nodemon and Webpack Server for ${options.type.toUpperCase()}...`); - if (options.type === 'html') { await buildHtml(manuscriptDir, path.join(process.cwd(), 'build', 'html'), options.type); await runWebpackDevServerAsync('html'); diff --git a/example-book/book.config.yml b/example-book/book.config.yml new file mode 100644 index 0000000..a43a0f3 --- /dev/null +++ b/example-book/book.config.yml @@ -0,0 +1,60 @@ +# Settings for the book which can be called within the book source files + +# ---------------- +# Book Meta Data +# Can be used in EJS: <%= meta.title %> +# ________________ +meta: + # add any additional data your want + # e.g. - pagecount: 221 (access with <%= meta.pagecount %>) + title: Publishing With BookPub + subtitle: Learning By Example + author: Rev Dave Thompson + isbn-13: 9023890424159 + isbn-10: 0123456789 + publisher: World Uniting Press + date: 2013-03-31 + language: en + lccn: 2010929905 + +# ------------------- +# BookPub Settings +# ___________________ +settings: + # This is the entry point for the manuscript source + # Can also include an array of files [file1, file2, etc.] + entryfile: index.md.ejs + +# --------------------------- +# Embedded Javascript Syntax +# https://ejs.co/ +# ___________________________ +ejs-lint-options: + # Allow usage of await inside template [true/false] + await: true + # Allow old (pre-EJS v3) preprocessor-style includes [true/false] + preprocessor-include: + # Specify a custom delimiter ( i.e. { // If there is a theme/css directory, include it @@ -100,21 +106,14 @@ export default async function convert(manuscriptDir, outputDir, outputType) { }); // Compile SCSS to CSS - console.log(`Loading the input scss file path with ${outputType}...\n`); + // -------------------- const scssInput = path.join(manuscriptDir, 'theme', 'css', `styles.${outputType}.scss`); - - console.log(`Loading the output css file path with ${outputType}...\n`); const cssOutput = path.join(outputDir, 'theme', 'css', `styles.${outputType}.css`); - try { - const result = sass.renderSync({ file: scssInput, outputStyle: 'compressed' }); - fs.writeFileSync(cssOutput, result.css); - } catch (error) { - console.error('\x1b[31m%s\x1b[0m', `Error compiling SCSS: ${error.message}`); - } + await compileSCSSToCSS(scssInput, cssOutput); - console.log("All Finished!\n") + console.log("-------------------\nYay! All Finished!!\n-------------------\n"); } catch (error) { - console.error('\x1b[31m%s\x1b[0m', `Error Converting Source Files: ${error.message}`); + console.error(chalk.red('\nError Converting Manuscript:'), chalk.red(error)); } } \ No newline at end of file diff --git a/lib/lint-ejs.js b/lib/lint-ejs.js new file mode 100644 index 0000000..a1770d3 --- /dev/null +++ b/lib/lint-ejs.js @@ -0,0 +1,12 @@ +import ejsLint from 'ejs-lint'; +import chalk from 'chalk'; + +export default async function lintEjs(ejsContent, ejsLintOpt) { + try { + const lintedEjs = await ejsLint(ejsContent, ejsLintOpt); + console.log('Linted EJS content:', lintedEjs); + return lintedEjs || ejsContent; // Return the original content if no linting errors are found + } catch (error) { + console.error(chalk.red('Error Linting EJS Content:'), chalk.red(error)); + } +} diff --git a/lib/old-convert.js b/lib/old-convert.js new file mode 100644 index 0000000..3a603ae --- /dev/null +++ b/lib/old-convert.js @@ -0,0 +1,138 @@ +import fs from 'fs'; +import ejs from 'ejs'; +import fse from 'fs-extra'; +import path from 'path'; +import { unified } from 'unified'; +import remarkGfm from 'remark-gfm'; +import remarkParse from 'remark-parse'; +import remarkDirective from 'remark-directive'; +import remarkHtml from 'remark-html'; +import yaml from 'js-yaml'; +import sass from 'sass'; +import ejslint from 'ejs-lint' + +// Small hack to import commonJS Smartypants into our ES Module +import { createRequire } from 'module'; +const require = createRequire(import.meta.url); +const SmartyPants = require('smartypants'); + +// Convert markdown and source files in /manuscript into +// one .html file in build/html +export default async function convert(manuscriptDir, outputDir, outputType) { + try { + + // Define outputFile within the convert function + const outputFile = path.join(outputDir, 'index.html'); + + // Set initial run variable to false (will be assigned true if already run) + let hasRun = false; + + // Make sure this only gets called once per build + if (hasRun) { + return; + } + hasRun = true; + // Create the output directory if it doesn't exist + if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); + } + + // Load and log the book.yml file + console.log("Loading book.config.yml...\n"); + const book = yaml.load(fs.readFileSync(path.join(manuscriptDir, '../book.config.yml'), 'utf8')); + + // Load the files listed + const entryFile = book.settings.entryfile; + const tocfile = path.join(manuscriptDir, 'frontmatter/toc.html.ejs'); + + // Read the contents of each file and concatenate them into one markdown document + console.log(`Loading manuscript source files...\n`); + const templatePath = path.join(manuscriptDir, entryFile); + const templateContent = fs.readFileSync(templatePath, 'utf8'); + + console.log("Linting toc"); + try { + ejslint(tocfile); + } catch (err) { + console.error('EJS Lint Error:', err.message) + } + + // Lint (Check for errors) the ejs content + console.log('Checking EJS files for errors...') + const lintedEjs = templateContent; + try { + ejslint(lintedEjs); + } catch (err) { + console.error('EJS Lint Error:', err.message) + } + + // Render the EJS template with the book data and processed HTML content + const processedEJS = ejs.render(templateContent, { + meta: book.meta, + outputType: outputType, + manuscriptDir: manuscriptDir, + path: path, + }, { views: [manuscriptDir] }); + + // Convert the markdown document to HTML using Unified Remark + console.log("Converting manuscript Markdown files into HTML...\n"); + const html = unified() + // convert markdown to a MD-AST syntax tree + .use(remarkParse) + // convert md-ast to gfm-ast (Github Flavored Markdown) and pass options + .use(remarkGfm, book['gfm-options']) + // convert md-ast into directive-ast + // allows plugin creation for custom directives + .use(remarkDirective) + // convert gfm-ast to html-ast + // but don't git rid of none-markdown syntax + .use(remarkHtml, { sanitize: false }) + .processSync(processedEJS) + // convert to a string + .toString(); + + // Use Smartypants to process symbols and quotes + console.log("Converting symbols to smart symbols with \"smartypants\"...\n"); + const smartHtml = SmartyPants.default(html) + + // Write final output to output file (build/html/index.html) + fs.writeFileSync(outputFile, smartHtml); + + // Copy the contents of the "./manuscript/theme" directory into the "./build/html" directory + const themeSrcDir = path.join(manuscriptDir, 'theme'); + const themeDestDir = path.join(outputDir, 'theme'); + + console.log("Copying theme into build folder, but ignoring styles..css...\n"); + // Copy the theme/css directory, but not its contents + await fse.copy(themeSrcDir, themeDestDir, { + filter: (src) => { + // If there is a theme/css directory, include it + if (fs.lstatSync(src).isDirectory()) { + return true; + } + + // But ignore files in the theme/css/ directory + const relativePath = path.relative(themeSrcDir, src); + return !relativePath.startsWith('css'); + }, + }); + + // Compile SCSS to CSS + console.log(`Loading the input scss file path with ${outputType}...\n`); + const scssInput = path.join(manuscriptDir, 'theme', 'css', `styles.${outputType}.scss`); + + console.log(`Loading the output css file path with ${outputType}...\n`); + const cssOutput = path.join(outputDir, 'theme', 'css', `styles.${outputType}.css`); + + try { + const result = sass.renderSync({ file: scssInput, outputStyle: 'compressed' }); + fs.writeFileSync(cssOutput, result.css); + } catch (error) { + console.error('\x1b[31m%s\x1b[0m', `Error compiling SCSS: ${error.message}`); + } + + console.log("All Finished!\n") + } catch (error) { + console.error('\x1b[31m%s\x1b[0m', `Error Converting Source Files: ${error.message}`); + } +} \ No newline at end of file diff --git a/lib/process-smartypants.js b/lib/process-smartypants.js new file mode 100644 index 0000000..0dddcf5 --- /dev/null +++ b/lib/process-smartypants.js @@ -0,0 +1,17 @@ +import { createRequire } from 'module'; + +// Small hack to use this CJS module in our ESM module +const require = createRequire(import.meta.url); +const SmartyPants = require('smartypants'); + +export default async function processSmartpants(processedEJS) { + return new Promise((resolve) => { + try { + const smartHtml = SmartyPants.default(processedEJS); + resolve(smartHtml); + } catch (error) { + console.error('Error processing Smartypants:', error); + resolve(processedEJS); // Return the original content if Smartypants processing fails + } + }); +} diff --git a/lib/render-ejs.js b/lib/render-ejs.js new file mode 100644 index 0000000..e0ebb8e --- /dev/null +++ b/lib/render-ejs.js @@ -0,0 +1,11 @@ +import ejs from 'ejs'; + +export default async function renderEjs(ejsContent, book, outputType, manuscriptDir, path) { + const processedEJS = ejs.render(ejsContent, { + meta: book.meta, + outputType: outputType, + manuscriptDir: manuscriptDir, + path: path, + }, { views: [manuscriptDir] }); + return processedEJS; +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index b03e11f..01577bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,22 +9,20 @@ "version": "0.2.0", "license": "WUI-LICENSE", "dependencies": { - "@worlduniting/includerjs": "1.1.0", + "chalk": "^5.2.0", "commander": "^10.0.0", "concurrently": "^7.6.0", "css-loader": "^6.7.3", "ejs": "^3.1.9", + "ejs-lint": "^2.0.0", "fs-extra": "^11.1.1", "inquirer": "^9.1.5", "install": "^0.13.0", "js-yaml": "^4.1.0", "mini-css-extract-plugin": "^2.7.5", + "myst-cli": "^0.1.24", "nodemon": "^2.0.22", "npm": "^9.6.2", - "remark-directive": "^2.0.1", - "remark-gfm": "^3.0.1", - "remark-html": "^15.0.2", - "remark-parse": "^10.0.1", "sass": "^1.60.0", "smartypants": "^0.1.6", "unified": "^10.1.2", @@ -37,1297 +35,751 @@ "create-book-project": "create-book-project.js" } }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "node_modules/@babel/runtime": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz", + "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==", "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" + "regenerator-runtime": "^0.13.11" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "node_modules/@citation-js/cli": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@citation-js/cli/-/cli-0.6.7.tgz", + "integrity": "sha512-lUUmPtHs1ldrNaVTk+zwc/i5GZbYEMPFRJbhoV6Yb5o3JQlUk5TTMZNZuXpmOKEeVlbjaUbIfvcghPT99CizKg==", "dependencies": { - "@babel/highlight": "^7.18.6" + "@citation-js/core": "^0.6.5", + "@citation-js/plugin-bibjson": "^0.6.5", + "@citation-js/plugin-bibtex": "^0.6.6", + "@citation-js/plugin-csl": "^0.6.7", + "@citation-js/plugin-doi": "^0.6.6", + "@citation-js/plugin-ris": "^0.6.5", + "@citation-js/plugin-wikidata": "^0.6.5", + "commander": "^9.2.0" + }, + "bin": { + "citation-js": "lib/index.js" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", - "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" } }, - "node_modules/@babel/core": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", - "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.0", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.0", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.0", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, + "node_modules/@citation-js/cli/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": "^12.20.0 || >=14" } }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@citation-js/core": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@citation-js/core/-/core-0.6.5.tgz", + "integrity": "sha512-YmfL3wby/oLgggs3hqRcllL0xYOUzTaABChTEEbcfXwrvIstgHzODG1tcPAVg/EVuVH151uMR9xttuzu+Lbxcg==", "dependencies": { - "ms": "2.1.2" + "@citation-js/date": "^0.5.0", + "@citation-js/name": "^0.4.2", + "fetch-ponyfill": "^7.1.0", + "sync-fetch": "^0.4.1" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "node": ">=14.0.0" } }, - "node_modules/@babel/generator": { - "version": "7.21.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", - "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", - "dependencies": { - "@babel/types": "^7.21.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, + "node_modules/@citation-js/date": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@citation-js/date/-/date-0.5.1.tgz", + "integrity": "sha512-1iDKAZ4ie48PVhovsOXQ+C6o55dWJloXqtznnnKy6CltJBQLIuLLuUqa8zlIvma0ZigjVjgDUhnVaNU1MErtZw==", "engines": { - "node": ">=6.9.0" + "node": ">=10.0.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, + "node_modules/@citation-js/name": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@citation-js/name/-/name-0.4.2.tgz", + "integrity": "sha512-brSPsjs2fOVzSnARLKu0qncn6suWjHVQtrqSUrnqyaRH95r/Ad4wPF5EsoWr+Dx8HzkCGb/ogmoAzfCsqlTwTQ==", "engines": { - "node": ">=6.0.0" + "node": ">=6" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "node_modules/@citation-js/plugin-bibjson": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@citation-js/plugin-bibjson/-/plugin-bibjson-0.6.5.tgz", + "integrity": "sha512-SiWVgwWOs/up2FxAJlx56QPoWXDsjXMhVz0VUjzmS6bm+PXmqtzNDmqTCwf/CVgYWKl7UJStmsuB4WgnTlGBBA==", "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "@citation-js/date": "^0.5.0", + "@citation-js/name": "^0.4.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" + "@citation-js/core": "^0.6.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "node_modules/@citation-js/plugin-bibtex": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@citation-js/plugin-bibtex/-/plugin-bibtex-0.6.6.tgz", + "integrity": "sha512-hDcMK+e+WaA8f3b+SkIVB+41w39Yf3AVGQ6Ee1amC4KCF5kS6IoiAC5dUquCZoaJCrh5PEg1fyX2tuii6WkOhA==", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@citation-js/date": "^0.5.0", + "@citation-js/name": "^0.4.2", + "moo": "^0.5.1" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dependencies": { - "@babel/types": "^7.18.6" + "node": ">=14.0.0" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "@citation-js/core": "^0.6.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "node_modules/@citation-js/plugin-csl": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@citation-js/plugin-csl/-/plugin-csl-0.6.7.tgz", + "integrity": "sha512-cgMCaujDaSnYPHmmyk5vp7UTVmEEkToqh1gFH5OGUOlLOaFmRTQn8kssMrVQR/mBZlQmMeoh5NYVktNeo5eDCg==", "dependencies": { - "@babel/types": "^7.18.6" + "@citation-js/date": "^0.5.0", + "citeproc": "^2.4.6" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "@citation-js/core": "^0.6.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "node_modules/@citation-js/plugin-doi": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@citation-js/plugin-doi/-/plugin-doi-0.6.6.tgz", + "integrity": "sha512-7XJ20MFiC3pa5hEuN1VWvD0yQy1w19pD7X+NvChFnVVnxMQXnKo+1ZtjgQBSA4agseLeXlXSJe7xl9btjx/DKg==", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@citation-js/date": "^0.5.0" }, "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "@citation-js/core": "^0.6.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "node_modules/@citation-js/plugin-ris": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@citation-js/plugin-ris/-/plugin-ris-0.6.5.tgz", + "integrity": "sha512-DEKVeSL1Da79RI4F60IUQjgoFiVxYoKzv9RsyGe4oDGNKjlKfYrJkCVkfCI5rNX6z9rh3Ei5THDy+ka8jploVw==", "dependencies": { - "@babel/types": "^7.20.2" + "@citation-js/date": "^0.5.0", + "@citation-js/name": "^0.4.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "@citation-js/core": "^0.6.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "node_modules/@citation-js/plugin-wikidata": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@citation-js/plugin-wikidata/-/plugin-wikidata-0.6.5.tgz", + "integrity": "sha512-ry5LrCjapqqmdQZaYavnb3wPOoKaXLIySjJ8tSTjdyNaoX3xM8KbiFl55a9GlsVfDmGDZKbm2DjKocMqkybCng==", "dependencies": { - "@babel/types": "^7.18.6" + "@citation-js/date": "^0.5.0", + "@citation-js/name": "^0.4.2", + "wikidata-sdk": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "@citation-js/core": "^0.6.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "engines": { - "node": ">=6.9.0" + "node": ">=10.0.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@jupyterlab/nbformat": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@jupyterlab/nbformat/-/nbformat-3.5.2.tgz", + "integrity": "sha512-Ml5hNpS9tMqZ9ThI24+iXHgX71XWQAysyPOU1vA3idvTGCbGhVc4FaZcDX17uepA7yIEUitlj4xQGtJR8hNzuA==", "dependencies": { - "color-name": "1.1.3" + "@lumino/coreutils": "^1.11.0" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" + "node_modules/@lumino/coreutils": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-1.12.1.tgz", + "integrity": "sha512-JLu3nTHzJk9N8ohZ85u75YxemMrmDzJdNgZztfP7F7T7mxND3YVNCkJG35a6aJ7edu1sIgCjBxOvV+hv27iYvQ==", + "peerDependencies": { + "crypto": "1.0.1" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dependencies": { - "has-flag": "^3.0.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=4" + "node": ">= 8" } }, - "node_modules/@babel/parser": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", - "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "node": ">= 8" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">= 8" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@reduxjs/toolkit": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.5.tgz", + "integrity": "sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/connect": "*", + "@types/node": "*" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": "*" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": "*" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/express-serve-static-core": "*", + "@types/node": "*" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@types/eslint": { + "version": "8.21.3", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", + "integrity": "sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/estree": "*", + "@types/json-schema": "*" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/eslint": "*", + "@types/estree": "*" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@types/express": { + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", + "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@types/express-serve-static-core": { + "version": "4.17.33", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", + "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "node_modules/@types/extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz", + "integrity": "sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw==" + }, + "node_modules/@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@types/unist": "*" } }, - "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "node_modules/@types/http-proxy": { + "version": "1.17.10", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz", + "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" + "@types/node": "*" } }, - "node_modules/@babel/traverse": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", - "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "node_modules/@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.1", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.2", - "@babel/types": "^7.21.2", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" + "@types/unist": "*" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" + }, + "node_modules/@types/node": { + "version": "18.15.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.0.tgz", + "integrity": "sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "@types/express": "*" } }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "node_modules/@types/serve-static": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", + "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } }, - "node_modules/@babel/types": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", - "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@types/node": "*" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + "node_modules/@types/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw==" }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "engines": { - "node": ">=10.0.0" - } + "node_modules/@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" + "@types/node": "*" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@unified-latex/unified-latex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex/-/unified-latex-1.3.1.tgz", + "integrity": "sha512-j7okSMsMzcUX75W3Ej0FpS6nxDspFJ8LaqDAVdFwtvP03p8GcdT05EFUB8ho9wjEBoswyWHnJhOYBGtlUMqOog==", "dependencies": { - "sprintf-js": "~1.0.2" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-parse": "^1.3.1", + "@unified-latex/unified-latex-util-to-string": "^1.3.1", + "unified": "^10.1.2" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@unified-latex/unified-latex-builder": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-builder/-/unified-latex-builder-1.3.1.tgz", + "integrity": "sha512-X2nUVgrdGz5QwCFtQGheI3cw0DmyPKVHY6XZkOy316UVLZVGYKhvsFpdIguXGfcrlz7McyXa6NoFew3N/EP/lQ==", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "@unified-latex/unified-latex-types": "^1.3.1" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "node_modules/@unified-latex/unified-latex-ctan": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-ctan/-/unified-latex-ctan-1.3.1.tgz", + "integrity": "sha512-H9YonJiGiRhOYstrCX9TCsrXiZHKIoBXxT7E4XNa6TC86Zx9Lck4dH65JkW8Eb0BOO8zsFHjVuRIYVrt8MZiMQ==", + "dependencies": { + "@unified-latex/unified-latex-builder": "^1.3.1", + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-argspec": "^1.3.1", + "@unified-latex/unified-latex-util-arguments": "^1.3.1", + "@unified-latex/unified-latex-util-comments": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-pegjs": "^1.3.1", + "@unified-latex/unified-latex-util-print-raw": "^1.3.1", + "@unified-latex/unified-latex-util-render-info": "^1.3.1", + "@unified-latex/unified-latex-util-replace": "^1.3.1", + "@unified-latex/unified-latex-util-scan": "^1.3.1", + "@unified-latex/unified-latex-util-split": "^1.3.1", + "@unified-latex/unified-latex-util-trim": "^1.3.1", + "@unified-latex/unified-latex-util-visit": "^1.3.1", + "color": "^4.2.3" + } + }, + "node_modules/@unified-latex/unified-latex-prettier": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-prettier/-/unified-latex-prettier-1.3.1.tgz", + "integrity": "sha512-P234E5Crn3ulNor+k3CDlFo99wJvW0uCxwHvdGd4so2aMilVwmZbzQMMc2BseC5VWT5wPLlZo7ow5mQctVTf+g==", + "dependencies": { + "@unified-latex/unified-latex-ctan": "^1.3.1", + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-align": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-parse": "^1.3.1", + "@unified-latex/unified-latex-util-pgfkeys": "^1.3.1", + "@unified-latex/unified-latex-util-print-raw": "^1.3.1", + "@unified-latex/unified-latex-util-trim": "^1.3.1", + "@unified-latex/unified-latex-util-visit": "^1.3.1", + "prettier": "^2.6.2", + "unified": "^10.1.2" + } + }, + "node_modules/@unified-latex/unified-latex-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-types/-/unified-latex-types-1.3.1.tgz", + "integrity": "sha512-697Wc68b6HC4pG9+Gpt9hvZYJUeKQzNGY3ONTVERN3Sqfngd64i2p1Yh1dcqMxspckXaXwIn72XHRBSofITxSw==" }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "engines": { - "node": ">=8" + "node_modules/@unified-latex/unified-latex-util-align": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-align/-/unified-latex-util-align-1.3.1.tgz", + "integrity": "sha512-Ym3Xhf7sNkIqLlETkEqC5eFotvkTyXB+Ee9Y7bo1O11qZ+AhwpkyG7E2Crcjw0oToURe3xDQzjMvkNTbFL/OOQ==", + "dependencies": { + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-pegjs": "^1.3.1" } }, - "node_modules/@jest/console": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.5.0.tgz", - "integrity": "sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==", + "node_modules/@unified-latex/unified-latex-util-argspec": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-argspec/-/unified-latex-util-argspec-1.3.1.tgz", + "integrity": "sha512-nKFq2ziVxJpRt6oE08HnpGMOugfgRHDsf9ydO7mzhOpVxDbVbr7y0T71CnJOwFZz6lFJJIsFv/J2yiKNtYD1TA==", "dependencies": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-util-pegjs": "^1.3.1" } }, - "node_modules/@jest/core": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.5.0.tgz", - "integrity": "sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==", + "node_modules/@unified-latex/unified-latex-util-arguments": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-arguments/-/unified-latex-util-arguments-1.3.1.tgz", + "integrity": "sha512-mOz6QVHE4nBEQypqN+f0PY/17HVBZ8cCjNopGKCS1o1ZEFXHvrjOPYVrJlKHpKFqmoSs6Nk4uiGISA1d9u51Aw==", "dependencies": { - "@jest/console": "^29.5.0", - "@jest/reporters": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.5.0", - "jest-config": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@unified-latex/unified-latex-builder": "^1.3.1", + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-argspec": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-render-info": "^1.3.1", + "@unified-latex/unified-latex-util-scan": "^1.3.1", + "@unified-latex/unified-latex-util-visit": "^1.3.1", + "unified": "^10.1.2" } }, - "node_modules/@jest/environment": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.5.0.tgz", - "integrity": "sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==", + "node_modules/@unified-latex/unified-latex-util-catcode": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-catcode/-/unified-latex-util-catcode-1.3.1.tgz", + "integrity": "sha512-Vr++2ahMIUri1WcFND616hIjRejQRWcMH4P81zbwCY2w47OIl6oQkEffc6HTcmvlsC8dedGQp5C/xRq9EztRSQ==", "dependencies": { - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-mock": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-visit": "^1.3.1" } }, - "node_modules/@jest/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==", + "node_modules/@unified-latex/unified-latex-util-comments": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-comments/-/unified-latex-util-comments-1.3.1.tgz", + "integrity": "sha512-y6ZqhhpGK+nxC19ANHWHo77GE440HjRmTvy1+p6wB3GNbILKAvwrpwLMp/tcOEs2A/p2i2BYmxBc5239trhS3Q==", "dependencies": { - "expect": "^29.5.0", - "jest-snapshot": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-replace": "^1.3.1" } }, - "node_modules/@jest/expect-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.5.0.tgz", - "integrity": "sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==", + "node_modules/@unified-latex/unified-latex-util-environments": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-environments/-/unified-latex-util-environments-1.3.1.tgz", + "integrity": "sha512-YsZiZBKLxLKv/WX+CMQLCmhR2HeAC0ZtjgXj/aNqAP0uXN7UTC2N6SA2WodPtd7j2kMn+rv852DQCxffOU1Mfw==", "dependencies": { - "jest-get-type": "^29.4.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-arguments": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-print-raw": "^1.3.1", + "@unified-latex/unified-latex-util-render-info": "^1.3.1", + "@unified-latex/unified-latex-util-visit": "^1.3.1", + "unified": "^10.1.2" } }, - "node_modules/@jest/fake-timers": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.5.0.tgz", - "integrity": "sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==", + "node_modules/@unified-latex/unified-latex-util-match": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-match/-/unified-latex-util-match-1.3.1.tgz", + "integrity": "sha512-tFgcbL8bMOVvOt9+ADzaiPZTN+P6bECu1sUNNdS/uVK+MXhr/1iJDfOkaJEoKGYEScyivS3i2gtVsJW4VM+QIQ==", "dependencies": { - "@jest/types": "^29.5.0", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-print-raw": "^1.3.1" } }, - "node_modules/@jest/globals": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.5.0.tgz", - "integrity": "sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==", + "node_modules/@unified-latex/unified-latex-util-parse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-parse/-/unified-latex-util-parse-1.3.1.tgz", + "integrity": "sha512-QstGPhdZhHbRG3uafrvm5SrCYmc8WRdp3Rn67XgzVh20NHHDJ2mGbS5dQEhw4MfYcZYK5Z+JUMOEzxpm65welQ==", + "dependencies": { + "@unified-latex/unified-latex-ctan": "^1.3.1", + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-arguments": "^1.3.1", + "@unified-latex/unified-latex-util-catcode": "^1.3.1", + "@unified-latex/unified-latex-util-environments": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-pegjs": "^1.3.1", + "@unified-latex/unified-latex-util-print-raw": "^1.3.1", + "@unified-latex/unified-latex-util-trim": "^1.3.1", + "@unified-latex/unified-latex-util-visit": "^1.3.1", + "unified": "^10.1.2" + } + }, + "node_modules/@unified-latex/unified-latex-util-pegjs": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-pegjs/-/unified-latex-util-pegjs-1.3.1.tgz", + "integrity": "sha512-iRM3gteoqbVG7qr8h4byJavJOfnNlqkGcleWRG40242NxQfavVlaRtCNcBi0agyqgQ5kCgFHSvqDI8V7FvPflg==", "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/types": "^29.5.0", - "jest-mock": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1" } }, - "node_modules/@jest/reporters": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.5.0.tgz", - "integrity": "sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==", + "node_modules/@unified-latex/unified-latex-util-pgfkeys": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-pgfkeys/-/unified-latex-util-pgfkeys-1.3.1.tgz", + "integrity": "sha512-1UpBO8VtBvs6TwcH5TPLv8TpwJlCg1UOxLeQnJ/Yzzb2r+2oU4oZP+q81d0RTe7hXYg541i0jcTBhaWKilAWiA==", "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-pegjs": "^1.3.1", + "@unified-latex/unified-latex-util-print-raw": "^1.3.1" } }, - "node_modules/@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", + "node_modules/@unified-latex/unified-latex-util-print-raw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-print-raw/-/unified-latex-util-print-raw-1.3.1.tgz", + "integrity": "sha512-c2LiNMdr4UBR9r+lzW3EdW7wlpcCpaeHIR5vO8vpD7KRF2sajshgeBD7ZhJ++t0axr6HTKTKy4JN12zV2UIotQ==", "dependencies": { - "@sinclair/typebox": "^0.25.16" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-types": "^1.3.1" } }, - "node_modules/@jest/source-map": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.4.3.tgz", - "integrity": "sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==", + "node_modules/@unified-latex/unified-latex-util-render-info": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-render-info/-/unified-latex-util-render-info-1.3.1.tgz", + "integrity": "sha512-9eVQw0iIDiycJo+UkSF5BnjEgWCZLzTxtRwFQ3djNXSoJnrGLBKsb3Q5/ZhgkCvFgXKFgvynzRApg12sT6R99g==", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.15", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-visit": "^1.3.1" } }, - "node_modules/@jest/test-result": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.5.0.tgz", - "integrity": "sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==", + "node_modules/@unified-latex/unified-latex-util-replace": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-replace/-/unified-latex-util-replace-1.3.1.tgz", + "integrity": "sha512-hqYJ8eTp2ZLO13ZBT8IGCSP+EkC0UR2d3ds9xycEy+kzL1bnIno0E5g5MfIKk4A1zptPh28msbPy/8gsD/S5jg==", "dependencies": { - "@jest/console": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-split": "^1.3.1", + "@unified-latex/unified-latex-util-trim": "^1.3.1", + "@unified-latex/unified-latex-util-visit": "^1.3.1", + "unified": "^10.1.2" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz", - "integrity": "sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==", + "node_modules/@unified-latex/unified-latex-util-scan": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-scan/-/unified-latex-util-scan-1.3.1.tgz", + "integrity": "sha512-mMG0wRKcUlz0oryeo7eKhsFEYs9W2FLPNuT4pPUgJNkVOrWMRfgnBXlY+3MeGFSM5GWa90BK3loLcMwtR0FmSw==", "dependencies": { - "@jest/test-result": "^29.5.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-print-raw": "^1.3.1", + "trie-prefix-tree": "^1.5.1" } }, - "node_modules/@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "node_modules/@unified-latex/unified-latex-util-split": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-split/-/unified-latex-util-split-1.3.1.tgz", + "integrity": "sha512-OCeRB2tbp7P1yzAP0tCrSBm4D3LS0angf6UH4rX7PzhxalKNyo6K4oIHsp5zavaoBtxJ7LvdNnc9hXrxhBSnIg==", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1" } }, - "node_modules/@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", + "node_modules/@unified-latex/unified-latex-util-to-string": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-to-string/-/unified-latex-util-to-string-1.3.1.tgz", + "integrity": "sha512-E+Xc+DuZcLnWNysNiZT4N/AkhvyMaw80QBBUQ7z9bp5ZETnVRNgLmjA7IfajvNijvQ2cP1iX4cgxwUG5UpAeGg==", "dependencies": { - "@jest/schemas": "^29.4.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@unified-latex/unified-latex-prettier": "^1.3.1", + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-print-raw": "^1.3.1", + "prettier": "^2.6.2", + "unified": "^10.1.2" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "node_modules/@unified-latex/unified-latex-util-trim": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-trim/-/unified-latex-util-trim-1.3.1.tgz", + "integrity": "sha512-spCHOJ5fl2qqVthTnFe2jG8Tii3j/YLgN2n7ajj+BGc23o8Dv89sQNfUDOnCgvToaLdA5KeQFMixta6ewxxV0Q==", "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1", + "@unified-latex/unified-latex-util-render-info": "^1.3.1", + "@unified-latex/unified-latex-util-visit": "^1.3.1", + "unified": "^10.1.2" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "engines": { - "node": ">=6.0.0" + "node_modules/@unified-latex/unified-latex-util-visit": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@unified-latex/unified-latex-util-visit/-/unified-latex-util-visit-1.3.1.tgz", + "integrity": "sha512-bBAA23VpPQZ6b1kDdfcTVsZqd82V3YX3nRHAIThH6cZ6802gn2cNW2DnmYV738gegcbA74LgPREPv3mkUWe+HA==", + "dependencies": { + "@unified-latex/unified-latex-types": "^1.3.1", + "@unified-latex/unified-latex-util-match": "^1.3.1" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" - }, - "node_modules/@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==" - }, - "node_modules/@sinonjs/commons": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz", - "integrity": "sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz", - "integrity": "sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==", - "dependencies": { - "@sinonjs/commons": "^2.0.0" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.21.3", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", - "integrity": "sha512-fa7GkppZVEByMWGbTtE5MbmXWJTVbrjjaS8K6uQj+XtuuUv1fsuPAxhygfqLmsb/Ufb3CV8deFCpiMfAgi00Sw==", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.33", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", - "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/hast": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", - "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/http-proxy": { - "version": "1.17.10", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.10.tgz", - "integrity": "sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" - }, - "node_modules/@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" - }, - "node_modules/@types/node": { - "version": "18.15.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.0.tgz", - "integrity": "sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==" - }, - "node_modules/@types/parse5": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", - "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==" - }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", - "dependencies": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" - }, - "node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.22", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.22.tgz", - "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { @@ -1493,274 +945,6 @@ } } }, - "node_modules/@worlduniting/includerjs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@worlduniting/includerjs/-/includerjs-1.1.0.tgz", - "integrity": "sha512-/S8jCSORWVkwuPDVJJXUDbleC46WbLS3WKUZrzhEdYnhvS7N34qVRx7p55DoaqmAow0pFsHev5Rs/ehHg70esg==", - "dependencies": { - "ansi-escapes": "^4.3.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^4.3.0", - "anymatch": "^3.1.3", - "argparse": "^1.0.10", - "babel-jest": "^29.5.0", - "babel-plugin-istanbul": "^6.1.1", - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.1", - "babel-preset-jest": "^29.5.0", - "balanced-match": "^1.0.2", - "brace-expansion": "^1.1.11", - "braces": "^3.0.2", - "browserslist": "^4.21.5", - "bser": "^2.1.1", - "buffer-from": "^1.1.2", - "callsites": "^3.1.0", - "camelcase": "^5.3.1", - "caniuse-lite": "^1.0.30001465", - "chalk": "^4.1.2", - "char-regex": "^1.0.2", - "ci-info": "^3.8.0", - "cjs-module-lexer": "^1.2.2", - "cliui": "^8.0.1", - "co": "^4.6.0", - "collect-v8-coverage": "^1.0.1", - "color-convert": "^2.0.1", - "color-name": "^1.1.4", - "concat-map": "^0.0.1", - "convert-source-map": "^2.0.0", - "cross-spawn": "^7.0.3", - "debug": "^4.3.4", - "dedent": "^0.7.0", - "deepmerge": "^4.3.0", - "detect-newline": "^3.1.0", - "diff-sequences": "^29.4.3", - "electron-to-chromium": "^1.4.328", - "emittery": "^0.13.1", - "emoji-regex": "^8.0.0", - "error-ex": "^1.3.2", - "escalade": "^3.1.1", - "escape-string-regexp": "^2.0.0", - "esprima": "^4.0.1", - "execa": "^5.1.1", - "exit": "^0.1.2", - "expect": "^29.5.0", - "fast-json-stable-stringify": "^2.1.0", - "fb-watchman": "^2.0.2", - "fill-range": "^7.0.1", - "find-up": "^4.1.0", - "fs.realpath": "^1.0.0", - "fsevents": "^2.3.2", - "function-bind": "^1.1.1", - "gensync": "^1.0.0-beta.2", - "get-caller-file": "^2.0.5", - "get-package-type": "^0.1.0", - "get-stream": "^6.0.1", - "glob": "^7.2.3", - "globals": "^11.12.0", - "graceful-fs": "^4.2.10", - "has": "^1.0.3", - "has-flag": "^4.0.0", - "html-escaper": "^2.0.2", - "human-signals": "^2.1.0", - "import-local": "^3.1.0", - "imurmurhash": "^0.1.4", - "inflight": "^1.0.6", - "inherits": "^2.0.4", - "is-arrayish": "^0.2.1", - "is-core-module": "^2.11.0", - "is-fullwidth-code-point": "^3.0.0", - "is-generator-fn": "^2.1.0", - "is-number": "^7.0.0", - "is-stream": "^2.0.1", - "isexe": "^2.0.0", - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^5.2.1", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.1.5", - "jest-changed-files": "^29.5.0", - "jest-circus": "^29.5.0", - "jest-cli": "^29.5.0", - "jest-config": "^29.5.0", - "jest-diff": "^29.5.0", - "jest-docblock": "^29.4.3", - "jest-each": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-pnp-resolver": "^1.2.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-resolve-dependencies": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", - "js-tokens": "^4.0.0", - "js-yaml": "^3.14.1", - "jsesc": "^2.5.2", - "json-parse-even-better-errors": "^2.3.1", - "json5": "^2.2.3", - "kleur": "^3.0.3", - "leven": "^3.1.0", - "lines-and-columns": "^1.2.4", - "locate-path": "^5.0.0", - "lru-cache": "^5.1.1", - "make-dir": "^3.1.0", - "makeerror": "^1.0.12", - "merge-stream": "^2.0.0", - "micromatch": "^4.0.5", - "mimic-fn": "^2.1.0", - "minimatch": "^3.1.2", - "ms": "^2.1.2", - "natural-compare": "^1.4.0", - "node-int64": "^0.4.0", - "node-releases": "^2.0.10", - "normalize-path": "^3.0.0", - "npm-run-path": "^4.0.1", - "once": "^1.4.0", - "onetime": "^5.1.2", - "p-limit": "^3.1.0", - "p-locate": "^4.1.0", - "p-try": "^2.2.0", - "parse-json": "^5.2.0", - "path-exists": "^4.0.0", - "path-is-absolute": "^1.0.1", - "path-key": "^3.1.1", - "path-parse": "^1.0.7", - "picocolors": "^1.0.0", - "picomatch": "^2.3.1", - "pirates": "^4.0.5", - "pkg-dir": "^4.2.0", - "pretty-format": "^29.5.0", - "prompts": "^2.4.2", - "pure-rand": "^6.0.1", - "react-is": "^18.2.0", - "require-directory": "^2.1.1", - "resolve": "^1.22.1", - "resolve-cwd": "^3.0.0", - "resolve-from": "^5.0.0", - "resolve.exports": "^2.0.1", - "semver": "^6.3.0", - "shebang-command": "^2.0.0", - "shebang-regex": "^3.0.0", - "signal-exit": "^3.0.7", - "sisteransi": "^1.0.5", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "source-map-support": "^0.5.13", - "sprintf-js": "^1.0.3", - "stack-utils": "^2.0.6", - "string-length": "^4.0.2", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "strip-bom": "^4.0.0", - "strip-final-newline": "^2.0.0", - "strip-json-comments": "^3.1.1", - "supports-color": "^7.2.0", - "supports-preserve-symlinks-flag": "^1.0.0", - "test-exclude": "^6.0.0", - "tmpl": "^1.0.5", - "to-fast-properties": "^2.0.0", - "to-regex-range": "^5.0.1", - "type-detect": "^4.0.8", - "type-fest": "^0.21.3", - "update-browserslist-db": "^1.0.10", - "v8-to-istanbul": "^9.1.0", - "walker": "^1.0.8", - "which": "^2.0.2", - "wrap-ansi": "^7.0.0", - "wrappy": "^1.0.2", - "write-file-atomic": "^4.0.2", - "y18n": "^5.0.8", - "yallist": "^3.1.1", - "yargs": "^17.7.1", - "yargs-parser": "^21.1.1", - "yocto-queue": "^0.1.0" - } - }, - "node_modules/@worlduniting/includerjs/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@worlduniting/includerjs/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@worlduniting/includerjs/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@worlduniting/includerjs/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@worlduniting/includerjs/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@worlduniting/includerjs/node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@worlduniting/includerjs/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/@worlduniting/includerjs/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@worlduniting/includerjs/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -1771,6 +955,11 @@ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==" + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -1799,12 +988,49 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "peerDependencies": { - "acorn": "^8" + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adm-zip": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", + "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==", + "engines": { + "node": ">=6.0" } }, "node_modules/ajv": { @@ -1935,97 +1161,25 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, "node_modules/async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, - "node_modules/babel-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz", - "integrity": "sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==", - "dependencies": { - "@jest/transform": "^29.5.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.5.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", - "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, "node_modules/bail": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", @@ -2064,6 +1218,26 @@ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "dependencies": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + }, + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -2082,6 +1256,11 @@ "readable-stream": "^3.4.0" } }, + "node_modules/bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" + }, "node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -2164,6 +1343,11 @@ "multicast-dns": "^7.2.5" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2211,14 +1395,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, "node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -2247,6 +1423,33 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "node_modules/buffer-image-size": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/buffer-image-size/-/buffer-image-size-0.6.4.tgz", + "integrity": "sha512-nEh+kZOPY1w+gcCMobZ6ETUp9WfibndnosbpwB1iJk/8Gt5ZF2bhS6+B6bPYz424KtwsR6Rflc3tCz1/ghX2dQ==", + "dependencies": { + "@types/node": "*" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/buffer-indexof-polyfill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "engines": { + "node": ">=0.2.0" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -2267,22 +1470,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001465", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", @@ -2298,79 +1485,72 @@ } ] }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "dependencies": { + "traverse": ">=0.3.0 <0.4" + }, + "engines": { + "node": "*" } }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/check-node-version": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/check-node-version/-/check-node-version-4.2.1.tgz", + "integrity": "sha512-YYmFYHV/X7kSJhuN/QYHUu998n/TRuDe8UenM3+m5NrkiH670lb9ILqHIvBencvJc4SDh+XcbXMR4b+TtubJiw==", + "dependencies": { + "chalk": "^3.0.0", + "map-values": "^1.0.1", + "minimist": "^1.2.0", + "object-filter": "^1.0.2", + "run-parallel": "^1.1.4", + "semver": "^6.3.0" + }, + "bin": { + "check-node-version": "bin.js" + }, + "engines": { + "node": ">=8.3.0" } }, - "node_modules/character-entities-legacy": { + "node_modules/check-node-version/node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/check-node-version/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -2405,24 +1585,47 @@ "node": ">=6.0" } }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], + "node_modules/citation-js": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/citation-js/-/citation-js-0.6.7.tgz", + "integrity": "sha512-lAIrL45UQtxiSrNNApz8WM6ttaCAn7EybF4PXouo2yst07z2YGDIhdRApW6QFtQLRWrSNFAkDG5HC4A3CdkVlg==", + "dependencies": { + "@citation-js/cli": "0.6.7", + "@citation-js/core": "0.6.5", + "@citation-js/date": "0.5.1", + "@citation-js/name": "0.4.2", + "@citation-js/plugin-bibjson": "0.6.5", + "@citation-js/plugin-bibtex": "0.6.6", + "@citation-js/plugin-csl": "0.6.7", + "@citation-js/plugin-doi": "0.6.6", + "@citation-js/plugin-ris": "0.6.5", + "@citation-js/plugin-wikidata": "0.6.5", + "citeproc": "^2.4.59" + }, + "bin": { + "citation-js": "bin/cmd.js" + }, "engines": { - "node": ">=8" + "node": ">=14" } }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + "node_modules/citation-js-utils": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/citation-js-utils/-/citation-js-utils-0.0.15.tgz", + "integrity": "sha512-B0xN2yQUZ0nUXmg5Ds32sR/njUmjRD4PzbFww9ihFass++ZlCl/JoiIEZwQEekPF7MnSfgYmoHSUaLMIO8XX+A==", + "dependencies": { + "citation-js": "^0.6.3", + "sanitize-html": "^2.7.0" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/citeproc": { + "version": "2.4.63", + "resolved": "https://registry.npmjs.org/citeproc/-/citeproc-2.4.63.tgz", + "integrity": "sha512-68F95Bp4UbgZU/DBUGQn0qV3HDZLCdI9+Bb2ByrTaNJDL5VEm9LqaiNaxljsvoaExSLEXe1/r6n2Z06SCzW3/Q==" }, "node_modules/cli-cursor": { "version": "4.0.0", @@ -2491,20 +1694,18 @@ "node": ">=6" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">=12.5.0" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2521,6 +1722,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "node_modules/colorette": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", @@ -2615,6 +1825,32 @@ "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, + "node_modules/concurrently/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/concurrently/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -2648,11 +1884,6 @@ "node": ">= 0.6" } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -2663,6 +1894,23 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/credit-roles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/credit-roles/-/credit-roles-1.0.0.tgz", + "integrity": "sha512-N3uiFeM3tRScVnecUParE1CpYjQokJHJE1yHS7oO9h5YNrw4KGm8BItSf+m8eRlwhVQL5Fjdzqy93vH2teKJ/A==" + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2676,6 +1924,13 @@ "node": ">= 8" } }, + "node_modules/crypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", + "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", + "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.", + "peer": true + }, "node_modules/css-loader": { "version": "6.7.3", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", @@ -2731,6 +1986,11 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, + "node_modules/css-selector-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", + "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==" + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -2742,6 +2002,14 @@ "node": ">=4" } }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, "node_modules/date-fns": { "version": "2.29.3", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", @@ -2762,23 +2030,6 @@ "ms": "2.0.0" } }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" - }, "node_modules/deepmerge": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", @@ -2825,41 +2076,20 @@ "node": ">= 0.8" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "engines": { - "node": ">=8" - } - }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", - "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, "node_modules/dns-equal": { @@ -2878,6 +2108,123 @@ "node": ">=6" } }, + "node_modules/docx": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/docx/-/docx-7.8.2.tgz", + "integrity": "sha512-ptaiVZunYO04z113E/jR3yZx7/VaeUap2CHM9V1YwlmGygJ2W8y2KBmAsVgzlzs+qT7+3d5W3Q7+57BgvGiL+Q==", + "dependencies": { + "@types/node": "^18.0.0", + "jszip": "^3.1.5", + "nanoid": "^3.1.20", + "xml": "^1.0.1", + "xml-js": "^1.6.8" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/doi-utils": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/doi-utils/-/doi-utils-1.0.9.tgz", + "integrity": "sha512-RmtWqu6bviA5s4ufxVy9XqcPPxcVieV6+ARhBPoUW5XSlhh9biwi6mAvRZutuM2X9nfEKy/KHuSUcjoICRMruw==" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -2902,22 +2249,59 @@ "node": ">=0.10.0" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.328", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", - "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==" + "node_modules/ejs-include-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ejs-include-regex/-/ejs-include-regex-1.0.0.tgz", + "integrity": "sha512-OTkvS8Dm8XhaE/+EKIjYjInRkNahQwkUUacAZXvA8Gqr5KEZrOsgFk8AkKYSnoTcdvKV0wnoG7YHWb4gkZFu8Q==" }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "node_modules/ejs-lint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ejs-lint/-/ejs-lint-2.0.0.tgz", + "integrity": "sha512-zt3E6MWLBYpWuUEOFRRqzB74gxCOZJAzoKmJR810U2mIrLnP1v6Xyk8tc6tl4pbT63cFoEqELPx9K8URjmpyZg==", + "dependencies": { + "chalk": "^5.0.0", + "ejs": "3.1.8", + "ejs-include-regex": "^1.0.0", + "globby": "^13.0.0", + "read-input": "^0.3.1", + "slash": "^5.0.0", + "syntax-error": "^1.1.6", + "yargs": "^17.0.0" + }, + "bin": { + "ejslint": "cli.js" + } + }, + "node_modules/ejs-lint/node_modules/ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, "engines": { - "node": ">=12" + "node": ">=0.10.0" + } + }, + "node_modules/ejs-lint/node_modules/slash": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.0.0.tgz", + "integrity": "sha512-n6KkmvKS0623igEVj3FF0OZs1gYYJ0o0Hj939yc1fyxl2xt+xYpLnzJB6xBSqOfV9ZFLEWodBBN/heZJahuIJQ==", + "engines": { + "node": ">=14.16" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/electron-to-chromium": { + "version": "1.4.328", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", + "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2943,6 +2327,14 @@ "node": ">=10.13.0" } }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -2954,14 +2346,6 @@ "node": ">=4" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", @@ -3003,18 +2387,6 @@ "node": ">=8.0.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -3085,29 +2457,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.5.0.tgz", - "integrity": "sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==", - "dependencies": { - "@jest/expect-utils": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -3292,11 +2641,31 @@ "node": ">=4" } }, + "node_modules/fair-principles": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fair-principles/-/fair-principles-1.0.3.tgz", + "integrity": "sha512-I0VhOA0UTP23X8Fh6jfU0WjK5EfTeuiVmXqPsnSVwHHPtqIVEIbvJcjsxjS6YsS9c2xSxg8zvB6nJ4hWVPgMjA==" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -3310,6 +2679,14 @@ "node": ">= 4.9.1" } }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -3321,12 +2698,53 @@ "node": ">=0.8.0" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/fetch-ponyfill": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-7.1.0.tgz", + "integrity": "sha512-FhbbL55dj/qdVO3YNK7ZEkshvj3eQ7EuIGV2I6ic/2YiocvyWv+7jg2s4AyS0wdRU75s3tA8ZxI/xPigb0v5Aw==", + "dependencies": { + "node-fetch": "~2.6.1" + } + }, + "node_modules/fetch-ponyfill/node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "dependencies": { - "bser": "2.1.1" + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/figures": { @@ -3413,6 +2831,17 @@ } } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -3457,6 +2886,7 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "hasInstallScript": true, + "optional": true, "os": [ "darwin" ], @@ -3464,19 +2894,36 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3498,12 +2945,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/get-port": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz", + "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", "engines": { - "node": ">=8.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/get-stream": { @@ -3552,12 +3002,33 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/globby": { + "version": "13.1.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.4.tgz", + "integrity": "sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/graceful-fs": { @@ -3600,6 +3071,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hast-util-embedded": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-2.0.1.tgz", + "integrity": "sha512-QUdSOP1/o+/TxXtpPFXR2mUg2P+ySrmlX7QjwHZCXqMFyYk7YmcGSvqRW+4XgXAoHifdE1t2PwFaQK33TqVjSw==", + "dependencies": { + "hast-util-is-element": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-from-parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", @@ -3618,44 +3101,46 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-parse-selector": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", - "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", + "node_modules/hast-util-has-property": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-2.0.1.tgz", + "integrity": "sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-body-ok-link": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-2.0.0.tgz", + "integrity": "sha512-S58hCexyKdD31vMsErvgLfflW6vYWo/ixRLPJTtkOvLld24vyI8vmYmkgLA5LG3la2ME7nm7dLGdm48gfLRBfw==", "dependencies": { - "@types/hast": "^2.0.0" + "@types/hast": "^2.0.0", + "hast-util-has-property": "^2.0.0", + "hast-util-is-element": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-raw": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz", - "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==", + "node_modules/hast-util-is-element": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz", + "integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==", "dependencies": { "@types/hast": "^2.0.0", - "@types/parse5": "^6.0.0", - "hast-util-from-parse5": "^7.0.0", - "hast-util-to-parse5": "^7.0.0", - "html-void-elements": "^2.0.0", - "parse5": "^6.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" + "@types/unist": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-sanitize": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-4.1.0.tgz", - "integrity": "sha512-Hd9tU0ltknMGRDv+d6Ro/4XKzBqQnP/EZrpiTbpFYfXv/uOhWeKc+2uajcbEvAEH98VZd7eII2PiXm13RihnLw==", + "node_modules/hast-util-parse-selector": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", + "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", "dependencies": { "@types/hast": "^2.0.0" }, @@ -3664,39 +3149,57 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-html": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz", - "integrity": "sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==", + "node_modules/hast-util-phrasing": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-2.0.2.tgz", + "integrity": "sha512-yGkCfPkkfCyiLfK6KEl/orMDr/zgCnq/NaO9HfULx6/Zga5fso5eqQA5Ov/JZVqACygvw9shRYWgXNcG2ilo7w==", "dependencies": { "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-raw": "^7.0.0", - "hast-util-whitespace": "^2.0.0", - "html-void-elements": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.0", - "zwitch": "^2.0.4" + "hast-util-embedded": "^2.0.0", + "hast-util-has-property": "^2.0.0", + "hast-util-is-body-ok-link": "^2.0.0", + "hast-util-is-element": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-mdast": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/hast-util-to-mdast/-/hast-util-to-mdast-8.4.1.tgz", + "integrity": "sha512-tfmBLASuCgyhCzpkTXM5kU8xeuS5jkMZ17BYm2YftGT5wvgc7uHXTZ/X8WfNd6F5NV/IGmrLsuahZ+jXQir4zQ==", + "dependencies": { + "@types/extend": "^3.0.0", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "extend": "^3.0.0", + "hast-util-has-property": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "hast-util-phrasing": "^2.0.0", + "hast-util-to-text": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "rehype-minify-whitespace": "^5.0.0", + "trim-trailing-lines": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-parse5": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz", - "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==", + "node_modules/hast-util-to-text": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz", + "integrity": "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==", "dependencies": { "@types/hast": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" + "@types/unist": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "unist-util-find-after": "^4.0.0" }, "funding": { "type": "opencollective", @@ -3728,6 +3231,14 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -3771,399 +3282,149 @@ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "node_modules/html-void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", - "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-errors/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", { "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "url": "https://github.com/sponsors/fb55" } - ] - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" - }, - "node_modules/immutable": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", - "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==" - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/inquirer": { - "version": "9.1.5", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.5.tgz", - "integrity": "sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==", - "dependencies": { - "ansi-escapes": "^6.0.0", - "chalk": "^5.2.0", - "cli-cursor": "^4.0.0", - "cli-width": "^4.0.0", - "external-editor": "^3.0.3", - "figures": "^5.0.0", - "lodash": "^4.17.21", - "mute-stream": "1.0.0", - "ora": "^6.1.2", - "run-async": "^2.4.0", - "rxjs": "^7.8.0", - "string-width": "^5.1.2", - "strip-ansi": "^7.0.1", - "through": "^2.3.6", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/inquirer/node_modules/ansi-escapes": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.1.0.tgz", - "integrity": "sha512-bQyg9bzRntwR/8b89DOEhGwctcwCrbWW/TuqTQnpqpy5Fz3aovcOTj5i8NJV6AHc8OGNdMaqdxAWww8pz2kiKg==", + ], "dependencies": { - "type-fest": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" } }, - "node_modules/inquirer/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "node_modules/htmlparser2/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "node": ">=0.12" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/inquirer/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" }, - "node_modules/inquirer/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8" } }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">= 0.8" } }, - "node_modules/inquirer/node_modules/type-fest": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.8.0.tgz", - "integrity": "sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" }, - "node_modules/inquirer/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=8.0.0" } }, - "node_modules/install": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz", - "integrity": "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==", + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, "engines": { - "node": ">= 0.10" + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } } }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "engines": { - "node": ">=10.13.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "engines": { - "node": ">= 10" - } - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node": ">=10.17.0" } }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" + "safer-buffer": ">= 2.1.2 < 3" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "engines": { - "node": ">=8" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -4177,878 +3438,641 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } + ] }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", "engines": { - "node": ">=6" + "node": ">= 4" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==" }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, - "node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "engines": { - "node": ">=12" - }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/immer" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } + "node_modules/immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==" }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/inquirer": { + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.1.5.tgz", + "integrity": "sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==", "dependencies": { - "isobject": "^3.0.1" + "ansi-escapes": "^6.0.0", + "chalk": "^5.2.0", + "cli-cursor": "^4.0.0", + "cli-width": "^4.0.0", + "external-editor": "^3.0.3", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^6.1.2", + "run-async": "^2.4.0", + "rxjs": "^7.8.0", + "string-width": "^5.1.2", + "strip-ansi": "^7.0.1", + "through": "^2.3.6", + "wrap-ansi": "^8.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=14.18.0" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/inquirer/node_modules/ansi-escapes": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.1.0.tgz", + "integrity": "sha512-bQyg9bzRntwR/8b89DOEhGwctcwCrbWW/TuqTQnpqpy5Fz3aovcOTj5i8NJV6AHc8OGNdMaqdxAWww8pz2kiKg==", + "dependencies": { + "type-fest": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "engines": { - "node": ">=0.10.0" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "node": ">=12" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "node_modules/inquirer/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, + "node_modules/inquirer/node_modules/type-fest": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.8.0.tgz", + "integrity": "sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q==", "engines": { - "node": ">=6.0" + "node": ">=14.16" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "node_modules/inquirer/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "bin": { - "jake": "bin/cli.js" - }, + "node_modules/install": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/install/-/install-0.13.0.tgz", + "integrity": "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==", "engines": { - "node": ">=10" + "node": ">= 0.10" } }, - "node_modules/jest-changed-files": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", - "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", - "dependencies": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, + "node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10.13.0" } }, - "node_modules/jest-circus": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.5.0.tgz", - "integrity": "sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==", + "node_modules/intersphinx": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/intersphinx/-/intersphinx-0.0.8.tgz", + "integrity": "sha512-qL6eaX5LOILMmQIeB2hO1kL8ln/4zFj1WV8iqjaGsdGQq/q3SgG15Ax3ohSXQhuicfVdCkL8x6qhezJeK3AP2Q==", "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/expect": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.5.0", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.5.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "chalk": "^4.1.2", + "commander": "^8.3.0", + "js-yaml": "^4.1.0", + "myst-cli-utils": "^0.0.9", + "node-fetch": "^2.6.7" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "intersphinx": "dist/intersphinx.js" } }, - "node_modules/jest-cli": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.5.0.tgz", - "integrity": "sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==", + "node_modules/intersphinx/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "@jest/core": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-config": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.5.0.tgz", - "integrity": "sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.5.0", - "@jest/types": "^29.5.0", - "babel-jest": "^29.5.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.5.0", - "jest-environment-node": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-runner": "^29.5.0", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "node_modules/intersphinx/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" } }, - "node_modules/jest-diff": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.5.0.tgz", - "integrity": "sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==", + "node_modules/intersphinx/node_modules/myst-cli-utils": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/myst-cli-utils/-/myst-cli-utils-0.0.9.tgz", + "integrity": "sha512-ldtH96s0kFc+Vez6s/pzkJn3RH3xs3oauU5bDFHLJWp9eXPE1056rPGTQCL37Rg7mawRwo5eajG1LnXeXghqhQ==", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.4.3", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "chalk": "^4.1.2", + "pretty-hrtime": "^1.0.3" } }, - "node_modules/jest-docblock": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", - "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "node_modules/intersphinx/node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "dependencies": { - "detect-newline": "^3.0.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/jest-each": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.5.0.tgz", - "integrity": "sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==", - "dependencies": { - "@jest/types": "^29.5.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "jest-util": "^29.5.0", - "pretty-format": "^29.5.0" - }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 10" } }, - "node_modules/jest-environment-node": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.5.0.tgz", - "integrity": "sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-mock": "^29.5.0", - "jest-util": "^29.5.0" + "binary-extensions": "^2.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-get-type": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", - "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { - "@jest/types": "^29.5.0", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "has": "^1.0.3" }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-leak-detector": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz", - "integrity": "sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==", - "dependencies": { - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-matcher-utils": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz", - "integrity": "sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "pretty-format": "^29.5.0" - }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-message-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.5.0.tgz", - "integrity": "sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.5.0", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.5.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-mock": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.5.0.tgz", - "integrity": "sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "jest-util": "^29.5.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" + "node": ">=12" }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.12.0" } }, - "node_modules/jest-resolve": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.5.0.tgz", - "integrity": "sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.5.0", - "jest-validate": "^29.5.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz", - "integrity": "sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dependencies": { - "jest-regex-util": "^29.4.3", - "jest-snapshot": "^29.5.0" + "isobject": "^3.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-runner": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.5.0.tgz", - "integrity": "sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==", - "dependencies": { - "@jest/console": "^29.5.0", - "@jest/environment": "^29.5.0", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.4.3", - "jest-environment-node": "^29.5.0", - "jest-haste-map": "^29.5.0", - "jest-leak-detector": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-resolve": "^29.5.0", - "jest-runtime": "^29.5.0", - "jest-util": "^29.5.0", - "jest-watcher": "^29.5.0", - "jest-worker": "^29.5.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-runner/node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/jest-runtime": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.5.0.tgz", - "integrity": "sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==", + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", "dependencies": { - "@jest/environment": "^29.5.0", - "@jest/fake-timers": "^29.5.0", - "@jest/globals": "^29.5.0", - "@jest/source-map": "^29.4.3", - "@jest/test-result": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-mock": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-resolve": "^29.5.0", - "jest-snapshot": "^29.5.0", - "jest-util": "^29.5.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.5.0.tgz", - "integrity": "sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.5.0", - "@jest/transform": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.5.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.5.0", - "jest-get-type": "^29.4.3", - "jest-matcher-utils": "^29.5.0", - "jest-message-util": "^29.5.0", - "jest-util": "^29.5.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.5.0", - "semver": "^7.3.5" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "yallist": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { - "lru-cache": "^6.0.0" + "argparse": "^2.0.1" }, "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "node_modules/jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dependencies": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "universalify": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/jest-validate": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.5.0.tgz", - "integrity": "sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==", + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dependencies": { - "@jest/types": "^29.5.0", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.4.3", - "leven": "^3.1.0", - "pretty-format": "^29.5.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/jest-watcher": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.5.0.tgz", - "integrity": "sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==", + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { - "@jest/test-result": "^29.5.0", - "@jest/types": "^29.5.0", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.5.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "safe-buffer": "~5.1.0" } }, - "node_modules/jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "node_modules/jtex": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/jtex/-/jtex-0.1.12.tgz", + "integrity": "sha512-1HwdEkXV4jkSzIYu10Lt+ILmHbRubMXFe9J3jWmqOYKv0CWi+uxWzyf4b9wZcY/SsGPkWmrOMdbVqjkDgr16+g==", "dependencies": { - "@types/node": "*", - "jest-util": "^29.5.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "chalk": "^4.1.2", + "commander": "^8.3.0", + "js-yaml": "^4.1.0", + "myst-cli-utils": "^0.0.11", + "myst-frontmatter": "^0.0.12", + "myst-templates": "^0.1.14", + "node-fetch": "^2.6.7", + "nunjucks": "^3.2.3", + "pretty-hrtime": "^1.0.3", + "simple-validators": "^0.0.3", + "unzipper": "^0.10.11" + }, + "bin": { + "jtex": "dist/jtex.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=12", + "npm": ">=6" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/jtex/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "has-flag": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, + "node_modules/jtex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "engines": { - "node": ">=4" + "node": ">= 12" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" + "node_modules/jtex/node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">=6" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "node_modules/katex": { + "version": "0.15.6", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.15.6.tgz", + "integrity": "sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], "dependencies": { - "universalify": "^2.0.0" + "commander": "^8.0.0" }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" } }, "node_modules/kind-of": { @@ -5059,14 +4083,6 @@ "node": ">=0.10.0" } }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/launch-editor": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", @@ -5076,18 +4092,26 @@ "shell-quote": "^1.7.3" } }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" }, "node_modules/loader-runner": { "version": "4.3.0", @@ -5128,105 +4152,132 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "node_modules/map-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz", + "integrity": "sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ==" + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "bin": { + "markdown-it": "bin/markdown-it.js" } }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/markdown-it-amsmath": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/markdown-it-amsmath/-/markdown-it-amsmath-0.3.1.tgz", + "integrity": "sha512-QMYopYAQHzSfOSCUIS8g84piGvmQ+GXkcfzR1J41UgxvIKPrKTcI7oRRLO/vD390JUokR7V04+jN1djeMhqBHg==", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "markdown-it": "^12.3.2" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } + "node_modules/markdown-it-deflist": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/markdown-it-deflist/-/markdown-it-deflist-2.1.0.tgz", + "integrity": "sha512-3OuqoRUlSxJiuQYu0cWTLHNhhq2xtoSFqsZK8plANg91+RJQU1ziQ6lA2LzmFAEes18uPBsHZpcX6We5l76Nzg==" }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, + "node_modules/markdown-it-dollarmath": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/markdown-it-dollarmath/-/markdown-it-dollarmath-0.4.2.tgz", + "integrity": "sha512-2qgZEyMDgW+ysfsit41N4Xcenc71RIiwNNhhJPMUQG8KX0RO+lt8PHibkD4gDrjbU/ExRbZIN112l3nQPFlr7A==", "engines": { - "node": ">=8" + "node": ">=12", + "npm": ">=6" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "markdown-it": "^12.3.2" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } + "node_modules/markdown-it-footnote": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-it-footnote/-/markdown-it-footnote-3.0.3.tgz", + "integrity": "sha512-YZMSuCGVZAjzKMn+xqIco9d1cLGxbELHZ9do/TSYVzraooV8ypsppKNmUJ0fVH5ljkCInQAtFpm8Rb3eXSrt5w==" }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/markdown-it-front-matter": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/markdown-it-front-matter/-/markdown-it-front-matter-0.2.3.tgz", + "integrity": "sha512-s9+rcClLmZsZc3YL8Awjg/YO/VdphlE20LJ9Bx5a8RAFLI5a1vq6Mll8kOzG6w/wy8yhFLBupaa6Mfd60GATkA==" + }, + "node_modules/markdown-it-myst": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/markdown-it-myst/-/markdown-it-myst-0.1.3.tgz", + "integrity": "sha512-JcPXtzopHUdh9N7e+83P01U1ME2BaCTF1tCE4Ez8fENCMuWZhwHZoeRfeWW/sXlOZisk7OBxpzcG0uHp8gGj+g==", "dependencies": { - "tmpl": "1.0.5" + "js-yaml": "^4.1.0", + "markdown-it": "^13.0.1", + "vfile": "^5.3.7" } }, - "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/markdown-it-myst-extras": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/markdown-it-myst-extras/-/markdown-it-myst-extras-0.2.0.tgz", + "integrity": "sha512-DKVCFDsSvT/AjlIEtWuOXjQmlgT5K7CP5XFa8nbcdGxsbmRKuHczEs+vo7u53L2Ae1tBVPZmDArK8jqlsMNbfw==", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "markdown-it": "^12.3.2" } }, - "node_modules/mdast-util-definitions": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", - "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" + "node_modules/markdown-it-myst/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "engines": { + "node": ">=0.12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/mdast-util-directive": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-2.2.4.tgz", - "integrity": "sha512-sK3ojFP+jpj1n7Zo5ZKvoxP1MvLyzVG63+gm40Z/qI00avzdPCYxt7RBMgofwAva9gBjbDBWVRB/i+UD+fUCzQ==", + "node_modules/markdown-it-myst/node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "mdast-util-from-markdown": "^1.3.0", - "mdast-util-to-markdown": "^1.5.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-visit-parents": "^5.1.3" + "uc.micro": "^1.0.1" + } + }, + "node_modules/markdown-it-myst/node_modules/markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "markdown-it": "bin/markdown-it.js" } }, + "node_modules/markdown-it-task-lists": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", + "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==" + }, + "node_modules/mdast": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast/-/mdast-3.0.0.tgz", + "integrity": "sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g==", + "deprecated": "`mdast` was renamed to `remark`" + }, "node_modules/mdast-util-find-and-replace": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", @@ -5242,946 +4293,955 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-from-markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz", - "integrity": "sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==", + "node_modules/mdast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", "dependencies": { "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", - "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", + "node_modules/mdast-util-to-string": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.1.tgz", + "integrity": "sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA==", "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" + "@types/mdast": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", + "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", "dependencies": { - "@types/mdast": "^3.0.0", - "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" + "fs-monkey": "^1.0.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" } }, - "node_modules/mdast-util-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", + "node_modules/mini-css-extract-plugin": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz", + "integrity": "sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/mdast-util-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", - "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dependencies": { - "@types/mdast": "^3.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" + "fast-deep-equal": "^3.1.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "peerDependencies": { + "ajv": "^8.8.2" } }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://opencollective.com/webpack" } }, - "node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" + "brace-expansion": "^1.1.7" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": "*" } }, - "node_modules/mdast-util-to-hast": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", - "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-definitions": "^5.0.0", - "micromark-util-sanitize-uri": "^1.1.0", - "trim-lines": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", - "zwitch": "^2.0.0" + "minimist": "^1.2.6" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "mkdirp": "bin/cmd.js" } }, - "node_modules/mdast-util-to-string": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.1.tgz", - "integrity": "sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA==", + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dependencies": { - "@types/mdast": "^3.0.0" + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "bin": { + "multicast-dns": "cli.js" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "engines": { - "node": ">= 0.6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/memfs": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", - "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "node_modules/myst-cli": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/myst-cli/-/myst-cli-0.1.24.tgz", + "integrity": "sha512-PGsyqV/1lTA2nAJ+6ZAhrvNwT1Kmp7sg5/VdgniRylyqa/D++HoqgzDe7yu/KiuBAyyWnsaqiSfOt0vZxh4QGg==", "dependencies": { - "fs-monkey": "^1.0.3" + "@jupyterlab/nbformat": "3.5.2", + "@reduxjs/toolkit": "^1.7.2", + "adm-zip": "^0.5.9", + "chalk": "^5.1.2", + "check-node-version": "^4.2.1", + "chokidar": "^3.5.3", + "citation-js-utils": "^0.0.15", + "commander": "^9.4.1", + "cors": "^2.8.5", + "docx": "^7.5.0", + "doi-utils": "^1.0.9", + "express": "^4.18.2", + "get-port": "^6.1.2", + "inquirer": "^8.2.2", + "intersphinx": "^0.0.8", + "js-yaml": "^4.1.0", + "jtex": "^0.1.12", + "mdast": "^3.0.0", + "mime-types": "^2.1.35", + "myst-cli-utils": "^0.0.11", + "myst-common": "^0.0.16", + "myst-config": "^0.0.13", + "myst-ext-card": "^0.0.6", + "myst-ext-grid": "^0.0.6", + "myst-ext-reactive": "^0.0.6", + "myst-ext-tabs": "^0.0.6", + "myst-frontmatter": "^0.0.12", + "myst-parser": "^0.0.26", + "myst-spec": "^0.0.4", + "myst-spec-ext": "^0.0.10", + "myst-templates": "^0.1.14", + "myst-to-docx": "^0.0.21", + "myst-to-jats": "^0.0.24", + "myst-to-tex": "^0.0.24", + "myst-transforms": "^0.0.26", + "nanoid": "^4.0.0", + "nbtx": "^0.2.3", + "node-fetch": "^3.2.10", + "p-limit": "^3.1.0", + "redux": "^4.2.0", + "simple-validators": "^0.0.3", + "strip-ansi": "^7.0.1", + "tex-to-myst": "^0.0.24", + "unified": "^10.1.2", + "unist-util-filter": "^4.0.0", + "unist-util-remove": "^3.1.0", + "unist-util-select": "^4.0.3", + "vfile": "^5.3.5", + "which": "^2.0.2", + "ws": "^8.9.0" + }, + "bin": { + "myst": "dist/myst.js" }, "engines": { - "node": ">= 4.0.0" + "node": ">=16", + "npm": ">=6" } }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "node_modules/myst-cli-utils": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/myst-cli-utils/-/myst-cli-utils-0.0.11.tgz", + "integrity": "sha512-1TXF6rbWr3DVAp2u9cJuRQkv/naeVOTUvUGXYh+yvGvSXBYjy98ikOB0F/A6eBAdjr0RReWmnNuNFyE7js5bTw==", + "dependencies": { + "chalk": "^4.1.2", + "pretty-hrtime": "^1.0.3" + } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "node_modules/myst-cli-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/micromark": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", - "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", + "node_modules/myst-cli/node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/myst-cli/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" + "type": "patreon", + "url": "https://www.patreon.com/feross" }, { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "type": "consulting", + "url": "https://feross.org/support" } ], "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-extension-directive": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-2.1.2.tgz", - "integrity": "sha512-brqLEztt14/73snVXYsq9Cv6ng67O+Sy69ZuM0s8ZhN/GFI9rnyXyj0Y0DaCwi648vCImv7/U1H5TzR7wMv5jw==", + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/myst-cli/node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "parse-entities": "^4.0.0", - "uvu": "^0.5.0" + "restore-cursor": "^3.1.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "node_modules/micromark-extension-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", - "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", + "node_modules/myst-cli/node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/myst-cli/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/myst-cli/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/myst-cli/node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dependencies": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", + "node_modules/myst-cli/node_modules/inquirer": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.5.tgz", + "integrity": "sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/myst-cli/node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.4.tgz", - "integrity": "sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==", + "node_modules/myst-cli/node_modules/inquirer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "ansi-regex": "^5.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "engines": { + "node": ">=8" } }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", - "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "node_modules/myst-cli/node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" } }, - "node_modules/micromark-extension-gfm-table": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", - "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "node_modules/myst-cli/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", - "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", + "node_modules/myst-cli/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dependencies": { - "micromark-util-types": "^1.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", - "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", + "node_modules/myst-cli/node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "node_modules/myst-cli/node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" + }, + "node_modules/myst-cli/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", "funding": [ { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" } }, - "node_modules/micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-cli/node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-cli/node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-cli/node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-cli/node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" } }, - "node_modules/micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-cli/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" + "node_modules/myst-cli/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-common": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/myst-common/-/myst-common-0.0.16.tgz", + "integrity": "sha512-wjqtXWA63LIrG4O7nz4A5FNhCN/+/9B7vGxhrP5/WP/DV+KpogG1lRgcIfoc9SyWCeWDPSiRyaxQS2itlyB2Vg==", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "mdast": "^3.0.0", + "myst-spec": "^0.0.4", + "nanoid": "^4.0.0", + "unist-util-map": "^3.0.0", + "vfile": "^5.0.0", + "vfile-message": "^3.0.0" } }, - "node_modules/micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "node_modules/myst-common/node_modules/nanoid": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz", + "integrity": "sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==", "funding": [ { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" + "type": "github", + "url": "https://github.com/sponsors/ai" } ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^14 || ^16 || >=18" } }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-config": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/myst-config/-/myst-config-0.0.13.tgz", + "integrity": "sha512-cWLnwdzldAwgCU4tlqYGJJAsNIONZaZ9bf2J35AQRWrdDADWQctpaCxrdzA4+WorotOQankDtEk4L9GqHbs3Jw==", "dependencies": { - "micromark-util-symbol": "^1.0.0" + "myst-frontmatter": "^0.0.12", + "simple-validators": "^0.0.3" } }, - "node_modules/micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-directives": { + "version": "0.0.26", + "resolved": "https://registry.npmjs.org/myst-directives/-/myst-directives-0.0.26.tgz", + "integrity": "sha512-e4Ios1ziH+FXVp6UpTflT4dT7eQ4FN9oO4IYh/ZU+XbgidNT6GsrPZJG2nEmaqKeXeBIxBpQQfh8G7fcXumV4g==", "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "js-yaml": "^4.1.0", + "myst-common": "^0.0.16", + "myst-spec-ext": "^0.0.10", + "vfile": "^5.3.7" } }, - "node_modules/micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-ext-card": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/myst-ext-card/-/myst-ext-card-0.0.6.tgz", + "integrity": "sha512-4s35T3M8bKu3BP+VQO9NgpC2C/xxCUMZvLgPu5iPf/WpNeF0QhtHDcJ/z9+/Vd/AsV7WTIEc1cvf2a2nqwrkXQ==", "dependencies": { - "micromark-util-symbol": "^1.0.0" + "myst-common": "^0.0.16" } }, - "node_modules/micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-ext-grid": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/myst-ext-grid/-/myst-ext-grid-0.0.6.tgz", + "integrity": "sha512-1R7CtcVccDz97yhSXS1ojsrxIBf/X7RAq1X6Lyt4Hm+wyIuh844o312sus8TRTxVWehv7Nr3VTFYpNGQkP2yLw==", "dependencies": { - "micromark-util-types": "^1.0.0" + "myst-common": "^0.0.16" } }, - "node_modules/micromark-util-sanitize-uri": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", - "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-ext-reactive": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/myst-ext-reactive/-/myst-ext-reactive-0.0.6.tgz", + "integrity": "sha512-hyo4o+qjrdRjf37q6TfDBozHYtJBisgPIddy3cyDvfEHwmBihtgFNr/+BrVqFBma/fB5yAIXCGzNZvQg6IXOQA==", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "myst-common": "^0.0.16" } }, - "node_modules/micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], + "node_modules/myst-ext-tabs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/myst-ext-tabs/-/myst-ext-tabs-0.0.6.tgz", + "integrity": "sha512-SegNUUshq9mpTgeZ6bkomH7U42xOHP+R3iCuYh6z8XYBEXwbLTBrLdW06vE5CsAWzrQfcoinFCelhYYXn/RKNw==", "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "myst-common": "^0.0.16" } }, - "node_modules/micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] + "node_modules/myst-frontmatter": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/myst-frontmatter/-/myst-frontmatter-0.0.12.tgz", + "integrity": "sha512-7etPgc1nucHjXvCnSp5xCupaHyNhjWKgb/kLOY+iTsj1U+UpPpEXw7ucxzE7oRLHSn1wXzWTNv9FMNqPO2l32A==", + "dependencies": { + "credit-roles": "^1.0.0", + "doi-utils": "^1.0.9", + "orcid": "^0.0.5", + "simple-validators": "^0.0.3", + "spdx-correct": "^3.1.1" + } }, - "node_modules/micromark/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/myst-parser": { + "version": "0.0.26", + "resolved": "https://registry.npmjs.org/myst-parser/-/myst-parser-0.0.26.tgz", + "integrity": "sha512-1VN3MjJtinQYtWq96Qio5l+l11cRMxI1WG/auhnXgt56xdakXv3u/DDtzvQvH5dUA/qLZzjeYBri9IEMv+aMgQ==", "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "he": "^1.2.0", + "markdown-it": "^12.3.2", + "markdown-it-amsmath": "^0.3.1", + "markdown-it-deflist": "^2.1.0", + "markdown-it-dollarmath": "^0.4.2", + "markdown-it-footnote": "^3.0.3", + "markdown-it-front-matter": "^0.2.3", + "markdown-it-myst": "0.1.3", + "markdown-it-myst-extras": "0.2.0", + "markdown-it-task-lists": "^2.1.1", + "myst-directives": "^0.0.26", + "myst-roles": "^0.0.26", + "myst-spec": "^0.0.4", + "unified": "^10.1.1", + "unist-builder": "^3.0.0", + "unist-util-remove": "^3.1.0", + "unist-util-select": "^4.0.3", + "unist-util-visit": "^4.1.0", + "vfile": "^5.3.7" } }, - "node_modules/micromark/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "node_modules/myst-roles": { + "version": "0.0.26", + "resolved": "https://registry.npmjs.org/myst-roles/-/myst-roles-0.0.26.tgz", + "integrity": "sha512-p2b5lMOQI1sfnUKmpu0ti4pOrZJaFicOBZh5I6O9QuvpbUItP/Mpcao5/nrIKfl51tL0LB84b6pb9P8+JL4b1w==", + "dependencies": { + "myst-common": "^0.0.16", + "myst-spec-ext": "^0.0.10" + } }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/myst-spec": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/myst-spec/-/myst-spec-0.0.4.tgz", + "integrity": "sha512-1j7184Wmg5lhgSXt6AXtG82E0PFJ7ULFPplfshQDzb4nIOLKruYFD0CYWheRPMM/eVqNbNZUzc/LLrhyubsK0Q==" + }, + "node_modules/myst-spec-ext": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/myst-spec-ext/-/myst-spec-ext-0.0.10.tgz", + "integrity": "sha512-ALXEXfbq4Sd2X+L5cdQnTwyEJ4bWttZffsRlBPJm2DFjstbidLv0EVtQnDmefJ2zOscn+n+RsQF7lV1Vn+TVkQ==", "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" + "myst-spec": "^0.0.4" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" + "node_modules/myst-templates": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/myst-templates/-/myst-templates-0.1.14.tgz", + "integrity": "sha512-rucecoIID98HuqcD7fRErm6/urjjcCGnq12jlYgIA0CwOGNVoHmi18wnietmVq8v7ktfv3r1fMgCz/cMuukpUg==", + "dependencies": { + "chalk": "^4.1.2", + "commander": "^8.3.0", + "js-yaml": "^4.1.0", + "myst-cli-utils": "^0.0.11", + "myst-common": "^0.0.16", + "myst-frontmatter": "^0.0.12", + "node-fetch": "^2.6.7", + "pretty-hrtime": "^1.0.3", + "simple-validators": "^0.0.3", + "unzipper": "^0.10.11" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/myst-templates/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { - "mime-db": "1.52.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/myst-templates/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "engines": { - "node": ">=6" + "node": ">= 12" } }, - "node_modules/mini-css-extract-plugin": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz", - "integrity": "sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==", + "node_modules/myst-templates/node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", "dependencies": { - "schema-utils": "^4.0.0" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": "4.x || >=6.0.0" }, "peerDependencies": { - "webpack": "^5.0.0" + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/myst-to-docx": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/myst-to-docx/-/myst-to-docx-0.0.21.tgz", + "integrity": "sha512-YW6qVPZ85BGxuHM3m7DoXuWdrQrQSFTu2G6iVNCkXbZVbme68mi13OXn0GLcaFursjBZPKrrc/FmyFKpikXbVA==", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "buffer-image-size": "^0.6.4", + "docx": "^7.3.0", + "myst-common": "^0.0.16", + "myst-frontmatter": "^0.0.12", + "myst-spec": "^0.0.4", + "myst-spec-ext": "^0.0.10" } }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/myst-to-jats": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/myst-to-jats/-/myst-to-jats-0.0.24.tgz", + "integrity": "sha512-lgsrnyHDnQbTG1VljCCSMu6FBn7SorEMkWmKWaj8RuWZXXThEAmm4bN0ntKzPGMkbc0EfJtxpKTZ9U3fMwPePw==", "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" + "citation-js-utils": "^0.0.15", + "jats-xml": "^0.0.14", + "myst-common": "^0.0.16", + "myst-frontmatter": "^0.0.12", + "myst-spec": "^0.0.4", + "myst-spec-ext": "^0.0.10", + "unist-util-select": "^4.0.3", + "vfile-reporter": "^7.0.4", + "xml-js": "^1.6.11" } }, - "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "node_modules/myst-to-jats/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "node_modules/myst-to-jats/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "peer": true, + "engines": { + "node": ">= 12" + } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/myst-to-jats/node_modules/jats-xml": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/jats-xml/-/jats-xml-0.0.14.tgz", + "integrity": "sha512-roqL4LcDs6JoFOWJ7rFBckyO1iN02E4WitYEXCv6ivQqUBF2fxDYxQBT0vDxLmIu2Gm05XtX2o0f7dGkcuzBHg==", "dependencies": { - "brace-expansion": "^1.1.7" + "fair-principles": "^1.0.3", + "node-fetch": "^2.6.7", + "unist-util-remove": "^3.1.0", + "unist-util-select": "^4.0.0", + "xml-js": "^1.6.11" }, - "engines": { - "node": "*" + "bin": { + "jats": "dist/jats.js" + }, + "peerDependencies": { + "chalk": "^4.1.2", + "commander": "^8.3.0" } }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "node_modules/myst-to-jats/node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { - "node": ">=4" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "node_modules/myst-to-tex": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/myst-to-tex/-/myst-to-tex-0.0.24.tgz", + "integrity": "sha512-CNI23Nha2ja/yBea0b2e2KoIxh9Mdjx8v0fMPNLDD3XAUplEK+Q/LR/a33k4FzvszG1oKEur7BRfghoztvasmw==", "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" + "myst-common": "^0.0.16", + "myst-frontmatter": "^0.0.12", + "myst-spec-ext": "^0.0.10", + "unist-util-select": "^4.0.3", + "vfile-reporter": "^7.0.4" } }, - "node_modules/mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node_modules/myst-transforms": { + "version": "0.0.26", + "resolved": "https://registry.npmjs.org/myst-transforms/-/myst-transforms-0.0.26.tgz", + "integrity": "sha512-HtKzdxM8JbjCravyD3TzMrB8bGW8Jv5czFb6l4MAPQLLEp6da3eOJZA4PvdknWuzIzSihk+slPk0qAMqdXd0KQ==", + "dependencies": { + "doi-utils": "^1.0.9", + "intersphinx": "^0.0.8", + "js-yaml": "^4.1.0", + "katex": "^0.15.2", + "mdast-util-find-and-replace": "^2.1.0", + "myst-common": "^0.0.16", + "myst-spec": "^0.0.4", + "myst-spec-ext": "^0.0.10", + "rehype-parse": "^8.0.4", + "rehype-remark": "^9.1.2", + "unified": "^10.0.0", + "unist-util-find-after": "^4.0.0", + "unist-util-modify-children": "^3.1.0", + "unist-util-select": "^4.0.3", + "vfile": "^5.0.0", + "vfile-message": "^3.1.2" } }, "node_modules/nanoid": { @@ -6201,10 +5261,10 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "node_modules/nbtx": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/nbtx/-/nbtx-0.2.3.tgz", + "integrity": "sha512-Gi7R1rFty2sCiTuHYHsmK0pdCqZ41LV152O26eKqiDuCxLAU1TbxVFXIHvJjYyJaBUXUdmZmfym6H3eaE+saZA==" }, "node_modules/negotiator": { "version": "0.6.3", @@ -6219,6 +5279,41 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", + "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -6227,11 +5322,6 @@ "node": ">= 6.13.0" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, "node_modules/node-releases": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", @@ -9053,6 +8143,62 @@ "inBundle": true, "license": "ISC" }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nunjucks": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/nunjucks/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz", + "integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA==" + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -9156,17 +8302,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/ora/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/ora/node_modules/strip-ansi": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", @@ -9181,6 +8316,14 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/orcid": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/orcid/-/orcid-0.0.5.tgz", + "integrity": "sha512-WXdYmZTQvmtvElSz53d+9/3axCdy7C09xGflu01ZZTQnavRJNY1vLq7jdOOnpo2bxC1LSjXmpt7kKcShBHIJpA==", + "bin": { + "orcid": "dist/orcid.js" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -9248,42 +8391,16 @@ "node": ">=6" } }, - "node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parse-srcset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", + "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" + }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -9331,6 +8448,14 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -9347,14 +8472,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "engines": { - "node": ">= 6" - } - }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -9461,28 +8578,26 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, - "node_modules/pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", - "dependencies": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "node_modules/prettier": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz", + "integrity": "sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==", + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 0.8" } }, "node_modules/process-nextick-args": { @@ -9490,26 +8605,6 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prompts/node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, "node_modules/property-information": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz", @@ -9552,18 +8647,22 @@ "node": ">=6" } }, - "node_modules/pure-rand": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.1.tgz", - "integrity": "sha512-t+x1zEHDjBwkDGY5v5ApnZ/utcd4XYDiJsaQQoptTXgUXX95sDg1elCdJghzicm7n2mbCBJ3uYWr6M22SO19rg==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "funding": [ { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ] }, @@ -9583,10 +8682,10 @@ "node": ">= 0.6" } }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "node_modules/read-input": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/read-input/-/read-input-0.3.1.tgz", + "integrity": "sha512-J1ZkWCnB4altU7RTe+62PSfa21FrEtfKyO9fuqR3yP8kZku3nIwaw2Krj383JC7egAIl5Zyz2w+EOu9uXH5HZw==" }, "node_modules/readable-stream": { "version": "3.6.2", @@ -9623,45 +8722,52 @@ "node": ">= 10.13.0" } }, - "node_modules/remark-directive": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-2.0.1.tgz", - "integrity": "sha512-oosbsUAkU/qmUE78anLaJePnPis4ihsE7Agp0T/oqTzvTea8pOiaYEtfInU/+xMOVTS9PN5AhGOiaIVe4GD8gw==", + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-directive": "^2.0.0", - "micromark-extension-directive": "^2.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "@babel/runtime": "^7.9.2" } }, - "node_modules/remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "peerDependencies": { + "redux": "^4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/rehype-minify-whitespace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-5.0.1.tgz", + "integrity": "sha512-PPp4lWJiBPlePI/dv1BeYktbwkfgXkrK59MUa+tYbMPgleod+4DvFK2PLU0O0O60/xuhHfiR9GUIUlXTU8sRIQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" + "@types/hast": "^2.0.0", + "hast-util-embedded": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "unified": "^10.0.0", + "unist-util-is": "^5.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-html": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-15.0.2.tgz", - "integrity": "sha512-/CIOI7wzHJzsh48AiuIyIe1clxVkUtreul73zcCXLub0FmnevQE0UMFDQm7NUx8/3rl/4zCshlMfqBdWScQthw==", + "node_modules/rehype-parse": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-8.0.4.tgz", + "integrity": "sha512-MJJKONunHjoTh4kc3dsM1v3C9kGrrxvA3U8PxZlP2SjH8RNUSrb+lF7Y0KVaUDnGH2QZ5vAn7ulkiajM9ifuqg==", "dependencies": { - "@types/mdast": "^3.0.0", - "hast-util-sanitize": "^4.0.0", - "hast-util-to-html": "^8.0.0", - "mdast-util-to-hast": "^12.0.0", + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^7.0.0", + "parse5": "^6.0.0", "unified": "^10.0.0" }, "funding": { @@ -9669,13 +8775,14 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-parse": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", - "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", + "node_modules/rehype-remark": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/rehype-remark/-/rehype-remark-9.1.2.tgz", + "integrity": "sha512-c0fG3/CrJ95zAQ07xqHSkdpZybwdsY7X5dNWvgL2XqLKZuqmG3+vk6kP/4miCnp+R+x/0uKKRSpfXb9aGR8Z5w==", "dependencies": { + "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", + "hast-util-to-mdast": "^8.3.0", "unified": "^10.0.0" }, "funding": { @@ -9704,6 +8811,11 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -9739,14 +8851,6 @@ "node": ">=8" } }, - "node_modules/resolve.exports": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.1.tgz", - "integrity": "sha512-OEJWVeimw8mgQuj3HfkNl4KqRevH7lzeQNaWRPfx0PPse7Jk6ozcsG4FKVgtzDsC1KUF+YlTHh17NcgHOPykLw==", - "engines": { - "node": ">=10" - } - }, "node_modules/restore-cursor": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", @@ -9770,6 +8874,15 @@ "node": ">= 4" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -9792,6 +8905,28 @@ "node": ">=0.12.0" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/rxjs": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz", @@ -9800,17 +8935,6 @@ "tslib": "^2.1.0" } }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -9835,6 +8959,38 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/sanitize-html": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.10.0.tgz", + "integrity": "sha512-JqdovUd81dG4k87vZt6uA6YhDfWkUGruUu/aPmXLxXi45gZExnt9Bnw/qeQU8oGf82vPyaE0vO4aH0PbobB9JQ==", + "dependencies": { + "deepmerge": "^4.2.2", + "escape-string-regexp": "^4.0.0", + "htmlparser2": "^8.0.0", + "is-plain-object": "^5.0.0", + "parse-srcset": "^1.0.2", + "postcss": "^8.3.11" + } + }, + "node_modules/sanitize-html/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sanitize-html/node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sass": { "version": "1.60.0", "resolved": "https://registry.npmjs.org/sass/-/sass-1.60.0.tgz", @@ -9851,6 +9007,11 @@ "node": ">=12.0.0" } }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, "node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -9957,6 +9118,11 @@ "node": ">= 0.6" } }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -10018,6 +9184,19 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, "node_modules/simple-update-notifier": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", @@ -10037,18 +9216,10 @@ "semver": "bin/semver.js" } }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } + "node_modules/simple-validators": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/simple-validators/-/simple-validators-0.0.3.tgz", + "integrity": "sha512-7MFlTfV4TXHzGJLlmmoulhtb3yeGKwUnMh/Yj1JnFeee0XMld+VlY8U284stJahXL3X0cuqmdd8yKzA90wZJMg==" }, "node_modules/smartypants": { "version": "0.1.6", @@ -10108,6 +9279,34 @@ "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==" }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", + "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" + }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -10178,25 +9377,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, "node_modules/stdin-discarder": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", @@ -10219,18 +9399,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -10244,19 +9412,6 @@ "node": ">=8" } }, - "node_modules/stringify-entities": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", - "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -10268,14 +9423,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "engines": { - "node": ">=8" - } - }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -10284,17 +9431,6 @@ "node": ">=6" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -10317,6 +9453,68 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sync-fetch": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.4.2.tgz", + "integrity": "sha512-vilDD6yTGwyUjm7/W5WUUOCw1GH1aV591zC21XhbV6MJNZqfZcNMs9DVPHzy1UAmQ2GAg6S03F5TQ3paegKSdg==", + "dependencies": { + "buffer": "^5.7.1", + "node-fetch": "^2.6.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/sync-fetch/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/sync-fetch/node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dependencies": { + "acorn-node": "^1.2.0" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -10407,17 +9605,17 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "node_modules/tex-to-myst": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/tex-to-myst/-/tex-to-myst-0.0.24.tgz", + "integrity": "sha512-azamKob6sNS6FtwoS8pUQyhodA8+oR46C0Hv5IrypPnd3K1zmqCMxJs9FPFe0FGvOOh89LJLyKXNGffex6+Uyw==", "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" + "@unified-latex/unified-latex": "^1.2.2", + "myst-common": "^0.0.16", + "myst-frontmatter": "^0.0.12", + "myst-spec-ext": "^0.0.10", + "unist-util-select": "^4.0.3", + "vfile-reporter": "^7.0.4" } }, "node_modules/through": { @@ -10441,19 +9639,6 @@ "node": ">=0.6.0" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -10484,6 +9669,19 @@ "nodetouch": "bin/nodetouch.js" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "engines": { + "node": "*" + } + }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", @@ -10492,10 +9690,15 @@ "tree-kill": "cli.js" } }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "node_modules/trie-prefix-tree": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/trie-prefix-tree/-/trie-prefix-tree-1.5.1.tgz", + "integrity": "sha512-Jjvj/dA97wXnabG/NLJUgo4IQMj6vucH+Qxm7of/omfWSmZlPqdRU6Ta4GmQqCZH+n3/iYZUwfvUoEhB0Hs83Q==" + }, + "node_modules/trim-trailing-lines": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-2.1.0.tgz", + "integrity": "sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10515,14 +9718,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -10546,6 +9741,11 @@ "node": ">= 0.6" } }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", @@ -10569,10 +9769,36 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-generated": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", - "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", + "node_modules/unist-builder": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-3.0.1.tgz", + "integrity": "sha512-gnpOw7DIpCA0vpr6NqdPvTWnlPTApCTRzr+38E6hCWx3rz/cjo83SsKIlS1Z+L5ttScQ2AwutNnb8+tAvpb6qQ==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-filter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-filter/-/unist-util-filter-4.0.1.tgz", + "integrity": "sha512-RynicUM/vbOSTSiUK+BnaK9XMfmQUh6gyi7L6taNgc7FIf84GukXVV3ucGzEN/PhUUkdP5hb1MmXc+3cvPUm5Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + } + }, + "node_modules/unist-util-find-after": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz", + "integrity": "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -10590,10 +9816,10 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-position": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", - "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "node_modules/unist-util-map": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-3.1.3.tgz", + "integrity": "sha512-4/mDauoxqZ6geK97lJ6n2kDk6JK88Vh+hWMSJqyaaP/7eqN1dDhjcjnNxKNm3YU6Sw7PVJtcFMUbnmHvYzb6Vg==", "dependencies": { "@types/unist": "^2.0.0" }, @@ -10602,6 +9828,48 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-modify-children": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-3.1.1.tgz", + "integrity": "sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==", + "dependencies": { + "@types/unist": "^2.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-3.1.1.tgz", + "integrity": "sha512-kfCqZK5YVY5yEa89tvpl7KnBBHu2c6CzMkqHUrlOqaRgGOMp0sMvwWOVrbAtj03KhovQB7i96Gda72v/EFE0vw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-select": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-4.0.3.tgz", + "integrity": "sha512-1074+K9VyR3NyUz3lgNtHKm7ln+jSZXtLJM4E22uVuoFn88a/Go2pX8dusrt/W+KWH1ncn8jcd8uCQuvXb/fXA==", + "dependencies": { + "@types/unist": "^2.0.0", + "css-selector-parser": "^1.0.0", + "nth-check": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-stringify-position": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", @@ -10657,6 +9925,50 @@ "node": ">= 0.8" } }, + "node_modules/unzipper": { + "version": "0.10.11", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", + "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", + "dependencies": { + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "graceful-fs": "^4.2.2", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" + } + }, + "node_modules/unzipper/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/unzipper/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/unzipper/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -10711,41 +10023,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/v8-to-istanbul": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", - "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -10795,12 +10072,106 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "node_modules/vfile-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.5.tgz", + "integrity": "sha512-NdWWXkv6gcd7AZMvDomlQbK3MqFWL1RlGzMn++/O2TI+68+nqxCPTvLugdOtfSzXmjh+xUyhp07HhlrbJjT+mw==", + "dependencies": { + "@types/supports-color": "^8.0.0", + "string-width": "^5.0.0", + "supports-color": "^9.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile": "^5.0.0", + "vfile-message": "^3.0.0", + "vfile-sort": "^3.0.0", + "vfile-statistics": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-reporter/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/vfile-reporter/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/vfile-reporter/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vfile-reporter/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/vfile-reporter/node_modules/supports-color": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.3.1.tgz", + "integrity": "sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/vfile-sort": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-3.0.1.tgz", + "integrity": "sha512-1os1733XY6y0D5x0ugqSeaVJm9lYgj0j5qdcZQFyxlZOSy1jYarL77lLyb5gK4Wqr1d5OxmuyflSO3zKyFnTFw==", + "dependencies": { + "vfile": "^5.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-statistics": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-2.0.1.tgz", + "integrity": "sha512-W6dkECZmP32EG/l+dp2jCLdYzmnDBIw6jwiLZSER81oR5AHRcVqL+k3Z+pfH1R73le6ayDkJRMk0sutj1bMVeg==", "dependencies": { - "makeerror": "1.0.12" + "vfile": "^5.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/watchpack": { @@ -10840,6 +10211,19 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, "node_modules/webpack": { "version": "5.76.3", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.3.tgz", @@ -11124,26 +10508,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", @@ -11185,6 +10549,15 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -11199,6 +10572,26 @@ "node": ">= 8" } }, + "node_modules/wikibase-sdk": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/wikibase-sdk/-/wikibase-sdk-8.1.1.tgz", + "integrity": "sha512-1NjMnfNQ4OaLh0dFAeTMvV3vGAq6HXsNKGfYUJYOVyBPGBDMunlY3QZ8+72hLV5FiKmc6Bzg1xbI0jCHfHmIew==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wikidata-sdk": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/wikidata-sdk/-/wikidata-sdk-8.1.1.tgz", + "integrity": "sha512-KOUhJtpCHg32k/tz7pFj/BaqiYAvYGz4sGzcT15t120832WtfNTGCSeohmln40/JOjpxzfzud/6q2x6Q0Ji5hg==", + "deprecated": "wikidata-sdk has been renamed wikibase-sdk", + "dependencies": { + "wikibase-sdk": "^8.1.1" + }, + "engines": { + "node": ">= 6.4" + } + }, "node_modules/wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", @@ -11225,16 +10618,48 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==" + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "sax": "^1.2.4" }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=0.4" } }, "node_modules/y18n": { @@ -11245,11 +10670,6 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, "node_modules/yargs": { "version": "17.7.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", diff --git a/package.json b/package.json index e591c17..9ea1024 100644 --- a/package.json +++ b/package.json @@ -38,22 +38,20 @@ }, "homepage": "https://github.com/worlduniting/bookpub#readme", "dependencies": { - "@worlduniting/includerjs": "1.1.0", + "chalk": "^5.2.0", "commander": "^10.0.0", "concurrently": "^7.6.0", "css-loader": "^6.7.3", "ejs": "^3.1.9", + "ejs-lint": "^2.0.0", "fs-extra": "^11.1.1", "inquirer": "^9.1.5", "install": "^0.13.0", "js-yaml": "^4.1.0", "mini-css-extract-plugin": "^2.7.5", + "myst-cli": "^0.1.24", "nodemon": "^2.0.22", "npm": "^9.6.2", - "remark-directive": "^2.0.1", - "remark-gfm": "^3.0.1", - "remark-html": "^15.0.2", - "remark-parse": "^10.0.1", "sass": "^1.60.0", "smartypants": "^0.1.6", "unified": "^10.1.2", From 35cb73ec0521f9bba42d109ac5dc1bf34b82db7d Mon Sep 17 00:00:00 2001 From: revdavethompson Date: Mon, 24 Apr 2023 08:59:29 -0700 Subject: [PATCH 4/6] abstracting converters --- lib/parse-myst.js | 11 +++++++++++ lib/parse-smartypants.js | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 lib/parse-myst.js create mode 100644 lib/parse-smartypants.js diff --git a/lib/parse-myst.js b/lib/parse-myst.js new file mode 100644 index 0000000..973aa0f --- /dev/null +++ b/lib/parse-myst.js @@ -0,0 +1,11 @@ +import myst from 'mystjs' + +async function parseMyST(content, options, outputType) { + try { + console.log('Parsing MyST Markdown Content...') + const parsedMyST = await myst.parse(content, options, outputType); + return parsedMyst; + } catch (error) { + console.error(chalk.red('Error Parsing MyST Markdown:'), chalk.red(error)); + } +} \ No newline at end of file diff --git a/lib/parse-smartypants.js b/lib/parse-smartypants.js new file mode 100644 index 0000000..249ddb7 --- /dev/null +++ b/lib/parse-smartypants.js @@ -0,0 +1,17 @@ +import { createRequire } from 'module'; + +// Small hack to use this CJS module in our ESM module +const require = createRequire(import.meta.url); +const parseSmarty = require('smartypants'); + +export default async function parseSmarty(processedEJS) { + return new Promise((resolve) => { + try { + const parsedSmarty = parseSmarty.default(processedEJS); + resolve(parsedSmarty); + } catch (error) { + console.error('Error parsing Smartypants:', error); + resolve(processedEJS); + } + }); +} From 4b15217ea81a1dcaaf752ed29a4ecbd39e119820 Mon Sep 17 00:00:00 2001 From: revdavethompson Date: Mon, 24 Apr 2023 09:06:13 -0700 Subject: [PATCH 5/6] new comits --- lib/convert.js | 57 +++++++++++++++++++------------------- lib/process-smartypants.js | 17 ------------ 2 files changed, 29 insertions(+), 45 deletions(-) delete mode 100644 lib/process-smartypants.js diff --git a/lib/convert.js b/lib/convert.js index a57eab0..cd57f23 100755 --- a/lib/convert.js +++ b/lib/convert.js @@ -4,22 +4,17 @@ import path from 'path'; import yaml from 'js-yaml'; import lintEjs from './lint-ejs.js'; import renderEjs from './render-ejs.js'; -import processSmartypants from './process-smartypants.js'; +import parseSmarty from './parse-smartypants.js'; import { compileSCSSToCSS } from './compile-scss.js'; import chalk from 'chalk'; +import parseMyst from './parse-myst.js'; +// Convert Manuscript Pipeline //-------------------- // CONVERT MANUSCRIPT INTO BUILD TYPE //-------------------- export default async function convert(manuscriptDir, outputDir, outputType) { try { - // Make Sure It Only Runs Once - // Set initial run variable to false (true if run) - let hasRun = false; - if (hasRun) { - return; - } - hasRun = true; // Load Book Config Options // -------------------- @@ -30,14 +25,12 @@ export default async function convert(manuscriptDir, outputDir, outputType) { console.error(chalk.red('Error Loading book.config.yml:'), chalk.red(error)); } - // Set Function Constants + // Conversion Constants // -------------------- // Book Manuscript Entry File/Path const entryFile = book.settings.entryfile; const entryPath = path.join(manuscriptDir, entryFile); - - // Book's Build Output Location const outputFile = path.join(outputDir, 'index.html'); // Create Output Directory (if it doesn't exist) @@ -45,37 +38,45 @@ export default async function convert(manuscriptDir, outputDir, outputType) { fs.mkdirSync(outputDir, { recursive: true }); } - // Lint the EJS Content (Check for Errors) - // -------------------- console.log('Loading manuscript...\n'); - const ejsLintOpt = book['ejs-lint-options'] - const ejsContent = fs.readFileSync(entryPath, 'utf8'); + const manuscript = fs.readFileSync(entryPath, 'utf8'); - let lintedEjs; // Declare the variable outside the try block + // Lint the EJS Content (Check for Errors) + // -------------------- + let lintedEjs; try { - console.log('Checking for Errors in EJS Content...\n'); - lintedEjs = await lintEjs(ejsContent, ejsLintOpt); // Assign the value inside the try block + lintedEjs = await lintEjs(manuscript, ejsLintOpt); + console.log(chalk.green('Your EJS syntax look great!')); } catch (error) { - console.error(chalk.red('EJS Linting Error:'), chalk.red(error)); + console.error(chalk.red('Whoops. We found errors in your EJS syntax:'), chalk.red(error)); } - // Render the Linted EJS Content + // Render EJS Content // -------------------- let processedEJS; try { - // Render the Linted EJS Content - console.log('\nProcessing EJS files...\n') processedEJS = await renderEjs(lintedEjs, book, outputType, manuscriptDir, path); + console.log(chalk.green('Nice! Your EJS was rendered successfully!')) } catch (error) { - console.error(chalk.red('EJS Rendering Error:'), chalk.red(error)); + console.error(chalk.red('Dang. We couldn\'t render your EJS:'), chalk.red(error)); } - // Use Smartypants to process symbols and quotes + let parsedMyST; + const mystOptions = book['myst-options']; + try { + console.log("\nProcessing MyST Markdown...\n"); + parsedMyST = await parseMyST(processedEJS, mystOptions, outputType); + } catch (error) { + console.error(chalk.red('MyST Processing Error:'), chalk.red(error)); + } + + + // Use Smartypants to process quotes and symbols // -------------------- - let smartyHtml; // Declare the variable outside the try block + let parsedSmarty; try { - console.log("\nConverting symbols to smart symbols with...\n"); - smartyHtml = await processSmartypants(processedEJS); + console.log("\nConverting quotes and symbols...\n"); + parsedSmarty = await parseSmarty(processedEJS); } catch (error) { console.error(chalk.red('Smartypants Processing Error:'), chalk.red(error)); } @@ -84,7 +85,7 @@ export default async function convert(manuscriptDir, outputDir, outputType) { // Write Final Build Output // -------------------- console.log("Writing final build to " + outputFile) - fs.writeFileSync(outputFile, smartyHtml); + fs.writeFileSync(outputFile, parsedSmarty); // Copy Manuscript Theme to Build Location // -------------------- diff --git a/lib/process-smartypants.js b/lib/process-smartypants.js deleted file mode 100644 index 0dddcf5..0000000 --- a/lib/process-smartypants.js +++ /dev/null @@ -1,17 +0,0 @@ -import { createRequire } from 'module'; - -// Small hack to use this CJS module in our ESM module -const require = createRequire(import.meta.url); -const SmartyPants = require('smartypants'); - -export default async function processSmartpants(processedEJS) { - return new Promise((resolve) => { - try { - const smartHtml = SmartyPants.default(processedEJS); - resolve(smartHtml); - } catch (error) { - console.error('Error processing Smartypants:', error); - resolve(processedEJS); // Return the original content if Smartypants processing fails - } - }); -} From 922c8550947686424427af9ecfe90b9e90c3db35 Mon Sep 17 00:00:00 2001 From: revdavethompson Date: Tue, 25 Apr 2023 15:55:58 -0700 Subject: [PATCH 6/6] abstract functions, better logging --- cli-wrapper.js | 21 - cli.js | 37 +- lib/compile-scss.js | 3 +- lib/convert.js | 79 ++- lib/lint-ejs.js | 1 - lib/load-book-config.js | 20 + lib/old-convert.js | 138 ----- lib/parse-myst.js | 9 +- lib/parse-smartypants.js | 4 +- package-lock.json | 1249 ++++++++++++++++++++++++++++++++++++-- package.json | 7 +- 11 files changed, 1304 insertions(+), 264 deletions(-) delete mode 100644 cli-wrapper.js create mode 100644 lib/load-book-config.js delete mode 100644 lib/old-convert.js diff --git a/cli-wrapper.js b/cli-wrapper.js deleted file mode 100644 index 5ed22d9..0000000 --- a/cli-wrapper.js +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node - -// With --verbose flag, run with node --trace-warnings -import { spawn } from 'child_process'; -import { fileURLToPath } from 'url'; -import path from 'path'; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -const nodeArgs = ['--trace-warnings']; -const script = path.join(__dirname, 'cli.js'); -const args = process.argv.slice(2); - -const child = spawn(process.execPath, [...nodeArgs, script, ...args], { - stdio: 'inherit', -}); - -child.on('exit', (code) => { - process.exit(code); -}); diff --git a/cli.js b/cli.js index eda3153..0b83e2d 100755 --- a/cli.js +++ b/cli.js @@ -9,32 +9,40 @@ import path from 'path'; import nodemon from 'nodemon'; import { readFileSync, existsSync } from 'fs'; import { spawn } from 'child_process'; +import chalk from 'chalk'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, 'package.json'), 'utf-8')); const manuscriptDir = path.join(process.cwd(), 'manuscript'); +const manRel = path.relative(process.cwd(), manuscriptDir); const program = new Command(); program.version(packageJson.version); async function buildHtml(manuscriptDir, outputDir, outputType) { - console.log(`Your convert params are: ${manuscriptDir}, ${outputDir}, ${outputType}`) + const outRel = path.relative(process.cwd(), outputDir); + console.log(` Manuscript Location: ${chalk.yellowBright(`/${manRel}/`)}\n Build Output Location: ${chalk.yellowBright(`/${outRel}/`)}\n\n`) await convert(manuscriptDir, outputDir, outputType); } async function buildPdf(manuscriptDir, outputDir, outputType) { await buildHtml(manuscriptDir, outputDir, outputType); - // Run the prince command-line tool - const prince = spawn('prince', ['build/pdf/index.html'], { stdio: 'inherit' }); - - prince.on('error', (error) => { - console.error(`Error: ${error.message}`); - }); - - return prince; + try { + const pdfOutDirRel = path.relative(process.cwd(), outputDir); + // Run the prince command-line tool + console.log(` 10. Building your Print PDF to ${chalk.yellowBright(`/${pdfOutDirRel}/index.pdf`)}\n `); + const prince = spawn('prince', ['build/pdf/index.html'], { stdio: 'inherit' }); + prince.on('error', (error) => { + console.error(`Error: ${error.message}`); + }); + + return prince; + } catch (error) { + console.error(chalk.redBright(' Bummer. We couldn\'t build your pdf, because:'), chalk.redBright(error + '\n')); + } } program @@ -42,7 +50,7 @@ program .option('-t, --type ', 'Specify the output type (html or pdf)', 'html') .description('Build the output from the manuscript markdown files') .action(async (options) => { - console.log(`Building ${options.type.toUpperCase()}...`); + console.log(`\nBuilding ${options.type.toUpperCase()} Format...\n`); if (options.type === 'html') { await buildHtml(manuscriptDir, path.join(process.cwd(), 'build', 'html'), options.type); } else if (options.type === 'pdf') { @@ -50,6 +58,11 @@ program } else { console.error('Invalid output type specified. Use either "html" or "pdf".'); } + console.log(chalk.greenBright(` + --------------------------- + Yay! All Finished!! + --------------------------- + `)); }); program @@ -57,7 +70,7 @@ program .option('-t, --type ', 'Specify the output type (html or pdf)', 'html') .description('Run the development server with live-reloading') .action(async (options) => { - console.log(`Running Nodemon and Webpack Server for ${options.type.toUpperCase()}...`); + console.log(`\nRunning Nodemon and Webpack Server for ${options.type.toUpperCase()}...\n`); if (options.type === 'html') { await buildHtml(manuscriptDir, path.join(process.cwd(), 'build', 'html'), options.type); await runWebpackDevServerAsync('html'); @@ -78,7 +91,7 @@ function runNodemonAsync(outputType) { }); } -// Run the webpack server using the user's webpack.config.js +// Run the webpack server using default settings function runWebpackDevServerAsync(outputType) { const server = spawn( 'npx', diff --git a/lib/compile-scss.js b/lib/compile-scss.js index 62b5efd..26915ab 100644 --- a/lib/compile-scss.js +++ b/lib/compile-scss.js @@ -3,8 +3,7 @@ import sass from 'sass'; import path from 'path'; import chalk from 'chalk'; -export async function compileSCSSToCSS(scssInput, cssOutput) { - console.log(`Rendering ${path.basename(scssInput)}...\n`); +export default async function compileSASS(scssInput, cssOutput) { try { const result = sass.renderSync({ file: scssInput, outputStyle: 'compressed' }); fs.writeFileSync(cssOutput, result.css); diff --git a/lib/convert.js b/lib/convert.js index cd57f23..2abf71c 100755 --- a/lib/convert.js +++ b/lib/convert.js @@ -1,16 +1,17 @@ import fs from 'fs'; import fse from 'fs-extra'; import path from 'path'; +import { unified } from 'unified'; +import remarkGfm from 'remark-gfm'; +import remarkParse from 'remark-parse'; +import remarkHtml from 'remark-html'; import yaml from 'js-yaml'; import lintEjs from './lint-ejs.js'; import renderEjs from './render-ejs.js'; import parseSmarty from './parse-smartypants.js'; -import { compileSCSSToCSS } from './compile-scss.js'; +import compileSASS from './compile-scss.js'; import chalk from 'chalk'; -import parseMyst from './parse-myst.js'; -// Convert Manuscript Pipeline -//-------------------- // CONVERT MANUSCRIPT INTO BUILD TYPE //-------------------- export default async function convert(manuscriptDir, outputDir, outputType) { @@ -20,9 +21,13 @@ export default async function convert(manuscriptDir, outputDir, outputType) { // -------------------- let book; try { + console.log(' 1. Loading your book.config.yml...\n') book = yaml.load(fs.readFileSync(path.join(manuscriptDir, '../book.config.yml'), 'utf8')); + if (!book) { + console.warn(chalk.yellow(' Warning: The \'book\' variable is empty or undefined.\n This means your \'book.config.yml\' file isn\'t loading correctly.\n')); + } } catch (error) { - console.error(chalk.red('Error Loading book.config.yml:'), chalk.red(error)); + console.error(chalk.redBright('Error Loading book.config.yml:'), chalk.redBright(error)); } // Conversion Constants @@ -38,60 +43,85 @@ export default async function convert(manuscriptDir, outputDir, outputType) { fs.mkdirSync(outputDir, { recursive: true }); } - console.log('Loading manuscript...\n'); + console.log(' 2. Loading your manuscript...\n'); const manuscript = fs.readFileSync(entryPath, 'utf8'); // Lint the EJS Content (Check for Errors) // -------------------- let lintedEjs; + const ejsLintOpt = book['ejs-lint-options'] try { + console.log(' 3. Checking your EJS syntax for errors...\n') lintedEjs = await lintEjs(manuscript, ejsLintOpt); - console.log(chalk.green('Your EJS syntax look great!')); + if (!lintedEjs) { + console.warn(chalk.yellow(' Warning: lintedEjs content is empty or undefined.\n This means something isn\'t working in the linting (syntax checking) process.\n')); + } } catch (error) { - console.error(chalk.red('Whoops. We found errors in your EJS syntax:'), chalk.red(error)); + console.error(chalk.redBright('Whoops. We found errors in your EJS syntax:'), chalk.redBright(error)); } // Render EJS Content // -------------------- let processedEJS; try { + console.log(' 4. Processing your EJS files...\n') processedEJS = await renderEjs(lintedEjs, book, outputType, manuscriptDir, path); - console.log(chalk.green('Nice! Your EJS was rendered successfully!')) + if (!processedEJS) { + console.warn(chalk.yellow(' Warning: Your \'processedEJS\' variable is empty or undefined.\n This means something isn\'t working in the EJS conversion process.\n')); + } } catch (error) { - console.error(chalk.red('Dang. We couldn\'t render your EJS:'), chalk.red(error)); + console.error(chalk.redBright('Dang. We couldn\'t render your EJS:'), chalk.redBright(error)); } - let parsedMyST; - const mystOptions = book['myst-options']; + // Convert Markdown to HTML + // -------------------- + let parsedMarkdown; try { - console.log("\nProcessing MyST Markdown...\n"); - parsedMyST = await parseMyST(processedEJS, mystOptions, outputType); + console.log(" 5. Converting your manuscript Markdown into HTML...\n"); + parsedMarkdown = unified() + // convert markdown to a MD-AST syntax tree + .use(remarkParse) + // convert md-ast to gfm-ast (Github Flavored Markdown) and pass options + .use(remarkGfm, book['gfm-options']) + // convert gfm-ast to html-ast + // but don't git rid of none-markdown syntax + .use(remarkHtml, { sanitize: false }) + .processSync(processedEJS) + // convert to a string + .toString(); + if (!parsedMarkdown) { + console.warn(chalk.yellow(' Warning: Your parsedMarkdown variable is empty or undefined.\n This means something isn\'t working in the Markdown conversion funciton.\n')); + } } catch (error) { - console.error(chalk.red('MyST Processing Error:'), chalk.red(error)); + console.error(chalk.redBright('Markdown Processing Error:'), chalk.redBright(error)); } - // Use Smartypants to process quotes and symbols // -------------------- let parsedSmarty; try { - console.log("\nConverting quotes and symbols...\n"); - parsedSmarty = await parseSmarty(processedEJS); + console.log(" 6. Converting quotes and symbols...\n"); + parsedSmarty = await parseSmarty(parsedMarkdown); + if (!parsedSmarty) { + console.warn(chalk.yellow(' Warning: Your \'parsedSmarty\' variable is empty or undefined.\n This means something isn\'t working in the conversion of your quotes and symbols.\n')); + } } catch (error) { - console.error(chalk.red('Smartypants Processing Error:'), chalk.red(error)); + console.error(chalk.redBright('Smartypants Processing Error:'), chalk.redBright(error)); } // Write Final Build Output // -------------------- - console.log("Writing final build to " + outputFile) + const relOutFile = path.relative(process.cwd(), outputFile); + console.log(` 7. Writing final build to ${chalk.yellowBright(`/${relOutFile}`)}\n`) fs.writeFileSync(outputFile, parsedSmarty); // Copy Manuscript Theme to Build Location // -------------------- const themeSrcDir = path.join(manuscriptDir, 'theme'); const themeDestDir = path.join(outputDir, 'theme'); - console.log("\nCopying Manuscript Theme to Build Location (ignoring scss/css)...\n") + const relTheme = path.relative(process.cwd(), themeDestDir); + console.log(` 8. Copying Manuscript Theme to ${chalk.yellowBright(`/${relTheme}/`)}\n`) await fse.copy(themeSrcDir, themeDestDir, { filter: (src) => { @@ -111,10 +141,11 @@ export default async function convert(manuscriptDir, outputDir, outputType) { const scssInput = path.join(manuscriptDir, 'theme', 'css', `styles.${outputType}.scss`); const cssOutput = path.join(outputDir, 'theme', 'css', `styles.${outputType}.css`); - await compileSCSSToCSS(scssInput, cssOutput); + const relCssOut = path.relative(process.cwd(), cssOutput); + console.log(` 9. Compiling SASS and Copying to ${chalk.yellowBright(`/${relCssOut}`)}\n`) + await compileSASS(scssInput, cssOutput); - console.log("-------------------\nYay! All Finished!!\n-------------------\n"); } catch (error) { - console.error(chalk.red('\nError Converting Manuscript:'), chalk.red(error)); + console.error(chalk.redBright('\nError Converting Manuscript:'), chalk.redBright(error)); } } \ No newline at end of file diff --git a/lib/lint-ejs.js b/lib/lint-ejs.js index a1770d3..4deabf5 100644 --- a/lib/lint-ejs.js +++ b/lib/lint-ejs.js @@ -4,7 +4,6 @@ import chalk from 'chalk'; export default async function lintEjs(ejsContent, ejsLintOpt) { try { const lintedEjs = await ejsLint(ejsContent, ejsLintOpt); - console.log('Linted EJS content:', lintedEjs); return lintedEjs || ejsContent; // Return the original content if no linting errors are found } catch (error) { console.error(chalk.red('Error Linting EJS Content:'), chalk.red(error)); diff --git a/lib/load-book-config.js b/lib/load-book-config.js new file mode 100644 index 0000000..bea6ecf --- /dev/null +++ b/lib/load-book-config.js @@ -0,0 +1,20 @@ +import { readFileSync, existsSync } from 'fs'; +import yaml from 'js-yaml'; +import chalk from 'chalk'; + +export default async function loadBookConfig(bookPath) { + const bookConfigPath = bookPath; + + if (!existsSync(bookConfigPath)) { + console.error(chalk.red('book.config.yml not found in the current working directory.')); + process.exit(1); + } + + try { + const bookConfig = yaml.load(readFileSync(bookConfigPath, 'utf8')); + return bookConfig; + } catch (error) { + console.error(chalk.redBright('Error loading book.config.yml:'), chalk.redBright(error)); + process.exit(1); + } +} \ No newline at end of file diff --git a/lib/old-convert.js b/lib/old-convert.js deleted file mode 100644 index 3a603ae..0000000 --- a/lib/old-convert.js +++ /dev/null @@ -1,138 +0,0 @@ -import fs from 'fs'; -import ejs from 'ejs'; -import fse from 'fs-extra'; -import path from 'path'; -import { unified } from 'unified'; -import remarkGfm from 'remark-gfm'; -import remarkParse from 'remark-parse'; -import remarkDirective from 'remark-directive'; -import remarkHtml from 'remark-html'; -import yaml from 'js-yaml'; -import sass from 'sass'; -import ejslint from 'ejs-lint' - -// Small hack to import commonJS Smartypants into our ES Module -import { createRequire } from 'module'; -const require = createRequire(import.meta.url); -const SmartyPants = require('smartypants'); - -// Convert markdown and source files in /manuscript into -// one .html file in build/html -export default async function convert(manuscriptDir, outputDir, outputType) { - try { - - // Define outputFile within the convert function - const outputFile = path.join(outputDir, 'index.html'); - - // Set initial run variable to false (will be assigned true if already run) - let hasRun = false; - - // Make sure this only gets called once per build - if (hasRun) { - return; - } - hasRun = true; - // Create the output directory if it doesn't exist - if (!fs.existsSync(outputDir)) { - fs.mkdirSync(outputDir, { recursive: true }); - } - - // Load and log the book.yml file - console.log("Loading book.config.yml...\n"); - const book = yaml.load(fs.readFileSync(path.join(manuscriptDir, '../book.config.yml'), 'utf8')); - - // Load the files listed - const entryFile = book.settings.entryfile; - const tocfile = path.join(manuscriptDir, 'frontmatter/toc.html.ejs'); - - // Read the contents of each file and concatenate them into one markdown document - console.log(`Loading manuscript source files...\n`); - const templatePath = path.join(manuscriptDir, entryFile); - const templateContent = fs.readFileSync(templatePath, 'utf8'); - - console.log("Linting toc"); - try { - ejslint(tocfile); - } catch (err) { - console.error('EJS Lint Error:', err.message) - } - - // Lint (Check for errors) the ejs content - console.log('Checking EJS files for errors...') - const lintedEjs = templateContent; - try { - ejslint(lintedEjs); - } catch (err) { - console.error('EJS Lint Error:', err.message) - } - - // Render the EJS template with the book data and processed HTML content - const processedEJS = ejs.render(templateContent, { - meta: book.meta, - outputType: outputType, - manuscriptDir: manuscriptDir, - path: path, - }, { views: [manuscriptDir] }); - - // Convert the markdown document to HTML using Unified Remark - console.log("Converting manuscript Markdown files into HTML...\n"); - const html = unified() - // convert markdown to a MD-AST syntax tree - .use(remarkParse) - // convert md-ast to gfm-ast (Github Flavored Markdown) and pass options - .use(remarkGfm, book['gfm-options']) - // convert md-ast into directive-ast - // allows plugin creation for custom directives - .use(remarkDirective) - // convert gfm-ast to html-ast - // but don't git rid of none-markdown syntax - .use(remarkHtml, { sanitize: false }) - .processSync(processedEJS) - // convert to a string - .toString(); - - // Use Smartypants to process symbols and quotes - console.log("Converting symbols to smart symbols with \"smartypants\"...\n"); - const smartHtml = SmartyPants.default(html) - - // Write final output to output file (build/html/index.html) - fs.writeFileSync(outputFile, smartHtml); - - // Copy the contents of the "./manuscript/theme" directory into the "./build/html" directory - const themeSrcDir = path.join(manuscriptDir, 'theme'); - const themeDestDir = path.join(outputDir, 'theme'); - - console.log("Copying theme into build folder, but ignoring styles..css...\n"); - // Copy the theme/css directory, but not its contents - await fse.copy(themeSrcDir, themeDestDir, { - filter: (src) => { - // If there is a theme/css directory, include it - if (fs.lstatSync(src).isDirectory()) { - return true; - } - - // But ignore files in the theme/css/ directory - const relativePath = path.relative(themeSrcDir, src); - return !relativePath.startsWith('css'); - }, - }); - - // Compile SCSS to CSS - console.log(`Loading the input scss file path with ${outputType}...\n`); - const scssInput = path.join(manuscriptDir, 'theme', 'css', `styles.${outputType}.scss`); - - console.log(`Loading the output css file path with ${outputType}...\n`); - const cssOutput = path.join(outputDir, 'theme', 'css', `styles.${outputType}.css`); - - try { - const result = sass.renderSync({ file: scssInput, outputStyle: 'compressed' }); - fs.writeFileSync(cssOutput, result.css); - } catch (error) { - console.error('\x1b[31m%s\x1b[0m', `Error compiling SCSS: ${error.message}`); - } - - console.log("All Finished!\n") - } catch (error) { - console.error('\x1b[31m%s\x1b[0m', `Error Converting Source Files: ${error.message}`); - } -} \ No newline at end of file diff --git a/lib/parse-myst.js b/lib/parse-myst.js index 973aa0f..85a24b8 100644 --- a/lib/parse-myst.js +++ b/lib/parse-myst.js @@ -1,6 +1,9 @@ -import myst from 'mystjs' +import { createRequire } from 'module'; +const require = createRequire(import.meta.url); -async function parseMyST(content, options, outputType) { +const myst = require('mystjs'); + +export default async function parseMyST(content, options, outputType) { try { console.log('Parsing MyST Markdown Content...') const parsedMyST = await myst.parse(content, options, outputType); @@ -8,4 +11,4 @@ async function parseMyST(content, options, outputType) { } catch (error) { console.error(chalk.red('Error Parsing MyST Markdown:'), chalk.red(error)); } -} \ No newline at end of file +} diff --git a/lib/parse-smartypants.js b/lib/parse-smartypants.js index 249ddb7..f73afae 100644 --- a/lib/parse-smartypants.js +++ b/lib/parse-smartypants.js @@ -2,12 +2,12 @@ import { createRequire } from 'module'; // Small hack to use this CJS module in our ESM module const require = createRequire(import.meta.url); -const parseSmarty = require('smartypants'); +const parsingSmarty = require('smartypants'); export default async function parseSmarty(processedEJS) { return new Promise((resolve) => { try { - const parsedSmarty = parseSmarty.default(processedEJS); + const parsedSmarty = parsingSmarty.default(processedEJS); resolve(parsedSmarty); } catch (error) { console.error('Error parsing Smartypants:', error); diff --git a/package-lock.json b/package-lock.json index 01577bd..8c41b01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,8 +21,12 @@ "js-yaml": "^4.1.0", "mini-css-extract-plugin": "^2.7.5", "myst-cli": "^0.1.24", + "mystjs": "^0.0.15", "nodemon": "^2.0.22", "npm": "^9.6.2", + "remark-gfm": "^3.0.1", + "remark-html": "^15.0.2", + "remark-parse": "^10.0.1", "sass": "^1.60.0", "smartypants": "^0.1.6", "unified": "^10.1.2", @@ -366,6 +370,14 @@ "@types/node": "*" } }, + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/eslint": { "version": "8.21.3", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.21.3.tgz", @@ -449,11 +461,21 @@ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + }, "node_modules/@types/node": { "version": "18.15.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.0.tgz", "integrity": "sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==" }, + "node_modules/@types/parse5": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==" + }, "node_modules/@types/qs": { "version": "6.9.7", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", @@ -1485,6 +1507,15 @@ } ] }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", @@ -1507,6 +1538,33 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", @@ -1627,6 +1685,11 @@ "resolved": "https://registry.npmjs.org/citeproc/-/citeproc-2.4.63.tgz", "integrity": "sha512-68F95Bp4UbgZU/DBUGQn0qV3HDZLCdI9+Bb2ByrTaNJDL5VEm9LqaiNaxljsvoaExSLEXe1/r6n2Z06SCzW3/Q==" }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, "node_modules/cli-cursor": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", @@ -2030,6 +2093,18 @@ "ms": "2.0.0" } }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/deepmerge": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz", @@ -2076,11 +2151,27 @@ "node": ">= 0.8" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -3165,6 +3256,62 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-raw": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz", + "integrity": "sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/parse5": "^6.0.0", + "hast-util-from-parse5": "^7.0.0", + "hast-util-to-parse5": "^7.0.0", + "html-void-elements": "^2.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-sanitize": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-4.1.0.tgz", + "integrity": "sha512-Hd9tU0ltknMGRDv+d6Ro/4XKzBqQnP/EZrpiTbpFYfXv/uOhWeKc+2uajcbEvAEH98VZd7eII2PiXm13RihnLw==", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz", + "integrity": "sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-raw": "^7.0.0", + "hast-util-whitespace": "^2.0.0", + "html-void-elements": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-to-mdast": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/hast-util-to-mdast/-/hast-util-to-mdast-8.4.1.tgz", @@ -3191,6 +3338,23 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-parse5": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz", + "integrity": "sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-to-text": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz", @@ -3282,6 +3446,24 @@ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" }, + "node_modules/html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-whitespace-sensitive-tag-names": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-2.0.0.tgz", + "integrity": "sha512-SQdIvTTtnHAx72xGUIUudvVOCjeWvV1U7rvSFnNGxTGRw3ZC7RES4Gw6dm1nMYD60TXvm6zjk/bWqgNc5pjQaw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/htmlparser2": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", @@ -4083,6 +4265,14 @@ "node": ">=0.10.0" } }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/launch-editor": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", @@ -4152,6 +4342,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/map-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz", @@ -4189,6 +4388,21 @@ "resolved": "https://registry.npmjs.org/markdown-it-deflist/-/markdown-it-deflist-2.1.0.tgz", "integrity": "sha512-3OuqoRUlSxJiuQYu0cWTLHNhhq2xtoSFqsZK8plANg91+RJQU1ziQ6lA2LzmFAEes18uPBsHZpcX6We5l76Nzg==" }, + "node_modules/markdown-it-docutils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/markdown-it-docutils/-/markdown-it-docutils-0.1.6.tgz", + "integrity": "sha512-C34sjCj3KUfw+40jqWaCOFl6Woopx9U7uW6cv0QygWdaBoHRE0PNyBGRRL7tHSL5Sf/q41VNHFXeTN3nGhB0/w==", + "dependencies": { + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "markdown-it": "^12.3.2" + } + }, "node_modules/markdown-it-dollarmath": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/markdown-it-dollarmath/-/markdown-it-dollarmath-0.4.2.tgz", @@ -4272,12 +4486,35 @@ "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==" }, + "node_modules/markdown-table": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/mdast": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mdast/-/mdast-3.0.0.tgz", "integrity": "sha512-xySmf8g4fPKMeC07jXGz971EkLbWAJ83s4US2Tj9lEdnZ142UP5grN73H1Xd3HzrdbU5o9GYYP/y8F9ZSwLE9g==", "deprecated": "`mdast` was renamed to `remark`" }, + "node_modules/mdast-util-definitions": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", + "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-find-and-replace": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", @@ -4293,80 +4530,787 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "node_modules/mdast-util-from-markdown": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz", + "integrity": "sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", + "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", + "dependencies": { + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", + "mdast-util-gfm-strikethrough": "^1.0.0", + "mdast-util-gfm-table": "^1.0.0", + "mdast-util-gfm-task-list-item": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "ccount": "^2.0.0", + "mdast-util-find-and-replace": "^2.0.0", + "micromark-util-character": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", + "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", + "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", + "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", + "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "dependencies": { + "@types/mdast": "^3.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", + "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-definitions": "^5.0.0", + "micromark-util-sanitize-uri": "^1.1.0", + "trim-lines": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", + "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^3.0.0", + "mdast-util-to-string": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", + "unist-util-visit": "^4.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.1.tgz", + "integrity": "sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA==", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", + "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", + "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", + "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", + "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", + "micromark-extension-gfm-strikethrough": "^1.0.0", + "micromark-extension-gfm-table": "^1.0.0", + "micromark-extension-gfm-tagfilter": "^1.0.0", + "micromark-extension-gfm-task-list-item": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.0.tgz", + "integrity": "sha512-RWYce7j8+c0n7Djzv5NzGEGitNNYO3uj+h/XYMdS/JinH1Go+/Qkomg/rfxExFzYTiydaV6GLeffGO5qcJbMPA==", + "dependencies": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.5.tgz", + "integrity": "sha512-X0oI5eYYQVARhiNfbETy7BfLSmSilzN1eOuoRnrf9oUNsPRrWOAe9UqSizgw1vNxQBfOwL+n2610S3bYjVNi7w==", + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", + "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", + "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", + "dependencies": { + "micromark-util-types": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.4.tgz", + "integrity": "sha512-9XlIUUVnYXHsFF2HZ9jby4h3npfX10S1coXTnV035QGPgrtNYQq3J6IfIvcCIUAJrrqBVi5BqA/LmaOMJqPwMQ==", + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", + "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", + "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", + "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", + "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", + "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", + "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", + "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", + "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", + "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", + "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", + "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", + "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", + "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", + "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/mdast-util-to-string": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.1.1.tgz", - "integrity": "sha512-tGvhT94e+cVnQt8JWE9/b3cUQZWS732TJxXHktvP+BYo62PpYD53Ls/6cC60rW21dW+txxiM4zMdc6abASvZKA==", + "node_modules/micromark-util-resolve-all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", + "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" + "micromark-util-types": "^1.0.0" } }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" + "node_modules/micromark-util-sanitize-uri": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", + "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" } }, - "node_modules/memfs": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", - "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", + "node_modules/micromark-util-subtokenize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", + "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "fs-monkey": "^1.0.3" - }, - "engines": { - "node": ">= 4.0.0" + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, - "node_modules/merge-descriptors": { + "node_modules/micromark-util-symbol": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", + "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "node_modules/micromark-util-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", + "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/micromark/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, "engines": { - "node": ">= 8" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } + "node_modules/micromark/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/micromatch": { "version": "4.0.5", @@ -4514,6 +5458,14 @@ "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -5244,6 +6196,39 @@ "vfile-message": "^3.1.2" } }, + "node_modules/mystjs": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/mystjs/-/mystjs-0.0.15.tgz", + "integrity": "sha512-ZrGxd9LNU6UfvyYRgzyXx4+cyTGyItp8AxDfzx1lx9+yb+1MmbSDcod4v/TKIi/O8N3VUx6gDVNKvyhR+YeUYQ==", + "dependencies": { + "classnames": "^2.3.1", + "hast-util-to-mdast": "^8.3.1", + "he": "^1.2.0", + "markdown-it": "^12.3.2", + "markdown-it-amsmath": "^0.3.1", + "markdown-it-deflist": "^2.1.0", + "markdown-it-docutils": "0.1.6", + "markdown-it-dollarmath": "^0.4.2", + "markdown-it-footnote": "^3.0.3", + "markdown-it-front-matter": "^0.2.3", + "markdown-it-myst-extras": "0.2.0", + "markdown-it-task-lists": "^2.1.1", + "mdast-util-find-and-replace": "^2.1.0", + "mdast-util-to-hast": "^12.1.1", + "myst-spec": "^0.0.4", + "rehype-format": "^4.0.1", + "rehype-parse": "^8.0.4", + "rehype-remark": "^9.1.2", + "rehype-stringify": "^9.0.3", + "unified": "^10.1.1", + "unist-builder": "^3.0.0", + "unist-util-find-after": "^4.0.0", + "unist-util-map": "^3.0.1", + "unist-util-remove": "^3.1.0", + "unist-util-select": "^4.0.1", + "unist-util-visit": "^4.1.0" + } + }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -8743,6 +9728,26 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, + "node_modules/rehype-format": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rehype-format/-/rehype-format-4.0.1.tgz", + "integrity": "sha512-HA92WeqFri00yiClrz54IIpM9no2DH9Mgy5aFmInNODoAYn+hN42a6oqJTIie2nj0HwFyV7JvOYx5YHBphN8mw==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-embedded": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "hast-util-phrasing": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "html-whitespace-sensitive-tag-names": "^2.0.0", + "rehype-minify-whitespace": "^5.0.0", + "unified": "^10.0.0", + "unist-util-visit-parents": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/rehype-minify-whitespace": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-5.0.1.tgz", @@ -8790,6 +9795,65 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/rehype-stringify": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.3.tgz", + "integrity": "sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-to-html": "^8.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-html": { + "version": "15.0.2", + "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-15.0.2.tgz", + "integrity": "sha512-/CIOI7wzHJzsh48AiuIyIe1clxVkUtreul73zcCXLub0FmnevQE0UMFDQm7NUx8/3rl/4zCshlMfqBdWScQthw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "hast-util-sanitize": "^4.0.0", + "hast-util-to-html": "^8.0.0", + "mdast-util-to-hast": "^12.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -8935,6 +9999,17 @@ "tslib": "^2.1.0" } }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -9412,6 +10487,19 @@ "node": ">=8" } }, + "node_modules/stringify-entities": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", + "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -9695,6 +10783,15 @@ "resolved": "https://registry.npmjs.org/trie-prefix-tree/-/trie-prefix-tree-1.5.1.tgz", "integrity": "sha512-Jjvj/dA97wXnabG/NLJUgo4IQMj6vucH+Qxm7of/omfWSmZlPqdRU6Ta4GmQqCZH+n3/iYZUwfvUoEhB0Hs83Q==" }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/trim-trailing-lines": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-2.1.0.tgz", @@ -9804,6 +10901,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-generated": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", + "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-is": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", @@ -9841,6 +10947,18 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-position": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", + "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-remove": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-3.1.1.tgz", @@ -10023,6 +11141,23 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/package.json b/package.json index 9ea1024..14f2635 100644 --- a/package.json +++ b/package.json @@ -40,18 +40,17 @@ "dependencies": { "chalk": "^5.2.0", "commander": "^10.0.0", - "concurrently": "^7.6.0", - "css-loader": "^6.7.3", "ejs": "^3.1.9", "ejs-lint": "^2.0.0", "fs-extra": "^11.1.1", "inquirer": "^9.1.5", "install": "^0.13.0", "js-yaml": "^4.1.0", - "mini-css-extract-plugin": "^2.7.5", - "myst-cli": "^0.1.24", "nodemon": "^2.0.22", "npm": "^9.6.2", + "remark-gfm": "^3.0.1", + "remark-html": "^15.0.2", + "remark-parse": "^10.0.1", "sass": "^1.60.0", "smartypants": "^0.1.6", "unified": "^10.1.2",