@leo-h/create-nodejs-app 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const index=require("./src/config/index.js"),commander=require("commander"),path=require("path"),picocolors=require("picocolors"),C=require("prompts"),_package=require("./package.json.js"),copyTemplate_compose=require("./src/compose-app/copy-template.compose.js"),replaceContentInFile_compose=require("./src/compose-app/replace-content-in-file.compose.js"),logs=require("./src/utils/logs.js"),onCancel=require("./src/utils/on-cancel.js"),framework_validation=require("./src/validations/framework.validation.js"),packageManager_validation=require("./src/validations/package-manager.validation.js"),projectNameValidation=require("./src/validations/project-name-validation.js"),template_validation=require("./src/validations/template.validation.js"),g=new commander.Command().name(_package.default.name).description(_package.default.description);g.argument("[project-directory]","Name of the project or relative path of the project considering where the script was called.").option("-pm, --package-manager <package-manager>","Package manager that will be used in the project.").option("-t, --template <template-name>","Template that will be used in the project.").option("-f, --framework <framework-name>","Framework that will be used in the project.").action(async(i,o)=>{const r={projectDirectory:{value:i,validation:projectNameValidation.ProjectNameValidation.create({path:i})},packageManager:{value:o.packageManager,validation:packageManager_validation.PackageManagerValidation.create({packageManager:o.packageManager})},template:{value:o.template,validation:template_validation.TemplateValidation.create({template:o.template})},framework:{value:o.framework,validation:framework_validation.FrameworkValidation.create({framework:o.framework})}},l=Object.keys(r);for(const a of l){const t=r[a];t.value&&await t.validation.fromCli()}const{projectDirectory:e,packageManager:s,template:p,framework:n}=r,m=await C([{type:e.value?null:"text",name:"projectDirectory",message:"What is your project name?",validate:async a=>await e.validation.fromPrompt({path:a})},{type:s.value?null:"select",name:"packageManager",message:"What is your favorite package manager?",choices:packageManager_validation.packageManagers,initial:2},{type:!p.value&&!n.value?"select":null,name:"template",message:"Select your template:",choices:template_validation.templates},{type:(a,t)=>!n.value&&(p.value==="api"||t.template==="api")?"select":null,name:"framework",message:"What is your favorite framework?",choices:framework_validation.frameworks}],{onCancel:onCancel.onCancelPrompt});for(const a of l){const t=m[a];t&&(r[a].value=t)}n.value&&(r.template.value="api");const c=path.basename(e.value);e.value=path.resolve(index.GENERATED_APP_TARGET_ROOT_PATH,e.value),await copyTemplate_compose.copyTemplateCompose(e.value,n.value??"clean");const u=path.resolve(e.value,"package.json"),v=path.resolve(e.value,".env.example"),d=path.resolve(e.value,".husky/pre-commit");await Promise.all([replaceContentInFile_compose.replaceContentInFileCompose(u,[["app-name",c]]),replaceContentInFile_compose.replaceContentInFileCompose(v,[["app-name",c]]),replaceContentInFile_compose.replaceContentInFileCompose(d,[["pnpm",s.value]])]),logs.successLog(`Success in creating new app ${picocolors.cyan(c)}!`,`> ${e.value}`)});(async()=>await g.parseAsync(process.argv))();
2
+ const index=require("./src/config/index.js"),commander=require("commander"),promises=require("fs/promises"),path=require("path"),picocolors=require("picocolors"),V=require("prompts"),_package=require("./package.json.js"),copyTemplate_compose=require("./src/compose-app/copy-template.compose.js"),replaceContentInFile_compose=require("./src/compose-app/replace-content-in-file.compose.js"),logs=require("./src/utils/logs.js"),onCancel=require("./src/utils/on-cancel.js"),framework_validation=require("./src/validations/framework.validation.js"),packageManager_validation=require("./src/validations/package-manager.validation.js"),projectNameValidation=require("./src/validations/project-name-validation.js"),template_validation=require("./src/validations/template.validation.js"),w=new commander.Command().name(_package.default.name).description(_package.default.description);w.argument("[project-directory]","Name of the project or relative path of the project considering where the script was called.").option("-pm, --package-manager <package-manager>","Package manager that will be used in the project.").option("-t, --template <template-name>","Template that will be used in the project.").option("-f, --framework <framework-name>","Framework that will be used in the project.").action(async(i,o)=>{const r={projectDirectory:{value:i,validation:projectNameValidation.ProjectNameValidation.create({path:i})},packageManager:{value:o.packageManager,validation:packageManager_validation.PackageManagerValidation.create({packageManager:o.packageManager})},template:{value:o.template,validation:template_validation.TemplateValidation.create({template:o.template})},framework:{value:o.framework,validation:framework_validation.FrameworkValidation.create({framework:o.framework})}},s=Object.keys(r);for(const a of s){const t=r[a];t.value&&await t.validation.fromCli()}const{projectDirectory:e,packageManager:l,template:p,framework:n}=r,v=await V([{type:e.value?null:"text",name:"projectDirectory",message:"What is your project name?",validate:async a=>await e.validation.fromPrompt({path:a})},{type:l.value?null:"select",name:"packageManager",message:"What is your favorite package manager?",choices:packageManager_validation.packageManagers,initial:2},{type:!p.value&&!n.value?"select":null,name:"template",message:"Select your template:",choices:template_validation.templates},{type:(a,t)=>!n.value&&(p.value==="api"||t.template==="api")?"select":null,name:"framework",message:"What is your favorite framework?",choices:framework_validation.frameworks}],{onCancel:onCancel.onCancelPrompt});for(const a of s){const t=v[a];t&&(r[a].value=t)}n.value&&(r.template.value="api");const c=path.basename(e.value);e.value=path.resolve(index.GENERATED_APP_TARGET_ROOT_PATH,e.value),await copyTemplate_compose.copyTemplateCompose(e.value,n.value??"clean");const g=path.resolve(e.value,"package.json"),d=path.resolve(e.value,".env.example"),k=path.resolve(e.value,".husky/pre-commit"),m=path.resolve(e.value,"gitignore"),u=path.resolve(e.value,"npmrc");await Promise.all([replaceContentInFile_compose.replaceContentInFileCompose(g,[["app-name",c]]),replaceContentInFile_compose.replaceContentInFileCompose(d,[["app-name",c]]),replaceContentInFile_compose.replaceContentInFileCompose(k,[["pnpm",l.value]]),promises.rename(m,path.resolve(path.dirname(m),".gitignore")),promises.rename(u,path.resolve(path.dirname(u),".npmrc"))]),logs.successLog(`Success in creating new app ${picocolors.cyan(c)}!`,`> ${e.value}`)});(async()=>await w.parseAsync(process.argv))();
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0});const name="@leo-h/create-nodejs-app",version="1.0.11",packageManager="pnpm@9.1.1",author="Leonardo Henrique <leonardo0507.business@gmail.com>",description="Create a modern Node.js app with TypeScript using one command.",license="MIT",keywords=["node","node.js","typescript"],bin={"create-nodejs-app":"./dist/index.js"},repository={type:"git",url:"https://github.com/Leo-Henrique/create-nodejs-app"},scripts={prepare:"husky",start:"node ./dist/index.js","start:dev":"tsx ./src/index.ts","start:dev:watch":"tsx watch ./src/index.ts",typecheck:"tsc --noEmit",lint:"eslint . --ext .ts --max-warnings 0 --cache","lint:fix":"pnpm lint --fix",format:"prettier . --write --cache","test:unit":"vitest run","test:unit:watch":"vitest","test:e2e":"vitest run --config ./vitest.config.e2e.mts","test:e2e:watch":"vitest --config ./vitest.config.e2e.mts","test:coverage":"vitest run --coverage.enabled=true",template:"tsx ./scripts/template-cli.ts",prebuild:"rimraf ./dist",build:"unbuild",prepublishOnly:"pnpm build"},dependencies={commander:"12.1.0",picocolors:"1.0.1",prompts:"2.4.2","validate-npm-package-name":"5.0.1",zod:"3.23.8"},devDependencies={"@faker-js/faker":"8.4.1","@types/node":"20.12.12","@types/prompts":"2.4.9","@types/validate-npm-package-name":"4.0.2","@typescript-eslint/eslint-plugin":"7.10.0","@typescript-eslint/parser":"7.10.0","conventional-changelog-conventionalcommits":"8.0.0",eslint:"8.57.0","eslint-config-prettier":"9.1.0","eslint-plugin-vitest":"0.4.0",husky:"9.0.11","lint-staged":"15.2.2","npm-run-all":"4.1.5",prettier:"3.2.5",rimraf:"5.0.7",tsx:"4.10.5",typescript:"5.4.5",unbuild:"2.0.0","vite-tsconfig-paths":"4.3.2",vitest:"1.6.0"},f={name,version,packageManager,author,description,license,keywords,bin,repository,scripts,dependencies,devDependencies};exports.author=author;exports.bin=bin;exports.default=f;exports.dependencies=dependencies;exports.description=description;exports.devDependencies=devDependencies;exports.keywords=keywords;exports.license=license;exports.name=name;exports.packageManager=packageManager;exports.repository=repository;exports.scripts=scripts;exports.version=version;
1
+ Object.defineProperty(exports,"__esModule",{value:!0});const name="@leo-h/create-nodejs-app",version="1.0.13",packageManager="pnpm@9.1.1",author="Leonardo Henrique <leonardo0507.business@gmail.com>",description="Create a modern Node.js app with TypeScript using one command.",license="MIT",keywords=["node","node.js","typescript"],bin={"create-nodejs-app":"./dist/index.js"},files=["./dist","./templates"],repository={type:"git",url:"https://github.com/Leo-Henrique/create-nodejs-app"},scripts={prepare:"husky",start:"node ./dist/index.js","start:dev":"tsx ./src/index.ts","start:dev:watch":"tsx watch ./src/index.ts",typecheck:"tsc --noEmit",lint:"eslint . --ext .ts --max-warnings 0 --cache","lint:fix":"pnpm lint --fix",format:"prettier . --write --cache","test:unit":"vitest run","test:unit:watch":"vitest","test:e2e":"vitest run --config ./vitest.config.e2e.mts","test:e2e:watch":"vitest --config ./vitest.config.e2e.mts","test:coverage":"vitest run --coverage.enabled=true",template:"tsx ./scripts/template-cli.ts",prebuild:"rimraf ./dist",build:"unbuild",prepublishOnly:"pnpm build"},dependencies={commander:"12.1.0",picocolors:"1.0.1",prompts:"2.4.2","validate-npm-package-name":"5.0.1",zod:"3.23.8"},devDependencies={"@faker-js/faker":"8.4.1","@types/node":"20.12.12","@types/prompts":"2.4.9","@types/validate-npm-package-name":"4.0.2","@typescript-eslint/eslint-plugin":"7.10.0","@typescript-eslint/parser":"7.10.0","conventional-changelog-conventionalcommits":"8.0.0",eslint:"8.57.0","eslint-config-prettier":"9.1.0","eslint-plugin-vitest":"0.4.0",husky:"9.0.11","lint-staged":"15.2.2","npm-run-all":"4.1.5",prettier:"3.2.5",rimraf:"5.0.7",tsx:"4.10.5",typescript:"5.4.5",unbuild:"2.0.0","vite-tsconfig-paths":"4.3.2",vitest:"1.6.0"},d={name,version,packageManager,author,description,license,keywords,bin,files,repository,scripts,dependencies,devDependencies};exports.author=author;exports.bin=bin;exports.default=d;exports.dependencies=dependencies;exports.description=description;exports.devDependencies=devDependencies;exports.files=files;exports.keywords=keywords;exports.license=license;exports.name=name;exports.packageManager=packageManager;exports.repository=repository;exports.scripts=scripts;exports.version=version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leo-h/create-nodejs-app",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "packageManager": "pnpm@9.1.1",
5
5
  "author": "Leonardo Henrique <leonardo0507.business@gmail.com>",
