diff --git a/README.md b/README.md
index c98fa1a..339e15a 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,23 @@
# ๐งถ knitwork
-[![npm version][npm-version-src]][npm-version-href]
-[![npm downloads][npm-downloads-src]][npm-downloads-href]
-[![Github Actions][github-actions-src]][github-actions-href]
-[![Codecov][codecov-src]][codecov-href]
+
-> Utilities to generate JavaScript code.
+[![npm version](https://img.shields.io/npm/v/knitwork?color=yellow)](https://npmjs.com/package/knitwork)
+[![npm downloads](https://img.shields.io/npm/dm/knitwork?color=yellow)](https://npmjs.com/package/knitwork)
+[![codecov](https://img.shields.io/codecov/c/gh/unjs/knitwork?color=yellow)](https://codecov.io/gh/unjs/knitwork)
+
+
+
+Utilities to generate JavaScript code.
## Install
+
+
```sh
+# โจ Auto-detect
+npx nypm install knitwork
+
# npm
npm install knitwork
@@ -18,128 +26,159 @@ yarn add knitwork
# pnpm
pnpm install knitwork
+
+# bun
+bun install knitwork
```
+
+
## Usage
**Generating ESM syntax:**
```js
-import { genImport, genExport } from 'knitwork'
+import { genImport, genExport } from "knitwork";
// import foo from "pkg"
-console.log(genImport('pkg', 'foo'))
+console.log(genImport("pkg", "foo"));
// import { foo } from "pkg"
-console.log(genImport('pkg', ['foo']))
+console.log(genImport("pkg", ["foo"]));
// import { a, b } from "pkg"
-console.log(genImport('pkg', ['a', 'b']))
+console.log(genImport("pkg", ["a", "b"]));
// import { default as bar } from "pkg";
-console.log(genImport('pkg', [{ name: 'default', as: 'bar' }]))
+console.log(genImport("pkg", [{ name: "default", as: "bar" }]));
// import { foo as bar } from "pkg";
-console.log(genImport('pkg', [{ name: 'foo', as: 'bar' }]))
+console.log(genImport("pkg", [{ name: "foo", as: "bar" }]));
// import foo from "pkg" assert { type: "json" };
-console.log(genImport('pkg', 'foo', { assert: { type: 'json' } }))
+console.log(genImport("pkg", "foo", { assert: { type: "json" } }));
// export foo from "pkg"
-console.log(genExport('pkg', 'foo'))
+console.log(genExport("pkg", "foo"));
// export { a, b } from "pkg"
-console.log(genExport('pkg', ['a', 'b']))
+console.log(genExport("pkg", ["a", "b"]));
// export * as bar from "pkg"
-console.log(genExport('pkg', { name: '*', as: 'bar' }))
+console.log(genExport("pkg", { name: "*", as: "bar" }));
// export foo from "pkg" assert { type: "json" };
-console.log(genExport('pkg', 'foo', { assert: { type: 'json' } }))
+console.log(genExport("pkg", "foo", { assert: { type: "json" } }));
```
**Generating TS:**
```js
-import { genInterface, genAugmentation, genInlineTypeImport, genTypeImport, genTypeExport } from 'knitwork'
+import {
+ genInterface,
+ genAugmentation,
+ genInlineTypeImport,
+ genTypeImport,
+ genTypeExport,
+} from "knitwork";
// interface FooInterface extends A, B {
// name: boolean
// optional?: string
// }
-console.log(genInterface('FooInterface', { name: 'boolean', 'optional?': 'string' }, { extends: ['A', 'B'] }))
+console.log(
+ genInterface(
+ "FooInterface",
+ { name: "boolean", "optional?": "string" },
+ { extends: ["A", "B"] },
+ ),
+);
// declare module "my-module" {
// interface MyInterface {}
// }
-console.log(genAugmentation('my-module', { MyInterface: {} }))
+console.log(genAugmentation("my-module", { MyInterface: {} }));
// typeof import("my-module").genString'
-console.log(genInlineTypeImport('my-module', 'genString'))
+console.log(genInlineTypeImport("my-module", "genString"));
// typeof import("my-module").default'
-console.log(genInlineTypeImport('my-module'))
+console.log(genInlineTypeImport("my-module"));
// import type { test as value } from "my-module";
-console.log(genTypeImport('my-module', [{ name: 'test', as: 'value' }]))
+console.log(genTypeImport("my-module", [{ name: "test", as: "value" }]));
// export type { test } from "my-module";
-console.log(genTypeExport('my-module', ['test']))
+console.log(genTypeExport("my-module", ["test"]));
```
**Serializing JS objects:**
```js
-import { genObjectFromRaw, genObjectFromRawEntries, genArrayFromRaw } from 'knitwork'
+import {
+ genObjectFromRaw,
+ genObjectFromRawEntries,
+ genArrayFromRaw,
+} from "knitwork";
// { foo: 'bar', test: () => import("pkg") }
-console.log(genObjectFromValues({ foo: 'bar', test: '() => import("pkg")' }))
+console.log(genObjectFromValues({ foo: "bar", test: '() => import("pkg")' }));
// { test: () => import("pkg") }
-console.log(genObjectFromRaw({ test: '() => import("pkg")' }))
+console.log(genObjectFromRaw({ test: '() => import("pkg")' }));
// { 0: [ test, () => import("pkg") ] }
-console.log(genObjectFromRaw([ ['test', '() => import("pkg")'] ]))
+console.log(genObjectFromRaw([["test", '() => import("pkg")']]));
const entries = Object.entries({
- a: 1, b: null, c: '"c"', nest: { hello: '"world"', fn: () => 1 }
-})
+ a: 1,
+ b: null,
+ c: '"c"',
+ nest: { hello: '"world"', fn: () => 1 },
+});
// { a: 1, b: null, c: "c", nest: { hello: "world", fn: () => 1 } }
-console.log(genObjectFromRawEntries(entries))
+console.log(genObjectFromRawEntries(entries));
// [ 1, 2, () => import("pkg") ]
-console.log(genArrayFromRaw(['1', '2', '() => import("pkg")']))
+console.log(genArrayFromRaw(["1", "2", '() => import("pkg")']));
```
**Generating safe variable names:**
```js
-import { genSafeVariableName } from 'knitwork'
+import { genSafeVariableName } from "knitwork";
// _123_32foo
-genSafeVariableName('123 foo')
+genSafeVariableName("123 foo");
// _for
-genSafeVariableName('for')
+genSafeVariableName("for");
```
-## Development
+## Contribution
+
+
+ Local development
- Clone this repository
-- Install latest LTS version of [Node.js](https://nodejs.org/en/)
-- Enable [Corepack](https://github.com/nodejs/corepack) using corepack enable
-- Install dependencies using pnpm install
-- Run interactive tests using pnpm dev
+- Install the latest LTS version of [Node.js](https://nodejs.org/en/)
+- Enable [Corepack](https://github.com/nodejs/corepack) using `corepack enable`
+- Install dependencies using `bun install`
+- Run tests using `bun dev`
+
+
## License
-Made with ๐
+
+
+Published under the [MIT](https://github.com/unjs/knitwork/blob/main/LICENSE) license.
+Made by [@pi0](https://github.com/pi0), [@danielroe](https://github.com/danielroe) and [community](https://github.com/unjs/knitwork/graphs/contributors) ๐
+
+
+
+
-Published under [MIT License](./LICENSE).
+
-
-[npm-version-src]: https://img.shields.io/npm/v/knitwork?style=flat-square
-[npm-version-href]: https://npmjs.com/package/knitwork
+
-[npm-downloads-src]: https://img.shields.io/npm/dm/knitwork?style=flat-square
-[npm-downloads-href]: https://npmjs.com/package/knitwork
+---
-[github-actions-src]: https://img.shields.io/github/actions/workflow/status/unjs/knitwork/ci.yml?branch=main&style=flat-square
-[github-actions-href]: https://github.com/unjs/knitwork/actions?query=workflow%3Aci
+_๐ค auto updated with [automd](https://automd.unjs.io)_
-[codecov-src]: https://img.shields.io/codecov/c/gh/unjs/knitwork/main?style=flat-square
-[codecov-href]: https://codecov.io/gh/unjs/knitwork
+
diff --git a/package.json b/package.json
index 63f14a4..3f0b533 100644
--- a/package.json
+++ b/package.json
@@ -23,13 +23,14 @@
"build": "unbuild",
"dev": "vitest dev --coverage",
"lint": "eslint --cache --ext .ts,.js,.mjs,.cjs . && prettier -c src test",
- "lint:fix": "eslint --cache --ext .ts,.js,.mjs,.cjs . --fix && prettier -c src test -w",
+ "lint:fix": "automd && eslint --cache --ext .ts,.js,.mjs,.cjs . --fix && prettier -c src test -w",
"prepack": "pnpm run build",
"release": "pnpm test && changelogen --release && npm publish && git push --follow-tags",
"test": "pnpm lint && vitest run --coverage"
},
"devDependencies": {
"@vitest/coverage-v8": "^1.4.0",
+ "automd": "^0.3.7",
"changelogen": "^0.5.5",
"esbuild": "^0.20.2",
"eslint": "^8.57.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5c8bef4..719bd1d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,6 +8,9 @@ devDependencies:
'@vitest/coverage-v8':
specifier: ^1.4.0
version: 1.4.0(vitest@1.4.0)
+ automd:
+ specifier: ^0.3.7
+ version: 0.3.7
changelogen:
specifier: ^0.5.5
version: 0.5.5
@@ -205,6 +208,13 @@ packages:
'@babel/types': 7.24.0
dev: true
+ /@babel/runtime@7.24.1:
+ resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.14.1
+ dev: true
+
/@babel/standalone@7.24.3:
resolution: {integrity: sha512-PbObiI21Z/1DoJLr6DKsdmyp7uUIuw6zv5zIMorH98rOBE/TehkjK7xqXiwJmbCqi7deVbIksDerZ9Ds9hRLGw==}
engines: {node: '>=6.9.0'}
@@ -784,6 +794,137 @@ packages:
fastq: 1.17.1
dev: true
+ /@parcel/watcher-android-arm64@2.4.1:
+ resolution: {integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-darwin-arm64@2.4.1:
+ resolution: {integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-darwin-x64@2.4.1:
+ resolution: {integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-freebsd-x64@2.4.1:
+ resolution: {integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-linux-arm-glibc@2.4.1:
+ resolution: {integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-linux-arm64-glibc@2.4.1:
+ resolution: {integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-linux-arm64-musl@2.4.1:
+ resolution: {integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-linux-x64-glibc@2.4.1:
+ resolution: {integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-linux-x64-musl@2.4.1:
+ resolution: {integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-win32-arm64@2.4.1:
+ resolution: {integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-win32-ia32@2.4.1:
+ resolution: {integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher-win32-x64@2.4.1:
+ resolution: {integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==}
+ engines: {node: '>= 10.0.0'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@parcel/watcher@2.4.1:
+ resolution: {integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==}
+ engines: {node: '>= 10.0.0'}
+ dependencies:
+ detect-libc: 1.0.3
+ is-glob: 4.0.3
+ micromatch: 4.0.5
+ node-addon-api: 7.1.0
+ optionalDependencies:
+ '@parcel/watcher-android-arm64': 2.4.1
+ '@parcel/watcher-darwin-arm64': 2.4.1
+ '@parcel/watcher-darwin-x64': 2.4.1
+ '@parcel/watcher-freebsd-x64': 2.4.1
+ '@parcel/watcher-linux-arm-glibc': 2.4.1
+ '@parcel/watcher-linux-arm64-glibc': 2.4.1
+ '@parcel/watcher-linux-arm64-musl': 2.4.1
+ '@parcel/watcher-linux-x64-glibc': 2.4.1
+ '@parcel/watcher-linux-x64-musl': 2.4.1
+ '@parcel/watcher-win32-arm64': 2.4.1
+ '@parcel/watcher-win32-ia32': 2.4.1
+ '@parcel/watcher-win32-x64': 2.4.1
+ dev: true
+
/@rollup/plugin-alias@5.1.0(rollup@3.29.4):
resolution: {integrity: sha512-lpA3RZ9PdIG7qqhEfv79tBffNaoDuukFDrmhLqg9ifv99u/ehn+lOg30x2zmhf8AQqQUZaMk/B9fZraQ6/acDQ==}
engines: {node: '>=14.0.0'}
@@ -999,6 +1140,11 @@ packages:
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
dev: true
+ /@sindresorhus/merge-streams@2.3.0:
+ resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
+ engines: {node: '>=18'}
+ dev: true
+
/@trysound/sax@0.2.0:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
@@ -1369,6 +1515,31 @@ packages:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
dev: true
+ /automd@0.3.7:
+ resolution: {integrity: sha512-h+w7Z1xQSdIuGmgDKVVvCl6fwj7V9b7BqUs6LlelvTcrwkLzqJnxpzcK0HoiesPb0xsf1yTfngeoDgYs2NN2Tw==}
+ hasBin: true
+ dependencies:
+ '@parcel/watcher': 2.4.1
+ c12: 1.10.0
+ citty: 0.1.6
+ consola: 3.2.3
+ defu: 6.1.4
+ destr: 2.0.3
+ didyoumean2: 6.0.1
+ globby: 14.0.1
+ magic-string: 0.30.8
+ mdbox: 0.1.0
+ mlly: 1.6.1
+ ofetch: 1.3.4
+ pathe: 1.1.2
+ perfect-debounce: 1.0.0
+ pkg-types: 1.0.3
+ scule: 1.3.0
+ untyped: 1.4.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/autoprefixer@10.4.19(postcss@8.4.38):
resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==}
engines: {node: ^10 || ^12 || >=14}
@@ -1915,6 +2086,21 @@ packages:
resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==}
dev: true
+ /detect-libc@1.0.3:
+ resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+ dev: true
+
+ /didyoumean2@6.0.1:
+ resolution: {integrity: sha512-PSy0zQwMg5O+LjT5Mz7vnKC8I7DfWLPF6M7oepqW7WP5mn2CY3hz46xZOa1GJY+KVfyXhdmz6+tdgXwrHlZc5g==}
+ engines: {node: ^16.14.0 || >=18.12.0}
+ dependencies:
+ '@babel/runtime': 7.24.1
+ fastest-levenshtein: 1.0.16
+ lodash.deburr: 4.1.0
+ dev: true
+
/diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -2612,6 +2798,11 @@ packages:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
dev: true
+ /fastest-levenshtein@1.0.16:
+ resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
+ engines: {node: '>= 4.9.1'}
+ dev: true
+
/fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
dependencies:
@@ -2859,6 +3050,18 @@ packages:
slash: 4.0.0
dev: true
+ /globby@14.0.1:
+ resolution: {integrity: sha512-jOMLD2Z7MAhyG8aJpNOpmziMOP4rPLcc95oQPKXBazW82z+CEgPFBQvEpRUa1KeIMUJo4Wsm+q6uzO/Q/4BksQ==}
+ engines: {node: '>=18'}
+ dependencies:
+ '@sindresorhus/merge-streams': 2.3.0
+ fast-glob: 3.3.2
+ ignore: 5.3.1
+ path-type: 5.0.0
+ slash: 5.1.0
+ unicorn-magic: 0.1.0
+ dev: true
+
/gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
@@ -3341,6 +3544,10 @@ packages:
p-locate: 5.0.0
dev: true
+ /lodash.deburr@4.1.0:
+ resolution: {integrity: sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==}
+ dev: true
+
/lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
dev: true
@@ -3398,6 +3605,16 @@ packages:
semver: 7.6.0
dev: true
+ /md4w@0.2.6:
+ resolution: {integrity: sha512-CBLQ2PxVe9WA+/nndZCx/Y+1C3DtmtSeubmXTPhMIgsXtq9gVGleikREko5FYnV6Dz4cHDWm0Ea+YMLpIjP4Kw==}
+ dev: true
+
+ /mdbox@0.1.0:
+ resolution: {integrity: sha512-eQA+6vf5XM4LqdfLsfPMxqUBSU8AMzSCSFbojWLXSDL2jZeO+xgHhxTggrG2jfGPAyyIWIukj6SuoFBd9a7XZw==}
+ dependencies:
+ md4w: 0.2.6
+ dev: true
+
/mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
dev: true
@@ -3545,6 +3762,11 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
+ /node-addon-api@7.1.0:
+ resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==}
+ engines: {node: ^16 || ^18 || >= 20}
+ dev: true
+
/node-fetch-native@1.6.4:
resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
dev: true
@@ -3791,6 +4013,11 @@ packages:
engines: {node: '>=8'}
dev: true
+ /path-type@5.0.0:
+ resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==}
+ engines: {node: '>=12'}
+ dev: true
+
/pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
dev: true
@@ -4215,6 +4442,10 @@ packages:
picomatch: 2.3.1
dev: true
+ /regenerator-runtime@0.14.1:
+ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+ dev: true
+
/regexp-tree@0.1.27:
resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
hasBin: true
@@ -4446,6 +4677,11 @@ packages:
engines: {node: '>=12'}
dev: true
+ /slash@5.1.0:
+ resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
+ engines: {node: '>=14.16'}
+ dev: true
+
/source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
@@ -4806,6 +5042,11 @@ packages:
- supports-color
dev: true
+ /unicorn-magic@0.1.0:
+ resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
+ engines: {node: '>=18'}
+ dev: true
+
/universalify@2.0.1:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}