├── .editorconfig
├── .github
├── dependabot.yml
└── workflows
│ ├── deploy.yml
│ └── lint.yml
├── .gitignore
├── .node-version
├── .prettierignore
├── .prettierrc
├── LICENSE
├── eslint.config.js
├── package.json
├── pnpm-lock.yaml
├── shell.nix
├── src
├── esbuild.d.ts
├── index.ts
└── index.txt
├── tsconfig.json
└── wrangler.jsonc
/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | indent_style = tab
6 | tab_width = 2
7 | end_of_line = lf
8 | charset = utf-8
9 | trim_trailing_whitespace = true
10 | insert_final_newline = true
11 |
12 | [*.yml]
13 | indent_style = space
14 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 |
3 | updates:
4 | - package-ecosystem: 'github-actions'
5 | directory: '/'
6 | schedule:
7 | interval: 'weekly'
8 | - package-ecosystem: 'npm'
9 | directory: '/'
10 | schedule:
11 | interval: 'weekly'
12 |
--------------------------------------------------------------------------------
/.github/workflows/deploy.yml:
--------------------------------------------------------------------------------
1 | name: Deploy
2 |
3 | on:
4 | push:
5 | branches: [main]
6 |
7 | jobs:
8 | deploy:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Checkout repository
12 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4
13 |
14 | - name: Setup pnpm
15 | uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # ratchet:pnpm/action-setup@v4
16 | - name: Setup Node.js
17 | uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ratchet:actions/setup-node@v4
18 | with:
19 | node-version-file: .node-version
20 | cache: pnpm
21 | cache-dependency-path: pnpm-lock.yaml
22 |
23 | - name: Install dependencies
24 | run: pnpm install --frozen-lockfile
25 |
26 | - name: Deploy
27 | run: pnpm run deploy
28 | env:
29 | CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
30 |
--------------------------------------------------------------------------------
/.github/workflows/lint.yml:
--------------------------------------------------------------------------------
1 | name: Lint
2 |
3 | on:
4 | push:
5 | branches: [main]
6 | pull_request:
7 | branches: [main]
8 |
9 | jobs:
10 | lint:
11 | runs-on: ubuntu-latest
12 | permissions:
13 | contents: read
14 | security-events: write
15 |
16 | steps:
17 | - name: Checkout repository
18 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4
19 |
20 | - name: Setup pnpm
21 | uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # ratchet:pnpm/action-setup@v4
22 | - name: Setup Node.js
23 | uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ratchet:actions/setup-node@v4
24 | with:
25 | node-version-file: .node-version
26 | cache: pnpm
27 | cache-dependency-path: pnpm-lock.yaml
28 |
29 | - name: Install dependencies
30 | run: pnpm install --frozen-lockfile
31 |
32 | - name: Lint
33 | run: pnpm run lint -f @microsoft/eslint-formatter-sarif -o /tmp/lint.sarif
34 | continue-on-error: true
35 |
36 | - name: Strip suppressed results
37 | run: pnpm dlx @ryanccn/sarif-strip-suppressed /tmp/lint.sarif
38 |
39 | - name: Upload results
40 | uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # ratchet:github/codeql-action/upload-sarif@v3
41 | with:
42 | sarif_file: /tmp/lint.sarif
43 | wait-for-processing: true
44 |
45 | check:
46 | runs-on: ubuntu-latest
47 | permissions:
48 | contents: read
49 |
50 | steps:
51 | - name: Checkout repository
52 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4
53 |
54 | - name: Setup pnpm
55 | uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # ratchet:pnpm/action-setup@v4
56 | - name: Setup Node.js
57 | uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # ratchet:actions/setup-node@v4
58 | with:
59 | node-version-file: .node-version
60 | cache: pnpm
61 | cache-dependency-path: pnpm-lock.yaml
62 |
63 | - name: Install dependencies
64 | run: pnpm install --frozen-lockfile
65 |
66 | - name: Check
67 | run: pnpm run check
68 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # macOS
2 | .DS_Store
3 |
4 | # Node.js
5 | node_modules/
6 |
7 | # wrangler
8 | .dev.vars
9 | .wrangler/
10 | dist/
11 |
12 | # IDEs
13 | .idea/
14 | .vscode/*
15 | !.vscode/extensions.json
16 |
--------------------------------------------------------------------------------
/.node-version:
--------------------------------------------------------------------------------
1 | 24
2 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | pnpm-lock.yaml
2 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "singleQuote": true,
4 | "semi": true,
5 | "useTabs": true
6 | }
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU AFFERO GENERAL PUBLIC LICENSE
2 | Version 3, 19 November 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU Affero General Public License is a free, copyleft license for
11 | software and other kinds of works, specifically designed to ensure
12 | cooperation with the community in the case of network server software.
13 |
14 | The licenses for most software and other practical works are designed
15 | to take away your freedom to share and change the works. By contrast,
16 | our General Public Licenses are intended to guarantee your freedom to
17 | share and change all versions of a program--to make sure it remains free
18 | software for all its users.
19 |
20 | When we speak of free software, we are referring to freedom, not
21 | price. Our General Public Licenses are designed to make sure that you
22 | have the freedom to distribute copies of free software (and charge for
23 | them if you wish), that you receive source code or can get it if you
24 | want it, that you can change the software or use pieces of it in new
25 | free programs, and that you know you can do these things.
26 |
27 | Developers that use our General Public Licenses protect your rights
28 | with two steps: (1) assert copyright on the software, and (2) offer
29 | you this License which gives you legal permission to copy, distribute
30 | and/or modify the software.
31 |
32 | A secondary benefit of defending all users' freedom is that
33 | improvements made in alternate versions of the program, if they
34 | receive widespread use, become available for other developers to
35 | incorporate. Many developers of free software are heartened and
36 | encouraged by the resulting cooperation. However, in the case of
37 | software used on network servers, this result may fail to come about.
38 | The GNU General Public License permits making a modified version and
39 | letting the public access it on a server without ever releasing its
40 | source code to the public.
41 |
42 | The GNU Affero General Public License is designed specifically to
43 | ensure that, in such cases, the modified source code becomes available
44 | to the community. It requires the operator of a network server to
45 | provide the source code of the modified version running there to the
46 | users of that server. Therefore, public use of a modified version, on
47 | a publicly accessible server, gives the public access to the source
48 | code of the modified version.
49 |
50 | An older license, called the Affero General Public License and
51 | published by Affero, was designed to accomplish similar goals. This is
52 | a different license, not a version of the Affero GPL, but Affero has
53 | released a new version of the Affero GPL which permits relicensing under
54 | this license.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | TERMS AND CONDITIONS
60 |
61 | 0. Definitions.
62 |
63 | "This License" refers to version 3 of the GNU Affero General Public License.
64 |
65 | "Copyright" also means copyright-like laws that apply to other kinds of
66 | works, such as semiconductor masks.
67 |
68 | "The Program" refers to any copyrightable work licensed under this
69 | License. Each licensee is addressed as "you". "Licensees" and
70 | "recipients" may be individuals or organizations.
71 |
72 | To "modify" a work means to copy from or adapt all or part of the work
73 | in a fashion requiring copyright permission, other than the making of an
74 | exact copy. The resulting work is called a "modified version" of the
75 | earlier work or a work "based on" the earlier work.
76 |
77 | A "covered work" means either the unmodified Program or a work based
78 | on the Program.
79 |
80 | To "propagate" a work means to do anything with it that, without
81 | permission, would make you directly or secondarily liable for
82 | infringement under applicable copyright law, except executing it on a
83 | computer or modifying a private copy. Propagation includes copying,
84 | distribution (with or without modification), making available to the
85 | public, and in some countries other activities as well.
86 |
87 | To "convey" a work means any kind of propagation that enables other
88 | parties to make or receive copies. Mere interaction with a user through
89 | a computer network, with no transfer of a copy, is not conveying.
90 |
91 | An interactive user interface displays "Appropriate Legal Notices"
92 | to the extent that it includes a convenient and prominently visible
93 | feature that (1) displays an appropriate copyright notice, and (2)
94 | tells the user that there is no warranty for the work (except to the
95 | extent that warranties are provided), that licensees may convey the
96 | work under this License, and how to view a copy of this License. If
97 | the interface presents a list of user commands or options, such as a
98 | menu, a prominent item in the list meets this criterion.
99 |
100 | 1. Source Code.
101 |
102 | The "source code" for a work means the preferred form of the work
103 | for making modifications to it. "Object code" means any non-source
104 | form of a work.
105 |
106 | A "Standard Interface" means an interface that either is an official
107 | standard defined by a recognized standards body, or, in the case of
108 | interfaces specified for a particular programming language, one that
109 | is widely used among developers working in that language.
110 |
111 | The "System Libraries" of an executable work include anything, other
112 | than the work as a whole, that (a) is included in the normal form of
113 | packaging a Major Component, but which is not part of that Major
114 | Component, and (b) serves only to enable use of the work with that
115 | Major Component, or to implement a Standard Interface for which an
116 | implementation is available to the public in source code form. A
117 | "Major Component", in this context, means a major essential component
118 | (kernel, window system, and so on) of the specific operating system
119 | (if any) on which the executable work runs, or a compiler used to
120 | produce the work, or an object code interpreter used to run it.
121 |
122 | The "Corresponding Source" for a work in object code form means all
123 | the source code needed to generate, install, and (for an executable
124 | work) run the object code and to modify the work, including scripts to
125 | control those activities. However, it does not include the work's
126 | System Libraries, or general-purpose tools or generally available free
127 | programs which are used unmodified in performing those activities but
128 | which are not part of the work. For example, Corresponding Source
129 | includes interface definition files associated with source files for
130 | the work, and the source code for shared libraries and dynamically
131 | linked subprograms that the work is specifically designed to require,
132 | such as by intimate data communication or control flow between those
133 | subprograms and other parts of the work.
134 |
135 | The Corresponding Source need not include anything that users
136 | can regenerate automatically from other parts of the Corresponding
137 | Source.
138 |
139 | The Corresponding Source for a work in source code form is that
140 | same work.
141 |
142 | 2. Basic Permissions.
143 |
144 | All rights granted under this License are granted for the term of
145 | copyright on the Program, and are irrevocable provided the stated
146 | conditions are met. This License explicitly affirms your unlimited
147 | permission to run the unmodified Program. The output from running a
148 | covered work is covered by this License only if the output, given its
149 | content, constitutes a covered work. This License acknowledges your
150 | rights of fair use or other equivalent, as provided by copyright law.
151 |
152 | You may make, run and propagate covered works that you do not
153 | convey, without conditions so long as your license otherwise remains
154 | in force. You may convey covered works to others for the sole purpose
155 | of having them make modifications exclusively for you, or provide you
156 | with facilities for running those works, provided that you comply with
157 | the terms of this License in conveying all material for which you do
158 | not control copyright. Those thus making or running the covered works
159 | for you must do so exclusively on your behalf, under your direction
160 | and control, on terms that prohibit them from making any copies of
161 | your copyrighted material outside their relationship with you.
162 |
163 | Conveying under any other circumstances is permitted solely under
164 | the conditions stated below. Sublicensing is not allowed; section 10
165 | makes it unnecessary.
166 |
167 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
168 |
169 | No covered work shall be deemed part of an effective technological
170 | measure under any applicable law fulfilling obligations under article
171 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
172 | similar laws prohibiting or restricting circumvention of such
173 | measures.
174 |
175 | When you convey a covered work, you waive any legal power to forbid
176 | circumvention of technological measures to the extent such circumvention
177 | is effected by exercising rights under this License with respect to
178 | the covered work, and you disclaim any intention to limit operation or
179 | modification of the work as a means of enforcing, against the work's
180 | users, your or third parties' legal rights to forbid circumvention of
181 | technological measures.
182 |
183 | 4. Conveying Verbatim Copies.
184 |
185 | You may convey verbatim copies of the Program's source code as you
186 | receive it, in any medium, provided that you conspicuously and
187 | appropriately publish on each copy an appropriate copyright notice;
188 | keep intact all notices stating that this License and any
189 | non-permissive terms added in accord with section 7 apply to the code;
190 | keep intact all notices of the absence of any warranty; and give all
191 | recipients a copy of this License along with the Program.
192 |
193 | You may charge any price or no price for each copy that you convey,
194 | and you may offer support or warranty protection for a fee.
195 |
196 | 5. Conveying Modified Source Versions.
197 |
198 | You may convey a work based on the Program, or the modifications to
199 | produce it from the Program, in the form of source code under the
200 | terms of section 4, provided that you also meet all of these conditions:
201 |
202 | a) The work must carry prominent notices stating that you modified
203 | it, and giving a relevant date.
204 |
205 | b) The work must carry prominent notices stating that it is
206 | released under this License and any conditions added under section
207 | 7. This requirement modifies the requirement in section 4 to
208 | "keep intact all notices".
209 |
210 | c) You must license the entire work, as a whole, under this
211 | License to anyone who comes into possession of a copy. This
212 | License will therefore apply, along with any applicable section 7
213 | additional terms, to the whole of the work, and all its parts,
214 | regardless of how they are packaged. This License gives no
215 | permission to license the work in any other way, but it does not
216 | invalidate such permission if you have separately received it.
217 |
218 | d) If the work has interactive user interfaces, each must display
219 | Appropriate Legal Notices; however, if the Program has interactive
220 | interfaces that do not display Appropriate Legal Notices, your
221 | work need not make them do so.
222 |
223 | A compilation of a covered work with other separate and independent
224 | works, which are not by their nature extensions of the covered work,
225 | and which are not combined with it such as to form a larger program,
226 | in or on a volume of a storage or distribution medium, is called an
227 | "aggregate" if the compilation and its resulting copyright are not
228 | used to limit the access or legal rights of the compilation's users
229 | beyond what the individual works permit. Inclusion of a covered work
230 | in an aggregate does not cause this License to apply to the other
231 | parts of the aggregate.
232 |
233 | 6. Conveying Non-Source Forms.
234 |
235 | You may convey a covered work in object code form under the terms
236 | of sections 4 and 5, provided that you also convey the
237 | machine-readable Corresponding Source under the terms of this License,
238 | in one of these ways:
239 |
240 | a) Convey the object code in, or embodied in, a physical product
241 | (including a physical distribution medium), accompanied by the
242 | Corresponding Source fixed on a durable physical medium
243 | customarily used for software interchange.
244 |
245 | b) Convey the object code in, or embodied in, a physical product
246 | (including a physical distribution medium), accompanied by a
247 | written offer, valid for at least three years and valid for as
248 | long as you offer spare parts or customer support for that product
249 | model, to give anyone who possesses the object code either (1) a
250 | copy of the Corresponding Source for all the software in the
251 | product that is covered by this License, on a durable physical
252 | medium customarily used for software interchange, for a price no
253 | more than your reasonable cost of physically performing this
254 | conveying of source, or (2) access to copy the
255 | Corresponding Source from a network server at no charge.
256 |
257 | c) Convey individual copies of the object code with a copy of the
258 | written offer to provide the Corresponding Source. This
259 | alternative is allowed only occasionally and noncommercially, and
260 | only if you received the object code with such an offer, in accord
261 | with subsection 6b.
262 |
263 | d) Convey the object code by offering access from a designated
264 | place (gratis or for a charge), and offer equivalent access to the
265 | Corresponding Source in the same way through the same place at no
266 | further charge. You need not require recipients to copy the
267 | Corresponding Source along with the object code. If the place to
268 | copy the object code is a network server, the Corresponding Source
269 | may be on a different server (operated by you or a third party)
270 | that supports equivalent copying facilities, provided you maintain
271 | clear directions next to the object code saying where to find the
272 | Corresponding Source. Regardless of what server hosts the
273 | Corresponding Source, you remain obligated to ensure that it is
274 | available for as long as needed to satisfy these requirements.
275 |
276 | e) Convey the object code using peer-to-peer transmission, provided
277 | you inform other peers where the object code and Corresponding
278 | Source of the work are being offered to the general public at no
279 | charge under subsection 6d.
280 |
281 | A separable portion of the object code, whose source code is excluded
282 | from the Corresponding Source as a System Library, need not be
283 | included in conveying the object code work.
284 |
285 | A "User Product" is either (1) a "consumer product", which means any
286 | tangible personal property which is normally used for personal, family,
287 | or household purposes, or (2) anything designed or sold for incorporation
288 | into a dwelling. In determining whether a product is a consumer product,
289 | doubtful cases shall be resolved in favor of coverage. For a particular
290 | product received by a particular user, "normally used" refers to a
291 | typical or common use of that class of product, regardless of the status
292 | of the particular user or of the way in which the particular user
293 | actually uses, or expects or is expected to use, the product. A product
294 | is a consumer product regardless of whether the product has substantial
295 | commercial, industrial or non-consumer uses, unless such uses represent
296 | the only significant mode of use of the product.
297 |
298 | "Installation Information" for a User Product means any methods,
299 | procedures, authorization keys, or other information required to install
300 | and execute modified versions of a covered work in that User Product from
301 | a modified version of its Corresponding Source. The information must
302 | suffice to ensure that the continued functioning of the modified object
303 | code is in no case prevented or interfered with solely because
304 | modification has been made.
305 |
306 | If you convey an object code work under this section in, or with, or
307 | specifically for use in, a User Product, and the conveying occurs as
308 | part of a transaction in which the right of possession and use of the
309 | User Product is transferred to the recipient in perpetuity or for a
310 | fixed term (regardless of how the transaction is characterized), the
311 | Corresponding Source conveyed under this section must be accompanied
312 | by the Installation Information. But this requirement does not apply
313 | if neither you nor any third party retains the ability to install
314 | modified object code on the User Product (for example, the work has
315 | been installed in ROM).
316 |
317 | The requirement to provide Installation Information does not include a
318 | requirement to continue to provide support service, warranty, or updates
319 | for a work that has been modified or installed by the recipient, or for
320 | the User Product in which it has been modified or installed. Access to a
321 | network may be denied when the modification itself materially and
322 | adversely affects the operation of the network or violates the rules and
323 | protocols for communication across the network.
324 |
325 | Corresponding Source conveyed, and Installation Information provided,
326 | in accord with this section must be in a format that is publicly
327 | documented (and with an implementation available to the public in
328 | source code form), and must require no special password or key for
329 | unpacking, reading or copying.
330 |
331 | 7. Additional Terms.
332 |
333 | "Additional permissions" are terms that supplement the terms of this
334 | License by making exceptions from one or more of its conditions.
335 | Additional permissions that are applicable to the entire Program shall
336 | be treated as though they were included in this License, to the extent
337 | that they are valid under applicable law. If additional permissions
338 | apply only to part of the Program, that part may be used separately
339 | under those permissions, but the entire Program remains governed by
340 | this License without regard to the additional permissions.
341 |
342 | When you convey a copy of a covered work, you may at your option
343 | remove any additional permissions from that copy, or from any part of
344 | it. (Additional permissions may be written to require their own
345 | removal in certain cases when you modify the work.) You may place
346 | additional permissions on material, added by you to a covered work,
347 | for which you have or can give appropriate copyright permission.
348 |
349 | Notwithstanding any other provision of this License, for material you
350 | add to a covered work, you may (if authorized by the copyright holders of
351 | that material) supplement the terms of this License with terms:
352 |
353 | a) Disclaiming warranty or limiting liability differently from the
354 | terms of sections 15 and 16 of this License; or
355 |
356 | b) Requiring preservation of specified reasonable legal notices or
357 | author attributions in that material or in the Appropriate Legal
358 | Notices displayed by works containing it; or
359 |
360 | c) Prohibiting misrepresentation of the origin of that material, or
361 | requiring that modified versions of such material be marked in
362 | reasonable ways as different from the original version; or
363 |
364 | d) Limiting the use for publicity purposes of names of licensors or
365 | authors of the material; or
366 |
367 | e) Declining to grant rights under trademark law for use of some
368 | trade names, trademarks, or service marks; or
369 |
370 | f) Requiring indemnification of licensors and authors of that
371 | material by anyone who conveys the material (or modified versions of
372 | it) with contractual assumptions of liability to the recipient, for
373 | any liability that these contractual assumptions directly impose on
374 | those licensors and authors.
375 |
376 | All other non-permissive additional terms are considered "further
377 | restrictions" within the meaning of section 10. If the Program as you
378 | received it, or any part of it, contains a notice stating that it is
379 | governed by this License along with a term that is a further
380 | restriction, you may remove that term. If a license document contains
381 | a further restriction but permits relicensing or conveying under this
382 | License, you may add to a covered work material governed by the terms
383 | of that license document, provided that the further restriction does
384 | not survive such relicensing or conveying.
385 |
386 | If you add terms to a covered work in accord with this section, you
387 | must place, in the relevant source files, a statement of the
388 | additional terms that apply to those files, or a notice indicating
389 | where to find the applicable terms.
390 |
391 | Additional terms, permissive or non-permissive, may be stated in the
392 | form of a separately written license, or stated as exceptions;
393 | the above requirements apply either way.
394 |
395 | 8. Termination.
396 |
397 | You may not propagate or modify a covered work except as expressly
398 | provided under this License. Any attempt otherwise to propagate or
399 | modify it is void, and will automatically terminate your rights under
400 | this License (including any patent licenses granted under the third
401 | paragraph of section 11).
402 |
403 | However, if you cease all violation of this License, then your
404 | license from a particular copyright holder is reinstated (a)
405 | provisionally, unless and until the copyright holder explicitly and
406 | finally terminates your license, and (b) permanently, if the copyright
407 | holder fails to notify you of the violation by some reasonable means
408 | prior to 60 days after the cessation.
409 |
410 | Moreover, your license from a particular copyright holder is
411 | reinstated permanently if the copyright holder notifies you of the
412 | violation by some reasonable means, this is the first time you have
413 | received notice of violation of this License (for any work) from that
414 | copyright holder, and you cure the violation prior to 30 days after
415 | your receipt of the notice.
416 |
417 | Termination of your rights under this section does not terminate the
418 | licenses of parties who have received copies or rights from you under
419 | this License. If your rights have been terminated and not permanently
420 | reinstated, you do not qualify to receive new licenses for the same
421 | material under section 10.
422 |
423 | 9. Acceptance Not Required for Having Copies.
424 |
425 | You are not required to accept this License in order to receive or
426 | run a copy of the Program. Ancillary propagation of a covered work
427 | occurring solely as a consequence of using peer-to-peer transmission
428 | to receive a copy likewise does not require acceptance. However,
429 | nothing other than this License grants you permission to propagate or
430 | modify any covered work. These actions infringe copyright if you do
431 | not accept this License. Therefore, by modifying or propagating a
432 | covered work, you indicate your acceptance of this License to do so.
433 |
434 | 10. Automatic Licensing of Downstream Recipients.
435 |
436 | Each time you convey a covered work, the recipient automatically
437 | receives a license from the original licensors, to run, modify and
438 | propagate that work, subject to this License. You are not responsible
439 | for enforcing compliance by third parties with this License.
440 |
441 | An "entity transaction" is a transaction transferring control of an
442 | organization, or substantially all assets of one, or subdividing an
443 | organization, or merging organizations. If propagation of a covered
444 | work results from an entity transaction, each party to that
445 | transaction who receives a copy of the work also receives whatever
446 | licenses to the work the party's predecessor in interest had or could
447 | give under the previous paragraph, plus a right to possession of the
448 | Corresponding Source of the work from the predecessor in interest, if
449 | the predecessor has it or can get it with reasonable efforts.
450 |
451 | You may not impose any further restrictions on the exercise of the
452 | rights granted or affirmed under this License. For example, you may
453 | not impose a license fee, royalty, or other charge for exercise of
454 | rights granted under this License, and you may not initiate litigation
455 | (including a cross-claim or counterclaim in a lawsuit) alleging that
456 | any patent claim is infringed by making, using, selling, offering for
457 | sale, or importing the Program or any portion of it.
458 |
459 | 11. Patents.
460 |
461 | A "contributor" is a copyright holder who authorizes use under this
462 | License of the Program or a work on which the Program is based. The
463 | work thus licensed is called the contributor's "contributor version".
464 |
465 | A contributor's "essential patent claims" are all patent claims
466 | owned or controlled by the contributor, whether already acquired or
467 | hereafter acquired, that would be infringed by some manner, permitted
468 | by this License, of making, using, or selling its contributor version,
469 | but do not include claims that would be infringed only as a
470 | consequence of further modification of the contributor version. For
471 | purposes of this definition, "control" includes the right to grant
472 | patent sublicenses in a manner consistent with the requirements of
473 | this License.
474 |
475 | Each contributor grants you a non-exclusive, worldwide, royalty-free
476 | patent license under the contributor's essential patent claims, to
477 | make, use, sell, offer for sale, import and otherwise run, modify and
478 | propagate the contents of its contributor version.
479 |
480 | In the following three paragraphs, a "patent license" is any express
481 | agreement or commitment, however denominated, not to enforce a patent
482 | (such as an express permission to practice a patent or covenant not to
483 | sue for patent infringement). To "grant" such a patent license to a
484 | party means to make such an agreement or commitment not to enforce a
485 | patent against the party.
486 |
487 | If you convey a covered work, knowingly relying on a patent license,
488 | and the Corresponding Source of the work is not available for anyone
489 | to copy, free of charge and under the terms of this License, through a
490 | publicly available network server or other readily accessible means,
491 | then you must either (1) cause the Corresponding Source to be so
492 | available, or (2) arrange to deprive yourself of the benefit of the
493 | patent license for this particular work, or (3) arrange, in a manner
494 | consistent with the requirements of this License, to extend the patent
495 | license to downstream recipients. "Knowingly relying" means you have
496 | actual knowledge that, but for the patent license, your conveying the
497 | covered work in a country, or your recipient's use of the covered work
498 | in a country, would infringe one or more identifiable patents in that
499 | country that you have reason to believe are valid.
500 |
501 | If, pursuant to or in connection with a single transaction or
502 | arrangement, you convey, or propagate by procuring conveyance of, a
503 | covered work, and grant a patent license to some of the parties
504 | receiving the covered work authorizing them to use, propagate, modify
505 | or convey a specific copy of the covered work, then the patent license
506 | you grant is automatically extended to all recipients of the covered
507 | work and works based on it.
508 |
509 | A patent license is "discriminatory" if it does not include within
510 | the scope of its coverage, prohibits the exercise of, or is
511 | conditioned on the non-exercise of one or more of the rights that are
512 | specifically granted under this License. You may not convey a covered
513 | work if you are a party to an arrangement with a third party that is
514 | in the business of distributing software, under which you make payment
515 | to the third party based on the extent of your activity of conveying
516 | the work, and under which the third party grants, to any of the
517 | parties who would receive the covered work from you, a discriminatory
518 | patent license (a) in connection with copies of the covered work
519 | conveyed by you (or copies made from those copies), or (b) primarily
520 | for and in connection with specific products or compilations that
521 | contain the covered work, unless you entered into that arrangement,
522 | or that patent license was granted, prior to 28 March 2007.
523 |
524 | Nothing in this License shall be construed as excluding or limiting
525 | any implied license or other defenses to infringement that may
526 | otherwise be available to you under applicable patent law.
527 |
528 | 12. No Surrender of Others' Freedom.
529 |
530 | If conditions are imposed on you (whether by court order, agreement or
531 | otherwise) that contradict the conditions of this License, they do not
532 | excuse you from the conditions of this License. If you cannot convey a
533 | covered work so as to satisfy simultaneously your obligations under this
534 | License and any other pertinent obligations, then as a consequence you may
535 | not convey it at all. For example, if you agree to terms that obligate you
536 | to collect a royalty for further conveying from those to whom you convey
537 | the Program, the only way you could satisfy both those terms and this
538 | License would be to refrain entirely from conveying the Program.
539 |
540 | 13. Remote Network Interaction; Use with the GNU General Public License.
541 |
542 | Notwithstanding any other provision of this License, if you modify the
543 | Program, your modified version must prominently offer all users
544 | interacting with it remotely through a computer network (if your version
545 | supports such interaction) an opportunity to receive the Corresponding
546 | Source of your version by providing access to the Corresponding Source
547 | from a network server at no charge, through some standard or customary
548 | means of facilitating copying of software. This Corresponding Source
549 | shall include the Corresponding Source for any work covered by version 3
550 | of the GNU General Public License that is incorporated pursuant to the
551 | following paragraph.
552 |
553 | Notwithstanding any other provision of this License, you have
554 | permission to link or combine any covered work with a work licensed
555 | under version 3 of the GNU General Public License into a single
556 | combined work, and to convey the resulting work. The terms of this
557 | License will continue to apply to the part which is the covered work,
558 | but the work with which it is combined will remain governed by version
559 | 3 of the GNU General Public License.
560 |
561 | 14. Revised Versions of this License.
562 |
563 | The Free Software Foundation may publish revised and/or new versions of
564 | the GNU Affero General Public License from time to time. Such new versions
565 | will be similar in spirit to the present version, but may differ in detail to
566 | address new problems or concerns.
567 |
568 | Each version is given a distinguishing version number. If the
569 | Program specifies that a certain numbered version of the GNU Affero General
570 | Public License "or any later version" applies to it, you have the
571 | option of following the terms and conditions either of that numbered
572 | version or of any later version published by the Free Software
573 | Foundation. If the Program does not specify a version number of the
574 | GNU Affero General Public License, you may choose any version ever published
575 | by the Free Software Foundation.
576 |
577 | If the Program specifies that a proxy can decide which future
578 | versions of the GNU Affero General Public License can be used, that proxy's
579 | public statement of acceptance of a version permanently authorizes you
580 | to choose that version for the Program.
581 |
582 | Later license versions may give you additional or different
583 | permissions. However, no additional obligations are imposed on any
584 | author or copyright holder as a result of your choosing to follow a
585 | later version.
586 |
587 | 15. Disclaimer of Warranty.
588 |
589 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
590 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
591 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
592 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
593 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
594 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
595 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
596 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
597 |
598 | 16. Limitation of Liability.
599 |
600 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
601 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
602 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
603 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
604 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
605 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
606 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
607 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
608 | SUCH DAMAGES.
609 |
610 | 17. Interpretation of Sections 15 and 16.
611 |
612 | If the disclaimer of warranty and limitation of liability provided
613 | above cannot be given local legal effect according to their terms,
614 | reviewing courts shall apply local law that most closely approximates
615 | an absolute waiver of all civil liability in connection with the
616 | Program, unless a warranty or assumption of liability accompanies a
617 | copy of the Program in return for a fee.
618 |
619 | END OF TERMS AND CONDITIONS
620 |
621 | How to Apply These Terms to Your New Programs
622 |
623 | If you develop a new program, and you want it to be of the greatest
624 | possible use to the public, the best way to achieve this is to make it
625 | free software which everyone can redistribute and change under these terms.
626 |
627 | To do so, attach the following notices to the program. It is safest
628 | to attach them to the start of each source file to most effectively
629 | state the exclusion of warranty; and each file should have at least
630 | the "copyright" line and a pointer to where the full notice is found.
631 |
632 |
633 | Copyright (C) 2023 Ryan Cao
634 |
635 | This program is free software: you can redistribute it and/or modify
636 | it under the terms of the GNU Affero General Public License as published
637 | by the Free Software Foundation, either version 3 of the License, or
638 | (at your option) any later version.
639 |
640 | This program is distributed in the hope that it will be useful,
641 | but WITHOUT ANY WARRANTY; without even the implied warranty of
642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
643 | GNU Affero General Public License for more details.
644 |
645 | You should have received a copy of the GNU Affero General Public License
646 | along with this program. If not, see .
647 |
648 | Also add information on how to contact you by electronic and paper mail.
649 |
650 | If your software can interact with users remotely through a computer
651 | network, you should also make sure that it provides a way for users to
652 | get its source. For example, if your program is a web application, its
653 | interface could display a "Source" link that leads users to an archive
654 | of the code. There are many ways you could offer source, and different
655 | solutions will be better for different programs; see section 13 for the
656 | specific requirements.
657 |
658 | You should also get your employer (if you work as a programmer) or school,
659 | if any, to sign a "copyright disclaimer" for the program, if necessary.
660 | For more information on this, and how to apply and follow the GNU AGPL, see
661 | .
662 |
--------------------------------------------------------------------------------
/eslint.config.js:
--------------------------------------------------------------------------------
1 | import { config } from '@ryanccn/eslint-config';
2 |
3 | export default config();
4 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nixpkgs-dev",
3 | "version": "0.0.1",
4 | "type": "module",
5 | "private": true,
6 | "scripts": {
7 | "deploy": "wrangler deploy",
8 | "build": "esbuild src/index.ts --outfile=dist/index.js --metafile=dist/metafile.json --format=esm --bundle --minify-whitespace --minify-syntax --platform=browser --target=es2024",
9 | "dev": "wrangler dev",
10 | "check": "tsc -noEmit",
11 | "lint": "eslint ."
12 | },
13 | "dependencies": {
14 | "hono": "^4.7.10"
15 | },
16 | "devDependencies": {
17 | "@cloudflare/workers-types": "^4.20250528.0",
18 | "@eslint/js": "^9.27.0",
19 | "@microsoft/eslint-formatter-sarif": "^3.1.0",
20 | "@ryanccn/eslint-config": "^0.5.0",
21 | "esbuild": "^0.25.5",
22 | "eslint": "^9.27.0",
23 | "eslint-config-prettier": "^10.1.5",
24 | "eslint-plugin-unicorn": "^59.0.1",
25 | "tsx": "^4.19.4",
26 | "typescript": "^5.8.3",
27 | "typescript-eslint": "^8.33.0",
28 | "wrangler": "^4.17.0"
29 | },
30 | "pnpm": {
31 | "onlyBuiltDependencies": [
32 | "esbuild",
33 | "sharp",
34 | "workerd"
35 | ]
36 | },
37 | "packageManager": "pnpm@10.11.0+sha512.6540583f41cc5f628eb3d9773ecee802f4f9ef9923cc45b69890fb47991d4b092964694ec3a4f738a420c918a333062c8b925d312f42e4f0c263eb603551f977"
38 | }
39 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | hono:
12 | specifier: ^4.7.10
13 | version: 4.7.10
14 | devDependencies:
15 | '@cloudflare/workers-types':
16 | specifier: ^4.20250528.0
17 | version: 4.20250528.0
18 | '@eslint/js':
19 | specifier: ^9.27.0
20 | version: 9.27.0
21 | '@microsoft/eslint-formatter-sarif':
22 | specifier: ^3.1.0
23 | version: 3.1.0
24 | '@ryanccn/eslint-config':
25 | specifier: ^0.5.0
26 | version: 0.5.0(@eslint/eslintrc@3.3.1)(@eslint/js@9.27.0)(eslint-config-prettier@10.1.5(eslint@9.27.0))(eslint-plugin-unicorn@59.0.1(eslint@9.27.0))(eslint@9.27.0)(typescript-eslint@8.33.0(eslint@9.27.0)(typescript@5.8.3))(typescript@5.8.3)
27 | esbuild:
28 | specifier: ^0.25.5
29 | version: 0.25.5
30 | eslint:
31 | specifier: ^9.27.0
32 | version: 9.27.0
33 | eslint-config-prettier:
34 | specifier: ^10.1.5
35 | version: 10.1.5(eslint@9.27.0)
36 | eslint-plugin-unicorn:
37 | specifier: ^59.0.1
38 | version: 59.0.1(eslint@9.27.0)
39 | tsx:
40 | specifier: ^4.19.4
41 | version: 4.19.4
42 | typescript:
43 | specifier: ^5.8.3
44 | version: 5.8.3
45 | typescript-eslint:
46 | specifier: ^8.33.0
47 | version: 8.33.0(eslint@9.27.0)(typescript@5.8.3)
48 | wrangler:
49 | specifier: ^4.17.0
50 | version: 4.17.0(@cloudflare/workers-types@4.20250528.0)
51 |
52 | packages:
53 |
54 | '@babel/helper-validator-identifier@7.27.1':
55 | resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
56 | engines: {node: '>=6.9.0'}
57 |
58 | '@cloudflare/kv-asset-handler@0.4.0':
59 | resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==}
60 | engines: {node: '>=18.0.0'}
61 |
62 | '@cloudflare/unenv-preset@2.3.2':
63 | resolution: {integrity: sha512-MtUgNl+QkQyhQvv5bbWP+BpBC1N0me4CHHuP2H4ktmOMKdB/6kkz/lo+zqiA4mEazb4y+1cwyNjVrQ2DWeE4mg==}
64 | peerDependencies:
65 | unenv: 2.0.0-rc.17
66 | workerd: ^1.20250508.0
67 | peerDependenciesMeta:
68 | workerd:
69 | optional: true
70 |
71 | '@cloudflare/workerd-darwin-64@1.20250523.0':
72 | resolution: {integrity: sha512-/K7vKkPDx9idJ7hJtqYXYsKkHX9XQ6awyDyBZ4RwbaQ/o3fyS/tgHaej2rUO6zkb7CfUxiaeAB7Z6i7KltMY5Q==}
73 | engines: {node: '>=16'}
74 | cpu: [x64]
75 | os: [darwin]
76 |
77 | '@cloudflare/workerd-darwin-arm64@1.20250523.0':
78 | resolution: {integrity: sha512-tVQqStt245KzkrCT6DBXoMNHaJgh/8hQy3fsG+4gHfqw/JdKEgXigkc9hWdC6BoS5DiGK+dGVJo2MnWHFC7XlQ==}
79 | engines: {node: '>=16'}
80 | cpu: [arm64]
81 | os: [darwin]
82 |
83 | '@cloudflare/workerd-linux-64@1.20250523.0':
84 | resolution: {integrity: sha512-PCPWBlwiKr9Es2TP93JVygXRPwx+AkygUMV2gFOPerVrdXUd13A4dJ68Qjpmh3O0xqmVIRV6PSogM3wNvwnw5Q==}
85 | engines: {node: '>=16'}
86 | cpu: [x64]
87 | os: [linux]
88 |
89 | '@cloudflare/workerd-linux-arm64@1.20250523.0':
90 | resolution: {integrity: sha512-uKa/L9W1AzT+yE0wNxFZPlMXms5xmGaaOmTAK0wuLPW6qmKj1zyBidjHqQXVZ+eK/fLy3CNeyB9EBtR0/8FH7A==}
91 | engines: {node: '>=16'}
92 | cpu: [arm64]
93 | os: [linux]
94 |
95 | '@cloudflare/workerd-windows-64@1.20250523.0':
96 | resolution: {integrity: sha512-H5ggClWrskRs7pj2Fd+iJpjFMrh7DZqAfhJT3IloTW85lCEY2+y/yfXEGyDsc0UTLuTS0znldcUrVCRjSiSOkw==}
97 | engines: {node: '>=16'}
98 | cpu: [x64]
99 | os: [win32]
100 |
101 | '@cloudflare/workers-types@4.20250528.0':
102 | resolution: {integrity: sha512-q4yNRSw7At9nm1GsN+KUGfbrl5nGuiS+q/1esbhcXL/FQUDUZbVdutbPBMtJLaXAd5PCLdOST/nZni8GzJkaYg==}
103 |
104 | '@cspotcode/source-map-support@0.8.1':
105 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
106 | engines: {node: '>=12'}
107 |
108 | '@emnapi/runtime@1.4.3':
109 | resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==}
110 |
111 | '@esbuild/aix-ppc64@0.25.4':
112 | resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==}
113 | engines: {node: '>=18'}
114 | cpu: [ppc64]
115 | os: [aix]
116 |
117 | '@esbuild/aix-ppc64@0.25.5':
118 | resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==}
119 | engines: {node: '>=18'}
120 | cpu: [ppc64]
121 | os: [aix]
122 |
123 | '@esbuild/android-arm64@0.25.4':
124 | resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==}
125 | engines: {node: '>=18'}
126 | cpu: [arm64]
127 | os: [android]
128 |
129 | '@esbuild/android-arm64@0.25.5':
130 | resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==}
131 | engines: {node: '>=18'}
132 | cpu: [arm64]
133 | os: [android]
134 |
135 | '@esbuild/android-arm@0.25.4':
136 | resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==}
137 | engines: {node: '>=18'}
138 | cpu: [arm]
139 | os: [android]
140 |
141 | '@esbuild/android-arm@0.25.5':
142 | resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==}
143 | engines: {node: '>=18'}
144 | cpu: [arm]
145 | os: [android]
146 |
147 | '@esbuild/android-x64@0.25.4':
148 | resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==}
149 | engines: {node: '>=18'}
150 | cpu: [x64]
151 | os: [android]
152 |
153 | '@esbuild/android-x64@0.25.5':
154 | resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==}
155 | engines: {node: '>=18'}
156 | cpu: [x64]
157 | os: [android]
158 |
159 | '@esbuild/darwin-arm64@0.25.4':
160 | resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==}
161 | engines: {node: '>=18'}
162 | cpu: [arm64]
163 | os: [darwin]
164 |
165 | '@esbuild/darwin-arm64@0.25.5':
166 | resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==}
167 | engines: {node: '>=18'}
168 | cpu: [arm64]
169 | os: [darwin]
170 |
171 | '@esbuild/darwin-x64@0.25.4':
172 | resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==}
173 | engines: {node: '>=18'}
174 | cpu: [x64]
175 | os: [darwin]
176 |
177 | '@esbuild/darwin-x64@0.25.5':
178 | resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==}
179 | engines: {node: '>=18'}
180 | cpu: [x64]
181 | os: [darwin]
182 |
183 | '@esbuild/freebsd-arm64@0.25.4':
184 | resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==}
185 | engines: {node: '>=18'}
186 | cpu: [arm64]
187 | os: [freebsd]
188 |
189 | '@esbuild/freebsd-arm64@0.25.5':
190 | resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==}
191 | engines: {node: '>=18'}
192 | cpu: [arm64]
193 | os: [freebsd]
194 |
195 | '@esbuild/freebsd-x64@0.25.4':
196 | resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==}
197 | engines: {node: '>=18'}
198 | cpu: [x64]
199 | os: [freebsd]
200 |
201 | '@esbuild/freebsd-x64@0.25.5':
202 | resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==}
203 | engines: {node: '>=18'}
204 | cpu: [x64]
205 | os: [freebsd]
206 |
207 | '@esbuild/linux-arm64@0.25.4':
208 | resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==}
209 | engines: {node: '>=18'}
210 | cpu: [arm64]
211 | os: [linux]
212 |
213 | '@esbuild/linux-arm64@0.25.5':
214 | resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==}
215 | engines: {node: '>=18'}
216 | cpu: [arm64]
217 | os: [linux]
218 |
219 | '@esbuild/linux-arm@0.25.4':
220 | resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==}
221 | engines: {node: '>=18'}
222 | cpu: [arm]
223 | os: [linux]
224 |
225 | '@esbuild/linux-arm@0.25.5':
226 | resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==}
227 | engines: {node: '>=18'}
228 | cpu: [arm]
229 | os: [linux]
230 |
231 | '@esbuild/linux-ia32@0.25.4':
232 | resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==}
233 | engines: {node: '>=18'}
234 | cpu: [ia32]
235 | os: [linux]
236 |
237 | '@esbuild/linux-ia32@0.25.5':
238 | resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==}
239 | engines: {node: '>=18'}
240 | cpu: [ia32]
241 | os: [linux]
242 |
243 | '@esbuild/linux-loong64@0.25.4':
244 | resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==}
245 | engines: {node: '>=18'}
246 | cpu: [loong64]
247 | os: [linux]
248 |
249 | '@esbuild/linux-loong64@0.25.5':
250 | resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==}
251 | engines: {node: '>=18'}
252 | cpu: [loong64]
253 | os: [linux]
254 |
255 | '@esbuild/linux-mips64el@0.25.4':
256 | resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==}
257 | engines: {node: '>=18'}
258 | cpu: [mips64el]
259 | os: [linux]
260 |
261 | '@esbuild/linux-mips64el@0.25.5':
262 | resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==}
263 | engines: {node: '>=18'}
264 | cpu: [mips64el]
265 | os: [linux]
266 |
267 | '@esbuild/linux-ppc64@0.25.4':
268 | resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==}
269 | engines: {node: '>=18'}
270 | cpu: [ppc64]
271 | os: [linux]
272 |
273 | '@esbuild/linux-ppc64@0.25.5':
274 | resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==}
275 | engines: {node: '>=18'}
276 | cpu: [ppc64]
277 | os: [linux]
278 |
279 | '@esbuild/linux-riscv64@0.25.4':
280 | resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==}
281 | engines: {node: '>=18'}
282 | cpu: [riscv64]
283 | os: [linux]
284 |
285 | '@esbuild/linux-riscv64@0.25.5':
286 | resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==}
287 | engines: {node: '>=18'}
288 | cpu: [riscv64]
289 | os: [linux]
290 |
291 | '@esbuild/linux-s390x@0.25.4':
292 | resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==}
293 | engines: {node: '>=18'}
294 | cpu: [s390x]
295 | os: [linux]
296 |
297 | '@esbuild/linux-s390x@0.25.5':
298 | resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==}
299 | engines: {node: '>=18'}
300 | cpu: [s390x]
301 | os: [linux]
302 |
303 | '@esbuild/linux-x64@0.25.4':
304 | resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==}
305 | engines: {node: '>=18'}
306 | cpu: [x64]
307 | os: [linux]
308 |
309 | '@esbuild/linux-x64@0.25.5':
310 | resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==}
311 | engines: {node: '>=18'}
312 | cpu: [x64]
313 | os: [linux]
314 |
315 | '@esbuild/netbsd-arm64@0.25.4':
316 | resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==}
317 | engines: {node: '>=18'}
318 | cpu: [arm64]
319 | os: [netbsd]
320 |
321 | '@esbuild/netbsd-arm64@0.25.5':
322 | resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==}
323 | engines: {node: '>=18'}
324 | cpu: [arm64]
325 | os: [netbsd]
326 |
327 | '@esbuild/netbsd-x64@0.25.4':
328 | resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==}
329 | engines: {node: '>=18'}
330 | cpu: [x64]
331 | os: [netbsd]
332 |
333 | '@esbuild/netbsd-x64@0.25.5':
334 | resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==}
335 | engines: {node: '>=18'}
336 | cpu: [x64]
337 | os: [netbsd]
338 |
339 | '@esbuild/openbsd-arm64@0.25.4':
340 | resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==}
341 | engines: {node: '>=18'}
342 | cpu: [arm64]
343 | os: [openbsd]
344 |
345 | '@esbuild/openbsd-arm64@0.25.5':
346 | resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==}
347 | engines: {node: '>=18'}
348 | cpu: [arm64]
349 | os: [openbsd]
350 |
351 | '@esbuild/openbsd-x64@0.25.4':
352 | resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==}
353 | engines: {node: '>=18'}
354 | cpu: [x64]
355 | os: [openbsd]
356 |
357 | '@esbuild/openbsd-x64@0.25.5':
358 | resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==}
359 | engines: {node: '>=18'}
360 | cpu: [x64]
361 | os: [openbsd]
362 |
363 | '@esbuild/sunos-x64@0.25.4':
364 | resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==}
365 | engines: {node: '>=18'}
366 | cpu: [x64]
367 | os: [sunos]
368 |
369 | '@esbuild/sunos-x64@0.25.5':
370 | resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==}
371 | engines: {node: '>=18'}
372 | cpu: [x64]
373 | os: [sunos]
374 |
375 | '@esbuild/win32-arm64@0.25.4':
376 | resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==}
377 | engines: {node: '>=18'}
378 | cpu: [arm64]
379 | os: [win32]
380 |
381 | '@esbuild/win32-arm64@0.25.5':
382 | resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==}
383 | engines: {node: '>=18'}
384 | cpu: [arm64]
385 | os: [win32]
386 |
387 | '@esbuild/win32-ia32@0.25.4':
388 | resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==}
389 | engines: {node: '>=18'}
390 | cpu: [ia32]
391 | os: [win32]
392 |
393 | '@esbuild/win32-ia32@0.25.5':
394 | resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==}
395 | engines: {node: '>=18'}
396 | cpu: [ia32]
397 | os: [win32]
398 |
399 | '@esbuild/win32-x64@0.25.4':
400 | resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==}
401 | engines: {node: '>=18'}
402 | cpu: [x64]
403 | os: [win32]
404 |
405 | '@esbuild/win32-x64@0.25.5':
406 | resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==}
407 | engines: {node: '>=18'}
408 | cpu: [x64]
409 | os: [win32]
410 |
411 | '@eslint-community/eslint-utils@4.7.0':
412 | resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
413 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
414 | peerDependencies:
415 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
416 |
417 | '@eslint-community/regexpp@4.12.1':
418 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
419 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
420 |
421 | '@eslint/compat@1.2.9':
422 | resolution: {integrity: sha512-gCdSY54n7k+driCadyMNv8JSPzYLeDVM/ikZRtvtROBpRdFSkS8W9A82MqsaY7lZuwL0wiapgD0NT1xT0hyJsA==}
423 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
424 | peerDependencies:
425 | eslint: ^9.10.0
426 | peerDependenciesMeta:
427 | eslint:
428 | optional: true
429 |
430 | '@eslint/config-array@0.20.0':
431 | resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==}
432 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
433 |
434 | '@eslint/config-helpers@0.2.2':
435 | resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==}
436 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
437 |
438 | '@eslint/core@0.13.0':
439 | resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==}
440 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
441 |
442 | '@eslint/core@0.14.0':
443 | resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==}
444 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
445 |
446 | '@eslint/eslintrc@2.1.4':
447 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
448 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
449 |
450 | '@eslint/eslintrc@3.3.1':
451 | resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
452 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
453 |
454 | '@eslint/js@8.57.1':
455 | resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
456 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
457 |
458 | '@eslint/js@9.27.0':
459 | resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==}
460 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
461 |
462 | '@eslint/object-schema@2.1.6':
463 | resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
464 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
465 |
466 | '@eslint/plugin-kit@0.2.8':
467 | resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==}
468 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
469 |
470 | '@eslint/plugin-kit@0.3.1':
471 | resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==}
472 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
473 |
474 | '@fastify/busboy@2.1.1':
475 | resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==}
476 | engines: {node: '>=14'}
477 |
478 | '@humanfs/core@0.19.1':
479 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
480 | engines: {node: '>=18.18.0'}
481 |
482 | '@humanfs/node@0.16.6':
483 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
484 | engines: {node: '>=18.18.0'}
485 |
486 | '@humanwhocodes/config-array@0.13.0':
487 | resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
488 | engines: {node: '>=10.10.0'}
489 | deprecated: Use @eslint/config-array instead
490 |
491 | '@humanwhocodes/module-importer@1.0.1':
492 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
493 | engines: {node: '>=12.22'}
494 |
495 | '@humanwhocodes/object-schema@2.0.3':
496 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
497 | deprecated: Use @eslint/object-schema instead
498 |
499 | '@humanwhocodes/retry@0.3.1':
500 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
501 | engines: {node: '>=18.18'}
502 |
503 | '@humanwhocodes/retry@0.4.3':
504 | resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
505 | engines: {node: '>=18.18'}
506 |
507 | '@img/sharp-darwin-arm64@0.33.5':
508 | resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
509 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
510 | cpu: [arm64]
511 | os: [darwin]
512 |
513 | '@img/sharp-darwin-x64@0.33.5':
514 | resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==}
515 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
516 | cpu: [x64]
517 | os: [darwin]
518 |
519 | '@img/sharp-libvips-darwin-arm64@1.0.4':
520 | resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==}
521 | cpu: [arm64]
522 | os: [darwin]
523 |
524 | '@img/sharp-libvips-darwin-x64@1.0.4':
525 | resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==}
526 | cpu: [x64]
527 | os: [darwin]
528 |
529 | '@img/sharp-libvips-linux-arm64@1.0.4':
530 | resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
531 | cpu: [arm64]
532 | os: [linux]
533 |
534 | '@img/sharp-libvips-linux-arm@1.0.5':
535 | resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
536 | cpu: [arm]
537 | os: [linux]
538 |
539 | '@img/sharp-libvips-linux-s390x@1.0.4':
540 | resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
541 | cpu: [s390x]
542 | os: [linux]
543 |
544 | '@img/sharp-libvips-linux-x64@1.0.4':
545 | resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
546 | cpu: [x64]
547 | os: [linux]
548 |
549 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4':
550 | resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
551 | cpu: [arm64]
552 | os: [linux]
553 |
554 | '@img/sharp-libvips-linuxmusl-x64@1.0.4':
555 | resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
556 | cpu: [x64]
557 | os: [linux]
558 |
559 | '@img/sharp-linux-arm64@0.33.5':
560 | resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
561 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
562 | cpu: [arm64]
563 | os: [linux]
564 |
565 | '@img/sharp-linux-arm@0.33.5':
566 | resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
567 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
568 | cpu: [arm]
569 | os: [linux]
570 |
571 | '@img/sharp-linux-s390x@0.33.5':
572 | resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
573 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
574 | cpu: [s390x]
575 | os: [linux]
576 |
577 | '@img/sharp-linux-x64@0.33.5':
578 | resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
579 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
580 | cpu: [x64]
581 | os: [linux]
582 |
583 | '@img/sharp-linuxmusl-arm64@0.33.5':
584 | resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
585 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
586 | cpu: [arm64]
587 | os: [linux]
588 |
589 | '@img/sharp-linuxmusl-x64@0.33.5':
590 | resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
591 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
592 | cpu: [x64]
593 | os: [linux]
594 |
595 | '@img/sharp-wasm32@0.33.5':
596 | resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
597 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
598 | cpu: [wasm32]
599 |
600 | '@img/sharp-win32-ia32@0.33.5':
601 | resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==}
602 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
603 | cpu: [ia32]
604 | os: [win32]
605 |
606 | '@img/sharp-win32-x64@0.33.5':
607 | resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==}
608 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
609 | cpu: [x64]
610 | os: [win32]
611 |
612 | '@jridgewell/resolve-uri@3.1.2':
613 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
614 | engines: {node: '>=6.0.0'}
615 |
616 | '@jridgewell/sourcemap-codec@1.5.0':
617 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
618 |
619 | '@jridgewell/trace-mapping@0.3.9':
620 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
621 |
622 | '@microsoft/eslint-formatter-sarif@3.1.0':
623 | resolution: {integrity: sha512-/mn4UXziHzGXnKCg+r8HGgPy+w4RzpgdoqFuqaKOqUVBT5x2CygGefIrO4SusaY7t0C4gyIWMNu6YQT6Jw64Cw==}
624 | engines: {node: '>= 14'}
625 |
626 | '@nodelib/fs.scandir@2.1.5':
627 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
628 | engines: {node: '>= 8'}
629 |
630 | '@nodelib/fs.stat@2.0.5':
631 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
632 | engines: {node: '>= 8'}
633 |
634 | '@nodelib/fs.walk@1.2.8':
635 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
636 | engines: {node: '>= 8'}
637 |
638 | '@ryanccn/eslint-config@0.5.0':
639 | resolution: {integrity: sha512-9EpQE6943NEtYWLCgrUEPK6kGRw+AF0azi9L5SVsqAZ+Ub7PYjfoZpQhm9bopret4yDZjRCl0CZq5xtYfGTeLg==}
640 | peerDependencies:
641 | '@eslint/eslintrc': '*'
642 | '@eslint/js': '*'
643 | '@next/eslint-plugin-next': '*'
644 | '@stylistic/eslint-plugin': '*'
645 | '@unocss/eslint-config': '*'
646 | eslint: '*'
647 | eslint-config-prettier: '*'
648 | eslint-plugin-react-hooks: '*'
649 | eslint-plugin-svelte: '*'
650 | eslint-plugin-unicorn: '*'
651 | svelte: '*'
652 | typescript-eslint: '*'
653 | peerDependenciesMeta:
654 | '@eslint/eslintrc':
655 | optional: true
656 | '@eslint/js':
657 | optional: true
658 | '@next/eslint-plugin-next':
659 | optional: true
660 | '@stylistic/eslint-plugin':
661 | optional: true
662 | '@unocss/eslint-config':
663 | optional: true
664 | eslint-config-prettier:
665 | optional: true
666 | eslint-plugin-react-hooks:
667 | optional: true
668 | eslint-plugin-svelte:
669 | optional: true
670 | eslint-plugin-unicorn:
671 | optional: true
672 | svelte:
673 | optional: true
674 | typescript-eslint:
675 | optional: true
676 |
677 | '@types/estree@1.0.7':
678 | resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
679 |
680 | '@types/json-schema@7.0.15':
681 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
682 |
683 | '@typescript-eslint/eslint-plugin@8.33.0':
684 | resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==}
685 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
686 | peerDependencies:
687 | '@typescript-eslint/parser': ^8.33.0
688 | eslint: ^8.57.0 || ^9.0.0
689 | typescript: '>=4.8.4 <5.9.0'
690 |
691 | '@typescript-eslint/parser@8.33.0':
692 | resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==}
693 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
694 | peerDependencies:
695 | eslint: ^8.57.0 || ^9.0.0
696 | typescript: '>=4.8.4 <5.9.0'
697 |
698 | '@typescript-eslint/project-service@8.33.0':
699 | resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==}
700 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
701 |
702 | '@typescript-eslint/scope-manager@8.32.1':
703 | resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==}
704 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
705 |
706 | '@typescript-eslint/scope-manager@8.33.0':
707 | resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==}
708 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
709 |
710 | '@typescript-eslint/tsconfig-utils@8.33.0':
711 | resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==}
712 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
713 | peerDependencies:
714 | typescript: '>=4.8.4 <5.9.0'
715 |
716 | '@typescript-eslint/type-utils@8.33.0':
717 | resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==}
718 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
719 | peerDependencies:
720 | eslint: ^8.57.0 || ^9.0.0
721 | typescript: '>=4.8.4 <5.9.0'
722 |
723 | '@typescript-eslint/types@8.32.1':
724 | resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==}
725 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
726 |
727 | '@typescript-eslint/types@8.33.0':
728 | resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==}
729 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
730 |
731 | '@typescript-eslint/typescript-estree@8.32.1':
732 | resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==}
733 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
734 | peerDependencies:
735 | typescript: '>=4.8.4 <5.9.0'
736 |
737 | '@typescript-eslint/typescript-estree@8.33.0':
738 | resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==}
739 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
740 | peerDependencies:
741 | typescript: '>=4.8.4 <5.9.0'
742 |
743 | '@typescript-eslint/utils@8.32.1':
744 | resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==}
745 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
746 | peerDependencies:
747 | eslint: ^8.57.0 || ^9.0.0
748 | typescript: '>=4.8.4 <5.9.0'
749 |
750 | '@typescript-eslint/utils@8.33.0':
751 | resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==}
752 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
753 | peerDependencies:
754 | eslint: ^8.57.0 || ^9.0.0
755 | typescript: '>=4.8.4 <5.9.0'
756 |
757 | '@typescript-eslint/visitor-keys@8.32.1':
758 | resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==}
759 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
760 |
761 | '@typescript-eslint/visitor-keys@8.33.0':
762 | resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==}
763 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
764 |
765 | '@ungap/structured-clone@1.3.0':
766 | resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
767 |
768 | acorn-jsx@5.3.2:
769 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
770 | peerDependencies:
771 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
772 |
773 | acorn-walk@8.3.2:
774 | resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==}
775 | engines: {node: '>=0.4.0'}
776 |
777 | acorn@8.14.0:
778 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
779 | engines: {node: '>=0.4.0'}
780 | hasBin: true
781 |
782 | acorn@8.14.1:
783 | resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
784 | engines: {node: '>=0.4.0'}
785 | hasBin: true
786 |
787 | ajv@6.12.6:
788 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
789 |
790 | ansi-regex@5.0.1:
791 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
792 | engines: {node: '>=8'}
793 |
794 | ansi-styles@4.3.0:
795 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
796 | engines: {node: '>=8'}
797 |
798 | argparse@2.0.1:
799 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
800 |
801 | as-table@1.0.55:
802 | resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
803 |
804 | balanced-match@1.0.2:
805 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
806 |
807 | blake3-wasm@2.1.5:
808 | resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==}
809 |
810 | brace-expansion@1.1.11:
811 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
812 |
813 | brace-expansion@2.0.1:
814 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
815 |
816 | braces@3.0.3:
817 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
818 | engines: {node: '>=8'}
819 |
820 | browserslist@4.24.5:
821 | resolution: {integrity: sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==}
822 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
823 | hasBin: true
824 |
825 | builtin-modules@5.0.0:
826 | resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==}
827 | engines: {node: '>=18.20'}
828 |
829 | callsites@3.1.0:
830 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
831 | engines: {node: '>=6'}
832 |
833 | caniuse-lite@1.0.30001718:
834 | resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==}
835 |
836 | chalk@4.1.2:
837 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
838 | engines: {node: '>=10'}
839 |
840 | ci-info@4.2.0:
841 | resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==}
842 | engines: {node: '>=8'}
843 |
844 | clean-regexp@1.0.0:
845 | resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
846 | engines: {node: '>=4'}
847 |
848 | color-convert@2.0.1:
849 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
850 | engines: {node: '>=7.0.0'}
851 |
852 | color-name@1.1.4:
853 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
854 |
855 | color-string@1.9.1:
856 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
857 |
858 | color@4.2.3:
859 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
860 | engines: {node: '>=12.5.0'}
861 |
862 | concat-map@0.0.1:
863 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
864 |
865 | confbox@0.1.8:
866 | resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
867 |
868 | confbox@0.2.2:
869 | resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
870 |
871 | cookie@0.7.2:
872 | resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==}
873 | engines: {node: '>= 0.6'}
874 |
875 | core-js-compat@3.42.0:
876 | resolution: {integrity: sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==}
877 |
878 | cross-spawn@7.0.6:
879 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
880 | engines: {node: '>= 8'}
881 |
882 | data-uri-to-buffer@2.0.2:
883 | resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
884 |
885 | debug@4.4.1:
886 | resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
887 | engines: {node: '>=6.0'}
888 | peerDependencies:
889 | supports-color: '*'
890 | peerDependenciesMeta:
891 | supports-color:
892 | optional: true
893 |
894 | deep-is@0.1.4:
895 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
896 |
897 | defu@6.1.4:
898 | resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
899 |
900 | detect-libc@2.0.4:
901 | resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==}
902 | engines: {node: '>=8'}
903 |
904 | doctrine@3.0.0:
905 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
906 | engines: {node: '>=6.0.0'}
907 |
908 | electron-to-chromium@1.5.157:
909 | resolution: {integrity: sha512-/0ybgsQd1muo8QlnuTpKwtl0oX5YMlUGbm8xyqgDU00motRkKFFbUJySAQBWcY79rVqNLWIWa87BGVGClwAB2w==}
910 |
911 | esbuild@0.25.4:
912 | resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==}
913 | engines: {node: '>=18'}
914 | hasBin: true
915 |
916 | esbuild@0.25.5:
917 | resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==}
918 | engines: {node: '>=18'}
919 | hasBin: true
920 |
921 | escalade@3.2.0:
922 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
923 | engines: {node: '>=6'}
924 |
925 | escape-string-regexp@1.0.5:
926 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
927 | engines: {node: '>=0.8.0'}
928 |
929 | escape-string-regexp@4.0.0:
930 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
931 | engines: {node: '>=10'}
932 |
933 | eslint-config-prettier@10.1.5:
934 | resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==}
935 | hasBin: true
936 | peerDependencies:
937 | eslint: '>=7.0.0'
938 |
939 | eslint-plugin-unicorn@59.0.1:
940 | resolution: {integrity: sha512-EtNXYuWPUmkgSU2E7Ttn57LbRREQesIP1BiLn7OZLKodopKfDXfBUkC/0j6mpw2JExwf43Uf3qLSvrSvppgy8Q==}
941 | engines: {node: ^18.20.0 || ^20.10.0 || >=21.0.0}
942 | peerDependencies:
943 | eslint: '>=9.22.0'
944 |
945 | eslint-scope@7.2.2:
946 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
947 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
948 |
949 | eslint-scope@8.3.0:
950 | resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
951 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
952 |
953 | eslint-visitor-keys@3.4.3:
954 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
955 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
956 |
957 | eslint-visitor-keys@4.2.0:
958 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
959 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
960 |
961 | eslint@8.57.1:
962 | resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
963 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
964 | deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
965 | hasBin: true
966 |
967 | eslint@9.27.0:
968 | resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==}
969 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
970 | hasBin: true
971 | peerDependencies:
972 | jiti: '*'
973 | peerDependenciesMeta:
974 | jiti:
975 | optional: true
976 |
977 | espree@10.3.0:
978 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
979 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
980 |
981 | espree@9.6.1:
982 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
983 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
984 |
985 | esquery@1.6.0:
986 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
987 | engines: {node: '>=0.10'}
988 |
989 | esrecurse@4.3.0:
990 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
991 | engines: {node: '>=4.0'}
992 |
993 | estraverse@5.3.0:
994 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
995 | engines: {node: '>=4.0'}
996 |
997 | esutils@2.0.3:
998 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
999 | engines: {node: '>=0.10.0'}
1000 |
1001 | exit-hook@2.2.1:
1002 | resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==}
1003 | engines: {node: '>=6'}
1004 |
1005 | exsolve@1.0.5:
1006 | resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==}
1007 |
1008 | fast-deep-equal@3.1.3:
1009 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1010 |
1011 | fast-glob@3.3.3:
1012 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==}
1013 | engines: {node: '>=8.6.0'}
1014 |
1015 | fast-json-stable-stringify@2.1.0:
1016 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1017 |
1018 | fast-levenshtein@2.0.6:
1019 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1020 |
1021 | fastq@1.19.1:
1022 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
1023 |
1024 | file-entry-cache@6.0.1:
1025 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1026 | engines: {node: ^10.12.0 || >=12.0.0}
1027 |
1028 | file-entry-cache@8.0.0:
1029 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
1030 | engines: {node: '>=16.0.0'}
1031 |
1032 | fill-range@7.1.1:
1033 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
1034 | engines: {node: '>=8'}
1035 |
1036 | find-up-simple@1.0.1:
1037 | resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
1038 | engines: {node: '>=18'}
1039 |
1040 | find-up@5.0.0:
1041 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1042 | engines: {node: '>=10'}
1043 |
1044 | flat-cache@3.2.0:
1045 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
1046 | engines: {node: ^10.12.0 || >=12.0.0}
1047 |
1048 | flat-cache@4.0.1:
1049 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
1050 | engines: {node: '>=16'}
1051 |
1052 | flatted@3.3.3:
1053 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
1054 |
1055 | fs.realpath@1.0.0:
1056 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1057 |
1058 | fsevents@2.3.3:
1059 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
1060 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1061 | os: [darwin]
1062 |
1063 | get-source@2.0.12:
1064 | resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==}
1065 |
1066 | get-tsconfig@4.10.1:
1067 | resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==}
1068 |
1069 | glob-parent@5.1.2:
1070 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1071 | engines: {node: '>= 6'}
1072 |
1073 | glob-parent@6.0.2:
1074 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1075 | engines: {node: '>=10.13.0'}
1076 |
1077 | glob-to-regexp@0.4.1:
1078 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
1079 |
1080 | glob@7.2.3:
1081 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1082 | deprecated: Glob versions prior to v9 are no longer supported
1083 |
1084 | globals@13.24.0:
1085 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
1086 | engines: {node: '>=8'}
1087 |
1088 | globals@14.0.0:
1089 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
1090 | engines: {node: '>=18'}
1091 |
1092 | globals@16.1.0:
1093 | resolution: {integrity: sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g==}
1094 | engines: {node: '>=18'}
1095 |
1096 | graphemer@1.4.0:
1097 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1098 |
1099 | has-flag@4.0.0:
1100 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1101 | engines: {node: '>=8'}
1102 |
1103 | hono@4.7.10:
1104 | resolution: {integrity: sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ==}
1105 | engines: {node: '>=16.9.0'}
1106 |
1107 | ignore@5.3.2:
1108 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
1109 | engines: {node: '>= 4'}
1110 |
1111 | ignore@7.0.4:
1112 | resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==}
1113 | engines: {node: '>= 4'}
1114 |
1115 | import-fresh@3.3.1:
1116 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
1117 | engines: {node: '>=6'}
1118 |
1119 | imurmurhash@0.1.4:
1120 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1121 | engines: {node: '>=0.8.19'}
1122 |
1123 | indent-string@5.0.0:
1124 | resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
1125 | engines: {node: '>=12'}
1126 |
1127 | inflight@1.0.6:
1128 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1129 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
1130 |
1131 | inherits@2.0.4:
1132 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1133 |
1134 | is-arrayish@0.3.2:
1135 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
1136 |
1137 | is-builtin-module@5.0.0:
1138 | resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==}
1139 | engines: {node: '>=18.20'}
1140 |
1141 | is-extglob@2.1.1:
1142 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1143 | engines: {node: '>=0.10.0'}
1144 |
1145 | is-glob@4.0.3:
1146 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1147 | engines: {node: '>=0.10.0'}
1148 |
1149 | is-number@7.0.0:
1150 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1151 | engines: {node: '>=0.12.0'}
1152 |
1153 | is-path-inside@3.0.3:
1154 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1155 | engines: {node: '>=8'}
1156 |
1157 | isexe@2.0.0:
1158 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1159 |
1160 | js-yaml@4.1.0:
1161 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1162 | hasBin: true
1163 |
1164 | jschardet@3.1.4:
1165 | resolution: {integrity: sha512-/kmVISmrwVwtyYU40iQUOp3SUPk2dhNCMsZBQX0R1/jZ8maaXJ/oZIzUOiyOqcgtLnETFKYChbJ5iDC/eWmFHg==}
1166 | engines: {node: '>=0.1.90'}
1167 |
1168 | jsesc@3.0.2:
1169 | resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
1170 | engines: {node: '>=6'}
1171 | hasBin: true
1172 |
1173 | jsesc@3.1.0:
1174 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
1175 | engines: {node: '>=6'}
1176 | hasBin: true
1177 |
1178 | json-buffer@3.0.1:
1179 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1180 |
1181 | json-schema-traverse@0.4.1:
1182 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1183 |
1184 | json-stable-stringify-without-jsonify@1.0.1:
1185 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1186 |
1187 | keyv@4.5.4:
1188 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1189 |
1190 | levn@0.4.1:
1191 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1192 | engines: {node: '>= 0.8.0'}
1193 |
1194 | local-pkg@1.1.1:
1195 | resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==}
1196 | engines: {node: '>=14'}
1197 |
1198 | locate-path@6.0.0:
1199 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1200 | engines: {node: '>=10'}
1201 |
1202 | lodash.merge@4.6.2:
1203 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1204 |
1205 | lodash@4.17.21:
1206 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
1207 |
1208 | merge2@1.4.1:
1209 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1210 | engines: {node: '>= 8'}
1211 |
1212 | micromatch@4.0.8:
1213 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1214 | engines: {node: '>=8.6'}
1215 |
1216 | mime@3.0.0:
1217 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
1218 | engines: {node: '>=10.0.0'}
1219 | hasBin: true
1220 |
1221 | min-indent@1.0.1:
1222 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
1223 | engines: {node: '>=4'}
1224 |
1225 | miniflare@4.20250523.0:
1226 | resolution: {integrity: sha512-g4F1AC5xi66rB2eQNo2Fx7EffaXhMdgUSRl/ivgb4LMALMpxghG98oC4twqVwDLWIFSVFjtL1YEuYrPO8044mg==}
1227 | engines: {node: '>=18.0.0'}
1228 | hasBin: true
1229 |
1230 | minimatch@3.1.2:
1231 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1232 |
1233 | minimatch@9.0.5:
1234 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
1235 | engines: {node: '>=16 || 14 >=14.17'}
1236 |
1237 | mlly@1.7.4:
1238 | resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==}
1239 |
1240 | ms@2.1.3:
1241 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1242 |
1243 | mustache@4.2.0:
1244 | resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
1245 | hasBin: true
1246 |
1247 | natural-compare@1.4.0:
1248 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1249 |
1250 | node-releases@2.0.19:
1251 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
1252 |
1253 | ohash@2.0.11:
1254 | resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==}
1255 |
1256 | once@1.4.0:
1257 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1258 |
1259 | optionator@0.9.4:
1260 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
1261 | engines: {node: '>= 0.8.0'}
1262 |
1263 | p-limit@3.1.0:
1264 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1265 | engines: {node: '>=10'}
1266 |
1267 | p-locate@5.0.0:
1268 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1269 | engines: {node: '>=10'}
1270 |
1271 | parent-module@1.0.1:
1272 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1273 | engines: {node: '>=6'}
1274 |
1275 | path-exists@4.0.0:
1276 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1277 | engines: {node: '>=8'}
1278 |
1279 | path-is-absolute@1.0.1:
1280 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1281 | engines: {node: '>=0.10.0'}
1282 |
1283 | path-key@3.1.1:
1284 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1285 | engines: {node: '>=8'}
1286 |
1287 | path-to-regexp@6.3.0:
1288 | resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==}
1289 |
1290 | pathe@2.0.3:
1291 | resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
1292 |
1293 | picocolors@1.1.1:
1294 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1295 |
1296 | picomatch@2.3.1:
1297 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1298 | engines: {node: '>=8.6'}
1299 |
1300 | pkg-types@1.3.1:
1301 | resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
1302 |
1303 | pkg-types@2.1.0:
1304 | resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==}
1305 |
1306 | pluralize@8.0.0:
1307 | resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
1308 | engines: {node: '>=4'}
1309 |
1310 | prelude-ls@1.2.1:
1311 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1312 | engines: {node: '>= 0.8.0'}
1313 |
1314 | printable-characters@1.0.42:
1315 | resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
1316 |
1317 | punycode@2.3.1:
1318 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
1319 | engines: {node: '>=6'}
1320 |
1321 | quansync@0.2.10:
1322 | resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==}
1323 |
1324 | queue-microtask@1.2.3:
1325 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1326 |
1327 | regexp-tree@0.1.27:
1328 | resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
1329 | hasBin: true
1330 |
1331 | regjsparser@0.12.0:
1332 | resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==}
1333 | hasBin: true
1334 |
1335 | resolve-from@4.0.0:
1336 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1337 | engines: {node: '>=4'}
1338 |
1339 | resolve-pkg-maps@1.0.0:
1340 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
1341 |
1342 | reusify@1.1.0:
1343 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
1344 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1345 |
1346 | rimraf@3.0.2:
1347 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1348 | deprecated: Rimraf versions prior to v4 are no longer supported
1349 | hasBin: true
1350 |
1351 | run-parallel@1.2.0:
1352 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1353 |
1354 | semver@7.7.2:
1355 | resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
1356 | engines: {node: '>=10'}
1357 | hasBin: true
1358 |
1359 | sharp@0.33.5:
1360 | resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
1361 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
1362 |
1363 | shebang-command@2.0.0:
1364 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1365 | engines: {node: '>=8'}
1366 |
1367 | shebang-regex@3.0.0:
1368 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1369 | engines: {node: '>=8'}
1370 |
1371 | simple-swizzle@0.2.2:
1372 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
1373 |
1374 | source-map@0.6.1:
1375 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
1376 | engines: {node: '>=0.10.0'}
1377 |
1378 | stacktracey@2.1.8:
1379 | resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
1380 |
1381 | stoppable@1.1.0:
1382 | resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==}
1383 | engines: {node: '>=4', npm: '>=6'}
1384 |
1385 | strip-ansi@6.0.1:
1386 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1387 | engines: {node: '>=8'}
1388 |
1389 | strip-indent@4.0.0:
1390 | resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==}
1391 | engines: {node: '>=12'}
1392 |
1393 | strip-json-comments@3.1.1:
1394 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1395 | engines: {node: '>=8'}
1396 |
1397 | supports-color@7.2.0:
1398 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1399 | engines: {node: '>=8'}
1400 |
1401 | text-table@0.2.0:
1402 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
1403 |
1404 | tinyrainbow@2.0.0:
1405 | resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==}
1406 | engines: {node: '>=14.0.0'}
1407 |
1408 | to-regex-range@5.0.1:
1409 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1410 | engines: {node: '>=8.0'}
1411 |
1412 | ts-api-utils@2.1.0:
1413 | resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
1414 | engines: {node: '>=18.12'}
1415 | peerDependencies:
1416 | typescript: '>=4.8.4'
1417 |
1418 | tslib@2.8.1:
1419 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
1420 |
1421 | tsx@4.19.4:
1422 | resolution: {integrity: sha512-gK5GVzDkJK1SI1zwHf32Mqxf2tSJkNx+eYcNly5+nHvWqXUJYUkWBQtKauoESz3ymezAI++ZwT855x5p5eop+Q==}
1423 | engines: {node: '>=18.0.0'}
1424 | hasBin: true
1425 |
1426 | type-check@0.4.0:
1427 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1428 | engines: {node: '>= 0.8.0'}
1429 |
1430 | type-fest@0.20.2:
1431 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
1432 | engines: {node: '>=10'}
1433 |
1434 | typescript-eslint@8.33.0:
1435 | resolution: {integrity: sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ==}
1436 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1437 | peerDependencies:
1438 | eslint: ^8.57.0 || ^9.0.0
1439 | typescript: '>=4.8.4 <5.9.0'
1440 |
1441 | typescript@5.8.3:
1442 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
1443 | engines: {node: '>=14.17'}
1444 | hasBin: true
1445 |
1446 | ufo@1.6.1:
1447 | resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
1448 |
1449 | undici@5.29.0:
1450 | resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==}
1451 | engines: {node: '>=14.0'}
1452 |
1453 | unenv@2.0.0-rc.17:
1454 | resolution: {integrity: sha512-B06u0wXkEd+o5gOCMl/ZHl5cfpYbDZKAT+HWTL+Hws6jWu7dCiqBBXXXzMFcFVJb8D4ytAnYmxJA83uwOQRSsg==}
1455 |
1456 | update-browserslist-db@1.1.3:
1457 | resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
1458 | hasBin: true
1459 | peerDependencies:
1460 | browserslist: '>= 4.21.0'
1461 |
1462 | uri-js@4.4.1:
1463 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1464 |
1465 | utf8@3.0.0:
1466 | resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==}
1467 |
1468 | which@2.0.2:
1469 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1470 | engines: {node: '>= 8'}
1471 | hasBin: true
1472 |
1473 | word-wrap@1.2.5:
1474 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
1475 | engines: {node: '>=0.10.0'}
1476 |
1477 | workerd@1.20250523.0:
1478 | resolution: {integrity: sha512-OClsq9ZzZZNdkY8/JTBjf+/A6F1q/SOn3/RQWCR0kDoclxecHS6Nq80jY6NP0ubJBKnqrUggA9WOWBgwWWOGUA==}
1479 | engines: {node: '>=16'}
1480 | hasBin: true
1481 |
1482 | wrangler@4.17.0:
1483 | resolution: {integrity: sha512-FIOriw2Z7aNALAtnt4hTojDuU44n8pGJl62id0ig0s45Mej/Clg07vpmz+QCLTT7huiaSSyA1wthYOwtp0+K6A==}
1484 | engines: {node: '>=18.0.0'}
1485 | hasBin: true
1486 | peerDependencies:
1487 | '@cloudflare/workers-types': ^4.20250523.0
1488 | peerDependenciesMeta:
1489 | '@cloudflare/workers-types':
1490 | optional: true
1491 |
1492 | wrappy@1.0.2:
1493 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1494 |
1495 | ws@8.18.0:
1496 | resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
1497 | engines: {node: '>=10.0.0'}
1498 | peerDependencies:
1499 | bufferutil: ^4.0.1
1500 | utf-8-validate: '>=5.0.2'
1501 | peerDependenciesMeta:
1502 | bufferutil:
1503 | optional: true
1504 | utf-8-validate:
1505 | optional: true
1506 |
1507 | yocto-queue@0.1.0:
1508 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1509 | engines: {node: '>=10'}
1510 |
1511 | youch@3.3.4:
1512 | resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==}
1513 |
1514 | zod@3.22.3:
1515 | resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==}
1516 |
1517 | snapshots:
1518 |
1519 | '@babel/helper-validator-identifier@7.27.1': {}
1520 |
1521 | '@cloudflare/kv-asset-handler@0.4.0':
1522 | dependencies:
1523 | mime: 3.0.0
1524 |
1525 | '@cloudflare/unenv-preset@2.3.2(unenv@2.0.0-rc.17)(workerd@1.20250523.0)':
1526 | dependencies:
1527 | unenv: 2.0.0-rc.17
1528 | optionalDependencies:
1529 | workerd: 1.20250523.0
1530 |
1531 | '@cloudflare/workerd-darwin-64@1.20250523.0':
1532 | optional: true
1533 |
1534 | '@cloudflare/workerd-darwin-arm64@1.20250523.0':
1535 | optional: true
1536 |
1537 | '@cloudflare/workerd-linux-64@1.20250523.0':
1538 | optional: true
1539 |
1540 | '@cloudflare/workerd-linux-arm64@1.20250523.0':
1541 | optional: true
1542 |
1543 | '@cloudflare/workerd-windows-64@1.20250523.0':
1544 | optional: true
1545 |
1546 | '@cloudflare/workers-types@4.20250528.0': {}
1547 |
1548 | '@cspotcode/source-map-support@0.8.1':
1549 | dependencies:
1550 | '@jridgewell/trace-mapping': 0.3.9
1551 |
1552 | '@emnapi/runtime@1.4.3':
1553 | dependencies:
1554 | tslib: 2.8.1
1555 | optional: true
1556 |
1557 | '@esbuild/aix-ppc64@0.25.4':
1558 | optional: true
1559 |
1560 | '@esbuild/aix-ppc64@0.25.5':
1561 | optional: true
1562 |
1563 | '@esbuild/android-arm64@0.25.4':
1564 | optional: true
1565 |
1566 | '@esbuild/android-arm64@0.25.5':
1567 | optional: true
1568 |
1569 | '@esbuild/android-arm@0.25.4':
1570 | optional: true
1571 |
1572 | '@esbuild/android-arm@0.25.5':
1573 | optional: true
1574 |
1575 | '@esbuild/android-x64@0.25.4':
1576 | optional: true
1577 |
1578 | '@esbuild/android-x64@0.25.5':
1579 | optional: true
1580 |
1581 | '@esbuild/darwin-arm64@0.25.4':
1582 | optional: true
1583 |
1584 | '@esbuild/darwin-arm64@0.25.5':
1585 | optional: true
1586 |
1587 | '@esbuild/darwin-x64@0.25.4':
1588 | optional: true
1589 |
1590 | '@esbuild/darwin-x64@0.25.5':
1591 | optional: true
1592 |
1593 | '@esbuild/freebsd-arm64@0.25.4':
1594 | optional: true
1595 |
1596 | '@esbuild/freebsd-arm64@0.25.5':
1597 | optional: true
1598 |
1599 | '@esbuild/freebsd-x64@0.25.4':
1600 | optional: true
1601 |
1602 | '@esbuild/freebsd-x64@0.25.5':
1603 | optional: true
1604 |
1605 | '@esbuild/linux-arm64@0.25.4':
1606 | optional: true
1607 |
1608 | '@esbuild/linux-arm64@0.25.5':
1609 | optional: true
1610 |
1611 | '@esbuild/linux-arm@0.25.4':
1612 | optional: true
1613 |
1614 | '@esbuild/linux-arm@0.25.5':
1615 | optional: true
1616 |
1617 | '@esbuild/linux-ia32@0.25.4':
1618 | optional: true
1619 |
1620 | '@esbuild/linux-ia32@0.25.5':
1621 | optional: true
1622 |
1623 | '@esbuild/linux-loong64@0.25.4':
1624 | optional: true
1625 |
1626 | '@esbuild/linux-loong64@0.25.5':
1627 | optional: true
1628 |
1629 | '@esbuild/linux-mips64el@0.25.4':
1630 | optional: true
1631 |
1632 | '@esbuild/linux-mips64el@0.25.5':
1633 | optional: true
1634 |
1635 | '@esbuild/linux-ppc64@0.25.4':
1636 | optional: true
1637 |
1638 | '@esbuild/linux-ppc64@0.25.5':
1639 | optional: true
1640 |
1641 | '@esbuild/linux-riscv64@0.25.4':
1642 | optional: true
1643 |
1644 | '@esbuild/linux-riscv64@0.25.5':
1645 | optional: true
1646 |
1647 | '@esbuild/linux-s390x@0.25.4':
1648 | optional: true
1649 |
1650 | '@esbuild/linux-s390x@0.25.5':
1651 | optional: true
1652 |
1653 | '@esbuild/linux-x64@0.25.4':
1654 | optional: true
1655 |
1656 | '@esbuild/linux-x64@0.25.5':
1657 | optional: true
1658 |
1659 | '@esbuild/netbsd-arm64@0.25.4':
1660 | optional: true
1661 |
1662 | '@esbuild/netbsd-arm64@0.25.5':
1663 | optional: true
1664 |
1665 | '@esbuild/netbsd-x64@0.25.4':
1666 | optional: true
1667 |
1668 | '@esbuild/netbsd-x64@0.25.5':
1669 | optional: true
1670 |
1671 | '@esbuild/openbsd-arm64@0.25.4':
1672 | optional: true
1673 |
1674 | '@esbuild/openbsd-arm64@0.25.5':
1675 | optional: true
1676 |
1677 | '@esbuild/openbsd-x64@0.25.4':
1678 | optional: true
1679 |
1680 | '@esbuild/openbsd-x64@0.25.5':
1681 | optional: true
1682 |
1683 | '@esbuild/sunos-x64@0.25.4':
1684 | optional: true
1685 |
1686 | '@esbuild/sunos-x64@0.25.5':
1687 | optional: true
1688 |
1689 | '@esbuild/win32-arm64@0.25.4':
1690 | optional: true
1691 |
1692 | '@esbuild/win32-arm64@0.25.5':
1693 | optional: true
1694 |
1695 | '@esbuild/win32-ia32@0.25.4':
1696 | optional: true
1697 |
1698 | '@esbuild/win32-ia32@0.25.5':
1699 | optional: true
1700 |
1701 | '@esbuild/win32-x64@0.25.4':
1702 | optional: true
1703 |
1704 | '@esbuild/win32-x64@0.25.5':
1705 | optional: true
1706 |
1707 | '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)':
1708 | dependencies:
1709 | eslint: 8.57.1
1710 | eslint-visitor-keys: 3.4.3
1711 |
1712 | '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0)':
1713 | dependencies:
1714 | eslint: 9.27.0
1715 | eslint-visitor-keys: 3.4.3
1716 |
1717 | '@eslint-community/regexpp@4.12.1': {}
1718 |
1719 | '@eslint/compat@1.2.9(eslint@9.27.0)':
1720 | optionalDependencies:
1721 | eslint: 9.27.0
1722 |
1723 | '@eslint/config-array@0.20.0':
1724 | dependencies:
1725 | '@eslint/object-schema': 2.1.6
1726 | debug: 4.4.1
1727 | minimatch: 3.1.2
1728 | transitivePeerDependencies:
1729 | - supports-color
1730 |
1731 | '@eslint/config-helpers@0.2.2': {}
1732 |
1733 | '@eslint/core@0.13.0':
1734 | dependencies:
1735 | '@types/json-schema': 7.0.15
1736 |
1737 | '@eslint/core@0.14.0':
1738 | dependencies:
1739 | '@types/json-schema': 7.0.15
1740 |
1741 | '@eslint/eslintrc@2.1.4':
1742 | dependencies:
1743 | ajv: 6.12.6
1744 | debug: 4.4.1
1745 | espree: 9.6.1
1746 | globals: 13.24.0
1747 | ignore: 5.3.2
1748 | import-fresh: 3.3.1
1749 | js-yaml: 4.1.0
1750 | minimatch: 3.1.2
1751 | strip-json-comments: 3.1.1
1752 | transitivePeerDependencies:
1753 | - supports-color
1754 |
1755 | '@eslint/eslintrc@3.3.1':
1756 | dependencies:
1757 | ajv: 6.12.6
1758 | debug: 4.4.1
1759 | espree: 10.3.0
1760 | globals: 14.0.0
1761 | ignore: 5.3.2
1762 | import-fresh: 3.3.1
1763 | js-yaml: 4.1.0
1764 | minimatch: 3.1.2
1765 | strip-json-comments: 3.1.1
1766 | transitivePeerDependencies:
1767 | - supports-color
1768 |
1769 | '@eslint/js@8.57.1': {}
1770 |
1771 | '@eslint/js@9.27.0': {}
1772 |
1773 | '@eslint/object-schema@2.1.6': {}
1774 |
1775 | '@eslint/plugin-kit@0.2.8':
1776 | dependencies:
1777 | '@eslint/core': 0.13.0
1778 | levn: 0.4.1
1779 |
1780 | '@eslint/plugin-kit@0.3.1':
1781 | dependencies:
1782 | '@eslint/core': 0.14.0
1783 | levn: 0.4.1
1784 |
1785 | '@fastify/busboy@2.1.1': {}
1786 |
1787 | '@humanfs/core@0.19.1': {}
1788 |
1789 | '@humanfs/node@0.16.6':
1790 | dependencies:
1791 | '@humanfs/core': 0.19.1
1792 | '@humanwhocodes/retry': 0.3.1
1793 |
1794 | '@humanwhocodes/config-array@0.13.0':
1795 | dependencies:
1796 | '@humanwhocodes/object-schema': 2.0.3
1797 | debug: 4.4.1
1798 | minimatch: 3.1.2
1799 | transitivePeerDependencies:
1800 | - supports-color
1801 |
1802 | '@humanwhocodes/module-importer@1.0.1': {}
1803 |
1804 | '@humanwhocodes/object-schema@2.0.3': {}
1805 |
1806 | '@humanwhocodes/retry@0.3.1': {}
1807 |
1808 | '@humanwhocodes/retry@0.4.3': {}
1809 |
1810 | '@img/sharp-darwin-arm64@0.33.5':
1811 | optionalDependencies:
1812 | '@img/sharp-libvips-darwin-arm64': 1.0.4
1813 | optional: true
1814 |
1815 | '@img/sharp-darwin-x64@0.33.5':
1816 | optionalDependencies:
1817 | '@img/sharp-libvips-darwin-x64': 1.0.4
1818 | optional: true
1819 |
1820 | '@img/sharp-libvips-darwin-arm64@1.0.4':
1821 | optional: true
1822 |
1823 | '@img/sharp-libvips-darwin-x64@1.0.4':
1824 | optional: true
1825 |
1826 | '@img/sharp-libvips-linux-arm64@1.0.4':
1827 | optional: true
1828 |
1829 | '@img/sharp-libvips-linux-arm@1.0.5':
1830 | optional: true
1831 |
1832 | '@img/sharp-libvips-linux-s390x@1.0.4':
1833 | optional: true
1834 |
1835 | '@img/sharp-libvips-linux-x64@1.0.4':
1836 | optional: true
1837 |
1838 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4':
1839 | optional: true
1840 |
1841 | '@img/sharp-libvips-linuxmusl-x64@1.0.4':
1842 | optional: true
1843 |
1844 | '@img/sharp-linux-arm64@0.33.5':
1845 | optionalDependencies:
1846 | '@img/sharp-libvips-linux-arm64': 1.0.4
1847 | optional: true
1848 |
1849 | '@img/sharp-linux-arm@0.33.5':
1850 | optionalDependencies:
1851 | '@img/sharp-libvips-linux-arm': 1.0.5
1852 | optional: true
1853 |
1854 | '@img/sharp-linux-s390x@0.33.5':
1855 | optionalDependencies:
1856 | '@img/sharp-libvips-linux-s390x': 1.0.4
1857 | optional: true
1858 |
1859 | '@img/sharp-linux-x64@0.33.5':
1860 | optionalDependencies:
1861 | '@img/sharp-libvips-linux-x64': 1.0.4
1862 | optional: true
1863 |
1864 | '@img/sharp-linuxmusl-arm64@0.33.5':
1865 | optionalDependencies:
1866 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
1867 | optional: true
1868 |
1869 | '@img/sharp-linuxmusl-x64@0.33.5':
1870 | optionalDependencies:
1871 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4
1872 | optional: true
1873 |
1874 | '@img/sharp-wasm32@0.33.5':
1875 | dependencies:
1876 | '@emnapi/runtime': 1.4.3
1877 | optional: true
1878 |
1879 | '@img/sharp-win32-ia32@0.33.5':
1880 | optional: true
1881 |
1882 | '@img/sharp-win32-x64@0.33.5':
1883 | optional: true
1884 |
1885 | '@jridgewell/resolve-uri@3.1.2': {}
1886 |
1887 | '@jridgewell/sourcemap-codec@1.5.0': {}
1888 |
1889 | '@jridgewell/trace-mapping@0.3.9':
1890 | dependencies:
1891 | '@jridgewell/resolve-uri': 3.1.2
1892 | '@jridgewell/sourcemap-codec': 1.5.0
1893 |
1894 | '@microsoft/eslint-formatter-sarif@3.1.0':
1895 | dependencies:
1896 | eslint: 8.57.1
1897 | jschardet: 3.1.4
1898 | lodash: 4.17.21
1899 | utf8: 3.0.0
1900 | transitivePeerDependencies:
1901 | - supports-color
1902 |
1903 | '@nodelib/fs.scandir@2.1.5':
1904 | dependencies:
1905 | '@nodelib/fs.stat': 2.0.5
1906 | run-parallel: 1.2.0
1907 |
1908 | '@nodelib/fs.stat@2.0.5': {}
1909 |
1910 | '@nodelib/fs.walk@1.2.8':
1911 | dependencies:
1912 | '@nodelib/fs.scandir': 2.1.5
1913 | fastq: 1.19.1
1914 |
1915 | '@ryanccn/eslint-config@0.5.0(@eslint/eslintrc@3.3.1)(@eslint/js@9.27.0)(eslint-config-prettier@10.1.5(eslint@9.27.0))(eslint-plugin-unicorn@59.0.1(eslint@9.27.0))(eslint@9.27.0)(typescript-eslint@8.33.0(eslint@9.27.0)(typescript@5.8.3))(typescript@5.8.3)':
1916 | dependencies:
1917 | '@eslint/compat': 1.2.9(eslint@9.27.0)
1918 | '@typescript-eslint/utils': 8.32.1(eslint@9.27.0)(typescript@5.8.3)
1919 | eslint: 9.27.0
1920 | globals: 16.1.0
1921 | local-pkg: 1.1.1
1922 | tinyrainbow: 2.0.0
1923 | optionalDependencies:
1924 | '@eslint/eslintrc': 3.3.1
1925 | '@eslint/js': 9.27.0
1926 | eslint-config-prettier: 10.1.5(eslint@9.27.0)
1927 | eslint-plugin-unicorn: 59.0.1(eslint@9.27.0)
1928 | typescript-eslint: 8.33.0(eslint@9.27.0)(typescript@5.8.3)
1929 | transitivePeerDependencies:
1930 | - supports-color
1931 | - typescript
1932 |
1933 | '@types/estree@1.0.7': {}
1934 |
1935 | '@types/json-schema@7.0.15': {}
1936 |
1937 | '@typescript-eslint/eslint-plugin@8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)':
1938 | dependencies:
1939 | '@eslint-community/regexpp': 4.12.1
1940 | '@typescript-eslint/parser': 8.33.0(eslint@9.27.0)(typescript@5.8.3)
1941 | '@typescript-eslint/scope-manager': 8.33.0
1942 | '@typescript-eslint/type-utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3)
1943 | '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3)
1944 | '@typescript-eslint/visitor-keys': 8.33.0
1945 | eslint: 9.27.0
1946 | graphemer: 1.4.0
1947 | ignore: 7.0.4
1948 | natural-compare: 1.4.0
1949 | ts-api-utils: 2.1.0(typescript@5.8.3)
1950 | typescript: 5.8.3
1951 | transitivePeerDependencies:
1952 | - supports-color
1953 |
1954 | '@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3)':
1955 | dependencies:
1956 | '@typescript-eslint/scope-manager': 8.33.0
1957 | '@typescript-eslint/types': 8.33.0
1958 | '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3)
1959 | '@typescript-eslint/visitor-keys': 8.33.0
1960 | debug: 4.4.1
1961 | eslint: 9.27.0
1962 | typescript: 5.8.3
1963 | transitivePeerDependencies:
1964 | - supports-color
1965 |
1966 | '@typescript-eslint/project-service@8.33.0(typescript@5.8.3)':
1967 | dependencies:
1968 | '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3)
1969 | '@typescript-eslint/types': 8.33.0
1970 | debug: 4.4.1
1971 | transitivePeerDependencies:
1972 | - supports-color
1973 | - typescript
1974 |
1975 | '@typescript-eslint/scope-manager@8.32.1':
1976 | dependencies:
1977 | '@typescript-eslint/types': 8.32.1
1978 | '@typescript-eslint/visitor-keys': 8.32.1
1979 |
1980 | '@typescript-eslint/scope-manager@8.33.0':
1981 | dependencies:
1982 | '@typescript-eslint/types': 8.33.0
1983 | '@typescript-eslint/visitor-keys': 8.33.0
1984 |
1985 | '@typescript-eslint/tsconfig-utils@8.33.0(typescript@5.8.3)':
1986 | dependencies:
1987 | typescript: 5.8.3
1988 |
1989 | '@typescript-eslint/type-utils@8.33.0(eslint@9.27.0)(typescript@5.8.3)':
1990 | dependencies:
1991 | '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3)
1992 | '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3)
1993 | debug: 4.4.1
1994 | eslint: 9.27.0
1995 | ts-api-utils: 2.1.0(typescript@5.8.3)
1996 | typescript: 5.8.3
1997 | transitivePeerDependencies:
1998 | - supports-color
1999 |
2000 | '@typescript-eslint/types@8.32.1': {}
2001 |
2002 | '@typescript-eslint/types@8.33.0': {}
2003 |
2004 | '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)':
2005 | dependencies:
2006 | '@typescript-eslint/types': 8.32.1
2007 | '@typescript-eslint/visitor-keys': 8.32.1
2008 | debug: 4.4.1
2009 | fast-glob: 3.3.3
2010 | is-glob: 4.0.3
2011 | minimatch: 9.0.5
2012 | semver: 7.7.2
2013 | ts-api-utils: 2.1.0(typescript@5.8.3)
2014 | typescript: 5.8.3
2015 | transitivePeerDependencies:
2016 | - supports-color
2017 |
2018 | '@typescript-eslint/typescript-estree@8.33.0(typescript@5.8.3)':
2019 | dependencies:
2020 | '@typescript-eslint/project-service': 8.33.0(typescript@5.8.3)
2021 | '@typescript-eslint/tsconfig-utils': 8.33.0(typescript@5.8.3)
2022 | '@typescript-eslint/types': 8.33.0
2023 | '@typescript-eslint/visitor-keys': 8.33.0
2024 | debug: 4.4.1
2025 | fast-glob: 3.3.3
2026 | is-glob: 4.0.3
2027 | minimatch: 9.0.5
2028 | semver: 7.7.2
2029 | ts-api-utils: 2.1.0(typescript@5.8.3)
2030 | typescript: 5.8.3
2031 | transitivePeerDependencies:
2032 | - supports-color
2033 |
2034 | '@typescript-eslint/utils@8.32.1(eslint@9.27.0)(typescript@5.8.3)':
2035 | dependencies:
2036 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0)
2037 | '@typescript-eslint/scope-manager': 8.32.1
2038 | '@typescript-eslint/types': 8.32.1
2039 | '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3)
2040 | eslint: 9.27.0
2041 | typescript: 5.8.3
2042 | transitivePeerDependencies:
2043 | - supports-color
2044 |
2045 | '@typescript-eslint/utils@8.33.0(eslint@9.27.0)(typescript@5.8.3)':
2046 | dependencies:
2047 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0)
2048 | '@typescript-eslint/scope-manager': 8.33.0
2049 | '@typescript-eslint/types': 8.33.0
2050 | '@typescript-eslint/typescript-estree': 8.33.0(typescript@5.8.3)
2051 | eslint: 9.27.0
2052 | typescript: 5.8.3
2053 | transitivePeerDependencies:
2054 | - supports-color
2055 |
2056 | '@typescript-eslint/visitor-keys@8.32.1':
2057 | dependencies:
2058 | '@typescript-eslint/types': 8.32.1
2059 | eslint-visitor-keys: 4.2.0
2060 |
2061 | '@typescript-eslint/visitor-keys@8.33.0':
2062 | dependencies:
2063 | '@typescript-eslint/types': 8.33.0
2064 | eslint-visitor-keys: 4.2.0
2065 |
2066 | '@ungap/structured-clone@1.3.0': {}
2067 |
2068 | acorn-jsx@5.3.2(acorn@8.14.1):
2069 | dependencies:
2070 | acorn: 8.14.1
2071 |
2072 | acorn-walk@8.3.2: {}
2073 |
2074 | acorn@8.14.0: {}
2075 |
2076 | acorn@8.14.1: {}
2077 |
2078 | ajv@6.12.6:
2079 | dependencies:
2080 | fast-deep-equal: 3.1.3
2081 | fast-json-stable-stringify: 2.1.0
2082 | json-schema-traverse: 0.4.1
2083 | uri-js: 4.4.1
2084 |
2085 | ansi-regex@5.0.1: {}
2086 |
2087 | ansi-styles@4.3.0:
2088 | dependencies:
2089 | color-convert: 2.0.1
2090 |
2091 | argparse@2.0.1: {}
2092 |
2093 | as-table@1.0.55:
2094 | dependencies:
2095 | printable-characters: 1.0.42
2096 |
2097 | balanced-match@1.0.2: {}
2098 |
2099 | blake3-wasm@2.1.5: {}
2100 |
2101 | brace-expansion@1.1.11:
2102 | dependencies:
2103 | balanced-match: 1.0.2
2104 | concat-map: 0.0.1
2105 |
2106 | brace-expansion@2.0.1:
2107 | dependencies:
2108 | balanced-match: 1.0.2
2109 |
2110 | braces@3.0.3:
2111 | dependencies:
2112 | fill-range: 7.1.1
2113 |
2114 | browserslist@4.24.5:
2115 | dependencies:
2116 | caniuse-lite: 1.0.30001718
2117 | electron-to-chromium: 1.5.157
2118 | node-releases: 2.0.19
2119 | update-browserslist-db: 1.1.3(browserslist@4.24.5)
2120 |
2121 | builtin-modules@5.0.0: {}
2122 |
2123 | callsites@3.1.0: {}
2124 |
2125 | caniuse-lite@1.0.30001718: {}
2126 |
2127 | chalk@4.1.2:
2128 | dependencies:
2129 | ansi-styles: 4.3.0
2130 | supports-color: 7.2.0
2131 |
2132 | ci-info@4.2.0: {}
2133 |
2134 | clean-regexp@1.0.0:
2135 | dependencies:
2136 | escape-string-regexp: 1.0.5
2137 |
2138 | color-convert@2.0.1:
2139 | dependencies:
2140 | color-name: 1.1.4
2141 |
2142 | color-name@1.1.4: {}
2143 |
2144 | color-string@1.9.1:
2145 | dependencies:
2146 | color-name: 1.1.4
2147 | simple-swizzle: 0.2.2
2148 |
2149 | color@4.2.3:
2150 | dependencies:
2151 | color-convert: 2.0.1
2152 | color-string: 1.9.1
2153 |
2154 | concat-map@0.0.1: {}
2155 |
2156 | confbox@0.1.8: {}
2157 |
2158 | confbox@0.2.2: {}
2159 |
2160 | cookie@0.7.2: {}
2161 |
2162 | core-js-compat@3.42.0:
2163 | dependencies:
2164 | browserslist: 4.24.5
2165 |
2166 | cross-spawn@7.0.6:
2167 | dependencies:
2168 | path-key: 3.1.1
2169 | shebang-command: 2.0.0
2170 | which: 2.0.2
2171 |
2172 | data-uri-to-buffer@2.0.2: {}
2173 |
2174 | debug@4.4.1:
2175 | dependencies:
2176 | ms: 2.1.3
2177 |
2178 | deep-is@0.1.4: {}
2179 |
2180 | defu@6.1.4: {}
2181 |
2182 | detect-libc@2.0.4: {}
2183 |
2184 | doctrine@3.0.0:
2185 | dependencies:
2186 | esutils: 2.0.3
2187 |
2188 | electron-to-chromium@1.5.157: {}
2189 |
2190 | esbuild@0.25.4:
2191 | optionalDependencies:
2192 | '@esbuild/aix-ppc64': 0.25.4
2193 | '@esbuild/android-arm': 0.25.4
2194 | '@esbuild/android-arm64': 0.25.4
2195 | '@esbuild/android-x64': 0.25.4
2196 | '@esbuild/darwin-arm64': 0.25.4
2197 | '@esbuild/darwin-x64': 0.25.4
2198 | '@esbuild/freebsd-arm64': 0.25.4
2199 | '@esbuild/freebsd-x64': 0.25.4
2200 | '@esbuild/linux-arm': 0.25.4
2201 | '@esbuild/linux-arm64': 0.25.4
2202 | '@esbuild/linux-ia32': 0.25.4
2203 | '@esbuild/linux-loong64': 0.25.4
2204 | '@esbuild/linux-mips64el': 0.25.4
2205 | '@esbuild/linux-ppc64': 0.25.4
2206 | '@esbuild/linux-riscv64': 0.25.4
2207 | '@esbuild/linux-s390x': 0.25.4
2208 | '@esbuild/linux-x64': 0.25.4
2209 | '@esbuild/netbsd-arm64': 0.25.4
2210 | '@esbuild/netbsd-x64': 0.25.4
2211 | '@esbuild/openbsd-arm64': 0.25.4
2212 | '@esbuild/openbsd-x64': 0.25.4
2213 | '@esbuild/sunos-x64': 0.25.4
2214 | '@esbuild/win32-arm64': 0.25.4
2215 | '@esbuild/win32-ia32': 0.25.4
2216 | '@esbuild/win32-x64': 0.25.4
2217 |
2218 | esbuild@0.25.5:
2219 | optionalDependencies:
2220 | '@esbuild/aix-ppc64': 0.25.5
2221 | '@esbuild/android-arm': 0.25.5
2222 | '@esbuild/android-arm64': 0.25.5
2223 | '@esbuild/android-x64': 0.25.5
2224 | '@esbuild/darwin-arm64': 0.25.5
2225 | '@esbuild/darwin-x64': 0.25.5
2226 | '@esbuild/freebsd-arm64': 0.25.5
2227 | '@esbuild/freebsd-x64': 0.25.5
2228 | '@esbuild/linux-arm': 0.25.5
2229 | '@esbuild/linux-arm64': 0.25.5
2230 | '@esbuild/linux-ia32': 0.25.5
2231 | '@esbuild/linux-loong64': 0.25.5
2232 | '@esbuild/linux-mips64el': 0.25.5
2233 | '@esbuild/linux-ppc64': 0.25.5
2234 | '@esbuild/linux-riscv64': 0.25.5
2235 | '@esbuild/linux-s390x': 0.25.5
2236 | '@esbuild/linux-x64': 0.25.5
2237 | '@esbuild/netbsd-arm64': 0.25.5
2238 | '@esbuild/netbsd-x64': 0.25.5
2239 | '@esbuild/openbsd-arm64': 0.25.5
2240 | '@esbuild/openbsd-x64': 0.25.5
2241 | '@esbuild/sunos-x64': 0.25.5
2242 | '@esbuild/win32-arm64': 0.25.5
2243 | '@esbuild/win32-ia32': 0.25.5
2244 | '@esbuild/win32-x64': 0.25.5
2245 |
2246 | escalade@3.2.0: {}
2247 |
2248 | escape-string-regexp@1.0.5: {}
2249 |
2250 | escape-string-regexp@4.0.0: {}
2251 |
2252 | eslint-config-prettier@10.1.5(eslint@9.27.0):
2253 | dependencies:
2254 | eslint: 9.27.0
2255 |
2256 | eslint-plugin-unicorn@59.0.1(eslint@9.27.0):
2257 | dependencies:
2258 | '@babel/helper-validator-identifier': 7.27.1
2259 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0)
2260 | '@eslint/plugin-kit': 0.2.8
2261 | ci-info: 4.2.0
2262 | clean-regexp: 1.0.0
2263 | core-js-compat: 3.42.0
2264 | eslint: 9.27.0
2265 | esquery: 1.6.0
2266 | find-up-simple: 1.0.1
2267 | globals: 16.1.0
2268 | indent-string: 5.0.0
2269 | is-builtin-module: 5.0.0
2270 | jsesc: 3.1.0
2271 | pluralize: 8.0.0
2272 | regexp-tree: 0.1.27
2273 | regjsparser: 0.12.0
2274 | semver: 7.7.2
2275 | strip-indent: 4.0.0
2276 |
2277 | eslint-scope@7.2.2:
2278 | dependencies:
2279 | esrecurse: 4.3.0
2280 | estraverse: 5.3.0
2281 |
2282 | eslint-scope@8.3.0:
2283 | dependencies:
2284 | esrecurse: 4.3.0
2285 | estraverse: 5.3.0
2286 |
2287 | eslint-visitor-keys@3.4.3: {}
2288 |
2289 | eslint-visitor-keys@4.2.0: {}
2290 |
2291 | eslint@8.57.1:
2292 | dependencies:
2293 | '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1)
2294 | '@eslint-community/regexpp': 4.12.1
2295 | '@eslint/eslintrc': 2.1.4
2296 | '@eslint/js': 8.57.1
2297 | '@humanwhocodes/config-array': 0.13.0
2298 | '@humanwhocodes/module-importer': 1.0.1
2299 | '@nodelib/fs.walk': 1.2.8
2300 | '@ungap/structured-clone': 1.3.0
2301 | ajv: 6.12.6
2302 | chalk: 4.1.2
2303 | cross-spawn: 7.0.6
2304 | debug: 4.4.1
2305 | doctrine: 3.0.0
2306 | escape-string-regexp: 4.0.0
2307 | eslint-scope: 7.2.2
2308 | eslint-visitor-keys: 3.4.3
2309 | espree: 9.6.1
2310 | esquery: 1.6.0
2311 | esutils: 2.0.3
2312 | fast-deep-equal: 3.1.3
2313 | file-entry-cache: 6.0.1
2314 | find-up: 5.0.0
2315 | glob-parent: 6.0.2
2316 | globals: 13.24.0
2317 | graphemer: 1.4.0
2318 | ignore: 5.3.2
2319 | imurmurhash: 0.1.4
2320 | is-glob: 4.0.3
2321 | is-path-inside: 3.0.3
2322 | js-yaml: 4.1.0
2323 | json-stable-stringify-without-jsonify: 1.0.1
2324 | levn: 0.4.1
2325 | lodash.merge: 4.6.2
2326 | minimatch: 3.1.2
2327 | natural-compare: 1.4.0
2328 | optionator: 0.9.4
2329 | strip-ansi: 6.0.1
2330 | text-table: 0.2.0
2331 | transitivePeerDependencies:
2332 | - supports-color
2333 |
2334 | eslint@9.27.0:
2335 | dependencies:
2336 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0)
2337 | '@eslint-community/regexpp': 4.12.1
2338 | '@eslint/config-array': 0.20.0
2339 | '@eslint/config-helpers': 0.2.2
2340 | '@eslint/core': 0.14.0
2341 | '@eslint/eslintrc': 3.3.1
2342 | '@eslint/js': 9.27.0
2343 | '@eslint/plugin-kit': 0.3.1
2344 | '@humanfs/node': 0.16.6
2345 | '@humanwhocodes/module-importer': 1.0.1
2346 | '@humanwhocodes/retry': 0.4.3
2347 | '@types/estree': 1.0.7
2348 | '@types/json-schema': 7.0.15
2349 | ajv: 6.12.6
2350 | chalk: 4.1.2
2351 | cross-spawn: 7.0.6
2352 | debug: 4.4.1
2353 | escape-string-regexp: 4.0.0
2354 | eslint-scope: 8.3.0
2355 | eslint-visitor-keys: 4.2.0
2356 | espree: 10.3.0
2357 | esquery: 1.6.0
2358 | esutils: 2.0.3
2359 | fast-deep-equal: 3.1.3
2360 | file-entry-cache: 8.0.0
2361 | find-up: 5.0.0
2362 | glob-parent: 6.0.2
2363 | ignore: 5.3.2
2364 | imurmurhash: 0.1.4
2365 | is-glob: 4.0.3
2366 | json-stable-stringify-without-jsonify: 1.0.1
2367 | lodash.merge: 4.6.2
2368 | minimatch: 3.1.2
2369 | natural-compare: 1.4.0
2370 | optionator: 0.9.4
2371 | transitivePeerDependencies:
2372 | - supports-color
2373 |
2374 | espree@10.3.0:
2375 | dependencies:
2376 | acorn: 8.14.1
2377 | acorn-jsx: 5.3.2(acorn@8.14.1)
2378 | eslint-visitor-keys: 4.2.0
2379 |
2380 | espree@9.6.1:
2381 | dependencies:
2382 | acorn: 8.14.1
2383 | acorn-jsx: 5.3.2(acorn@8.14.1)
2384 | eslint-visitor-keys: 3.4.3
2385 |
2386 | esquery@1.6.0:
2387 | dependencies:
2388 | estraverse: 5.3.0
2389 |
2390 | esrecurse@4.3.0:
2391 | dependencies:
2392 | estraverse: 5.3.0
2393 |
2394 | estraverse@5.3.0: {}
2395 |
2396 | esutils@2.0.3: {}
2397 |
2398 | exit-hook@2.2.1: {}
2399 |
2400 | exsolve@1.0.5: {}
2401 |
2402 | fast-deep-equal@3.1.3: {}
2403 |
2404 | fast-glob@3.3.3:
2405 | dependencies:
2406 | '@nodelib/fs.stat': 2.0.5
2407 | '@nodelib/fs.walk': 1.2.8
2408 | glob-parent: 5.1.2
2409 | merge2: 1.4.1
2410 | micromatch: 4.0.8
2411 |
2412 | fast-json-stable-stringify@2.1.0: {}
2413 |
2414 | fast-levenshtein@2.0.6: {}
2415 |
2416 | fastq@1.19.1:
2417 | dependencies:
2418 | reusify: 1.1.0
2419 |
2420 | file-entry-cache@6.0.1:
2421 | dependencies:
2422 | flat-cache: 3.2.0
2423 |
2424 | file-entry-cache@8.0.0:
2425 | dependencies:
2426 | flat-cache: 4.0.1
2427 |
2428 | fill-range@7.1.1:
2429 | dependencies:
2430 | to-regex-range: 5.0.1
2431 |
2432 | find-up-simple@1.0.1: {}
2433 |
2434 | find-up@5.0.0:
2435 | dependencies:
2436 | locate-path: 6.0.0
2437 | path-exists: 4.0.0
2438 |
2439 | flat-cache@3.2.0:
2440 | dependencies:
2441 | flatted: 3.3.3
2442 | keyv: 4.5.4
2443 | rimraf: 3.0.2
2444 |
2445 | flat-cache@4.0.1:
2446 | dependencies:
2447 | flatted: 3.3.3
2448 | keyv: 4.5.4
2449 |
2450 | flatted@3.3.3: {}
2451 |
2452 | fs.realpath@1.0.0: {}
2453 |
2454 | fsevents@2.3.3:
2455 | optional: true
2456 |
2457 | get-source@2.0.12:
2458 | dependencies:
2459 | data-uri-to-buffer: 2.0.2
2460 | source-map: 0.6.1
2461 |
2462 | get-tsconfig@4.10.1:
2463 | dependencies:
2464 | resolve-pkg-maps: 1.0.0
2465 |
2466 | glob-parent@5.1.2:
2467 | dependencies:
2468 | is-glob: 4.0.3
2469 |
2470 | glob-parent@6.0.2:
2471 | dependencies:
2472 | is-glob: 4.0.3
2473 |
2474 | glob-to-regexp@0.4.1: {}
2475 |
2476 | glob@7.2.3:
2477 | dependencies:
2478 | fs.realpath: 1.0.0
2479 | inflight: 1.0.6
2480 | inherits: 2.0.4
2481 | minimatch: 3.1.2
2482 | once: 1.4.0
2483 | path-is-absolute: 1.0.1
2484 |
2485 | globals@13.24.0:
2486 | dependencies:
2487 | type-fest: 0.20.2
2488 |
2489 | globals@14.0.0: {}
2490 |
2491 | globals@16.1.0: {}
2492 |
2493 | graphemer@1.4.0: {}
2494 |
2495 | has-flag@4.0.0: {}
2496 |
2497 | hono@4.7.10: {}
2498 |
2499 | ignore@5.3.2: {}
2500 |
2501 | ignore@7.0.4: {}
2502 |
2503 | import-fresh@3.3.1:
2504 | dependencies:
2505 | parent-module: 1.0.1
2506 | resolve-from: 4.0.0
2507 |
2508 | imurmurhash@0.1.4: {}
2509 |
2510 | indent-string@5.0.0: {}
2511 |
2512 | inflight@1.0.6:
2513 | dependencies:
2514 | once: 1.4.0
2515 | wrappy: 1.0.2
2516 |
2517 | inherits@2.0.4: {}
2518 |
2519 | is-arrayish@0.3.2: {}
2520 |
2521 | is-builtin-module@5.0.0:
2522 | dependencies:
2523 | builtin-modules: 5.0.0
2524 |
2525 | is-extglob@2.1.1: {}
2526 |
2527 | is-glob@4.0.3:
2528 | dependencies:
2529 | is-extglob: 2.1.1
2530 |
2531 | is-number@7.0.0: {}
2532 |
2533 | is-path-inside@3.0.3: {}
2534 |
2535 | isexe@2.0.0: {}
2536 |
2537 | js-yaml@4.1.0:
2538 | dependencies:
2539 | argparse: 2.0.1
2540 |
2541 | jschardet@3.1.4: {}
2542 |
2543 | jsesc@3.0.2: {}
2544 |
2545 | jsesc@3.1.0: {}
2546 |
2547 | json-buffer@3.0.1: {}
2548 |
2549 | json-schema-traverse@0.4.1: {}
2550 |
2551 | json-stable-stringify-without-jsonify@1.0.1: {}
2552 |
2553 | keyv@4.5.4:
2554 | dependencies:
2555 | json-buffer: 3.0.1
2556 |
2557 | levn@0.4.1:
2558 | dependencies:
2559 | prelude-ls: 1.2.1
2560 | type-check: 0.4.0
2561 |
2562 | local-pkg@1.1.1:
2563 | dependencies:
2564 | mlly: 1.7.4
2565 | pkg-types: 2.1.0
2566 | quansync: 0.2.10
2567 |
2568 | locate-path@6.0.0:
2569 | dependencies:
2570 | p-locate: 5.0.0
2571 |
2572 | lodash.merge@4.6.2: {}
2573 |
2574 | lodash@4.17.21: {}
2575 |
2576 | merge2@1.4.1: {}
2577 |
2578 | micromatch@4.0.8:
2579 | dependencies:
2580 | braces: 3.0.3
2581 | picomatch: 2.3.1
2582 |
2583 | mime@3.0.0: {}
2584 |
2585 | min-indent@1.0.1: {}
2586 |
2587 | miniflare@4.20250523.0:
2588 | dependencies:
2589 | '@cspotcode/source-map-support': 0.8.1
2590 | acorn: 8.14.0
2591 | acorn-walk: 8.3.2
2592 | exit-hook: 2.2.1
2593 | glob-to-regexp: 0.4.1
2594 | sharp: 0.33.5
2595 | stoppable: 1.1.0
2596 | undici: 5.29.0
2597 | workerd: 1.20250523.0
2598 | ws: 8.18.0
2599 | youch: 3.3.4
2600 | zod: 3.22.3
2601 | transitivePeerDependencies:
2602 | - bufferutil
2603 | - utf-8-validate
2604 |
2605 | minimatch@3.1.2:
2606 | dependencies:
2607 | brace-expansion: 1.1.11
2608 |
2609 | minimatch@9.0.5:
2610 | dependencies:
2611 | brace-expansion: 2.0.1
2612 |
2613 | mlly@1.7.4:
2614 | dependencies:
2615 | acorn: 8.14.1
2616 | pathe: 2.0.3
2617 | pkg-types: 1.3.1
2618 | ufo: 1.6.1
2619 |
2620 | ms@2.1.3: {}
2621 |
2622 | mustache@4.2.0: {}
2623 |
2624 | natural-compare@1.4.0: {}
2625 |
2626 | node-releases@2.0.19: {}
2627 |
2628 | ohash@2.0.11: {}
2629 |
2630 | once@1.4.0:
2631 | dependencies:
2632 | wrappy: 1.0.2
2633 |
2634 | optionator@0.9.4:
2635 | dependencies:
2636 | deep-is: 0.1.4
2637 | fast-levenshtein: 2.0.6
2638 | levn: 0.4.1
2639 | prelude-ls: 1.2.1
2640 | type-check: 0.4.0
2641 | word-wrap: 1.2.5
2642 |
2643 | p-limit@3.1.0:
2644 | dependencies:
2645 | yocto-queue: 0.1.0
2646 |
2647 | p-locate@5.0.0:
2648 | dependencies:
2649 | p-limit: 3.1.0
2650 |
2651 | parent-module@1.0.1:
2652 | dependencies:
2653 | callsites: 3.1.0
2654 |
2655 | path-exists@4.0.0: {}
2656 |
2657 | path-is-absolute@1.0.1: {}
2658 |
2659 | path-key@3.1.1: {}
2660 |
2661 | path-to-regexp@6.3.0: {}
2662 |
2663 | pathe@2.0.3: {}
2664 |
2665 | picocolors@1.1.1: {}
2666 |
2667 | picomatch@2.3.1: {}
2668 |
2669 | pkg-types@1.3.1:
2670 | dependencies:
2671 | confbox: 0.1.8
2672 | mlly: 1.7.4
2673 | pathe: 2.0.3
2674 |
2675 | pkg-types@2.1.0:
2676 | dependencies:
2677 | confbox: 0.2.2
2678 | exsolve: 1.0.5
2679 | pathe: 2.0.3
2680 |
2681 | pluralize@8.0.0: {}
2682 |
2683 | prelude-ls@1.2.1: {}
2684 |
2685 | printable-characters@1.0.42: {}
2686 |
2687 | punycode@2.3.1: {}
2688 |
2689 | quansync@0.2.10: {}
2690 |
2691 | queue-microtask@1.2.3: {}
2692 |
2693 | regexp-tree@0.1.27: {}
2694 |
2695 | regjsparser@0.12.0:
2696 | dependencies:
2697 | jsesc: 3.0.2
2698 |
2699 | resolve-from@4.0.0: {}
2700 |
2701 | resolve-pkg-maps@1.0.0: {}
2702 |
2703 | reusify@1.1.0: {}
2704 |
2705 | rimraf@3.0.2:
2706 | dependencies:
2707 | glob: 7.2.3
2708 |
2709 | run-parallel@1.2.0:
2710 | dependencies:
2711 | queue-microtask: 1.2.3
2712 |
2713 | semver@7.7.2: {}
2714 |
2715 | sharp@0.33.5:
2716 | dependencies:
2717 | color: 4.2.3
2718 | detect-libc: 2.0.4
2719 | semver: 7.7.2
2720 | optionalDependencies:
2721 | '@img/sharp-darwin-arm64': 0.33.5
2722 | '@img/sharp-darwin-x64': 0.33.5
2723 | '@img/sharp-libvips-darwin-arm64': 1.0.4
2724 | '@img/sharp-libvips-darwin-x64': 1.0.4
2725 | '@img/sharp-libvips-linux-arm': 1.0.5
2726 | '@img/sharp-libvips-linux-arm64': 1.0.4
2727 | '@img/sharp-libvips-linux-s390x': 1.0.4
2728 | '@img/sharp-libvips-linux-x64': 1.0.4
2729 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
2730 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4
2731 | '@img/sharp-linux-arm': 0.33.5
2732 | '@img/sharp-linux-arm64': 0.33.5
2733 | '@img/sharp-linux-s390x': 0.33.5
2734 | '@img/sharp-linux-x64': 0.33.5
2735 | '@img/sharp-linuxmusl-arm64': 0.33.5
2736 | '@img/sharp-linuxmusl-x64': 0.33.5
2737 | '@img/sharp-wasm32': 0.33.5
2738 | '@img/sharp-win32-ia32': 0.33.5
2739 | '@img/sharp-win32-x64': 0.33.5
2740 |
2741 | shebang-command@2.0.0:
2742 | dependencies:
2743 | shebang-regex: 3.0.0
2744 |
2745 | shebang-regex@3.0.0: {}
2746 |
2747 | simple-swizzle@0.2.2:
2748 | dependencies:
2749 | is-arrayish: 0.3.2
2750 |
2751 | source-map@0.6.1: {}
2752 |
2753 | stacktracey@2.1.8:
2754 | dependencies:
2755 | as-table: 1.0.55
2756 | get-source: 2.0.12
2757 |
2758 | stoppable@1.1.0: {}
2759 |
2760 | strip-ansi@6.0.1:
2761 | dependencies:
2762 | ansi-regex: 5.0.1
2763 |
2764 | strip-indent@4.0.0:
2765 | dependencies:
2766 | min-indent: 1.0.1
2767 |
2768 | strip-json-comments@3.1.1: {}
2769 |
2770 | supports-color@7.2.0:
2771 | dependencies:
2772 | has-flag: 4.0.0
2773 |
2774 | text-table@0.2.0: {}
2775 |
2776 | tinyrainbow@2.0.0: {}
2777 |
2778 | to-regex-range@5.0.1:
2779 | dependencies:
2780 | is-number: 7.0.0
2781 |
2782 | ts-api-utils@2.1.0(typescript@5.8.3):
2783 | dependencies:
2784 | typescript: 5.8.3
2785 |
2786 | tslib@2.8.1:
2787 | optional: true
2788 |
2789 | tsx@4.19.4:
2790 | dependencies:
2791 | esbuild: 0.25.5
2792 | get-tsconfig: 4.10.1
2793 | optionalDependencies:
2794 | fsevents: 2.3.3
2795 |
2796 | type-check@0.4.0:
2797 | dependencies:
2798 | prelude-ls: 1.2.1
2799 |
2800 | type-fest@0.20.2: {}
2801 |
2802 | typescript-eslint@8.33.0(eslint@9.27.0)(typescript@5.8.3):
2803 | dependencies:
2804 | '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/parser@8.33.0(eslint@9.27.0)(typescript@5.8.3))(eslint@9.27.0)(typescript@5.8.3)
2805 | '@typescript-eslint/parser': 8.33.0(eslint@9.27.0)(typescript@5.8.3)
2806 | '@typescript-eslint/utils': 8.33.0(eslint@9.27.0)(typescript@5.8.3)
2807 | eslint: 9.27.0
2808 | typescript: 5.8.3
2809 | transitivePeerDependencies:
2810 | - supports-color
2811 |
2812 | typescript@5.8.3: {}
2813 |
2814 | ufo@1.6.1: {}
2815 |
2816 | undici@5.29.0:
2817 | dependencies:
2818 | '@fastify/busboy': 2.1.1
2819 |
2820 | unenv@2.0.0-rc.17:
2821 | dependencies:
2822 | defu: 6.1.4
2823 | exsolve: 1.0.5
2824 | ohash: 2.0.11
2825 | pathe: 2.0.3
2826 | ufo: 1.6.1
2827 |
2828 | update-browserslist-db@1.1.3(browserslist@4.24.5):
2829 | dependencies:
2830 | browserslist: 4.24.5
2831 | escalade: 3.2.0
2832 | picocolors: 1.1.1
2833 |
2834 | uri-js@4.4.1:
2835 | dependencies:
2836 | punycode: 2.3.1
2837 |
2838 | utf8@3.0.0: {}
2839 |
2840 | which@2.0.2:
2841 | dependencies:
2842 | isexe: 2.0.0
2843 |
2844 | word-wrap@1.2.5: {}
2845 |
2846 | workerd@1.20250523.0:
2847 | optionalDependencies:
2848 | '@cloudflare/workerd-darwin-64': 1.20250523.0
2849 | '@cloudflare/workerd-darwin-arm64': 1.20250523.0
2850 | '@cloudflare/workerd-linux-64': 1.20250523.0
2851 | '@cloudflare/workerd-linux-arm64': 1.20250523.0
2852 | '@cloudflare/workerd-windows-64': 1.20250523.0
2853 |
2854 | wrangler@4.17.0(@cloudflare/workers-types@4.20250528.0):
2855 | dependencies:
2856 | '@cloudflare/kv-asset-handler': 0.4.0
2857 | '@cloudflare/unenv-preset': 2.3.2(unenv@2.0.0-rc.17)(workerd@1.20250523.0)
2858 | blake3-wasm: 2.1.5
2859 | esbuild: 0.25.4
2860 | miniflare: 4.20250523.0
2861 | path-to-regexp: 6.3.0
2862 | unenv: 2.0.0-rc.17
2863 | workerd: 1.20250523.0
2864 | optionalDependencies:
2865 | '@cloudflare/workers-types': 4.20250528.0
2866 | fsevents: 2.3.3
2867 | transitivePeerDependencies:
2868 | - bufferutil
2869 | - utf-8-validate
2870 |
2871 | wrappy@1.0.2: {}
2872 |
2873 | ws@8.18.0: {}
2874 |
2875 | yocto-queue@0.1.0: {}
2876 |
2877 | youch@3.3.4:
2878 | dependencies:
2879 | cookie: 0.7.2
2880 | mustache: 4.2.0
2881 | stacktracey: 2.1.8
2882 |
2883 | zod@3.22.3: {}
2884 |
--------------------------------------------------------------------------------
/shell.nix:
--------------------------------------------------------------------------------
1 | let
2 | pkgs = import {
3 | config = { };
4 | overlays = [ ];
5 | };
6 | in
7 |
8 | pkgs.mkShellNoCC {
9 | packages = with pkgs; [
10 | nodejs
11 | corepack
12 | typescript-language-server
13 |
14 | nrr
15 | wrangler
16 | ];
17 | }
18 |
--------------------------------------------------------------------------------
/src/esbuild.d.ts:
--------------------------------------------------------------------------------
1 | declare module '*.txt' {
2 | const src_default: string;
3 | export default src_default;
4 | }
5 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import { Hono } from 'hono';
2 |
3 | import { logger } from 'hono/logger';
4 | import { secureHeaders } from 'hono/secure-headers';
5 |
6 | import index from './index.txt';
7 |
8 | const app = new Hono();
9 | app.use(logger());
10 | app.use(secureHeaders());
11 |
12 | interface NixosSearchParams {
13 | type: 'packages' | 'options';
14 | name: string;
15 | channel?: string;
16 | }
17 |
18 | const makeNixosSearch = ({ type, name, channel }: NixosSearchParams) => {
19 | const base = new URL(`https://search.nixos.org/${encodeURIComponent(type)}`);
20 | base.searchParams.set('channel', channel ?? 'unstable');
21 | base.searchParams.set('show', name);
22 |
23 | return base.toString();
24 | };
25 |
26 | const makeRedirect = (dest: string) => {
27 | return new Response(`Redirecting to ${dest}`, {
28 | status: 302,
29 | headers: { 'content-type': 'text/plain; charset=utf-8', location: dest },
30 | });
31 | };
32 |
33 | const makeNixosRedirect = (opts: NixosSearchParams) => makeRedirect(makeNixosSearch(opts));
34 |
35 | app.get(
36 | '/',
37 | () =>
38 | new Response(index, {
39 | headers: { 'content-type': 'text/plain; charset=utf-8' },
40 | })
41 | );
42 |
43 | app.get('/pr/:id', (c) =>
44 | makeRedirect(`https://github.com/NixOS/nixpkgs/pull/${encodeURIComponent(c.req.param('id'))}`)
45 | );
46 | app.get('/pull/:id', (c) =>
47 | makeRedirect(`https://github.com/NixOS/nixpkgs/pull/${encodeURIComponent(c.req.param('id'))}`)
48 | );
49 |
50 | app.get('/docs', () => makeRedirect(`https://ryantm.github.io/nixpkgs/`));
51 | app.get('/docs/:rest{.+}', (c) => makeRedirect(`https://ryantm.github.io/nixpkgs/${c.req.param('rest')}`));
52 |
53 | app.get('/option/:opt', (c) =>
54 | makeNixosRedirect({
55 | type: 'options',
56 | name: c.req.param('opt'),
57 | })
58 | );
59 |
60 | app.get('/option/:channel/:opt', (c) =>
61 | makeNixosRedirect({
62 | type: 'options',
63 | name: c.req.param('opt'),
64 | channel: c.req.param('channel'),
65 | })
66 | );
67 |
68 | app.get('/:pkg', (c) =>
69 | makeNixosRedirect({
70 | type: 'packages',
71 | name: c.req.param('pkg'),
72 | })
73 | );
74 |
75 | app.get('/channel/:channel', (c) => {
76 | const { channel } = c.req.param();
77 | return makeRedirect(`https://channels.nixos.org/${channel}/nixexprs.tar.xz`);
78 | });
79 |
80 | app.get('/:channel/:pkg', (c) =>
81 | makeNixosRedirect({
82 | type: 'packages',
83 | name: c.req.param('pkg'),
84 | channel: c.req.param('channel'),
85 | })
86 | );
87 |
88 | export default app;
89 |
--------------------------------------------------------------------------------
/src/index.txt:
--------------------------------------------------------------------------------
1 | nixpkgs.dev
2 | ===========
3 |
4 | This is a convenient link shortener for Nixpkgs packages and NixOS
5 | options on search.nixos.org, and Nix channels on channels.nixos.org.
6 |
7 |
8 | Routes
9 | ------
10 |
11 | /pr/:id
12 | /pull/:id
13 | => https://github.com/NixOS/nixpkgs/pull/:id
14 |
15 | /docs
16 | => https://ryantm.github.io/nixpkgs/
17 | /docs/:rest{.+}
18 | => https://ryantm.github.io/nixpkgs/:rest
19 |
20 | /option/:opt
21 | => https://search.nixos.org/options?show=:opt&channel=unstable
22 | /option/:channel/:opt
23 | => https://search.nixos.org/options?show=:opt&channel=:channel
24 |
25 | /channel/:channel
26 | => https://channels.nixos.org/:channel/nixexprs.tar.xz
27 |
28 | /:pkg
29 | => https://search.nixos.org/packages?show=:pkg&channel=unstable
30 | /:channel/:pkg
31 | => https://search.nixos.org/packages?show=:pkg&channel=:channel
32 |
33 |
34 | GitHub
35 | ------
36 |
37 | https://github.com/ryanccn/nixpkgs-dev
38 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "esModuleInterop": true,
4 | "skipLibCheck": true,
5 | "target": "es2022",
6 | "allowJs": true,
7 | "resolveJsonModule": true,
8 | "moduleDetection": "force",
9 | "isolatedModules": true,
10 | "verbatimModuleSyntax": true,
11 | "strict": true,
12 | "noUncheckedIndexedAccess": true,
13 | "noImplicitOverride": true,
14 | "module": "preserve",
15 | "noEmit": true,
16 | "lib": ["es2022"],
17 | "types": ["@cloudflare/workers-types"]
18 | },
19 | "include": ["**/*.js", "**/*.ts"],
20 | "exclude": ["node_modules/*", "**/node_modules/*"]
21 | }
22 |
--------------------------------------------------------------------------------
/wrangler.jsonc:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nixpkgs-dev",
3 | "main": "dist/index.js",
4 | "compatibility_date": "2025-05-05",
5 |
6 | "workers_dev": false,
7 | "send_metrics": false,
8 | "no_bundle": true,
9 |
10 | "build": {
11 | "command": "pnpm run build"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------