6
6
  "description": "Create a modern Node.js app with TypeScript using one command.",
@@ -13,6 +13,10 @@
13
13
  "bin": {
14
14
  "create-nodejs-app": "./dist/index.js"
15
15
  },
16
+ "files": [
17
+ "./dist",
18
+ "./templates"
19
+ ],
16
20
  "repository": {
17
21
  "type": "git",
18
22
  "url": "https://github.com/Leo-Henrique/create-nodejs-app"
@@ -46,6 +46,7 @@ export default defineBuildConfig({
46
46
  entryFileNames: "[name].js",
47
47
  preserveModules: true,
48
48
  strict: false,
49
+ exports: "named",
49
50
  },
50
51
  esbuild: {
51
52
  minifySyntax: true,
@@ -0,0 +1,132 @@
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
+ # parcel-bundler cache (https://parceljs.org/)
76
+ .cache
77
+ .parcel-cache
78
+
79
+ # Next.js build output
80
+ .next
81
+ out
82
+
83
+ # Nuxt.js build / generate output
84
+ .nuxt
85
+ dist
86
+
87
+ # Gatsby files
88
+ .cache/
89
+ # Comment in the public line in if your project uses Gatsby and not Next.js
90
+ # https://nextjs.org/blog/next-9-1#public-directory-support
91
+ # public
92
+
93
+ # vuepress build output
94
+ .vuepress/dist
95
+
96
+ # vuepress v2.x temp and cache directory
97
+ .temp
98
+ .cache
99
+
100
+ # Docusaurus cache and generated files
101
+ .docusaurus
102
+
103
+ # Serverless directories
104
+ .serverless/
105
+
106
+ # FuseBox cache
107
+ .fusebox/
108
+
109
+ # DynamoDB Local files
110
+ .dynamodb/
111
+
112
+ # TernJS port file
113
+ .tern-port
114
+
115
+ # Stores VSCode versions used for testing VSCode extensions
116
+ .vscode-test
117
+
118
+ # yarn v2
119
+ .yarn/cache
120
+ .yarn/unplugged
121
+ .yarn/build-state.yml
122
+ .yarn/install-state.gz
123
+ .pnp.*
124
+
125
+ # dotenv environment variable files
126
+ .env
127
+ .env.development
128
+ .env.test
129
+ .env.production
130
+
131
+ # OS
132
+ .DS_Store
@@ -0,0 +1 @@
1
+ save-exact=true
@@ -46,6 +46,7 @@ export default defineBuildConfig({
46
46
  entryFileNames: "[name].js",
47
47
  preserveModules: true,
48
48
  strict: false,
49
+ exports: "named",
49
50
  },
50
51
  esbuild: {
51
52
  minifySyntax: true,
@@ -0,0 +1,132 @@
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
+ # parcel-bundler cache (https://parceljs.org/)
76
+ .cache
77
+ .parcel-cache
78
+
79
+ # Next.js build output
80
+ .next
81
+ out
82
+
83
+ # Nuxt.js build / generate output
84
+ .nuxt
85
+ dist
86
+
87
+ # Gatsby files
88
+ .cache/
89
+ # Comment in the public line in if your project uses Gatsby and not Next.js
90
+ # https://nextjs.org/blog/next-9-1#public-directory-support
91
+ # public
92
+
93
+ # vuepress build output
94
+ .vuepress/dist
95
+
96
+ # vuepress v2.x temp and cache directory
97
+ .temp
98
+ .cache
99
+
100
+ # Docusaurus cache and generated files
101
+ .docusaurus
102
+
103
+ # Serverless directories
104
+ .serverless/
105
+
106
+ # FuseBox cache
107
+ .fusebox/
108
+
109
+ # DynamoDB Local files
110
+ .dynamodb/
111
+
112
+ # TernJS port file
113
+ .tern-port
114
+
115
+ # Stores VSCode versions used for testing VSCode extensions
116
+ .vscode-test
117
+
118
+ # yarn v2
119
+ .yarn/cache
120
+ .yarn/unplugged
121
+ .yarn/build-state.yml
122
+ .yarn/install-state.gz
123
+ .pnp.*
124
+
125
+ # dotenv environment variable files
126
+ .env
127
+ .env.development
128
+ .env.test
129
+ .env.production
130
+
131
+ # OS
132
+ .DS_Store
@@ -0,0 +1 @@
1
+ save-exact=true
@@ -12,9 +12,10 @@
12
12
  "format": "prettier . --write --cache",
13
13
  "test:unit": "vitest run",
14
14
  "test:unit:watch": "vitest",
15
+ "test:unit:coverage": "vitest run --coverage.enabled=true",
15
16
  "test:e2e": "vitest run --config ./vitest.config.e2e.mts",
16
17
  "test:e2e:watch": "vitest --config ./vitest.config.e2e.mts",
17
- "test:coverage": "vitest run --coverage.enabled=true",
18
+ "test:e2e:coverage": "vitest run --config ./vitest.config.e2e.mts --coverage.enabled=true",
18
19
  "prebuild": "rimraf ./dist",
19
20
  "build": "unbuild"
20
21
  },
@@ -39,6 +40,7 @@
39
40
  "@types/supertest": "6.0.2",
40
41
  "@typescript-eslint/eslint-plugin": "7.10.0",
41
42
  "@typescript-eslint/parser": "7.10.0",
43
+ "@vitest/coverage-v8": "1.6.0",
42
44
  "eslint": "8.57.0",
43
45
  "eslint-config-prettier": "9.1.0",
44
46
  "eslint-plugin-vitest": "0.4.0",
@@ -63,6 +63,9 @@ importers:
63
63
  '@typescript-eslint/parser':
64
64
  specifier: 7.10.0
65
65
  version: 7.10.0(eslint@8.57.0)(typescript@5.4.5)
66
+ '@vitest/coverage-v8':
67
+ specifier: 1.6.0
68
+ version: 1.6.0(vitest@1.6.0(@types/node@20.12.12))
66
69
  eslint:
67
70
  specifier: 8.57.0
68
71
  version: 8.57.0
@@ -203,6 +206,9 @@ packages:
203
206
  resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==}
204
207
  engines: {node: '>=6.9.0'}
205
208
 
209
+ '@bcoe/v8-coverage@0.2.3':
210
+ resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
211
+
206
212
  '@esbuild/aix-ppc64@0.19.12':
207
213
  resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
208
214
  engines: {node: '>=12'}
@@ -556,6 +562,10 @@ packages:
556
562
  resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
557
563
  engines: {node: '>=12'}
558
564
 
565
+ '@istanbuljs/schema@0.1.3':
566
+ resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
567
+ engines: {node: '>=8'}
568
+
559
569
  '@jest/schemas@29.6.3':
560
570
  resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
561
571
  engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -855,6 +865,11 @@ packages:
855
865
  '@ungap/structured-clone@1.2.0':
856
866
  resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
857
867
 
868
+ '@vitest/coverage-v8@1.6.0':
869
+ resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==}
870
+ peerDependencies:
871
+ vitest: 1.6.0
872
+
858
873
  '@vitest/expect@1.6.0':
859
874
  resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==}
860
875
 
@@ -1591,6 +1606,9 @@ packages:
1591
1606
  hookable@5.5.3:
1592
1607
  resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
1593
1608
 
1609
+ html-escaper@2.0.2:
1610
+ resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
1611
+
1594
1612
  http-errors@2.0.0:
1595
1613
  resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
1596
1614
  engines: {node: '>= 0.8'}
@@ -1678,6 +1696,22 @@ packages:
1678
1696
  isexe@2.0.0:
1679
1697
  resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1680
1698
 
1699
+ istanbul-lib-coverage@3.2.2:
1700
+ resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
1701
+ engines: {node: '>=8'}
1702
+
1703
+ istanbul-lib-report@3.0.1:
1704
+ resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
1705
+ engines: {node: '>=10'}
1706
+
1707
+ istanbul-lib-source-maps@5.0.6:
1708
+ resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==}
1709
+ engines: {node: '>=10'}
1710
+
1711
+ istanbul-reports@3.1.7:
1712
+ resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
1713
+ engines: {node: '>=8'}
1714
+
1681
1715
  jackspeak@3.4.0:
