+6
-1
.gitignore
+6
-1
.gitignore
+1
apps/flyff-exporter/README.md
+1
apps/flyff-exporter/README.md
···
···
1
+
TODO
apps/flyff-exporter/bun.lockb
apps/flyff-exporter/bun.lockb
This is a binary file and will not be displayed.
+28
apps/flyff-exporter/package.json
+28
apps/flyff-exporter/package.json
···
···
1
+
{
2
+
"name": "flyff-exporter",
3
+
"version": "1.0.0",
4
+
"description": "",
5
+
"main": "index.js",
6
+
"scripts": {
7
+
"items": "bun run src/scripts/items.ts",
8
+
"jobs": "bun run src/scripts/jobs.ts",
9
+
"skills": "bun run src/scripts/skills.ts",
10
+
"awake": "bun run src/scripts/skillawake.ts"
11
+
},
12
+
"keywords": [],
13
+
"author": "Dane Miller",
14
+
"license": "ISC",
15
+
"engines": {
16
+
"node": ">=17"
17
+
},
18
+
"dependencies": {
19
+
"flyff.js": "^1.3.0",
20
+
"lodash": "^4.17.21"
21
+
},
22
+
"devDependencies": {
23
+
"@types/bun": "^1.2.11",
24
+
"@types/lodash": "^4.14.191",
25
+
"@types/node": "^18.11.18",
26
+
"typescript": "^4.9.4"
27
+
}
28
+
}
+46
apps/flyff-exporter/src/scripts/items.ts
+46
apps/flyff-exporter/src/scripts/items.ts
···
···
1
+
import * as _ from "lodash";
2
+
import { writeFile, readFile } from "node:fs/promises";
3
+
import { fetchIds } from "../utils/fetchIds";
4
+
5
+
async function main() {
6
+
try {
7
+
const itemIds = await fetchIds("item");
8
+
const classes: any[] = JSON.parse(
9
+
await readFile("./src/data/jobs.json", {
10
+
encoding: "utf-8",
11
+
})
12
+
);
13
+
14
+
// put item ids into chunks to get around large request error
15
+
const chunkedItemIds = chunkArray(itemIds, 399);
16
+
17
+
const itemPromises = chunkedItemIds.map(async (item) => {
18
+
return await (
19
+
await fetch(`https://api.flyff.com/item/${item.join(",")}`)
20
+
).json();
21
+
});
22
+
23
+
const items = await Promise.all(itemPromises);
24
+
25
+
const itemsWithClassNames = items
26
+
.flatMap((item) => item)
27
+
.filter((item) => item.category === "weapon" || item.category === "armor")
28
+
.map((item) => ({
29
+
...item,
30
+
job: classes.find((className) => className.id === item.class),
31
+
}));
32
+
33
+
await writeFile(
34
+
"./src/data/items.json",
35
+
JSON.stringify(itemsWithClassNames)
36
+
);
37
+
} catch (error) {
38
+
console.error(error);
39
+
}
40
+
}
41
+
42
+
function chunkArray(array: unknown[], sizePerChunk: number) {
43
+
return _.chunk(array, sizePerChunk);
44
+
}
45
+
46
+
main();
+26
apps/flyff-exporter/src/scripts/jobs.ts
+26
apps/flyff-exporter/src/scripts/jobs.ts
···
···
1
+
import { FlyffClient } from "flyff.js";
2
+
3
+
const client = new FlyffClient();
4
+
5
+
async function main() {
6
+
try {
7
+
const classIds = await client.job.getAllIds();
8
+
9
+
const classes = await client.job.getByListOfIds(classIds);
10
+
11
+
const cleanedClassDataResponse = classes.map((className) => ({
12
+
id: className.id,
13
+
name: className.name,
14
+
icon: className.icon,
15
+
}));
16
+
17
+
await Bun.write(
18
+
"./src/data/jobs.json",
19
+
JSON.stringify(cleanedClassDataResponse),
20
+
);
21
+
} catch (error) {
22
+
console.error(error);
23
+
}
24
+
}
25
+
26
+
main();
+32
apps/flyff-exporter/src/scripts/skills.ts
+32
apps/flyff-exporter/src/scripts/skills.ts
···
···
1
+
import { FlyffClient, type JobObject } from "flyff.js";
2
+
3
+
const client = new FlyffClient();
4
+
5
+
async function main() {
6
+
try {
7
+
const skillIds = await client.skill.getAllIds();
8
+
const skills = await client.skill.getByListOfIds(skillIds);
9
+
10
+
const classes: JobObject[] = await Bun.file("./src/data/jobs.json", {
11
+
type: "application/json",
12
+
}).json();
13
+
14
+
const cleanedSkillDataResponse = skills.map((skill) => ({
15
+
id: skill.id,
16
+
name: skill.name,
17
+
description: skill.description,
18
+
icon: skill.icon,
19
+
level: skill.level,
20
+
job: classes.find((className) => skill.class === className.id),
21
+
}));
22
+
23
+
await Bun.write(
24
+
"./src/data/skills.json",
25
+
JSON.stringify(cleanedSkillDataResponse),
26
+
);
27
+
} catch (error) {
28
+
console.error(error);
29
+
}
30
+
}
31
+
32
+
main();
+29
apps/flyff-exporter/src/types/item.ts
+29
apps/flyff-exporter/src/types/item.ts
···
···
1
+
import { Job } from "./job";
2
+
import { Language } from "./root";
3
+
4
+
export interface Item {
5
+
id: number;
6
+
name: Language;
7
+
description: Language;
8
+
icon: string;
9
+
class: Job;
10
+
level: number;
11
+
element: string;
12
+
minDefense: number;
13
+
maxDefense: number;
14
+
category: string;
15
+
subcategory: string;
16
+
rarity: string;
17
+
sex: string;
18
+
stack: number;
19
+
buyPrice: number;
20
+
sellPrice: number;
21
+
consumable: boolean;
22
+
premium: boolean;
23
+
shining: boolean;
24
+
tradable: boolean;
25
+
deletable: boolean;
26
+
durationRealTime: boolean;
27
+
transy: number;
28
+
spawns: any[];
29
+
}
+7
apps/flyff-exporter/src/types/job.ts
+7
apps/flyff-exporter/src/types/job.ts
+19
apps/flyff-exporter/src/types/root.ts
+19
apps/flyff-exporter/src/types/root.ts
···
···
1
+
export interface Language {
2
+
en: string;
3
+
ar: string;
4
+
br: string;
5
+
cns: string;
6
+
de: string;
7
+
fi: string;
8
+
fil: string;
9
+
fr: string;
10
+
it: string;
11
+
jp: string;
12
+
kr: string;
13
+
nl: string;
14
+
pl: string;
15
+
ru: string;
16
+
sp: string;
17
+
sw: string;
18
+
th: string;
19
+
}
+10
apps/flyff-exporter/src/types/skill.ts
+10
apps/flyff-exporter/src/types/skill.ts
+29
apps/flyff-exporter/tsconfig.json
+29
apps/flyff-exporter/tsconfig.json
···
···
1
+
{
2
+
"compilerOptions": {
3
+
// Environment setup & latest features
4
+
"lib": ["ESNext"],
5
+
"target": "ESNext",
6
+
"module": "ESNext",
7
+
"moduleDetection": "force",
8
+
"jsx": "react-jsx",
9
+
"allowJs": true,
10
+
11
+
// Bundler mode
12
+
"moduleResolution": "bundler",
13
+
"allowImportingTsExtensions": true,
14
+
"verbatimModuleSyntax": true,
15
+
"noEmit": true,
16
+
17
+
// Best practices
18
+
"strict": true,
19
+
"skipLibCheck": true,
20
+
"noFallthroughCasesInSwitch": true,
21
+
"noUncheckedIndexedAccess": true,
22
+
23
+
// Some stricter flags (disabled by default)
24
+
"noUnusedLocals": false,
25
+
"noUnusedParameters": false,
26
+
"noPropertyAccessFromIndexSignature": false
27
+
/* Skip type checking all .d.ts files. */
28
+
}
29
+
}
+28
-64
apps/skillulator/src/routeTree.gen.ts
+28
-64
apps/skillulator/src/routeTree.gen.ts
···
10
11
import { createFileRoute } from '@tanstack/react-router'
12
13
-
// Import Routes
14
-
15
-
import { Route as rootRoute } from './routes/__root'
16
-
import { Route as CClassImport } from './routes/c.$class'
17
-
18
-
// Create Virtual Routes
19
20
-
const IndexLazyImport = createFileRoute('/')()
21
22
-
// Create/Update Routes
23
-
24
-
const IndexLazyRoute = IndexLazyImport.update({
25
id: '/',
26
path: '/',
27
-
getParentRoute: () => rootRoute,
28
} as any).lazy(() => import('./routes/index.lazy').then((d) => d.Route))
29
-
30
-
const CClassRoute = CClassImport.update({
31
id: '/c/$class',
32
path: '/c/$class',
33
-
getParentRoute: () => rootRoute,
34
} as any)
35
36
-
// Populate the FileRoutesByPath interface
37
-
38
-
declare module '@tanstack/react-router' {
39
-
interface FileRoutesByPath {
40
-
'/': {
41
-
id: '/'
42
-
path: '/'
43
-
fullPath: '/'
44
-
preLoaderRoute: typeof IndexLazyImport
45
-
parentRoute: typeof rootRoute
46
-
}
47
-
'/c/$class': {
48
-
id: '/c/$class'
49
-
path: '/c/$class'
50
-
fullPath: '/c/$class'
51
-
preLoaderRoute: typeof CClassImport
52
-
parentRoute: typeof rootRoute
53
-
}
54
-
}
55
-
}
56
-
57
-
// Create and export the route tree
58
-
59
export interface FileRoutesByFullPath {
60
'/': typeof IndexLazyRoute
61
'/c/$class': typeof CClassRoute
62
}
63
-
64
export interface FileRoutesByTo {
65
'/': typeof IndexLazyRoute
66
'/c/$class': typeof CClassRoute
67
}
68
-
69
export interface FileRoutesById {
70
-
__root__: typeof rootRoute
71
'/': typeof IndexLazyRoute
72
'/c/$class': typeof CClassRoute
73
}
74
-
75
export interface FileRouteTypes {
76
fileRoutesByFullPath: FileRoutesByFullPath
77
fullPaths: '/' | '/c/$class'
···
80
id: '__root__' | '/' | '/c/$class'
81
fileRoutesById: FileRoutesById
82
}
83
-
84
export interface RootRouteChildren {
85
IndexLazyRoute: typeof IndexLazyRoute
86
CClassRoute: typeof CClassRoute
87
}
88
89
const rootRouteChildren: RootRouteChildren = {
90
IndexLazyRoute: IndexLazyRoute,
91
CClassRoute: CClassRoute,
92
}
93
-
94
-
export const routeTree = rootRoute
95
._addFileChildren(rootRouteChildren)
96
._addFileTypes<FileRouteTypes>()
97
-
98
-
/* ROUTE_MANIFEST_START
99
-
{
100
-
"routes": {
101
-
"__root__": {
102
-
"filePath": "__root.tsx",
103
-
"children": [
104
-
"/",
105
-
"/c/$class"
106
-
]
107
-
},
108
-
"/": {
109
-
"filePath": "index.lazy.tsx"
110
-
},
111
-
"/c/$class": {
112
-
"filePath": "c.$class.tsx"
113
-
}
114
-
}
115
-
}
116
-
ROUTE_MANIFEST_END */
···
10
11
import { createFileRoute } from '@tanstack/react-router'
12
13
+
import { Route as rootRouteImport } from './routes/__root'
14
+
import { Route as CClassRouteImport } from './routes/c.$class'
15
16
+
const IndexLazyRouteImport = createFileRoute('/')()
17
18
+
const IndexLazyRoute = IndexLazyRouteImport.update({
19
id: '/',
20
path: '/',
21
+
getParentRoute: () => rootRouteImport,
22
} as any).lazy(() => import('./routes/index.lazy').then((d) => d.Route))
23
+
const CClassRoute = CClassRouteImport.update({
24
id: '/c/$class',
25
path: '/c/$class',
26
+
getParentRoute: () => rootRouteImport,
27
} as any)
28
29
export interface FileRoutesByFullPath {
30
'/': typeof IndexLazyRoute
31
'/c/$class': typeof CClassRoute
32
}
33
export interface FileRoutesByTo {
34
'/': typeof IndexLazyRoute
35
'/c/$class': typeof CClassRoute
36
}
37
export interface FileRoutesById {
38
+
__root__: typeof rootRouteImport
39
'/': typeof IndexLazyRoute
40
'/c/$class': typeof CClassRoute
41
}
42
export interface FileRouteTypes {
43
fileRoutesByFullPath: FileRoutesByFullPath
44
fullPaths: '/' | '/c/$class'
···
47
id: '__root__' | '/' | '/c/$class'
48
fileRoutesById: FileRoutesById
49
}
50
export interface RootRouteChildren {
51
IndexLazyRoute: typeof IndexLazyRoute
52
CClassRoute: typeof CClassRoute
53
+
}
54
+
55
+
declare module '@tanstack/react-router' {
56
+
interface FileRoutesByPath {
57
+
'/': {
58
+
id: '/'
59
+
path: '/'
60
+
fullPath: '/'
61
+
preLoaderRoute: typeof IndexLazyRouteImport
62
+
parentRoute: typeof rootRouteImport
63
+
}
64
+
'/c/$class': {
65
+
id: '/c/$class'
66
+
path: '/c/$class'
67
+
fullPath: '/c/$class'
68
+
preLoaderRoute: typeof CClassRouteImport
69
+
parentRoute: typeof rootRouteImport
70
+
}
71
+
}
72
}
73
74
const rootRouteChildren: RootRouteChildren = {
75
IndexLazyRoute: IndexLazyRoute,
76
CClassRoute: CClassRoute,
77
}
78
+
export const routeTree = rootRouteImport
79
._addFileChildren(rootRouteChildren)
80
._addFileTypes<FileRouteTypes>()
+8
packages/flyff.js/.changeset/README.md
+8
packages/flyff.js/.changeset/README.md
···
···
1
+
# Changesets
2
+
3
+
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4
+
with multi-package repos, or single-package repos to help you version and publish your code. You can
5
+
find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6
+
7
+
We have a quick list of common questions to get you started engaging with this project in
8
+
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
+11
packages/flyff.js/.changeset/config.json
+11
packages/flyff.js/.changeset/config.json
···
···
1
+
{
2
+
"$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json",
3
+
"changelog": "@changesets/cli/changelog",
4
+
"commit": false,
5
+
"fixed": [],
6
+
"linked": [],
7
+
"access": "restricted",
8
+
"baseBranch": "main",
9
+
"updateInternalDependencies": "patch",
10
+
"ignore": []
11
+
}
+18
packages/flyff.js/.github/workflows/main.yml
+18
packages/flyff.js/.github/workflows/main.yml
···
···
1
+
name: CI
2
+
on:
3
+
push:
4
+
branches:
5
+
- "**"
6
+
7
+
jobs:
8
+
build:
9
+
runs-on: ubuntu-latest
10
+
steps:
11
+
- uses: actions/checkout@v3
12
+
- uses: oven-sh/setup-bun@v1
13
+
- uses: actions/setup-node@v3
14
+
with:
15
+
node-version: 16.x
16
+
17
+
- run: bun install
18
+
- run: bun run lint && bun run build
+33
packages/flyff.js/.github/workflows/publish.yml
+33
packages/flyff.js/.github/workflows/publish.yml
···
···
1
+
name: Publish
2
+
on:
3
+
workflow_run:
4
+
workflows: ["CI"]
5
+
types:
6
+
- completed
7
+
push:
8
+
branches:
9
+
- "main"
10
+
11
+
concurrency: ${{ github.workflow }}-${{ github.ref }}
12
+
13
+
jobs:
14
+
publish:
15
+
if: ${{ github.event.workflow_run.conclusion == 'success' }}
16
+
runs-on: ubuntu-latest
17
+
steps:
18
+
- uses: actions/checkout@v3
19
+
- uses: oven-sh/setup-bun@v1
20
+
- uses: actions/setup-node@v3
21
+
with:
22
+
node-version: 16.x
23
+
24
+
- run: bun install
25
+
- name: Create Release Pull Request or Publish
26
+
id: changesets
27
+
uses: changesets/action@v1
28
+
with:
29
+
publish: bun run release
30
+
commit: "chore: release"
31
+
env:
32
+
GITHUB_TOKEN: ${{ secrets.WORKFLOW_TOKEN }}
33
+
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+130
packages/flyff.js/.gitignore
+130
packages/flyff.js/.gitignore
···
···
1
+
# Logs
2
+
logs
3
+
*.log
4
+
npm-debug.log*
5
+
yarn-debug.log*
6
+
yarn-error.log*
7
+
lerna-debug.log*
8
+
.pnpm-debug.log*
9
+
10
+
# Diagnostic reports (https://nodejs.org/api/report.html)
11
+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12
+
13
+
# Runtime data
14
+
pids
15
+
*.pid
16
+
*.seed
17
+
*.pid.lock
18
+
19
+
# Directory for instrumented libs generated by jscoverage/JSCover
20
+
lib-cov
21
+
22
+
# Coverage directory used by tools like istanbul
23
+
coverage
24
+
*.lcov
25
+
26
+
# nyc test coverage
27
+
.nyc_output
28
+
29
+
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30
+
.grunt
31
+
32
+
# Bower dependency directory (https://bower.io/)
33
+
bower_components
34
+
35
+
# node-waf configuration
36
+
.lock-wscript
37
+
38
+
# Compiled binary addons (https://nodejs.org/api/addons.html)
39
+
build/Release
40
+
41
+
# Dependency directories
42
+
node_modules/
43
+
jspm_packages/
44
+
45
+
# Snowpack dependency directory (https://snowpack.dev/)
46
+
web_modules/
47
+
48
+
# TypeScript cache
49
+
*.tsbuildinfo
50
+
51
+
# Optional npm cache directory
52
+
.npm
53
+
54
+
# Optional eslint cache
55
+
.eslintcache
56
+
57
+
# Optional stylelint cache
58
+
.stylelintcache
59
+
60
+
# Microbundle cache
61
+
.rpt2_cache/
62
+
.rts2_cache_cjs/
63
+
.rts2_cache_es/
64
+
.rts2_cache_umd/
65
+
66
+
# Optional REPL history
67
+
.node_repl_history
68
+
69
+
# Output of 'npm pack'
70
+
*.tgz
71
+
72
+
# Yarn Integrity file
73
+
.yarn-integrity
74
+
75
+
# dotenv environment variable files
76
+
.env
77
+
.env.development.local
78
+
.env.test.local
79
+
.env.production.local
80
+
.env.local
81
+
82
+
# parcel-bundler cache (https://parceljs.org/)
83
+
.cache
84
+
.parcel-cache
85
+
86
+
# Next.js build output
87
+
.next
88
+
out
89
+
90
+
# Nuxt.js build / generate output
91
+
.nuxt
92
+
dist
93
+
94
+
# Gatsby files
95
+
.cache/
96
+
# Comment in the public line in if your project uses Gatsby and not Next.js
97
+
# https://nextjs.org/blog/next-9-1#public-directory-support
98
+
# public
99
+
100
+
# vuepress build output
101
+
.vuepress/dist
102
+
103
+
# vuepress v2.x temp and cache directory
104
+
.temp
105
+
.cache
106
+
107
+
# Docusaurus cache and generated files
108
+
.docusaurus
109
+
110
+
# Serverless directories
111
+
.serverless/
112
+
113
+
# FuseBox cache
114
+
.fusebox/
115
+
116
+
# DynamoDB Local files
117
+
.dynamodb/
118
+
119
+
# TernJS port file
120
+
.tern-port
121
+
122
+
# Stores VSCode versions used for testing VSCode extensions
123
+
.vscode-test
124
+
125
+
# yarn v2
126
+
.yarn/cache
127
+
.yarn/unplugged
128
+
.yarn/build-state.yml
129
+
.yarn/install-state.gz
130
+
.pnp.*
+4
packages/flyff.js/.husky/commit-msg
+4
packages/flyff.js/.husky/commit-msg
+115
packages/flyff.js/CHANGELOG.md
+115
packages/flyff.js/CHANGELOG.md
···
···
1
+
# flyff.js
2
+
3
+
## 1.3.0
4
+
5
+
### Minor Changes
6
+
7
+
- 5831f38: Add new housing endpoint
8
+
9
+
## 1.2.0
10
+
11
+
### Minor Changes
12
+
13
+
- 9f38a5e: - tradegreenchips
14
+
15
+
- rainbowraceapply
16
+
- createultimate
17
+
- traderings
18
+
- tradeearrings
19
+
- tradenecklaces
20
+
- dismantle
21
+
- fwcboard
22
+
- fwcteleport
23
+
- fwcranking
24
+
- fwcspectate
25
+
- fwcexchange
26
+
- fwccollect
27
+
- expanddrop
28
+
- allspeed
29
+
- arcaneinsightchance
30
+
- ripostereflexchance
31
+
- tetherRange
32
+
- spreadOnExpireRange
33
+
- probability
34
+
- conditionalBuff
35
+
- ultimateConvertible
36
+
- addMax on the ability schematic. When this value is present, add is the minimum value and addMax is the maximum value in the random range. You can see this in action on weapons such as Lusaka's Crystal Bow.
37
+
- Added new possibleRandomStats array on items which contains the list of possible additional stats, used on Ultimate weapons
38
+
- sunstone
39
+
- rainbowrace
40
+
- story
41
+
- cursed
42
+
43
+
## 1.1.6
44
+
45
+
### Patch Changes
46
+
47
+
- 44332f7: Add missing `hp` property to `MonsterObject` type
48
+
49
+
## 1.1.5
50
+
51
+
### Patch Changes
52
+
53
+
- 2efc91f: Add missing `combo` union type to `SkillObject` interface
54
+
55
+
## 1.1.4
56
+
57
+
### Patch Changes
58
+
59
+
- 8735095: More adjustments to the `Ability` type
60
+
61
+
## 1.1.3
62
+
63
+
### Patch Changes
64
+
65
+
- 5f7f42a: Refactor the `Ability` type to properly match the API response
66
+
67
+
## 1.1.2
68
+
69
+
### Patch Changes
70
+
71
+
- b1bb9fa: Add missing `ability` and `location` types to `ItemObject` interface
72
+
73
+
## 1.1.1
74
+
75
+
### Patch Changes
76
+
77
+
- 784b9f7: Export the actual types and not the classes
78
+
79
+
## 1.1.0
80
+
81
+
### Minor Changes
82
+
83
+
- 4dacdc9: Export types to allow consumers to use in applications
84
+
85
+
## 1.0.2
86
+
87
+
### Patch Changes
88
+
89
+
- 2374a6d: remove throwing error when using the getByListOfIds method for a single resource
90
+
91
+
## 1.0.1
92
+
93
+
### Patch Changes
94
+
95
+
- 82b5af4: Fixes a logic error in the base class
96
+
97
+
## 1.0.0
98
+
99
+
### Major Changes
100
+
101
+
- 1f45ddc: 1.0 Release
102
+
103
+
```bash
104
+
npm install flyff.js
105
+
```
106
+
107
+
```js
108
+
import { FlyffClient } from "flyff.js";
109
+
110
+
const client = new FlyffClient();
111
+
```
112
+
113
+
```js
114
+
await client.job.getAllIds();
115
+
```
+21
packages/flyff.js/LICENSE
+21
packages/flyff.js/LICENSE
···
···
1
+
MIT License
2
+
3
+
Copyright (c) 2023 Dane Miller
4
+
5
+
Permission is hereby granted, free of charge, to any person obtaining a copy
6
+
of this software and associated documentation files (the "Software"), to deal
7
+
in the Software without restriction, including without limitation the rights
8
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+
copies of the Software, and to permit persons to whom the Software is
10
+
furnished to do so, subject to the following conditions:
11
+
12
+
The above copyright notice and this permission notice shall be included in all
13
+
copies or substantial portions of the Software.
14
+
15
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+
SOFTWARE.
+45
packages/flyff.js/README.md
+45
packages/flyff.js/README.md
···
···
1
+
# flyff.js
2
+
3
+
flyff.js is an API wrapper written in TypeScript for the [FlyFF Universe API](https://api.flyff.com/)
4
+
5
+
# Features
6
+
7
+
- Type safe
8
+
- ESM/CJS compatible
9
+
- Covers all of the current FlyFF Universe API endpoints
10
+
11
+
# Getting started
12
+
13
+
## Install the library with your preferred package manager
14
+
15
+
```bash
16
+
npm install flyff.js
17
+
```
18
+
19
+
```bash
20
+
yarn add flyff.js
21
+
```
22
+
23
+
## Instantiate a new client
24
+
25
+
```js
26
+
import { FlyffClient } from "flyff.js";
27
+
28
+
const client = new FlyffClient();
29
+
```
30
+
31
+
## Make API calls
32
+
33
+
```js
34
+
await client.job.getAllIds();
35
+
36
+
// [ 764 ,2246, 3545, 5330, ... ]
37
+
```
38
+
39
+
## Documentation
40
+
41
+
coming soon
42
+
43
+
## License
44
+
45
+
[MIT](https://choosealicense.com/licenses/mit/)
packages/flyff.js/bun.lockb
packages/flyff.js/bun.lockb
This is a binary file and will not be displayed.
+3
packages/flyff.js/commitlint.config.js
+3
packages/flyff.js/commitlint.config.js
+43
packages/flyff.js/package.json
+43
packages/flyff.js/package.json
···
···
1
+
{
2
+
"name": "flyff.js",
3
+
"version": "1.3.0",
4
+
"description": "An API Wrapper for the FlyFF Universe API",
5
+
"module": "dist/index.mjs",
6
+
"types": "dist/index.d.ts",
7
+
"main": "dist/index.js",
8
+
"scripts": {
9
+
"lint": "tsc",
10
+
"build": "tsup src/index.ts --format cjs,esm --dts --minify",
11
+
"release": "bun run build && changeset publish",
12
+
"clean": "rm -rf dist"
13
+
},
14
+
"keywords": [
15
+
"flyff",
16
+
"universe",
17
+
"fly",
18
+
"for",
19
+
"fun"
20
+
],
21
+
"publishConfig": {
22
+
"access": "public"
23
+
},
24
+
"homepage": "https://github.com/Reonanx2/flyff.js#readme",
25
+
"bugs": {
26
+
"url": "https://github.com/Reonanx2/flyff.js/issues"
27
+
},
28
+
"repository": {
29
+
"type": "git",
30
+
"url": "https://github.com/Reonanx2/flyff.js.git"
31
+
},
32
+
"author": "Dane Miller",
33
+
"license": "MIT",
34
+
"devDependencies": {
35
+
"@changesets/cli": "^2.26.2",
36
+
"@commitlint/cli": "^17.7.1",
37
+
"@commitlint/config-conventional": "^17.7.0",
38
+
"husky": "^8.0.3",
39
+
"prettier": "^3.0.3",
40
+
"tsup": "^7.2.0",
41
+
"typescript": "^5.2.2"
42
+
}
43
+
}
+7
packages/flyff.js/playground/index.ts
+7
packages/flyff.js/playground/index.ts
+59
packages/flyff.js/src/index.ts
+59
packages/flyff.js/src/index.ts
···
···
1
+
import Version from "./resources/game//version";
2
+
import Job from "./resources/game/job";
3
+
import World from "./resources/game/world";
4
+
import Monster from "./resources/game/monster";
5
+
import Item from "./resources/game/item";
6
+
import EquipmentSet from "./resources/game/equipment-set";
7
+
import Skill from "./resources/game/skill";
8
+
import PartySkill from "./resources/game/party-skill";
9
+
import Npc from "./resources/game/npc";
10
+
import Quest from "./resources/game/quest";
11
+
import PK from "./resources/game/pk";
12
+
import UpgradeBonus from "./resources/game/bonus";
13
+
import Awake from "./resources/game/awake";
14
+
import RaisedPet from "./resources/game/pet";
15
+
import Dungeon from "./resources/game/dungeon";
16
+
import Housing from "./resources/game/housing";
17
+
import HousingPack from "./resources/game/housing-pack";
18
+
19
+
class FlyffClient {
20
+
public version: Version;
21
+
public job: Job;
22
+
public world: World;
23
+
public monster: Monster;
24
+
public item: Item;
25
+
public equip: EquipmentSet;
26
+
public skill: Skill;
27
+
public party: PartySkill;
28
+
public npc: Npc;
29
+
public quest: Quest;
30
+
public pk: PK;
31
+
public bonus: UpgradeBonus;
32
+
public awake: Awake;
33
+
public pet: RaisedPet;
34
+
public dungeon: Dungeon;
35
+
public housing: Housing;
36
+
public packs: HousingPack;
37
+
constructor() {
38
+
this.version = new Version();
39
+
this.job = new Job();
40
+
this.world = new World();
41
+
this.monster = new Monster();
42
+
this.item = new Item();
43
+
this.equip = new EquipmentSet();
44
+
this.skill = new Skill();
45
+
this.party = new PartySkill();
46
+
this.npc = new Npc();
47
+
this.quest = new Quest();
48
+
this.pk = new PK();
49
+
this.bonus = new UpgradeBonus();
50
+
this.awake = new Awake();
51
+
this.pet = new RaisedPet();
52
+
this.dungeon = new Dungeon();
53
+
this.housing = new Housing();
54
+
this.packs = new HousingPack();
55
+
}
56
+
}
57
+
58
+
export { FlyffClient };
59
+
export * from "./types/index";
+15
packages/flyff.js/src/resources/base.ts
+15
packages/flyff.js/src/resources/base.ts
···
···
1
+
export class Base {
2
+
protected async get<T>(endpoint: string): Promise<T> {
3
+
const API_URL = `https://api.flyff.com/${endpoint}`;
4
+
const headers = {
5
+
"Content-Type": "application/json",
6
+
};
7
+
8
+
return fetch(API_URL, { headers }).then((response) => {
9
+
if (response.ok) {
10
+
return response.json();
11
+
}
12
+
throw new Error(response.statusText);
13
+
});
14
+
}
15
+
}
+20
packages/flyff.js/src/resources/core/element.ts
+20
packages/flyff.js/src/resources/core/element.ts
···
···
1
+
import { Base } from "../base";
2
+
3
+
export default class Element extends Base {
4
+
/**
5
+
* Get icon for the specified file name
6
+
*
7
+
* @example
8
+
* ```
9
+
* await client.place.getImage('pc', "fire.png")
10
+
* ```
11
+
*
12
+
* @returns {Promise<string>} Returns icon for the specified file name
13
+
*/
14
+
public getImage(
15
+
style: "pc" | "mobile" | "masquerade",
16
+
fileName: string
17
+
): Promise<string> {
18
+
return this.get(`/image/element/style/${fileName}`);
19
+
}
20
+
}
+17
packages/flyff.js/src/resources/core/place.ts
+17
packages/flyff.js/src/resources/core/place.ts
···
···
1
+
import { Base } from "../base";
2
+
3
+
export default class Place extends Base {
4
+
/**
5
+
* Get icon for the specified file name
6
+
*
7
+
* @example
8
+
* ```
9
+
* await client.place.getImage("publicoffice.png")
10
+
* ```
11
+
*
12
+
* @returns {Promise<string>} Returns icon for the specified file name
13
+
*/
14
+
public getImage(fileName: string): Promise<string> {
15
+
return this.get(`/image/place/${fileName}`);
16
+
}
17
+
}
+48
packages/flyff.js/src/resources/game/achievement.ts
+48
packages/flyff.js/src/resources/game/achievement.ts
···
···
1
+
import { AchievementObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class Achievement extends Base {
5
+
/**
6
+
* Get all achievement IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.achievement.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of achievement IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/achievement");
17
+
}
18
+
19
+
/**
20
+
* Get achievment by specific ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.achievement.getById(1840)
25
+
* ```
26
+
*
27
+
* @returns {Promise<AchievementObject>} An object representing a specific achievement
28
+
*/
29
+
public getById(achievementId: number): Promise<AchievementObject> {
30
+
return this.get(`/achievement/${achievementId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of achievements by their IDs
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.achievement.getByListOfIds([58,77,182])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<AchievementObject>>} An array of objects for the specific achievement IDs
42
+
*/
43
+
public getByListOfIds(
44
+
achievementIds: Array<number>
45
+
): Promise<Array<AchievementObject>> {
46
+
return this.get(`/achievement/${achievementIds.join(",")}`);
47
+
}
48
+
}
+18
packages/flyff.js/src/resources/game/awake.ts
+18
packages/flyff.js/src/resources/game/awake.ts
···
···
1
+
import { AwakeObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class Awake extends Base {
5
+
/**
6
+
* Get info about the skill awakes
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.awake.getSkillAwakes()
11
+
* ```
12
+
*
13
+
* @returns {Promise<AwakeObject>} An object containing info about the skill awakes
14
+
*/
15
+
public getSkillAwakes(): Promise<AwakeObject> {
16
+
return this.get("/skillawake");
17
+
}
18
+
}
+18
packages/flyff.js/src/resources/game/bonus.ts
+18
packages/flyff.js/src/resources/game/bonus.ts
···
···
1
+
import { UpgradeBonusObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class UpgradeBonus extends Base {
5
+
/**
6
+
* Get info about the upgrade bonus levels
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.bonus.getUpgradeBonuses()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<UpgradeBonusObject>>} An array of upgrade bonus levels
14
+
*/
15
+
public getUpgradeBonuses(): Promise<Array<UpgradeBonusObject>> {
16
+
return this.get("/upgradelevelbonus");
17
+
}
18
+
}
+18
packages/flyff.js/src/resources/game/dungeon.ts
+18
packages/flyff.js/src/resources/game/dungeon.ts
···
···
1
+
import { DungeonObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class Dungeon extends Base {
5
+
/**
6
+
* Get info about all of the available dungeons
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.dungeon.getAllDungeons()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<DungeonObject>>} An array of objects containing information about each dungeon
14
+
*/
15
+
public getAllDungeons(): Promise<Array<DungeonObject>> {
16
+
return this.get("/dungeon");
17
+
}
18
+
}
+48
packages/flyff.js/src/resources/game/equipment-set.ts
+48
packages/flyff.js/src/resources/game/equipment-set.ts
···
···
1
+
import { EquipSetObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class EquipmentSet extends Base {
5
+
/**
6
+
* Get all equipment set IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.equip.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of equipment set IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/equipset");
17
+
}
18
+
19
+
/**
20
+
* Get equipment set by a specific ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.equip.getById(5670)
25
+
* ```
26
+
*
27
+
* @returns {Promise<EquipSetObject>} An object representing a specific equipment set
28
+
*/
29
+
public getById(equipSetId: number): Promise<EquipSetObject> {
30
+
return this.get(`/equipset/${equipSetId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of equipment sets by their ID
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.equip.getByListOfIds([5670,4267,5303])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<EquipSetObject>>} An array of objects for the specific equipment set IDs
42
+
*/
43
+
public getByListOfIds(
44
+
equipSetIds: Array<number>
45
+
): Promise<Array<EquipSetObject>> {
46
+
return this.get(`/equipset/${equipSetIds.join(",")}`);
47
+
}
48
+
}
+48
packages/flyff.js/src/resources/game/housing-pack.ts
+48
packages/flyff.js/src/resources/game/housing-pack.ts
···
···
1
+
import { HousingPackObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class HousingPack extends Base {
5
+
/**
6
+
* Get all housing pack IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.packs.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array containing the ID of all available housing packs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/housing/packs");
17
+
}
18
+
19
+
/**
20
+
* Get housing pack by ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.packs.getById(1689)
25
+
* ```
26
+
*
27
+
* @returns {Promise<HousingPackObject>} An object representing a single housing pack
28
+
*/
29
+
public getById(packId: number): Promise<HousingPackObject> {
30
+
return this.get(`/housing/packs/${packId}`);
31
+
}
32
+
33
+
/**
34
+
* Get housing packs by a list of IDs
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.packs.getByListOfIds([1689,296,2881])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<HousingPackObject>>} An array of objects with housing packs
42
+
*/
43
+
public getByListOfIds(
44
+
packIds: Array<number>,
45
+
): Promise<Array<HousingPackObject>> {
46
+
return this.get(`/housing/packs/${packIds.join(",")}`);
47
+
}
48
+
}
+62
packages/flyff.js/src/resources/game/housing.ts
+62
packages/flyff.js/src/resources/game/housing.ts
···
···
1
+
import { HousingObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class Housing extends Base {
5
+
/**
6
+
* Get all housing template IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.housing.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of housing template IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/housing/templates");
17
+
}
18
+
19
+
/**
20
+
* Get housing template by specific ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.housing.getById(1689)
25
+
* ```
26
+
*
27
+
* @returns {Promise<HousingObject>} An object representing a specific housing template
28
+
*/
29
+
public getById(templateId: number): Promise<HousingObject> {
30
+
return this.get(`/housing/templates/${templateId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of templates by their ID
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.housing.getByListOfIds([1689,296,2881])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<HousingObject>>} An array of objects for the specific template IDs
42
+
*/
43
+
public getByListOfIds(
44
+
templateIds: Array<number>,
45
+
): Promise<Array<HousingObject>> {
46
+
return this.get(`/housing/templates/${templateIds.join(",")}`);
47
+
}
48
+
49
+
/**
50
+
* Get Housing template preview image
51
+
*
52
+
* @example
53
+
* ```
54
+
* await client.housing.getImage("BlankWorld.png")
55
+
* ```
56
+
*
57
+
* @returns {Promise<string>} An image of a template icon
58
+
*/
59
+
public getImage(fileName: string): Promise<string> {
60
+
return this.get(`/image/housing/${fileName}`);
61
+
}
62
+
}
+60
packages/flyff.js/src/resources/game/item.ts
+60
packages/flyff.js/src/resources/game/item.ts
···
···
1
+
import { ItemObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class Item extends Base {
5
+
/**
6
+
* Get all item IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.item.getALlIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of item IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/item");
17
+
}
18
+
19
+
/**
20
+
* Get item by a specific ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.item.getById(7635)
25
+
* ```
26
+
*
27
+
* @returns {Promise<ItemObject>} An object representing a specific monster
28
+
*/
29
+
public getById(itemId: number): Promise<ItemObject> {
30
+
return this.get(`/item/${itemId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of items by their ID
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.item.getByListOfIds([7635,9814,3070])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<ItemObject>>} An array of objects for the specific item IDs
42
+
*/
43
+
public getByListOfIds(itemIds: Array<number>): Promise<Array<ItemObject>> {
44
+
return this.get(`/item/${itemIds.join(",")}`);
45
+
}
46
+
47
+
/**
48
+
* Get the item icon for a specific item
49
+
*
50
+
* @example
51
+
* ```
52
+
* await client.item.getImage("weaswonormal.png")
53
+
* ```
54
+
*
55
+
* @returns {Promise<string>} An image of a item icon
56
+
*/
57
+
public getImage(fileName: string): Promise<string> {
58
+
return this.get(`/image/item/${fileName}`);
59
+
}
60
+
}
+60
packages/flyff.js/src/resources/game/job.ts
+60
packages/flyff.js/src/resources/game/job.ts
···
···
1
+
import { Base } from "../base";
2
+
import { JobObject, Job as JobEnum, JobIcon } from "../../types";
3
+
4
+
export default class Job extends Base {
5
+
/**
6
+
* Get all job IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.job.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of job IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/class");
17
+
}
18
+
19
+
/**
20
+
* Get a job by a specific ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.job.getById(Job.MERCENARY)
25
+
* ```
26
+
*
27
+
* @returns {Promise<JobObject>} An object representing a specific job
28
+
*/
29
+
public getById(jobId: JobEnum): Promise<JobObject> {
30
+
return this.get(`/class/${jobId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of jobs by their ID
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.job.getByListOfIds([Job.MERCENARY, Job.ASSIST])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<JobObject>>} An array of objects for the specific job IDs
42
+
*/
43
+
public getByListOfIds(jobIds: Array<JobEnum>): Promise<Array<JobObject>> {
44
+
return this.get(`/class/${jobIds.join(",")}`);
45
+
}
46
+
47
+
/**
48
+
* Get the class icon for a specific job
49
+
*
50
+
* @example
51
+
* ```
52
+
* await client.job.getImage("messenger", "vagrant.png")
53
+
* ```
54
+
*
55
+
* @returns {Promise<string>} An image of a job icon
56
+
*/
57
+
public getImage(style: JobIcon, fileName: string): Promise<string> {
58
+
return this.get(`/image/class/${style}/${fileName}`);
59
+
}
60
+
}
+62
packages/flyff.js/src/resources/game/monster.ts
+62
packages/flyff.js/src/resources/game/monster.ts
···
···
1
+
import { MonsterObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class Monster extends Base {
5
+
/**
6
+
* Get all monster IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.monster.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of monster IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/monster");
17
+
}
18
+
19
+
/**
20
+
* Get monster by a specific ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.monster.getById()
25
+
* ```
26
+
*
27
+
* @returns {Promise<string>} An object representing a specific monster
28
+
*/
29
+
public getById(monsterId: number): Promise<MonsterObject> {
30
+
return this.get(`/monster/${monsterId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of monsters by their ID
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.monster.getByListOfIds([5858, 26, 6047])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<MonsterObject>>} An array of objects for the specific monster IDs
42
+
*/
43
+
public getByListOfIds(
44
+
monsterIds: Array<number>
45
+
): Promise<Array<MonsterObject>> {
46
+
return this.get(`/monster/${monsterIds.join(",")}`);
47
+
}
48
+
49
+
/**
50
+
* Get the monster icon for a specific monster
51
+
*
52
+
* @example
53
+
* ```
54
+
* await client.monster.getImage("vagrant.png")
55
+
* ```
56
+
*
57
+
* @returns {Promise<string>} An image of a monster icon
58
+
*/
59
+
public getImage(fileName: string): Promise<string> {
60
+
return this.get(`/image/monster/${fileName}`);
61
+
}
62
+
}
+60
packages/flyff.js/src/resources/game/npc.ts
+60
packages/flyff.js/src/resources/game/npc.ts
···
···
1
+
import { NpcObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class Npc extends Base {
5
+
/**
6
+
* Get all npc IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.npc.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of npc IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/npc");
17
+
}
18
+
19
+
/**
20
+
* Get npc by specific ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.npc.getById(1689)
25
+
* ```
26
+
*
27
+
* @returns {Promise<NpcObject>} An object representing a specific npc
28
+
*/
29
+
public getById(npcId: number): Promise<NpcObject> {
30
+
return this.get(`/npc/${npcId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of npcs by their IDs
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.npc.getByListOfIds([1689,296,2881])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<NpcObject>>} An array of objects for the specific npc IDs
42
+
*/
43
+
public getByListOfIds(npcIds: Array<number>): Promise<Array<NpcObject>> {
44
+
return this.get(`/npc/${npcIds.join(",")}`);
45
+
}
46
+
47
+
/**
48
+
* Get npc dialog image
49
+
*
50
+
* @example
51
+
* ```
52
+
* await client.npc.getImage("marche.png")
53
+
* ```
54
+
*
55
+
* @returns {Promise<string>} An image of a skill icon
56
+
*/
57
+
public getImage(fileName: string): Promise<string> {
58
+
return this.get(`/image/npc/${fileName}`);
59
+
}
60
+
}
+48
packages/flyff.js/src/resources/game/party-skill.ts
+48
packages/flyff.js/src/resources/game/party-skill.ts
···
···
1
+
import { PartySkillObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class PartySkill extends Base {
5
+
/**
6
+
* Get all party skill IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.party.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of party skill IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/partyskill");
17
+
}
18
+
19
+
/**
20
+
* Get party skill by specific ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.party.getById(8037)
25
+
* ```
26
+
*
27
+
* @returns {Promise<PartySkillObject>} An object representing a specific party skill
28
+
*/
29
+
public getById(skillId: number): Promise<PartySkillObject> {
30
+
return this.get(`/partyskill/${skillId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of party skills by their ID
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.skill.getByListOfIds([8037,2475,2651])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<PartySkillObject>>} An array of objects for the specific party skill IDs
42
+
*/
43
+
public getByListOfIds(
44
+
skillIds: Array<number>
45
+
): Promise<Array<PartySkillObject>> {
46
+
return this.get(`/partyskill/${skillIds.join(",")}`);
47
+
}
48
+
}
+18
packages/flyff.js/src/resources/game/pet.ts
+18
packages/flyff.js/src/resources/game/pet.ts
···
···
1
+
import { RaisedPetObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class RaisedPet extends Base {
5
+
/**
6
+
* Get info about the pet system
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.pet.getRaisedPetInfo()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<RaisedPetObject>>} An array of objects containing info about the pet system
14
+
*/
15
+
public getRaisedPetInfo(): Promise<Array<RaisedPetObject>> {
16
+
return this.get("/raisedpet");
17
+
}
18
+
}
+18
packages/flyff.js/src/resources/game/pk.ts
+18
packages/flyff.js/src/resources/game/pk.ts
···
···
1
+
import { PkObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class PK extends Base {
5
+
/**
6
+
* Get info about the PK system
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.pk.getPKInfo()
11
+
* ```
12
+
*
13
+
* @returns {Promise<PkObject>} An object containing info about the PK system
14
+
*/
15
+
public getPKInfo(): Promise<PkObject> {
16
+
return this.get("/pk");
17
+
}
18
+
}
+46
packages/flyff.js/src/resources/game/quest.ts
+46
packages/flyff.js/src/resources/game/quest.ts
···
···
1
+
import { QuestObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class Quest extends Base {
5
+
/**
6
+
* Get all quest IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.quest.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of quest IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/quest");
17
+
}
18
+
19
+
/**
20
+
* Get quest by specific ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.quest.getById(1840)
25
+
* ```
26
+
*
27
+
* @returns {Promise<QuestObject>} An object representing a specific quest
28
+
*/
29
+
public getById(questId: number): Promise<QuestObject> {
30
+
return this.get(`/quest/${questId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of quests by their IDs
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.quest.getByListOfIds([1840,821,5260])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<QuestObject>>} An array of objects for the specific npc IDs
42
+
*/
43
+
public getByListOfIds(questIds: Array<number>): Promise<Array<QuestObject>> {
44
+
return this.get(`/quest/${questIds.join(",")}`);
45
+
}
46
+
}
+60
packages/flyff.js/src/resources/game/skill.ts
+60
packages/flyff.js/src/resources/game/skill.ts
···
···
1
+
import { SkillObject } from "../../types";
2
+
import { Base } from "../base";
3
+
4
+
export default class Skill extends Base {
5
+
/**
6
+
* Get all skill IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.skill.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of skill IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/skill");
17
+
}
18
+
19
+
/**
20
+
* Get skill by specific ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.skill.getById(6482)
25
+
* ```
26
+
*
27
+
* @returns {Promise<SkillObject>} An object representing a specific skill
28
+
*/
29
+
public getById(skillId: number): Promise<SkillObject> {
30
+
return this.get(`/skill/${skillId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of skills by their ID
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.skill.getByListOfIds([6482,2030,7395])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<SkillObject>>} An array of objects for the specific skill IDs
42
+
*/
43
+
public getByListOfIds(skillIds: Array<number>): Promise<Array<SkillObject>> {
44
+
return this.get(`/skill/${skillIds.join(",")}`);
45
+
}
46
+
47
+
/**
48
+
* Get the skill icon for a specific skill
49
+
*
50
+
* @example
51
+
* ```
52
+
* await client.skill.getImage("acrbowaimeds.png")
53
+
* ```
54
+
*
55
+
* @returns {Promise<string>} An image of a skill icon
56
+
*/
57
+
public getImage(style: "colored" | "old", fileName: string): Promise<string> {
58
+
return this.get(`/image/skill/${style}/${fileName}`);
59
+
}
60
+
}
+31
packages/flyff.js/src/resources/game/version.ts
+31
packages/flyff.js/src/resources/game/version.ts
···
···
1
+
import { Base } from "../base";
2
+
3
+
export default class Version extends Base {
4
+
/**
5
+
* Get the current game version
6
+
*
7
+
* @example
8
+
* ```
9
+
* await client.version.getGameVersion()
10
+
* ```
11
+
*
12
+
* @returns {Promise<number>} Game version
13
+
*/
14
+
public getGameVersion(): Promise<number> {
15
+
return this.get("/version/data");
16
+
}
17
+
18
+
/**
19
+
* Get the current API version
20
+
*
21
+
* @example
22
+
* ```
23
+
* await client.version.getAPIVersion()
24
+
* ```
25
+
*
26
+
* @returns {Promise<string>} API version
27
+
*/
28
+
public getAPIVersion(): Promise<string> {
29
+
return this.get("/version/api");
30
+
}
31
+
}
+62
packages/flyff.js/src/resources/game/world.ts
+62
packages/flyff.js/src/resources/game/world.ts
···
···
1
+
import { Base } from "../base";
2
+
import { WorldObject, WorldOptions } from "../../types";
3
+
4
+
export default class World extends Base {
5
+
/**
6
+
* Get all world IDs
7
+
*
8
+
* @example
9
+
* ```
10
+
* await client.world.getAllIds()
11
+
* ```
12
+
*
13
+
* @returns {Promise<Array<number>>} An array of world IDs
14
+
*/
15
+
public getAllIds(): Promise<Array<number>> {
16
+
return this.get("/world");
17
+
}
18
+
19
+
/**
20
+
* Get a world by its ID
21
+
*
22
+
* @example
23
+
* ```
24
+
* await client.world.getById(4015)
25
+
* ```
26
+
*
27
+
* @returns {Promise<WorldObject>} An object representing a specific world
28
+
*/
29
+
public getById(worldId: number): Promise<WorldObject> {
30
+
return this.get(`/world/${worldId}`);
31
+
}
32
+
33
+
/**
34
+
* Get a list of worlds by their ID
35
+
*
36
+
* @example
37
+
* ```
38
+
* await client.world.getByListOfIds([4015,4839,6063])
39
+
* ```
40
+
*
41
+
* @returns {Promise<Array<WorldObject>>} An array of objects for the specific world IDs
42
+
*/
43
+
public getByListOfIds(worldIds: Array<number>): Promise<Array<WorldObject>> {
44
+
return this.get(`/world/${worldIds.join(",")}`);
45
+
}
46
+
47
+
/**
48
+
* Get a specific tile from a world
49
+
*
50
+
* @example
51
+
* ```
52
+
* await client.world.getTile("messenger", "vagrant.png")
53
+
* ```
54
+
*
55
+
* @returns {Promise<string>} An image of a world tile
56
+
*/
57
+
public getTile(options: WorldOptions): Promise<string> {
58
+
return this.get(
59
+
`/image/world/${options.worldFileName}${options.tileX}-${options.tileY}-0.png`
60
+
);
61
+
}
62
+
}
+873
packages/flyff.js/src/types/index.ts
+873
packages/flyff.js/src/types/index.ts
···
···
1
+
export type Language =
2
+
| "en"
3
+
| "ar"
4
+
| "br"
5
+
| "cns"
6
+
| "de"
7
+
| "fi"
8
+
| "fil"
9
+
| "fr"
10
+
| "id"
11
+
| "it"
12
+
| "jp"
13
+
| "kr"
14
+
| "nl"
15
+
| "pl"
16
+
| "ru"
17
+
| "sp"
18
+
| "sw"
19
+
| "th"
20
+
| "tw"
21
+
| "vi";
22
+
23
+
export type AttackFactors =
24
+
| "sword"
25
+
| "axe"
26
+
| "staff"
27
+
| "stick"
28
+
| "knucke"
29
+
| "yoyo"
30
+
| "bow"
31
+
| "wand";
32
+
33
+
export type Parameter =
34
+
| "str"
35
+
| "dex"
36
+
| "int"
37
+
| "sta"
38
+
| "speed"
39
+
| "attackspeed"
40
+
| "attackspeedrate"
41
+
| "jumpheight"
42
+
| "bowrange"
43
+
| "def"
44
+
| "parry"
45
+
| "reflectdamage"
46
+
| "rangedblock"
47
+
| "meleeblock"
48
+
| "magicdefense"
49
+
| "electricitydefense"
50
+
| "firedefense"
51
+
| "winddefense"
52
+
| "waterdefense"
53
+
| "earthdefense"
54
+
| "attack"
55
+
| "hitrate"
56
+
| "magicattack"
57
+
| "swordattack"
58
+
| "axeattack"
59
+
| "knuckleattack"
60
+
| "yoyoattack"
61
+
| "bowattack"
62
+
| "earthmastery"
63
+
| "firemastery"
64
+
| "watermastery"
65
+
| "electricitymastery"
66
+
| "windmastery"
67
+
| "damage"
68
+
| "criticalchance"
69
+
| "elementattack"
70
+
| "skillchance"
71
+
| "attribute"
72
+
| "maxhp"
73
+
| "maxmp"
74
+
| "maxfp"
75
+
| "hprecovery"
76
+
| "mprecovery"
77
+
| "fprecovery"
78
+
| "hprecoveryafterkill"
79
+
| "mprecoveryafterkill"
80
+
| "fprecoveryafterkill"
81
+
| "decresedmpconsumption"
82
+
| "decreasedfpconsumption"
83
+
| "minability"
84
+
| "maxability"
85
+
| "attributeimmunity"
86
+
| "autohp"
87
+
| "autohppvp"
88
+
| "decreasedcastingtime"
89
+
| "criticaldamage"
90
+
| "skilldamage"
91
+
| "hprestoration"
92
+
| "criticalresist"
93
+
| "healing"
94
+
| "pvpdamagereduction"
95
+
| "magicdefense"
96
+
| "pvpdamage"
97
+
| "pvedamage"
98
+
| "penya"
99
+
| "hp"
100
+
| "mp"
101
+
| "fp"
102
+
| "allelementdefense"
103
+
| "allstats"
104
+
| "attackandmaxhp"
105
+
| "defenseandhitrateincrease"
106
+
| "cure"
107
+
| "movement"
108
+
| "allelementmastery"
109
+
| "allrecovery"
110
+
| "allrecoveryafterkill"
111
+
| "decreasedfpandmpconsumption"
112
+
| "removealldebuff"
113
+
| "block"
114
+
| "removedebuff"
115
+
| "damageandstealhp"
116
+
| "stealhp"
117
+
| "explostdecreaseatrevival"
118
+
| "cheerpoint"
119
+
| "incomingdamage"
120
+
| "spiritstrike"
121
+
| "stealfp"
122
+
| "exprate"
123
+
| "droprate"
124
+
| "fprecoveryautoattack"
125
+
| "bleedandpoisonresist"
126
+
| "pvedamagereduction"
127
+
| "blockpenetration"
128
+
| "damgeoffload"
129
+
| "incominghealing"
130
+
| "multistrike"
131
+
| "monsterexp"
132
+
| "mosterexpanddrop"
133
+
| "hppercentrecovery"
134
+
| "expanddrop"
135
+
| "allspeed"
136
+
| "arcaneinsightchance"
137
+
| "ripostereflexchance";
138
+
139
+
export type JobIcon = "messenger" | "old_female" | "old_male" | "target";
140
+
141
+
export type WorldType = "main" | "prison" | "dungeon" | "instance" | "event";
142
+
export type WorldPlace =
143
+
| "lodestar"
144
+
| "lodelight"
145
+
| "flyingstation"
146
+
| "weaponstore"
147
+
| "armorstore"
148
+
| "foodstore"
149
+
| "magicstore"
150
+
| "generalstore"
151
+
| "publicoffice"
152
+
| "questoffice"
153
+
| "dungeon"
154
+
| "shieldstore"
155
+
| "warpzone"
156
+
| "instance";
157
+
158
+
export type WorldLocation = {
159
+
world: number;
160
+
x: number;
161
+
y: number;
162
+
z: number;
163
+
continent?: number;
164
+
};
165
+
166
+
export type WorldOptions = {
167
+
worldFileName: string;
168
+
tileX: number;
169
+
tileY: number;
170
+
};
171
+
172
+
export enum Job {
173
+
VAGRANT = 9686,
174
+
MERCENARY = 764,
175
+
ASSIST = 8962,
176
+
ACROBAT = 9098,
177
+
MAGICIAN = 9581,
178
+
BLADE = 2246,
179
+
JESTER = 3545,
180
+
KNIGHT = 5330,
181
+
PSYKEEPER = 5709,
182
+
BILLPOSTER = 7424,
183
+
ELEMENTOR = 9150,
184
+
RANGER = 9295,
185
+
RINGMASTER = 9389,
186
+
}
187
+
188
+
export type MonsterRank =
189
+
| "small"
190
+
| "normal"
191
+
| "captain"
192
+
| "giant"
193
+
| "violet"
194
+
| "boss"
195
+
| "material"
196
+
| "super"
197
+
| "guard"
198
+
| "citizen"
199
+
| "worldboss";
200
+
export type ItemCategory =
201
+
| "weapon"
202
+
| "armor"
203
+
| "fashion"
204
+
| "jewelry"
205
+
| "flying"
206
+
| "collector"
207
+
| "quest"
208
+
| "trans"
209
+
| "fuel"
210
+
| "booty"
211
+
| "arrow"
212
+
| "charm"
213
+
| "recovery"
214
+
| "blinkwing"
215
+
| "firework"
216
+
| "pickuppet"
217
+
| "teleportring"
218
+
| "material"
219
+
| "buff"
220
+
| "monsterball"
221
+
| "pack"
222
+
| "scroll"
223
+
| "vendorskin"
224
+
| "raisedpet"
225
+
| "currency";
226
+
export type ItemSubcategory =
227
+
| "armorcolor"
228
+
| "axe"
229
+
| "balloon"
230
+
| "board"
231
+
| "book"
232
+
| "boots"
233
+
| "bow"
234
+
| "broom"
235
+
| "car"
236
+
| "cloak"
237
+
| "cloth"
238
+
| "drink"
239
+
| "earring"
240
+
| "elementcard"
241
+
| "event"
242
+
| "food"
243
+
| "gauntlet"
244
+
| "glove"
245
+
| "glow"
246
+
| "hat"
247
+
| "helmet"
248
+
| "inventorybag"
249
+
| "knuckle"
250
+
| "letter"
251
+
| "mask"
252
+
| "mineral"
253
+
| "necklace"
254
+
| "petfeed"
255
+
| "piercingcard"
256
+
| "piercingdice"
257
+
| "pill"
258
+
| "specialstone"
259
+
| "staff"
260
+
| "stick"
261
+
| "suit"
262
+
| "sword"
263
+
| "townblinkwing"
264
+
| "trans"
265
+
| "upgradedice"
266
+
| "wand"
267
+
| "wings"
268
+
| "yoyo"
269
+
| "gacha"
270
+
| "globalgacha"
271
+
| "giftbox"
272
+
| "ampexp"
273
+
| "upgradescroll"
274
+
| "awakescroll"
275
+
| "visualcloak"
276
+
| "gem"
277
+
| "piece"
278
+
| "ultimatedice"
279
+
| "selectblinkwing"
280
+
| "selectbox"
281
+
| "hoverbike"
282
+
| "guildbag"
283
+
| "raisedpet"
284
+
| "raisedpettransmute"
285
+
| "harvestglove"
286
+
| "battlepass"
287
+
| "pkchip"
288
+
| "namecolor"
289
+
| "ticket"
290
+
| "fcoin"
291
+
| "rockpaperscissors"
292
+
| "sunstone"
293
+
| "rainbowrace";
294
+
295
+
export type NpcMenu =
296
+
| "trade"
297
+
| "dialog"
298
+
| "changeelem"
299
+
| "upgrade"
300
+
| "inputreward"
301
+
| "showreward"
302
+
| "piercing"
303
+
| "piercingremove"
304
+
| "attribute"
305
+
| "lodelight"
306
+
| "bank"
307
+
| "hairshop"
308
+
| "itemrepair"
309
+
| "post"
310
+
| "skinshop"
311
+
| "buff"
312
+
| "arenaenter"
313
+
| "arenaleave"
314
+
| "guildbank"
315
+
| "guildrank"
316
+
| "guildrankwar"
317
+
| "guildrankinfo"
318
+
| "guildsiegeapply"
319
+
| "guildsiegestate"
320
+
| "guildsiegecancel"
321
+
| "guildsiegejoin"
322
+
| "guildsiegelineup"
323
+
| "guildsiegejackpot"
324
+
| "guildsiegebestplayer"
325
+
| "guildsiegeranking"
326
+
| "guildsiegejackpot2"
327
+
| "guildsiegeinfo1"
328
+
| "guildsiegeinfo2"
329
+
| "guildsigeinfo3"
330
+
| "guildsiegeinfo4"
331
+
| "guildsiegeinfo80"
332
+
| "guildsiegeapply80"
333
+
| "guildsiegestate80"
334
+
| "guildsiegejoin80"
335
+
| "guildsiegelineup80"
336
+
| "guildsiegeranking80"
337
+
| "guildsiegecancel80"
338
+
| "guildsiegeinfo60"
339
+
| "guildsiegeapply60"
340
+
| "guildsiegestate60"
341
+
| "guildsiegejoin60"
342
+
| "guildsiegelineup60"
343
+
| "guildsiegeranking60"
344
+
| "guildsiegecancel60"
345
+
| "roshambo"
346
+
| "exchangeroshambo"
347
+
| "upgradecard"
348
+
| "safeelementupgrade"
349
+
| "safeupgrade"
350
+
| "safepiercing"
351
+
| "createshiningpowerdice"
352
+
| "createjewels"
353
+
| "createuniqueweapon"
354
+
| "exchangerareitempieces"
355
+
| "exchangecardpieces"
356
+
| "removelevelreduction"
357
+
| "removecostumeblessing"
358
+
| "arenaranking"
359
+
| "arenareward"
360
+
| "accessoryupgrade"
361
+
| "safeaccessoryupgrade"
362
+
| "traderedchips"
363
+
| "tradebluechips"
364
+
| "petcandycrafting"
365
+
| "petsacrificing"
366
+
| "cosmeticwardrobe"
367
+
| "dungeon"
368
+
| "tradepkchips"
369
+
| "exchangefwc"
370
+
| "gachamachine"
371
+
| "tradegreenchips"
372
+
| "reshufflecard"
373
+
| "rainbowraceapply"
374
+
| "createultimate"
375
+
| "traderings"
376
+
| "tradeearrings"
377
+
| "tradenecklaces"
378
+
| "dismantle"
379
+
| "fwcboard"
380
+
| "fwcteleport"
381
+
| "fwcranking"
382
+
| "fwcspectate"
383
+
| "fwcexchange"
384
+
| "fwccollect";
385
+
386
+
export type Spawn = {
387
+
world: number;
388
+
left: number;
389
+
right: number;
390
+
top: number;
391
+
bottom: number;
392
+
continent?: number;
393
+
aggressivity?: number;
394
+
};
395
+
396
+
export type SkillAwake = Record<
397
+
string,
398
+
{ uncommon: Array<number>; rare: Array<number>; unique?: Array<number> }
399
+
>;
400
+
401
+
export type Ability = {
402
+
parameter: Parameter;
403
+
add?: number;
404
+
addMax?: number;
405
+
set?: number;
406
+
rate: boolean;
407
+
attribute?:
408
+
| "rooting"
409
+
| "stun"
410
+
| "hitrate"
411
+
| "invisibility"
412
+
| "poison"
413
+
| "slow"
414
+
| "double"
415
+
| "bleeding"
416
+
| "silent"
417
+
| "counterattackdamage"
418
+
| "counterattack"
419
+
| "loot"
420
+
| "moonbeam"
421
+
| "hitrateandpoison"
422
+
| "hitrateandpoisonandstun"
423
+
| "lootandslow"
424
+
| "poisonandbleedingandmoonbeam"
425
+
| "stunandrooting"
426
+
| "forcedblock";
427
+
dotValue?: number;
428
+
dotMode?: "currentdamage" | "standardattack" | "fixedvalue" | "stacks";
429
+
skill?: number;
430
+
skillLevel?: number;
431
+
pvp?: boolean;
432
+
pve?: boolean;
433
+
};
434
+
export interface BaseObject {
435
+
id: number;
436
+
name: Record<Language, string>;
437
+
}
438
+
439
+
export interface JobObject extends BaseObject {
440
+
type: "beginner" | "expert" | "professional";
441
+
icon: string;
442
+
minLevel: number;
443
+
maxLevel: number;
444
+
parent: number;
445
+
maxHP: number;
446
+
maxFP: number;
447
+
maxMP: number;
448
+
attackSpeed: number;
449
+
critical: number;
450
+
autoAttackFactors: Record<AttackFactors, number>;
451
+
}
452
+
453
+
export interface MonsterObject extends BaseObject {
454
+
event: boolean;
455
+
levelHidden: boolean;
456
+
level: number;
457
+
rank: MonsterRank;
458
+
area: "normal" | "dungeon";
459
+
element: "fire" | "water" | "electricity" | "wind" | "earth" | "none";
460
+
icon: string;
461
+
booty?: number;
462
+
mineral?: number;
463
+
flying: boolean;
464
+
hp: number;
465
+
mp: number;
466
+
minAttack: number;
467
+
maxAttack: number;
468
+
defense: number;
469
+
magicDefense: number;
470
+
sta: number;
471
+
str: number;
472
+
dex: number;
473
+
int: number;
474
+
hitRate: number;
475
+
parry: number;
476
+
runaway: boolean;
477
+
resistFire: number;
478
+
resistWater: number;
479
+
resistWind: number;
480
+
resistEarth: number;
481
+
resistElectricity: number;
482
+
summoned?: Array<number>;
483
+
appliedSkills: Array<{
484
+
skill: number;
485
+
level: number;
486
+
probability: number;
487
+
conditionalBuff?: number;
488
+
}>;
489
+
avenge: Array<{ monster: number; skill: number; skillLevel: number }>;
490
+
berserkThresholdHP?: number;
491
+
berserkAttackPower?: number;
492
+
recoveryThresholdHP?: number;
493
+
recoveryAmountHP?: number;
494
+
speed: number;
495
+
experience: number;
496
+
experienceSharing: "normal" | "area";
497
+
experienceTable: Array<number>;
498
+
minDropGold: number;
499
+
maxDropGold: number;
500
+
attacks: Array<{
501
+
minAttack: number;
502
+
maxAttack: number;
503
+
attackRange: number;
504
+
target: "area" | "single";
505
+
triggerSkill?: number;
506
+
triggerSkillLevel?: number;
507
+
triggerSkillProbability?: number;
508
+
}>;
509
+
drops: Array<{ item: number; probabilityRange: string; common: boolean }>;
510
+
location: WorldLocation;
511
+
spawns: Array<Spawn>;
512
+
}
513
+
514
+
export interface ItemObject extends BaseObject {
515
+
description: Record<Language, string>;
516
+
icon: string;
517
+
category: ItemCategory;
518
+
subcategory?: ItemSubcategory;
519
+
rarity: "common" | "uncommon" | "rare" | "veryrare" | "unique";
520
+
class?: number;
521
+
level: number;
522
+
sex?: "female" | "male";
523
+
stack: number;
524
+
buyPrice?: number;
525
+
sellPrice: number;
526
+
cosumable: boolean;
527
+
premium: boolean;
528
+
deletable: boolean;
529
+
tradeable: boolean;
530
+
shining: boolean;
531
+
element: "fire" | "water" | "electricity" | "wind" | "earth" | "none";
532
+
durationRealTime: boolean;
533
+
transy?: number;
534
+
dismantle?: Array<{
535
+
item: number;
536
+
inputUpgradeLevel?: number;
537
+
count: number;
538
+
savePiercing: boolean;
539
+
saveElement: boolean;
540
+
saveUpgrade: boolean;
541
+
upgradeLevel: number;
542
+
}>;
543
+
upgradeLevels?: Array<{
544
+
upgradeLevel: number;
545
+
requiredLevel: number;
546
+
abilities: Array<Ability>;
547
+
}>;
548
+
cooldown?: number;
549
+
casting?: number;
550
+
duration?: number;
551
+
flightSpeed?: number;
552
+
guildContribution?: number;
553
+
attackSpeed?:
554
+
| "veryslow"
555
+
| "slow"
556
+
| "normal"
557
+
| "fast"
558
+
| "veryfast"
559
+
| "fastest";
560
+
attackSpeedValue?: number;
561
+
attackRange?: number;
562
+
twoHanded?: boolean;
563
+
minAttack?: number;
564
+
maxAttack?: number;
565
+
additionalSkillDamage?: number;
566
+
ultimateConvertible?: boolean;
567
+
possibleRandomStats?: Array<Ability>;
568
+
consumedMP?: number;
569
+
consumedItem?: string;
570
+
triggerSkill?: number;
571
+
triggerSkillProbability?: number;
572
+
minDefense?: number;
573
+
maxDefense?: number;
574
+
blinkwingTarget: WorldLocation;
575
+
abilities: Array<Ability>;
576
+
location: WorldLocation;
577
+
spawns: Array<Spawn>;
578
+
}
579
+
580
+
export interface WorldObject extends BaseObject {
581
+
type: WorldType;
582
+
width: number;
583
+
height: number;
584
+
tileName: string;
585
+
tileSize: number;
586
+
flying: boolean;
587
+
pk: boolean;
588
+
inDoor: boolean;
589
+
revivalWorld?: number;
590
+
revivalKey?: string;
591
+
places: Array<Record<WorldType, WorldLocation>>;
592
+
lodestars: Array<{ key: string; location: WorldLocation }>;
593
+
continents: Array<{
594
+
id: number;
595
+
name: Language;
596
+
town: boolean;
597
+
polygon: Array<{ x: number; z: number }>;
598
+
}>;
599
+
}
600
+
601
+
export interface EquipSetObject extends BaseObject {
602
+
transy: number;
603
+
parts: Array<number>;
604
+
bonus: Array<{ equipped: number; ability: Ability }>;
605
+
}
606
+
607
+
export interface SkillObject extends BaseObject {
608
+
description: Record<Language, string>;
609
+
icon: string;
610
+
class?: number;
611
+
level: number;
612
+
element: "fire" | "water" | "electricity" | "wind" | "earth" | "none";
613
+
abilities: Array<Ability>;
614
+
magic: boolean;
615
+
target: "party" | "line" | "area" | "single" | "currentplayer";
616
+
combo: "general" | "step" | "circle" | "finish";
617
+
debuff: boolean;
618
+
flying: boolean;
619
+
passive: boolean;
620
+
consumedItem?: string;
621
+
triggerSkill?: number;
622
+
skillPoints?: number;
623
+
weapon?: string;
624
+
requirements: Array<{ skill: number; level: number }>;
625
+
levels: Array<{
626
+
minAttack: number;
627
+
maxAttack: number;
628
+
damageMultiplier: number;
629
+
probability: number;
630
+
probabilityPVP: number;
631
+
flybackProbability: number;
632
+
consumedMP: number;
633
+
consumedFP: number;
634
+
cooldown: number;
635
+
casting: number;
636
+
duration: number;
637
+
durationPVP: number;
638
+
dotTick: number;
639
+
spellRange: number;
640
+
wallLives: number;
641
+
reflectedDamagePVE: number;
642
+
reflectedDamagePVP: number;
643
+
tetherRange: number;
644
+
spreadOnExpireRange: number;
645
+
abilities: Array<Ability>;
646
+
scalingParameters: Array<{
647
+
parameter: string;
648
+
stat: "str" | "sta" | "dex" | "int";
649
+
scale: number;
650
+
pvp: boolean;
651
+
pve: boolean;
652
+
}>;
653
+
}>;
654
+
}
655
+
656
+
export interface PartySkillObject extends BaseObject {
657
+
description: Record<Language, string>;
658
+
icon: string;
659
+
level: number;
660
+
consumedPoints?: number;
661
+
duration?: number;
662
+
}
663
+
664
+
export interface NpcObject extends BaseObject {
665
+
menus: NpcMenu;
666
+
locations: Array<WorldLocation>;
667
+
image: string;
668
+
place?: WorldPlace;
669
+
shop: Array<{ name: Record<Language, string>; items: Array<number> }>;
670
+
}
671
+
672
+
export interface QuestObject extends BaseObject {
673
+
type: "category" | "normal" | "repeat" | "chain" | "daily";
674
+
repeatable: boolean;
675
+
removable: boolean;
676
+
partyShare: boolean;
677
+
parent?: number;
678
+
beginNPC?: number;
679
+
minLevel?: number;
680
+
maxLevel?: number;
681
+
beginClasses?: Array<number>;
682
+
beginQuests?: Array<{ quest: number; completed: boolean }>;
683
+
beginReceiveItems?: Array<{ item: number; count: number }>;
684
+
endNPC?: number;
685
+
endNeededItems?: Array<{ item: number; count: number }>;
686
+
endTimeLimit?: number;
687
+
endTalkNPC?: number;
688
+
endVisitPlace?: Spawn;
689
+
endKillMonsters?: Array<{ monster: Array<number>; count: number }>;
690
+
endRemoveItems?: Array<{ item: number; count?: number }>;
691
+
endReceiveGold?: number | null;
692
+
endReceiveExperience?: Array<number> | null;
693
+
endReceiveInventorySpaces?: number | null;
694
+
endReceiveSkillPoints?: number | null;
695
+
endReceiveKarma?: string | null;
696
+
endReceiveItems?: Array<{
697
+
item: number;
698
+
count: number;
699
+
upgradeLevel?: number;
700
+
soulLinked: boolean;
701
+
}> | null;
702
+
description?: Record<Language, string>;
703
+
descriptionComplete?: Record<Language, string>;
704
+
dialogsBegin?: Array<Record<Language, string>>;
705
+
dialogsAccept?: Array<Record<Language, string>>;
706
+
dialogsDecline?: Array<Record<Language, string>>;
707
+
dialogsComplete?: Array<Record<Language, string>>;
708
+
dialogsFail?: Array<Record<Language, string>>;
709
+
}
710
+
711
+
export interface PkObject {
712
+
pointsPerKill: number;
713
+
decreasePointDelaySec: number;
714
+
decreasePointCount: number;
715
+
dropChipPercentages: Array<{ stolenChipsCount: number; dropPercent: number }>;
716
+
}
717
+
718
+
export interface AchievementObject extends BaseObject {
719
+
description: Record<Language, string>;
720
+
type:
721
+
| "killmonster"
722
+
| "useitem"
723
+
| "jump"
724
+
| "stat"
725
+
| "class"
726
+
| "level"
727
+
| "playtime"
728
+
| "useskill"
729
+
| "connection"
730
+
| "hatchegg";
731
+
category: "general" | "monsters" | "consumables" | "attendance";
732
+
accountWide: boolean;
733
+
badgeReward?: string;
734
+
levels: Array<{
735
+
value?: number;
736
+
name?: Record<Language, string>;
737
+
title?: Record<Language, string>;
738
+
attackPower?: number;
739
+
inventorySpaces?: number;
740
+
gold?: number;
741
+
items?: Array<{ item: number; count: number; soulLinked: boolean }>;
742
+
}>;
743
+
mainMonster?: number;
744
+
monsters?: Array<number>;
745
+
mainItem?: number;
746
+
items: Array<number>;
747
+
stats: "str" | "sta" | "dex" | "int";
748
+
mainSkill: number;
749
+
skills: Array<number>;
750
+
mainClass: number;
751
+
classes: Array<number>;
752
+
}
753
+
754
+
export interface UpgradeBonusObject {
755
+
upgradeLevel: number;
756
+
weaponAttack: number;
757
+
helmetDefense?: number;
758
+
suitDefense?: number;
759
+
gauntletDefense?: number;
760
+
bootsDefense?: number;
761
+
shieldDefense?: number;
762
+
setAbilities: Array<Ability>;
763
+
}
764
+
765
+
export interface AwakeObject {
766
+
bow: {
767
+
skills?: SkillAwake;
768
+
parameters?: SkillAwake;
769
+
};
770
+
yoyo: {
771
+
skills?: SkillAwake;
772
+
parameters?: SkillAwake;
773
+
};
774
+
stick: {
775
+
skills?: SkillAwake;
776
+
parameters?: SkillAwake;
777
+
};
778
+
knuckle: {
779
+
skills?: SkillAwake;
780
+
parameters?: SkillAwake;
781
+
};
782
+
swordoraxe: {
783
+
skills?: SkillAwake;
784
+
parameters?: SkillAwake;
785
+
};
786
+
staff: {
787
+
skills?: SkillAwake;
788
+
parameters?: SkillAwake;
789
+
};
790
+
wandorstaff: {
791
+
skills?: SkillAwake;
792
+
parameters?: SkillAwake;
793
+
};
794
+
wand: {
795
+
skills?: SkillAwake;
796
+
parameters?: SkillAwake;
797
+
};
798
+
shield: {
799
+
skills?: SkillAwake;
800
+
parameters?: SkillAwake;
801
+
};
802
+
}
803
+
804
+
export interface RaisedPetObject {
805
+
petItemId: number;
806
+
parameter:
807
+
| "str"
808
+
| "sta"
809
+
| "dex"
810
+
| "int"
811
+
| "attack"
812
+
| "def"
813
+
| "maxhp"
814
+
| "criticalchance"
815
+
| "criticaldamage";
816
+
rate?: boolean;
817
+
values?: Array<number>;
818
+
tiers: Array<{
819
+
maxEnergy: number;
820
+
exp: number;
821
+
requiredCandyItem: number;
822
+
graceSkill?: number;
823
+
graceSkillCooldown?: number;
824
+
graceSkillLevel?: number;
825
+
graceSkillDuration?: number;
826
+
graceSkillEnergyConsumption?: number;
827
+
}>;
828
+
}
829
+
830
+
export interface DungeonObject extends BaseObject {
831
+
type: "party" | "guild" | "solo" | "partyorsolo" | "guildorsolo";
832
+
image: string;
833
+
world: number;
834
+
difficulty:
835
+
| "normal"
836
+
| "medium"
837
+
| "hard"
838
+
| "extrahard"
839
+
| "nightmare"
840
+
| "story"
841
+
| "cursed";
842
+
minLevel: number;
843
+
maxLevel: number;
844
+
cooldownSecs: number;
845
+
monsters: Array<number>;
846
+
monsterMods?: Array<{
847
+
parameter: string;
848
+
value: number;
849
+
maxPlayerCount?: number;
850
+
}>;
851
+
requiredCreatorQuest?: number;
852
+
requiredCreatorItem?: number;
853
+
requiredCreatorPenya?: number;
854
+
minGuildLevel?: number;
855
+
availableCurses: Array<{
856
+
skill: number;
857
+
skillLevel: number;
858
+
costItem: number;
859
+
costCount: number;
860
+
}>;
861
+
}
862
+
863
+
export interface HousingObject extends BaseObject {
864
+
image: string;
865
+
world: number;
866
+
size: "small" | "medium" | "large" | "extralarge";
867
+
}
868
+
869
+
export interface HousingPackObject {
870
+
packItemId: number;
871
+
objects: Array<{ minScale?: number; maxScale?: number; name: Language }>;
872
+
npcs: Array<{ name: Language; abilities: Ability[] }>;
873
+
}
+115
packages/flyff.js/tsconfig.json
+115
packages/flyff.js/tsconfig.json
···
···
1
+
{
2
+
"compilerOptions": {
3
+
/* Visit https://aka.ms/tsconfig to read more about this file */
4
+
5
+
/* Projects */
6
+
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */
7
+
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */
8
+
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */
9
+
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */
10
+
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */
11
+
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
12
+
13
+
/* Language and Environment */
14
+
"target": "es2016",
15
+
/* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
16
+
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
17
+
// "jsx": "preserve", /* Specify what JSX code is generated. */
18
+
// "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
19
+
// "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */
20
+
// "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */
21
+
// "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */
22
+
// "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */
23
+
// "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */
24
+
// "noLib": true, /* Disable including any library files, including the default lib.d.ts. */
25
+
// "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */
26
+
// "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */
27
+
28
+
/* Modules */
29
+
"module": "commonjs",
30
+
/* Specify what module code is generated. */
31
+
// "rootDir": "./", /* Specify the root folder within your source files. */
32
+
// "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */
33
+
// "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */
34
+
// "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */
35
+
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
36
+
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
37
+
// "types": [], /* Specify type package names to be included without being referenced in a source file. */
38
+
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
39
+
// "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */
40
+
// "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */
41
+
// "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */
42
+
// "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */
43
+
// "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */
44
+
// "resolveJsonModule": true, /* Enable importing .json files. */
45
+
// "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */
46
+
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
47
+
48
+
/* JavaScript Support */
49
+
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
50
+
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
51
+
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
52
+
53
+
/* Emit */
54
+
// "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */,
55
+
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
56
+
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */
57
+
// "sourceMap": true, /* Create source map files for emitted JavaScript files. */
58
+
// "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */
59
+
// "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */
60
+
// "outDir": "./", /* Specify an output folder for all emitted files. */
61
+
// "removeComments": true, /* Disable emitting comments. */
62
+
"noEmit": true,
63
+
/* Disable emitting files from a compilation. */
64
+
// "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */
65
+
// "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */
66
+
// "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */
67
+
// "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */
68
+
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
69
+
// "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */
70
+
// "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */
71
+
// "newLine": "crlf", /* Set the newline character for emitting files. */
72
+
// "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */
73
+
// "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */
74
+
// "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */
75
+
// "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */
76
+
// "declarationDir": "./", /* Specify the output directory for generated declaration files. */
77
+
// "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */
78
+
79
+
/* Interop Constraints */
80
+
// "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */
81
+
// "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */
82
+
// "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */
83
+
"esModuleInterop": true,
84
+
/* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */
85
+
// "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */
86
+
"forceConsistentCasingInFileNames": true,
87
+
/* Ensure that casing is correct in imports. */
88
+
89
+
/* Type Checking */
90
+
"strict": true,
91
+
/* Enable all strict type-checking options. */
92
+
// "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */
93
+
// "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */
94
+
// "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */
95
+
// "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */
96
+
// "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */
97
+
// "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */
98
+
// "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */
99
+
// "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */
100
+
// "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */
101
+
// "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */
102
+
// "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */
103
+
// "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */
104
+
// "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */
105
+
// "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */
106
+
// "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */
107
+
// "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */
108
+
// "allowUnusedLabels": true, /* Disable error reporting for unused labels. */
109
+
// "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */
110
+
111
+
/* Completeness */
112
+
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
113
+
"skipLibCheck": true /* Skip type checking all .d.ts files. */
114
+
}
115
+
}
+2870
pnpm-lock.yaml
+2870
pnpm-lock.yaml
···
12
specifier: ^2.6.1
13
version: 2.6.1
14
15
packages:
16
17
turbo-darwin-64@2.6.1:
18
resolution: {integrity: sha512-Dm0HwhyZF4J0uLqkhUyCVJvKM9Rw7M03v3J9A7drHDQW0qAbIGBrUijQ8g4Q9Cciw/BXRRd8Uzkc3oue+qn+ZQ==}
19
cpu: [x64]
···
48
resolution: {integrity: sha512-qBwXXuDT3rA53kbNafGbT5r++BrhRgx3sAo0cHoDAeG9g1ItTmUMgltz3Hy7Hazy1ODqNpR+C7QwqL6DYB52yA==}
49
hasBin: true
50
51
snapshots:
52
53
turbo-darwin-64@2.6.1:
54
optional: true
55
···
76
turbo-linux-arm64: 2.6.1
77
turbo-windows-64: 2.6.1
78
turbo-windows-arm64: 2.6.1
···
12
specifier: ^2.6.1
13
version: 2.6.1
14
15
+
apps/flyff-exporter:
16
+
dependencies:
17
+
flyff.js:
18
+
specifier: ^1.3.0
19
+
version: 1.3.0
20
+
lodash:
21
+
specifier: ^4.17.21
22
+
version: 4.17.21
23
+
devDependencies:
24
+
'@types/bun':
25
+
specifier: ^1.2.11
26
+
version: 1.3.3
27
+
'@types/lodash':
28
+
specifier: ^4.14.191
29
+
version: 4.17.21
30
+
'@types/node':
31
+
specifier: ^18.11.18
32
+
version: 18.19.130
33
+
typescript:
34
+
specifier: ^4.9.4
35
+
version: 4.9.5
36
+
37
+
apps/skillulator:
38
+
dependencies:
39
+
'@tanstack/react-router':
40
+
specifier: ^1.81.0
41
+
version: 1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
42
+
clsx:
43
+
specifier: ^2.1.1
44
+
version: 2.1.1
45
+
i18next:
46
+
specifier: ^23.16.5
47
+
version: 23.16.8
48
+
i18next-browser-languagedetector:
49
+
specifier: ^8.0.0
50
+
version: 8.2.0
51
+
i18next-http-backend:
52
+
specifier: ^2.6.2
53
+
version: 2.7.3
54
+
immer:
55
+
specifier: ^10.1.1
56
+
version: 10.2.0
57
+
lz-string:
58
+
specifier: ^1.5.0
59
+
version: 1.5.0
60
+
react:
61
+
specifier: ^18.3.1
62
+
version: 18.3.1
63
+
react-dom:
64
+
specifier: ^18.3.1
65
+
version: 18.3.1(react@18.3.1)
66
+
react-helmet:
67
+
specifier: ^6.1.0
68
+
version: 6.1.0(react@18.3.1)
69
+
react-i18next:
70
+
specifier: ^15.1.1
71
+
version: 15.7.4(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3)
72
+
react-router:
73
+
specifier: ^7.0.0-pre.0
74
+
version: 7.9.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
75
+
zustand:
76
+
specifier: ^5.0.1
77
+
version: 5.0.8(@types/react@18.3.27)(immer@10.2.0)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1))
78
+
devDependencies:
79
+
'@tailwindcss/forms':
80
+
specifier: ^0.5.9
81
+
version: 0.5.10(tailwindcss@3.4.18(tsx@4.20.6))
82
+
'@tanstack/router-devtools':
83
+
specifier: ^1.81.0
84
+
version: 1.139.10(@tanstack/react-router@1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tanstack/router-core@1.139.10)(@types/node@22.19.1)(csstype@3.2.3)(jiti@1.21.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.9.10)(tsx@4.20.6)
85
+
'@tanstack/router-plugin':
86
+
specifier: ^1.79.0
87
+
version: 1.139.10(@tanstack/react-router@1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.21(@types/node@22.19.1))
88
+
'@types/node':
89
+
specifier: ^22.9.0
90
+
version: 22.19.1
91
+
'@types/react':
92
+
specifier: ^18.3.12
93
+
version: 18.3.27
94
+
'@types/react-dom':
95
+
specifier: ^18.3.1
96
+
version: 18.3.7(@types/react@18.3.27)
97
+
'@vitejs/plugin-react':
98
+
specifier: ^4.3.3
99
+
version: 4.7.0(vite@5.4.21(@types/node@22.19.1))
100
+
autoprefixer:
101
+
specifier: ^10.4.20
102
+
version: 10.4.22(postcss@8.5.6)
103
+
postcss:
104
+
specifier: ^8.4.47
105
+
version: 8.5.6
106
+
tailwindcss:
107
+
specifier: ^3.4.14
108
+
version: 3.4.18(tsx@4.20.6)
109
+
typescript:
110
+
specifier: ^5.6.3
111
+
version: 5.9.3
112
+
vite:
113
+
specifier: ^5.4.10
114
+
version: 5.4.21(@types/node@22.19.1)
115
+
116
packages:
117
118
+
'@alloc/quick-lru@5.2.0':
119
+
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
120
+
engines: {node: '>=10'}
121
+
122
+
'@babel/code-frame@7.27.1':
123
+
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
124
+
engines: {node: '>=6.9.0'}
125
+
126
+
'@babel/compat-data@7.28.5':
127
+
resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==}
128
+
engines: {node: '>=6.9.0'}
129
+
130
+
'@babel/core@7.28.5':
131
+
resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==}
132
+
engines: {node: '>=6.9.0'}
133
+
134
+
'@babel/generator@7.28.5':
135
+
resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==}
136
+
engines: {node: '>=6.9.0'}
137
+
138
+
'@babel/helper-annotate-as-pure@7.27.3':
139
+
resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==}
140
+
engines: {node: '>=6.9.0'}
141
+
142
+
'@babel/helper-compilation-targets@7.27.2':
143
+
resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==}
144
+
engines: {node: '>=6.9.0'}
145
+
146
+
'@babel/helper-create-class-features-plugin@7.28.5':
147
+
resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==}
148
+
engines: {node: '>=6.9.0'}
149
+
peerDependencies:
150
+
'@babel/core': ^7.0.0
151
+
152
+
'@babel/helper-globals@7.28.0':
153
+
resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
154
+
engines: {node: '>=6.9.0'}
155
+
156
+
'@babel/helper-member-expression-to-functions@7.28.5':
157
+
resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==}
158
+
engines: {node: '>=6.9.0'}
159
+
160
+
'@babel/helper-module-imports@7.27.1':
161
+
resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==}
162
+
engines: {node: '>=6.9.0'}
163
+
164
+
'@babel/helper-module-transforms@7.28.3':
165
+
resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
166
+
engines: {node: '>=6.9.0'}
167
+
peerDependencies:
168
+
'@babel/core': ^7.0.0
169
+
170
+
'@babel/helper-optimise-call-expression@7.27.1':
171
+
resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
172
+
engines: {node: '>=6.9.0'}
173
+
174
+
'@babel/helper-plugin-utils@7.27.1':
175
+
resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==}
176
+
engines: {node: '>=6.9.0'}
177
+
178
+
'@babel/helper-replace-supers@7.27.1':
179
+
resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==}
180
+
engines: {node: '>=6.9.0'}
181
+
peerDependencies:
182
+
'@babel/core': ^7.0.0
183
+
184
+
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
185
+
resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==}
186
+
engines: {node: '>=6.9.0'}
187
+
188
+
'@babel/helper-string-parser@7.27.1':
189
+
resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
190
+
engines: {node: '>=6.9.0'}
191
+
192
+
'@babel/helper-validator-identifier@7.28.5':
193
+
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
194
+
engines: {node: '>=6.9.0'}
195
+
196
+
'@babel/helper-validator-option@7.27.1':
197
+
resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
198
+
engines: {node: '>=6.9.0'}
199
+
200
+
'@babel/helpers@7.28.4':
201
+
resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
202
+
engines: {node: '>=6.9.0'}
203
+
204
+
'@babel/parser@7.28.5':
205
+
resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==}
206
+
engines: {node: '>=6.0.0'}
207
+
hasBin: true
208
+
209
+
'@babel/plugin-syntax-jsx@7.27.1':
210
+
resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==}
211
+
engines: {node: '>=6.9.0'}
212
+
peerDependencies:
213
+
'@babel/core': ^7.0.0-0
214
+
215
+
'@babel/plugin-syntax-typescript@7.27.1':
216
+
resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==}
217
+
engines: {node: '>=6.9.0'}
218
+
peerDependencies:
219
+
'@babel/core': ^7.0.0-0
220
+
221
+
'@babel/plugin-transform-modules-commonjs@7.27.1':
222
+
resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==}
223
+
engines: {node: '>=6.9.0'}
224
+
peerDependencies:
225
+
'@babel/core': ^7.0.0-0
226
+
227
+
'@babel/plugin-transform-react-jsx-self@7.27.1':
228
+
resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==}
229
+
engines: {node: '>=6.9.0'}
230
+
peerDependencies:
231
+
'@babel/core': ^7.0.0-0
232
+
233
+
'@babel/plugin-transform-react-jsx-source@7.27.1':
234
+
resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==}
235
+
engines: {node: '>=6.9.0'}
236
+
peerDependencies:
237
+
'@babel/core': ^7.0.0-0
238
+
239
+
'@babel/plugin-transform-typescript@7.28.5':
240
+
resolution: {integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==}
241
+
engines: {node: '>=6.9.0'}
242
+
peerDependencies:
243
+
'@babel/core': ^7.0.0-0
244
+
245
+
'@babel/preset-typescript@7.28.5':
246
+
resolution: {integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==}
247
+
engines: {node: '>=6.9.0'}
248
+
peerDependencies:
249
+
'@babel/core': ^7.0.0-0
250
+
251
+
'@babel/runtime@7.28.4':
252
+
resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
253
+
engines: {node: '>=6.9.0'}
254
+
255
+
'@babel/template@7.27.2':
256
+
resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
257
+
engines: {node: '>=6.9.0'}
258
+
259
+
'@babel/traverse@7.28.5':
260
+
resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==}
261
+
engines: {node: '>=6.9.0'}
262
+
263
+
'@babel/types@7.28.5':
264
+
resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==}
265
+
engines: {node: '>=6.9.0'}
266
+
267
+
'@esbuild/aix-ppc64@0.21.5':
268
+
resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
269
+
engines: {node: '>=12'}
270
+
cpu: [ppc64]
271
+
os: [aix]
272
+
273
+
'@esbuild/aix-ppc64@0.25.12':
274
+
resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==}
275
+
engines: {node: '>=18'}
276
+
cpu: [ppc64]
277
+
os: [aix]
278
+
279
+
'@esbuild/android-arm64@0.21.5':
280
+
resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
281
+
engines: {node: '>=12'}
282
+
cpu: [arm64]
283
+
os: [android]
284
+
285
+
'@esbuild/android-arm64@0.25.12':
286
+
resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==}
287
+
engines: {node: '>=18'}
288
+
cpu: [arm64]
289
+
os: [android]
290
+
291
+
'@esbuild/android-arm@0.21.5':
292
+
resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
293
+
engines: {node: '>=12'}
294
+
cpu: [arm]
295
+
os: [android]
296
+
297
+
'@esbuild/android-arm@0.25.12':
298
+
resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==}
299
+
engines: {node: '>=18'}
300
+
cpu: [arm]
301
+
os: [android]
302
+
303
+
'@esbuild/android-x64@0.21.5':
304
+
resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
305
+
engines: {node: '>=12'}
306
+
cpu: [x64]
307
+
os: [android]
308
+
309
+
'@esbuild/android-x64@0.25.12':
310
+
resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==}
311
+
engines: {node: '>=18'}
312
+
cpu: [x64]
313
+
os: [android]
314
+
315
+
'@esbuild/darwin-arm64@0.21.5':
316
+
resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
317
+
engines: {node: '>=12'}
318
+
cpu: [arm64]
319
+
os: [darwin]
320
+
321
+
'@esbuild/darwin-arm64@0.25.12':
322
+
resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==}
323
+
engines: {node: '>=18'}
324
+
cpu: [arm64]
325
+
os: [darwin]
326
+
327
+
'@esbuild/darwin-x64@0.21.5':
328
+
resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
329
+
engines: {node: '>=12'}
330
+
cpu: [x64]
331
+
os: [darwin]
332
+
333
+
'@esbuild/darwin-x64@0.25.12':
334
+
resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==}
335
+
engines: {node: '>=18'}
336
+
cpu: [x64]
337
+
os: [darwin]
338
+
339
+
'@esbuild/freebsd-arm64@0.21.5':
340
+
resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
341
+
engines: {node: '>=12'}
342
+
cpu: [arm64]
343
+
os: [freebsd]
344
+
345
+
'@esbuild/freebsd-arm64@0.25.12':
346
+
resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==}
347
+
engines: {node: '>=18'}
348
+
cpu: [arm64]
349
+
os: [freebsd]
350
+
351
+
'@esbuild/freebsd-x64@0.21.5':
352
+
resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
353
+
engines: {node: '>=12'}
354
+
cpu: [x64]
355
+
os: [freebsd]
356
+
357
+
'@esbuild/freebsd-x64@0.25.12':
358
+
resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==}
359
+
engines: {node: '>=18'}
360
+
cpu: [x64]
361
+
os: [freebsd]
362
+
363
+
'@esbuild/linux-arm64@0.21.5':
364
+
resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
365
+
engines: {node: '>=12'}
366
+
cpu: [arm64]
367
+
os: [linux]
368
+
369
+
'@esbuild/linux-arm64@0.25.12':
370
+
resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==}
371
+
engines: {node: '>=18'}
372
+
cpu: [arm64]
373
+
os: [linux]
374
+
375
+
'@esbuild/linux-arm@0.21.5':
376
+
resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
377
+
engines: {node: '>=12'}
378
+
cpu: [arm]
379
+
os: [linux]
380
+
381
+
'@esbuild/linux-arm@0.25.12':
382
+
resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==}
383
+
engines: {node: '>=18'}
384
+
cpu: [arm]
385
+
os: [linux]
386
+
387
+
'@esbuild/linux-ia32@0.21.5':
388
+
resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
389
+
engines: {node: '>=12'}
390
+
cpu: [ia32]
391
+
os: [linux]
392
+
393
+
'@esbuild/linux-ia32@0.25.12':
394
+
resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==}
395
+
engines: {node: '>=18'}
396
+
cpu: [ia32]
397
+
os: [linux]
398
+
399
+
'@esbuild/linux-loong64@0.21.5':
400
+
resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
401
+
engines: {node: '>=12'}
402
+
cpu: [loong64]
403
+
os: [linux]
404
+
405
+
'@esbuild/linux-loong64@0.25.12':
406
+
resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==}
407
+
engines: {node: '>=18'}
408
+
cpu: [loong64]
409
+
os: [linux]
410
+
411
+
'@esbuild/linux-mips64el@0.21.5':
412
+
resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
413
+
engines: {node: '>=12'}
414
+
cpu: [mips64el]
415
+
os: [linux]
416
+
417
+
'@esbuild/linux-mips64el@0.25.12':
418
+
resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==}
419
+
engines: {node: '>=18'}
420
+
cpu: [mips64el]
421
+
os: [linux]
422
+
423
+
'@esbuild/linux-ppc64@0.21.5':
424
+
resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
425
+
engines: {node: '>=12'}
426
+
cpu: [ppc64]
427
+
os: [linux]
428
+
429
+
'@esbuild/linux-ppc64@0.25.12':
430
+
resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==}
431
+
engines: {node: '>=18'}
432
+
cpu: [ppc64]
433
+
os: [linux]
434
+
435
+
'@esbuild/linux-riscv64@0.21.5':
436
+
resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
437
+
engines: {node: '>=12'}
438
+
cpu: [riscv64]
439
+
os: [linux]
440
+
441
+
'@esbuild/linux-riscv64@0.25.12':
442
+
resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==}
443
+
engines: {node: '>=18'}
444
+
cpu: [riscv64]
445
+
os: [linux]
446
+
447
+
'@esbuild/linux-s390x@0.21.5':
448
+
resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
449
+
engines: {node: '>=12'}
450
+
cpu: [s390x]
451
+
os: [linux]
452
+
453
+
'@esbuild/linux-s390x@0.25.12':
454
+
resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==}
455
+
engines: {node: '>=18'}
456
+
cpu: [s390x]
457
+
os: [linux]
458
+
459
+
'@esbuild/linux-x64@0.21.5':
460
+
resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
461
+
engines: {node: '>=12'}
462
+
cpu: [x64]
463
+
os: [linux]
464
+
465
+
'@esbuild/linux-x64@0.25.12':
466
+
resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==}
467
+
engines: {node: '>=18'}
468
+
cpu: [x64]
469
+
os: [linux]
470
+
471
+
'@esbuild/netbsd-arm64@0.25.12':
472
+
resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==}
473
+
engines: {node: '>=18'}
474
+
cpu: [arm64]
475
+
os: [netbsd]
476
+
477
+
'@esbuild/netbsd-x64@0.21.5':
478
+
resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
479
+
engines: {node: '>=12'}
480
+
cpu: [x64]
481
+
os: [netbsd]
482
+
483
+
'@esbuild/netbsd-x64@0.25.12':
484
+
resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==}
485
+
engines: {node: '>=18'}
486
+
cpu: [x64]
487
+
os: [netbsd]
488
+
489
+
'@esbuild/openbsd-arm64@0.25.12':
490
+
resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==}
491
+
engines: {node: '>=18'}
492
+
cpu: [arm64]
493
+
os: [openbsd]
494
+
495
+
'@esbuild/openbsd-x64@0.21.5':
496
+
resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
497
+
engines: {node: '>=12'}
498
+
cpu: [x64]
499
+
os: [openbsd]
500
+
501
+
'@esbuild/openbsd-x64@0.25.12':
502
+
resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==}
503
+
engines: {node: '>=18'}
504
+
cpu: [x64]
505
+
os: [openbsd]
506
+
507
+
'@esbuild/openharmony-arm64@0.25.12':
508
+
resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==}
509
+
engines: {node: '>=18'}
510
+
cpu: [arm64]
511
+
os: [openharmony]
512
+
513
+
'@esbuild/sunos-x64@0.21.5':
514
+
resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
515
+
engines: {node: '>=12'}
516
+
cpu: [x64]
517
+
os: [sunos]
518
+
519
+
'@esbuild/sunos-x64@0.25.12':
520
+
resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==}
521
+
engines: {node: '>=18'}
522
+
cpu: [x64]
523
+
os: [sunos]
524
+
525
+
'@esbuild/win32-arm64@0.21.5':
526
+
resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
527
+
engines: {node: '>=12'}
528
+
cpu: [arm64]
529
+
os: [win32]
530
+
531
+
'@esbuild/win32-arm64@0.25.12':
532
+
resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==}
533
+
engines: {node: '>=18'}
534
+
cpu: [arm64]
535
+
os: [win32]
536
+
537
+
'@esbuild/win32-ia32@0.21.5':
538
+
resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
539
+
engines: {node: '>=12'}
540
+
cpu: [ia32]
541
+
os: [win32]
542
+
543
+
'@esbuild/win32-ia32@0.25.12':
544
+
resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==}
545
+
engines: {node: '>=18'}
546
+
cpu: [ia32]
547
+
os: [win32]
548
+
549
+
'@esbuild/win32-x64@0.21.5':
550
+
resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
551
+
engines: {node: '>=12'}
552
+
cpu: [x64]
553
+
os: [win32]
554
+
555
+
'@esbuild/win32-x64@0.25.12':
556
+
resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==}
557
+
engines: {node: '>=18'}
558
+
cpu: [x64]
559
+
os: [win32]
560
+
561
+
'@jridgewell/gen-mapping@0.3.13':
562
+
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
563
+
564
+
'@jridgewell/remapping@2.3.5':
565
+
resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
566
+
567
+
'@jridgewell/resolve-uri@3.1.2':
568
+
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
569
+
engines: {node: '>=6.0.0'}
570
+
571
+
'@jridgewell/sourcemap-codec@1.5.5':
572
+
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
573
+
574
+
'@jridgewell/trace-mapping@0.3.31':
575
+
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
576
+
577
+
'@nodelib/fs.scandir@2.1.5':
578
+
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
579
+
engines: {node: '>= 8'}
580
+
581
+
'@nodelib/fs.stat@2.0.5':
582
+
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
583
+
engines: {node: '>= 8'}
584
+
585
+
'@nodelib/fs.walk@1.2.8':
586
+
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
587
+
engines: {node: '>= 8'}
588
+
589
+
'@rolldown/pluginutils@1.0.0-beta.27':
590
+
resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==}
591
+
592
+
'@rollup/rollup-android-arm-eabi@4.53.3':
593
+
resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==}
594
+
cpu: [arm]
595
+
os: [android]
596
+
597
+
'@rollup/rollup-android-arm64@4.53.3':
598
+
resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==}
599
+
cpu: [arm64]
600
+
os: [android]
601
+
602
+
'@rollup/rollup-darwin-arm64@4.53.3':
603
+
resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==}
604
+
cpu: [arm64]
605
+
os: [darwin]
606
+
607
+
'@rollup/rollup-darwin-x64@4.53.3':
608
+
resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==}
609
+
cpu: [x64]
610
+
os: [darwin]
611
+
612
+
'@rollup/rollup-freebsd-arm64@4.53.3':
613
+
resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==}
614
+
cpu: [arm64]
615
+
os: [freebsd]
616
+
617
+
'@rollup/rollup-freebsd-x64@4.53.3':
618
+
resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==}
619
+
cpu: [x64]
620
+
os: [freebsd]
621
+
622
+
'@rollup/rollup-linux-arm-gnueabihf@4.53.3':
623
+
resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==}
624
+
cpu: [arm]
625
+
os: [linux]
626
+
627
+
'@rollup/rollup-linux-arm-musleabihf@4.53.3':
628
+
resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==}
629
+
cpu: [arm]
630
+
os: [linux]
631
+
632
+
'@rollup/rollup-linux-arm64-gnu@4.53.3':
633
+
resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==}
634
+
cpu: [arm64]
635
+
os: [linux]
636
+
637
+
'@rollup/rollup-linux-arm64-musl@4.53.3':
638
+
resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==}
639
+
cpu: [arm64]
640
+
os: [linux]
641
+
642
+
'@rollup/rollup-linux-loong64-gnu@4.53.3':
643
+
resolution: {integrity: sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==}
644
+
cpu: [loong64]
645
+
os: [linux]
646
+
647
+
'@rollup/rollup-linux-ppc64-gnu@4.53.3':
648
+
resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==}
649
+
cpu: [ppc64]
650
+
os: [linux]
651
+
652
+
'@rollup/rollup-linux-riscv64-gnu@4.53.3':
653
+
resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==}
654
+
cpu: [riscv64]
655
+
os: [linux]
656
+
657
+
'@rollup/rollup-linux-riscv64-musl@4.53.3':
658
+
resolution: {integrity: sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==}
659
+
cpu: [riscv64]
660
+
os: [linux]
661
+
662
+
'@rollup/rollup-linux-s390x-gnu@4.53.3':
663
+
resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==}
664
+
cpu: [s390x]
665
+
os: [linux]
666
+
667
+
'@rollup/rollup-linux-x64-gnu@4.53.3':
668
+
resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==}
669
+
cpu: [x64]
670
+
os: [linux]
671
+
672
+
'@rollup/rollup-linux-x64-musl@4.53.3':
673
+
resolution: {integrity: sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==}
674
+
cpu: [x64]
675
+
os: [linux]
676
+
677
+
'@rollup/rollup-openharmony-arm64@4.53.3':
678
+
resolution: {integrity: sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==}
679
+
cpu: [arm64]
680
+
os: [openharmony]
681
+
682
+
'@rollup/rollup-win32-arm64-msvc@4.53.3':
683
+
resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==}
684
+
cpu: [arm64]
685
+
os: [win32]
686
+
687
+
'@rollup/rollup-win32-ia32-msvc@4.53.3':
688
+
resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==}
689
+
cpu: [ia32]
690
+
os: [win32]
691
+
692
+
'@rollup/rollup-win32-x64-gnu@4.53.3':
693
+
resolution: {integrity: sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==}
694
+
cpu: [x64]
695
+
os: [win32]
696
+
697
+
'@rollup/rollup-win32-x64-msvc@4.53.3':
698
+
resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==}
699
+
cpu: [x64]
700
+
os: [win32]
701
+
702
+
'@tailwindcss/forms@0.5.10':
703
+
resolution: {integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==}
704
+
peerDependencies:
705
+
tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1'
706
+
707
+
'@tanstack/history@1.139.0':
708
+
resolution: {integrity: sha512-l6wcxwDBeh/7Dhles23U1O8lp9kNJmAb2yNjekR6olZwCRNAVA8TCXlVCrueELyFlYZqvQkh0ofxnzG62A1Kkg==}
709
+
engines: {node: '>=12'}
710
+
711
+
'@tanstack/react-router-devtools@1.139.10':
712
+
resolution: {integrity: sha512-DEpVb6pCS7Kxls+hRqWctBDHlIcpVILf04T5GyAd7SXB0x0KMpdneyh+zBbaiydynBElwQhVxwoAR6QwPlZBVg==}
713
+
engines: {node: '>=12'}
714
+
peerDependencies:
715
+
'@tanstack/react-router': ^1.139.10
716
+
'@tanstack/router-core': ^1.139.10
717
+
react: '>=18.0.0 || >=19.0.0'
718
+
react-dom: '>=18.0.0 || >=19.0.0'
719
+
peerDependenciesMeta:
720
+
'@tanstack/router-core':
721
+
optional: true
722
+
723
+
'@tanstack/react-router@1.139.10':
724
+
resolution: {integrity: sha512-SVEH2n38XPtQSbW3BgKpK8G1GdLzbsmo3B/epfjuRk2XlYkSFjj7P8DIoHKOgkaCh3T0hKh/CEEj+D130YmGUw==}
725
+
engines: {node: '>=12'}
726
+
peerDependencies:
727
+
react: '>=18.0.0 || >=19.0.0'
728
+
react-dom: '>=18.0.0 || >=19.0.0'
729
+
730
+
'@tanstack/react-store@0.8.0':
731
+
resolution: {integrity: sha512-1vG9beLIuB7q69skxK9r5xiLN3ztzIPfSQSs0GfeqWGO2tGIyInZx0x1COhpx97RKaONSoAb8C3dxacWksm1ow==}
732
+
peerDependencies:
733
+
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
734
+
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
735
+
736
+
'@tanstack/router-core@1.139.10':
737
+
resolution: {integrity: sha512-gougqlYumNOn98d2ZhyoRJTNT8RvFip97z6T2T3/JTPrErwOsKaIA2FwlkfLJmJY1JQtUuF38IREJdfQrTJiqg==}
738
+
engines: {node: '>=12'}
739
+
740
+
'@tanstack/router-devtools-core@1.139.10':
741
+
resolution: {integrity: sha512-rAUAhTvwivA49dkYR4bRUPRxqShO9dTD1+r3tZsnt23XlpmGtFvxBw8FYY2C9BvqaRLu+2RxACJDaXETVfm3OA==}
742
+
engines: {node: '>=12'}
743
+
peerDependencies:
744
+
'@tanstack/router-core': ^1.139.10
745
+
csstype: ^3.0.10
746
+
solid-js: '>=1.9.5'
747
+
peerDependenciesMeta:
748
+
csstype:
749
+
optional: true
750
+
751
+
'@tanstack/router-devtools@1.139.10':
752
+
resolution: {integrity: sha512-bjZhk3SVeZXtRAm+qxMlRr4IYlMR6JcxESxHtS+r2nV2cStprAG1GC+MfgUxbgle1o6smAgIyJqjLDexTjbTqw==}
753
+
engines: {node: '>=12'}
754
+
peerDependencies:
755
+
'@tanstack/react-router': ^1.139.10
756
+
csstype: ^3.0.10
757
+
react: '>=18.0.0 || >=19.0.0'
758
+
react-dom: '>=18.0.0 || >=19.0.0'
759
+
peerDependenciesMeta:
760
+
csstype:
761
+
optional: true
762
+
763
+
'@tanstack/router-generator@1.139.10':
764
+
resolution: {integrity: sha512-Uo0xmz6w1Ayv1AMyWLsT0ngXmjB8yAKv5khOaci/ZxAZNyvz3t84jqI7XXlG9fwtDRdTF4G/qBmXlPEmPk6Wfg==}
765
+
engines: {node: '>=12'}
766
+
767
+
'@tanstack/router-plugin@1.139.10':
768
+
resolution: {integrity: sha512-0c9wzBKuz2U1jO+oAszT6VRaQDWPLfCJuPeXX7MCisM0nV2LVaxdb/y9YaWSKJ7zlQ7pwFkh37KYqcJhPXug/A==}
769
+
engines: {node: '>=12'}
770
+
peerDependencies:
771
+
'@rsbuild/core': '>=1.0.2'
772
+
'@tanstack/react-router': ^1.139.10
773
+
vite: '>=5.0.0 || >=6.0.0 || >=7.0.0'
774
+
vite-plugin-solid: ^2.11.10
775
+
webpack: '>=5.92.0'
776
+
peerDependenciesMeta:
777
+
'@rsbuild/core':
778
+
optional: true
779
+
'@tanstack/react-router':
780
+
optional: true
781
+
vite:
782
+
optional: true
783
+
vite-plugin-solid:
784
+
optional: true
785
+
webpack:
786
+
optional: true
787
+
788
+
'@tanstack/router-utils@1.139.0':
789
+
resolution: {integrity: sha512-jT7D6NimWqoFSkid4vCno8gvTyfL1+NHpgm3es0B2UNhKKRV3LngOGilm1m6v8Qvk/gy6Fh/tvB+s+hBl6GhOg==}
790
+
engines: {node: '>=12'}
791
+
792
+
'@tanstack/store@0.8.0':
793
+
resolution: {integrity: sha512-Om+BO0YfMZe//X2z0uLF2j+75nQga6TpTJgLJQBiq85aOyZNIhkCgleNcud2KQg4k4v9Y9l+Uhru3qWMPGTOzQ==}
794
+
795
+
'@tanstack/virtual-file-routes@1.139.0':
796
+
resolution: {integrity: sha512-9PImF1d1tovTUIpjFVa0W7Fwj/MHif7BaaczgJJfbv3sDt1Gh+oW9W9uCw9M3ndEJynnp5ZD/TTs0RGubH5ssg==}
797
+
engines: {node: '>=12'}
798
+
799
+
'@types/babel__core@7.20.5':
800
+
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
801
+
802
+
'@types/babel__generator@7.27.0':
803
+
resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
804
+
805
+
'@types/babel__template@7.4.4':
806
+
resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
807
+
808
+
'@types/babel__traverse@7.28.0':
809
+
resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==}
810
+
811
+
'@types/bun@1.3.3':
812
+
resolution: {integrity: sha512-ogrKbJ2X5N0kWLLFKeytG0eHDleBYtngtlbu9cyBKFtNL3cnpDZkNdQj8flVf6WTZUX5ulI9AY1oa7ljhSrp+g==}
813
+
814
+
'@types/estree@1.0.8':
815
+
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
816
+
817
+
'@types/lodash@4.17.21':
818
+
resolution: {integrity: sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==}
819
+
820
+
'@types/node@18.19.130':
821
+
resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==}
822
+
823
+
'@types/node@22.19.1':
824
+
resolution: {integrity: sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==}
825
+
826
+
'@types/prop-types@15.7.15':
827
+
resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==}
828
+
829
+
'@types/react-dom@18.3.7':
830
+
resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==}
831
+
peerDependencies:
832
+
'@types/react': ^18.0.0
833
+
834
+
'@types/react@18.3.27':
835
+
resolution: {integrity: sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==}
836
+
837
+
'@vitejs/plugin-react@4.7.0':
838
+
resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==}
839
+
engines: {node: ^14.18.0 || >=16.0.0}
840
+
peerDependencies:
841
+
vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0
842
+
843
+
acorn@8.15.0:
844
+
resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==}
845
+
engines: {node: '>=0.4.0'}
846
+
hasBin: true
847
+
848
+
ansis@4.2.0:
849
+
resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==}
850
+
engines: {node: '>=14'}
851
+
852
+
any-promise@1.3.0:
853
+
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
854
+
855
+
anymatch@3.1.3:
856
+
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
857
+
engines: {node: '>= 8'}
858
+
859
+
arg@5.0.2:
860
+
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
861
+
862
+
ast-types@0.16.1:
863
+
resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
864
+
engines: {node: '>=4'}
865
+
866
+
autoprefixer@10.4.22:
867
+
resolution: {integrity: sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==}
868
+
engines: {node: ^10 || ^12 || >=14}
869
+
hasBin: true
870
+
peerDependencies:
871
+
postcss: ^8.1.0
872
+
873
+
babel-dead-code-elimination@1.0.10:
874
+
resolution: {integrity: sha512-DV5bdJZTzZ0zn0DC24v3jD7Mnidh6xhKa4GfKCbq3sfW8kaWhDdZjP3i81geA8T33tdYqWKw4D3fVv0CwEgKVA==}
875
+
876
+
baseline-browser-mapping@2.8.31:
877
+
resolution: {integrity: sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==}
878
+
hasBin: true
879
+
880
+
binary-extensions@2.3.0:
881
+
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
882
+
engines: {node: '>=8'}
883
+
884
+
braces@3.0.3:
885
+
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
886
+
engines: {node: '>=8'}
887
+
888
+
browserslist@4.28.0:
889
+
resolution: {integrity: sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==}
890
+
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
891
+
hasBin: true
892
+
893
+
bun-types@1.3.3:
894
+
resolution: {integrity: sha512-z3Xwlg7j2l9JY27x5Qn3Wlyos8YAp0kKRlrePAOjgjMGS5IG6E7Jnlx736vH9UVI4wUICwwhC9anYL++XeOgTQ==}
895
+
896
+
camelcase-css@2.0.1:
897
+
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
898
+
engines: {node: '>= 6'}
899
+
900
+
caniuse-lite@1.0.30001757:
901
+
resolution: {integrity: sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==}
902
+
903
+
chokidar@3.6.0:
904
+
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
905
+
engines: {node: '>= 8.10.0'}
906
+
907
+
clsx@2.1.1:
908
+
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
909
+
engines: {node: '>=6'}
910
+
911
+
commander@4.1.1:
912
+
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
913
+
engines: {node: '>= 6'}
914
+
915
+
convert-source-map@2.0.0:
916
+
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
917
+
918
+
cookie-es@2.0.0:
919
+
resolution: {integrity: sha512-RAj4E421UYRgqokKUmotqAwuplYw15qtdXfY+hGzgCJ/MBjCVZcSoHK/kH9kocfjRjcDME7IiDWR/1WX1TM2Pg==}
920
+
921
+
cookie@1.1.1:
922
+
resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
923
+
engines: {node: '>=18'}
924
+
925
+
cross-fetch@4.0.0:
926
+
resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==}
927
+
928
+
cssesc@3.0.0:
929
+
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
930
+
engines: {node: '>=4'}
931
+
hasBin: true
932
+
933
+
csstype@3.2.3:
934
+
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
935
+
936
+
debug@4.4.3:
937
+
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
938
+
engines: {node: '>=6.0'}
939
+
peerDependencies:
940
+
supports-color: '*'
941
+
peerDependenciesMeta:
942
+
supports-color:
943
+
optional: true
944
+
945
+
didyoumean@1.2.2:
946
+
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
947
+
948
+
diff@8.0.2:
949
+
resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==}
950
+
engines: {node: '>=0.3.1'}
951
+
952
+
dlv@1.1.3:
953
+
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
954
+
955
+
electron-to-chromium@1.5.262:
956
+
resolution: {integrity: sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ==}
957
+
958
+
esbuild@0.21.5:
959
+
resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
960
+
engines: {node: '>=12'}
961
+
hasBin: true
962
+
963
+
esbuild@0.25.12:
964
+
resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==}
965
+
engines: {node: '>=18'}
966
+
hasBin: true
967
+
968
+
escalade@3.2.0:
969
+
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
970
+
engines: {node: '>=6'}
971
+
972
+
esprima@4.0.1:
973
+
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
974
+
engines: {node: '>=4'}
975
+
hasBin: true
976
+
977
+
fast-glob@3.3.3:
978
+
resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
979
+
engines: {node: '>=8.6.0'}
980
+
981
+
fastq@1.19.1:
982
+
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
983
+
984
+
fdir@6.5.0:
985
+
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
986
+
engines: {node: '>=12.0.0'}
987
+
peerDependencies:
988
+
picomatch: ^3 || ^4
989
+
peerDependenciesMeta:
990
+
picomatch:
991
+
optional: true
992
+
993
+
fill-range@7.1.1:
994
+
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
995
+
engines: {node: '>=8'}
996
+
997
+
flyff.js@1.3.0:
998
+
resolution: {integrity: sha512-tD9eVvRBRFdzwbHyQ8IeyXNG92YMucZCTBkbOJj5ITfDGkXgRp9NbrmOmI5cgcNphYDyAPDDSEdHUNyemwhY6w==}
999
+
1000
+
fraction.js@5.3.4:
1001
+
resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==}
1002
+
1003
+
fsevents@2.3.3:
1004
+
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
1005
+
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1006
+
os: [darwin]
1007
+
1008
+
function-bind@1.1.2:
1009
+
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
1010
+
1011
+
gensync@1.0.0-beta.2:
1012
+
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
1013
+
engines: {node: '>=6.9.0'}
1014
+
1015
+
get-tsconfig@4.13.0:
1016
+
resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==}
1017
+
1018
+
glob-parent@5.1.2:
1019
+
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1020
+
engines: {node: '>= 6'}
1021
+
1022
+
glob-parent@6.0.2:
1023
+
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1024
+
engines: {node: '>=10.13.0'}
1025
+
1026
+
goober@2.1.18:
1027
+
resolution: {integrity: sha512-2vFqsaDVIT9Gz7N6kAL++pLpp41l3PfDuusHcjnGLfR6+huZkl6ziX+zgVC3ZxpqWhzH6pyDdGrCeDhMIvwaxw==}
1028
+
peerDependencies:
1029
+
csstype: ^3.0.10
1030
+
1031
+
hasown@2.0.2:
1032
+
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
1033
+
engines: {node: '>= 0.4'}
1034
+
1035
+
html-parse-stringify@3.0.1:
1036
+
resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==}
1037
+
1038
+
i18next-browser-languagedetector@8.2.0:
1039
+
resolution: {integrity: sha512-P+3zEKLnOF0qmiesW383vsLdtQVyKtCNA9cjSoKCppTKPQVfKd2W8hbVo5ZhNJKDqeM7BOcvNoKJOjpHh4Js9g==}
1040
+
1041
+
i18next-http-backend@2.7.3:
1042
+
resolution: {integrity: sha512-FgZxrXdRA5u44xfYsJlEBL4/KH3f2IluBpgV/7riW0YW2VEyM8FzVt2XHAOi6id0Ppj7vZvCZVpp5LrGXnc8Ig==}
1043
+
1044
+
i18next@23.16.8:
1045
+
resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==}
1046
+
1047
+
immer@10.2.0:
1048
+
resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==}
1049
+
1050
+
is-binary-path@2.1.0:
1051
+
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1052
+
engines: {node: '>=8'}
1053
+
1054
+
is-core-module@2.16.1:
1055
+
resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
1056
+
engines: {node: '>= 0.4'}
1057
+
1058
+
is-extglob@2.1.1:
1059
+
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1060
+
engines: {node: '>=0.10.0'}
1061
+
1062
+
is-glob@4.0.3:
1063
+
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1064
+
engines: {node: '>=0.10.0'}
1065
+
1066
+
is-number@7.0.0:
1067
+
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1068
+
engines: {node: '>=0.12.0'}
1069
+
1070
+
isbot@5.1.32:
1071
+
resolution: {integrity: sha512-VNfjM73zz2IBZmdShMfAUg10prm6t7HFUQmNAEOAVS4YH92ZrZcvkMcGX6cIgBJAzWDzPent/EeAtYEHNPNPBQ==}
1072
+
engines: {node: '>=18'}
1073
+
1074
+
jiti@1.21.7:
1075
+
resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
1076
+
hasBin: true
1077
+
1078
+
js-tokens@4.0.0:
1079
+
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1080
+
1081
+
jsesc@3.1.0:
1082
+
resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
1083
+
engines: {node: '>=6'}
1084
+
hasBin: true
1085
+
1086
+
json5@2.2.3:
1087
+
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
1088
+
engines: {node: '>=6'}
1089
+
hasBin: true
1090
+
1091
+
lilconfig@3.1.3:
1092
+
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
1093
+
engines: {node: '>=14'}
1094
+
1095
+
lines-and-columns@1.2.4:
1096
+
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
1097
+
1098
+
lodash@4.17.21:
1099
+
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
1100
+
1101
+
loose-envify@1.4.0:
1102
+
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1103
+
hasBin: true
1104
+
1105
+
lru-cache@5.1.1:
1106
+
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
1107
+
1108
+
lz-string@1.5.0:
1109
+
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
1110
+
hasBin: true
1111
+
1112
+
merge2@1.4.1:
1113
+
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1114
+
engines: {node: '>= 8'}
1115
+
1116
+
micromatch@4.0.8:
1117
+
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1118
+
engines: {node: '>=8.6'}
1119
+
1120
+
mini-svg-data-uri@1.4.4:
1121
+
resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==}
1122
+
hasBin: true
1123
+
1124
+
ms@2.1.3:
1125
+
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1126
+
1127
+
mz@2.7.0:
1128
+
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1129
+
1130
+
nanoid@3.3.11:
1131
+
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
1132
+
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1133
+
hasBin: true
1134
+
1135
+
node-fetch@2.7.0:
1136
+
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
1137
+
engines: {node: 4.x || >=6.0.0}
1138
+
peerDependencies:
1139
+
encoding: ^0.1.0
1140
+
peerDependenciesMeta:
1141
+
encoding:
1142
+
optional: true
1143
+
1144
+
node-releases@2.0.27:
1145
+
resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
1146
+
1147
+
normalize-path@3.0.0:
1148
+
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1149
+
engines: {node: '>=0.10.0'}
1150
+
1151
+
normalize-range@0.1.2:
1152
+
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
1153
+
engines: {node: '>=0.10.0'}
1154
+
1155
+
object-assign@4.1.1:
1156
+
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1157
+
engines: {node: '>=0.10.0'}
1158
+
1159
+
object-hash@3.0.0:
1160
+
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1161
+
engines: {node: '>= 6'}
1162
+
1163
+
path-parse@1.0.7:
1164
+
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1165
+
1166
+
pathe@2.0.3:
1167
+
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
1168
+
1169
+
picocolors@1.1.1:
1170
+
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1171
+
1172
+
picomatch@2.3.1:
1173
+
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1174
+
engines: {node: '>=8.6'}
1175
+
1176
+
picomatch@4.0.3:
1177
+
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
1178
+
engines: {node: '>=12'}
1179
+
1180
+
pify@2.3.0:
1181
+
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1182
+
engines: {node: '>=0.10.0'}
1183
+
1184
+
pirates@4.0.7:
1185
+
resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==}
1186
+
engines: {node: '>= 6'}
1187
+
1188
+
postcss-import@15.1.0:
1189
+
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
1190
+
engines: {node: '>=14.0.0'}
1191
+
peerDependencies:
1192
+
postcss: ^8.0.0
1193
+
1194
+
postcss-js@4.1.0:
1195
+
resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==}
1196
+
engines: {node: ^12 || ^14 || >= 16}
1197
+
peerDependencies:
1198
+
postcss: ^8.4.21
1199
+
1200
+
postcss-load-config@6.0.1:
1201
+
resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==}
1202
+
engines: {node: '>= 18'}
1203
+
peerDependencies:
1204
+
jiti: '>=1.21.0'
1205
+
postcss: '>=8.0.9'
1206
+
tsx: ^4.8.1
1207
+
yaml: ^2.4.2
1208
+
peerDependenciesMeta:
1209
+
jiti:
1210
+
optional: true
1211
+
postcss:
1212
+
optional: true
1213
+
tsx:
1214
+
optional: true
1215
+
yaml:
1216
+
optional: true
1217
+
1218
+
postcss-nested@6.2.0:
1219
+
resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
1220
+
engines: {node: '>=12.0'}
1221
+
peerDependencies:
1222
+
postcss: ^8.2.14
1223
+
1224
+
postcss-selector-parser@6.1.2:
1225
+
resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
1226
+
engines: {node: '>=4'}
1227
+
1228
+
postcss-value-parser@4.2.0:
1229
+
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1230
+
1231
+
postcss@8.5.6:
1232
+
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
1233
+
engines: {node: ^10 || ^12 || >=14}
1234
+
1235
+
prettier@3.7.1:
1236
+
resolution: {integrity: sha512-RWKXE4qB3u5Z6yz7omJkjWwmTfLdcbv44jUVHC5NpfXwFGzvpQM798FGv/6WNK879tc+Cn0AAyherCl1KjbyZQ==}
1237
+
engines: {node: '>=14'}
1238
+
hasBin: true
1239
+
1240
+
prop-types@15.8.1:
1241
+
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
1242
+
1243
+
queue-microtask@1.2.3:
1244
+
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1245
+
1246
+
react-dom@18.3.1:
1247
+
resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
1248
+
peerDependencies:
1249
+
react: ^18.3.1
1250
+
1251
+
react-fast-compare@3.2.2:
1252
+
resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==}
1253
+
1254
+
react-helmet@6.1.0:
1255
+
resolution: {integrity: sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==}
1256
+
peerDependencies:
1257
+
react: '>=16.3.0'
1258
+
1259
+
react-i18next@15.7.4:
1260
+
resolution: {integrity: sha512-nyU8iKNrI5uDJch0z9+Y5XEr34b0wkyYj3Rp+tfbahxtlswxSCjcUL9H0nqXo9IR3/t5Y5PKIA3fx3MfUyR9Xw==}
1261
+
peerDependencies:
1262
+
i18next: '>= 23.4.0'
1263
+
react: '>= 16.8.0'
1264
+
react-dom: '*'
1265
+
react-native: '*'
1266
+
typescript: ^5
1267
+
peerDependenciesMeta:
1268
+
react-dom:
1269
+
optional: true
1270
+
react-native:
1271
+
optional: true
1272
+
typescript:
1273
+
optional: true
1274
+
1275
+
react-is@16.13.1:
1276
+
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
1277
+
1278
+
react-refresh@0.17.0:
1279
+
resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==}
1280
+
engines: {node: '>=0.10.0'}
1281
+
1282
+
react-router@7.9.6:
1283
+
resolution: {integrity: sha512-Y1tUp8clYRXpfPITyuifmSoE2vncSME18uVLgaqyxh9H35JWpIfzHo+9y3Fzh5odk/jxPW29IgLgzcdwxGqyNA==}
1284
+
engines: {node: '>=20.0.0'}
1285
+
peerDependencies:
1286
+
react: '>=18'
1287
+
react-dom: '>=18'
1288
+
peerDependenciesMeta:
1289
+
react-dom:
1290
+
optional: true
1291
+
1292
+
react-side-effect@2.1.2:
1293
+
resolution: {integrity: sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==}
1294
+
peerDependencies:
1295
+
react: ^16.3.0 || ^17.0.0 || ^18.0.0
1296
+
1297
+
react@18.3.1:
1298
+
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
1299
+
engines: {node: '>=0.10.0'}
1300
+
1301
+
read-cache@1.0.0:
1302
+
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
1303
+
1304
+
readdirp@3.6.0:
1305
+
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1306
+
engines: {node: '>=8.10.0'}
1307
+
1308
+
recast@0.23.11:
1309
+
resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==}
1310
+
engines: {node: '>= 4'}
1311
+
1312
+
resolve-pkg-maps@1.0.0:
1313
+
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
1314
+
1315
+
resolve@1.22.11:
1316
+
resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==}
1317
+
engines: {node: '>= 0.4'}
1318
+
hasBin: true
1319
+
1320
+
reusify@1.1.0:
1321
+
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
1322
+
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1323
+
1324
+
rollup@4.53.3:
1325
+
resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==}
1326
+
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1327
+
hasBin: true
1328
+
1329
+
run-parallel@1.2.0:
1330
+
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1331
+
1332
+
scheduler@0.23.2:
1333
+
resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
1334
+
1335
+
semver@6.3.1:
1336
+
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1337
+
hasBin: true
1338
+
1339
+
seroval-plugins@1.3.3:
1340
+
resolution: {integrity: sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w==}
1341
+
engines: {node: '>=10'}
1342
+
peerDependencies:
1343
+
seroval: ^1.0
1344
+
1345
+
seroval-plugins@1.4.0:
1346
+
resolution: {integrity: sha512-zir1aWzoiax6pbBVjoYVd0O1QQXgIL3eVGBMsBsNmM8Ukq90yGaWlfx0AB9dTS8GPqrOrbXn79vmItCUP9U3BQ==}
1347
+
engines: {node: '>=10'}
1348
+
peerDependencies:
1349
+
seroval: ^1.0
1350
+
1351
+
seroval@1.3.2:
1352
+
resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==}
1353
+
engines: {node: '>=10'}
1354
+
1355
+
seroval@1.4.0:
1356
+
resolution: {integrity: sha512-BdrNXdzlofomLTiRnwJTSEAaGKyHHZkbMXIywOh7zlzp4uZnXErEwl9XZ+N1hJSNpeTtNxWvVwN0wUzAIQ4Hpg==}
1357
+
engines: {node: '>=10'}
1358
+
1359
+
set-cookie-parser@2.7.2:
1360
+
resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==}
1361
+
1362
+
solid-js@1.9.10:
1363
+
resolution: {integrity: sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew==}
1364
+
1365
+
source-map-js@1.2.1:
1366
+
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
1367
+
engines: {node: '>=0.10.0'}
1368
+
1369
+
source-map@0.6.1:
1370
+
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
1371
+
engines: {node: '>=0.10.0'}
1372
+
1373
+
source-map@0.7.6:
1374
+
resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
1375
+
engines: {node: '>= 12'}
1376
+
1377
+
sucrase@3.35.1:
1378
+
resolution: {integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==}
1379
+
engines: {node: '>=16 || 14 >=14.17'}
1380
+
hasBin: true
1381
+
1382
+
supports-preserve-symlinks-flag@1.0.0:
1383
+
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1384
+
engines: {node: '>= 0.4'}
1385
+
1386
+
tailwindcss@3.4.18:
1387
+
resolution: {integrity: sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==}
1388
+
engines: {node: '>=14.0.0'}
1389
+
hasBin: true
1390
+
1391
+
thenify-all@1.6.0:
1392
+
resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
1393
+
engines: {node: '>=0.8'}
1394
+
1395
+
thenify@3.3.1:
1396
+
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1397
+
1398
+
tiny-invariant@1.3.3:
1399
+
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
1400
+
1401
+
tiny-warning@1.0.3:
1402
+
resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
1403
+
1404
+
tinyglobby@0.2.15:
1405
+
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
1406
+
engines: {node: '>=12.0.0'}
1407
+
1408
+
to-regex-range@5.0.1:
1409
+
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1410
+
engines: {node: '>=8.0'}
1411
+
1412
+
tr46@0.0.3:
1413
+
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
1414
+
1415
+
ts-interface-checker@0.1.13:
1416
+
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1417
+
1418
+
tslib@2.8.1:
1419
+
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
1420
+
1421
+
tsx@4.20.6:
1422
+
resolution: {integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==}
1423
+
engines: {node: '>=18.0.0'}
1424
+
hasBin: true
1425
+
1426
turbo-darwin-64@2.6.1:
1427
resolution: {integrity: sha512-Dm0HwhyZF4J0uLqkhUyCVJvKM9Rw7M03v3J9A7drHDQW0qAbIGBrUijQ8g4Q9Cciw/BXRRd8Uzkc3oue+qn+ZQ==}
1428
cpu: [x64]
···
1457
resolution: {integrity: sha512-qBwXXuDT3rA53kbNafGbT5r++BrhRgx3sAo0cHoDAeG9g1ItTmUMgltz3Hy7Hazy1ODqNpR+C7QwqL6DYB52yA==}
1458
hasBin: true
1459
1460
+
typescript@4.9.5:
1461
+
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
1462
+
engines: {node: '>=4.2.0'}
1463
+
hasBin: true
1464
+
1465
+
typescript@5.9.3:
1466
+
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
1467
+
engines: {node: '>=14.17'}
1468
+
hasBin: true
1469
+
1470
+
undici-types@5.26.5:
1471
+
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
1472
+
1473
+
undici-types@6.21.0:
1474
+
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
1475
+
1476
+
unplugin@2.3.11:
1477
+
resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==}
1478
+
engines: {node: '>=18.12.0'}
1479
+
1480
+
update-browserslist-db@1.1.4:
1481
+
resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==}
1482
+
hasBin: true
1483
+
peerDependencies:
1484
+
browserslist: '>= 4.21.0'
1485
+
1486
+
use-sync-external-store@1.6.0:
1487
+
resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==}
1488
+
peerDependencies:
1489
+
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
1490
+
1491
+
util-deprecate@1.0.2:
1492
+
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1493
+
1494
+
vite@5.4.21:
1495
+
resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==}
1496
+
engines: {node: ^18.0.0 || >=20.0.0}
1497
+
hasBin: true
1498
+
peerDependencies:
1499
+
'@types/node': ^18.0.0 || >=20.0.0
1500
+
less: '*'
1501
+
lightningcss: ^1.21.0
1502
+
sass: '*'
1503
+
sass-embedded: '*'
1504
+
stylus: '*'
1505
+
sugarss: '*'
1506
+
terser: ^5.4.0
1507
+
peerDependenciesMeta:
1508
+
'@types/node':
1509
+
optional: true
1510
+
less:
1511
+
optional: true
1512
+
lightningcss:
1513
+
optional: true
1514
+
sass:
1515
+
optional: true
1516
+
sass-embedded:
1517
+
optional: true
1518
+
stylus:
1519
+
optional: true
1520
+
sugarss:
1521
+
optional: true
1522
+
terser:
1523
+
optional: true
1524
+
1525
+
vite@7.2.4:
1526
+
resolution: {integrity: sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==}
1527
+
engines: {node: ^20.19.0 || >=22.12.0}
1528
+
hasBin: true
1529
+
peerDependencies:
1530
+
'@types/node': ^20.19.0 || >=22.12.0
1531
+
jiti: '>=1.21.0'
1532
+
less: ^4.0.0
1533
+
lightningcss: ^1.21.0
1534
+
sass: ^1.70.0
1535
+
sass-embedded: ^1.70.0
1536
+
stylus: '>=0.54.8'
1537
+
sugarss: ^5.0.0
1538
+
terser: ^5.16.0
1539
+
tsx: ^4.8.1
1540
+
yaml: ^2.4.2
1541
+
peerDependenciesMeta:
1542
+
'@types/node':
1543
+
optional: true
1544
+
jiti:
1545
+
optional: true
1546
+
less:
1547
+
optional: true
1548
+
lightningcss:
1549
+
optional: true
1550
+
sass:
1551
+
optional: true
1552
+
sass-embedded:
1553
+
optional: true
1554
+
stylus:
1555
+
optional: true
1556
+
sugarss:
1557
+
optional: true
1558
+
terser:
1559
+
optional: true
1560
+
tsx:
1561
+
optional: true
1562
+
yaml:
1563
+
optional: true
1564
+
1565
+
void-elements@3.1.0:
1566
+
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
1567
+
engines: {node: '>=0.10.0'}
1568
+
1569
+
webidl-conversions@3.0.1:
1570
+
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
1571
+
1572
+
webpack-virtual-modules@0.6.2:
1573
+
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
1574
+
1575
+
whatwg-url@5.0.0:
1576
+
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
1577
+
1578
+
yallist@3.1.1:
1579
+
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
1580
+
1581
+
zod@3.25.76:
1582
+
resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==}
1583
+
1584
+
zustand@5.0.8:
1585
+
resolution: {integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==}
1586
+
engines: {node: '>=12.20.0'}
1587
+
peerDependencies:
1588
+
'@types/react': '>=18.0.0'
1589
+
immer: '>=9.0.6'
1590
+
react: '>=18.0.0'
1591
+
use-sync-external-store: '>=1.2.0'
1592
+
peerDependenciesMeta:
1593
+
'@types/react':
1594
+
optional: true
1595
+
immer:
1596
+
optional: true
1597
+
react:
1598
+
optional: true
1599
+
use-sync-external-store:
1600
+
optional: true
1601
+
1602
snapshots:
1603
1604
+
'@alloc/quick-lru@5.2.0': {}
1605
+
1606
+
'@babel/code-frame@7.27.1':
1607
+
dependencies:
1608
+
'@babel/helper-validator-identifier': 7.28.5
1609
+
js-tokens: 4.0.0
1610
+
picocolors: 1.1.1
1611
+
1612
+
'@babel/compat-data@7.28.5': {}
1613
+
1614
+
'@babel/core@7.28.5':
1615
+
dependencies:
1616
+
'@babel/code-frame': 7.27.1
1617
+
'@babel/generator': 7.28.5
1618
+
'@babel/helper-compilation-targets': 7.27.2
1619
+
'@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
1620
+
'@babel/helpers': 7.28.4
1621
+
'@babel/parser': 7.28.5
1622
+
'@babel/template': 7.27.2
1623
+
'@babel/traverse': 7.28.5
1624
+
'@babel/types': 7.28.5
1625
+
'@jridgewell/remapping': 2.3.5
1626
+
convert-source-map: 2.0.0
1627
+
debug: 4.4.3
1628
+
gensync: 1.0.0-beta.2
1629
+
json5: 2.2.3
1630
+
semver: 6.3.1
1631
+
transitivePeerDependencies:
1632
+
- supports-color
1633
+
1634
+
'@babel/generator@7.28.5':
1635
+
dependencies:
1636
+
'@babel/parser': 7.28.5
1637
+
'@babel/types': 7.28.5
1638
+
'@jridgewell/gen-mapping': 0.3.13
1639
+
'@jridgewell/trace-mapping': 0.3.31
1640
+
jsesc: 3.1.0
1641
+
1642
+
'@babel/helper-annotate-as-pure@7.27.3':
1643
+
dependencies:
1644
+
'@babel/types': 7.28.5
1645
+
1646
+
'@babel/helper-compilation-targets@7.27.2':
1647
+
dependencies:
1648
+
'@babel/compat-data': 7.28.5
1649
+
'@babel/helper-validator-option': 7.27.1
1650
+
browserslist: 4.28.0
1651
+
lru-cache: 5.1.1
1652
+
semver: 6.3.1
1653
+
1654
+
'@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)':
1655
+
dependencies:
1656
+
'@babel/core': 7.28.5
1657
+
'@babel/helper-annotate-as-pure': 7.27.3
1658
+
'@babel/helper-member-expression-to-functions': 7.28.5
1659
+
'@babel/helper-optimise-call-expression': 7.27.1
1660
+
'@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5)
1661
+
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
1662
+
'@babel/traverse': 7.28.5
1663
+
semver: 6.3.1
1664
+
transitivePeerDependencies:
1665
+
- supports-color
1666
+
1667
+
'@babel/helper-globals@7.28.0': {}
1668
+
1669
+
'@babel/helper-member-expression-to-functions@7.28.5':
1670
+
dependencies:
1671
+
'@babel/traverse': 7.28.5
1672
+
'@babel/types': 7.28.5
1673
+
transitivePeerDependencies:
1674
+
- supports-color
1675
+
1676
+
'@babel/helper-module-imports@7.27.1':
1677
+
dependencies:
1678
+
'@babel/traverse': 7.28.5
1679
+
'@babel/types': 7.28.5
1680
+
transitivePeerDependencies:
1681
+
- supports-color
1682
+
1683
+
'@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)':
1684
+
dependencies:
1685
+
'@babel/core': 7.28.5
1686
+
'@babel/helper-module-imports': 7.27.1
1687
+
'@babel/helper-validator-identifier': 7.28.5
1688
+
'@babel/traverse': 7.28.5
1689
+
transitivePeerDependencies:
1690
+
- supports-color
1691
+
1692
+
'@babel/helper-optimise-call-expression@7.27.1':
1693
+
dependencies:
1694
+
'@babel/types': 7.28.5
1695
+
1696
+
'@babel/helper-plugin-utils@7.27.1': {}
1697
+
1698
+
'@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)':
1699
+
dependencies:
1700
+
'@babel/core': 7.28.5
1701
+
'@babel/helper-member-expression-to-functions': 7.28.5
1702
+
'@babel/helper-optimise-call-expression': 7.27.1
1703
+
'@babel/traverse': 7.28.5
1704
+
transitivePeerDependencies:
1705
+
- supports-color
1706
+
1707
+
'@babel/helper-skip-transparent-expression-wrappers@7.27.1':
1708
+
dependencies:
1709
+
'@babel/traverse': 7.28.5
1710
+
'@babel/types': 7.28.5
1711
+
transitivePeerDependencies:
1712
+
- supports-color
1713
+
1714
+
'@babel/helper-string-parser@7.27.1': {}
1715
+
1716
+
'@babel/helper-validator-identifier@7.28.5': {}
1717
+
1718
+
'@babel/helper-validator-option@7.27.1': {}
1719
+
1720
+
'@babel/helpers@7.28.4':
1721
+
dependencies:
1722
+
'@babel/template': 7.27.2
1723
+
'@babel/types': 7.28.5
1724
+
1725
+
'@babel/parser@7.28.5':
1726
+
dependencies:
1727
+
'@babel/types': 7.28.5
1728
+
1729
+
'@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)':
1730
+
dependencies:
1731
+
'@babel/core': 7.28.5
1732
+
'@babel/helper-plugin-utils': 7.27.1
1733
+
1734
+
'@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)':
1735
+
dependencies:
1736
+
'@babel/core': 7.28.5
1737
+
'@babel/helper-plugin-utils': 7.27.1
1738
+
1739
+
'@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)':
1740
+
dependencies:
1741
+
'@babel/core': 7.28.5
1742
+
'@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5)
1743
+
'@babel/helper-plugin-utils': 7.27.1
1744
+
transitivePeerDependencies:
1745
+
- supports-color
1746
+
1747
+
'@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.5)':
1748
+
dependencies:
1749
+
'@babel/core': 7.28.5
1750
+
'@babel/helper-plugin-utils': 7.27.1
1751
+
1752
+
'@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.5)':
1753
+
dependencies:
1754
+
'@babel/core': 7.28.5
1755
+
'@babel/helper-plugin-utils': 7.27.1
1756
+
1757
+
'@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)':
1758
+
dependencies:
1759
+
'@babel/core': 7.28.5
1760
+
'@babel/helper-annotate-as-pure': 7.27.3
1761
+
'@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5)
1762
+
'@babel/helper-plugin-utils': 7.27.1
1763
+
'@babel/helper-skip-transparent-expression-wrappers': 7.27.1
1764
+
'@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5)
1765
+
transitivePeerDependencies:
1766
+
- supports-color
1767
+
1768
+
'@babel/preset-typescript@7.28.5(@babel/core@7.28.5)':
1769
+
dependencies:
1770
+
'@babel/core': 7.28.5
1771
+
'@babel/helper-plugin-utils': 7.27.1
1772
+
'@babel/helper-validator-option': 7.27.1
1773
+
'@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5)
1774
+
'@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5)
1775
+
'@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5)
1776
+
transitivePeerDependencies:
1777
+
- supports-color
1778
+
1779
+
'@babel/runtime@7.28.4': {}
1780
+
1781
+
'@babel/template@7.27.2':
1782
+
dependencies:
1783
+
'@babel/code-frame': 7.27.1
1784
+
'@babel/parser': 7.28.5
1785
+
'@babel/types': 7.28.5
1786
+
1787
+
'@babel/traverse@7.28.5':
1788
+
dependencies:
1789
+
'@babel/code-frame': 7.27.1
1790
+
'@babel/generator': 7.28.5
1791
+
'@babel/helper-globals': 7.28.0
1792
+
'@babel/parser': 7.28.5
1793
+
'@babel/template': 7.27.2
1794
+
'@babel/types': 7.28.5
1795
+
debug: 4.4.3
1796
+
transitivePeerDependencies:
1797
+
- supports-color
1798
+
1799
+
'@babel/types@7.28.5':
1800
+
dependencies:
1801
+
'@babel/helper-string-parser': 7.27.1
1802
+
'@babel/helper-validator-identifier': 7.28.5
1803
+
1804
+
'@esbuild/aix-ppc64@0.21.5':
1805
+
optional: true
1806
+
1807
+
'@esbuild/aix-ppc64@0.25.12':
1808
+
optional: true
1809
+
1810
+
'@esbuild/android-arm64@0.21.5':
1811
+
optional: true
1812
+
1813
+
'@esbuild/android-arm64@0.25.12':
1814
+
optional: true
1815
+
1816
+
'@esbuild/android-arm@0.21.5':
1817
+
optional: true
1818
+
1819
+
'@esbuild/android-arm@0.25.12':
1820
+
optional: true
1821
+
1822
+
'@esbuild/android-x64@0.21.5':
1823
+
optional: true
1824
+
1825
+
'@esbuild/android-x64@0.25.12':
1826
+
optional: true
1827
+
1828
+
'@esbuild/darwin-arm64@0.21.5':
1829
+
optional: true
1830
+
1831
+
'@esbuild/darwin-arm64@0.25.12':
1832
+
optional: true
1833
+
1834
+
'@esbuild/darwin-x64@0.21.5':
1835
+
optional: true
1836
+
1837
+
'@esbuild/darwin-x64@0.25.12':
1838
+
optional: true
1839
+
1840
+
'@esbuild/freebsd-arm64@0.21.5':
1841
+
optional: true
1842
+
1843
+
'@esbuild/freebsd-arm64@0.25.12':
1844
+
optional: true
1845
+
1846
+
'@esbuild/freebsd-x64@0.21.5':
1847
+
optional: true
1848
+
1849
+
'@esbuild/freebsd-x64@0.25.12':
1850
+
optional: true
1851
+
1852
+
'@esbuild/linux-arm64@0.21.5':
1853
+
optional: true
1854
+
1855
+
'@esbuild/linux-arm64@0.25.12':
1856
+
optional: true
1857
+
1858
+
'@esbuild/linux-arm@0.21.5':
1859
+
optional: true
1860
+
1861
+
'@esbuild/linux-arm@0.25.12':
1862
+
optional: true
1863
+
1864
+
'@esbuild/linux-ia32@0.21.5':
1865
+
optional: true
1866
+
1867
+
'@esbuild/linux-ia32@0.25.12':
1868
+
optional: true
1869
+
1870
+
'@esbuild/linux-loong64@0.21.5':
1871
+
optional: true
1872
+
1873
+
'@esbuild/linux-loong64@0.25.12':
1874
+
optional: true
1875
+
1876
+
'@esbuild/linux-mips64el@0.21.5':
1877
+
optional: true
1878
+
1879
+
'@esbuild/linux-mips64el@0.25.12':
1880
+
optional: true
1881
+
1882
+
'@esbuild/linux-ppc64@0.21.5':
1883
+
optional: true
1884
+
1885
+
'@esbuild/linux-ppc64@0.25.12':
1886
+
optional: true
1887
+
1888
+
'@esbuild/linux-riscv64@0.21.5':
1889
+
optional: true
1890
+
1891
+
'@esbuild/linux-riscv64@0.25.12':
1892
+
optional: true
1893
+
1894
+
'@esbuild/linux-s390x@0.21.5':
1895
+
optional: true
1896
+
1897
+
'@esbuild/linux-s390x@0.25.12':
1898
+
optional: true
1899
+
1900
+
'@esbuild/linux-x64@0.21.5':
1901
+
optional: true
1902
+
1903
+
'@esbuild/linux-x64@0.25.12':
1904
+
optional: true
1905
+
1906
+
'@esbuild/netbsd-arm64@0.25.12':
1907
+
optional: true
1908
+
1909
+
'@esbuild/netbsd-x64@0.21.5':
1910
+
optional: true
1911
+
1912
+
'@esbuild/netbsd-x64@0.25.12':
1913
+
optional: true
1914
+
1915
+
'@esbuild/openbsd-arm64@0.25.12':
1916
+
optional: true
1917
+
1918
+
'@esbuild/openbsd-x64@0.21.5':
1919
+
optional: true
1920
+
1921
+
'@esbuild/openbsd-x64@0.25.12':
1922
+
optional: true
1923
+
1924
+
'@esbuild/openharmony-arm64@0.25.12':
1925
+
optional: true
1926
+
1927
+
'@esbuild/sunos-x64@0.21.5':
1928
+
optional: true
1929
+
1930
+
'@esbuild/sunos-x64@0.25.12':
1931
+
optional: true
1932
+
1933
+
'@esbuild/win32-arm64@0.21.5':
1934
+
optional: true
1935
+
1936
+
'@esbuild/win32-arm64@0.25.12':
1937
+
optional: true
1938
+
1939
+
'@esbuild/win32-ia32@0.21.5':
1940
+
optional: true
1941
+
1942
+
'@esbuild/win32-ia32@0.25.12':
1943
+
optional: true
1944
+
1945
+
'@esbuild/win32-x64@0.21.5':
1946
+
optional: true
1947
+
1948
+
'@esbuild/win32-x64@0.25.12':
1949
+
optional: true
1950
+
1951
+
'@jridgewell/gen-mapping@0.3.13':
1952
+
dependencies:
1953
+
'@jridgewell/sourcemap-codec': 1.5.5
1954
+
'@jridgewell/trace-mapping': 0.3.31
1955
+
1956
+
'@jridgewell/remapping@2.3.5':
1957
+
dependencies:
1958
+
'@jridgewell/gen-mapping': 0.3.13
1959
+
'@jridgewell/trace-mapping': 0.3.31
1960
+
1961
+
'@jridgewell/resolve-uri@3.1.2': {}
1962
+
1963
+
'@jridgewell/sourcemap-codec@1.5.5': {}
1964
+
1965
+
'@jridgewell/trace-mapping@0.3.31':
1966
+
dependencies:
1967
+
'@jridgewell/resolve-uri': 3.1.2
1968
+
'@jridgewell/sourcemap-codec': 1.5.5
1969
+
1970
+
'@nodelib/fs.scandir@2.1.5':
1971
+
dependencies:
1972
+
'@nodelib/fs.stat': 2.0.5
1973
+
run-parallel: 1.2.0
1974
+
1975
+
'@nodelib/fs.stat@2.0.5': {}
1976
+
1977
+
'@nodelib/fs.walk@1.2.8':
1978
+
dependencies:
1979
+
'@nodelib/fs.scandir': 2.1.5
1980
+
fastq: 1.19.1
1981
+
1982
+
'@rolldown/pluginutils@1.0.0-beta.27': {}
1983
+
1984
+
'@rollup/rollup-android-arm-eabi@4.53.3':
1985
+
optional: true
1986
+
1987
+
'@rollup/rollup-android-arm64@4.53.3':
1988
+
optional: true
1989
+
1990
+
'@rollup/rollup-darwin-arm64@4.53.3':
1991
+
optional: true
1992
+
1993
+
'@rollup/rollup-darwin-x64@4.53.3':
1994
+
optional: true
1995
+
1996
+
'@rollup/rollup-freebsd-arm64@4.53.3':
1997
+
optional: true
1998
+
1999
+
'@rollup/rollup-freebsd-x64@4.53.3':
2000
+
optional: true
2001
+
2002
+
'@rollup/rollup-linux-arm-gnueabihf@4.53.3':
2003
+
optional: true
2004
+
2005
+
'@rollup/rollup-linux-arm-musleabihf@4.53.3':
2006
+
optional: true
2007
+
2008
+
'@rollup/rollup-linux-arm64-gnu@4.53.3':
2009
+
optional: true
2010
+
2011
+
'@rollup/rollup-linux-arm64-musl@4.53.3':
2012
+
optional: true
2013
+
2014
+
'@rollup/rollup-linux-loong64-gnu@4.53.3':
2015
+
optional: true
2016
+
2017
+
'@rollup/rollup-linux-ppc64-gnu@4.53.3':
2018
+
optional: true
2019
+
2020
+
'@rollup/rollup-linux-riscv64-gnu@4.53.3':
2021
+
optional: true
2022
+
2023
+
'@rollup/rollup-linux-riscv64-musl@4.53.3':
2024
+
optional: true
2025
+
2026
+
'@rollup/rollup-linux-s390x-gnu@4.53.3':
2027
+
optional: true
2028
+
2029
+
'@rollup/rollup-linux-x64-gnu@4.53.3':
2030
+
optional: true
2031
+
2032
+
'@rollup/rollup-linux-x64-musl@4.53.3':
2033
+
optional: true
2034
+
2035
+
'@rollup/rollup-openharmony-arm64@4.53.3':
2036
+
optional: true
2037
+
2038
+
'@rollup/rollup-win32-arm64-msvc@4.53.3':
2039
+
optional: true
2040
+
2041
+
'@rollup/rollup-win32-ia32-msvc@4.53.3':
2042
+
optional: true
2043
+
2044
+
'@rollup/rollup-win32-x64-gnu@4.53.3':
2045
+
optional: true
2046
+
2047
+
'@rollup/rollup-win32-x64-msvc@4.53.3':
2048
+
optional: true
2049
+
2050
+
'@tailwindcss/forms@0.5.10(tailwindcss@3.4.18(tsx@4.20.6))':
2051
+
dependencies:
2052
+
mini-svg-data-uri: 1.4.4
2053
+
tailwindcss: 3.4.18(tsx@4.20.6)
2054
+
2055
+
'@tanstack/history@1.139.0': {}
2056
+
2057
+
'@tanstack/react-router-devtools@1.139.10(@tanstack/react-router@1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tanstack/router-core@1.139.10)(@types/node@22.19.1)(csstype@3.2.3)(jiti@1.21.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.9.10)(tsx@4.20.6)':
2058
+
dependencies:
2059
+
'@tanstack/react-router': 1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
2060
+
'@tanstack/router-devtools-core': 1.139.10(@tanstack/router-core@1.139.10)(@types/node@22.19.1)(csstype@3.2.3)(jiti@1.21.7)(solid-js@1.9.10)(tsx@4.20.6)
2061
+
react: 18.3.1
2062
+
react-dom: 18.3.1(react@18.3.1)
2063
+
vite: 7.2.4(@types/node@22.19.1)(jiti@1.21.7)(tsx@4.20.6)
2064
+
optionalDependencies:
2065
+
'@tanstack/router-core': 1.139.10
2066
+
transitivePeerDependencies:
2067
+
- '@types/node'
2068
+
- csstype
2069
+
- jiti
2070
+
- less
2071
+
- lightningcss
2072
+
- sass
2073
+
- sass-embedded
2074
+
- solid-js
2075
+
- stylus
2076
+
- sugarss
2077
+
- terser
2078
+
- tsx
2079
+
- yaml
2080
+
2081
+
'@tanstack/react-router@1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
2082
+
dependencies:
2083
+
'@tanstack/history': 1.139.0
2084
+
'@tanstack/react-store': 0.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
2085
+
'@tanstack/router-core': 1.139.10
2086
+
isbot: 5.1.32
2087
+
react: 18.3.1
2088
+
react-dom: 18.3.1(react@18.3.1)
2089
+
tiny-invariant: 1.3.3
2090
+
tiny-warning: 1.0.3
2091
+
2092
+
'@tanstack/react-store@0.8.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
2093
+
dependencies:
2094
+
'@tanstack/store': 0.8.0
2095
+
react: 18.3.1
2096
+
react-dom: 18.3.1(react@18.3.1)
2097
+
use-sync-external-store: 1.6.0(react@18.3.1)
2098
+
2099
+
'@tanstack/router-core@1.139.10':
2100
+
dependencies:
2101
+
'@tanstack/history': 1.139.0
2102
+
'@tanstack/store': 0.8.0
2103
+
cookie-es: 2.0.0
2104
+
seroval: 1.4.0
2105
+
seroval-plugins: 1.4.0(seroval@1.4.0)
2106
+
tiny-invariant: 1.3.3
2107
+
tiny-warning: 1.0.3
2108
+
2109
+
'@tanstack/router-devtools-core@1.139.10(@tanstack/router-core@1.139.10)(@types/node@22.19.1)(csstype@3.2.3)(jiti@1.21.7)(solid-js@1.9.10)(tsx@4.20.6)':
2110
+
dependencies:
2111
+
'@tanstack/router-core': 1.139.10
2112
+
clsx: 2.1.1
2113
+
goober: 2.1.18(csstype@3.2.3)
2114
+
solid-js: 1.9.10
2115
+
tiny-invariant: 1.3.3
2116
+
vite: 7.2.4(@types/node@22.19.1)(jiti@1.21.7)(tsx@4.20.6)
2117
+
optionalDependencies:
2118
+
csstype: 3.2.3
2119
+
transitivePeerDependencies:
2120
+
- '@types/node'
2121
+
- jiti
2122
+
- less
2123
+
- lightningcss
2124
+
- sass
2125
+
- sass-embedded
2126
+
- stylus
2127
+
- sugarss
2128
+
- terser
2129
+
- tsx
2130
+
- yaml
2131
+
2132
+
'@tanstack/router-devtools@1.139.10(@tanstack/react-router@1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tanstack/router-core@1.139.10)(@types/node@22.19.1)(csstype@3.2.3)(jiti@1.21.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.9.10)(tsx@4.20.6)':
2133
+
dependencies:
2134
+
'@tanstack/react-router': 1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
2135
+
'@tanstack/react-router-devtools': 1.139.10(@tanstack/react-router@1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@tanstack/router-core@1.139.10)(@types/node@22.19.1)(csstype@3.2.3)(jiti@1.21.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(solid-js@1.9.10)(tsx@4.20.6)
2136
+
clsx: 2.1.1
2137
+
goober: 2.1.18(csstype@3.2.3)
2138
+
react: 18.3.1
2139
+
react-dom: 18.3.1(react@18.3.1)
2140
+
vite: 7.2.4(@types/node@22.19.1)(jiti@1.21.7)(tsx@4.20.6)
2141
+
optionalDependencies:
2142
+
csstype: 3.2.3
2143
+
transitivePeerDependencies:
2144
+
- '@tanstack/router-core'
2145
+
- '@types/node'
2146
+
- jiti
2147
+
- less
2148
+
- lightningcss
2149
+
- sass
2150
+
- sass-embedded
2151
+
- solid-js
2152
+
- stylus
2153
+
- sugarss
2154
+
- terser
2155
+
- tsx
2156
+
- yaml
2157
+
2158
+
'@tanstack/router-generator@1.139.10':
2159
+
dependencies:
2160
+
'@tanstack/router-core': 1.139.10
2161
+
'@tanstack/router-utils': 1.139.0
2162
+
'@tanstack/virtual-file-routes': 1.139.0
2163
+
prettier: 3.7.1
2164
+
recast: 0.23.11
2165
+
source-map: 0.7.6
2166
+
tsx: 4.20.6
2167
+
zod: 3.25.76
2168
+
transitivePeerDependencies:
2169
+
- supports-color
2170
+
2171
+
'@tanstack/router-plugin@1.139.10(@tanstack/react-router@1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@5.4.21(@types/node@22.19.1))':
2172
+
dependencies:
2173
+
'@babel/core': 7.28.5
2174
+
'@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5)
2175
+
'@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5)
2176
+
'@babel/template': 7.27.2
2177
+
'@babel/traverse': 7.28.5
2178
+
'@babel/types': 7.28.5
2179
+
'@tanstack/router-core': 1.139.10
2180
+
'@tanstack/router-generator': 1.139.10
2181
+
'@tanstack/router-utils': 1.139.0
2182
+
'@tanstack/virtual-file-routes': 1.139.0
2183
+
babel-dead-code-elimination: 1.0.10
2184
+
chokidar: 3.6.0
2185
+
unplugin: 2.3.11
2186
+
zod: 3.25.76
2187
+
optionalDependencies:
2188
+
'@tanstack/react-router': 1.139.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
2189
+
vite: 5.4.21(@types/node@22.19.1)
2190
+
transitivePeerDependencies:
2191
+
- supports-color
2192
+
2193
+
'@tanstack/router-utils@1.139.0':
2194
+
dependencies:
2195
+
'@babel/core': 7.28.5
2196
+
'@babel/generator': 7.28.5
2197
+
'@babel/parser': 7.28.5
2198
+
'@babel/preset-typescript': 7.28.5(@babel/core@7.28.5)
2199
+
ansis: 4.2.0
2200
+
diff: 8.0.2
2201
+
pathe: 2.0.3
2202
+
tinyglobby: 0.2.15
2203
+
transitivePeerDependencies:
2204
+
- supports-color
2205
+
2206
+
'@tanstack/store@0.8.0': {}
2207
+
2208
+
'@tanstack/virtual-file-routes@1.139.0': {}
2209
+
2210
+
'@types/babel__core@7.20.5':
2211
+
dependencies:
2212
+
'@babel/parser': 7.28.5
2213
+
'@babel/types': 7.28.5
2214
+
'@types/babel__generator': 7.27.0
2215
+
'@types/babel__template': 7.4.4
2216
+
'@types/babel__traverse': 7.28.0
2217
+
2218
+
'@types/babel__generator@7.27.0':
2219
+
dependencies:
2220
+
'@babel/types': 7.28.5
2221
+
2222
+
'@types/babel__template@7.4.4':
2223
+
dependencies:
2224
+
'@babel/parser': 7.28.5
2225
+
'@babel/types': 7.28.5
2226
+
2227
+
'@types/babel__traverse@7.28.0':
2228
+
dependencies:
2229
+
'@babel/types': 7.28.5
2230
+
2231
+
'@types/bun@1.3.3':
2232
+
dependencies:
2233
+
bun-types: 1.3.3
2234
+
2235
+
'@types/estree@1.0.8': {}
2236
+
2237
+
'@types/lodash@4.17.21': {}
2238
+
2239
+
'@types/node@18.19.130':
2240
+
dependencies:
2241
+
undici-types: 5.26.5
2242
+
2243
+
'@types/node@22.19.1':
2244
+
dependencies:
2245
+
undici-types: 6.21.0
2246
+
2247
+
'@types/prop-types@15.7.15': {}
2248
+
2249
+
'@types/react-dom@18.3.7(@types/react@18.3.27)':
2250
+
dependencies:
2251
+
'@types/react': 18.3.27
2252
+
2253
+
'@types/react@18.3.27':
2254
+
dependencies:
2255
+
'@types/prop-types': 15.7.15
2256
+
csstype: 3.2.3
2257
+
2258
+
'@vitejs/plugin-react@4.7.0(vite@5.4.21(@types/node@22.19.1))':
2259
+
dependencies:
2260
+
'@babel/core': 7.28.5
2261
+
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5)
2262
+
'@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.5)
2263
+
'@rolldown/pluginutils': 1.0.0-beta.27
2264
+
'@types/babel__core': 7.20.5
2265
+
react-refresh: 0.17.0
2266
+
vite: 5.4.21(@types/node@22.19.1)
2267
+
transitivePeerDependencies:
2268
+
- supports-color
2269
+
2270
+
acorn@8.15.0: {}
2271
+
2272
+
ansis@4.2.0: {}
2273
+
2274
+
any-promise@1.3.0: {}
2275
+
2276
+
anymatch@3.1.3:
2277
+
dependencies:
2278
+
normalize-path: 3.0.0
2279
+
picomatch: 2.3.1
2280
+
2281
+
arg@5.0.2: {}
2282
+
2283
+
ast-types@0.16.1:
2284
+
dependencies:
2285
+
tslib: 2.8.1
2286
+
2287
+
autoprefixer@10.4.22(postcss@8.5.6):
2288
+
dependencies:
2289
+
browserslist: 4.28.0
2290
+
caniuse-lite: 1.0.30001757
2291
+
fraction.js: 5.3.4
2292
+
normalize-range: 0.1.2
2293
+
picocolors: 1.1.1
2294
+
postcss: 8.5.6
2295
+
postcss-value-parser: 4.2.0
2296
+
2297
+
babel-dead-code-elimination@1.0.10:
2298
+
dependencies:
2299
+
'@babel/core': 7.28.5
2300
+
'@babel/parser': 7.28.5
2301
+
'@babel/traverse': 7.28.5
2302
+
'@babel/types': 7.28.5
2303
+
transitivePeerDependencies:
2304
+
- supports-color
2305
+
2306
+
baseline-browser-mapping@2.8.31: {}
2307
+
2308
+
binary-extensions@2.3.0: {}
2309
+
2310
+
braces@3.0.3:
2311
+
dependencies:
2312
+
fill-range: 7.1.1
2313
+
2314
+
browserslist@4.28.0:
2315
+
dependencies:
2316
+
baseline-browser-mapping: 2.8.31
2317
+
caniuse-lite: 1.0.30001757
2318
+
electron-to-chromium: 1.5.262
2319
+
node-releases: 2.0.27
2320
+
update-browserslist-db: 1.1.4(browserslist@4.28.0)
2321
+
2322
+
bun-types@1.3.3:
2323
+
dependencies:
2324
+
'@types/node': 18.19.130
2325
+
2326
+
camelcase-css@2.0.1: {}
2327
+
2328
+
caniuse-lite@1.0.30001757: {}
2329
+
2330
+
chokidar@3.6.0:
2331
+
dependencies:
2332
+
anymatch: 3.1.3
2333
+
braces: 3.0.3
2334
+
glob-parent: 5.1.2
2335
+
is-binary-path: 2.1.0
2336
+
is-glob: 4.0.3
2337
+
normalize-path: 3.0.0
2338
+
readdirp: 3.6.0
2339
+
optionalDependencies:
2340
+
fsevents: 2.3.3
2341
+
2342
+
clsx@2.1.1: {}
2343
+
2344
+
commander@4.1.1: {}
2345
+
2346
+
convert-source-map@2.0.0: {}
2347
+
2348
+
cookie-es@2.0.0: {}
2349
+
2350
+
cookie@1.1.1: {}
2351
+
2352
+
cross-fetch@4.0.0:
2353
+
dependencies:
2354
+
node-fetch: 2.7.0
2355
+
transitivePeerDependencies:
2356
+
- encoding
2357
+
2358
+
cssesc@3.0.0: {}
2359
+
2360
+
csstype@3.2.3: {}
2361
+
2362
+
debug@4.4.3:
2363
+
dependencies:
2364
+
ms: 2.1.3
2365
+
2366
+
didyoumean@1.2.2: {}
2367
+
2368
+
diff@8.0.2: {}
2369
+
2370
+
dlv@1.1.3: {}
2371
+
2372
+
electron-to-chromium@1.5.262: {}
2373
+
2374
+
esbuild@0.21.5:
2375
+
optionalDependencies:
2376
+
'@esbuild/aix-ppc64': 0.21.5
2377
+
'@esbuild/android-arm': 0.21.5
2378
+
'@esbuild/android-arm64': 0.21.5
2379
+
'@esbuild/android-x64': 0.21.5
2380
+
'@esbuild/darwin-arm64': 0.21.5
2381
+
'@esbuild/darwin-x64': 0.21.5
2382
+
'@esbuild/freebsd-arm64': 0.21.5
2383
+
'@esbuild/freebsd-x64': 0.21.5
2384
+
'@esbuild/linux-arm': 0.21.5
2385
+
'@esbuild/linux-arm64': 0.21.5
2386
+
'@esbuild/linux-ia32': 0.21.5
2387
+
'@esbuild/linux-loong64': 0.21.5
2388
+
'@esbuild/linux-mips64el': 0.21.5
2389
+
'@esbuild/linux-ppc64': 0.21.5
2390
+
'@esbuild/linux-riscv64': 0.21.5
2391
+
'@esbuild/linux-s390x': 0.21.5
2392
+
'@esbuild/linux-x64': 0.21.5
2393
+
'@esbuild/netbsd-x64': 0.21.5
2394
+
'@esbuild/openbsd-x64': 0.21.5
2395
+
'@esbuild/sunos-x64': 0.21.5
2396
+
'@esbuild/win32-arm64': 0.21.5
2397
+
'@esbuild/win32-ia32': 0.21.5
2398
+
'@esbuild/win32-x64': 0.21.5
2399
+
2400
+
esbuild@0.25.12:
2401
+
optionalDependencies:
2402
+
'@esbuild/aix-ppc64': 0.25.12
2403
+
'@esbuild/android-arm': 0.25.12
2404
+
'@esbuild/android-arm64': 0.25.12
2405
+
'@esbuild/android-x64': 0.25.12
2406
+
'@esbuild/darwin-arm64': 0.25.12
2407
+
'@esbuild/darwin-x64': 0.25.12
2408
+
'@esbuild/freebsd-arm64': 0.25.12
2409
+
'@esbuild/freebsd-x64': 0.25.12
2410
+
'@esbuild/linux-arm': 0.25.12
2411
+
'@esbuild/linux-arm64': 0.25.12
2412
+
'@esbuild/linux-ia32': 0.25.12
2413
+
'@esbuild/linux-loong64': 0.25.12
2414
+
'@esbuild/linux-mips64el': 0.25.12
2415
+
'@esbuild/linux-ppc64': 0.25.12
2416
+
'@esbuild/linux-riscv64': 0.25.12
2417
+
'@esbuild/linux-s390x': 0.25.12
2418
+
'@esbuild/linux-x64': 0.25.12
2419
+
'@esbuild/netbsd-arm64': 0.25.12
2420
+
'@esbuild/netbsd-x64': 0.25.12
2421
+
'@esbuild/openbsd-arm64': 0.25.12
2422
+
'@esbuild/openbsd-x64': 0.25.12
2423
+
'@esbuild/openharmony-arm64': 0.25.12
2424
+
'@esbuild/sunos-x64': 0.25.12
2425
+
'@esbuild/win32-arm64': 0.25.12
2426
+
'@esbuild/win32-ia32': 0.25.12
2427
+
'@esbuild/win32-x64': 0.25.12
2428
+
2429
+
escalade@3.2.0: {}
2430
+
2431
+
esprima@4.0.1: {}
2432
+
2433
+
fast-glob@3.3.3:
2434
+
dependencies:
2435
+
'@nodelib/fs.stat': 2.0.5
2436
+
'@nodelib/fs.walk': 1.2.8
2437
+
glob-parent: 5.1.2
2438
+
merge2: 1.4.1
2439
+
micromatch: 4.0.8
2440
+
2441
+
fastq@1.19.1:
2442
+
dependencies:
2443
+
reusify: 1.1.0
2444
+
2445
+
fdir@6.5.0(picomatch@4.0.3):
2446
+
optionalDependencies:
2447
+
picomatch: 4.0.3
2448
+
2449
+
fill-range@7.1.1:
2450
+
dependencies:
2451
+
to-regex-range: 5.0.1
2452
+
2453
+
flyff.js@1.3.0: {}
2454
+
2455
+
fraction.js@5.3.4: {}
2456
+
2457
+
fsevents@2.3.3:
2458
+
optional: true
2459
+
2460
+
function-bind@1.1.2: {}
2461
+
2462
+
gensync@1.0.0-beta.2: {}
2463
+
2464
+
get-tsconfig@4.13.0:
2465
+
dependencies:
2466
+
resolve-pkg-maps: 1.0.0
2467
+
2468
+
glob-parent@5.1.2:
2469
+
dependencies:
2470
+
is-glob: 4.0.3
2471
+
2472
+
glob-parent@6.0.2:
2473
+
dependencies:
2474
+
is-glob: 4.0.3
2475
+
2476
+
goober@2.1.18(csstype@3.2.3):
2477
+
dependencies:
2478
+
csstype: 3.2.3
2479
+
2480
+
hasown@2.0.2:
2481
+
dependencies:
2482
+
function-bind: 1.1.2
2483
+
2484
+
html-parse-stringify@3.0.1:
2485
+
dependencies:
2486
+
void-elements: 3.1.0
2487
+
2488
+
i18next-browser-languagedetector@8.2.0:
2489
+
dependencies:
2490
+
'@babel/runtime': 7.28.4
2491
+
2492
+
i18next-http-backend@2.7.3:
2493
+
dependencies:
2494
+
cross-fetch: 4.0.0
2495
+
transitivePeerDependencies:
2496
+
- encoding
2497
+
2498
+
i18next@23.16.8:
2499
+
dependencies:
2500
+
'@babel/runtime': 7.28.4
2501
+
2502
+
immer@10.2.0: {}
2503
+
2504
+
is-binary-path@2.1.0:
2505
+
dependencies:
2506
+
binary-extensions: 2.3.0
2507
+
2508
+
is-core-module@2.16.1:
2509
+
dependencies:
2510
+
hasown: 2.0.2
2511
+
2512
+
is-extglob@2.1.1: {}
2513
+
2514
+
is-glob@4.0.3:
2515
+
dependencies:
2516
+
is-extglob: 2.1.1
2517
+
2518
+
is-number@7.0.0: {}
2519
+
2520
+
isbot@5.1.32: {}
2521
+
2522
+
jiti@1.21.7: {}
2523
+
2524
+
js-tokens@4.0.0: {}
2525
+
2526
+
jsesc@3.1.0: {}
2527
+
2528
+
json5@2.2.3: {}
2529
+
2530
+
lilconfig@3.1.3: {}
2531
+
2532
+
lines-and-columns@1.2.4: {}
2533
+
2534
+
lodash@4.17.21: {}
2535
+
2536
+
loose-envify@1.4.0:
2537
+
dependencies:
2538
+
js-tokens: 4.0.0
2539
+
2540
+
lru-cache@5.1.1:
2541
+
dependencies:
2542
+
yallist: 3.1.1
2543
+
2544
+
lz-string@1.5.0: {}
2545
+
2546
+
merge2@1.4.1: {}
2547
+
2548
+
micromatch@4.0.8:
2549
+
dependencies:
2550
+
braces: 3.0.3
2551
+
picomatch: 2.3.1
2552
+
2553
+
mini-svg-data-uri@1.4.4: {}
2554
+
2555
+
ms@2.1.3: {}
2556
+
2557
+
mz@2.7.0:
2558
+
dependencies:
2559
+
any-promise: 1.3.0
2560
+
object-assign: 4.1.1
2561
+
thenify-all: 1.6.0
2562
+
2563
+
nanoid@3.3.11: {}
2564
+
2565
+
node-fetch@2.7.0:
2566
+
dependencies:
2567
+
whatwg-url: 5.0.0
2568
+
2569
+
node-releases@2.0.27: {}
2570
+
2571
+
normalize-path@3.0.0: {}
2572
+
2573
+
normalize-range@0.1.2: {}
2574
+
2575
+
object-assign@4.1.1: {}
2576
+
2577
+
object-hash@3.0.0: {}
2578
+
2579
+
path-parse@1.0.7: {}
2580
+
2581
+
pathe@2.0.3: {}
2582
+
2583
+
picocolors@1.1.1: {}
2584
+
2585
+
picomatch@2.3.1: {}
2586
+
2587
+
picomatch@4.0.3: {}
2588
+
2589
+
pify@2.3.0: {}
2590
+
2591
+
pirates@4.0.7: {}
2592
+
2593
+
postcss-import@15.1.0(postcss@8.5.6):
2594
+
dependencies:
2595
+
postcss: 8.5.6
2596
+
postcss-value-parser: 4.2.0
2597
+
read-cache: 1.0.0
2598
+
resolve: 1.22.11
2599
+
2600
+
postcss-js@4.1.0(postcss@8.5.6):
2601
+
dependencies:
2602
+
camelcase-css: 2.0.1
2603
+
postcss: 8.5.6
2604
+
2605
+
postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.6):
2606
+
dependencies:
2607
+
lilconfig: 3.1.3
2608
+
optionalDependencies:
2609
+
jiti: 1.21.7
2610
+
postcss: 8.5.6
2611
+
tsx: 4.20.6
2612
+
2613
+
postcss-nested@6.2.0(postcss@8.5.6):
2614
+
dependencies:
2615
+
postcss: 8.5.6
2616
+
postcss-selector-parser: 6.1.2
2617
+
2618
+
postcss-selector-parser@6.1.2:
2619
+
dependencies:
2620
+
cssesc: 3.0.0
2621
+
util-deprecate: 1.0.2
2622
+
2623
+
postcss-value-parser@4.2.0: {}
2624
+
2625
+
postcss@8.5.6:
2626
+
dependencies:
2627
+
nanoid: 3.3.11
2628
+
picocolors: 1.1.1
2629
+
source-map-js: 1.2.1
2630
+
2631
+
prettier@3.7.1: {}
2632
+
2633
+
prop-types@15.8.1:
2634
+
dependencies:
2635
+
loose-envify: 1.4.0
2636
+
object-assign: 4.1.1
2637
+
react-is: 16.13.1
2638
+
2639
+
queue-microtask@1.2.3: {}
2640
+
2641
+
react-dom@18.3.1(react@18.3.1):
2642
+
dependencies:
2643
+
loose-envify: 1.4.0
2644
+
react: 18.3.1
2645
+
scheduler: 0.23.2
2646
+
2647
+
react-fast-compare@3.2.2: {}
2648
+
2649
+
react-helmet@6.1.0(react@18.3.1):
2650
+
dependencies:
2651
+
object-assign: 4.1.1
2652
+
prop-types: 15.8.1
2653
+
react: 18.3.1
2654
+
react-fast-compare: 3.2.2
2655
+
react-side-effect: 2.1.2(react@18.3.1)
2656
+
2657
+
react-i18next@15.7.4(i18next@23.16.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3):
2658
+
dependencies:
2659
+
'@babel/runtime': 7.28.4
2660
+
html-parse-stringify: 3.0.1
2661
+
i18next: 23.16.8
2662
+
react: 18.3.1
2663
+
optionalDependencies:
2664
+
react-dom: 18.3.1(react@18.3.1)
2665
+
typescript: 5.9.3
2666
+
2667
+
react-is@16.13.1: {}
2668
+
2669
+
react-refresh@0.17.0: {}
2670
+
2671
+
react-router@7.9.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
2672
+
dependencies:
2673
+
cookie: 1.1.1
2674
+
react: 18.3.1
2675
+
set-cookie-parser: 2.7.2
2676
+
optionalDependencies:
2677
+
react-dom: 18.3.1(react@18.3.1)
2678
+
2679
+
react-side-effect@2.1.2(react@18.3.1):
2680
+
dependencies:
2681
+
react: 18.3.1
2682
+
2683
+
react@18.3.1:
2684
+
dependencies:
2685
+
loose-envify: 1.4.0
2686
+
2687
+
read-cache@1.0.0:
2688
+
dependencies:
2689
+
pify: 2.3.0
2690
+
2691
+
readdirp@3.6.0:
2692
+
dependencies:
2693
+
picomatch: 2.3.1
2694
+
2695
+
recast@0.23.11:
2696
+
dependencies:
2697
+
ast-types: 0.16.1
2698
+
esprima: 4.0.1
2699
+
source-map: 0.6.1
2700
+
tiny-invariant: 1.3.3
2701
+
tslib: 2.8.1
2702
+
2703
+
resolve-pkg-maps@1.0.0: {}
2704
+
2705
+
resolve@1.22.11:
2706
+
dependencies:
2707
+
is-core-module: 2.16.1
2708
+
path-parse: 1.0.7
2709
+
supports-preserve-symlinks-flag: 1.0.0
2710
+
2711
+
reusify@1.1.0: {}
2712
+
2713
+
rollup@4.53.3:
2714
+
dependencies:
2715
+
'@types/estree': 1.0.8
2716
+
optionalDependencies:
2717
+
'@rollup/rollup-android-arm-eabi': 4.53.3
2718
+
'@rollup/rollup-android-arm64': 4.53.3
2719
+
'@rollup/rollup-darwin-arm64': 4.53.3
2720
+
'@rollup/rollup-darwin-x64': 4.53.3
2721
+
'@rollup/rollup-freebsd-arm64': 4.53.3
2722
+
'@rollup/rollup-freebsd-x64': 4.53.3
2723
+
'@rollup/rollup-linux-arm-gnueabihf': 4.53.3
2724
+
'@rollup/rollup-linux-arm-musleabihf': 4.53.3
2725
+
'@rollup/rollup-linux-arm64-gnu': 4.53.3
2726
+
'@rollup/rollup-linux-arm64-musl': 4.53.3
2727
+
'@rollup/rollup-linux-loong64-gnu': 4.53.3
2728
+
'@rollup/rollup-linux-ppc64-gnu': 4.53.3
2729
+
'@rollup/rollup-linux-riscv64-gnu': 4.53.3
2730
+
'@rollup/rollup-linux-riscv64-musl': 4.53.3
2731
+
'@rollup/rollup-linux-s390x-gnu': 4.53.3
2732
+
'@rollup/rollup-linux-x64-gnu': 4.53.3
2733
+
'@rollup/rollup-linux-x64-musl': 4.53.3
2734
+
'@rollup/rollup-openharmony-arm64': 4.53.3
2735
+
'@rollup/rollup-win32-arm64-msvc': 4.53.3
2736
+
'@rollup/rollup-win32-ia32-msvc': 4.53.3
2737
+
'@rollup/rollup-win32-x64-gnu': 4.53.3
2738
+
'@rollup/rollup-win32-x64-msvc': 4.53.3
2739
+
fsevents: 2.3.3
2740
+
2741
+
run-parallel@1.2.0:
2742
+
dependencies:
2743
+
queue-microtask: 1.2.3
2744
+
2745
+
scheduler@0.23.2:
2746
+
dependencies:
2747
+
loose-envify: 1.4.0
2748
+
2749
+
semver@6.3.1: {}
2750
+
2751
+
seroval-plugins@1.3.3(seroval@1.3.2):
2752
+
dependencies:
2753
+
seroval: 1.3.2
2754
+
2755
+
seroval-plugins@1.4.0(seroval@1.4.0):
2756
+
dependencies:
2757
+
seroval: 1.4.0
2758
+
2759
+
seroval@1.3.2: {}
2760
+
2761
+
seroval@1.4.0: {}
2762
+
2763
+
set-cookie-parser@2.7.2: {}
2764
+
2765
+
solid-js@1.9.10:
2766
+
dependencies:
2767
+
csstype: 3.2.3
2768
+
seroval: 1.3.2
2769
+
seroval-plugins: 1.3.3(seroval@1.3.2)
2770
+
2771
+
source-map-js@1.2.1: {}
2772
+
2773
+
source-map@0.6.1: {}
2774
+
2775
+
source-map@0.7.6: {}
2776
+
2777
+
sucrase@3.35.1:
2778
+
dependencies:
2779
+
'@jridgewell/gen-mapping': 0.3.13
2780
+
commander: 4.1.1
2781
+
lines-and-columns: 1.2.4
2782
+
mz: 2.7.0
2783
+
pirates: 4.0.7
2784
+
tinyglobby: 0.2.15
2785
+
ts-interface-checker: 0.1.13
2786
+
2787
+
supports-preserve-symlinks-flag@1.0.0: {}
2788
+
2789
+
tailwindcss@3.4.18(tsx@4.20.6):
2790
+
dependencies:
2791
+
'@alloc/quick-lru': 5.2.0
2792
+
arg: 5.0.2
2793
+
chokidar: 3.6.0
2794
+
didyoumean: 1.2.2
2795
+
dlv: 1.1.3
2796
+
fast-glob: 3.3.3
2797
+
glob-parent: 6.0.2
2798
+
is-glob: 4.0.3
2799
+
jiti: 1.21.7
2800
+
lilconfig: 3.1.3
2801
+
micromatch: 4.0.8
2802
+
normalize-path: 3.0.0
2803
+
object-hash: 3.0.0
2804
+
picocolors: 1.1.1
2805
+
postcss: 8.5.6
2806
+
postcss-import: 15.1.0(postcss@8.5.6)
2807
+
postcss-js: 4.1.0(postcss@8.5.6)
2808
+
postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.20.6)
2809
+
postcss-nested: 6.2.0(postcss@8.5.6)
2810
+
postcss-selector-parser: 6.1.2
2811
+
resolve: 1.22.11
2812
+
sucrase: 3.35.1
2813
+
transitivePeerDependencies:
2814
+
- tsx
2815
+
- yaml
2816
+
2817
+
thenify-all@1.6.0:
2818
+
dependencies:
2819
+
thenify: 3.3.1
2820
+
2821
+
thenify@3.3.1:
2822
+
dependencies:
2823
+
any-promise: 1.3.0
2824
+
2825
+
tiny-invariant@1.3.3: {}
2826
+
2827
+
tiny-warning@1.0.3: {}
2828
+
2829
+
tinyglobby@0.2.15:
2830
+
dependencies:
2831
+
fdir: 6.5.0(picomatch@4.0.3)
2832
+
picomatch: 4.0.3
2833
+
2834
+
to-regex-range@5.0.1:
2835
+
dependencies:
2836
+
is-number: 7.0.0
2837
+
2838
+
tr46@0.0.3: {}
2839
+
2840
+
ts-interface-checker@0.1.13: {}
2841
+
2842
+
tslib@2.8.1: {}
2843
+
2844
+
tsx@4.20.6:
2845
+
dependencies:
2846
+
esbuild: 0.25.12
2847
+
get-tsconfig: 4.13.0
2848
+
optionalDependencies:
2849
+
fsevents: 2.3.3
2850
+
2851
turbo-darwin-64@2.6.1:
2852
optional: true
2853
···
2874
turbo-linux-arm64: 2.6.1
2875
turbo-windows-64: 2.6.1
2876
turbo-windows-arm64: 2.6.1
2877
+
2878
+
typescript@4.9.5: {}
2879
+
2880
+
typescript@5.9.3: {}
2881
+
2882
+
undici-types@5.26.5: {}
2883
+
2884
+
undici-types@6.21.0: {}
2885
+
2886
+
unplugin@2.3.11:
2887
+
dependencies:
2888
+
'@jridgewell/remapping': 2.3.5
2889
+
acorn: 8.15.0
2890
+
picomatch: 4.0.3
2891
+
webpack-virtual-modules: 0.6.2
2892
+
2893
+
update-browserslist-db@1.1.4(browserslist@4.28.0):
2894
+
dependencies:
2895
+
browserslist: 4.28.0
2896
+
escalade: 3.2.0
2897
+
picocolors: 1.1.1
2898
+
2899
+
use-sync-external-store@1.6.0(react@18.3.1):
2900
+
dependencies:
2901
+
react: 18.3.1
2902
+
2903
+
util-deprecate@1.0.2: {}
2904
+
2905
+
vite@5.4.21(@types/node@22.19.1):
2906
+
dependencies:
2907
+
esbuild: 0.21.5
2908
+
postcss: 8.5.6
2909
+
rollup: 4.53.3
2910
+
optionalDependencies:
2911
+
'@types/node': 22.19.1
2912
+
fsevents: 2.3.3
2913
+
2914
+
vite@7.2.4(@types/node@22.19.1)(jiti@1.21.7)(tsx@4.20.6):
2915
+
dependencies:
2916
+
esbuild: 0.25.12
2917
+
fdir: 6.5.0(picomatch@4.0.3)
2918
+
picomatch: 4.0.3
2919
+
postcss: 8.5.6
2920
+
rollup: 4.53.3
2921
+
tinyglobby: 0.2.15
2922
+
optionalDependencies:
2923
+
'@types/node': 22.19.1
2924
+
fsevents: 2.3.3
2925
+
jiti: 1.21.7
2926
+
tsx: 4.20.6
2927
+
2928
+
void-elements@3.1.0: {}
2929
+
2930
+
webidl-conversions@3.0.1: {}
2931
+
2932
+
webpack-virtual-modules@0.6.2: {}
2933
+
2934
+
whatwg-url@5.0.0:
2935
+
dependencies:
2936
+
tr46: 0.0.3
2937
+
webidl-conversions: 3.0.1
2938
+
2939
+
yallist@3.1.1: {}
2940
+
2941
+
zod@3.25.76: {}
2942
+
2943
+
zustand@5.0.8(@types/react@18.3.27)(immer@10.2.0)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)):
2944
+
optionalDependencies:
2945
+
'@types/react': 18.3.27
2946
+
immer: 10.2.0
2947
+
react: 18.3.1
2948
+
use-sync-external-store: 1.6.0(react@18.3.1)
+5
-2
pnpm-workspace.yaml
+5
-2
pnpm-workspace.yaml
+1
-1
turbo.json
+1
-1
turbo.json