+26
.gitignore
+26
.gitignore
···
1
+
# Logs
2
+
logs
3
+
*.log
4
+
npm-debug.log*
5
+
yarn-debug.log*
6
+
yarn-error.log*
7
+
pnpm-debug.log*
8
+
lerna-debug.log*
9
+
10
+
coverage
11
+
node_modules
12
+
dist
13
+
build
14
+
dist-ssr
15
+
*.local
16
+
.env
17
+
18
+
# Editor directories and files
19
+
!.vscode/extensions.json
20
+
.idea
21
+
.DS_Store
22
+
*.suo
23
+
*.ntvs*
24
+
*.njsproj
25
+
*.sln
26
+
*.sw?
+27
flake.lock
+27
flake.lock
···
1
+
{
2
+
"nodes": {
3
+
"nixpkgs": {
4
+
"locked": {
5
+
"lastModified": 1733064805,
6
+
"narHash": "sha256-7NbtSLfZO0q7MXPl5hzA0sbVJt6pWxxtGWbaVUDDmjs=",
7
+
"owner": "nixos",
8
+
"repo": "nixpkgs",
9
+
"rev": "31d66ae40417bb13765b0ad75dd200400e98de84",
10
+
"type": "github"
11
+
},
12
+
"original": {
13
+
"owner": "nixos",
14
+
"ref": "nixpkgs-unstable",
15
+
"repo": "nixpkgs",
16
+
"type": "github"
17
+
}
18
+
},
19
+
"root": {
20
+
"inputs": {
21
+
"nixpkgs": "nixpkgs"
22
+
}
23
+
}
24
+
},
25
+
"root": "root",
26
+
"version": 7
27
+
}
+30
flake.nix
+30
flake.nix
···
1
+
{
2
+
inputs = {
3
+
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
4
+
};
5
+
6
+
outputs = {
7
+
self,
8
+
nixpkgs,
9
+
}: let
10
+
supportedSystems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin"];
11
+
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
12
+
nixpkgsFor = forAllSystems (system:
13
+
import nixpkgs { inherit system; });
14
+
in {
15
+
16
+
devShell = forAllSystems (system: let
17
+
pkgs = nixpkgsFor."${system}";
18
+
in
19
+
pkgs.mkShell {
20
+
nativeBuildInputs = [
21
+
pkgs.nodejs
22
+
pkgs.biome
23
+
pkgs.typescript
24
+
pkgs.nodePackages.typescript-language-server
25
+
];
26
+
});
27
+
28
+
formatter = forAllSystems (system: nixpkgsFor."${system}".alejandra);
29
+
};
30
+
}
+156
lexicons/defs.json
+156
lexicons/defs.json
···
1
+
{
2
+
"lexicon": 1,
3
+
"id": "com.atproto.label.defs",
4
+
"defs": {
5
+
"label": {
6
+
"type": "object",
7
+
"description": "Metadata tag on an atproto resource (eg, repo or record).",
8
+
"required": ["src", "uri", "val", "cts"],
9
+
"properties": {
10
+
"ver": {
11
+
"type": "integer",
12
+
"description": "The AT Protocol version of the label object."
13
+
},
14
+
"src": {
15
+
"type": "string",
16
+
"format": "did",
17
+
"description": "DID of the actor who created this label."
18
+
},
19
+
"uri": {
20
+
"type": "string",
21
+
"format": "uri",
22
+
"description": "AT URI of the record, repository (account), or other resource that this label applies to."
23
+
},
24
+
"cid": {
25
+
"type": "string",
26
+
"format": "cid",
27
+
"description": "Optionally, CID specifying the specific version of 'uri' resource this label applies to."
28
+
},
29
+
"val": {
30
+
"type": "string",
31
+
"maxLength": 128,
32
+
"description": "The short string name of the value or type of this label."
33
+
},
34
+
"neg": {
35
+
"type": "boolean",
36
+
"description": "If true, this is a negation label, overwriting a previous label."
37
+
},
38
+
"cts": {
39
+
"type": "string",
40
+
"format": "datetime",
41
+
"description": "Timestamp when this label was created."
42
+
},
43
+
"exp": {
44
+
"type": "string",
45
+
"format": "datetime",
46
+
"description": "Timestamp at which this label expires (no longer applies)."
47
+
},
48
+
"sig": {
49
+
"type": "bytes",
50
+
"description": "Signature of dag-cbor encoded label."
51
+
}
52
+
}
53
+
},
54
+
"selfLabels": {
55
+
"type": "object",
56
+
"description": "Metadata tags on an atproto record, published by the author within the record.",
57
+
"required": ["values"],
58
+
"properties": {
59
+
"values": {
60
+
"type": "array",
61
+
"items": { "type": "ref", "ref": "#selfLabel" },
62
+
"maxLength": 10
63
+
}
64
+
}
65
+
},
66
+
"selfLabel": {
67
+
"type": "object",
68
+
"description": "Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel.",
69
+
"required": ["val"],
70
+
"properties": {
71
+
"val": {
72
+
"type": "string",
73
+
"maxLength": 128,
74
+
"description": "The short string name of the value or type of this label."
75
+
}
76
+
}
77
+
},
78
+
"labelValueDefinition": {
79
+
"type": "object",
80
+
"description": "Declares a label value and its expected interpretations and behaviors.",
81
+
"required": ["identifier", "severity", "blurs", "locales"],
82
+
"properties": {
83
+
"identifier": {
84
+
"type": "string",
85
+
"description": "The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
86
+
"maxLength": 100,
87
+
"maxGraphemes": 100
88
+
},
89
+
"severity": {
90
+
"type": "string",
91
+
"description": "How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
92
+
"knownValues": ["inform", "alert", "none"]
93
+
},
94
+
"blurs": {
95
+
"type": "string",
96
+
"description": "What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.",
97
+
"knownValues": ["content", "media", "none"]
98
+
},
99
+
"defaultSetting": {
100
+
"type": "string",
101
+
"description": "The default setting for this label.",
102
+
"knownValues": ["ignore", "warn", "hide"],
103
+
"default": "warn"
104
+
},
105
+
"adultOnly": {
106
+
"type": "boolean",
107
+
"description": "Does the user need to have adult content enabled in order to configure this label?"
108
+
},
109
+
"locales": {
110
+
"type": "array",
111
+
"items": { "type": "ref", "ref": "#labelValueDefinitionStrings" }
112
+
}
113
+
}
114
+
},
115
+
"labelValueDefinitionStrings": {
116
+
"type": "object",
117
+
"description": "Strings which describe the label in the UI, localized into a specific language.",
118
+
"required": ["lang", "name", "description"],
119
+
"properties": {
120
+
"lang": {
121
+
"type": "string",
122
+
"description": "The code of the language these strings are written in.",
123
+
"format": "language"
124
+
},
125
+
"name": {
126
+
"type": "string",
127
+
"description": "A short human-readable name for the label.",
128
+
"maxGraphemes": 64,
129
+
"maxLength": 640
130
+
},
131
+
"description": {
132
+
"type": "string",
133
+
"description": "A longer description of what the label means and why it might be applied.",
134
+
"maxGraphemes": 10000,
135
+
"maxLength": 100000
136
+
}
137
+
}
138
+
},
139
+
"labelValue": {
140
+
"type": "string",
141
+
"knownValues": [
142
+
"!hide",
143
+
"!no-promote",
144
+
"!warn",
145
+
"!no-unauthenticated",
146
+
"dmca-violation",
147
+
"doxxing",
148
+
"porn",
149
+
"sexual",
150
+
"nudity",
151
+
"nsfl",
152
+
"gore"
153
+
]
154
+
}
155
+
}
156
+
}
+35
lexicons/paste.json
+35
lexicons/paste.json
···
1
+
{
2
+
"lexicon": 1,
3
+
"id": "ovh.plonk.paste",
4
+
"defs": {
5
+
"main": {
6
+
"type": "record",
7
+
"key": "tid",
8
+
"record": {
9
+
"type": "object",
10
+
"required": ["code", "lang", "title", "createdAt"],
11
+
"properties": {
12
+
"code": {
13
+
"type": "string",
14
+
"minLength": 1,
15
+
"maxGraphemes": 65536,
16
+
"maxLength": 65536
17
+
},
18
+
"lang": {
19
+
"type": "string",
20
+
"minLength": 1,
21
+
"maxGraphemes": 20,
22
+
"maxLength": 20
23
+
},
24
+
"title": {
25
+
"type": "string",
26
+
"minLength": 1,
27
+
"maxGraphemes": 100,
28
+
"maxLength": 100
29
+
},
30
+
"createdAt": { "type": "string", "format": "datetime" }
31
+
}
32
+
}
33
+
}
34
+
}
35
+
}
+49
lexicons/profile.json
+49
lexicons/profile.json
···
1
+
{
2
+
"lexicon": 1,
3
+
"id": "app.bsky.actor.profile",
4
+
"defs": {
5
+
"main": {
6
+
"type": "record",
7
+
"description": "A declaration of a Bluesky account profile.",
8
+
"key": "literal:self",
9
+
"record": {
10
+
"type": "object",
11
+
"properties": {
12
+
"displayName": {
13
+
"type": "string",
14
+
"maxGraphemes": 64,
15
+
"maxLength": 640
16
+
},
17
+
"description": {
18
+
"type": "string",
19
+
"description": "Free-form profile description text.",
20
+
"maxGraphemes": 256,
21
+
"maxLength": 2560
22
+
},
23
+
"avatar": {
24
+
"type": "blob",
25
+
"description": "Small image to be displayed next to posts from account. AKA, 'profile picture'",
26
+
"accept": ["image/png", "image/jpeg"],
27
+
"maxSize": 1000000
28
+
},
29
+
"banner": {
30
+
"type": "blob",
31
+
"description": "Larger horizontal image to display behind profile view.",
32
+
"accept": ["image/png", "image/jpeg"],
33
+
"maxSize": 1000000
34
+
},
35
+
"labels": {
36
+
"type": "union",
37
+
"description": "Self-label values, specific to the Bluesky application, on the overall account.",
38
+
"refs": ["com.atproto.label.defs#selfLabels"]
39
+
},
40
+
"joinedViaStarterPack": {
41
+
"type": "ref",
42
+
"ref": "com.atproto.repo.strongRef"
43
+
},
44
+
"createdAt": { "type": "string", "format": "datetime" }
45
+
}
46
+
}
47
+
}
48
+
}
49
+
}
+15
lexicons/strongRef.json
+15
lexicons/strongRef.json
···
1
+
{
2
+
"lexicon": 1,
3
+
"id": "com.atproto.repo.strongRef",
4
+
"description": "A URI with a content-hash fingerprint.",
5
+
"defs": {
6
+
"main": {
7
+
"type": "object",
8
+
"required": ["uri", "cid"],
9
+
"properties": {
10
+
"uri": { "type": "string", "format": "at-uri" },
11
+
"cid": { "type": "string", "format": "cid" }
12
+
}
13
+
}
14
+
}
15
+
}
+6009
package-lock.json
+6009
package-lock.json
···
1
+
{
2
+
"name": "plonk",
3
+
"version": "1.0.0",
4
+
"lockfileVersion": 3,
5
+
"requires": true,
6
+
"packages": {
7
+
"": {
8
+
"name": "plonk",
9
+
"version": "1.0.0",
10
+
"license": "ISC",
11
+
"dependencies": {
12
+
"@atproto/api": "^0.13.4",
13
+
"@atproto/common": "^0.4.1",
14
+
"@atproto/identity": "^0.4.0",
15
+
"@atproto/lexicon": "^0.4.2",
16
+
"@atproto/oauth-client-node": "^0.1.0",
17
+
"@atproto/sync": "^0.1.4",
18
+
"@atproto/syntax": "^0.3.0",
19
+
"@atproto/xrpc-server": "^0.6.3",
20
+
"better-sqlite3": "^11.1.2",
21
+
"dotenv": "^16.4.5",
22
+
"envalid": "^8.0.0",
23
+
"express": "^4.19.2",
24
+
"iron-session": "^8.0.2",
25
+
"kysely": "^0.27.4",
26
+
"multiformats": "^9.9.0",
27
+
"pino": "^9.3.2",
28
+
"pug": "^3.0.3",
29
+
"uhtml": "^4.5.9"
30
+
},
31
+
"devDependencies": {
32
+
"@atproto/lex-cli": "^0.4.1",
33
+
"@types/better-sqlite3": "^7.6.11",
34
+
"@types/express": "^4.17.21",
35
+
"pino-pretty": "^11.0.0",
36
+
"rimraf": "^5.0.0",
37
+
"ts-node": "^10.9.2",
38
+
"tsup": "^8.0.2",
39
+
"tsx": "^4.7.2",
40
+
"typescript": "^5.4.4"
41
+
}
42
+
},
43
+
"node_modules/@atproto-labs/did-resolver": {
44
+
"version": "0.1.4",
45
+
"resolved": "https://registry.npmjs.org/@atproto-labs/did-resolver/-/did-resolver-0.1.4.tgz",
46
+
"integrity": "sha512-5d+LHScS2ueYsFRjMOC3c1EwM2ui1yBVbBA0yY3MH7aydbljm5D28scsOVuymIhHwPFwcGvZbMON4PVSfpBbbQ==",
47
+
"license": "MIT",
48
+
"dependencies": {
49
+
"@atproto-labs/fetch": "0.1.1",
50
+
"@atproto-labs/pipe": "0.1.0",
51
+
"@atproto-labs/simple-store": "0.1.1",
52
+
"@atproto-labs/simple-store-memory": "0.1.1",
53
+
"@atproto/did": "0.1.2",
54
+
"zod": "^3.23.8"
55
+
}
56
+
},
57
+
"node_modules/@atproto-labs/fetch": {
58
+
"version": "0.1.1",
59
+
"resolved": "https://registry.npmjs.org/@atproto-labs/fetch/-/fetch-0.1.1.tgz",
60
+
"integrity": "sha512-X1zO1MDoJzEurbWXMAe1H8EZ995Xam/aXdxhGVrXmOMyPDuvBa1oxwh/kQNZRCKcMQUbiwkk+Jfq6ZkTuvGbww==",
61
+
"license": "MIT",
62
+
"dependencies": {
63
+
"@atproto-labs/pipe": "0.1.0"
64
+
},
65
+
"optionalDependencies": {
66
+
"zod": "^3.23.8"
67
+
}
68
+
},
69
+
"node_modules/@atproto-labs/fetch-node": {
70
+
"version": "0.1.3",
71
+
"resolved": "https://registry.npmjs.org/@atproto-labs/fetch-node/-/fetch-node-0.1.3.tgz",
72
+
"integrity": "sha512-KX3ogPJt6dXNppWImQ9omfhrc8t73WrJaxHMphRAqQL8jXxKW5NBCTjSuwroBkJ1pj1aValBrc5NpdYu+H/9Qg==",
73
+
"license": "MIT",
74
+
"dependencies": {
75
+
"@atproto-labs/fetch": "0.1.1",
76
+
"@atproto-labs/pipe": "0.1.0",
77
+
"ipaddr.js": "^2.1.0",
78
+
"psl": "^1.9.0",
79
+
"undici": "^6.14.1"
80
+
}
81
+
},
82
+
"node_modules/@atproto-labs/handle-resolver": {
83
+
"version": "0.1.3",
84
+
"resolved": "https://registry.npmjs.org/@atproto-labs/handle-resolver/-/handle-resolver-0.1.3.tgz",
85
+
"integrity": "sha512-pUn8uqQNqMpecQjO0UWmdKhKX1NnXdLBXHRgID2g4kmhpz3hkbbec+h34uSk6wLfZnwPFaVQnGdEkyMq/tNToQ==",
86
+
"license": "MIT",
87
+
"dependencies": {
88
+
"@atproto-labs/simple-store": "0.1.1",
89
+
"@atproto-labs/simple-store-memory": "0.1.1",
90
+
"@atproto/did": "0.1.2",
91
+
"zod": "^3.23.8"
92
+
}
93
+
},
94
+
"node_modules/@atproto-labs/handle-resolver-node": {
95
+
"version": "0.1.6",
96
+
"resolved": "https://registry.npmjs.org/@atproto-labs/handle-resolver-node/-/handle-resolver-node-0.1.6.tgz",
97
+
"integrity": "sha512-fJfPtqvo+EQ9ZNjdicQB4nuo+l8a7KvUlzW+tpTFkMQsdB017Dl0qHD7rv9SFlXMrswX5A3Dpwi/UDfGTtiltA==",
98
+
"license": "MIT",
99
+
"dependencies": {
100
+
"@atproto-labs/fetch-node": "0.1.3",
101
+
"@atproto-labs/handle-resolver": "0.1.3",
102
+
"@atproto/did": "0.1.2"
103
+
}
104
+
},
105
+
"node_modules/@atproto-labs/identity-resolver": {
106
+
"version": "0.1.4",
107
+
"resolved": "https://registry.npmjs.org/@atproto-labs/identity-resolver/-/identity-resolver-0.1.4.tgz",
108
+
"integrity": "sha512-uaRJsYFCRZQcw0c7S+RuziSVm5qHcK3N6uqsXz8NzYoJAE55Ah4DkQMj0rfapZmb0jyBau04RC/WoI4PSim+Aw==",
109
+
"license": "MIT",
110
+
"dependencies": {
111
+
"@atproto-labs/did-resolver": "0.1.4",
112
+
"@atproto-labs/handle-resolver": "0.1.3",
113
+
"@atproto/syntax": "0.3.0"
114
+
}
115
+
},
116
+
"node_modules/@atproto-labs/identity-resolver/node_modules/@atproto/syntax": {
117
+
"version": "0.3.0",
118
+
"resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.3.0.tgz",
119
+
"integrity": "sha512-Weq0ZBxffGHDXHl9U7BQc2BFJi/e23AL+k+i5+D9hUq/bzT4yjGsrCejkjq0xt82xXDjmhhvQSZ0LqxyZ5woxA==",
120
+
"license": "MIT"
121
+
},
122
+
"node_modules/@atproto-labs/pipe": {
123
+
"version": "0.1.0",
124
+
"resolved": "https://registry.npmjs.org/@atproto-labs/pipe/-/pipe-0.1.0.tgz",
125
+
"integrity": "sha512-ghOqHFyJlQVFPESzlVHjKroP0tPzbmG5Jms0dNI9yLDEfL8xp4OFPWLX4f6T8mRq69wWs4nIDM3sSsFbFqLa1w==",
126
+
"license": "MIT"
127
+
},
128
+
"node_modules/@atproto-labs/simple-store": {
129
+
"version": "0.1.1",
130
+
"resolved": "https://registry.npmjs.org/@atproto-labs/simple-store/-/simple-store-0.1.1.tgz",
131
+
"integrity": "sha512-WKILW2b3QbAYKh+w5U2x6p5FqqLl0nAeLwGeDY+KjX01K4Dq3vQTR9b/qNp0jZm48CabPQVrqCv0PPU9LgRRRg==",
132
+
"license": "MIT"
133
+
},
134
+
"node_modules/@atproto-labs/simple-store-memory": {
135
+
"version": "0.1.1",
136
+
"resolved": "https://registry.npmjs.org/@atproto-labs/simple-store-memory/-/simple-store-memory-0.1.1.tgz",
137
+
"integrity": "sha512-PCRqhnZ8NBNBvLku53O56T0lsVOtclfIrQU/rwLCc4+p45/SBPrRYNBi6YFq5rxZbK6Njos9MCmILV/KLQxrWA==",
138
+
"license": "MIT",
139
+
"dependencies": {
140
+
"@atproto-labs/simple-store": "0.1.1",
141
+
"lru-cache": "^10.2.0"
142
+
}
143
+
},
144
+
"node_modules/@atproto/api": {
145
+
"version": "0.13.18",
146
+
"resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.13.18.tgz",
147
+
"integrity": "sha512-rrl5HhzGYWZ7fiC965TPBUOVItq9M4dxMb6qz8IvAVQliSkrJrKc7UD0QWL89QiiXaOBuX8w+4i5r4wrfBGddg==",
148
+
"license": "MIT",
149
+
"dependencies": {
150
+
"@atproto/common-web": "^0.3.1",
151
+
"@atproto/lexicon": "^0.4.3",
152
+
"@atproto/syntax": "^0.3.1",
153
+
"@atproto/xrpc": "^0.6.4",
154
+
"await-lock": "^2.2.2",
155
+
"multiformats": "^9.9.0",
156
+
"tlds": "^1.234.0",
157
+
"zod": "^3.23.8"
158
+
}
159
+
},
160
+
"node_modules/@atproto/common": {
161
+
"version": "0.4.4",
162
+
"resolved": "https://registry.npmjs.org/@atproto/common/-/common-0.4.4.tgz",
163
+
"integrity": "sha512-58tMbn6A1Zu296s/l3uIj8z9d7IRHpZvLOfsFRikaQaYrzhJpL2aPY4uFQ8GJcxnsxeUnxBCrQz9we5jVVJI5Q==",
164
+
"license": "MIT",
165
+
"dependencies": {
166
+
"@atproto/common-web": "^0.3.1",
167
+
"@ipld/dag-cbor": "^7.0.3",
168
+
"cbor-x": "^1.5.1",
169
+
"iso-datestring-validator": "^2.2.2",
170
+
"multiformats": "^9.9.0",
171
+
"pino": "^8.21.0"
172
+
}
173
+
},
174
+
"node_modules/@atproto/common-web": {
175
+
"version": "0.3.1",
176
+
"resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.3.1.tgz",
177
+
"integrity": "sha512-N7wiTnus5vAr+lT//0y8m/FaHHLJ9LpGuEwkwDAeV3LCiPif4m/FS8x/QOYrx1PdZQwKso95RAPzCGWQBH5j6Q==",
178
+
"license": "MIT",
179
+
"dependencies": {
180
+
"graphemer": "^1.4.0",
181
+
"multiformats": "^9.9.0",
182
+
"uint8arrays": "3.0.0",
183
+
"zod": "^3.23.8"
184
+
}
185
+
},
186
+
"node_modules/@atproto/common/node_modules/pino": {
187
+
"version": "8.21.0",
188
+
"resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz",
189
+
"integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==",
190
+
"license": "MIT",
191
+
"dependencies": {
192
+
"atomic-sleep": "^1.0.0",
193
+
"fast-redact": "^3.1.1",
194
+
"on-exit-leak-free": "^2.1.0",
195
+
"pino-abstract-transport": "^1.2.0",
196
+
"pino-std-serializers": "^6.0.0",
197
+
"process-warning": "^3.0.0",
198
+
"quick-format-unescaped": "^4.0.3",
199
+
"real-require": "^0.2.0",
200
+
"safe-stable-stringify": "^2.3.1",
201
+
"sonic-boom": "^3.7.0",
202
+
"thread-stream": "^2.6.0"
203
+
},
204
+
"bin": {
205
+
"pino": "bin.js"
206
+
}
207
+
},
208
+
"node_modules/@atproto/common/node_modules/pino-abstract-transport": {
209
+
"version": "1.2.0",
210
+
"resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz",
211
+
"integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==",
212
+
"license": "MIT",
213
+
"dependencies": {
214
+
"readable-stream": "^4.0.0",
215
+
"split2": "^4.0.0"
216
+
}
217
+
},
218
+
"node_modules/@atproto/common/node_modules/pino-std-serializers": {
219
+
"version": "6.2.2",
220
+
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz",
221
+
"integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==",
222
+
"license": "MIT"
223
+
},
224
+
"node_modules/@atproto/common/node_modules/process-warning": {
225
+
"version": "3.0.0",
226
+
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz",
227
+
"integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==",
228
+
"license": "MIT"
229
+
},
230
+
"node_modules/@atproto/common/node_modules/sonic-boom": {
231
+
"version": "3.8.1",
232
+
"resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz",
233
+
"integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==",
234
+
"license": "MIT",
235
+
"dependencies": {
236
+
"atomic-sleep": "^1.0.0"
237
+
}
238
+
},
239
+
"node_modules/@atproto/common/node_modules/thread-stream": {
240
+
"version": "2.7.0",
241
+
"resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz",
242
+
"integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==",
243
+
"license": "MIT",
244
+
"dependencies": {
245
+
"real-require": "^0.2.0"
246
+
}
247
+
},
248
+
"node_modules/@atproto/crypto": {
249
+
"version": "0.4.2",
250
+
"resolved": "https://registry.npmjs.org/@atproto/crypto/-/crypto-0.4.2.tgz",
251
+
"integrity": "sha512-aeOfPQYCDbhn2hV06oBF2KXrWjf/BK4yL8lfANJKSmKl3tKWCkiW/moi643rUXXxSE72KtWtQeqvNFYnnFJ0ig==",
252
+
"license": "MIT",
253
+
"dependencies": {
254
+
"@noble/curves": "^1.1.0",
255
+
"@noble/hashes": "^1.3.1",
256
+
"uint8arrays": "3.0.0"
257
+
}
258
+
},
259
+
"node_modules/@atproto/did": {
260
+
"version": "0.1.2",
261
+
"resolved": "https://registry.npmjs.org/@atproto/did/-/did-0.1.2.tgz",
262
+
"integrity": "sha512-gmY1SyAuqfmsFbIXkUIScfnULqn39FoUNz4oE0fUuMu9in6PEyoxlmD2lAo7Q3KMy3X/hvTn2u5f8W/2KuDg1w==",
263
+
"license": "MIT",
264
+
"dependencies": {
265
+
"zod": "^3.23.8"
266
+
}
267
+
},
268
+
"node_modules/@atproto/identity": {
269
+
"version": "0.4.3",
270
+
"resolved": "https://registry.npmjs.org/@atproto/identity/-/identity-0.4.3.tgz",
271
+
"integrity": "sha512-DLXMWh57dHvIeBl+IvC+q20z0IdDZT1awOn84vDyxacL9DfhbiTy/zCUPFEzHyvfrilNG1tDA4zQzURubdFqNg==",
272
+
"license": "MIT",
273
+
"dependencies": {
274
+
"@atproto/common-web": "^0.3.1",
275
+
"@atproto/crypto": "^0.4.2",
276
+
"axios": "^0.27.2"
277
+
}
278
+
},
279
+
"node_modules/@atproto/jwk": {
280
+
"version": "0.1.1",
281
+
"resolved": "https://registry.npmjs.org/@atproto/jwk/-/jwk-0.1.1.tgz",
282
+
"integrity": "sha512-6h/bj1APUk7QcV9t/oA6+9DB5NZx9SZru9x+/pV5oHFI9Xz4ZuM5+dq1PfsJV54pZyqdnZ6W6M717cxoC7q7og==",
283
+
"license": "MIT",
284
+
"dependencies": {
285
+
"multiformats": "^9.9.0",
286
+
"zod": "^3.23.8"
287
+
}
288
+
},
289
+
"node_modules/@atproto/jwk-jose": {
290
+
"version": "0.1.2",
291
+
"resolved": "https://registry.npmjs.org/@atproto/jwk-jose/-/jwk-jose-0.1.2.tgz",
292
+
"integrity": "sha512-lDwc/6lLn2aZ/JpyyggyjLFsJPMntrVzryyGUx5aNpuTS8SIuc4Ky0REhxqfLopQXJJZCuRRjagHG3uP05/moQ==",
293
+
"license": "MIT",
294
+
"dependencies": {
295
+
"@atproto/jwk": "0.1.1",
296
+
"jose": "^5.2.0"
297
+
}
298
+
},
299
+
"node_modules/@atproto/jwk-webcrypto": {
300
+
"version": "0.1.2",
301
+
"resolved": "https://registry.npmjs.org/@atproto/jwk-webcrypto/-/jwk-webcrypto-0.1.2.tgz",
302
+
"integrity": "sha512-vTBUbUZXh0GI+6KJiPGukmI4BQEHFAij8fJJ4WnReF/hefAs3ISZtrWZHGBebz+q2EcExYlnhhlmxvDzV7veGw==",
303
+
"license": "MIT",
304
+
"dependencies": {
305
+
"@atproto/jwk": "0.1.1",
306
+
"@atproto/jwk-jose": "0.1.2"
307
+
}
308
+
},
309
+
"node_modules/@atproto/lex-cli": {
310
+
"version": "0.4.1",
311
+
"resolved": "https://registry.npmjs.org/@atproto/lex-cli/-/lex-cli-0.4.1.tgz",
312
+
"integrity": "sha512-QP9mE8MYzXR2ydhCBb/mtGqKZjqpffqcpZCr7JM4mFOZPvXV8k7OqVP1h+T94JB/tGcGPhB750S6tqUH9VRLVg==",
313
+
"dev": true,
314
+
"license": "MIT",
315
+
"dependencies": {
316
+
"@atproto/lexicon": "^0.4.0",
317
+
"@atproto/syntax": "^0.3.0",
318
+
"chalk": "^4.1.2",
319
+
"commander": "^9.4.0",
320
+
"prettier": "^3.2.5",
321
+
"ts-morph": "^16.0.0",
322
+
"yesno": "^0.4.0",
323
+
"zod": "^3.23.8"
324
+
},
325
+
"bin": {
326
+
"lex": "dist/index.js"
327
+
}
328
+
},
329
+
"node_modules/@atproto/lexicon": {
330
+
"version": "0.4.3",
331
+
"resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.4.3.tgz",
332
+
"integrity": "sha512-lFVZXe1S1pJP0dcxvJuHP3r/a+EAIBwwU7jUK+r8iLhIja+ml6NmYv8KeFHmIJATh03spEQ9s02duDmFVdCoXg==",
333
+
"license": "MIT",
334
+
"dependencies": {
335
+
"@atproto/common-web": "^0.3.1",
336
+
"@atproto/syntax": "^0.3.1",
337
+
"iso-datestring-validator": "^2.2.2",
338
+
"multiformats": "^9.9.0",
339
+
"zod": "^3.23.8"
340
+
}
341
+
},
342
+
"node_modules/@atproto/oauth-client": {
343
+
"version": "0.2.2",
344
+
"resolved": "https://registry.npmjs.org/@atproto/oauth-client/-/oauth-client-0.2.2.tgz",
345
+
"integrity": "sha512-hYL7Hx2h52zeC1WZeFjV9FFfqt8PZnURKofz0VJVeiPqB9wySJ46MgFVxsZ3t08c03WSDugujEz2JlhtQpS7Zg==",
346
+
"license": "MIT",
347
+
"dependencies": {
348
+
"@atproto-labs/did-resolver": "0.1.4",
349
+
"@atproto-labs/fetch": "0.1.1",
350
+
"@atproto-labs/handle-resolver": "0.1.3",
351
+
"@atproto-labs/identity-resolver": "0.1.4",
352
+
"@atproto-labs/simple-store": "0.1.1",
353
+
"@atproto-labs/simple-store-memory": "0.1.1",
354
+
"@atproto/did": "0.1.2",
355
+
"@atproto/jwk": "0.1.1",
356
+
"@atproto/oauth-types": "0.1.5",
357
+
"@atproto/xrpc": "0.6.3",
358
+
"multiformats": "^9.9.0",
359
+
"zod": "^3.23.8"
360
+
}
361
+
},
362
+
"node_modules/@atproto/oauth-client-node": {
363
+
"version": "0.1.4",
364
+
"resolved": "https://registry.npmjs.org/@atproto/oauth-client-node/-/oauth-client-node-0.1.4.tgz",
365
+
"integrity": "sha512-LKLBrvJL6gd6YqbeZsm9BZ1gqrMDKtz/77TNNjPBP+RBIV6e6Oj5uJmFMshzyJj87Rwd7Menb0niz6LhlKv/rg==",
366
+
"license": "MIT",
367
+
"dependencies": {
368
+
"@atproto-labs/did-resolver": "0.1.4",
369
+
"@atproto-labs/handle-resolver-node": "0.1.6",
370
+
"@atproto-labs/simple-store": "0.1.1",
371
+
"@atproto/did": "0.1.2",
372
+
"@atproto/jwk": "0.1.1",
373
+
"@atproto/jwk-jose": "0.1.2",
374
+
"@atproto/jwk-webcrypto": "0.1.2",
375
+
"@atproto/oauth-client": "0.2.2",
376
+
"@atproto/oauth-types": "0.1.5"
377
+
}
378
+
},
379
+
"node_modules/@atproto/oauth-client/node_modules/@atproto/xrpc": {
380
+
"version": "0.6.3",
381
+
"resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.6.3.tgz",
382
+
"integrity": "sha512-S3tRvOdA9amPkKLll3rc4vphlDitLrkN5TwWh5Tu/jzk7mnobVVE3akYgICV9XCNHKjWM+IAPxFFI2qi+VW6nQ==",
383
+
"license": "MIT",
384
+
"dependencies": {
385
+
"@atproto/lexicon": "^0.4.2",
386
+
"zod": "^3.23.8"
387
+
}
388
+
},
389
+
"node_modules/@atproto/oauth-types": {
390
+
"version": "0.1.5",
391
+
"resolved": "https://registry.npmjs.org/@atproto/oauth-types/-/oauth-types-0.1.5.tgz",
392
+
"integrity": "sha512-vNab/6BYUQCfmfhGc3G61EcatQxvh2d41FDWqR8CAYsblNXO6nOEVXn7cXdQUkb3K49LU0vy5Jf1+wFNcpY3IQ==",
393
+
"license": "MIT",
394
+
"dependencies": {
395
+
"@atproto/jwk": "0.1.1",
396
+
"zod": "^3.23.8"
397
+
}
398
+
},
399
+
"node_modules/@atproto/repo": {
400
+
"version": "0.5.5",
401
+
"resolved": "https://registry.npmjs.org/@atproto/repo/-/repo-0.5.5.tgz",
402
+
"integrity": "sha512-Zu1tw42KBVyFzIh1XYSIvm8V+V9oEKWJR7NnHBgeSMwCc9QwM32jO7uqgvEjZYEXgdYKanGhv/YHLyxtZa5Ckg==",
403
+
"license": "MIT",
404
+
"dependencies": {
405
+
"@atproto/common": "^0.4.4",
406
+
"@atproto/common-web": "^0.3.1",
407
+
"@atproto/crypto": "^0.4.2",
408
+
"@atproto/lexicon": "^0.4.3",
409
+
"@ipld/car": "^3.2.3",
410
+
"@ipld/dag-cbor": "^7.0.0",
411
+
"multiformats": "^9.9.0",
412
+
"uint8arrays": "3.0.0",
413
+
"zod": "^3.23.8"
414
+
}
415
+
},
416
+
"node_modules/@atproto/sync": {
417
+
"version": "0.1.6",
418
+
"resolved": "https://registry.npmjs.org/@atproto/sync/-/sync-0.1.6.tgz",
419
+
"integrity": "sha512-9lqe6E6fIns28TJyQufLCVefMxmK3bvEfQBhmXJBGZMHuKlH8+F5P9DfnHv6vs6ygfmHIUIjYDWqJu/rpt8pzw==",
420
+
"license": "MIT",
421
+
"dependencies": {
422
+
"@atproto/common": "^0.4.4",
423
+
"@atproto/identity": "^0.4.3",
424
+
"@atproto/lexicon": "^0.4.3",
425
+
"@atproto/repo": "^0.5.5",
426
+
"@atproto/syntax": "^0.3.1",
427
+
"@atproto/xrpc-server": "^0.7.3",
428
+
"multiformats": "^9.9.0",
429
+
"p-queue": "^6.6.2"
430
+
}
431
+
},
432
+
"node_modules/@atproto/sync/node_modules/@atproto/xrpc-server": {
433
+
"version": "0.7.3",
434
+
"resolved": "https://registry.npmjs.org/@atproto/xrpc-server/-/xrpc-server-0.7.3.tgz",
435
+
"integrity": "sha512-x0qegkN6snrbXJO3v9h2kuh9e90g6ZZkDXv3COiraGS3yRTzIm6i4bMvDSfCI50+0xCNtPKOkpn8taRoRgkyiw==",
436
+
"license": "MIT",
437
+
"dependencies": {
438
+
"@atproto/common": "^0.4.4",
439
+
"@atproto/crypto": "^0.4.2",
440
+
"@atproto/lexicon": "^0.4.3",
441
+
"@atproto/xrpc": "^0.6.4",
442
+
"cbor-x": "^1.5.1",
443
+
"express": "^4.17.2",
444
+
"http-errors": "^2.0.0",
445
+
"mime-types": "^2.1.35",
446
+
"rate-limiter-flexible": "^2.4.1",
447
+
"uint8arrays": "3.0.0",
448
+
"ws": "^8.12.0",
449
+
"zod": "^3.23.8"
450
+
}
451
+
},
452
+
"node_modules/@atproto/syntax": {
453
+
"version": "0.3.1",
454
+
"resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.3.1.tgz",
455
+
"integrity": "sha512-fzW0Mg1QUOVCWUD3RgEsDt6d1OZ6DdFmbKcDdbzUfh0t4rhtRAC05KbZYmxuMPWDAiJ4BbbQ5dkAc/mNypMXkw==",
456
+
"license": "MIT"
457
+
},
458
+
"node_modules/@atproto/xrpc": {
459
+
"version": "0.6.4",
460
+
"resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.6.4.tgz",
461
+
"integrity": "sha512-9ZAJ8nsXTqC4XFyS0E1Wlg7bAvonhXQNQ3Ocs1L1LIwFLXvsw/4fNpIHXxvXvqTCVeyHLbImOnE9UiO1c/qIYA==",
462
+
"license": "MIT",
463
+
"dependencies": {
464
+
"@atproto/lexicon": "^0.4.3",
465
+
"zod": "^3.23.8"
466
+
}
467
+
},
468
+
"node_modules/@atproto/xrpc-server": {
469
+
"version": "0.6.4",
470
+
"resolved": "https://registry.npmjs.org/@atproto/xrpc-server/-/xrpc-server-0.6.4.tgz",
471
+
"integrity": "sha512-AL9okOTpJpxh3wJjT27RiPkp2IWIxDPCyyvuO1SJu0E9URGfWZL26SlT7/IR/tadZTJezr5+ZNuxhV0uhI+s1A==",
472
+
"license": "MIT",
473
+
"dependencies": {
474
+
"@atproto/common": "^0.4.2",
475
+
"@atproto/crypto": "^0.4.1",
476
+
"@atproto/lexicon": "^0.4.1",
477
+
"@atproto/xrpc": "^0.6.2",
478
+
"cbor-x": "^1.5.1",
479
+
"express": "^4.17.2",
480
+
"http-errors": "^2.0.0",
481
+
"mime-types": "^2.1.35",
482
+
"rate-limiter-flexible": "^2.4.1",
483
+
"uint8arrays": "3.0.0",
484
+
"ws": "^8.12.0",
485
+
"zod": "^3.23.8"
486
+
}
487
+
},
488
+
"node_modules/@babel/helper-string-parser": {
489
+
"version": "7.25.9",
490
+
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
491
+
"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
492
+
"license": "MIT",
493
+
"engines": {
494
+
"node": ">=6.9.0"
495
+
}
496
+
},
497
+
"node_modules/@babel/helper-validator-identifier": {
498
+
"version": "7.25.9",
499
+
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
500
+
"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
501
+
"license": "MIT",
502
+
"engines": {
503
+
"node": ">=6.9.0"
504
+
}
505
+
},
506
+
"node_modules/@babel/parser": {
507
+
"version": "7.26.3",
508
+
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz",
509
+
"integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==",
510
+
"license": "MIT",
511
+
"dependencies": {
512
+
"@babel/types": "^7.26.3"
513
+
},
514
+
"bin": {
515
+
"parser": "bin/babel-parser.js"
516
+
},
517
+
"engines": {
518
+
"node": ">=6.0.0"
519
+
}
520
+
},
521
+
"node_modules/@babel/types": {
522
+
"version": "7.26.3",
523
+
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz",
524
+
"integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==",
525
+
"license": "MIT",
526
+
"dependencies": {
527
+
"@babel/helper-string-parser": "^7.25.9",
528
+
"@babel/helper-validator-identifier": "^7.25.9"
529
+
},
530
+
"engines": {
531
+
"node": ">=6.9.0"
532
+
}
533
+
},
534
+
"node_modules/@cbor-extract/cbor-extract-darwin-arm64": {
535
+
"version": "2.2.0",
536
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz",
537
+
"integrity": "sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==",
538
+
"cpu": [
539
+
"arm64"
540
+
],
541
+
"license": "MIT",
542
+
"optional": true,
543
+
"os": [
544
+
"darwin"
545
+
]
546
+
},
547
+
"node_modules/@cbor-extract/cbor-extract-darwin-x64": {
548
+
"version": "2.2.0",
549
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz",
550
+
"integrity": "sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==",
551
+
"cpu": [
552
+
"x64"
553
+
],
554
+
"license": "MIT",
555
+
"optional": true,
556
+
"os": [
557
+
"darwin"
558
+
]
559
+
},
560
+
"node_modules/@cbor-extract/cbor-extract-linux-arm": {
561
+
"version": "2.2.0",
562
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz",
563
+
"integrity": "sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==",
564
+
"cpu": [
565
+
"arm"
566
+
],
567
+
"license": "MIT",
568
+
"optional": true,
569
+
"os": [
570
+
"linux"
571
+
]
572
+
},
573
+
"node_modules/@cbor-extract/cbor-extract-linux-arm64": {
574
+
"version": "2.2.0",
575
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz",
576
+
"integrity": "sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==",
577
+
"cpu": [
578
+
"arm64"
579
+
],
580
+
"license": "MIT",
581
+
"optional": true,
582
+
"os": [
583
+
"linux"
584
+
]
585
+
},
586
+
"node_modules/@cbor-extract/cbor-extract-linux-x64": {
587
+
"version": "2.2.0",
588
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz",
589
+
"integrity": "sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==",
590
+
"cpu": [
591
+
"x64"
592
+
],
593
+
"license": "MIT",
594
+
"optional": true,
595
+
"os": [
596
+
"linux"
597
+
]
598
+
},
599
+
"node_modules/@cbor-extract/cbor-extract-win32-x64": {
600
+
"version": "2.2.0",
601
+
"resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz",
602
+
"integrity": "sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==",
603
+
"cpu": [
604
+
"x64"
605
+
],
606
+
"license": "MIT",
607
+
"optional": true,
608
+
"os": [
609
+
"win32"
610
+
]
611
+
},
612
+
"node_modules/@cspotcode/source-map-support": {
613
+
"version": "0.8.1",
614
+
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
615
+
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
616
+
"dev": true,
617
+
"license": "MIT",
618
+
"dependencies": {
619
+
"@jridgewell/trace-mapping": "0.3.9"
620
+
},
621
+
"engines": {
622
+
"node": ">=12"
623
+
}
624
+
},
625
+
"node_modules/@esbuild/aix-ppc64": {
626
+
"version": "0.24.0",
627
+
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz",
628
+
"integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==",
629
+
"cpu": [
630
+
"ppc64"
631
+
],
632
+
"dev": true,
633
+
"license": "MIT",
634
+
"optional": true,
635
+
"os": [
636
+
"aix"
637
+
],
638
+
"engines": {
639
+
"node": ">=18"
640
+
}
641
+
},
642
+
"node_modules/@esbuild/android-arm": {
643
+
"version": "0.24.0",
644
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz",
645
+
"integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==",
646
+
"cpu": [
647
+
"arm"
648
+
],
649
+
"dev": true,
650
+
"license": "MIT",
651
+
"optional": true,
652
+
"os": [
653
+
"android"
654
+
],
655
+
"engines": {
656
+
"node": ">=18"
657
+
}
658
+
},
659
+
"node_modules/@esbuild/android-arm64": {
660
+
"version": "0.24.0",
661
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz",
662
+
"integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==",
663
+
"cpu": [
664
+
"arm64"
665
+
],
666
+
"dev": true,
667
+
"license": "MIT",
668
+
"optional": true,
669
+
"os": [
670
+
"android"
671
+
],
672
+
"engines": {
673
+
"node": ">=18"
674
+
}
675
+
},
676
+
"node_modules/@esbuild/android-x64": {
677
+
"version": "0.24.0",
678
+
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz",
679
+
"integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==",
680
+
"cpu": [
681
+
"x64"
682
+
],
683
+
"dev": true,
684
+
"license": "MIT",
685
+
"optional": true,
686
+
"os": [
687
+
"android"
688
+
],
689
+
"engines": {
690
+
"node": ">=18"
691
+
}
692
+
},
693
+
"node_modules/@esbuild/darwin-arm64": {
694
+
"version": "0.24.0",
695
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz",
696
+
"integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==",
697
+
"cpu": [
698
+
"arm64"
699
+
],
700
+
"dev": true,
701
+
"license": "MIT",
702
+
"optional": true,
703
+
"os": [
704
+
"darwin"
705
+
],
706
+
"engines": {
707
+
"node": ">=18"
708
+
}
709
+
},
710
+
"node_modules/@esbuild/darwin-x64": {
711
+
"version": "0.24.0",
712
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz",
713
+
"integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==",
714
+
"cpu": [
715
+
"x64"
716
+
],
717
+
"dev": true,
718
+
"license": "MIT",
719
+
"optional": true,
720
+
"os": [
721
+
"darwin"
722
+
],
723
+
"engines": {
724
+
"node": ">=18"
725
+
}
726
+
},
727
+
"node_modules/@esbuild/freebsd-arm64": {
728
+
"version": "0.24.0",
729
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz",
730
+
"integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==",
731
+
"cpu": [
732
+
"arm64"
733
+
],
734
+
"dev": true,
735
+
"license": "MIT",
736
+
"optional": true,
737
+
"os": [
738
+
"freebsd"
739
+
],
740
+
"engines": {
741
+
"node": ">=18"
742
+
}
743
+
},
744
+
"node_modules/@esbuild/freebsd-x64": {
745
+
"version": "0.24.0",
746
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz",
747
+
"integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==",
748
+
"cpu": [
749
+
"x64"
750
+
],
751
+
"dev": true,
752
+
"license": "MIT",
753
+
"optional": true,
754
+
"os": [
755
+
"freebsd"
756
+
],
757
+
"engines": {
758
+
"node": ">=18"
759
+
}
760
+
},
761
+
"node_modules/@esbuild/linux-arm": {
762
+
"version": "0.24.0",
763
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz",
764
+
"integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==",
765
+
"cpu": [
766
+
"arm"
767
+
],
768
+
"dev": true,
769
+
"license": "MIT",
770
+
"optional": true,
771
+
"os": [
772
+
"linux"
773
+
],
774
+
"engines": {
775
+
"node": ">=18"
776
+
}
777
+
},
778
+
"node_modules/@esbuild/linux-arm64": {
779
+
"version": "0.24.0",
780
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz",
781
+
"integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==",
782
+
"cpu": [
783
+
"arm64"
784
+
],
785
+
"dev": true,
786
+
"license": "MIT",
787
+
"optional": true,
788
+
"os": [
789
+
"linux"
790
+
],
791
+
"engines": {
792
+
"node": ">=18"
793
+
}
794
+
},
795
+
"node_modules/@esbuild/linux-ia32": {
796
+
"version": "0.24.0",
797
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz",
798
+
"integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==",
799
+
"cpu": [
800
+
"ia32"
801
+
],
802
+
"dev": true,
803
+
"license": "MIT",
804
+
"optional": true,
805
+
"os": [
806
+
"linux"
807
+
],
808
+
"engines": {
809
+
"node": ">=18"
810
+
}
811
+
},
812
+
"node_modules/@esbuild/linux-loong64": {
813
+
"version": "0.24.0",
814
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz",
815
+
"integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==",
816
+
"cpu": [
817
+
"loong64"
818
+
],
819
+
"dev": true,
820
+
"license": "MIT",
821
+
"optional": true,
822
+
"os": [
823
+
"linux"
824
+
],
825
+
"engines": {
826
+
"node": ">=18"
827
+
}
828
+
},
829
+
"node_modules/@esbuild/linux-mips64el": {
830
+
"version": "0.24.0",
831
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz",
832
+
"integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==",
833
+
"cpu": [
834
+
"mips64el"
835
+
],
836
+
"dev": true,
837
+
"license": "MIT",
838
+
"optional": true,
839
+
"os": [
840
+
"linux"
841
+
],
842
+
"engines": {
843
+
"node": ">=18"
844
+
}
845
+
},
846
+
"node_modules/@esbuild/linux-ppc64": {
847
+
"version": "0.24.0",
848
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz",
849
+
"integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==",
850
+
"cpu": [
851
+
"ppc64"
852
+
],
853
+
"dev": true,
854
+
"license": "MIT",
855
+
"optional": true,
856
+
"os": [
857
+
"linux"
858
+
],
859
+
"engines": {
860
+
"node": ">=18"
861
+
}
862
+
},
863
+
"node_modules/@esbuild/linux-riscv64": {
864
+
"version": "0.24.0",
865
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz",
866
+
"integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==",
867
+
"cpu": [
868
+
"riscv64"
869
+
],
870
+
"dev": true,
871
+
"license": "MIT",
872
+
"optional": true,
873
+
"os": [
874
+
"linux"
875
+
],
876
+
"engines": {
877
+
"node": ">=18"
878
+
}
879
+
},
880
+
"node_modules/@esbuild/linux-s390x": {
881
+
"version": "0.24.0",
882
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz",
883
+
"integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==",
884
+
"cpu": [
885
+
"s390x"
886
+
],
887
+
"dev": true,
888
+
"license": "MIT",
889
+
"optional": true,
890
+
"os": [
891
+
"linux"
892
+
],
893
+
"engines": {
894
+
"node": ">=18"
895
+
}
896
+
},
897
+
"node_modules/@esbuild/linux-x64": {
898
+
"version": "0.24.0",
899
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz",
900
+
"integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==",
901
+
"cpu": [
902
+
"x64"
903
+
],
904
+
"dev": true,
905
+
"license": "MIT",
906
+
"optional": true,
907
+
"os": [
908
+
"linux"
909
+
],
910
+
"engines": {
911
+
"node": ">=18"
912
+
}
913
+
},
914
+
"node_modules/@esbuild/netbsd-x64": {
915
+
"version": "0.24.0",
916
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz",
917
+
"integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==",
918
+
"cpu": [
919
+
"x64"
920
+
],
921
+
"dev": true,
922
+
"license": "MIT",
923
+
"optional": true,
924
+
"os": [
925
+
"netbsd"
926
+
],
927
+
"engines": {
928
+
"node": ">=18"
929
+
}
930
+
},
931
+
"node_modules/@esbuild/openbsd-arm64": {
932
+
"version": "0.24.0",
933
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz",
934
+
"integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==",
935
+
"cpu": [
936
+
"arm64"
937
+
],
938
+
"dev": true,
939
+
"license": "MIT",
940
+
"optional": true,
941
+
"os": [
942
+
"openbsd"
943
+
],
944
+
"engines": {
945
+
"node": ">=18"
946
+
}
947
+
},
948
+
"node_modules/@esbuild/openbsd-x64": {
949
+
"version": "0.24.0",
950
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz",
951
+
"integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==",
952
+
"cpu": [
953
+
"x64"
954
+
],
955
+
"dev": true,
956
+
"license": "MIT",
957
+
"optional": true,
958
+
"os": [
959
+
"openbsd"
960
+
],
961
+
"engines": {
962
+
"node": ">=18"
963
+
}
964
+
},
965
+
"node_modules/@esbuild/sunos-x64": {
966
+
"version": "0.24.0",
967
+
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz",
968
+
"integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==",
969
+
"cpu": [
970
+
"x64"
971
+
],
972
+
"dev": true,
973
+
"license": "MIT",
974
+
"optional": true,
975
+
"os": [
976
+
"sunos"
977
+
],
978
+
"engines": {
979
+
"node": ">=18"
980
+
}
981
+
},
982
+
"node_modules/@esbuild/win32-arm64": {
983
+
"version": "0.24.0",
984
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz",
985
+
"integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==",
986
+
"cpu": [
987
+
"arm64"
988
+
],
989
+
"dev": true,
990
+
"license": "MIT",
991
+
"optional": true,
992
+
"os": [
993
+
"win32"
994
+
],
995
+
"engines": {
996
+
"node": ">=18"
997
+
}
998
+
},
999
+
"node_modules/@esbuild/win32-ia32": {
1000
+
"version": "0.24.0",
1001
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz",
1002
+
"integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==",
1003
+
"cpu": [
1004
+
"ia32"
1005
+
],
1006
+
"dev": true,
1007
+
"license": "MIT",
1008
+
"optional": true,
1009
+
"os": [
1010
+
"win32"
1011
+
],
1012
+
"engines": {
1013
+
"node": ">=18"
1014
+
}
1015
+
},
1016
+
"node_modules/@esbuild/win32-x64": {
1017
+
"version": "0.24.0",
1018
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz",
1019
+
"integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==",
1020
+
"cpu": [
1021
+
"x64"
1022
+
],
1023
+
"dev": true,
1024
+
"license": "MIT",
1025
+
"optional": true,
1026
+
"os": [
1027
+
"win32"
1028
+
],
1029
+
"engines": {
1030
+
"node": ">=18"
1031
+
}
1032
+
},
1033
+
"node_modules/@ipld/car": {
1034
+
"version": "3.2.4",
1035
+
"resolved": "https://registry.npmjs.org/@ipld/car/-/car-3.2.4.tgz",
1036
+
"integrity": "sha512-rezKd+jk8AsTGOoJKqzfjLJ3WVft7NZNH95f0pfPbicROvzTyvHCNy567HzSUd6gRXZ9im29z5ZEv9Hw49jSYw==",
1037
+
"license": "(Apache-2.0 AND MIT)",
1038
+
"dependencies": {
1039
+
"@ipld/dag-cbor": "^7.0.0",
1040
+
"multiformats": "^9.5.4",
1041
+
"varint": "^6.0.0"
1042
+
}
1043
+
},
1044
+
"node_modules/@ipld/dag-cbor": {
1045
+
"version": "7.0.3",
1046
+
"resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-7.0.3.tgz",
1047
+
"integrity": "sha512-1VVh2huHsuohdXC1bGJNE8WR72slZ9XE2T3wbBBq31dm7ZBatmKLLxrB+XAqafxfRFjv08RZmj/W/ZqaM13AuA==",
1048
+
"license": "(Apache-2.0 AND MIT)",
1049
+
"dependencies": {
1050
+
"cborg": "^1.6.0",
1051
+
"multiformats": "^9.5.4"
1052
+
}
1053
+
},
1054
+
"node_modules/@isaacs/cliui": {
1055
+
"version": "8.0.2",
1056
+
"resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
1057
+
"integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
1058
+
"dev": true,
1059
+
"license": "ISC",
1060
+
"dependencies": {
1061
+
"string-width": "^5.1.2",
1062
+
"string-width-cjs": "npm:string-width@^4.2.0",
1063
+
"strip-ansi": "^7.0.1",
1064
+
"strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
1065
+
"wrap-ansi": "^8.1.0",
1066
+
"wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
1067
+
},
1068
+
"engines": {
1069
+
"node": ">=12"
1070
+
}
1071
+
},
1072
+
"node_modules/@jridgewell/gen-mapping": {
1073
+
"version": "0.3.5",
1074
+
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
1075
+
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
1076
+
"dev": true,
1077
+
"license": "MIT",
1078
+
"dependencies": {
1079
+
"@jridgewell/set-array": "^1.2.1",
1080
+
"@jridgewell/sourcemap-codec": "^1.4.10",
1081
+
"@jridgewell/trace-mapping": "^0.3.24"
1082
+
},
1083
+
"engines": {
1084
+
"node": ">=6.0.0"
1085
+
}
1086
+
},
1087
+
"node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": {
1088
+
"version": "0.3.25",
1089
+
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
1090
+
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
1091
+
"dev": true,
1092
+
"license": "MIT",
1093
+
"dependencies": {
1094
+
"@jridgewell/resolve-uri": "^3.1.0",
1095
+
"@jridgewell/sourcemap-codec": "^1.4.14"
1096
+
}
1097
+
},
1098
+
"node_modules/@jridgewell/resolve-uri": {
1099
+
"version": "3.1.2",
1100
+
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
1101
+
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
1102
+
"dev": true,
1103
+
"license": "MIT",
1104
+
"engines": {
1105
+
"node": ">=6.0.0"
1106
+
}
1107
+
},
1108
+
"node_modules/@jridgewell/set-array": {
1109
+
"version": "1.2.1",
1110
+
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
1111
+
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
1112
+
"dev": true,
1113
+
"license": "MIT",
1114
+
"engines": {
1115
+
"node": ">=6.0.0"
1116
+
}
1117
+
},
1118
+
"node_modules/@jridgewell/sourcemap-codec": {
1119
+
"version": "1.5.0",
1120
+
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
1121
+
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
1122
+
"dev": true,
1123
+
"license": "MIT"
1124
+
},
1125
+
"node_modules/@jridgewell/trace-mapping": {
1126
+
"version": "0.3.9",
1127
+
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
1128
+
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
1129
+
"dev": true,
1130
+
"license": "MIT",
1131
+
"dependencies": {
1132
+
"@jridgewell/resolve-uri": "^3.0.3",
1133
+
"@jridgewell/sourcemap-codec": "^1.4.10"
1134
+
}
1135
+
},
1136
+
"node_modules/@noble/curves": {
1137
+
"version": "1.7.0",
1138
+
"resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.7.0.tgz",
1139
+
"integrity": "sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==",
1140
+
"license": "MIT",
1141
+
"dependencies": {
1142
+
"@noble/hashes": "1.6.0"
1143
+
},
1144
+
"engines": {
1145
+
"node": "^14.21.3 || >=16"
1146
+
},
1147
+
"funding": {
1148
+
"url": "https://paulmillr.com/funding/"
1149
+
}
1150
+
},
1151
+
"node_modules/@noble/curves/node_modules/@noble/hashes": {
1152
+
"version": "1.6.0",
1153
+
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.0.tgz",
1154
+
"integrity": "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==",
1155
+
"license": "MIT",
1156
+
"engines": {
1157
+
"node": "^14.21.3 || >=16"
1158
+
},
1159
+
"funding": {
1160
+
"url": "https://paulmillr.com/funding/"
1161
+
}
1162
+
},
1163
+
"node_modules/@noble/hashes": {
1164
+
"version": "1.6.1",
1165
+
"resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz",
1166
+
"integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==",
1167
+
"license": "MIT",
1168
+
"engines": {
1169
+
"node": "^14.21.3 || >=16"
1170
+
},
1171
+
"funding": {
1172
+
"url": "https://paulmillr.com/funding/"
1173
+
}
1174
+
},
1175
+
"node_modules/@nodelib/fs.scandir": {
1176
+
"version": "2.1.5",
1177
+
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
1178
+
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
1179
+
"dev": true,
1180
+
"license": "MIT",
1181
+
"dependencies": {
1182
+
"@nodelib/fs.stat": "2.0.5",
1183
+
"run-parallel": "^1.1.9"
1184
+
},
1185
+
"engines": {
1186
+
"node": ">= 8"
1187
+
}
1188
+
},
1189
+
"node_modules/@nodelib/fs.stat": {
1190
+
"version": "2.0.5",
1191
+
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
1192
+
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
1193
+
"dev": true,
1194
+
"license": "MIT",
1195
+
"engines": {
1196
+
"node": ">= 8"
1197
+
}
1198
+
},
1199
+
"node_modules/@nodelib/fs.walk": {
1200
+
"version": "1.2.8",
1201
+
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
1202
+
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
1203
+
"dev": true,
1204
+
"license": "MIT",
1205
+
"dependencies": {
1206
+
"@nodelib/fs.scandir": "2.1.5",
1207
+
"fastq": "^1.6.0"
1208
+
},
1209
+
"engines": {
1210
+
"node": ">= 8"
1211
+
}
1212
+
},
1213
+
"node_modules/@pkgjs/parseargs": {
1214
+
"version": "0.11.0",
1215
+
"resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
1216
+
"integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
1217
+
"dev": true,
1218
+
"license": "MIT",
1219
+
"optional": true,
1220
+
"engines": {
1221
+
"node": ">=14"
1222
+
}
1223
+
},
1224
+
"node_modules/@preact/signals-core": {
1225
+
"version": "1.8.0",
1226
+
"resolved": "https://registry.npmjs.org/@preact/signals-core/-/signals-core-1.8.0.tgz",
1227
+
"integrity": "sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==",
1228
+
"license": "MIT",
1229
+
"optional": true,
1230
+
"funding": {
1231
+
"type": "opencollective",
1232
+
"url": "https://opencollective.com/preact"
1233
+
}
1234
+
},
1235
+
"node_modules/@rollup/rollup-android-arm-eabi": {
1236
+
"version": "4.28.0",
1237
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz",
1238
+
"integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==",
1239
+
"cpu": [
1240
+
"arm"
1241
+
],
1242
+
"dev": true,
1243
+
"license": "MIT",
1244
+
"optional": true,
1245
+
"os": [
1246
+
"android"
1247
+
]
1248
+
},
1249
+
"node_modules/@rollup/rollup-android-arm64": {
1250
+
"version": "4.28.0",
1251
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz",
1252
+
"integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==",
1253
+
"cpu": [
1254
+
"arm64"
1255
+
],
1256
+
"dev": true,
1257
+
"license": "MIT",
1258
+
"optional": true,
1259
+
"os": [
1260
+
"android"
1261
+
]
1262
+
},
1263
+
"node_modules/@rollup/rollup-darwin-arm64": {
1264
+
"version": "4.28.0",
1265
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz",
1266
+
"integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==",
1267
+
"cpu": [
1268
+
"arm64"
1269
+
],
1270
+
"dev": true,
1271
+
"license": "MIT",
1272
+
"optional": true,
1273
+
"os": [
1274
+
"darwin"
1275
+
]
1276
+
},
1277
+
"node_modules/@rollup/rollup-darwin-x64": {
1278
+
"version": "4.28.0",
1279
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz",
1280
+
"integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==",
1281
+
"cpu": [
1282
+
"x64"
1283
+
],
1284
+
"dev": true,
1285
+
"license": "MIT",
1286
+
"optional": true,
1287
+
"os": [
1288
+
"darwin"
1289
+
]
1290
+
},
1291
+
"node_modules/@rollup/rollup-freebsd-arm64": {
1292
+
"version": "4.28.0",
1293
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz",
1294
+
"integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==",
1295
+
"cpu": [
1296
+
"arm64"
1297
+
],
1298
+
"dev": true,
1299
+
"license": "MIT",
1300
+
"optional": true,
1301
+
"os": [
1302
+
"freebsd"
1303
+
]
1304
+
},
1305
+
"node_modules/@rollup/rollup-freebsd-x64": {
1306
+
"version": "4.28.0",
1307
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz",
1308
+
"integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==",
1309
+
"cpu": [
1310
+
"x64"
1311
+
],
1312
+
"dev": true,
1313
+
"license": "MIT",
1314
+
"optional": true,
1315
+
"os": [
1316
+
"freebsd"
1317
+
]
1318
+
},
1319
+
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
1320
+
"version": "4.28.0",
1321
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz",
1322
+
"integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==",
1323
+
"cpu": [
1324
+
"arm"
1325
+
],
1326
+
"dev": true,
1327
+
"license": "MIT",
1328
+
"optional": true,
1329
+
"os": [
1330
+
"linux"
1331
+
]
1332
+
},
1333
+
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
1334
+
"version": "4.28.0",
1335
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz",
1336
+
"integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==",
1337
+
"cpu": [
1338
+
"arm"
1339
+
],
1340
+
"dev": true,
1341
+
"license": "MIT",
1342
+
"optional": true,
1343
+
"os": [
1344
+
"linux"
1345
+
]
1346
+
},
1347
+
"node_modules/@rollup/rollup-linux-arm64-gnu": {
1348
+
"version": "4.28.0",
1349
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz",
1350
+
"integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==",
1351
+
"cpu": [
1352
+
"arm64"
1353
+
],
1354
+
"dev": true,
1355
+
"license": "MIT",
1356
+
"optional": true,
1357
+
"os": [
1358
+
"linux"
1359
+
]
1360
+
},
1361
+
"node_modules/@rollup/rollup-linux-arm64-musl": {
1362
+
"version": "4.28.0",
1363
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz",
1364
+
"integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==",
1365
+
"cpu": [
1366
+
"arm64"
1367
+
],
1368
+
"dev": true,
1369
+
"license": "MIT",
1370
+
"optional": true,
1371
+
"os": [
1372
+
"linux"
1373
+
]
1374
+
},
1375
+
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
1376
+
"version": "4.28.0",
1377
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz",
1378
+
"integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==",
1379
+
"cpu": [
1380
+
"ppc64"
1381
+
],
1382
+
"dev": true,
1383
+
"license": "MIT",
1384
+
"optional": true,
1385
+
"os": [
1386
+
"linux"
1387
+
]
1388
+
},
1389
+
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
1390
+
"version": "4.28.0",
1391
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz",
1392
+
"integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==",
1393
+
"cpu": [
1394
+
"riscv64"
1395
+
],
1396
+
"dev": true,
1397
+
"license": "MIT",
1398
+
"optional": true,
1399
+
"os": [
1400
+
"linux"
1401
+
]
1402
+
},
1403
+
"node_modules/@rollup/rollup-linux-s390x-gnu": {
1404
+
"version": "4.28.0",
1405
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz",
1406
+
"integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==",
1407
+
"cpu": [
1408
+
"s390x"
1409
+
],
1410
+
"dev": true,
1411
+
"license": "MIT",
1412
+
"optional": true,
1413
+
"os": [
1414
+
"linux"
1415
+
]
1416
+
},
1417
+
"node_modules/@rollup/rollup-linux-x64-gnu": {
1418
+
"version": "4.28.0",
1419
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz",
1420
+
"integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==",
1421
+
"cpu": [
1422
+
"x64"
1423
+
],
1424
+
"dev": true,
1425
+
"license": "MIT",
1426
+
"optional": true,
1427
+
"os": [
1428
+
"linux"
1429
+
]
1430
+
},
1431
+
"node_modules/@rollup/rollup-linux-x64-musl": {
1432
+
"version": "4.28.0",
1433
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz",
1434
+
"integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==",
1435
+
"cpu": [
1436
+
"x64"
1437
+
],
1438
+
"dev": true,
1439
+
"license": "MIT",
1440
+
"optional": true,
1441
+
"os": [
1442
+
"linux"
1443
+
]
1444
+
},
1445
+
"node_modules/@rollup/rollup-win32-arm64-msvc": {
1446
+
"version": "4.28.0",
1447
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz",
1448
+
"integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==",
1449
+
"cpu": [
1450
+
"arm64"
1451
+
],
1452
+
"dev": true,
1453
+
"license": "MIT",
1454
+
"optional": true,
1455
+
"os": [
1456
+
"win32"
1457
+
]
1458
+
},
1459
+
"node_modules/@rollup/rollup-win32-ia32-msvc": {
1460
+
"version": "4.28.0",
1461
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz",
1462
+
"integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==",
1463
+
"cpu": [
1464
+
"ia32"
1465
+
],
1466
+
"dev": true,
1467
+
"license": "MIT",
1468
+
"optional": true,
1469
+
"os": [
1470
+
"win32"
1471
+
]
1472
+
},
1473
+
"node_modules/@rollup/rollup-win32-x64-msvc": {
1474
+
"version": "4.28.0",
1475
+
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz",
1476
+
"integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==",
1477
+
"cpu": [
1478
+
"x64"
1479
+
],
1480
+
"dev": true,
1481
+
"license": "MIT",
1482
+
"optional": true,
1483
+
"os": [
1484
+
"win32"
1485
+
]
1486
+
},
1487
+
"node_modules/@ts-morph/common": {
1488
+
"version": "0.17.0",
1489
+
"resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.17.0.tgz",
1490
+
"integrity": "sha512-RMSSvSfs9kb0VzkvQ2NWobwnj7TxCA9vI/IjR9bDHqgAyVbu2T0DN4wiKVqomyDWqO7dPr/tErSfq7urQ1Q37g==",
1491
+
"dev": true,
1492
+
"license": "MIT",
1493
+
"dependencies": {
1494
+
"fast-glob": "^3.2.11",
1495
+
"minimatch": "^5.1.0",
1496
+
"mkdirp": "^1.0.4",
1497
+
"path-browserify": "^1.0.1"
1498
+
}
1499
+
},
1500
+
"node_modules/@ts-morph/common/node_modules/minimatch": {
1501
+
"version": "5.1.6",
1502
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
1503
+
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
1504
+
"dev": true,
1505
+
"license": "ISC",
1506
+
"dependencies": {
1507
+
"brace-expansion": "^2.0.1"
1508
+
},
1509
+
"engines": {
1510
+
"node": ">=10"
1511
+
}
1512
+
},
1513
+
"node_modules/@tsconfig/node10": {
1514
+
"version": "1.0.11",
1515
+
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
1516
+
"integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
1517
+
"dev": true,
1518
+
"license": "MIT"
1519
+
},
1520
+
"node_modules/@tsconfig/node12": {
1521
+
"version": "1.0.11",
1522
+
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
1523
+
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
1524
+
"dev": true,
1525
+
"license": "MIT"
1526
+
},
1527
+
"node_modules/@tsconfig/node14": {
1528
+
"version": "1.0.3",
1529
+
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
1530
+
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
1531
+
"dev": true,
1532
+
"license": "MIT"
1533
+
},
1534
+
"node_modules/@tsconfig/node16": {
1535
+
"version": "1.0.4",
1536
+
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
1537
+
"integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
1538
+
"dev": true,
1539
+
"license": "MIT"
1540
+
},
1541
+
"node_modules/@types/better-sqlite3": {
1542
+
"version": "7.6.12",
1543
+
"resolved": "https://registry.npmjs.org/@types/better-sqlite3/-/better-sqlite3-7.6.12.tgz",
1544
+
"integrity": "sha512-fnQmj8lELIj7BSrZQAdBMHEHX8OZLYIHXqAKT1O7tDfLxaINzf00PMjw22r3N/xXh0w/sGHlO6SVaCQ2mj78lg==",
1545
+
"dev": true,
1546
+
"license": "MIT",
1547
+
"dependencies": {
1548
+
"@types/node": "*"
1549
+
}
1550
+
},
1551
+
"node_modules/@types/body-parser": {
1552
+
"version": "1.19.5",
1553
+
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
1554
+
"integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
1555
+
"dev": true,
1556
+
"license": "MIT",
1557
+
"dependencies": {
1558
+
"@types/connect": "*",
1559
+
"@types/node": "*"
1560
+
}
1561
+
},
1562
+
"node_modules/@types/connect": {
1563
+
"version": "3.4.38",
1564
+
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
1565
+
"integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
1566
+
"dev": true,
1567
+
"license": "MIT",
1568
+
"dependencies": {
1569
+
"@types/node": "*"
1570
+
}
1571
+
},
1572
+
"node_modules/@types/estree": {
1573
+
"version": "1.0.6",
1574
+
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
1575
+
"integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
1576
+
"dev": true,
1577
+
"license": "MIT"
1578
+
},
1579
+
"node_modules/@types/express": {
1580
+
"version": "4.17.21",
1581
+
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
1582
+
"integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
1583
+
"dev": true,
1584
+
"license": "MIT",
1585
+
"dependencies": {
1586
+
"@types/body-parser": "*",
1587
+
"@types/express-serve-static-core": "^4.17.33",
1588
+
"@types/qs": "*",
1589
+
"@types/serve-static": "*"
1590
+
}
1591
+
},
1592
+
"node_modules/@types/express-serve-static-core": {
1593
+
"version": "4.19.6",
1594
+
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz",
1595
+
"integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==",
1596
+
"dev": true,
1597
+
"license": "MIT",
1598
+
"dependencies": {
1599
+
"@types/node": "*",
1600
+
"@types/qs": "*",
1601
+
"@types/range-parser": "*",
1602
+
"@types/send": "*"
1603
+
}
1604
+
},
1605
+
"node_modules/@types/http-errors": {
1606
+
"version": "2.0.4",
1607
+
"resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
1608
+
"integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
1609
+
"dev": true,
1610
+
"license": "MIT"
1611
+
},
1612
+
"node_modules/@types/mime": {
1613
+
"version": "1.3.5",
1614
+
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
1615
+
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
1616
+
"dev": true,
1617
+
"license": "MIT"
1618
+
},
1619
+
"node_modules/@types/node": {
1620
+
"version": "22.10.1",
1621
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz",
1622
+
"integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==",
1623
+
"dev": true,
1624
+
"license": "MIT",
1625
+
"dependencies": {
1626
+
"undici-types": "~6.20.0"
1627
+
}
1628
+
},
1629
+
"node_modules/@types/qs": {
1630
+
"version": "6.9.17",
1631
+
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz",
1632
+
"integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==",
1633
+
"dev": true,
1634
+
"license": "MIT"
1635
+
},
1636
+
"node_modules/@types/range-parser": {
1637
+
"version": "1.2.7",
1638
+
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
1639
+
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
1640
+
"dev": true,
1641
+
"license": "MIT"
1642
+
},
1643
+
"node_modules/@types/send": {
1644
+
"version": "0.17.4",
1645
+
"resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
1646
+
"integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
1647
+
"dev": true,
1648
+
"license": "MIT",
1649
+
"dependencies": {
1650
+
"@types/mime": "^1",
1651
+
"@types/node": "*"
1652
+
}
1653
+
},
1654
+
"node_modules/@types/serve-static": {
1655
+
"version": "1.15.7",
1656
+
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
1657
+
"integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
1658
+
"dev": true,
1659
+
"license": "MIT",
1660
+
"dependencies": {
1661
+
"@types/http-errors": "*",
1662
+
"@types/node": "*",
1663
+
"@types/send": "*"
1664
+
}
1665
+
},
1666
+
"node_modules/@webreflection/signal": {
1667
+
"version": "2.1.2",
1668
+
"resolved": "https://registry.npmjs.org/@webreflection/signal/-/signal-2.1.2.tgz",
1669
+
"integrity": "sha512-0dW0fstQQkIt588JwhDiPS4xgeeQcQnBHn6MVInrBzmFlnLtzoSJL9G7JqdAlZVVi19tfb8R1QisZIT31cgiug==",
1670
+
"license": "ISC",
1671
+
"optional": true
1672
+
},
1673
+
"node_modules/@webreflection/uparser": {
1674
+
"version": "0.4.0",
1675
+
"resolved": "https://registry.npmjs.org/@webreflection/uparser/-/uparser-0.4.0.tgz",
1676
+
"integrity": "sha512-kAFWUEw5eool295y01VDr+DOsyog6lURX9l288JCJAD2gxc0tFk34dYaAi6O3BbJyfSoncVEV+nw87bsssdppQ==",
1677
+
"license": "MIT",
1678
+
"dependencies": {
1679
+
"domconstants": "^1.1.6"
1680
+
}
1681
+
},
1682
+
"node_modules/abort-controller": {
1683
+
"version": "3.0.0",
1684
+
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
1685
+
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
1686
+
"license": "MIT",
1687
+
"dependencies": {
1688
+
"event-target-shim": "^5.0.0"
1689
+
},
1690
+
"engines": {
1691
+
"node": ">=6.5"
1692
+
}
1693
+
},
1694
+
"node_modules/accepts": {
1695
+
"version": "1.3.8",
1696
+
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
1697
+
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
1698
+
"license": "MIT",
1699
+
"dependencies": {
1700
+
"mime-types": "~2.1.34",
1701
+
"negotiator": "0.6.3"
1702
+
},
1703
+
"engines": {
1704
+
"node": ">= 0.6"
1705
+
}
1706
+
},
1707
+
"node_modules/acorn": {
1708
+
"version": "8.14.0",
1709
+
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
1710
+
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
1711
+
"dev": true,
1712
+
"license": "MIT",
1713
+
"bin": {
1714
+
"acorn": "bin/acorn"
1715
+
},
1716
+
"engines": {
1717
+
"node": ">=0.4.0"
1718
+
}
1719
+
},
1720
+
"node_modules/acorn-walk": {
1721
+
"version": "8.3.4",
1722
+
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
1723
+
"integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
1724
+
"dev": true,
1725
+
"license": "MIT",
1726
+
"dependencies": {
1727
+
"acorn": "^8.11.0"
1728
+
},
1729
+
"engines": {
1730
+
"node": ">=0.4.0"
1731
+
}
1732
+
},
1733
+
"node_modules/ansi-regex": {
1734
+
"version": "6.1.0",
1735
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
1736
+
"integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
1737
+
"dev": true,
1738
+
"license": "MIT",
1739
+
"engines": {
1740
+
"node": ">=12"
1741
+
},
1742
+
"funding": {
1743
+
"url": "https://github.com/chalk/ansi-regex?sponsor=1"
1744
+
}
1745
+
},
1746
+
"node_modules/ansi-styles": {
1747
+
"version": "4.3.0",
1748
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1749
+
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1750
+
"dev": true,
1751
+
"license": "MIT",
1752
+
"dependencies": {
1753
+
"color-convert": "^2.0.1"
1754
+
},
1755
+
"engines": {
1756
+
"node": ">=8"
1757
+
},
1758
+
"funding": {
1759
+
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
1760
+
}
1761
+
},
1762
+
"node_modules/any-promise": {
1763
+
"version": "1.3.0",
1764
+
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
1765
+
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
1766
+
"dev": true,
1767
+
"license": "MIT"
1768
+
},
1769
+
"node_modules/arg": {
1770
+
"version": "4.1.3",
1771
+
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
1772
+
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
1773
+
"dev": true,
1774
+
"license": "MIT"
1775
+
},
1776
+
"node_modules/array-flatten": {
1777
+
"version": "1.1.1",
1778
+
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
1779
+
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
1780
+
"license": "MIT"
1781
+
},
1782
+
"node_modules/asap": {
1783
+
"version": "2.0.6",
1784
+
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
1785
+
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
1786
+
"license": "MIT"
1787
+
},
1788
+
"node_modules/assert-never": {
1789
+
"version": "1.3.0",
1790
+
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.3.0.tgz",
1791
+
"integrity": "sha512-9Z3vxQ+berkL/JJo0dK+EY3Lp0s3NtSnP3VCLsh5HDcZPrh0M+KQRK5sWhUeyPPH+/RCxZqOxLMR+YC6vlviEQ==",
1792
+
"license": "MIT"
1793
+
},
1794
+
"node_modules/asynckit": {
1795
+
"version": "0.4.0",
1796
+
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1797
+
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
1798
+
"license": "MIT"
1799
+
},
1800
+
"node_modules/atomic-sleep": {
1801
+
"version": "1.0.0",
1802
+
"resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
1803
+
"integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
1804
+
"license": "MIT",
1805
+
"engines": {
1806
+
"node": ">=8.0.0"
1807
+
}
1808
+
},
1809
+
"node_modules/await-lock": {
1810
+
"version": "2.2.2",
1811
+
"resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz",
1812
+
"integrity": "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==",
1813
+
"license": "MIT"
1814
+
},
1815
+
"node_modules/axios": {
1816
+
"version": "0.27.2",
1817
+
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
1818
+
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
1819
+
"license": "MIT",
1820
+
"dependencies": {
1821
+
"follow-redirects": "^1.14.9",
1822
+
"form-data": "^4.0.0"
1823
+
}
1824
+
},
1825
+
"node_modules/babel-walk": {
1826
+
"version": "3.0.0-canary-5",
1827
+
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
1828
+
"integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==",
1829
+
"license": "MIT",
1830
+
"dependencies": {
1831
+
"@babel/types": "^7.9.6"
1832
+
},
1833
+
"engines": {
1834
+
"node": ">= 10.0.0"
1835
+
}
1836
+
},
1837
+
"node_modules/balanced-match": {
1838
+
"version": "1.0.2",
1839
+
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1840
+
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1841
+
"dev": true,
1842
+
"license": "MIT"
1843
+
},
1844
+
"node_modules/base64-js": {
1845
+
"version": "1.5.1",
1846
+
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
1847
+
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
1848
+
"funding": [
1849
+
{
1850
+
"type": "github",
1851
+
"url": "https://github.com/sponsors/feross"
1852
+
},
1853
+
{
1854
+
"type": "patreon",
1855
+
"url": "https://www.patreon.com/feross"
1856
+
},
1857
+
{
1858
+
"type": "consulting",
1859
+
"url": "https://feross.org/support"
1860
+
}
1861
+
],
1862
+
"license": "MIT"
1863
+
},
1864
+
"node_modules/better-sqlite3": {
1865
+
"version": "11.6.0",
1866
+
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.6.0.tgz",
1867
+
"integrity": "sha512-2J6k/eVxcFYY2SsTxsXrj6XylzHWPxveCn4fKPKZFv/Vqn/Cd7lOuX4d7rGQXT5zL+97MkNL3nSbCrIoe3LkgA==",
1868
+
"hasInstallScript": true,
1869
+
"license": "MIT",
1870
+
"dependencies": {
1871
+
"bindings": "^1.5.0",
1872
+
"prebuild-install": "^7.1.1"
1873
+
}
1874
+
},
1875
+
"node_modules/bindings": {
1876
+
"version": "1.5.0",
1877
+
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
1878
+
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
1879
+
"license": "MIT",
1880
+
"dependencies": {
1881
+
"file-uri-to-path": "1.0.0"
1882
+
}
1883
+
},
1884
+
"node_modules/bl": {
1885
+
"version": "4.1.0",
1886
+
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
1887
+
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
1888
+
"license": "MIT",
1889
+
"dependencies": {
1890
+
"buffer": "^5.5.0",
1891
+
"inherits": "^2.0.4",
1892
+
"readable-stream": "^3.4.0"
1893
+
}
1894
+
},
1895
+
"node_modules/bl/node_modules/buffer": {
1896
+
"version": "5.7.1",
1897
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
1898
+
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
1899
+
"funding": [
1900
+
{
1901
+
"type": "github",
1902
+
"url": "https://github.com/sponsors/feross"
1903
+
},
1904
+
{
1905
+
"type": "patreon",
1906
+
"url": "https://www.patreon.com/feross"
1907
+
},
1908
+
{
1909
+
"type": "consulting",
1910
+
"url": "https://feross.org/support"
1911
+
}
1912
+
],
1913
+
"license": "MIT",
1914
+
"dependencies": {
1915
+
"base64-js": "^1.3.1",
1916
+
"ieee754": "^1.1.13"
1917
+
}
1918
+
},
1919
+
"node_modules/bl/node_modules/readable-stream": {
1920
+
"version": "3.6.2",
1921
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
1922
+
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
1923
+
"license": "MIT",
1924
+
"dependencies": {
1925
+
"inherits": "^2.0.3",
1926
+
"string_decoder": "^1.1.1",
1927
+
"util-deprecate": "^1.0.1"
1928
+
},
1929
+
"engines": {
1930
+
"node": ">= 6"
1931
+
}
1932
+
},
1933
+
"node_modules/body-parser": {
1934
+
"version": "1.20.3",
1935
+
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
1936
+
"integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
1937
+
"license": "MIT",
1938
+
"dependencies": {
1939
+
"bytes": "3.1.2",
1940
+
"content-type": "~1.0.5",
1941
+
"debug": "2.6.9",
1942
+
"depd": "2.0.0",
1943
+
"destroy": "1.2.0",
1944
+
"http-errors": "2.0.0",
1945
+
"iconv-lite": "0.4.24",
1946
+
"on-finished": "2.4.1",
1947
+
"qs": "6.13.0",
1948
+
"raw-body": "2.5.2",
1949
+
"type-is": "~1.6.18",
1950
+
"unpipe": "1.0.0"
1951
+
},
1952
+
"engines": {
1953
+
"node": ">= 0.8",
1954
+
"npm": "1.2.8000 || >= 1.4.16"
1955
+
}
1956
+
},
1957
+
"node_modules/brace-expansion": {
1958
+
"version": "2.0.1",
1959
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1960
+
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1961
+
"dev": true,
1962
+
"license": "MIT",
1963
+
"dependencies": {
1964
+
"balanced-match": "^1.0.0"
1965
+
}
1966
+
},
1967
+
"node_modules/braces": {
1968
+
"version": "3.0.3",
1969
+
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
1970
+
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
1971
+
"dev": true,
1972
+
"license": "MIT",
1973
+
"dependencies": {
1974
+
"fill-range": "^7.1.1"
1975
+
},
1976
+
"engines": {
1977
+
"node": ">=8"
1978
+
}
1979
+
},
1980
+
"node_modules/buffer": {
1981
+
"version": "6.0.3",
1982
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
1983
+
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
1984
+
"funding": [
1985
+
{
1986
+
"type": "github",
1987
+
"url": "https://github.com/sponsors/feross"
1988
+
},
1989
+
{
1990
+
"type": "patreon",
1991
+
"url": "https://www.patreon.com/feross"
1992
+
},
1993
+
{
1994
+
"type": "consulting",
1995
+
"url": "https://feross.org/support"
1996
+
}
1997
+
],
1998
+
"license": "MIT",
1999
+
"dependencies": {
2000
+
"base64-js": "^1.3.1",
2001
+
"ieee754": "^1.2.1"
2002
+
}
2003
+
},
2004
+
"node_modules/bundle-require": {
2005
+
"version": "5.0.0",
2006
+
"resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.0.0.tgz",
2007
+
"integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==",
2008
+
"dev": true,
2009
+
"license": "MIT",
2010
+
"dependencies": {
2011
+
"load-tsconfig": "^0.2.3"
2012
+
},
2013
+
"engines": {
2014
+
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
2015
+
},
2016
+
"peerDependencies": {
2017
+
"esbuild": ">=0.18"
2018
+
}
2019
+
},
2020
+
"node_modules/bytes": {
2021
+
"version": "3.1.2",
2022
+
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
2023
+
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
2024
+
"license": "MIT",
2025
+
"engines": {
2026
+
"node": ">= 0.8"
2027
+
}
2028
+
},
2029
+
"node_modules/cac": {
2030
+
"version": "6.7.14",
2031
+
"resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
2032
+
"integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
2033
+
"dev": true,
2034
+
"license": "MIT",
2035
+
"engines": {
2036
+
"node": ">=8"
2037
+
}
2038
+
},
2039
+
"node_modules/call-bind": {
2040
+
"version": "1.0.7",
2041
+
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
2042
+
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
2043
+
"license": "MIT",
2044
+
"dependencies": {
2045
+
"es-define-property": "^1.0.0",
2046
+
"es-errors": "^1.3.0",
2047
+
"function-bind": "^1.1.2",
2048
+
"get-intrinsic": "^1.2.4",
2049
+
"set-function-length": "^1.2.1"
2050
+
},
2051
+
"engines": {
2052
+
"node": ">= 0.4"
2053
+
},
2054
+
"funding": {
2055
+
"url": "https://github.com/sponsors/ljharb"
2056
+
}
2057
+
},
2058
+
"node_modules/cbor-extract": {
2059
+
"version": "2.2.0",
2060
+
"resolved": "https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz",
2061
+
"integrity": "sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==",
2062
+
"hasInstallScript": true,
2063
+
"license": "MIT",
2064
+
"optional": true,
2065
+
"dependencies": {
2066
+
"node-gyp-build-optional-packages": "5.1.1"
2067
+
},
2068
+
"bin": {
2069
+
"download-cbor-prebuilds": "bin/download-prebuilds.js"
2070
+
},
2071
+
"optionalDependencies": {
2072
+
"@cbor-extract/cbor-extract-darwin-arm64": "2.2.0",
2073
+
"@cbor-extract/cbor-extract-darwin-x64": "2.2.0",
2074
+
"@cbor-extract/cbor-extract-linux-arm": "2.2.0",
2075
+
"@cbor-extract/cbor-extract-linux-arm64": "2.2.0",
2076
+
"@cbor-extract/cbor-extract-linux-x64": "2.2.0",
2077
+
"@cbor-extract/cbor-extract-win32-x64": "2.2.0"
2078
+
}
2079
+
},
2080
+
"node_modules/cbor-x": {
2081
+
"version": "1.6.0",
2082
+
"resolved": "https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz",
2083
+
"integrity": "sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==",
2084
+
"license": "MIT",
2085
+
"optionalDependencies": {
2086
+
"cbor-extract": "^2.2.0"
2087
+
}
2088
+
},
2089
+
"node_modules/cborg": {
2090
+
"version": "1.10.2",
2091
+
"resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz",
2092
+
"integrity": "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==",
2093
+
"license": "Apache-2.0",
2094
+
"bin": {
2095
+
"cborg": "cli.js"
2096
+
}
2097
+
},
2098
+
"node_modules/chalk": {
2099
+
"version": "4.1.2",
2100
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
2101
+
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
2102
+
"dev": true,
2103
+
"license": "MIT",
2104
+
"dependencies": {
2105
+
"ansi-styles": "^4.1.0",
2106
+
"supports-color": "^7.1.0"
2107
+
},
2108
+
"engines": {
2109
+
"node": ">=10"
2110
+
},
2111
+
"funding": {
2112
+
"url": "https://github.com/chalk/chalk?sponsor=1"
2113
+
}
2114
+
},
2115
+
"node_modules/character-parser": {
2116
+
"version": "2.2.0",
2117
+
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
2118
+
"integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==",
2119
+
"license": "MIT",
2120
+
"dependencies": {
2121
+
"is-regex": "^1.0.3"
2122
+
}
2123
+
},
2124
+
"node_modules/chokidar": {
2125
+
"version": "4.0.1",
2126
+
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
2127
+
"integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
2128
+
"dev": true,
2129
+
"license": "MIT",
2130
+
"dependencies": {
2131
+
"readdirp": "^4.0.1"
2132
+
},
2133
+
"engines": {
2134
+
"node": ">= 14.16.0"
2135
+
},
2136
+
"funding": {
2137
+
"url": "https://paulmillr.com/funding/"
2138
+
}
2139
+
},
2140
+
"node_modules/chownr": {
2141
+
"version": "1.1.4",
2142
+
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
2143
+
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
2144
+
"license": "ISC"
2145
+
},
2146
+
"node_modules/code-block-writer": {
2147
+
"version": "11.0.3",
2148
+
"resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.3.tgz",
2149
+
"integrity": "sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==",
2150
+
"dev": true,
2151
+
"license": "MIT"
2152
+
},
2153
+
"node_modules/color-convert": {
2154
+
"version": "2.0.1",
2155
+
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2156
+
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2157
+
"dev": true,
2158
+
"license": "MIT",
2159
+
"dependencies": {
2160
+
"color-name": "~1.1.4"
2161
+
},
2162
+
"engines": {
2163
+
"node": ">=7.0.0"
2164
+
}
2165
+
},
2166
+
"node_modules/color-name": {
2167
+
"version": "1.1.4",
2168
+
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2169
+
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2170
+
"dev": true,
2171
+
"license": "MIT"
2172
+
},
2173
+
"node_modules/colorette": {
2174
+
"version": "2.0.20",
2175
+
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
2176
+
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
2177
+
"dev": true,
2178
+
"license": "MIT"
2179
+
},
2180
+
"node_modules/combined-stream": {
2181
+
"version": "1.0.8",
2182
+
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
2183
+
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
2184
+
"license": "MIT",
2185
+
"dependencies": {
2186
+
"delayed-stream": "~1.0.0"
2187
+
},
2188
+
"engines": {
2189
+
"node": ">= 0.8"
2190
+
}
2191
+
},
2192
+
"node_modules/commander": {
2193
+
"version": "9.5.0",
2194
+
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
2195
+
"integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
2196
+
"dev": true,
2197
+
"license": "MIT",
2198
+
"engines": {
2199
+
"node": "^12.20.0 || >=14"
2200
+
}
2201
+
},
2202
+
"node_modules/consola": {
2203
+
"version": "3.2.3",
2204
+
"resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz",
2205
+
"integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
2206
+
"dev": true,
2207
+
"license": "MIT",
2208
+
"engines": {
2209
+
"node": "^14.18.0 || >=16.10.0"
2210
+
}
2211
+
},
2212
+
"node_modules/constantinople": {
2213
+
"version": "4.0.1",
2214
+
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz",
2215
+
"integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==",
2216
+
"license": "MIT",
2217
+
"dependencies": {
2218
+
"@babel/parser": "^7.6.0",
2219
+
"@babel/types": "^7.6.1"
2220
+
}
2221
+
},
2222
+
"node_modules/content-disposition": {
2223
+
"version": "0.5.4",
2224
+
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
2225
+
"integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
2226
+
"license": "MIT",
2227
+
"dependencies": {
2228
+
"safe-buffer": "5.2.1"
2229
+
},
2230
+
"engines": {
2231
+
"node": ">= 0.6"
2232
+
}
2233
+
},
2234
+
"node_modules/content-type": {
2235
+
"version": "1.0.5",
2236
+
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
2237
+
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
2238
+
"license": "MIT",
2239
+
"engines": {
2240
+
"node": ">= 0.6"
2241
+
}
2242
+
},
2243
+
"node_modules/cookie": {
2244
+
"version": "0.7.1",
2245
+
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
2246
+
"integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
2247
+
"license": "MIT",
2248
+
"engines": {
2249
+
"node": ">= 0.6"
2250
+
}
2251
+
},
2252
+
"node_modules/cookie-signature": {
2253
+
"version": "1.0.6",
2254
+
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
2255
+
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
2256
+
"license": "MIT"
2257
+
},
2258
+
"node_modules/create-require": {
2259
+
"version": "1.1.1",
2260
+
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
2261
+
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
2262
+
"dev": true,
2263
+
"license": "MIT"
2264
+
},
2265
+
"node_modules/cross-spawn": {
2266
+
"version": "7.0.6",
2267
+
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
2268
+
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
2269
+
"dev": true,
2270
+
"license": "MIT",
2271
+
"dependencies": {
2272
+
"path-key": "^3.1.0",
2273
+
"shebang-command": "^2.0.0",
2274
+
"which": "^2.0.1"
2275
+
},
2276
+
"engines": {
2277
+
"node": ">= 8"
2278
+
}
2279
+
},
2280
+
"node_modules/custom-function": {
2281
+
"version": "2.0.0",
2282
+
"resolved": "https://registry.npmjs.org/custom-function/-/custom-function-2.0.0.tgz",
2283
+
"integrity": "sha512-2OPHkZzq3mK1nWpJqWWkGD6Z+0AajNeIxmXl+MRVL8Vysjjf5tf9B5mo713/X2khEwBn/3BKQ7NphpP1vpVKug==",
2284
+
"license": "MIT"
2285
+
},
2286
+
"node_modules/dateformat": {
2287
+
"version": "4.6.3",
2288
+
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
2289
+
"integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
2290
+
"dev": true,
2291
+
"license": "MIT",
2292
+
"engines": {
2293
+
"node": "*"
2294
+
}
2295
+
},
2296
+
"node_modules/debug": {
2297
+
"version": "2.6.9",
2298
+
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2299
+
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2300
+
"license": "MIT",
2301
+
"dependencies": {
2302
+
"ms": "2.0.0"
2303
+
}
2304
+
},
2305
+
"node_modules/decompress-response": {
2306
+
"version": "6.0.0",
2307
+
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
2308
+
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
2309
+
"license": "MIT",
2310
+
"dependencies": {
2311
+
"mimic-response": "^3.1.0"
2312
+
},
2313
+
"engines": {
2314
+
"node": ">=10"
2315
+
},
2316
+
"funding": {
2317
+
"url": "https://github.com/sponsors/sindresorhus"
2318
+
}
2319
+
},
2320
+
"node_modules/deep-extend": {
2321
+
"version": "0.6.0",
2322
+
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
2323
+
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
2324
+
"license": "MIT",
2325
+
"engines": {
2326
+
"node": ">=4.0.0"
2327
+
}
2328
+
},
2329
+
"node_modules/define-data-property": {
2330
+
"version": "1.1.4",
2331
+
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
2332
+
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
2333
+
"license": "MIT",
2334
+
"dependencies": {
2335
+
"es-define-property": "^1.0.0",
2336
+
"es-errors": "^1.3.0",
2337
+
"gopd": "^1.0.1"
2338
+
},
2339
+
"engines": {
2340
+
"node": ">= 0.4"
2341
+
},
2342
+
"funding": {
2343
+
"url": "https://github.com/sponsors/ljharb"
2344
+
}
2345
+
},
2346
+
"node_modules/delayed-stream": {
2347
+
"version": "1.0.0",
2348
+
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
2349
+
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
2350
+
"license": "MIT",
2351
+
"engines": {
2352
+
"node": ">=0.4.0"
2353
+
}
2354
+
},
2355
+
"node_modules/depd": {
2356
+
"version": "2.0.0",
2357
+
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
2358
+
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
2359
+
"license": "MIT",
2360
+
"engines": {
2361
+
"node": ">= 0.8"
2362
+
}
2363
+
},
2364
+
"node_modules/destroy": {
2365
+
"version": "1.2.0",
2366
+
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
2367
+
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
2368
+
"license": "MIT",
2369
+
"engines": {
2370
+
"node": ">= 0.8",
2371
+
"npm": "1.2.8000 || >= 1.4.16"
2372
+
}
2373
+
},
2374
+
"node_modules/detect-libc": {
2375
+
"version": "2.0.3",
2376
+
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
2377
+
"integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
2378
+
"license": "Apache-2.0",
2379
+
"engines": {
2380
+
"node": ">=8"
2381
+
}
2382
+
},
2383
+
"node_modules/diff": {
2384
+
"version": "4.0.2",
2385
+
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
2386
+
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
2387
+
"dev": true,
2388
+
"license": "BSD-3-Clause",
2389
+
"engines": {
2390
+
"node": ">=0.3.1"
2391
+
}
2392
+
},
2393
+
"node_modules/doctypes": {
2394
+
"version": "1.1.0",
2395
+
"resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
2396
+
"integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==",
2397
+
"license": "MIT"
2398
+
},
2399
+
"node_modules/dom-serializer": {
2400
+
"version": "2.0.0",
2401
+
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
2402
+
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
2403
+
"license": "MIT",
2404
+
"dependencies": {
2405
+
"domelementtype": "^2.3.0",
2406
+
"domhandler": "^5.0.2",
2407
+
"entities": "^4.2.0"
2408
+
},
2409
+
"funding": {
2410
+
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
2411
+
}
2412
+
},
2413
+
"node_modules/domconstants": {
2414
+
"version": "1.1.6",
2415
+
"resolved": "https://registry.npmjs.org/domconstants/-/domconstants-1.1.6.tgz",
2416
+
"integrity": "sha512-CuaDrThJ4VM+LyZ4ax8n52k0KbLJZtffyGkuj1WhpTRRcSfcy/9DfOBa68jenhX96oNUTunblSJEUNC4baFdmQ==",
2417
+
"license": "ISC"
2418
+
},
2419
+
"node_modules/domelementtype": {
2420
+
"version": "2.3.0",
2421
+
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
2422
+
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
2423
+
"funding": [
2424
+
{
2425
+
"type": "github",
2426
+
"url": "https://github.com/sponsors/fb55"
2427
+
}
2428
+
],
2429
+
"license": "BSD-2-Clause"
2430
+
},
2431
+
"node_modules/domhandler": {
2432
+
"version": "5.0.3",
2433
+
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
2434
+
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
2435
+
"license": "BSD-2-Clause",
2436
+
"dependencies": {
2437
+
"domelementtype": "^2.3.0"
2438
+
},
2439
+
"engines": {
2440
+
"node": ">= 4"
2441
+
},
2442
+
"funding": {
2443
+
"url": "https://github.com/fb55/domhandler?sponsor=1"
2444
+
}
2445
+
},
2446
+
"node_modules/domutils": {
2447
+
"version": "3.1.0",
2448
+
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
2449
+
"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
2450
+
"license": "BSD-2-Clause",
2451
+
"dependencies": {
2452
+
"dom-serializer": "^2.0.0",
2453
+
"domelementtype": "^2.3.0",
2454
+
"domhandler": "^5.0.3"
2455
+
},
2456
+
"funding": {
2457
+
"url": "https://github.com/fb55/domutils?sponsor=1"
2458
+
}
2459
+
},
2460
+
"node_modules/dotenv": {
2461
+
"version": "16.4.5",
2462
+
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
2463
+
"integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
2464
+
"license": "BSD-2-Clause",
2465
+
"engines": {
2466
+
"node": ">=12"
2467
+
},
2468
+
"funding": {
2469
+
"url": "https://dotenvx.com"
2470
+
}
2471
+
},
2472
+
"node_modules/eastasianwidth": {
2473
+
"version": "0.2.0",
2474
+
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
2475
+
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
2476
+
"dev": true,
2477
+
"license": "MIT"
2478
+
},
2479
+
"node_modules/ee-first": {
2480
+
"version": "1.1.1",
2481
+
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
2482
+
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
2483
+
"license": "MIT"
2484
+
},
2485
+
"node_modules/emoji-regex": {
2486
+
"version": "9.2.2",
2487
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
2488
+
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
2489
+
"dev": true,
2490
+
"license": "MIT"
2491
+
},
2492
+
"node_modules/encodeurl": {
2493
+
"version": "2.0.0",
2494
+
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
2495
+
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
2496
+
"license": "MIT",
2497
+
"engines": {
2498
+
"node": ">= 0.8"
2499
+
}
2500
+
},
2501
+
"node_modules/end-of-stream": {
2502
+
"version": "1.4.4",
2503
+
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
2504
+
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
2505
+
"license": "MIT",
2506
+
"dependencies": {
2507
+
"once": "^1.4.0"
2508
+
}
2509
+
},
2510
+
"node_modules/entities": {
2511
+
"version": "4.5.0",
2512
+
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
2513
+
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
2514
+
"license": "BSD-2-Clause",
2515
+
"engines": {
2516
+
"node": ">=0.12"
2517
+
},
2518
+
"funding": {
2519
+
"url": "https://github.com/fb55/entities?sponsor=1"
2520
+
}
2521
+
},
2522
+
"node_modules/envalid": {
2523
+
"version": "8.0.0",
2524
+
"resolved": "https://registry.npmjs.org/envalid/-/envalid-8.0.0.tgz",
2525
+
"integrity": "sha512-PGeYJnJB5naN0ME6SH8nFcDj9HVbLpYIfg1p5lAyM9T4cH2lwtu2fLbozC/bq+HUUOIFxhX/LP0/GmlqPHT4tQ==",
2526
+
"license": "MIT",
2527
+
"dependencies": {
2528
+
"tslib": "2.6.2"
2529
+
},
2530
+
"engines": {
2531
+
"node": ">=8.12"
2532
+
}
2533
+
},
2534
+
"node_modules/es-define-property": {
2535
+
"version": "1.0.0",
2536
+
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
2537
+
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
2538
+
"license": "MIT",
2539
+
"dependencies": {
2540
+
"get-intrinsic": "^1.2.4"
2541
+
},
2542
+
"engines": {
2543
+
"node": ">= 0.4"
2544
+
}
2545
+
},
2546
+
"node_modules/es-errors": {
2547
+
"version": "1.3.0",
2548
+
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
2549
+
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
2550
+
"license": "MIT",
2551
+
"engines": {
2552
+
"node": ">= 0.4"
2553
+
}
2554
+
},
2555
+
"node_modules/esbuild": {
2556
+
"version": "0.24.0",
2557
+
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz",
2558
+
"integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==",
2559
+
"dev": true,
2560
+
"hasInstallScript": true,
2561
+
"license": "MIT",
2562
+
"bin": {
2563
+
"esbuild": "bin/esbuild"
2564
+
},
2565
+
"engines": {
2566
+
"node": ">=18"
2567
+
},
2568
+
"optionalDependencies": {
2569
+
"@esbuild/aix-ppc64": "0.24.0",
2570
+
"@esbuild/android-arm": "0.24.0",
2571
+
"@esbuild/android-arm64": "0.24.0",
2572
+
"@esbuild/android-x64": "0.24.0",
2573
+
"@esbuild/darwin-arm64": "0.24.0",
2574
+
"@esbuild/darwin-x64": "0.24.0",
2575
+
"@esbuild/freebsd-arm64": "0.24.0",
2576
+
"@esbuild/freebsd-x64": "0.24.0",
2577
+
"@esbuild/linux-arm": "0.24.0",
2578
+
"@esbuild/linux-arm64": "0.24.0",
2579
+
"@esbuild/linux-ia32": "0.24.0",
2580
+
"@esbuild/linux-loong64": "0.24.0",
2581
+
"@esbuild/linux-mips64el": "0.24.0",
2582
+
"@esbuild/linux-ppc64": "0.24.0",
2583
+
"@esbuild/linux-riscv64": "0.24.0",
2584
+
"@esbuild/linux-s390x": "0.24.0",
2585
+
"@esbuild/linux-x64": "0.24.0",
2586
+
"@esbuild/netbsd-x64": "0.24.0",
2587
+
"@esbuild/openbsd-arm64": "0.24.0",
2588
+
"@esbuild/openbsd-x64": "0.24.0",
2589
+
"@esbuild/sunos-x64": "0.24.0",
2590
+
"@esbuild/win32-arm64": "0.24.0",
2591
+
"@esbuild/win32-ia32": "0.24.0",
2592
+
"@esbuild/win32-x64": "0.24.0"
2593
+
}
2594
+
},
2595
+
"node_modules/escape-html": {
2596
+
"version": "1.0.3",
2597
+
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
2598
+
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
2599
+
"license": "MIT"
2600
+
},
2601
+
"node_modules/etag": {
2602
+
"version": "1.8.1",
2603
+
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
2604
+
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
2605
+
"license": "MIT",
2606
+
"engines": {
2607
+
"node": ">= 0.6"
2608
+
}
2609
+
},
2610
+
"node_modules/event-target-shim": {
2611
+
"version": "5.0.1",
2612
+
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
2613
+
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
2614
+
"license": "MIT",
2615
+
"engines": {
2616
+
"node": ">=6"
2617
+
}
2618
+
},
2619
+
"node_modules/eventemitter3": {
2620
+
"version": "4.0.7",
2621
+
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
2622
+
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
2623
+
"license": "MIT"
2624
+
},
2625
+
"node_modules/events": {
2626
+
"version": "3.3.0",
2627
+
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
2628
+
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
2629
+
"license": "MIT",
2630
+
"engines": {
2631
+
"node": ">=0.8.x"
2632
+
}
2633
+
},
2634
+
"node_modules/expand-template": {
2635
+
"version": "2.0.3",
2636
+
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
2637
+
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
2638
+
"license": "(MIT OR WTFPL)",
2639
+
"engines": {
2640
+
"node": ">=6"
2641
+
}
2642
+
},
2643
+
"node_modules/express": {
2644
+
"version": "4.21.1",
2645
+
"resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
2646
+
"integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
2647
+
"license": "MIT",
2648
+
"dependencies": {
2649
+
"accepts": "~1.3.8",
2650
+
"array-flatten": "1.1.1",
2651
+
"body-parser": "1.20.3",
2652
+
"content-disposition": "0.5.4",
2653
+
"content-type": "~1.0.4",
2654
+
"cookie": "0.7.1",
2655
+
"cookie-signature": "1.0.6",
2656
+
"debug": "2.6.9",
2657
+
"depd": "2.0.0",
2658
+
"encodeurl": "~2.0.0",
2659
+
"escape-html": "~1.0.3",
2660
+
"etag": "~1.8.1",
2661
+
"finalhandler": "1.3.1",
2662
+
"fresh": "0.5.2",
2663
+
"http-errors": "2.0.0",
2664
+
"merge-descriptors": "1.0.3",
2665
+
"methods": "~1.1.2",
2666
+
"on-finished": "2.4.1",
2667
+
"parseurl": "~1.3.3",
2668
+
"path-to-regexp": "0.1.10",
2669
+
"proxy-addr": "~2.0.7",
2670
+
"qs": "6.13.0",
2671
+
"range-parser": "~1.2.1",
2672
+
"safe-buffer": "5.2.1",
2673
+
"send": "0.19.0",
2674
+
"serve-static": "1.16.2",
2675
+
"setprototypeof": "1.2.0",
2676
+
"statuses": "2.0.1",
2677
+
"type-is": "~1.6.18",
2678
+
"utils-merge": "1.0.1",
2679
+
"vary": "~1.1.2"
2680
+
},
2681
+
"engines": {
2682
+
"node": ">= 0.10.0"
2683
+
}
2684
+
},
2685
+
"node_modules/fast-copy": {
2686
+
"version": "3.0.2",
2687
+
"resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz",
2688
+
"integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==",
2689
+
"dev": true,
2690
+
"license": "MIT"
2691
+
},
2692
+
"node_modules/fast-glob": {
2693
+
"version": "3.3.2",
2694
+
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
2695
+
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
2696
+
"dev": true,
2697
+
"license": "MIT",
2698
+
"dependencies": {
2699
+
"@nodelib/fs.stat": "^2.0.2",
2700
+
"@nodelib/fs.walk": "^1.2.3",
2701
+
"glob-parent": "^5.1.2",
2702
+
"merge2": "^1.3.0",
2703
+
"micromatch": "^4.0.4"
2704
+
},
2705
+
"engines": {
2706
+
"node": ">=8.6.0"
2707
+
}
2708
+
},
2709
+
"node_modules/fast-redact": {
2710
+
"version": "3.5.0",
2711
+
"resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz",
2712
+
"integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==",
2713
+
"license": "MIT",
2714
+
"engines": {
2715
+
"node": ">=6"
2716
+
}
2717
+
},
2718
+
"node_modules/fast-safe-stringify": {
2719
+
"version": "2.1.1",
2720
+
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
2721
+
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
2722
+
"dev": true,
2723
+
"license": "MIT"
2724
+
},
2725
+
"node_modules/fastq": {
2726
+
"version": "1.17.1",
2727
+
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
2728
+
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
2729
+
"dev": true,
2730
+
"license": "ISC",
2731
+
"dependencies": {
2732
+
"reusify": "^1.0.4"
2733
+
}
2734
+
},
2735
+
"node_modules/file-uri-to-path": {
2736
+
"version": "1.0.0",
2737
+
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
2738
+
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
2739
+
"license": "MIT"
2740
+
},
2741
+
"node_modules/fill-range": {
2742
+
"version": "7.1.1",
2743
+
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
2744
+
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
2745
+
"dev": true,
2746
+
"license": "MIT",
2747
+
"dependencies": {
2748
+
"to-regex-range": "^5.0.1"
2749
+
},
2750
+
"engines": {
2751
+
"node": ">=8"
2752
+
}
2753
+
},
2754
+
"node_modules/finalhandler": {
2755
+
"version": "1.3.1",
2756
+
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
2757
+
"integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
2758
+
"license": "MIT",
2759
+
"dependencies": {
2760
+
"debug": "2.6.9",
2761
+
"encodeurl": "~2.0.0",
2762
+
"escape-html": "~1.0.3",
2763
+
"on-finished": "2.4.1",
2764
+
"parseurl": "~1.3.3",
2765
+
"statuses": "2.0.1",
2766
+
"unpipe": "~1.0.0"
2767
+
},
2768
+
"engines": {
2769
+
"node": ">= 0.8"
2770
+
}
2771
+
},
2772
+
"node_modules/follow-redirects": {
2773
+
"version": "1.15.9",
2774
+
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
2775
+
"integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
2776
+
"funding": [
2777
+
{
2778
+
"type": "individual",
2779
+
"url": "https://github.com/sponsors/RubenVerborgh"
2780
+
}
2781
+
],
2782
+
"license": "MIT",
2783
+
"engines": {
2784
+
"node": ">=4.0"
2785
+
},
2786
+
"peerDependenciesMeta": {
2787
+
"debug": {
2788
+
"optional": true
2789
+
}
2790
+
}
2791
+
},
2792
+
"node_modules/foreground-child": {
2793
+
"version": "3.3.0",
2794
+
"resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
2795
+
"integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
2796
+
"dev": true,
2797
+
"license": "ISC",
2798
+
"dependencies": {
2799
+
"cross-spawn": "^7.0.0",
2800
+
"signal-exit": "^4.0.1"
2801
+
},
2802
+
"engines": {
2803
+
"node": ">=14"
2804
+
},
2805
+
"funding": {
2806
+
"url": "https://github.com/sponsors/isaacs"
2807
+
}
2808
+
},
2809
+
"node_modules/form-data": {
2810
+
"version": "4.0.1",
2811
+
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
2812
+
"integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
2813
+
"license": "MIT",
2814
+
"dependencies": {
2815
+
"asynckit": "^0.4.0",
2816
+
"combined-stream": "^1.0.8",
2817
+
"mime-types": "^2.1.12"
2818
+
},
2819
+
"engines": {
2820
+
"node": ">= 6"
2821
+
}
2822
+
},
2823
+
"node_modules/forwarded": {
2824
+
"version": "0.2.0",
2825
+
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
2826
+
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
2827
+
"license": "MIT",
2828
+
"engines": {
2829
+
"node": ">= 0.6"
2830
+
}
2831
+
},
2832
+
"node_modules/fresh": {
2833
+
"version": "0.5.2",
2834
+
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
2835
+
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
2836
+
"license": "MIT",
2837
+
"engines": {
2838
+
"node": ">= 0.6"
2839
+
}
2840
+
},
2841
+
"node_modules/fs-constants": {
2842
+
"version": "1.0.0",
2843
+
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
2844
+
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
2845
+
"license": "MIT"
2846
+
},
2847
+
"node_modules/fsevents": {
2848
+
"version": "2.3.3",
2849
+
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
2850
+
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
2851
+
"dev": true,
2852
+
"hasInstallScript": true,
2853
+
"license": "MIT",
2854
+
"optional": true,
2855
+
"os": [
2856
+
"darwin"
2857
+
],
2858
+
"engines": {
2859
+
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
2860
+
}
2861
+
},
2862
+
"node_modules/function-bind": {
2863
+
"version": "1.1.2",
2864
+
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
2865
+
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
2866
+
"license": "MIT",
2867
+
"funding": {
2868
+
"url": "https://github.com/sponsors/ljharb"
2869
+
}
2870
+
},
2871
+
"node_modules/gc-hook": {
2872
+
"version": "0.4.1",
2873
+
"resolved": "https://registry.npmjs.org/gc-hook/-/gc-hook-0.4.1.tgz",
2874
+
"integrity": "sha512-uiF+uUftDVLr+VRdudsdsT3/LQYnv2ntwhRH964O7xXDI57Smrek5olv75Wb8Nnz6U+7iVTRXsBlxKcsaDTJTQ==",
2875
+
"license": "ISC"
2876
+
},
2877
+
"node_modules/get-intrinsic": {
2878
+
"version": "1.2.4",
2879
+
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
2880
+
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
2881
+
"license": "MIT",
2882
+
"dependencies": {
2883
+
"es-errors": "^1.3.0",
2884
+
"function-bind": "^1.1.2",
2885
+
"has-proto": "^1.0.1",
2886
+
"has-symbols": "^1.0.3",
2887
+
"hasown": "^2.0.0"
2888
+
},
2889
+
"engines": {
2890
+
"node": ">= 0.4"
2891
+
},
2892
+
"funding": {
2893
+
"url": "https://github.com/sponsors/ljharb"
2894
+
}
2895
+
},
2896
+
"node_modules/get-tsconfig": {
2897
+
"version": "4.8.1",
2898
+
"resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz",
2899
+
"integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==",
2900
+
"dev": true,
2901
+
"license": "MIT",
2902
+
"dependencies": {
2903
+
"resolve-pkg-maps": "^1.0.0"
2904
+
},
2905
+
"funding": {
2906
+
"url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
2907
+
}
2908
+
},
2909
+
"node_modules/github-from-package": {
2910
+
"version": "0.0.0",
2911
+
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
2912
+
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
2913
+
"license": "MIT"
2914
+
},
2915
+
"node_modules/glob": {
2916
+
"version": "10.4.5",
2917
+
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
2918
+
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
2919
+
"dev": true,
2920
+
"license": "ISC",
2921
+
"dependencies": {
2922
+
"foreground-child": "^3.1.0",
2923
+
"jackspeak": "^3.1.2",
2924
+
"minimatch": "^9.0.4",
2925
+
"minipass": "^7.1.2",
2926
+
"package-json-from-dist": "^1.0.0",
2927
+
"path-scurry": "^1.11.1"
2928
+
},
2929
+
"bin": {
2930
+
"glob": "dist/esm/bin.mjs"
2931
+
},
2932
+
"funding": {
2933
+
"url": "https://github.com/sponsors/isaacs"
2934
+
}
2935
+
},
2936
+
"node_modules/glob-parent": {
2937
+
"version": "5.1.2",
2938
+
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
2939
+
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
2940
+
"dev": true,
2941
+
"license": "ISC",
2942
+
"dependencies": {
2943
+
"is-glob": "^4.0.1"
2944
+
},
2945
+
"engines": {
2946
+
"node": ">= 6"
2947
+
}
2948
+
},
2949
+
"node_modules/gopd": {
2950
+
"version": "1.1.0",
2951
+
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz",
2952
+
"integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==",
2953
+
"license": "MIT",
2954
+
"dependencies": {
2955
+
"get-intrinsic": "^1.2.4"
2956
+
},
2957
+
"engines": {
2958
+
"node": ">= 0.4"
2959
+
},
2960
+
"funding": {
2961
+
"url": "https://github.com/sponsors/ljharb"
2962
+
}
2963
+
},
2964
+
"node_modules/graphemer": {
2965
+
"version": "1.4.0",
2966
+
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
2967
+
"integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
2968
+
"license": "MIT"
2969
+
},
2970
+
"node_modules/has-flag": {
2971
+
"version": "4.0.0",
2972
+
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
2973
+
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
2974
+
"dev": true,
2975
+
"license": "MIT",
2976
+
"engines": {
2977
+
"node": ">=8"
2978
+
}
2979
+
},
2980
+
"node_modules/has-property-descriptors": {
2981
+
"version": "1.0.2",
2982
+
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
2983
+
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
2984
+
"license": "MIT",
2985
+
"dependencies": {
2986
+
"es-define-property": "^1.0.0"
2987
+
},
2988
+
"funding": {
2989
+
"url": "https://github.com/sponsors/ljharb"
2990
+
}
2991
+
},
2992
+
"node_modules/has-proto": {
2993
+
"version": "1.1.0",
2994
+
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.1.0.tgz",
2995
+
"integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==",
2996
+
"license": "MIT",
2997
+
"dependencies": {
2998
+
"call-bind": "^1.0.7"
2999
+
},
3000
+
"engines": {
3001
+
"node": ">= 0.4"
3002
+
},
3003
+
"funding": {
3004
+
"url": "https://github.com/sponsors/ljharb"
3005
+
}
3006
+
},
3007
+
"node_modules/has-symbols": {
3008
+
"version": "1.1.0",
3009
+
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
3010
+
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
3011
+
"license": "MIT",
3012
+
"engines": {
3013
+
"node": ">= 0.4"
3014
+
},
3015
+
"funding": {
3016
+
"url": "https://github.com/sponsors/ljharb"
3017
+
}
3018
+
},
3019
+
"node_modules/has-tostringtag": {
3020
+
"version": "1.0.2",
3021
+
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
3022
+
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
3023
+
"license": "MIT",
3024
+
"dependencies": {
3025
+
"has-symbols": "^1.0.3"
3026
+
},
3027
+
"engines": {
3028
+
"node": ">= 0.4"
3029
+
},
3030
+
"funding": {
3031
+
"url": "https://github.com/sponsors/ljharb"
3032
+
}
3033
+
},
3034
+
"node_modules/hasown": {
3035
+
"version": "2.0.2",
3036
+
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
3037
+
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
3038
+
"license": "MIT",
3039
+
"dependencies": {
3040
+
"function-bind": "^1.1.2"
3041
+
},
3042
+
"engines": {
3043
+
"node": ">= 0.4"
3044
+
}
3045
+
},
3046
+
"node_modules/help-me": {
3047
+
"version": "5.0.0",
3048
+
"resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz",
3049
+
"integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==",
3050
+
"dev": true,
3051
+
"license": "MIT"
3052
+
},
3053
+
"node_modules/html-escaper": {
3054
+
"version": "3.0.3",
3055
+
"resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz",
3056
+
"integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==",
3057
+
"license": "MIT"
3058
+
},
3059
+
"node_modules/htmlparser2": {
3060
+
"version": "9.1.0",
3061
+
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
3062
+
"integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
3063
+
"funding": [
3064
+
"https://github.com/fb55/htmlparser2?sponsor=1",
3065
+
{
3066
+
"type": "github",
3067
+
"url": "https://github.com/sponsors/fb55"
3068
+
}
3069
+
],
3070
+
"license": "MIT",
3071
+
"dependencies": {
3072
+
"domelementtype": "^2.3.0",
3073
+
"domhandler": "^5.0.3",
3074
+
"domutils": "^3.1.0",
3075
+
"entities": "^4.5.0"
3076
+
}
3077
+
},
3078
+
"node_modules/http-errors": {
3079
+
"version": "2.0.0",
3080
+
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
3081
+
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
3082
+
"license": "MIT",
3083
+
"dependencies": {
3084
+
"depd": "2.0.0",
3085
+
"inherits": "2.0.4",
3086
+
"setprototypeof": "1.2.0",
3087
+
"statuses": "2.0.1",
3088
+
"toidentifier": "1.0.1"
3089
+
},
3090
+
"engines": {
3091
+
"node": ">= 0.8"
3092
+
}
3093
+
},
3094
+
"node_modules/iconv-lite": {
3095
+
"version": "0.4.24",
3096
+
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
3097
+
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
3098
+
"license": "MIT",
3099
+
"dependencies": {
3100
+
"safer-buffer": ">= 2.1.2 < 3"
3101
+
},
3102
+
"engines": {
3103
+
"node": ">=0.10.0"
3104
+
}
3105
+
},
3106
+
"node_modules/ieee754": {
3107
+
"version": "1.2.1",
3108
+
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
3109
+
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
3110
+
"funding": [
3111
+
{
3112
+
"type": "github",
3113
+
"url": "https://github.com/sponsors/feross"
3114
+
},
3115
+
{
3116
+
"type": "patreon",
3117
+
"url": "https://www.patreon.com/feross"
3118
+
},
3119
+
{
3120
+
"type": "consulting",
3121
+
"url": "https://feross.org/support"
3122
+
}
3123
+
],
3124
+
"license": "BSD-3-Clause"
3125
+
},
3126
+
"node_modules/inherits": {
3127
+
"version": "2.0.4",
3128
+
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
3129
+
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
3130
+
"license": "ISC"
3131
+
},
3132
+
"node_modules/ini": {
3133
+
"version": "1.3.8",
3134
+
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
3135
+
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
3136
+
"license": "ISC"
3137
+
},
3138
+
"node_modules/ipaddr.js": {
3139
+
"version": "2.2.0",
3140
+
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
3141
+
"integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
3142
+
"license": "MIT",
3143
+
"engines": {
3144
+
"node": ">= 10"
3145
+
}
3146
+
},
3147
+
"node_modules/iron-session": {
3148
+
"version": "8.0.4",
3149
+
"resolved": "https://registry.npmjs.org/iron-session/-/iron-session-8.0.4.tgz",
3150
+
"integrity": "sha512-9ivNnaKOd08osD0lJ3i6If23GFS2LsxyMU8Gf/uBUEgm8/8CC1hrrCHFDpMo3IFbpBgwoo/eairRsaD3c5itxA==",
3151
+
"funding": [
3152
+
"https://github.com/sponsors/vvo",
3153
+
"https://github.com/sponsors/brc-dd"
3154
+
],
3155
+
"license": "MIT",
3156
+
"dependencies": {
3157
+
"cookie": "^0.7.2",
3158
+
"iron-webcrypto": "^1.2.1",
3159
+
"uncrypto": "^0.1.3"
3160
+
}
3161
+
},
3162
+
"node_modules/iron-session/node_modules/cookie": {
3163
+
"version": "0.7.2",
3164
+
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
3165
+
"integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
3166
+
"license": "MIT",
3167
+
"engines": {
3168
+
"node": ">= 0.6"
3169
+
}
3170
+
},
3171
+
"node_modules/iron-webcrypto": {
3172
+
"version": "1.2.1",
3173
+
"resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz",
3174
+
"integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==",
3175
+
"license": "MIT",
3176
+
"funding": {
3177
+
"url": "https://github.com/sponsors/brc-dd"
3178
+
}
3179
+
},
3180
+
"node_modules/is-core-module": {
3181
+
"version": "2.15.1",
3182
+
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
3183
+
"integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
3184
+
"license": "MIT",
3185
+
"dependencies": {
3186
+
"hasown": "^2.0.2"
3187
+
},
3188
+
"engines": {
3189
+
"node": ">= 0.4"
3190
+
},
3191
+
"funding": {
3192
+
"url": "https://github.com/sponsors/ljharb"
3193
+
}
3194
+
},
3195
+
"node_modules/is-expression": {
3196
+
"version": "4.0.0",
3197
+
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz",
3198
+
"integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==",
3199
+
"license": "MIT",
3200
+
"dependencies": {
3201
+
"acorn": "^7.1.1",
3202
+
"object-assign": "^4.1.1"
3203
+
}
3204
+
},
3205
+
"node_modules/is-expression/node_modules/acorn": {
3206
+
"version": "7.4.1",
3207
+
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
3208
+
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
3209
+
"license": "MIT",
3210
+
"bin": {
3211
+
"acorn": "bin/acorn"
3212
+
},
3213
+
"engines": {
3214
+
"node": ">=0.4.0"
3215
+
}
3216
+
},
3217
+
"node_modules/is-extglob": {
3218
+
"version": "2.1.1",
3219
+
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
3220
+
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
3221
+
"dev": true,
3222
+
"license": "MIT",
3223
+
"engines": {
3224
+
"node": ">=0.10.0"
3225
+
}
3226
+
},
3227
+
"node_modules/is-fullwidth-code-point": {
3228
+
"version": "3.0.0",
3229
+
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
3230
+
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
3231
+
"dev": true,
3232
+
"license": "MIT",
3233
+
"engines": {
3234
+
"node": ">=8"
3235
+
}
3236
+
},
3237
+
"node_modules/is-glob": {
3238
+
"version": "4.0.3",
3239
+
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
3240
+
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
3241
+
"dev": true,
3242
+
"license": "MIT",
3243
+
"dependencies": {
3244
+
"is-extglob": "^2.1.1"
3245
+
},
3246
+
"engines": {
3247
+
"node": ">=0.10.0"
3248
+
}
3249
+
},
3250
+
"node_modules/is-number": {
3251
+
"version": "7.0.0",
3252
+
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
3253
+
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
3254
+
"dev": true,
3255
+
"license": "MIT",
3256
+
"engines": {
3257
+
"node": ">=0.12.0"
3258
+
}
3259
+
},
3260
+
"node_modules/is-promise": {
3261
+
"version": "2.2.2",
3262
+
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
3263
+
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
3264
+
"license": "MIT"
3265
+
},
3266
+
"node_modules/is-regex": {
3267
+
"version": "1.2.0",
3268
+
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.0.tgz",
3269
+
"integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==",
3270
+
"license": "MIT",
3271
+
"dependencies": {
3272
+
"call-bind": "^1.0.7",
3273
+
"gopd": "^1.1.0",
3274
+
"has-tostringtag": "^1.0.2",
3275
+
"hasown": "^2.0.2"
3276
+
},
3277
+
"engines": {
3278
+
"node": ">= 0.4"
3279
+
},
3280
+
"funding": {
3281
+
"url": "https://github.com/sponsors/ljharb"
3282
+
}
3283
+
},
3284
+
"node_modules/isexe": {
3285
+
"version": "2.0.0",
3286
+
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
3287
+
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
3288
+
"dev": true,
3289
+
"license": "ISC"
3290
+
},
3291
+
"node_modules/iso-datestring-validator": {
3292
+
"version": "2.2.2",
3293
+
"resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz",
3294
+
"integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==",
3295
+
"license": "MIT"
3296
+
},
3297
+
"node_modules/jackspeak": {
3298
+
"version": "3.4.3",
3299
+
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
3300
+
"integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
3301
+
"dev": true,
3302
+
"license": "BlueOak-1.0.0",
3303
+
"dependencies": {
3304
+
"@isaacs/cliui": "^8.0.2"
3305
+
},
3306
+
"funding": {
3307
+
"url": "https://github.com/sponsors/isaacs"
3308
+
},
3309
+
"optionalDependencies": {
3310
+
"@pkgjs/parseargs": "^0.11.0"
3311
+
}
3312
+
},
3313
+
"node_modules/jose": {
3314
+
"version": "5.9.6",
3315
+
"resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz",
3316
+
"integrity": "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==",
3317
+
"license": "MIT",
3318
+
"funding": {
3319
+
"url": "https://github.com/sponsors/panva"
3320
+
}
3321
+
},
3322
+
"node_modules/joycon": {
3323
+
"version": "3.1.1",
3324
+
"resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
3325
+
"integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
3326
+
"dev": true,
3327
+
"license": "MIT",
3328
+
"engines": {
3329
+
"node": ">=10"
3330
+
}
3331
+
},
3332
+
"node_modules/js-stringify": {
3333
+
"version": "1.0.2",
3334
+
"resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
3335
+
"integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==",
3336
+
"license": "MIT"
3337
+
},
3338
+
"node_modules/jstransformer": {
3339
+
"version": "1.0.0",
3340
+
"resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
3341
+
"integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==",
3342
+
"license": "MIT",
3343
+
"dependencies": {
3344
+
"is-promise": "^2.0.0",
3345
+
"promise": "^7.0.1"
3346
+
}
3347
+
},
3348
+
"node_modules/kysely": {
3349
+
"version": "0.27.4",
3350
+
"resolved": "https://registry.npmjs.org/kysely/-/kysely-0.27.4.tgz",
3351
+
"integrity": "sha512-dyNKv2KRvYOQPLCAOCjjQuCk4YFd33BvGdf/o5bC7FiW+BB6snA81Zt+2wT9QDFzKqxKa5rrOmvlK/anehCcgA==",
3352
+
"license": "MIT",
3353
+
"engines": {
3354
+
"node": ">=14.0.0"
3355
+
}
3356
+
},
3357
+
"node_modules/lilconfig": {
3358
+
"version": "3.1.2",
3359
+
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
3360
+
"integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
3361
+
"dev": true,
3362
+
"license": "MIT",
3363
+
"engines": {
3364
+
"node": ">=14"
3365
+
},
3366
+
"funding": {
3367
+
"url": "https://github.com/sponsors/antonk52"
3368
+
}
3369
+
},
3370
+
"node_modules/lines-and-columns": {
3371
+
"version": "1.2.4",
3372
+
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
3373
+
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
3374
+
"dev": true,
3375
+
"license": "MIT"
3376
+
},
3377
+
"node_modules/load-tsconfig": {
3378
+
"version": "0.2.5",
3379
+
"resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz",
3380
+
"integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==",
3381
+
"dev": true,
3382
+
"license": "MIT",
3383
+
"engines": {
3384
+
"node": "^12.20.0 || ^14.13.1 || >=16.0.0"
3385
+
}
3386
+
},
3387
+
"node_modules/lodash.sortby": {
3388
+
"version": "4.7.0",
3389
+
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
3390
+
"integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
3391
+
"dev": true,
3392
+
"license": "MIT"
3393
+
},
3394
+
"node_modules/lru-cache": {
3395
+
"version": "10.4.3",
3396
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
3397
+
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
3398
+
"license": "ISC"
3399
+
},
3400
+
"node_modules/make-error": {
3401
+
"version": "1.3.6",
3402
+
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
3403
+
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
3404
+
"dev": true,
3405
+
"license": "ISC"
3406
+
},
3407
+
"node_modules/media-typer": {
3408
+
"version": "0.3.0",
3409
+
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
3410
+
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
3411
+
"license": "MIT",
3412
+
"engines": {
3413
+
"node": ">= 0.6"
3414
+
}
3415
+
},
3416
+
"node_modules/merge-descriptors": {
3417
+
"version": "1.0.3",
3418
+
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
3419
+
"integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
3420
+
"license": "MIT",
3421
+
"funding": {
3422
+
"url": "https://github.com/sponsors/sindresorhus"
3423
+
}
3424
+
},
3425
+
"node_modules/merge2": {
3426
+
"version": "1.4.1",
3427
+
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
3428
+
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
3429
+
"dev": true,
3430
+
"license": "MIT",
3431
+
"engines": {
3432
+
"node": ">= 8"
3433
+
}
3434
+
},
3435
+
"node_modules/methods": {
3436
+
"version": "1.1.2",
3437
+
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
3438
+
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
3439
+
"license": "MIT",
3440
+
"engines": {
3441
+
"node": ">= 0.6"
3442
+
}
3443
+
},
3444
+
"node_modules/micromatch": {
3445
+
"version": "4.0.8",
3446
+
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
3447
+
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
3448
+
"dev": true,
3449
+
"license": "MIT",
3450
+
"dependencies": {
3451
+
"braces": "^3.0.3",
3452
+
"picomatch": "^2.3.1"
3453
+
},
3454
+
"engines": {
3455
+
"node": ">=8.6"
3456
+
}
3457
+
},
3458
+
"node_modules/mime": {
3459
+
"version": "1.6.0",
3460
+
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
3461
+
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
3462
+
"license": "MIT",
3463
+
"bin": {
3464
+
"mime": "cli.js"
3465
+
},
3466
+
"engines": {
3467
+
"node": ">=4"
3468
+
}
3469
+
},
3470
+
"node_modules/mime-db": {
3471
+
"version": "1.52.0",
3472
+
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
3473
+
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
3474
+
"license": "MIT",
3475
+
"engines": {
3476
+
"node": ">= 0.6"
3477
+
}
3478
+
},
3479
+
"node_modules/mime-types": {
3480
+
"version": "2.1.35",
3481
+
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
3482
+
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
3483
+
"license": "MIT",
3484
+
"dependencies": {
3485
+
"mime-db": "1.52.0"
3486
+
},
3487
+
"engines": {
3488
+
"node": ">= 0.6"
3489
+
}
3490
+
},
3491
+
"node_modules/mimic-response": {
3492
+
"version": "3.1.0",
3493
+
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
3494
+
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
3495
+
"license": "MIT",
3496
+
"engines": {
3497
+
"node": ">=10"
3498
+
},
3499
+
"funding": {
3500
+
"url": "https://github.com/sponsors/sindresorhus"
3501
+
}
3502
+
},
3503
+
"node_modules/minimatch": {
3504
+
"version": "9.0.5",
3505
+
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
3506
+
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
3507
+
"dev": true,
3508
+
"license": "ISC",
3509
+
"dependencies": {
3510
+
"brace-expansion": "^2.0.1"
3511
+
},
3512
+
"engines": {
3513
+
"node": ">=16 || 14 >=14.17"
3514
+
},
3515
+
"funding": {
3516
+
"url": "https://github.com/sponsors/isaacs"
3517
+
}
3518
+
},
3519
+
"node_modules/minimist": {
3520
+
"version": "1.2.8",
3521
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
3522
+
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
3523
+
"license": "MIT",
3524
+
"funding": {
3525
+
"url": "https://github.com/sponsors/ljharb"
3526
+
}
3527
+
},
3528
+
"node_modules/minipass": {
3529
+
"version": "7.1.2",
3530
+
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
3531
+
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
3532
+
"dev": true,
3533
+
"license": "ISC",
3534
+
"engines": {
3535
+
"node": ">=16 || 14 >=14.17"
3536
+
}
3537
+
},
3538
+
"node_modules/mkdirp": {
3539
+
"version": "1.0.4",
3540
+
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
3541
+
"integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
3542
+
"dev": true,
3543
+
"license": "MIT",
3544
+
"bin": {
3545
+
"mkdirp": "bin/cmd.js"
3546
+
},
3547
+
"engines": {
3548
+
"node": ">=10"
3549
+
}
3550
+
},
3551
+
"node_modules/mkdirp-classic": {
3552
+
"version": "0.5.3",
3553
+
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
3554
+
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
3555
+
"license": "MIT"
3556
+
},
3557
+
"node_modules/ms": {
3558
+
"version": "2.0.0",
3559
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3560
+
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
3561
+
"license": "MIT"
3562
+
},
3563
+
"node_modules/multiformats": {
3564
+
"version": "9.9.0",
3565
+
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
3566
+
"integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==",
3567
+
"license": "(Apache-2.0 AND MIT)"
3568
+
},
3569
+
"node_modules/mz": {
3570
+
"version": "2.7.0",
3571
+
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
3572
+
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
3573
+
"dev": true,
3574
+
"license": "MIT",
3575
+
"dependencies": {
3576
+
"any-promise": "^1.0.0",
3577
+
"object-assign": "^4.0.1",
3578
+
"thenify-all": "^1.0.0"
3579
+
}
3580
+
},
3581
+
"node_modules/napi-build-utils": {
3582
+
"version": "1.0.2",
3583
+
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
3584
+
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
3585
+
"license": "MIT"
3586
+
},
3587
+
"node_modules/negotiator": {
3588
+
"version": "0.6.3",
3589
+
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
3590
+
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
3591
+
"license": "MIT",
3592
+
"engines": {
3593
+
"node": ">= 0.6"
3594
+
}
3595
+
},
3596
+
"node_modules/node-abi": {
3597
+
"version": "3.71.0",
3598
+
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz",
3599
+
"integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==",
3600
+
"license": "MIT",
3601
+
"dependencies": {
3602
+
"semver": "^7.3.5"
3603
+
},
3604
+
"engines": {
3605
+
"node": ">=10"
3606
+
}
3607
+
},
3608
+
"node_modules/node-gyp-build-optional-packages": {
3609
+
"version": "5.1.1",
3610
+
"resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz",
3611
+
"integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==",
3612
+
"license": "MIT",
3613
+
"optional": true,
3614
+
"dependencies": {
3615
+
"detect-libc": "^2.0.1"
3616
+
},
3617
+
"bin": {
3618
+
"node-gyp-build-optional-packages": "bin.js",
3619
+
"node-gyp-build-optional-packages-optional": "optional.js",
3620
+
"node-gyp-build-optional-packages-test": "build-test.js"
3621
+
}
3622
+
},
3623
+
"node_modules/object-assign": {
3624
+
"version": "4.1.1",
3625
+
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
3626
+
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
3627
+
"license": "MIT",
3628
+
"engines": {
3629
+
"node": ">=0.10.0"
3630
+
}
3631
+
},
3632
+
"node_modules/object-inspect": {
3633
+
"version": "1.13.3",
3634
+
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
3635
+
"integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
3636
+
"license": "MIT",
3637
+
"engines": {
3638
+
"node": ">= 0.4"
3639
+
},
3640
+
"funding": {
3641
+
"url": "https://github.com/sponsors/ljharb"
3642
+
}
3643
+
},
3644
+
"node_modules/on-exit-leak-free": {
3645
+
"version": "2.1.2",
3646
+
"resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
3647
+
"integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==",
3648
+
"license": "MIT",
3649
+
"engines": {
3650
+
"node": ">=14.0.0"
3651
+
}
3652
+
},
3653
+
"node_modules/on-finished": {
3654
+
"version": "2.4.1",
3655
+
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
3656
+
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
3657
+
"license": "MIT",
3658
+
"dependencies": {
3659
+
"ee-first": "1.1.1"
3660
+
},
3661
+
"engines": {
3662
+
"node": ">= 0.8"
3663
+
}
3664
+
},
3665
+
"node_modules/once": {
3666
+
"version": "1.4.0",
3667
+
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
3668
+
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
3669
+
"license": "ISC",
3670
+
"dependencies": {
3671
+
"wrappy": "1"
3672
+
}
3673
+
},
3674
+
"node_modules/p-finally": {
3675
+
"version": "1.0.0",
3676
+
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
3677
+
"integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
3678
+
"license": "MIT",
3679
+
"engines": {
3680
+
"node": ">=4"
3681
+
}
3682
+
},
3683
+
"node_modules/p-queue": {
3684
+
"version": "6.6.2",
3685
+
"resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz",
3686
+
"integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==",
3687
+
"license": "MIT",
3688
+
"dependencies": {
3689
+
"eventemitter3": "^4.0.4",
3690
+
"p-timeout": "^3.2.0"
3691
+
},
3692
+
"engines": {
3693
+
"node": ">=8"
3694
+
},
3695
+
"funding": {
3696
+
"url": "https://github.com/sponsors/sindresorhus"
3697
+
}
3698
+
},
3699
+
"node_modules/p-timeout": {
3700
+
"version": "3.2.0",
3701
+
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz",
3702
+
"integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==",
3703
+
"license": "MIT",
3704
+
"dependencies": {
3705
+
"p-finally": "^1.0.0"
3706
+
},
3707
+
"engines": {
3708
+
"node": ">=8"
3709
+
}
3710
+
},
3711
+
"node_modules/package-json-from-dist": {
3712
+
"version": "1.0.1",
3713
+
"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
3714
+
"integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
3715
+
"dev": true,
3716
+
"license": "BlueOak-1.0.0"
3717
+
},
3718
+
"node_modules/parseurl": {
3719
+
"version": "1.3.3",
3720
+
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
3721
+
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
3722
+
"license": "MIT",
3723
+
"engines": {
3724
+
"node": ">= 0.8"
3725
+
}
3726
+
},
3727
+
"node_modules/path-browserify": {
3728
+
"version": "1.0.1",
3729
+
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
3730
+
"integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
3731
+
"dev": true,
3732
+
"license": "MIT"
3733
+
},
3734
+
"node_modules/path-key": {
3735
+
"version": "3.1.1",
3736
+
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
3737
+
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
3738
+
"dev": true,
3739
+
"license": "MIT",
3740
+
"engines": {
3741
+
"node": ">=8"
3742
+
}
3743
+
},
3744
+
"node_modules/path-parse": {
3745
+
"version": "1.0.7",
3746
+
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
3747
+
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
3748
+
"license": "MIT"
3749
+
},
3750
+
"node_modules/path-scurry": {
3751
+
"version": "1.11.1",
3752
+
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
3753
+
"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
3754
+
"dev": true,
3755
+
"license": "BlueOak-1.0.0",
3756
+
"dependencies": {
3757
+
"lru-cache": "^10.2.0",
3758
+
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
3759
+
},
3760
+
"engines": {
3761
+
"node": ">=16 || 14 >=14.18"
3762
+
},
3763
+
"funding": {
3764
+
"url": "https://github.com/sponsors/isaacs"
3765
+
}
3766
+
},
3767
+
"node_modules/path-to-regexp": {
3768
+
"version": "0.1.10",
3769
+
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
3770
+
"integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
3771
+
"license": "MIT"
3772
+
},
3773
+
"node_modules/picocolors": {
3774
+
"version": "1.1.1",
3775
+
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
3776
+
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
3777
+
"dev": true,
3778
+
"license": "ISC"
3779
+
},
3780
+
"node_modules/picomatch": {
3781
+
"version": "2.3.1",
3782
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
3783
+
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
3784
+
"dev": true,
3785
+
"license": "MIT",
3786
+
"engines": {
3787
+
"node": ">=8.6"
3788
+
},
3789
+
"funding": {
3790
+
"url": "https://github.com/sponsors/jonschlinkert"
3791
+
}
3792
+
},
3793
+
"node_modules/pino": {
3794
+
"version": "9.5.0",
3795
+
"resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz",
3796
+
"integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==",
3797
+
"license": "MIT",
3798
+
"dependencies": {
3799
+
"atomic-sleep": "^1.0.0",
3800
+
"fast-redact": "^3.1.1",
3801
+
"on-exit-leak-free": "^2.1.0",
3802
+
"pino-abstract-transport": "^2.0.0",
3803
+
"pino-std-serializers": "^7.0.0",
3804
+
"process-warning": "^4.0.0",
3805
+
"quick-format-unescaped": "^4.0.3",
3806
+
"real-require": "^0.2.0",
3807
+
"safe-stable-stringify": "^2.3.1",
3808
+
"sonic-boom": "^4.0.1",
3809
+
"thread-stream": "^3.0.0"
3810
+
},
3811
+
"bin": {
3812
+
"pino": "bin.js"
3813
+
}
3814
+
},
3815
+
"node_modules/pino-abstract-transport": {
3816
+
"version": "2.0.0",
3817
+
"resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz",
3818
+
"integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==",
3819
+
"license": "MIT",
3820
+
"dependencies": {
3821
+
"split2": "^4.0.0"
3822
+
}
3823
+
},
3824
+
"node_modules/pino-pretty": {
3825
+
"version": "11.3.0",
3826
+
"resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-11.3.0.tgz",
3827
+
"integrity": "sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==",
3828
+
"dev": true,
3829
+
"license": "MIT",
3830
+
"dependencies": {
3831
+
"colorette": "^2.0.7",
3832
+
"dateformat": "^4.6.3",
3833
+
"fast-copy": "^3.0.2",
3834
+
"fast-safe-stringify": "^2.1.1",
3835
+
"help-me": "^5.0.0",
3836
+
"joycon": "^3.1.1",
3837
+
"minimist": "^1.2.6",
3838
+
"on-exit-leak-free": "^2.1.0",
3839
+
"pino-abstract-transport": "^2.0.0",
3840
+
"pump": "^3.0.0",
3841
+
"readable-stream": "^4.0.0",
3842
+
"secure-json-parse": "^2.4.0",
3843
+
"sonic-boom": "^4.0.1",
3844
+
"strip-json-comments": "^3.1.1"
3845
+
},
3846
+
"bin": {
3847
+
"pino-pretty": "bin.js"
3848
+
}
3849
+
},
3850
+
"node_modules/pino-std-serializers": {
3851
+
"version": "7.0.0",
3852
+
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz",
3853
+
"integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==",
3854
+
"license": "MIT"
3855
+
},
3856
+
"node_modules/pirates": {
3857
+
"version": "4.0.6",
3858
+
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
3859
+
"integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
3860
+
"dev": true,
3861
+
"license": "MIT",
3862
+
"engines": {
3863
+
"node": ">= 6"
3864
+
}
3865
+
},
3866
+
"node_modules/postcss-load-config": {
3867
+
"version": "6.0.1",
3868
+
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
3869
+
"integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
3870
+
"dev": true,
3871
+
"funding": [
3872
+
{
3873
+
"type": "opencollective",
3874
+
"url": "https://opencollective.com/postcss/"
3875
+
},
3876
+
{
3877
+
"type": "github",
3878
+
"url": "https://github.com/sponsors/ai"
3879
+
}
3880
+
],
3881
+
"license": "MIT",
3882
+
"dependencies": {
3883
+
"lilconfig": "^3.1.1"
3884
+
},
3885
+
"engines": {
3886
+
"node": ">= 18"
3887
+
},
3888
+
"peerDependencies": {
3889
+
"jiti": ">=1.21.0",
3890
+
"postcss": ">=8.0.9",
3891
+
"tsx": "^4.8.1",
3892
+
"yaml": "^2.4.2"
3893
+
},
3894
+
"peerDependenciesMeta": {
3895
+
"jiti": {
3896
+
"optional": true
3897
+
},
3898
+
"postcss": {
3899
+
"optional": true
3900
+
},
3901
+
"tsx": {
3902
+
"optional": true
3903
+
},
3904
+
"yaml": {
3905
+
"optional": true
3906
+
}
3907
+
}
3908
+
},
3909
+
"node_modules/prebuild-install": {
3910
+
"version": "7.1.2",
3911
+
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
3912
+
"integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
3913
+
"license": "MIT",
3914
+
"dependencies": {
3915
+
"detect-libc": "^2.0.0",
3916
+
"expand-template": "^2.0.3",
3917
+
"github-from-package": "0.0.0",
3918
+
"minimist": "^1.2.3",
3919
+
"mkdirp-classic": "^0.5.3",
3920
+
"napi-build-utils": "^1.0.1",
3921
+
"node-abi": "^3.3.0",
3922
+
"pump": "^3.0.0",
3923
+
"rc": "^1.2.7",
3924
+
"simple-get": "^4.0.0",
3925
+
"tar-fs": "^2.0.0",
3926
+
"tunnel-agent": "^0.6.0"
3927
+
},
3928
+
"bin": {
3929
+
"prebuild-install": "bin.js"
3930
+
},
3931
+
"engines": {
3932
+
"node": ">=10"
3933
+
}
3934
+
},
3935
+
"node_modules/prettier": {
3936
+
"version": "3.4.1",
3937
+
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.1.tgz",
3938
+
"integrity": "sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==",
3939
+
"dev": true,
3940
+
"license": "MIT",
3941
+
"bin": {
3942
+
"prettier": "bin/prettier.cjs"
3943
+
},
3944
+
"engines": {
3945
+
"node": ">=14"
3946
+
},
3947
+
"funding": {
3948
+
"url": "https://github.com/prettier/prettier?sponsor=1"
3949
+
}
3950
+
},
3951
+
"node_modules/process": {
3952
+
"version": "0.11.10",
3953
+
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
3954
+
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
3955
+
"license": "MIT",
3956
+
"engines": {
3957
+
"node": ">= 0.6.0"
3958
+
}
3959
+
},
3960
+
"node_modules/process-warning": {
3961
+
"version": "4.0.0",
3962
+
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz",
3963
+
"integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==",
3964
+
"license": "MIT"
3965
+
},
3966
+
"node_modules/promise": {
3967
+
"version": "7.3.1",
3968
+
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
3969
+
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
3970
+
"license": "MIT",
3971
+
"dependencies": {
3972
+
"asap": "~2.0.3"
3973
+
}
3974
+
},
3975
+
"node_modules/proxy-addr": {
3976
+
"version": "2.0.7",
3977
+
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
3978
+
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
3979
+
"license": "MIT",
3980
+
"dependencies": {
3981
+
"forwarded": "0.2.0",
3982
+
"ipaddr.js": "1.9.1"
3983
+
},
3984
+
"engines": {
3985
+
"node": ">= 0.10"
3986
+
}
3987
+
},
3988
+
"node_modules/proxy-addr/node_modules/ipaddr.js": {
3989
+
"version": "1.9.1",
3990
+
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
3991
+
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
3992
+
"license": "MIT",
3993
+
"engines": {
3994
+
"node": ">= 0.10"
3995
+
}
3996
+
},
3997
+
"node_modules/psl": {
3998
+
"version": "1.15.0",
3999
+
"resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
4000
+
"integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
4001
+
"license": "MIT",
4002
+
"dependencies": {
4003
+
"punycode": "^2.3.1"
4004
+
},
4005
+
"funding": {
4006
+
"url": "https://github.com/sponsors/lupomontero"
4007
+
}
4008
+
},
4009
+
"node_modules/pug": {
4010
+
"version": "3.0.3",
4011
+
"resolved": "https://registry.npmjs.org/pug/-/pug-3.0.3.tgz",
4012
+
"integrity": "sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==",
4013
+
"license": "MIT",
4014
+
"dependencies": {
4015
+
"pug-code-gen": "^3.0.3",
4016
+
"pug-filters": "^4.0.0",
4017
+
"pug-lexer": "^5.0.1",
4018
+
"pug-linker": "^4.0.0",
4019
+
"pug-load": "^3.0.0",
4020
+
"pug-parser": "^6.0.0",
4021
+
"pug-runtime": "^3.0.1",
4022
+
"pug-strip-comments": "^2.0.0"
4023
+
}
4024
+
},
4025
+
"node_modules/pug-attrs": {
4026
+
"version": "3.0.0",
4027
+
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz",
4028
+
"integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==",
4029
+
"license": "MIT",
4030
+
"dependencies": {
4031
+
"constantinople": "^4.0.1",
4032
+
"js-stringify": "^1.0.2",
4033
+
"pug-runtime": "^3.0.0"
4034
+
}
4035
+
},
4036
+
"node_modules/pug-code-gen": {
4037
+
"version": "3.0.3",
4038
+
"resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.3.tgz",
4039
+
"integrity": "sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==",
4040
+
"license": "MIT",
4041
+
"dependencies": {
4042
+
"constantinople": "^4.0.1",
4043
+
"doctypes": "^1.1.0",
4044
+
"js-stringify": "^1.0.2",
4045
+
"pug-attrs": "^3.0.0",
4046
+
"pug-error": "^2.1.0",
4047
+
"pug-runtime": "^3.0.1",
4048
+
"void-elements": "^3.1.0",
4049
+
"with": "^7.0.0"
4050
+
}
4051
+
},
4052
+
"node_modules/pug-error": {
4053
+
"version": "2.1.0",
4054
+
"resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz",
4055
+
"integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==",
4056
+
"license": "MIT"
4057
+
},
4058
+
"node_modules/pug-filters": {
4059
+
"version": "4.0.0",
4060
+
"resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz",
4061
+
"integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==",
4062
+
"license": "MIT",
4063
+
"dependencies": {
4064
+
"constantinople": "^4.0.1",
4065
+
"jstransformer": "1.0.0",
4066
+
"pug-error": "^2.0.0",
4067
+
"pug-walk": "^2.0.0",
4068
+
"resolve": "^1.15.1"
4069
+
}
4070
+
},
4071
+
"node_modules/pug-lexer": {
4072
+
"version": "5.0.1",
4073
+
"resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz",
4074
+
"integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==",
4075
+
"license": "MIT",
4076
+
"dependencies": {
4077
+
"character-parser": "^2.2.0",
4078
+
"is-expression": "^4.0.0",
4079
+
"pug-error": "^2.0.0"
4080
+
}
4081
+
},
4082
+
"node_modules/pug-linker": {
4083
+
"version": "4.0.0",
4084
+
"resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz",
4085
+
"integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==",
4086
+
"license": "MIT",
4087
+
"dependencies": {
4088
+
"pug-error": "^2.0.0",
4089
+
"pug-walk": "^2.0.0"
4090
+
}
4091
+
},
4092
+
"node_modules/pug-load": {
4093
+
"version": "3.0.0",
4094
+
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz",
4095
+
"integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==",
4096
+
"license": "MIT",
4097
+
"dependencies": {
4098
+
"object-assign": "^4.1.1",
4099
+
"pug-walk": "^2.0.0"
4100
+
}
4101
+
},
4102
+
"node_modules/pug-parser": {
4103
+
"version": "6.0.0",
4104
+
"resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz",
4105
+
"integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==",
4106
+
"license": "MIT",
4107
+
"dependencies": {
4108
+
"pug-error": "^2.0.0",
4109
+
"token-stream": "1.0.0"
4110
+
}
4111
+
},
4112
+
"node_modules/pug-runtime": {
4113
+
"version": "3.0.1",
4114
+
"resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz",
4115
+
"integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==",
4116
+
"license": "MIT"
4117
+
},
4118
+
"node_modules/pug-strip-comments": {
4119
+
"version": "2.0.0",
4120
+
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz",
4121
+
"integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==",
4122
+
"license": "MIT",
4123
+
"dependencies": {
4124
+
"pug-error": "^2.0.0"
4125
+
}
4126
+
},
4127
+
"node_modules/pug-walk": {
4128
+
"version": "2.0.0",
4129
+
"resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz",
4130
+
"integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==",
4131
+
"license": "MIT"
4132
+
},
4133
+
"node_modules/pump": {
4134
+
"version": "3.0.2",
4135
+
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
4136
+
"integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
4137
+
"license": "MIT",
4138
+
"dependencies": {
4139
+
"end-of-stream": "^1.1.0",
4140
+
"once": "^1.3.1"
4141
+
}
4142
+
},
4143
+
"node_modules/punycode": {
4144
+
"version": "2.3.1",
4145
+
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
4146
+
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
4147
+
"license": "MIT",
4148
+
"engines": {
4149
+
"node": ">=6"
4150
+
}
4151
+
},
4152
+
"node_modules/qs": {
4153
+
"version": "6.13.0",
4154
+
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
4155
+
"integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
4156
+
"license": "BSD-3-Clause",
4157
+
"dependencies": {
4158
+
"side-channel": "^1.0.6"
4159
+
},
4160
+
"engines": {
4161
+
"node": ">=0.6"
4162
+
},
4163
+
"funding": {
4164
+
"url": "https://github.com/sponsors/ljharb"
4165
+
}
4166
+
},
4167
+
"node_modules/queue-microtask": {
4168
+
"version": "1.2.3",
4169
+
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
4170
+
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
4171
+
"dev": true,
4172
+
"funding": [
4173
+
{
4174
+
"type": "github",
4175
+
"url": "https://github.com/sponsors/feross"
4176
+
},
4177
+
{
4178
+
"type": "patreon",
4179
+
"url": "https://www.patreon.com/feross"
4180
+
},
4181
+
{
4182
+
"type": "consulting",
4183
+
"url": "https://feross.org/support"
4184
+
}
4185
+
],
4186
+
"license": "MIT"
4187
+
},
4188
+
"node_modules/quick-format-unescaped": {
4189
+
"version": "4.0.4",
4190
+
"resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
4191
+
"integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==",
4192
+
"license": "MIT"
4193
+
},
4194
+
"node_modules/range-parser": {
4195
+
"version": "1.2.1",
4196
+
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
4197
+
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
4198
+
"license": "MIT",
4199
+
"engines": {
4200
+
"node": ">= 0.6"
4201
+
}
4202
+
},
4203
+
"node_modules/rate-limiter-flexible": {
4204
+
"version": "2.4.2",
4205
+
"resolved": "https://registry.npmjs.org/rate-limiter-flexible/-/rate-limiter-flexible-2.4.2.tgz",
4206
+
"integrity": "sha512-rMATGGOdO1suFyf/mI5LYhts71g1sbdhmd6YvdiXO2gJnd42Tt6QS4JUKJKSWVVkMtBacm6l40FR7Trjo6Iruw==",
4207
+
"license": "ISC"
4208
+
},
4209
+
"node_modules/raw-body": {
4210
+
"version": "2.5.2",
4211
+
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
4212
+
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
4213
+
"license": "MIT",
4214
+
"dependencies": {
4215
+
"bytes": "3.1.2",
4216
+
"http-errors": "2.0.0",
4217
+
"iconv-lite": "0.4.24",
4218
+
"unpipe": "1.0.0"
4219
+
},
4220
+
"engines": {
4221
+
"node": ">= 0.8"
4222
+
}
4223
+
},
4224
+
"node_modules/rc": {
4225
+
"version": "1.2.8",
4226
+
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
4227
+
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
4228
+
"license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
4229
+
"dependencies": {
4230
+
"deep-extend": "^0.6.0",
4231
+
"ini": "~1.3.0",
4232
+
"minimist": "^1.2.0",
4233
+
"strip-json-comments": "~2.0.1"
4234
+
},
4235
+
"bin": {
4236
+
"rc": "cli.js"
4237
+
}
4238
+
},
4239
+
"node_modules/rc/node_modules/strip-json-comments": {
4240
+
"version": "2.0.1",
4241
+
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
4242
+
"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
4243
+
"license": "MIT",
4244
+
"engines": {
4245
+
"node": ">=0.10.0"
4246
+
}
4247
+
},
4248
+
"node_modules/readable-stream": {
4249
+
"version": "4.5.2",
4250
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz",
4251
+
"integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
4252
+
"license": "MIT",
4253
+
"dependencies": {
4254
+
"abort-controller": "^3.0.0",
4255
+
"buffer": "^6.0.3",
4256
+
"events": "^3.3.0",
4257
+
"process": "^0.11.10",
4258
+
"string_decoder": "^1.3.0"
4259
+
},
4260
+
"engines": {
4261
+
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4262
+
}
4263
+
},
4264
+
"node_modules/readdirp": {
4265
+
"version": "4.0.2",
4266
+
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
4267
+
"integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
4268
+
"dev": true,
4269
+
"license": "MIT",
4270
+
"engines": {
4271
+
"node": ">= 14.16.0"
4272
+
},
4273
+
"funding": {
4274
+
"type": "individual",
4275
+
"url": "https://paulmillr.com/funding/"
4276
+
}
4277
+
},
4278
+
"node_modules/real-require": {
4279
+
"version": "0.2.0",
4280
+
"resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz",
4281
+
"integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==",
4282
+
"license": "MIT",
4283
+
"engines": {
4284
+
"node": ">= 12.13.0"
4285
+
}
4286
+
},
4287
+
"node_modules/resolve": {
4288
+
"version": "1.22.8",
4289
+
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
4290
+
"integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
4291
+
"license": "MIT",
4292
+
"dependencies": {
4293
+
"is-core-module": "^2.13.0",
4294
+
"path-parse": "^1.0.7",
4295
+
"supports-preserve-symlinks-flag": "^1.0.0"
4296
+
},
4297
+
"bin": {
4298
+
"resolve": "bin/resolve"
4299
+
},
4300
+
"funding": {
4301
+
"url": "https://github.com/sponsors/ljharb"
4302
+
}
4303
+
},
4304
+
"node_modules/resolve-from": {
4305
+
"version": "5.0.0",
4306
+
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
4307
+
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
4308
+
"dev": true,
4309
+
"license": "MIT",
4310
+
"engines": {
4311
+
"node": ">=8"
4312
+
}
4313
+
},
4314
+
"node_modules/resolve-pkg-maps": {
4315
+
"version": "1.0.0",
4316
+
"resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
4317
+
"integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
4318
+
"dev": true,
4319
+
"license": "MIT",
4320
+
"funding": {
4321
+
"url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
4322
+
}
4323
+
},
4324
+
"node_modules/reusify": {
4325
+
"version": "1.0.4",
4326
+
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
4327
+
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
4328
+
"dev": true,
4329
+
"license": "MIT",
4330
+
"engines": {
4331
+
"iojs": ">=1.0.0",
4332
+
"node": ">=0.10.0"
4333
+
}
4334
+
},
4335
+
"node_modules/rimraf": {
4336
+
"version": "5.0.10",
4337
+
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz",
4338
+
"integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==",
4339
+
"dev": true,
4340
+
"license": "ISC",
4341
+
"dependencies": {
4342
+
"glob": "^10.3.7"
4343
+
},
4344
+
"bin": {
4345
+
"rimraf": "dist/esm/bin.mjs"
4346
+
},
4347
+
"funding": {
4348
+
"url": "https://github.com/sponsors/isaacs"
4349
+
}
4350
+
},
4351
+
"node_modules/rollup": {
4352
+
"version": "4.28.0",
4353
+
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz",
4354
+
"integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==",
4355
+
"dev": true,
4356
+
"license": "MIT",
4357
+
"dependencies": {
4358
+
"@types/estree": "1.0.6"
4359
+
},
4360
+
"bin": {
4361
+
"rollup": "dist/bin/rollup"
4362
+
},
4363
+
"engines": {
4364
+
"node": ">=18.0.0",
4365
+
"npm": ">=8.0.0"
4366
+
},
4367
+
"optionalDependencies": {
4368
+
"@rollup/rollup-android-arm-eabi": "4.28.0",
4369
+
"@rollup/rollup-android-arm64": "4.28.0",
4370
+
"@rollup/rollup-darwin-arm64": "4.28.0",
4371
+
"@rollup/rollup-darwin-x64": "4.28.0",
4372
+
"@rollup/rollup-freebsd-arm64": "4.28.0",
4373
+
"@rollup/rollup-freebsd-x64": "4.28.0",
4374
+
"@rollup/rollup-linux-arm-gnueabihf": "4.28.0",
4375
+
"@rollup/rollup-linux-arm-musleabihf": "4.28.0",
4376
+
"@rollup/rollup-linux-arm64-gnu": "4.28.0",
4377
+
"@rollup/rollup-linux-arm64-musl": "4.28.0",
4378
+
"@rollup/rollup-linux-powerpc64le-gnu": "4.28.0",
4379
+
"@rollup/rollup-linux-riscv64-gnu": "4.28.0",
4380
+
"@rollup/rollup-linux-s390x-gnu": "4.28.0",
4381
+
"@rollup/rollup-linux-x64-gnu": "4.28.0",
4382
+
"@rollup/rollup-linux-x64-musl": "4.28.0",
4383
+
"@rollup/rollup-win32-arm64-msvc": "4.28.0",
4384
+
"@rollup/rollup-win32-ia32-msvc": "4.28.0",
4385
+
"@rollup/rollup-win32-x64-msvc": "4.28.0",
4386
+
"fsevents": "~2.3.2"
4387
+
}
4388
+
},
4389
+
"node_modules/run-parallel": {
4390
+
"version": "1.2.0",
4391
+
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
4392
+
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
4393
+
"dev": true,
4394
+
"funding": [
4395
+
{
4396
+
"type": "github",
4397
+
"url": "https://github.com/sponsors/feross"
4398
+
},
4399
+
{
4400
+
"type": "patreon",
4401
+
"url": "https://www.patreon.com/feross"
4402
+
},
4403
+
{
4404
+
"type": "consulting",
4405
+
"url": "https://feross.org/support"
4406
+
}
4407
+
],
4408
+
"license": "MIT",
4409
+
"dependencies": {
4410
+
"queue-microtask": "^1.2.2"
4411
+
}
4412
+
},
4413
+
"node_modules/safe-buffer": {
4414
+
"version": "5.2.1",
4415
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
4416
+
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
4417
+
"funding": [
4418
+
{
4419
+
"type": "github",
4420
+
"url": "https://github.com/sponsors/feross"
4421
+
},
4422
+
{
4423
+
"type": "patreon",
4424
+
"url": "https://www.patreon.com/feross"
4425
+
},
4426
+
{
4427
+
"type": "consulting",
4428
+
"url": "https://feross.org/support"
4429
+
}
4430
+
],
4431
+
"license": "MIT"
4432
+
},
4433
+
"node_modules/safe-stable-stringify": {
4434
+
"version": "2.5.0",
4435
+
"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
4436
+
"integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
4437
+
"license": "MIT",
4438
+
"engines": {
4439
+
"node": ">=10"
4440
+
}
4441
+
},
4442
+
"node_modules/safer-buffer": {
4443
+
"version": "2.1.2",
4444
+
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
4445
+
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
4446
+
"license": "MIT"
4447
+
},
4448
+
"node_modules/secure-json-parse": {
4449
+
"version": "2.7.0",
4450
+
"resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
4451
+
"integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==",
4452
+
"dev": true,
4453
+
"license": "BSD-3-Clause"
4454
+
},
4455
+
"node_modules/semver": {
4456
+
"version": "7.6.3",
4457
+
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
4458
+
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
4459
+
"license": "ISC",
4460
+
"bin": {
4461
+
"semver": "bin/semver.js"
4462
+
},
4463
+
"engines": {
4464
+
"node": ">=10"
4465
+
}
4466
+
},
4467
+
"node_modules/send": {
4468
+
"version": "0.19.0",
4469
+
"resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
4470
+
"integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
4471
+
"license": "MIT",
4472
+
"dependencies": {
4473
+
"debug": "2.6.9",
4474
+
"depd": "2.0.0",
4475
+
"destroy": "1.2.0",
4476
+
"encodeurl": "~1.0.2",
4477
+
"escape-html": "~1.0.3",
4478
+
"etag": "~1.8.1",
4479
+
"fresh": "0.5.2",
4480
+
"http-errors": "2.0.0",
4481
+
"mime": "1.6.0",
4482
+
"ms": "2.1.3",
4483
+
"on-finished": "2.4.1",
4484
+
"range-parser": "~1.2.1",
4485
+
"statuses": "2.0.1"
4486
+
},
4487
+
"engines": {
4488
+
"node": ">= 0.8.0"
4489
+
}
4490
+
},
4491
+
"node_modules/send/node_modules/encodeurl": {
4492
+
"version": "1.0.2",
4493
+
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
4494
+
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
4495
+
"license": "MIT",
4496
+
"engines": {
4497
+
"node": ">= 0.8"
4498
+
}
4499
+
},
4500
+
"node_modules/send/node_modules/ms": {
4501
+
"version": "2.1.3",
4502
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
4503
+
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
4504
+
"license": "MIT"
4505
+
},
4506
+
"node_modules/serve-static": {
4507
+
"version": "1.16.2",
4508
+
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
4509
+
"integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
4510
+
"license": "MIT",
4511
+
"dependencies": {
4512
+
"encodeurl": "~2.0.0",
4513
+
"escape-html": "~1.0.3",
4514
+
"parseurl": "~1.3.3",
4515
+
"send": "0.19.0"
4516
+
},
4517
+
"engines": {
4518
+
"node": ">= 0.8.0"
4519
+
}
4520
+
},
4521
+
"node_modules/set-function-length": {
4522
+
"version": "1.2.2",
4523
+
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
4524
+
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
4525
+
"license": "MIT",
4526
+
"dependencies": {
4527
+
"define-data-property": "^1.1.4",
4528
+
"es-errors": "^1.3.0",
4529
+
"function-bind": "^1.1.2",
4530
+
"get-intrinsic": "^1.2.4",
4531
+
"gopd": "^1.0.1",
4532
+
"has-property-descriptors": "^1.0.2"
4533
+
},
4534
+
"engines": {
4535
+
"node": ">= 0.4"
4536
+
}
4537
+
},
4538
+
"node_modules/setprototypeof": {
4539
+
"version": "1.2.0",
4540
+
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
4541
+
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
4542
+
"license": "ISC"
4543
+
},
4544
+
"node_modules/shebang-command": {
4545
+
"version": "2.0.0",
4546
+
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
4547
+
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
4548
+
"dev": true,
4549
+
"license": "MIT",
4550
+
"dependencies": {
4551
+
"shebang-regex": "^3.0.0"
4552
+
},
4553
+
"engines": {
4554
+
"node": ">=8"
4555
+
}
4556
+
},
4557
+
"node_modules/shebang-regex": {
4558
+
"version": "3.0.0",
4559
+
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
4560
+
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
4561
+
"dev": true,
4562
+
"license": "MIT",
4563
+
"engines": {
4564
+
"node": ">=8"
4565
+
}
4566
+
},
4567
+
"node_modules/side-channel": {
4568
+
"version": "1.0.6",
4569
+
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
4570
+
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
4571
+
"license": "MIT",
4572
+
"dependencies": {
4573
+
"call-bind": "^1.0.7",
4574
+
"es-errors": "^1.3.0",
4575
+
"get-intrinsic": "^1.2.4",
4576
+
"object-inspect": "^1.13.1"
4577
+
},
4578
+
"engines": {
4579
+
"node": ">= 0.4"
4580
+
},
4581
+
"funding": {
4582
+
"url": "https://github.com/sponsors/ljharb"
4583
+
}
4584
+
},
4585
+
"node_modules/signal-exit": {
4586
+
"version": "4.1.0",
4587
+
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
4588
+
"integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
4589
+
"dev": true,
4590
+
"license": "ISC",
4591
+
"engines": {
4592
+
"node": ">=14"
4593
+
},
4594
+
"funding": {
4595
+
"url": "https://github.com/sponsors/isaacs"
4596
+
}
4597
+
},
4598
+
"node_modules/simple-concat": {
4599
+
"version": "1.0.1",
4600
+
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
4601
+
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
4602
+
"funding": [
4603
+
{
4604
+
"type": "github",
4605
+
"url": "https://github.com/sponsors/feross"
4606
+
},
4607
+
{
4608
+
"type": "patreon",
4609
+
"url": "https://www.patreon.com/feross"
4610
+
},
4611
+
{
4612
+
"type": "consulting",
4613
+
"url": "https://feross.org/support"
4614
+
}
4615
+
],
4616
+
"license": "MIT"
4617
+
},
4618
+
"node_modules/simple-get": {
4619
+
"version": "4.0.1",
4620
+
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
4621
+
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
4622
+
"funding": [
4623
+
{
4624
+
"type": "github",
4625
+
"url": "https://github.com/sponsors/feross"
4626
+
},
4627
+
{
4628
+
"type": "patreon",
4629
+
"url": "https://www.patreon.com/feross"
4630
+
},
4631
+
{
4632
+
"type": "consulting",
4633
+
"url": "https://feross.org/support"
4634
+
}
4635
+
],
4636
+
"license": "MIT",
4637
+
"dependencies": {
4638
+
"decompress-response": "^6.0.0",
4639
+
"once": "^1.3.1",
4640
+
"simple-concat": "^1.0.0"
4641
+
}
4642
+
},
4643
+
"node_modules/sonic-boom": {
4644
+
"version": "4.2.0",
4645
+
"resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz",
4646
+
"integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==",
4647
+
"license": "MIT",
4648
+
"dependencies": {
4649
+
"atomic-sleep": "^1.0.0"
4650
+
}
4651
+
},
4652
+
"node_modules/source-map": {
4653
+
"version": "0.8.0-beta.0",
4654
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
4655
+
"integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
4656
+
"dev": true,
4657
+
"license": "BSD-3-Clause",
4658
+
"dependencies": {
4659
+
"whatwg-url": "^7.0.0"
4660
+
},
4661
+
"engines": {
4662
+
"node": ">= 8"
4663
+
}
4664
+
},
4665
+
"node_modules/split2": {
4666
+
"version": "4.2.0",
4667
+
"resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
4668
+
"integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
4669
+
"license": "ISC",
4670
+
"engines": {
4671
+
"node": ">= 10.x"
4672
+
}
4673
+
},
4674
+
"node_modules/statuses": {
4675
+
"version": "2.0.1",
4676
+
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
4677
+
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
4678
+
"license": "MIT",
4679
+
"engines": {
4680
+
"node": ">= 0.8"
4681
+
}
4682
+
},
4683
+
"node_modules/string_decoder": {
4684
+
"version": "1.3.0",
4685
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
4686
+
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
4687
+
"license": "MIT",
4688
+
"dependencies": {
4689
+
"safe-buffer": "~5.2.0"
4690
+
}
4691
+
},
4692
+
"node_modules/string-width": {
4693
+
"version": "5.1.2",
4694
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
4695
+
"integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
4696
+
"dev": true,
4697
+
"license": "MIT",
4698
+
"dependencies": {
4699
+
"eastasianwidth": "^0.2.0",
4700
+
"emoji-regex": "^9.2.2",
4701
+
"strip-ansi": "^7.0.1"
4702
+
},
4703
+
"engines": {
4704
+
"node": ">=12"
4705
+
},
4706
+
"funding": {
4707
+
"url": "https://github.com/sponsors/sindresorhus"
4708
+
}
4709
+
},
4710
+
"node_modules/string-width-cjs": {
4711
+
"name": "string-width",
4712
+
"version": "4.2.3",
4713
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
4714
+
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
4715
+
"dev": true,
4716
+
"license": "MIT",
4717
+
"dependencies": {
4718
+
"emoji-regex": "^8.0.0",
4719
+
"is-fullwidth-code-point": "^3.0.0",
4720
+
"strip-ansi": "^6.0.1"
4721
+
},
4722
+
"engines": {
4723
+
"node": ">=8"
4724
+
}
4725
+
},
4726
+
"node_modules/string-width-cjs/node_modules/ansi-regex": {
4727
+
"version": "5.0.1",
4728
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
4729
+
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
4730
+
"dev": true,
4731
+
"license": "MIT",
4732
+
"engines": {
4733
+
"node": ">=8"
4734
+
}
4735
+
},
4736
+
"node_modules/string-width-cjs/node_modules/emoji-regex": {
4737
+
"version": "8.0.0",
4738
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
4739
+
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
4740
+
"dev": true,
4741
+
"license": "MIT"
4742
+
},
4743
+
"node_modules/string-width-cjs/node_modules/strip-ansi": {
4744
+
"version": "6.0.1",
4745
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
4746
+
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
4747
+
"dev": true,
4748
+
"license": "MIT",
4749
+
"dependencies": {
4750
+
"ansi-regex": "^5.0.1"
4751
+
},
4752
+
"engines": {
4753
+
"node": ">=8"
4754
+
}
4755
+
},
4756
+
"node_modules/strip-ansi": {
4757
+
"version": "7.1.0",
4758
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
4759
+
"integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
4760
+
"dev": true,
4761
+
"license": "MIT",
4762
+
"dependencies": {
4763
+
"ansi-regex": "^6.0.1"
4764
+
},
4765
+
"engines": {
4766
+
"node": ">=12"
4767
+
},
4768
+
"funding": {
4769
+
"url": "https://github.com/chalk/strip-ansi?sponsor=1"
4770
+
}
4771
+
},
4772
+
"node_modules/strip-ansi-cjs": {
4773
+
"name": "strip-ansi",
4774
+
"version": "6.0.1",
4775
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
4776
+
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
4777
+
"dev": true,
4778
+
"license": "MIT",
4779
+
"dependencies": {
4780
+
"ansi-regex": "^5.0.1"
4781
+
},
4782
+
"engines": {
4783
+
"node": ">=8"
4784
+
}
4785
+
},
4786
+
"node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
4787
+
"version": "5.0.1",
4788
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
4789
+
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
4790
+
"dev": true,
4791
+
"license": "MIT",
4792
+
"engines": {
4793
+
"node": ">=8"
4794
+
}
4795
+
},
4796
+
"node_modules/strip-json-comments": {
4797
+
"version": "3.1.1",
4798
+
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
4799
+
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
4800
+
"dev": true,
4801
+
"license": "MIT",
4802
+
"engines": {
4803
+
"node": ">=8"
4804
+
},
4805
+
"funding": {
4806
+
"url": "https://github.com/sponsors/sindresorhus"
4807
+
}
4808
+
},
4809
+
"node_modules/sucrase": {
4810
+
"version": "3.35.0",
4811
+
"resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
4812
+
"integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
4813
+
"dev": true,
4814
+
"license": "MIT",
4815
+
"dependencies": {
4816
+
"@jridgewell/gen-mapping": "^0.3.2",
4817
+
"commander": "^4.0.0",
4818
+
"glob": "^10.3.10",
4819
+
"lines-and-columns": "^1.1.6",
4820
+
"mz": "^2.7.0",
4821
+
"pirates": "^4.0.1",
4822
+
"ts-interface-checker": "^0.1.9"
4823
+
},
4824
+
"bin": {
4825
+
"sucrase": "bin/sucrase",
4826
+
"sucrase-node": "bin/sucrase-node"
4827
+
},
4828
+
"engines": {
4829
+
"node": ">=16 || 14 >=14.17"
4830
+
}
4831
+
},
4832
+
"node_modules/sucrase/node_modules/commander": {
4833
+
"version": "4.1.1",
4834
+
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
4835
+
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
4836
+
"dev": true,
4837
+
"license": "MIT",
4838
+
"engines": {
4839
+
"node": ">= 6"
4840
+
}
4841
+
},
4842
+
"node_modules/supports-color": {
4843
+
"version": "7.2.0",
4844
+
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
4845
+
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
4846
+
"dev": true,
4847
+
"license": "MIT",
4848
+
"dependencies": {
4849
+
"has-flag": "^4.0.0"
4850
+
},
4851
+
"engines": {
4852
+
"node": ">=8"
4853
+
}
4854
+
},
4855
+
"node_modules/supports-preserve-symlinks-flag": {
4856
+
"version": "1.0.0",
4857
+
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
4858
+
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
4859
+
"license": "MIT",
4860
+
"engines": {
4861
+
"node": ">= 0.4"
4862
+
},
4863
+
"funding": {
4864
+
"url": "https://github.com/sponsors/ljharb"
4865
+
}
4866
+
},
4867
+
"node_modules/tar-fs": {
4868
+
"version": "2.1.1",
4869
+
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
4870
+
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
4871
+
"license": "MIT",
4872
+
"dependencies": {
4873
+
"chownr": "^1.1.1",
4874
+
"mkdirp-classic": "^0.5.2",
4875
+
"pump": "^3.0.0",
4876
+
"tar-stream": "^2.1.4"
4877
+
}
4878
+
},
4879
+
"node_modules/tar-stream": {
4880
+
"version": "2.2.0",
4881
+
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
4882
+
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
4883
+
"license": "MIT",
4884
+
"dependencies": {
4885
+
"bl": "^4.0.3",
4886
+
"end-of-stream": "^1.4.1",
4887
+
"fs-constants": "^1.0.0",
4888
+
"inherits": "^2.0.3",
4889
+
"readable-stream": "^3.1.1"
4890
+
},
4891
+
"engines": {
4892
+
"node": ">=6"
4893
+
}
4894
+
},
4895
+
"node_modules/tar-stream/node_modules/readable-stream": {
4896
+
"version": "3.6.2",
4897
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
4898
+
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
4899
+
"license": "MIT",
4900
+
"dependencies": {
4901
+
"inherits": "^2.0.3",
4902
+
"string_decoder": "^1.1.1",
4903
+
"util-deprecate": "^1.0.1"
4904
+
},
4905
+
"engines": {
4906
+
"node": ">= 6"
4907
+
}
4908
+
},
4909
+
"node_modules/thenify": {
4910
+
"version": "3.3.1",
4911
+
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
4912
+
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
4913
+
"dev": true,
4914
+
"license": "MIT",
4915
+
"dependencies": {
4916
+
"any-promise": "^1.0.0"
4917
+
}
4918
+
},
4919
+
"node_modules/thenify-all": {
4920
+
"version": "1.6.0",
4921
+
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
4922
+
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
4923
+
"dev": true,
4924
+
"license": "MIT",
4925
+
"dependencies": {
4926
+
"thenify": ">= 3.1.0 < 4"
4927
+
},
4928
+
"engines": {
4929
+
"node": ">=0.8"
4930
+
}
4931
+
},
4932
+
"node_modules/thread-stream": {
4933
+
"version": "3.1.0",
4934
+
"resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz",
4935
+
"integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==",
4936
+
"license": "MIT",
4937
+
"dependencies": {
4938
+
"real-require": "^0.2.0"
4939
+
}
4940
+
},
4941
+
"node_modules/tinyexec": {
4942
+
"version": "0.3.1",
4943
+
"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz",
4944
+
"integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==",
4945
+
"dev": true,
4946
+
"license": "MIT"
4947
+
},
4948
+
"node_modules/tinyglobby": {
4949
+
"version": "0.2.10",
4950
+
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz",
4951
+
"integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==",
4952
+
"dev": true,
4953
+
"license": "MIT",
4954
+
"dependencies": {
4955
+
"fdir": "^6.4.2",
4956
+
"picomatch": "^4.0.2"
4957
+
},
4958
+
"engines": {
4959
+
"node": ">=12.0.0"
4960
+
}
4961
+
},
4962
+
"node_modules/tinyglobby/node_modules/fdir": {
4963
+
"version": "6.4.2",
4964
+
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz",
4965
+
"integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==",
4966
+
"dev": true,
4967
+
"license": "MIT",
4968
+
"peerDependencies": {
4969
+
"picomatch": "^3 || ^4"
4970
+
},
4971
+
"peerDependenciesMeta": {
4972
+
"picomatch": {
4973
+
"optional": true
4974
+
}
4975
+
}
4976
+
},
4977
+
"node_modules/tinyglobby/node_modules/picomatch": {
4978
+
"version": "4.0.2",
4979
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
4980
+
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
4981
+
"dev": true,
4982
+
"license": "MIT",
4983
+
"engines": {
4984
+
"node": ">=12"
4985
+
},
4986
+
"funding": {
4987
+
"url": "https://github.com/sponsors/jonschlinkert"
4988
+
}
4989
+
},
4990
+
"node_modules/tlds": {
4991
+
"version": "1.255.0",
4992
+
"resolved": "https://registry.npmjs.org/tlds/-/tlds-1.255.0.tgz",
4993
+
"integrity": "sha512-tcwMRIioTcF/FcxLev8MJWxCp+GUALRhFEqbDoZrnowmKSGqPrl5pqS+Sut2m8BgJ6S4FExCSSpGffZ0Tks6Aw==",
4994
+
"license": "MIT",
4995
+
"bin": {
4996
+
"tlds": "bin.js"
4997
+
}
4998
+
},
4999
+
"node_modules/to-regex-range": {
5000
+
"version": "5.0.1",
5001
+
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
5002
+
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
5003
+
"dev": true,
5004
+
"license": "MIT",
5005
+
"dependencies": {
5006
+
"is-number": "^7.0.0"
5007
+
},
5008
+
"engines": {
5009
+
"node": ">=8.0"
5010
+
}
5011
+
},
5012
+
"node_modules/toidentifier": {
5013
+
"version": "1.0.1",
5014
+
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
5015
+
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
5016
+
"license": "MIT",
5017
+
"engines": {
5018
+
"node": ">=0.6"
5019
+
}
5020
+
},
5021
+
"node_modules/token-stream": {
5022
+
"version": "1.0.0",
5023
+
"resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz",
5024
+
"integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==",
5025
+
"license": "MIT"
5026
+
},
5027
+
"node_modules/tr46": {
5028
+
"version": "1.0.1",
5029
+
"resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
5030
+
"integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
5031
+
"dev": true,
5032
+
"license": "MIT",
5033
+
"dependencies": {
5034
+
"punycode": "^2.1.0"
5035
+
}
5036
+
},
5037
+
"node_modules/tree-kill": {
5038
+
"version": "1.2.2",
5039
+
"resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
5040
+
"integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
5041
+
"dev": true,
5042
+
"license": "MIT",
5043
+
"bin": {
5044
+
"tree-kill": "cli.js"
5045
+
}
5046
+
},
5047
+
"node_modules/ts-interface-checker": {
5048
+
"version": "0.1.13",
5049
+
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
5050
+
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
5051
+
"dev": true,
5052
+
"license": "Apache-2.0"
5053
+
},
5054
+
"node_modules/ts-morph": {
5055
+
"version": "16.0.0",
5056
+
"resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-16.0.0.tgz",
5057
+
"integrity": "sha512-jGNF0GVpFj0orFw55LTsQxVYEUOCWBAbR5Ls7fTYE5pQsbW18ssTb/6UXx/GYAEjS+DQTp8VoTw0vqYMiaaQuw==",
5058
+
"dev": true,
5059
+
"license": "MIT",
5060
+
"dependencies": {
5061
+
"@ts-morph/common": "~0.17.0",
5062
+
"code-block-writer": "^11.0.3"
5063
+
}
5064
+
},
5065
+
"node_modules/ts-node": {
5066
+
"version": "10.9.2",
5067
+
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
5068
+
"integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
5069
+
"dev": true,
5070
+
"license": "MIT",
5071
+
"dependencies": {
5072
+
"@cspotcode/source-map-support": "^0.8.0",
5073
+
"@tsconfig/node10": "^1.0.7",
5074
+
"@tsconfig/node12": "^1.0.7",
5075
+
"@tsconfig/node14": "^1.0.0",
5076
+
"@tsconfig/node16": "^1.0.2",
5077
+
"acorn": "^8.4.1",
5078
+
"acorn-walk": "^8.1.1",
5079
+
"arg": "^4.1.0",
5080
+
"create-require": "^1.1.0",
5081
+
"diff": "^4.0.1",
5082
+
"make-error": "^1.1.1",
5083
+
"v8-compile-cache-lib": "^3.0.1",
5084
+
"yn": "3.1.1"
5085
+
},
5086
+
"bin": {
5087
+
"ts-node": "dist/bin.js",
5088
+
"ts-node-cwd": "dist/bin-cwd.js",
5089
+
"ts-node-esm": "dist/bin-esm.js",
5090
+
"ts-node-script": "dist/bin-script.js",
5091
+
"ts-node-transpile-only": "dist/bin-transpile.js",
5092
+
"ts-script": "dist/bin-script-deprecated.js"
5093
+
},
5094
+
"peerDependencies": {
5095
+
"@swc/core": ">=1.2.50",
5096
+
"@swc/wasm": ">=1.2.50",
5097
+
"@types/node": "*",
5098
+
"typescript": ">=2.7"
5099
+
},
5100
+
"peerDependenciesMeta": {
5101
+
"@swc/core": {
5102
+
"optional": true
5103
+
},
5104
+
"@swc/wasm": {
5105
+
"optional": true
5106
+
}
5107
+
}
5108
+
},
5109
+
"node_modules/tslib": {
5110
+
"version": "2.6.2",
5111
+
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
5112
+
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
5113
+
"license": "0BSD"
5114
+
},
5115
+
"node_modules/tsup": {
5116
+
"version": "8.3.5",
5117
+
"resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.5.tgz",
5118
+
"integrity": "sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==",
5119
+
"dev": true,
5120
+
"license": "MIT",
5121
+
"dependencies": {
5122
+
"bundle-require": "^5.0.0",
5123
+
"cac": "^6.7.14",
5124
+
"chokidar": "^4.0.1",
5125
+
"consola": "^3.2.3",
5126
+
"debug": "^4.3.7",
5127
+
"esbuild": "^0.24.0",
5128
+
"joycon": "^3.1.1",
5129
+
"picocolors": "^1.1.1",
5130
+
"postcss-load-config": "^6.0.1",
5131
+
"resolve-from": "^5.0.0",
5132
+
"rollup": "^4.24.0",
5133
+
"source-map": "0.8.0-beta.0",
5134
+
"sucrase": "^3.35.0",
5135
+
"tinyexec": "^0.3.1",
5136
+
"tinyglobby": "^0.2.9",
5137
+
"tree-kill": "^1.2.2"
5138
+
},
5139
+
"bin": {
5140
+
"tsup": "dist/cli-default.js",
5141
+
"tsup-node": "dist/cli-node.js"
5142
+
},
5143
+
"engines": {
5144
+
"node": ">=18"
5145
+
},
5146
+
"peerDependencies": {
5147
+
"@microsoft/api-extractor": "^7.36.0",
5148
+
"@swc/core": "^1",
5149
+
"postcss": "^8.4.12",
5150
+
"typescript": ">=4.5.0"
5151
+
},
5152
+
"peerDependenciesMeta": {
5153
+
"@microsoft/api-extractor": {
5154
+
"optional": true
5155
+
},
5156
+
"@swc/core": {
5157
+
"optional": true
5158
+
},
5159
+
"postcss": {
5160
+
"optional": true
5161
+
},
5162
+
"typescript": {
5163
+
"optional": true
5164
+
}
5165
+
}
5166
+
},
5167
+
"node_modules/tsup/node_modules/debug": {
5168
+
"version": "4.3.7",
5169
+
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
5170
+
"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
5171
+
"dev": true,
5172
+
"license": "MIT",
5173
+
"dependencies": {
5174
+
"ms": "^2.1.3"
5175
+
},
5176
+
"engines": {
5177
+
"node": ">=6.0"
5178
+
},
5179
+
"peerDependenciesMeta": {
5180
+
"supports-color": {
5181
+
"optional": true
5182
+
}
5183
+
}
5184
+
},
5185
+
"node_modules/tsup/node_modules/ms": {
5186
+
"version": "2.1.3",
5187
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
5188
+
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
5189
+
"dev": true,
5190
+
"license": "MIT"
5191
+
},
5192
+
"node_modules/tsx": {
5193
+
"version": "4.19.2",
5194
+
"resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz",
5195
+
"integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==",
5196
+
"dev": true,
5197
+
"license": "MIT",
5198
+
"dependencies": {
5199
+
"esbuild": "~0.23.0",
5200
+
"get-tsconfig": "^4.7.5"
5201
+
},
5202
+
"bin": {
5203
+
"tsx": "dist/cli.mjs"
5204
+
},
5205
+
"engines": {
5206
+
"node": ">=18.0.0"
5207
+
},
5208
+
"optionalDependencies": {
5209
+
"fsevents": "~2.3.3"
5210
+
}
5211
+
},
5212
+
"node_modules/tsx/node_modules/@esbuild/aix-ppc64": {
5213
+
"version": "0.23.1",
5214
+
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz",
5215
+
"integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==",
5216
+
"cpu": [
5217
+
"ppc64"
5218
+
],
5219
+
"dev": true,
5220
+
"license": "MIT",
5221
+
"optional": true,
5222
+
"os": [
5223
+
"aix"
5224
+
],
5225
+
"engines": {
5226
+
"node": ">=18"
5227
+
}
5228
+
},
5229
+
"node_modules/tsx/node_modules/@esbuild/android-arm": {
5230
+
"version": "0.23.1",
5231
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz",
5232
+
"integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==",
5233
+
"cpu": [
5234
+
"arm"
5235
+
],
5236
+
"dev": true,
5237
+
"license": "MIT",
5238
+
"optional": true,
5239
+
"os": [
5240
+
"android"
5241
+
],
5242
+
"engines": {
5243
+
"node": ">=18"
5244
+
}
5245
+
},
5246
+
"node_modules/tsx/node_modules/@esbuild/android-arm64": {
5247
+
"version": "0.23.1",
5248
+
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz",
5249
+
"integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==",
5250
+
"cpu": [
5251
+
"arm64"
5252
+
],
5253
+
"dev": true,
5254
+
"license": "MIT",
5255
+
"optional": true,
5256
+
"os": [
5257
+
"android"
5258
+
],
5259
+
"engines": {
5260
+
"node": ">=18"
5261
+
}
5262
+
},
5263
+
"node_modules/tsx/node_modules/@esbuild/android-x64": {
5264
+
"version": "0.23.1",
5265
+
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz",
5266
+
"integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==",
5267
+
"cpu": [
5268
+
"x64"
5269
+
],
5270
+
"dev": true,
5271
+
"license": "MIT",
5272
+
"optional": true,
5273
+
"os": [
5274
+
"android"
5275
+
],
5276
+
"engines": {
5277
+
"node": ">=18"
5278
+
}
5279
+
},
5280
+
"node_modules/tsx/node_modules/@esbuild/darwin-arm64": {
5281
+
"version": "0.23.1",
5282
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz",
5283
+
"integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==",
5284
+
"cpu": [
5285
+
"arm64"
5286
+
],
5287
+
"dev": true,
5288
+
"license": "MIT",
5289
+
"optional": true,
5290
+
"os": [
5291
+
"darwin"
5292
+
],
5293
+
"engines": {
5294
+
"node": ">=18"
5295
+
}
5296
+
},
5297
+
"node_modules/tsx/node_modules/@esbuild/darwin-x64": {
5298
+
"version": "0.23.1",
5299
+
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz",
5300
+
"integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==",
5301
+
"cpu": [
5302
+
"x64"
5303
+
],
5304
+
"dev": true,
5305
+
"license": "MIT",
5306
+
"optional": true,
5307
+
"os": [
5308
+
"darwin"
5309
+
],
5310
+
"engines": {
5311
+
"node": ">=18"
5312
+
}
5313
+
},
5314
+
"node_modules/tsx/node_modules/@esbuild/freebsd-arm64": {
5315
+
"version": "0.23.1",
5316
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz",
5317
+
"integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==",
5318
+
"cpu": [
5319
+
"arm64"
5320
+
],
5321
+
"dev": true,
5322
+
"license": "MIT",
5323
+
"optional": true,
5324
+
"os": [
5325
+
"freebsd"
5326
+
],
5327
+
"engines": {
5328
+
"node": ">=18"
5329
+
}
5330
+
},
5331
+
"node_modules/tsx/node_modules/@esbuild/freebsd-x64": {
5332
+
"version": "0.23.1",
5333
+
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz",
5334
+
"integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==",
5335
+
"cpu": [
5336
+
"x64"
5337
+
],
5338
+
"dev": true,
5339
+
"license": "MIT",
5340
+
"optional": true,
5341
+
"os": [
5342
+
"freebsd"
5343
+
],
5344
+
"engines": {
5345
+
"node": ">=18"
5346
+
}
5347
+
},
5348
+
"node_modules/tsx/node_modules/@esbuild/linux-arm": {
5349
+
"version": "0.23.1",
5350
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz",
5351
+
"integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==",
5352
+
"cpu": [
5353
+
"arm"
5354
+
],
5355
+
"dev": true,
5356
+
"license": "MIT",
5357
+
"optional": true,
5358
+
"os": [
5359
+
"linux"
5360
+
],
5361
+
"engines": {
5362
+
"node": ">=18"
5363
+
}
5364
+
},
5365
+
"node_modules/tsx/node_modules/@esbuild/linux-arm64": {
5366
+
"version": "0.23.1",
5367
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz",
5368
+
"integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==",
5369
+
"cpu": [
5370
+
"arm64"
5371
+
],
5372
+
"dev": true,
5373
+
"license": "MIT",
5374
+
"optional": true,
5375
+
"os": [
5376
+
"linux"
5377
+
],
5378
+
"engines": {
5379
+
"node": ">=18"
5380
+
}
5381
+
},
5382
+
"node_modules/tsx/node_modules/@esbuild/linux-ia32": {
5383
+
"version": "0.23.1",
5384
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz",
5385
+
"integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==",
5386
+
"cpu": [
5387
+
"ia32"
5388
+
],
5389
+
"dev": true,
5390
+
"license": "MIT",
5391
+
"optional": true,
5392
+
"os": [
5393
+
"linux"
5394
+
],
5395
+
"engines": {
5396
+
"node": ">=18"
5397
+
}
5398
+
},
5399
+
"node_modules/tsx/node_modules/@esbuild/linux-loong64": {
5400
+
"version": "0.23.1",
5401
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz",
5402
+
"integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==",
5403
+
"cpu": [
5404
+
"loong64"
5405
+
],
5406
+
"dev": true,
5407
+
"license": "MIT",
5408
+
"optional": true,
5409
+
"os": [
5410
+
"linux"
5411
+
],
5412
+
"engines": {
5413
+
"node": ">=18"
5414
+
}
5415
+
},
5416
+
"node_modules/tsx/node_modules/@esbuild/linux-mips64el": {
5417
+
"version": "0.23.1",
5418
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz",
5419
+
"integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==",
5420
+
"cpu": [
5421
+
"mips64el"
5422
+
],
5423
+
"dev": true,
5424
+
"license": "MIT",
5425
+
"optional": true,
5426
+
"os": [
5427
+
"linux"
5428
+
],
5429
+
"engines": {
5430
+
"node": ">=18"
5431
+
}
5432
+
},
5433
+
"node_modules/tsx/node_modules/@esbuild/linux-ppc64": {
5434
+
"version": "0.23.1",
5435
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz",
5436
+
"integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==",
5437
+
"cpu": [
5438
+
"ppc64"
5439
+
],
5440
+
"dev": true,
5441
+
"license": "MIT",
5442
+
"optional": true,
5443
+
"os": [
5444
+
"linux"
5445
+
],
5446
+
"engines": {
5447
+
"node": ">=18"
5448
+
}
5449
+
},
5450
+
"node_modules/tsx/node_modules/@esbuild/linux-riscv64": {
5451
+
"version": "0.23.1",
5452
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz",
5453
+
"integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==",
5454
+
"cpu": [
5455
+
"riscv64"
5456
+
],
5457
+
"dev": true,
5458
+
"license": "MIT",
5459
+
"optional": true,
5460
+
"os": [
5461
+
"linux"
5462
+
],
5463
+
"engines": {
5464
+
"node": ">=18"
5465
+
}
5466
+
},
5467
+
"node_modules/tsx/node_modules/@esbuild/linux-s390x": {
5468
+
"version": "0.23.1",
5469
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz",
5470
+
"integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==",
5471
+
"cpu": [
5472
+
"s390x"
5473
+
],
5474
+
"dev": true,
5475
+
"license": "MIT",
5476
+
"optional": true,
5477
+
"os": [
5478
+
"linux"
5479
+
],
5480
+
"engines": {
5481
+
"node": ">=18"
5482
+
}
5483
+
},
5484
+
"node_modules/tsx/node_modules/@esbuild/linux-x64": {
5485
+
"version": "0.23.1",
5486
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz",
5487
+
"integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==",
5488
+
"cpu": [
5489
+
"x64"
5490
+
],
5491
+
"dev": true,
5492
+
"license": "MIT",
5493
+
"optional": true,
5494
+
"os": [
5495
+
"linux"
5496
+
],
5497
+
"engines": {
5498
+
"node": ">=18"
5499
+
}
5500
+
},
5501
+
"node_modules/tsx/node_modules/@esbuild/netbsd-x64": {
5502
+
"version": "0.23.1",
5503
+
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz",
5504
+
"integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==",
5505
+
"cpu": [
5506
+
"x64"
5507
+
],
5508
+
"dev": true,
5509
+
"license": "MIT",
5510
+
"optional": true,
5511
+
"os": [
5512
+
"netbsd"
5513
+
],
5514
+
"engines": {
5515
+
"node": ">=18"
5516
+
}
5517
+
},
5518
+
"node_modules/tsx/node_modules/@esbuild/openbsd-arm64": {
5519
+
"version": "0.23.1",
5520
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz",
5521
+
"integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==",
5522
+
"cpu": [
5523
+
"arm64"
5524
+
],
5525
+
"dev": true,
5526
+
"license": "MIT",
5527
+
"optional": true,
5528
+
"os": [
5529
+
"openbsd"
5530
+
],
5531
+
"engines": {
5532
+
"node": ">=18"
5533
+
}
5534
+
},
5535
+
"node_modules/tsx/node_modules/@esbuild/openbsd-x64": {
5536
+
"version": "0.23.1",
5537
+
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz",
5538
+
"integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==",
5539
+
"cpu": [
5540
+
"x64"
5541
+
],
5542
+
"dev": true,
5543
+
"license": "MIT",
5544
+
"optional": true,
5545
+
"os": [
5546
+
"openbsd"
5547
+
],
5548
+
"engines": {
5549
+
"node": ">=18"
5550
+
}
5551
+
},
5552
+
"node_modules/tsx/node_modules/@esbuild/sunos-x64": {
5553
+
"version": "0.23.1",
5554
+
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz",
5555
+
"integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==",
5556
+
"cpu": [
5557
+
"x64"
5558
+
],
5559
+
"dev": true,
5560
+
"license": "MIT",
5561
+
"optional": true,
5562
+
"os": [
5563
+
"sunos"
5564
+
],
5565
+
"engines": {
5566
+
"node": ">=18"
5567
+
}
5568
+
},
5569
+
"node_modules/tsx/node_modules/@esbuild/win32-arm64": {
5570
+
"version": "0.23.1",
5571
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz",
5572
+
"integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==",
5573
+
"cpu": [
5574
+
"arm64"
5575
+
],
5576
+
"dev": true,
5577
+
"license": "MIT",
5578
+
"optional": true,
5579
+
"os": [
5580
+
"win32"
5581
+
],
5582
+
"engines": {
5583
+
"node": ">=18"
5584
+
}
5585
+
},
5586
+
"node_modules/tsx/node_modules/@esbuild/win32-ia32": {
5587
+
"version": "0.23.1",
5588
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz",
5589
+
"integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==",
5590
+
"cpu": [
5591
+
"ia32"
5592
+
],
5593
+
"dev": true,
5594
+
"license": "MIT",
5595
+
"optional": true,
5596
+
"os": [
5597
+
"win32"
5598
+
],
5599
+
"engines": {
5600
+
"node": ">=18"
5601
+
}
5602
+
},
5603
+
"node_modules/tsx/node_modules/@esbuild/win32-x64": {
5604
+
"version": "0.23.1",
5605
+
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz",
5606
+
"integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==",
5607
+
"cpu": [
5608
+
"x64"
5609
+
],
5610
+
"dev": true,
5611
+
"license": "MIT",
5612
+
"optional": true,
5613
+
"os": [
5614
+
"win32"
5615
+
],
5616
+
"engines": {
5617
+
"node": ">=18"
5618
+
}
5619
+
},
5620
+
"node_modules/tsx/node_modules/esbuild": {
5621
+
"version": "0.23.1",
5622
+
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz",
5623
+
"integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==",
5624
+
"dev": true,
5625
+
"hasInstallScript": true,
5626
+
"license": "MIT",
5627
+
"bin": {
5628
+
"esbuild": "bin/esbuild"
5629
+
},
5630
+
"engines": {
5631
+
"node": ">=18"
5632
+
},
5633
+
"optionalDependencies": {
5634
+
"@esbuild/aix-ppc64": "0.23.1",
5635
+
"@esbuild/android-arm": "0.23.1",
5636
+
"@esbuild/android-arm64": "0.23.1",
5637
+
"@esbuild/android-x64": "0.23.1",
5638
+
"@esbuild/darwin-arm64": "0.23.1",
5639
+
"@esbuild/darwin-x64": "0.23.1",
5640
+
"@esbuild/freebsd-arm64": "0.23.1",
5641
+
"@esbuild/freebsd-x64": "0.23.1",
5642
+
"@esbuild/linux-arm": "0.23.1",
5643
+
"@esbuild/linux-arm64": "0.23.1",
5644
+
"@esbuild/linux-ia32": "0.23.1",
5645
+
"@esbuild/linux-loong64": "0.23.1",
5646
+
"@esbuild/linux-mips64el": "0.23.1",
5647
+
"@esbuild/linux-ppc64": "0.23.1",
5648
+
"@esbuild/linux-riscv64": "0.23.1",
5649
+
"@esbuild/linux-s390x": "0.23.1",
5650
+
"@esbuild/linux-x64": "0.23.1",
5651
+
"@esbuild/netbsd-x64": "0.23.1",
5652
+
"@esbuild/openbsd-arm64": "0.23.1",
5653
+
"@esbuild/openbsd-x64": "0.23.1",
5654
+
"@esbuild/sunos-x64": "0.23.1",
5655
+
"@esbuild/win32-arm64": "0.23.1",
5656
+
"@esbuild/win32-ia32": "0.23.1",
5657
+
"@esbuild/win32-x64": "0.23.1"
5658
+
}
5659
+
},
5660
+
"node_modules/tunnel-agent": {
5661
+
"version": "0.6.0",
5662
+
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
5663
+
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
5664
+
"license": "Apache-2.0",
5665
+
"dependencies": {
5666
+
"safe-buffer": "^5.0.1"
5667
+
},
5668
+
"engines": {
5669
+
"node": "*"
5670
+
}
5671
+
},
5672
+
"node_modules/type-is": {
5673
+
"version": "1.6.18",
5674
+
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
5675
+
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
5676
+
"license": "MIT",
5677
+
"dependencies": {
5678
+
"media-typer": "0.3.0",
5679
+
"mime-types": "~2.1.24"
5680
+
},
5681
+
"engines": {
5682
+
"node": ">= 0.6"
5683
+
}
5684
+
},
5685
+
"node_modules/typescript": {
5686
+
"version": "5.7.2",
5687
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz",
5688
+
"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==",
5689
+
"dev": true,
5690
+
"license": "Apache-2.0",
5691
+
"bin": {
5692
+
"tsc": "bin/tsc",
5693
+
"tsserver": "bin/tsserver"
5694
+
},
5695
+
"engines": {
5696
+
"node": ">=14.17"
5697
+
}
5698
+
},
5699
+
"node_modules/udomdiff": {
5700
+
"version": "1.1.2",
5701
+
"resolved": "https://registry.npmjs.org/udomdiff/-/udomdiff-1.1.2.tgz",
5702
+
"integrity": "sha512-v+Z8Jal+GtmKGtJ34GIQlCJAxrDt9kbjpNsNvYoAXFyr4gNfWlD4uJJuoNNu/0UTVaKvQwHaSU095YDl71lKPw==",
5703
+
"license": "ISC"
5704
+
},
5705
+
"node_modules/uhtml": {
5706
+
"version": "4.7.0",
5707
+
"resolved": "https://registry.npmjs.org/uhtml/-/uhtml-4.7.0.tgz",
5708
+
"integrity": "sha512-3j0YIvbu863FB27mwnuLcKK0zPsHVQWwUs/GFanVz/QSwsItT/lOcGKmIdpqlcfWpYBCBoMEdfK0vIN/P2kCmg==",
5709
+
"license": "MIT",
5710
+
"dependencies": {
5711
+
"@webreflection/uparser": "^0.4.0",
5712
+
"custom-function": "^2.0.0",
5713
+
"domconstants": "^1.1.6",
5714
+
"gc-hook": "^0.4.1",
5715
+
"html-escaper": "^3.0.3",
5716
+
"htmlparser2": "^9.1.0",
5717
+
"udomdiff": "^1.1.2"
5718
+
},
5719
+
"optionalDependencies": {
5720
+
"@preact/signals-core": "^1.8.0",
5721
+
"@webreflection/signal": "^2.1.2"
5722
+
}
5723
+
},
5724
+
"node_modules/uint8arrays": {
5725
+
"version": "3.0.0",
5726
+
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz",
5727
+
"integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==",
5728
+
"license": "MIT",
5729
+
"dependencies": {
5730
+
"multiformats": "^9.4.2"
5731
+
}
5732
+
},
5733
+
"node_modules/uncrypto": {
5734
+
"version": "0.1.3",
5735
+
"resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz",
5736
+
"integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==",
5737
+
"license": "MIT"
5738
+
},
5739
+
"node_modules/undici": {
5740
+
"version": "6.21.0",
5741
+
"resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz",
5742
+
"integrity": "sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==",
5743
+
"license": "MIT",
5744
+
"engines": {
5745
+
"node": ">=18.17"
5746
+
}
5747
+
},
5748
+
"node_modules/undici-types": {
5749
+
"version": "6.20.0",
5750
+
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
5751
+
"integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
5752
+
"dev": true,
5753
+
"license": "MIT"
5754
+
},
5755
+
"node_modules/unpipe": {
5756
+
"version": "1.0.0",
5757
+
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
5758
+
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
5759
+
"license": "MIT",
5760
+
"engines": {
5761
+
"node": ">= 0.8"
5762
+
}
5763
+
},
5764
+
"node_modules/util-deprecate": {
5765
+
"version": "1.0.2",
5766
+
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
5767
+
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
5768
+
"license": "MIT"
5769
+
},
5770
+
"node_modules/utils-merge": {
5771
+
"version": "1.0.1",
5772
+
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
5773
+
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
5774
+
"license": "MIT",
5775
+
"engines": {
5776
+
"node": ">= 0.4.0"
5777
+
}
5778
+
},
5779
+
"node_modules/v8-compile-cache-lib": {
5780
+
"version": "3.0.1",
5781
+
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
5782
+
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
5783
+
"dev": true,
5784
+
"license": "MIT"
5785
+
},
5786
+
"node_modules/varint": {
5787
+
"version": "6.0.0",
5788
+
"resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
5789
+
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
5790
+
"license": "MIT"
5791
+
},
5792
+
"node_modules/vary": {
5793
+
"version": "1.1.2",
5794
+
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
5795
+
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
5796
+
"license": "MIT",
5797
+
"engines": {
5798
+
"node": ">= 0.8"
5799
+
}
5800
+
},
5801
+
"node_modules/void-elements": {
5802
+
"version": "3.1.0",
5803
+
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
5804
+
"integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
5805
+
"license": "MIT",
5806
+
"engines": {
5807
+
"node": ">=0.10.0"
5808
+
}
5809
+
},
5810
+
"node_modules/webidl-conversions": {
5811
+
"version": "4.0.2",
5812
+
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
5813
+
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
5814
+
"dev": true,
5815
+
"license": "BSD-2-Clause"
5816
+
},
5817
+
"node_modules/whatwg-url": {
5818
+
"version": "7.1.0",
5819
+
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
5820
+
"integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
5821
+
"dev": true,
5822
+
"license": "MIT",
5823
+
"dependencies": {
5824
+
"lodash.sortby": "^4.7.0",
5825
+
"tr46": "^1.0.1",
5826
+
"webidl-conversions": "^4.0.2"
5827
+
}
5828
+
},
5829
+
"node_modules/which": {
5830
+
"version": "2.0.2",
5831
+
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
5832
+
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
5833
+
"dev": true,
5834
+
"license": "ISC",
5835
+
"dependencies": {
5836
+
"isexe": "^2.0.0"
5837
+
},
5838
+
"bin": {
5839
+
"node-which": "bin/node-which"
5840
+
},
5841
+
"engines": {
5842
+
"node": ">= 8"
5843
+
}
5844
+
},
5845
+
"node_modules/with": {
5846
+
"version": "7.0.2",
5847
+
"resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz",
5848
+
"integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==",
5849
+
"license": "MIT",
5850
+
"dependencies": {
5851
+
"@babel/parser": "^7.9.6",
5852
+
"@babel/types": "^7.9.6",
5853
+
"assert-never": "^1.2.1",
5854
+
"babel-walk": "3.0.0-canary-5"
5855
+
},
5856
+
"engines": {
5857
+
"node": ">= 10.0.0"
5858
+
}
5859
+
},
5860
+
"node_modules/wrap-ansi": {
5861
+
"version": "8.1.0",
5862
+
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
5863
+
"integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
5864
+
"dev": true,
5865
+
"license": "MIT",
5866
+
"dependencies": {
5867
+
"ansi-styles": "^6.1.0",
5868
+
"string-width": "^5.0.1",
5869
+
"strip-ansi": "^7.0.1"
5870
+
},
5871
+
"engines": {
5872
+
"node": ">=12"
5873
+
},
5874
+
"funding": {
5875
+
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
5876
+
}
5877
+
},
5878
+
"node_modules/wrap-ansi-cjs": {
5879
+
"name": "wrap-ansi",
5880
+
"version": "7.0.0",
5881
+
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
5882
+
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
5883
+
"dev": true,
5884
+
"license": "MIT",
5885
+
"dependencies": {
5886
+
"ansi-styles": "^4.0.0",
5887
+
"string-width": "^4.1.0",
5888
+
"strip-ansi": "^6.0.0"
5889
+
},
5890
+
"engines": {
5891
+
"node": ">=10"
5892
+
},
5893
+
"funding": {
5894
+
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
5895
+
}
5896
+
},
5897
+
"node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
5898
+
"version": "5.0.1",
5899
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
5900
+
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
5901
+
"dev": true,
5902
+
"license": "MIT",
5903
+
"engines": {
5904
+
"node": ">=8"
5905
+
}
5906
+
},
5907
+
"node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
5908
+
"version": "8.0.0",
5909
+
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
5910
+
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
5911
+
"dev": true,
5912
+
"license": "MIT"
5913
+
},
5914
+
"node_modules/wrap-ansi-cjs/node_modules/string-width": {
5915
+
"version": "4.2.3",
5916
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
5917
+
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
5918
+
"dev": true,
5919
+
"license": "MIT",
5920
+
"dependencies": {
5921
+
"emoji-regex": "^8.0.0",
5922
+
"is-fullwidth-code-point": "^3.0.0",
5923
+
"strip-ansi": "^6.0.1"
5924
+
},
5925
+
"engines": {
5926
+
"node": ">=8"
5927
+
}
5928
+
},
5929
+
"node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
5930
+
"version": "6.0.1",
5931
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
5932
+
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
5933
+
"dev": true,
5934
+
"license": "MIT",
5935
+
"dependencies": {
5936
+
"ansi-regex": "^5.0.1"
5937
+
},
5938
+
"engines": {
5939
+
"node": ">=8"
5940
+
}
5941
+
},
5942
+
"node_modules/wrap-ansi/node_modules/ansi-styles": {
5943
+
"version": "6.2.1",
5944
+
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
5945
+
"integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
5946
+
"dev": true,
5947
+
"license": "MIT",
5948
+
"engines": {
5949
+
"node": ">=12"
5950
+
},
5951
+
"funding": {
5952
+
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
5953
+
}
5954
+
},
5955
+
"node_modules/wrappy": {
5956
+
"version": "1.0.2",
5957
+
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
5958
+
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
5959
+
"license": "ISC"
5960
+
},
5961
+
"node_modules/ws": {
5962
+
"version": "8.18.0",
5963
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
5964
+
"integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
5965
+
"license": "MIT",
5966
+
"engines": {
5967
+
"node": ">=10.0.0"
5968
+
},
5969
+
"peerDependencies": {
5970
+
"bufferutil": "^4.0.1",
5971
+
"utf-8-validate": ">=5.0.2"
5972
+
},
5973
+
"peerDependenciesMeta": {
5974
+
"bufferutil": {
5975
+
"optional": true
5976
+
},
5977
+
"utf-8-validate": {
5978
+
"optional": true
5979
+
}
5980
+
}
5981
+
},
5982
+
"node_modules/yesno": {
5983
+
"version": "0.4.0",
5984
+
"resolved": "https://registry.npmjs.org/yesno/-/yesno-0.4.0.tgz",
5985
+
"integrity": "sha512-tdBxmHvbXPBKYIg81bMCB7bVeDmHkRzk5rVJyYYXurwKkHq/MCd8rz4HSJUP7hW0H2NlXiq8IFiWvYKEHhlotA==",
5986
+
"dev": true,
5987
+
"license": "BSD"
5988
+
},
5989
+
"node_modules/yn": {
5990
+
"version": "3.1.1",
5991
+
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
5992
+
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
5993
+
"dev": true,
5994
+
"license": "MIT",
5995
+
"engines": {
5996
+
"node": ">=6"
5997
+
}
5998
+
},
5999
+
"node_modules/zod": {
6000
+
"version": "3.23.8",
6001
+
"resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz",
6002
+
"integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==",
6003
+
"license": "MIT",
6004
+
"funding": {
6005
+
"url": "https://github.com/sponsors/colinhacks"
6006
+
}
6007
+
}
6008
+
}
6009
+
}
+56
package.json
+56
package.json
···
1
+
{
2
+
"name": "plonk",
3
+
"version": "1.0.0",
4
+
"description": "pastebin build on atproto",
5
+
"main": "index.ts",
6
+
"scripts": {
7
+
"dev": "tsx watch --clear-screen=false src/index.ts | pino-pretty",
8
+
"build": "tsup",
9
+
"start": "node dist/index.js",
10
+
"lexgen": "lex gen-server ./src/lexicon ./lexicons/*",
11
+
"clean": "rimraf dist coverage"
12
+
},
13
+
"author": "",
14
+
"license": "ISC",
15
+
"dependencies": {
16
+
"@atproto/api": "^0.13.4",
17
+
"@atproto/common": "^0.4.1",
18
+
"@atproto/identity": "^0.4.0",
19
+
"@atproto/lexicon": "^0.4.2",
20
+
"@atproto/oauth-client-node": "^0.1.0",
21
+
"@atproto/sync": "^0.1.4",
22
+
"@atproto/syntax": "^0.3.0",
23
+
"@atproto/xrpc-server": "^0.6.3",
24
+
"better-sqlite3": "^11.1.2",
25
+
"dotenv": "^16.4.5",
26
+
"envalid": "^8.0.0",
27
+
"express": "^4.19.2",
28
+
"iron-session": "^8.0.2",
29
+
"kysely": "^0.27.4",
30
+
"multiformats": "^9.9.0",
31
+
"pino": "^9.3.2",
32
+
"pug": "^3.0.3",
33
+
"uhtml": "^4.5.9"
34
+
},
35
+
"devDependencies": {
36
+
"@atproto/lex-cli": "^0.4.1",
37
+
"@types/better-sqlite3": "^7.6.11",
38
+
"@types/express": "^4.17.21",
39
+
"pino-pretty": "^11.0.0",
40
+
"rimraf": "^5.0.0",
41
+
"ts-node": "^10.9.2",
42
+
"tsup": "^8.0.2",
43
+
"tsx": "^4.7.2",
44
+
"typescript": "^5.4.4"
45
+
},
46
+
"tsup": {
47
+
"entry": [
48
+
"src",
49
+
"!src/**/__tests__/**",
50
+
"!src/**/*.test.*"
51
+
],
52
+
"splitting": false,
53
+
"sourcemap": true,
54
+
"clean": true
55
+
}
56
+
}
+28
src/auth/client.ts
+28
src/auth/client.ts
···
1
+
import { NodeOAuthClient } from "@atproto/oauth-client-node";
2
+
import type { Database } from "#/db";
3
+
import { env } from "#/lib";
4
+
import { SessionStore, StateStore } from "./storage";
5
+
6
+
export const createClient = async (db: Database) => {
7
+
const publicUrl = env.PUBLIC_URL;
8
+
const url = publicUrl || `http://127.0.0.1:${env.PORT}`;
9
+
const enc = encodeURIComponent;
10
+
return new NodeOAuthClient({
11
+
clientMetadata: {
12
+
client_name: "AT Protocol Express App",
13
+
client_id: publicUrl
14
+
? `${url}/client-metadata.json`
15
+
: `http://localhost?redirect_uri=${enc(`${url}/oauth/callback`)}&scope=${enc("atproto transition:generic")}`,
16
+
client_uri: url,
17
+
redirect_uris: [`${url}/oauth/callback`],
18
+
scope: "atproto transition:generic",
19
+
grant_types: ["authorization_code", "refresh_token"],
20
+
response_types: ["code"],
21
+
application_type: "web",
22
+
token_endpoint_auth_method: "none",
23
+
dpop_bound_access_tokens: true,
24
+
},
25
+
stateStore: new StateStore(db),
26
+
sessionStore: new SessionStore(db),
27
+
});
28
+
};
+48
src/auth/storage.ts
+48
src/auth/storage.ts
···
1
+
import type {
2
+
NodeSavedSession,
3
+
NodeSavedSessionStore,
4
+
NodeSavedState,
5
+
NodeSavedStateStore,
6
+
} from '@atproto/oauth-client-node'
7
+
import type { Database } from '#/db'
8
+
9
+
export class StateStore implements NodeSavedStateStore {
10
+
constructor(private db: Database) {}
11
+
async get(key: string): Promise<NodeSavedState | undefined> {
12
+
const result = await this.db.selectFrom('auth_state').selectAll().where('key', '=', key).executeTakeFirst()
13
+
if (!result) return
14
+
return JSON.parse(result.state) as NodeSavedState
15
+
}
16
+
async set(key: string, val: NodeSavedState) {
17
+
const state = JSON.stringify(val)
18
+
await this.db
19
+
.insertInto('auth_state')
20
+
.values({ key, state })
21
+
.onConflict((oc) => oc.doUpdateSet({ state }))
22
+
.execute()
23
+
}
24
+
async del(key: string) {
25
+
await this.db.deleteFrom('auth_state').where('key', '=', key).execute()
26
+
}
27
+
}
28
+
29
+
export class SessionStore implements NodeSavedSessionStore {
30
+
constructor(private db: Database) {}
31
+
async get(key: string): Promise<NodeSavedSession | undefined> {
32
+
const result = await this.db.selectFrom('auth_session').selectAll().where('key', '=', key).executeTakeFirst()
33
+
if (!result) return
34
+
return JSON.parse(result.session) as NodeSavedSession
35
+
}
36
+
async set(key: string, val: NodeSavedSession) {
37
+
const session = JSON.stringify(val)
38
+
await this.db
39
+
.insertInto('auth_session')
40
+
.values({ key, session })
41
+
.onConflict((oc) => oc.doUpdateSet({ session }))
42
+
.execute()
43
+
}
44
+
async del(key: string) {
45
+
await this.db.deleteFrom('auth_session').where('key', '=', key).execute()
46
+
}
47
+
}
48
+
+155
src/db.ts
+155
src/db.ts
···
1
+
import SqliteDb from "better-sqlite3";
2
+
import { randomBytes } from "crypto";
3
+
4
+
import {
5
+
Kysely,
6
+
Migrator,
7
+
SqliteDialect,
8
+
Migration,
9
+
MigrationProvider,
10
+
} from "kysely";
11
+
import { isNumber } from "util";
12
+
13
+
export type DatabaseSchema = {
14
+
paste: Paste;
15
+
auth_state: AuthState;
16
+
auth_session: AuthSession;
17
+
};
18
+
19
+
export type Paste = {
20
+
uri: string;
21
+
authorDid: string;
22
+
code: string;
23
+
lang: string;
24
+
title: string;
25
+
createdAt: string;
26
+
indexedAt: string;
27
+
};
28
+
29
+
export type AuthSession = {
30
+
key: string;
31
+
session: AuthSessionJson;
32
+
};
33
+
34
+
export type AuthState = {
35
+
key: string;
36
+
state: AuthStateJson;
37
+
};
38
+
39
+
type AuthSessionJson = string;
40
+
type AuthStateJson = string;
41
+
42
+
export type Schema = {
43
+
paste: Paste;
44
+
auth_session: AuthSession;
45
+
auth_state: AuthState;
46
+
};
47
+
48
+
const migrations: Record<string, Migration> = {};
49
+
50
+
const migrationProvider: MigrationProvider = {
51
+
async getMigrations() {
52
+
return migrations;
53
+
},
54
+
};
55
+
56
+
migrations["001"] = {
57
+
async up(db: Kysely<unknown>) {
58
+
await db.schema
59
+
.createTable("paste")
60
+
.addColumn("uri", "varchar", (col) => col.primaryKey())
61
+
.addColumn("shortUrl", "varchar", (col) => col.notNull().unique())
62
+
.addColumn("authorDid", "varchar", (col) => col.notNull())
63
+
.addColumn("code", "varchar", (col) => col.notNull())
64
+
.addColumn("lang", "varchar")
65
+
.addColumn("title", "varchar", (col) => col.notNull())
66
+
.addColumn("createdAt", "varchar", (col) => col.notNull())
67
+
.addColumn("indexedAt", "varchar", (col) => col.notNull())
68
+
.execute();
69
+
70
+
await db.schema
71
+
.createTable("auth_session")
72
+
.addColumn("key", "varchar", (col) => col.primaryKey())
73
+
.addColumn("session", "varchar", (col) => col.notNull())
74
+
.execute();
75
+
76
+
await db.schema
77
+
.createTable("auth_state")
78
+
.addColumn("key", "varchar", (col) => col.primaryKey())
79
+
.addColumn("state", "varchar", (col) => col.notNull())
80
+
.execute();
81
+
},
82
+
async down(db: Kysely<unknown>) {
83
+
await db.schema.dropTable("auth_state").execute();
84
+
await db.schema.dropTable("auth_session").execute();
85
+
await db.schema.dropTable("paste").execute();
86
+
},
87
+
};
88
+
89
+
function generateShortString(length: number): string {
90
+
return randomBytes(length).toString("base64url").substring(0, length);
91
+
}
92
+
93
+
export async function newShortUrl(
94
+
db: Database,
95
+
length: number = 2,
96
+
): Promise<string> {
97
+
let shortUrl: string;
98
+
99
+
while (true) {
100
+
shortUrl = generateShortString(length);
101
+
102
+
try {
103
+
let exists = await db
104
+
.selectFrom("paste")
105
+
.selectAll()
106
+
.where("shortUrl", "=", shortUrl)
107
+
.limit(1)
108
+
.executeTakeFirst();
109
+
if (!exists) {
110
+
break; // Break the loop if insertion is successful
111
+
}
112
+
} catch (error) {
113
+
// If we run out of options at the current length, increase the length
114
+
if (await hasExhaustedShortUrls(db, length)) {
115
+
length++;
116
+
}
117
+
throw error;
118
+
}
119
+
}
120
+
121
+
return shortUrl;
122
+
}
123
+
124
+
// Check if all short URLs of the current length have been exhausted
125
+
async function hasExhaustedShortUrls(
126
+
db: Database,
127
+
length: number,
128
+
): Promise<boolean> {
129
+
const totalPossible = Math.pow(64, length);
130
+
const count = await db
131
+
.selectFrom("paste")
132
+
.select((e) => e.fn.count("uri").as("count"))
133
+
.executeTakeFirst();
134
+
if (isNumber(count)) {
135
+
return count >= totalPossible;
136
+
} else {
137
+
return true;
138
+
}
139
+
}
140
+
141
+
export const createDb = (location: string): Database => {
142
+
return new Kysely<DatabaseSchema>({
143
+
dialect: new SqliteDialect({
144
+
database: new SqliteDb(location),
145
+
}),
146
+
});
147
+
};
148
+
149
+
export const migrateToLatest = async (db: Database) => {
150
+
const migrator = new Migrator({ db, provider: migrationProvider });
151
+
const { error } = await migrator.migrateToLatest();
152
+
if (error) throw error;
153
+
};
154
+
155
+
export type Database = Kysely<DatabaseSchema>;
+43
src/id-resolver.ts
+43
src/id-resolver.ts
···
1
+
import { IdResolver, MemoryCache } from '@atproto/identity'
2
+
3
+
const HOUR = 60e3 * 60
4
+
const DAY = HOUR * 24
5
+
6
+
7
+
export function createIdResolver() {
8
+
return new IdResolver({
9
+
didCache: new MemoryCache(HOUR, DAY),
10
+
})
11
+
}
12
+
13
+
export interface BidirectionalResolver {
14
+
resolveDidToHandle(did: string): Promise<string>
15
+
resolveDidsToHandles(dids: string[]): Promise<Record<string, string>>
16
+
}
17
+
18
+
export function createBidirectionalResolver(resolver: IdResolver) {
19
+
return {
20
+
async resolveDidToHandle(did: string): Promise<string> {
21
+
const didDoc = await resolver.did.resolveAtprotoData(did)
22
+
const resolvedHandle = await resolver.handle.resolve(didDoc.handle)
23
+
if (resolvedHandle === did) {
24
+
return didDoc.handle
25
+
}
26
+
return did
27
+
},
28
+
29
+
async resolveDidsToHandles(
30
+
dids: string[]
31
+
): Promise<Record<string, string>> {
32
+
const didHandleMap: Record<string, string> = {}
33
+
const resolves = await Promise.all(
34
+
dids.map((did) => this.resolveDidToHandle(did).catch((_) => did))
35
+
)
36
+
for (let i = 0; i < dids.length; i++) {
37
+
didHandleMap[dids[i]] = resolves[i]
38
+
}
39
+
return didHandleMap
40
+
},
41
+
}
42
+
}
43
+
+88
src/index.ts
+88
src/index.ts
···
1
+
import type http from "node:http";
2
+
import path from "node:path";
3
+
4
+
import express from "express";
5
+
import { OAuthClient } from "@atproto/oauth-client-node";
6
+
import { pino } from "pino";
7
+
import { Firehose } from "@atproto/sync";
8
+
import { createRouter } from "#/routes";
9
+
import {
10
+
createIdResolver,
11
+
createBidirectionalResolver,
12
+
BidirectionalResolver,
13
+
} from "#/id-resolver";
14
+
import { createIngester } from "#/ingester";
15
+
import { createClient } from "#/auth/client";
16
+
import { Database, createDb, migrateToLatest } from "#/db";
17
+
import { env } from "#/lib";
18
+
19
+
export type Ctx = {
20
+
ingester: Firehose;
21
+
logger: pino.Logger;
22
+
oauthClient: OAuthClient;
23
+
resolver: BidirectionalResolver;
24
+
db: Database;
25
+
};
26
+
27
+
export class Server {
28
+
constructor(
29
+
public app: express.Application,
30
+
public server: http.Server,
31
+
public ctx: Ctx,
32
+
) {}
33
+
34
+
static async create() {
35
+
const db: Database = createDb(env.DB_PATH);
36
+
await migrateToLatest(db);
37
+
const idResolver = createIdResolver();
38
+
const ctx: Ctx = {
39
+
ingester: createIngester(db, idResolver),
40
+
logger: pino({ name: "server start" }),
41
+
oauthClient: await createClient(db),
42
+
resolver: createBidirectionalResolver(idResolver),
43
+
db: db,
44
+
};
45
+
46
+
const app = express();
47
+
app.set("trust proxy", true);
48
+
app.use(express.static(path.join(__dirname, "public")));
49
+
app.set("views", path.join(__dirname, "views"));
50
+
app.set("view engine", "pug");
51
+
52
+
const router = createRouter(ctx);
53
+
app.use(express.json());
54
+
app.use(express.urlencoded({ extended: true }));
55
+
app.use(router);
56
+
app.use((_req, res) => res.sendStatus(404));
57
+
58
+
const server = app.listen(env.PORT);
59
+
60
+
return new Server(app, server, ctx);
61
+
}
62
+
63
+
async close() {
64
+
this.ctx.logger.info("shutting down");
65
+
await this.ctx.ingester.destroy();
66
+
return new Promise<void>((resolve) => {
67
+
this.server.close(() => {
68
+
this.ctx.logger.info("server closed");
69
+
resolve();
70
+
});
71
+
});
72
+
}
73
+
}
74
+
75
+
const run = async () => {
76
+
const server = await Server.create();
77
+
78
+
const onCloseSignal = async () => {
79
+
setTimeout(() => process.exit(1), 10000).unref(); // Force shutdown after 10s
80
+
await server.close();
81
+
process.exit();
82
+
};
83
+
84
+
process.on("SIGINT", onCloseSignal);
85
+
process.on("SIGTERM", onCloseSignal);
86
+
};
87
+
88
+
run();
+66
src/ingester.ts
+66
src/ingester.ts
···
1
+
import pino from "pino";
2
+
import { IdResolver } from "@atproto/identity";
3
+
import { Firehose } from "@atproto/sync";
4
+
import type { Database } from "#/db";
5
+
import { newShortUrl } from "#/db";
6
+
import * as Paste from "#/lexicons/types/ovh/plonk/paste";
7
+
8
+
export function createIngester(db: Database, idResolver: IdResolver) {
9
+
const logger = pino({ name: "firehose ingestion" });
10
+
return new Firehose({
11
+
idResolver,
12
+
handleEvent: async (evt) => {
13
+
// Watch for write events
14
+
if (evt.event === "create" || evt.event === "update") {
15
+
const now = new Date();
16
+
const record = evt.record;
17
+
18
+
// If the write is a valid status update
19
+
if (
20
+
evt.collection === "ovh.plonk.paste" &&
21
+
Paste.isRecord(record) &&
22
+
Paste.validateRecord(record).success
23
+
) {
24
+
// Store the status in our SQLite
25
+
const short_url = await newShortUrl(db);
26
+
await db
27
+
.insertInto("paste")
28
+
.values({
29
+
uri: evt.uri.toString(),
30
+
shortUrl,
31
+
authorDid: evt.did,
32
+
code: record.code,
33
+
lang: record.lang,
34
+
title: record.title,
35
+
createdAt: record.createdAt,
36
+
indexedAt: now.toISOString(),
37
+
})
38
+
.onConflict((oc) =>
39
+
oc.column("uri").doUpdateSet({
40
+
code: record.code,
41
+
lang: record.lang,
42
+
title: record.title,
43
+
indexedAt: now.toISOString(),
44
+
}),
45
+
)
46
+
.execute();
47
+
}
48
+
} else if (
49
+
evt.event === "delete" &&
50
+
evt.collection === "ovh.plonk.paste"
51
+
) {
52
+
// Remove the status from our SQLite
53
+
await db
54
+
.deleteFrom("paste")
55
+
.where("uri", "=", evt.uri.toString())
56
+
.execute();
57
+
}
58
+
},
59
+
onError: (err) => {
60
+
logger.error({ err }, "error on firehose ingestion");
61
+
},
62
+
filterCollections: ["ovh.plonk.paste"],
63
+
excludeIdentity: true,
64
+
excludeAccount: true,
65
+
});
66
+
}
+129
src/lexicons/index.ts
+129
src/lexicons/index.ts
···
1
+
/**
2
+
* GENERATED CODE - DO NOT MODIFY
3
+
*/
4
+
import {
5
+
createServer as createXrpcServer,
6
+
Server as XrpcServer,
7
+
Options as XrpcOptions,
8
+
AuthVerifier,
9
+
StreamAuthVerifier,
10
+
} from '@atproto/xrpc-server'
11
+
import { schemas } from './lexicons'
12
+
13
+
export function createServer(options?: XrpcOptions): Server {
14
+
return new Server(options)
15
+
}
16
+
17
+
export class Server {
18
+
xrpc: XrpcServer
19
+
ovh: OvhNS
20
+
app: AppNS
21
+
com: ComNS
22
+
23
+
constructor(options?: XrpcOptions) {
24
+
this.xrpc = createXrpcServer(schemas, options)
25
+
this.ovh = new OvhNS(this)
26
+
this.app = new AppNS(this)
27
+
this.com = new ComNS(this)
28
+
}
29
+
}
30
+
31
+
export class OvhNS {
32
+
_server: Server
33
+
plonk: OvhPlonkNS
34
+
35
+
constructor(server: Server) {
36
+
this._server = server
37
+
this.plonk = new OvhPlonkNS(server)
38
+
}
39
+
}
40
+
41
+
export class OvhPlonkNS {
42
+
_server: Server
43
+
44
+
constructor(server: Server) {
45
+
this._server = server
46
+
}
47
+
}
48
+
49
+
export class AppNS {
50
+
_server: Server
51
+
bsky: AppBskyNS
52
+
53
+
constructor(server: Server) {
54
+
this._server = server
55
+
this.bsky = new AppBskyNS(server)
56
+
}
57
+
}
58
+
59
+
export class AppBskyNS {
60
+
_server: Server
61
+
actor: AppBskyActorNS
62
+
63
+
constructor(server: Server) {
64
+
this._server = server
65
+
this.actor = new AppBskyActorNS(server)
66
+
}
67
+
}
68
+
69
+
export class AppBskyActorNS {
70
+
_server: Server
71
+
72
+
constructor(server: Server) {
73
+
this._server = server
74
+
}
75
+
}
76
+
77
+
export class ComNS {
78
+
_server: Server
79
+
atproto: ComAtprotoNS
80
+
81
+
constructor(server: Server) {
82
+
this._server = server
83
+
this.atproto = new ComAtprotoNS(server)
84
+
}
85
+
}
86
+
87
+
export class ComAtprotoNS {
88
+
_server: Server
89
+
repo: ComAtprotoRepoNS
90
+
91
+
constructor(server: Server) {
92
+
this._server = server
93
+
this.repo = new ComAtprotoRepoNS(server)
94
+
}
95
+
}
96
+
97
+
export class ComAtprotoRepoNS {
98
+
_server: Server
99
+
100
+
constructor(server: Server) {
101
+
this._server = server
102
+
}
103
+
}
104
+
105
+
type SharedRateLimitOpts<T> = {
106
+
name: string
107
+
calcKey?: (ctx: T) => string
108
+
calcPoints?: (ctx: T) => number
109
+
}
110
+
type RouteRateLimitOpts<T> = {
111
+
durationMs: number
112
+
points: number
113
+
calcKey?: (ctx: T) => string
114
+
calcPoints?: (ctx: T) => number
115
+
}
116
+
type HandlerOpts = { blobLimit?: number }
117
+
type HandlerRateLimitOpts<T> = SharedRateLimitOpts<T> | RouteRateLimitOpts<T>
118
+
type ConfigOf<Auth, Handler, ReqCtx> =
119
+
| Handler
120
+
| {
121
+
auth?: Auth
122
+
opts?: HandlerOpts
123
+
rateLimit?: HandlerRateLimitOpts<ReqCtx> | HandlerRateLimitOpts<ReqCtx>[]
124
+
handler: Handler
125
+
}
126
+
type ExtractAuth<AV extends AuthVerifier | StreamAuthVerifier> = Extract<
127
+
Awaited<ReturnType<AV>>,
128
+
{ credentials: unknown }
129
+
>
+308
src/lexicons/lexicons.ts
+308
src/lexicons/lexicons.ts
···
1
+
/**
2
+
* GENERATED CODE - DO NOT MODIFY
3
+
*/
4
+
import { LexiconDoc, Lexicons } from '@atproto/lexicon'
5
+
6
+
export const schemaDict = {
7
+
ComAtprotoLabelDefs: {
8
+
lexicon: 1,
9
+
id: 'com.atproto.label.defs',
10
+
defs: {
11
+
label: {
12
+
type: 'object',
13
+
description:
14
+
'Metadata tag on an atproto resource (eg, repo or record).',
15
+
required: ['src', 'uri', 'val', 'cts'],
16
+
properties: {
17
+
ver: {
18
+
type: 'integer',
19
+
description: 'The AT Protocol version of the label object.',
20
+
},
21
+
src: {
22
+
type: 'string',
23
+
format: 'did',
24
+
description: 'DID of the actor who created this label.',
25
+
},
26
+
uri: {
27
+
type: 'string',
28
+
format: 'uri',
29
+
description:
30
+
'AT URI of the record, repository (account), or other resource that this label applies to.',
31
+
},
32
+
cid: {
33
+
type: 'string',
34
+
format: 'cid',
35
+
description:
36
+
"Optionally, CID specifying the specific version of 'uri' resource this label applies to.",
37
+
},
38
+
val: {
39
+
type: 'string',
40
+
maxLength: 128,
41
+
description:
42
+
'The short string name of the value or type of this label.',
43
+
},
44
+
neg: {
45
+
type: 'boolean',
46
+
description:
47
+
'If true, this is a negation label, overwriting a previous label.',
48
+
},
49
+
cts: {
50
+
type: 'string',
51
+
format: 'datetime',
52
+
description: 'Timestamp when this label was created.',
53
+
},
54
+
exp: {
55
+
type: 'string',
56
+
format: 'datetime',
57
+
description:
58
+
'Timestamp at which this label expires (no longer applies).',
59
+
},
60
+
sig: {
61
+
type: 'bytes',
62
+
description: 'Signature of dag-cbor encoded label.',
63
+
},
64
+
},
65
+
},
66
+
selfLabels: {
67
+
type: 'object',
68
+
description:
69
+
'Metadata tags on an atproto record, published by the author within the record.',
70
+
required: ['values'],
71
+
properties: {
72
+
values: {
73
+
type: 'array',
74
+
items: {
75
+
type: 'ref',
76
+
ref: 'lex:com.atproto.label.defs#selfLabel',
77
+
},
78
+
maxLength: 10,
79
+
},
80
+
},
81
+
},
82
+
selfLabel: {
83
+
type: 'object',
84
+
description:
85
+
'Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel.',
86
+
required: ['val'],
87
+
properties: {
88
+
val: {
89
+
type: 'string',
90
+
maxLength: 128,
91
+
description:
92
+
'The short string name of the value or type of this label.',
93
+
},
94
+
},
95
+
},
96
+
labelValueDefinition: {
97
+
type: 'object',
98
+
description:
99
+
'Declares a label value and its expected interpretations and behaviors.',
100
+
required: ['identifier', 'severity', 'blurs', 'locales'],
101
+
properties: {
102
+
identifier: {
103
+
type: 'string',
104
+
description:
105
+
"The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+).",
106
+
maxLength: 100,
107
+
maxGraphemes: 100,
108
+
},
109
+
severity: {
110
+
type: 'string',
111
+
description:
112
+
"How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing.",
113
+
knownValues: ['inform', 'alert', 'none'],
114
+
},
115
+
blurs: {
116
+
type: 'string',
117
+
description:
118
+
"What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing.",
119
+
knownValues: ['content', 'media', 'none'],
120
+
},
121
+
defaultSetting: {
122
+
type: 'string',
123
+
description: 'The default setting for this label.',
124
+
knownValues: ['ignore', 'warn', 'hide'],
125
+
default: 'warn',
126
+
},
127
+
adultOnly: {
128
+
type: 'boolean',
129
+
description:
130
+
'Does the user need to have adult content enabled in order to configure this label?',
131
+
},
132
+
locales: {
133
+
type: 'array',
134
+
items: {
135
+
type: 'ref',
136
+
ref: 'lex:com.atproto.label.defs#labelValueDefinitionStrings',
137
+
},
138
+
},
139
+
},
140
+
},
141
+
labelValueDefinitionStrings: {
142
+
type: 'object',
143
+
description:
144
+
'Strings which describe the label in the UI, localized into a specific language.',
145
+
required: ['lang', 'name', 'description'],
146
+
properties: {
147
+
lang: {
148
+
type: 'string',
149
+
description:
150
+
'The code of the language these strings are written in.',
151
+
format: 'language',
152
+
},
153
+
name: {
154
+
type: 'string',
155
+
description: 'A short human-readable name for the label.',
156
+
maxGraphemes: 64,
157
+
maxLength: 640,
158
+
},
159
+
description: {
160
+
type: 'string',
161
+
description:
162
+
'A longer description of what the label means and why it might be applied.',
163
+
maxGraphemes: 10000,
164
+
maxLength: 100000,
165
+
},
166
+
},
167
+
},
168
+
labelValue: {
169
+
type: 'string',
170
+
knownValues: [
171
+
'!hide',
172
+
'!no-promote',
173
+
'!warn',
174
+
'!no-unauthenticated',
175
+
'dmca-violation',
176
+
'doxxing',
177
+
'porn',
178
+
'sexual',
179
+
'nudity',
180
+
'nsfl',
181
+
'gore',
182
+
],
183
+
},
184
+
},
185
+
},
186
+
OvhPlonkPaste: {
187
+
lexicon: 1,
188
+
id: 'ovh.plonk.paste',
189
+
defs: {
190
+
main: {
191
+
type: 'record',
192
+
key: 'tid',
193
+
record: {
194
+
type: 'object',
195
+
required: ['code', 'lang', 'title', 'createdAt'],
196
+
properties: {
197
+
code: {
198
+
type: 'string',
199
+
minLength: 1,
200
+
maxGraphemes: 65536,
201
+
maxLength: 65536,
202
+
},
203
+
lang: {
204
+
type: 'string',
205
+
minLength: 1,
206
+
maxGraphemes: 20,
207
+
maxLength: 20,
208
+
},
209
+
title: {
210
+
type: 'string',
211
+
minLength: 1,
212
+
maxGraphemes: 100,
213
+
maxLength: 100,
214
+
},
215
+
createdAt: {
216
+
type: 'string',
217
+
format: 'datetime',
218
+
},
219
+
},
220
+
},
221
+
},
222
+
},
223
+
},
224
+
AppBskyActorProfile: {
225
+
lexicon: 1,
226
+
id: 'app.bsky.actor.profile',
227
+
defs: {
228
+
main: {
229
+
type: 'record',
230
+
description: 'A declaration of a Bluesky account profile.',
231
+
key: 'literal:self',
232
+
record: {
233
+
type: 'object',
234
+
properties: {
235
+
displayName: {
236
+
type: 'string',
237
+
maxGraphemes: 64,
238
+
maxLength: 640,
239
+
},
240
+
description: {
241
+
type: 'string',
242
+
description: 'Free-form profile description text.',
243
+
maxGraphemes: 256,
244
+
maxLength: 2560,
245
+
},
246
+
avatar: {
247
+
type: 'blob',
248
+
description:
249
+
"Small image to be displayed next to posts from account. AKA, 'profile picture'",
250
+
accept: ['image/png', 'image/jpeg'],
251
+
maxSize: 1000000,
252
+
},
253
+
banner: {
254
+
type: 'blob',
255
+
description:
256
+
'Larger horizontal image to display behind profile view.',
257
+
accept: ['image/png', 'image/jpeg'],
258
+
maxSize: 1000000,
259
+
},
260
+
labels: {
261
+
type: 'union',
262
+
description:
263
+
'Self-label values, specific to the Bluesky application, on the overall account.',
264
+
refs: ['lex:com.atproto.label.defs#selfLabels'],
265
+
},
266
+
joinedViaStarterPack: {
267
+
type: 'ref',
268
+
ref: 'lex:com.atproto.repo.strongRef',
269
+
},
270
+
createdAt: {
271
+
type: 'string',
272
+
format: 'datetime',
273
+
},
274
+
},
275
+
},
276
+
},
277
+
},
278
+
},
279
+
ComAtprotoRepoStrongRef: {
280
+
lexicon: 1,
281
+
id: 'com.atproto.repo.strongRef',
282
+
description: 'A URI with a content-hash fingerprint.',
283
+
defs: {
284
+
main: {
285
+
type: 'object',
286
+
required: ['uri', 'cid'],
287
+
properties: {
288
+
uri: {
289
+
type: 'string',
290
+
format: 'at-uri',
291
+
},
292
+
cid: {
293
+
type: 'string',
294
+
format: 'cid',
295
+
},
296
+
},
297
+
},
298
+
},
299
+
},
300
+
}
301
+
export const schemas: LexiconDoc[] = Object.values(schemaDict) as LexiconDoc[]
302
+
export const lexicons: Lexicons = new Lexicons(schemas)
303
+
export const ids = {
304
+
ComAtprotoLabelDefs: 'com.atproto.label.defs',
305
+
OvhPlonkPaste: 'ovh.plonk.paste',
306
+
AppBskyActorProfile: 'app.bsky.actor.profile',
307
+
ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',
308
+
}
+38
src/lexicons/types/app/bsky/actor/profile.ts
+38
src/lexicons/types/app/bsky/actor/profile.ts
···
1
+
/**
2
+
* GENERATED CODE - DO NOT MODIFY
3
+
*/
4
+
import { ValidationResult, BlobRef } from '@atproto/lexicon'
5
+
import { lexicons } from '../../../../lexicons'
6
+
import { isObj, hasProp } from '../../../../util'
7
+
import { CID } from 'multiformats/cid'
8
+
import * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'
9
+
import * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef'
10
+
11
+
export interface Record {
12
+
displayName?: string
13
+
/** Free-form profile description text. */
14
+
description?: string
15
+
/** Small image to be displayed next to posts from account. AKA, 'profile picture' */
16
+
avatar?: BlobRef
17
+
/** Larger horizontal image to display behind profile view. */
18
+
banner?: BlobRef
19
+
labels?:
20
+
| ComAtprotoLabelDefs.SelfLabels
21
+
| { $type: string; [k: string]: unknown }
22
+
joinedViaStarterPack?: ComAtprotoRepoStrongRef.Main
23
+
createdAt?: string
24
+
[k: string]: unknown
25
+
}
26
+
27
+
export function isRecord(v: unknown): v is Record {
28
+
return (
29
+
isObj(v) &&
30
+
hasProp(v, '$type') &&
31
+
(v.$type === 'app.bsky.actor.profile#main' ||
32
+
v.$type === 'app.bsky.actor.profile')
33
+
)
34
+
}
35
+
36
+
export function validateRecord(v: unknown): ValidationResult {
37
+
return lexicons.validate('app.bsky.actor.profile#main', v)
38
+
}
+151
src/lexicons/types/com/atproto/label/defs.ts
+151
src/lexicons/types/com/atproto/label/defs.ts
···
1
+
/**
2
+
* GENERATED CODE - DO NOT MODIFY
3
+
*/
4
+
import { ValidationResult, BlobRef } from '@atproto/lexicon'
5
+
import { lexicons } from '../../../../lexicons'
6
+
import { isObj, hasProp } from '../../../../util'
7
+
import { CID } from 'multiformats/cid'
8
+
9
+
/** Metadata tag on an atproto resource (eg, repo or record). */
10
+
export interface Label {
11
+
/** The AT Protocol version of the label object. */
12
+
ver?: number
13
+
/** DID of the actor who created this label. */
14
+
src: string
15
+
/** AT URI of the record, repository (account), or other resource that this label applies to. */
16
+
uri: string
17
+
/** Optionally, CID specifying the specific version of 'uri' resource this label applies to. */
18
+
cid?: string
19
+
/** The short string name of the value or type of this label. */
20
+
val: string
21
+
/** If true, this is a negation label, overwriting a previous label. */
22
+
neg?: boolean
23
+
/** Timestamp when this label was created. */
24
+
cts: string
25
+
/** Timestamp at which this label expires (no longer applies). */
26
+
exp?: string
27
+
/** Signature of dag-cbor encoded label. */
28
+
sig?: Uint8Array
29
+
[k: string]: unknown
30
+
}
31
+
32
+
export function isLabel(v: unknown): v is Label {
33
+
return (
34
+
isObj(v) &&
35
+
hasProp(v, '$type') &&
36
+
v.$type === 'com.atproto.label.defs#label'
37
+
)
38
+
}
39
+
40
+
export function validateLabel(v: unknown): ValidationResult {
41
+
return lexicons.validate('com.atproto.label.defs#label', v)
42
+
}
43
+
44
+
/** Metadata tags on an atproto record, published by the author within the record. */
45
+
export interface SelfLabels {
46
+
values: SelfLabel[]
47
+
[k: string]: unknown
48
+
}
49
+
50
+
export function isSelfLabels(v: unknown): v is SelfLabels {
51
+
return (
52
+
isObj(v) &&
53
+
hasProp(v, '$type') &&
54
+
v.$type === 'com.atproto.label.defs#selfLabels'
55
+
)
56
+
}
57
+
58
+
export function validateSelfLabels(v: unknown): ValidationResult {
59
+
return lexicons.validate('com.atproto.label.defs#selfLabels', v)
60
+
}
61
+
62
+
/** Metadata tag on an atproto record, published by the author within the record. Note that schemas should use #selfLabels, not #selfLabel. */
63
+
export interface SelfLabel {
64
+
/** The short string name of the value or type of this label. */
65
+
val: string
66
+
[k: string]: unknown
67
+
}
68
+
69
+
export function isSelfLabel(v: unknown): v is SelfLabel {
70
+
return (
71
+
isObj(v) &&
72
+
hasProp(v, '$type') &&
73
+
v.$type === 'com.atproto.label.defs#selfLabel'
74
+
)
75
+
}
76
+
77
+
export function validateSelfLabel(v: unknown): ValidationResult {
78
+
return lexicons.validate('com.atproto.label.defs#selfLabel', v)
79
+
}
80
+
81
+
/** Declares a label value and its expected interpretations and behaviors. */
82
+
export interface LabelValueDefinition {
83
+
/** The value of the label being defined. Must only include lowercase ascii and the '-' character ([a-z-]+). */
84
+
identifier: string
85
+
/** How should a client visually convey this label? 'inform' means neutral and informational; 'alert' means negative and warning; 'none' means show nothing. */
86
+
severity: 'inform' | 'alert' | 'none' | (string & {})
87
+
/** What should this label hide in the UI, if applied? 'content' hides all of the target; 'media' hides the images/video/audio; 'none' hides nothing. */
88
+
blurs: 'content' | 'media' | 'none' | (string & {})
89
+
/** The default setting for this label. */
90
+
defaultSetting: 'ignore' | 'warn' | 'hide' | (string & {})
91
+
/** Does the user need to have adult content enabled in order to configure this label? */
92
+
adultOnly?: boolean
93
+
locales: LabelValueDefinitionStrings[]
94
+
[k: string]: unknown
95
+
}
96
+
97
+
export function isLabelValueDefinition(v: unknown): v is LabelValueDefinition {
98
+
return (
99
+
isObj(v) &&
100
+
hasProp(v, '$type') &&
101
+
v.$type === 'com.atproto.label.defs#labelValueDefinition'
102
+
)
103
+
}
104
+
105
+
export function validateLabelValueDefinition(v: unknown): ValidationResult {
106
+
return lexicons.validate('com.atproto.label.defs#labelValueDefinition', v)
107
+
}
108
+
109
+
/** Strings which describe the label in the UI, localized into a specific language. */
110
+
export interface LabelValueDefinitionStrings {
111
+
/** The code of the language these strings are written in. */
112
+
lang: string
113
+
/** A short human-readable name for the label. */
114
+
name: string
115
+
/** A longer description of what the label means and why it might be applied. */
116
+
description: string
117
+
[k: string]: unknown
118
+
}
119
+
120
+
export function isLabelValueDefinitionStrings(
121
+
v: unknown,
122
+
): v is LabelValueDefinitionStrings {
123
+
return (
124
+
isObj(v) &&
125
+
hasProp(v, '$type') &&
126
+
v.$type === 'com.atproto.label.defs#labelValueDefinitionStrings'
127
+
)
128
+
}
129
+
130
+
export function validateLabelValueDefinitionStrings(
131
+
v: unknown,
132
+
): ValidationResult {
133
+
return lexicons.validate(
134
+
'com.atproto.label.defs#labelValueDefinitionStrings',
135
+
v,
136
+
)
137
+
}
138
+
139
+
export type LabelValue =
140
+
| '!hide'
141
+
| '!no-promote'
142
+
| '!warn'
143
+
| '!no-unauthenticated'
144
+
| 'dmca-violation'
145
+
| 'doxxing'
146
+
| 'porn'
147
+
| 'sexual'
148
+
| 'nudity'
149
+
| 'nsfl'
150
+
| 'gore'
151
+
| (string & {})
+26
src/lexicons/types/com/atproto/repo/strongRef.ts
+26
src/lexicons/types/com/atproto/repo/strongRef.ts
···
1
+
/**
2
+
* GENERATED CODE - DO NOT MODIFY
3
+
*/
4
+
import { ValidationResult, BlobRef } from '@atproto/lexicon'
5
+
import { lexicons } from '../../../../lexicons'
6
+
import { isObj, hasProp } from '../../../../util'
7
+
import { CID } from 'multiformats/cid'
8
+
9
+
export interface Main {
10
+
uri: string
11
+
cid: string
12
+
[k: string]: unknown
13
+
}
14
+
15
+
export function isMain(v: unknown): v is Main {
16
+
return (
17
+
isObj(v) &&
18
+
hasProp(v, '$type') &&
19
+
(v.$type === 'com.atproto.repo.strongRef#main' ||
20
+
v.$type === 'com.atproto.repo.strongRef')
21
+
)
22
+
}
23
+
24
+
export function validateMain(v: unknown): ValidationResult {
25
+
return lexicons.validate('com.atproto.repo.strongRef#main', v)
26
+
}
+27
src/lexicons/types/ovh/plonk/paste.ts
+27
src/lexicons/types/ovh/plonk/paste.ts
···
1
+
/**
2
+
* GENERATED CODE - DO NOT MODIFY
3
+
*/
4
+
import { ValidationResult, BlobRef } from '@atproto/lexicon'
5
+
import { lexicons } from '../../../lexicons'
6
+
import { isObj, hasProp } from '../../../util'
7
+
import { CID } from 'multiformats/cid'
8
+
9
+
export interface Record {
10
+
code: string
11
+
lang: string
12
+
title: string
13
+
createdAt: string
14
+
[k: string]: unknown
15
+
}
16
+
17
+
export function isRecord(v: unknown): v is Record {
18
+
return (
19
+
isObj(v) &&
20
+
hasProp(v, '$type') &&
21
+
(v.$type === 'ovh.plonk.paste#main' || v.$type === 'ovh.plonk.paste')
22
+
)
23
+
}
24
+
25
+
export function validateRecord(v: unknown): ValidationResult {
26
+
return lexicons.validate('ovh.plonk.paste#main', v)
27
+
}
+13
src/lexicons/util.ts
+13
src/lexicons/util.ts
···
1
+
/**
2
+
* GENERATED CODE - DO NOT MODIFY
3
+
*/
4
+
export function isObj(v: unknown): v is Record<string, unknown> {
5
+
return typeof v === 'object' && v !== null
6
+
}
7
+
8
+
export function hasProp<K extends PropertyKey>(
9
+
data: object,
10
+
prop: K,
11
+
): data is Record<K, unknown> {
12
+
return prop in data
13
+
}
+16
src/lib.ts
+16
src/lib.ts
···
1
+
import dotenv from "dotenv";
2
+
import { cleanEnv, host, port, str, testOnly } from "envalid";
3
+
4
+
dotenv.config();
5
+
6
+
export const env = cleanEnv(process.env, {
7
+
NODE_ENV: str({
8
+
devDefault: testOnly("test"),
9
+
choices: ["development", "production", "test"],
10
+
}),
11
+
HOST: host({ devDefault: testOnly("localhost") }),
12
+
PORT: port({ devDefault: testOnly(3000) }),
13
+
PUBLIC_URL: str({}),
14
+
DB_PATH: str({ devDefault: ":memory:" }),
15
+
COOKIE_SECRET: str({ devDefault: "00000000000000000000000000000001" }),
16
+
});
+10
src/mixins/head.pug
+10
src/mixins/head.pug
···
1
+
mixin head(title)
2
+
head
3
+
meta(name="viewport" content="width=device-width, initial-scale=1.0")
4
+
meta(charset='UTF-8')
5
+
title #{title}
6
+
link(rel="stylesheet", href="/styles.css")
7
+
link(rel="preconnect" href="https://rsms.me/")
8
+
link(rel="stylesheet" href="https://rsms.me/inter/inter.css")
9
+
script(src="https://cdn.dashjs.org/latest/dash.all.min.js")
10
+
+16
src/mixins/mkPost.pug
+16
src/mixins/mkPost.pug
···
1
+
include ./utils
2
+
- var greetings = ["plonk your code", "what would you like to plonk today?", "get busy plonkin', or get busy dyin'"]
3
+
- var greeting = greetings[randInt(0, greetings.length - 1)]
4
+
mixin mkPost()
5
+
form(action='/paste' method="post").post-form
6
+
div.post-row
7
+
input#title(type="text" name="title" placeholder="enter a title" required).post-input-title
8
+
select#lang(name="lang" required).post-input-lang
9
+
each lang in langs
10
+
option(value=`${lang}`) #{lang}
11
+
12
+
div.post-row
13
+
textarea#code(name="code" rows="5" placeholder=`${greeting}` required).post-input-code
14
+
15
+
div.post-submit-row
16
+
button(type="submit").post-input-submit plonk!
+16
src/mixins/post.pug
+16
src/mixins/post.pug
···
1
+
mixin post(paste, didHandleMap)
2
+
div.post
3
+
p
4
+
a(href=`/p/${paste.shortUrl}`)
5
+
| #{paste.title}
6
+
p.post-info
7
+
| by
8
+
a(href=`/u/${encodeURIComponent(paste.authorDid)}`)
9
+
| @#{didHandleMap[paste.authorDid]}
10
+
| ·
11
+
| #{timeDifference(now, Date.parse(paste.createdAt))} ago
12
+
| ·
13
+
| #{paste.lang}
14
+
| ·
15
+
| #{paste.code.split('\n').length} loc
16
+
+30
src/mixins/utils.pug
+30
src/mixins/utils.pug
···
1
+
-
2
+
function randInt(min, max) {
3
+
return Math.floor(Math.random() * (max - min + 1)) + min;
4
+
}
5
+
-
6
+
function timeDifference(current, previous) {
7
+
if (!current || !previous) {
8
+
return '';
9
+
}
10
+
var msPerMinute = 60 * 1000;
11
+
var msPerHour = msPerMinute * 60;
12
+
var msPerDay = msPerHour * 24;
13
+
var msPerMonth = msPerDay * 30;
14
+
var msPerYear = msPerDay * 365;
15
+
var elapsed = current - previous;
16
+
if (elapsed < msPerMinute) {
17
+
return Math.round(elapsed/1000) + 's';
18
+
} else if (elapsed < msPerHour) {
19
+
return Math.round(elapsed/msPerMinute) + 'm';
20
+
} else if (elapsed < msPerDay ) {
21
+
return Math.round(elapsed/msPerHour ) + 'h';
22
+
} else if (elapsed < msPerMonth) {
23
+
return Math.round(elapsed/msPerDay) + 'd';
24
+
} else if (elapsed < msPerYear) {
25
+
return Math.round(elapsed/msPerMonth) + 'mo';
26
+
} else {
27
+
return Math.round(elapsed/msPerYear ) + 'y';
28
+
}
29
+
}
30
+
+149
src/public/styles.css
+149
src/public/styles.css
···
1
+
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap');
2
+
3
+
:root {
4
+
/* Light mode colors */
5
+
--bg-color: white;
6
+
--bg-color-muted: #eee;
7
+
--text-color: black;
8
+
--text-color-muted: #999;
9
+
--blockquote-color: green;
10
+
--link-color: #29BC9B;
11
+
--link-visited-color: #999;
12
+
--accent: var(--link-color);
13
+
--error-text-color: red;
14
+
}
15
+
16
+
@media (prefers-color-scheme: dark) {
17
+
:root {
18
+
--bg-color: black;
19
+
--bg-color-muted: #333;
20
+
--text-color: white;
21
+
--text-color-muted: #777;
22
+
--blockquote-color: lightgreen;
23
+
--link-color: #79ffe1;
24
+
--link-visited-color: #999;
25
+
--accent: var(--link-color);
26
+
--error-text-color: lightcoral;
27
+
}
28
+
}
29
+
30
+
* {
31
+
font-family: 'IBM Plex Mono', monospace;
32
+
}
33
+
34
+
body {
35
+
display: flex;
36
+
flex-direction: row;
37
+
background-color: var(--bg-color);
38
+
color: var(--text-color);
39
+
justify-content: space-around;
40
+
}
41
+
42
+
a {
43
+
color: var(--link-color);
44
+
}
45
+
46
+
a:visited {
47
+
color: var(--link-visited-color);
48
+
}
49
+
50
+
:focus {
51
+
outline: 1px solid var(--accent);
52
+
}
53
+
54
+
pre {
55
+
background-color: var(--bg-color-muted);
56
+
padding: 1rem;
57
+
overflow-x: auto;
58
+
}
59
+
60
+
input, textarea, select, button {
61
+
border: none;
62
+
padding: 1rem;
63
+
background-color: var(--bg-color-muted);
64
+
color: var(--text-color);
65
+
}
66
+
67
+
#content {
68
+
width: 100%;
69
+
}
70
+
71
+
@media (min-width: 768px) {
72
+
#content {
73
+
width: 70%;
74
+
}
75
+
}
76
+
77
+
@media (min-width: 1080px) {
78
+
#content {
79
+
width: 60%;
80
+
}
81
+
}
82
+
83
+
@media (min-width: 2560px) {
84
+
#content {
85
+
width: 50%;
86
+
}
87
+
}
88
+
89
+
textarea {
90
+
resize: vertical;
91
+
}
92
+
93
+
hr {
94
+
border: none;
95
+
border-top: 1px solid var(--bg-color-muted);
96
+
padding: 1rem;
97
+
}
98
+
99
+
.post-form {
100
+
display: flex;
101
+
flex-direction: column;
102
+
gap: 1rem;
103
+
}
104
+
105
+
.post-row, .post-submit-row, .login-row {
106
+
display: flex;
107
+
gap: 1rem;
108
+
}
109
+
110
+
.post-submit-row {
111
+
justify-content: flex-end;
112
+
}
113
+
114
+
.post-input-title {
115
+
flex: 3;
116
+
}
117
+
118
+
.post-input-lang {
119
+
flex: 1;
120
+
}
121
+
122
+
.post-input-code {
123
+
width: 100%;
124
+
}
125
+
126
+
.post-input-submit {
127
+
align-self: flex-end;
128
+
}
129
+
130
+
.timeline {
131
+
display: flex;
132
+
flex-direction: column;
133
+
gap: 1rem;
134
+
}
135
+
136
+
.login-input-title {
137
+
flex: 3
138
+
}
139
+
140
+
.login-submit-button {
141
+
flex: 1
142
+
}
143
+
144
+
.header {
145
+
display: flex;
146
+
flex-direction: row;
147
+
justify-content: space-between;
148
+
align-items: center;
149
+
}
+277
src/routes.ts
+277
src/routes.ts
···
1
+
import path from "node:path";
2
+
import express from "express";
3
+
import { Ctx } from "./";
4
+
import { env } from "#/lib";
5
+
import { getIronSession } from "iron-session";
6
+
import { isValidHandle, AtUri } from "@atproto/syntax";
7
+
import { IncomingMessage, ServerResponse } from "node:http";
8
+
import { Agent } from "@atproto/api";
9
+
import { getPds, DidResolver } from "@atproto/identity";
10
+
import { TID } from "@atproto/common";
11
+
import { newShortUrl } from "#/db";
12
+
13
+
import * as Paste from "#/lexicons/types/ovh/plonk/paste";
14
+
15
+
type Session = {
16
+
did: string;
17
+
};
18
+
19
+
async function getSessionAgent(
20
+
req: IncomingMessage,
21
+
res: ServerResponse<IncomingMessage>,
22
+
ctx: Ctx,
23
+
) {
24
+
const session = await getIronSession<Session>(req, res, {
25
+
cookieName: "plonk-id",
26
+
password: env.COOKIE_SECRET,
27
+
});
28
+
if (!session.did) return null;
29
+
try {
30
+
const oauthSession = await ctx.oauthClient.restore(session.did);
31
+
return oauthSession ? new Agent(oauthSession) : null;
32
+
} catch (err) {
33
+
ctx.logger.warn({ err }, "oauth restore failed");
34
+
session.destroy();
35
+
return null;
36
+
}
37
+
}
38
+
39
+
export const createRouter = (ctx: Ctx) => {
40
+
const router = express.Router();
41
+
42
+
// Static assets
43
+
router.use(
44
+
"/public",
45
+
express.static(path.join(__dirname, "pages", "public")),
46
+
);
47
+
48
+
// OAuth metadata
49
+
router.get("/client-metadata.json", async (_req, res) => {
50
+
return res.json(ctx.oauthClient.clientMetadata);
51
+
});
52
+
53
+
router.get("/oauth/callback", async (req, res) => {
54
+
const params = new URLSearchParams(req.originalUrl.split("?")[1]);
55
+
try {
56
+
const { session } = await ctx.oauthClient.callback(params);
57
+
const clientSession = await getIronSession<Session>(req, res, {
58
+
cookieName: "plonk-id",
59
+
password: env.COOKIE_SECRET,
60
+
});
61
+
ctx.logger.info(clientSession.did, "client session did");
62
+
//assert(!clientSession.did, "session already exists");
63
+
clientSession.did = session.did;
64
+
await clientSession.save();
65
+
} catch (err) {
66
+
ctx.logger.error({ err }, "oauth callback failed");
67
+
return res.redirect("/?error");
68
+
}
69
+
return res.redirect("/");
70
+
});
71
+
72
+
// GET login
73
+
router.get("/login", async (req, res) => {
74
+
return res.render("login");
75
+
});
76
+
router.post("/login", async (req, res) => {
77
+
const agent = await getSessionAgent(req, res, ctx);
78
+
if (agent) {
79
+
return res.redirect("/");
80
+
}
81
+
const handle = req.body?.handle;
82
+
if (typeof handle !== "string" || !isValidHandle(handle)) {
83
+
return res.redirect("/login");
84
+
}
85
+
86
+
try {
87
+
const url = await ctx.oauthClient.authorize(handle, {
88
+
scope: "atproto transition:generic",
89
+
});
90
+
return res.redirect(url.toString());
91
+
} catch (err) {
92
+
ctx.logger.error({ err }, "oauth authorize failed");
93
+
return res.redirect("/login");
94
+
}
95
+
});
96
+
97
+
router.get("/logout", async (req, res) => {
98
+
const session = await getIronSession<Session>(req, res, {
99
+
cookieName: "plonk-id",
100
+
password: env.COOKIE_SECRET,
101
+
});
102
+
session.destroy();
103
+
return res.redirect("/");
104
+
});
105
+
106
+
router.get("/", async (req, res) => {
107
+
const agent = await getSessionAgent(req, res, ctx);
108
+
const pastes = await ctx.db
109
+
.selectFrom("paste")
110
+
.selectAll()
111
+
.orderBy("indexedAt", "desc")
112
+
.limit(25)
113
+
.execute();
114
+
115
+
// Map user DIDs to their domain-name handles
116
+
const didHandleMap = await ctx.resolver.resolveDidsToHandles(
117
+
pastes.map((s) => s.authorDid),
118
+
);
119
+
120
+
if (!agent) {
121
+
return res.render("index", { pastes, didHandleMap });
122
+
}
123
+
124
+
return res.render("index", {
125
+
pastes,
126
+
ownDid: agent.assertDid,
127
+
didHandleMap,
128
+
});
129
+
});
130
+
131
+
router.get("/u/:authorDid", async (req, res) => {
132
+
const { authorDid } = req.params;
133
+
const pastes = await ctx.db
134
+
.selectFrom("paste")
135
+
.selectAll()
136
+
.where("authorDid", "=", authorDid)
137
+
.orderBy("indexedAt", "desc")
138
+
.execute();
139
+
let didHandleMap = {};
140
+
didHandleMap[authorDid] = await ctx.resolver.resolveDidToHandle(authorDid);
141
+
return res.render("user", { pastes, authorDid, didHandleMap });
142
+
});
143
+
144
+
router.get("/p/:shortUrl", async (req, res) => {
145
+
const { shortUrl } = req.params;
146
+
const ret = await ctx.db
147
+
.selectFrom("paste")
148
+
.where("shortUrl", "=", shortUrl)
149
+
.select(["authorDid", "uri"])
150
+
.executeTakeFirst();
151
+
if (!ret) {
152
+
return res.status(404);
153
+
}
154
+
const { authorDid: did, uri } = ret;
155
+
const handle = await ctx.resolver.resolveDidToHandle(did);
156
+
const resolver = new DidResolver({});
157
+
const didDocument = await resolver.resolve(did);
158
+
if (!didDocument) {
159
+
return res.status(404);
160
+
}
161
+
const pds = getPds(didDocument);
162
+
if (!pds) {
163
+
return res.status(404);
164
+
}
165
+
const aturi = new AtUri(uri);
166
+
const url = new URL(`${pds}/xrpc/com.atproto.repo.getRecord`);
167
+
url.searchParams.set("repo", aturi.hostname);
168
+
url.searchParams.set("collection", aturi.collection);
169
+
url.searchParams.set("rkey", aturi.rkey);
170
+
171
+
const response = await fetch(url.toString());
172
+
173
+
if (!response.ok) {
174
+
return res.status(404);
175
+
}
176
+
177
+
const pasteRecord = await response.json();
178
+
const paste =
179
+
Paste.isRecord(pasteRecord.value) &&
180
+
Paste.validateRecord(pasteRecord.value).success
181
+
? pasteRecord.value
182
+
: {};
183
+
184
+
return res.render("paste", { paste, handle, shortUrl });
185
+
});
186
+
187
+
router.get("/r/:shortUrl", async (req, res) => {
188
+
const { shortUrl } = req.params;
189
+
const ret = await ctx.db
190
+
.selectFrom("paste")
191
+
.where("shortUrl", "=", shortUrl)
192
+
.select(["code"])
193
+
.executeTakeFirst();
194
+
if (!ret) {
195
+
return res.status(404);
196
+
}
197
+
198
+
res.set("Content-Type", "text/plain; charset=utf-8");
199
+
return res.send(ret.code);
200
+
});
201
+
202
+
router.post("/paste", async (req, res) => {
203
+
const agent = await getSessionAgent(req, res, ctx);
204
+
if (!agent) {
205
+
return res
206
+
.status(401)
207
+
.type("html")
208
+
.send("<h1>Error: Session required</h1>");
209
+
}
210
+
211
+
const rkey = TID.nextStr();
212
+
const record = {
213
+
$type: "ovh.plonk.paste",
214
+
code: req.body?.code,
215
+
lang: req.body?.lang,
216
+
title: req.body?.title,
217
+
createdAt: new Date().toISOString(),
218
+
};
219
+
220
+
if (!Paste.validateRecord(record).success) {
221
+
return res
222
+
.status(400)
223
+
.type("html")
224
+
.send("<h1>Error: Invalid status</h1>");
225
+
}
226
+
227
+
let uri;
228
+
try {
229
+
const res = await agent.com.atproto.repo.putRecord({
230
+
repo: agent.assertDid,
231
+
collection: "ovh.plonk.paste",
232
+
rkey,
233
+
record,
234
+
validate: false,
235
+
});
236
+
uri = res.data.uri;
237
+
} catch (err) {
238
+
ctx.logger.warn({ err }, "failed to put record");
239
+
return res
240
+
.status(500)
241
+
.type("html")
242
+
.send("<h3>Error: Failed to write record</h1>");
243
+
}
244
+
245
+
try {
246
+
const shortUrl = await newShortUrl(ctx.db);
247
+
await ctx.db
248
+
.insertInto("paste")
249
+
.values({
250
+
uri,
251
+
shortUrl,
252
+
authorDid: agent.assertDid,
253
+
code: record.code,
254
+
lang: record.lang,
255
+
title: record.title,
256
+
createdAt: record.createdAt,
257
+
indexedAt: new Date().toISOString(),
258
+
})
259
+
.execute();
260
+
ctx.logger.info(res, "wrote back to db");
261
+
return res.redirect(`/p/${shortUrl}`);
262
+
} catch (err) {
263
+
ctx.logger.warn(
264
+
{ err },
265
+
"failed to update computed view; ignoring as it should be caught by the firehose",
266
+
);
267
+
}
268
+
269
+
return res.redirect("/");
270
+
});
271
+
272
+
return router;
273
+
};
274
+
275
+
// https://pds.icyphox.sh/xrpc/com.atproto.repo.getRecord?repo=did%3Aplc%3A3ft67n4xnawzq4qi7mcksxj5
276
+
// at://did:plc:3ft67n4xnawzq4qi7mcksxj5/ovh.plonk.paste/3lcs3lnslbk2d
277
+
// https://pds.icyphox.sh/xrpc/com.atproto.repo.getRecord?repo=did%3Aplc%3A3ft67n4xnawzq4qi7mcksxj5&collection=ovh.plonk.paste&rkey=3lcqt7newvc2c
+47
src/views/index.pug
+47
src/views/index.pug
···
1
+
include ../mixins/mkPost
2
+
include ../mixins/head
3
+
include ../mixins/utils
4
+
include ../mixins/post
5
+
6
+
- var now = new Date()
7
+
-
8
+
var langs = ["plaintext"]
9
+
.concat([
10
+
"javascript",
11
+
"typescript",
12
+
"java",
13
+
"rust",
14
+
"go",
15
+
"python",
16
+
"ruby",
17
+
"php",
18
+
"c",
19
+
"c#",
20
+
"c++",
21
+
].toSorted())
22
+
doctype html
23
+
html
24
+
+head("timeline")
25
+
body
26
+
main#content
27
+
div.header
28
+
div.left-side
29
+
if ownDid
30
+
| logged in as @#{didHandleMap[ownDid]}
31
+
div.right-side
32
+
if ownDid
33
+
p
34
+
a(href=`/u/${encodeURIComponent(ownDid)}`) my plonks
35
+
| ·
36
+
a(href="/logout") logout
37
+
else
38
+
p
39
+
a(href="/login") login
40
+
| to get plonkin'
41
+
42
+
if ownDid
43
+
+mkPost()
44
+
45
+
div.timeline
46
+
each paste in pastes
47
+
+post(paste, didHandleMap)
+17
src/views/login.pug
+17
src/views/login.pug
···
1
+
doctype html
2
+
html
3
+
head
4
+
meta(name="viewport" content="width=device-width, initial-scale=1.0")
5
+
meta(charset='UTF-8')
6
+
title login
7
+
link(rel="stylesheet", href="/styles.css")
8
+
link(rel="preconnect" href="https://rsms.me/")
9
+
link(rel="stylesheet" href="https://rsms.me/inter/inter.css")
10
+
script(src="https://cdn.dashjs.org/latest/dash.all.min.js")
11
+
body
12
+
main#content
13
+
h1 login
14
+
form(action='/login' method="post")
15
+
div.login-row
16
+
input(type="text" name="handle" placeholder="enter handle" required).login-input-title
17
+
button(type="submit").login-submit-button login
+17
src/views/paste.pug
+17
src/views/paste.pug
···
1
+
- var now = new Date()
2
+
include ../mixins/head
3
+
include ../mixins/utils
4
+
doctype html
5
+
html
6
+
+head(paste.title)
7
+
body
8
+
main#content
9
+
h1 #{paste.title}
10
+
p
11
+
| by @#{handle} ·
12
+
| #{timeDifference(now, Date.parse(paste.createdAt))} ago ·
13
+
| #{paste.lang} ·
14
+
| #{paste.code.split('\n').length} loc ·
15
+
a(href=`/r/${shortUrl}`) raw
16
+
pre
17
+
| #{paste.code}
+14
src/views/user.pug
+14
src/views/user.pug
···
1
+
- var now = new Date()
2
+
- var handle = didHandleMap[authorDid]
3
+
include ../mixins/head
4
+
include ../mixins/utils
5
+
include ../mixins/post
6
+
doctype html
7
+
html
8
+
+head(handle)
9
+
body
10
+
main#content
11
+
h1 plonks by @#{handle}
12
+
div.timeline
13
+
each paste in pastes
14
+
+post(paste, didHandleMap)
+19
tsconfig.json
+19
tsconfig.json
···
1
+
{
2
+
"compilerOptions": {
3
+
"target": "ESNext",
4
+
"module": "CommonJS",
5
+
"baseUrl": ".",
6
+
"paths": {
7
+
"#/*": ["src/*"]
8
+
},
9
+
"moduleResolution": "Node10",
10
+
"outDir": "dist",
11
+
"importsNotUsedAsValues": "remove",
12
+
"strict": true,
13
+
"esModuleInterop": true,
14
+
"skipLibCheck": true,
15
+
"forceConsistentCasingInFileNames": true
16
+
},
17
+
"include": ["src/**/*"],
18
+
"exclude": ["node_modules"]
19
+
}