1682
1716
  resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==}
1683
1717
  engines: {node: '>=14'}
@@ -1785,6 +1819,13 @@ packages:
1785
1819
  magic-string@0.30.10:
1786
1820
  resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
1787
1821
 
1822
+ magicast@0.3.4:
1823
+ resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==}
1824
+
1825
+ make-dir@4.0.0:
1826
+ resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
1827
+ engines: {node: '>=10'}
1828
+
1788
1829
  mdn-data@2.0.28:
1789
1830
  resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
1790
1831
 
@@ -2483,6 +2524,10 @@ packages:
2483
2524
  engines: {node: '>=14.0.0'}
2484
2525
  hasBin: true
2485
2526
 
2527
+ test-exclude@6.0.0:
2528
+ resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
2529
+ engines: {node: '>=8'}
2530
+
2486
2531
  text-decoding@1.0.0:
2487
2532
  resolution: {integrity: sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==}
2488
2533
 
@@ -2878,6 +2923,8 @@ snapshots:
2878
2923
  '@babel/helper-validator-identifier': 7.24.7
2879
2924
  to-fast-properties: 2.0.0
2880
2925
 
2926
+ '@bcoe/v8-coverage@0.2.3': {}
2927
+
2881
2928
  '@esbuild/aix-ppc64@0.19.12':
