Spaces:
Build error
Build error
Gmagl commited on
Commit ·
21b315e
1
Parent(s): 65d613a
fix: corregir ESLint v10→v9, bug de slug en Character, eliminar webhook duplicado, añadir páginas success/cancel, limpiar build.log
Browse files- package-lock.json +389 -59
- package.json +2 -2
- src/app/api/characters/route.ts +19 -1
- src/app/api/payments/stripe-webhook/route.ts +0 -40
- src/app/cancel/page.tsx +24 -0
- src/app/success/page.tsx +46 -0
package-lock.json
CHANGED
|
@@ -68,7 +68,7 @@
|
|
| 68 |
"@types/node": "25.3.2",
|
| 69 |
"@types/react": "^19",
|
| 70 |
"@types/react-dom": "^19",
|
| 71 |
-
"eslint": "^
|
| 72 |
"eslint-config-next": "^16.1.6",
|
| 73 |
"tailwindcss": "^4",
|
| 74 |
"typescript": "^5"
|
|
@@ -442,68 +442,180 @@
|
|
| 442 |
}
|
| 443 |
},
|
| 444 |
"node_modules/@eslint/config-array": {
|
| 445 |
-
"version": "0.
|
| 446 |
-
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.
|
| 447 |
-
"integrity": "sha512-
|
| 448 |
"dev": true,
|
| 449 |
"license": "Apache-2.0",
|
| 450 |
"dependencies": {
|
| 451 |
-
"@eslint/object-schema": "^
|
| 452 |
"debug": "^4.3.1",
|
| 453 |
-
"minimatch": "^
|
| 454 |
},
|
| 455 |
"engines": {
|
| 456 |
-
"node": "^
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 457 |
}
|
| 458 |
},
|
| 459 |
"node_modules/@eslint/config-helpers": {
|
| 460 |
-
"version": "0.
|
| 461 |
-
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.
|
| 462 |
-
"integrity": "sha512-
|
| 463 |
"dev": true,
|
| 464 |
"license": "Apache-2.0",
|
| 465 |
"dependencies": {
|
| 466 |
-
"@eslint/core": "^
|
| 467 |
},
|
| 468 |
"engines": {
|
| 469 |
-
"node": "^
|
| 470 |
}
|
| 471 |
},
|
| 472 |
"node_modules/@eslint/core": {
|
| 473 |
-
"version": "
|
| 474 |
-
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-
|
| 475 |
-
"integrity": "sha512-/
|
| 476 |
"dev": true,
|
| 477 |
"license": "Apache-2.0",
|
| 478 |
"dependencies": {
|
| 479 |
"@types/json-schema": "^7.0.15"
|
| 480 |
},
|
| 481 |
"engines": {
|
| 482 |
-
"node": "^
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 483 |
}
|
| 484 |
},
|
| 485 |
"node_modules/@eslint/object-schema": {
|
| 486 |
-
"version": "
|
| 487 |
-
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-
|
| 488 |
-
"integrity": "sha512-
|
| 489 |
"dev": true,
|
| 490 |
"license": "Apache-2.0",
|
| 491 |
"engines": {
|
| 492 |
-
"node": "^
|
| 493 |
}
|
| 494 |
},
|
| 495 |
"node_modules/@eslint/plugin-kit": {
|
| 496 |
-
"version": "0.
|
| 497 |
-
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.
|
| 498 |
-
"integrity": "sha512-
|
| 499 |
"dev": true,
|
| 500 |
"license": "Apache-2.0",
|
| 501 |
"dependencies": {
|
| 502 |
-
"@eslint/core": "^
|
| 503 |
"levn": "^0.4.1"
|
| 504 |
},
|
| 505 |
"engines": {
|
| 506 |
-
"node": "^
|
| 507 |
}
|
| 508 |
},
|
| 509 |
"node_modules/@floating-ui/core": {
|
|
@@ -3469,13 +3581,6 @@
|
|
| 3469 |
"integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
|
| 3470 |
"license": "MIT"
|
| 3471 |
},
|
| 3472 |
-
"node_modules/@types/esrecurse": {
|
| 3473 |
-
"version": "4.3.1",
|
| 3474 |
-
"resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz",
|
| 3475 |
-
"integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==",
|
| 3476 |
-
"dev": true,
|
| 3477 |
-
"license": "MIT"
|
| 3478 |
-
},
|
| 3479 |
"node_modules/@types/estree": {
|
| 3480 |
"version": "1.0.8",
|
| 3481 |
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
|
|
@@ -4072,6 +4177,29 @@
|
|
| 4072 |
"url": "https://github.com/sponsors/epoberezkin"
|
| 4073 |
}
|
| 4074 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4075 |
"node_modules/aria-hidden": {
|
| 4076 |
"version": "1.2.6",
|
| 4077 |
"resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",
|
|
@@ -4468,6 +4596,16 @@
|
|
| 4468 |
"url": "https://github.com/sponsors/ljharb"
|
| 4469 |
}
|
| 4470 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4471 |
"node_modules/caniuse-lite": {
|
| 4472 |
"version": "1.0.30001774",
|
| 4473 |
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001774.tgz",
|
|
@@ -4488,6 +4626,23 @@
|
|
| 4488 |
],
|
| 4489 |
"license": "CC-BY-4.0"
|
| 4490 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4491 |
"node_modules/chokidar": {
|
| 4492 |
"version": "4.0.3",
|
| 4493 |
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
|
|
@@ -4555,6 +4710,26 @@
|
|
| 4555 |
"react-dom": "^18 || ^19 || ^19.0.0-rc"
|
| 4556 |
}
|
| 4557 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4558 |
"node_modules/concat-map": {
|
| 4559 |
"version": "0.0.1",
|
| 4560 |
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
|
@@ -5234,30 +5409,33 @@
|
|
| 5234 |
}
|
| 5235 |
},
|
| 5236 |
"node_modules/eslint": {
|
| 5237 |
-
"version": "
|
| 5238 |
-
"resolved": "https://registry.npmjs.org/eslint/-/eslint-
|
| 5239 |
-
"integrity": "sha512-
|
| 5240 |
"dev": true,
|
| 5241 |
"license": "MIT",
|
| 5242 |
"dependencies": {
|
| 5243 |
"@eslint-community/eslint-utils": "^4.8.0",
|
| 5244 |
-
"@eslint-community/regexpp": "^4.12.
|
| 5245 |
-
"@eslint/config-array": "^0.
|
| 5246 |
-
"@eslint/config-helpers": "^0.
|
| 5247 |
-
"@eslint/core": "^
|
| 5248 |
-
"@eslint/
|
|
|
|
|
|
|
| 5249 |
"@humanfs/node": "^0.16.6",
|
| 5250 |
"@humanwhocodes/module-importer": "^1.0.1",
|
| 5251 |
"@humanwhocodes/retry": "^0.4.2",
|
| 5252 |
"@types/estree": "^1.0.6",
|
| 5253 |
-
"ajv": "^6.
|
|
|
|
| 5254 |
"cross-spawn": "^7.0.6",
|
| 5255 |
"debug": "^4.3.2",
|
| 5256 |
"escape-string-regexp": "^4.0.0",
|
| 5257 |
-
"eslint-scope": "^
|
| 5258 |
-
"eslint-visitor-keys": "^
|
| 5259 |
-
"espree": "^
|
| 5260 |
-
"esquery": "^1.
|
| 5261 |
"esutils": "^2.0.2",
|
| 5262 |
"fast-deep-equal": "^3.1.3",
|
| 5263 |
"file-entry-cache": "^8.0.0",
|
|
@@ -5267,7 +5445,8 @@
|
|
| 5267 |
"imurmurhash": "^0.1.4",
|
| 5268 |
"is-glob": "^4.0.0",
|
| 5269 |
"json-stable-stringify-without-jsonify": "^1.0.1",
|
| 5270 |
-
"
|
|
|
|
| 5271 |
"natural-compare": "^1.4.0",
|
| 5272 |
"optionator": "^0.9.3"
|
| 5273 |
},
|
|
@@ -5275,7 +5454,7 @@
|
|
| 5275 |
"eslint": "bin/eslint.js"
|
| 5276 |
},
|
| 5277 |
"engines": {
|
| 5278 |
-
"node": "^
|
| 5279 |
},
|
| 5280 |
"funding": {
|
| 5281 |
"url": "https://eslint.org/donate"
|
|
@@ -5594,19 +5773,17 @@
|
|
| 5594 |
}
|
| 5595 |
},
|
| 5596 |
"node_modules/eslint-scope": {
|
| 5597 |
-
"version": "
|
| 5598 |
-
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-
|
| 5599 |
-
"integrity": "sha512-
|
| 5600 |
"dev": true,
|
| 5601 |
"license": "BSD-2-Clause",
|
| 5602 |
"dependencies": {
|
| 5603 |
-
"@types/esrecurse": "^4.3.1",
|
| 5604 |
-
"@types/estree": "^1.0.8",
|
| 5605 |
"esrecurse": "^4.3.0",
|
| 5606 |
"estraverse": "^5.2.0"
|
| 5607 |
},
|
| 5608 |
"engines": {
|
| 5609 |
-
"node": "^
|
| 5610 |
},
|
| 5611 |
"funding": {
|
| 5612 |
"url": "https://opencollective.com/eslint"
|
|
@@ -5625,19 +5802,76 @@
|
|
| 5625 |
"url": "https://opencollective.com/eslint"
|
| 5626 |
}
|
| 5627 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5628 |
"node_modules/espree": {
|
| 5629 |
-
"version": "
|
| 5630 |
-
"resolved": "https://registry.npmjs.org/espree/-/espree-
|
| 5631 |
-
"integrity": "sha512-
|
| 5632 |
"dev": true,
|
| 5633 |
"license": "BSD-2-Clause",
|
| 5634 |
"dependencies": {
|
| 5635 |
-
"acorn": "^8.
|
| 5636 |
"acorn-jsx": "^5.3.2",
|
| 5637 |
-
"eslint-visitor-keys": "^
|
| 5638 |
},
|
| 5639 |
"engines": {
|
| 5640 |
-
"node": "^
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5641 |
},
|
| 5642 |
"funding": {
|
| 5643 |
"url": "https://opencollective.com/eslint"
|
|
@@ -6124,6 +6358,16 @@
|
|
| 6124 |
"url": "https://github.com/sponsors/ljharb"
|
| 6125 |
}
|
| 6126 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6127 |
"node_modules/has-property-descriptors": {
|
| 6128 |
"version": "1.0.2",
|
| 6129 |
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
|
|
@@ -6232,6 +6476,23 @@
|
|
| 6232 |
"url": "https://opencollective.com/immer"
|
| 6233 |
}
|
| 6234 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6235 |
"node_modules/imurmurhash": {
|
| 6236 |
"version": "0.1.4",
|
| 6237 |
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
|
@@ -6726,6 +6987,19 @@
|
|
| 6726 |
"dev": true,
|
| 6727 |
"license": "MIT"
|
| 6728 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6729 |
"node_modules/jsesc": {
|
| 6730 |
"version": "3.1.0",
|
| 6731 |
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
|
|
@@ -7110,6 +7384,13 @@
|
|
| 7110 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 7111 |
}
|
| 7112 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7113 |
"node_modules/loose-envify": {
|
| 7114 |
"version": "1.4.0",
|
| 7115 |
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
|
@@ -7627,6 +7908,19 @@
|
|
| 7627 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 7628 |
}
|
| 7629 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7630 |
"node_modules/path-exists": {
|
| 7631 |
"version": "4.0.0",
|
| 7632 |
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
|
@@ -8143,6 +8437,16 @@
|
|
| 8143 |
"url": "https://github.com/sponsors/ljharb"
|
| 8144 |
}
|
| 8145 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8146 |
"node_modules/resolve-pkg-maps": {
|
| 8147 |
"version": "1.0.0",
|
| 8148 |
"resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
|
|
@@ -8618,6 +8922,19 @@
|
|
| 8618 |
"node": ">=4"
|
| 8619 |
}
|
| 8620 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8621 |
"node_modules/stripe": {
|
| 8622 |
"version": "20.4.0",
|
| 8623 |
"resolved": "https://registry.npmjs.org/stripe/-/stripe-20.4.0.tgz",
|
|
@@ -8658,6 +8975,19 @@
|
|
| 8658 |
}
|
| 8659 |
}
|
| 8660 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8661 |
"node_modules/supports-preserve-symlinks-flag": {
|
| 8662 |
"version": "1.0.0",
|
| 8663 |
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
|
|
|
| 68 |
"@types/node": "25.3.2",
|
| 69 |
"@types/react": "^19",
|
| 70 |
"@types/react-dom": "^19",
|
| 71 |
+
"eslint": "^9.0.0",
|
| 72 |
"eslint-config-next": "^16.1.6",
|
| 73 |
"tailwindcss": "^4",
|
| 74 |
"typescript": "^5"
|
|
|
|
| 442 |
}
|
| 443 |
},
|
| 444 |
"node_modules/@eslint/config-array": {
|
| 445 |
+
"version": "0.21.1",
|
| 446 |
+
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz",
|
| 447 |
+
"integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==",
|
| 448 |
"dev": true,
|
| 449 |
"license": "Apache-2.0",
|
| 450 |
"dependencies": {
|
| 451 |
+
"@eslint/object-schema": "^2.1.7",
|
| 452 |
"debug": "^4.3.1",
|
| 453 |
+
"minimatch": "^3.1.2"
|
| 454 |
},
|
| 455 |
"engines": {
|
| 456 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 457 |
+
}
|
| 458 |
+
},
|
| 459 |
+
"node_modules/@eslint/config-array/node_modules/balanced-match": {
|
| 460 |
+
"version": "1.0.2",
|
| 461 |
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
| 462 |
+
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
| 463 |
+
"dev": true,
|
| 464 |
+
"license": "MIT"
|
| 465 |
+
},
|
| 466 |
+
"node_modules/@eslint/config-array/node_modules/brace-expansion": {
|
| 467 |
+
"version": "1.1.12",
|
| 468 |
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
| 469 |
+
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
| 470 |
+
"dev": true,
|
| 471 |
+
"license": "MIT",
|
| 472 |
+
"dependencies": {
|
| 473 |
+
"balanced-match": "^1.0.0",
|
| 474 |
+
"concat-map": "0.0.1"
|
| 475 |
+
}
|
| 476 |
+
},
|
| 477 |
+
"node_modules/@eslint/config-array/node_modules/minimatch": {
|
| 478 |
+
"version": "3.1.5",
|
| 479 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
|
| 480 |
+
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
|
| 481 |
+
"dev": true,
|
| 482 |
+
"license": "ISC",
|
| 483 |
+
"dependencies": {
|
| 484 |
+
"brace-expansion": "^1.1.7"
|
| 485 |
+
},
|
| 486 |
+
"engines": {
|
| 487 |
+
"node": "*"
|
| 488 |
}
|
| 489 |
},
|
| 490 |
"node_modules/@eslint/config-helpers": {
|
| 491 |
+
"version": "0.4.2",
|
| 492 |
+
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz",
|
| 493 |
+
"integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==",
|
| 494 |
"dev": true,
|
| 495 |
"license": "Apache-2.0",
|
| 496 |
"dependencies": {
|
| 497 |
+
"@eslint/core": "^0.17.0"
|
| 498 |
},
|
| 499 |
"engines": {
|
| 500 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 501 |
}
|
| 502 |
},
|
| 503 |
"node_modules/@eslint/core": {
|
| 504 |
+
"version": "0.17.0",
|
| 505 |
+
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz",
|
| 506 |
+
"integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==",
|
| 507 |
"dev": true,
|
| 508 |
"license": "Apache-2.0",
|
| 509 |
"dependencies": {
|
| 510 |
"@types/json-schema": "^7.0.15"
|
| 511 |
},
|
| 512 |
"engines": {
|
| 513 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 514 |
+
}
|
| 515 |
+
},
|
| 516 |
+
"node_modules/@eslint/eslintrc": {
|
| 517 |
+
"version": "3.3.4",
|
| 518 |
+
"resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.4.tgz",
|
| 519 |
+
"integrity": "sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==",
|
| 520 |
+
"dev": true,
|
| 521 |
+
"license": "MIT",
|
| 522 |
+
"dependencies": {
|
| 523 |
+
"ajv": "^6.14.0",
|
| 524 |
+
"debug": "^4.3.2",
|
| 525 |
+
"espree": "^10.0.1",
|
| 526 |
+
"globals": "^14.0.0",
|
| 527 |
+
"ignore": "^5.2.0",
|
| 528 |
+
"import-fresh": "^3.2.1",
|
| 529 |
+
"js-yaml": "^4.1.1",
|
| 530 |
+
"minimatch": "^3.1.3",
|
| 531 |
+
"strip-json-comments": "^3.1.1"
|
| 532 |
+
},
|
| 533 |
+
"engines": {
|
| 534 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 535 |
+
},
|
| 536 |
+
"funding": {
|
| 537 |
+
"url": "https://opencollective.com/eslint"
|
| 538 |
+
}
|
| 539 |
+
},
|
| 540 |
+
"node_modules/@eslint/eslintrc/node_modules/balanced-match": {
|
| 541 |
+
"version": "1.0.2",
|
| 542 |
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
| 543 |
+
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
| 544 |
+
"dev": true,
|
| 545 |
+
"license": "MIT"
|
| 546 |
+
},
|
| 547 |
+
"node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
|
| 548 |
+
"version": "1.1.12",
|
| 549 |
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
| 550 |
+
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
| 551 |
+
"dev": true,
|
| 552 |
+
"license": "MIT",
|
| 553 |
+
"dependencies": {
|
| 554 |
+
"balanced-match": "^1.0.0",
|
| 555 |
+
"concat-map": "0.0.1"
|
| 556 |
+
}
|
| 557 |
+
},
|
| 558 |
+
"node_modules/@eslint/eslintrc/node_modules/globals": {
|
| 559 |
+
"version": "14.0.0",
|
| 560 |
+
"resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
|
| 561 |
+
"integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
|
| 562 |
+
"dev": true,
|
| 563 |
+
"license": "MIT",
|
| 564 |
+
"engines": {
|
| 565 |
+
"node": ">=18"
|
| 566 |
+
},
|
| 567 |
+
"funding": {
|
| 568 |
+
"url": "https://github.com/sponsors/sindresorhus"
|
| 569 |
+
}
|
| 570 |
+
},
|
| 571 |
+
"node_modules/@eslint/eslintrc/node_modules/minimatch": {
|
| 572 |
+
"version": "3.1.5",
|
| 573 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
|
| 574 |
+
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
|
| 575 |
+
"dev": true,
|
| 576 |
+
"license": "ISC",
|
| 577 |
+
"dependencies": {
|
| 578 |
+
"brace-expansion": "^1.1.7"
|
| 579 |
+
},
|
| 580 |
+
"engines": {
|
| 581 |
+
"node": "*"
|
| 582 |
+
}
|
| 583 |
+
},
|
| 584 |
+
"node_modules/@eslint/js": {
|
| 585 |
+
"version": "9.39.3",
|
| 586 |
+
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.3.tgz",
|
| 587 |
+
"integrity": "sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==",
|
| 588 |
+
"dev": true,
|
| 589 |
+
"license": "MIT",
|
| 590 |
+
"engines": {
|
| 591 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 592 |
+
},
|
| 593 |
+
"funding": {
|
| 594 |
+
"url": "https://eslint.org/donate"
|
| 595 |
}
|
| 596 |
},
|
| 597 |
"node_modules/@eslint/object-schema": {
|
| 598 |
+
"version": "2.1.7",
|
| 599 |
+
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz",
|
| 600 |
+
"integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==",
|
| 601 |
"dev": true,
|
| 602 |
"license": "Apache-2.0",
|
| 603 |
"engines": {
|
| 604 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 605 |
}
|
| 606 |
},
|
| 607 |
"node_modules/@eslint/plugin-kit": {
|
| 608 |
+
"version": "0.4.1",
|
| 609 |
+
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz",
|
| 610 |
+
"integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==",
|
| 611 |
"dev": true,
|
| 612 |
"license": "Apache-2.0",
|
| 613 |
"dependencies": {
|
| 614 |
+
"@eslint/core": "^0.17.0",
|
| 615 |
"levn": "^0.4.1"
|
| 616 |
},
|
| 617 |
"engines": {
|
| 618 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 619 |
}
|
| 620 |
},
|
| 621 |
"node_modules/@floating-ui/core": {
|
|
|
|
| 3581 |
"integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
|
| 3582 |
"license": "MIT"
|
| 3583 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3584 |
"node_modules/@types/estree": {
|
| 3585 |
"version": "1.0.8",
|
| 3586 |
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
|
|
|
|
| 4177 |
"url": "https://github.com/sponsors/epoberezkin"
|
| 4178 |
}
|
| 4179 |
},
|
| 4180 |
+
"node_modules/ansi-styles": {
|
| 4181 |
+
"version": "4.3.0",
|
| 4182 |
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
| 4183 |
+
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
| 4184 |
+
"dev": true,
|
| 4185 |
+
"license": "MIT",
|
| 4186 |
+
"dependencies": {
|
| 4187 |
+
"color-convert": "^2.0.1"
|
| 4188 |
+
},
|
| 4189 |
+
"engines": {
|
| 4190 |
+
"node": ">=8"
|
| 4191 |
+
},
|
| 4192 |
+
"funding": {
|
| 4193 |
+
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
| 4194 |
+
}
|
| 4195 |
+
},
|
| 4196 |
+
"node_modules/argparse": {
|
| 4197 |
+
"version": "2.0.1",
|
| 4198 |
+
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
| 4199 |
+
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
| 4200 |
+
"dev": true,
|
| 4201 |
+
"license": "Python-2.0"
|
| 4202 |
+
},
|
| 4203 |
"node_modules/aria-hidden": {
|
| 4204 |
"version": "1.2.6",
|
| 4205 |
"resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",
|
|
|
|
| 4596 |
"url": "https://github.com/sponsors/ljharb"
|
| 4597 |
}
|
| 4598 |
},
|
| 4599 |
+
"node_modules/callsites": {
|
| 4600 |
+
"version": "3.1.0",
|
| 4601 |
+
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
| 4602 |
+
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
|
| 4603 |
+
"dev": true,
|
| 4604 |
+
"license": "MIT",
|
| 4605 |
+
"engines": {
|
| 4606 |
+
"node": ">=6"
|
| 4607 |
+
}
|
| 4608 |
+
},
|
| 4609 |
"node_modules/caniuse-lite": {
|
| 4610 |
"version": "1.0.30001774",
|
| 4611 |
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001774.tgz",
|
|
|
|
| 4626 |
],
|
| 4627 |
"license": "CC-BY-4.0"
|
| 4628 |
},
|
| 4629 |
+
"node_modules/chalk": {
|
| 4630 |
+
"version": "4.1.2",
|
| 4631 |
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
| 4632 |
+
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
| 4633 |
+
"dev": true,
|
| 4634 |
+
"license": "MIT",
|
| 4635 |
+
"dependencies": {
|
| 4636 |
+
"ansi-styles": "^4.1.0",
|
| 4637 |
+
"supports-color": "^7.1.0"
|
| 4638 |
+
},
|
| 4639 |
+
"engines": {
|
| 4640 |
+
"node": ">=10"
|
| 4641 |
+
},
|
| 4642 |
+
"funding": {
|
| 4643 |
+
"url": "https://github.com/chalk/chalk?sponsor=1"
|
| 4644 |
+
}
|
| 4645 |
+
},
|
| 4646 |
"node_modules/chokidar": {
|
| 4647 |
"version": "4.0.3",
|
| 4648 |
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
|
|
|
|
| 4710 |
"react-dom": "^18 || ^19 || ^19.0.0-rc"
|
| 4711 |
}
|
| 4712 |
},
|
| 4713 |
+
"node_modules/color-convert": {
|
| 4714 |
+
"version": "2.0.1",
|
| 4715 |
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
| 4716 |
+
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
| 4717 |
+
"dev": true,
|
| 4718 |
+
"license": "MIT",
|
| 4719 |
+
"dependencies": {
|
| 4720 |
+
"color-name": "~1.1.4"
|
| 4721 |
+
},
|
| 4722 |
+
"engines": {
|
| 4723 |
+
"node": ">=7.0.0"
|
| 4724 |
+
}
|
| 4725 |
+
},
|
| 4726 |
+
"node_modules/color-name": {
|
| 4727 |
+
"version": "1.1.4",
|
| 4728 |
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
| 4729 |
+
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
| 4730 |
+
"dev": true,
|
| 4731 |
+
"license": "MIT"
|
| 4732 |
+
},
|
| 4733 |
"node_modules/concat-map": {
|
| 4734 |
"version": "0.0.1",
|
| 4735 |
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
|
|
|
| 5409 |
}
|
| 5410 |
},
|
| 5411 |
"node_modules/eslint": {
|
| 5412 |
+
"version": "9.39.3",
|
| 5413 |
+
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.3.tgz",
|
| 5414 |
+
"integrity": "sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==",
|
| 5415 |
"dev": true,
|
| 5416 |
"license": "MIT",
|
| 5417 |
"dependencies": {
|
| 5418 |
"@eslint-community/eslint-utils": "^4.8.0",
|
| 5419 |
+
"@eslint-community/regexpp": "^4.12.1",
|
| 5420 |
+
"@eslint/config-array": "^0.21.1",
|
| 5421 |
+
"@eslint/config-helpers": "^0.4.2",
|
| 5422 |
+
"@eslint/core": "^0.17.0",
|
| 5423 |
+
"@eslint/eslintrc": "^3.3.1",
|
| 5424 |
+
"@eslint/js": "9.39.3",
|
| 5425 |
+
"@eslint/plugin-kit": "^0.4.1",
|
| 5426 |
"@humanfs/node": "^0.16.6",
|
| 5427 |
"@humanwhocodes/module-importer": "^1.0.1",
|
| 5428 |
"@humanwhocodes/retry": "^0.4.2",
|
| 5429 |
"@types/estree": "^1.0.6",
|
| 5430 |
+
"ajv": "^6.12.4",
|
| 5431 |
+
"chalk": "^4.0.0",
|
| 5432 |
"cross-spawn": "^7.0.6",
|
| 5433 |
"debug": "^4.3.2",
|
| 5434 |
"escape-string-regexp": "^4.0.0",
|
| 5435 |
+
"eslint-scope": "^8.4.0",
|
| 5436 |
+
"eslint-visitor-keys": "^4.2.1",
|
| 5437 |
+
"espree": "^10.4.0",
|
| 5438 |
+
"esquery": "^1.5.0",
|
| 5439 |
"esutils": "^2.0.2",
|
| 5440 |
"fast-deep-equal": "^3.1.3",
|
| 5441 |
"file-entry-cache": "^8.0.0",
|
|
|
|
| 5445 |
"imurmurhash": "^0.1.4",
|
| 5446 |
"is-glob": "^4.0.0",
|
| 5447 |
"json-stable-stringify-without-jsonify": "^1.0.1",
|
| 5448 |
+
"lodash.merge": "^4.6.2",
|
| 5449 |
+
"minimatch": "^3.1.2",
|
| 5450 |
"natural-compare": "^1.4.0",
|
| 5451 |
"optionator": "^0.9.3"
|
| 5452 |
},
|
|
|
|
| 5454 |
"eslint": "bin/eslint.js"
|
| 5455 |
},
|
| 5456 |
"engines": {
|
| 5457 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 5458 |
},
|
| 5459 |
"funding": {
|
| 5460 |
"url": "https://eslint.org/donate"
|
|
|
|
| 5773 |
}
|
| 5774 |
},
|
| 5775 |
"node_modules/eslint-scope": {
|
| 5776 |
+
"version": "8.4.0",
|
| 5777 |
+
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
|
| 5778 |
+
"integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
|
| 5779 |
"dev": true,
|
| 5780 |
"license": "BSD-2-Clause",
|
| 5781 |
"dependencies": {
|
|
|
|
|
|
|
| 5782 |
"esrecurse": "^4.3.0",
|
| 5783 |
"estraverse": "^5.2.0"
|
| 5784 |
},
|
| 5785 |
"engines": {
|
| 5786 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 5787 |
},
|
| 5788 |
"funding": {
|
| 5789 |
"url": "https://opencollective.com/eslint"
|
|
|
|
| 5802 |
"url": "https://opencollective.com/eslint"
|
| 5803 |
}
|
| 5804 |
},
|
| 5805 |
+
"node_modules/eslint/node_modules/balanced-match": {
|
| 5806 |
+
"version": "1.0.2",
|
| 5807 |
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
| 5808 |
+
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
| 5809 |
+
"dev": true,
|
| 5810 |
+
"license": "MIT"
|
| 5811 |
+
},
|
| 5812 |
+
"node_modules/eslint/node_modules/brace-expansion": {
|
| 5813 |
+
"version": "1.1.12",
|
| 5814 |
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
| 5815 |
+
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
| 5816 |
+
"dev": true,
|
| 5817 |
+
"license": "MIT",
|
| 5818 |
+
"dependencies": {
|
| 5819 |
+
"balanced-match": "^1.0.0",
|
| 5820 |
+
"concat-map": "0.0.1"
|
| 5821 |
+
}
|
| 5822 |
+
},
|
| 5823 |
+
"node_modules/eslint/node_modules/eslint-visitor-keys": {
|
| 5824 |
+
"version": "4.2.1",
|
| 5825 |
+
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
|
| 5826 |
+
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
|
| 5827 |
+
"dev": true,
|
| 5828 |
+
"license": "Apache-2.0",
|
| 5829 |
+
"engines": {
|
| 5830 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 5831 |
+
},
|
| 5832 |
+
"funding": {
|
| 5833 |
+
"url": "https://opencollective.com/eslint"
|
| 5834 |
+
}
|
| 5835 |
+
},
|
| 5836 |
+
"node_modules/eslint/node_modules/minimatch": {
|
| 5837 |
+
"version": "3.1.5",
|
| 5838 |
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
|
| 5839 |
+
"integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
|
| 5840 |
+
"dev": true,
|
| 5841 |
+
"license": "ISC",
|
| 5842 |
+
"dependencies": {
|
| 5843 |
+
"brace-expansion": "^1.1.7"
|
| 5844 |
+
},
|
| 5845 |
+
"engines": {
|
| 5846 |
+
"node": "*"
|
| 5847 |
+
}
|
| 5848 |
+
},
|
| 5849 |
"node_modules/espree": {
|
| 5850 |
+
"version": "10.4.0",
|
| 5851 |
+
"resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
|
| 5852 |
+
"integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
|
| 5853 |
"dev": true,
|
| 5854 |
"license": "BSD-2-Clause",
|
| 5855 |
"dependencies": {
|
| 5856 |
+
"acorn": "^8.15.0",
|
| 5857 |
"acorn-jsx": "^5.3.2",
|
| 5858 |
+
"eslint-visitor-keys": "^4.2.1"
|
| 5859 |
},
|
| 5860 |
"engines": {
|
| 5861 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 5862 |
+
},
|
| 5863 |
+
"funding": {
|
| 5864 |
+
"url": "https://opencollective.com/eslint"
|
| 5865 |
+
}
|
| 5866 |
+
},
|
| 5867 |
+
"node_modules/espree/node_modules/eslint-visitor-keys": {
|
| 5868 |
+
"version": "4.2.1",
|
| 5869 |
+
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
|
| 5870 |
+
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
|
| 5871 |
+
"dev": true,
|
| 5872 |
+
"license": "Apache-2.0",
|
| 5873 |
+
"engines": {
|
| 5874 |
+
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
| 5875 |
},
|
| 5876 |
"funding": {
|
| 5877 |
"url": "https://opencollective.com/eslint"
|
|
|
|
| 6358 |
"url": "https://github.com/sponsors/ljharb"
|
| 6359 |
}
|
| 6360 |
},
|
| 6361 |
+
"node_modules/has-flag": {
|
| 6362 |
+
"version": "4.0.0",
|
| 6363 |
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
| 6364 |
+
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
| 6365 |
+
"dev": true,
|
| 6366 |
+
"license": "MIT",
|
| 6367 |
+
"engines": {
|
| 6368 |
+
"node": ">=8"
|
| 6369 |
+
}
|
| 6370 |
+
},
|
| 6371 |
"node_modules/has-property-descriptors": {
|
| 6372 |
"version": "1.0.2",
|
| 6373 |
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
|
|
|
|
| 6476 |
"url": "https://opencollective.com/immer"
|
| 6477 |
}
|
| 6478 |
},
|
| 6479 |
+
"node_modules/import-fresh": {
|
| 6480 |
+
"version": "3.3.1",
|
| 6481 |
+
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
|
| 6482 |
+
"integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
|
| 6483 |
+
"dev": true,
|
| 6484 |
+
"license": "MIT",
|
| 6485 |
+
"dependencies": {
|
| 6486 |
+
"parent-module": "^1.0.0",
|
| 6487 |
+
"resolve-from": "^4.0.0"
|
| 6488 |
+
},
|
| 6489 |
+
"engines": {
|
| 6490 |
+
"node": ">=6"
|
| 6491 |
+
},
|
| 6492 |
+
"funding": {
|
| 6493 |
+
"url": "https://github.com/sponsors/sindresorhus"
|
| 6494 |
+
}
|
| 6495 |
+
},
|
| 6496 |
"node_modules/imurmurhash": {
|
| 6497 |
"version": "0.1.4",
|
| 6498 |
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
|
|
|
|
| 6987 |
"dev": true,
|
| 6988 |
"license": "MIT"
|
| 6989 |
},
|
| 6990 |
+
"node_modules/js-yaml": {
|
| 6991 |
+
"version": "4.1.1",
|
| 6992 |
+
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
|
| 6993 |
+
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
|
| 6994 |
+
"dev": true,
|
| 6995 |
+
"license": "MIT",
|
| 6996 |
+
"dependencies": {
|
| 6997 |
+
"argparse": "^2.0.1"
|
| 6998 |
+
},
|
| 6999 |
+
"bin": {
|
| 7000 |
+
"js-yaml": "bin/js-yaml.js"
|
| 7001 |
+
}
|
| 7002 |
+
},
|
| 7003 |
"node_modules/jsesc": {
|
| 7004 |
"version": "3.1.0",
|
| 7005 |
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
|
|
|
|
| 7384 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 7385 |
}
|
| 7386 |
},
|
| 7387 |
+
"node_modules/lodash.merge": {
|
| 7388 |
+
"version": "4.6.2",
|
| 7389 |
+
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
| 7390 |
+
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
|
| 7391 |
+
"dev": true,
|
| 7392 |
+
"license": "MIT"
|
| 7393 |
+
},
|
| 7394 |
"node_modules/loose-envify": {
|
| 7395 |
"version": "1.4.0",
|
| 7396 |
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
|
|
|
| 7908 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 7909 |
}
|
| 7910 |
},
|
| 7911 |
+
"node_modules/parent-module": {
|
| 7912 |
+
"version": "1.0.1",
|
| 7913 |
+
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
|
| 7914 |
+
"integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
|
| 7915 |
+
"dev": true,
|
| 7916 |
+
"license": "MIT",
|
| 7917 |
+
"dependencies": {
|
| 7918 |
+
"callsites": "^3.0.0"
|
| 7919 |
+
},
|
| 7920 |
+
"engines": {
|
| 7921 |
+
"node": ">=6"
|
| 7922 |
+
}
|
| 7923 |
+
},
|
| 7924 |
"node_modules/path-exists": {
|
| 7925 |
"version": "4.0.0",
|
| 7926 |
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
|
|
|
| 8437 |
"url": "https://github.com/sponsors/ljharb"
|
| 8438 |
}
|
| 8439 |
},
|
| 8440 |
+
"node_modules/resolve-from": {
|
| 8441 |
+
"version": "4.0.0",
|
| 8442 |
+
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
|
| 8443 |
+
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
|
| 8444 |
+
"dev": true,
|
| 8445 |
+
"license": "MIT",
|
| 8446 |
+
"engines": {
|
| 8447 |
+
"node": ">=4"
|
| 8448 |
+
}
|
| 8449 |
+
},
|
| 8450 |
"node_modules/resolve-pkg-maps": {
|
| 8451 |
"version": "1.0.0",
|
| 8452 |
"resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
|
|
|
|
| 8922 |
"node": ">=4"
|
| 8923 |
}
|
| 8924 |
},
|
| 8925 |
+
"node_modules/strip-json-comments": {
|
| 8926 |
+
"version": "3.1.1",
|
| 8927 |
+
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
|
| 8928 |
+
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
|
| 8929 |
+
"dev": true,
|
| 8930 |
+
"license": "MIT",
|
| 8931 |
+
"engines": {
|
| 8932 |
+
"node": ">=8"
|
| 8933 |
+
},
|
| 8934 |
+
"funding": {
|
| 8935 |
+
"url": "https://github.com/sponsors/sindresorhus"
|
| 8936 |
+
}
|
| 8937 |
+
},
|
| 8938 |
"node_modules/stripe": {
|
| 8939 |
"version": "20.4.0",
|
| 8940 |
"resolved": "https://registry.npmjs.org/stripe/-/stripe-20.4.0.tgz",
|
|
|
|
| 8975 |
}
|
| 8976 |
}
|
| 8977 |
},
|
| 8978 |
+
"node_modules/supports-color": {
|
| 8979 |
+
"version": "7.2.0",
|
| 8980 |
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
| 8981 |
+
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
| 8982 |
+
"dev": true,
|
| 8983 |
+
"license": "MIT",
|
| 8984 |
+
"dependencies": {
|
| 8985 |
+
"has-flag": "^4.0.0"
|
| 8986 |
+
},
|
| 8987 |
+
"engines": {
|
| 8988 |
+
"node": ">=8"
|
| 8989 |
+
}
|
| 8990 |
+
},
|
| 8991 |
"node_modules/supports-preserve-symlinks-flag": {
|
| 8992 |
"version": "1.0.0",
|
| 8993 |
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
package.json
CHANGED
|
@@ -69,9 +69,9 @@
|
|
| 69 |
"@types/node": "25.3.2",
|
| 70 |
"@types/react": "^19",
|
| 71 |
"@types/react-dom": "^19",
|
| 72 |
-
"eslint": "^
|
| 73 |
"eslint-config-next": "^16.1.6",
|
| 74 |
"tailwindcss": "^4",
|
| 75 |
"typescript": "^5"
|
| 76 |
}
|
| 77 |
-
}
|
|
|
|
| 69 |
"@types/node": "25.3.2",
|
| 70 |
"@types/react": "^19",
|
| 71 |
"@types/react-dom": "^19",
|
| 72 |
+
"eslint": "^9.0.0",
|
| 73 |
"eslint-config-next": "^16.1.6",
|
| 74 |
"tailwindcss": "^4",
|
| 75 |
"typescript": "^5"
|
| 76 |
}
|
| 77 |
+
}
|
src/app/api/characters/route.ts
CHANGED
|
@@ -20,6 +20,23 @@ export async function POST(request: NextRequest) {
|
|
| 20 |
return NextResponse.json({ success: false, error: "Nombre requerido" }, { status: 400 });
|
| 21 |
}
|
| 22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
let referenceImage: string | null = null;
|
| 24 |
let characterTraits: string | null = null;
|
| 25 |
|
|
@@ -45,10 +62,11 @@ export async function POST(request: NextRequest) {
|
|
| 45 |
const character = await db.character.create({
|
| 46 |
data: {
|
| 47 |
name,
|
|
|
|
| 48 |
description: description ? String(description) : null,
|
| 49 |
referenceImage: referenceImage ? String(referenceImage) : null,
|
| 50 |
traits: String(finalTraits)
|
| 51 |
-
}
|
| 52 |
});
|
| 53 |
|
| 54 |
return NextResponse.json({ success: true, character });
|
|
|
|
| 20 |
return NextResponse.json({ success: false, error: "Nombre requerido" }, { status: 400 });
|
| 21 |
}
|
| 22 |
|
| 23 |
+
// Generate a unique slug from the name
|
| 24 |
+
const baseSlug = name
|
| 25 |
+
.toLowerCase()
|
| 26 |
+
.normalize("NFD")
|
| 27 |
+
.replace(/[\u0300-\u036f]/g, "") // Remove diacritics
|
| 28 |
+
.replace(/[^a-z0-9]+/g, "-")
|
| 29 |
+
.replace(/^-|-$/g, "");
|
| 30 |
+
|
| 31 |
+
let slug = baseSlug;
|
| 32 |
+
let slugExists = await db.character.findUnique({ where: { slug } });
|
| 33 |
+
let attempt = 0;
|
| 34 |
+
while (slugExists) {
|
| 35 |
+
attempt++;
|
| 36 |
+
slug = `${baseSlug}-${attempt}`;
|
| 37 |
+
slugExists = await db.character.findUnique({ where: { slug } });
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
let referenceImage: string | null = null;
|
| 41 |
let characterTraits: string | null = null;
|
| 42 |
|
|
|
|
| 62 |
const character = await db.character.create({
|
| 63 |
data: {
|
| 64 |
name,
|
| 65 |
+
slug,
|
| 66 |
description: description ? String(description) : null,
|
| 67 |
referenceImage: referenceImage ? String(referenceImage) : null,
|
| 68 |
traits: String(finalTraits)
|
| 69 |
+
}
|
| 70 |
});
|
| 71 |
|
| 72 |
return NextResponse.json({ success: true, character });
|
src/app/api/payments/stripe-webhook/route.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
| 1 |
-
import { NextRequest, NextResponse } from "next/server";
|
| 2 |
-
import { db } from "@/lib/db";
|
| 3 |
-
|
| 4 |
-
// Webhook minimalista: espera eventos JSON con la forma { type: 'payment.succeeded', data: { userId, influencerId, tier, price, currency } }
|
| 5 |
-
// No depende de la librería Stripe. Para producción, valida firma con STRIPE_WEBHOOK_SECRET.
|
| 6 |
-
|
| 7 |
-
export async function POST(request: NextRequest) {
|
| 8 |
-
try {
|
| 9 |
-
const secret = process.env.STRIPE_WEBHOOK_SECRET || null;
|
| 10 |
-
// TODO: validar firma si STRIPE_WEBHOOK_SECRET está presente
|
| 11 |
-
|
| 12 |
-
const event = await request.json();
|
| 13 |
-
if (!event || !event.type) return NextResponse.json({ success: false, error: "Evento inválido" }, { status: 400 });
|
| 14 |
-
|
| 15 |
-
if (event.type === "payment.succeeded") {
|
| 16 |
-
const d = event.data || {};
|
| 17 |
-
const { userId, influencerId, tier, price, currency, expiresAt } = d;
|
| 18 |
-
if (!userId || !influencerId || !tier) return NextResponse.json({ success: false, error: "Datos incompletos en evento" }, { status: 400 });
|
| 19 |
-
|
| 20 |
-
// Crear suscripción en BD
|
| 21 |
-
const subscription = await db.influencerSubscription.create({ data: {
|
| 22 |
-
influencerId,
|
| 23 |
-
userId,
|
| 24 |
-
tier,
|
| 25 |
-
price: price ?? null,
|
| 26 |
-
currency: currency ?? "USD",
|
| 27 |
-
expiresAt: expiresAt ? new Date(expiresAt) : null,
|
| 28 |
-
}});
|
| 29 |
-
|
| 30 |
-
try { await db.agentTask.create({ data: { type: "payment_webhook_subscribe", status: "completed", input: JSON.stringify(d), output: subscription.id, completedAt: new Date() } }); } catch { }
|
| 31 |
-
|
| 32 |
-
return NextResponse.json({ success: true, subscription });
|
| 33 |
-
}
|
| 34 |
-
|
| 35 |
-
return NextResponse.json({ success: true, received: true });
|
| 36 |
-
} catch (error) {
|
| 37 |
-
const message = error instanceof Error ? error.message : "Error";
|
| 38 |
-
return NextResponse.json({ success: false, error: message }, { status: 500 });
|
| 39 |
-
}
|
| 40 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/app/cancel/page.tsx
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use client";
|
| 2 |
+
|
| 3 |
+
import { XCircle } from "lucide-react";
|
| 4 |
+
import { Button } from "@/components/ui/button";
|
| 5 |
+
import Link from "next/link";
|
| 6 |
+
|
| 7 |
+
export default function CancelPage() {
|
| 8 |
+
return (
|
| 9 |
+
<div className="min-h-screen bg-gradient-to-b from-slate-950 via-slate-900 to-slate-950 flex items-center justify-center p-6">
|
| 10 |
+
<div className="max-w-md w-full bg-slate-800/50 backdrop-blur-xl rounded-2xl border border-slate-700 p-8 text-center space-y-6">
|
| 11 |
+
<div className="flex justify-center">
|
| 12 |
+
<XCircle className="h-16 w-16 text-red-500" />
|
| 13 |
+
</div>
|
| 14 |
+
<h1 className="text-2xl font-bold text-white">Pago cancelado</h1>
|
| 15 |
+
<p className="text-slate-300">
|
| 16 |
+
El proceso de pago fue cancelado. No se ha realizado ningún cargo.
|
| 17 |
+
</p>
|
| 18 |
+
<Link href="/">
|
| 19 |
+
<Button className="w-full mt-4">Volver al Dashboard</Button>
|
| 20 |
+
</Link>
|
| 21 |
+
</div>
|
| 22 |
+
</div>
|
| 23 |
+
);
|
| 24 |
+
}
|
src/app/success/page.tsx
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"use client";
|
| 2 |
+
|
| 3 |
+
import { useSearchParams } from "next/navigation";
|
| 4 |
+
import { Suspense } from "react";
|
| 5 |
+
import { CheckCircle } from "lucide-react";
|
| 6 |
+
import { Button } from "@/components/ui/button";
|
| 7 |
+
import Link from "next/link";
|
| 8 |
+
|
| 9 |
+
function SuccessContent() {
|
| 10 |
+
const searchParams = useSearchParams();
|
| 11 |
+
const sessionId = searchParams.get("session_id");
|
| 12 |
+
|
| 13 |
+
return (
|
| 14 |
+
<div className="min-h-screen bg-gradient-to-b from-slate-950 via-slate-900 to-slate-950 flex items-center justify-center p-6">
|
| 15 |
+
<div className="max-w-md w-full bg-slate-800/50 backdrop-blur-xl rounded-2xl border border-slate-700 p-8 text-center space-y-6">
|
| 16 |
+
<div className="flex justify-center">
|
| 17 |
+
<CheckCircle className="h-16 w-16 text-green-500" />
|
| 18 |
+
</div>
|
| 19 |
+
<h1 className="text-2xl font-bold text-white">¡Pago completado!</h1>
|
| 20 |
+
<p className="text-slate-300">
|
| 21 |
+
Tu suscripción se ha activado correctamente. Ya puedes disfrutar del contenido exclusivo.
|
| 22 |
+
</p>
|
| 23 |
+
{sessionId && (
|
| 24 |
+
<p className="text-xs text-slate-500 break-all">
|
| 25 |
+
ID de sesión: {sessionId}
|
| 26 |
+
</p>
|
| 27 |
+
)}
|
| 28 |
+
<Link href="/">
|
| 29 |
+
<Button className="w-full mt-4">Volver al Dashboard</Button>
|
| 30 |
+
</Link>
|
| 31 |
+
</div>
|
| 32 |
+
</div>
|
| 33 |
+
);
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
export default function SuccessPage() {
|
| 37 |
+
return (
|
| 38 |
+
<Suspense fallback={
|
| 39 |
+
<div className="min-h-screen bg-gradient-to-b from-slate-950 via-slate-900 to-slate-950 flex items-center justify-center">
|
| 40 |
+
<p className="text-white">Cargando...</p>
|
| 41 |
+
</div>
|
| 42 |
+
}>
|
| 43 |
+
<SuccessContent />
|
| 44 |
+
</Suspense>
|
| 45 |
+
);
|
| 46 |
+
}
|