├── .editorconfig ├── .gitattributes ├── .github ├── CODEOWNERS ├── CONTRIBUTING.md ├── PULL_REQUEST_TEMPLATE.md ├── hooks │ └── pre-commit ├── renovate.json └── workflows │ ├── continuous-integration.yml │ └── labelsync.yml ├── .gitignore ├── .markdownlint-cli2.jsonc ├── .prettierignore ├── .prettierrc.mjs ├── .vscode ├── extensions.json └── settings.json ├── .yarn ├── plugins │ └── @yarnpkg │ │ └── plugin-git-hooks.cjs └── releases │ └── yarn-4.9.1.cjs ├── .yarnrc.yml ├── LICENSE.md ├── README.md ├── package.json ├── sonar-project.properties └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | 9 | [*.{js,mjs,ts}] 10 | indent_size = 4 11 | indent_style = tab 12 | block_comment_start = /* 13 | block_comment = * 14 | block_comment_end = */ 15 | 16 | [*.{yml,yaml}] 17 | indent_size = 2 18 | indent_style = space 19 | 20 | [*.{md,rmd,mkd,mkdn,mdwn,mdown,markdown,litcoffee}] 21 | tab_width = 4 22 | trim_trailing_whitespace = false 23 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | README.md merge=union 3 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | README.md @favna @vladfrangu @kyranet 2 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please ensure your pull request adheres to the following guidelines: 4 | 5 | - Search previous suggestions before making a new one, as yours may be a duplicate. 6 | - Make an individual pull request for each suggestion. 7 | - Use the following format: `[Awesome Entry](link): Description.` 8 | - The title usually consists of several words. For entries of an article or tutorial, use the title of the article. 9 | - The description consists of one to two sentences about the entry. **It is required.** 10 | - Titles should be [capitalized](http://grammar.yourdictionary.com/capitalization/rules-for-capitalization-in-titles.html). 11 | - Additions should be added to the bottom of the relevant category. 12 | - New categories or improvements to the existing categorization are welcome. 13 | - Check your spelling and grammar. 14 | - Make sure your text editor is set to remove trailing whitespace. 15 | - The pull request and commit should have a useful title. 16 | - Pull requests adding new lists should follow the format `Add Name of List` 17 | 18 | Thank you for your suggestions! 19 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Your new list entry 2 | 3 | **[Insert URL to the list here]** 4 | 5 | **[Explain the project that you're adding, and why we should merge your PR]** 6 | 7 | --- 8 | 9 | ### Requirements for your pull request 10 | 11 | - [ ] **By submitting this pull request I accept that my addition may be reverted at any time without notice.** 12 | - [ ] **By submitting this pull request I confirm I've read and complied with the below requirements.** 13 | 14 | - This pull request has a title in the format `Add Name of List`. 15 | - ✅ `Add Swift` 16 | - ✅ `Add Software Architecture` 17 | - ❌ `Update readme.md` 18 | - ❌ `Add Awesome Swift` 19 | - ❌ `Add swift` 20 | - ❌ `add Swift` 21 | - ❌ `Adding Swift` 22 | - ❌ `Added Swift` 23 | - Your entry should be added at the bottom of the appropriate category. 24 | - The title of your entry should be title-cased and the URL to your list should end in `#readme`. 25 | - Example: 26 | ```md 27 | - [Software Architecture](https://github.com/simskij/awesome-software-architecture#readme) - The discipline of designing and building software. 28 | ``` 29 | - The suggested Awesome list complies with the below requirements. 30 | 31 | ### Requirements for your project 32 | 33 | - Your project is not a mono repo. If your project resides in a mono repo then create one Pull Request for each project you want to get listed. 34 | - Your project relates to Sapphire. 35 | - Your project has been published to NPM. 36 | - Your project's version is at least 1.0.0. 37 | - Your project is not already listed. Please search existing submissions. 38 | - Your project is maintained. 39 | - When you receive an issue you will aim to resolve it within reasonable time. If you are unable to resolve the issue within a reasonable time, then you will let the issuer know. 40 | - When you receive a pull request you will seriously consider that contribution. If you are unable to accept the contribution within a reasonable time, then you will let the issuer know. 41 | - Your project's repository is not archived. 42 | - Your project is not deprecated. 43 | - Your project has some form of documentation. 44 | - Your project's default branch should be named [`main`, not `master`](https://www.zdnet.com/article/github-to-replace-master-with-alternative-term-to-avoid-slavery-references/). 45 | - **Includes a succinct description of the project at the top of the readme.** 46 | - ✅ `Plugin for [@sapphire/framework](https://github.com/sapphiredev/framework) to expose a REST API.` 47 | - ✅ `Plugin for [@sapphire/framework](https://github.com/sapphiredev/framework) to support i18next based internationalization.` 48 | - ❌ `Resources and tools for Sapphire development.` 49 | - ❌ `Useful package for Sapphire.` 50 | - It's the result of hard work and the best I could possibly produce. 51 | **If you have not put in considerable effort into your project, your pull request will be immediately closed.** 52 | 53 | **Go to the top and read it again.** 54 | -------------------------------------------------------------------------------- /.github/hooks/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | yarn lint-staged 4 | -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": ["github>sapphiredev/.github:sapphire-renovate"] 4 | } 5 | -------------------------------------------------------------------------------- /.github/workflows/continuous-integration.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | 9 | jobs: 10 | formatting: 11 | name: Formatting 12 | uses: sapphiredev/.github/.github/workflows/reusable-prettier.yml@main 13 | 14 | markdownlint: 15 | name: MarkdownLint 16 | uses: sapphiredev/.github/.github/workflows/reusable-yarn-job.yml@main 17 | with: 18 | script-name: lint:no-fix 19 | 20 | sonar: 21 | name: Sonar Analysis 22 | uses: sapphiredev/.github/.github/workflows/reusable-sonar.yml@main 23 | secrets: 24 | SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} 25 | -------------------------------------------------------------------------------- /.github/workflows/labelsync.yml: -------------------------------------------------------------------------------- 1 | name: Automatic Label Sync 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 * * *' 6 | workflow_dispatch: 7 | 8 | jobs: 9 | label_sync: 10 | uses: sapphiredev/.github/.github/workflows/reusable-labelsync.yml@main 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | node_modules/ 3 | .pnp/ 4 | package-lock.json 5 | 6 | # Yarn files 7 | .yarn/install-state.gz 8 | .yarn/build-state.yml 9 | 10 | # misc 11 | .DS_Store 12 | Thumbs.db 13 | 14 | # IDE Settings 15 | .idea/ 16 | .vs/ 17 | 18 | # Log files 19 | npm-debug.log* 20 | yarn-debug.log* 21 | yarn-error.log* 22 | *.log 23 | -------------------------------------------------------------------------------- /.markdownlint-cli2.jsonc: -------------------------------------------------------------------------------- 1 | { 2 | "config": { 3 | "default": false, 4 | "MD001": true, 5 | "MD003": true, 6 | "MD009": true, 7 | "MD011": true, 8 | "MD012": true, 9 | "MD013": { 10 | "line_length": 120 11 | } 12 | }, 13 | "globs": ["README.md"] 14 | } 15 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Node modules 2 | node_modules/ 3 | .yarn/ 4 | -------------------------------------------------------------------------------- /.prettierrc.mjs: -------------------------------------------------------------------------------- 1 | import sapphirePrettierConfig from '@sapphire/prettier-config'; 2 | 3 | export default { 4 | ...sapphirePrettierConfig, 5 | overrides: [ 6 | ...sapphirePrettierConfig.overrides, 7 | { 8 | files: ['README.md', 'LICENSE.md'], 9 | options: { 10 | tabWidth: 2, 11 | useTabs: false, 12 | printWidth: 120, 13 | proseWrap: 'always' 14 | } 15 | } 16 | ] 17 | }; 18 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "bierner.github-markdown-preview", 4 | "davidanson.vscode-markdownlint", 5 | "esbenp.prettier-vscode", 6 | "mdickin.markdown-shortcuts", 7 | "streetsidesoftware.code-spell-checker", 8 | "usernamehw.errorlens" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.detectIndentation": true, 3 | "files.eol": "\n", 4 | "cSpell.language": "en-GB", 5 | "cSpell.maxNumberOfProblems": 8, 6 | "cSpell.numSuggestions": 24, 7 | "search.exclude": { 8 | "**/.git/": true, 9 | "**/.yarn": true, 10 | "**/*.code-search": true, 11 | "**/bower_components": true, 12 | "**/node_modules": true, 13 | "**/projects/": true 14 | }, 15 | "sonarlint.connectedMode.project": { 16 | "connectionId": "sapphiredev", 17 | "projectKey": "sapphiredev_awesome-sapphire" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /.yarn/plugins/@yarnpkg/plugin-git-hooks.cjs: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | //prettier-ignore 3 | module.exports = { 4 | name: "@yarnpkg/plugin-git-hooks", 5 | factory: function (require) { 6 | var plugin=(()=>{var p=Object.create;var i=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var _=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,E)=>(typeof require<"u"?require:e)[E]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+n+'" is not supported')});var c=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),A=(n,e)=>{for(var E in e)i(n,E,{get:e[E],enumerable:!0})},C=(n,e,E,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let I of l(e))!m.call(n,I)&&I!==E&&i(n,I,{get:()=>e[I],enumerable:!(s=u(e,I))||s.enumerable});return n};var U=(n,e,E)=>(E=n!=null?p(P(n)):{},C(e||!n||!n.__esModule?i(E,"default",{value:n,enumerable:!0}):E,n)),v=n=>C(i({},"__esModule",{value:!0}),n);var L=c((M,B)=>{B.exports=[{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]}},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var T=c(a=>{"use strict";var D=L(),t=process.env;Object.defineProperty(a,"_vendors",{value:D.map(function(n){return n.constant})});a.name=null;a.isPR=null;D.forEach(function(n){let E=(Array.isArray(n.env)?n.env:[n.env]).every(function(s){return S(s)});if(a[n.constant]=E,!!E)switch(a.name=n.name,typeof n.pr){case"string":a.isPR=!!t[n.pr];break;case"object":"env"in n.pr?a.isPR=n.pr.env in t&&t[n.pr.env]!==n.pr.ne:"any"in n.pr?a.isPR=n.pr.any.some(function(s){return!!t[s]}):a.isPR=S(n.pr);break;default:a.isPR=null}});a.isCI=!!(t.CI!=="false"&&(t.BUILD_ID||t.BUILD_NUMBER||t.CI||t.CI_APP_ID||t.CI_BUILD_ID||t.CI_BUILD_NUMBER||t.CI_NAME||t.CONTINUOUS_INTEGRATION||t.RUN_ID||a.name||!1));function S(n){return typeof n=="string"?!!t[n]:"env"in n?t[n.env]&&t[n.env].includes(n.includes):"any"in n?n.any.some(function(e){return!!t[e]}):Object.keys(n).every(function(e){return t[e]===n[e]})}});var d={};A(d,{default:()=>O});var o=U(_("process")),r=_("@yarnpkg/core"),R=U(T()),N={configuration:{gitHooksPath:{description:"Path to git hooks directory (recommended: .github/hooks)",type:r.SettingsType.STRING,default:null},disableGitHooks:{description:"Disable automatic git hooks installation",type:r.SettingsType.BOOLEAN,default:R.default.isCI}},hooks:{afterAllInstalled:async n=>{let e=n.configuration.get("gitHooksPath"),E=n.configuration.get("disableGitHooks"),s=Boolean(n.cwd?.endsWith(`dlx-${o.default.pid}`));if(e&&!R.default.isCI&&!s&&!E)return r.execUtils.pipevp("git",["config","core.hooksPath",e],{cwd:n.cwd,strict:!0,stdin:o.default.stdin,stdout:o.default.stdout,stderr:o.default.stderr})}}},O=N;return v(d);})(); 7 | return plugin; 8 | } 9 | }; 10 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | compressionLevel: mixed 2 | 3 | enableGlobalCache: true 4 | 5 | gitHooksPath: .github/hooks 6 | 7 | nodeLinker: node-modules 8 | 9 | plugins: 10 | - path: .yarn/plugins/@yarnpkg/plugin-git-hooks.cjs 11 | spec: 'https://raw.githubusercontent.com/trufflehq/yarn-plugin-git-hooks/main/bundles/%40yarnpkg/plugin-git-hooks.js' 12 | 13 | yarnPath: .yarn/releases/yarn-4.9.1.cjs 14 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # Creative Commons Legal Code 2 | 3 | ## CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES 6 | NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE 7 | COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND 8 | DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. 9 | 10 | ## Statement of Purpose 11 | 12 | The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined 13 | below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a 14 | database (each, a "Work"). 15 | 16 | Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of 17 | creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of 18 | infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form 19 | whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the 20 | Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or 21 | to gain reputation or greater distribution for their Work in part through the use and efforts of others. 22 | 23 | For these and/or other purposes and motivations, and without any expectation of additional consideration or 24 | compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of 25 | Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work 26 | under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended 27 | legal effect of CC0 on those rights. 28 | 29 | 1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or 30 | neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, 31 | the following: 32 | 33 | 1. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; 34 | 2. moral rights retained by the original author(s) and/or performer(s); 35 | 3. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; 36 | 4. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), 37 | below; 38 | 5. rights protecting the extraction, dissemination, use and reuse of data in a Work; 39 | 6. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 40 | March 1996 on the legal protection of databases, and under any national implementation thereof, including any 41 | amended or successor version of such directive); and 42 | 7. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any 43 | national implementations thereof. 44 | 45 | 2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, 46 | fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and 47 | Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well 48 | as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration 49 | provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and 50 | for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising 51 | or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at 52 | large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject 53 | to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet 54 | enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. 55 | 56 | 3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under 57 | applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's 58 | express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each 59 | affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional 60 | license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for 61 | the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or 62 | future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation 63 | commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date 64 | CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or 65 | ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of 66 | the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her 67 | remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with 68 | respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. 69 | 70 | 4. Limitations and Disclaimers. 71 | 72 | 1. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected 73 | by this document. 74 | 2. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, 75 | express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, 76 | fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the 77 | present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable 78 | law. 79 | 3. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use 80 | thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer 81 | disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of 82 | the Work. 83 | 4. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or 84 | obligation with respect to this CC0 or use of the Work. 85 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Sapphire [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 2 | 3 | > Manually curated collection of resources, plugins, utilities, and other assortments for the Sapphire Community 4 | > projects. 5 | 6 | Has your project been listed here? You can now add an "Mentioned in Awesome" badge to your README if you want. You can 7 | choose either the regular badge or the flat one. 8 | 9 | [![Mentioned in Awesome Sapphire](https://awesome.re/mentioned-badge.svg)](https://github.com/sapphiredev/awesome-sapphire) 10 | [![Mentioned in Awesome Sapphire](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/sapphiredev/awesome-sapphire) 11 | 12 | **Fill in the placeholders (Name and URL):** 13 | 14 | ```md 15 | [![Mentioned in Awesome Sapphire](https://awesome.re/mentioned-badge.svg)](https://github.com/sapphiredev/awesome-sapphire) 16 | [![Mentioned in Awesome Sapphire](https://awesome.re/mentioned-badge-flat.svg)](https://github.com/sapphiredev/awesome-sapphire) 17 | ``` 18 | 19 | --- 20 | 21 | [![Discord](https://discord.com/api/guilds/737141877803057244/embed.png)](https://discord.gg/sapphiredev) 22 | 23 | --- 24 | 25 | ## Contents 26 | 27 | - [Plugins](#plugins) 28 | - [Utilities](#utilities) 29 | - [Reading](#reading) 30 | - [Miscellaneous](#miscellaneous) 31 | 32 | ## Plugins 33 | 34 | - [@devtomio/plugin-botlist](https://github.com/devtomio/sapphire-plugin-botlist#readme): This plugin enables the 35 | integration of many bot lists such as [`top.gg`](https://top.gg), [`discordlabs`](https://discordlabs.org), and 36 | others. 37 | - [@kaname-png/plugin-env](https://github.com/kaname-png/neko-plugins/tree/main/packages/env): Manage environment 38 | variables for use with any [`@sapphire/framework`](https://github.com/sapphiredev/framework) bot project. 39 | - [@kaname-png/plugin-statcord](https://github.com/kaname-png/neko-plugins/tree/main/packages/statcord): Plugin for 40 | [`@sapphire/framework`](https://github.com/sapphiredev/framework) to send and manage bot statistics on 41 | [statcord](https://statcord.com). 42 | - [@kaname-png/plugin-api-jwt](https://github.com/kaname-png/neko-plugins/tree/main/packages/api-jwt): Plugin for 43 | [`@sapphire/framework`](https://github.com/sapphiredev/framework) to use [JSON Web Tokens](https://jwt.io) instead of 44 | [HttpOnly Secure Cookies](https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies). 45 | - [@kaname-png/plugin-subcommands-advanced](https://github.com/kaname-png/neko-plugins/tree/main/packages/subcommands-advanced): 46 | Plugin for [`@sapphire/framework`](https://github.com/sapphiredev/framework) to create and register subcommands using 47 | decorators and/or advanced class structures. 48 | - [@kaname-png/influxdb](https://github.com/kaname-png/neko-plugins/tree/main/packages/influxdb): Plugin for 49 | [`@sapphire/framework`](https://github.com/sapphiredev/framework) to publish stats to an 50 | [`InfluxDB`](https://www.influxdata.com) instance. 51 | - [@kaname-png/sentry](https://github.com/kaname-png/neko-plugins/tree/main/packages/sentry): Plugin for 52 | [`@sapphire/framework`](https://github.com/sapphiredev/framework) to publish errors to [`Sentry`](https://sentry.io/). 53 | - [@kbotdev/plugin-modules](https://github.com/KBot-discord/plugins/tree/main/packages/modules#readme): Plugin for 54 | [`@sapphire/framework`](https://github.com/sapphiredev/framework) to group commands and features into modules, and 55 | allow them to be enabled and disabled on a per-guild basis. 56 | - [@kingsworld/plugin-cron](https://github.com/Kings-World/sapphire-plugins/tree/main/packages/cron): Plugin for 57 | [`@sapphire/framework`](https://github.com/sapphiredev/framework) to support cron jobs using the 58 | [`cron`](https://www.npmjs.com/package/cron) package. 59 | 60 | ## Utilities 61 | 62 | - [sapphire-i18n-ally](https://github.com/Mzato0001/i18n-ally/tree/publish) This is a vscode extension to add advanced 63 | support for [`@sapphire/plugin-i18next`](https://github.com/sapphiredev/plugins/tree/main/packages/i18next) based on 64 | the original [i18n-ally](https://github.com/lokalise/i18n-ally) - 65 | [VSCode Extension page](https://marketplace.visualstudio.com/items?itemName=mzato0001.sapphire-i18n-ally) 66 | - [saph-convert](https://github.com/fearandesire/saph-convert): This NodeJS CLI tool can convert Sapphire commands 67 | written in JavaScript to TypeScript. 68 | 69 | ## Reading 70 | 71 | ## Miscellaneous 72 | 73 | ## Contribute 74 | 75 | Contributions welcome! Read the [contribution guidelines](.github/CONTRIBUTING.md) first. 76 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "awesome-sapphire", 3 | "version": "1.0.0", 4 | "author": "Sapphire Community", 5 | "license": "CC0-1.0", 6 | "private": true, 7 | "scripts": { 8 | "lint": "markdownlint-cli2-fix", 9 | "lint:no-fix": "markdownlint-cli2", 10 | "format": "prettier --write \"*.md\"", 11 | "format:check": "prettier --check \"*.md\"", 12 | "update": "yarn upgrade-interactive" 13 | }, 14 | "devDependencies": { 15 | "@sapphire/prettier-config": "^2.0.0", 16 | "lint-staged": "^16.1.0", 17 | "markdownlint": "^0.38.0", 18 | "markdownlint-cli2": "^0.18.1", 19 | "prettier": "^3.5.3" 20 | }, 21 | "resolutions": { 22 | "ansi-regex": "^6.1.0", 23 | "minimist": "^1.2.8" 24 | }, 25 | "lint-staged": { 26 | "*": "prettier --ignore-unknown --write" 27 | }, 28 | "packageManager": "yarn@4.9.1" 29 | } 30 | -------------------------------------------------------------------------------- /sonar-project.properties: -------------------------------------------------------------------------------- 1 | sonar.projectKey=sapphiredev_awesome-sapphire 2 | sonar.organization=sapphiredev 3 | sonar.pullrequest.github.summary_comment=false 4 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # This file is generated by running "yarn install" inside your project. 2 | # Manual changes might be lost - proceed with caution! 3 | 4 | __metadata: 5 | version: 8 6 | cacheKey: 10 7 | 8 | "@nodelib/fs.scandir@npm:2.1.5": 9 | version: 2.1.5 10 | resolution: "@nodelib/fs.scandir@npm:2.1.5" 11 | dependencies: 12 | "@nodelib/fs.stat": "npm:2.0.5" 13 | run-parallel: "npm:^1.1.9" 14 | checksum: 10/6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b 15 | languageName: node 16 | linkType: hard 17 | 18 | "@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": 19 | version: 2.0.5 20 | resolution: "@nodelib/fs.stat@npm:2.0.5" 21 | checksum: 10/012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 22 | languageName: node 23 | linkType: hard 24 | 25 | "@nodelib/fs.walk@npm:^1.2.3": 26 | version: 1.2.8 27 | resolution: "@nodelib/fs.walk@npm:1.2.8" 28 | dependencies: 29 | "@nodelib/fs.scandir": "npm:2.1.5" 30 | fastq: "npm:^1.6.0" 31 | checksum: 10/40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0 32 | languageName: node 33 | linkType: hard 34 | 35 | "@sapphire/prettier-config@npm:^2.0.0": 36 | version: 2.0.0 37 | resolution: "@sapphire/prettier-config@npm:2.0.0" 38 | dependencies: 39 | prettier: "npm:^3.0.0" 40 | checksum: 10/900ec710173f05a31e3fe25151221d2c5f0d385d2f6e0b68d3a4713412e70871e6b64c3107d1f6952fff7e5032cb37186b9b522ab1eb048bbde6de09e8ecb027 41 | languageName: node 42 | linkType: hard 43 | 44 | "@sindresorhus/merge-streams@npm:^2.1.0": 45 | version: 2.3.0 46 | resolution: "@sindresorhus/merge-streams@npm:2.3.0" 47 | checksum: 10/798bcb53cd1ace9df84fcdd1ba86afdc9e0cd84f5758d26ae9b1eefd8e8887e5fc30051132b9e74daf01bb41fa5a2faf1369361f83d76a3b3d7ee938058fd71c 48 | languageName: node 49 | linkType: hard 50 | 51 | "@types/debug@npm:^4.0.0": 52 | version: 4.1.12 53 | resolution: "@types/debug@npm:4.1.12" 54 | dependencies: 55 | "@types/ms": "npm:*" 56 | checksum: 10/47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 57 | languageName: node 58 | linkType: hard 59 | 60 | "@types/katex@npm:^0.16.0": 61 | version: 0.16.7 62 | resolution: "@types/katex@npm:0.16.7" 63 | checksum: 10/4fd15d93553be97c02c064e16be18d7ccbabf66ec72a9dc7fd5bfa47f0c7581da2f942f693c7cb59499de4c843c2189796e49c9647d336cbd52b777b6722a95a 64 | languageName: node 65 | linkType: hard 66 | 67 | "@types/ms@npm:*": 68 | version: 0.7.34 69 | resolution: "@types/ms@npm:0.7.34" 70 | checksum: 10/f38d36e7b6edecd9badc9cf50474159e9da5fa6965a75186cceaf883278611b9df6669dc3a3cc122b7938d317b68a9e3d573d316fcb35d1be47ec9e468c6bd8a 71 | languageName: node 72 | linkType: hard 73 | 74 | "@types/unist@npm:^2.0.0": 75 | version: 2.0.11 76 | resolution: "@types/unist@npm:2.0.11" 77 | checksum: 10/6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e 78 | languageName: node 79 | linkType: hard 80 | 81 | "ansi-escapes@npm:^7.0.0": 82 | version: 7.0.0 83 | resolution: "ansi-escapes@npm:7.0.0" 84 | dependencies: 85 | environment: "npm:^1.0.0" 86 | checksum: 10/2d0e2345087bd7ae6bf122b9cc05ee35560d40dcc061146edcdc02bc2d7c7c50143cd12a22e69a0b5c0f62b948b7bc9a4539ee888b80f5bd33cdfd82d01a70ab 87 | languageName: node 88 | linkType: hard 89 | 90 | "ansi-regex@npm:^6.1.0": 91 | version: 6.1.0 92 | resolution: "ansi-regex@npm:6.1.0" 93 | checksum: 10/495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac 94 | languageName: node 95 | linkType: hard 96 | 97 | "ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.2.1": 98 | version: 6.2.1 99 | resolution: "ansi-styles@npm:6.2.1" 100 | checksum: 10/70fdf883b704d17a5dfc9cde206e698c16bcd74e7f196ab821511651aee4f9f76c9514bdfa6ca3a27b5e49138b89cb222a28caf3afe4567570139577f991df32 101 | languageName: node 102 | linkType: hard 103 | 104 | "argparse@npm:^2.0.1": 105 | version: 2.0.1 106 | resolution: "argparse@npm:2.0.1" 107 | checksum: 10/18640244e641a417ec75a9bd38b0b2b6b95af5199aa241b131d4b2fb206f334d7ecc600bd194861610a5579084978bfcbb02baa399dbe442d56d0ae5e60dbaef 108 | languageName: node 109 | linkType: hard 110 | 111 | "awesome-sapphire@workspace:.": 112 | version: 0.0.0-use.local 113 | resolution: "awesome-sapphire@workspace:." 114 | dependencies: 115 | "@sapphire/prettier-config": "npm:^2.0.0" 116 | lint-staged: "npm:^16.1.0" 117 | markdownlint: "npm:^0.38.0" 118 | markdownlint-cli2: "npm:^0.18.1" 119 | prettier: "npm:^3.5.3" 120 | languageName: unknown 121 | linkType: soft 122 | 123 | "braces@npm:^3.0.3": 124 | version: 3.0.3 125 | resolution: "braces@npm:3.0.3" 126 | dependencies: 127 | fill-range: "npm:^7.1.1" 128 | checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6 129 | languageName: node 130 | linkType: hard 131 | 132 | "chalk@npm:^5.4.1": 133 | version: 5.4.1 134 | resolution: "chalk@npm:5.4.1" 135 | checksum: 10/29df3ffcdf25656fed6e95962e2ef86d14dfe03cd50e7074b06bad9ffbbf6089adbb40f75c00744d843685c8d008adaf3aed31476780312553caf07fa86e5bc7 136 | languageName: node 137 | linkType: hard 138 | 139 | "character-entities-legacy@npm:^3.0.0": 140 | version: 3.0.0 141 | resolution: "character-entities-legacy@npm:3.0.0" 142 | checksum: 10/7582af055cb488b626d364b7d7a4e46b06abd526fb63c0e4eb35bcb9c9799cc4f76b39f34fdccef2d1174ac95e53e9ab355aae83227c1a2505877893fce77731 143 | languageName: node 144 | linkType: hard 145 | 146 | "character-entities@npm:^2.0.0": 147 | version: 2.0.2 148 | resolution: "character-entities@npm:2.0.2" 149 | checksum: 10/c8dd1f4bf1a92fccf7d2fad9673660a88b37854557d30f6076c32fedfb92d1420208298829ff1d3b6b4fa1c7012e8326c45e7f5c3ed1e9a09ec177593c521b2f 150 | languageName: node 151 | linkType: hard 152 | 153 | "character-reference-invalid@npm:^2.0.0": 154 | version: 2.0.1 155 | resolution: "character-reference-invalid@npm:2.0.1" 156 | checksum: 10/98d3b1a52ae510b7329e6ee7f6210df14f1e318c5415975d4c9e7ee0ef4c07875d47c6e74230c64551f12f556b4a8ccc24d9f3691a2aa197019e72a95e9297ee 157 | languageName: node 158 | linkType: hard 159 | 160 | "cli-cursor@npm:^5.0.0": 161 | version: 5.0.0 162 | resolution: "cli-cursor@npm:5.0.0" 163 | dependencies: 164 | restore-cursor: "npm:^5.0.0" 165 | checksum: 10/1eb9a3f878b31addfe8d82c6d915ec2330cec8447ab1f117f4aa34f0137fbb3137ec3466e1c9a65bcb7557f6e486d343f2da57f253a2f668d691372dfa15c090 166 | languageName: node 167 | linkType: hard 168 | 169 | "cli-truncate@npm:^4.0.0": 170 | version: 4.0.0 171 | resolution: "cli-truncate@npm:4.0.0" 172 | dependencies: 173 | slice-ansi: "npm:^5.0.0" 174 | string-width: "npm:^7.0.0" 175 | checksum: 10/d5149175fd25ca985731bdeec46a55ec237475cf74c1a5e103baea696aceb45e372ac4acbaabf1316f06bd62e348123060f8191ffadfeedebd2a70a2a7fb199d 176 | languageName: node 177 | linkType: hard 178 | 179 | "colorette@npm:^2.0.20": 180 | version: 2.0.20 181 | resolution: "colorette@npm:2.0.20" 182 | checksum: 10/0b8de48bfa5d10afc160b8eaa2b9938f34a892530b2f7d7897e0458d9535a066e3998b49da9d21161c78225b272df19ae3a64d6df28b4c9734c0e55bbd02406f 183 | languageName: node 184 | linkType: hard 185 | 186 | "commander@npm:^14.0.0": 187 | version: 14.0.0 188 | resolution: "commander@npm:14.0.0" 189 | checksum: 10/c05418bfc35a3e8b5c67bd9f75f5b773f386f9b85f83e70e7c926047f270929cb06cf13cd68f387dd6e7e23c6157de8171b28ba606abd3e6256028f1f789becf 190 | languageName: node 191 | linkType: hard 192 | 193 | "commander@npm:^8.3.0": 194 | version: 8.3.0 195 | resolution: "commander@npm:8.3.0" 196 | checksum: 10/6b7b5d334483ce24bd73c5dac2eab901a7dbb25fd983ea24a1eeac6e7166bb1967f641546e8abf1920afbde86a45fbfe5812fbc69d0dc451bb45ca416a12a3a3 197 | languageName: node 198 | linkType: hard 199 | 200 | "debug@npm:^4.0.0, debug@npm:^4.4.1": 201 | version: 4.4.1 202 | resolution: "debug@npm:4.4.1" 203 | dependencies: 204 | ms: "npm:^2.1.3" 205 | peerDependenciesMeta: 206 | supports-color: 207 | optional: true 208 | checksum: 10/8e2709b2144f03c7950f8804d01ccb3786373df01e406a0f66928e47001cf2d336cbed9ee137261d4f90d68d8679468c755e3548ed83ddacdc82b194d2468afe 209 | languageName: node 210 | linkType: hard 211 | 212 | "decode-named-character-reference@npm:^1.0.0": 213 | version: 1.0.2 214 | resolution: "decode-named-character-reference@npm:1.0.2" 215 | dependencies: 216 | character-entities: "npm:^2.0.0" 217 | checksum: 10/f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 218 | languageName: node 219 | linkType: hard 220 | 221 | "dequal@npm:^2.0.0": 222 | version: 2.0.3 223 | resolution: "dequal@npm:2.0.3" 224 | checksum: 10/6ff05a7561f33603df87c45e389c9ac0a95e3c056be3da1a0c4702149e3a7f6fe5ffbb294478687ba51a9e95f3a60e8b6b9005993acd79c292c7d15f71964b6b 225 | languageName: node 226 | linkType: hard 227 | 228 | "devlop@npm:^1.0.0": 229 | version: 1.1.0 230 | resolution: "devlop@npm:1.1.0" 231 | dependencies: 232 | dequal: "npm:^2.0.0" 233 | checksum: 10/3cc5f903d02d279d6dc4aa71ab6ed9898b9f4d1f861cc5421ce7357893c21b9520de78afb203c92bd650a6977ad0ca98195453a0707a39958cf5fea3b0a8ddd8 234 | languageName: node 235 | linkType: hard 236 | 237 | "emoji-regex@npm:^10.3.0": 238 | version: 10.3.0 239 | resolution: "emoji-regex@npm:10.3.0" 240 | checksum: 10/b9b084ebe904f13bb4b66ee4c29fb41a7a4a1165adcc33c1ce8056c0194b882cc91ebdc782f1a779b5d7ea7375c5064643a7734893d7c657b44c5c6b9d7bf1e7 241 | languageName: node 242 | linkType: hard 243 | 244 | "entities@npm:^4.4.0": 245 | version: 4.5.0 246 | resolution: "entities@npm:4.5.0" 247 | checksum: 10/ede2a35c9bce1aeccd055a1b445d41c75a14a2bb1cd22e242f20cf04d236cdcd7f9c859eb83f76885327bfae0c25bf03303665ee1ce3d47c5927b98b0e3e3d48 248 | languageName: node 249 | linkType: hard 250 | 251 | "environment@npm:^1.0.0": 252 | version: 1.1.0 253 | resolution: "environment@npm:1.1.0" 254 | checksum: 10/dd3c1b9825e7f71f1e72b03c2344799ac73f2e9ef81b78ea8b373e55db021786c6b9f3858ea43a436a2c4611052670ec0afe85bc029c384cc71165feee2f4ba6 255 | languageName: node 256 | linkType: hard 257 | 258 | "eventemitter3@npm:^5.0.1": 259 | version: 5.0.1 260 | resolution: "eventemitter3@npm:5.0.1" 261 | checksum: 10/ac6423ec31124629c84c7077eed1e6987f6d66c31cf43c6fcbf6c87791d56317ce808d9ead483652436df171b526fc7220eccdc9f3225df334e81582c3cf7dd5 262 | languageName: node 263 | linkType: hard 264 | 265 | "fast-glob@npm:^3.3.3": 266 | version: 3.3.3 267 | resolution: "fast-glob@npm:3.3.3" 268 | dependencies: 269 | "@nodelib/fs.stat": "npm:^2.0.2" 270 | "@nodelib/fs.walk": "npm:^1.2.3" 271 | glob-parent: "npm:^5.1.2" 272 | merge2: "npm:^1.3.0" 273 | micromatch: "npm:^4.0.8" 274 | checksum: 10/dcc6432b269762dd47381d8b8358bf964d8f4f60286ac6aa41c01ade70bda459ff2001b516690b96d5365f68a49242966112b5d5cc9cd82395fa8f9d017c90ad 275 | languageName: node 276 | linkType: hard 277 | 278 | "fastq@npm:^1.6.0": 279 | version: 1.16.0 280 | resolution: "fastq@npm:1.16.0" 281 | dependencies: 282 | reusify: "npm:^1.0.4" 283 | checksum: 10/de151543aab9d91900ed5da88860c46987ece925c628df586fac664235f25e020ec20729e1c032edb5fd2520fd4aa5b537d69e39b689e65e82112cfbecb4479e 284 | languageName: node 285 | linkType: hard 286 | 287 | "fill-range@npm:^7.1.1": 288 | version: 7.1.1 289 | resolution: "fill-range@npm:7.1.1" 290 | dependencies: 291 | to-regex-range: "npm:^5.0.1" 292 | checksum: 10/a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea 293 | languageName: node 294 | linkType: hard 295 | 296 | "get-east-asian-width@npm:^1.0.0": 297 | version: 1.2.0 298 | resolution: "get-east-asian-width@npm:1.2.0" 299 | checksum: 10/c9b280e7c7c67fb89fa17e867c4a9d1c9f1321aba2a9ee27bff37fb6ca9552bccda328c70a80c1f83a0e39ba1b7e3427e60f47823402d19e7a41b83417ec047a 300 | languageName: node 301 | linkType: hard 302 | 303 | "glob-parent@npm:^5.1.2": 304 | version: 5.1.2 305 | resolution: "glob-parent@npm:5.1.2" 306 | dependencies: 307 | is-glob: "npm:^4.0.1" 308 | checksum: 10/32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247 309 | languageName: node 310 | linkType: hard 311 | 312 | "globby@npm:14.1.0": 313 | version: 14.1.0 314 | resolution: "globby@npm:14.1.0" 315 | dependencies: 316 | "@sindresorhus/merge-streams": "npm:^2.1.0" 317 | fast-glob: "npm:^3.3.3" 318 | ignore: "npm:^7.0.3" 319 | path-type: "npm:^6.0.0" 320 | slash: "npm:^5.1.0" 321 | unicorn-magic: "npm:^0.3.0" 322 | checksum: 10/e527ff54f0dddf60abfabd0d9e799768619d957feecd8b13ef60481f270bfdce0d28f6b09267c60f8064798fb3003b8ec991375f7fe0233fbce5304e1741368c 323 | languageName: node 324 | linkType: hard 325 | 326 | "ignore@npm:^7.0.3": 327 | version: 7.0.4 328 | resolution: "ignore@npm:7.0.4" 329 | checksum: 10/01ee59df2ffd14b0844efc17f5ab3642c848e45efdb7cc757928da5e076cb74313748f77f5ffe362a6407c5e7cc71f10fad5e8eb9d91c1a17c4e7ef2c1f8e40e 330 | languageName: node 331 | linkType: hard 332 | 333 | "is-alphabetical@npm:^2.0.0": 334 | version: 2.0.1 335 | resolution: "is-alphabetical@npm:2.0.1" 336 | checksum: 10/56207db8d9de0850f0cd30f4966bf731eb82cedfe496cbc2e97e7c3bacaf66fc54a972d2d08c0d93bb679cb84976a05d24c5ad63de56fabbfc60aadae312edaa 337 | languageName: node 338 | linkType: hard 339 | 340 | "is-alphanumerical@npm:^2.0.0": 341 | version: 2.0.1 342 | resolution: "is-alphanumerical@npm:2.0.1" 343 | dependencies: 344 | is-alphabetical: "npm:^2.0.0" 345 | is-decimal: "npm:^2.0.0" 346 | checksum: 10/87acc068008d4c9c4e9f5bd5e251041d42e7a50995c77b1499cf6ed248f971aadeddb11f239cabf09f7975ee58cac7a48ffc170b7890076d8d227b24a68663c9 347 | languageName: node 348 | linkType: hard 349 | 350 | "is-decimal@npm:^2.0.0": 351 | version: 2.0.1 352 | resolution: "is-decimal@npm:2.0.1" 353 | checksum: 10/97132de7acdce77caa7b797632970a2ecd649a88e715db0e4dbc00ab0708b5e7574ba5903962c860cd4894a14fd12b100c0c4ac8aed445cf6f55c6cf747a4158 354 | languageName: node 355 | linkType: hard 356 | 357 | "is-extglob@npm:^2.1.1": 358 | version: 2.1.1 359 | resolution: "is-extglob@npm:2.1.1" 360 | checksum: 10/df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 361 | languageName: node 362 | linkType: hard 363 | 364 | "is-fullwidth-code-point@npm:^4.0.0": 365 | version: 4.0.0 366 | resolution: "is-fullwidth-code-point@npm:4.0.0" 367 | checksum: 10/8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d 368 | languageName: node 369 | linkType: hard 370 | 371 | "is-fullwidth-code-point@npm:^5.0.0": 372 | version: 5.0.0 373 | resolution: "is-fullwidth-code-point@npm:5.0.0" 374 | dependencies: 375 | get-east-asian-width: "npm:^1.0.0" 376 | checksum: 10/8dfb2d2831b9e87983c136f5c335cd9d14c1402973e357a8ff057904612ed84b8cba196319fabedf9aefe4639e14fe3afe9d9966d1d006ebeb40fe1fed4babe5 377 | languageName: node 378 | linkType: hard 379 | 380 | "is-glob@npm:^4.0.1": 381 | version: 4.0.3 382 | resolution: "is-glob@npm:4.0.3" 383 | dependencies: 384 | is-extglob: "npm:^2.1.1" 385 | checksum: 10/3ed74f2b0cdf4f401f38edb0442ddfde3092d79d7d35c9919c86641efdbcbb32e45aa3c0f70ce5eecc946896cd5a0f26e4188b9f2b881876f7cb6c505b82da11 386 | languageName: node 387 | linkType: hard 388 | 389 | "is-hexadecimal@npm:^2.0.0": 390 | version: 2.0.1 391 | resolution: "is-hexadecimal@npm:2.0.1" 392 | checksum: 10/66a2ea85994c622858f063f23eda506db29d92b52580709eb6f4c19550552d4dcf3fb81952e52f7cf972097237959e00adc7bb8c9400cd12886e15bf06145321 393 | languageName: node 394 | linkType: hard 395 | 396 | "is-number@npm:^7.0.0": 397 | version: 7.0.0 398 | resolution: "is-number@npm:7.0.0" 399 | checksum: 10/6a6c3383f68afa1e05b286af866017c78f1226d43ac8cb064e115ff9ed85eb33f5c4f7216c96a71e4dfea289ef52c5da3aef5bbfade8ffe47a0465d70c0c8e86 400 | languageName: node 401 | linkType: hard 402 | 403 | "js-yaml@npm:4.1.0": 404 | version: 4.1.0 405 | resolution: "js-yaml@npm:4.1.0" 406 | dependencies: 407 | argparse: "npm:^2.0.1" 408 | bin: 409 | js-yaml: bin/js-yaml.js 410 | checksum: 10/c138a34a3fd0d08ebaf71273ad4465569a483b8a639e0b118ff65698d257c2791d3199e3f303631f2cb98213fa7b5f5d6a4621fd0fff819421b990d30d967140 411 | languageName: node 412 | linkType: hard 413 | 414 | "jsonc-parser@npm:3.3.1": 415 | version: 3.3.1 416 | resolution: "jsonc-parser@npm:3.3.1" 417 | checksum: 10/9b0dc391f20b47378f843ef1e877e73ec652a5bdc3c5fa1f36af0f119a55091d147a86c1ee86a232296f55c929bba174538c2bf0312610e0817a22de131cc3f4 418 | languageName: node 419 | linkType: hard 420 | 421 | "katex@npm:^0.16.0": 422 | version: 0.16.21 423 | resolution: "katex@npm:0.16.21" 424 | dependencies: 425 | commander: "npm:^8.3.0" 426 | bin: 427 | katex: cli.js 428 | checksum: 10/db1094c528972ffb881c64969e87cbca465d21f918f4dad8bfe583f68e1bd601438eda3d79e8d74bc7ccc14e7b76616a9053bb21945749a30a73bc68f20e721b 429 | languageName: node 430 | linkType: hard 431 | 432 | "lilconfig@npm:^3.1.3": 433 | version: 3.1.3 434 | resolution: "lilconfig@npm:3.1.3" 435 | checksum: 10/b932ce1af94985f0efbe8896e57b1f814a48c8dbd7fc0ef8469785c6303ed29d0090af3ccad7e36b626bfca3a4dc56cc262697e9a8dd867623cf09a39d54e4c3 436 | languageName: node 437 | linkType: hard 438 | 439 | "linkify-it@npm:^5.0.0": 440 | version: 5.0.0 441 | resolution: "linkify-it@npm:5.0.0" 442 | dependencies: 443 | uc.micro: "npm:^2.0.0" 444 | checksum: 10/ef3b7609dda6ec0c0be8a7b879cea195f0d36387b0011660cd6711bba0ad82137f59b458b7e703ec74f11d88e7c1328e2ad9b855a8500c0ded67461a8c4519e6 445 | languageName: node 446 | linkType: hard 447 | 448 | "lint-staged@npm:^16.1.0": 449 | version: 16.1.0 450 | resolution: "lint-staged@npm:16.1.0" 451 | dependencies: 452 | chalk: "npm:^5.4.1" 453 | commander: "npm:^14.0.0" 454 | debug: "npm:^4.4.1" 455 | lilconfig: "npm:^3.1.3" 456 | listr2: "npm:^8.3.3" 457 | micromatch: "npm:^4.0.8" 458 | nano-spawn: "npm:^1.0.2" 459 | pidtree: "npm:^0.6.0" 460 | string-argv: "npm:^0.3.2" 461 | yaml: "npm:^2.8.0" 462 | bin: 463 | lint-staged: bin/lint-staged.js 464 | checksum: 10/c7a52ac9551f284b09d389d515ee0951055e13f71aa18990e0804fb8738d50763aa6e262879a4f0f1cf376a4c1772748f6782e8fe98a4cb322b168af16711ba6 465 | languageName: node 466 | linkType: hard 467 | 468 | "listr2@npm:^8.3.3": 469 | version: 8.3.3 470 | resolution: "listr2@npm:8.3.3" 471 | dependencies: 472 | cli-truncate: "npm:^4.0.0" 473 | colorette: "npm:^2.0.20" 474 | eventemitter3: "npm:^5.0.1" 475 | log-update: "npm:^6.1.0" 476 | rfdc: "npm:^1.4.1" 477 | wrap-ansi: "npm:^9.0.0" 478 | checksum: 10/92f1bb60e9a0f4fed9bff89fbab49d80fc889d29cf47c0a612f5a62a036dead49d3f697d3a79e36984768529bd3bfacb3343859eafceba179a8e66c034d99300 479 | languageName: node 480 | linkType: hard 481 | 482 | "log-update@npm:^6.1.0": 483 | version: 6.1.0 484 | resolution: "log-update@npm:6.1.0" 485 | dependencies: 486 | ansi-escapes: "npm:^7.0.0" 487 | cli-cursor: "npm:^5.0.0" 488 | slice-ansi: "npm:^7.1.0" 489 | strip-ansi: "npm:^7.1.0" 490 | wrap-ansi: "npm:^9.0.0" 491 | checksum: 10/5abb4131e33b1e7f8416bb194fe17a3603d83e4657c5bf5bb81ce4187f3b00ea481643b85c3d5cefe6037a452cdcf7f1391ab8ea0d9c23e75d19589830ec4f11 492 | languageName: node 493 | linkType: hard 494 | 495 | "markdown-it@npm:14.1.0": 496 | version: 14.1.0 497 | resolution: "markdown-it@npm:14.1.0" 498 | dependencies: 499 | argparse: "npm:^2.0.1" 500 | entities: "npm:^4.4.0" 501 | linkify-it: "npm:^5.0.0" 502 | mdurl: "npm:^2.0.0" 503 | punycode.js: "npm:^2.3.1" 504 | uc.micro: "npm:^2.1.0" 505 | bin: 506 | markdown-it: bin/markdown-it.mjs 507 | checksum: 10/f34f921be178ed0607ba9e3e27c733642be445e9bb6b1dba88da7aafe8ba1bc5d2f1c3aa8f3fc33b49a902da4e4c08c2feadfafb290b8c7dda766208bb6483a9 508 | languageName: node 509 | linkType: hard 510 | 511 | "markdownlint-cli2-formatter-default@npm:0.0.5": 512 | version: 0.0.5 513 | resolution: "markdownlint-cli2-formatter-default@npm:0.0.5" 514 | peerDependencies: 515 | markdownlint-cli2: ">=0.0.4" 516 | checksum: 10/b99828fb295e96ba30fbc365c363e8811ffa70f2334d3ecad04bc1396f6c19c33448da76019f90f523415e7ae557d1be381ceb77a03590c9017d355b7cbab277 517 | languageName: node 518 | linkType: hard 519 | 520 | "markdownlint-cli2@npm:^0.18.1": 521 | version: 0.18.1 522 | resolution: "markdownlint-cli2@npm:0.18.1" 523 | dependencies: 524 | globby: "npm:14.1.0" 525 | js-yaml: "npm:4.1.0" 526 | jsonc-parser: "npm:3.3.1" 527 | markdown-it: "npm:14.1.0" 528 | markdownlint: "npm:0.38.0" 529 | markdownlint-cli2-formatter-default: "npm:0.0.5" 530 | micromatch: "npm:4.0.8" 531 | bin: 532 | markdownlint-cli2: markdownlint-cli2-bin.mjs 533 | checksum: 10/ad1d70d9226a81730b0a5a99ed223936fe134801229843de58094fc93c2e8a8d6baf6f386f374d6fb7d6868663dde62a4705e1c3fc5fde764d34a06ff77eb8d2 534 | languageName: node 535 | linkType: hard 536 | 537 | "markdownlint@npm:0.38.0, markdownlint@npm:^0.38.0": 538 | version: 0.38.0 539 | resolution: "markdownlint@npm:0.38.0" 540 | dependencies: 541 | micromark: "npm:4.0.2" 542 | micromark-core-commonmark: "npm:2.0.3" 543 | micromark-extension-directive: "npm:4.0.0" 544 | micromark-extension-gfm-autolink-literal: "npm:2.1.0" 545 | micromark-extension-gfm-footnote: "npm:2.1.0" 546 | micromark-extension-gfm-table: "npm:2.1.1" 547 | micromark-extension-math: "npm:3.1.0" 548 | micromark-util-types: "npm:2.0.2" 549 | checksum: 10/294f575fb030210fdc9b79a370eb76506ba793cc2732bb6ed6eb0c25affc521e4362a4eaee8d7dc3d10a2ea5ced1f223c4412a6cd4972cfc84975ce9b4a56dbd 550 | languageName: node 551 | linkType: hard 552 | 553 | "mdurl@npm:^2.0.0": 554 | version: 2.0.0 555 | resolution: "mdurl@npm:2.0.0" 556 | checksum: 10/1720349d4a53e401aa993241368e35c0ad13d816ad0b28388928c58ca9faa0cf755fa45f18ccbf64f4ce54a845a50ddce5c84e4016897b513096a68dac4b0158 557 | languageName: node 558 | linkType: hard 559 | 560 | "merge2@npm:^1.3.0": 561 | version: 1.4.1 562 | resolution: "merge2@npm:1.4.1" 563 | checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 564 | languageName: node 565 | linkType: hard 566 | 567 | "micromark-core-commonmark@npm:2.0.3, micromark-core-commonmark@npm:^2.0.0": 568 | version: 2.0.3 569 | resolution: "micromark-core-commonmark@npm:2.0.3" 570 | dependencies: 571 | decode-named-character-reference: "npm:^1.0.0" 572 | devlop: "npm:^1.0.0" 573 | micromark-factory-destination: "npm:^2.0.0" 574 | micromark-factory-label: "npm:^2.0.0" 575 | micromark-factory-space: "npm:^2.0.0" 576 | micromark-factory-title: "npm:^2.0.0" 577 | micromark-factory-whitespace: "npm:^2.0.0" 578 | micromark-util-character: "npm:^2.0.0" 579 | micromark-util-chunked: "npm:^2.0.0" 580 | micromark-util-classify-character: "npm:^2.0.0" 581 | micromark-util-html-tag-name: "npm:^2.0.0" 582 | micromark-util-normalize-identifier: "npm:^2.0.0" 583 | micromark-util-resolve-all: "npm:^2.0.0" 584 | micromark-util-subtokenize: "npm:^2.0.0" 585 | micromark-util-symbol: "npm:^2.0.0" 586 | micromark-util-types: "npm:^2.0.0" 587 | checksum: 10/2b98b9eba1463850ebd8f338f966bd2113dafe764b490ebee3dccab3764d3c48b53fe67673297530e56bf54f58de27dfd1952ed79c5b4e32047cb7f29bd807f2 588 | languageName: node 589 | linkType: hard 590 | 591 | "micromark-extension-directive@npm:4.0.0": 592 | version: 4.0.0 593 | resolution: "micromark-extension-directive@npm:4.0.0" 594 | dependencies: 595 | devlop: "npm:^1.0.0" 596 | micromark-factory-space: "npm:^2.0.0" 597 | micromark-factory-whitespace: "npm:^2.0.0" 598 | micromark-util-character: "npm:^2.0.0" 599 | micromark-util-symbol: "npm:^2.0.0" 600 | micromark-util-types: "npm:^2.0.0" 601 | parse-entities: "npm:^4.0.0" 602 | checksum: 10/3053b77c9175e9da7886a3af6b2a810358982cc7baabe886dde52d257e3d1b0e0f3c274891a3db7c5d53a8c7688cd915631f43f680e8a88c83f5951a6e5e34c3 603 | languageName: node 604 | linkType: hard 605 | 606 | "micromark-extension-gfm-autolink-literal@npm:2.1.0": 607 | version: 2.1.0 608 | resolution: "micromark-extension-gfm-autolink-literal@npm:2.1.0" 609 | dependencies: 610 | micromark-util-character: "npm:^2.0.0" 611 | micromark-util-sanitize-uri: "npm:^2.0.0" 612 | micromark-util-symbol: "npm:^2.0.0" 613 | micromark-util-types: "npm:^2.0.0" 614 | checksum: 10/933b9b96ca62cd50732d9e58ae90ba446f4314e0ecbff3127e9aae430d9a295346f88fb33b5532acaf648d659b0db92e0c00c2e9f504c0d7b8bb4553318cac50 615 | languageName: node 616 | linkType: hard 617 | 618 | "micromark-extension-gfm-footnote@npm:2.1.0": 619 | version: 2.1.0 620 | resolution: "micromark-extension-gfm-footnote@npm:2.1.0" 621 | dependencies: 622 | devlop: "npm:^1.0.0" 623 | micromark-core-commonmark: "npm:^2.0.0" 624 | micromark-factory-space: "npm:^2.0.0" 625 | micromark-util-character: "npm:^2.0.0" 626 | micromark-util-normalize-identifier: "npm:^2.0.0" 627 | micromark-util-sanitize-uri: "npm:^2.0.0" 628 | micromark-util-symbol: "npm:^2.0.0" 629 | micromark-util-types: "npm:^2.0.0" 630 | checksum: 10/7e019414e31ab53c49c909b7068adbbcb1726433fce82bf735219276fe6e00a42b66288acb5c8831f80e77480fac34880eeeb60b1dc09d5885862b31db4b9ea2 631 | languageName: node 632 | linkType: hard 633 | 634 | "micromark-extension-gfm-table@npm:2.1.1": 635 | version: 2.1.1 636 | resolution: "micromark-extension-gfm-table@npm:2.1.1" 637 | dependencies: 638 | devlop: "npm:^1.0.0" 639 | micromark-factory-space: "npm:^2.0.0" 640 | micromark-util-character: "npm:^2.0.0" 641 | micromark-util-symbol: "npm:^2.0.0" 642 | micromark-util-types: "npm:^2.0.0" 643 | checksum: 10/0391ead408d79a183a9bba325b0e660b85aef2cd6e442a9214afc4e0bdc3105cd7dbf41fc75465acf152883a4050b6203107c2a80bcadb304235581a1340fd8c 644 | languageName: node 645 | linkType: hard 646 | 647 | "micromark-extension-math@npm:3.1.0": 648 | version: 3.1.0 649 | resolution: "micromark-extension-math@npm:3.1.0" 650 | dependencies: 651 | "@types/katex": "npm:^0.16.0" 652 | devlop: "npm:^1.0.0" 653 | katex: "npm:^0.16.0" 654 | micromark-factory-space: "npm:^2.0.0" 655 | micromark-util-character: "npm:^2.0.0" 656 | micromark-util-symbol: "npm:^2.0.0" 657 | micromark-util-types: "npm:^2.0.0" 658 | checksum: 10/37b2002aca15cf354ff754191379942f2b36df5ceeb69509294d80b4e158e8af83dda03c434e1497ccc597d63cf85a1ccc0d46f17770fc7692f76887404c8d1d 659 | languageName: node 660 | linkType: hard 661 | 662 | "micromark-factory-destination@npm:^2.0.0": 663 | version: 2.0.1 664 | resolution: "micromark-factory-destination@npm:2.0.1" 665 | dependencies: 666 | micromark-util-character: "npm:^2.0.0" 667 | micromark-util-symbol: "npm:^2.0.0" 668 | micromark-util-types: "npm:^2.0.0" 669 | checksum: 10/9c4baa9ca2ed43c061bbf40ddd3d85154c2a0f1f485de9dea41d7dd2ad994ebb02034a003b2c1dbe228ba83a0576d591f0e90e0bf978713f84ee7d7f3aa98320 670 | languageName: node 671 | linkType: hard 672 | 673 | "micromark-factory-label@npm:^2.0.0": 674 | version: 2.0.1 675 | resolution: "micromark-factory-label@npm:2.0.1" 676 | dependencies: 677 | devlop: "npm:^1.0.0" 678 | micromark-util-character: "npm:^2.0.0" 679 | micromark-util-symbol: "npm:^2.0.0" 680 | micromark-util-types: "npm:^2.0.0" 681 | checksum: 10/bd03f5a75f27cdbf03b894ddc5c4480fc0763061fecf9eb927d6429233c930394f223969a99472df142d570c831236134de3dc23245d23d9f046f9d0b623b5c2 682 | languageName: node 683 | linkType: hard 684 | 685 | "micromark-factory-space@npm:^2.0.0": 686 | version: 2.0.1 687 | resolution: "micromark-factory-space@npm:2.0.1" 688 | dependencies: 689 | micromark-util-character: "npm:^2.0.0" 690 | micromark-util-types: "npm:^2.0.0" 691 | checksum: 10/1bd68a017c1a66f4787506660c1e1c5019169aac3b1cb075d49ac5e360e0b2065e984d4e1d6e9e52a9d44000f2fa1c98e66a743d7aae78b4b05616bf3242ed71 692 | languageName: node 693 | linkType: hard 694 | 695 | "micromark-factory-title@npm:^2.0.0": 696 | version: 2.0.1 697 | resolution: "micromark-factory-title@npm:2.0.1" 698 | dependencies: 699 | micromark-factory-space: "npm:^2.0.0" 700 | micromark-util-character: "npm:^2.0.0" 701 | micromark-util-symbol: "npm:^2.0.0" 702 | micromark-util-types: "npm:^2.0.0" 703 | checksum: 10/b4d2e4850a8ba0dff25ce54e55a3eb0d43dda88a16293f53953153288f9d84bcdfa8ca4606b2cfbb4f132ea79587bbb478a73092a349f893f5264fbcdbce2ee1 704 | languageName: node 705 | linkType: hard 706 | 707 | "micromark-factory-whitespace@npm:^2.0.0": 708 | version: 2.0.1 709 | resolution: "micromark-factory-whitespace@npm:2.0.1" 710 | dependencies: 711 | micromark-factory-space: "npm:^2.0.0" 712 | micromark-util-character: "npm:^2.0.0" 713 | micromark-util-symbol: "npm:^2.0.0" 714 | micromark-util-types: "npm:^2.0.0" 715 | checksum: 10/67b3944d012a42fee9e10e99178254a04d48af762b54c10a50fcab988688799993efb038daf9f5dbc04001a97b9c1b673fc6f00e6a56997877ab25449f0c8650 716 | languageName: node 717 | linkType: hard 718 | 719 | "micromark-util-character@npm:^2.0.0": 720 | version: 2.1.1 721 | resolution: "micromark-util-character@npm:2.1.1" 722 | dependencies: 723 | micromark-util-symbol: "npm:^2.0.0" 724 | micromark-util-types: "npm:^2.0.0" 725 | checksum: 10/85da8f8e5f7ed16046575bef5b0964ca3fca3162b87b74ae279f1e48eb7160891313eb64f04606baed81c58b514dbdb64f1a9d110a51baaaa79225d72a7b1852 726 | languageName: node 727 | linkType: hard 728 | 729 | "micromark-util-chunked@npm:^2.0.0": 730 | version: 2.0.1 731 | resolution: "micromark-util-chunked@npm:2.0.1" 732 | dependencies: 733 | micromark-util-symbol: "npm:^2.0.0" 734 | checksum: 10/f8cb2a67bcefe4bd2846d838c97b777101f0043b9f1de4f69baf3e26bb1f9885948444e3c3aec66db7595cad8173bd4567a000eb933576c233d54631f6323fe4 735 | languageName: node 736 | linkType: hard 737 | 738 | "micromark-util-classify-character@npm:^2.0.0": 739 | version: 2.0.1 740 | resolution: "micromark-util-classify-character@npm:2.0.1" 741 | dependencies: 742 | micromark-util-character: "npm:^2.0.0" 743 | micromark-util-symbol: "npm:^2.0.0" 744 | micromark-util-types: "npm:^2.0.0" 745 | checksum: 10/4d8bbe3a6dbf69ac0fc43516866b5bab019fe3f4568edc525d4feaaaf78423fa54e6b6732b5bccbeed924455279a3758ffc9556954aafb903982598a95a02704 746 | languageName: node 747 | linkType: hard 748 | 749 | "micromark-util-combine-extensions@npm:^2.0.0": 750 | version: 2.0.1 751 | resolution: "micromark-util-combine-extensions@npm:2.0.1" 752 | dependencies: 753 | micromark-util-chunked: "npm:^2.0.0" 754 | micromark-util-types: "npm:^2.0.0" 755 | checksum: 10/5d22fb9ee37e8143adfe128a72b50fa09568c2cc553b3c76160486c96dbbb298c5802a177a10a215144a604b381796071b5d35be1f2c2b2ee17995eda92f0c8e 756 | languageName: node 757 | linkType: hard 758 | 759 | "micromark-util-decode-numeric-character-reference@npm:^2.0.0": 760 | version: 2.0.2 761 | resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2" 762 | dependencies: 763 | micromark-util-symbol: "npm:^2.0.0" 764 | checksum: 10/ee11c8bde51e250e302050474c4a2adca094bca05c69f6cdd241af12df285c48c88d19ee6e022b9728281c280be16328904adca994605680c43af56019f4b0b6 765 | languageName: node 766 | linkType: hard 767 | 768 | "micromark-util-encode@npm:^2.0.0": 769 | version: 2.0.1 770 | resolution: "micromark-util-encode@npm:2.0.1" 771 | checksum: 10/be890b98e78dd0cdd953a313f4148c4692cc2fb05533e56fef5f421287d3c08feee38ca679f318e740530791fc251bfe8c80efa926fcceb4419b269c9343d226 772 | languageName: node 773 | linkType: hard 774 | 775 | "micromark-util-html-tag-name@npm:^2.0.0": 776 | version: 2.0.1 777 | resolution: "micromark-util-html-tag-name@npm:2.0.1" 778 | checksum: 10/dea365f5ad28ad74ff29fcb581f7b74fc1f80271c5141b3b2bc91c454cbb6dfca753f28ae03730d657874fcbd89d0494d0e3965dfdca06d9855f467c576afa9d 779 | languageName: node 780 | linkType: hard 781 | 782 | "micromark-util-normalize-identifier@npm:^2.0.0": 783 | version: 2.0.1 784 | resolution: "micromark-util-normalize-identifier@npm:2.0.1" 785 | dependencies: 786 | micromark-util-symbol: "npm:^2.0.0" 787 | checksum: 10/1eb9a289d7da067323df9fdc78bfa90ca3207ad8fd893ca02f3133e973adcb3743b233393d23d95c84ccaf5d220ae7f5a28402a644f135dcd4b8cfa60a7b5f84 788 | languageName: node 789 | linkType: hard 790 | 791 | "micromark-util-resolve-all@npm:^2.0.0": 792 | version: 2.0.1 793 | resolution: "micromark-util-resolve-all@npm:2.0.1" 794 | dependencies: 795 | micromark-util-types: "npm:^2.0.0" 796 | checksum: 10/9275f3ddb6c26f254dd2158e66215d050454b279707a7d9ce5a3cd0eba23201021cedcb78ae1a746c1b23227dcc418ee40dd074ade195359506797a5493550cc 797 | languageName: node 798 | linkType: hard 799 | 800 | "micromark-util-sanitize-uri@npm:^2.0.0": 801 | version: 2.0.1 802 | resolution: "micromark-util-sanitize-uri@npm:2.0.1" 803 | dependencies: 804 | micromark-util-character: "npm:^2.0.0" 805 | micromark-util-encode: "npm:^2.0.0" 806 | micromark-util-symbol: "npm:^2.0.0" 807 | checksum: 10/064c72abfc9777864ca0521a016dde62ab3e7af5215d10fd27e820798500d5d305da638459c589275c1a093cf588f493cc2f65273deac5a5331ecefc6c9ea78a 808 | languageName: node 809 | linkType: hard 810 | 811 | "micromark-util-subtokenize@npm:^2.0.0": 812 | version: 2.0.3 813 | resolution: "micromark-util-subtokenize@npm:2.0.3" 814 | dependencies: 815 | devlop: "npm:^1.0.0" 816 | micromark-util-chunked: "npm:^2.0.0" 817 | micromark-util-symbol: "npm:^2.0.0" 818 | micromark-util-types: "npm:^2.0.0" 819 | checksum: 10/57b26f129f46424a4670bb47c50f13c7309bb1bc557c02150a788d1634337c1bb25a3523af3d6dffc29aaec873b3bd88fd931bfff34e64284e6436e23873ca22 820 | languageName: node 821 | linkType: hard 822 | 823 | "micromark-util-symbol@npm:^2.0.0": 824 | version: 2.0.1 825 | resolution: "micromark-util-symbol@npm:2.0.1" 826 | checksum: 10/497e6d95fc21c2bb5265b78a6a60db518c376dc438739b2e7d4aee6f9f165222711724b456c63163314f32b8eea68a064687711d41e986262926eab23ddb9229 827 | languageName: node 828 | linkType: hard 829 | 830 | "micromark-util-types@npm:2.0.2, micromark-util-types@npm:^2.0.0": 831 | version: 2.0.2 832 | resolution: "micromark-util-types@npm:2.0.2" 833 | checksum: 10/a9eb067bd9384eab61942285d53738aa22f3fef4819eaf20249bec6ec13f1e4da2800230fd0ceb7e705108987aa9062fe3e9a8e5e48aa60180db80b9489dc3e2 834 | languageName: node 835 | linkType: hard 836 | 837 | "micromark@npm:4.0.2": 838 | version: 4.0.2 839 | resolution: "micromark@npm:4.0.2" 840 | dependencies: 841 | "@types/debug": "npm:^4.0.0" 842 | debug: "npm:^4.0.0" 843 | decode-named-character-reference: "npm:^1.0.0" 844 | devlop: "npm:^1.0.0" 845 | micromark-core-commonmark: "npm:^2.0.0" 846 | micromark-factory-space: "npm:^2.0.0" 847 | micromark-util-character: "npm:^2.0.0" 848 | micromark-util-chunked: "npm:^2.0.0" 849 | micromark-util-combine-extensions: "npm:^2.0.0" 850 | micromark-util-decode-numeric-character-reference: "npm:^2.0.0" 851 | micromark-util-encode: "npm:^2.0.0" 852 | micromark-util-normalize-identifier: "npm:^2.0.0" 853 | micromark-util-resolve-all: "npm:^2.0.0" 854 | micromark-util-sanitize-uri: "npm:^2.0.0" 855 | micromark-util-subtokenize: "npm:^2.0.0" 856 | micromark-util-symbol: "npm:^2.0.0" 857 | micromark-util-types: "npm:^2.0.0" 858 | checksum: 10/1b85e49c8f71013df2d07a59e477deb72cd325d41cc15f35b2aa52b8b7a93fed45498ce3e18ed34464a9afa9ba8a9210b2509454b2a2d16ac06c7429f562bfac 859 | languageName: node 860 | linkType: hard 861 | 862 | "micromatch@npm:4.0.8, micromatch@npm:^4.0.8": 863 | version: 4.0.8 864 | resolution: "micromatch@npm:4.0.8" 865 | dependencies: 866 | braces: "npm:^3.0.3" 867 | picomatch: "npm:^2.3.1" 868 | checksum: 10/6bf2a01672e7965eb9941d1f02044fad2bd12486b5553dc1116ff24c09a8723157601dc992e74c911d896175918448762df3b3fd0a6b61037dd1a9766ddfbf58 869 | languageName: node 870 | linkType: hard 871 | 872 | "mimic-function@npm:^5.0.0": 873 | version: 5.0.1 874 | resolution: "mimic-function@npm:5.0.1" 875 | checksum: 10/eb5893c99e902ccebbc267c6c6b83092966af84682957f79313311edb95e8bb5f39fb048d77132b700474d1c86d90ccc211e99bae0935447a4834eb4c882982c 876 | languageName: node 877 | linkType: hard 878 | 879 | "ms@npm:^2.1.3": 880 | version: 2.1.3 881 | resolution: "ms@npm:2.1.3" 882 | checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d 883 | languageName: node 884 | linkType: hard 885 | 886 | "nano-spawn@npm:^1.0.2": 887 | version: 1.0.2 888 | resolution: "nano-spawn@npm:1.0.2" 889 | checksum: 10/6ce9e60846d2e37c0e3cd048472683c81dbcaadef9ebe73bfc8754ee7da2a574f724436d3dcdeda5d807aedc857cc8cbc278a9882529164b5ef4b170b95cfe0b 890 | languageName: node 891 | linkType: hard 892 | 893 | "onetime@npm:^7.0.0": 894 | version: 7.0.0 895 | resolution: "onetime@npm:7.0.0" 896 | dependencies: 897 | mimic-function: "npm:^5.0.0" 898 | checksum: 10/eb08d2da9339819e2f9d52cab9caf2557d80e9af8c7d1ae86e1a0fef027d00a88e9f5bd67494d350df360f7c559fbb44e800b32f310fb989c860214eacbb561c 899 | languageName: node 900 | linkType: hard 901 | 902 | "parse-entities@npm:^4.0.0": 903 | version: 4.0.1 904 | resolution: "parse-entities@npm:4.0.1" 905 | dependencies: 906 | "@types/unist": "npm:^2.0.0" 907 | character-entities: "npm:^2.0.0" 908 | character-entities-legacy: "npm:^3.0.0" 909 | character-reference-invalid: "npm:^2.0.0" 910 | decode-named-character-reference: "npm:^1.0.0" 911 | is-alphanumerical: "npm:^2.0.0" 912 | is-decimal: "npm:^2.0.0" 913 | is-hexadecimal: "npm:^2.0.0" 914 | checksum: 10/71314312d2482422fcf0b6675e020643bab424b11f64c654b7843652cae03842a7802eda1fed194ec435debb5db47a33513eb6b1176888e9e998a0368f01f5c8 915 | languageName: node 916 | linkType: hard 917 | 918 | "path-type@npm:^6.0.0": 919 | version: 6.0.0 920 | resolution: "path-type@npm:6.0.0" 921 | checksum: 10/b9f6eaf7795c48d5c9bc4c6bc3ac61315b8d36975a73497ab2e02b764c0836b71fb267ea541863153f633a069a1c2ed3c247cb781633842fc571c655ac57c00e 922 | languageName: node 923 | linkType: hard 924 | 925 | "picomatch@npm:^2.3.1": 926 | version: 2.3.1 927 | resolution: "picomatch@npm:2.3.1" 928 | checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc 929 | languageName: node 930 | linkType: hard 931 | 932 | "pidtree@npm:^0.6.0": 933 | version: 0.6.0 934 | resolution: "pidtree@npm:0.6.0" 935 | bin: 936 | pidtree: bin/pidtree.js 937 | checksum: 10/ea67fb3159e170fd069020e0108ba7712df9f0fd13c8db9b2286762856ddce414fb33932e08df4bfe36e91fe860b51852aee49a6f56eb4714b69634343add5df 938 | languageName: node 939 | linkType: hard 940 | 941 | "prettier@npm:^3.0.0, prettier@npm:^3.5.3": 942 | version: 3.5.3 943 | resolution: "prettier@npm:3.5.3" 944 | bin: 945 | prettier: bin/prettier.cjs 946 | checksum: 10/7050c08f674d9e49fbd9a4c008291d0715471f64e94cc5e4b01729affce221dfc6875c8de7e66b728c64abc9352eefb7eaae071b5f79d30081be207b53774b78 947 | languageName: node 948 | linkType: hard 949 | 950 | "punycode.js@npm:^2.3.1": 951 | version: 2.3.1 952 | resolution: "punycode.js@npm:2.3.1" 953 | checksum: 10/f0e946d1edf063f9e3d30a32ca86d8ff90ed13ca40dad9c75d37510a04473340cfc98db23a905cc1e517b1e9deb0f6021dce6f422ace235c60d3c9ac47c5a16a 954 | languageName: node 955 | linkType: hard 956 | 957 | "queue-microtask@npm:^1.2.2": 958 | version: 1.2.3 959 | resolution: "queue-microtask@npm:1.2.3" 960 | checksum: 10/72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b 961 | languageName: node 962 | linkType: hard 963 | 964 | "restore-cursor@npm:^5.0.0": 965 | version: 5.1.0 966 | resolution: "restore-cursor@npm:5.1.0" 967 | dependencies: 968 | onetime: "npm:^7.0.0" 969 | signal-exit: "npm:^4.1.0" 970 | checksum: 10/838dd54e458d89cfbc1a923b343c1b0f170a04100b4ce1733e97531842d7b440463967e521216e8ab6c6f8e89df877acc7b7f4c18ec76e99fb9bf5a60d358d2c 971 | languageName: node 972 | linkType: hard 973 | 974 | "reusify@npm:^1.0.4": 975 | version: 1.0.4 976 | resolution: "reusify@npm:1.0.4" 977 | checksum: 10/14222c9e1d3f9ae01480c50d96057228a8524706db79cdeb5a2ce5bb7070dd9f409a6f84a02cbef8cdc80d39aef86f2dd03d155188a1300c599b05437dcd2ffb 978 | languageName: node 979 | linkType: hard 980 | 981 | "rfdc@npm:^1.4.1": 982 | version: 1.4.1 983 | resolution: "rfdc@npm:1.4.1" 984 | checksum: 10/2f3d11d3d8929b4bfeefc9acb03aae90f971401de0add5ae6c5e38fec14f0405e6a4aad8fdb76344bfdd20c5193110e3750cbbd28ba86d73729d222b6cf4a729 985 | languageName: node 986 | linkType: hard 987 | 988 | "run-parallel@npm:^1.1.9": 989 | version: 1.2.0 990 | resolution: "run-parallel@npm:1.2.0" 991 | dependencies: 992 | queue-microtask: "npm:^1.2.2" 993 | checksum: 10/cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d 994 | languageName: node 995 | linkType: hard 996 | 997 | "signal-exit@npm:^4.1.0": 998 | version: 4.1.0 999 | resolution: "signal-exit@npm:4.1.0" 1000 | checksum: 10/c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f 1001 | languageName: node 1002 | linkType: hard 1003 | 1004 | "slash@npm:^5.1.0": 1005 | version: 5.1.0 1006 | resolution: "slash@npm:5.1.0" 1007 | checksum: 10/2c41ec6fb1414cd9bba0fa6b1dd00e8be739e3fe85d079c69d4b09ca5f2f86eafd18d9ce611c0c0f686428638a36c272a6ac14799146a8295f259c10cc45cde4 1008 | languageName: node 1009 | linkType: hard 1010 | 1011 | "slice-ansi@npm:^5.0.0": 1012 | version: 5.0.0 1013 | resolution: "slice-ansi@npm:5.0.0" 1014 | dependencies: 1015 | ansi-styles: "npm:^6.0.0" 1016 | is-fullwidth-code-point: "npm:^4.0.0" 1017 | checksum: 10/7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e 1018 | languageName: node 1019 | linkType: hard 1020 | 1021 | "slice-ansi@npm:^7.1.0": 1022 | version: 7.1.0 1023 | resolution: "slice-ansi@npm:7.1.0" 1024 | dependencies: 1025 | ansi-styles: "npm:^6.2.1" 1026 | is-fullwidth-code-point: "npm:^5.0.0" 1027 | checksum: 10/10313dd3cf7a2e4b265f527b1684c7c568210b09743fd1bd74f2194715ed13ffba653dc93a5fa79e3b1711518b8990a732cb7143aa01ddafe626e99dfa6474b2 1028 | languageName: node 1029 | linkType: hard 1030 | 1031 | "string-argv@npm:^0.3.2": 1032 | version: 0.3.2 1033 | resolution: "string-argv@npm:0.3.2" 1034 | checksum: 10/f9d3addf887026b4b5f997a271149e93bf71efc8692e7dc0816e8807f960b18bcb9787b45beedf0f97ff459575ee389af3f189d8b649834cac602f2e857e75af 1035 | languageName: node 1036 | linkType: hard 1037 | 1038 | "string-width@npm:^7.0.0": 1039 | version: 7.0.0 1040 | resolution: "string-width@npm:7.0.0" 1041 | dependencies: 1042 | emoji-regex: "npm:^10.3.0" 1043 | get-east-asian-width: "npm:^1.0.0" 1044 | strip-ansi: "npm:^7.1.0" 1045 | checksum: 10/bc0de5700a2690895169fce447ec4ed44bc62de80312c2093d5606bfd48319bb88e48a99e97f269dff2bc9577448b91c26b3804c16e7d9b389699795e4655c3b 1046 | languageName: node 1047 | linkType: hard 1048 | 1049 | "strip-ansi@npm:^7.1.0": 1050 | version: 7.1.0 1051 | resolution: "strip-ansi@npm:7.1.0" 1052 | dependencies: 1053 | ansi-regex: "npm:^6.0.1" 1054 | checksum: 10/475f53e9c44375d6e72807284024ac5d668ee1d06010740dec0b9744f2ddf47de8d7151f80e5f6190fc8f384e802fdf9504b76a7e9020c9faee7103623338be2 1055 | languageName: node 1056 | linkType: hard 1057 | 1058 | "to-regex-range@npm:^5.0.1": 1059 | version: 5.0.1 1060 | resolution: "to-regex-range@npm:5.0.1" 1061 | dependencies: 1062 | is-number: "npm:^7.0.0" 1063 | checksum: 10/10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a 1064 | languageName: node 1065 | linkType: hard 1066 | 1067 | "uc.micro@npm:^2.0.0, uc.micro@npm:^2.1.0": 1068 | version: 2.1.0 1069 | resolution: "uc.micro@npm:2.1.0" 1070 | checksum: 10/37197358242eb9afe367502d4638ac8c5838b78792ab218eafe48287b0ed28aaca268ec0392cc5729f6c90266744de32c06ae938549aee041fc93b0f9672d6b2 1071 | languageName: node 1072 | linkType: hard 1073 | 1074 | "unicorn-magic@npm:^0.3.0": 1075 | version: 0.3.0 1076 | resolution: "unicorn-magic@npm:0.3.0" 1077 | checksum: 10/bdd7d7c522f9456f32a0b77af23f8854f9a7db846088c3868ec213f9550683ab6a2bdf3803577eacbafddb4e06900974385841ccb75338d17346ccef45f9cb01 1078 | languageName: node 1079 | linkType: hard 1080 | 1081 | "wrap-ansi@npm:^9.0.0": 1082 | version: 9.0.0 1083 | resolution: "wrap-ansi@npm:9.0.0" 1084 | dependencies: 1085 | ansi-styles: "npm:^6.2.1" 1086 | string-width: "npm:^7.0.0" 1087 | strip-ansi: "npm:^7.1.0" 1088 | checksum: 10/b9d91564c091cf3978a7c18ca0f3e4d4606e83549dbe59cf76f5e77feefdd5ec91443155e8102630524d10a8c275efac8a7082c0f26fa43e6b989dc150d176ce 1089 | languageName: node 1090 | linkType: hard 1091 | 1092 | "yaml@npm:^2.8.0": 1093 | version: 2.8.0 1094 | resolution: "yaml@npm:2.8.0" 1095 | bin: 1096 | yaml: bin.mjs 1097 | checksum: 10/7d4bd9c10d0e467601f496193f2ac254140f8e36f96f5ff7f852b9ce37974168eb7354f4c36dc8837dde527a2043d004b6aff48818ec24a69ab2dd3c6b6c381c 1098 | languageName: node 1099 | linkType: hard 1100 | --------------------------------------------------------------------------------