2882
2929
  optional: true
2883
2930
 
@@ -3129,6 +3176,8 @@ snapshots:
3129
3176
  wrap-ansi: 8.1.0
3130
3177
  wrap-ansi-cjs: wrap-ansi@7.0.0
3131
3178
 
3179
+ '@istanbuljs/schema@0.1.3': {}
3180
+
3132
3181
  '@jest/schemas@29.6.3':
3133
3182
  dependencies:
3134
3183
  '@sinclair/typebox': 0.27.8
@@ -3416,6 +3465,25 @@ snapshots:
3416
3465
 
3417
3466
  '@ungap/structured-clone@1.2.0': {}
3418
3467
 
3468
+ '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.12.12))':
3469
+ dependencies:
3470
+ '@ampproject/remapping': 2.3.0
3471
+ '@bcoe/v8-coverage': 0.2.3
3472
+ debug: 4.3.5
3473
+ istanbul-lib-coverage: 3.2.2
3474
+ istanbul-lib-report: 3.0.1
3475
+ istanbul-lib-source-maps: 5.0.6
3476
+ istanbul-reports: 3.1.7
3477
+ magic-string: 0.30.10
3478
+ magicast: 0.3.4
3479
+ picocolors: 1.0.1
3480
+ std-env: 3.7.0
3481
+ strip-literal: 2.1.0
3482
+ test-exclude: 6.0.0
3483
+ vitest: 1.6.0(@types/node@20.12.12)
3484
+ transitivePeerDependencies:
3485
+ - supports-color
3486
+
3419
3487
  '@vitest/expect@1.6.0':
