uandersonricardo commited on
Commit
7ac7058
·
0 Parent(s):

setup project

Browse files
Files changed (8) hide show
  1. .gitignore +143 -0
  2. README.md +68 -0
  3. biome.json +55 -0
  4. package-lock.json +1459 -0
  5. package.json +28 -0
  6. src/index.ts +1 -0
  7. tsconfig.json +29 -0
  8. vitest.config.ts +14 -0
.gitignore ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Logs
2
+ logs
3
+ *.log
4
+ npm-debug.log*
5
+ yarn-debug.log*
6
+ yarn-error.log*
7
+ lerna-debug.log*
8
+
9
+ # Diagnostic reports (https://nodejs.org/api/report.html)
10
+ report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
11
+
12
+ # Runtime data
13
+ pids
14
+ *.pid
15
+ *.seed
16
+ *.pid.lock
17
+
18
+ # Directory for instrumented libs generated by jscoverage/JSCover
19
+ lib-cov
20
+
21
+ # Coverage directory used by tools like istanbul
22
+ coverage
23
+ *.lcov
24
+
25
+ # nyc test coverage
26
+ .nyc_output
27
+
28
+ # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
29
+ .grunt
30
+
31
+ # Bower dependency directory (https://bower.io/)
32
+ bower_components
33
+
34
+ # node-waf configuration
35
+ .lock-wscript
36
+
37
+ # Compiled binary addons (https://nodejs.org/api/addons.html)
38
+ build/Release
39
+
40
+ # Dependency directories
41
+ node_modules/
42
+ jspm_packages/
43
+
44
+ # Snowpack dependency directory (https://snowpack.dev/)
45
+ web_modules/
46
+
47
+ # TypeScript cache
48
+ *.tsbuildinfo
49
+
50
+ # Optional npm cache directory
51
+ .npm
52
+
53
+ # Optional eslint cache
54
+ .eslintcache
55
+
56
+ # Optional stylelint cache
57
+ .stylelintcache
58
+
59
+ # Optional REPL history
60
+ .node_repl_history
61
+
62
+ # Output of 'npm pack'
63
+ *.tgz
64
+
65
+ # Yarn Integrity file
66
+ .yarn-integrity
67
+
68
+ # dotenv environment variable files
69
+ .env
70
+ .env.*
71
+ !.env.example
72
+
73
+ # parcel-bundler cache (https://parceljs.org/)
74
+ .cache
75
+ .parcel-cache
76
+
77
+ # Next.js build output
78
+ .next
79
+ out
80
+
81
+ # Nuxt.js build / generate output
82
+ .nuxt
83
+ dist
84
+ .output
85
+
86
+ # Gatsby files
87
+ .cache/
88
+ # Comment in the public line in if your project uses Gatsby and not Next.js
89
+ # https://nextjs.org/blog/next-9-1#public-directory-support
90
+ # public
91
+
92
+ # vuepress build output
93
+ .vuepress/dist
94
+
95
+ # vuepress v2.x temp directory
96
+ .temp
97
+
98
+ # Sveltekit cache directory
99
+ .svelte-kit/
100
+
101
+ # vitepress build output
102
+ **/.vitepress/dist
103
+
104
+ # vitepress cache directory
105
+ **/.vitepress/cache
106
+
107
+ # Docusaurus cache and generated files
108
+ .docusaurus
109
+
110
+ # Serverless directories
111
+ .serverless/
112
+
113
+ # FuseBox cache
114
+ .fusebox/
115
+
116
+ # DynamoDB Local files
117
+ .dynamodb/
118
+
119
+ # Firebase cache directory
120
+ .firebase/
121
+
122
+ # TernJS port file
123
+ .tern-port
124
+
125
+ # Stores VSCode versions used for testing VSCode extensions
126
+ .vscode-test
127
+
128
+ # pnpm
129
+ .pnpm-store
130
+
131
+ # yarn v3
132
+ .pnp.*
133
+ .yarn/*
134
+ !.yarn/patches
135
+ !.yarn/plugins
136
+ !.yarn/releases
137
+ !.yarn/sdks
138
+ !.yarn/versions
139
+
140
+ # Vite files
141
+ vite.config.js.timestamp-*
142
+ vite.config.ts.timestamp-*
143
+ .vite/
README.md ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Projeto de TALP1
2
+
3
+ Projeto desenvolvido para a disciplina **IN1045 — Tópicos Avançados em Linguagens de Programação 1 (TALP1)**, do curso de Mestrado em Ciência da Computação do **Centro de Informática da Universidade Federal de Pernambuco (CIn-UFPE)**.
4
+
5
+ ## Visão Geral
6
+
7
+ Este projeto tem como objetivo desenvolver um sistema multiagente inteligente para **geração**, **auditoria** e **validação de vulnerabilidades** em *smart contracts*.
8
+
9
+ A proposta é receber documentos contendo requisitos, especificações e descrições funcionais do sistema, processar essas informações e utilizá-las para:
10
+
11
+ * gerar contratos inteligentes automaticamente;
12
+ * identificar potenciais vulnerabilidades de segurança;
13
+ * criar provas de conceito (*Proofs of Concept — PoCs*) para validar as falhas encontradas;
14
+ * executar um ciclo iterativo de refinamento e melhoria contínua.
15
+
16
+ O sistema é implementado em **TypeScript** e **Node.js**, utilizando a biblioteca **LangGraph** para orquestração dos agentes inteligentes e definição dos fluxos de execução.
17
+
18
+ ## Arquitetura Geral
19
+
20
+ O sistema é composto por agentes especializados que colaboram entre si em diferentes etapas do processo:
21
+
22
+ 1. **Exploração e análise dos requisitos**
23
+
24
+ * Processamento e compreensão dos documentos fornecidos;
25
+ * Extração de contexto técnico e requisitos relevantes.
26
+
27
+ 2. **Geração de Smart Contracts**
28
+
29
+ * Criação automática de contratos inteligentes com base nas especificações extraídas.
30
+
31
+ 3. **Auditoria de Segurança**
32
+
33
+ * Análise estática e contextual do código gerado;
34
+ * Identificação de vulnerabilidades e comportamentos inseguros.
35
+
36
+ 4. **Geração de PoCs**
37
+
38
+ * Construção automática de provas de conceito para validar as vulnerabilidades detectadas.
39
+
40
+ 5. **Refinamento Iterativo**
41
+
42
+ * Uso do feedback da auditoria e das PoCs para aprimorar o código gerado.
43
+
44
+ ## Agentes
45
+
46
+ ### Gerador de Código
47
+
48
+ Responsável por gerar *smart contracts* a partir dos requisitos e especificações fornecidos.
49
+
50
+ ### Auditor de Smart Contracts
51
+
52
+ Responsável por analisar o código gerado em busca de vulnerabilidades, inconsistências e problemas de segurança.
53
+
54
+ ### Gerador de PoCs
55
+
56
+ Responsável por criar provas de conceito capazes de validar e demonstrar as vulnerabilidades identificadas durante a auditoria.
57
+
58
+ ## Tecnologias Utilizadas
59
+
60
+ * TypeScript
61
+ * Node.js
62
+ * LangGraph
63
+
64
+ ## Equipe
65
+
66
+ * André Souza — [alssg@cin.ufpe.br](mailto:alssg@cin.ufpe.br)
67
+ * Uanderson Ricardo Ferreira da Silva — [urfs@cin.ufpe.br](mailto:urfs@cin.ufpe.br)
68
+ * Tales Vinicius Alves da Cunha — [tvac@cin.ufpe.br](mailto:tvac@cin.ufpe.br)
biome.json ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/2.4.14/schema.json",
3
+ "vcs": {
4
+ "enabled": true,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": true
7
+ },
8
+ "files": {
9
+ "includes": [
10
+ "**",
11
+ "!!**/dist"
12
+ ]
13
+ },
14
+ "formatter": {
15
+ "enabled": true,
16
+ "lineWidth": 120,
17
+ "indentStyle": "space"
18
+ },
19
+ "linter": {
20
+ "enabled": true,
21
+ "rules": {
22
+ "recommended": true,
23
+ "suspicious": {
24
+ "noUnknownAtRules": "off",
25
+ "noArrayIndexKey": "off",
26
+ "noExplicitAny": "off"
27
+ },
28
+ "complexity": {
29
+ "noStaticOnlyClass": "off"
30
+ },
31
+ "correctness": {
32
+ "useExhaustiveDependencies": "off",
33
+ "useParseIntRadix": "off"
34
+ },
35
+ "a11y": "off",
36
+ "style": {
37
+ "noNonNullAssertion": "off",
38
+ "useTemplate": "off"
39
+ }
40
+ }
41
+ },
42
+ "javascript": {
43
+ "formatter": {
44
+ "quoteStyle": "double"
45
+ }
46
+ },
47
+ "assist": {
48
+ "enabled": true,
49
+ "actions": {
50
+ "source": {
51
+ "organizeImports": "on"
52
+ }
53
+ }
54
+ }
55
+ }
package-lock.json ADDED
@@ -0,0 +1,1459 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "projeto-talp1",
3
+ "version": "0.0.1",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "projeto-talp1",
9
+ "version": "0.0.1",
10
+ "license": "ISC",
11
+ "devDependencies": {
12
+ "@biomejs/biome": "2.4.14",
13
+ "@types/node": "^25.6.0",
14
+ "typescript": "^6.0.3",
15
+ "vitest": "^4.1.5"
16
+ }
17
+ },
18
+ "node_modules/@biomejs/biome": {
19
+ "version": "2.4.14",
20
+ "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.4.14.tgz",
21
+ "integrity": "sha512-TmAvxOEgrpLypzVGJ8FulIZnlyA9TxrO1hyqYrCz9r+bwma9xXxuLA5IuYnj55XQneFx460KjRbx6SWGLkg3bQ==",
22
+ "dev": true,
23
+ "license": "MIT OR Apache-2.0",
24
+ "bin": {
25
+ "biome": "bin/biome"
26
+ },
27
+ "engines": {
28
+ "node": ">=14.21.3"
29
+ },
30
+ "funding": {
31
+ "type": "opencollective",
32
+ "url": "https://opencollective.com/biome"
33
+ },
34
+ "optionalDependencies": {
35
+ "@biomejs/cli-darwin-arm64": "2.4.14",
36
+ "@biomejs/cli-darwin-x64": "2.4.14",
37
+ "@biomejs/cli-linux-arm64": "2.4.14",
38
+ "@biomejs/cli-linux-arm64-musl": "2.4.14",
39
+ "@biomejs/cli-linux-x64": "2.4.14",
40
+ "@biomejs/cli-linux-x64-musl": "2.4.14",
41
+ "@biomejs/cli-win32-arm64": "2.4.14",
42
+ "@biomejs/cli-win32-x64": "2.4.14"
43
+ }
44
+ },
45
+ "node_modules/@biomejs/cli-darwin-arm64": {
46
+ "version": "2.4.14",
47
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.14.tgz",
48
+ "integrity": "sha512-XvgoE9XOawUOQPdmvs4J7wPhi/DLwSCGks3AlPJDmh34O0awRTqCED1HRcRDdpf1Zrp4us4MGOOdIxNpbqNF5Q==",
49
+ "cpu": [
50
+ "arm64"
51
+ ],
52
+ "dev": true,
53
+ "license": "MIT OR Apache-2.0",
54
+ "optional": true,
55
+ "os": [
56
+ "darwin"
57
+ ],
58
+ "engines": {
59
+ "node": ">=14.21.3"
60
+ }
61
+ },
62
+ "node_modules/@biomejs/cli-darwin-x64": {
63
+ "version": "2.4.14",
64
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.14.tgz",
65
+ "integrity": "sha512-jE7hKBCFhOx3uUh+ZkWBfOHxAcILPfhFplNkuID/eZeSTLHzfZzoZxW8fbqY9xXRnPi7jGNAf1iPVR+0yWsM/Q==",
66
+ "cpu": [
67
+ "x64"
68
+ ],
69
+ "dev": true,
70
+ "license": "MIT OR Apache-2.0",
71
+ "optional": true,
72
+ "os": [
73
+ "darwin"
74
+ ],
75
+ "engines": {
76
+ "node": ">=14.21.3"
77
+ }
78
+ },
79
+ "node_modules/@biomejs/cli-linux-arm64": {
80
+ "version": "2.4.14",
81
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.14.tgz",
82
+ "integrity": "sha512-2TELhZnW5RSLL063l9rc5xLpA0ZIw0Ccwy/0q384rvNAgFw3yI76bd59547yxowdQr5MNPET/xDLrLuvgSeeWQ==",
83
+ "cpu": [
84
+ "arm64"
85
+ ],
86
+ "dev": true,
87
+ "license": "MIT OR Apache-2.0",
88
+ "optional": true,
89
+ "os": [
90
+ "linux"
91
+ ],
92
+ "engines": {
93
+ "node": ">=14.21.3"
94
+ }
95
+ },
96
+ "node_modules/@biomejs/cli-linux-arm64-musl": {
97
+ "version": "2.4.14",
98
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.14.tgz",
99
+ "integrity": "sha512-/z+6gqAqqUQTHazwStxSXKHg9b8UvqBmDFRp+c4wYbq2KXhELQDon9EoC9RpmQ8JWkqQx/lIUy/cs+MhzDZp6A==",
100
+ "cpu": [
101
+ "arm64"
102
+ ],
103
+ "dev": true,
104
+ "license": "MIT OR Apache-2.0",
105
+ "optional": true,
106
+ "os": [
107
+ "linux"
108
+ ],
109
+ "engines": {
110
+ "node": ">=14.21.3"
111
+ }
112
+ },
113
+ "node_modules/@biomejs/cli-linux-x64": {
114
+ "version": "2.4.14",
115
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.14.tgz",
116
+ "integrity": "sha512-zHrlQZDBDUz4OLAraYpWKcnLS6HOewBFWYOzY91d1ZjdqZwibOyb6BEu6WuWLugyo0P3riCmsbV9UqV1cSXwQg==",
117
+ "cpu": [
118
+ "x64"
119
+ ],
120
+ "dev": true,
121
+ "license": "MIT OR Apache-2.0",
122
+ "optional": true,
123
+ "os": [
124
+ "linux"
125
+ ],
126
+ "engines": {
127
+ "node": ">=14.21.3"
128
+ }
129
+ },
130
+ "node_modules/@biomejs/cli-linux-x64-musl": {
131
+ "version": "2.4.14",
132
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.14.tgz",
133
+ "integrity": "sha512-R6BWgJdQOwW9ulJatuTVrQkjnODjqHZkKNOqb1sz++3Noe5LYd0i3PchnOBUCYAPHoPWHhjJqbdZlHEu0hpjdA==",
134
+ "cpu": [
135
+ "x64"
136
+ ],
137
+ "dev": true,
138
+ "license": "MIT OR Apache-2.0",
139
+ "optional": true,
140
+ "os": [
141
+ "linux"
142
+ ],
143
+ "engines": {
144
+ "node": ">=14.21.3"
145
+ }
146
+ },
147
+ "node_modules/@biomejs/cli-win32-arm64": {
148
+ "version": "2.4.14",
149
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.14.tgz",
150
+ "integrity": "sha512-M3EH5hqOI/F/FUA2u4xcLoUgmxd218mvuj/6JL7Hv2toQvr2/AdOvKSpGkoRuWFCtQPVa+ZqkEV3Q5xBA9+XSA==",
151
+ "cpu": [
152
+ "arm64"
153
+ ],
154
+ "dev": true,
155
+ "license": "MIT OR Apache-2.0",
156
+ "optional": true,
157
+ "os": [
158
+ "win32"
159
+ ],
160
+ "engines": {
161
+ "node": ">=14.21.3"
162
+ }
163
+ },
164
+ "node_modules/@biomejs/cli-win32-x64": {
165
+ "version": "2.4.14",
166
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.14.tgz",
167
+ "integrity": "sha512-WL0EG5qE+EAKomGXbf2g6VnSKJhTL3tXC0QRzWRwA5VpjxNYa6H4P7ZWfymbGE4IhZZQi1KXQ2R0YjwInmz2fA==",
168
+ "cpu": [
169
+ "x64"
170
+ ],
171
+ "dev": true,
172
+ "license": "MIT OR Apache-2.0",
173
+ "optional": true,
174
+ "os": [
175
+ "win32"
176
+ ],
177
+ "engines": {
178
+ "node": ">=14.21.3"
179
+ }
180
+ },
181
+ "node_modules/@emnapi/core": {
182
+ "version": "1.10.0",
183
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz",
184
+ "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==",
185
+ "dev": true,
186
+ "license": "MIT",
187
+ "optional": true,
188
+ "dependencies": {
189
+ "@emnapi/wasi-threads": "1.2.1",
190
+ "tslib": "^2.4.0"
191
+ }
192
+ },
193
+ "node_modules/@emnapi/runtime": {
194
+ "version": "1.10.0",
195
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz",
196
+ "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==",
197
+ "dev": true,
198
+ "license": "MIT",
199
+ "optional": true,
200
+ "dependencies": {
201
+ "tslib": "^2.4.0"
202
+ }
203
+ },
204
+ "node_modules/@emnapi/wasi-threads": {
205
+ "version": "1.2.1",
206
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz",
207
+ "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==",
208
+ "dev": true,
209
+ "license": "MIT",
210
+ "optional": true,
211
+ "dependencies": {
212
+ "tslib": "^2.4.0"
213
+ }
214
+ },
215
+ "node_modules/@jridgewell/sourcemap-codec": {
216
+ "version": "1.5.5",
217
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
218
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
219
+ "dev": true,
220
+ "license": "MIT"
221
+ },
222
+ "node_modules/@napi-rs/wasm-runtime": {
223
+ "version": "1.1.4",
224
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz",
225
+ "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==",
226
+ "dev": true,
227
+ "license": "MIT",
228
+ "optional": true,
229
+ "dependencies": {
230
+ "@tybys/wasm-util": "^0.10.1"
231
+ },
232
+ "funding": {
233
+ "type": "github",
234
+ "url": "https://github.com/sponsors/Brooooooklyn"
235
+ },
236
+ "peerDependencies": {
237
+ "@emnapi/core": "^1.7.1",
238
+ "@emnapi/runtime": "^1.7.1"
239
+ }
240
+ },
241
+ "node_modules/@oxc-project/types": {
242
+ "version": "0.128.0",
243
+ "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.128.0.tgz",
244
+ "integrity": "sha512-huv1Y/LzBJkBVHt3OlC7u0zHBW9qXf1FdD7sGmc1rXc2P1mTwHssYv7jyGx5KAACSCH+9B3Bhn6Z9luHRvf7pQ==",
245
+ "dev": true,
246
+ "license": "MIT",
247
+ "funding": {
248
+ "url": "https://github.com/sponsors/Boshen"
249
+ }
250
+ },
251
+ "node_modules/@rolldown/binding-android-arm64": {
252
+ "version": "1.0.0-rc.18",
253
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.18.tgz",
254
+ "integrity": "sha512-lIDyUAfD7U3+BWKzdxMbJcsYHuqXqmGz40aeRqvuAm3y5TkJSYTBW2RDrn65DJFPQqVjUAUqq5uz8urzQ8aBdQ==",
255
+ "cpu": [
256
+ "arm64"
257
+ ],
258
+ "dev": true,
259
+ "license": "MIT",
260
+ "optional": true,
261
+ "os": [
262
+ "android"
263
+ ],
264
+ "engines": {
265
+ "node": "^20.19.0 || >=22.12.0"
266
+ }
267
+ },
268
+ "node_modules/@rolldown/binding-darwin-arm64": {
269
+ "version": "1.0.0-rc.18",
270
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.18.tgz",
271
+ "integrity": "sha512-apJq2ktnGp27nSInMR5Vcj8kY6xJzDAvfdIFlpDcAK/w4cDO58qVoi1YQsES/SKiFNge/6e4CUzgjfHduYqWpQ==",
272
+ "cpu": [
273
+ "arm64"
274
+ ],
275
+ "dev": true,
276
+ "license": "MIT",
277
+ "optional": true,
278
+ "os": [
279
+ "darwin"
280
+ ],
281
+ "engines": {
282
+ "node": "^20.19.0 || >=22.12.0"
283
+ }
284
+ },
285
+ "node_modules/@rolldown/binding-darwin-x64": {
286
+ "version": "1.0.0-rc.18",
287
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.18.tgz",
288
+ "integrity": "sha512-5Ofot8xbs+pxRHJqm9/9N/4sTQOvdrwEsmPE9pdLEEoAbdZtG6F2LMDfO1sp6ZAtXJuJV/21ew2srq3W8NXB5g==",
289
+ "cpu": [
290
+ "x64"
291
+ ],
292
+ "dev": true,
293
+ "license": "MIT",
294
+ "optional": true,
295
+ "os": [
296
+ "darwin"
297
+ ],
298
+ "engines": {
299
+ "node": "^20.19.0 || >=22.12.0"
300
+ }
301
+ },
302
+ "node_modules/@rolldown/binding-freebsd-x64": {
303
+ "version": "1.0.0-rc.18",
304
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.18.tgz",
305
+ "integrity": "sha512-7h8eeOTT1eyqJyx64BFCnWZpNm486hGWt2sqeLLgDxA0xI1oGZ9H7gK1S85uNGmBhkdPwa/6reTxfFFKvIsebw==",
306
+ "cpu": [
307
+ "x64"
308
+ ],
309
+ "dev": true,
310
+ "license": "MIT",
311
+ "optional": true,
312
+ "os": [
313
+ "freebsd"
314
+ ],
315
+ "engines": {
316
+ "node": "^20.19.0 || >=22.12.0"
317
+ }
318
+ },
319
+ "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
320
+ "version": "1.0.0-rc.18",
321
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.18.tgz",
322
+ "integrity": "sha512-eRcm/HVt9U/JFu5RKAEKwGQYtDCKWLiaH6wOnsSEp6NMBb/3Os8LgHZlNyzMpFVNmiiMFlfb2zEnebfzJrHFmg==",
323
+ "cpu": [
324
+ "arm"
325
+ ],
326
+ "dev": true,
327
+ "license": "MIT",
328
+ "optional": true,
329
+ "os": [
330
+ "linux"
331
+ ],
332
+ "engines": {
333
+ "node": "^20.19.0 || >=22.12.0"
334
+ }
335
+ },
336
+ "node_modules/@rolldown/binding-linux-arm64-gnu": {
337
+ "version": "1.0.0-rc.18",
338
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.18.tgz",
339
+ "integrity": "sha512-SOrT/cT4ukTmgnrEz/Hg3m7LBnuCLW9psDeMKrimRWY4I8DmnO7Lco8W2vtqPmMkbVu8iJ+g4GFLVLLOVjJ9DQ==",
340
+ "cpu": [
341
+ "arm64"
342
+ ],
343
+ "dev": true,
344
+ "license": "MIT",
345
+ "optional": true,
346
+ "os": [
347
+ "linux"
348
+ ],
349
+ "engines": {
350
+ "node": "^20.19.0 || >=22.12.0"
351
+ }
352
+ },
353
+ "node_modules/@rolldown/binding-linux-arm64-musl": {
354
+ "version": "1.0.0-rc.18",
355
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.18.tgz",
356
+ "integrity": "sha512-QWjdxN1HJCpBTAcZ5N5F7wju3gVPzRzSpmGzx7na0c/1qpN9CFil+xt+l9lV/1M6/gqHSNXCiqPfwhVJPeLnug==",
357
+ "cpu": [
358
+ "arm64"
359
+ ],
360
+ "dev": true,
361
+ "license": "MIT",
362
+ "optional": true,
363
+ "os": [
364
+ "linux"
365
+ ],
366
+ "engines": {
367
+ "node": "^20.19.0 || >=22.12.0"
368
+ }
369
+ },
370
+ "node_modules/@rolldown/binding-linux-ppc64-gnu": {
371
+ "version": "1.0.0-rc.18",
372
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.18.tgz",
373
+ "integrity": "sha512-ugCOyj7a4d9h3q9B+wXmf6g3a68UsjGh6dob5DHevHGMwDUbhsYNbSPxJsENcIttJZ9jv7qGM2UesLw5jqIhdg==",
374
+ "cpu": [
375
+ "ppc64"
376
+ ],
377
+ "dev": true,
378
+ "license": "MIT",
379
+ "optional": true,
380
+ "os": [
381
+ "linux"
382
+ ],
383
+ "engines": {
384
+ "node": "^20.19.0 || >=22.12.0"
385
+ }
386
+ },
387
+ "node_modules/@rolldown/binding-linux-s390x-gnu": {
388
+ "version": "1.0.0-rc.18",
389
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.18.tgz",
390
+ "integrity": "sha512-kKWRhbsotpXkGbcd5dllUWg5gEXcDAa8u5YnP9AV5DYNbvJHGzzuwv7dpmhc8NqKMJldl0a+x76IHbspEpEmdA==",
391
+ "cpu": [
392
+ "s390x"
393
+ ],
394
+ "dev": true,
395
+ "license": "MIT",
396
+ "optional": true,
397
+ "os": [
398
+ "linux"
399
+ ],
400
+ "engines": {
401
+ "node": "^20.19.0 || >=22.12.0"
402
+ }
403
+ },
404
+ "node_modules/@rolldown/binding-linux-x64-gnu": {
405
+ "version": "1.0.0-rc.18",
406
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.18.tgz",
407
+ "integrity": "sha512-uCo8ElcCIAMyYAZyuIZ81oFkhTSIllNvUCHCAlbhlN4ji3uC28h7IIdlXyIvGO7HsuqnV9p3rD/bpH7XhIyhRw==",
408
+ "cpu": [
409
+ "x64"
410
+ ],
411
+ "dev": true,
412
+ "license": "MIT",
413
+ "optional": true,
414
+ "os": [
415
+ "linux"
416
+ ],
417
+ "engines": {
418
+ "node": "^20.19.0 || >=22.12.0"
419
+ }
420
+ },
421
+ "node_modules/@rolldown/binding-linux-x64-musl": {
422
+ "version": "1.0.0-rc.18",
423
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.18.tgz",
424
+ "integrity": "sha512-XNOQZtuE6yUIvx4rwGemwh8kpL1xvU41FXy/s9K7T/3JVcqGzo3NfKM2HrbrGgfPYGFW42f07Wk++aOC6B9NWA==",
425
+ "cpu": [
426
+ "x64"
427
+ ],
428
+ "dev": true,
429
+ "license": "MIT",
430
+ "optional": true,
431
+ "os": [
432
+ "linux"
433
+ ],
434
+ "engines": {
435
+ "node": "^20.19.0 || >=22.12.0"
436
+ }
437
+ },
438
+ "node_modules/@rolldown/binding-openharmony-arm64": {
439
+ "version": "1.0.0-rc.18",
440
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.18.tgz",
441
+ "integrity": "sha512-tSn/kzrfa7tNOXr7sEacDBN4YsIqTyLqh45IO0nHDwtpKIDNDJr+VFojt+4klSpChxB29JLyduSsE0MKEwa65A==",
442
+ "cpu": [
443
+ "arm64"
444
+ ],
445
+ "dev": true,
446
+ "license": "MIT",
447
+ "optional": true,
448
+ "os": [
449
+ "openharmony"
450
+ ],
451
+ "engines": {
452
+ "node": "^20.19.0 || >=22.12.0"
453
+ }
454
+ },
455
+ "node_modules/@rolldown/binding-wasm32-wasi": {
456
+ "version": "1.0.0-rc.18",
457
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.18.tgz",
458
+ "integrity": "sha512-+J9YGmc+czgqlhYmwun3S3O0FIZhsH8ep2456xwjAdIOmuJxM7xz4P4PtrxU+Bz17a/5bqPA8o3HAAoX0teUdg==",
459
+ "cpu": [
460
+ "wasm32"
461
+ ],
462
+ "dev": true,
463
+ "license": "MIT",
464
+ "optional": true,
465
+ "dependencies": {
466
+ "@emnapi/core": "1.10.0",
467
+ "@emnapi/runtime": "1.10.0",
468
+ "@napi-rs/wasm-runtime": "^1.1.4"
469
+ },
470
+ "engines": {
471
+ "node": "^20.19.0 || >=22.12.0"
472
+ }
473
+ },
474
+ "node_modules/@rolldown/binding-win32-arm64-msvc": {
475
+ "version": "1.0.0-rc.18",
476
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.18.tgz",
477
+ "integrity": "sha512-zsu47DgU0FQzSwi6sU9dZoEdUv7pc1AptSEz/Z8HBg54sV0Pbs3N0+CrIbTsgiu6EyoaNN9CHboqbLaz9lhOyQ==",
478
+ "cpu": [
479
+ "arm64"
480
+ ],
481
+ "dev": true,
482
+ "license": "MIT",
483
+ "optional": true,
484
+ "os": [
485
+ "win32"
486
+ ],
487
+ "engines": {
488
+ "node": "^20.19.0 || >=22.12.0"
489
+ }
490
+ },
491
+ "node_modules/@rolldown/binding-win32-x64-msvc": {
492
+ "version": "1.0.0-rc.18",
493
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.18.tgz",
494
+ "integrity": "sha512-7H+3yqGgmnlDTRRhw/xpYY9J1kf4GC681nVc4GqKhExZTDrVVrV2tsOR9kso0fvgBdcTCcQShx4SLLoHgaLwhg==",
495
+ "cpu": [
496
+ "x64"
497
+ ],
498
+ "dev": true,
499
+ "license": "MIT",
500
+ "optional": true,
501
+ "os": [
502
+ "win32"
503
+ ],
504
+ "engines": {
505
+ "node": "^20.19.0 || >=22.12.0"
506
+ }
507
+ },
508
+ "node_modules/@rolldown/pluginutils": {
509
+ "version": "1.0.0-rc.18",
510
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.18.tgz",
511
+ "integrity": "sha512-CUY5Mnhe64xQBGZEEXQ5WyZwsc1JU3vAZLIxtrsBt3LO6UOb+C8GunVKqe9sT8NeWb4lqSaoJtp2xo6GxT1MNw==",
512
+ "dev": true,
513
+ "license": "MIT"
514
+ },
515
+ "node_modules/@standard-schema/spec": {
516
+ "version": "1.1.0",
517
+ "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
518
+ "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
519
+ "dev": true,
520
+ "license": "MIT"
521
+ },
522
+ "node_modules/@tybys/wasm-util": {
523
+ "version": "0.10.2",
524
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz",
525
+ "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==",
526
+ "dev": true,
527
+ "license": "MIT",
528
+ "optional": true,
529
+ "dependencies": {
530
+ "tslib": "^2.4.0"
531
+ }
532
+ },
533
+ "node_modules/@types/chai": {
534
+ "version": "5.2.3",
535
+ "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz",
536
+ "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==",
537
+ "dev": true,
538
+ "license": "MIT",
539
+ "dependencies": {
540
+ "@types/deep-eql": "*",
541
+ "assertion-error": "^2.0.1"
542
+ }
543
+ },
544
+ "node_modules/@types/deep-eql": {
545
+ "version": "4.0.2",
546
+ "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
547
+ "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
548
+ "dev": true,
549
+ "license": "MIT"
550
+ },
551
+ "node_modules/@types/estree": {
552
+ "version": "1.0.9",
553
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
554
+ "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
555
+ "dev": true,
556
+ "license": "MIT"
557
+ },
558
+ "node_modules/@types/node": {
559
+ "version": "25.6.0",
560
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz",
561
+ "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==",
562
+ "dev": true,
563
+ "license": "MIT",
564
+ "dependencies": {
565
+ "undici-types": "~7.19.0"
566
+ }
567
+ },
568
+ "node_modules/@vitest/expect": {
569
+ "version": "4.1.5",
570
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.5.tgz",
571
+ "integrity": "sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==",
572
+ "dev": true,
573
+ "license": "MIT",
574
+ "dependencies": {
575
+ "@standard-schema/spec": "^1.1.0",
576
+ "@types/chai": "^5.2.2",
577
+ "@vitest/spy": "4.1.5",
578
+ "@vitest/utils": "4.1.5",
579
+ "chai": "^6.2.2",
580
+ "tinyrainbow": "^3.1.0"
581
+ },
582
+ "funding": {
583
+ "url": "https://opencollective.com/vitest"
584
+ }
585
+ },
586
+ "node_modules/@vitest/mocker": {
587
+ "version": "4.1.5",
588
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.5.tgz",
589
+ "integrity": "sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==",
590
+ "dev": true,
591
+ "license": "MIT",
592
+ "dependencies": {
593
+ "@vitest/spy": "4.1.5",
594
+ "estree-walker": "^3.0.3",
595
+ "magic-string": "^0.30.21"
596
+ },
597
+ "funding": {
598
+ "url": "https://opencollective.com/vitest"
599
+ },
600
+ "peerDependencies": {
601
+ "msw": "^2.4.9",
602
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
603
+ },
604
+ "peerDependenciesMeta": {
605
+ "msw": {
606
+ "optional": true
607
+ },
608
+ "vite": {
609
+ "optional": true
610
+ }
611
+ }
612
+ },
613
+ "node_modules/@vitest/pretty-format": {
614
+ "version": "4.1.5",
615
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.5.tgz",
616
+ "integrity": "sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==",
617
+ "dev": true,
618
+ "license": "MIT",
619
+ "dependencies": {
620
+ "tinyrainbow": "^3.1.0"
621
+ },
622
+ "funding": {
623
+ "url": "https://opencollective.com/vitest"
624
+ }
625
+ },
626
+ "node_modules/@vitest/runner": {
627
+ "version": "4.1.5",
628
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.5.tgz",
629
+ "integrity": "sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==",
630
+ "dev": true,
631
+ "license": "MIT",
632
+ "dependencies": {
633
+ "@vitest/utils": "4.1.5",
634
+ "pathe": "^2.0.3"
635
+ },
636
+ "funding": {
637
+ "url": "https://opencollective.com/vitest"
638
+ }
639
+ },
640
+ "node_modules/@vitest/snapshot": {
641
+ "version": "4.1.5",
642
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.5.tgz",
643
+ "integrity": "sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==",
644
+ "dev": true,
645
+ "license": "MIT",
646
+ "dependencies": {
647
+ "@vitest/pretty-format": "4.1.5",
648
+ "@vitest/utils": "4.1.5",
649
+ "magic-string": "^0.30.21",
650
+ "pathe": "^2.0.3"
651
+ },
652
+ "funding": {
653
+ "url": "https://opencollective.com/vitest"
654
+ }
655
+ },
656
+ "node_modules/@vitest/spy": {
657
+ "version": "4.1.5",
658
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.5.tgz",
659
+ "integrity": "sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==",
660
+ "dev": true,
661
+ "license": "MIT",
662
+ "funding": {
663
+ "url": "https://opencollective.com/vitest"
664
+ }
665
+ },
666
+ "node_modules/@vitest/utils": {
667
+ "version": "4.1.5",
668
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.5.tgz",
669
+ "integrity": "sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==",
670
+ "dev": true,
671
+ "license": "MIT",
672
+ "dependencies": {
673
+ "@vitest/pretty-format": "4.1.5",
674
+ "convert-source-map": "^2.0.0",
675
+ "tinyrainbow": "^3.1.0"
676
+ },
677
+ "funding": {
678
+ "url": "https://opencollective.com/vitest"
679
+ }
680
+ },
681
+ "node_modules/assertion-error": {
682
+ "version": "2.0.1",
683
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
684
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
685
+ "dev": true,
686
+ "license": "MIT",
687
+ "engines": {
688
+ "node": ">=12"
689
+ }
690
+ },
691
+ "node_modules/chai": {
692
+ "version": "6.2.2",
693
+ "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz",
694
+ "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==",
695
+ "dev": true,
696
+ "license": "MIT",
697
+ "engines": {
698
+ "node": ">=18"
699
+ }
700
+ },
701
+ "node_modules/convert-source-map": {
702
+ "version": "2.0.0",
703
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
704
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
705
+ "dev": true,
706
+ "license": "MIT"
707
+ },
708
+ "node_modules/detect-libc": {
709
+ "version": "2.1.2",
710
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
711
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
712
+ "dev": true,
713
+ "license": "Apache-2.0",
714
+ "engines": {
715
+ "node": ">=8"
716
+ }
717
+ },
718
+ "node_modules/es-module-lexer": {
719
+ "version": "2.1.0",
720
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz",
721
+ "integrity": "sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==",
722
+ "dev": true,
723
+ "license": "MIT"
724
+ },
725
+ "node_modules/estree-walker": {
726
+ "version": "3.0.3",
727
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
728
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
729
+ "dev": true,
730
+ "license": "MIT",
731
+ "dependencies": {
732
+ "@types/estree": "^1.0.0"
733
+ }
734
+ },
735
+ "node_modules/expect-type": {
736
+ "version": "1.3.0",
737
+ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz",
738
+ "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==",
739
+ "dev": true,
740
+ "license": "Apache-2.0",
741
+ "engines": {
742
+ "node": ">=12.0.0"
743
+ }
744
+ },
745
+ "node_modules/fdir": {
746
+ "version": "6.5.0",
747
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
748
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
749
+ "dev": true,
750
+ "license": "MIT",
751
+ "engines": {
752
+ "node": ">=12.0.0"
753
+ },
754
+ "peerDependencies": {
755
+ "picomatch": "^3 || ^4"
756
+ },
757
+ "peerDependenciesMeta": {
758
+ "picomatch": {
759
+ "optional": true
760
+ }
761
+ }
762
+ },
763
+ "node_modules/fsevents": {
764
+ "version": "2.3.3",
765
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
766
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
767
+ "dev": true,
768
+ "hasInstallScript": true,
769
+ "license": "MIT",
770
+ "optional": true,
771
+ "os": [
772
+ "darwin"
773
+ ],
774
+ "engines": {
775
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
776
+ }
777
+ },
778
+ "node_modules/lightningcss": {
779
+ "version": "1.32.0",
780
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
781
+ "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
782
+ "dev": true,
783
+ "license": "MPL-2.0",
784
+ "dependencies": {
785
+ "detect-libc": "^2.0.3"
786
+ },
787
+ "engines": {
788
+ "node": ">= 12.0.0"
789
+ },
790
+ "funding": {
791
+ "type": "opencollective",
792
+ "url": "https://opencollective.com/parcel"
793
+ },
794
+ "optionalDependencies": {
795
+ "lightningcss-android-arm64": "1.32.0",
796
+ "lightningcss-darwin-arm64": "1.32.0",
797
+ "lightningcss-darwin-x64": "1.32.0",
798
+ "lightningcss-freebsd-x64": "1.32.0",
799
+ "lightningcss-linux-arm-gnueabihf": "1.32.0",
800
+ "lightningcss-linux-arm64-gnu": "1.32.0",
801
+ "lightningcss-linux-arm64-musl": "1.32.0",
802
+ "lightningcss-linux-x64-gnu": "1.32.0",
803
+ "lightningcss-linux-x64-musl": "1.32.0",
804
+ "lightningcss-win32-arm64-msvc": "1.32.0",
805
+ "lightningcss-win32-x64-msvc": "1.32.0"
806
+ }
807
+ },
808
+ "node_modules/lightningcss-android-arm64": {
809
+ "version": "1.32.0",
810
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
811
+ "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
812
+ "cpu": [
813
+ "arm64"
814
+ ],
815
+ "dev": true,
816
+ "license": "MPL-2.0",
817
+ "optional": true,
818
+ "os": [
819
+ "android"
820
+ ],
821
+ "engines": {
822
+ "node": ">= 12.0.0"
823
+ },
824
+ "funding": {
825
+ "type": "opencollective",
826
+ "url": "https://opencollective.com/parcel"
827
+ }
828
+ },
829
+ "node_modules/lightningcss-darwin-arm64": {
830
+ "version": "1.32.0",
831
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
832
+ "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
833
+ "cpu": [
834
+ "arm64"
835
+ ],
836
+ "dev": true,
837
+ "license": "MPL-2.0",
838
+ "optional": true,
839
+ "os": [
840
+ "darwin"
841
+ ],
842
+ "engines": {
843
+ "node": ">= 12.0.0"
844
+ },
845
+ "funding": {
846
+ "type": "opencollective",
847
+ "url": "https://opencollective.com/parcel"
848
+ }
849
+ },
850
+ "node_modules/lightningcss-darwin-x64": {
851
+ "version": "1.32.0",
852
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
853
+ "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
854
+ "cpu": [
855
+ "x64"
856
+ ],
857
+ "dev": true,
858
+ "license": "MPL-2.0",
859
+ "optional": true,
860
+ "os": [
861
+ "darwin"
862
+ ],
863
+ "engines": {
864
+ "node": ">= 12.0.0"
865
+ },
866
+ "funding": {
867
+ "type": "opencollective",
868
+ "url": "https://opencollective.com/parcel"
869
+ }
870
+ },
871
+ "node_modules/lightningcss-freebsd-x64": {
872
+ "version": "1.32.0",
873
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
874
+ "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
875
+ "cpu": [
876
+ "x64"
877
+ ],
878
+ "dev": true,
879
+ "license": "MPL-2.0",
880
+ "optional": true,
881
+ "os": [
882
+ "freebsd"
883
+ ],
884
+ "engines": {
885
+ "node": ">= 12.0.0"
886
+ },
887
+ "funding": {
888
+ "type": "opencollective",
889
+ "url": "https://opencollective.com/parcel"
890
+ }
891
+ },
892
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
893
+ "version": "1.32.0",
894
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
895
+ "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
896
+ "cpu": [
897
+ "arm"
898
+ ],
899
+ "dev": true,
900
+ "license": "MPL-2.0",
901
+ "optional": true,
902
+ "os": [
903
+ "linux"
904
+ ],
905
+ "engines": {
906
+ "node": ">= 12.0.0"
907
+ },
908
+ "funding": {
909
+ "type": "opencollective",
910
+ "url": "https://opencollective.com/parcel"
911
+ }
912
+ },
913
+ "node_modules/lightningcss-linux-arm64-gnu": {
914
+ "version": "1.32.0",
915
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
916
+ "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
917
+ "cpu": [
918
+ "arm64"
919
+ ],
920
+ "dev": true,
921
+ "license": "MPL-2.0",
922
+ "optional": true,
923
+ "os": [
924
+ "linux"
925
+ ],
926
+ "engines": {
927
+ "node": ">= 12.0.0"
928
+ },
929
+ "funding": {
930
+ "type": "opencollective",
931
+ "url": "https://opencollective.com/parcel"
932
+ }
933
+ },
934
+ "node_modules/lightningcss-linux-arm64-musl": {
935
+ "version": "1.32.0",
936
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
937
+ "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
938
+ "cpu": [
939
+ "arm64"
940
+ ],
941
+ "dev": true,
942
+ "license": "MPL-2.0",
943
+ "optional": true,
944
+ "os": [
945
+ "linux"
946
+ ],
947
+ "engines": {
948
+ "node": ">= 12.0.0"
949
+ },
950
+ "funding": {
951
+ "type": "opencollective",
952
+ "url": "https://opencollective.com/parcel"
953
+ }
954
+ },
955
+ "node_modules/lightningcss-linux-x64-gnu": {
956
+ "version": "1.32.0",
957
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
958
+ "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
959
+ "cpu": [
960
+ "x64"
961
+ ],
962
+ "dev": true,
963
+ "license": "MPL-2.0",
964
+ "optional": true,
965
+ "os": [
966
+ "linux"
967
+ ],
968
+ "engines": {
969
+ "node": ">= 12.0.0"
970
+ },
971
+ "funding": {
972
+ "type": "opencollective",
973
+ "url": "https://opencollective.com/parcel"
974
+ }
975
+ },
976
+ "node_modules/lightningcss-linux-x64-musl": {
977
+ "version": "1.32.0",
978
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
979
+ "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
980
+ "cpu": [
981
+ "x64"
982
+ ],
983
+ "dev": true,
984
+ "license": "MPL-2.0",
985
+ "optional": true,
986
+ "os": [
987
+ "linux"
988
+ ],
989
+ "engines": {
990
+ "node": ">= 12.0.0"
991
+ },
992
+ "funding": {
993
+ "type": "opencollective",
994
+ "url": "https://opencollective.com/parcel"
995
+ }
996
+ },
997
+ "node_modules/lightningcss-win32-arm64-msvc": {
998
+ "version": "1.32.0",
999
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
1000
+ "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
1001
+ "cpu": [
1002
+ "arm64"
1003
+ ],
1004
+ "dev": true,
1005
+ "license": "MPL-2.0",
1006
+ "optional": true,
1007
+ "os": [
1008
+ "win32"
1009
+ ],
1010
+ "engines": {
1011
+ "node": ">= 12.0.0"
1012
+ },
1013
+ "funding": {
1014
+ "type": "opencollective",
1015
+ "url": "https://opencollective.com/parcel"
1016
+ }
1017
+ },
1018
+ "node_modules/lightningcss-win32-x64-msvc": {
1019
+ "version": "1.32.0",
1020
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
1021
+ "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
1022
+ "cpu": [
1023
+ "x64"
1024
+ ],
1025
+ "dev": true,
1026
+ "license": "MPL-2.0",
1027
+ "optional": true,
1028
+ "os": [
1029
+ "win32"
1030
+ ],
1031
+ "engines": {
1032
+ "node": ">= 12.0.0"
1033
+ },
1034
+ "funding": {
1035
+ "type": "opencollective",
1036
+ "url": "https://opencollective.com/parcel"
1037
+ }
1038
+ },
1039
+ "node_modules/magic-string": {
1040
+ "version": "0.30.21",
1041
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
1042
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
1043
+ "dev": true,
1044
+ "license": "MIT",
1045
+ "dependencies": {
1046
+ "@jridgewell/sourcemap-codec": "^1.5.5"
1047
+ }
1048
+ },
1049
+ "node_modules/nanoid": {
1050
+ "version": "3.3.12",
1051
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz",
1052
+ "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==",
1053
+ "dev": true,
1054
+ "funding": [
1055
+ {
1056
+ "type": "github",
1057
+ "url": "https://github.com/sponsors/ai"
1058
+ }
1059
+ ],
1060
+ "license": "MIT",
1061
+ "bin": {
1062
+ "nanoid": "bin/nanoid.cjs"
1063
+ },
1064
+ "engines": {
1065
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1066
+ }
1067
+ },
1068
+ "node_modules/obug": {
1069
+ "version": "2.1.1",
1070
+ "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz",
1071
+ "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==",
1072
+ "dev": true,
1073
+ "funding": [
1074
+ "https://github.com/sponsors/sxzz",
1075
+ "https://opencollective.com/debug"
1076
+ ],
1077
+ "license": "MIT"
1078
+ },
1079
+ "node_modules/pathe": {
1080
+ "version": "2.0.3",
1081
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
1082
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
1083
+ "dev": true,
1084
+ "license": "MIT"
1085
+ },
1086
+ "node_modules/picocolors": {
1087
+ "version": "1.1.1",
1088
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
1089
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
1090
+ "dev": true,
1091
+ "license": "ISC"
1092
+ },
1093
+ "node_modules/picomatch": {
1094
+ "version": "4.0.4",
1095
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
1096
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
1097
+ "dev": true,
1098
+ "license": "MIT",
1099
+ "engines": {
1100
+ "node": ">=12"
1101
+ },
1102
+ "funding": {
1103
+ "url": "https://github.com/sponsors/jonschlinkert"
1104
+ }
1105
+ },
1106
+ "node_modules/postcss": {
1107
+ "version": "8.5.14",
1108
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz",
1109
+ "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==",
1110
+ "dev": true,
1111
+ "funding": [
1112
+ {
1113
+ "type": "opencollective",
1114
+ "url": "https://opencollective.com/postcss/"
1115
+ },
1116
+ {
1117
+ "type": "tidelift",
1118
+ "url": "https://tidelift.com/funding/github/npm/postcss"
1119
+ },
1120
+ {
1121
+ "type": "github",
1122
+ "url": "https://github.com/sponsors/ai"
1123
+ }
1124
+ ],
1125
+ "license": "MIT",
1126
+ "dependencies": {
1127
+ "nanoid": "^3.3.11",
1128
+ "picocolors": "^1.1.1",
1129
+ "source-map-js": "^1.2.1"
1130
+ },
1131
+ "engines": {
1132
+ "node": "^10 || ^12 || >=14"
1133
+ }
1134
+ },
1135
+ "node_modules/rolldown": {
1136
+ "version": "1.0.0-rc.18",
1137
+ "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.18.tgz",
1138
+ "integrity": "sha512-phmyKBpuBdRYDf4hgyynGAYn/rDDe+iZXKVJ7WX5b1zQzpLkP5oJRPGsfJuHdzPMlyyEO/4sPW6yfSx2gf7lVg==",
1139
+ "dev": true,
1140
+ "license": "MIT",
1141
+ "dependencies": {
1142
+ "@oxc-project/types": "=0.128.0",
1143
+ "@rolldown/pluginutils": "1.0.0-rc.18"
1144
+ },
1145
+ "bin": {
1146
+ "rolldown": "bin/cli.mjs"
1147
+ },
1148
+ "engines": {
1149
+ "node": "^20.19.0 || >=22.12.0"
1150
+ },
1151
+ "optionalDependencies": {
1152
+ "@rolldown/binding-android-arm64": "1.0.0-rc.18",
1153
+ "@rolldown/binding-darwin-arm64": "1.0.0-rc.18",
1154
+ "@rolldown/binding-darwin-x64": "1.0.0-rc.18",
1155
+ "@rolldown/binding-freebsd-x64": "1.0.0-rc.18",
1156
+ "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.18",
1157
+ "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.18",
1158
+ "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.18",
1159
+ "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.18",
1160
+ "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.18",
1161
+ "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.18",
1162
+ "@rolldown/binding-linux-x64-musl": "1.0.0-rc.18",
1163
+ "@rolldown/binding-openharmony-arm64": "1.0.0-rc.18",
1164
+ "@rolldown/binding-wasm32-wasi": "1.0.0-rc.18",
1165
+ "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.18",
1166
+ "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.18"
1167
+ }
1168
+ },
1169
+ "node_modules/siginfo": {
1170
+ "version": "2.0.0",
1171
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
1172
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
1173
+ "dev": true,
1174
+ "license": "ISC"
1175
+ },
1176
+ "node_modules/source-map-js": {
1177
+ "version": "1.2.1",
1178
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
1179
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
1180
+ "dev": true,
1181
+ "license": "BSD-3-Clause",
1182
+ "engines": {
1183
+ "node": ">=0.10.0"
1184
+ }
1185
+ },
1186
+ "node_modules/stackback": {
1187
+ "version": "0.0.2",
1188
+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
1189
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
1190
+ "dev": true,
1191
+ "license": "MIT"
1192
+ },
1193
+ "node_modules/std-env": {
1194
+ "version": "4.1.0",
1195
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz",
1196
+ "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==",
1197
+ "dev": true,
1198
+ "license": "MIT"
1199
+ },
1200
+ "node_modules/tinybench": {
1201
+ "version": "2.9.0",
1202
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
1203
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
1204
+ "dev": true,
1205
+ "license": "MIT"
1206
+ },
1207
+ "node_modules/tinyexec": {
1208
+ "version": "1.1.2",
1209
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz",
1210
+ "integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==",
1211
+ "dev": true,
1212
+ "license": "MIT",
1213
+ "engines": {
1214
+ "node": ">=18"
1215
+ }
1216
+ },
1217
+ "node_modules/tinyglobby": {
1218
+ "version": "0.2.16",
1219
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
1220
+ "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==",
1221
+ "dev": true,
1222
+ "license": "MIT",
1223
+ "dependencies": {
1224
+ "fdir": "^6.5.0",
1225
+ "picomatch": "^4.0.4"
1226
+ },
1227
+ "engines": {
1228
+ "node": ">=12.0.0"
1229
+ },
1230
+ "funding": {
1231
+ "url": "https://github.com/sponsors/SuperchupuDev"
1232
+ }
1233
+ },
1234
+ "node_modules/tinyrainbow": {
1235
+ "version": "3.1.0",
1236
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz",
1237
+ "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==",
1238
+ "dev": true,
1239
+ "license": "MIT",
1240
+ "engines": {
1241
+ "node": ">=14.0.0"
1242
+ }
1243
+ },
1244
+ "node_modules/tslib": {
1245
+ "version": "2.8.1",
1246
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
1247
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
1248
+ "dev": true,
1249
+ "license": "0BSD",
1250
+ "optional": true
1251
+ },
1252
+ "node_modules/typescript": {
1253
+ "version": "6.0.3",
1254
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
1255
+ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
1256
+ "dev": true,
1257
+ "license": "Apache-2.0",
1258
+ "bin": {
1259
+ "tsc": "bin/tsc",
1260
+ "tsserver": "bin/tsserver"
1261
+ },
1262
+ "engines": {
1263
+ "node": ">=14.17"
1264
+ }
1265
+ },
1266
+ "node_modules/undici-types": {
1267
+ "version": "7.19.2",
1268
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz",
1269
+ "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==",
1270
+ "dev": true,
1271
+ "license": "MIT"
1272
+ },
1273
+ "node_modules/vite": {
1274
+ "version": "8.0.11",
1275
+ "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.11.tgz",
1276
+ "integrity": "sha512-Jz1mxtUBR5xTT65VOdJZUUeoyLtqljmFkiUXhPTLZka3RDc9vpi/xXkyrnsdRcm2lIi3l3GPMnAidTsEGIj3Ow==",
1277
+ "dev": true,
1278
+ "license": "MIT",
1279
+ "dependencies": {
1280
+ "lightningcss": "^1.32.0",
1281
+ "picomatch": "^4.0.4",
1282
+ "postcss": "^8.5.14",
1283
+ "rolldown": "1.0.0-rc.18",
1284
+ "tinyglobby": "^0.2.16"
1285
+ },
1286
+ "bin": {
1287
+ "vite": "bin/vite.js"
1288
+ },
1289
+ "engines": {
1290
+ "node": "^20.19.0 || >=22.12.0"
1291
+ },
1292
+ "funding": {
1293
+ "url": "https://github.com/vitejs/vite?sponsor=1"
1294
+ },
1295
+ "optionalDependencies": {
1296
+ "fsevents": "~2.3.3"
1297
+ },
1298
+ "peerDependencies": {
1299
+ "@types/node": "^20.19.0 || >=22.12.0",
1300
+ "@vitejs/devtools": "^0.1.18",
1301
+ "esbuild": "^0.27.0 || ^0.28.0",
1302
+ "jiti": ">=1.21.0",
1303
+ "less": "^4.0.0",
1304
+ "sass": "^1.70.0",
1305
+ "sass-embedded": "^1.70.0",
1306
+ "stylus": ">=0.54.8",
1307
+ "sugarss": "^5.0.0",
1308
+ "terser": "^5.16.0",
1309
+ "tsx": "^4.8.1",
1310
+ "yaml": "^2.4.2"
1311
+ },
1312
+ "peerDependenciesMeta": {
1313
+ "@types/node": {
1314
+ "optional": true
1315
+ },
1316
+ "@vitejs/devtools": {
1317
+ "optional": true
1318
+ },
1319
+ "esbuild": {
1320
+ "optional": true
1321
+ },
1322
+ "jiti": {
1323
+ "optional": true
1324
+ },
1325
+ "less": {
1326
+ "optional": true
1327
+ },
1328
+ "sass": {
1329
+ "optional": true
1330
+ },
1331
+ "sass-embedded": {
1332
+ "optional": true
1333
+ },
1334
+ "stylus": {
1335
+ "optional": true
1336
+ },
1337
+ "sugarss": {
1338
+ "optional": true
1339
+ },
1340
+ "terser": {
1341
+ "optional": true
1342
+ },
1343
+ "tsx": {
1344
+ "optional": true
1345
+ },
1346
+ "yaml": {
1347
+ "optional": true
1348
+ }
1349
+ }
1350
+ },
1351
+ "node_modules/vitest": {
1352
+ "version": "4.1.5",
1353
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.5.tgz",
1354
+ "integrity": "sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==",
1355
+ "dev": true,
1356
+ "license": "MIT",
1357
+ "dependencies": {
1358
+ "@vitest/expect": "4.1.5",
1359
+ "@vitest/mocker": "4.1.5",
1360
+ "@vitest/pretty-format": "4.1.5",
1361
+ "@vitest/runner": "4.1.5",
1362
+ "@vitest/snapshot": "4.1.5",
1363
+ "@vitest/spy": "4.1.5",
1364
+ "@vitest/utils": "4.1.5",
1365
+ "es-module-lexer": "^2.0.0",
1366
+ "expect-type": "^1.3.0",
1367
+ "magic-string": "^0.30.21",
1368
+ "obug": "^2.1.1",
1369
+ "pathe": "^2.0.3",
1370
+ "picomatch": "^4.0.3",
1371
+ "std-env": "^4.0.0-rc.1",
1372
+ "tinybench": "^2.9.0",
1373
+ "tinyexec": "^1.0.2",
1374
+ "tinyglobby": "^0.2.15",
1375
+ "tinyrainbow": "^3.1.0",
1376
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0",
1377
+ "why-is-node-running": "^2.3.0"
1378
+ },
1379
+ "bin": {
1380
+ "vitest": "vitest.mjs"
1381
+ },
1382
+ "engines": {
1383
+ "node": "^20.0.0 || ^22.0.0 || >=24.0.0"
1384
+ },
1385
+ "funding": {
1386
+ "url": "https://opencollective.com/vitest"
1387
+ },
1388
+ "peerDependencies": {
1389
+ "@edge-runtime/vm": "*",
1390
+ "@opentelemetry/api": "^1.9.0",
1391
+ "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
1392
+ "@vitest/browser-playwright": "4.1.5",
1393
+ "@vitest/browser-preview": "4.1.5",
1394
+ "@vitest/browser-webdriverio": "4.1.5",
1395
+ "@vitest/coverage-istanbul": "4.1.5",
1396
+ "@vitest/coverage-v8": "4.1.5",
1397
+ "@vitest/ui": "4.1.5",
1398
+ "happy-dom": "*",
1399
+ "jsdom": "*",
1400
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0"
1401
+ },
1402
+ "peerDependenciesMeta": {
1403
+ "@edge-runtime/vm": {
1404
+ "optional": true
1405
+ },
1406
+ "@opentelemetry/api": {
1407
+ "optional": true
1408
+ },
1409
+ "@types/node": {
1410
+ "optional": true
1411
+ },
1412
+ "@vitest/browser-playwright": {
1413
+ "optional": true
1414
+ },
1415
+ "@vitest/browser-preview": {
1416
+ "optional": true
1417
+ },
1418
+ "@vitest/browser-webdriverio": {
1419
+ "optional": true
1420
+ },
1421
+ "@vitest/coverage-istanbul": {
1422
+ "optional": true
1423
+ },
1424
+ "@vitest/coverage-v8": {
1425
+ "optional": true
1426
+ },
1427
+ "@vitest/ui": {
1428
+ "optional": true
1429
+ },
1430
+ "happy-dom": {
1431
+ "optional": true
1432
+ },
1433
+ "jsdom": {
1434
+ "optional": true
1435
+ },
1436
+ "vite": {
1437
+ "optional": false
1438
+ }
1439
+ }
1440
+ },
1441
+ "node_modules/why-is-node-running": {
1442
+ "version": "2.3.0",
1443
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
1444
+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
1445
+ "dev": true,
1446
+ "license": "MIT",
1447
+ "dependencies": {
1448
+ "siginfo": "^2.0.0",
1449
+ "stackback": "0.0.2"
1450
+ },
1451
+ "bin": {
1452
+ "why-is-node-running": "cli.js"
1453
+ },
1454
+ "engines": {
1455
+ "node": ">=8"
1456
+ }
1457
+ }
1458
+ }
1459
+ }
package.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "projeto-talp1",
3
+ "version": "0.0.1",
4
+ "description": "Projeto de TALP 1",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "test": "vitest",
8
+ "coverage": "vitest run --coverage",
9
+ "build": "tsc",
10
+ "start": "npm run build && node dist/index.js"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/uandersonricardo/projeto-talp1.git"
15
+ },
16
+ "author": "",
17
+ "license": "ISC",
18
+ "bugs": {
19
+ "url": "https://github.com/uandersonricardo/projeto-talp1/issues"
20
+ },
21
+ "homepage": "https://github.com/uandersonricardo/projeto-talp1#readme",
22
+ "devDependencies": {
23
+ "@biomejs/biome": "2.4.14",
24
+ "@types/node": "^25.6.0",
25
+ "typescript": "^6.0.3",
26
+ "vitest": "^4.1.5"
27
+ }
28
+ }
src/index.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ console.log("TALP 1");
tsconfig.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ // Visit https://aka.ms/tsconfig to read more about this file
3
+ "include": [
4
+ "src/**/*"
5
+ ],
6
+ "compilerOptions": {
7
+ "rootDir": "./src",
8
+ "outDir": "./dist",
9
+ "module": "nodenext",
10
+ "target": "esnext",
11
+ "types": [
12
+ "node"
13
+ ],
14
+ "esModuleInterop": true,
15
+ "rewriteRelativeImportExtensions": true,
16
+ "sourceMap": false,
17
+ "declaration": false,
18
+ "declarationMap": false,
19
+ "noUncheckedIndexedAccess": false,
20
+ "exactOptionalPropertyTypes": false,
21
+ "strict": true,
22
+ "jsx": "react-jsx",
23
+ "verbatimModuleSyntax": false,
24
+ "isolatedModules": true,
25
+ "noUncheckedSideEffectImports": true,
26
+ "moduleDetection": "force",
27
+ "skipLibCheck": true,
28
+ }
29
+ }
vitest.config.ts ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { defineConfig } from "vitest/config";
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ globals: true,
6
+ environment: "node",
7
+ include: ["src/**/*.test.ts", "tests/**/*.test.ts"],
8
+ coverage: {
9
+ provider: "v8",
10
+ include: ["src/**/*.ts"],
11
+ exclude: ["src/**/*.test.ts"],
12
+ },
13
+ },
14
+ });