From 3caa4766a440db2eab153f4afde28e9a0446b1e1 Mon Sep 17 00:00:00 2001 From: "Jill \"oatmealine\" Monoids" Date: Tue, 3 May 2022 23:29:06 +0300 Subject: [PATCH] init commit --- .gitignore | 8 + .npmrc | 1 + LICENSE | 619 +++++++++++++ README.md | 16 + jsconfig.json | 17 + package.json | 29 + pnpm-lock.yaml | 1568 ++++++++++++++++++++++++++++++++ src/app.css | 50 + src/app.d.ts | 10 + src/app.html | 13 + src/lib/Code.svelte | 93 ++ src/lib/Header.svelte | 60 ++ src/lib/Link.svelte | 28 + src/lib/Page.svelte | 40 + src/lib/Pages.svelte | 63 ++ src/lib/Section.svelte | 16 + src/lib/anchors.js | 38 + src/lib/fs.js | 9 + src/lib/pages.js | 71 ++ src/routes/__layout.svelte | 28 + src/routes/index.js | 9 + src/routes/index.svelte | 25 + src/routes/p/[...name].js | 20 + src/routes/p/[...name].json.js | 14 + src/routes/p/[...name].svelte | 14 + src/routes/p/_page.svelte | 84 ++ src/routes/p/index.js | 8 + static/external-link.svg | 1 + static/favicon.png | Bin 0 -> 1660 bytes static/guidebook.kra | Bin 0 -> 75445 bytes static/guidebook.png | Bin 0 -> 18517 bytes storage/random-value.json | 4 + storage/random-value.md | 145 +++ storage/test/test.json | 4 + storage/test/test.md | 145 +++ svelte.config.js | 16 + 36 files changed, 3266 insertions(+) create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 LICENSE create mode 100644 README.md create mode 100644 jsconfig.json create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 src/app.css create mode 100644 src/app.d.ts create mode 100644 src/app.html create mode 100644 src/lib/Code.svelte create mode 100644 src/lib/Header.svelte create mode 100644 src/lib/Link.svelte create mode 100644 src/lib/Page.svelte create mode 100644 src/lib/Pages.svelte create mode 100644 src/lib/Section.svelte create mode 100644 src/lib/anchors.js create mode 100644 src/lib/fs.js create mode 100644 src/lib/pages.js create mode 100644 src/routes/__layout.svelte create mode 100644 src/routes/index.js create mode 100644 src/routes/index.svelte create mode 100644 src/routes/p/[...name].js create mode 100644 src/routes/p/[...name].json.js create mode 100644 src/routes/p/[...name].svelte create mode 100644 src/routes/p/_page.svelte create mode 100644 src/routes/p/index.js create mode 100644 static/external-link.svg create mode 100644 static/favicon.png create mode 100644 static/guidebook.kra create mode 100644 static/guidebook.png create mode 100644 storage/random-value.json create mode 100644 storage/random-value.md create mode 100644 storage/test/test.json create mode 100644 storage/test/test.md create mode 100644 svelte.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f4401a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +node_modules +/build +/.svelte-kit +/package +.env +.env.* +!.env.example diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..aae2f33 --- /dev/null +++ b/LICENSE @@ -0,0 +1,619 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..ea6b325 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# Guidebook + +Hybrid documentation/blog software, built with SvelteKit. Currently focusing a lot more on documentation, but a fork is planned to focus a lot more on using it as blog software. + +Supports running without JavaScript with SSR but also supports hydration for snappy navigation. Quite flexible and easy to write docs for with simple Markdown. + +## How-to + +I honestly don't know yet lol + +To test it out: + +```bash +pnpm install +pnpm run dev -- --open +``` \ No newline at end of file diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..db7f337 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "allowJs": true, + "checkJs": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "lib": ["es2020", "DOM"], + "moduleResolution": "node", + "module": "es2020", + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "target": "es2020" + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..ff43d69 --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "guidebook", + "version": "0.0.1", + "scripts": { + "dev": "svelte-kit dev", + "build": "svelte-kit build", + "package": "svelte-kit package", + "preview": "svelte-kit preview", + "prepare": "svelte-kit sync", + "check": "svelte-check --tsconfig ./jsconfig.json", + "check:watch": "svelte-check --tsconfig ./jsconfig.json --watch" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "next", + "@sveltejs/kit": "next", + "svelte": "^3.44.0", + "svelte-check": "^2.2.6", + "typescript": "~4.6.2" + }, + "type": "module", + "dependencies": { + "highlight.js": "^11.5.1", + "normalize.css": "^8.0.1", + "svelte-exmarkdown": "^1.1.5", + "svelte-highlight": "^6.0.1", + "svelte-icons": "^2.1.0", + "time-to-read": "^1.0.0" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..de75bf9 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1568 @@ +lockfileVersion: 5.4 + +specifiers: + '@sveltejs/adapter-auto': next + '@sveltejs/kit': next + highlight.js: ^11.5.1 + normalize.css: ^8.0.1 + svelte: ^3.44.0 + svelte-check: ^2.2.6 + svelte-exmarkdown: ^1.1.5 + svelte-highlight: ^6.0.1 + svelte-icons: ^2.1.0 + time-to-read: ^1.0.0 + typescript: ~4.6.2 + +dependencies: + highlight.js: 11.5.1 + normalize.css: 8.0.1 + svelte-exmarkdown: 1.1.5 + svelte-highlight: 6.0.1 + svelte-icons: 2.1.0 + time-to-read: 1.0.0 + +devDependencies: + '@sveltejs/adapter-auto': 1.0.0-next.40 + '@sveltejs/kit': 1.0.0-next.324_svelte@3.48.0 + svelte: 3.48.0 + svelte-check: 2.7.0_svelte@3.48.0 + typescript: 4.6.4 + +packages: + + /@iarna/toml/2.2.5: + resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.13.0 + dev: true + + /@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@sveltejs/adapter-auto/1.0.0-next.40: + resolution: {integrity: sha512-TT6YJUF3asJ/2RbviEpcDJQ/TixPcvmH0L2266fGNT7+KfAf9wbbVdegPWRODk2E2hTN0X+h5YS9l+lap+BK9w==} + dependencies: + '@sveltejs/adapter-cloudflare': 1.0.0-next.19 + '@sveltejs/adapter-netlify': 1.0.0-next.56 + '@sveltejs/adapter-vercel': 1.0.0-next.50 + dev: true + + /@sveltejs/adapter-cloudflare/1.0.0-next.19: + resolution: {integrity: sha512-LET3DUYpl+deoKhkWCzhHUT7iipYkgVkOcRIJX7qT4m23A+MAbzcAC3npgwEYSe9RokOSWMVBr3tVujeES5EeA==} + dependencies: + esbuild: 0.14.38 + worktop: 0.8.0-next.13 + dev: true + + /@sveltejs/adapter-netlify/1.0.0-next.56: + resolution: {integrity: sha512-fM3aBHsr7syCGfIJcuB1mEoZwynqyOxVijvmyrd9OWHi6MP3bXSP+GhKDMtDpQRwejJJiwuZNTx2PUbV3uirvA==} + dependencies: + '@iarna/toml': 2.2.5 + esbuild: 0.14.38 + tiny-glob: 0.2.9 + dev: true + + /@sveltejs/adapter-vercel/1.0.0-next.50: + resolution: {integrity: sha512-yta0AkuWEr7qrm8LB34F4ZdCtMxj+cHD4huwrRYCgjv+PSJHLPwe7aH53+Mhrv6La0TgeyQ/f2lTyhBMXZXn9Q==} + dependencies: + esbuild: 0.14.38 + dev: true + + /@sveltejs/kit/1.0.0-next.324_svelte@3.48.0: + resolution: {integrity: sha512-/CGW9rQpHQLBb2EcMw08yelD/C9hTsypymctUWdhryMTI8n1VWb0gkUcSHsz8n8oAAbKLXqwyHqeLATfcIMg2w==} + engines: {node: '>=14.13'} + hasBin: true + peerDependencies: + svelte: ^3.44.0 + dependencies: + '@sveltejs/vite-plugin-svelte': 1.0.0-next.42_svelte@3.48.0+vite@2.9.7 + chokidar: 3.5.3 + sade: 1.8.1 + svelte: 3.48.0 + vite: 2.9.7 + transitivePeerDependencies: + - diff-match-patch + - less + - sass + - stylus + - supports-color + dev: true + + /@sveltejs/vite-plugin-svelte/1.0.0-next.42_svelte@3.48.0+vite@2.9.7: + resolution: {integrity: sha512-I8ILzfjVQuOkl6eDHif6/QJhOEBnsA40u6/0RDWK0mujwOr+MfWCWEZEnrTKqa6YIVMO+uktfoknu61chbAIeg==} + engines: {node: ^14.13.1 || >= 16} + peerDependencies: + diff-match-patch: ^1.0.5 + svelte: ^3.44.0 + vite: ^2.9.0 + peerDependenciesMeta: + diff-match-patch: + optional: true + dependencies: + '@rollup/pluginutils': 4.2.1 + debug: 4.3.4 + kleur: 4.1.4 + magic-string: 0.26.1 + svelte: 3.48.0 + svelte-hmr: 0.14.11_svelte@3.48.0 + vite: 2.9.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@types/debug/4.1.7: + resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} + dependencies: + '@types/ms': 0.7.31 + dev: false + + /@types/hast/2.3.4: + resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /@types/mdast/3.0.10: + resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /@types/mdurl/1.0.2: + resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} + dev: false + + /@types/ms/0.7.31: + resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + dev: false + + /@types/node/17.0.31: + resolution: {integrity: sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q==} + dev: true + + /@types/pug/2.0.6: + resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} + dev: true + + /@types/sass/1.43.1: + resolution: {integrity: sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==} + dependencies: + '@types/node': 17.0.31 + dev: true + + /@types/unist/2.0.6: + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + dev: false + + /anymatch/3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /bail/2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /buffer-crc32/0.2.13: + resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /ccount/2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + + /character-entities/2.0.1: + resolution: {integrity: sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==} + dev: false + + /chokidar/3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decode-named-character-reference/1.0.1: + resolution: {integrity: sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==} + dependencies: + character-entities: 2.0.1 + dev: false + + /dequal/2.0.2: + resolution: {integrity: sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==} + engines: {node: '>=6'} + dev: false + + /detect-indent/6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /diff/5.0.0: + resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} + engines: {node: '>=0.3.1'} + dev: false + + /es6-promise/3.3.1: + resolution: {integrity: sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=} + dev: true + + /esbuild-android-64/0.14.38: + resolution: {integrity: sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-android-arm64/0.14.38: + resolution: {integrity: sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-64/0.14.38: + resolution: {integrity: sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-darwin-arm64/0.14.38: + resolution: {integrity: sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-64/0.14.38: + resolution: {integrity: sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-freebsd-arm64/0.14.38: + resolution: {integrity: sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-32/0.14.38: + resolution: {integrity: sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-64/0.14.38: + resolution: {integrity: sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm/0.14.38: + resolution: {integrity: sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-arm64/0.14.38: + resolution: {integrity: sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le/0.14.38: + resolution: {integrity: sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-ppc64le/0.14.38: + resolution: {integrity: sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-riscv64/0.14.38: + resolution: {integrity: sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-s390x/0.14.38: + resolution: {integrity: sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-netbsd-64/0.14.38: + resolution: {integrity: sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-openbsd-64/0.14.38: + resolution: {integrity: sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /esbuild-sunos-64/0.14.38: + resolution: {integrity: sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-32/0.14.38: + resolution: {integrity: sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-64/0.14.38: + resolution: {integrity: sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild-windows-arm64/0.14.38: + resolution: {integrity: sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /esbuild/0.14.38: + resolution: {integrity: sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + esbuild-android-64: 0.14.38 + esbuild-android-arm64: 0.14.38 + esbuild-darwin-64: 0.14.38 + esbuild-darwin-arm64: 0.14.38 + esbuild-freebsd-64: 0.14.38 + esbuild-freebsd-arm64: 0.14.38 + esbuild-linux-32: 0.14.38 + esbuild-linux-64: 0.14.38 + esbuild-linux-arm: 0.14.38 + esbuild-linux-arm64: 0.14.38 + esbuild-linux-mips64le: 0.14.38 + esbuild-linux-ppc64le: 0.14.38 + esbuild-linux-riscv64: 0.14.38 + esbuild-linux-s390x: 0.14.38 + esbuild-netbsd-64: 0.14.38 + esbuild-openbsd-64: 0.14.38 + esbuild-sunos-64: 0.14.38 + esbuild-windows-32: 0.14.38 + esbuild-windows-64: 0.14.38 + esbuild-windows-arm64: 0.14.38 + dev: true + + /escape-string-regexp/5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /extend/3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + + /fast-glob/3.2.11: + resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fastq/1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + dependencies: + reusify: 1.0.4 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + dev: true + + /fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob/7.2.0: + resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globalyzer/0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + + /globrex/0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + + /graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + dev: true + + /has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: true + + /highlight.js/11.5.0: + resolution: {integrity: sha512-SM6WDj5/C+VfIY8pZ6yW6Xa0Fm1tniYVYWYW1Q/DcMnISZFrC3aQAZZZFAAZtybKNrGId3p/DNbFTtcTXXgYBw==} + engines: {node: '>=12.0.0'} + dev: false + + /highlight.js/11.5.1: + resolution: {integrity: sha512-LKzHqnxr4CrD2YsNoIf/o5nJ09j4yi/GcH5BnYz9UnVpZdS4ucMgvP61TDty5xJcFGRjnH4DpujkS9bHT3hq0Q==} + engines: {node: '>=12.0.0'} + dev: false + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-buffer/2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: false + + /is-core-module/2.9.0: + resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} + dependencies: + has: 1.0.3 + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} + dev: true + + /is-glob/4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-plain-obj/4.0.0: + resolution: {integrity: sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==} + engines: {node: '>=12'} + dev: false + + /kleur/4.1.4: + resolution: {integrity: sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==} + engines: {node: '>=6'} + + /longest-streak/3.0.1: + resolution: {integrity: sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==} + dev: false + + /magic-string/0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /magic-string/0.26.1: + resolution: {integrity: sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==} + engines: {node: '>=12'} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /markdown-table/3.0.2: + resolution: {integrity: sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==} + dev: false + + /mdast-util-definitions/5.1.0: + resolution: {integrity: sha512-5hcR7FL2EuZ4q6lLMUK5w4lHT2H3vqL9quPvYZ/Ku5iifrirfMHiGdhxdXMUbUkDmz5I+TYMd7nbaxUhbQkfpQ==} + dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + unist-util-visit: 3.1.0 + dev: false + + /mdast-util-find-and-replace/2.1.0: + resolution: {integrity: sha512-1w1jbqAd13oU78QPBf5223+xB+37ecNtQ1JElq2feWols5oEYAl+SgNDnOZipe7NfLemoEt362yUS15/wip4mw==} + dependencies: + escape-string-regexp: 5.0.0 + unist-util-is: 5.1.1 + unist-util-visit-parents: 4.1.1 + dev: false + + /mdast-util-from-markdown/1.2.0: + resolution: {integrity: sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==} + dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + decode-named-character-reference: 1.0.1 + mdast-util-to-string: 3.1.0 + micromark: 3.0.10 + micromark-util-decode-numeric-character-reference: 1.0.0 + micromark-util-decode-string: 1.0.2 + micromark-util-normalize-identifier: 1.0.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + unist-util-stringify-position: 3.0.2 + uvu: 0.5.3 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-autolink-literal/1.0.2: + resolution: {integrity: sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==} + dependencies: + '@types/mdast': 3.0.10 + ccount: 2.0.1 + mdast-util-find-and-replace: 2.1.0 + micromark-util-character: 1.1.0 + dev: false + + /mdast-util-gfm-footnote/1.0.1: + resolution: {integrity: sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-markdown: 1.3.0 + micromark-util-normalize-identifier: 1.0.0 + dev: false + + /mdast-util-gfm-strikethrough/1.0.1: + resolution: {integrity: sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-markdown: 1.3.0 + dev: false + + /mdast-util-gfm-table/1.0.4: + resolution: {integrity: sha512-aEuoPwZyP4iIMkf2cLWXxx3EQ6Bmh2yKy9MVCg4i6Sd3cX80dcLEfXO/V4ul3pGH9czBK4kp+FAl+ZHmSUt9/w==} + dependencies: + markdown-table: 3.0.2 + mdast-util-from-markdown: 1.2.0 + mdast-util-to-markdown: 1.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-task-list-item/1.0.1: + resolution: {integrity: sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-to-markdown: 1.3.0 + dev: false + + /mdast-util-gfm/2.0.1: + resolution: {integrity: sha512-42yHBbfWIFisaAfV1eixlabbsa6q7vHeSPY+cg+BBjX51M8xhgMacqH9g6TftB/9+YkcI0ooV4ncfrJslzm/RQ==} + dependencies: + mdast-util-from-markdown: 1.2.0 + mdast-util-gfm-autolink-literal: 1.0.2 + mdast-util-gfm-footnote: 1.0.1 + mdast-util-gfm-strikethrough: 1.0.1 + mdast-util-gfm-table: 1.0.4 + mdast-util-gfm-task-list-item: 1.0.1 + mdast-util-to-markdown: 1.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-to-hast/12.1.1: + resolution: {integrity: sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw==} + dependencies: + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + '@types/mdurl': 1.0.2 + mdast-util-definitions: 5.1.0 + mdurl: 1.0.1 + micromark-util-sanitize-uri: 1.0.0 + unist-builder: 3.0.0 + unist-util-generated: 2.0.0 + unist-util-position: 4.0.3 + unist-util-visit: 4.1.0 + dev: false + + /mdast-util-to-markdown/1.3.0: + resolution: {integrity: sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==} + dependencies: + '@types/mdast': 3.0.10 + '@types/unist': 2.0.6 + longest-streak: 3.0.1 + mdast-util-to-string: 3.1.0 + micromark-util-decode-string: 1.0.2 + unist-util-visit: 4.1.0 + zwitch: 2.0.2 + dev: false + + /mdast-util-to-string/3.1.0: + resolution: {integrity: sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==} + dev: false + + /mdurl/1.0.1: + resolution: {integrity: sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=} + dev: false + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromark-core-commonmark/1.0.6: + resolution: {integrity: sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==} + dependencies: + decode-named-character-reference: 1.0.1 + micromark-factory-destination: 1.0.0 + micromark-factory-label: 1.0.2 + micromark-factory-space: 1.0.0 + micromark-factory-title: 1.0.2 + micromark-factory-whitespace: 1.0.0 + micromark-util-character: 1.1.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.2 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.3 + dev: false + + /micromark-extension-gfm-autolink-literal/1.0.3: + resolution: {integrity: sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-sanitize-uri: 1.0.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.3 + dev: false + + /micromark-extension-gfm-footnote/1.0.4: + resolution: {integrity: sha512-E/fmPmDqLiMUP8mLJ8NbJWJ4bTw6tS+FEQS8CcuDtZpILuOb2kjLqPEeAePF1djXROHXChM/wPJw0iS4kHCcIg==} + dependencies: + micromark-core-commonmark: 1.0.6 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-normalize-identifier: 1.0.0 + micromark-util-sanitize-uri: 1.0.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.3 + dev: false + + /micromark-extension-gfm-strikethrough/1.0.4: + resolution: {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.1 + micromark-util-types: 1.0.2 + uvu: 0.5.3 + dev: false + + /micromark-extension-gfm-table/1.0.5: + resolution: {integrity: sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.3 + dev: false + + /micromark-extension-gfm-tagfilter/1.0.1: + resolution: {integrity: sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==} + dependencies: + micromark-util-types: 1.0.2 + dev: false + + /micromark-extension-gfm-task-list-item/1.0.3: + resolution: {integrity: sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.3 + dev: false + + /micromark-extension-gfm/2.0.1: + resolution: {integrity: sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==} + dependencies: + micromark-extension-gfm-autolink-literal: 1.0.3 + micromark-extension-gfm-footnote: 1.0.4 + micromark-extension-gfm-strikethrough: 1.0.4 + micromark-extension-gfm-table: 1.0.5 + micromark-extension-gfm-tagfilter: 1.0.1 + micromark-extension-gfm-task-list-item: 1.0.3 + micromark-util-combine-extensions: 1.0.0 + micromark-util-types: 1.0.2 + dev: false + + /micromark-factory-destination/1.0.0: + resolution: {integrity: sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: false + + /micromark-factory-label/1.0.2: + resolution: {integrity: sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.3 + dev: false + + /micromark-factory-space/1.0.0: + resolution: {integrity: sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-types: 1.0.2 + dev: false + + /micromark-factory-title/1.0.2: + resolution: {integrity: sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.3 + dev: false + + /micromark-factory-whitespace/1.0.0: + resolution: {integrity: sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==} + dependencies: + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: false + + /micromark-util-character/1.1.0: + resolution: {integrity: sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==} + dependencies: + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: false + + /micromark-util-chunked/1.0.0: + resolution: {integrity: sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==} + dependencies: + micromark-util-symbol: 1.0.1 + dev: false + + /micromark-util-classify-character/1.0.0: + resolution: {integrity: sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + dev: false + + /micromark-util-combine-extensions/1.0.0: + resolution: {integrity: sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==} + dependencies: + micromark-util-chunked: 1.0.0 + micromark-util-types: 1.0.2 + dev: false + + /micromark-util-decode-numeric-character-reference/1.0.0: + resolution: {integrity: sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==} + dependencies: + micromark-util-symbol: 1.0.1 + dev: false + + /micromark-util-decode-string/1.0.2: + resolution: {integrity: sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==} + dependencies: + decode-named-character-reference: 1.0.1 + micromark-util-character: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.0.0 + micromark-util-symbol: 1.0.1 + dev: false + + /micromark-util-encode/1.0.1: + resolution: {integrity: sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==} + dev: false + + /micromark-util-html-tag-name/1.0.0: + resolution: {integrity: sha512-NenEKIshW2ZI/ERv9HtFNsrn3llSPZtY337LID/24WeLqMzeZhBEE6BQ0vS2ZBjshm5n40chKtJ3qjAbVV8S0g==} + dev: false + + /micromark-util-normalize-identifier/1.0.0: + resolution: {integrity: sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==} + dependencies: + micromark-util-symbol: 1.0.1 + dev: false + + /micromark-util-resolve-all/1.0.0: + resolution: {integrity: sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==} + dependencies: + micromark-util-types: 1.0.2 + dev: false + + /micromark-util-sanitize-uri/1.0.0: + resolution: {integrity: sha512-cCxvBKlmac4rxCGx6ejlIviRaMKZc0fWm5HdCHEeDWRSkn44l6NdYVRyU+0nT1XC72EQJMZV8IPHF+jTr56lAg==} + dependencies: + micromark-util-character: 1.1.0 + micromark-util-encode: 1.0.1 + micromark-util-symbol: 1.0.1 + dev: false + + /micromark-util-subtokenize/1.0.2: + resolution: {integrity: sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==} + dependencies: + micromark-util-chunked: 1.0.0 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.3 + dev: false + + /micromark-util-symbol/1.0.1: + resolution: {integrity: sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==} + dev: false + + /micromark-util-types/1.0.2: + resolution: {integrity: sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==} + dev: false + + /micromark/3.0.10: + resolution: {integrity: sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==} + dependencies: + '@types/debug': 4.1.7 + debug: 4.3.4 + decode-named-character-reference: 1.0.1 + micromark-core-commonmark: 1.0.6 + micromark-factory-space: 1.0.0 + micromark-util-character: 1.1.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.1 + 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.2 + micromark-util-symbol: 1.0.1 + micromark-util-types: 1.0.2 + uvu: 0.5.3 + transitivePeerDependencies: + - supports-color + dev: false + + /micromatch/4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /min-indent/1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist/1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + dev: true + + /mkdirp/0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.6 + dev: true + + /mri/1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + /mrmime/1.0.0: + resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==} + engines: {node: '>=10'} + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /nanoid/3.3.3: + resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize.css/8.0.1: + resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==} + dev: false + + /once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + dependencies: + wrappy: 1.0.2 + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true + + /picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /postcss/8.4.13: + resolution: {integrity: sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.3 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /regexparam/2.0.0: + resolution: {integrity: sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==} + engines: {node: '>=8'} + dev: true + + /remark-gfm/3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-gfm: 2.0.1 + micromark-extension-gfm: 2.0.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-parse/10.0.1: + resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} + dependencies: + '@types/mdast': 3.0.10 + mdast-util-from-markdown: 1.2.0 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-rehype/10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + dependencies: + '@types/hast': 2.3.4 + '@types/mdast': 3.0.10 + mdast-util-to-hast: 12.1.1 + unified: 10.1.2 + dev: false + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve/1.22.0: + resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} + hasBin: true + dependencies: + is-core-module: 2.9.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf/2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.0 + dev: true + + /rollup/2.71.1: + resolution: {integrity: sha512-lMZk3XfUBGjrrZQpvPSoXcZSfKcJ2Bgn+Z0L1MoW2V8Wh7BVM+LOBJTPo16yul2MwL59cXedzW1ruq3rCjSRgw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /sade/1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + + /sander/0.5.1: + resolution: {integrity: sha1-dB4kXiMfB8r7b98PEzrfohalAq0=} + dependencies: + es6-promise: 3.3.1 + graceful-fs: 4.2.10 + mkdirp: 0.5.6 + rimraf: 2.7.1 + dev: true + + /sorcery/0.10.0: + resolution: {integrity: sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=} + hasBin: true + dependencies: + buffer-crc32: 0.2.13 + minimist: 1.2.6 + sander: 0.5.1 + sourcemap-codec: 1.4.8 + dev: true + + /source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.7.3: + resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} + engines: {node: '>= 8'} + dev: true + + /sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + dev: true + + /strip-indent/3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /svelte-check/2.7.0_svelte@3.48.0: + resolution: {integrity: sha512-GrvG24j0+i8AOm0k0KyJ6Dqc+TAR2yzB7rtS4nljHStunVxCTr/1KYlv4EsOeoqtHLzeWMOd5D2O6nDdP/yw4A==} + hasBin: true + peerDependencies: + svelte: ^3.24.0 + dependencies: + chokidar: 3.5.3 + fast-glob: 3.2.11 + import-fresh: 3.3.0 + picocolors: 1.0.0 + sade: 1.8.1 + source-map: 0.7.3 + svelte: 3.48.0 + svelte-preprocess: 4.10.6_wwvk7nlptlrqo2czohjtk6eiqm + typescript: 4.6.4 + transitivePeerDependencies: + - '@babel/core' + - coffeescript + - less + - node-sass + - postcss + - postcss-load-config + - pug + - sass + - stylus + - sugarss + dev: true + + /svelte-exmarkdown/1.1.5: + resolution: {integrity: sha512-LFw/6J2r/RYCsCW/oPxDippFKH6EOvPOLsTyGqnnOsQ3VnP74m6APF3XjDf1iB+50bsi2cp+/LDg09ORKU1c4g==} + dependencies: + remark-gfm: 3.0.1 + remark-parse: 10.0.1 + remark-rehype: 10.1.0 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /svelte-highlight/6.0.1: + resolution: {integrity: sha512-FOe0ePVoP59VO7e0cAXZ7OMooXEuC/lh0FK4Zr++3qRzNWm14a/ljICBTGZXqD+/l3mAIB5EzkVu3Nc/TZEyuA==} + dependencies: + highlight.js: 11.5.0 + dev: false + + /svelte-hmr/0.14.11_svelte@3.48.0: + resolution: {integrity: sha512-R9CVfX6DXxW1Kn45Jtmx+yUe+sPhrbYSUp7TkzbW0jI5fVPn6lsNG9NEs5dFg5qRhFNAoVdRw5qQDLALNKhwbQ==} + engines: {node: ^12.20 || ^14.13.1 || >= 16} + peerDependencies: + svelte: '>=3.19.0' + dependencies: + svelte: 3.48.0 + dev: true + + /svelte-icons/2.1.0: + resolution: {integrity: sha512-rHPQjweEc9fGSnvM0/4gA3pDHwyZyYsC5KhttCZRhSMJfLttJST5Uq0B16Czhw+HQ+HbSOk8kLigMlPs7gZtfg==} + dev: false + + /svelte-preprocess/4.10.6_wwvk7nlptlrqo2czohjtk6eiqm: + resolution: {integrity: sha512-I2SV1w/AveMvgIQlUF/ZOO3PYVnhxfcpNyGt8pxpUVhPfyfL/CZBkkw/KPfuFix5FJ9TnnNYMhACK3DtSaYVVQ==} + engines: {node: '>= 9.11.2'} + requiresBuild: true + peerDependencies: + '@babel/core': ^7.10.2 + coffeescript: ^2.5.1 + less: ^3.11.3 || ^4.0.0 + node-sass: '*' + postcss: ^7 || ^8 + postcss-load-config: ^2.1.0 || ^3.0.0 + pug: ^3.0.0 + sass: ^1.26.8 + stylus: ^0.55.0 + sugarss: ^2.0.0 + svelte: ^3.23.0 + typescript: ^3.9.5 || ^4.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + coffeescript: + optional: true + less: + optional: true + node-sass: + optional: true + postcss: + optional: true + postcss-load-config: + optional: true + pug: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + typescript: + optional: true + dependencies: + '@types/pug': 2.0.6 + '@types/sass': 1.43.1 + detect-indent: 6.1.0 + magic-string: 0.25.9 + sorcery: 0.10.0 + strip-indent: 3.0.0 + svelte: 3.48.0 + typescript: 4.6.4 + dev: true + + /svelte/3.48.0: + resolution: {integrity: sha512-fN2YRm/bGumvjUpu6yI3BpvZnpIm9I6A7HR4oUNYd7ggYyIwSA/BX7DJ+UXXffLp6XNcUijyLvttbPVCYa/3xQ==} + engines: {node: '>= 8'} + dev: true + + /time-to-read/1.0.0: + resolution: {integrity: sha512-xwApEGD/id8PGrwvCiExR7FCJOgD+/JM4ZvEPIVFnL2KVjKLSPQU+fnNY2FGpkRvUQX+AZ65K5Aj2Bnb8oqNdw==} + dev: false + + /tiny-glob/0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + dev: true + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /trough/2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + dev: false + + /typescript/4.6.4: + resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unified/10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + dependencies: + '@types/unist': 2.0.6 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.0.0 + trough: 2.1.0 + vfile: 5.3.2 + dev: false + + /unist-builder/3.0.0: + resolution: {integrity: sha512-GFxmfEAa0vi9i5sd0R2kcrI9ks0r82NasRq5QHh2ysGngrc6GiqD5CDf1FjPenY4vApmFASBIIlk/jj5J5YbmQ==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /unist-util-generated/2.0.0: + resolution: {integrity: sha512-TiWE6DVtVe7Ye2QxOVW9kqybs6cZexNwTwSMVgkfjEReqy/xwGpAXb99OxktoWwmL+Z+Epb0Dn8/GNDYP1wnUw==} + dev: false + + /unist-util-is/5.1.1: + resolution: {integrity: sha512-F5CZ68eYzuSvJjGhCLPL3cYx45IxkqXSetCcRgUXtbcm50X2L9oOWQlfUfDdAf+6Pd27YDblBfdtmsThXmwpbQ==} + dev: false + + /unist-util-position/4.0.3: + resolution: {integrity: sha512-p/5EMGIa1qwbXjA+QgcBXaPWjSnZfQ2Sc3yBEEfgPwsEmJd8Qh+DSk3LGnmOM4S1bY2C0AjmMnB8RuEYxpPwXQ==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /unist-util-stringify-position/3.0.2: + resolution: {integrity: sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /unist-util-visit-parents/4.1.1: + resolution: {integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 5.1.1 + dev: false + + /unist-util-visit-parents/5.1.0: + resolution: {integrity: sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 5.1.1 + dev: false + + /unist-util-visit/3.1.0: + resolution: {integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 5.1.1 + unist-util-visit-parents: 4.1.1 + dev: false + + /unist-util-visit/4.1.0: + resolution: {integrity: sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==} + dependencies: + '@types/unist': 2.0.6 + unist-util-is: 5.1.1 + unist-util-visit-parents: 5.1.0 + dev: false + + /uvu/0.5.3: + resolution: {integrity: sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.2 + diff: 5.0.0 + kleur: 4.1.4 + sade: 1.8.1 + dev: false + + /vfile-message/3.1.2: + resolution: {integrity: sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==} + dependencies: + '@types/unist': 2.0.6 + unist-util-stringify-position: 3.0.2 + dev: false + + /vfile/5.3.2: + resolution: {integrity: sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA==} + dependencies: + '@types/unist': 2.0.6 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.2 + vfile-message: 3.1.2 + dev: false + + /vite/2.9.7: + resolution: {integrity: sha512-5hH7aNQe8rJiTTqCtPNX/6mIKlGw+1wg8UXwAxDIIN8XaSR+Zx3GT2zSu7QKa1vIaBqfUODGh3vpwY8r0AW/jw==} + engines: {node: '>=12.2.0'} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + dependencies: + esbuild: 0.14.38 + postcss: 8.4.13 + resolve: 1.22.0 + rollup: 2.71.1 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /worktop/0.8.0-next.13: + resolution: {integrity: sha512-aLPWSneFtPJr3RAf841orF9GNlVdVkQd2Wj/BbcGHp3whBZoXx6dcwwClA9fezm7muNan4SuT+ZTyMWdoJSCAg==} + engines: {node: '>=12'} + dependencies: + mrmime: 1.0.0 + regexparam: 2.0.0 + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + dev: true + + /zwitch/2.0.2: + resolution: {integrity: sha512-JZxotl7SxAJH0j7dN4pxsTV6ZLXoLdGME+PsjkL/DaBrVryK9kTGq06GfKrwcSOqypP+fdXGoCHE36b99fWVoA==} + dev: false diff --git a/src/app.css b/src/app.css new file mode 100644 index 0000000..761d95f --- /dev/null +++ b/src/app.css @@ -0,0 +1,50 @@ +@import url('https://rsms.me/inter/inter.css'); +@import url('http://fonts.cdnfonts.com/css/cascadia-mono'); + +:root { + --font-regular: 'Inter', 'Segoe UI', 'Tahoma', 'Geneva', 'Verdana', sans-serif; + --font-monospace: ui-monospace, 'Cascadia Mono', 'Menlo', 'Monacco', monospace; +} +@supports (font-variation-settings: normal) { + :root { + --font-regular: 'Inter var', 'Segoe UI', 'Tahoma', 'Geneva', 'Verdana', sans-serif; + } +} + +body { + font-family: var(--font-regular); + background-color: rgb(250, 256, 251); + color: #222; + margin: 0; + padding: 0; +} + +main { + max-width: 1200px; + margin: 0 auto; + margin-bottom: 100px; + display: flex; + flex-direction: column; + align-items: center; +} + +code, pre { + font-family: var(--font-monospace); +} + +a { + color: rgb(100, 120, 255); + stroke: rgb(100, 120, 255); + transition: 0.1s color, 0.1s fill; +} +a:hover { + color: rgb(140, 160, 255); + stroke: rgb(140, 160, 255); +} + +@media (prefers-color-scheme: dark) { + body { + background-color: rgb(30,31,31); + color: #eee; + } +} \ No newline at end of file diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..121720c --- /dev/null +++ b/src/app.d.ts @@ -0,0 +1,10 @@ +/// + +// See https://kit.svelte.dev/docs/types#app +// for information about these interfaces +declare namespace App { + // interface Locals {} + // interface Platform {} + // interface Session {} + // interface Stuff {} +} diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..7c93443 --- /dev/null +++ b/src/app.html @@ -0,0 +1,13 @@ + + + + + + + Guidebook + %svelte.head% + + +
%svelte.body%
+ + diff --git a/src/lib/Code.svelte b/src/lib/Code.svelte new file mode 100644 index 0000000..b45ee0c --- /dev/null +++ b/src/lib/Code.svelte @@ -0,0 +1,93 @@ + + + + +{#if properties.class} +
+ + +
+{:else} + {code} +{/if} \ No newline at end of file diff --git a/src/lib/Header.svelte b/src/lib/Header.svelte new file mode 100644 index 0000000..0632025 --- /dev/null +++ b/src/lib/Header.svelte @@ -0,0 +1,60 @@ + + + + +
+ + +
\ No newline at end of file diff --git a/src/lib/Link.svelte b/src/lib/Link.svelte new file mode 100644 index 0000000..2d04b9f --- /dev/null +++ b/src/lib/Link.svelte @@ -0,0 +1,28 @@ + + + + + + + + {#if isExternal} + + + + {/if} + \ No newline at end of file diff --git a/src/lib/Page.svelte b/src/lib/Page.svelte new file mode 100644 index 0000000..c7438f1 --- /dev/null +++ b/src/lib/Page.svelte @@ -0,0 +1,40 @@ + + + + +
+ +
\ No newline at end of file diff --git a/src/lib/Pages.svelte b/src/lib/Pages.svelte new file mode 100644 index 0000000..68e938d --- /dev/null +++ b/src/lib/Pages.svelte @@ -0,0 +1,63 @@ + + + + + + \ No newline at end of file diff --git a/src/lib/Section.svelte b/src/lib/Section.svelte new file mode 100644 index 0000000..a06cf53 --- /dev/null +++ b/src/lib/Section.svelte @@ -0,0 +1,16 @@ + + +

\ No newline at end of file diff --git a/src/lib/anchors.js b/src/lib/anchors.js new file mode 100644 index 0000000..7ebbe31 --- /dev/null +++ b/src/lib/anchors.js @@ -0,0 +1,38 @@ +export function toAnchor(name) { + return name + .trim() + .toLowerCase() + .replace(/\W/g, '-') // replace non-words with dashes + .replace(/-{2,}/g, '-') // deduplicate + .replace(/-+$/, '') // remove trailing dashes + .replace(/^-+/, ''); +} + +// lazy +export function removeMarkdown(md) { + return md + .replace(/```(.+)```/gm, (_, m) => m) + .replace(/``(.+)``/gm, (_, m) => m) + .replace(/`(.+)`/gm, (_, m) => m) + .replace(/__(.+)__/gm, (_, m) => m) + .replace(/_(.+)_/gm, (_, m) => m) + .replace(/\*\*(.+)\*\*/gm, (_, m) => m) + .replace(/\*(.+)\*/gm, (_, m) => m) +} + +function countHashes(l) { + let count = 0; + let line = l.split(''); + while (line.splice(0, 1)[0] === '#') { + count++; + } + return {level: count, name: line.join('')}; +} + +export function extractAnchors(md) { + return md + .split('\n') + .filter(l => l.trim().startsWith('#')) + .map(l => countHashes(l)) + .map(l => ({level: l.level, name: removeMarkdown(l.name)})); +} \ No newline at end of file diff --git a/src/lib/fs.js b/src/lib/fs.js new file mode 100644 index 0000000..c766c78 --- /dev/null +++ b/src/lib/fs.js @@ -0,0 +1,9 @@ +import * as fs from 'fs/promises'; + +export async function exists(file) { + try { + return await fs.stat(file); + } catch(err) { + return false; + } +} \ No newline at end of file diff --git a/src/lib/pages.js b/src/lib/pages.js new file mode 100644 index 0000000..2dd6dcf --- /dev/null +++ b/src/lib/pages.js @@ -0,0 +1,71 @@ +import * as fs from 'fs/promises'; +import { resolve } from 'path'; +import timeToRead from 'time-to-read'; +import { exists } from './fs'; + +export const storageDir = resolve('storage/'); + +/** + * @param {string} name + */ +export async function getPost(name, chars) { + try { + let path = `${storageDir}/${name}`; + let meta = JSON.parse(await fs.readFile(`${path}.json`, 'utf8')); + let data = await fs.readFile(`${path}.md`, 'utf8'); + return { + ...meta, + path: name, + content: chars ? data.slice(0, chars) : data, + truncated: chars && data.length > chars, + size: data.length, + timeToRead: timeToRead(data) + }; + } catch(err) { + // probably a 404 + console.log(err); + return; + } +} + +async function scanDir(dir) { + let posts = []; + for (const file of await fs.readdir(dir)) { + let path = resolve(dir, file); + if (file.endsWith('.json')) { + posts.push(await getPost(path.replace(storageDir + '/', '').slice(0, -5), 256)); + } else if ((await fs.stat(path)).isDirectory()) { + posts.push(...await scanDir(path)); + } + } + return posts; +} + +export async function getPosts(dir) { + return scanDir(storageDir + (dir || '')); +} + +export async function getPostsFlat(dir) { + let posts = []; + let postsDir = resolve(storageDir, dir); + for (const file of await fs.readdir(postsDir)) { + let path = resolve(postsDir, file); + if (file.endsWith('.json')) { + let name = path.replace(storageDir + '/', '').slice(0, -5); + posts.push(await getPost(name, 256)); + } + } + return posts; +} + +export async function isDir(dir) { + let path = resolve(storageDir, dir); + let statDir = await exists(path); + if (statDir && statDir.isDirectory()) { + return true; + } else { + let statFile = await exists(path + '.json'); + if (statFile) return false; + return null; + } +} \ No newline at end of file diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte new file mode 100644 index 0000000..14fe45d --- /dev/null +++ b/src/routes/__layout.svelte @@ -0,0 +1,28 @@ + + + + {@html theme} + + +
+
+
+
+ +
\ No newline at end of file diff --git a/src/routes/index.js b/src/routes/index.js new file mode 100644 index 0000000..c40e156 --- /dev/null +++ b/src/routes/index.js @@ -0,0 +1,9 @@ +import { getPosts } from "$lib/pages"; + +export async function get({ params }) { + return { + body: { + pages: await getPosts() + } + } +} \ No newline at end of file diff --git a/src/routes/index.svelte b/src/routes/index.svelte new file mode 100644 index 0000000..26f2424 --- /dev/null +++ b/src/routes/index.svelte @@ -0,0 +1,25 @@ + + + + +
+ +
+ + \ No newline at end of file diff --git a/src/routes/p/[...name].js b/src/routes/p/[...name].js new file mode 100644 index 0000000..04efe6c --- /dev/null +++ b/src/routes/p/[...name].js @@ -0,0 +1,20 @@ +import { getPost, getPostsFlat, isDir } from "$lib/pages"; + +export async function get({ params }) { + let dir = await isDir(params.name); + if (dir === null) { + return {status: 404}; + } else if (dir) { + return { + body: { + pages: await getPostsFlat(params.name) + } + } + } else { + return { + body: { + page: await getPost(params.name) + } + } + } +} \ No newline at end of file diff --git a/src/routes/p/[...name].json.js b/src/routes/p/[...name].json.js new file mode 100644 index 0000000..5d642a9 --- /dev/null +++ b/src/routes/p/[...name].json.js @@ -0,0 +1,14 @@ +import { getPost } from '$lib/pages'; + +export const get = async ({params}) => { + let post = await getPost(params.name); + if (post) { + return { + body: post + } + } else { + return { + status: 404 + } + } +} \ No newline at end of file diff --git a/src/routes/p/[...name].svelte b/src/routes/p/[...name].svelte new file mode 100644 index 0000000..3074bd0 --- /dev/null +++ b/src/routes/p/[...name].svelte @@ -0,0 +1,14 @@ + + +{#if page} + +{:else if pages} + +{:else} + 404! +{/if} \ No newline at end of file diff --git a/src/routes/p/_page.svelte b/src/routes/p/_page.svelte new file mode 100644 index 0000000..3245df3 --- /dev/null +++ b/src/routes/p/_page.svelte @@ -0,0 +1,84 @@ + + + + + + {page.name} - Guidebook + + + + +
+
+ +
+ + + +
\ No newline at end of file diff --git a/src/routes/p/index.js b/src/routes/p/index.js new file mode 100644 index 0000000..aebf91b --- /dev/null +++ b/src/routes/p/index.js @@ -0,0 +1,8 @@ +export async function get() { + return { + status: 302, + headers: { + Location: '/' + } + } +} \ No newline at end of file diff --git a/static/external-link.svg b/static/external-link.svg new file mode 100644 index 0000000..b86596f --- /dev/null +++ b/static/external-link.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..4723038237352e224b3dedb3a4339ab8fdfecd10 GIT binary patch literal 1660 zcmb7^dpOgJAIHCoiFsU3iMO^sD2xVRP8zGNy%yL*{yDE0|6%;8%p@OS z%@uF_WGOmIRdK9+8k{6kYl@z6^Dq%om(`aB^bAy?4{qj!CGsZtL|O_*WO%XewPsD= zx5cm2R&%ng(mW$GTZ1FZa?bLO>bjrk`p59|2ySn7??wa6Q;z?5spPIMnY-RFQHHyT zagp61N1bjA-YfF!?d%OW)fGhK-T!sh;6%%qmrZE=+k&uklk*oK_4ypKechpwjRn`D z+ptF3S6!er+RpM5fc|-WR@_|oksa5iwxE^wK62jybIVZ1=Sz^$r0~wP z_x+Sp^o#D2;IM%54+bkMmCh@i+gE{y5#)Dhf?4*~1k~bOe5nAS*|#kaC$=UO0F+yB zSO;R_?tS zYp1maX~vFUw7ZH3`FJqh-*@wRb1^qKVN0vEX7<$4MqW%u z{V{mO*d7pZU4sEbM#iZ{hQG-I%r;#a$&I!+-=V$s{_g#;f_EXbvnZ*7@`~A~a2^Cw z@o*+EMBUBTJ#6l?!C^Dj{F(R7(kD_Dg$@2DXlj1h(uQKj7Y05|f$wXtxE7*BS&xk5ayX2Czc&*j81yn-{JfmA=$xCp4MX+D0 z3<8z&ewwkGvvq@)10JEJi}*s0dAB#H`IHPkY*@8*IsYF=lwRCZgVUz7mRr6oRj7aA zRf$27%XF!qjuX@T(t6|?Y=<%rJQwi5ISXyK6uS1uj~jo1l~r#(qnF{^X;)5`P<~+9 zkyEIH8W!fUaHilku6V-;G&DUDOWdqW2=*Viedw#ag0_P% z7VUW;7G{{K9f?8DWGX)}G$J~rc6?Rr$C^&d5k!!+^n-}0UHPZHqL1?%MB)+z;~ZDG zDI9kXQb{w<<@TRKgi7q(O={b(UDKuq`IsJda>NH>cVF!tF$fYK_vdvB0P(*`73i#t zzqygJN1yX3;Jl>(d}+=t!xnxINEk~$95;Btn?)y`k+x7*O3N(zMriw99G=g;2Wy+H zXR{WIjOguja?N>naI_SgVGIVez(Ly2s{#A}Qlo=9qfhZsU=*As=<;udB;Q(FpS;I0 zrDuy)i~9M=cqV*!GUwd15{%g9OgM&r67>>J(Tj7*nmL)vvQlm3wxKItu?}{lVm8{t zS0W*C7%N;MiIj>CK%5|9Q&m=huGc0Y5JNa~V|lppNuSQF-+-b#SD1+0UWwwPJhBLc ztRC!x&aPU&j#A$?WmB>39@E__3_Ej>_`+iS&IEBtHwgDHkFlM`si?_U`m;>y?>`dr zT+=&;yzridY^P2F(&&ZHb6LZq`^f@&BmM4652%p83F<>y{fOYI=qnJZSFR-CeK8BP z{_E&R+tCOx?-bHgQhw*apX-^uGa|UjF3( literal 0 HcmV?d00001 diff --git a/static/guidebook.kra b/static/guidebook.kra new file mode 100644 index 0000000000000000000000000000000000000000..1bdf13ef1ebdbda38640e6f48d1fa750cbe8a06f GIT binary patch literal 75445 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 z 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

-UQB06CzN zuN%zW$Jza!$KTb?!RYxo9AROx2HyXt**yvu(VZMDES?CMpEJyVFPZK4%}O@!oH`B| zQwGoo07v`V>-T2e0LK3?FINX74B;*J+n2no_k9OX*l)kfIeNJJ03DO{_WKKMP2En< zD*(l-z+2#V(*I>??BqYu27lkdGvhkv_VVchVqv-XUm|;77tvPy|42mE33kuH*VV_< zIRN$-Nl!L?KFWTcg(U#U$t$#vV%7hJqO+sp_g$Nmxb5u-7>wlEKluB-Yg~|j>e`j> ziTpEvueAS>$p4bRV>b{WFpOC4b8Bf9#g*-|+WmLlE3& z2$4_zOvu6A-NWa%vDI7dZ^-OVAN>cNi|8Rd;PU&ENq;Y%{R8^%m4ElY$7fmpl% literal 0 HcmV?d00001 diff --git a/static/guidebook.png b/static/guidebook.png new file mode 100644 index 0000000000000000000000000000000000000000..956df1f9433b35ae3bb6ebe8b49d558cab98d0c5 GIT binary patch literal 18517 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