@smbcloud / cli / commits / 1b4de5f

Publish to npm

Seto Elkahfi committed Apr 6, 2023 at 23:52 UTC 1b4de5f6496b45808779dba1cafc972a05a84dcf
8 files changed +2055
.github/workflows/release-npm.yml new
+139
@@ -0,0 +1,139 @@
1 +name: Publish to npm
2 +
3 +on:
4 + push:
5 + tags:
6 + - "v*.*.*"
7 +
8 +jobs:
9 + publish-npm-binaries:
10 + name: Publish NPM packages
11 + runs-on: ${{ matrix.build.os }}
12 + strategy:
13 + fail-fast: false
14 + matrix:
15 + build:
16 + - {
17 + NAME: linux-x64-glibc,
18 + OS: ubuntu-20.04,
19 + TOOLCHAIN: stable,
20 + TARGET: x86_64-unknown-linux-gnu,
21 + }
22 + - {
23 + NAME: linux-arm64-glibc,
24 + OS: ubuntu-20.04,
25 + TOOLCHAIN: stable,
26 + TARGET: aarch64-unknown-linux-gnu,
27 + }
28 + - {
29 + NAME: win32-x64-msvc,
30 + OS: windows-2022,
31 + TOOLCHAIN: stable,
32 + TARGET: x86_64-pc-windows-msvc,
33 + }
34 + - {
35 + NAME: win32-arm64-msvc,
36 + OS: windows-2022,
37 + TOOLCHAIN: stable,
38 + TARGET: aarch64-pc-windows-msvc,
39 + }
40 + - {
41 + NAME: darwin-x64,
42 + OS: macos-11,
43 + TOOLCHAIN: stable,
44 + TARGET: x86_64-apple-darwin,
45 + }
46 + - {
47 + NAME: darwin-arm64,
48 + OS: macos-11,
49 + TOOLCHAIN: stable,
50 + TARGET: aarch64-apple-darwin,
51 + }
52 + steps:
53 + - name: Checkout
54 + uses: actions/checkout@v3
55 +
56 + - name: Set the release version
57 + shell: bash
58 + run: echo "RELEASE_VERSION=${GITHUB_REF:11}" >> $GITHUB_ENV
59 +
60 + - name: Install Rust toolchain
61 + uses: actions-rs/toolchain@v1
62 + with:
63 + toolchain: ${{ matrix.build.TOOLCHAIN }}
64 + target: ${{ matrix.build.TARGET }}
65 + override: true
66 +
67 + - name: Build
68 + uses: actions-rs/cargo@v1
69 + with:
70 + command: build
71 + args: --release --locked --target ${{ matrix.build.TARGET }}
72 + use-cross: ${{ matrix.build.OS == 'ubuntu-20.04' }} # use `cross` for Linux builds
73 +
74 + - name: Install node
75 + uses: actions/setup-node@v3
76 + with:
77 + node-version: "16"
78 + registry-url: "https://registry.npmjs.org"
79 +
80 + - name: Publish to NPM
81 + shell: bash
82 + run: |
83 + cd npm
84 + # set the binary name
85 + bin="app"
86 + # derive the OS and architecture from the build matrix name
87 + # note: when split by a hyphen, first part is the OS and the second is the architecture
88 + node_os=$(echo "${{ matrix.build.NAME }}" | cut -d '-' -f1)
89 + export node_os
90 + node_arch=$(echo "${{ matrix.build.NAME }}" | cut -d '-' -f2)
91 + export node_arch
92 + # set the version
93 + export node_version="${{ env.RELEASE_VERSION }}"
94 + # set the package name
95 + # note: use 'windows' as OS name instead of 'win32'
96 + if [ "${{ matrix.build.OS }}" = "windows-2022" ]; then
97 + export node_pkg="${bin}-windows-${node_arch}"
98 + else
99 + export node_pkg="${bin}-${node_os}-${node_arch}"
100 + fi
101 + # create the package directory
102 + mkdir -p "${node_pkg}/bin"
103 + # generate package.json from the template
104 + envsubst < package.json.tmpl > "${node_pkg}/package.json"
105 + # copy the binary into the package
106 + # note: windows binaries has '.exe' extension
107 + if [ "${{ matrix.build.OS }}" = "windows-2022" ]; then
108 + bin="${bin}.exe"
109 + fi
110 + cp "../target/${{ matrix.build.TARGET }}/release/${bin}" "${node_pkg}/bin"
111 + # publish the package
112 + cd "${node_pkg}"
113 + npm publish --access public
114 + env:
115 + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
116 +
117 + publish-npm-base:
118 + name: Publish the base NPM package
119 + needs: publish-npm-binaries
120 + runs-on: ubuntu-20.04
121 + steps:
122 + - name: Checkout
123 + uses: actions/checkout@v3
124 +
125 + - name: Install node
126 + uses: actions/setup-node@v3
127 + with:
128 + node-version: "16"
129 + registry-url: "https://registry.npmjs.org"
130 +
131 + - name: Publish the package
132 + shell: bash
133 + run: |
134 + cd npm/app
135 + yarn install # requires optional dependencies to be present in the registry
136 + yarn build
137 + npm publish --access public
138 + env:
139 + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
README.MD
+2
@@ -35,6 +35,8 @@ This repo is inspired by [Sugar](https://github.com/metaplex-foundation/sugar).
35
36 This repo tries to follow [the 12 factor CLI app](https://medium.com/@jdxcode/12-factor-cli-apps-dd3c227a0e46) principles by Heroku team.
37
38 +NPM support by [orhun.dev](https://blog.orhun.dev/packaging-rust-for-npm/).
39 +
40 ## Licence
41
42 MIT.
npm/package.json.tmpl new
+6
@@ -0,0 +1,6 @@
1 +{
2 + "name": "${node_pkg}",
3 + "version": "${node_version}",
4 + "os": ["${node_os}"],
5 + "cpu": ["${node_arch}"]
6 +}
\ No newline at end of file
npm/smbpndk-cli/.gitignore new
+133
@@ -0,0 +1,133 @@
1 +# Typescript build artifacts
2 +lib
3 +
4 +# Logs
5 +logs
6 +*.log
7 +npm-debug.log*
8 +yarn-debug.log*
9 +yarn-error.log*
10 +lerna-debug.log*
11 +.pnpm-debug.log*
12 +
13 +# Diagnostic reports (https://nodejs.org/api/report.html)
14 +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
15 +
16 +# Runtime data
17 +pids
18 +*.pid
19 +*.seed
20 +*.pid.lock
21 +
22 +# Directory for instrumented libs generated by jscoverage/JSCover
23 +lib-cov
24 +
25 +# Coverage directory used by tools like istanbul
26 +coverage
27 +*.lcov
28 +
29 +# nyc test coverage
30 +.nyc_output
31 +
32 +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
33 +.grunt
34 +
35 +# Bower dependency directory (https://bower.io/)
36 +bower_components
37 +
38 +# node-waf configuration
39 +.lock-wscript
40 +
41 +# Compiled binary addons (https://nodejs.org/api/addons.html)
42 +build/Release
43 +
44 +# Dependency directories
45 +node_modules/
46 +jspm_packages/
47 +
48 +# Snowpack dependency directory (https://snowpack.dev/)
49 +web_modules/
50 +
51 +# TypeScript cache
52 +*.tsbuildinfo
53 +
54 +# Optional npm cache directory
55 +.npm
56 +
57 +# Optional eslint cache
58 +.eslintcache
59 +
60 +# Optional stylelint cache
61 +.stylelintcache
62 +
63 +# Microbundle cache
64 +.rpt2_cache/
65 +.rts2_cache_cjs/
66 +.rts2_cache_es/
67 +.rts2_cache_umd/
68 +
69 +# Optional REPL history
70 +.node_repl_history
71 +
72 +# Output of 'npm pack'
73 +*.tgz
74 +
75 +# Yarn Integrity file
76 +.yarn-integrity
77 +
78 +# dotenv environment variable files
79 +.env
80 +.env.development.local
81 +.env.test.local
82 +.env.production.local
83 +.env.local
84 +
85 +# parcel-bundler cache (https://parceljs.org/)
86 +.cache
87 +.parcel-cache
88 +
89 +# Next.js build output
90 +.next
91 +out
92 +
93 +# Nuxt.js build / generate output
94 +.nuxt
95 +dist
96 +
97 +# Gatsby files
98 +.cache/
99 +# Comment in the public line in if your project uses Gatsby and not Next.js
100 +# https://nextjs.org/blog/next-9-1#public-directory-support
101 +# public
102 +
103 +# vuepress build output
104 +.vuepress/dist
105 +
106 +# vuepress v2.x temp and cache directory
107 +.temp
108 +.cache
109 +
110 +# Docusaurus cache and generated files
111 +.docusaurus
112 +
113 +# Serverless directories
114 +.serverless/
115 +
116 +# FuseBox cache
117 +.fusebox/
118 +
119 +# DynamoDB Local files
120 +.dynamodb/
121 +
122 +# TernJS port file
123 +.tern-port
124 +
125 +# Stores VSCode versions used for testing VSCode extensions
126 +.vscode-test
127 +
128 +# yarn v2
129 +.yarn/cache
130 +.yarn/unplugged
131 +.yarn/build-state.yml
132 +.yarn/install-state.gz
133 +.pnp.*
\ No newline at end of file
npm/smbpndk-cli/package-lock.json new
+1693
@@ -0,0 +1,1693 @@
1 +{
2 + "name": "smbpndk-cli",
3 + "version": "0.1.0",
4 + "lockfileVersion": 3,
5 + "requires": true,
6 + "packages": {
7 + "": {
8 + "name": "smbpndk-cli",
9 + "version": "0.1.0",
10 + "bin": {
11 + "smbpndk-cli": "lib/index.js"
12 + },
13 + "devDependencies": {
14 + "@types/node": "^18.15.11",
15 + "@typescript-eslint/eslint-plugin": "^5.48.0",
16 + "@typescript-eslint/parser": "^5.48.0",
17 + "eslint": "^8.31.0",
18 + "typescript": "^4.9.4"
19 + },
20 + "optionalDependencies": {
21 + "app-darwin-arm64": "0.1.0",
22 + "app-darwin-x64": "0.1.0",
23 + "app-linux-arm64": "0.1.0",
24 + "app-linux-x64": "0.1.0",
25 + "app-windows-arm64": "0.1.0",
26 + "app-windows-x64": "0.1.0"
27 + }
28 + },
29 + "node_modules/@eslint-community/eslint-utils": {
30 + "version": "4.4.0",
31 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
32 + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
33 + "dev": true,
34 + "dependencies": {
35 + "eslint-visitor-keys": "^3.3.0"
36 + },
37 + "engines": {
38 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
39 + },
40 + "peerDependencies": {
41 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
42 + }
43 + },
44 + "node_modules/@eslint-community/regexpp": {
45 + "version": "4.5.0",
46 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz",
47 + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==",
48 + "dev": true,
49 + "engines": {
50 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
51 + }
52 + },
53 + "node_modules/@eslint/eslintrc": {
54 + "version": "2.0.2",
55 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz",
56 + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==",
57 + "dev": true,
58 + "dependencies": {
59 + "ajv": "^6.12.4",
60 + "debug": "^4.3.2",
61 + "espree": "^9.5.1",
62 + "globals": "^13.19.0",
63 + "ignore": "^5.2.0",
64 + "import-fresh": "^3.2.1",
65 + "js-yaml": "^4.1.0",
66 + "minimatch": "^3.1.2",
67 + "strip-json-comments": "^3.1.1"
68 + },
69 + "engines": {
70 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
71 + },
72 + "funding": {
73 + "url": "https://opencollective.com/eslint"
74 + }
75 + },
76 + "node_modules/@eslint/js": {
77 + "version": "8.37.0",
78 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.37.0.tgz",
79 + "integrity": "sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==",
80 + "dev": true,
81 + "engines": {
82 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
83 + }
84 + },
85 + "node_modules/@humanwhocodes/config-array": {
86 + "version": "0.11.8",
87 + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
88 + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
89 + "dev": true,
90 + "dependencies": {
91 + "@humanwhocodes/object-schema": "^1.2.1",
92 + "debug": "^4.1.1",
93 + "minimatch": "^3.0.5"
94 + },
95 + "engines": {
96 + "node": ">=10.10.0"
97 + }
98 + },
99 + "node_modules/@humanwhocodes/module-importer": {
100 + "version": "1.0.1",
101 + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
102 + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
103 + "dev": true,
104 + "engines": {
105 + "node": ">=12.22"
106 + },
107 + "funding": {
108 + "type": "github",
109 + "url": "https://github.com/sponsors/nzakas"
110 + }
111 + },
112 + "node_modules/@humanwhocodes/object-schema": {
113 + "version": "1.2.1",
114 + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
115 + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
116 + "dev": true
117 + },
118 + "node_modules/@nodelib/fs.scandir": {
119 + "version": "2.1.5",
120 + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
121 + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
122 + "dev": true,
123 + "dependencies": {
124 + "@nodelib/fs.stat": "2.0.5",
125 + "run-parallel": "^1.1.9"
126 + },
127 + "engines": {
128 + "node": ">= 8"
129 + }
130 + },
131 + "node_modules/@nodelib/fs.stat": {
132 + "version": "2.0.5",
133 + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
134 + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
135 + "dev": true,
136 + "engines": {
137 + "node": ">= 8"
138 + }
139 + },
140 + "node_modules/@nodelib/fs.walk": {
141 + "version": "1.2.8",
142 + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
143 + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
144 + "dev": true,
145 + "dependencies": {
146 + "@nodelib/fs.scandir": "2.1.5",
147 + "fastq": "^1.6.0"
148 + },
149 + "engines": {
150 + "node": ">= 8"
151 + }
152 + },
153 + "node_modules/@types/json-schema": {
154 + "version": "7.0.11",
155 + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
156 + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
157 + "dev": true
158 + },
159 + "node_modules/@types/node": {
160 + "version": "18.15.11",
161 + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
162 + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
163 + "dev": true
164 + },
165 + "node_modules/@types/semver": {
166 + "version": "7.3.13",
167 + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
168 + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
169 + "dev": true
170 + },
171 + "node_modules/@typescript-eslint/eslint-plugin": {
172 + "version": "5.57.1",
173 + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.57.1.tgz",
174 + "integrity": "sha512-1MeobQkQ9tztuleT3v72XmY0XuKXVXusAhryoLuU5YZ+mXoYKZP9SQ7Flulh1NX4DTjpGTc2b/eMu4u7M7dhnQ==",
175 + "dev": true,
176 + "dependencies": {
177 + "@eslint-community/regexpp": "^4.4.0",
178 + "@typescript-eslint/scope-manager": "5.57.1",
179 + "@typescript-eslint/type-utils": "5.57.1",
180 + "@typescript-eslint/utils": "5.57.1",
181 + "debug": "^4.3.4",
182 + "grapheme-splitter": "^1.0.4",
183 + "ignore": "^5.2.0",
184 + "natural-compare-lite": "^1.4.0",
185 + "semver": "^7.3.7",
186 + "tsutils": "^3.21.0"
187 + },
188 + "engines": {
189 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
190 + },
191 + "funding": {
192 + "type": "opencollective",
193 + "url": "https://opencollective.com/typescript-eslint"
194 + },
195 + "peerDependencies": {
196 + "@typescript-eslint/parser": "^5.0.0",
197 + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
198 + },
199 + "peerDependenciesMeta": {
200 + "typescript": {
201 + "optional": true
202 + }
203 + }
204 + },
205 + "node_modules/@typescript-eslint/parser": {
206 + "version": "5.57.1",
207 + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.57.1.tgz",
208 + "integrity": "sha512-hlA0BLeVSA/wBPKdPGxoVr9Pp6GutGoY380FEhbVi0Ph4WNe8kLvqIRx76RSQt1lynZKfrXKs0/XeEk4zZycuA==",
209 + "dev": true,
210 + "dependencies": {
211 + "@typescript-eslint/scope-manager": "5.57.1",
212 + "@typescript-eslint/types": "5.57.1",
213 + "@typescript-eslint/typescript-estree": "5.57.1",
214 + "debug": "^4.3.4"
215 + },
216 + "engines": {
217 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
218 + },
219 + "funding": {
220 + "type": "opencollective",
221 + "url": "https://opencollective.com/typescript-eslint"
222 + },
223 + "peerDependencies": {
224 + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
225 + },
226 + "peerDependenciesMeta": {
227 + "typescript": {
228 + "optional": true
229 + }
230 + }
231 + },
232 + "node_modules/@typescript-eslint/scope-manager": {
233 + "version": "5.57.1",
234 + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.57.1.tgz",
235 + "integrity": "sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw==",
236 + "dev": true,
237 + "dependencies": {
238 + "@typescript-eslint/types": "5.57.1",
239 + "@typescript-eslint/visitor-keys": "5.57.1"
240 + },
241 + "engines": {
242 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
243 + },
244 + "funding": {
245 + "type": "opencollective",
246 + "url": "https://opencollective.com/typescript-eslint"
247 + }
248 + },
249 + "node_modules/@typescript-eslint/type-utils": {
250 + "version": "5.57.1",
251 + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.57.1.tgz",
252 + "integrity": "sha512-/RIPQyx60Pt6ga86hKXesXkJ2WOS4UemFrmmq/7eOyiYjYv/MUSHPlkhU6k9T9W1ytnTJueqASW+wOmW4KrViw==",
253 + "dev": true,
254 + "dependencies": {
255 + "@typescript-eslint/typescript-estree": "5.57.1",
256 + "@typescript-eslint/utils": "5.57.1",
257 + "debug": "^4.3.4",
258 + "tsutils": "^3.21.0"
259 + },
260 + "engines": {
261 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
262 + },
263 + "funding": {
264 + "type": "opencollective",
265 + "url": "https://opencollective.com/typescript-eslint"
266 + },
267 + "peerDependencies": {
268 + "eslint": "*"
269 + },
270 + "peerDependenciesMeta": {
271 + "typescript": {
272 + "optional": true
273 + }
274 + }
275 + },
276 + "node_modules/@typescript-eslint/types": {
277 + "version": "5.57.1",
278 + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.57.1.tgz",
279 + "integrity": "sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA==",
280 + "dev": true,
281 + "engines": {
282 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
283 + },
284 + "funding": {
285 + "type": "opencollective",
286 + "url": "https://opencollective.com/typescript-eslint"
287 + }
288 + },
289 + "node_modules/@typescript-eslint/typescript-estree": {
290 + "version": "5.57.1",
291 + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.57.1.tgz",
292 + "integrity": "sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw==",
293 + "dev": true,
294 + "dependencies": {
295 + "@typescript-eslint/types": "5.57.1",
296 + "@typescript-eslint/visitor-keys": "5.57.1",
297 + "debug": "^4.3.4",
298 + "globby": "^11.1.0",
299 + "is-glob": "^4.0.3",
300 + "semver": "^7.3.7",
301 + "tsutils": "^3.21.0"
302 + },
303 + "engines": {
304 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
305 + },
306 + "funding": {
307 + "type": "opencollective",
308 + "url": "https://opencollective.com/typescript-eslint"
309 + },
310 + "peerDependenciesMeta": {
311 + "typescript": {
312 + "optional": true
313 + }
314 + }
315 + },
316 + "node_modules/@typescript-eslint/utils": {
317 + "version": "5.57.1",
318 + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.57.1.tgz",
319 + "integrity": "sha512-kN6vzzf9NkEtawECqze6v99LtmDiUJCVpvieTFA1uL7/jDghiJGubGZ5csicYHU1Xoqb3oH/R5cN5df6W41Nfg==",
320 + "dev": true,
321 + "dependencies": {
322 + "@eslint-community/eslint-utils": "^4.2.0",
323 + "@types/json-schema": "^7.0.9",
324 + "@types/semver": "^7.3.12",
325 + "@typescript-eslint/scope-manager": "5.57.1",
326 + "@typescript-eslint/types": "5.57.1",
327 + "@typescript-eslint/typescript-estree": "5.57.1",
328 + "eslint-scope": "^5.1.1",
329 + "semver": "^7.3.7"
330 + },
331 + "engines": {
332 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
333 + },
334 + "funding": {
335 + "type": "opencollective",
336 + "url": "https://opencollective.com/typescript-eslint"
337 + },
338 + "peerDependencies": {
339 + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
340 + }
341 + },
342 + "node_modules/@typescript-eslint/visitor-keys": {
343 + "version": "5.57.1",
344 + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.57.1.tgz",
345 + "integrity": "sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA==",
346 + "dev": true,
347 + "dependencies": {
348 + "@typescript-eslint/types": "5.57.1",
349 + "eslint-visitor-keys": "^3.3.0"
350 + },
351 + "engines": {
352 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
353 + },
354 + "funding": {
355 + "type": "opencollective",
356 + "url": "https://opencollective.com/typescript-eslint"
357 + }
358 + },
359 + "node_modules/acorn": {
360 + "version": "8.8.2",
361 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
362 + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
363 + "dev": true,
364 + "bin": {
365 + "acorn": "bin/acorn"
366 + },
367 + "engines": {
368 + "node": ">=0.4.0"
369 + }
370 + },
371 + "node_modules/acorn-jsx": {
372 + "version": "5.3.2",
373 + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
374 + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
375 + "dev": true,
376 + "peerDependencies": {
377 + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
378 + }
379 + },
380 + "node_modules/ajv": {
381 + "version": "6.12.6",
382 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
383 + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
384 + "dev": true,
385 + "dependencies": {
386 + "fast-deep-equal": "^3.1.1",
387 + "fast-json-stable-stringify": "^2.0.0",
388 + "json-schema-traverse": "^0.4.1",
389 + "uri-js": "^4.2.2"
390 + },
391 + "funding": {
392 + "type": "github",
393 + "url": "https://github.com/sponsors/epoberezkin"
394 + }
395 + },
396 + "node_modules/ansi-regex": {
397 + "version": "5.0.1",
398 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
399 + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
400 + "dev": true,
401 + "engines": {
402 + "node": ">=8"
403 + }
404 + },
405 + "node_modules/ansi-styles": {
406 + "version": "4.3.0",
407 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
408 + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
409 + "dev": true,
410 + "dependencies": {
411 + "color-convert": "^2.0.1"
412 + },
413 + "engines": {
414 + "node": ">=8"
415 + },
416 + "funding": {
417 + "url": "https://github.com/chalk/ansi-styles?sponsor=1"
418 + }
419 + },
420 + "node_modules/app-darwin-arm64": {
421 + "version": "0.1.0",
422 + "resolved": "https://registry.npmjs.org/app-darwin-arm64/-/app-darwin-arm64-0.1.0.tgz",
423 + "integrity": "sha512-YJ2qFbO6uQLxNz7PlOXSvp4aTqVwA/68vXxef1uMJJwDWNP9AotcifwCKVcpSIlP3QggarIGBkCwxH28QHph4A==",
424 + "cpu": [
425 + "arm64"
426 + ],
427 + "optional": true,
428 + "os": [
429 + "darwin"
430 + ]
431 + },
432 + "node_modules/app-darwin-x64": {
433 + "version": "0.1.0",
434 + "resolved": "https://registry.npmjs.org/app-darwin-x64/-/app-darwin-x64-0.1.0.tgz",
435 + "integrity": "sha512-SI80ymjxOIXnjpmwuBb1fz0dtrRRgr3gaRMqkyF5R4IrJC/pUqUOOrtQgL+BwRKy+bDAlScw1eMvKHsbmCdFrw==",
436 + "cpu": [
437 + "x64"
438 + ],
439 + "optional": true,
440 + "os": [
441 + "darwin"
442 + ]
443 + },
444 + "node_modules/app-linux-arm64": {
445 + "version": "0.1.0",
446 + "resolved": "https://registry.npmjs.org/app-linux-arm64/-/app-linux-arm64-0.1.0.tgz",
447 + "integrity": "sha512-Vsd0stqdBPpKBN/NNzesaSCghTDUjrQKpJoo4mz5nGwc03JDi93EZoaVJUJ3pZbI1FZZBeSklRdsh6vGpehDdw==",
448 + "cpu": [
449 + "arm64"
450 + ],
451 + "optional": true,
452 + "os": [
453 + "linux"
454 + ]
455 + },
456 + "node_modules/app-linux-x64": {
457 + "version": "0.1.0",
458 + "resolved": "https://registry.npmjs.org/app-linux-x64/-/app-linux-x64-0.1.0.tgz",
459 + "integrity": "sha512-gcifD+x76oIy8uqdWqdBVKGTZHxrGHg5v/E6ercDwbVbnrcSJye9BVGMyWam1lNxV1W80M0VyzHhMS8IL7xiYQ==",
460 + "cpu": [
461 + "x64"
462 + ],
463 + "optional": true,
464 + "os": [
465 + "linux"
466 + ]
467 + },
468 + "node_modules/app-windows-arm64": {
469 + "version": "0.1.0",
470 + "resolved": "https://registry.npmjs.org/app-windows-arm64/-/app-windows-arm64-0.1.0.tgz",
471 + "integrity": "sha512-FqbXMERFH3cYZJ0AIayuf+8I6MAwlyb4CVeGgzOmWsxA5kZfm/cNH4drS0QAZSW499oPfTUpP9BO3He5mKik7A==",
472 + "cpu": [
473 + "arm64"
474 + ],
475 + "optional": true,
476 + "os": [
477 + "win32"
478 + ]
479 + },
480 + "node_modules/app-windows-x64": {
481 + "version": "0.1.0",
482 + "resolved": "https://registry.npmjs.org/app-windows-x64/-/app-windows-x64-0.1.0.tgz",
483 + "integrity": "sha512-NFM5H37WT+CNlxCcBYY776b1jMeWNrVWWZIWTh4uo4O/T0VvFHUNmsTMXykfvFF+qwVjcNVRhpeghaAQgJX8bw==",
484 + "cpu": [
485 + "x64"
486 + ],
487 + "optional": true,
488 + "os": [
489 + "win32"
490 + ]
491 + },
492 + "node_modules/argparse": {
493 + "version": "2.0.1",
494 + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
495 + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
496 + "dev": true
497 + },
498 + "node_modules/array-union": {
499 + "version": "2.1.0",
500 + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
501 + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
502 + "dev": true,
503 + "engines": {
504 + "node": ">=8"
505 + }
506 + },
507 + "node_modules/balanced-match": {
508 + "version": "1.0.2",
509 + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
510 + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
511 + "dev": true
512 + },
513 + "node_modules/brace-expansion": {
514 + "version": "1.1.11",
515 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
516 + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
517 + "dev": true,
518 + "dependencies": {
519 + "balanced-match": "^1.0.0",
520 + "concat-map": "0.0.1"
521 + }
522 + },
523 + "node_modules/braces": {
524 + "version": "3.0.2",
525 + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
526 + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
527 + "dev": true,
528 + "dependencies": {
529 + "fill-range": "^7.0.1"
530 + },
531 + "engines": {
532 + "node": ">=8"
533 + }
534 + },
535 + "node_modules/callsites": {
536 + "version": "3.1.0",
537 + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
538 + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
539 + "dev": true,
540 + "engines": {
541 + "node": ">=6"
542 + }
543 + },
544 + "node_modules/chalk": {
545 + "version": "4.1.2",
546 + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
547 + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
548 + "dev": true,
549 + "dependencies": {
550 + "ansi-styles": "^4.1.0",
551 + "supports-color": "^7.1.0"
552 + },
553 + "engines": {
554 + "node": ">=10"
555 + },
556 + "funding": {
557 + "url": "https://github.com/chalk/chalk?sponsor=1"
558 + }
559 + },
560 + "node_modules/color-convert": {
561 + "version": "2.0.1",
562 + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
563 + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
564 + "dev": true,
565 + "dependencies": {
566 + "color-name": "~1.1.4"
567 + },
568 + "engines": {
569 + "node": ">=7.0.0"
570 + }
571 + },
572 + "node_modules/color-name": {
573 + "version": "1.1.4",
574 + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
575 + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
576 + "dev": true
577 + },
578 + "node_modules/concat-map": {
579 + "version": "0.0.1",
580 + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
581 + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
582 + "dev": true
583 + },
584 + "node_modules/cross-spawn": {
585 + "version": "7.0.3",
586 + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
587 + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
588 + "dev": true,
589 + "dependencies": {
590 + "path-key": "^3.1.0",
591 + "shebang-command": "^2.0.0",
592 + "which": "^2.0.1"
593 + },
594 + "engines": {
595 + "node": ">= 8"
596 + }
597 + },
598 + "node_modules/debug": {
599 + "version": "4.3.4",
600 + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
601 + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
602 + "dev": true,
603 + "dependencies": {
604 + "ms": "2.1.2"
605 + },
606 + "engines": {
607 + "node": ">=6.0"
608 + },
609 + "peerDependenciesMeta": {
610 + "supports-color": {
611 + "optional": true
612 + }
613 + }
614 + },
615 + "node_modules/deep-is": {
616 + "version": "0.1.4",
617 + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
618 + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
619 + "dev": true
620 + },
621 + "node_modules/dir-glob": {
622 + "version": "3.0.1",
623 + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
624 + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
625 + "dev": true,
626 + "dependencies": {
627 + "path-type": "^4.0.0"
628 + },
629 + "engines": {
630 + "node": ">=8"
631 + }
632 + },
633 + "node_modules/doctrine": {
634 + "version": "3.0.0",
635 + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
636 + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
637 + "dev": true,
638 + "dependencies": {
639 + "esutils": "^2.0.2"
640 + },
641 + "engines": {
642 + "node": ">=6.0.0"
643 + }
644 + },
645 + "node_modules/escape-string-regexp": {
646 + "version": "4.0.0",
647 + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
648 + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
649 + "dev": true,
650 + "engines": {
651 + "node": ">=10"
652 + },
653 + "funding": {
654 + "url": "https://github.com/sponsors/sindresorhus"
655 + }
656 + },
657 + "node_modules/eslint": {
658 + "version": "8.37.0",
659 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.37.0.tgz",
660 + "integrity": "sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==",
661 + "dev": true,
662 + "dependencies": {
663 + "@eslint-community/eslint-utils": "^4.2.0",
664 + "@eslint-community/regexpp": "^4.4.0",
665 + "@eslint/eslintrc": "^2.0.2",
666 + "@eslint/js": "8.37.0",
667 + "@humanwhocodes/config-array": "^0.11.8",
668 + "@humanwhocodes/module-importer": "^1.0.1",
669 + "@nodelib/fs.walk": "^1.2.8",
670 + "ajv": "^6.10.0",
671 + "chalk": "^4.0.0",
672 + "cross-spawn": "^7.0.2",
673 + "debug": "^4.3.2",
674 + "doctrine": "^3.0.0",
675 + "escape-string-regexp": "^4.0.0",
676 + "eslint-scope": "^7.1.1",
677 + "eslint-visitor-keys": "^3.4.0",
678 + "espree": "^9.5.1",
679 + "esquery": "^1.4.2",
680 + "esutils": "^2.0.2",
681 + "fast-deep-equal": "^3.1.3",
682 + "file-entry-cache": "^6.0.1",
683 + "find-up": "^5.0.0",
684 + "glob-parent": "^6.0.2",
685 + "globals": "^13.19.0",
686 + "grapheme-splitter": "^1.0.4",
687 + "ignore": "^5.2.0",
688 + "import-fresh": "^3.0.0",
689 + "imurmurhash": "^0.1.4",
690 + "is-glob": "^4.0.0",
691 + "is-path-inside": "^3.0.3",
692 + "js-sdsl": "^4.1.4",
693 + "js-yaml": "^4.1.0",
694 + "json-stable-stringify-without-jsonify": "^1.0.1",
695 + "levn": "^0.4.1",
696 + "lodash.merge": "^4.6.2",
697 + "minimatch": "^3.1.2",
698 + "natural-compare": "^1.4.0",
699 + "optionator": "^0.9.1",
700 + "strip-ansi": "^6.0.1",
701 + "strip-json-comments": "^3.1.0",
702 + "text-table": "^0.2.0"
703 + },
704 + "bin": {
705 + "eslint": "bin/eslint.js"
706 + },
707 + "engines": {
708 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
709 + },
710 + "funding": {
711 + "url": "https://opencollective.com/eslint"
712 + }
713 + },
714 + "node_modules/eslint-scope": {
715 + "version": "5.1.1",
716 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
717 + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
718 + "dev": true,
719 + "dependencies": {
720 + "esrecurse": "^4.3.0",
721 + "estraverse": "^4.1.1"
722 + },
723 + "engines": {
724 + "node": ">=8.0.0"
725 + }
726 + },
727 + "node_modules/eslint-visitor-keys": {
728 + "version": "3.4.0",
729 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz",
730 + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==",
731 + "dev": true,
732 + "engines": {
733 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
734 + },
735 + "funding": {
736 + "url": "https://opencollective.com/eslint"
737 + }
738 + },
739 + "node_modules/eslint/node_modules/eslint-scope": {
740 + "version": "7.1.1",
741 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
742 + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
743 + "dev": true,
744 + "dependencies": {
745 + "esrecurse": "^4.3.0",
746 + "estraverse": "^5.2.0"
747 + },
748 + "engines": {
749 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
750 + }
751 + },
752 + "node_modules/eslint/node_modules/estraverse": {
753 + "version": "5.3.0",
754 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
755 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
756 + "dev": true,
757 + "engines": {
758 + "node": ">=4.0"
759 + }
760 + },
761 + "node_modules/espree": {
762 + "version": "9.5.1",
763 + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz",
764 + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==",
765 + "dev": true,
766 + "dependencies": {
767 + "acorn": "^8.8.0",
768 + "acorn-jsx": "^5.3.2",
769 + "eslint-visitor-keys": "^3.4.0"
770 + },
771 + "engines": {
772 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
773 + },
774 + "funding": {
775 + "url": "https://opencollective.com/eslint"
776 + }
777 + },
778 + "node_modules/esquery": {
779 + "version": "1.5.0",
780 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
781 + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
782 + "dev": true,
783 + "dependencies": {
784 + "estraverse": "^5.1.0"
785 + },
786 + "engines": {
787 + "node": ">=0.10"
788 + }
789 + },
790 + "node_modules/esquery/node_modules/estraverse": {
791 + "version": "5.3.0",
792 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
793 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
794 + "dev": true,
795 + "engines": {
796 + "node": ">=4.0"
797 + }
798 + },
799 + "node_modules/esrecurse": {
800 + "version": "4.3.0",
801 + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
802 + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
803 + "dev": true,
804 + "dependencies": {
805 + "estraverse": "^5.2.0"
806 + },
807 + "engines": {
808 + "node": ">=4.0"
809 + }
810 + },
811 + "node_modules/esrecurse/node_modules/estraverse": {
812 + "version": "5.3.0",
813 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
814 + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
815 + "dev": true,
816 + "engines": {
817 + "node": ">=4.0"
818 + }
819 + },
820 + "node_modules/estraverse": {
821 + "version": "4.3.0",
822 + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
823 + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
824 + "dev": true,
825 + "engines": {
826 + "node": ">=4.0"
827 + }
828 + },
829 + "node_modules/esutils": {
830 + "version": "2.0.3",
831 + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
832 + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
833 + "dev": true,
834 + "engines": {
835 + "node": ">=0.10.0"
836 + }
837 + },
838 + "node_modules/fast-deep-equal": {
839 + "version": "3.1.3",
840 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
841 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
842 + "dev": true
843 + },
844 + "node_modules/fast-glob": {
845 + "version": "3.2.12",
846 + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
847 + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
848 + "dev": true,
849 + "dependencies": {
850 + "@nodelib/fs.stat": "^2.0.2",
851 + "@nodelib/fs.walk": "^1.2.3",
852 + "glob-parent": "^5.1.2",
853 + "merge2": "^1.3.0",
854 + "micromatch": "^4.0.4"
855 + },
856 + "engines": {
857 + "node": ">=8.6.0"
858 + }
859 + },
860 + "node_modules/fast-glob/node_modules/glob-parent": {
861 + "version": "5.1.2",
862 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
863 + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
864 + "dev": true,
865 + "dependencies": {
866 + "is-glob": "^4.0.1"
867 + },
868 + "engines": {
869 + "node": ">= 6"
870 + }
871 + },
872 + "node_modules/fast-json-stable-stringify": {
873 + "version": "2.1.0",
874 + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
875 + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
876 + "dev": true
877 + },
878 + "node_modules/fast-levenshtein": {
879 + "version": "2.0.6",
880 + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
881 + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
882 + "dev": true
883 + },
884 + "node_modules/fastq": {
885 + "version": "1.15.0",
886 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
887 + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
888 + "dev": true,
889 + "dependencies": {
890 + "reusify": "^1.0.4"
891 + }
892 + },
893 + "node_modules/file-entry-cache": {
894 + "version": "6.0.1",
895 + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
896 + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
897 + "dev": true,
898 + "dependencies": {
899 + "flat-cache": "^3.0.4"
900 + },
901 + "engines": {
902 + "node": "^10.12.0 || >=12.0.0"
903 + }
904 + },
905 + "node_modules/fill-range": {
906 + "version": "7.0.1",
907 + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
908 + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
909 + "dev": true,
910 + "dependencies": {
911 + "to-regex-range": "^5.0.1"
912 + },
913 + "engines": {
914 + "node": ">=8"
915 + }
916 + },
917 + "node_modules/find-up": {
918 + "version": "5.0.0",
919 + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
920 + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
921 + "dev": true,
922 + "dependencies": {
923 + "locate-path": "^6.0.0",
924 + "path-exists": "^4.0.0"
925 + },
926 + "engines": {
927 + "node": ">=10"
928 + },
929 + "funding": {
930 + "url": "https://github.com/sponsors/sindresorhus"
931 + }
932 + },
933 + "node_modules/flat-cache": {
934 + "version": "3.0.4",
935 + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
936 + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
937 + "dev": true,
938 + "dependencies": {
939 + "flatted": "^3.1.0",
940 + "rimraf": "^3.0.2"
941 + },
942 + "engines": {
943 + "node": "^10.12.0 || >=12.0.0"
944 + }
945 + },
946 + "node_modules/flatted": {
947 + "version": "3.2.7",
948 + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
949 + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
950 + "dev": true
951 + },
952 + "node_modules/fs.realpath": {
953 + "version": "1.0.0",
954 + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
955 + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
956 + "dev": true
957 + },
958 + "node_modules/glob": {
959 + "version": "7.2.3",
960 + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
961 + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
962 + "dev": true,
963 + "dependencies": {
964 + "fs.realpath": "^1.0.0",
965 + "inflight": "^1.0.4",
966 + "inherits": "2",
967 + "minimatch": "^3.1.1",
968 + "once": "^1.3.0",
969 + "path-is-absolute": "^1.0.0"
970 + },
971 + "engines": {
972 + "node": "*"
973 + },
974 + "funding": {
975 + "url": "https://github.com/sponsors/isaacs"
976 + }
977 + },
978 + "node_modules/glob-parent": {
979 + "version": "6.0.2",
980 + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
981 + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
982 + "dev": true,
983 + "dependencies": {
984 + "is-glob": "^4.0.3"
985 + },
986 + "engines": {
987 + "node": ">=10.13.0"
988 + }
989 + },
990 + "node_modules/globals": {
991 + "version": "13.20.0",
992 + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
993 + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
994 + "dev": true,
995 + "dependencies": {
996 + "type-fest": "^0.20.2"
997 + },
998 + "engines": {
999 + "node": ">=8"
1000 + },
1001 + "funding": {
1002 + "url": "https://github.com/sponsors/sindresorhus"
1003 + }
1004 + },
1005 + "node_modules/globby": {
1006 + "version": "11.1.0",
1007 + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
1008 + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
1009 + "dev": true,
1010 + "dependencies": {
1011 + "array-union": "^2.1.0",
1012 + "dir-glob": "^3.0.1",
1013 + "fast-glob": "^3.2.9",
1014 + "ignore": "^5.2.0",
1015 + "merge2": "^1.4.1",
1016 + "slash": "^3.0.0"
1017 + },
1018 + "engines": {
1019 + "node": ">=10"
1020 + },
1021 + "funding": {
1022 + "url": "https://github.com/sponsors/sindresorhus"
1023 + }
1024 + },
1025 + "node_modules/grapheme-splitter": {
1026 + "version": "1.0.4",
1027 + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
1028 + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
1029 + "dev": true
1030 + },
1031 + "node_modules/has-flag": {
1032 + "version": "4.0.0",
1033 + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1034 + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1035 + "dev": true,
1036 + "engines": {
1037 + "node": ">=8"
1038 + }
1039 + },
1040 + "node_modules/ignore": {
1041 + "version": "5.2.4",
1042 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
1043 + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
1044 + "dev": true,
1045 + "engines": {
1046 + "node": ">= 4"
1047 + }
1048 + },
1049 + "node_modules/import-fresh": {
1050 + "version": "3.3.0",
1051 + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
1052 + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
1053 + "dev": true,
1054 + "dependencies": {
1055 + "parent-module": "^1.0.0",
1056 + "resolve-from": "^4.0.0"
1057 + },
1058 + "engines": {
1059 + "node": ">=6"
1060 + },
1061 + "funding": {
1062 + "url": "https://github.com/sponsors/sindresorhus"
1063 + }
1064 + },
1065 + "node_modules/imurmurhash": {
1066 + "version": "0.1.4",
1067 + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
1068 + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
1069 + "dev": true,
1070 + "engines": {
1071 + "node": ">=0.8.19"
1072 + }
1073 + },
1074 + "node_modules/inflight": {
1075 + "version": "1.0.6",
1076 + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1077 + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1078 + "dev": true,
1079 + "dependencies": {
1080 + "once": "^1.3.0",
1081 + "wrappy": "1"
1082 + }
1083 + },
1084 + "node_modules/inherits": {
1085 + "version": "2.0.4",
1086 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1087 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1088 + "dev": true
1089 + },
1090 + "node_modules/is-extglob": {
1091 + "version": "2.1.1",
1092 + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1093 + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1094 + "dev": true,
1095 + "engines": {
1096 + "node": ">=0.10.0"
1097 + }
1098 + },
1099 + "node_modules/is-glob": {
1100 + "version": "4.0.3",
1101 + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1102 + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1103 + "dev": true,
1104 + "dependencies": {
1105 + "is-extglob": "^2.1.1"
1106 + },
1107 + "engines": {
1108 + "node": ">=0.10.0"
1109 + }
1110 + },
1111 + "node_modules/is-number": {
1112 + "version": "7.0.0",
1113 + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1114 + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1115 + "dev": true,
1116 + "engines": {
1117 + "node": ">=0.12.0"
1118 + }
1119 + },
1120 + "node_modules/is-path-inside": {
1121 + "version": "3.0.3",
1122 + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
1123 + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
1124 + "dev": true,
1125 + "engines": {
1126 + "node": ">=8"
1127 + }
1128 + },
1129 + "node_modules/isexe": {
1130 + "version": "2.0.0",
1131 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1132 + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
1133 + "dev": true
1134 + },
1135 + "node_modules/js-sdsl": {
1136 + "version": "4.4.0",
1137 + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
1138 + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
1139 + "dev": true,
1140 + "funding": {
1141 + "type": "opencollective",
1142 + "url": "https://opencollective.com/js-sdsl"
1143 + }
1144 + },
1145 + "node_modules/js-yaml": {
1146 + "version": "4.1.0",
1147 + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
1148 + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1149 + "dev": true,
1150 + "dependencies": {
1151 + "argparse": "^2.0.1"
1152 + },
1153 + "bin": {
1154 + "js-yaml": "bin/js-yaml.js"
1155 + }
1156 + },
1157 + "node_modules/json-schema-traverse": {
1158 + "version": "0.4.1",
1159 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1160 + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1161 + "dev": true
1162 + },
1163 + "node_modules/json-stable-stringify-without-jsonify": {
1164 + "version": "1.0.1",
1165 + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1166 + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
1167 + "dev": true
1168 + },
1169 + "node_modules/levn": {
1170 + "version": "0.4.1",
1171 + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
1172 + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
1173 + "dev": true,
1174 + "dependencies": {
1175 + "prelude-ls": "^1.2.1",
1176 + "type-check": "~0.4.0"
1177 + },
1178 + "engines": {
1179 + "node": ">= 0.8.0"
1180 + }
1181 + },
1182 + "node_modules/locate-path": {
1183 + "version": "6.0.0",
1184 + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
1185 + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
1186 + "dev": true,
1187 + "dependencies": {
1188 + "p-locate": "^5.0.0"
1189 + },
1190 + "engines": {
1191 + "node": ">=10"
1192 + },
1193 + "funding": {
1194 + "url": "https://github.com/sponsors/sindresorhus"
1195 + }
1196 + },
1197 + "node_modules/lodash.merge": {
1198 + "version": "4.6.2",
1199 + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
1200 + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
1201 + "dev": true
1202 + },
1203 + "node_modules/lru-cache": {
1204 + "version": "6.0.0",
1205 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1206 + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1207 + "dev": true,
1208 + "dependencies": {
1209 + "yallist": "^4.0.0"
1210 + },
1211 + "engines": {
1212 + "node": ">=10"
1213 + }
1214 + },
1215 + "node_modules/merge2": {
1216 + "version": "1.4.1",
1217 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1218 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1219 + "dev": true,
1220 + "engines": {
1221 + "node": ">= 8"
1222 + }
1223 + },
1224 + "node_modules/micromatch": {
1225 + "version": "4.0.5",
1226 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1227 + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1228 + "dev": true,
1229 + "dependencies": {
1230 + "braces": "^3.0.2",
1231 + "picomatch": "^2.3.1"
1232 + },
1233 + "engines": {
1234 + "node": ">=8.6"
1235 + }
1236 + },
1237 + "node_modules/minimatch": {
1238 + "version": "3.1.2",
1239 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1240 + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1241 + "dev": true,
1242 + "dependencies": {
1243 + "brace-expansion": "^1.1.7"
1244 + },
1245 + "engines": {
1246 + "node": "*"
1247 + }
1248 + },
1249 + "node_modules/ms": {
1250 + "version": "2.1.2",
1251 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1252 + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1253 + "dev": true
1254 + },
1255 + "node_modules/natural-compare": {
1256 + "version": "1.4.0",
1257 + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
1258 + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
1259 + "dev": true
1260 + },
1261 + "node_modules/natural-compare-lite": {
1262 + "version": "1.4.0",
1263 + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
1264 + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
1265 + "dev": true
1266 + },
1267 + "node_modules/once": {
1268 + "version": "1.4.0",
1269 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1270 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1271 + "dev": true,
1272 + "dependencies": {
1273 + "wrappy": "1"
1274 + }
1275 + },
1276 + "node_modules/optionator": {
1277 + "version": "0.9.1",
1278 + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
1279 + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
1280 + "dev": true,
1281 + "dependencies": {
1282 + "deep-is": "^0.1.3",
1283 + "fast-levenshtein": "^2.0.6",
1284 + "levn": "^0.4.1",
1285 + "prelude-ls": "^1.2.1",
1286 + "type-check": "^0.4.0",
1287 + "word-wrap": "^1.2.3"
1288 + },
1289 + "engines": {
1290 + "node": ">= 0.8.0"
1291 + }
1292 + },
1293 + "node_modules/p-limit": {
1294 + "version": "3.1.0",
1295 + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
1296 + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
1297 + "dev": true,
1298 + "dependencies": {
1299 + "yocto-queue": "^0.1.0"
1300 + },
1301 + "engines": {
1302 + "node": ">=10"
1303 + },
1304 + "funding": {
1305 + "url": "https://github.com/sponsors/sindresorhus"
1306 + }
1307 + },
1308 + "node_modules/p-locate": {
1309 + "version": "5.0.0",
1310 + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
1311 + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
1312 + "dev": true,
1313 + "dependencies": {
1314 + "p-limit": "^3.0.2"
1315 + },
1316 + "engines": {
1317 + "node": ">=10"
1318 + },
1319 + "funding": {
1320 + "url": "https://github.com/sponsors/sindresorhus"
1321 + }
1322 + },
1323 + "node_modules/parent-module": {
1324 + "version": "1.0.1",
1325 + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1326 + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1327 + "dev": true,
1328 + "dependencies": {
1329 + "callsites": "^3.0.0"
1330 + },
1331 + "engines": {
1332 + "node": ">=6"
1333 + }
1334 + },
1335 + "node_modules/path-exists": {
1336 + "version": "4.0.0",
1337 + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1338 + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1339 + "dev": true,
1340 + "engines": {
1341 + "node": ">=8"
1342 + }
1343 + },
1344 + "node_modules/path-is-absolute": {
1345 + "version": "1.0.1",
1346 + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1347 + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1348 + "dev": true,
1349 + "engines": {
1350 + "node": ">=0.10.0"
1351 + }
1352 + },
1353 + "node_modules/path-key": {
1354 + "version": "3.1.1",
1355 + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1356 + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1357 + "dev": true,
1358 + "engines": {
1359 + "node": ">=8"
1360 + }
1361 + },
1362 + "node_modules/path-type": {
1363 + "version": "4.0.0",
1364 + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
1365 + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
1366 + "dev": true,
1367 + "engines": {
1368 + "node": ">=8"
1369 + }
1370 + },
1371 + "node_modules/picomatch": {
1372 + "version": "2.3.1",
1373 + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1374 + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1375 + "dev": true,
1376 + "engines": {
1377 + "node": ">=8.6"
1378 + },
1379 + "funding": {
1380 + "url": "https://github.com/sponsors/jonschlinkert"
1381 + }
1382 + },
1383 + "node_modules/prelude-ls": {
1384 + "version": "1.2.1",
1385 + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
1386 + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
1387 + "dev": true,
1388 + "engines": {
1389 + "node": ">= 0.8.0"
1390 + }
1391 + },
1392 + "node_modules/punycode": {
1393 + "version": "2.3.0",
1394 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
1395 + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
1396 + "dev": true,
1397 + "engines": {
1398 + "node": ">=6"
1399 + }
1400 + },
1401 + "node_modules/queue-microtask": {
1402 + "version": "1.2.3",
1403 + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1404 + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1405 + "dev": true,
1406 + "funding": [
1407 + {
1408 + "type": "github",
1409 + "url": "https://github.com/sponsors/feross"
1410 + },
1411 + {
1412 + "type": "patreon",
1413 + "url": "https://www.patreon.com/feross"
1414 + },
1415 + {
1416 + "type": "consulting",
1417 + "url": "https://feross.org/support"
1418 + }
1419 + ]
1420 + },
1421 + "node_modules/resolve-from": {
1422 + "version": "4.0.0",
1423 + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1424 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1425 + "dev": true,
1426 + "engines": {
1427 + "node": ">=4"
1428 + }
1429 + },
1430 + "node_modules/reusify": {
1431 + "version": "1.0.4",
1432 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1433 + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1434 + "dev": true,
1435 + "engines": {
1436 + "iojs": ">=1.0.0",
1437 + "node": ">=0.10.0"
1438 + }
1439 + },
1440 + "node_modules/rimraf": {
1441 + "version": "3.0.2",
1442 + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
1443 + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1444 + "dev": true,
1445 + "dependencies": {
1446 + "glob": "^7.1.3"
1447 + },
1448 + "bin": {
1449 + "rimraf": "bin.js"
1450 + },
1451 + "funding": {
1452 + "url": "https://github.com/sponsors/isaacs"
1453 + }
1454 + },
1455 + "node_modules/run-parallel": {
1456 + "version": "1.2.0",
1457 + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1458 + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1459 + "dev": true,
1460 + "funding": [
1461 + {
1462 + "type": "github",
1463 + "url": "https://github.com/sponsors/feross"
1464 + },
1465 + {
1466 + "type": "patreon",
1467 + "url": "https://www.patreon.com/feross"
1468 + },
1469 + {
1470 + "type": "consulting",
1471 + "url": "https://feross.org/support"
1472 + }
1473 + ],
1474 + "dependencies": {
1475 + "queue-microtask": "^1.2.2"
1476 + }
1477 + },
1478 + "node_modules/semver": {
1479 + "version": "7.3.8",
1480 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
1481 + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
1482 + "dev": true,
1483 + "dependencies": {
1484 + "lru-cache": "^6.0.0"
1485 + },
1486 + "bin": {
1487 + "semver": "bin/semver.js"
1488 + },
1489 + "engines": {
1490 + "node": ">=10"
1491 + }
1492 + },
1493 + "node_modules/shebang-command": {
1494 + "version": "2.0.0",
1495 + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
1496 + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1497 + "dev": true,
1498 + "dependencies": {
1499 + "shebang-regex": "^3.0.0"
1500 + },
1501 + "engines": {
1502 + "node": ">=8"
1503 + }
1504 + },
1505 + "node_modules/shebang-regex": {
1506 + "version": "3.0.0",
1507 + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
1508 + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1509 + "dev": true,
1510 + "engines": {
1511 + "node": ">=8"
1512 + }
1513 + },
1514 + "node_modules/slash": {
1515 + "version": "3.0.0",
1516 + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
1517 + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
1518 + "dev": true,
1519 + "engines": {
1520 + "node": ">=8"
1521 + }
1522 + },
1523 + "node_modules/strip-ansi": {
1524 + "version": "6.0.1",
1525 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1526 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1527 + "dev": true,
1528 + "dependencies": {
1529 + "ansi-regex": "^5.0.1"
1530 + },
1531 + "engines": {
1532 + "node": ">=8"
1533 + }
1534 + },
1535 + "node_modules/strip-json-comments": {
1536 + "version": "3.1.1",
1537 + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
1538 + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
1539 + "dev": true,
1540 + "engines": {
1541 + "node": ">=8"
1542 + },
1543 + "funding": {
1544 + "url": "https://github.com/sponsors/sindresorhus"
1545 + }
1546 + },
1547 + "node_modules/supports-color": {
1548 + "version": "7.2.0",
1549 + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1550 + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1551 + "dev": true,
1552 + "dependencies": {
1553 + "has-flag": "^4.0.0"
1554 + },
1555 + "engines": {
1556 + "node": ">=8"
1557 + }
1558 + },
1559 + "node_modules/text-table": {
1560 + "version": "0.2.0",
1561 + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
1562 + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
1563 + "dev": true
1564 + },
1565 + "node_modules/to-regex-range": {
1566 + "version": "5.0.1",
1567 + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1568 + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1569 + "dev": true,
1570 + "dependencies": {
1571 + "is-number": "^7.0.0"
1572 + },
1573 + "engines": {
1574 + "node": ">=8.0"
1575 + }
1576 + },
1577 + "node_modules/tslib": {
1578 + "version": "1.14.1",
1579 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1580 + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
1581 + "dev": true
1582 + },
1583 + "node_modules/tsutils": {
1584 + "version": "3.21.0",
1585 + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
1586 + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
1587 + "dev": true,
1588 + "dependencies": {
1589 + "tslib": "^1.8.1"
1590 + },
1591 + "engines": {
1592 + "node": ">= 6"
1593 + },
1594 + "peerDependencies": {
1595 + "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"
1596 + }
1597 + },
1598 + "node_modules/type-check": {
1599 + "version": "0.4.0",
1600 + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
1601 + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
1602 + "dev": true,
1603 + "dependencies": {
1604 + "prelude-ls": "^1.2.1"
1605 + },
1606 + "engines": {
1607 + "node": ">= 0.8.0"
1608 + }
1609 + },
1610 + "node_modules/type-fest": {
1611 + "version": "0.20.2",
1612 + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
1613 + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
1614 + "dev": true,
1615 + "engines": {
1616 + "node": ">=10"
1617 + },
1618 + "funding": {
1619 + "url": "https://github.com/sponsors/sindresorhus"
1620 + }
1621 + },
1622 + "node_modules/typescript": {
1623 + "version": "4.9.5",
1624 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
1625 + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
1626 + "dev": true,
1627 + "bin": {
1628 + "tsc": "bin/tsc",
1629 + "tsserver": "bin/tsserver"
1630 + },
1631 + "engines": {
1632 + "node": ">=4.2.0"
1633 + }
1634 + },
1635 + "node_modules/uri-js": {
1636 + "version": "4.4.1",
1637 + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
1638 + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1639 + "dev": true,
1640 + "dependencies": {
1641 + "punycode": "^2.1.0"
1642 + }
1643 + },
1644 + "node_modules/which": {
1645 + "version": "2.0.2",
1646 + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1647 + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1648 + "dev": true,
1649 + "dependencies": {
1650 + "isexe": "^2.0.0"
1651 + },
1652 + "bin": {
1653 + "node-which": "bin/node-which"
1654 + },
1655 + "engines": {
1656 + "node": ">= 8"
1657 + }
1658 + },
1659 + "node_modules/word-wrap": {
1660 + "version": "1.2.3",
1661 + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
1662 + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
1663 + "dev": true,
1664 + "engines": {
1665 + "node": ">=0.10.0"
1666 + }
1667 + },
1668 + "node_modules/wrappy": {
1669 + "version": "1.0.2",
1670 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1671 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1672 + "dev": true
1673 + },
1674 + "node_modules/yallist": {
1675 + "version": "4.0.0",
1676 + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1677 + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1678 + "dev": true
1679 + },
1680 + "node_modules/yocto-queue": {
1681 + "version": "0.1.0",
1682 + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
1683 + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
1684 + "dev": true,
1685 + "engines": {
1686 + "node": ">=10"
1687 + },
1688 + "funding": {
1689 + "url": "https://github.com/sponsors/sindresorhus"
1690 + }
1691 + }
1692 + }
1693 +}
npm/smbpndk-cli/package.json new
+29
@@ -0,0 +1,29 @@
1 +{
2 + "name": "smbpndk-cli",
3 + "version": "0.1.0",
4 + "bin": "lib/index.js",
5 + "description": "A CLI for the smbpndk package",
6 + "license": "MIT",
7 + "scripts": {
8 + "typecheck": "tsc --noEmit",
9 + "lint": "eslint .",
10 + "lint:fix": "eslint . --fix",
11 + "build": "tsc",
12 + "dev": "yarn build && node lib/index.js"
13 + },
14 + "devDependencies": {
15 + "@types/node": "^18.15.11",
16 + "@typescript-eslint/eslint-plugin": "^5.48.0",
17 + "@typescript-eslint/parser": "^5.48.0",
18 + "eslint": "^8.31.0",
19 + "typescript": "^4.9.4"
20 + },
21 + "optionalDependencies": {
22 + "app-darwin-arm64": "0.1.0",
23 + "app-darwin-x64": "0.1.0",
24 + "app-linux-arm64": "0.1.0",
25 + "app-linux-x64": "0.1.0",
26 + "app-windows-arm64": "0.1.0",
27 + "app-windows-x64": "0.1.0"
28 + }
29 +}
\ No newline at end of file
npm/smbpndk-cli/src/index.ts new
+41
@@ -0,0 +1,41 @@
1 +#!/usr/bin/env node
2 +
3 +import { spawnSync } from "child_process";
4 +
5 +/**
6 + * Returns the executable path which is located inside `node_modules`
7 + * The naming convention is app-${os}-${arch}
8 + * If the platform is `win32` or `cygwin`, executable will include a `.exe` extension.
9 + * @see https://nodejs.org/api/os.html#osarch
10 + * @see https://nodejs.org/api/os.html#osplatform
11 + * @example "x/xx/node_modules/app-darwin-arm64"
12 + */
13 +function getExePath() {
14 + const arch = process.arch;
15 + let os = process.platform as string;
16 + let extension = "";
17 + if (["win32", "cygwin"].includes(process.platform)) {
18 + os = "windows";
19 + extension = ".exe";
20 + }
21 +
22 + try {
23 + // Since the binary will be located inside `node_modules`, we can simply call `require.resolve`
24 + return require.resolve(`app-${os}-${arch}/bin/app${extension}`);
25 + } catch (e) {
26 + throw new Error(
27 + `Couldn't find application binary inside node_modules for ${os}-${arch}`
28 + );
29 + }
30 +}
31 +
32 +/**
33 + * Runs the application with args using nodejs spawn
34 + */
35 +function run() {
36 + const args = process.argv.slice(2);
37 + const processResult = spawnSync(getExePath(), args, { stdio: "inherit" });
38 + process.exit(processResult.status ?? 0);
39 +}
40 +
41 +run();
\ No newline at end of file
npm/smbpndk-cli/tsconfig.json new
+12
@@ -0,0 +1,12 @@
1 +{
2 + "compilerOptions": {
3 + "target": "es2016",
4 + "module": "commonjs",
5 + "esModuleInterop": true,
6 + "baseUrl": "./",
7 + "outDir": "lib",
8 + "forceConsistentCasingInFileNames": true,
9 + "strict": true,
10 + "skipLibCheck": true
11 + }
12 +}
\ No newline at end of file