3420
3488
  dependencies:
3421
3489
  '@vitest/spy': 1.6.0
@@ -4263,6 +4331,8 @@ snapshots:
4263
4331
 
4264
4332
  hookable@5.5.3: {}
4265
4333
 
4334
+ html-escaper@2.0.2: {}
4335
+
4266
4336
  http-errors@2.0.0:
4267
4337
  dependencies:
4268
4338
  depd: 2.0.0
@@ -4331,6 +4401,27 @@ snapshots:
4331
4401
 
4332
4402
  isexe@2.0.0: {}
4333
4403
 
4404
+ istanbul-lib-coverage@3.2.2: {}
4405
+
4406
+ istanbul-lib-report@3.0.1:
4407
+ dependencies:
4408
+ istanbul-lib-coverage: 3.2.2
4409
+ make-dir: 4.0.0
4410
+ supports-color: 7.2.0
4411
+
4412
+ istanbul-lib-source-maps@5.0.6:
4413
+ dependencies:
4414
+ '@jridgewell/trace-mapping': 0.3.25
4415
+ debug: 4.3.5
4416
+ istanbul-lib-coverage: 3.2.2
4417
+ transitivePeerDependencies:
4418
+ - supports-color
4419
+
4420
+ istanbul-reports@3.1.7:
4421
+ dependencies:
4422
+ html-escaper: 2.0.2
4423
+ istanbul-lib-report: 3.0.1
4424
+
4334
4425
  jackspeak@3.4.0:
4335
4426
  dependencies:
4336
4427
  '@isaacs/cliui': 8.0.2
@@ -4455,6 +4546,16 @@ snapshots:
4455
4546
  dependencies:
4456
4547
  '@jridgewell/sourcemap-codec': 1.4.15
4457
4548
 
4549
+ magicast@0.3.4:
4550
+ dependencies:
4551
+ '@babel/parser': 7.24.7
4552
+ '@babel/types': 7.24.7
4553
+ source-map-js: 1.2.0
4554
+
4555
+ make-dir@4.0.0:
4556
+ dependencies:
4557
+ semver: 7.6.2
4558
+
4458
4559
  mdn-data@2.0.28: {}
4459
4560
 
4460
4561
  mdn-data@2.0.30: {}
@@ -5108,6 +5209,12 @@ snapshots:
5108
5209
  csso: 5.0.5
5109
5210
  picocolors: 1.0.1
5110
5211
 
5212
+ test-exclude@6.0.0:
5213
+ dependencies:
5214
+ '@istanbuljs/schema': 0.1.3
5215
+ glob: 7.2.3
5216
+ minimatch: 3.1.2
5217
+
5111
5218
  text-decoding@1.0.0: {}
5112
5219
 
5113
5220
  text-table@0.2.0: {}