.vscode
demo
lexicons
lib
···
1
1
+
# Logs
2
2
+
logs
3
3
+
*.log
4
4
+
npm-debug.log*
5
5
+
yarn-debug.log*
6
6
+
yarn-error.log*
7
7
+
pnpm-debug.log*
8
8
+
lerna-debug.log*
9
9
+
10
10
+
node_modules
11
11
+
dist
12
12
+
dist-ssr
13
13
+
*.local
14
14
+
15
15
+
# Editor directories and files
16
16
+
.vscode/*
17
17
+
!.vscode/extensions.json
18
18
+
.idea
19
19
+
.DS_Store
20
20
+
*.suo
21
21
+
*.ntvs*
22
22
+
*.njsproj
23
23
+
*.sln
24
24
+
*.sw?
···
1
1
+
{
2
2
+
"recommendations": ["svelte.svelte-vscode"]
3
3
+
}
···
1
1
+
# cutebook
2
2
+
3
3
+
Web components for AT Protocol guestbooks. Sign and display guestbook entries stored in user repositories, indexed via Constellation.
4
4
+
5
5
+
## Installation
6
6
+
7
7
+
```bash
8
8
+
npm install cutebook
9
9
+
```
10
10
+
11
11
+
Peer dependencies:
12
12
+
13
13
+
```bash
14
14
+
npm install @atcute/client @atcute/oauth-browser-client @atcute/identity-resolver
15
15
+
```
16
16
+
17
17
+
## Quick Start
18
18
+
19
19
+
The simplest way to use the components is with the auto-register entry point:
20
20
+
21
21
+
```ts
22
22
+
import { configureGuestbook } from 'cutebook/register';
23
23
+
24
24
+
configureGuestbook({
25
25
+
oauth: {
26
26
+
clientId: 'https://your-app.com/client-metadata.json',
27
27
+
redirectUri: 'https://your-app.com/',
28
28
+
scope: 'atproto transition:generic',
29
29
+
},
30
30
+
});
31
31
+
```
32
32
+
33
33
+
Then use the custom elements in your HTML:
34
34
+
35
35
+
```html
36
36
+
<guestbook-sign did="did:plc:your-did-here"></guestbook-sign>
37
37
+
<guestbook-display did="did:plc:your-did-here" limit="50"></guestbook-display>
38
38
+
```
39
39
+
40
40
+
## Manual Registration
41
41
+
42
42
+
If you need more control over element registration:
43
43
+
44
44
+
```ts
45
45
+
import {
46
46
+
GuestbookSignElement,
47
47
+
GuestbookDisplayElement,
48
48
+
configureGuestbook
49
49
+
} from 'cutebook';
50
50
+
51
51
+
configureGuestbook({
52
52
+
oauth: {
53
53
+
clientId: 'https://your-app.com/client-metadata.json',
54
54
+
redirectUri: 'https://your-app.com/',
55
55
+
scope: 'atproto transition:generic',
56
56
+
},
57
57
+
});
58
58
+
59
59
+
customElements.define('my-guestbook-sign', GuestbookSignElement);
60
60
+
customElements.define('my-guestbook-display', GuestbookDisplayElement);
61
61
+
```
62
62
+
63
63
+
## Components
64
64
+
65
65
+
### guestbook-sign
66
66
+
67
67
+
A form component that handles OAuth authentication and record creation.
68
68
+
69
69
+
| Attribute | Description |
70
70
+
|-----------|-------------|
71
71
+
| `did` | The DID of the guestbook owner (required) |
72
72
+
73
73
+
Dispatches a `sign-created` event with `{ uri, cid }` when a signature is successfully created.
74
74
+
75
75
+
### guestbook-display
76
76
+
77
77
+
Displays guestbook signatures by querying Constellation for backlinks.
78
78
+
79
79
+
| Attribute | Description |
80
80
+
|-----------|-------------|
81
81
+
| `did` | The DID of the guestbook owner (required) |
82
82
+
| `limit` | Maximum number of entries to display (default: 50) |
83
83
+
84
84
+
Call `.refresh()` on the element to reload signatures.
85
85
+
86
86
+
## Lexicon
87
87
+
88
88
+
Signatures use the `pet.nkp.guestbook.sign` record type:
89
89
+
90
90
+
```json
91
91
+
{
92
92
+
"$type": "pet.nkp.guestbook.sign",
93
93
+
"subject": "did:plc:guestbook-owner",
94
94
+
"message": "Your message here",
95
95
+
"createdAt": "2024-01-01T00:00:00.000Z"
96
96
+
}
97
97
+
```
98
98
+
99
99
+
## Development
100
100
+
101
101
+
```bash
102
102
+
npm run dev # Run demo app
103
103
+
npm run build # Build library
104
104
+
npm run build:demo # Build demo app
105
105
+
npm run check # Type check
106
106
+
```
107
107
+
108
108
+
## Credits
109
109
+
110
110
+
Handle typeahead powered by [actor-typeahead](https://tangled.org/jakelazaroff.com/actor-typeahead) by Jake Lazaroff.
111
111
+
112
112
+
## License
113
113
+
114
114
+
MIT
···
1
1
+
{
2
2
+
"lockfileVersion": 1,
3
3
+
"configVersion": 0,
4
4
+
"workspaces": {
5
5
+
"": {
6
6
+
"name": "cutebook",
7
7
+
"dependencies": {
8
8
+
"@atcute/atproto": "^3.1.9",
9
9
+
"@atcute/client": "^4.1.0",
10
10
+
"@atcute/identity-resolver": "^1.1.4",
11
11
+
"@atcute/lex-cli": "^2.5.0",
12
12
+
"@atcute/lexicon-doc": "^2.0.4",
13
13
+
"@atcute/oauth-browser-client": "^2.0.1",
14
14
+
},
15
15
+
"devDependencies": {
16
16
+
"@sveltejs/vite-plugin-svelte": "^6.2.1",
17
17
+
"@tsconfig/svelte": "^5.0.6",
18
18
+
"@types/node": "^24.10.1",
19
19
+
"svelte": "^5.43.8",
20
20
+
"svelte-check": "^4.3.4",
21
21
+
"typescript": "~5.9.3",
22
22
+
"vite": "npm:rolldown-vite@7.2.5",
23
23
+
},
24
24
+
},
25
25
+
},
26
26
+
"overrides": {
27
27
+
"vite": "npm:rolldown-vite@7.2.5",
28
28
+
},
29
29
+
"packages": {
30
30
+
"@atcute/atproto": ["@atcute/atproto@3.1.9", "", { "dependencies": { "@atcute/lexicons": "^1.2.2" } }, "sha512-DyWwHCTdR4hY2BPNbLXgVmm7lI+fceOwWbE4LXbGvbvVtSn+ejSVFaAv01Ra3kWDha0whsOmbJL8JP0QPpf1+w=="],
31
31
+
32
32
+
"@atcute/car": ["@atcute/car@5.0.0", "", { "dependencies": { "@atcute/cbor": "^2.2.7", "@atcute/cid": "^2.2.6", "@atcute/uint8array": "^1.0.5", "@atcute/varint": "^1.0.3" } }, "sha512-OIY2xTXv8lSpZsDSn/UYQtJSMvDw5Hi4Q+uyvmiqSM+fht08QRAEq/nxa5YFciPZ3nfDFnZ3//EgJw7QhkSXLQ=="],
33
33
+
34
34
+
"@atcute/cbor": ["@atcute/cbor@2.2.8", "", { "dependencies": { "@atcute/cid": "^2.2.6", "@atcute/multibase": "^1.1.6", "@atcute/uint8array": "^1.0.5" } }, "sha512-UzOAN9BuN6JCXgn0ryV8qZuRJUDrNqrbLd6EFM8jc6RYssjRyGRxNy6RZ1NU/07Hd8Tq/0pz8+nQiMu5Zai5uw=="],
35
35
+
36
36
+
"@atcute/cid": ["@atcute/cid@2.2.6", "", { "dependencies": { "@atcute/multibase": "^1.1.6", "@atcute/uint8array": "^1.0.5" } }, "sha512-bTAHHbJ24p+E//V4KCS4xdmd39o211jJswvqQOevj7vk+5IYcgDLx1ryZWZ1sEPOo9x875li/kj5gpKL14RDwQ=="],
37
37
+
38
38
+
"@atcute/client": ["@atcute/client@4.1.0", "", { "dependencies": { "@atcute/identity": "^1.1.3", "@atcute/lexicons": "^1.2.5" } }, "sha512-AYhSu3RSDA2VDkVGOmad320NRbUUUf5pCFWJcOzlk25YC/4kyzmMFfpzhf1jjjEcY+anNBXGGhav/kKB1evggQ=="],
39
39
+
40
40
+
"@atcute/crypto": ["@atcute/crypto@2.2.6", "", { "dependencies": { "@atcute/multibase": "^1.1.6", "@atcute/uint8array": "^1.0.5", "@noble/secp256k1": "^3.0.0" } }, "sha512-vkuexF+kmrKE1/Uqzub99Qi4QpnxA2jbu60E6PTgL4XypELQ6rb59MB/J1VbY2gs0kd3ET7+L3+NWpKD5nXyfA=="],
41
41
+
42
42
+
"@atcute/identity": ["@atcute/identity@1.1.3", "", { "dependencies": { "@atcute/lexicons": "^1.2.4", "@badrap/valita": "^0.4.6" } }, "sha512-oIqPoI8TwWeQxvcLmFEZLdN2XdWcaLVtlm8pNk0E72As9HNzzD9pwKPrLr3rmTLRIoULPPFmq9iFNsTeCIU9ng=="],
43
43
+
44
44
+
"@atcute/identity-resolver": ["@atcute/identity-resolver@1.1.4", "", { "dependencies": { "@atcute/lexicons": "^1.2.2", "@atcute/util-fetch": "^1.0.3", "@badrap/valita": "^0.4.6" }, "peerDependencies": { "@atcute/identity": "^1.0.0" } }, "sha512-/SVh8vf2cXFJenmBnGeYF2aY3WGQm3cJeew5NWTlkqoy3LvJ5wkvKq9PWu4Tv653VF40rPOp6LOdVr9Fa+q5rA=="],
45
45
+
46
46
+
"@atcute/lex-cli": ["@atcute/lex-cli@2.5.0", "", { "dependencies": { "@atcute/identity": "^1.1.3", "@atcute/identity-resolver": "^1.1.4", "@atcute/lexicon-doc": "^2.0.3", "@atcute/lexicon-resolver": "^0.1.4", "@atcute/lexicons": "^1.2.5", "@badrap/valita": "^0.4.6", "@optique/core": "^0.6.3", "@optique/run": "^0.6.3", "picocolors": "^1.1.1", "prettier": "^3.6.2" }, "bin": { "lex-cli": "cli.mjs" } }, "sha512-mIla9XeK9HJqFW0m/FaHI3+wIQlUL3PJYFpGmlXVwJISQVHASvWpU6gCHSYtAySZTrfVDv73fsVDBkpw9mnTjA=="],
47
47
+
48
48
+
"@atcute/lexicon-doc": ["@atcute/lexicon-doc@2.0.4", "", { "dependencies": { "@atcute/identity": "^1.1.3", "@atcute/lexicons": "^1.2.5", "@badrap/valita": "^0.4.6" } }, "sha512-YfwlYFoYiBvRIYG0I1zsINCTFugFtS8l67uT3nQ04zdKVflzdg8uUj8cNZYRNY1V7okoOPdikhR4kPFhYGyemw=="],
49
49
+
50
50
+
"@atcute/lexicon-resolver": ["@atcute/lexicon-resolver@0.1.5", "", { "dependencies": { "@atcute/crypto": "^2.2.6", "@atcute/lexicon-doc": "^2.0.4", "@atcute/lexicons": "^1.2.5", "@atcute/repo": "^0.1.0", "@atcute/util-fetch": "^1.0.4", "@badrap/valita": "^0.4.6" }, "peerDependencies": { "@atcute/identity": "^1.1.0", "@atcute/identity-resolver": "^1.1.3" } }, "sha512-0bx1/zdMQPuxvRcHW6ykAxRxktC2rEZLoAVSFoLSWDAA92Tf09F9QPK5wgXSF4MNODm1dvzMEdWSMIvlg8sr3A=="],
51
51
+
52
52
+
"@atcute/lexicons": ["@atcute/lexicons@1.2.5", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "esm-env": "^1.2.2" } }, "sha512-9yO9WdgxW8jZ7SbzUycH710z+JmsQ9W9n5S6i6eghYju32kkluFmgBeS47r8e8p2+Dv4DemS7o/3SUGsX9FR5Q=="],
53
53
+
54
54
+
"@atcute/mst": ["@atcute/mst@0.1.0", "", { "dependencies": { "@atcute/cbor": "^2.2.7", "@atcute/cid": "^2.2.6", "@atcute/uint8array": "^1.0.5" } }, "sha512-h+iDToKEnBpigk2DOHjSqY63vJtjYKUIztqu1CZ0P+I54wV2SrgoqAXAT1xrW6A1Iup8cjTv+U2H5WVG4KxPLw=="],
55
55
+
56
56
+
"@atcute/multibase": ["@atcute/multibase@1.1.6", "", { "dependencies": { "@atcute/uint8array": "^1.0.5" } }, "sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg=="],
57
57
+
58
58
+
"@atcute/oauth-browser-client": ["@atcute/oauth-browser-client@2.0.1", "", { "dependencies": { "@atcute/client": "^4.0.5", "@atcute/identity": "^1.1.1", "@atcute/identity-resolver": "^1.1.4", "@atcute/lexicons": "^1.2.2", "@atcute/multibase": "^1.1.6", "@atcute/uint8array": "^1.0.5", "nanoid": "^5.1.5" } }, "sha512-lG021GkeORG06zfFf4bH85egObjBEKHNgAWHvbtY/E2dX4wxo88hf370pJDx8acdnuUJLJ2VKPikJtZwo4Heeg=="],
59
59
+
60
60
+
"@atcute/repo": ["@atcute/repo@0.1.0", "", { "dependencies": { "@atcute/car": "^5.0.0", "@atcute/cbor": "^2.2.7", "@atcute/cid": "^2.2.6", "@atcute/crypto": "^2.2.5", "@atcute/lexicons": "^1.2.2", "@atcute/mst": "^0.1.0", "@atcute/uint8array": "^1.0.5" } }, "sha512-INiYAuma8dydBu7cqd2WVpcXh3mzhIepYBUqFWAK5MqMulPRLTRCc/9GW3G9pxYrOdlvLCVamG2Jf8XK0nuFEw=="],
61
61
+
62
62
+
"@atcute/uint8array": ["@atcute/uint8array@1.0.5", "", {}, "sha512-XLWWxoR2HNl2qU+FCr0rp1APwJXci7HnzbOQLxK55OaMNBXZ19+xNC5ii4QCsThsDxa4JS/JTzuiQLziITWf2Q=="],
63
63
+
64
64
+
"@atcute/util-fetch": ["@atcute/util-fetch@1.0.3", "", { "dependencies": { "@badrap/valita": "^0.4.6" } }, "sha512-f8zzTb/xlKIwv2OQ31DhShPUNCmIIleX6p7qIXwWwEUjX6x8skUtpdISSjnImq01LXpltGV5y8yhV4/Mlb7CRQ=="],
65
65
+
66
66
+
"@atcute/varint": ["@atcute/varint@1.0.3", "", {}, "sha512-fdvMPyBB+McDT+Ai5e9RwEbwYV4yjZ60S2Dn5PTjGqUyxvoCH1z42viuheDZRUDkmfQehXJTZ5az7dSozVNtog=="],
67
67
+
68
68
+
"@badrap/valita": ["@badrap/valita@0.4.6", "", {}, "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg=="],
69
69
+
70
70
+
"@emnapi/core": ["@emnapi/core@1.7.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" } }, "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg=="],
71
71
+
72
72
+
"@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="],
73
73
+
74
74
+
"@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="],
75
75
+
76
76
+
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="],
77
77
+
78
78
+
"@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="],
79
79
+
80
80
+
"@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
81
81
+
82
82
+
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
83
83
+
84
84
+
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="],
85
85
+
86
86
+
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.7", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" } }, "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw=="],
87
87
+
88
88
+
"@noble/secp256k1": ["@noble/secp256k1@3.0.0", "", {}, "sha512-NJBaR352KyIvj3t6sgT/+7xrNyF9Xk9QlLSIqUGVUYlsnDTAUqY8LOmwpcgEx4AMJXRITQ5XEVHD+mMaPfr3mg=="],
89
89
+
90
90
+
"@optique/core": ["@optique/core@0.6.3", "", {}, "sha512-Aw7naHPeZr+YThJRrfk+Ds3OuAd7HUD1chsGncay+6crmLyrraXh0s0xDuJ52kCfNPdCTKAW3MG0XLcuEIr8qQ=="],
91
91
+
92
92
+
"@optique/run": ["@optique/run@0.6.3", "", { "dependencies": { "@optique/core": "0.6.3" } }, "sha512-6zesLs4XLyFtG8s/JoG2VO/+plJVZhqbLK20yDm0hFEXrqcP+VCKTsoFAlWoWv4Us48V170SKH+8DZcxw8raJw=="],
93
93
+
94
94
+
"@oxc-project/runtime": ["@oxc-project/runtime@0.97.0", "", {}, "sha512-yH0zw7z+jEws4dZ4IUKoix5Lh3yhqIJWF9Dc8PWvhpo7U7O+lJrv7ZZL4BeRO0la8LBQFwcCewtLBnVV7hPe/w=="],
95
95
+
96
96
+
"@oxc-project/types": ["@oxc-project/types@0.97.0", "", {}, "sha512-lxmZK4xFrdvU0yZiDwgVQTCvh2gHWBJCBk5ALsrtsBWhs0uDIi+FTOnXRQeQfs304imdvTdaakT/lqwQ8hkOXQ=="],
97
97
+
98
98
+
"@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.0.0-beta.50", "", { "os": "android", "cpu": "arm64" }, "sha512-XlEkrOIHLyGT3avOgzfTFSjG+f+dZMw+/qd+Y3HLN86wlndrB/gSimrJCk4gOhr1XtRtEKfszpadI3Md4Z4/Ag=="],
99
99
+
100
100
+
"@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.0.0-beta.50", "", { "os": "darwin", "cpu": "arm64" }, "sha512-+JRqKJhoFlt5r9q+DecAGPLZ5PxeLva+wCMtAuoFMWPoZzgcYrr599KQ+Ix0jwll4B4HGP43avu9My8KtSOR+w=="],
101
101
+
102
102
+
"@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.0.0-beta.50", "", { "os": "darwin", "cpu": "x64" }, "sha512-fFXDjXnuX7/gQZQm/1FoivVtRcyAzdjSik7Eo+9iwPQ9EgtA5/nB2+jmbzaKtMGG3q+BnZbdKHCtOacmNrkIDA=="],
103
103
+
104
104
+
"@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.0.0-beta.50", "", { "os": "freebsd", "cpu": "x64" }, "sha512-F1b6vARy49tjmT/hbloplzgJS7GIvwWZqt+tAHEstCh0JIh9sa8FAMVqEmYxDviqKBaAI8iVvUREm/Kh/PD26Q=="],
105
105
+
106
106
+
"@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.50", "", { "os": "linux", "cpu": "arm" }, "sha512-U6cR76N8T8M6lHj7EZrQ3xunLPxSvYYxA8vJsBKZiFZkT8YV4kjgCO3KwMJL0NOjQCPGKyiXO07U+KmJzdPGRw=="],
107
107
+
108
108
+
"@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.0.0-beta.50", "", { "os": "linux", "cpu": "arm64" }, "sha512-ONgyjofCrrE3bnh5GZb8EINSFyR/hmwTzZ7oVuyUB170lboza1VMCnb8jgE6MsyyRgHYmN8Lb59i3NKGrxrYjw=="],
109
109
+
110
110
+
"@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.0.0-beta.50", "", { "os": "linux", "cpu": "arm64" }, "sha512-L0zRdH2oDPkmB+wvuTl+dJbXCsx62SkqcEqdM+79LOcB+PxbAxxjzHU14BuZIQdXcAVDzfpMfaHWzZuwhhBTcw=="],
111
111
+
112
112
+
"@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.0.0-beta.50", "", { "os": "linux", "cpu": "x64" }, "sha512-gyoI8o/TGpQd3OzkJnh1M2kxy1Bisg8qJ5Gci0sXm9yLFzEXIFdtc4EAzepxGvrT2ri99ar5rdsmNG0zP0SbIg=="],
113
113
+
114
114
+
"@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.0.0-beta.50", "", { "os": "linux", "cpu": "x64" }, "sha512-zti8A7M+xFDpKlghpcCAzyOi+e5nfUl3QhU023ce5NCgUxRG5zGP2GR9LTydQ1rnIPwZUVBWd4o7NjZDaQxaXA=="],
115
115
+
116
116
+
"@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.0.0-beta.50", "", { "os": "none", "cpu": "arm64" }, "sha512-eZUssog7qljrrRU9Mi0eqYEPm3Ch0UwB+qlWPMKSUXHNqhm3TvDZarJQdTevGEfu3EHAXJvBIe0YFYr0TPVaMA=="],
117
117
+
118
118
+
"@rolldown/binding-wasm32-wasi": ["@rolldown/binding-wasm32-wasi@1.0.0-beta.50", "", { "dependencies": { "@napi-rs/wasm-runtime": "^1.0.7" }, "cpu": "none" }, "sha512-nmCN0nIdeUnmgeDXiQ+2HU6FT162o+rxnF7WMkBm4M5Ds8qTU7Dzv2Wrf22bo4ftnlrb2hKK6FSwAJSAe2FWLg=="],
119
119
+
120
120
+
"@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.0.0-beta.50", "", { "os": "win32", "cpu": "arm64" }, "sha512-7kcNLi7Ua59JTTLvbe1dYb028QEPaJPJQHqkmSZ5q3tJueUeb6yjRtx8mw4uIqgWZcnQHAR3PrLN4XRJxvgIkA=="],
121
121
+
122
122
+
"@rolldown/binding-win32-ia32-msvc": ["@rolldown/binding-win32-ia32-msvc@1.0.0-beta.50", "", { "os": "win32", "cpu": "ia32" }, "sha512-lL70VTNvSCdSZkDPPVMwWn/M2yQiYvSoXw9hTLgdIWdUfC3g72UaruezusR6ceRuwHCY1Ayu2LtKqXkBO5LIwg=="],
123
123
+
124
124
+
"@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.0.0-beta.50", "", { "os": "win32", "cpu": "x64" }, "sha512-4qU4x5DXWB4JPjyTne/wBNPqkbQU8J45bl21geERBKtEittleonioACBL1R0PsBu0Aq21SwMK5a9zdBkWSlQtQ=="],
125
125
+
126
126
+
"@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.50", "", {}, "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA=="],
127
127
+
128
128
+
"@standard-schema/spec": ["@standard-schema/spec@1.0.0", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="],
129
129
+
130
130
+
"@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.7", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-znp1A/Y1Jj4l/Zy7PX5DZKBE0ZNY+5QBngiE21NJkfSTyzzC5iKNWOtwFXKtIrn7MXEFBck4jD95iBNkGjK92Q=="],
131
131
+
132
132
+
"@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@6.2.1", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "debug": "^4.4.1", "deepmerge": "^4.3.1", "magic-string": "^0.30.17", "vitefu": "^1.1.1" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ=="],
133
133
+
134
134
+
"@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@5.0.1", "", { "dependencies": { "debug": "^4.4.1" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA=="],
135
135
+
136
136
+
"@tsconfig/svelte": ["@tsconfig/svelte@5.0.6", "", {}, "sha512-yGxYL0I9eETH1/DR9qVJey4DAsCdeau4a9wYPKuXfEhm8lFO8wg+LLYJjIpAm6Fw7HSlhepPhYPDop75485yWQ=="],
137
137
+
138
138
+
"@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="],
139
139
+
140
140
+
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
141
141
+
142
142
+
"@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="],
143
143
+
144
144
+
"acorn": ["acorn@8.15.0", "", { "bin": "bin/acorn" }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="],
145
145
+
146
146
+
"aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="],
147
147
+
148
148
+
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
149
149
+
150
150
+
"chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
151
151
+
152
152
+
"clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
153
153
+
154
154
+
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
155
155
+
156
156
+
"deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="],
157
157
+
158
158
+
"detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
159
159
+
160
160
+
"devalue": ["devalue@5.5.0", "", {}, "sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w=="],
161
161
+
162
162
+
"esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="],
163
163
+
164
164
+
"esrap": ["esrap@2.2.0", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-WBmtxe7R9C5mvL4n2le8nMUe4mD5V9oiK2vJpQ9I3y20ENPUomPcphBXE8D1x/Bm84oN1V+lOfgXxtqmxTp3Xg=="],
165
165
+
166
166
+
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" } }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
167
167
+
168
168
+
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
169
169
+
170
170
+
"is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="],
171
171
+
172
172
+
"lightningcss": ["lightningcss@1.30.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="],
173
173
+
174
174
+
"lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="],
175
175
+
176
176
+
"lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA=="],
177
177
+
178
178
+
"lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ=="],
179
179
+
180
180
+
"lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA=="],
181
181
+
182
182
+
"lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.2", "", { "os": "linux", "cpu": "arm" }, "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA=="],
183
183
+
184
184
+
"lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A=="],
185
185
+
186
186
+
"lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA=="],
187
187
+
188
188
+
"lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w=="],
189
189
+
190
190
+
"lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA=="],
191
191
+
192
192
+
"lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ=="],
193
193
+
194
194
+
"lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="],
195
195
+
196
196
+
"locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="],
197
197
+
198
198
+
"magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
199
199
+
200
200
+
"mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="],
201
201
+
202
202
+
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
203
203
+
204
204
+
"nanoid": ["nanoid@5.1.6", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg=="],
205
205
+
206
206
+
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
207
207
+
208
208
+
"picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
209
209
+
210
210
+
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
211
211
+
212
212
+
"prettier": ["prettier@3.7.1", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-RWKXE4qB3u5Z6yz7omJkjWwmTfLdcbv44jUVHC5NpfXwFGzvpQM798FGv/6WNK879tc+Cn0AAyherCl1KjbyZQ=="],
213
213
+
214
214
+
"readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
215
215
+
216
216
+
"rolldown": ["rolldown@1.0.0-beta.50", "", { "dependencies": { "@oxc-project/types": "=0.97.0", "@rolldown/pluginutils": "1.0.0-beta.50" }, "optionalDependencies": { "@rolldown/binding-android-arm64": "1.0.0-beta.50", "@rolldown/binding-darwin-arm64": "1.0.0-beta.50", "@rolldown/binding-darwin-x64": "1.0.0-beta.50", "@rolldown/binding-freebsd-x64": "1.0.0-beta.50", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.50", "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.50", "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.50", "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.50", "@rolldown/binding-linux-x64-musl": "1.0.0-beta.50", "@rolldown/binding-openharmony-arm64": "1.0.0-beta.50", "@rolldown/binding-wasm32-wasi": "1.0.0-beta.50", "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.50", "@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.50", "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.50" }, "bin": "bin/cli.mjs" }, "sha512-JFULvCNl/anKn99eKjOSEubi0lLmNqQDAjyEMME2T4CwezUDL0i6t1O9xZsu2OMehPnV2caNefWpGF+8TnzB6A=="],
217
217
+
218
218
+
"sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="],
219
219
+
220
220
+
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
221
221
+
222
222
+
"svelte": ["svelte@5.45.2", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.5.0", "esm-env": "^1.2.1", "esrap": "^2.2.0", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-yyXdW2u3H0H/zxxWoGwJoQlRgaSJLp+Vhktv12iRw2WRDlKqUPT54Fi0K/PkXqrdkcQ98aBazpy0AH4BCBVfoA=="],
223
223
+
224
224
+
"svelte-check": ["svelte-check@4.3.4", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": "bin/svelte-check" }, "sha512-DVWvxhBrDsd+0hHWKfjP99lsSXASeOhHJYyuKOFYJcP7ThfSCKgjVarE8XfuMWpS5JV3AlDf+iK1YGGo2TACdw=="],
225
225
+
226
226
+
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
227
227
+
228
228
+
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
229
229
+
230
230
+
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
231
231
+
232
232
+
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
233
233
+
234
234
+
"vite": ["rolldown-vite@7.2.5", "", { "dependencies": { "@oxc-project/runtime": "0.97.0", "fdir": "^6.5.0", "lightningcss": "^1.30.2", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rolldown": "1.0.0-beta.50", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "esbuild": "^0.25.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-u09tdk/huMiN8xwoiBbig197jKdCamQTtOruSalOzbqGje3jdHiV0njQlAW0YvzoahkirFePNQ4RYlfnRQpXZA=="],
235
235
+
236
236
+
"vitefu": ["vitefu@1.1.1", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" } }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="],
237
237
+
238
238
+
"zimmerframe": ["zimmerframe@1.1.4", "", {}, "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ=="],
239
239
+
240
240
+
"@atcute/lexicon-resolver/@atcute/util-fetch": ["@atcute/util-fetch@1.0.4", "", { "dependencies": { "@badrap/valita": "^0.4.6" } }, "sha512-sIU9Qk0dE8PLEXSfhy+gIJV+HpiiknMytCI2SqLlqd0vgZUtEKI/EQfP+23LHWvP+CLCzVDOa6cpH045OlmNBg=="],
241
241
+
242
242
+
"postcss/nanoid": ["nanoid@3.3.11", "", { "bin": "bin/nanoid.cjs" }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
243
243
+
}
244
244
+
}
···
1
1
+
<!doctype html>
2
2
+
<html lang="en">
3
3
+
<head>
4
4
+
<meta charset="UTF-8" />
5
5
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
6
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
+
<title>cutebook</title>
8
8
+
</head>
9
9
+
<body>
10
10
+
<div id="app"></div>
11
11
+
<script type="module" src="/src/main.ts"></script>
12
12
+
</body>
13
13
+
</html>
···
1
1
+
{
2
2
+
"client_id": "https://guestbook.nkp.pet/client-metadata.json",
3
3
+
"client_name": "guestbook",
4
4
+
"client_uri": "https://guestbook.nkp.pet",
5
5
+
"redirect_uris": ["https://guestbook.nkp.pet/"],
6
6
+
"scope": "atproto transition:generic",
7
7
+
"grant_types": ["authorization_code", "refresh_token"],
8
8
+
"response_types": ["code"],
9
9
+
"token_endpoint_auth_method": "none",
10
10
+
"application_type": "web",
11
11
+
"dpop_bound_access_tokens": true
12
12
+
}
···
1
1
+
<script lang="ts">
2
2
+
import type { GuestbookDisplayElement } from './components/guestbook-display';
3
3
+
4
4
+
function handleSignCreated(event: CustomEvent) {
5
5
+
console.log('New signature created:', event.detail);
6
6
+
// refresh the display
7
7
+
const display = document.querySelector('guestbook-display') as GuestbookDisplayElement;
8
8
+
if (display) {
9
9
+
display.refresh();
10
10
+
}
11
11
+
}
12
12
+
</script>
13
13
+
14
14
+
<main>
15
15
+
<header>
16
16
+
<h1>Guestbook</h1>
17
17
+
<p class="subtitle">Leave your thoughts and memories. Thanks for visiting!</p>
18
18
+
</header>
19
19
+
20
20
+
<div class="components">
21
21
+
<guestbook-sign
22
22
+
did="did:plc:ttdrpj45ibqunmfhdsb4zdwq"
23
23
+
onsign-created={handleSignCreated}>
24
24
+
</guestbook-sign>
25
25
+
26
26
+
<guestbook-display
27
27
+
did="did:plc:ttdrpj45ibqunmfhdsb4zdwq"
28
28
+
limit="50">
29
29
+
</guestbook-display>
30
30
+
</div>
31
31
+
</main>
32
32
+
33
33
+
<style>
34
34
+
main {
35
35
+
max-width: 1200px;
36
36
+
margin: 0 auto;
37
37
+
padding: 48px 24px;
38
38
+
}
39
39
+
40
40
+
header {
41
41
+
margin-bottom: 48px;
42
42
+
}
43
43
+
44
44
+
h1 {
45
45
+
font-size: 48px;
46
46
+
font-weight: 700;
47
47
+
margin: 0 0 12px 0;
48
48
+
color: #000;
49
49
+
}
50
50
+
51
51
+
.subtitle {
52
52
+
font-size: 18px;
53
53
+
color: #6b7280;
54
54
+
margin: 0;
55
55
+
}
56
56
+
57
57
+
.components {
58
58
+
display: grid;
59
59
+
grid-template-columns: 1fr 1fr;
60
60
+
gap: 48px;
61
61
+
align-items: start;
62
62
+
}
63
63
+
64
64
+
@media (max-width: 768px) {
65
65
+
.components {
66
66
+
grid-template-columns: 1fr;
67
67
+
}
68
68
+
}
69
69
+
</style>
···
1
1
+
* {
2
2
+
box-sizing: border-box;
3
3
+
margin: 0;
4
4
+
padding: 0;
5
5
+
}
6
6
+
7
7
+
body {
8
8
+
margin: 0;
9
9
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
10
10
+
-webkit-font-smoothing: antialiased;
11
11
+
-moz-osx-font-smoothing: grayscale;
12
12
+
background-color: #f9fafb;
13
13
+
color: #000;
14
14
+
line-height: 1.5;
15
15
+
}
16
16
+
17
17
+
#app {
18
18
+
width: 100%;
19
19
+
}
···
1
1
+
import { mount } from 'svelte'
2
2
+
import './app.css'
3
3
+
import App from './App.svelte'
4
4
+
5
5
+
// Import and configure guestbook components
6
6
+
import { configureGuestbook } from '../../lib/register';
7
7
+
8
8
+
// Configure with demo OAuth settings
9
9
+
configureGuestbook({
10
10
+
oauth: {
11
11
+
clientId: import.meta.env.VITE_OAUTH_CLIENT_ID,
12
12
+
redirectUri: import.meta.env.VITE_OAUTH_REDIRECT_URL,
13
13
+
scope: import.meta.env.VITE_OAUTH_SCOPE,
14
14
+
},
15
15
+
});
16
16
+
17
17
+
const app = mount(App, {
18
18
+
target: document.getElementById('app')!,
19
19
+
})
20
20
+
21
21
+
export default app
···
1
1
+
/// <reference types="vite/client" />
2
2
+
3
3
+
interface ImportMetaEnv {
4
4
+
readonly VITE_DEV_SERVER_PORT?: string;
5
5
+
readonly VITE_CLIENT_URI: string;
6
6
+
readonly VITE_OAUTH_CLIENT_ID: string;
7
7
+
readonly VITE_OAUTH_REDIRECT_URL: string;
8
8
+
readonly VITE_OAUTH_SCOPE: string;
9
9
+
}
10
10
+
11
11
+
interface ImportMeta {
12
12
+
readonly env: ImportMetaEnv;
13
13
+
}
14
14
+
···
1
1
+
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
2
2
+
3
3
+
/** @type {import("@sveltejs/vite-plugin-svelte").SvelteConfig} */
4
4
+
export default {
5
5
+
// Consult https://svelte.dev/docs#compile-time-svelte-preprocess
6
6
+
// for more information about preprocessors
7
7
+
preprocess: vitePreprocess(),
8
8
+
}
···
1
1
+
{
2
2
+
"compilerOptions": {
3
3
+
"target": "ES2020",
4
4
+
"module": "ESNext",
5
5
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
6
6
+
"moduleResolution": "bundler",
7
7
+
"strict": true,
8
8
+
"noEmit": true,
9
9
+
"isolatedModules": true,
10
10
+
"esModuleInterop": true,
11
11
+
"skipLibCheck": true
12
12
+
},
13
13
+
"include": ["src/**/*.ts", "src/**/*.svelte", "../lib/**/*.ts"]
14
14
+
}
15
15
+
···
1
1
+
import { defineConfig } from 'vite';
2
2
+
import { svelte } from '@sveltejs/vite-plugin-svelte';
3
3
+
import metadata from './public/client-metadata.json';
4
4
+
5
5
+
const SERVER_HOST = '127.0.0.1';
6
6
+
const SERVER_PORT = 5173;
7
7
+
8
8
+
export default defineConfig({
9
9
+
plugins: [
10
10
+
svelte(),
11
11
+
{
12
12
+
name: 'oauth',
13
13
+
config(_conf, { command }) {
14
14
+
if (command === 'build') {
15
15
+
process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;
16
16
+
process.env.VITE_OAUTH_REDIRECT_URL = metadata.redirect_uris[0];
17
17
+
} else {
18
18
+
const redirectUri = ((): string => {
19
19
+
const url = new URL(metadata.redirect_uris[0]);
20
20
+
return `http://${SERVER_HOST}:${SERVER_PORT}${url.pathname}`;
21
21
+
})();
22
22
+
23
23
+
const clientId =
24
24
+
`http://localhost` +
25
25
+
`?redirect_uri=${encodeURIComponent(redirectUri)}` +
26
26
+
`&scope=${encodeURIComponent(metadata.scope)}`;
27
27
+
28
28
+
process.env.VITE_DEV_SERVER_PORT = '' + SERVER_PORT;
29
29
+
process.env.VITE_OAUTH_CLIENT_ID = clientId;
30
30
+
process.env.VITE_OAUTH_REDIRECT_URL = redirectUri;
31
31
+
}
32
32
+
33
33
+
process.env.VITE_CLIENT_URI = metadata.client_uri;
34
34
+
process.env.VITE_OAUTH_SCOPE = metadata.scope;
35
35
+
},
36
36
+
},
37
37
+
],
38
38
+
server: {
39
39
+
host: SERVER_HOST,
40
40
+
port: SERVER_PORT,
41
41
+
},
42
42
+
});
43
43
+
···
1
1
+
import { defineLexiconConfig } from '@atcute/lex-cli';
2
2
+
3
3
+
export default defineLexiconConfig({
4
4
+
files: ['lexicons/**/*.ts'],
5
5
+
outdir: 'src/lexicons/',
6
6
+
export: {
7
7
+
outdir: 'lexicons/'
8
8
+
},
9
9
+
});
···
1
1
+
{
2
2
+
"defs": {
3
3
+
"main": {
4
4
+
"description": "a sign in the guestbook",
5
5
+
"key": "tid",
6
6
+
"record": {
7
7
+
"properties": {
8
8
+
"subject": {
9
9
+
"type": "string",
10
10
+
"format": "at-identifier"
11
11
+
},
12
12
+
"createdAt": {
13
13
+
"type": "string",
14
14
+
"format": "datetime"
15
15
+
},
16
16
+
"message": {
17
17
+
"type": "string",
18
18
+
"maxLength": 100
19
19
+
}
20
20
+
},
21
21
+
"required": ["subject", "createdAt", "message"],
22
22
+
"type": "object"
23
23
+
},
24
24
+
"type": "record"
25
25
+
}
26
26
+
},
27
27
+
"id": "pet.nkp.guestbook.sign",
28
28
+
"lexicon": 1
29
29
+
}
···
1
1
+
import { document, object, record, required, string } from '@atcute/lexicon-doc/builder';
2
2
+
3
3
+
export default document({
4
4
+
id: 'pet.nkp.guestbook.sign',
5
5
+
defs: {
6
6
+
main: record({
7
7
+
key: 'tid',
8
8
+
description: 'a sign in the guestbook',
9
9
+
record: object({
10
10
+
properties: {
11
11
+
subject: required(string({ format: 'at-identifier' })),
12
12
+
createdAt: required(string({ format: 'datetime' })),
13
13
+
message: required(string({ maxLength: 100 })),
14
14
+
},
15
15
+
}),
16
16
+
}),
17
17
+
},
18
18
+
});
···
1
1
+
import {
2
2
+
configureOAuth,
3
3
+
defaultIdentityResolver,
4
4
+
} from '@atcute/oauth-browser-client';
5
5
+
import {
6
6
+
CompositeDidDocumentResolver,
7
7
+
PlcDidDocumentResolver,
8
8
+
WebDidDocumentResolver,
9
9
+
XrpcHandleResolver,
10
10
+
} from '@atcute/identity-resolver';
11
11
+
12
12
+
export interface GuestbookConfig {
13
13
+
oauth: {
14
14
+
clientId: string;
15
15
+
redirectUri: string;
16
16
+
scope: string;
17
17
+
};
18
18
+
services?: {
19
19
+
handleResolver?: string;
20
20
+
};
21
21
+
}
22
22
+
23
23
+
let configured = false;
24
24
+
let storedConfig: GuestbookConfig | null = null;
25
25
+
26
26
+
/**
27
27
+
* Configure the guestbook components with OAuth settings.
28
28
+
* Must be called before using <guestbook-sign>.
29
29
+
*/
30
30
+
export function configureGuestbook(config: GuestbookConfig) {
31
31
+
if (configured) {
32
32
+
console.warn('Guestbook already configured');
33
33
+
return;
34
34
+
}
35
35
+
36
36
+
storedConfig = config;
37
37
+
38
38
+
configureOAuth({
39
39
+
metadata: {
40
40
+
client_id: config.oauth.clientId,
41
41
+
redirect_uri: config.oauth.redirectUri,
42
42
+
},
43
43
+
identityResolver: defaultIdentityResolver({
44
44
+
handleResolver: new XrpcHandleResolver({
45
45
+
serviceUrl: config.services?.handleResolver ?? 'https://slingshot.wisp.place'
46
46
+
}),
47
47
+
didDocumentResolver: new CompositeDidDocumentResolver({
48
48
+
methods: {
49
49
+
plc: new PlcDidDocumentResolver(),
50
50
+
web: new WebDidDocumentResolver(),
51
51
+
},
52
52
+
}),
53
53
+
}),
54
54
+
});
55
55
+
56
56
+
configured = true;
57
57
+
}
58
58
+
59
59
+
/**
60
60
+
* Check if guestbook has been configured
61
61
+
*/
62
62
+
export function isConfigured(): boolean {
63
63
+
return configured;
64
64
+
}
65
65
+
66
66
+
/**
67
67
+
* Get the stored config
68
68
+
*/
69
69
+
export function getConfig(): GuestbookConfig | null {
70
70
+
return storedConfig;
71
71
+
}
72
72
+
···
1
1
+
// no imports needed for this component - uses native fetch
2
2
+
3
3
+
/**
4
4
+
* represents a guestbook signature from constellation
5
5
+
*/
6
6
+
export interface GuestbookSignature {
7
7
+
uri: string;
8
8
+
cid: string;
9
9
+
value: {
10
10
+
$type: 'pet.nkp.guestbook.sign';
11
11
+
subject: string; // DID (at-identifier format)
12
12
+
message: string;
13
13
+
createdAt: string;
14
14
+
};
15
15
+
author: string;
16
16
+
authorHandle?: string;
17
17
+
}
18
18
+
19
19
+
/**
20
20
+
* constellation API response for backlinks
21
21
+
*/
22
22
+
interface ConstellationBacklinksResponse {
23
23
+
total: number;
24
24
+
records: Array<{
25
25
+
did: string;
26
26
+
collection: string;
27
27
+
rkey: string;
28
28
+
}>;
29
29
+
cursor?: string;
30
30
+
}
31
31
+
32
32
+
/**
33
33
+
* Web component for displaying guestbook signatures.
34
34
+
*
35
35
+
* Usage:
36
36
+
* <guestbook-display
37
37
+
* did="did:web:nekomimi.pet"
38
38
+
* limit="50">
39
39
+
* </guestbook-display>
40
40
+
*/
41
41
+
export class GuestbookDisplayElement extends HTMLElement {
42
42
+
private signatures: GuestbookSignature[] = [];
43
43
+
private loading = false;
44
44
+
private error: string | null = null;
45
45
+
46
46
+
static get observedAttributes() {
47
47
+
return ['did', 'limit'];
48
48
+
}
49
49
+
50
50
+
constructor() {
51
51
+
super();
52
52
+
this.attachShadow({ mode: 'open' });
53
53
+
}
54
54
+
55
55
+
connectedCallback() {
56
56
+
this.render();
57
57
+
this.fetchSignatures();
58
58
+
}
59
59
+
60
60
+
attributeChangedCallback(name: string, oldValue: string, newValue: string) {
61
61
+
if (oldValue !== newValue && (name === 'did' || name === 'limit')) {
62
62
+
this.fetchSignatures();
63
63
+
}
64
64
+
}
65
65
+
66
66
+
private render() {
67
67
+
if (!this.shadowRoot) {
68
68
+
return;
69
69
+
}
70
70
+
71
71
+
this.shadowRoot.innerHTML = `
72
72
+
<style>
73
73
+
* {
74
74
+
box-sizing: border-box;
75
75
+
margin: 0;
76
76
+
padding: 0;
77
77
+
}
78
78
+
79
79
+
:host {
80
80
+
display: block;
81
81
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
82
82
+
-webkit-font-smoothing: antialiased;
83
83
+
-moz-osx-font-smoothing: grayscale;
84
84
+
}
85
85
+
86
86
+
.guestbook-display {
87
87
+
background: #f9fafb;
88
88
+
padding: 0;
89
89
+
width: 100%;
90
90
+
}
91
91
+
92
92
+
h2 {
93
93
+
margin: 0 0 24px 0;
94
94
+
font-size: 11px;
95
95
+
font-weight: 700;
96
96
+
color: #000;
97
97
+
text-transform: uppercase;
98
98
+
letter-spacing: 0.05em;
99
99
+
}
100
100
+
101
101
+
.signatures-list {
102
102
+
display: flex;
103
103
+
flex-direction: column;
104
104
+
gap: 12px;
105
105
+
}
106
106
+
107
107
+
.signature-card {
108
108
+
background: white;
109
109
+
border: 1px solid #e5e7eb;
110
110
+
border-radius: 6px;
111
111
+
padding: 16px;
112
112
+
transition: background-color 0.2s;
113
113
+
}
114
114
+
115
115
+
.signature-card:hover {
116
116
+
background: rgba(255, 255, 255, 0.5);
117
117
+
}
118
118
+
119
119
+
.signature-header {
120
120
+
display: flex;
121
121
+
justify-content: space-between;
122
122
+
align-items: baseline;
123
123
+
margin-bottom: 8px;
124
124
+
gap: 12px;
125
125
+
}
126
126
+
127
127
+
.author {
128
128
+
font-weight: 500;
129
129
+
color: #000;
130
130
+
font-size: 14px;
131
131
+
word-break: break-all;
132
132
+
}
133
133
+
134
134
+
.author a {
135
135
+
color: #000;
136
136
+
text-decoration: none;
137
137
+
}
138
138
+
139
139
+
.author a:hover {
140
140
+
text-decoration: underline;
141
141
+
}
142
142
+
143
143
+
.timestamp {
144
144
+
font-size: 12px;
145
145
+
color: #6b7280;
146
146
+
white-space: nowrap;
147
147
+
}
148
148
+
149
149
+
.message {
150
150
+
font-size: 14px;
151
151
+
line-height: 1.5;
152
152
+
color: #000;
153
153
+
word-wrap: break-word;
154
154
+
}
155
155
+
156
156
+
.loading {
157
157
+
text-align: center;
158
158
+
padding: 32px;
159
159
+
color: #9ca3af;
160
160
+
}
161
161
+
162
162
+
.spinner {
163
163
+
display: inline-block;
164
164
+
width: 20px;
165
165
+
height: 20px;
166
166
+
border: 3px solid #e5e7eb;
167
167
+
border-top-color: #6b7280;
168
168
+
border-radius: 50%;
169
169
+
animation: spin 0.8s linear infinite;
170
170
+
}
171
171
+
172
172
+
@keyframes spin {
173
173
+
to { transform: rotate(360deg); }
174
174
+
}
175
175
+
176
176
+
.error {
177
177
+
text-align: center;
178
178
+
padding: 32px;
179
179
+
color: #dc2626;
180
180
+
background: #fef2f2;
181
181
+
border-radius: 8px;
182
182
+
border: 1px solid #fecaca;
183
183
+
}
184
184
+
185
185
+
.empty {
186
186
+
text-align: center;
187
187
+
padding: 48px 24px;
188
188
+
color: #9ca3af;
189
189
+
font-size: 15px;
190
190
+
}
191
191
+
192
192
+
.empty-icon {
193
193
+
font-size: 48px;
194
194
+
margin-bottom: 16px;
195
195
+
opacity: 0.5;
196
196
+
}
197
197
+
198
198
+
.signature-count {
199
199
+
font-size: 14px;
200
200
+
color: #536471;
201
201
+
margin-bottom: 16px;
202
202
+
text-align: center;
203
203
+
}
204
204
+
</style>
205
205
+
206
206
+
<div class="guestbook-display">
207
207
+
<h2>RECENT ENTRIES</h2>
208
208
+
<div id="content"></div>
209
209
+
</div>
210
210
+
`;
211
211
+
212
212
+
this.updateContent();
213
213
+
}
214
214
+
215
215
+
private updateContent() {
216
216
+
const contentDiv = this.shadowRoot?.querySelector('#content');
217
217
+
if (!contentDiv) {
218
218
+
return;
219
219
+
}
220
220
+
221
221
+
if (this.loading) {
222
222
+
contentDiv.innerHTML = `
223
223
+
<div class="loading">
224
224
+
<div class="spinner"></div>
225
225
+
<p>Loading signatures...</p>
226
226
+
</div>
227
227
+
`;
228
228
+
return;
229
229
+
}
230
230
+
231
231
+
if (this.error) {
232
232
+
contentDiv.innerHTML = `
233
233
+
<div class="error">
234
234
+
<p><strong>Error:</strong> ${this.error}</p>
235
235
+
</div>
236
236
+
`;
237
237
+
return;
238
238
+
}
239
239
+
240
240
+
if (this.signatures.length === 0) {
241
241
+
contentDiv.innerHTML = `
242
242
+
<div class="empty">
243
243
+
<div class="empty-icon">✍️</div>
244
244
+
<p>No signatures yet. Be the first to sign!</p>
245
245
+
</div>
246
246
+
`;
247
247
+
return;
248
248
+
}
249
249
+
250
250
+
// render signatures
251
251
+
const signaturesHtml = this.signatures
252
252
+
.map((sig) => this.renderSignature(sig))
253
253
+
.join('');
254
254
+
255
255
+
contentDiv.innerHTML = `
256
256
+
<div class="signature-count">
257
257
+
${this.signatures.length} signature${this.signatures.length !== 1 ? 's' : ''}
258
258
+
</div>
259
259
+
<div class="signatures-list">
260
260
+
${signaturesHtml}
261
261
+
</div>
262
262
+
`;
263
263
+
}
264
264
+
265
265
+
private renderSignature(sig: GuestbookSignature): string {
266
266
+
const timestamp = this.formatTimestamp(sig.value.createdAt);
267
267
+
const authorIdentifier = sig.authorHandle || sig.author;
268
268
+
const authorLink = `https://bsky.app/profile/${sig.authorHandle || sig.author}`;
269
269
+
const displayName = sig.authorHandle || this.shortenDid(sig.author);
270
270
+
271
271
+
return `
272
272
+
<div class="signature-card">
273
273
+
<div class="signature-header">
274
274
+
<div class="author">
275
275
+
<a href="${authorLink}" target="_blank" rel="noopener noreferrer">
276
276
+
${this.escapeHtml(displayName)}
277
277
+
</a>
278
278
+
</div>
279
279
+
<div class="timestamp">${timestamp}</div>
280
280
+
</div>
281
281
+
<div class="message">${this.escapeHtml(sig.value.message)}</div>
282
282
+
</div>
283
283
+
`;
284
284
+
}
285
285
+
286
286
+
private async fetchSignatures() {
287
287
+
const did = this.getAttribute('did');
288
288
+
if (!did) {
289
289
+
this.error = 'Missing did attribute';
290
290
+
this.render();
291
291
+
return;
292
292
+
}
293
293
+
294
294
+
// subject is just the DID (at-identifier format)
295
295
+
const subject = did;
296
296
+
297
297
+
const limit = parseInt(this.getAttribute('limit') || '50', 10);
298
298
+
299
299
+
this.loading = true;
300
300
+
this.error = null;
301
301
+
this.updateContent();
302
302
+
303
303
+
try {
304
304
+
// query constellation for backlinks
305
305
+
// source format: collection:field.path
306
306
+
// constellation is not in atproto schemas, so we use a direct fetch
307
307
+
const url = new URL('/xrpc/blue.microcosm.links.getBacklinks', 'https://constellation.microcosm.blue');
308
308
+
url.searchParams.set('subject', subject);
309
309
+
url.searchParams.set('source', 'pet.nkp.guestbook.sign:subject');
310
310
+
url.searchParams.set('limit', limit.toString());
311
311
+
312
312
+
const response = await fetch(url.toString());
313
313
+
if (!response.ok) {
314
314
+
throw new Error('Failed to fetch signatures from Constellation');
315
315
+
}
316
316
+
317
317
+
const data: ConstellationBacklinksResponse = await response.json();
318
318
+
319
319
+
console.log('Constellation response:', data);
320
320
+
321
321
+
// fetch actual records
322
322
+
if (!data.records || !Array.isArray(data.records)) {
323
323
+
console.warn('No records found in response');
324
324
+
this.signatures = [];
325
325
+
} else {
326
326
+
// fetch each record from the repository
327
327
+
const signatures: GuestbookSignature[] = [];
328
328
+
329
329
+
for (const record of data.records) {
330
330
+
try {
331
331
+
const recordUrl = new URL('/xrpc/com.atproto.repo.getRecord', 'https://slingshot.wisp.place');
332
332
+
recordUrl.searchParams.set('repo', record.did);
333
333
+
recordUrl.searchParams.set('collection', record.collection);
334
334
+
recordUrl.searchParams.set('rkey', record.rkey);
335
335
+
336
336
+
const recordResponse = await fetch(recordUrl.toString());
337
337
+
if (!recordResponse.ok) {
338
338
+
console.warn(`Failed to fetch record ${record.did}/${record.collection}/${record.rkey}`);
339
339
+
continue;
340
340
+
}
341
341
+
342
342
+
const recordData = await recordResponse.json();
343
343
+
344
344
+
// validate the record
345
345
+
if (
346
346
+
recordData.value &&
347
347
+
recordData.value.$type === 'pet.nkp.guestbook.sign' &&
348
348
+
typeof recordData.value.message === 'string' &&
349
349
+
typeof recordData.value.createdAt === 'string'
350
350
+
) {
351
351
+
// Fetch the handle for this author
352
352
+
let authorHandle: string | undefined;
353
353
+
try {
354
354
+
const profileResponse = await fetch(
355
355
+
`https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=${record.did}`
356
356
+
);
357
357
+
if (profileResponse.ok) {
358
358
+
const profileData = await profileResponse.json();
359
359
+
authorHandle = profileData.handle;
360
360
+
}
361
361
+
} catch (err) {
362
362
+
console.warn(`Failed to fetch handle for ${record.did}:`, err);
363
363
+
}
364
364
+
365
365
+
signatures.push({
366
366
+
uri: recordData.uri,
367
367
+
cid: recordData.cid,
368
368
+
value: recordData.value,
369
369
+
author: record.did,
370
370
+
authorHandle: authorHandle,
371
371
+
});
372
372
+
}
373
373
+
} catch (err) {
374
374
+
console.warn(`Error fetching record ${record.did}/${record.collection}/${record.rkey}:`, err);
375
375
+
}
376
376
+
}
377
377
+
378
378
+
// sort by creation time, newest first
379
379
+
this.signatures = signatures.sort((a, b) => {
380
380
+
return new Date(b.value.createdAt).getTime() - new Date(a.value.createdAt).getTime();
381
381
+
});
382
382
+
}
383
383
+
384
384
+
this.loading = false;
385
385
+
this.updateContent();
386
386
+
387
387
+
} catch (error) {
388
388
+
console.error('Error fetching signatures:', error);
389
389
+
this.error = error instanceof Error ? error.message : 'Unknown error occurred';
390
390
+
this.loading = false;
391
391
+
this.updateContent();
392
392
+
}
393
393
+
}
394
394
+
395
395
+
private formatTimestamp(isoString: string): string {
396
396
+
const date = new Date(isoString);
397
397
+
// Format as "Nov 24, 2024"
398
398
+
return date.toLocaleDateString('en-US', {
399
399
+
month: 'short',
400
400
+
day: 'numeric',
401
401
+
year: 'numeric',
402
402
+
});
403
403
+
}
404
404
+
405
405
+
private shortenDid(did: string): string {
406
406
+
if (did.startsWith('did:plc:')) {
407
407
+
return `${did.slice(0, 16)}...${did.slice(-4)}`;
408
408
+
}
409
409
+
return did;
410
410
+
}
411
411
+
412
412
+
private escapeHtml(text: string): string {
413
413
+
const div = document.createElement('div');
414
414
+
div.textContent = text;
415
415
+
return div.innerHTML;
416
416
+
}
417
417
+
418
418
+
/**
419
419
+
* refresh signatures from the API
420
420
+
*/
421
421
+
refresh() {
422
422
+
this.fetchSignatures();
423
423
+
}
424
424
+
}
425
425
+
···
1
1
+
import { Client } from '@atcute/client';
2
2
+
import type {} from '@atcute/atproto';
3
3
+
import {
4
4
+
createAuthorizationUrl,
5
5
+
finalizeAuthorization,
6
6
+
OAuthUserAgent,
7
7
+
} from '@atcute/oauth-browser-client';
8
8
+
import { getConfig } from './config';
9
9
+
10
10
+
// Actor typeahead web component
11
11
+
import 'actor-typeahead';
12
12
+
13
13
+
// Global agent instance
14
14
+
let globalAgent: OAuthUserAgent | null = null;
15
15
+
16
16
+
// Helper function to wait
17
17
+
const sleep = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));
18
18
+
19
19
+
/**
20
20
+
* Web component for signing the guestbook.
21
21
+
*
22
22
+
* Usage:
23
23
+
* <guestbook-sign did="did:web:nekomimi.pet"></guestbook-sign>
24
24
+
*/
25
25
+
export class GuestbookSignElement extends HTMLElement {
26
26
+
private form: HTMLFormElement | null = null;
27
27
+
private messageInput: HTMLTextAreaElement | null = null;
28
28
+
private submitButton: HTMLButtonElement | null = null;
29
29
+
private statusDiv: HTMLDivElement | null = null;
30
30
+
private loginInput: HTMLInputElement | null = null;
31
31
+
private loginButton: HTMLButtonElement | null = null;
32
32
+
private userHandle: string | null = null;
33
33
+
34
34
+
static get observedAttributes() {
35
35
+
return ['did'];
36
36
+
}
37
37
+
38
38
+
constructor() {
39
39
+
super();
40
40
+
this.attachShadow({ mode: 'open' });
41
41
+
}
42
42
+
43
43
+
async connectedCallback() {
44
44
+
await this.initializeAuth();
45
45
+
if (globalAgent) {
46
46
+
await this.fetchUserHandle();
47
47
+
}
48
48
+
this.render();
49
49
+
this.attachEventListeners();
50
50
+
}
51
51
+
52
52
+
private async fetchUserHandle() {
53
53
+
if (!globalAgent) return;
54
54
+
55
55
+
try {
56
56
+
const response = await fetch(
57
57
+
`https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=${globalAgent.session.info.sub}`
58
58
+
);
59
59
+
if (response.ok) {
60
60
+
const data = await response.json();
61
61
+
this.userHandle = data.handle || null;
62
62
+
}
63
63
+
} catch (error) {
64
64
+
console.error('Failed to fetch user handle:', error);
65
65
+
}
66
66
+
}
67
67
+
68
68
+
private async initializeAuth() {
69
69
+
// Check if we have OAuth parameters in the hash (returning from OAuth)
70
70
+
if (location.hash.length > 1) {
71
71
+
const params = new URLSearchParams(location.hash.slice(1));
72
72
+
73
73
+
if (params.has('state') && (params.has('code') || params.has('error'))) {
74
74
+
try {
75
75
+
// Scrub the parameters from history to prevent replay
76
76
+
history.replaceState(null, '', location.pathname + location.search);
77
77
+
78
78
+
// Finalize the authorization and get the result
79
79
+
const result = await finalizeAuthorization(params);
80
80
+
81
81
+
// Create the OAuth user agent with the session
82
82
+
globalAgent = new OAuthUserAgent(result.session);
83
83
+
84
84
+
console.log('Authorization successful! Logged in as:', result.session.info.sub);
85
85
+
86
86
+
} catch (error) {
87
87
+
console.error('Failed to finalize authorization:', error);
88
88
+
alert('Login failed. Please try again.');
89
89
+
}
90
90
+
}
91
91
+
}
92
92
+
}
93
93
+
94
94
+
private render() {
95
95
+
if (!this.shadowRoot) {
96
96
+
return;
97
97
+
}
98
98
+
99
99
+
const isLoggedIn = globalAgent !== null;
100
100
+
101
101
+
this.shadowRoot.innerHTML = `
102
102
+
<style>
103
103
+
* {
104
104
+
box-sizing: border-box;
105
105
+
margin: 0;
106
106
+
padding: 0;
107
107
+
}
108
108
+
109
109
+
:host {
110
110
+
display: block;
111
111
+
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
112
112
+
-webkit-font-smoothing: antialiased;
113
113
+
-moz-osx-font-smoothing: grayscale;
114
114
+
}
115
115
+
116
116
+
.guestbook-sign {
117
117
+
background: #f9fafb;
118
118
+
padding: 0;
119
119
+
width: 100%;
120
120
+
}
121
121
+
122
122
+
h2 {
123
123
+
margin: 0 0 24px 0;
124
124
+
font-size: 11px;
125
125
+
font-weight: 700;
126
126
+
color: #000;
127
127
+
text-transform: uppercase;
128
128
+
letter-spacing: 0.05em;
129
129
+
}
130
130
+
131
131
+
.form-group {
132
132
+
margin-bottom: 24px;
133
133
+
}
134
134
+
135
135
+
label {
136
136
+
display: block;
137
137
+
margin-bottom: 8px;
138
138
+
font-size: 14px;
139
139
+
font-weight: 600;
140
140
+
color: #000;
141
141
+
}
142
142
+
143
143
+
textarea, input[type="text"] {
144
144
+
width: 100%;
145
145
+
padding: 12px 16px;
146
146
+
border: 1px solid #e5e7eb;
147
147
+
border-radius: 6px;
148
148
+
font-family: inherit;
149
149
+
font-size: 15px;
150
150
+
background: white;
151
151
+
box-sizing: border-box;
152
152
+
transition: border-color 0.2s, box-shadow 0.2s;
153
153
+
}
154
154
+
155
155
+
textarea {
156
156
+
min-height: 120px;
157
157
+
resize: vertical;
158
158
+
}
159
159
+
160
160
+
textarea:focus, input[type="text"]:focus {
161
161
+
outline: none;
162
162
+
border-color: #a1a1aa;
163
163
+
box-shadow: 0 0 0 2px rgba(161, 161, 170, 0.2);
164
164
+
}
165
165
+
166
166
+
textarea::placeholder, input[type="text"]::placeholder {
167
167
+
color: #9ca3af;
168
168
+
}
169
169
+
170
170
+
.char-count {
171
171
+
display: none;
172
172
+
}
173
173
+
174
174
+
button {
175
175
+
width: 100%;
176
176
+
background: #18181b;
177
177
+
color: white;
178
178
+
border: none;
179
179
+
border-radius: 6px;
180
180
+
padding: 12px 24px;
181
181
+
font-size: 15px;
182
182
+
font-weight: 500;
183
183
+
cursor: pointer;
184
184
+
transition: background-color 0.2s;
185
185
+
}
186
186
+
187
187
+
button:hover:not(:disabled) {
188
188
+
background: #27272a;
189
189
+
}
190
190
+
191
191
+
button:disabled {
192
192
+
background: #d1d5db;
193
193
+
cursor: not-allowed;
194
194
+
}
195
195
+
196
196
+
.status {
197
197
+
margin-top: 16px;
198
198
+
padding: 12px;
199
199
+
border-radius: 8px;
200
200
+
font-size: 14px;
201
201
+
display: none;
202
202
+
}
203
203
+
204
204
+
.status.show {
205
205
+
display: block;
206
206
+
}
207
207
+
208
208
+
.status.success {
209
209
+
background: #ecfdf5;
210
210
+
color: #065f46;
211
211
+
border: 1px solid #d1fae5;
212
212
+
}
213
213
+
214
214
+
.status.error {
215
215
+
background: #fef2f2;
216
216
+
color: #991b1b;
217
217
+
border: 1px solid #fecaca;
218
218
+
}
219
219
+
220
220
+
.status.loading {
221
221
+
background: #eff6ff;
222
222
+
color: #1e40af;
223
223
+
border: 1px solid #dbeafe;
224
224
+
}
225
225
+
226
226
+
.login-prompt {
227
227
+
display: none;
228
228
+
}
229
229
+
</style>
230
230
+
231
231
+
<div class="guestbook-sign">
232
232
+
<h2>SIGN</h2>
233
233
+
${!isLoggedIn ? `
234
234
+
<form id="login-form">
235
235
+
<div class="form-group">
236
236
+
<label for="handle">AT Proto Handle</label>
237
237
+
<actor-typeahead>
238
238
+
<input
239
239
+
type="text"
240
240
+
id="handle"
241
241
+
name="handle"
242
242
+
placeholder="user.bsky.social"
243
243
+
autocomplete="username"
244
244
+
required
245
245
+
/>
246
246
+
</actor-typeahead>
247
247
+
</div>
248
248
+
<button type="submit" id="login-btn">Sign in to Continue</button>
249
249
+
<div class="status" id="status"></div>
250
250
+
</form>
251
251
+
` : `
252
252
+
<form id="sign-form">
253
253
+
<div class="form-group">
254
254
+
<label for="name">Name</label>
255
255
+
<input
256
256
+
type="text"
257
257
+
id="name"
258
258
+
name="name"
259
259
+
placeholder="Your name"
260
260
+
value="${this.userHandle || globalAgent?.session.info.sub || ''}"
261
261
+
readonly
262
262
+
/>
263
263
+
</div>
264
264
+
<div class="form-group">
265
265
+
<label for="message">Message</label>
266
266
+
<textarea
267
267
+
id="message"
268
268
+
name="message"
269
269
+
placeholder="Share your thoughts..."
270
270
+
maxlength="100"
271
271
+
required
272
272
+
></textarea>
273
273
+
</div>
274
274
+
<button type="submit" id="submit-btn">Sign Guestbook</button>
275
275
+
<div class="status" id="status"></div>
276
276
+
</form>
277
277
+
`}
278
278
+
</div>
279
279
+
`;
280
280
+
281
281
+
if (isLoggedIn) {
282
282
+
this.form = this.shadowRoot.querySelector('#sign-form');
283
283
+
this.messageInput = this.shadowRoot.querySelector('#message');
284
284
+
this.submitButton = this.shadowRoot.querySelector('#submit-btn');
285
285
+
} else {
286
286
+
this.form = this.shadowRoot.querySelector('#login-form');
287
287
+
this.loginInput = this.shadowRoot.querySelector('#handle');
288
288
+
this.loginButton = this.shadowRoot.querySelector('#login-btn');
289
289
+
}
290
290
+
291
291
+
this.statusDiv = this.shadowRoot.querySelector('#status');
292
292
+
}
293
293
+
294
294
+
private attachEventListeners() {
295
295
+
if (!this.form) {
296
296
+
return;
297
297
+
}
298
298
+
299
299
+
const isLoggedIn = globalAgent !== null;
300
300
+
301
301
+
if (isLoggedIn && this.messageInput) {
302
302
+
// character counter
303
303
+
this.messageInput.addEventListener('input', () => {
304
304
+
this.updateCharCount();
305
305
+
});
306
306
+
307
307
+
// form submission for signing
308
308
+
this.form.addEventListener('submit', (e) => {
309
309
+
e.preventDefault();
310
310
+
this.handleSubmit();
311
311
+
});
312
312
+
} else {
313
313
+
// form submission for login
314
314
+
this.form.addEventListener('submit', (e) => {
315
315
+
e.preventDefault();
316
316
+
this.handleLogin();
317
317
+
});
318
318
+
}
319
319
+
}
320
320
+
321
321
+
private updateCharCount() {
322
322
+
if (!this.messageInput || !this.shadowRoot) {
323
323
+
return;
324
324
+
}
325
325
+
326
326
+
const length = this.messageInput.value.length;
327
327
+
const charCountEl = this.shadowRoot.querySelector('#char-count');
328
328
+
329
329
+
if (charCountEl) {
330
330
+
charCountEl.textContent = `${length} / 100`;
331
331
+
charCountEl.classList.remove('warning', 'error');
332
332
+
333
333
+
if (length > 90) {
334
334
+
charCountEl.classList.add('error');
335
335
+
} else if (length > 80) {
336
336
+
charCountEl.classList.add('warning');
337
337
+
}
338
338
+
}
339
339
+
}
340
340
+
341
341
+
private async handleLogin() {
342
342
+
const handle = this.loginInput?.value.trim();
343
343
+
344
344
+
if (!handle) {
345
345
+
this.showStatus('Please enter your Bluesky handle.', 'error');
346
346
+
return;
347
347
+
}
348
348
+
349
349
+
try {
350
350
+
this.showStatus('Redirecting to sign in...', 'loading');
351
351
+
this.setFormDisabled(true);
352
352
+
353
353
+
const config = getConfig();
354
354
+
if (!config) {
355
355
+
throw new Error('Guestbook not configured. Call configureGuestbook() first.');
356
356
+
}
357
357
+
358
358
+
const authUrl = await createAuthorizationUrl({
359
359
+
target: { type: 'account', identifier: handle as `${string}.${string}` },
360
360
+
scope: config.oauth.scope,
361
361
+
});
362
362
+
363
363
+
// recommended to wait for the browser to persist local storage before proceeding
364
364
+
await sleep(250);
365
365
+
366
366
+
// redirect the user to sign in and authorize the app
367
367
+
window.location.assign(authUrl);
368
368
+
369
369
+
} catch (error) {
370
370
+
console.error('Login error:', error);
371
371
+
this.showStatus('Login failed. Please try again.', 'error');
372
372
+
this.setFormDisabled(false);
373
373
+
}
374
374
+
}
375
375
+
376
376
+
private async handleSubmit() {
377
377
+
if (!globalAgent) {
378
378
+
this.showStatus('Please log in first.', 'error');
379
379
+
return;
380
380
+
}
381
381
+
382
382
+
const did = this.getAttribute('did');
383
383
+
if (!did) {
384
384
+
this.showStatus('Missing guestbook DID.', 'error');
385
385
+
return;
386
386
+
}
387
387
+
388
388
+
// subject is just the DID (at-identifier format)
389
389
+
const subject = did;
390
390
+
391
391
+
const message = this.messageInput?.value.trim();
392
392
+
if (!message) {
393
393
+
this.showStatus('Please enter a message.', 'error');
394
394
+
return;
395
395
+
}
396
396
+
397
397
+
try {
398
398
+
this.showStatus('Signing guestbook...', 'loading');
399
399
+
this.setFormDisabled(true);
400
400
+
401
401
+
// get the client from the OAuth agent
402
402
+
const client = new Client({ handler: globalAgent });
403
403
+
404
404
+
// create the record
405
405
+
const record = {
406
406
+
$type: 'pet.nkp.guestbook.sign',
407
407
+
subject: subject,
408
408
+
message: message,
409
409
+
createdAt: new Date().toISOString(),
410
410
+
};
411
411
+
412
412
+
const response = await client.post('com.atproto.repo.createRecord', {
413
413
+
input: {
414
414
+
repo: globalAgent.session.info.sub, // user's DID
415
415
+
collection: 'pet.nkp.guestbook.sign',
416
416
+
record: record,
417
417
+
},
418
418
+
});
419
419
+
420
420
+
if (response.ok) {
421
421
+
this.showStatus('✓ Successfully signed the guestbook!', 'success');
422
422
+
423
423
+
// clear the form
424
424
+
if (this.messageInput) {
425
425
+
this.messageInput.value = '';
426
426
+
}
427
427
+
this.updateCharCount();
428
428
+
429
429
+
// dispatch custom event for parent to listen to
430
430
+
this.dispatchEvent(new CustomEvent('sign-created', {
431
431
+
detail: {
432
432
+
uri: response.data.uri,
433
433
+
cid: response.data.cid,
434
434
+
},
435
435
+
bubbles: true,
436
436
+
composed: true,
437
437
+
}));
438
438
+
439
439
+
// hide success message after 3 seconds
440
440
+
setTimeout(() => {
441
441
+
this.hideStatus();
442
442
+
}, 3000);
443
443
+
} else {
444
444
+
throw new Error('Failed to create record');
445
445
+
}
446
446
+
} catch (error) {
447
447
+
console.error('Error signing guestbook:', error);
448
448
+
this.showStatus(
449
449
+
`Failed to sign: ${error instanceof Error ? error.message : 'Unknown error'}`,
450
450
+
'error'
451
451
+
);
452
452
+
} finally {
453
453
+
this.setFormDisabled(false);
454
454
+
}
455
455
+
}
456
456
+
457
457
+
private showStatus(message: string, type: 'success' | 'error' | 'loading') {
458
458
+
if (!this.statusDiv) {
459
459
+
return;
460
460
+
}
461
461
+
462
462
+
this.statusDiv.textContent = message;
463
463
+
this.statusDiv.className = `status show ${type}`;
464
464
+
}
465
465
+
466
466
+
private hideStatus() {
467
467
+
if (!this.statusDiv) {
468
468
+
return;
469
469
+
}
470
470
+
471
471
+
this.statusDiv.classList.remove('show');
472
472
+
}
473
473
+
474
474
+
private setFormDisabled(disabled: boolean) {
475
475
+
if (this.messageInput) {
476
476
+
this.messageInput.disabled = disabled;
477
477
+
}
478
478
+
if (this.submitButton) {
479
479
+
this.submitButton.disabled = disabled;
480
480
+
}
481
481
+
if (this.loginInput) {
482
482
+
this.loginInput.disabled = disabled;
483
483
+
}
484
484
+
if (this.loginButton) {
485
485
+
this.loginButton.disabled = disabled;
486
486
+
}
487
487
+
}
488
488
+
}
489
489
+
···
1
1
+
// Core component exports
2
2
+
export { GuestbookSignElement } from './guestbook-sign';
3
3
+
export { GuestbookDisplayElement } from './guestbook-display';
4
4
+
5
5
+
// Configuration
6
6
+
export { configureGuestbook, isConfigured, getConfig } from './config';
7
7
+
export type { GuestbookConfig } from './config';
8
8
+
9
9
+
// Types
10
10
+
export type { GuestbookSignature } from './guestbook-display';
11
11
+
···
1
1
+
/**
2
2
+
* Register guestbook custom elements.
3
3
+
* Import this file to auto-register the components.
4
4
+
*/
5
5
+
import { GuestbookSignElement } from './guestbook-sign';
6
6
+
import { GuestbookDisplayElement } from './guestbook-display';
7
7
+
8
8
+
// Register custom elements if not already registered
9
9
+
if (!customElements.get('guestbook-sign')) {
10
10
+
customElements.define('guestbook-sign', GuestbookSignElement);
11
11
+
}
12
12
+
13
13
+
if (!customElements.get('guestbook-display')) {
14
14
+
customElements.define('guestbook-display', GuestbookDisplayElement);
15
15
+
}
16
16
+
17
17
+
// Re-export for convenience
18
18
+
export { GuestbookSignElement, GuestbookDisplayElement };
19
19
+
export { configureGuestbook, isConfigured, getConfig } from './config';
20
20
+
export type { GuestbookConfig } from './config';
21
21
+
22
22
+
// Add to global declarations for TypeScript
23
23
+
declare global {
24
24
+
interface HTMLElementTagNameMap {
25
25
+
'guestbook-sign': GuestbookSignElement;
26
26
+
'guestbook-display': GuestbookDisplayElement;
27
27
+
}
28
28
+
}
···
1
1
+
{
2
2
+
"name": "@aspect/guestbook",
3
3
+
"version": "0.1.0",
4
4
+
"lockfileVersion": 3,
5
5
+
"requires": true,
6
6
+
"packages": {
7
7
+
"": {
8
8
+
"name": "@aspect/guestbook",
9
9
+
"version": "0.1.0",
10
10
+
"dependencies": {
11
11
+
"actor-typeahead": "^0.1.2"
12
12
+
},
13
13
+
"devDependencies": {
14
14
+
"@atcute/atproto": "^3.1.9",
15
15
+
"@atcute/client": "^4.1.0",
16
16
+
"@atcute/identity-resolver": "^1.1.4",
17
17
+
"@atcute/lex-cli": "^2.5.0",
18
18
+
"@atcute/lexicon-doc": "^2.0.4",
19
19
+
"@atcute/oauth-browser-client": "^2.0.1",
20
20
+
"@sveltejs/vite-plugin-svelte": "^6.2.1",
21
21
+
"@tsconfig/svelte": "^5.0.6",
22
22
+
"@types/node": "^24.10.1",
23
23
+
"svelte": "^5.43.8",
24
24
+
"svelte-check": "^4.3.4",
25
25
+
"typescript": "~5.9.3",
26
26
+
"vite": "npm:rolldown-vite@7.2.5",
27
27
+
"vite-plugin-dts": "^4.5.4"
28
28
+
},
29
29
+
"peerDependencies": {
30
30
+
"@atcute/client": "^4.0.0",
31
31
+
"@atcute/identity-resolver": "^1.0.0",
32
32
+
"@atcute/oauth-browser-client": "^2.0.0"
33
33
+
}
34
34
+
},
35
35
+
"node_modules/@atcute/atproto": {
36
36
+
"version": "3.1.9",
37
37
+
"resolved": "https://registry.npmjs.org/@atcute/atproto/-/atproto-3.1.9.tgz",
38
38
+
"integrity": "sha512-DyWwHCTdR4hY2BPNbLXgVmm7lI+fceOwWbE4LXbGvbvVtSn+ejSVFaAv01Ra3kWDha0whsOmbJL8JP0QPpf1+w==",
39
39
+
"dev": true,
40
40
+
"license": "0BSD",
41
41
+
"dependencies": {
42
42
+
"@atcute/lexicons": "^1.2.2"
43
43
+
}
44
44
+
},
45
45
+
"node_modules/@atcute/car": {
46
46
+
"version": "5.0.0",
47
47
+
"resolved": "https://registry.npmjs.org/@atcute/car/-/car-5.0.0.tgz",
48
48
+
"integrity": "sha512-OIY2xTXv8lSpZsDSn/UYQtJSMvDw5Hi4Q+uyvmiqSM+fht08QRAEq/nxa5YFciPZ3nfDFnZ3//EgJw7QhkSXLQ==",
49
49
+
"dev": true,
50
50
+
"license": "0BSD",
51
51
+
"dependencies": {
52
52
+
"@atcute/cbor": "^2.2.7",
53
53
+
"@atcute/cid": "^2.2.6",
54
54
+
"@atcute/uint8array": "^1.0.5",
55
55
+
"@atcute/varint": "^1.0.3"
56
56
+
}
57
57
+
},
58
58
+
"node_modules/@atcute/cbor": {
59
59
+
"version": "2.2.8",
60
60
+
"resolved": "https://registry.npmjs.org/@atcute/cbor/-/cbor-2.2.8.tgz",
61
61
+
"integrity": "sha512-UzOAN9BuN6JCXgn0ryV8qZuRJUDrNqrbLd6EFM8jc6RYssjRyGRxNy6RZ1NU/07Hd8Tq/0pz8+nQiMu5Zai5uw==",
62
62
+
"dev": true,
63
63
+
"license": "0BSD",
64
64
+
"dependencies": {
65
65
+
"@atcute/cid": "^2.2.6",
66
66
+
"@atcute/multibase": "^1.1.6",
67
67
+
"@atcute/uint8array": "^1.0.5"
68
68
+
}
69
69
+
},
70
70
+
"node_modules/@atcute/cid": {
71
71
+
"version": "2.2.6",
72
72
+
"resolved": "https://registry.npmjs.org/@atcute/cid/-/cid-2.2.6.tgz",
73
73
+
"integrity": "sha512-bTAHHbJ24p+E//V4KCS4xdmd39o211jJswvqQOevj7vk+5IYcgDLx1ryZWZ1sEPOo9x875li/kj5gpKL14RDwQ==",
74
74
+
"dev": true,
75
75
+
"license": "0BSD",
76
76
+
"dependencies": {
77
77
+
"@atcute/multibase": "^1.1.6",
78
78
+
"@atcute/uint8array": "^1.0.5"
79
79
+
}
80
80
+
},
81
81
+
"node_modules/@atcute/client": {
82
82
+
"version": "4.1.0",
83
83
+
"resolved": "https://registry.npmjs.org/@atcute/client/-/client-4.1.0.tgz",
84
84
+
"integrity": "sha512-AYhSu3RSDA2VDkVGOmad320NRbUUUf5pCFWJcOzlk25YC/4kyzmMFfpzhf1jjjEcY+anNBXGGhav/kKB1evggQ==",
85
85
+
"dev": true,
86
86
+
"license": "0BSD",
87
87
+
"dependencies": {
88
88
+
"@atcute/identity": "^1.1.3",
89
89
+
"@atcute/lexicons": "^1.2.5"
90
90
+
}
91
91
+
},
92
92
+
"node_modules/@atcute/crypto": {
93
93
+
"version": "2.2.6",
94
94
+
"resolved": "https://registry.npmjs.org/@atcute/crypto/-/crypto-2.2.6.tgz",
95
95
+
"integrity": "sha512-vkuexF+kmrKE1/Uqzub99Qi4QpnxA2jbu60E6PTgL4XypELQ6rb59MB/J1VbY2gs0kd3ET7+L3+NWpKD5nXyfA==",
96
96
+
"dev": true,
97
97
+
"license": "0BSD",
98
98
+
"dependencies": {
99
99
+
"@atcute/multibase": "^1.1.6",
100
100
+
"@atcute/uint8array": "^1.0.5",
101
101
+
"@noble/secp256k1": "^3.0.0"
102
102
+
}
103
103
+
},
104
104
+
"node_modules/@atcute/identity": {
105
105
+
"version": "1.1.3",
106
106
+
"resolved": "https://registry.npmjs.org/@atcute/identity/-/identity-1.1.3.tgz",
107
107
+
"integrity": "sha512-oIqPoI8TwWeQxvcLmFEZLdN2XdWcaLVtlm8pNk0E72As9HNzzD9pwKPrLr3rmTLRIoULPPFmq9iFNsTeCIU9ng==",
108
108
+
"dev": true,
109
109
+
"license": "0BSD",
110
110
+
"peer": true,
111
111
+
"dependencies": {
112
112
+
"@atcute/lexicons": "^1.2.4",
113
113
+
"@badrap/valita": "^0.4.6"
114
114
+
}
115
115
+
},
116
116
+
"node_modules/@atcute/identity-resolver": {
117
117
+
"version": "1.1.4",
118
118
+
"resolved": "https://registry.npmjs.org/@atcute/identity-resolver/-/identity-resolver-1.1.4.tgz",
119
119
+
"integrity": "sha512-/SVh8vf2cXFJenmBnGeYF2aY3WGQm3cJeew5NWTlkqoy3LvJ5wkvKq9PWu4Tv653VF40rPOp6LOdVr9Fa+q5rA==",
120
120
+
"dev": true,
121
121
+
"license": "0BSD",
122
122
+
"peer": true,
123
123
+
"dependencies": {
124
124
+
"@atcute/lexicons": "^1.2.2",
125
125
+
"@atcute/util-fetch": "^1.0.3",
126
126
+
"@badrap/valita": "^0.4.6"
127
127
+
},
128
128
+
"peerDependencies": {
129
129
+
"@atcute/identity": "^1.0.0"
130
130
+
}
131
131
+
},
132
132
+
"node_modules/@atcute/lex-cli": {
133
133
+
"version": "2.5.0",
134
134
+
"resolved": "https://registry.npmjs.org/@atcute/lex-cli/-/lex-cli-2.5.0.tgz",
135
135
+
"integrity": "sha512-mIla9XeK9HJqFW0m/FaHI3+wIQlUL3PJYFpGmlXVwJISQVHASvWpU6gCHSYtAySZTrfVDv73fsVDBkpw9mnTjA==",
136
136
+
"dev": true,
137
137
+
"license": "0BSD",
138
138
+
"dependencies": {
139
139
+
"@atcute/identity": "^1.1.3",
140
140
+
"@atcute/identity-resolver": "^1.1.4",
141
141
+
"@atcute/lexicon-doc": "^2.0.3",
142
142
+
"@atcute/lexicon-resolver": "^0.1.4",
143
143
+
"@atcute/lexicons": "^1.2.5",
144
144
+
"@badrap/valita": "^0.4.6",
145
145
+
"@optique/core": "^0.6.3",
146
146
+
"@optique/run": "^0.6.3",
147
147
+
"picocolors": "^1.1.1",
148
148
+
"prettier": "^3.6.2"
149
149
+
},
150
150
+
"bin": {
151
151
+
"lex-cli": "cli.mjs"
152
152
+
}
153
153
+
},
154
154
+
"node_modules/@atcute/lexicon-doc": {
155
155
+
"version": "2.0.4",
156
156
+
"resolved": "https://registry.npmjs.org/@atcute/lexicon-doc/-/lexicon-doc-2.0.4.tgz",
157
157
+
"integrity": "sha512-YfwlYFoYiBvRIYG0I1zsINCTFugFtS8l67uT3nQ04zdKVflzdg8uUj8cNZYRNY1V7okoOPdikhR4kPFhYGyemw==",
158
158
+
"dev": true,
159
159
+
"license": "0BSD",
160
160
+
"dependencies": {
161
161
+
"@atcute/identity": "^1.1.3",
162
162
+
"@atcute/lexicons": "^1.2.5",
163
163
+
"@badrap/valita": "^0.4.6"
164
164
+
}
165
165
+
},
166
166
+
"node_modules/@atcute/lexicon-resolver": {
167
167
+
"version": "0.1.5",
168
168
+
"resolved": "https://registry.npmjs.org/@atcute/lexicon-resolver/-/lexicon-resolver-0.1.5.tgz",
169
169
+
"integrity": "sha512-0bx1/zdMQPuxvRcHW6ykAxRxktC2rEZLoAVSFoLSWDAA92Tf09F9QPK5wgXSF4MNODm1dvzMEdWSMIvlg8sr3A==",
170
170
+
"dev": true,
171
171
+
"license": "0BSD",
172
172
+
"dependencies": {
173
173
+
"@atcute/crypto": "^2.2.6",
174
174
+
"@atcute/lexicon-doc": "^2.0.4",
175
175
+
"@atcute/lexicons": "^1.2.5",
176
176
+
"@atcute/repo": "^0.1.0",
177
177
+
"@atcute/util-fetch": "^1.0.4",
178
178
+
"@badrap/valita": "^0.4.6"
179
179
+
},
180
180
+
"peerDependencies": {
181
181
+
"@atcute/identity": "^1.1.0",
182
182
+
"@atcute/identity-resolver": "^1.1.3"
183
183
+
}
184
184
+
},
185
185
+
"node_modules/@atcute/lexicons": {
186
186
+
"version": "1.2.5",
187
187
+
"resolved": "https://registry.npmjs.org/@atcute/lexicons/-/lexicons-1.2.5.tgz",
188
188
+
"integrity": "sha512-9yO9WdgxW8jZ7SbzUycH710z+JmsQ9W9n5S6i6eghYju32kkluFmgBeS47r8e8p2+Dv4DemS7o/3SUGsX9FR5Q==",
189
189
+
"dev": true,
190
190
+
"license": "0BSD",
191
191
+
"dependencies": {
192
192
+
"@standard-schema/spec": "^1.0.0",
193
193
+
"esm-env": "^1.2.2"
194
194
+
}
195
195
+
},
196
196
+
"node_modules/@atcute/mst": {
197
197
+
"version": "0.1.0",
198
198
+
"resolved": "https://registry.npmjs.org/@atcute/mst/-/mst-0.1.0.tgz",
199
199
+
"integrity": "sha512-h+iDToKEnBpigk2DOHjSqY63vJtjYKUIztqu1CZ0P+I54wV2SrgoqAXAT1xrW6A1Iup8cjTv+U2H5WVG4KxPLw==",
200
200
+
"dev": true,
201
201
+
"license": "0BSD",
202
202
+
"dependencies": {
203
203
+
"@atcute/cbor": "^2.2.7",
204
204
+
"@atcute/cid": "^2.2.6",
205
205
+
"@atcute/uint8array": "^1.0.5"
206
206
+
}
207
207
+
},
208
208
+
"node_modules/@atcute/multibase": {
209
209
+
"version": "1.1.6",
210
210
+
"resolved": "https://registry.npmjs.org/@atcute/multibase/-/multibase-1.1.6.tgz",
211
211
+
"integrity": "sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg==",
212
212
+
"dev": true,
213
213
+
"license": "0BSD",
214
214
+
"dependencies": {
215
215
+
"@atcute/uint8array": "^1.0.5"
216
216
+
}
217
217
+
},
218
218
+
"node_modules/@atcute/oauth-browser-client": {
219
219
+
"version": "2.0.1",
220
220
+
"resolved": "https://registry.npmjs.org/@atcute/oauth-browser-client/-/oauth-browser-client-2.0.1.tgz",
221
221
+
"integrity": "sha512-lG021GkeORG06zfFf4bH85egObjBEKHNgAWHvbtY/E2dX4wxo88hf370pJDx8acdnuUJLJ2VKPikJtZwo4Heeg==",
222
222
+
"dev": true,
223
223
+
"license": "0BSD",
224
224
+
"dependencies": {
225
225
+
"@atcute/client": "^4.0.5",
226
226
+
"@atcute/identity": "^1.1.1",
227
227
+
"@atcute/identity-resolver": "^1.1.4",
228
228
+
"@atcute/lexicons": "^1.2.2",
229
229
+
"@atcute/multibase": "^1.1.6",
230
230
+
"@atcute/uint8array": "^1.0.5",
231
231
+
"nanoid": "^5.1.5"
232
232
+
}
233
233
+
},
234
234
+
"node_modules/@atcute/oauth-browser-client/node_modules/nanoid": {
235
235
+
"version": "5.1.6",
236
236
+
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz",
237
237
+
"integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==",
238
238
+
"dev": true,
239
239
+
"funding": [
240
240
+
{
241
241
+
"type": "github",
242
242
+
"url": "https://github.com/sponsors/ai"
243
243
+
}
244
244
+
],
245
245
+
"license": "MIT",
246
246
+
"bin": {
247
247
+
"nanoid": "bin/nanoid.js"
248
248
+
},
249
249
+
"engines": {
250
250
+
"node": "^18 || >=20"
251
251
+
}
252
252
+
},
253
253
+
"node_modules/@atcute/repo": {
254
254
+
"version": "0.1.0",
255
255
+
"resolved": "https://registry.npmjs.org/@atcute/repo/-/repo-0.1.0.tgz",
256
256
+
"integrity": "sha512-INiYAuma8dydBu7cqd2WVpcXh3mzhIepYBUqFWAK5MqMulPRLTRCc/9GW3G9pxYrOdlvLCVamG2Jf8XK0nuFEw==",
257
257
+
"dev": true,
258
258
+
"license": "0BSD",
259
259
+
"dependencies": {
260
260
+
"@atcute/car": "^5.0.0",
261
261
+
"@atcute/cbor": "^2.2.7",
262
262
+
"@atcute/cid": "^2.2.6",
263
263
+
"@atcute/crypto": "^2.2.5",
264
264
+
"@atcute/lexicons": "^1.2.2",
265
265
+
"@atcute/mst": "^0.1.0",
266
266
+
"@atcute/uint8array": "^1.0.5"
267
267
+
}
268
268
+
},
269
269
+
"node_modules/@atcute/uint8array": {
270
270
+
"version": "1.0.5",
271
271
+
"resolved": "https://registry.npmjs.org/@atcute/uint8array/-/uint8array-1.0.5.tgz",
272
272
+
"integrity": "sha512-XLWWxoR2HNl2qU+FCr0rp1APwJXci7HnzbOQLxK55OaMNBXZ19+xNC5ii4QCsThsDxa4JS/JTzuiQLziITWf2Q==",
273
273
+
"dev": true,
274
274
+
"license": "0BSD"
275
275
+
},
276
276
+
"node_modules/@atcute/util-fetch": {
277
277
+
"version": "1.0.4",
278
278
+
"resolved": "https://registry.npmjs.org/@atcute/util-fetch/-/util-fetch-1.0.4.tgz",
279
279
+
"integrity": "sha512-sIU9Qk0dE8PLEXSfhy+gIJV+HpiiknMytCI2SqLlqd0vgZUtEKI/EQfP+23LHWvP+CLCzVDOa6cpH045OlmNBg==",
280
280
+
"dev": true,
281
281
+
"license": "0BSD",
282
282
+
"dependencies": {
283
283
+
"@badrap/valita": "^0.4.6"
284
284
+
}
285
285
+
},
286
286
+
"node_modules/@atcute/varint": {
287
287
+
"version": "1.0.3",
288
288
+
"resolved": "https://registry.npmjs.org/@atcute/varint/-/varint-1.0.3.tgz",
289
289
+
"integrity": "sha512-fdvMPyBB+McDT+Ai5e9RwEbwYV4yjZ60S2Dn5PTjGqUyxvoCH1z42viuheDZRUDkmfQehXJTZ5az7dSozVNtog==",
290
290
+
"dev": true,
291
291
+
"license": "0BSD"
292
292
+
},
293
293
+
"node_modules/@babel/helper-string-parser": {
294
294
+
"version": "7.27.1",
295
295
+
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
296
296
+
"integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
297
297
+
"dev": true,
298
298
+
"license": "MIT",
299
299
+
"engines": {
300
300
+
"node": ">=6.9.0"
301
301
+
}
302
302
+
},
303
303
+
"node_modules/@babel/helper-validator-identifier": {
304
304
+
"version": "7.28.5",
305
305
+
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
306
306
+
"integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
307
307
+
"dev": true,
308
308
+
"license": "MIT",
309
309
+
"engines": {
310
310
+
"node": ">=6.9.0"
311
311
+
}
312
312
+
},
313
313
+
"node_modules/@babel/parser": {
314
314
+
"version": "7.28.5",
315
315
+
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz",
316
316
+
"integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==",
317
317
+
"dev": true,
318
318
+
"license": "MIT",
319
319
+
"dependencies": {
320
320
+
"@babel/types": "^7.28.5"
321
321
+
},
322
322
+
"bin": {
323
323
+
"parser": "bin/babel-parser.js"
324
324
+
},
325
325
+
"engines": {
326
326
+
"node": ">=6.0.0"
327
327
+
}
328
328
+
},
329
329
+
"node_modules/@babel/types": {
330
330
+
"version": "7.28.5",
331
331
+
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz",
332
332
+
"integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==",
333
333
+
"dev": true,
334
334
+
"license": "MIT",
335
335
+
"dependencies": {
336
336
+
"@babel/helper-string-parser": "^7.27.1",
337
337
+
"@babel/helper-validator-identifier": "^7.28.5"
338
338
+
},
339
339
+
"engines": {
340
340
+
"node": ">=6.9.0"
341
341
+
}
342
342
+
},
343
343
+
"node_modules/@badrap/valita": {
344
344
+
"version": "0.4.6",
345
345
+
"resolved": "https://registry.npmjs.org/@badrap/valita/-/valita-0.4.6.tgz",
346
346
+
"integrity": "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg==",
347
347
+
"dev": true,
348
348
+
"license": "MIT",
349
349
+
"engines": {
350
350
+
"node": ">= 18"
351
351
+
}
352
352
+
},
353
353
+
"node_modules/@emnapi/core": {
354
354
+
"version": "1.7.1",
355
355
+
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz",
356
356
+
"integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==",
357
357
+
"dev": true,
358
358
+
"license": "MIT",
359
359
+
"optional": true,
360
360
+
"dependencies": {
361
361
+
"@emnapi/wasi-threads": "1.1.0",
362
362
+
"tslib": "^2.4.0"
363
363
+
}
364
364
+
},
365
365
+
"node_modules/@emnapi/runtime": {
366
366
+
"version": "1.7.1",
367
367
+
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz",
368
368
+
"integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==",
369
369
+
"dev": true,
370
370
+
"license": "MIT",
371
371
+
"optional": true,
372
372
+
"dependencies": {
373
373
+
"tslib": "^2.4.0"
374
374
+
}
375
375
+
},
376
376
+
"node_modules/@emnapi/wasi-threads": {
377
377
+
"version": "1.1.0",
378
378
+
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
379
379
+
"integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
380
380
+
"dev": true,
381
381
+
"license": "MIT",
382
382
+
"optional": true,
383
383
+
"dependencies": {
384
384
+
"tslib": "^2.4.0"
385
385
+
}
386
386
+
},
387
387
+
"node_modules/@isaacs/balanced-match": {
388
388
+
"version": "4.0.1",
389
389
+
"resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
390
390
+
"integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
391
391
+
"dev": true,
392
392
+
"license": "MIT",
393
393
+
"engines": {
394
394
+
"node": "20 || >=22"
395
395
+
}
396
396
+
},
397
397
+
"node_modules/@isaacs/brace-expansion": {
398
398
+
"version": "5.0.0",
399
399
+
"resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
400
400
+
"integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
401
401
+
"dev": true,
402
402
+
"license": "MIT",
403
403
+
"dependencies": {
404
404
+
"@isaacs/balanced-match": "^4.0.1"
405
405
+
},
406
406
+
"engines": {
407
407
+
"node": "20 || >=22"
408
408
+
}
409
409
+
},
410
410
+
"node_modules/@jridgewell/gen-mapping": {
411
411
+
"version": "0.3.13",
412
412
+
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
413
413
+
"integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
414
414
+
"dev": true,
415
415
+
"license": "MIT",
416
416
+
"dependencies": {
417
417
+
"@jridgewell/sourcemap-codec": "^1.5.0",
418
418
+
"@jridgewell/trace-mapping": "^0.3.24"
419
419
+
}
420
420
+
},
421
421
+
"node_modules/@jridgewell/remapping": {
422
422
+
"version": "2.3.5",
423
423
+
"resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
424
424
+
"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
425
425
+
"dev": true,
426
426
+
"license": "MIT",
427
427
+
"dependencies": {
428
428
+
"@jridgewell/gen-mapping": "^0.3.5",
429
429
+
"@jridgewell/trace-mapping": "^0.3.24"
430
430
+
}
431
431
+
},
432
432
+
"node_modules/@jridgewell/resolve-uri": {
433
433
+
"version": "3.1.2",
434
434
+
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
435
435
+
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
436
436
+
"dev": true,
437
437
+
"license": "MIT",
438
438
+
"engines": {
439
439
+
"node": ">=6.0.0"
440
440
+
}
441
441
+
},
442
442
+
"node_modules/@jridgewell/sourcemap-codec": {
443
443
+
"version": "1.5.5",
444
444
+
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
445
445
+
"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
446
446
+
"dev": true,
447
447
+
"license": "MIT"
448
448
+
},
449
449
+
"node_modules/@jridgewell/trace-mapping": {
450
450
+
"version": "0.3.31",
451
451
+
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
452
452
+
"integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
453
453
+
"dev": true,
454
454
+
"license": "MIT",
455
455
+
"dependencies": {
456
456
+
"@jridgewell/resolve-uri": "^3.1.0",
457
457
+
"@jridgewell/sourcemap-codec": "^1.4.14"
458
458
+
}
459
459
+
},
460
460
+
"node_modules/@microsoft/api-extractor": {
461
461
+
"version": "7.55.1",
462
462
+
"resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.55.1.tgz",
463
463
+
"integrity": "sha512-l8Z+8qrLkZFM3HM95Dbpqs6G39fpCa7O5p8A7AkA6hSevxkgwsOlLrEuPv0ADOyj5dI1Af5WVDiwpKG/ya5G3w==",
464
464
+
"dev": true,
465
465
+
"license": "MIT",
466
466
+
"dependencies": {
467
467
+
"@microsoft/api-extractor-model": "7.32.1",
468
468
+
"@microsoft/tsdoc": "~0.16.0",
469
469
+
"@microsoft/tsdoc-config": "~0.18.0",
470
470
+
"@rushstack/node-core-library": "5.19.0",
471
471
+
"@rushstack/rig-package": "0.6.0",
472
472
+
"@rushstack/terminal": "0.19.4",
473
473
+
"@rushstack/ts-command-line": "5.1.4",
474
474
+
"diff": "~8.0.2",
475
475
+
"lodash": "~4.17.15",
476
476
+
"minimatch": "10.0.3",
477
477
+
"resolve": "~1.22.1",
478
478
+
"semver": "~7.5.4",
479
479
+
"source-map": "~0.6.1",
480
480
+
"typescript": "5.8.2"
481
481
+
},
482
482
+
"bin": {
483
483
+
"api-extractor": "bin/api-extractor"
484
484
+
}
485
485
+
},
486
486
+
"node_modules/@microsoft/api-extractor-model": {
487
487
+
"version": "7.32.1",
488
488
+
"resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.32.1.tgz",
489
489
+
"integrity": "sha512-u4yJytMYiUAnhcNQcZDTh/tVtlrzKlyKrQnLOV+4Qr/5gV+cpufWzCYAB1Q23URFqD6z2RoL2UYncM9xJVGNKA==",
490
490
+
"dev": true,
491
491
+
"license": "MIT",
492
492
+
"dependencies": {
493
493
+
"@microsoft/tsdoc": "~0.16.0",
494
494
+
"@microsoft/tsdoc-config": "~0.18.0",
495
495
+
"@rushstack/node-core-library": "5.19.0"
496
496
+
}
497
497
+
},
498
498
+
"node_modules/@microsoft/api-extractor/node_modules/typescript": {
499
499
+
"version": "5.8.2",
500
500
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz",
501
501
+
"integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==",
502
502
+
"dev": true,
503
503
+
"license": "Apache-2.0",
504
504
+
"bin": {
505
505
+
"tsc": "bin/tsc",
506
506
+
"tsserver": "bin/tsserver"
507
507
+
},
508
508
+
"engines": {
509
509
+
"node": ">=14.17"
510
510
+
}
511
511
+
},
512
512
+
"node_modules/@microsoft/tsdoc": {
513
513
+
"version": "0.16.0",
514
514
+
"resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz",
515
515
+
"integrity": "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==",
516
516
+
"dev": true,
517
517
+
"license": "MIT"
518
518
+
},
519
519
+
"node_modules/@microsoft/tsdoc-config": {
520
520
+
"version": "0.18.0",
521
521
+
"resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.18.0.tgz",
522
522
+
"integrity": "sha512-8N/vClYyfOH+l4fLkkr9+myAoR6M7akc8ntBJ4DJdWH2b09uVfr71+LTMpNyG19fNqWDg8KEDZhx5wxuqHyGjw==",
523
523
+
"dev": true,
524
524
+
"license": "MIT",
525
525
+
"dependencies": {
526
526
+
"@microsoft/tsdoc": "0.16.0",
527
527
+
"ajv": "~8.12.0",
528
528
+
"jju": "~1.4.0",
529
529
+
"resolve": "~1.22.2"
530
530
+
}
531
531
+
},
532
532
+
"node_modules/@napi-rs/wasm-runtime": {
533
533
+
"version": "1.0.7",
534
534
+
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.7.tgz",
535
535
+
"integrity": "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==",
536
536
+
"dev": true,
537
537
+
"license": "MIT",
538
538
+
"optional": true,
539
539
+
"dependencies": {
540
540
+
"@emnapi/core": "^1.5.0",
541
541
+
"@emnapi/runtime": "^1.5.0",
542
542
+
"@tybys/wasm-util": "^0.10.1"
543
543
+
}
544
544
+
},
545
545
+
"node_modules/@noble/secp256k1": {
546
546
+
"version": "3.0.0",
547
547
+
"resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-3.0.0.tgz",
548
548
+
"integrity": "sha512-NJBaR352KyIvj3t6sgT/+7xrNyF9Xk9QlLSIqUGVUYlsnDTAUqY8LOmwpcgEx4AMJXRITQ5XEVHD+mMaPfr3mg==",
549
549
+
"dev": true,
550
550
+
"license": "MIT",
551
551
+
"funding": {
552
552
+
"url": "https://paulmillr.com/funding/"
553
553
+
}
554
554
+
},
555
555
+
"node_modules/@optique/core": {
556
556
+
"version": "0.6.3",
557
557
+
"resolved": "https://registry.npmjs.org/@optique/core/-/core-0.6.3.tgz",
558
558
+
"integrity": "sha512-Aw7naHPeZr+YThJRrfk+Ds3OuAd7HUD1chsGncay+6crmLyrraXh0s0xDuJ52kCfNPdCTKAW3MG0XLcuEIr8qQ==",
559
559
+
"dev": true,
560
560
+
"funding": [
561
561
+
"https://github.com/sponsors/dahlia"
562
562
+
],
563
563
+
"license": "MIT",
564
564
+
"engines": {
565
565
+
"bun": ">=1.2.0",
566
566
+
"deno": ">=2.3.0",
567
567
+
"node": ">=20.0.0"
568
568
+
}
569
569
+
},
570
570
+
"node_modules/@optique/run": {
571
571
+
"version": "0.6.3",
572
572
+
"resolved": "https://registry.npmjs.org/@optique/run/-/run-0.6.3.tgz",
573
573
+
"integrity": "sha512-6zesLs4XLyFtG8s/JoG2VO/+plJVZhqbLK20yDm0hFEXrqcP+VCKTsoFAlWoWv4Us48V170SKH+8DZcxw8raJw==",
574
574
+
"dev": true,
575
575
+
"funding": [
576
576
+
"https://github.com/sponsors/dahlia"
577
577
+
],
578
578
+
"license": "MIT",
579
579
+
"dependencies": {
580
580
+
"@optique/core": "0.6.3"
581
581
+
},
582
582
+
"engines": {
583
583
+
"bun": ">=1.2.0",
584
584
+
"deno": ">=2.3.0",
585
585
+
"node": ">=20.0.0"
586
586
+
}
587
587
+
},
588
588
+
"node_modules/@oxc-project/runtime": {
589
589
+
"version": "0.97.0",
590
590
+
"resolved": "https://registry.npmjs.org/@oxc-project/runtime/-/runtime-0.97.0.tgz",
591
591
+
"integrity": "sha512-yH0zw7z+jEws4dZ4IUKoix5Lh3yhqIJWF9Dc8PWvhpo7U7O+lJrv7ZZL4BeRO0la8LBQFwcCewtLBnVV7hPe/w==",
592
592
+
"dev": true,
593
593
+
"license": "MIT",
594
594
+
"engines": {
595
595
+
"node": "^20.19.0 || >=22.12.0"
596
596
+
}
597
597
+
},
598
598
+
"node_modules/@oxc-project/types": {
599
599
+
"version": "0.97.0",
600
600
+
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.97.0.tgz",
601
601
+
"integrity": "sha512-lxmZK4xFrdvU0yZiDwgVQTCvh2gHWBJCBk5ALsrtsBWhs0uDIi+FTOnXRQeQfs304imdvTdaakT/lqwQ8hkOXQ==",
602
602
+
"dev": true,
603
603
+
"license": "MIT",
604
604
+
"funding": {
605
605
+
"url": "https://github.com/sponsors/Boshen"
606
606
+
}
607
607
+
},
608
608
+
"node_modules/@rolldown/binding-android-arm64": {
609
609
+
"version": "1.0.0-beta.50",
610
610
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.50.tgz",
611
611
+
"integrity": "sha512-XlEkrOIHLyGT3avOgzfTFSjG+f+dZMw+/qd+Y3HLN86wlndrB/gSimrJCk4gOhr1XtRtEKfszpadI3Md4Z4/Ag==",
612
612
+
"cpu": [
613
613
+
"arm64"
614
614
+
],
615
615
+
"dev": true,
616
616
+
"license": "MIT",
617
617
+
"optional": true,
618
618
+
"os": [
619
619
+
"android"
620
620
+
],
621
621
+
"engines": {
622
622
+
"node": "^20.19.0 || >=22.12.0"
623
623
+
}
624
624
+
},
625
625
+
"node_modules/@rolldown/binding-darwin-arm64": {
626
626
+
"version": "1.0.0-beta.50",
627
627
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.50.tgz",
628
628
+
"integrity": "sha512-+JRqKJhoFlt5r9q+DecAGPLZ5PxeLva+wCMtAuoFMWPoZzgcYrr599KQ+Ix0jwll4B4HGP43avu9My8KtSOR+w==",
629
629
+
"cpu": [
630
630
+
"arm64"
631
631
+
],
632
632
+
"dev": true,
633
633
+
"license": "MIT",
634
634
+
"optional": true,
635
635
+
"os": [
636
636
+
"darwin"
637
637
+
],
638
638
+
"engines": {
639
639
+
"node": "^20.19.0 || >=22.12.0"
640
640
+
}
641
641
+
},
642
642
+
"node_modules/@rolldown/binding-darwin-x64": {
643
643
+
"version": "1.0.0-beta.50",
644
644
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.50.tgz",
645
645
+
"integrity": "sha512-fFXDjXnuX7/gQZQm/1FoivVtRcyAzdjSik7Eo+9iwPQ9EgtA5/nB2+jmbzaKtMGG3q+BnZbdKHCtOacmNrkIDA==",
646
646
+
"cpu": [
647
647
+
"x64"
648
648
+
],
649
649
+
"dev": true,
650
650
+
"license": "MIT",
651
651
+
"optional": true,
652
652
+
"os": [
653
653
+
"darwin"
654
654
+
],
655
655
+
"engines": {
656
656
+
"node": "^20.19.0 || >=22.12.0"
657
657
+
}
658
658
+
},
659
659
+
"node_modules/@rolldown/binding-freebsd-x64": {
660
660
+
"version": "1.0.0-beta.50",
661
661
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.50.tgz",
662
662
+
"integrity": "sha512-F1b6vARy49tjmT/hbloplzgJS7GIvwWZqt+tAHEstCh0JIh9sa8FAMVqEmYxDviqKBaAI8iVvUREm/Kh/PD26Q==",
663
663
+
"cpu": [
664
664
+
"x64"
665
665
+
],
666
666
+
"dev": true,
667
667
+
"license": "MIT",
668
668
+
"optional": true,
669
669
+
"os": [
670
670
+
"freebsd"
671
671
+
],
672
672
+
"engines": {
673
673
+
"node": "^20.19.0 || >=22.12.0"
674
674
+
}
675
675
+
},
676
676
+
"node_modules/@rolldown/binding-linux-arm-gnueabihf": {
677
677
+
"version": "1.0.0-beta.50",
678
678
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.50.tgz",
679
679
+
"integrity": "sha512-U6cR76N8T8M6lHj7EZrQ3xunLPxSvYYxA8vJsBKZiFZkT8YV4kjgCO3KwMJL0NOjQCPGKyiXO07U+KmJzdPGRw==",
680
680
+
"cpu": [
681
681
+
"arm"
682
682
+
],
683
683
+
"dev": true,
684
684
+
"license": "MIT",
685
685
+
"optional": true,
686
686
+
"os": [
687
687
+
"linux"
688
688
+
],
689
689
+
"engines": {
690
690
+
"node": "^20.19.0 || >=22.12.0"
691
691
+
}
692
692
+
},
693
693
+
"node_modules/@rolldown/binding-linux-arm64-gnu": {
694
694
+
"version": "1.0.0-beta.50",
695
695
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.50.tgz",
696
696
+
"integrity": "sha512-ONgyjofCrrE3bnh5GZb8EINSFyR/hmwTzZ7oVuyUB170lboza1VMCnb8jgE6MsyyRgHYmN8Lb59i3NKGrxrYjw==",
697
697
+
"cpu": [
698
698
+
"arm64"
699
699
+
],
700
700
+
"dev": true,
701
701
+
"license": "MIT",
702
702
+
"optional": true,
703
703
+
"os": [
704
704
+
"linux"
705
705
+
],
706
706
+
"engines": {
707
707
+
"node": "^20.19.0 || >=22.12.0"
708
708
+
}
709
709
+
},
710
710
+
"node_modules/@rolldown/binding-linux-arm64-musl": {
711
711
+
"version": "1.0.0-beta.50",
712
712
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.50.tgz",
713
713
+
"integrity": "sha512-L0zRdH2oDPkmB+wvuTl+dJbXCsx62SkqcEqdM+79LOcB+PxbAxxjzHU14BuZIQdXcAVDzfpMfaHWzZuwhhBTcw==",
714
714
+
"cpu": [
715
715
+
"arm64"
716
716
+
],
717
717
+
"dev": true,
718
718
+
"license": "MIT",
719
719
+
"optional": true,
720
720
+
"os": [
721
721
+
"linux"
722
722
+
],
723
723
+
"engines": {
724
724
+
"node": "^20.19.0 || >=22.12.0"
725
725
+
}
726
726
+
},
727
727
+
"node_modules/@rolldown/binding-linux-x64-gnu": {
728
728
+
"version": "1.0.0-beta.50",
729
729
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.50.tgz",
730
730
+
"integrity": "sha512-gyoI8o/TGpQd3OzkJnh1M2kxy1Bisg8qJ5Gci0sXm9yLFzEXIFdtc4EAzepxGvrT2ri99ar5rdsmNG0zP0SbIg==",
731
731
+
"cpu": [
732
732
+
"x64"
733
733
+
],
734
734
+
"dev": true,
735
735
+
"license": "MIT",
736
736
+
"optional": true,
737
737
+
"os": [
738
738
+
"linux"
739
739
+
],
740
740
+
"engines": {
741
741
+
"node": "^20.19.0 || >=22.12.0"
742
742
+
}
743
743
+
},
744
744
+
"node_modules/@rolldown/binding-linux-x64-musl": {
745
745
+
"version": "1.0.0-beta.50",
746
746
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.50.tgz",
747
747
+
"integrity": "sha512-zti8A7M+xFDpKlghpcCAzyOi+e5nfUl3QhU023ce5NCgUxRG5zGP2GR9LTydQ1rnIPwZUVBWd4o7NjZDaQxaXA==",
748
748
+
"cpu": [
749
749
+
"x64"
750
750
+
],
751
751
+
"dev": true,
752
752
+
"license": "MIT",
753
753
+
"optional": true,
754
754
+
"os": [
755
755
+
"linux"
756
756
+
],
757
757
+
"engines": {
758
758
+
"node": "^20.19.0 || >=22.12.0"
759
759
+
}
760
760
+
},
761
761
+
"node_modules/@rolldown/binding-openharmony-arm64": {
762
762
+
"version": "1.0.0-beta.50",
763
763
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.50.tgz",
764
764
+
"integrity": "sha512-eZUssog7qljrrRU9Mi0eqYEPm3Ch0UwB+qlWPMKSUXHNqhm3TvDZarJQdTevGEfu3EHAXJvBIe0YFYr0TPVaMA==",
765
765
+
"cpu": [
766
766
+
"arm64"
767
767
+
],
768
768
+
"dev": true,
769
769
+
"license": "MIT",
770
770
+
"optional": true,
771
771
+
"os": [
772
772
+
"openharmony"
773
773
+
],
774
774
+
"engines": {
775
775
+
"node": "^20.19.0 || >=22.12.0"
776
776
+
}
777
777
+
},
778
778
+
"node_modules/@rolldown/binding-wasm32-wasi": {
779
779
+
"version": "1.0.0-beta.50",
780
780
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.50.tgz",
781
781
+
"integrity": "sha512-nmCN0nIdeUnmgeDXiQ+2HU6FT162o+rxnF7WMkBm4M5Ds8qTU7Dzv2Wrf22bo4ftnlrb2hKK6FSwAJSAe2FWLg==",
782
782
+
"cpu": [
783
783
+
"wasm32"
784
784
+
],
785
785
+
"dev": true,
786
786
+
"license": "MIT",
787
787
+
"optional": true,
788
788
+
"dependencies": {
789
789
+
"@napi-rs/wasm-runtime": "^1.0.7"
790
790
+
},
791
791
+
"engines": {
792
792
+
"node": ">=14.0.0"
793
793
+
}
794
794
+
},
795
795
+
"node_modules/@rolldown/binding-win32-arm64-msvc": {
796
796
+
"version": "1.0.0-beta.50",
797
797
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.50.tgz",
798
798
+
"integrity": "sha512-7kcNLi7Ua59JTTLvbe1dYb028QEPaJPJQHqkmSZ5q3tJueUeb6yjRtx8mw4uIqgWZcnQHAR3PrLN4XRJxvgIkA==",
799
799
+
"cpu": [
800
800
+
"arm64"
801
801
+
],
802
802
+
"dev": true,
803
803
+
"license": "MIT",
804
804
+
"optional": true,
805
805
+
"os": [
806
806
+
"win32"
807
807
+
],
808
808
+
"engines": {
809
809
+
"node": "^20.19.0 || >=22.12.0"
810
810
+
}
811
811
+
},
812
812
+
"node_modules/@rolldown/binding-win32-ia32-msvc": {
813
813
+
"version": "1.0.0-beta.50",
814
814
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.0.0-beta.50.tgz",
815
815
+
"integrity": "sha512-lL70VTNvSCdSZkDPPVMwWn/M2yQiYvSoXw9hTLgdIWdUfC3g72UaruezusR6ceRuwHCY1Ayu2LtKqXkBO5LIwg==",
816
816
+
"cpu": [
817
817
+
"ia32"
818
818
+
],
819
819
+
"dev": true,
820
820
+
"license": "MIT",
821
821
+
"optional": true,
822
822
+
"os": [
823
823
+
"win32"
824
824
+
],
825
825
+
"engines": {
826
826
+
"node": "^20.19.0 || >=22.12.0"
827
827
+
}
828
828
+
},
829
829
+
"node_modules/@rolldown/binding-win32-x64-msvc": {
830
830
+
"version": "1.0.0-beta.50",
831
831
+
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.50.tgz",
832
832
+
"integrity": "sha512-4qU4x5DXWB4JPjyTne/wBNPqkbQU8J45bl21geERBKtEittleonioACBL1R0PsBu0Aq21SwMK5a9zdBkWSlQtQ==",
833
833
+
"cpu": [
834
834
+
"x64"
835
835
+
],
836
836
+
"dev": true,
837
837
+
"license": "MIT",
838
838
+
"optional": true,
839
839
+
"os": [
840
840
+
"win32"
841
841
+
],
842
842
+
"engines": {
843
843
+
"node": "^20.19.0 || >=22.12.0"
844
844
+
}
845
845
+
},
846
846
+
"node_modules/@rolldown/pluginutils": {
847
847
+
"version": "1.0.0-beta.50",
848
848
+
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.50.tgz",
849
849
+
"integrity": "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==",
850
850
+
"dev": true,
851
851
+
"license": "MIT"
852
852
+
},
853
853
+
"node_modules/@rollup/pluginutils": {
854
854
+
"version": "5.3.0",
855
855
+
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
856
856
+
"integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
857
857
+
"dev": true,
858
858
+
"license": "MIT",
859
859
+
"dependencies": {
860
860
+
"@types/estree": "^1.0.0",
861
861
+
"estree-walker": "^2.0.2",
862
862
+
"picomatch": "^4.0.2"
863
863
+
},
864
864
+
"engines": {
865
865
+
"node": ">=14.0.0"
866
866
+
},
867
867
+
"peerDependencies": {
868
868
+
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
869
869
+
},
870
870
+
"peerDependenciesMeta": {
871
871
+
"rollup": {
872
872
+
"optional": true
873
873
+
}
874
874
+
}
875
875
+
},
876
876
+
"node_modules/@rushstack/node-core-library": {
877
877
+
"version": "5.19.0",
878
878
+
"resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.19.0.tgz",
879
879
+
"integrity": "sha512-BxAopbeWBvNJ6VGiUL+5lbJXywTdsnMeOS8j57Cn/xY10r6sV/gbsTlfYKjzVCUBZATX2eRzJHSMCchsMTGN6A==",
880
880
+
"dev": true,
881
881
+
"license": "MIT",
882
882
+
"dependencies": {
883
883
+
"ajv": "~8.13.0",
884
884
+
"ajv-draft-04": "~1.0.0",
885
885
+
"ajv-formats": "~3.0.1",
886
886
+
"fs-extra": "~11.3.0",
887
887
+
"import-lazy": "~4.0.0",
888
888
+
"jju": "~1.4.0",
889
889
+
"resolve": "~1.22.1",
890
890
+
"semver": "~7.5.4"
891
891
+
},
892
892
+
"peerDependencies": {
893
893
+
"@types/node": "*"
894
894
+
},
895
895
+
"peerDependenciesMeta": {
896
896
+
"@types/node": {
897
897
+
"optional": true
898
898
+
}
899
899
+
}
900
900
+
},
901
901
+
"node_modules/@rushstack/node-core-library/node_modules/ajv": {
902
902
+
"version": "8.13.0",
903
903
+
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz",
904
904
+
"integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==",
905
905
+
"dev": true,
906
906
+
"license": "MIT",
907
907
+
"dependencies": {
908
908
+
"fast-deep-equal": "^3.1.3",
909
909
+
"json-schema-traverse": "^1.0.0",
910
910
+
"require-from-string": "^2.0.2",
911
911
+
"uri-js": "^4.4.1"
912
912
+
},
913
913
+
"funding": {
914
914
+
"type": "github",
915
915
+
"url": "https://github.com/sponsors/epoberezkin"
916
916
+
}
917
917
+
},
918
918
+
"node_modules/@rushstack/problem-matcher": {
919
919
+
"version": "0.1.1",
920
920
+
"resolved": "https://registry.npmjs.org/@rushstack/problem-matcher/-/problem-matcher-0.1.1.tgz",
921
921
+
"integrity": "sha512-Fm5XtS7+G8HLcJHCWpES5VmeMyjAKaWeyZU5qPzZC+22mPlJzAsOxymHiWIfuirtPckX3aptWws+K2d0BzniJA==",
922
922
+
"dev": true,
923
923
+
"license": "MIT",
924
924
+
"peerDependencies": {
925
925
+
"@types/node": "*"
926
926
+
},
927
927
+
"peerDependenciesMeta": {
928
928
+
"@types/node": {
929
929
+
"optional": true
930
930
+
}
931
931
+
}
932
932
+
},
933
933
+
"node_modules/@rushstack/rig-package": {
934
934
+
"version": "0.6.0",
935
935
+
"resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.6.0.tgz",
936
936
+
"integrity": "sha512-ZQmfzsLE2+Y91GF15c65L/slMRVhF6Hycq04D4TwtdGaUAbIXXg9c5pKA5KFU7M4QMaihoobp9JJYpYcaY3zOw==",
937
937
+
"dev": true,
938
938
+
"license": "MIT",
939
939
+
"dependencies": {
940
940
+
"resolve": "~1.22.1",
941
941
+
"strip-json-comments": "~3.1.1"
942
942
+
}
943
943
+
},
944
944
+
"node_modules/@rushstack/terminal": {
945
945
+
"version": "0.19.4",
946
946
+
"resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.19.4.tgz",
947
947
+
"integrity": "sha512-f4XQk02CrKfrMgyOfhYd3qWI944dLC21S4I/LUhrlAP23GTMDNG6EK5effQtFkISwUKCgD9vMBrJZaPSUquxWQ==",
948
948
+
"dev": true,
949
949
+
"license": "MIT",
950
950
+
"dependencies": {
951
951
+
"@rushstack/node-core-library": "5.19.0",
952
952
+
"@rushstack/problem-matcher": "0.1.1",
953
953
+
"supports-color": "~8.1.1"
954
954
+
},
955
955
+
"peerDependencies": {
956
956
+
"@types/node": "*"
957
957
+
},
958
958
+
"peerDependenciesMeta": {
959
959
+
"@types/node": {
960
960
+
"optional": true
961
961
+
}
962
962
+
}
963
963
+
},
964
964
+
"node_modules/@rushstack/ts-command-line": {
965
965
+
"version": "5.1.4",
966
966
+
"resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.1.4.tgz",
967
967
+
"integrity": "sha512-H0I6VdJ6sOUbktDFpP2VW5N29w8v4hRoNZOQz02vtEi6ZTYL1Ju8u+TcFiFawUDrUsx/5MQTUhd79uwZZVwVlA==",
968
968
+
"dev": true,
969
969
+
"license": "MIT",
970
970
+
"dependencies": {
971
971
+
"@rushstack/terminal": "0.19.4",
972
972
+
"@types/argparse": "1.0.38",
973
973
+
"argparse": "~1.0.9",
974
974
+
"string-argv": "~0.3.1"
975
975
+
}
976
976
+
},
977
977
+
"node_modules/@standard-schema/spec": {
978
978
+
"version": "1.0.0",
979
979
+
"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz",
980
980
+
"integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==",
981
981
+
"dev": true,
982
982
+
"license": "MIT"
983
983
+
},
984
984
+
"node_modules/@sveltejs/acorn-typescript": {
985
985
+
"version": "1.0.7",
986
986
+
"resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.7.tgz",
987
987
+
"integrity": "sha512-znp1A/Y1Jj4l/Zy7PX5DZKBE0ZNY+5QBngiE21NJkfSTyzzC5iKNWOtwFXKtIrn7MXEFBck4jD95iBNkGjK92Q==",
988
988
+
"dev": true,
989
989
+
"license": "MIT",
990
990
+
"peerDependencies": {
991
991
+
"acorn": "^8.9.0"
992
992
+
}
993
993
+
},
994
994
+
"node_modules/@sveltejs/vite-plugin-svelte": {
995
995
+
"version": "6.2.1",
996
996
+
"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.2.1.tgz",
997
997
+
"integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==",
998
998
+
"dev": true,
999
999
+
"license": "MIT",
1000
1000
+
"peer": true,
1001
1001
+
"dependencies": {
1002
1002
+
"@sveltejs/vite-plugin-svelte-inspector": "^5.0.0",
1003
1003
+
"debug": "^4.4.1",
1004
1004
+
"deepmerge": "^4.3.1",
1005
1005
+
"magic-string": "^0.30.17",
1006
1006
+
"vitefu": "^1.1.1"
1007
1007
+
},
1008
1008
+
"engines": {
1009
1009
+
"node": "^20.19 || ^22.12 || >=24"
1010
1010
+
},
1011
1011
+
"peerDependencies": {
1012
1012
+
"svelte": "^5.0.0",
1013
1013
+
"vite": "^6.3.0 || ^7.0.0"
1014
1014
+
}
1015
1015
+
},
1016
1016
+
"node_modules/@sveltejs/vite-plugin-svelte-inspector": {
1017
1017
+
"version": "5.0.1",
1018
1018
+
"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.1.tgz",
1019
1019
+
"integrity": "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA==",
1020
1020
+
"dev": true,
1021
1021
+
"license": "MIT",
1022
1022
+
"dependencies": {
1023
1023
+
"debug": "^4.4.1"
1024
1024
+
},
1025
1025
+
"engines": {
1026
1026
+
"node": "^20.19 || ^22.12 || >=24"
1027
1027
+
},
1028
1028
+
"peerDependencies": {
1029
1029
+
"@sveltejs/vite-plugin-svelte": "^6.0.0-next.0",
1030
1030
+
"svelte": "^5.0.0",
1031
1031
+
"vite": "^6.3.0 || ^7.0.0"
1032
1032
+
}
1033
1033
+
},
1034
1034
+
"node_modules/@tsconfig/svelte": {
1035
1035
+
"version": "5.0.6",
1036
1036
+
"resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.6.tgz",
1037
1037
+
"integrity": "sha512-yGxYL0I9eETH1/DR9qVJey4DAsCdeau4a9wYPKuXfEhm8lFO8wg+LLYJjIpAm6Fw7HSlhepPhYPDop75485yWQ==",
1038
1038
+
"dev": true,
1039
1039
+
"license": "MIT"
1040
1040
+
},
1041
1041
+
"node_modules/@tybys/wasm-util": {
1042
1042
+
"version": "0.10.1",
1043
1043
+
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
1044
1044
+
"integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
1045
1045
+
"dev": true,
1046
1046
+
"license": "MIT",
1047
1047
+
"optional": true,
1048
1048
+
"dependencies": {
1049
1049
+
"tslib": "^2.4.0"
1050
1050
+
}
1051
1051
+
},
1052
1052
+
"node_modules/@types/argparse": {
1053
1053
+
"version": "1.0.38",
1054
1054
+
"resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz",
1055
1055
+
"integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==",
1056
1056
+
"dev": true,
1057
1057
+
"license": "MIT"
1058
1058
+
},
1059
1059
+
"node_modules/@types/estree": {
1060
1060
+
"version": "1.0.8",
1061
1061
+
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
1062
1062
+
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
1063
1063
+
"dev": true,
1064
1064
+
"license": "MIT"
1065
1065
+
},
1066
1066
+
"node_modules/@types/node": {
1067
1067
+
"version": "24.10.1",
1068
1068
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz",
1069
1069
+
"integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==",
1070
1070
+
"dev": true,
1071
1071
+
"license": "MIT",
1072
1072
+
"peer": true,
1073
1073
+
"dependencies": {
1074
1074
+
"undici-types": "~7.16.0"
1075
1075
+
}
1076
1076
+
},
1077
1077
+
"node_modules/@volar/language-core": {
1078
1078
+
"version": "2.4.26",
1079
1079
+
"resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.26.tgz",
1080
1080
+
"integrity": "sha512-hH0SMitMxnB43OZpyF1IFPS9bgb2I3bpCh76m2WEK7BE0A0EzpYsRp0CCH2xNKshr7kacU5TQBLYn4zj7CG60A==",
1081
1081
+
"dev": true,
1082
1082
+
"license": "MIT",
1083
1083
+
"dependencies": {
1084
1084
+
"@volar/source-map": "2.4.26"
1085
1085
+
}
1086
1086
+
},
1087
1087
+
"node_modules/@volar/source-map": {
1088
1088
+
"version": "2.4.26",
1089
1089
+
"resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.26.tgz",
1090
1090
+
"integrity": "sha512-JJw0Tt/kSFsIRmgTQF4JSt81AUSI1aEye5Zl65EeZ8H35JHnTvFGmpDOBn5iOxd48fyGE+ZvZBp5FcgAy/1Qhw==",
1091
1091
+
"dev": true,
1092
1092
+
"license": "MIT"
1093
1093
+
},
1094
1094
+
"node_modules/@volar/typescript": {
1095
1095
+
"version": "2.4.26",
1096
1096
+
"resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.26.tgz",
1097
1097
+
"integrity": "sha512-N87ecLD48Sp6zV9zID/5yuS1+5foj0DfuYGdQ6KHj/IbKvyKv1zNX6VCmnKYwtmHadEO6mFc2EKISiu3RDPAvA==",
1098
1098
+
"dev": true,
1099
1099
+
"license": "MIT",
1100
1100
+
"dependencies": {
1101
1101
+
"@volar/language-core": "2.4.26",
1102
1102
+
"path-browserify": "^1.0.1",
1103
1103
+
"vscode-uri": "^3.0.8"
1104
1104
+
}
1105
1105
+
},
1106
1106
+
"node_modules/@vue/compiler-core": {
1107
1107
+
"version": "3.5.25",
1108
1108
+
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.25.tgz",
1109
1109
+
"integrity": "sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==",
1110
1110
+
"dev": true,
1111
1111
+
"license": "MIT",
1112
1112
+
"dependencies": {
1113
1113
+
"@babel/parser": "^7.28.5",
1114
1114
+
"@vue/shared": "3.5.25",
1115
1115
+
"entities": "^4.5.0",
1116
1116
+
"estree-walker": "^2.0.2",
1117
1117
+
"source-map-js": "^1.2.1"
1118
1118
+
}
1119
1119
+
},
1120
1120
+
"node_modules/@vue/compiler-dom": {
1121
1121
+
"version": "3.5.25",
1122
1122
+
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.25.tgz",
1123
1123
+
"integrity": "sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==",
1124
1124
+
"dev": true,
1125
1125
+
"license": "MIT",
1126
1126
+
"dependencies": {
1127
1127
+
"@vue/compiler-core": "3.5.25",
1128
1128
+
"@vue/shared": "3.5.25"
1129
1129
+
}
1130
1130
+
},
1131
1131
+
"node_modules/@vue/compiler-vue2": {
1132
1132
+
"version": "2.7.16",
1133
1133
+
"resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz",
1134
1134
+
"integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==",
1135
1135
+
"dev": true,
1136
1136
+
"license": "MIT",
1137
1137
+
"dependencies": {
1138
1138
+
"de-indent": "^1.0.2",
1139
1139
+
"he": "^1.2.0"
1140
1140
+
}
1141
1141
+
},
1142
1142
+
"node_modules/@vue/language-core": {
1143
1143
+
"version": "2.2.0",
1144
1144
+
"resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.2.0.tgz",
1145
1145
+
"integrity": "sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==",
1146
1146
+
"dev": true,
1147
1147
+
"license": "MIT",
1148
1148
+
"dependencies": {
1149
1149
+
"@volar/language-core": "~2.4.11",
1150
1150
+
"@vue/compiler-dom": "^3.5.0",
1151
1151
+
"@vue/compiler-vue2": "^2.7.16",
1152
1152
+
"@vue/shared": "^3.5.0",
1153
1153
+
"alien-signals": "^0.4.9",
1154
1154
+
"minimatch": "^9.0.3",
1155
1155
+
"muggle-string": "^0.4.1",
1156
1156
+
"path-browserify": "^1.0.1"
1157
1157
+
},
1158
1158
+
"peerDependencies": {
1159
1159
+
"typescript": "*"
1160
1160
+
},
1161
1161
+
"peerDependenciesMeta": {
1162
1162
+
"typescript": {
1163
1163
+
"optional": true
1164
1164
+
}
1165
1165
+
}
1166
1166
+
},
1167
1167
+
"node_modules/@vue/language-core/node_modules/minimatch": {
1168
1168
+
"version": "9.0.5",
1169
1169
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
1170
1170
+
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
1171
1171
+
"dev": true,
1172
1172
+
"license": "ISC",
1173
1173
+
"dependencies": {
1174
1174
+
"brace-expansion": "^2.0.1"
1175
1175
+
},
1176
1176
+
"engines": {
1177
1177
+
"node": ">=16 || 14 >=14.17"
1178
1178
+
},
1179
1179
+
"funding": {
1180
1180
+
"url": "https://github.com/sponsors/isaacs"
1181
1181
+
}
1182
1182
+
},
1183
1183
+
"node_modules/@vue/shared": {
1184
1184
+
"version": "3.5.25",
1185
1185
+
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.25.tgz",
1186
1186
+
"integrity": "sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==",
1187
1187
+
"dev": true,
1188
1188
+
"license": "MIT"
1189
1189
+
},
1190
1190
+
"node_modules/acorn": {
1191
1191
+
"version": "8.15.0",
1192
1192
+
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
1193
1193
+
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
1194
1194
+
"dev": true,
1195
1195
+
"license": "MIT",
1196
1196
+
"peer": true,
1197
1197
+
"bin": {
1198
1198
+
"acorn": "bin/acorn"
1199
1199
+
},
1200
1200
+
"engines": {
1201
1201
+
"node": ">=0.4.0"
1202
1202
+
}
1203
1203
+
},
1204
1204
+
"node_modules/actor-typeahead": {
1205
1205
+
"version": "0.1.2",
1206
1206
+
"resolved": "https://registry.npmjs.org/actor-typeahead/-/actor-typeahead-0.1.2.tgz",
1207
1207
+
"integrity": "sha512-I97YqqNl7Kar0J/bIJvgY/KmHpssHcDElhfwVTLP7wRFlkxso2ZLBqiS2zol5A8UVUJbQK2JXYaqNpZXz8Uk2A==",
1208
1208
+
"license": "MPL-2.0"
1209
1209
+
},
1210
1210
+
"node_modules/ajv": {
1211
1211
+
"version": "8.12.0",
1212
1212
+
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
1213
1213
+
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
1214
1214
+
"dev": true,
1215
1215
+
"license": "MIT",
1216
1216
+
"dependencies": {
1217
1217
+
"fast-deep-equal": "^3.1.1",
1218
1218
+
"json-schema-traverse": "^1.0.0",
1219
1219
+
"require-from-string": "^2.0.2",
1220
1220
+
"uri-js": "^4.2.2"
1221
1221
+
},
1222
1222
+
"funding": {
1223
1223
+
"type": "github",
1224
1224
+
"url": "https://github.com/sponsors/epoberezkin"
1225
1225
+
}
1226
1226
+
},
1227
1227
+
"node_modules/ajv-draft-04": {
1228
1228
+
"version": "1.0.0",
1229
1229
+
"resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz",
1230
1230
+
"integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==",
1231
1231
+
"dev": true,
1232
1232
+
"license": "MIT",
1233
1233
+
"peerDependencies": {
1234
1234
+
"ajv": "^8.5.0"
1235
1235
+
},
1236
1236
+
"peerDependenciesMeta": {
1237
1237
+
"ajv": {
1238
1238
+
"optional": true
1239
1239
+
}
1240
1240
+
}
1241
1241
+
},
1242
1242
+
"node_modules/ajv-formats": {
1243
1243
+
"version": "3.0.1",
1244
1244
+
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
1245
1245
+
"integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
1246
1246
+
"dev": true,
1247
1247
+
"license": "MIT",
1248
1248
+
"dependencies": {
1249
1249
+
"ajv": "^8.0.0"
1250
1250
+
},
1251
1251
+
"peerDependencies": {
1252
1252
+
"ajv": "^8.0.0"
1253
1253
+
},
1254
1254
+
"peerDependenciesMeta": {
1255
1255
+
"ajv": {
1256
1256
+
"optional": true
1257
1257
+
}
1258
1258
+
}
1259
1259
+
},
1260
1260
+
"node_modules/alien-signals": {
1261
1261
+
"version": "0.4.14",
1262
1262
+
"resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-0.4.14.tgz",
1263
1263
+
"integrity": "sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==",
1264
1264
+
"dev": true,
1265
1265
+
"license": "MIT"
1266
1266
+
},
1267
1267
+
"node_modules/argparse": {
1268
1268
+
"version": "1.0.10",
1269
1269
+
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
1270
1270
+
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
1271
1271
+
"dev": true,
1272
1272
+
"license": "MIT",
1273
1273
+
"dependencies": {
1274
1274
+
"sprintf-js": "~1.0.2"
1275
1275
+
}
1276
1276
+
},
1277
1277
+
"node_modules/aria-query": {
1278
1278
+
"version": "5.3.2",
1279
1279
+
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
1280
1280
+
"integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
1281
1281
+
"dev": true,
1282
1282
+
"license": "Apache-2.0",
1283
1283
+
"engines": {
1284
1284
+
"node": ">= 0.4"
1285
1285
+
}
1286
1286
+
},
1287
1287
+
"node_modules/axobject-query": {
1288
1288
+
"version": "4.1.0",
1289
1289
+
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
1290
1290
+
"integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
1291
1291
+
"dev": true,
1292
1292
+
"license": "Apache-2.0",
1293
1293
+
"engines": {
1294
1294
+
"node": ">= 0.4"
1295
1295
+
}
1296
1296
+
},
1297
1297
+
"node_modules/balanced-match": {
1298
1298
+
"version": "1.0.2",
1299
1299
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1300
1300
+
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1301
1301
+
"dev": true,
1302
1302
+
"license": "MIT"
1303
1303
+
},
1304
1304
+
"node_modules/brace-expansion": {
1305
1305
+
"version": "2.0.2",
1306
1306
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
1307
1307
+
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
1308
1308
+
"dev": true,
1309
1309
+
"license": "MIT",
1310
1310
+
"dependencies": {
1311
1311
+
"balanced-match": "^1.0.0"
1312
1312
+
}
1313
1313
+
},
1314
1314
+
"node_modules/chokidar": {
1315
1315
+
"version": "4.0.3",
1316
1316
+
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
1317
1317
+
"integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
1318
1318
+
"dev": true,
1319
1319
+
"license": "MIT",
1320
1320
+
"dependencies": {
1321
1321
+
"readdirp": "^4.0.1"
1322
1322
+
},
1323
1323
+
"engines": {
1324
1324
+
"node": ">= 14.16.0"
1325
1325
+
},
1326
1326
+
"funding": {
1327
1327
+
"url": "https://paulmillr.com/funding/"
1328
1328
+
}
1329
1329
+
},
1330
1330
+
"node_modules/clsx": {
1331
1331
+
"version": "2.1.1",
1332
1332
+
"resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
1333
1333
+
"integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
1334
1334
+
"dev": true,
1335
1335
+
"license": "MIT",
1336
1336
+
"engines": {
1337
1337
+
"node": ">=6"
1338
1338
+
}
1339
1339
+
},
1340
1340
+
"node_modules/compare-versions": {
1341
1341
+
"version": "6.1.1",
1342
1342
+
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz",
1343
1343
+
"integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==",
1344
1344
+
"dev": true,
1345
1345
+
"license": "MIT"
1346
1346
+
},
1347
1347
+
"node_modules/confbox": {
1348
1348
+
"version": "0.2.2",
1349
1349
+
"resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz",
1350
1350
+
"integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==",
1351
1351
+
"dev": true,
1352
1352
+
"license": "MIT"
1353
1353
+
},
1354
1354
+
"node_modules/de-indent": {
1355
1355
+
"version": "1.0.2",
1356
1356
+
"resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
1357
1357
+
"integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
1358
1358
+
"dev": true,
1359
1359
+
"license": "MIT"
1360
1360
+
},
1361
1361
+
"node_modules/debug": {
1362
1362
+
"version": "4.4.3",
1363
1363
+
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
1364
1364
+
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
1365
1365
+
"dev": true,
1366
1366
+
"license": "MIT",
1367
1367
+
"dependencies": {
1368
1368
+
"ms": "^2.1.3"
1369
1369
+
},
1370
1370
+
"engines": {
1371
1371
+
"node": ">=6.0"
1372
1372
+
},
1373
1373
+
"peerDependenciesMeta": {
1374
1374
+
"supports-color": {
1375
1375
+
"optional": true
1376
1376
+
}
1377
1377
+
}
1378
1378
+
},
1379
1379
+
"node_modules/deepmerge": {
1380
1380
+
"version": "4.3.1",
1381
1381
+
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
1382
1382
+
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
1383
1383
+
"dev": true,
1384
1384
+
"license": "MIT",
1385
1385
+
"engines": {
1386
1386
+
"node": ">=0.10.0"
1387
1387
+
}
1388
1388
+
},
1389
1389
+
"node_modules/detect-libc": {
1390
1390
+
"version": "2.1.2",
1391
1391
+
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
1392
1392
+
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
1393
1393
+
"dev": true,
1394
1394
+
"license": "Apache-2.0",
1395
1395
+
"engines": {
1396
1396
+
"node": ">=8"
1397
1397
+
}
1398
1398
+
},
1399
1399
+
"node_modules/devalue": {
1400
1400
+
"version": "5.5.0",
1401
1401
+
"resolved": "https://registry.npmjs.org/devalue/-/devalue-5.5.0.tgz",
1402
1402
+
"integrity": "sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w==",
1403
1403
+
"dev": true,
1404
1404
+
"license": "MIT"
1405
1405
+
},
1406
1406
+
"node_modules/diff": {
1407
1407
+
"version": "8.0.2",
1408
1408
+
"resolved": "https://registry.npmjs.org/diff/-/diff-8.0.2.tgz",
1409
1409
+
"integrity": "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==",
1410
1410
+
"dev": true,
1411
1411
+
"license": "BSD-3-Clause",
1412
1412
+
"engines": {
1413
1413
+
"node": ">=0.3.1"
1414
1414
+
}
1415
1415
+
},
1416
1416
+
"node_modules/entities": {
1417
1417
+
"version": "4.5.0",
1418
1418
+
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
1419
1419
+
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
1420
1420
+
"dev": true,
1421
1421
+
"license": "BSD-2-Clause",
1422
1422
+
"engines": {
1423
1423
+
"node": ">=0.12"
1424
1424
+
},
1425
1425
+
"funding": {
1426
1426
+
"url": "https://github.com/fb55/entities?sponsor=1"
1427
1427
+
}
1428
1428
+
},
1429
1429
+
"node_modules/esm-env": {
1430
1430
+
"version": "1.2.2",
1431
1431
+
"resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
1432
1432
+
"integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
1433
1433
+
"dev": true,
1434
1434
+
"license": "MIT"
1435
1435
+
},
1436
1436
+
"node_modules/esrap": {
1437
1437
+
"version": "2.2.0",
1438
1438
+
"resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.0.tgz",
1439
1439
+
"integrity": "sha512-WBmtxe7R9C5mvL4n2le8nMUe4mD5V9oiK2vJpQ9I3y20ENPUomPcphBXE8D1x/Bm84oN1V+lOfgXxtqmxTp3Xg==",
1440
1440
+
"dev": true,
1441
1441
+
"license": "MIT",
1442
1442
+
"dependencies": {
1443
1443
+
"@jridgewell/sourcemap-codec": "^1.4.15"
1444
1444
+
}
1445
1445
+
},
1446
1446
+
"node_modules/estree-walker": {
1447
1447
+
"version": "2.0.2",
1448
1448
+
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1449
1449
+
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
1450
1450
+
"dev": true,
1451
1451
+
"license": "MIT"
1452
1452
+
},
1453
1453
+
"node_modules/exsolve": {
1454
1454
+
"version": "1.0.8",
1455
1455
+
"resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz",
1456
1456
+
"integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==",
1457
1457
+
"dev": true,
1458
1458
+
"license": "MIT"
1459
1459
+
},
1460
1460
+
"node_modules/fast-deep-equal": {
1461
1461
+
"version": "3.1.3",
1462
1462
+
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
1463
1463
+
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
1464
1464
+
"dev": true,
1465
1465
+
"license": "MIT"
1466
1466
+
},
1467
1467
+
"node_modules/fdir": {
1468
1468
+
"version": "6.5.0",
1469
1469
+
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
1470
1470
+
"integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
1471
1471
+
"dev": true,
1472
1472
+
"license": "MIT",
1473
1473
+
"engines": {
1474
1474
+
"node": ">=12.0.0"
1475
1475
+
},
1476
1476
+
"peerDependencies": {
1477
1477
+
"picomatch": "^3 || ^4"
1478
1478
+
},
1479
1479
+
"peerDependenciesMeta": {
1480
1480
+
"picomatch": {
1481
1481
+
"optional": true
1482
1482
+
}
1483
1483
+
}
1484
1484
+
},
1485
1485
+
"node_modules/fs-extra": {
1486
1486
+
"version": "11.3.2",
1487
1487
+
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz",
1488
1488
+
"integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==",
1489
1489
+
"dev": true,
1490
1490
+
"license": "MIT",
1491
1491
+
"dependencies": {
1492
1492
+
"graceful-fs": "^4.2.0",
1493
1493
+
"jsonfile": "^6.0.1",
1494
1494
+
"universalify": "^2.0.0"
1495
1495
+
},
1496
1496
+
"engines": {
1497
1497
+
"node": ">=14.14"
1498
1498
+
}
1499
1499
+
},
1500
1500
+
"node_modules/fsevents": {
1501
1501
+
"version": "2.3.3",
1502
1502
+
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1503
1503
+
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1504
1504
+
"dev": true,
1505
1505
+
"hasInstallScript": true,
1506
1506
+
"license": "MIT",
1507
1507
+
"optional": true,
1508
1508
+
"os": [
1509
1509
+
"darwin"
1510
1510
+
],
1511
1511
+
"engines": {
1512
1512
+
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1513
1513
+
}
1514
1514
+
},
1515
1515
+
"node_modules/function-bind": {
1516
1516
+
"version": "1.1.2",
1517
1517
+
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
1518
1518
+
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
1519
1519
+
"dev": true,
1520
1520
+
"license": "MIT",
1521
1521
+
"funding": {
1522
1522
+
"url": "https://github.com/sponsors/ljharb"
1523
1523
+
}
1524
1524
+
},
1525
1525
+
"node_modules/graceful-fs": {
1526
1526
+
"version": "4.2.11",
1527
1527
+
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
1528
1528
+
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
1529
1529
+
"dev": true,
1530
1530
+
"license": "ISC"
1531
1531
+
},
1532
1532
+
"node_modules/has-flag": {
1533
1533
+
"version": "4.0.0",
1534
1534
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1535
1535
+
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1536
1536
+
"dev": true,
1537
1537
+
"license": "MIT",
1538
1538
+
"engines": {
1539
1539
+
"node": ">=8"
1540
1540
+
}
1541
1541
+
},
1542
1542
+
"node_modules/hasown": {
1543
1543
+
"version": "2.0.2",
1544
1544
+
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
1545
1545
+
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
1546
1546
+
"dev": true,
1547
1547
+
"license": "MIT",
1548
1548
+
"dependencies": {
1549
1549
+
"function-bind": "^1.1.2"
1550
1550
+
},
1551
1551
+
"engines": {
1552
1552
+
"node": ">= 0.4"
1553
1553
+
}
1554
1554
+
},
1555
1555
+
"node_modules/he": {
1556
1556
+
"version": "1.2.0",
1557
1557
+
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
1558
1558
+
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
1559
1559
+
"dev": true,
1560
1560
+
"license": "MIT",
1561
1561
+
"bin": {
1562
1562
+
"he": "bin/he"
1563
1563
+
}
1564
1564
+
},
1565
1565
+
"node_modules/import-lazy": {
1566
1566
+
"version": "4.0.0",
1567
1567
+
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
1568
1568
+
"integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
1569
1569
+
"dev": true,
1570
1570
+
"license": "MIT",
1571
1571
+
"engines": {
1572
1572
+
"node": ">=8"
1573
1573
+
}
1574
1574
+
},
1575
1575
+
"node_modules/is-core-module": {
1576
1576
+
"version": "2.16.1",
1577
1577
+
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
1578
1578
+
"integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
1579
1579
+
"dev": true,
1580
1580
+
"license": "MIT",
1581
1581
+
"dependencies": {
1582
1582
+
"hasown": "^2.0.2"
1583
1583
+
},
1584
1584
+
"engines": {
1585
1585
+
"node": ">= 0.4"
1586
1586
+
},
1587
1587
+
"funding": {
1588
1588
+
"url": "https://github.com/sponsors/ljharb"
1589
1589
+
}
1590
1590
+
},
1591
1591
+
"node_modules/is-reference": {
1592
1592
+
"version": "3.0.3",
1593
1593
+
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz",
1594
1594
+
"integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==",
1595
1595
+
"dev": true,
1596
1596
+
"license": "MIT",
1597
1597
+
"dependencies": {
1598
1598
+
"@types/estree": "^1.0.6"
1599
1599
+
}
1600
1600
+
},
1601
1601
+
"node_modules/jju": {
1602
1602
+
"version": "1.4.0",
1603
1603
+
"resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
1604
1604
+
"integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==",
1605
1605
+
"dev": true,
1606
1606
+
"license": "MIT"
1607
1607
+
},
1608
1608
+
"node_modules/json-schema-traverse": {
1609
1609
+
"version": "1.0.0",
1610
1610
+
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
1611
1611
+
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
1612
1612
+
"dev": true,
1613
1613
+
"license": "MIT"
1614
1614
+
},
1615
1615
+
"node_modules/jsonfile": {
1616
1616
+
"version": "6.2.0",
1617
1617
+
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz",
1618
1618
+
"integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==",
1619
1619
+
"dev": true,
1620
1620
+
"license": "MIT",
1621
1621
+
"dependencies": {
1622
1622
+
"universalify": "^2.0.0"
1623
1623
+
},
1624
1624
+
"optionalDependencies": {
1625
1625
+
"graceful-fs": "^4.1.6"
1626
1626
+
}
1627
1627
+
},
1628
1628
+
"node_modules/kolorist": {
1629
1629
+
"version": "1.8.0",
1630
1630
+
"resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
1631
1631
+
"integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
1632
1632
+
"dev": true,
1633
1633
+
"license": "MIT"
1634
1634
+
},
1635
1635
+
"node_modules/lightningcss": {
1636
1636
+
"version": "1.30.2",
1637
1637
+
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz",
1638
1638
+
"integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==",
1639
1639
+
"dev": true,
1640
1640
+
"license": "MPL-2.0",
1641
1641
+
"dependencies": {
1642
1642
+
"detect-libc": "^2.0.3"
1643
1643
+
},
1644
1644
+
"engines": {
1645
1645
+
"node": ">= 12.0.0"
1646
1646
+
},
1647
1647
+
"funding": {
1648
1648
+
"type": "opencollective",
1649
1649
+
"url": "https://opencollective.com/parcel"
1650
1650
+
},
1651
1651
+
"optionalDependencies": {
1652
1652
+
"lightningcss-android-arm64": "1.30.2",
1653
1653
+
"lightningcss-darwin-arm64": "1.30.2",
1654
1654
+
"lightningcss-darwin-x64": "1.30.2",
1655
1655
+
"lightningcss-freebsd-x64": "1.30.2",
1656
1656
+
"lightningcss-linux-arm-gnueabihf": "1.30.2",
1657
1657
+
"lightningcss-linux-arm64-gnu": "1.30.2",
1658
1658
+
"lightningcss-linux-arm64-musl": "1.30.2",
1659
1659
+
"lightningcss-linux-x64-gnu": "1.30.2",
1660
1660
+
"lightningcss-linux-x64-musl": "1.30.2",
1661
1661
+
"lightningcss-win32-arm64-msvc": "1.30.2",
1662
1662
+
"lightningcss-win32-x64-msvc": "1.30.2"
1663
1663
+
}
1664
1664
+
},
1665
1665
+
"node_modules/lightningcss-android-arm64": {
1666
1666
+
"version": "1.30.2",
1667
1667
+
"resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz",
1668
1668
+
"integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==",
1669
1669
+
"cpu": [
1670
1670
+
"arm64"
1671
1671
+
],
1672
1672
+
"dev": true,
1673
1673
+
"license": "MPL-2.0",
1674
1674
+
"optional": true,
1675
1675
+
"os": [
1676
1676
+
"android"
1677
1677
+
],
1678
1678
+
"engines": {
1679
1679
+
"node": ">= 12.0.0"
1680
1680
+
},
1681
1681
+
"funding": {
1682
1682
+
"type": "opencollective",
1683
1683
+
"url": "https://opencollective.com/parcel"
1684
1684
+
}
1685
1685
+
},
1686
1686
+
"node_modules/lightningcss-darwin-arm64": {
1687
1687
+
"version": "1.30.2",
1688
1688
+
"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz",
1689
1689
+
"integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==",
1690
1690
+
"cpu": [
1691
1691
+
"arm64"
1692
1692
+
],
1693
1693
+
"dev": true,
1694
1694
+
"license": "MPL-2.0",
1695
1695
+
"optional": true,
1696
1696
+
"os": [
1697
1697
+
"darwin"
1698
1698
+
],
1699
1699
+
"engines": {
1700
1700
+
"node": ">= 12.0.0"
1701
1701
+
},
1702
1702
+
"funding": {
1703
1703
+
"type": "opencollective",
1704
1704
+
"url": "https://opencollective.com/parcel"
1705
1705
+
}
1706
1706
+
},
1707
1707
+
"node_modules/lightningcss-darwin-x64": {
1708
1708
+
"version": "1.30.2",
1709
1709
+
"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz",
1710
1710
+
"integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==",
1711
1711
+
"cpu": [
1712
1712
+
"x64"
1713
1713
+
],
1714
1714
+
"dev": true,
1715
1715
+
"license": "MPL-2.0",
1716
1716
+
"optional": true,
1717
1717
+
"os": [
1718
1718
+
"darwin"
1719
1719
+
],
1720
1720
+
"engines": {
1721
1721
+
"node": ">= 12.0.0"
1722
1722
+
},
1723
1723
+
"funding": {
1724
1724
+
"type": "opencollective",
1725
1725
+
"url": "https://opencollective.com/parcel"
1726
1726
+
}
1727
1727
+
},
1728
1728
+
"node_modules/lightningcss-freebsd-x64": {
1729
1729
+
"version": "1.30.2",
1730
1730
+
"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz",
1731
1731
+
"integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==",
1732
1732
+
"cpu": [
1733
1733
+
"x64"
1734
1734
+
],
1735
1735
+
"dev": true,
1736
1736
+
"license": "MPL-2.0",
1737
1737
+
"optional": true,
1738
1738
+
"os": [
1739
1739
+
"freebsd"
1740
1740
+
],
1741
1741
+
"engines": {
1742
1742
+
"node": ">= 12.0.0"
1743
1743
+
},
1744
1744
+
"funding": {
1745
1745
+
"type": "opencollective",
1746
1746
+
"url": "https://opencollective.com/parcel"
1747
1747
+
}
1748
1748
+
},
1749
1749
+
"node_modules/lightningcss-linux-arm-gnueabihf": {
1750
1750
+
"version": "1.30.2",
1751
1751
+
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz",
1752
1752
+
"integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==",
1753
1753
+
"cpu": [
1754
1754
+
"arm"
1755
1755
+
],
1756
1756
+
"dev": true,
1757
1757
+
"license": "MPL-2.0",
1758
1758
+
"optional": true,
1759
1759
+
"os": [
1760
1760
+
"linux"
1761
1761
+
],
1762
1762
+
"engines": {
1763
1763
+
"node": ">= 12.0.0"
1764
1764
+
},
1765
1765
+
"funding": {
1766
1766
+
"type": "opencollective",
1767
1767
+
"url": "https://opencollective.com/parcel"
1768
1768
+
}
1769
1769
+
},
1770
1770
+
"node_modules/lightningcss-linux-arm64-gnu": {
1771
1771
+
"version": "1.30.2",
1772
1772
+
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz",
1773
1773
+
"integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==",
1774
1774
+
"cpu": [
1775
1775
+
"arm64"
1776
1776
+
],
1777
1777
+
"dev": true,
1778
1778
+
"license": "MPL-2.0",
1779
1779
+
"optional": true,
1780
1780
+
"os": [
1781
1781
+
"linux"
1782
1782
+
],
1783
1783
+
"engines": {
1784
1784
+
"node": ">= 12.0.0"
1785
1785
+
},
1786
1786
+
"funding": {
1787
1787
+
"type": "opencollective",
1788
1788
+
"url": "https://opencollective.com/parcel"
1789
1789
+
}
1790
1790
+
},
1791
1791
+
"node_modules/lightningcss-linux-arm64-musl": {
1792
1792
+
"version": "1.30.2",
1793
1793
+
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz",
1794
1794
+
"integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==",
1795
1795
+
"cpu": [
1796
1796
+
"arm64"
1797
1797
+
],
1798
1798
+
"dev": true,
1799
1799
+
"license": "MPL-2.0",
1800
1800
+
"optional": true,
1801
1801
+
"os": [
1802
1802
+
"linux"
1803
1803
+
],
1804
1804
+
"engines": {
1805
1805
+
"node": ">= 12.0.0"
1806
1806
+
},
1807
1807
+
"funding": {
1808
1808
+
"type": "opencollective",
1809
1809
+
"url": "https://opencollective.com/parcel"
1810
1810
+
}
1811
1811
+
},
1812
1812
+
"node_modules/lightningcss-linux-x64-gnu": {
1813
1813
+
"version": "1.30.2",
1814
1814
+
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz",
1815
1815
+
"integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==",
1816
1816
+
"cpu": [
1817
1817
+
"x64"
1818
1818
+
],
1819
1819
+
"dev": true,
1820
1820
+
"license": "MPL-2.0",
1821
1821
+
"optional": true,
1822
1822
+
"os": [
1823
1823
+
"linux"
1824
1824
+
],
1825
1825
+
"engines": {
1826
1826
+
"node": ">= 12.0.0"
1827
1827
+
},
1828
1828
+
"funding": {
1829
1829
+
"type": "opencollective",
1830
1830
+
"url": "https://opencollective.com/parcel"
1831
1831
+
}
1832
1832
+
},
1833
1833
+
"node_modules/lightningcss-linux-x64-musl": {
1834
1834
+
"version": "1.30.2",
1835
1835
+
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz",
1836
1836
+
"integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==",
1837
1837
+
"cpu": [
1838
1838
+
"x64"
1839
1839
+
],
1840
1840
+
"dev": true,
1841
1841
+
"license": "MPL-2.0",
1842
1842
+
"optional": true,
1843
1843
+
"os": [
1844
1844
+
"linux"
1845
1845
+
],
1846
1846
+
"engines": {
1847
1847
+
"node": ">= 12.0.0"
1848
1848
+
},
1849
1849
+
"funding": {
1850
1850
+
"type": "opencollective",
1851
1851
+
"url": "https://opencollective.com/parcel"
1852
1852
+
}
1853
1853
+
},
1854
1854
+
"node_modules/lightningcss-win32-arm64-msvc": {
1855
1855
+
"version": "1.30.2",
1856
1856
+
"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz",
1857
1857
+
"integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==",
1858
1858
+
"cpu": [
1859
1859
+
"arm64"
1860
1860
+
],
1861
1861
+
"dev": true,
1862
1862
+
"license": "MPL-2.0",
1863
1863
+
"optional": true,
1864
1864
+
"os": [
1865
1865
+
"win32"
1866
1866
+
],
1867
1867
+
"engines": {
1868
1868
+
"node": ">= 12.0.0"
1869
1869
+
},
1870
1870
+
"funding": {
1871
1871
+
"type": "opencollective",
1872
1872
+
"url": "https://opencollective.com/parcel"
1873
1873
+
}
1874
1874
+
},
1875
1875
+
"node_modules/lightningcss-win32-x64-msvc": {
1876
1876
+
"version": "1.30.2",
1877
1877
+
"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz",
1878
1878
+
"integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==",
1879
1879
+
"cpu": [
1880
1880
+
"x64"
1881
1881
+
],
1882
1882
+
"dev": true,
1883
1883
+
"license": "MPL-2.0",
1884
1884
+
"optional": true,
1885
1885
+
"os": [
1886
1886
+
"win32"
1887
1887
+
],
1888
1888
+
"engines": {
1889
1889
+
"node": ">= 12.0.0"
1890
1890
+
},
1891
1891
+
"funding": {
1892
1892
+
"type": "opencollective",
1893
1893
+
"url": "https://opencollective.com/parcel"
1894
1894
+
}
1895
1895
+
},
1896
1896
+
"node_modules/local-pkg": {
1897
1897
+
"version": "1.1.2",
1898
1898
+
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.1.2.tgz",
1899
1899
+
"integrity": "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==",
1900
1900
+
"dev": true,
1901
1901
+
"license": "MIT",
1902
1902
+
"dependencies": {
1903
1903
+
"mlly": "^1.7.4",
1904
1904
+
"pkg-types": "^2.3.0",
1905
1905
+
"quansync": "^0.2.11"
1906
1906
+
},
1907
1907
+
"engines": {
1908
1908
+
"node": ">=14"
1909
1909
+
},
1910
1910
+
"funding": {
1911
1911
+
"url": "https://github.com/sponsors/antfu"
1912
1912
+
}
1913
1913
+
},
1914
1914
+
"node_modules/locate-character": {
1915
1915
+
"version": "3.0.0",
1916
1916
+
"resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
1917
1917
+
"integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
1918
1918
+
"dev": true,
1919
1919
+
"license": "MIT"
1920
1920
+
},
1921
1921
+
"node_modules/lodash": {
1922
1922
+
"version": "4.17.21",
1923
1923
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1924
1924
+
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
1925
1925
+
"dev": true,
1926
1926
+
"license": "MIT"
1927
1927
+
},
1928
1928
+
"node_modules/lru-cache": {
1929
1929
+
"version": "6.0.0",
1930
1930
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1931
1931
+
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1932
1932
+
"dev": true,
1933
1933
+
"license": "ISC",
1934
1934
+
"dependencies": {
1935
1935
+
"yallist": "^4.0.0"
1936
1936
+
},
1937
1937
+
"engines": {
1938
1938
+
"node": ">=10"
1939
1939
+
}
1940
1940
+
},
1941
1941
+
"node_modules/magic-string": {
1942
1942
+
"version": "0.30.21",
1943
1943
+
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
1944
1944
+
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
1945
1945
+
"dev": true,
1946
1946
+
"license": "MIT",
1947
1947
+
"dependencies": {
1948
1948
+
"@jridgewell/sourcemap-codec": "^1.5.5"
1949
1949
+
}
1950
1950
+
},
1951
1951
+
"node_modules/minimatch": {
1952
1952
+
"version": "10.0.3",
1953
1953
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz",
1954
1954
+
"integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
1955
1955
+
"dev": true,
1956
1956
+
"license": "ISC",
1957
1957
+
"dependencies": {
1958
1958
+
"@isaacs/brace-expansion": "^5.0.0"
1959
1959
+
},
1960
1960
+
"engines": {
1961
1961
+
"node": "20 || >=22"
1962
1962
+
},
1963
1963
+
"funding": {
1964
1964
+
"url": "https://github.com/sponsors/isaacs"
1965
1965
+
}
1966
1966
+
},
1967
1967
+
"node_modules/mlly": {
1968
1968
+
"version": "1.8.0",
1969
1969
+
"resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.0.tgz",
1970
1970
+
"integrity": "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==",
1971
1971
+
"dev": true,
1972
1972
+
"license": "MIT",
1973
1973
+
"dependencies": {
1974
1974
+
"acorn": "^8.15.0",
1975
1975
+
"pathe": "^2.0.3",
1976
1976
+
"pkg-types": "^1.3.1",
1977
1977
+
"ufo": "^1.6.1"
1978
1978
+
}
1979
1979
+
},
1980
1980
+
"node_modules/mlly/node_modules/confbox": {
1981
1981
+
"version": "0.1.8",
1982
1982
+
"resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
1983
1983
+
"integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
1984
1984
+
"dev": true,
1985
1985
+
"license": "MIT"
1986
1986
+
},
1987
1987
+
"node_modules/mlly/node_modules/pkg-types": {
1988
1988
+
"version": "1.3.1",
1989
1989
+
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
1990
1990
+
"integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
1991
1991
+
"dev": true,
1992
1992
+
"license": "MIT",
1993
1993
+
"dependencies": {
1994
1994
+
"confbox": "^0.1.8",
1995
1995
+
"mlly": "^1.7.4",
1996
1996
+
"pathe": "^2.0.1"
1997
1997
+
}
1998
1998
+
},
1999
1999
+
"node_modules/mri": {
2000
2000
+
"version": "1.2.0",
2001
2001
+
"resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
2002
2002
+
"integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
2003
2003
+
"dev": true,
2004
2004
+
"license": "MIT",
2005
2005
+
"engines": {
2006
2006
+
"node": ">=4"
2007
2007
+
}
2008
2008
+
},
2009
2009
+
"node_modules/ms": {
2010
2010
+
"version": "2.1.3",
2011
2011
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
2012
2012
+
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
2013
2013
+
"dev": true,
2014
2014
+
"license": "MIT"
2015
2015
+
},
2016
2016
+
"node_modules/muggle-string": {
2017
2017
+
"version": "0.4.1",
2018
2018
+
"resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz",
2019
2019
+
"integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
2020
2020
+
"dev": true,
2021
2021
+
"license": "MIT"
2022
2022
+
},
2023
2023
+
"node_modules/nanoid": {
2024
2024
+
"version": "3.3.11",
2025
2025
+
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
2026
2026
+
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
2027
2027
+
"dev": true,
2028
2028
+
"funding": [
2029
2029
+
{
2030
2030
+
"type": "github",
2031
2031
+
"url": "https://github.com/sponsors/ai"
2032
2032
+
}
2033
2033
+
],
2034
2034
+
"license": "MIT",
2035
2035
+
"bin": {
2036
2036
+
"nanoid": "bin/nanoid.cjs"
2037
2037
+
},
2038
2038
+
"engines": {
2039
2039
+
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
2040
2040
+
}
2041
2041
+
},
2042
2042
+
"node_modules/path-browserify": {
2043
2043
+
"version": "1.0.1",
2044
2044
+
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
2045
2045
+
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
2046
2046
+
"dev": true,
2047
2047
+
"license": "MIT"
2048
2048
+
},
2049
2049
+
"node_modules/path-parse": {
2050
2050
+
"version": "1.0.7",
2051
2051
+
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
2052
2052
+
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
2053
2053
+
"dev": true,
2054
2054
+
"license": "MIT"
2055
2055
+
},
2056
2056
+
"node_modules/pathe": {
2057
2057
+
"version": "2.0.3",
2058
2058
+
"resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
2059
2059
+
"integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
2060
2060
+
"dev": true,
2061
2061
+
"license": "MIT"
2062
2062
+
},
2063
2063
+
"node_modules/picocolors": {
2064
2064
+
"version": "1.1.1",
2065
2065
+
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
2066
2066
+
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
2067
2067
+
"dev": true,
2068
2068
+
"license": "ISC"
2069
2069
+
},
2070
2070
+
"node_modules/picomatch": {
2071
2071
+
"version": "4.0.3",
2072
2072
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
2073
2073
+
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
2074
2074
+
"dev": true,
2075
2075
+
"license": "MIT",
2076
2076
+
"peer": true,
2077
2077
+
"engines": {
2078
2078
+
"node": ">=12"
2079
2079
+
},
2080
2080
+
"funding": {
2081
2081
+
"url": "https://github.com/sponsors/jonschlinkert"
2082
2082
+
}
2083
2083
+
},
2084
2084
+
"node_modules/pkg-types": {
2085
2085
+
"version": "2.3.0",
2086
2086
+
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz",
2087
2087
+
"integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==",
2088
2088
+
"dev": true,
2089
2089
+
"license": "MIT",
2090
2090
+
"dependencies": {
2091
2091
+
"confbox": "^0.2.2",
2092
2092
+
"exsolve": "^1.0.7",
2093
2093
+
"pathe": "^2.0.3"
2094
2094
+
}
2095
2095
+
},
2096
2096
+
"node_modules/postcss": {
2097
2097
+
"version": "8.5.6",
2098
2098
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
2099
2099
+
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
2100
2100
+
"dev": true,
2101
2101
+
"funding": [
2102
2102
+
{
2103
2103
+
"type": "opencollective",
2104
2104
+
"url": "https://opencollective.com/postcss/"
2105
2105
+
},
2106
2106
+
{
2107
2107
+
"type": "tidelift",
2108
2108
+
"url": "https://tidelift.com/funding/github/npm/postcss"
2109
2109
+
},
2110
2110
+
{
2111
2111
+
"type": "github",
2112
2112
+
"url": "https://github.com/sponsors/ai"
2113
2113
+
}
2114
2114
+
],
2115
2115
+
"license": "MIT",
2116
2116
+
"dependencies": {
2117
2117
+
"nanoid": "^3.3.11",
2118
2118
+
"picocolors": "^1.1.1",
2119
2119
+
"source-map-js": "^1.2.1"
2120
2120
+
},
2121
2121
+
"engines": {
2122
2122
+
"node": "^10 || ^12 || >=14"
2123
2123
+
}
2124
2124
+
},
2125
2125
+
"node_modules/prettier": {
2126
2126
+
"version": "3.7.1",
2127
2127
+
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.1.tgz",
2128
2128
+
"integrity": "sha512-RWKXE4qB3u5Z6yz7omJkjWwmTfLdcbv44jUVHC5NpfXwFGzvpQM798FGv/6WNK879tc+Cn0AAyherCl1KjbyZQ==",
2129
2129
+
"dev": true,
2130
2130
+
"license": "MIT",
2131
2131
+
"bin": {
2132
2132
+
"prettier": "bin/prettier.cjs"
2133
2133
+
},
2134
2134
+
"engines": {
2135
2135
+
"node": ">=14"
2136
2136
+
},
2137
2137
+
"funding": {
2138
2138
+
"url": "https://github.com/prettier/prettier?sponsor=1"
2139
2139
+
}
2140
2140
+
},
2141
2141
+
"node_modules/punycode": {
2142
2142
+
"version": "2.3.1",
2143
2143
+
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
2144
2144
+
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
2145
2145
+
"dev": true,
2146
2146
+
"license": "MIT",
2147
2147
+
"engines": {
2148
2148
+
"node": ">=6"
2149
2149
+
}
2150
2150
+
},
2151
2151
+
"node_modules/quansync": {
2152
2152
+
"version": "0.2.11",
2153
2153
+
"resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz",
2154
2154
+
"integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==",
2155
2155
+
"dev": true,
2156
2156
+
"funding": [
2157
2157
+
{
2158
2158
+
"type": "individual",
2159
2159
+
"url": "https://github.com/sponsors/antfu"
2160
2160
+
},
2161
2161
+
{
2162
2162
+
"type": "individual",
2163
2163
+
"url": "https://github.com/sponsors/sxzz"
2164
2164
+
}
2165
2165
+
],
2166
2166
+
"license": "MIT"
2167
2167
+
},
2168
2168
+
"node_modules/readdirp": {
2169
2169
+
"version": "4.1.2",
2170
2170
+
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
2171
2171
+
"integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
2172
2172
+
"dev": true,
2173
2173
+
"license": "MIT",
2174
2174
+
"engines": {
2175
2175
+
"node": ">= 14.18.0"
2176
2176
+
},
2177
2177
+
"funding": {
2178
2178
+
"type": "individual",
2179
2179
+
"url": "https://paulmillr.com/funding/"
2180
2180
+
}
2181
2181
+
},
2182
2182
+
"node_modules/require-from-string": {
2183
2183
+
"version": "2.0.2",
2184
2184
+
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
2185
2185
+
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
2186
2186
+
"dev": true,
2187
2187
+
"license": "MIT",
2188
2188
+
"engines": {
2189
2189
+
"node": ">=0.10.0"
2190
2190
+
}
2191
2191
+
},
2192
2192
+
"node_modules/resolve": {
2193
2193
+
"version": "1.22.11",
2194
2194
+
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
2195
2195
+
"integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
2196
2196
+
"dev": true,
2197
2197
+
"license": "MIT",
2198
2198
+
"dependencies": {
2199
2199
+
"is-core-module": "^2.16.1",
2200
2200
+
"path-parse": "^1.0.7",
2201
2201
+
"supports-preserve-symlinks-flag": "^1.0.0"
2202
2202
+
},
2203
2203
+
"bin": {
2204
2204
+
"resolve": "bin/resolve"
2205
2205
+
},
2206
2206
+
"engines": {
2207
2207
+
"node": ">= 0.4"
2208
2208
+
},
2209
2209
+
"funding": {
2210
2210
+
"url": "https://github.com/sponsors/ljharb"
2211
2211
+
}
2212
2212
+
},
2213
2213
+
"node_modules/rolldown": {
2214
2214
+
"version": "1.0.0-beta.50",
2215
2215
+
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.50.tgz",
2216
2216
+
"integrity": "sha512-JFULvCNl/anKn99eKjOSEubi0lLmNqQDAjyEMME2T4CwezUDL0i6t1O9xZsu2OMehPnV2caNefWpGF+8TnzB6A==",
2217
2217
+
"dev": true,
2218
2218
+
"license": "MIT",
2219
2219
+
"dependencies": {
2220
2220
+
"@oxc-project/types": "=0.97.0",
2221
2221
+
"@rolldown/pluginutils": "1.0.0-beta.50"
2222
2222
+
},
2223
2223
+
"bin": {
2224
2224
+
"rolldown": "bin/cli.mjs"
2225
2225
+
},
2226
2226
+
"engines": {
2227
2227
+
"node": "^20.19.0 || >=22.12.0"
2228
2228
+
},
2229
2229
+
"optionalDependencies": {
2230
2230
+
"@rolldown/binding-android-arm64": "1.0.0-beta.50",
2231
2231
+
"@rolldown/binding-darwin-arm64": "1.0.0-beta.50",
2232
2232
+
"@rolldown/binding-darwin-x64": "1.0.0-beta.50",
2233
2233
+
"@rolldown/binding-freebsd-x64": "1.0.0-beta.50",
2234
2234
+
"@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.50",
2235
2235
+
"@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.50",
2236
2236
+
"@rolldown/binding-linux-arm64-musl": "1.0.0-beta.50",
2237
2237
+
"@rolldown/binding-linux-x64-gnu": "1.0.0-beta.50",
2238
2238
+
"@rolldown/binding-linux-x64-musl": "1.0.0-beta.50",
2239
2239
+
"@rolldown/binding-openharmony-arm64": "1.0.0-beta.50",
2240
2240
+
"@rolldown/binding-wasm32-wasi": "1.0.0-beta.50",
2241
2241
+
"@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.50",
2242
2242
+
"@rolldown/binding-win32-ia32-msvc": "1.0.0-beta.50",
2243
2243
+
"@rolldown/binding-win32-x64-msvc": "1.0.0-beta.50"
2244
2244
+
}
2245
2245
+
},
2246
2246
+
"node_modules/sade": {
2247
2247
+
"version": "1.8.1",
2248
2248
+
"resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
2249
2249
+
"integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
2250
2250
+
"dev": true,
2251
2251
+
"license": "MIT",
2252
2252
+
"dependencies": {
2253
2253
+
"mri": "^1.1.0"
2254
2254
+
},
2255
2255
+
"engines": {
2256
2256
+
"node": ">=6"
2257
2257
+
}
2258
2258
+
},
2259
2259
+
"node_modules/semver": {
2260
2260
+
"version": "7.5.4",
2261
2261
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
2262
2262
+
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
2263
2263
+
"dev": true,
2264
2264
+
"license": "ISC",
2265
2265
+
"dependencies": {
2266
2266
+
"lru-cache": "^6.0.0"
2267
2267
+
},
2268
2268
+
"bin": {
2269
2269
+
"semver": "bin/semver.js"
2270
2270
+
},
2271
2271
+
"engines": {
2272
2272
+
"node": ">=10"
2273
2273
+
}
2274
2274
+
},
2275
2275
+
"node_modules/source-map": {
2276
2276
+
"version": "0.6.1",
2277
2277
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2278
2278
+
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2279
2279
+
"dev": true,
2280
2280
+
"license": "BSD-3-Clause",
2281
2281
+
"engines": {
2282
2282
+
"node": ">=0.10.0"
2283
2283
+
}
2284
2284
+
},
2285
2285
+
"node_modules/source-map-js": {
2286
2286
+
"version": "1.2.1",
2287
2287
+
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
2288
2288
+
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
2289
2289
+
"dev": true,
2290
2290
+
"license": "BSD-3-Clause",
2291
2291
+
"engines": {
2292
2292
+
"node": ">=0.10.0"
2293
2293
+
}
2294
2294
+
},
2295
2295
+
"node_modules/sprintf-js": {
2296
2296
+
"version": "1.0.3",
2297
2297
+
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
2298
2298
+
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
2299
2299
+
"dev": true,
2300
2300
+
"license": "BSD-3-Clause"
2301
2301
+
},
2302
2302
+
"node_modules/string-argv": {
2303
2303
+
"version": "0.3.2",
2304
2304
+
"resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz",
2305
2305
+
"integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
2306
2306
+
"dev": true,
2307
2307
+
"license": "MIT",
2308
2308
+
"engines": {
2309
2309
+
"node": ">=0.6.19"
2310
2310
+
}
2311
2311
+
},
2312
2312
+
"node_modules/strip-json-comments": {
2313
2313
+
"version": "3.1.1",
2314
2314
+
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
2315
2315
+
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
2316
2316
+
"dev": true,
2317
2317
+
"license": "MIT",
2318
2318
+
"engines": {
2319
2319
+
"node": ">=8"
2320
2320
+
},
2321
2321
+
"funding": {
2322
2322
+
"url": "https://github.com/sponsors/sindresorhus"
2323
2323
+
}
2324
2324
+
},
2325
2325
+
"node_modules/supports-color": {
2326
2326
+
"version": "8.1.1",
2327
2327
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
2328
2328
+
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
2329
2329
+
"dev": true,
2330
2330
+
"license": "MIT",
2331
2331
+
"dependencies": {
2332
2332
+
"has-flag": "^4.0.0"
2333
2333
+
},
2334
2334
+
"engines": {
2335
2335
+
"node": ">=10"
2336
2336
+
},
2337
2337
+
"funding": {
2338
2338
+
"url": "https://github.com/chalk/supports-color?sponsor=1"
2339
2339
+
}
2340
2340
+
},
2341
2341
+
"node_modules/supports-preserve-symlinks-flag": {
2342
2342
+
"version": "1.0.0",
2343
2343
+
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2344
2344
+
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2345
2345
+
"dev": true,
2346
2346
+
"license": "MIT",
2347
2347
+
"engines": {
2348
2348
+
"node": ">= 0.4"
2349
2349
+
},
2350
2350
+
"funding": {
2351
2351
+
"url": "https://github.com/sponsors/ljharb"
2352
2352
+
}
2353
2353
+
},
2354
2354
+
"node_modules/svelte": {
2355
2355
+
"version": "5.45.2",
2356
2356
+
"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.45.2.tgz",
2357
2357
+
"integrity": "sha512-yyXdW2u3H0H/zxxWoGwJoQlRgaSJLp+Vhktv12iRw2WRDlKqUPT54Fi0K/PkXqrdkcQ98aBazpy0AH4BCBVfoA==",
2358
2358
+
"dev": true,
2359
2359
+
"license": "MIT",
2360
2360
+
"peer": true,
2361
2361
+
"dependencies": {
2362
2362
+
"@jridgewell/remapping": "^2.3.4",
2363
2363
+
"@jridgewell/sourcemap-codec": "^1.5.0",
2364
2364
+
"@sveltejs/acorn-typescript": "^1.0.5",
2365
2365
+
"@types/estree": "^1.0.5",
2366
2366
+
"acorn": "^8.12.1",
2367
2367
+
"aria-query": "^5.3.1",
2368
2368
+
"axobject-query": "^4.1.0",
2369
2369
+
"clsx": "^2.1.1",
2370
2370
+
"devalue": "^5.5.0",
2371
2371
+
"esm-env": "^1.2.1",
2372
2372
+
"esrap": "^2.2.0",
2373
2373
+
"is-reference": "^3.0.3",
2374
2374
+
"locate-character": "^3.0.0",
2375
2375
+
"magic-string": "^0.30.11",
2376
2376
+
"zimmerframe": "^1.1.2"
2377
2377
+
},
2378
2378
+
"engines": {
2379
2379
+
"node": ">=18"
2380
2380
+
}
2381
2381
+
},
2382
2382
+
"node_modules/svelte-check": {
2383
2383
+
"version": "4.3.4",
2384
2384
+
"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.4.tgz",
2385
2385
+
"integrity": "sha512-DVWvxhBrDsd+0hHWKfjP99lsSXASeOhHJYyuKOFYJcP7ThfSCKgjVarE8XfuMWpS5JV3AlDf+iK1YGGo2TACdw==",
2386
2386
+
"dev": true,
2387
2387
+
"license": "MIT",
2388
2388
+
"dependencies": {
2389
2389
+
"@jridgewell/trace-mapping": "^0.3.25",
2390
2390
+
"chokidar": "^4.0.1",
2391
2391
+
"fdir": "^6.2.0",
2392
2392
+
"picocolors": "^1.0.0",
2393
2393
+
"sade": "^1.7.4"
2394
2394
+
},
2395
2395
+
"bin": {
2396
2396
+
"svelte-check": "bin/svelte-check"
2397
2397
+
},
2398
2398
+
"engines": {
2399
2399
+
"node": ">= 18.0.0"
2400
2400
+
},
2401
2401
+
"peerDependencies": {
2402
2402
+
"svelte": "^4.0.0 || ^5.0.0-next.0",
2403
2403
+
"typescript": ">=5.0.0"
2404
2404
+
}
2405
2405
+
},
2406
2406
+
"node_modules/tinyglobby": {
2407
2407
+
"version": "0.2.15",
2408
2408
+
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
2409
2409
+
"integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
2410
2410
+
"dev": true,
2411
2411
+
"license": "MIT",
2412
2412
+
"dependencies": {
2413
2413
+
"fdir": "^6.5.0",
2414
2414
+
"picomatch": "^4.0.3"
2415
2415
+
},
2416
2416
+
"engines": {
2417
2417
+
"node": ">=12.0.0"
2418
2418
+
},
2419
2419
+
"funding": {
2420
2420
+
"url": "https://github.com/sponsors/SuperchupuDev"
2421
2421
+
}
2422
2422
+
},
2423
2423
+
"node_modules/tslib": {
2424
2424
+
"version": "2.8.1",
2425
2425
+
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
2426
2426
+
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
2427
2427
+
"dev": true,
2428
2428
+
"license": "0BSD",
2429
2429
+
"optional": true
2430
2430
+
},
2431
2431
+
"node_modules/typescript": {
2432
2432
+
"version": "5.9.3",
2433
2433
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
2434
2434
+
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
2435
2435
+
"dev": true,
2436
2436
+
"license": "Apache-2.0",
2437
2437
+
"peer": true,
2438
2438
+
"bin": {
2439
2439
+
"tsc": "bin/tsc",
2440
2440
+
"tsserver": "bin/tsserver"
2441
2441
+
},
2442
2442
+
"engines": {
2443
2443
+
"node": ">=14.17"
2444
2444
+
}
2445
2445
+
},
2446
2446
+
"node_modules/ufo": {
2447
2447
+
"version": "1.6.1",
2448
2448
+
"resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz",
2449
2449
+
"integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==",
2450
2450
+
"dev": true,
2451
2451
+
"license": "MIT"
2452
2452
+
},
2453
2453
+
"node_modules/undici-types": {
2454
2454
+
"version": "7.16.0",
2455
2455
+
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
2456
2456
+
"integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
2457
2457
+
"dev": true,
2458
2458
+
"license": "MIT"
2459
2459
+
},
2460
2460
+
"node_modules/universalify": {
2461
2461
+
"version": "2.0.1",
2462
2462
+
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
2463
2463
+
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
2464
2464
+
"dev": true,
2465
2465
+
"license": "MIT",
2466
2466
+
"engines": {
2467
2467
+
"node": ">= 10.0.0"
2468
2468
+
}
2469
2469
+
},
2470
2470
+
"node_modules/uri-js": {
2471
2471
+
"version": "4.4.1",
2472
2472
+
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
2473
2473
+
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
2474
2474
+
"dev": true,
2475
2475
+
"license": "BSD-2-Clause",
2476
2476
+
"dependencies": {
2477
2477
+
"punycode": "^2.1.0"
2478
2478
+
}
2479
2479
+
},
2480
2480
+
"node_modules/vite": {
2481
2481
+
"name": "rolldown-vite",
2482
2482
+
"version": "7.2.5",
2483
2483
+
"resolved": "https://registry.npmjs.org/rolldown-vite/-/rolldown-vite-7.2.5.tgz",
2484
2484
+
"integrity": "sha512-u09tdk/huMiN8xwoiBbig197jKdCamQTtOruSalOzbqGje3jdHiV0njQlAW0YvzoahkirFePNQ4RYlfnRQpXZA==",
2485
2485
+
"dev": true,
2486
2486
+
"license": "MIT",
2487
2487
+
"peer": true,
2488
2488
+
"dependencies": {
2489
2489
+
"@oxc-project/runtime": "0.97.0",
2490
2490
+
"fdir": "^6.5.0",
2491
2491
+
"lightningcss": "^1.30.2",
2492
2492
+
"picomatch": "^4.0.3",
2493
2493
+
"postcss": "^8.5.6",
2494
2494
+
"rolldown": "1.0.0-beta.50",
2495
2495
+
"tinyglobby": "^0.2.15"
2496
2496
+
},
2497
2497
+
"bin": {
2498
2498
+
"vite": "bin/vite.js"
2499
2499
+
},
2500
2500
+
"engines": {
2501
2501
+
"node": "^20.19.0 || >=22.12.0"
2502
2502
+
},
2503
2503
+
"funding": {
2504
2504
+
"url": "https://github.com/vitejs/vite?sponsor=1"
2505
2505
+
},
2506
2506
+
"optionalDependencies": {
2507
2507
+
"fsevents": "~2.3.3"
2508
2508
+
},
2509
2509
+
"peerDependencies": {
2510
2510
+
"@types/node": "^20.19.0 || >=22.12.0",
2511
2511
+
"esbuild": "^0.25.0",
2512
2512
+
"jiti": ">=1.21.0",
2513
2513
+
"less": "^4.0.0",
2514
2514
+
"sass": "^1.70.0",
2515
2515
+
"sass-embedded": "^1.70.0",
2516
2516
+
"stylus": ">=0.54.8",
2517
2517
+
"sugarss": "^5.0.0",
2518
2518
+
"terser": "^5.16.0",
2519
2519
+
"tsx": "^4.8.1",
2520
2520
+
"yaml": "^2.4.2"
2521
2521
+
},
2522
2522
+
"peerDependenciesMeta": {
2523
2523
+
"@types/node": {
2524
2524
+
"optional": true
2525
2525
+
},
2526
2526
+
"esbuild": {
2527
2527
+
"optional": true
2528
2528
+
},
2529
2529
+
"jiti": {
2530
2530
+
"optional": true
2531
2531
+
},
2532
2532
+
"less": {
2533
2533
+
"optional": true
2534
2534
+
},
2535
2535
+
"sass": {
2536
2536
+
"optional": true
2537
2537
+
},
2538
2538
+
"sass-embedded": {
2539
2539
+
"optional": true
2540
2540
+
},
2541
2541
+
"stylus": {
2542
2542
+
"optional": true
2543
2543
+
},
2544
2544
+
"sugarss": {
2545
2545
+
"optional": true
2546
2546
+
},
2547
2547
+
"terser": {
2548
2548
+
"optional": true
2549
2549
+
},
2550
2550
+
"tsx": {
2551
2551
+
"optional": true
2552
2552
+
},
2553
2553
+
"yaml": {
2554
2554
+
"optional": true
2555
2555
+
}
2556
2556
+
}
2557
2557
+
},
2558
2558
+
"node_modules/vite-plugin-dts": {
2559
2559
+
"version": "4.5.4",
2560
2560
+
"resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.5.4.tgz",
2561
2561
+
"integrity": "sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==",
2562
2562
+
"dev": true,
2563
2563
+
"license": "MIT",
2564
2564
+
"dependencies": {
2565
2565
+
"@microsoft/api-extractor": "^7.50.1",
2566
2566
+
"@rollup/pluginutils": "^5.1.4",
2567
2567
+
"@volar/typescript": "^2.4.11",
2568
2568
+
"@vue/language-core": "2.2.0",
2569
2569
+
"compare-versions": "^6.1.1",
2570
2570
+
"debug": "^4.4.0",
2571
2571
+
"kolorist": "^1.8.0",
2572
2572
+
"local-pkg": "^1.0.0",
2573
2573
+
"magic-string": "^0.30.17"
2574
2574
+
},
2575
2575
+
"peerDependencies": {
2576
2576
+
"typescript": "*",
2577
2577
+
"vite": "*"
2578
2578
+
},
2579
2579
+
"peerDependenciesMeta": {
2580
2580
+
"vite": {
2581
2581
+
"optional": true
2582
2582
+
}
2583
2583
+
}
2584
2584
+
},
2585
2585
+
"node_modules/vitefu": {
2586
2586
+
"version": "1.1.1",
2587
2587
+
"resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz",
2588
2588
+
"integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==",
2589
2589
+
"dev": true,
2590
2590
+
"license": "MIT",
2591
2591
+
"workspaces": [
2592
2592
+
"tests/deps/*",
2593
2593
+
"tests/projects/*",
2594
2594
+
"tests/projects/workspace/packages/*"
2595
2595
+
],
2596
2596
+
"peerDependencies": {
2597
2597
+
"vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0"
2598
2598
+
},
2599
2599
+
"peerDependenciesMeta": {
2600
2600
+
"vite": {
2601
2601
+
"optional": true
2602
2602
+
}
2603
2603
+
}
2604
2604
+
},
2605
2605
+
"node_modules/vscode-uri": {
2606
2606
+
"version": "3.1.0",
2607
2607
+
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
2608
2608
+
"integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==",
2609
2609
+
"dev": true,
2610
2610
+
"license": "MIT"
2611
2611
+
},
2612
2612
+
"node_modules/yallist": {
2613
2613
+
"version": "4.0.0",
2614
2614
+
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2615
2615
+
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
2616
2616
+
"dev": true,
2617
2617
+
"license": "ISC"
2618
2618
+
},
2619
2619
+
"node_modules/zimmerframe": {
2620
2620
+
"version": "1.1.4",
2621
2621
+
"resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz",
2622
2622
+
"integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==",
2623
2623
+
"dev": true,
2624
2624
+
"license": "MIT"
2625
2625
+
}
2626
2626
+
}
2627
2627
+
}
···
1
1
+
{
2
2
+
"name": "cutebook",
3
3
+
"version": "0.1.0",
4
4
+
"type": "module",
5
5
+
"main": "./dist/index.js",
6
6
+
"module": "./dist/index.js",
7
7
+
"types": "./dist/index.d.ts",
8
8
+
"exports": {
9
9
+
".": {
10
10
+
"import": "./dist/index.js",
11
11
+
"types": "./dist/index.d.ts"
12
12
+
},
13
13
+
"./register": {
14
14
+
"import": "./dist/register.js",
15
15
+
"types": "./dist/register.d.ts"
16
16
+
}
17
17
+
},
18
18
+
"files": [
19
19
+
"dist"
20
20
+
],
21
21
+
"scripts": {
22
22
+
"dev": "cd demo && vite",
23
23
+
"build": "vite build -c vite.config.lib.ts",
24
24
+
"build:demo": "cd demo && vite build",
25
25
+
"preview": "cd demo && vite preview",
26
26
+
"check": "tsc -p tsconfig.lib.json"
27
27
+
},
28
28
+
"peerDependencies": {
29
29
+
"@atcute/client": "^4.0.0",
30
30
+
"@atcute/identity-resolver": "^1.0.0",
31
31
+
"@atcute/oauth-browser-client": "^2.0.0"
32
32
+
},
33
33
+
"dependencies": {
34
34
+
"actor-typeahead": "^0.1.2"
35
35
+
},
36
36
+
"devDependencies": {
37
37
+
"@atcute/atproto": "^3.1.9",
38
38
+
"@atcute/client": "^4.1.0",
39
39
+
"@atcute/identity-resolver": "^1.1.4",
40
40
+
"@atcute/lex-cli": "^2.5.0",
41
41
+
"@atcute/lexicon-doc": "^2.0.4",
42
42
+
"@atcute/oauth-browser-client": "^2.0.1",
43
43
+
"@sveltejs/vite-plugin-svelte": "^6.2.1",
44
44
+
"@tsconfig/svelte": "^5.0.6",
45
45
+
"@types/node": "^24.10.1",
46
46
+
"svelte": "^5.43.8",
47
47
+
"svelte-check": "^4.3.4",
48
48
+
"typescript": "~5.9.3",
49
49
+
"vite": "npm:rolldown-vite@7.2.5",
50
50
+
"vite-plugin-dts": "^4.5.4"
51
51
+
},
52
52
+
"overrides": {
53
53
+
"vite": "npm:rolldown-vite@7.2.5"
54
54
+
}
55
55
+
}
···
1
1
+
{
2
2
+
"compilerOptions": {
3
3
+
"target": "ES2020",
4
4
+
"module": "ESNext",
5
5
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
6
6
+
"moduleResolution": "bundler",
7
7
+
"strict": true,
8
8
+
"noEmit": true,
9
9
+
"isolatedModules": true,
10
10
+
"esModuleInterop": true,
11
11
+
"skipLibCheck": true,
12
12
+
"declaration": true
13
13
+
},
14
14
+
"include": ["lib/**/*.ts"]
15
15
+
}
···
1
1
+
{
2
2
+
"compilerOptions": {
3
3
+
"target": "ES2020",
4
4
+
"module": "ESNext",
5
5
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
6
6
+
"moduleResolution": "bundler",
7
7
+
"strict": true,
8
8
+
"noEmit": true,
9
9
+
"isolatedModules": true,
10
10
+
"esModuleInterop": true,
11
11
+
"skipLibCheck": true,
12
12
+
"declaration": true,
13
13
+
"declarationMap": true
14
14
+
},
15
15
+
"include": ["lib/**/*.ts"]
16
16
+
}
17
17
+
···
1
1
+
import { defineConfig } from 'vite';
2
2
+
import { resolve } from 'path';
3
3
+
import dts from 'vite-plugin-dts';
4
4
+
5
5
+
export default defineConfig({
6
6
+
plugins: [
7
7
+
dts({
8
8
+
include: ['lib/**/*.ts'],
9
9
+
outDir: 'dist',
10
10
+
}),
11
11
+
],
12
12
+
build: {
13
13
+
lib: {
14
14
+
entry: {
15
15
+
index: resolve(__dirname, 'lib/index.ts'),
16
16
+
register: resolve(__dirname, 'lib/register.ts'),
17
17
+
},
18
18
+
formats: ['es'],
19
19
+
},
20
20
+
rollupOptions: {
21
21
+
external: [
22
22
+
'@atcute/client',
23
23
+
'@atcute/atproto',
24
24
+
'@atcute/oauth-browser-client',
25
25
+
'@atcute/identity-resolver',
26
26
+
'@atcute/lexicons',
27
27
+
'actor-typeahead',
28
28
+
],
29
29
+
},
30
30
+
outDir: 'dist',
31
31
+
emptyOutDir: true,
32
32
+
},
33
33
+
});
34
34
+