├── .eslintignore ├── .eslintrc.json ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .node-version ├── .prettierignore ├── .prettierrc.json ├── LICENSE ├── README.md ├── __tests__ └── main.spec.ts ├── package.json ├── pnpm-lock.yaml ├── src ├── index.ts ├── main.ts └── types.ts └── tsconfig.json /.eslintignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es2021": true, 5 | "node": true 6 | }, 7 | "extends": [ 8 | "google", 9 | "prettier" 10 | ], 11 | "parser": "@typescript-eslint/parser", 12 | "parserOptions": { 13 | "ecmaVersion": "latest", 14 | "sourceType": "module" 15 | }, 16 | "plugins": [ 17 | "@typescript-eslint" 18 | ], 19 | "rules": { 20 | "semi": [ 21 | "off", 22 | "always" 23 | ] 24 | } 25 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | --- 8 | 9 | **Describe the bug** 10 | A clear and concise description of what the bug is. 11 | 12 | **To Reproduce** 13 | Steps to reproduce the behavior: 14 | 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | 28 | - OS: [e.g. iOS] 29 | - Browser [e.g. chrome, safari] 30 | - Version [e.g. 22] 31 | 32 | **Smartphone (please complete the following information):** 33 | 34 | - Device: [e.g. iPhone6] 35 | - OS: [e.g. iOS8.1] 36 | - Browser [e.g. stock browser, safari] 37 | - Version [e.g. 22] 38 | 39 | **Additional context** 40 | Add any other context about the problem here. 41 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | --- 8 | 9 | **Is your feature request related to a problem? Please describe.** 10 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 11 | 12 | **Describe the solution you'd like** 13 | A clear and concise description of what you want to happen. 14 | 15 | **Describe alternatives you've considered** 16 | A clear and concise description of any alternative solutions or features you've considered. 17 | 18 | **Additional context** 19 | Add any other context or screenshots about the feature request here. 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | .pnpm-debug.log* 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # Snowpack dependency directory (https://snowpack.dev/) 46 | web_modules/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Optional stylelint cache 58 | .stylelintcache 59 | 60 | # Microbundle cache 61 | .rpt2_cache/ 62 | .rts2_cache_cjs/ 63 | .rts2_cache_es/ 64 | .rts2_cache_umd/ 65 | 66 | # Optional REPL history 67 | .node_repl_history 68 | 69 | # Output of 'npm pack' 70 | *.tgz 71 | 72 | # Yarn Integrity file 73 | .yarn-integrity 74 | 75 | # dotenv environment variable files 76 | .env 77 | .env.development.local 78 | .env.test.local 79 | .env.production.local 80 | .env.local 81 | 82 | # parcel-bundler cache (https://parceljs.org/) 83 | .cache 84 | .parcel-cache 85 | 86 | # Next.js build output 87 | .next 88 | out 89 | 90 | # Nuxt.js build / generate output 91 | .nuxt 92 | dist 93 | 94 | # Gatsby files 95 | .cache/ 96 | # Comment in the public line in if your project uses Gatsby and not Next.js 97 | # https://nextjs.org/blog/next-9-1#public-directory-support 98 | # public 99 | 100 | # vuepress build output 101 | .vuepress/dist 102 | 103 | # vuepress v2.x temp and cache directory 104 | .temp 105 | .cache 106 | 107 | # Docusaurus cache and generated files 108 | .docusaurus 109 | 110 | # Serverless directories 111 | .serverless/ 112 | 113 | # FuseBox cache 114 | .fusebox/ 115 | 116 | # DynamoDB Local files 117 | .dynamodb/ 118 | 119 | # TernJS port file 120 | .tern-port 121 | 122 | # Stores VSCode versions used for testing VSCode extensions 123 | .vscode-test 124 | 125 | # yarn v2 126 | .yarn/cache 127 | .yarn/unplugged 128 | .yarn/build-state.yml 129 | .yarn/install-state.gz 130 | .pnp.* -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 16.14.0 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true 4 | } 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 hanetsuki 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # microcms-filter-query 2 | 3 | [microcms](https://microcms.io/)のリスト API の get クエリ、`filter`の条件文の作成補助ツール 4 | 5 | ## Installed 6 | 7 | ```bash 8 | npm i microcms-filter-query 9 | # or 10 | yarn add microcms-filter-query 11 | ``` 12 | 13 | ## Usage 14 | 15 | basic usage. 16 | 17 | ```js 18 | const { MicroCMSFilterQuery } = require('microcms-filter-query') // CommonJS 19 | import { MicroCMSFilterQuery } from 'microcms-filter-query' //ES6 20 | 21 | // gender[equals]female 22 | const filterQuery = new MicroCMSFilterQuery() 23 | .equals('gender', 'female') 24 | .$execute() 25 | 26 | // Get request to microcms 27 | axios.get('https://{SERVICE_ID}.microcms.io/api/v1/{END_POINT}', { 28 | headers: { 29 | 'X-MICROCMS-API-KEY': `{API_KEY}`, 30 | }, 31 | params: { 32 | filters: filterQuery, 33 | }, 34 | }) 35 | ``` 36 | 37 | usage for TypeScript. 38 | 39 | ```ts 40 | import { MicroCMSFilterQuery } from 'microcms-filter-query' 41 | 42 | type Avatar = { 43 | name: string 44 | gender: 'female' | 'male' | 'other' 45 | } 46 | 47 | // gender[equals]female 48 | const filterQuery = new MicroCMSFilterQuery() 49 | .equals('gender', 'female') // argument is type safe 50 | .$execute() 51 | 52 | // Get request to microcms 53 | axios.get>( 54 | 'https://{SERVICE_ID}.microcms.io/api/v1/{END_POINT}', 55 | { 56 | headers: { 57 | 'X-MICROCMS-API-KEY': `{API_KEY}`, 58 | }, 59 | params: { 60 | filters: filterQuery, 61 | }, 62 | } 63 | ) 64 | ``` 65 | -------------------------------------------------------------------------------- /__tests__/main.spec.ts: -------------------------------------------------------------------------------- 1 | import { MicroCMSListContent } from 'microcms-js-sdk' 2 | import { describe, expect, it } from 'vitest' 3 | import { MicroCMSFilterQuery } from '../src' 4 | 5 | type Avatar = { 6 | id: string 7 | name: string 8 | age: number 9 | gender: 'male' | 'female' | 'other' 10 | } & MicroCMSListContent 11 | 12 | type Post = { 13 | id: string 14 | title: string 15 | writer: Avatar 16 | content: string 17 | nextLink?: string 18 | } & MicroCMSListContent 19 | 20 | describe('`equals`メソッドの動作テスト', () => { 21 | it('gender[equals]female', () => { 22 | const result: string = new MicroCMSFilterQuery() 23 | .equals('gender', 'female') 24 | .$execute() 25 | 26 | expect(result).toBe('gender[equals]female') 27 | }) 28 | 29 | it('writer.gender[equals]female', () => { 30 | const result: string = new MicroCMSFilterQuery() 31 | .equals('writer.gender', 'female') 32 | .$execute() 33 | 34 | expect(result).toBe('writer.gender[equals]female') 35 | }) 36 | }) 37 | 38 | describe('`notEquals`メソッドの動作テスト', () => { 39 | it('gender[not_equals]female', () => { 40 | const result: string = new MicroCMSFilterQuery() 41 | .notEquals('gender', 'female') 42 | .$execute() 43 | 44 | expect(result).toBe('gender[not_equals]female') 45 | }) 46 | }) 47 | 48 | describe('`lessThan`メソッドの動作テスト', () => { 49 | it('createdAt[less_than]2019-11', () => { 50 | const result: string = new MicroCMSFilterQuery() 51 | .lessThan('createdAt', '2019-11') 52 | .$execute() 53 | 54 | expect(result).toBe('createdAt[less_than]2019-11') 55 | }) 56 | }) 57 | 58 | describe('`greaterThan`メソッドの動作テスト', () => { 59 | it('createdAt[greater_than]2019-10', () => { 60 | const result: string = new MicroCMSFilterQuery() 61 | .greaterThan('createdAt', '2019-10') 62 | .$execute() 63 | 64 | expect(result).toBe('createdAt[greater_than]2019-10') 65 | }) 66 | }) 67 | 68 | describe('`contains`メソッドの動作テスト', () => { 69 | it('title[contains]おすすめ', () => { 70 | const result: string = new MicroCMSFilterQuery() 71 | .contains('title', 'おすすめ') 72 | .$execute() 73 | 74 | expect(result).toBe('title[contains]おすすめ') 75 | }) 76 | }) 77 | 78 | describe('`exists`メソッドの動作テスト', () => { 79 | it('nextLink[exists]', () => { 80 | const result: string = new MicroCMSFilterQuery().exists('nextLink').$execute() 81 | 82 | expect(result).toBe('nextLink[exists]') 83 | }) 84 | }) 85 | 86 | describe('`notExists`メソッドの動作テスト', () => { 87 | it('nextLink[not_exists]', () => { 88 | const result: string = new MicroCMSFilterQuery() 89 | .notExists('nextLink') 90 | .$execute() 91 | 92 | expect(result).toBe('nextLink[not_exists]') 93 | }) 94 | }) 95 | 96 | describe('`beginsWith`メソッドの動作テスト', () => { 97 | it('publishedAt[begins_with]2019-11', () => { 98 | const result: string = new MicroCMSFilterQuery() 99 | .beginsWith('publishedAt', '2019-11') 100 | .$execute() 101 | 102 | expect(result).toBe('publishedAt[begins_with]2019-11') 103 | }) 104 | }) 105 | 106 | describe('`or`メソッドの動作テスト', () => { 107 | it('writer[contains]12345678[or]publishedAt[greater_than]2019-10', () => { 108 | const result: string = new MicroCMSFilterQuery() 109 | .contains('writer', '12345678') 110 | .or() 111 | .greaterThan('publishedAt', '2019-10') 112 | .$execute() 113 | 114 | expect(result).toBe( 115 | 'writer[contains]12345678[or]publishedAt[greater_than]2019-10' 116 | ) 117 | }) 118 | }) 119 | 120 | describe('`and`メソッドの動作テスト', () => { 121 | it('writer[contains]12345678[and]publishedAt[greater_than]2019-10', () => { 122 | const result: string = new MicroCMSFilterQuery() 123 | .contains('writer', '12345678') 124 | .and() 125 | .greaterThan('publishedAt', '2019-10') 126 | .$execute() 127 | 128 | expect(result).toBe( 129 | 'writer[contains]12345678[and]publishedAt[greater_than]2019-10' 130 | ) 131 | }) 132 | }) 133 | 134 | describe('`_parentheses`メソッドの動作テスト', () => { 135 | it('(publishedAt[equals]2019-10-01[or]publishedAt[greater_than]2019-10-01)[and](publishedAt[equals]2019-10-31[or]publishedAt[less_than]2019-10-31)', () => { 136 | const result: string = new MicroCMSFilterQuery()._parentheses( 137 | new MicroCMSFilterQuery() 138 | .equals('publishedAt', '2019-10-01') 139 | .or() 140 | .greaterThan('publishedAt', '2019-10-01') 141 | .$execute() 142 | ).and()._parentheses( 143 | new MicroCMSFilterQuery() 144 | .equals('publishedAt', '2019-10-31') 145 | .or() 146 | .lessThan('publishedAt', '2019-10-31') 147 | .$execute() 148 | ).$execute() 149 | 150 | expect(result).toBe( 151 | '(publishedAt[equals]2019-10-01[or]publishedAt[greater_than]2019-10-01)[and](publishedAt[equals]2019-10-31[or]publishedAt[less_than]2019-10-31)' 152 | ) 153 | }) 154 | }) 155 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "microcms-filter-query", 3 | "version": "0.3.3", 4 | "description": "", 5 | "main": "./dist/index.cjs", 6 | "module": "./dist/index.mjs", 7 | "exports": { 8 | "import": "./dist/index.mjs", 9 | "require": "./dist/index.cjs" 10 | }, 11 | "types": "./dist/index.d.ts", 12 | "files": [ 13 | "/dist" 14 | ], 15 | "scripts": { 16 | "build": "run-p build:*", 17 | "build:mjs": "esbuild src/index.ts --bundle --minify --format=esm --outfile=dist/index.mjs", 18 | "build:cjs": "esbuild src/index.ts --bundle --minify --format=cjs --outfile=dist/index.cjs", 19 | "build:types": "tsc --declaration --emitDeclarationOnly --declarationDir './dist'", 20 | "lint": "eslint . --ext .ts", 21 | "format": "prettier --config .prettierrc.json --write './**/*.{ts,js,md}'", 22 | "fix": "pnpm format && pnpm lint --fix", 23 | "type-check": "tsc --noEmit", 24 | "test": "vitest run" 25 | }, 26 | "repository": { 27 | "type": "git", 28 | "url": "git+https://github.com/tsuki-lab/microcms-filter-query.git" 29 | }, 30 | "keywords": [ 31 | "microcms" 32 | ], 33 | "author": "hanetsuki ", 34 | "license": "MIT", 35 | "bugs": { 36 | "url": "https://github.com/tsuki-lab/microcms-filter-query/issues" 37 | }, 38 | "homepage": "https://github.com/tsuki-lab/microcms-filter-query#readme", 39 | "devDependencies": { 40 | "@typescript-eslint/eslint-plugin": "^5.17.0", 41 | "@typescript-eslint/parser": "^5.17.0", 42 | "esbuild": "^0.14.30", 43 | "eslint": "^8.12.0", 44 | "eslint-config-google": "^0.14.0", 45 | "eslint-config-prettier": "^8.5.0", 46 | "microcms-js-sdk": "^2.0.0", 47 | "npm-run-all": "^4.1.5", 48 | "prettier": "^2.6.2", 49 | "typescript": "^4.6.3", 50 | "vitest": "^0.8.2" 51 | }, 52 | "dependencies": { 53 | "type-fest": "^2.12.2" 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | '@typescript-eslint/eslint-plugin': ^5.17.0 5 | '@typescript-eslint/parser': ^5.17.0 6 | esbuild: ^0.14.30 7 | eslint: ^8.12.0 8 | eslint-config-google: ^0.14.0 9 | eslint-config-prettier: ^8.5.0 10 | microcms-js-sdk: ^2.0.0 11 | npm-run-all: ^4.1.5 12 | prettier: ^2.6.2 13 | type-fest: ^2.12.2 14 | typescript: ^4.6.3 15 | vitest: ^0.8.2 16 | 17 | dependencies: 18 | type-fest: 2.12.2 19 | 20 | devDependencies: 21 | '@typescript-eslint/eslint-plugin': 5.17.0_689ff565753ecf7c3328c07fad067df5 22 | '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 23 | esbuild: 0.14.30 24 | eslint: 8.12.0 25 | eslint-config-google: 0.14.0_eslint@8.12.0 26 | eslint-config-prettier: 8.5.0_eslint@8.12.0 27 | microcms-js-sdk: 2.0.0 28 | npm-run-all: 4.1.5 29 | prettier: 2.6.2 30 | typescript: 4.6.3 31 | vitest: 0.8.2 32 | 33 | packages: 34 | 35 | /@eslint/eslintrc/1.2.1: 36 | resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==} 37 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 38 | dependencies: 39 | ajv: 6.12.6 40 | debug: 4.3.4 41 | espree: 9.3.1 42 | globals: 13.13.0 43 | ignore: 5.2.0 44 | import-fresh: 3.3.0 45 | js-yaml: 4.1.0 46 | minimatch: 3.1.2 47 | strip-json-comments: 3.1.1 48 | transitivePeerDependencies: 49 | - supports-color 50 | dev: true 51 | 52 | /@humanwhocodes/config-array/0.9.5: 53 | resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} 54 | engines: {node: '>=10.10.0'} 55 | dependencies: 56 | '@humanwhocodes/object-schema': 1.2.1 57 | debug: 4.3.4 58 | minimatch: 3.1.2 59 | transitivePeerDependencies: 60 | - supports-color 61 | dev: true 62 | 63 | /@humanwhocodes/object-schema/1.2.1: 64 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 65 | dev: true 66 | 67 | /@nodelib/fs.scandir/2.1.5: 68 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 69 | engines: {node: '>= 8'} 70 | dependencies: 71 | '@nodelib/fs.stat': 2.0.5 72 | run-parallel: 1.2.0 73 | dev: true 74 | 75 | /@nodelib/fs.stat/2.0.5: 76 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 77 | engines: {node: '>= 8'} 78 | dev: true 79 | 80 | /@nodelib/fs.walk/1.2.8: 81 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 82 | engines: {node: '>= 8'} 83 | dependencies: 84 | '@nodelib/fs.scandir': 2.1.5 85 | fastq: 1.13.0 86 | dev: true 87 | 88 | /@types/chai-subset/1.3.3: 89 | resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} 90 | dependencies: 91 | '@types/chai': 4.3.0 92 | dev: true 93 | 94 | /@types/chai/4.3.0: 95 | resolution: {integrity: sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==} 96 | dev: true 97 | 98 | /@types/json-schema/7.0.11: 99 | resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} 100 | dev: true 101 | 102 | /@typescript-eslint/eslint-plugin/5.17.0_689ff565753ecf7c3328c07fad067df5: 103 | resolution: {integrity: sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==} 104 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 105 | peerDependencies: 106 | '@typescript-eslint/parser': ^5.0.0 107 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 108 | typescript: '*' 109 | peerDependenciesMeta: 110 | typescript: 111 | optional: true 112 | dependencies: 113 | '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 114 | '@typescript-eslint/scope-manager': 5.17.0 115 | '@typescript-eslint/type-utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 116 | '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 117 | debug: 4.3.4 118 | eslint: 8.12.0 119 | functional-red-black-tree: 1.0.1 120 | ignore: 5.2.0 121 | regexpp: 3.2.0 122 | semver: 7.3.5 123 | tsutils: 3.21.0_typescript@4.6.3 124 | typescript: 4.6.3 125 | transitivePeerDependencies: 126 | - supports-color 127 | dev: true 128 | 129 | /@typescript-eslint/parser/5.17.0_eslint@8.12.0+typescript@4.6.3: 130 | resolution: {integrity: sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==} 131 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 132 | peerDependencies: 133 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 134 | typescript: '*' 135 | peerDependenciesMeta: 136 | typescript: 137 | optional: true 138 | dependencies: 139 | '@typescript-eslint/scope-manager': 5.17.0 140 | '@typescript-eslint/types': 5.17.0 141 | '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3 142 | debug: 4.3.4 143 | eslint: 8.12.0 144 | typescript: 4.6.3 145 | transitivePeerDependencies: 146 | - supports-color 147 | dev: true 148 | 149 | /@typescript-eslint/scope-manager/5.17.0: 150 | resolution: {integrity: sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==} 151 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 152 | dependencies: 153 | '@typescript-eslint/types': 5.17.0 154 | '@typescript-eslint/visitor-keys': 5.17.0 155 | dev: true 156 | 157 | /@typescript-eslint/type-utils/5.17.0_eslint@8.12.0+typescript@4.6.3: 158 | resolution: {integrity: sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==} 159 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 160 | peerDependencies: 161 | eslint: '*' 162 | typescript: '*' 163 | peerDependenciesMeta: 164 | typescript: 165 | optional: true 166 | dependencies: 167 | '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 168 | debug: 4.3.4 169 | eslint: 8.12.0 170 | tsutils: 3.21.0_typescript@4.6.3 171 | typescript: 4.6.3 172 | transitivePeerDependencies: 173 | - supports-color 174 | dev: true 175 | 176 | /@typescript-eslint/types/5.17.0: 177 | resolution: {integrity: sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==} 178 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 179 | dev: true 180 | 181 | /@typescript-eslint/typescript-estree/5.17.0_typescript@4.6.3: 182 | resolution: {integrity: sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==} 183 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 184 | peerDependencies: 185 | typescript: '*' 186 | peerDependenciesMeta: 187 | typescript: 188 | optional: true 189 | dependencies: 190 | '@typescript-eslint/types': 5.17.0 191 | '@typescript-eslint/visitor-keys': 5.17.0 192 | debug: 4.3.4 193 | globby: 11.1.0 194 | is-glob: 4.0.3 195 | semver: 7.3.5 196 | tsutils: 3.21.0_typescript@4.6.3 197 | typescript: 4.6.3 198 | transitivePeerDependencies: 199 | - supports-color 200 | dev: true 201 | 202 | /@typescript-eslint/utils/5.17.0_eslint@8.12.0+typescript@4.6.3: 203 | resolution: {integrity: sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==} 204 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 205 | peerDependencies: 206 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 207 | dependencies: 208 | '@types/json-schema': 7.0.11 209 | '@typescript-eslint/scope-manager': 5.17.0 210 | '@typescript-eslint/types': 5.17.0 211 | '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3 212 | eslint: 8.12.0 213 | eslint-scope: 5.1.1 214 | eslint-utils: 3.0.0_eslint@8.12.0 215 | transitivePeerDependencies: 216 | - supports-color 217 | - typescript 218 | dev: true 219 | 220 | /@typescript-eslint/visitor-keys/5.17.0: 221 | resolution: {integrity: sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==} 222 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 223 | dependencies: 224 | '@typescript-eslint/types': 5.17.0 225 | eslint-visitor-keys: 3.3.0 226 | dev: true 227 | 228 | /acorn-jsx/5.3.2_acorn@8.7.0: 229 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 230 | peerDependencies: 231 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 232 | dependencies: 233 | acorn: 8.7.0 234 | dev: true 235 | 236 | /acorn/8.7.0: 237 | resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} 238 | engines: {node: '>=0.4.0'} 239 | hasBin: true 240 | dev: true 241 | 242 | /ajv/6.12.6: 243 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 244 | dependencies: 245 | fast-deep-equal: 3.1.3 246 | fast-json-stable-stringify: 2.1.0 247 | json-schema-traverse: 0.4.1 248 | uri-js: 4.4.1 249 | dev: true 250 | 251 | /ansi-regex/5.0.1: 252 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 253 | engines: {node: '>=8'} 254 | dev: true 255 | 256 | /ansi-styles/3.2.1: 257 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 258 | engines: {node: '>=4'} 259 | dependencies: 260 | color-convert: 1.9.3 261 | dev: true 262 | 263 | /ansi-styles/4.3.0: 264 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 265 | engines: {node: '>=8'} 266 | dependencies: 267 | color-convert: 2.0.1 268 | dev: true 269 | 270 | /argparse/2.0.1: 271 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 272 | dev: true 273 | 274 | /array-union/2.1.0: 275 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 276 | engines: {node: '>=8'} 277 | dev: true 278 | 279 | /assertion-error/1.1.0: 280 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 281 | dev: true 282 | 283 | /balanced-match/1.0.2: 284 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 285 | dev: true 286 | 287 | /brace-expansion/1.1.11: 288 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 289 | dependencies: 290 | balanced-match: 1.0.2 291 | concat-map: 0.0.1 292 | dev: true 293 | 294 | /braces/3.0.2: 295 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 296 | engines: {node: '>=8'} 297 | dependencies: 298 | fill-range: 7.0.1 299 | dev: true 300 | 301 | /call-bind/1.0.2: 302 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 303 | dependencies: 304 | function-bind: 1.1.1 305 | get-intrinsic: 1.1.1 306 | dev: true 307 | 308 | /callsites/3.1.0: 309 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 310 | engines: {node: '>=6'} 311 | dev: true 312 | 313 | /chai/4.3.6: 314 | resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} 315 | engines: {node: '>=4'} 316 | dependencies: 317 | assertion-error: 1.1.0 318 | check-error: 1.0.2 319 | deep-eql: 3.0.1 320 | get-func-name: 2.0.0 321 | loupe: 2.3.4 322 | pathval: 1.1.1 323 | type-detect: 4.0.8 324 | dev: true 325 | 326 | /chalk/2.4.2: 327 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 328 | engines: {node: '>=4'} 329 | dependencies: 330 | ansi-styles: 3.2.1 331 | escape-string-regexp: 1.0.5 332 | supports-color: 5.5.0 333 | dev: true 334 | 335 | /chalk/4.1.2: 336 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 337 | engines: {node: '>=10'} 338 | dependencies: 339 | ansi-styles: 4.3.0 340 | supports-color: 7.2.0 341 | dev: true 342 | 343 | /check-error/1.0.2: 344 | resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=} 345 | dev: true 346 | 347 | /color-convert/1.9.3: 348 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 349 | dependencies: 350 | color-name: 1.1.3 351 | dev: true 352 | 353 | /color-convert/2.0.1: 354 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 355 | engines: {node: '>=7.0.0'} 356 | dependencies: 357 | color-name: 1.1.4 358 | dev: true 359 | 360 | /color-name/1.1.3: 361 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 362 | dev: true 363 | 364 | /color-name/1.1.4: 365 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 366 | dev: true 367 | 368 | /concat-map/0.0.1: 369 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 370 | dev: true 371 | 372 | /cross-spawn/6.0.5: 373 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} 374 | engines: {node: '>=4.8'} 375 | dependencies: 376 | nice-try: 1.0.5 377 | path-key: 2.0.1 378 | semver: 5.7.1 379 | shebang-command: 1.2.0 380 | which: 1.3.1 381 | dev: true 382 | 383 | /cross-spawn/7.0.3: 384 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 385 | engines: {node: '>= 8'} 386 | dependencies: 387 | path-key: 3.1.1 388 | shebang-command: 2.0.0 389 | which: 2.0.2 390 | dev: true 391 | 392 | /debug/4.3.4: 393 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 394 | engines: {node: '>=6.0'} 395 | peerDependencies: 396 | supports-color: '*' 397 | peerDependenciesMeta: 398 | supports-color: 399 | optional: true 400 | dependencies: 401 | ms: 2.1.2 402 | dev: true 403 | 404 | /deep-eql/3.0.1: 405 | resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} 406 | engines: {node: '>=0.12'} 407 | dependencies: 408 | type-detect: 4.0.8 409 | dev: true 410 | 411 | /deep-is/0.1.4: 412 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 413 | dev: true 414 | 415 | /define-properties/1.1.3: 416 | resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} 417 | engines: {node: '>= 0.4'} 418 | dependencies: 419 | object-keys: 1.1.1 420 | dev: true 421 | 422 | /dir-glob/3.0.1: 423 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 424 | engines: {node: '>=8'} 425 | dependencies: 426 | path-type: 4.0.0 427 | dev: true 428 | 429 | /doctrine/3.0.0: 430 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 431 | engines: {node: '>=6.0.0'} 432 | dependencies: 433 | esutils: 2.0.3 434 | dev: true 435 | 436 | /error-ex/1.3.2: 437 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 438 | dependencies: 439 | is-arrayish: 0.2.1 440 | dev: true 441 | 442 | /es-abstract/1.19.2: 443 | resolution: {integrity: sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==} 444 | engines: {node: '>= 0.4'} 445 | dependencies: 446 | call-bind: 1.0.2 447 | es-to-primitive: 1.2.1 448 | function-bind: 1.1.1 449 | get-intrinsic: 1.1.1 450 | get-symbol-description: 1.0.0 451 | has: 1.0.3 452 | has-symbols: 1.0.3 453 | internal-slot: 1.0.3 454 | is-callable: 1.2.4 455 | is-negative-zero: 2.0.2 456 | is-regex: 1.1.4 457 | is-shared-array-buffer: 1.0.2 458 | is-string: 1.0.7 459 | is-weakref: 1.0.2 460 | object-inspect: 1.12.0 461 | object-keys: 1.1.1 462 | object.assign: 4.1.2 463 | string.prototype.trimend: 1.0.4 464 | string.prototype.trimstart: 1.0.4 465 | unbox-primitive: 1.0.1 466 | dev: true 467 | 468 | /es-to-primitive/1.2.1: 469 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 470 | engines: {node: '>= 0.4'} 471 | dependencies: 472 | is-callable: 1.2.4 473 | is-date-object: 1.0.5 474 | is-symbol: 1.0.4 475 | dev: true 476 | 477 | /esbuild-android-64/0.14.30: 478 | resolution: {integrity: sha512-vdJ7t8A8msPfKpYUGUV/KaTQRiZ0vDa2XSTlzXVkGGVHLKPeb85PBUtYJcEgw3htW3IdX5i1t1IMdQCwJJgNAg==} 479 | engines: {node: '>=12'} 480 | cpu: [x64] 481 | os: [android] 482 | requiresBuild: true 483 | dev: true 484 | optional: true 485 | 486 | /esbuild-android-arm64/0.14.30: 487 | resolution: {integrity: sha512-BdgGfxeA5hBQNErLr7BWJUA8xjflEfyaARICy8e0OJYNSAwDbEzOf8LyiKWSrDcgV129mWhi3VpbNQvOIDEHcg==} 488 | engines: {node: '>=12'} 489 | cpu: [arm64] 490 | os: [android] 491 | requiresBuild: true 492 | dev: true 493 | optional: true 494 | 495 | /esbuild-darwin-64/0.14.30: 496 | resolution: {integrity: sha512-VRaOXMMrsG5n53pl4qFZQdXy2+E0NoLP/QH3aDUI0+bQP+ZHDmbINKcDy2IX7GVFI9kqPS18iJNAs5a6/G2LZg==} 497 | engines: {node: '>=12'} 498 | cpu: [x64] 499 | os: [darwin] 500 | requiresBuild: true 501 | dev: true 502 | optional: true 503 | 504 | /esbuild-darwin-arm64/0.14.30: 505 | resolution: {integrity: sha512-qDez+fHMOrO9Oc9qjt/x+sy09RJVh62kik5tVybKRLmezeV4qczM9/sAYY57YN0aWLdHbcCj2YqJUWYJNsgKnw==} 506 | engines: {node: '>=12'} 507 | cpu: [arm64] 508 | os: [darwin] 509 | requiresBuild: true 510 | dev: true 511 | optional: true 512 | 513 | /esbuild-freebsd-64/0.14.30: 514 | resolution: {integrity: sha512-mec1jENcImVVagddZlGWsdAUwBnzR5cgnhzCxv+9fSMxKbx1uZYLLUAnLPp8m/i934zrumR1xGjJ5VoWdPlI2w==} 515 | engines: {node: '>=12'} 516 | cpu: [x64] 517 | os: [freebsd] 518 | requiresBuild: true 519 | dev: true 520 | optional: true 521 | 522 | /esbuild-freebsd-arm64/0.14.30: 523 | resolution: {integrity: sha512-cpjbTs6Iok/AfeB0JgTzyUJTMStC1SQULmany5nHx6S4GTkSgaAHuJzZO0GcVWqghI4e0YL/bjXAhN5Mn6feNw==} 524 | engines: {node: '>=12'} 525 | cpu: [arm64] 526 | os: [freebsd] 527 | requiresBuild: true 528 | dev: true 529 | optional: true 530 | 531 | /esbuild-linux-32/0.14.30: 532 | resolution: {integrity: sha512-liIONVT4F2kZmOMwtwASqZ8WkIjb5HHBR9HUffdHiuotSTF3CyZO+EJf+Og+SYYuuVIvt0qHNSFjBA/iSESteQ==} 533 | engines: {node: '>=12'} 534 | cpu: [ia32] 535 | os: [linux] 536 | requiresBuild: true 537 | dev: true 538 | optional: true 539 | 540 | /esbuild-linux-64/0.14.30: 541 | resolution: {integrity: sha512-LUnpzoMpRqFON5En4qEj6NWiyH6a1K+Y2qYNKrCy5qPTjDoG/EWeqMz69n8Uv7pRuvDKl3FNGJ1dufTrA5i0sw==} 542 | engines: {node: '>=12'} 543 | cpu: [x64] 544 | os: [linux] 545 | requiresBuild: true 546 | dev: true 547 | optional: true 548 | 549 | /esbuild-linux-arm/0.14.30: 550 | resolution: {integrity: sha512-97T+bbXnpqf7mfIG49UR7ZSJFGgvc22byn74qw3Kx2GDCBSQoVFjyWuKOHGXp8nXk3XYrdFF+mQ8yQ7aNsgQvg==} 551 | engines: {node: '>=12'} 552 | cpu: [arm] 553 | os: [linux] 554 | requiresBuild: true 555 | dev: true 556 | optional: true 557 | 558 | /esbuild-linux-arm64/0.14.30: 559 | resolution: {integrity: sha512-DHZHn6FK5q/KL0fpNT/0jE38Nnyk2rXxKE9WENi95EXtqfOLPgE8tzjTZQNgpr61R95QX4ymQU26ni3IZk8buQ==} 560 | engines: {node: '>=12'} 561 | cpu: [arm64] 562 | os: [linux] 563 | requiresBuild: true 564 | dev: true 565 | optional: true 566 | 567 | /esbuild-linux-mips64le/0.14.30: 568 | resolution: {integrity: sha512-fLUzTFZ7uknC0aPTk7/lM7NmaG/9ZqE3SaHEphcaM009SZK/mDOvZugWi1ss6WGNhk13dUrhkfHcc4FSb9hYhg==} 569 | engines: {node: '>=12'} 570 | cpu: [mips64el] 571 | os: [linux] 572 | requiresBuild: true 573 | dev: true 574 | optional: true 575 | 576 | /esbuild-linux-ppc64le/0.14.30: 577 | resolution: {integrity: sha512-2Oudm2WEfj0dNU9bzIl5L/LrsMEmHWsOsYgJJqu8fDyUDgER+J1d33qz3cUdjsJk7gAENayIxDSpsuCszx0w3A==} 578 | engines: {node: '>=12'} 579 | cpu: [ppc64] 580 | os: [linux] 581 | requiresBuild: true 582 | dev: true 583 | optional: true 584 | 585 | /esbuild-linux-riscv64/0.14.30: 586 | resolution: {integrity: sha512-RPMucPW47rV4t2jlelaE948iCRtbZf5RhifxSwzlpM1Mqdyu99MMNK0w4jFreGTmLN+oGomxIOxD6n+2E/XqHw==} 587 | engines: {node: '>=12'} 588 | cpu: [riscv64] 589 | os: [linux] 590 | requiresBuild: true 591 | dev: true 592 | optional: true 593 | 594 | /esbuild-linux-s390x/0.14.30: 595 | resolution: {integrity: sha512-OZ68r7ok6qO7hdwrwQn2p5jbIRRcUcVaAykB7e0uCA0ODwfeGunILM6phJtq2Oz4dlEEFvd+tSuma3paQKwt+A==} 596 | engines: {node: '>=12'} 597 | cpu: [s390x] 598 | os: [linux] 599 | requiresBuild: true 600 | dev: true 601 | optional: true 602 | 603 | /esbuild-netbsd-64/0.14.30: 604 | resolution: {integrity: sha512-iyejQUKn0TzpPkufq8pSCxOg9NheycQbMbPCmjefTe9wYuUlBt1TcHvdoJnYbQzsAhAh1BNq+s0ycRsIJFZzaQ==} 605 | engines: {node: '>=12'} 606 | cpu: [x64] 607 | os: [netbsd] 608 | requiresBuild: true 609 | dev: true 610 | optional: true 611 | 612 | /esbuild-openbsd-64/0.14.30: 613 | resolution: {integrity: sha512-UyK1MTMcy4j5fH260fsE1o6MVgWNhb62eCK2yCKCRazZv8Nqdc2WiP9ygjWidmEdCDS+A6MuVp9ozk9uoQtQpA==} 614 | engines: {node: '>=12'} 615 | cpu: [x64] 616 | os: [openbsd] 617 | requiresBuild: true 618 | dev: true 619 | optional: true 620 | 621 | /esbuild-sunos-64/0.14.30: 622 | resolution: {integrity: sha512-aQRtRTNKHB4YuG+xXATe5AoRTNY48IJg5vjE8ElxfmjO9+KdX7MHFkTLhlKevCD6rNANtB3qOlSIeAiXTwHNqw==} 623 | engines: {node: '>=12'} 624 | cpu: [x64] 625 | os: [sunos] 626 | requiresBuild: true 627 | dev: true 628 | optional: true 629 | 630 | /esbuild-windows-32/0.14.30: 631 | resolution: {integrity: sha512-9/fb1tPtpacMqxAXp3fGHowUDg/l9dVch5hKmCLEZC6PdGljh6h372zMdJwYfH0Bd5CCPT0Wx95uycBLJiqpXA==} 632 | engines: {node: '>=12'} 633 | cpu: [ia32] 634 | os: [win32] 635 | requiresBuild: true 636 | dev: true 637 | optional: true 638 | 639 | /esbuild-windows-64/0.14.30: 640 | resolution: {integrity: sha512-DHgITeUhPAnN9I5O6QBa1GVyPOhiYCn4S4TtQr7sO4+X0LNyqnlmA1M0qmGkUdDC1QQfjI8uQ4G/whdWb2pWIQ==} 641 | engines: {node: '>=12'} 642 | cpu: [x64] 643 | os: [win32] 644 | requiresBuild: true 645 | dev: true 646 | optional: true 647 | 648 | /esbuild-windows-arm64/0.14.30: 649 | resolution: {integrity: sha512-F1kLyQH7zSgjh5eLxogGZN7C9+KNs9m+s7Q6WZoMmCWT/6j998zlaoECHyM8izJRRfsvw2eZlEa1jO6/IOU1AQ==} 650 | engines: {node: '>=12'} 651 | cpu: [arm64] 652 | os: [win32] 653 | requiresBuild: true 654 | dev: true 655 | optional: true 656 | 657 | /esbuild/0.14.30: 658 | resolution: {integrity: sha512-wCecQSBkIjp2xjuXY+wcXS/PpOQo9rFh4NAKPh4Pm9f3fuLcnxkR0rDzA+mYP88FtXIUcXUyYmaIgfrzRl55jA==} 659 | engines: {node: '>=12'} 660 | hasBin: true 661 | requiresBuild: true 662 | optionalDependencies: 663 | esbuild-android-64: 0.14.30 664 | esbuild-android-arm64: 0.14.30 665 | esbuild-darwin-64: 0.14.30 666 | esbuild-darwin-arm64: 0.14.30 667 | esbuild-freebsd-64: 0.14.30 668 | esbuild-freebsd-arm64: 0.14.30 669 | esbuild-linux-32: 0.14.30 670 | esbuild-linux-64: 0.14.30 671 | esbuild-linux-arm: 0.14.30 672 | esbuild-linux-arm64: 0.14.30 673 | esbuild-linux-mips64le: 0.14.30 674 | esbuild-linux-ppc64le: 0.14.30 675 | esbuild-linux-riscv64: 0.14.30 676 | esbuild-linux-s390x: 0.14.30 677 | esbuild-netbsd-64: 0.14.30 678 | esbuild-openbsd-64: 0.14.30 679 | esbuild-sunos-64: 0.14.30 680 | esbuild-windows-32: 0.14.30 681 | esbuild-windows-64: 0.14.30 682 | esbuild-windows-arm64: 0.14.30 683 | dev: true 684 | 685 | /escape-string-regexp/1.0.5: 686 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} 687 | engines: {node: '>=0.8.0'} 688 | dev: true 689 | 690 | /escape-string-regexp/4.0.0: 691 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 692 | engines: {node: '>=10'} 693 | dev: true 694 | 695 | /eslint-config-google/0.14.0_eslint@8.12.0: 696 | resolution: {integrity: sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==} 697 | engines: {node: '>=0.10.0'} 698 | peerDependencies: 699 | eslint: '>=5.16.0' 700 | dependencies: 701 | eslint: 8.12.0 702 | dev: true 703 | 704 | /eslint-config-prettier/8.5.0_eslint@8.12.0: 705 | resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} 706 | hasBin: true 707 | peerDependencies: 708 | eslint: '>=7.0.0' 709 | dependencies: 710 | eslint: 8.12.0 711 | dev: true 712 | 713 | /eslint-scope/5.1.1: 714 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 715 | engines: {node: '>=8.0.0'} 716 | dependencies: 717 | esrecurse: 4.3.0 718 | estraverse: 4.3.0 719 | dev: true 720 | 721 | /eslint-scope/7.1.1: 722 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 723 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 724 | dependencies: 725 | esrecurse: 4.3.0 726 | estraverse: 5.3.0 727 | dev: true 728 | 729 | /eslint-utils/3.0.0_eslint@8.12.0: 730 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 731 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 732 | peerDependencies: 733 | eslint: '>=5' 734 | dependencies: 735 | eslint: 8.12.0 736 | eslint-visitor-keys: 2.1.0 737 | dev: true 738 | 739 | /eslint-visitor-keys/2.1.0: 740 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 741 | engines: {node: '>=10'} 742 | dev: true 743 | 744 | /eslint-visitor-keys/3.3.0: 745 | resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} 746 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 747 | dev: true 748 | 749 | /eslint/8.12.0: 750 | resolution: {integrity: sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==} 751 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 752 | hasBin: true 753 | dependencies: 754 | '@eslint/eslintrc': 1.2.1 755 | '@humanwhocodes/config-array': 0.9.5 756 | ajv: 6.12.6 757 | chalk: 4.1.2 758 | cross-spawn: 7.0.3 759 | debug: 4.3.4 760 | doctrine: 3.0.0 761 | escape-string-regexp: 4.0.0 762 | eslint-scope: 7.1.1 763 | eslint-utils: 3.0.0_eslint@8.12.0 764 | eslint-visitor-keys: 3.3.0 765 | espree: 9.3.1 766 | esquery: 1.4.0 767 | esutils: 2.0.3 768 | fast-deep-equal: 3.1.3 769 | file-entry-cache: 6.0.1 770 | functional-red-black-tree: 1.0.1 771 | glob-parent: 6.0.2 772 | globals: 13.13.0 773 | ignore: 5.2.0 774 | import-fresh: 3.3.0 775 | imurmurhash: 0.1.4 776 | is-glob: 4.0.3 777 | js-yaml: 4.1.0 778 | json-stable-stringify-without-jsonify: 1.0.1 779 | levn: 0.4.1 780 | lodash.merge: 4.6.2 781 | minimatch: 3.1.2 782 | natural-compare: 1.4.0 783 | optionator: 0.9.1 784 | regexpp: 3.2.0 785 | strip-ansi: 6.0.1 786 | strip-json-comments: 3.1.1 787 | text-table: 0.2.0 788 | v8-compile-cache: 2.3.0 789 | transitivePeerDependencies: 790 | - supports-color 791 | dev: true 792 | 793 | /espree/9.3.1: 794 | resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} 795 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 796 | dependencies: 797 | acorn: 8.7.0 798 | acorn-jsx: 5.3.2_acorn@8.7.0 799 | eslint-visitor-keys: 3.3.0 800 | dev: true 801 | 802 | /esquery/1.4.0: 803 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 804 | engines: {node: '>=0.10'} 805 | dependencies: 806 | estraverse: 5.3.0 807 | dev: true 808 | 809 | /esrecurse/4.3.0: 810 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 811 | engines: {node: '>=4.0'} 812 | dependencies: 813 | estraverse: 5.3.0 814 | dev: true 815 | 816 | /estraverse/4.3.0: 817 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 818 | engines: {node: '>=4.0'} 819 | dev: true 820 | 821 | /estraverse/5.3.0: 822 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 823 | engines: {node: '>=4.0'} 824 | dev: true 825 | 826 | /esutils/2.0.3: 827 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 828 | engines: {node: '>=0.10.0'} 829 | dev: true 830 | 831 | /fast-deep-equal/3.1.3: 832 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 833 | dev: true 834 | 835 | /fast-glob/3.2.11: 836 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 837 | engines: {node: '>=8.6.0'} 838 | dependencies: 839 | '@nodelib/fs.stat': 2.0.5 840 | '@nodelib/fs.walk': 1.2.8 841 | glob-parent: 5.1.2 842 | merge2: 1.4.1 843 | micromatch: 4.0.5 844 | dev: true 845 | 846 | /fast-json-stable-stringify/2.1.0: 847 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 848 | dev: true 849 | 850 | /fast-levenshtein/2.0.6: 851 | resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} 852 | dev: true 853 | 854 | /fastq/1.13.0: 855 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 856 | dependencies: 857 | reusify: 1.0.4 858 | dev: true 859 | 860 | /file-entry-cache/6.0.1: 861 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 862 | engines: {node: ^10.12.0 || >=12.0.0} 863 | dependencies: 864 | flat-cache: 3.0.4 865 | dev: true 866 | 867 | /fill-range/7.0.1: 868 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 869 | engines: {node: '>=8'} 870 | dependencies: 871 | to-regex-range: 5.0.1 872 | dev: true 873 | 874 | /flat-cache/3.0.4: 875 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 876 | engines: {node: ^10.12.0 || >=12.0.0} 877 | dependencies: 878 | flatted: 3.2.5 879 | rimraf: 3.0.2 880 | dev: true 881 | 882 | /flatted/3.2.5: 883 | resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} 884 | dev: true 885 | 886 | /fs.realpath/1.0.0: 887 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} 888 | dev: true 889 | 890 | /fsevents/2.3.2: 891 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 892 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 893 | os: [darwin] 894 | requiresBuild: true 895 | dev: true 896 | optional: true 897 | 898 | /function-bind/1.1.1: 899 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 900 | dev: true 901 | 902 | /functional-red-black-tree/1.0.1: 903 | resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} 904 | dev: true 905 | 906 | /get-func-name/2.0.0: 907 | resolution: {integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=} 908 | dev: true 909 | 910 | /get-intrinsic/1.1.1: 911 | resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} 912 | dependencies: 913 | function-bind: 1.1.1 914 | has: 1.0.3 915 | has-symbols: 1.0.3 916 | dev: true 917 | 918 | /get-symbol-description/1.0.0: 919 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 920 | engines: {node: '>= 0.4'} 921 | dependencies: 922 | call-bind: 1.0.2 923 | get-intrinsic: 1.1.1 924 | dev: true 925 | 926 | /glob-parent/5.1.2: 927 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 928 | engines: {node: '>= 6'} 929 | dependencies: 930 | is-glob: 4.0.3 931 | dev: true 932 | 933 | /glob-parent/6.0.2: 934 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 935 | engines: {node: '>=10.13.0'} 936 | dependencies: 937 | is-glob: 4.0.3 938 | dev: true 939 | 940 | /glob/7.2.0: 941 | resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} 942 | dependencies: 943 | fs.realpath: 1.0.0 944 | inflight: 1.0.6 945 | inherits: 2.0.4 946 | minimatch: 3.1.2 947 | once: 1.4.0 948 | path-is-absolute: 1.0.1 949 | dev: true 950 | 951 | /globals/13.13.0: 952 | resolution: {integrity: sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==} 953 | engines: {node: '>=8'} 954 | dependencies: 955 | type-fest: 0.20.2 956 | dev: true 957 | 958 | /globby/11.1.0: 959 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 960 | engines: {node: '>=10'} 961 | dependencies: 962 | array-union: 2.1.0 963 | dir-glob: 3.0.1 964 | fast-glob: 3.2.11 965 | ignore: 5.2.0 966 | merge2: 1.4.1 967 | slash: 3.0.0 968 | dev: true 969 | 970 | /graceful-fs/4.2.9: 971 | resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} 972 | dev: true 973 | 974 | /has-bigints/1.0.1: 975 | resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} 976 | dev: true 977 | 978 | /has-flag/3.0.0: 979 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 980 | engines: {node: '>=4'} 981 | dev: true 982 | 983 | /has-flag/4.0.0: 984 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 985 | engines: {node: '>=8'} 986 | dev: true 987 | 988 | /has-symbols/1.0.3: 989 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 990 | engines: {node: '>= 0.4'} 991 | dev: true 992 | 993 | /has-tostringtag/1.0.0: 994 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 995 | engines: {node: '>= 0.4'} 996 | dependencies: 997 | has-symbols: 1.0.3 998 | dev: true 999 | 1000 | /has/1.0.3: 1001 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1002 | engines: {node: '>= 0.4.0'} 1003 | dependencies: 1004 | function-bind: 1.1.1 1005 | dev: true 1006 | 1007 | /hosted-git-info/2.8.9: 1008 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1009 | dev: true 1010 | 1011 | /ignore/5.2.0: 1012 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} 1013 | engines: {node: '>= 4'} 1014 | dev: true 1015 | 1016 | /import-fresh/3.3.0: 1017 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1018 | engines: {node: '>=6'} 1019 | dependencies: 1020 | parent-module: 1.0.1 1021 | resolve-from: 4.0.0 1022 | dev: true 1023 | 1024 | /imurmurhash/0.1.4: 1025 | resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} 1026 | engines: {node: '>=0.8.19'} 1027 | dev: true 1028 | 1029 | /inflight/1.0.6: 1030 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 1031 | dependencies: 1032 | once: 1.4.0 1033 | wrappy: 1.0.2 1034 | dev: true 1035 | 1036 | /inherits/2.0.4: 1037 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1038 | dev: true 1039 | 1040 | /internal-slot/1.0.3: 1041 | resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} 1042 | engines: {node: '>= 0.4'} 1043 | dependencies: 1044 | get-intrinsic: 1.1.1 1045 | has: 1.0.3 1046 | side-channel: 1.0.4 1047 | dev: true 1048 | 1049 | /is-arrayish/0.2.1: 1050 | resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} 1051 | dev: true 1052 | 1053 | /is-bigint/1.0.4: 1054 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1055 | dependencies: 1056 | has-bigints: 1.0.1 1057 | dev: true 1058 | 1059 | /is-boolean-object/1.1.2: 1060 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1061 | engines: {node: '>= 0.4'} 1062 | dependencies: 1063 | call-bind: 1.0.2 1064 | has-tostringtag: 1.0.0 1065 | dev: true 1066 | 1067 | /is-callable/1.2.4: 1068 | resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} 1069 | engines: {node: '>= 0.4'} 1070 | dev: true 1071 | 1072 | /is-core-module/2.8.1: 1073 | resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} 1074 | dependencies: 1075 | has: 1.0.3 1076 | dev: true 1077 | 1078 | /is-date-object/1.0.5: 1079 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1080 | engines: {node: '>= 0.4'} 1081 | dependencies: 1082 | has-tostringtag: 1.0.0 1083 | dev: true 1084 | 1085 | /is-extglob/2.1.1: 1086 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} 1087 | engines: {node: '>=0.10.0'} 1088 | dev: true 1089 | 1090 | /is-glob/4.0.3: 1091 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1092 | engines: {node: '>=0.10.0'} 1093 | dependencies: 1094 | is-extglob: 2.1.1 1095 | dev: true 1096 | 1097 | /is-negative-zero/2.0.2: 1098 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 1099 | engines: {node: '>= 0.4'} 1100 | dev: true 1101 | 1102 | /is-number-object/1.0.7: 1103 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1104 | engines: {node: '>= 0.4'} 1105 | dependencies: 1106 | has-tostringtag: 1.0.0 1107 | dev: true 1108 | 1109 | /is-number/7.0.0: 1110 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1111 | engines: {node: '>=0.12.0'} 1112 | dev: true 1113 | 1114 | /is-regex/1.1.4: 1115 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1116 | engines: {node: '>= 0.4'} 1117 | dependencies: 1118 | call-bind: 1.0.2 1119 | has-tostringtag: 1.0.0 1120 | dev: true 1121 | 1122 | /is-shared-array-buffer/1.0.2: 1123 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 1124 | dependencies: 1125 | call-bind: 1.0.2 1126 | dev: true 1127 | 1128 | /is-string/1.0.7: 1129 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1130 | engines: {node: '>= 0.4'} 1131 | dependencies: 1132 | has-tostringtag: 1.0.0 1133 | dev: true 1134 | 1135 | /is-symbol/1.0.4: 1136 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1137 | engines: {node: '>= 0.4'} 1138 | dependencies: 1139 | has-symbols: 1.0.3 1140 | dev: true 1141 | 1142 | /is-weakref/1.0.2: 1143 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1144 | dependencies: 1145 | call-bind: 1.0.2 1146 | dev: true 1147 | 1148 | /isexe/2.0.0: 1149 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} 1150 | dev: true 1151 | 1152 | /js-yaml/4.1.0: 1153 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1154 | hasBin: true 1155 | dependencies: 1156 | argparse: 2.0.1 1157 | dev: true 1158 | 1159 | /json-parse-better-errors/1.0.2: 1160 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 1161 | dev: true 1162 | 1163 | /json-schema-traverse/0.4.1: 1164 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1165 | dev: true 1166 | 1167 | /json-stable-stringify-without-jsonify/1.0.1: 1168 | resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} 1169 | dev: true 1170 | 1171 | /levn/0.4.1: 1172 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1173 | engines: {node: '>= 0.8.0'} 1174 | dependencies: 1175 | prelude-ls: 1.2.1 1176 | type-check: 0.4.0 1177 | dev: true 1178 | 1179 | /load-json-file/4.0.0: 1180 | resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=} 1181 | engines: {node: '>=4'} 1182 | dependencies: 1183 | graceful-fs: 4.2.9 1184 | parse-json: 4.0.0 1185 | pify: 3.0.0 1186 | strip-bom: 3.0.0 1187 | dev: true 1188 | 1189 | /local-pkg/0.4.1: 1190 | resolution: {integrity: sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==} 1191 | engines: {node: '>=14'} 1192 | dev: true 1193 | 1194 | /lodash.merge/4.6.2: 1195 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1196 | dev: true 1197 | 1198 | /loupe/2.3.4: 1199 | resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} 1200 | dependencies: 1201 | get-func-name: 2.0.0 1202 | dev: true 1203 | 1204 | /lru-cache/6.0.0: 1205 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1206 | engines: {node: '>=10'} 1207 | dependencies: 1208 | yallist: 4.0.0 1209 | dev: true 1210 | 1211 | /memorystream/0.3.1: 1212 | resolution: {integrity: sha1-htcJCzDORV1j+64S3aUaR93K+bI=} 1213 | engines: {node: '>= 0.10.0'} 1214 | dev: true 1215 | 1216 | /merge2/1.4.1: 1217 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1218 | engines: {node: '>= 8'} 1219 | dev: true 1220 | 1221 | /microcms-js-sdk/2.0.0: 1222 | resolution: {integrity: sha512-w1umayKo+rEWMhpiaNI0UnBo2dclgM8u4ZBiDoZPYJsxx8hfLFjsGbXKjWBZXOY0E9A0L6A8Qaraw0NHWXOBmA==} 1223 | dependencies: 1224 | node-fetch: 2.6.7 1225 | qs: 6.10.3 1226 | transitivePeerDependencies: 1227 | - encoding 1228 | dev: true 1229 | 1230 | /micromatch/4.0.5: 1231 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1232 | engines: {node: '>=8.6'} 1233 | dependencies: 1234 | braces: 3.0.2 1235 | picomatch: 2.3.1 1236 | dev: true 1237 | 1238 | /minimatch/3.1.2: 1239 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1240 | dependencies: 1241 | brace-expansion: 1.1.11 1242 | dev: true 1243 | 1244 | /ms/2.1.2: 1245 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1246 | dev: true 1247 | 1248 | /nanoid/3.3.2: 1249 | resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==} 1250 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1251 | hasBin: true 1252 | dev: true 1253 | 1254 | /natural-compare/1.4.0: 1255 | resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} 1256 | dev: true 1257 | 1258 | /nice-try/1.0.5: 1259 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 1260 | dev: true 1261 | 1262 | /node-fetch/2.6.7: 1263 | resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} 1264 | engines: {node: 4.x || >=6.0.0} 1265 | peerDependencies: 1266 | encoding: ^0.1.0 1267 | peerDependenciesMeta: 1268 | encoding: 1269 | optional: true 1270 | dependencies: 1271 | whatwg-url: 5.0.0 1272 | dev: true 1273 | 1274 | /normalize-package-data/2.5.0: 1275 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1276 | dependencies: 1277 | hosted-git-info: 2.8.9 1278 | resolve: 1.22.0 1279 | semver: 5.7.1 1280 | validate-npm-package-license: 3.0.4 1281 | dev: true 1282 | 1283 | /npm-run-all/4.1.5: 1284 | resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} 1285 | engines: {node: '>= 4'} 1286 | hasBin: true 1287 | dependencies: 1288 | ansi-styles: 3.2.1 1289 | chalk: 2.4.2 1290 | cross-spawn: 6.0.5 1291 | memorystream: 0.3.1 1292 | minimatch: 3.1.2 1293 | pidtree: 0.3.1 1294 | read-pkg: 3.0.0 1295 | shell-quote: 1.7.3 1296 | string.prototype.padend: 3.1.3 1297 | dev: true 1298 | 1299 | /object-inspect/1.12.0: 1300 | resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} 1301 | dev: true 1302 | 1303 | /object-keys/1.1.1: 1304 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1305 | engines: {node: '>= 0.4'} 1306 | dev: true 1307 | 1308 | /object.assign/4.1.2: 1309 | resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} 1310 | engines: {node: '>= 0.4'} 1311 | dependencies: 1312 | call-bind: 1.0.2 1313 | define-properties: 1.1.3 1314 | has-symbols: 1.0.3 1315 | object-keys: 1.1.1 1316 | dev: true 1317 | 1318 | /once/1.4.0: 1319 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} 1320 | dependencies: 1321 | wrappy: 1.0.2 1322 | dev: true 1323 | 1324 | /optionator/0.9.1: 1325 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 1326 | engines: {node: '>= 0.8.0'} 1327 | dependencies: 1328 | deep-is: 0.1.4 1329 | fast-levenshtein: 2.0.6 1330 | levn: 0.4.1 1331 | prelude-ls: 1.2.1 1332 | type-check: 0.4.0 1333 | word-wrap: 1.2.3 1334 | dev: true 1335 | 1336 | /parent-module/1.0.1: 1337 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1338 | engines: {node: '>=6'} 1339 | dependencies: 1340 | callsites: 3.1.0 1341 | dev: true 1342 | 1343 | /parse-json/4.0.0: 1344 | resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=} 1345 | engines: {node: '>=4'} 1346 | dependencies: 1347 | error-ex: 1.3.2 1348 | json-parse-better-errors: 1.0.2 1349 | dev: true 1350 | 1351 | /path-is-absolute/1.0.1: 1352 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} 1353 | engines: {node: '>=0.10.0'} 1354 | dev: true 1355 | 1356 | /path-key/2.0.1: 1357 | resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=} 1358 | engines: {node: '>=4'} 1359 | dev: true 1360 | 1361 | /path-key/3.1.1: 1362 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1363 | engines: {node: '>=8'} 1364 | dev: true 1365 | 1366 | /path-parse/1.0.7: 1367 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1368 | dev: true 1369 | 1370 | /path-type/3.0.0: 1371 | resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} 1372 | engines: {node: '>=4'} 1373 | dependencies: 1374 | pify: 3.0.0 1375 | dev: true 1376 | 1377 | /path-type/4.0.0: 1378 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1379 | engines: {node: '>=8'} 1380 | dev: true 1381 | 1382 | /pathval/1.1.1: 1383 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 1384 | dev: true 1385 | 1386 | /picocolors/1.0.0: 1387 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1388 | dev: true 1389 | 1390 | /picomatch/2.3.1: 1391 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1392 | engines: {node: '>=8.6'} 1393 | dev: true 1394 | 1395 | /pidtree/0.3.1: 1396 | resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} 1397 | engines: {node: '>=0.10'} 1398 | hasBin: true 1399 | dev: true 1400 | 1401 | /pify/3.0.0: 1402 | resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} 1403 | engines: {node: '>=4'} 1404 | dev: true 1405 | 1406 | /postcss/8.4.12: 1407 | resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==} 1408 | engines: {node: ^10 || ^12 || >=14} 1409 | dependencies: 1410 | nanoid: 3.3.2 1411 | picocolors: 1.0.0 1412 | source-map-js: 1.0.2 1413 | dev: true 1414 | 1415 | /prelude-ls/1.2.1: 1416 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1417 | engines: {node: '>= 0.8.0'} 1418 | dev: true 1419 | 1420 | /prettier/2.6.2: 1421 | resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==} 1422 | engines: {node: '>=10.13.0'} 1423 | hasBin: true 1424 | dev: true 1425 | 1426 | /punycode/2.1.1: 1427 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 1428 | engines: {node: '>=6'} 1429 | dev: true 1430 | 1431 | /qs/6.10.3: 1432 | resolution: {integrity: sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==} 1433 | engines: {node: '>=0.6'} 1434 | dependencies: 1435 | side-channel: 1.0.4 1436 | dev: true 1437 | 1438 | /queue-microtask/1.2.3: 1439 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1440 | dev: true 1441 | 1442 | /read-pkg/3.0.0: 1443 | resolution: {integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=} 1444 | engines: {node: '>=4'} 1445 | dependencies: 1446 | load-json-file: 4.0.0 1447 | normalize-package-data: 2.5.0 1448 | path-type: 3.0.0 1449 | dev: true 1450 | 1451 | /regexpp/3.2.0: 1452 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 1453 | engines: {node: '>=8'} 1454 | dev: true 1455 | 1456 | /resolve-from/4.0.0: 1457 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1458 | engines: {node: '>=4'} 1459 | dev: true 1460 | 1461 | /resolve/1.22.0: 1462 | resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} 1463 | hasBin: true 1464 | dependencies: 1465 | is-core-module: 2.8.1 1466 | path-parse: 1.0.7 1467 | supports-preserve-symlinks-flag: 1.0.0 1468 | dev: true 1469 | 1470 | /reusify/1.0.4: 1471 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1472 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1473 | dev: true 1474 | 1475 | /rimraf/3.0.2: 1476 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1477 | hasBin: true 1478 | dependencies: 1479 | glob: 7.2.0 1480 | dev: true 1481 | 1482 | /rollup/2.70.1: 1483 | resolution: {integrity: sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==} 1484 | engines: {node: '>=10.0.0'} 1485 | hasBin: true 1486 | optionalDependencies: 1487 | fsevents: 2.3.2 1488 | dev: true 1489 | 1490 | /run-parallel/1.2.0: 1491 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1492 | dependencies: 1493 | queue-microtask: 1.2.3 1494 | dev: true 1495 | 1496 | /semver/5.7.1: 1497 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 1498 | hasBin: true 1499 | dev: true 1500 | 1501 | /semver/7.3.5: 1502 | resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} 1503 | engines: {node: '>=10'} 1504 | hasBin: true 1505 | dependencies: 1506 | lru-cache: 6.0.0 1507 | dev: true 1508 | 1509 | /shebang-command/1.2.0: 1510 | resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=} 1511 | engines: {node: '>=0.10.0'} 1512 | dependencies: 1513 | shebang-regex: 1.0.0 1514 | dev: true 1515 | 1516 | /shebang-command/2.0.0: 1517 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1518 | engines: {node: '>=8'} 1519 | dependencies: 1520 | shebang-regex: 3.0.0 1521 | dev: true 1522 | 1523 | /shebang-regex/1.0.0: 1524 | resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=} 1525 | engines: {node: '>=0.10.0'} 1526 | dev: true 1527 | 1528 | /shebang-regex/3.0.0: 1529 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1530 | engines: {node: '>=8'} 1531 | dev: true 1532 | 1533 | /shell-quote/1.7.3: 1534 | resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} 1535 | dev: true 1536 | 1537 | /side-channel/1.0.4: 1538 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 1539 | dependencies: 1540 | call-bind: 1.0.2 1541 | get-intrinsic: 1.1.1 1542 | object-inspect: 1.12.0 1543 | dev: true 1544 | 1545 | /slash/3.0.0: 1546 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1547 | engines: {node: '>=8'} 1548 | dev: true 1549 | 1550 | /source-map-js/1.0.2: 1551 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1552 | engines: {node: '>=0.10.0'} 1553 | dev: true 1554 | 1555 | /spdx-correct/3.1.1: 1556 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 1557 | dependencies: 1558 | spdx-expression-parse: 3.0.1 1559 | spdx-license-ids: 3.0.11 1560 | dev: true 1561 | 1562 | /spdx-exceptions/2.3.0: 1563 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 1564 | dev: true 1565 | 1566 | /spdx-expression-parse/3.0.1: 1567 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 1568 | dependencies: 1569 | spdx-exceptions: 2.3.0 1570 | spdx-license-ids: 3.0.11 1571 | dev: true 1572 | 1573 | /spdx-license-ids/3.0.11: 1574 | resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} 1575 | dev: true 1576 | 1577 | /string.prototype.padend/3.1.3: 1578 | resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==} 1579 | engines: {node: '>= 0.4'} 1580 | dependencies: 1581 | call-bind: 1.0.2 1582 | define-properties: 1.1.3 1583 | es-abstract: 1.19.2 1584 | dev: true 1585 | 1586 | /string.prototype.trimend/1.0.4: 1587 | resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} 1588 | dependencies: 1589 | call-bind: 1.0.2 1590 | define-properties: 1.1.3 1591 | dev: true 1592 | 1593 | /string.prototype.trimstart/1.0.4: 1594 | resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} 1595 | dependencies: 1596 | call-bind: 1.0.2 1597 | define-properties: 1.1.3 1598 | dev: true 1599 | 1600 | /strip-ansi/6.0.1: 1601 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1602 | engines: {node: '>=8'} 1603 | dependencies: 1604 | ansi-regex: 5.0.1 1605 | dev: true 1606 | 1607 | /strip-bom/3.0.0: 1608 | resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} 1609 | engines: {node: '>=4'} 1610 | dev: true 1611 | 1612 | /strip-json-comments/3.1.1: 1613 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1614 | engines: {node: '>=8'} 1615 | dev: true 1616 | 1617 | /supports-color/5.5.0: 1618 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1619 | engines: {node: '>=4'} 1620 | dependencies: 1621 | has-flag: 3.0.0 1622 | dev: true 1623 | 1624 | /supports-color/7.2.0: 1625 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1626 | engines: {node: '>=8'} 1627 | dependencies: 1628 | has-flag: 4.0.0 1629 | dev: true 1630 | 1631 | /supports-preserve-symlinks-flag/1.0.0: 1632 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1633 | engines: {node: '>= 0.4'} 1634 | dev: true 1635 | 1636 | /text-table/0.2.0: 1637 | resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} 1638 | dev: true 1639 | 1640 | /tinypool/0.1.2: 1641 | resolution: {integrity: sha512-fvtYGXoui2RpeMILfkvGIgOVkzJEGediv8UJt7TxdAOY8pnvUkFg/fkvqTfXG9Acc9S17Cnn1S4osDc2164guA==} 1642 | engines: {node: '>=14.0.0'} 1643 | dev: true 1644 | 1645 | /tinyspy/0.3.0: 1646 | resolution: {integrity: sha512-c5uFHqtUp74R2DJE3/Efg0mH5xicmgziaQXMm/LvuuZn3RdpADH32aEGDRyCzObXT1DNfwDMqRQ/Drh1MlO12g==} 1647 | engines: {node: '>=14.0.0'} 1648 | dev: true 1649 | 1650 | /to-regex-range/5.0.1: 1651 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1652 | engines: {node: '>=8.0'} 1653 | dependencies: 1654 | is-number: 7.0.0 1655 | dev: true 1656 | 1657 | /tr46/0.0.3: 1658 | resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=} 1659 | dev: true 1660 | 1661 | /tslib/1.14.1: 1662 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 1663 | dev: true 1664 | 1665 | /tsutils/3.21.0_typescript@4.6.3: 1666 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 1667 | engines: {node: '>= 6'} 1668 | peerDependencies: 1669 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 1670 | dependencies: 1671 | tslib: 1.14.1 1672 | typescript: 4.6.3 1673 | dev: true 1674 | 1675 | /type-check/0.4.0: 1676 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1677 | engines: {node: '>= 0.8.0'} 1678 | dependencies: 1679 | prelude-ls: 1.2.1 1680 | dev: true 1681 | 1682 | /type-detect/4.0.8: 1683 | resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} 1684 | engines: {node: '>=4'} 1685 | dev: true 1686 | 1687 | /type-fest/0.20.2: 1688 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1689 | engines: {node: '>=10'} 1690 | dev: true 1691 | 1692 | /type-fest/2.12.2: 1693 | resolution: {integrity: sha512-qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ==} 1694 | engines: {node: '>=12.20'} 1695 | dev: false 1696 | 1697 | /typescript/4.6.3: 1698 | resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==} 1699 | engines: {node: '>=4.2.0'} 1700 | hasBin: true 1701 | dev: true 1702 | 1703 | /unbox-primitive/1.0.1: 1704 | resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} 1705 | dependencies: 1706 | function-bind: 1.1.1 1707 | has-bigints: 1.0.1 1708 | has-symbols: 1.0.3 1709 | which-boxed-primitive: 1.0.2 1710 | dev: true 1711 | 1712 | /uri-js/4.4.1: 1713 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1714 | dependencies: 1715 | punycode: 2.1.1 1716 | dev: true 1717 | 1718 | /v8-compile-cache/2.3.0: 1719 | resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} 1720 | dev: true 1721 | 1722 | /validate-npm-package-license/3.0.4: 1723 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 1724 | dependencies: 1725 | spdx-correct: 3.1.1 1726 | spdx-expression-parse: 3.0.1 1727 | dev: true 1728 | 1729 | /vite/2.9.1: 1730 | resolution: {integrity: sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==} 1731 | engines: {node: '>=12.2.0'} 1732 | hasBin: true 1733 | peerDependencies: 1734 | less: '*' 1735 | sass: '*' 1736 | stylus: '*' 1737 | peerDependenciesMeta: 1738 | less: 1739 | optional: true 1740 | sass: 1741 | optional: true 1742 | stylus: 1743 | optional: true 1744 | dependencies: 1745 | esbuild: 0.14.30 1746 | postcss: 8.4.12 1747 | resolve: 1.22.0 1748 | rollup: 2.70.1 1749 | optionalDependencies: 1750 | fsevents: 2.3.2 1751 | dev: true 1752 | 1753 | /vitest/0.8.2: 1754 | resolution: {integrity: sha512-dTFDJl2F3pkWy1tcE3M29LasklhgtP7M88kT7AJcAurX7nCl/eWu1PQeSzjzWQyUbDq2p8jqdoLETd7MDeibcA==} 1755 | engines: {node: '>=v14.16.0'} 1756 | hasBin: true 1757 | peerDependencies: 1758 | '@vitest/ui': '*' 1759 | c8: '*' 1760 | happy-dom: '*' 1761 | jsdom: '*' 1762 | peerDependenciesMeta: 1763 | '@vitest/ui': 1764 | optional: true 1765 | c8: 1766 | optional: true 1767 | happy-dom: 1768 | optional: true 1769 | jsdom: 1770 | optional: true 1771 | dependencies: 1772 | '@types/chai': 4.3.0 1773 | '@types/chai-subset': 1.3.3 1774 | chai: 4.3.6 1775 | local-pkg: 0.4.1 1776 | tinypool: 0.1.2 1777 | tinyspy: 0.3.0 1778 | vite: 2.9.1 1779 | transitivePeerDependencies: 1780 | - less 1781 | - sass 1782 | - stylus 1783 | dev: true 1784 | 1785 | /webidl-conversions/3.0.1: 1786 | resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=} 1787 | dev: true 1788 | 1789 | /whatwg-url/5.0.0: 1790 | resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=} 1791 | dependencies: 1792 | tr46: 0.0.3 1793 | webidl-conversions: 3.0.1 1794 | dev: true 1795 | 1796 | /which-boxed-primitive/1.0.2: 1797 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 1798 | dependencies: 1799 | is-bigint: 1.0.4 1800 | is-boolean-object: 1.1.2 1801 | is-number-object: 1.0.7 1802 | is-string: 1.0.7 1803 | is-symbol: 1.0.4 1804 | dev: true 1805 | 1806 | /which/1.3.1: 1807 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 1808 | hasBin: true 1809 | dependencies: 1810 | isexe: 2.0.0 1811 | dev: true 1812 | 1813 | /which/2.0.2: 1814 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1815 | engines: {node: '>= 8'} 1816 | hasBin: true 1817 | dependencies: 1818 | isexe: 2.0.0 1819 | dev: true 1820 | 1821 | /word-wrap/1.2.3: 1822 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 1823 | engines: {node: '>=0.10.0'} 1824 | dev: true 1825 | 1826 | /wrappy/1.0.2: 1827 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} 1828 | dev: true 1829 | 1830 | /yallist/4.0.0: 1831 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1832 | dev: true 1833 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export { MicroCMSFilterQuery } from './main' 2 | export type { FilterQuery } from './types' 3 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { FilterQuery } from './types' 2 | 3 | type FilterQueryReturnType = { 4 | and: () => MicroCMSFilterQuery 5 | or: () => MicroCMSFilterQuery 6 | $execute: () => string 7 | } 8 | 9 | /** 10 | * create to `filters` query params for microcms 11 | * 12 | * @export 13 | * @class MicroCMSFilterQuery 14 | * @implements {MicroCMSFilterQueryType} 15 | */ 16 | export class MicroCMSFilterQuery<_T extends object = any, T = FilterQuery<_T>> { 17 | private _query = '' 18 | 19 | private connectFn: FilterQueryReturnType = { 20 | and: () => { 21 | this._query += `[and]` 22 | return this 23 | }, 24 | or: () => { 25 | this._query += `[or]` 26 | return this 27 | }, 28 | $execute: () => { 29 | return this._query 30 | }, 31 | } 32 | 33 | /** 34 | * add query for `equals` 35 | * 36 | * @param {K} fieldId 37 | * @param {U} value 38 | * @memberof MicroCMSFilterQuery 39 | * @return {ConjunctFunction} 40 | */ 41 | public equals = ( 42 | fieldId: K, 43 | value: U 44 | ): FilterQueryReturnType => { 45 | this._query += `${fieldId}[equals]${value}` 46 | return this.connectFn 47 | } 48 | 49 | /** 50 | * add query for `not_equals` 51 | * 52 | * @param {K} fieldId 53 | * @param {U} value 54 | * @memberof MicroCMSFilterQuery 55 | * @return {ConjunctFunction} 56 | */ 57 | public notEquals = ( 58 | fieldId: K, 59 | value: U 60 | ): FilterQueryReturnType => { 61 | this._query += `${fieldId}[not_equals]${value}` 62 | return this.connectFn 63 | } 64 | 65 | /** 66 | * add query for `less_than` 67 | * 68 | * @param {K} fieldId 69 | * @param {U} value 70 | * @memberof MicroCMSFilterQuery 71 | * @return {ConjunctFunction} 72 | */ 73 | public lessThan = ( 74 | fieldId: K, 75 | value: U 76 | ): FilterQueryReturnType => { 77 | this._query += `${fieldId}[less_than]${value}` 78 | return this.connectFn 79 | } 80 | 81 | /** 82 | * add query for `greater_than` 83 | * 84 | * @param {K} fieldId 85 | * @param {U} value 86 | * @memberof MicroCMSFilterQuery 87 | * @return {ConjunctFunction} 88 | */ 89 | public greaterThan = ( 90 | fieldId: K, 91 | value: U 92 | ): FilterQueryReturnType => { 93 | this._query += `${fieldId}[greater_than]${value}` 94 | return this.connectFn 95 | } 96 | 97 | /** 98 | * add query for `contains` 99 | * 100 | * @param {K} fieldId 101 | * @param {U} value 102 | * @memberof MicroCMSFilterQuery 103 | * @return {ConjunctFunction} 104 | */ 105 | public contains = ( 106 | fieldId: K, 107 | value: U 108 | ): FilterQueryReturnType => { 109 | this._query += `${fieldId}[contains]${value}` 110 | return this.connectFn 111 | } 112 | 113 | /** 114 | * add query for `begins_with` 115 | * 116 | * @param {K} fieldId 117 | * @param {U} value 118 | * @memberof MicroCMSFilterQuery 119 | * @return {ConjunctFunction} 120 | */ 121 | public beginsWith = ( 122 | fieldId: K, 123 | value: U 124 | ): FilterQueryReturnType => { 125 | this._query += `${fieldId}[begins_with]${value}` 126 | return this.connectFn 127 | } 128 | 129 | /** 130 | * add query for `not_exists` 131 | * 132 | * @param {K} fieldId 133 | * @memberof MicroCMSFilterQuery 134 | * @return {ConjunctFunction} 135 | */ 136 | public notExists = ( 137 | fieldId: K 138 | ): FilterQueryReturnType => { 139 | this._query += `${fieldId}[not_exists]` 140 | return this.connectFn 141 | } 142 | 143 | /** 144 | * add query for `exists` 145 | * 146 | * @param {K} fieldId 147 | * @memberof MicroCMSFilterQuery 148 | * @return {ConjunctFunction} 149 | */ 150 | public exists = (fieldId: K): FilterQueryReturnType => { 151 | this._query += `${fieldId}[exists]` 152 | return this.connectFn 153 | } 154 | 155 | /** 156 | * add to arg `query` between `(`,`)` 157 | * 158 | * @param {string} query 159 | * @memberof MicroCMSFilterQuery 160 | * @return {ConjunctFunction} 161 | */ 162 | public _parentheses = (query: string): FilterQueryReturnType => { 163 | this._query += `(${query})` 164 | return this.connectFn 165 | } 166 | } 167 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | import { UnionToIntersection } from 'type-fest' 2 | 3 | type ConvertObjectToPrimitive> = { 4 | [K in keyof T]: T[K] extends Exclude ? string : T[K] 5 | } 6 | 7 | type PrependProperty, P extends string> = { 8 | [K in Extract as `${P}.${K}`]: T[K] 9 | } 10 | 11 | type ProcessObject> = { 12 | [K in Extract as T[K] extends Exclude 13 | ? K 14 | : never]: T[K] extends Exclude 15 | ? PrependProperty, K> 16 | : never 17 | } 18 | 19 | type InternalFilterQuery> = 20 | ConvertObjectToPrimitive & 21 | UnionToIntersection[keyof ProcessObject]> 22 | 23 | type FilterQuery> = { 24 | [K in keyof InternalFilterQuery]: InternalFilterQuery[K] 25 | } 26 | 27 | export { FilterQuery } 28 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "CommonJS", 5 | "declaration": true, 6 | "strict": true, 7 | "lib": ["ES2020"] 8 | }, 9 | "include": ["./src/**/*"], 10 | "exclude": ["node_modules"] 11 | } --------------------------------------------------------------------------------