nitro-nightly 3.0.1-alpha.1 → 3.0.1-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/_build/common.mjs +24924 -52
- package/dist/_build/rolldown.mjs +29 -63
- package/dist/_build/rollup.mjs +22 -110
- package/dist/_build/vite.build.mjs +3 -43
- package/dist/{_dev.mjs → _chunks/dev.mjs} +45 -43
- package/dist/_chunks/{B-D1JOIz.mjs → nitro.mjs} +144 -308
- package/dist/_chunks/nitro2.mjs +101 -0
- package/dist/_chunks/utils.mjs +254 -0
- package/dist/{_chunks/Bqks5huO.mjs → _common.mjs} +24 -10
- package/dist/_libs/c12+giget+readdirp+chokidar.d.mts +214 -0
- package/dist/_libs/citty.mjs +140 -110
- package/dist/_libs/{plugin-commonjs.mjs → commondir+is-reference.mjs} +59 -250
- package/dist/_libs/compatx.d.mts +47 -0
- package/dist/_libs/confbox.mjs +388 -799
- package/dist/_libs/esbuild.d.mts +20 -0
- package/dist/_libs/estree-walker.mjs +1 -144
- package/dist/_libs/{plugin-node-resolve.mjs → hasown+resolve+deepmerge.mjs} +497 -78
- package/dist/_libs/httpxy.d.mts +79 -0
- package/dist/_libs/httpxy.mjs +6 -1
- package/dist/_libs/magic-string.d.mts +220 -0
- package/dist/_libs/mlly.d.mts +57 -0
- package/dist/_libs/nypm+giget+tinyexec.mjs +3603 -0
- package/dist/_libs/pkg-types.d.mts +23 -0
- package/dist/_libs/plugin-alias.mjs +4 -2
- package/dist/_libs/plugin-inject.mjs +5 -5
- package/dist/_libs/plugin-json.mjs +2 -2
- package/dist/_libs/pluginutils+plugin-commonjs.d.mts +241 -0
- package/dist/_libs/{vite-plugin-fullstack.mjs → pluginutils.mjs} +244 -153
- package/dist/_libs/rc9+c12+dotenv.mjs +972 -0
- package/dist/_libs/{chokidar.mjs → readdirp+chokidar.mjs} +237 -187
- package/dist/_libs/remapping.mjs +1 -1
- package/dist/_libs/{gen-mapping.mjs → resolve-uri+gen-mapping.mjs} +2 -166
- package/dist/_libs/rou3.d.mts +43 -0
- package/dist/_libs/rou3.mjs +9 -6
- package/dist/_libs/std-env.d.mts +4 -0
- package/dist/_libs/tsconfck.mjs +3 -3
- package/dist/_libs/{unimport.mjs → unimport+unplugin.mjs} +226 -1961
- package/dist/_libs/unplugin+unimport.d.mts +426 -0
- package/dist/_libs/unwasm.d.mts +29 -0
- package/dist/_presets.mjs +130 -80
- package/dist/builder.d.mts +4 -4
- package/dist/builder.mjs +6 -30
- package/dist/cli/_chunks/build.mjs +1 -1
- package/dist/cli/_chunks/dev.mjs +5 -11
- package/dist/cli/_chunks/list.mjs +1 -1
- package/dist/cli/_chunks/prepare.mjs +1 -1
- package/dist/cli/_chunks/run.mjs +1 -1
- package/dist/node_modules/@poppinss/colors/build/index.js +130 -160
- package/dist/node_modules/@poppinss/colors/package.json +20 -18
- package/dist/node_modules/@poppinss/exception/build/index.js +36 -55
- package/dist/node_modules/@poppinss/exception/package.json +19 -16
- package/dist/node_modules/@sindresorhus/is/distribution/index.js +46 -5
- package/dist/node_modules/@sindresorhus/is/package.json +1 -1
- package/dist/node_modules/@speed-highlight/core/dist/index.js +1 -1
- package/dist/node_modules/@speed-highlight/core/dist/terminal.js +1 -1
- package/dist/node_modules/@speed-highlight/core/package.json +2 -2
- package/dist/node_modules/hookable/dist/index.mjs +5 -6
- package/dist/node_modules/hookable/package.json +13 -13
- package/dist/node_modules/ufo/dist/index.mjs +16 -9
- package/dist/node_modules/ufo/package.json +15 -14
- package/dist/node_modules/unctx/package.json +16 -16
- package/dist/node_modules/youch/build/{chunk-4XB2BYKC.js → chunk-7QV3D5YX.js} +2 -4
- package/dist/node_modules/youch/build/{chunk-PUHGL6HA.js → chunk-AUGPHE32.js} +2 -4
- package/dist/node_modules/youch/build/{chunk-F4I6KX4R.js → chunk-CM7DWJNZ.js} +2 -4
- package/dist/node_modules/youch/build/{chunk-YYEJ3AGB.js → chunk-EJH674NB.js} +2 -4
- package/dist/node_modules/youch/build/{chunk-EUJBVOYB.js → chunk-OIJ3WD7L.js} +2 -4
- package/dist/node_modules/youch/build/{chunk-HFSXRSKS.js → chunk-P36L72PL.js} +5 -3
- package/dist/node_modules/youch/build/{chunk-4YEN7HVQ.js → chunk-PE3GG3TN.js} +5 -1
- package/dist/node_modules/youch/build/{chunk-PINJDICN.js → chunk-X53OIOJH.js} +2 -4
- package/dist/node_modules/youch/build/index.js +8 -9
- package/dist/node_modules/youch/build/public/error_info/style.css +1 -0
- package/dist/node_modules/youch/build/public/error_metadata/style.css +3 -0
- package/dist/node_modules/youch/build/public/error_stack/style.css +2 -3
- package/dist/node_modules/youch/package.json +1 -1
- package/dist/presets/_nitro/runtime/nitro-dev.d.mts +1 -1
- package/dist/presets/_nitro/runtime/nitro-dev.mjs +5 -6
- package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +1 -1
- package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +1 -1
- package/dist/presets/_nitro/runtime/service-worker.d.mts +1 -1
- package/dist/presets/_nitro/runtime/service-worker.mjs +2 -2
- package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +1 -1
- package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +1 -1
- package/dist/presets/aws-lambda/runtime/_utils.d.mts +0 -5
- package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +1 -1
- package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +9 -11
- package/dist/presets/aws-lambda/runtime/aws-lambda.d.mts +1 -1
- package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +1 -1
- package/dist/presets/azure/runtime/azure-swa.d.mts +1 -1
- package/dist/presets/azure/runtime/azure-swa.mjs +1 -1
- package/dist/presets/bun/runtime/bun.d.mts +1 -1
- package/dist/presets/bun/runtime/bun.mjs +7 -8
- package/dist/presets/cloudflare/runtime/_module-handler.d.mts +3 -3
- package/dist/presets/cloudflare/runtime/_module-handler.mjs +19 -17
- package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +1 -1
- package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +17 -16
- package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +1 -1
- package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +8 -9
- package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +1 -1
- package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +12 -18
- package/dist/presets/deno/runtime/deno-deploy.d.mts +1 -1
- package/dist/presets/deno/runtime/deno-deploy.mjs +4 -5
- package/dist/presets/deno/runtime/deno-server.d.mts +1 -1
- package/dist/presets/deno/runtime/deno-server.mjs +5 -6
- package/dist/presets/netlify/runtime/netlify-edge.d.mts +1 -2
- package/dist/presets/netlify/runtime/netlify-edge.mjs +3 -2
- package/dist/presets/netlify/runtime/netlify.d.mts +3 -2
- package/dist/presets/netlify/runtime/netlify.mjs +3 -1
- package/dist/presets/node/runtime/node-cluster.d.mts +1 -1
- package/dist/presets/node/runtime/node-cluster.mjs +5 -6
- package/dist/presets/node/runtime/node-middleware.d.mts +1 -1
- package/dist/presets/node/runtime/node-middleware.mjs +4 -5
- package/dist/presets/node/runtime/node-server.d.mts +1 -1
- package/dist/presets/node/runtime/node-server.mjs +5 -6
- package/dist/presets/standard/runtime/server.d.mts +1 -1
- package/dist/presets/standard/runtime/server.mjs +1 -1
- package/dist/presets/stormkit/runtime/stormkit.d.mts +1 -1
- package/dist/presets/stormkit/runtime/stormkit.mjs +1 -1
- package/dist/presets/vercel/runtime/isr.d.mts +2 -0
- package/dist/presets/vercel/runtime/isr.mjs +19 -0
- package/dist/presets/vercel/runtime/vercel.node.d.mts +1 -1
- package/dist/presets/vercel/runtime/vercel.node.mjs +16 -7
- package/dist/presets/vercel/runtime/vercel.web.d.mts +1 -1
- package/dist/presets/vercel/runtime/vercel.web.mjs +18 -13
- package/dist/presets/winterjs/runtime/winterjs.d.mts +1 -2
- package/dist/presets/winterjs/runtime/winterjs.mjs +1 -1
- package/dist/presets/zeabur/runtime/zeabur.d.mts +1 -1
- package/dist/presets/zeabur/runtime/zeabur.mjs +1 -1
- package/dist/runtime/app.d.mts +1 -1
- package/dist/runtime/app.mjs +1 -1
- package/dist/runtime/internal/app.d.mts +7 -3
- package/dist/runtime/internal/app.mjs +29 -22
- package/dist/runtime/internal/database.mjs +1 -1
- package/dist/runtime/internal/error/dev.d.mts +0 -1
- package/dist/runtime/internal/error/dev.mjs +1 -1
- package/dist/runtime/internal/route-rules.d.mts +0 -4
- package/dist/runtime/internal/routes/dev-tasks.mjs +1 -1
- package/dist/runtime/internal/routes/openapi.d.mts +0 -1
- package/dist/runtime/internal/routes/openapi.mjs +3 -3
- package/dist/runtime/internal/routes/renderer-template.dev.mjs +1 -1
- package/dist/runtime/internal/routes/renderer-template.mjs +1 -1
- package/dist/runtime/internal/routes/scalar.d.mts +0 -1
- package/dist/runtime/internal/routes/scalar.mjs +4 -4
- package/dist/runtime/internal/routes/swagger.d.mts +0 -1
- package/dist/runtime/internal/routes/swagger.mjs +3 -3
- package/dist/runtime/internal/runtime-config.mjs +8 -8
- package/dist/runtime/internal/static.mjs +1 -1
- package/dist/runtime/internal/storage.mjs +1 -1
- package/dist/runtime/internal/task.mjs +1 -1
- package/dist/runtime/internal/vite/dev-entry.mjs +3 -4
- package/dist/runtime/internal/vite/{dev-worker.mjs → node-runner.mjs} +51 -6
- package/dist/runtime/meta.d.mts +1 -1
- package/dist/runtime/meta.mjs +1 -1
- package/dist/runtime/nitro.d.mts +0 -3
- package/dist/runtime/nitro.mjs +1 -1
- package/dist/runtime/virtual/_runtime_warn.d.mts +1 -0
- package/dist/runtime/virtual/_runtime_warn.mjs +5 -0
- package/dist/runtime/virtual/database.d.mts +8 -0
- package/dist/runtime/virtual/database.mjs +2 -0
- package/dist/runtime/virtual/error-handler.d.mts +6 -0
- package/dist/runtime/virtual/error-handler.mjs +9 -0
- package/dist/runtime/virtual/feature-flags.d.mts +7 -0
- package/dist/runtime/virtual/feature-flags.mjs +7 -0
- package/dist/runtime/virtual/plugins.d.mts +3 -0
- package/dist/runtime/virtual/plugins.mjs +2 -0
- package/dist/runtime/virtual/polyfills.d.mts +3 -0
- package/dist/runtime/virtual/polyfills.mjs +2 -0
- package/dist/runtime/virtual/public-assets.d.mts +9 -0
- package/dist/runtime/virtual/public-assets.mjs +8 -0
- package/dist/runtime/virtual/renderer-template.d.mts +4 -0
- package/dist/runtime/virtual/renderer-template.mjs +7 -0
- package/dist/runtime/virtual/routing-meta.d.mts +7 -0
- package/dist/runtime/virtual/routing-meta.mjs +2 -0
- package/dist/runtime/virtual/routing.d.mts +8 -0
- package/dist/runtime/virtual/routing.mjs +11 -0
- package/dist/runtime/virtual/runtime-config.d.mts +3 -0
- package/dist/runtime/virtual/runtime-config.mjs +5 -0
- package/dist/runtime/virtual/server-assets.d.mts +6 -0
- package/dist/runtime/virtual/server-assets.mjs +12 -0
- package/dist/runtime/virtual/storage.d.mts +3 -0
- package/dist/runtime/virtual/storage.mjs +5 -0
- package/dist/runtime/virtual/tasks.d.mts +10 -0
- package/dist/runtime/virtual/tasks.mjs +3 -0
- package/dist/types/index.d.mts +292 -371
- package/dist/types/index.mjs +10 -0
- package/dist/vite.d.mts +7 -12
- package/dist/vite.mjs +734 -41
- package/lib/vite.types.d.mts +26 -0
- package/lib/vite.types.mjs +2 -0
- package/package.json +82 -53
- package/dist/_build/common2.mjs +0 -772
- package/dist/_build/vite.plugin.mjs +0 -768
- package/dist/_chunks/ANM1K1bE.mjs +0 -304
- package/dist/_chunks/BX9-zVkM.mjs +0 -59
- package/dist/_chunks/C7CbzoI1.mjs +0 -39
- package/dist/_libs/acorn.mjs +0 -5034
- package/dist/_libs/c12.mjs +0 -2858
- package/dist/_libs/commondir.mjs +0 -22
- package/dist/_libs/deepmerge.mjs +0 -86
- package/dist/_libs/dot-prop.mjs +0 -138
- package/dist/_libs/duplexer.mjs +0 -71
- package/dist/_libs/etag.mjs +0 -80
- package/dist/_libs/fdir.mjs +0 -514
- package/dist/_libs/function-bind.mjs +0 -63
- package/dist/_libs/giget.mjs +0 -19289
- package/dist/_libs/gzip-size.mjs +0 -21
- package/dist/_libs/hasown.mjs +0 -14
- package/dist/_libs/is-core-module.mjs +0 -220
- package/dist/_libs/is-module.mjs +0 -13
- package/dist/_libs/is-reference.mjs +0 -32
- package/dist/_libs/js-tokens.mjs +0 -382
- package/dist/_libs/knitwork.mjs +0 -124
- package/dist/_libs/local-pkg.mjs +0 -1686
- package/dist/_libs/magic-string.mjs +0 -939
- package/dist/_libs/mime.mjs +0 -1391
- package/dist/_libs/node-fetch-native.mjs +0 -173
- package/dist/_libs/path-parse.mjs +0 -47
- package/dist/_libs/pathe.mjs +0 -41
- package/dist/_libs/picomatch.mjs +0 -1673
- package/dist/_libs/plugin-replace.mjs +0 -104
- package/dist/_libs/pretty-bytes.mjs +0 -116
- package/dist/_libs/std-env.mjs +0 -158
- package/dist/_libs/strip-literal.mjs +0 -51
- package/dist/_libs/tinyglobby.mjs +0 -292
- package/dist/_libs/untyped.mjs +0 -271
- package/dist/_libs/unwasm.mjs +0 -5836
- package/dist/cli/_chunks/detect-acorn.mjs +0 -12
- package/dist/cli/_chunks/dist.mjs +0 -3
- package/dist/cli/_chunks/dist2.mjs +0 -3
- package/dist/cli/_chunks/dist3.mjs +0 -3
- package/dist/cli/_chunks/dist4.mjs +0 -4
- package/dist/cli/_chunks/dist5.mjs +0 -4
- package/dist/cli/_chunks/esm.mjs +0 -3
- package/dist/cli/_chunks/json5.mjs +0 -4
- package/dist/cli/_chunks/jsonc.mjs +0 -4
- package/dist/cli/_chunks/multipart-parser.mjs +0 -6
- package/dist/cli/_chunks/toml.mjs +0 -4
- package/dist/cli/_chunks/yaml.mjs +0 -4
- package/dist/node_modules/kleur/index.js +0 -110
- package/dist/node_modules/youch/build/chunk-OSUFJZHZ.js +0 -6
- package/lib/deps/ofetch.mjs +0 -1
- package/lib/deps/ofetch.mts +0 -1
- /package/dist/runtime/{vite-runtime.d.mts → vite.d.mts} +0 -0
- /package/dist/runtime/{vite-runtime.mjs → vite.mjs} +0 -0
- /package/lib/{deps/h3.d.mts → h3.d.mts} +0 -0
- /package/lib/{deps/h3.mjs → h3.mjs} +0 -0
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
import { i as __toESM } from "../_chunks/Bqks5huO.mjs";
|
|
2
|
-
import { t as require_picomatch } from "./picomatch.mjs";
|
|
3
|
-
import { t as Builder } from "./fdir.mjs";
|
|
4
|
-
import nativeFs from "fs";
|
|
5
|
-
import path, { posix } from "path";
|
|
6
|
-
import { fileURLToPath } from "url";
|
|
7
|
-
|
|
8
|
-
//#region node_modules/.pnpm/tinyglobby@0.2.15/node_modules/tinyglobby/dist/index.mjs
|
|
9
|
-
var import_picomatch = /* @__PURE__ */ __toESM(require_picomatch(), 1);
|
|
10
|
-
const isReadonlyArray = Array.isArray;
|
|
11
|
-
const isWin = process.platform === "win32";
|
|
12
|
-
const ONLY_PARENT_DIRECTORIES = /^(\/?\.\.)+$/;
|
|
13
|
-
function getPartialMatcher(patterns, options = {}) {
|
|
14
|
-
const patternsCount = patterns.length;
|
|
15
|
-
const patternsParts = Array(patternsCount);
|
|
16
|
-
const matchers = Array(patternsCount);
|
|
17
|
-
const globstarEnabled = !options.noglobstar;
|
|
18
|
-
for (let i = 0; i < patternsCount; i++) {
|
|
19
|
-
const parts = splitPattern(patterns[i]);
|
|
20
|
-
patternsParts[i] = parts;
|
|
21
|
-
const partsCount = parts.length;
|
|
22
|
-
const partMatchers = Array(partsCount);
|
|
23
|
-
for (let j = 0; j < partsCount; j++) partMatchers[j] = (0, import_picomatch.default)(parts[j], options);
|
|
24
|
-
matchers[i] = partMatchers;
|
|
25
|
-
}
|
|
26
|
-
return (input) => {
|
|
27
|
-
const inputParts = input.split("/");
|
|
28
|
-
if (inputParts[0] === ".." && ONLY_PARENT_DIRECTORIES.test(input)) return true;
|
|
29
|
-
for (let i = 0; i < patterns.length; i++) {
|
|
30
|
-
const patternParts = patternsParts[i];
|
|
31
|
-
const matcher = matchers[i];
|
|
32
|
-
const inputPatternCount = inputParts.length;
|
|
33
|
-
const minParts = Math.min(inputPatternCount, patternParts.length);
|
|
34
|
-
let j = 0;
|
|
35
|
-
while (j < minParts) {
|
|
36
|
-
const part = patternParts[j];
|
|
37
|
-
if (part.includes("/")) return true;
|
|
38
|
-
if (!matcher[j](inputParts[j])) break;
|
|
39
|
-
if (globstarEnabled && part === "**") return true;
|
|
40
|
-
j++;
|
|
41
|
-
}
|
|
42
|
-
if (j === inputPatternCount) return true;
|
|
43
|
-
}
|
|
44
|
-
return false;
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
/* node:coverage ignore next 2 */
|
|
48
|
-
const WIN32_ROOT_DIR = /^[A-Z]:\/$/i;
|
|
49
|
-
const isRoot = isWin ? (p) => WIN32_ROOT_DIR.test(p) : (p) => p === "/";
|
|
50
|
-
function buildFormat(cwd, root, absolute) {
|
|
51
|
-
if (cwd === root || root.startsWith(`${cwd}/`)) {
|
|
52
|
-
if (absolute) {
|
|
53
|
-
const start = isRoot(cwd) ? cwd.length : cwd.length + 1;
|
|
54
|
-
return (p, isDir) => p.slice(start, isDir ? -1 : void 0) || ".";
|
|
55
|
-
}
|
|
56
|
-
const prefix = root.slice(cwd.length + 1);
|
|
57
|
-
if (prefix) return (p, isDir) => {
|
|
58
|
-
if (p === ".") return prefix;
|
|
59
|
-
const result = `${prefix}/${p}`;
|
|
60
|
-
return isDir ? result.slice(0, -1) : result;
|
|
61
|
-
};
|
|
62
|
-
return (p, isDir) => isDir && p !== "." ? p.slice(0, -1) : p;
|
|
63
|
-
}
|
|
64
|
-
if (absolute) return (p) => posix.relative(cwd, p) || ".";
|
|
65
|
-
return (p) => posix.relative(cwd, `${root}/${p}`) || ".";
|
|
66
|
-
}
|
|
67
|
-
function buildRelative(cwd, root) {
|
|
68
|
-
if (root.startsWith(`${cwd}/`)) {
|
|
69
|
-
const prefix = root.slice(cwd.length + 1);
|
|
70
|
-
return (p) => `${prefix}/${p}`;
|
|
71
|
-
}
|
|
72
|
-
return (p) => {
|
|
73
|
-
const result = posix.relative(cwd, `${root}/${p}`);
|
|
74
|
-
if (p.endsWith("/") && result !== "") return `${result}/`;
|
|
75
|
-
return result || ".";
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
const splitPatternOptions = { parts: true };
|
|
79
|
-
function splitPattern(path$1) {
|
|
80
|
-
var _result$parts;
|
|
81
|
-
const result = import_picomatch.default.scan(path$1, splitPatternOptions);
|
|
82
|
-
return ((_result$parts = result.parts) === null || _result$parts === void 0 ? void 0 : _result$parts.length) ? result.parts : [path$1];
|
|
83
|
-
}
|
|
84
|
-
const POSIX_UNESCAPED_GLOB_SYMBOLS = /(?<!\\)([()[\]{}*?|]|^!|[!+@](?=\()|\\(?![()[\]{}!*+?@|]))/g;
|
|
85
|
-
const WIN32_UNESCAPED_GLOB_SYMBOLS = /(?<!\\)([()[\]{}]|^!|[!+@](?=\())/g;
|
|
86
|
-
const escapePosixPath = (path$1) => path$1.replace(POSIX_UNESCAPED_GLOB_SYMBOLS, "\\$&");
|
|
87
|
-
const escapeWin32Path = (path$1) => path$1.replace(WIN32_UNESCAPED_GLOB_SYMBOLS, "\\$&");
|
|
88
|
-
/**
|
|
89
|
-
* Escapes a path's special characters depending on the platform.
|
|
90
|
-
* @see {@link https://superchupu.dev/tinyglobby/documentation#escapePath}
|
|
91
|
-
*/
|
|
92
|
-
/* node:coverage ignore next */
|
|
93
|
-
const escapePath = isWin ? escapeWin32Path : escapePosixPath;
|
|
94
|
-
/**
|
|
95
|
-
* Checks if a pattern has dynamic parts.
|
|
96
|
-
*
|
|
97
|
-
* Has a few minor differences with [`fast-glob`](https://github.com/mrmlnc/fast-glob) for better accuracy:
|
|
98
|
-
*
|
|
99
|
-
* - Doesn't necessarily return `false` on patterns that include `\`.
|
|
100
|
-
* - Returns `true` if the pattern includes parentheses, regardless of them representing one single pattern or not.
|
|
101
|
-
* - Returns `true` for unfinished glob extensions i.e. `(h`, `+(h`.
|
|
102
|
-
* - Returns `true` for unfinished brace expansions as long as they include `,` or `..`.
|
|
103
|
-
*
|
|
104
|
-
* @see {@link https://superchupu.dev/tinyglobby/documentation#isDynamicPattern}
|
|
105
|
-
*/
|
|
106
|
-
function isDynamicPattern(pattern, options) {
|
|
107
|
-
if ((options === null || options === void 0 ? void 0 : options.caseSensitiveMatch) === false) return true;
|
|
108
|
-
const scan = import_picomatch.default.scan(pattern);
|
|
109
|
-
return scan.isGlob || scan.negated;
|
|
110
|
-
}
|
|
111
|
-
function log(...tasks) {
|
|
112
|
-
console.log(`[tinyglobby ${(/* @__PURE__ */ new Date()).toLocaleTimeString("es")}]`, ...tasks);
|
|
113
|
-
}
|
|
114
|
-
const PARENT_DIRECTORY = /^(\/?\.\.)+/;
|
|
115
|
-
const ESCAPING_BACKSLASHES = /\\(?=[()[\]{}!*+?@|])/g;
|
|
116
|
-
const BACKSLASHES = /\\/g;
|
|
117
|
-
function normalizePattern(pattern, expandDirectories, cwd, props, isIgnore) {
|
|
118
|
-
let result = pattern;
|
|
119
|
-
if (pattern.endsWith("/")) result = pattern.slice(0, -1);
|
|
120
|
-
if (!result.endsWith("*") && expandDirectories) result += "/**";
|
|
121
|
-
const escapedCwd = escapePath(cwd);
|
|
122
|
-
if (path.isAbsolute(result.replace(ESCAPING_BACKSLASHES, ""))) result = posix.relative(escapedCwd, result);
|
|
123
|
-
else result = posix.normalize(result);
|
|
124
|
-
const parentDirectoryMatch = PARENT_DIRECTORY.exec(result);
|
|
125
|
-
const parts = splitPattern(result);
|
|
126
|
-
if (parentDirectoryMatch === null || parentDirectoryMatch === void 0 ? void 0 : parentDirectoryMatch[0]) {
|
|
127
|
-
const n = (parentDirectoryMatch[0].length + 1) / 3;
|
|
128
|
-
let i = 0;
|
|
129
|
-
const cwdParts = escapedCwd.split("/");
|
|
130
|
-
while (i < n && parts[i + n] === cwdParts[cwdParts.length + i - n]) {
|
|
131
|
-
result = result.slice(0, (n - i - 1) * 3) + result.slice((n - i) * 3 + parts[i + n].length + 1) || ".";
|
|
132
|
-
i++;
|
|
133
|
-
}
|
|
134
|
-
const potentialRoot = posix.join(cwd, parentDirectoryMatch[0].slice(i * 3));
|
|
135
|
-
if (!potentialRoot.startsWith(".") && props.root.length > potentialRoot.length) {
|
|
136
|
-
props.root = potentialRoot;
|
|
137
|
-
props.depthOffset = -n + i;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
if (!isIgnore && props.depthOffset >= 0) {
|
|
141
|
-
var _props$commonPath;
|
|
142
|
-
(_props$commonPath = props.commonPath) !== null && _props$commonPath !== void 0 || (props.commonPath = parts);
|
|
143
|
-
const newCommonPath = [];
|
|
144
|
-
const length = Math.min(props.commonPath.length, parts.length);
|
|
145
|
-
for (let i = 0; i < length; i++) {
|
|
146
|
-
const part = parts[i];
|
|
147
|
-
if (part === "**" && !parts[i + 1]) {
|
|
148
|
-
newCommonPath.pop();
|
|
149
|
-
break;
|
|
150
|
-
}
|
|
151
|
-
if (part !== props.commonPath[i] || isDynamicPattern(part) || i === parts.length - 1) break;
|
|
152
|
-
newCommonPath.push(part);
|
|
153
|
-
}
|
|
154
|
-
props.depthOffset = newCommonPath.length;
|
|
155
|
-
props.commonPath = newCommonPath;
|
|
156
|
-
props.root = newCommonPath.length > 0 ? posix.join(cwd, ...newCommonPath) : cwd;
|
|
157
|
-
}
|
|
158
|
-
return result;
|
|
159
|
-
}
|
|
160
|
-
function processPatterns({ patterns = ["**/*"], ignore = [], expandDirectories = true }, cwd, props) {
|
|
161
|
-
if (typeof patterns === "string") patterns = [patterns];
|
|
162
|
-
if (typeof ignore === "string") ignore = [ignore];
|
|
163
|
-
const matchPatterns = [];
|
|
164
|
-
const ignorePatterns = [];
|
|
165
|
-
for (const pattern of ignore) {
|
|
166
|
-
if (!pattern) continue;
|
|
167
|
-
if (pattern[0] !== "!" || pattern[1] === "(") ignorePatterns.push(normalizePattern(pattern, expandDirectories, cwd, props, true));
|
|
168
|
-
}
|
|
169
|
-
for (const pattern of patterns) {
|
|
170
|
-
if (!pattern) continue;
|
|
171
|
-
if (pattern[0] !== "!" || pattern[1] === "(") matchPatterns.push(normalizePattern(pattern, expandDirectories, cwd, props, false));
|
|
172
|
-
else if (pattern[1] !== "!" || pattern[2] === "(") ignorePatterns.push(normalizePattern(pattern.slice(1), expandDirectories, cwd, props, true));
|
|
173
|
-
}
|
|
174
|
-
return {
|
|
175
|
-
match: matchPatterns,
|
|
176
|
-
ignore: ignorePatterns
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
function formatPaths(paths, relative$1) {
|
|
180
|
-
for (let i = paths.length - 1; i >= 0; i--) {
|
|
181
|
-
const path$1 = paths[i];
|
|
182
|
-
paths[i] = relative$1(path$1);
|
|
183
|
-
}
|
|
184
|
-
return paths;
|
|
185
|
-
}
|
|
186
|
-
function normalizeCwd(cwd) {
|
|
187
|
-
if (!cwd) return process.cwd().replace(BACKSLASHES, "/");
|
|
188
|
-
if (cwd instanceof URL) return fileURLToPath(cwd).replace(BACKSLASHES, "/");
|
|
189
|
-
return path.resolve(cwd).replace(BACKSLASHES, "/");
|
|
190
|
-
}
|
|
191
|
-
function getCrawler(patterns, inputOptions = {}) {
|
|
192
|
-
const options = process.env.TINYGLOBBY_DEBUG ? {
|
|
193
|
-
...inputOptions,
|
|
194
|
-
debug: true
|
|
195
|
-
} : inputOptions;
|
|
196
|
-
const cwd = normalizeCwd(options.cwd);
|
|
197
|
-
if (options.debug) log("globbing with:", {
|
|
198
|
-
patterns,
|
|
199
|
-
options,
|
|
200
|
-
cwd
|
|
201
|
-
});
|
|
202
|
-
if (Array.isArray(patterns) && patterns.length === 0) return [{
|
|
203
|
-
sync: () => [],
|
|
204
|
-
withPromise: async () => []
|
|
205
|
-
}, false];
|
|
206
|
-
const props = {
|
|
207
|
-
root: cwd,
|
|
208
|
-
commonPath: null,
|
|
209
|
-
depthOffset: 0
|
|
210
|
-
};
|
|
211
|
-
const processed = processPatterns({
|
|
212
|
-
...options,
|
|
213
|
-
patterns
|
|
214
|
-
}, cwd, props);
|
|
215
|
-
if (options.debug) log("internal processing patterns:", processed);
|
|
216
|
-
const matchOptions = {
|
|
217
|
-
dot: options.dot,
|
|
218
|
-
nobrace: options.braceExpansion === false,
|
|
219
|
-
nocase: options.caseSensitiveMatch === false,
|
|
220
|
-
noextglob: options.extglob === false,
|
|
221
|
-
noglobstar: options.globstar === false,
|
|
222
|
-
posix: true
|
|
223
|
-
};
|
|
224
|
-
const matcher = (0, import_picomatch.default)(processed.match, {
|
|
225
|
-
...matchOptions,
|
|
226
|
-
ignore: processed.ignore
|
|
227
|
-
});
|
|
228
|
-
const ignore = (0, import_picomatch.default)(processed.ignore, matchOptions);
|
|
229
|
-
const partialMatcher = getPartialMatcher(processed.match, matchOptions);
|
|
230
|
-
const format = buildFormat(cwd, props.root, options.absolute);
|
|
231
|
-
const formatExclude = options.absolute ? format : buildFormat(cwd, props.root, true);
|
|
232
|
-
const fdirOptions = {
|
|
233
|
-
filters: [options.debug ? (p, isDirectory) => {
|
|
234
|
-
const path$1 = format(p, isDirectory);
|
|
235
|
-
const matches = matcher(path$1);
|
|
236
|
-
if (matches) log(`matched ${path$1}`);
|
|
237
|
-
return matches;
|
|
238
|
-
} : (p, isDirectory) => matcher(format(p, isDirectory))],
|
|
239
|
-
exclude: options.debug ? (_, p) => {
|
|
240
|
-
const relativePath = formatExclude(p, true);
|
|
241
|
-
const skipped = relativePath !== "." && !partialMatcher(relativePath) || ignore(relativePath);
|
|
242
|
-
if (skipped) log(`skipped ${p}`);
|
|
243
|
-
else log(`crawling ${p}`);
|
|
244
|
-
return skipped;
|
|
245
|
-
} : (_, p) => {
|
|
246
|
-
const relativePath = formatExclude(p, true);
|
|
247
|
-
return relativePath !== "." && !partialMatcher(relativePath) || ignore(relativePath);
|
|
248
|
-
},
|
|
249
|
-
fs: options.fs ? {
|
|
250
|
-
readdir: options.fs.readdir || nativeFs.readdir,
|
|
251
|
-
readdirSync: options.fs.readdirSync || nativeFs.readdirSync,
|
|
252
|
-
realpath: options.fs.realpath || nativeFs.realpath,
|
|
253
|
-
realpathSync: options.fs.realpathSync || nativeFs.realpathSync,
|
|
254
|
-
stat: options.fs.stat || nativeFs.stat,
|
|
255
|
-
statSync: options.fs.statSync || nativeFs.statSync
|
|
256
|
-
} : void 0,
|
|
257
|
-
pathSeparator: "/",
|
|
258
|
-
relativePaths: true,
|
|
259
|
-
resolveSymlinks: true,
|
|
260
|
-
signal: options.signal
|
|
261
|
-
};
|
|
262
|
-
if (options.deep !== void 0) fdirOptions.maxDepth = Math.round(options.deep - props.depthOffset);
|
|
263
|
-
if (options.absolute) {
|
|
264
|
-
fdirOptions.relativePaths = false;
|
|
265
|
-
fdirOptions.resolvePaths = true;
|
|
266
|
-
fdirOptions.includeBasePath = true;
|
|
267
|
-
}
|
|
268
|
-
if (options.followSymbolicLinks === false) {
|
|
269
|
-
fdirOptions.resolveSymlinks = false;
|
|
270
|
-
fdirOptions.excludeSymlinks = true;
|
|
271
|
-
}
|
|
272
|
-
if (options.onlyDirectories) {
|
|
273
|
-
fdirOptions.excludeFiles = true;
|
|
274
|
-
fdirOptions.includeDirs = true;
|
|
275
|
-
} else if (options.onlyFiles === false) fdirOptions.includeDirs = true;
|
|
276
|
-
props.root = props.root.replace(BACKSLASHES, "");
|
|
277
|
-
const root = props.root;
|
|
278
|
-
if (options.debug) log("internal properties:", props);
|
|
279
|
-
const relative$1 = cwd !== root && !options.absolute && buildRelative(cwd, props.root);
|
|
280
|
-
return [new Builder(fdirOptions).crawl(root), relative$1];
|
|
281
|
-
}
|
|
282
|
-
async function glob(patternsOrOptions, options) {
|
|
283
|
-
if (patternsOrOptions && (options === null || options === void 0 ? void 0 : options.patterns)) throw new Error("Cannot pass patterns as both an argument and an option");
|
|
284
|
-
const isModern = isReadonlyArray(patternsOrOptions) || typeof patternsOrOptions === "string";
|
|
285
|
-
const opts = isModern ? options : patternsOrOptions;
|
|
286
|
-
const [crawler, relative$1] = getCrawler(isModern ? patternsOrOptions : patternsOrOptions.patterns, opts);
|
|
287
|
-
if (!relative$1) return crawler.withPromise();
|
|
288
|
-
return formatPaths(await crawler.withPromise(), relative$1);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
//#endregion
|
|
292
|
-
export { glob as t };
|
package/dist/_libs/untyped.mjs
DELETED
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
import { r as genObjectKey } from "./knitwork.mjs";
|
|
2
|
-
import "scule";
|
|
3
|
-
|
|
4
|
-
//#region node_modules/.pnpm/untyped@2.0.0/node_modules/untyped/dist/shared/untyped.Br_uXjZG.mjs
|
|
5
|
-
function getType(val) {
|
|
6
|
-
const type = typeof val;
|
|
7
|
-
if (type === "undefined" || val === null) return;
|
|
8
|
-
if (Array.isArray(val)) return "array";
|
|
9
|
-
return type;
|
|
10
|
-
}
|
|
11
|
-
function isObject(val) {
|
|
12
|
-
return val !== null && !Array.isArray(val) && typeof val === "object";
|
|
13
|
-
}
|
|
14
|
-
function nonEmpty(arr) {
|
|
15
|
-
return arr.filter(Boolean);
|
|
16
|
-
}
|
|
17
|
-
function unique(arr) {
|
|
18
|
-
return [...new Set(arr)];
|
|
19
|
-
}
|
|
20
|
-
function joinPath(a, b = "", sep = ".") {
|
|
21
|
-
return a ? a + sep + b : b;
|
|
22
|
-
}
|
|
23
|
-
function setValue(obj, path, val) {
|
|
24
|
-
const keys = path.split(".");
|
|
25
|
-
const _key = keys.pop();
|
|
26
|
-
for (const key of keys) {
|
|
27
|
-
if (!obj || typeof obj !== "object") return;
|
|
28
|
-
if (!(key in obj)) obj[key] = {};
|
|
29
|
-
obj = obj[key];
|
|
30
|
-
}
|
|
31
|
-
if (_key) {
|
|
32
|
-
if (!obj || typeof obj !== "object") return;
|
|
33
|
-
obj[_key] = val;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
function getValue(obj, path) {
|
|
37
|
-
for (const key of path.split(".")) {
|
|
38
|
-
if (!obj || typeof obj !== "object" || !(key in obj)) return;
|
|
39
|
-
obj = obj[key];
|
|
40
|
-
}
|
|
41
|
-
return obj;
|
|
42
|
-
}
|
|
43
|
-
function normalizeTypes(val) {
|
|
44
|
-
const arr = unique(val.filter(Boolean));
|
|
45
|
-
if (arr.length === 0 || arr.includes("any")) return;
|
|
46
|
-
return arr.length > 1 ? arr : arr[0];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
//#endregion
|
|
50
|
-
//#region node_modules/.pnpm/untyped@2.0.0/node_modules/untyped/dist/shared/untyped.BTwOq8Jl.mjs
|
|
51
|
-
async function resolveSchema(obj, defaults, options = {}) {
|
|
52
|
-
return await _resolveSchema(obj, "", {
|
|
53
|
-
root: obj,
|
|
54
|
-
defaults,
|
|
55
|
-
resolveCache: {},
|
|
56
|
-
ignoreDefaults: !!options.ignoreDefaults
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
async function _resolveSchema(input, id, ctx) {
|
|
60
|
-
if (id in ctx.resolveCache) return ctx.resolveCache[id];
|
|
61
|
-
const schemaId = "#" + id.replace(/\./g, "/");
|
|
62
|
-
if (!isObject(input)) {
|
|
63
|
-
const safeInput = Array.isArray(input) ? [...input] : input;
|
|
64
|
-
const schema2 = {
|
|
65
|
-
type: getType(input),
|
|
66
|
-
id: schemaId,
|
|
67
|
-
default: ctx.ignoreDefaults ? void 0 : safeInput
|
|
68
|
-
};
|
|
69
|
-
normalizeSchema(schema2, { ignoreDefaults: ctx.ignoreDefaults });
|
|
70
|
-
ctx.resolveCache[id] = schema2;
|
|
71
|
-
if (ctx.defaults && getValue(ctx.defaults, id) === void 0) setValue(ctx.defaults, id, schema2.default);
|
|
72
|
-
return schema2;
|
|
73
|
-
}
|
|
74
|
-
const node = { ...input };
|
|
75
|
-
const schema = ctx.resolveCache[id] = {
|
|
76
|
-
...node.$schema,
|
|
77
|
-
id: schemaId
|
|
78
|
-
};
|
|
79
|
-
for (const key in node) {
|
|
80
|
-
if (key === "$resolve" || key === "$schema" || key === "$default") continue;
|
|
81
|
-
schema.properties = schema.properties || {};
|
|
82
|
-
if (!schema.properties[key]) {
|
|
83
|
-
const child = schema.properties[key] = await _resolveSchema(node[key], joinPath(id, key), ctx);
|
|
84
|
-
if (Array.isArray(child.tags) && child.tags.includes("@required")) {
|
|
85
|
-
schema.required = schema.required || [];
|
|
86
|
-
if (!schema.required.includes(key)) schema.required.push(key);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
if (!ctx.ignoreDefaults) {
|
|
91
|
-
if (ctx.defaults) schema.default = getValue(ctx.defaults, id);
|
|
92
|
-
if (schema.default === void 0 && "$default" in node) schema.default = node.$default;
|
|
93
|
-
if (typeof node.$resolve === "function") schema.default = await node.$resolve(schema.default, async (key) => {
|
|
94
|
-
return (await _resolveSchema(getValue(ctx.root, key), key, ctx)).default;
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
if (ctx.defaults) setValue(ctx.defaults, id, schema.default);
|
|
98
|
-
if (!schema.type) schema.type = getType(schema.default) || (schema.properties ? "object" : "any");
|
|
99
|
-
normalizeSchema(schema, { ignoreDefaults: ctx.ignoreDefaults });
|
|
100
|
-
if (ctx.defaults && getValue(ctx.defaults, id) === void 0) setValue(ctx.defaults, id, schema.default);
|
|
101
|
-
return schema;
|
|
102
|
-
}
|
|
103
|
-
function normalizeSchema(schema, options) {
|
|
104
|
-
if (schema.type === "array" && !("items" in schema)) {
|
|
105
|
-
schema.items = { type: nonEmpty(unique(schema.default.map((i) => getType(i)))) };
|
|
106
|
-
if (schema.items.type) {
|
|
107
|
-
if (schema.items.type.length === 0) schema.items.type = "any";
|
|
108
|
-
else if (schema.items.type.length === 1) schema.items.type = schema.items.type[0];
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (!options.ignoreDefaults && schema.default === void 0 && ("properties" in schema || schema.type === "object" || schema.type === "any")) {
|
|
112
|
-
const propsWithDefaults = Object.entries(schema.properties || {}).filter(([, prop]) => "default" in prop).map(([key, value]) => [key, value.default]);
|
|
113
|
-
schema.default = Object.fromEntries(propsWithDefaults);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
//#endregion
|
|
118
|
-
//#region node_modules/.pnpm/untyped@2.0.0/node_modules/untyped/dist/index.mjs
|
|
119
|
-
const GenerateTypesDefaults = {
|
|
120
|
-
interfaceName: "Untyped",
|
|
121
|
-
addExport: true,
|
|
122
|
-
addDefaults: true,
|
|
123
|
-
allowExtraKeys: void 0,
|
|
124
|
-
partial: false,
|
|
125
|
-
indentation: 0
|
|
126
|
-
};
|
|
127
|
-
const TYPE_MAP = {
|
|
128
|
-
array: "any[]",
|
|
129
|
-
bigint: "bigint",
|
|
130
|
-
boolean: "boolean",
|
|
131
|
-
number: "number",
|
|
132
|
-
object: "",
|
|
133
|
-
any: "any",
|
|
134
|
-
string: "string",
|
|
135
|
-
symbol: "Symbol",
|
|
136
|
-
function: "Function"
|
|
137
|
-
};
|
|
138
|
-
const SCHEMA_KEYS = /* @__PURE__ */ new Set([
|
|
139
|
-
"items",
|
|
140
|
-
"default",
|
|
141
|
-
"resolve",
|
|
142
|
-
"properties",
|
|
143
|
-
"title",
|
|
144
|
-
"description",
|
|
145
|
-
"$schema",
|
|
146
|
-
"type",
|
|
147
|
-
"tsType",
|
|
148
|
-
"markdownType",
|
|
149
|
-
"tags",
|
|
150
|
-
"args",
|
|
151
|
-
"id",
|
|
152
|
-
"returns"
|
|
153
|
-
]);
|
|
154
|
-
const DECLARATION_RE = /typeof import\(["'](?<source>[^)]+)["']\)(\.(?<type>\w+)|\[["'](?<type1>\w+)["']])/g;
|
|
155
|
-
function extractTypeImports(declarations) {
|
|
156
|
-
const typeImports = {};
|
|
157
|
-
const aliases = /* @__PURE__ */ new Set();
|
|
158
|
-
const imports = [];
|
|
159
|
-
for (const match of declarations.matchAll(DECLARATION_RE)) {
|
|
160
|
-
const { source, type1, type = type1 } = match.groups || {};
|
|
161
|
-
typeImports[source] = typeImports[source] || /* @__PURE__ */ new Set();
|
|
162
|
-
typeImports[source].add(type);
|
|
163
|
-
}
|
|
164
|
-
for (const source in typeImports) {
|
|
165
|
-
const sourceImports = [];
|
|
166
|
-
for (const type of typeImports[source]) {
|
|
167
|
-
let count = 0;
|
|
168
|
-
let alias = type;
|
|
169
|
-
while (aliases.has(alias)) alias = `${type}${count++}`;
|
|
170
|
-
aliases.add(alias);
|
|
171
|
-
sourceImports.push(alias === type ? type : `${type} as ${alias}`);
|
|
172
|
-
declarations = declarations.replace(new RegExp(`typeof import\\(['"]${source}['"]\\)(\\.${type}|\\[['"]${type}['"]\\])`, "g"), alias);
|
|
173
|
-
}
|
|
174
|
-
imports.push(`import type { ${sourceImports.join(", ")} } from '${source}'`);
|
|
175
|
-
}
|
|
176
|
-
return [...imports, declarations].join("\n");
|
|
177
|
-
}
|
|
178
|
-
function generateTypes(schema, opts = {}) {
|
|
179
|
-
opts = {
|
|
180
|
-
...GenerateTypesDefaults,
|
|
181
|
-
...opts
|
|
182
|
-
};
|
|
183
|
-
const baseIden = " ".repeat(opts.indentation || 0);
|
|
184
|
-
const interfaceCode = `interface ${opts.interfaceName} {
|
|
185
|
-
` + _genTypes(schema, baseIden + " ", opts).map((l) => l.trim().length > 0 ? l : "").join("\n") + `
|
|
186
|
-
${baseIden}}`;
|
|
187
|
-
if (!opts.addExport) return baseIden + interfaceCode;
|
|
188
|
-
return extractTypeImports(baseIden + `export ${interfaceCode}`);
|
|
189
|
-
}
|
|
190
|
-
function _genTypes(schema, spaces, opts) {
|
|
191
|
-
const buff = [];
|
|
192
|
-
if (!schema) return buff;
|
|
193
|
-
for (const key in schema.properties) {
|
|
194
|
-
const val = schema.properties[key];
|
|
195
|
-
buff.push(...generateJSDoc(val, opts));
|
|
196
|
-
if (val.tsType) buff.push(`${genObjectKey(key)}${isRequired(schema, key, opts) ? "" : "?"}: ${val.tsType},
|
|
197
|
-
`);
|
|
198
|
-
else if (val.type === "object") buff.push(`${genObjectKey(key)}${isRequired(schema, key, opts) ? "" : "?"}: {`, ..._genTypes(val, spaces, opts), "},\n");
|
|
199
|
-
else {
|
|
200
|
-
let type;
|
|
201
|
-
if (val.type === "array") type = `Array<${getTsType(val.items || [], opts)}>`;
|
|
202
|
-
else if (val.type === "function") type = genFunctionType(val, opts);
|
|
203
|
-
else type = getTsType(val, opts);
|
|
204
|
-
buff.push(`${genObjectKey(key)}${isRequired(schema, key, opts) ? "" : "?"}: ${type},
|
|
205
|
-
`);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
if (buff.length > 0) {
|
|
209
|
-
const last = buff.pop() || "";
|
|
210
|
-
buff.push(last.slice(0, Math.max(0, last.length - 1)));
|
|
211
|
-
}
|
|
212
|
-
if (opts.allowExtraKeys === true || buff.length === 0 && opts.allowExtraKeys !== false) buff.push("[key: string]: any");
|
|
213
|
-
return buff.flatMap((l) => l.split("\n")).map((l) => spaces + l);
|
|
214
|
-
}
|
|
215
|
-
function getTsType(type, opts) {
|
|
216
|
-
if (Array.isArray(type)) return [normalizeTypes(type.map((t) => getTsType(t, opts)))].flat().join("|") || "any";
|
|
217
|
-
if (!type) return "any";
|
|
218
|
-
if (type.tsType) return type.tsType;
|
|
219
|
-
if (!type.type) return "any";
|
|
220
|
-
if (Array.isArray(type.type)) return type.type.map((t) => {
|
|
221
|
-
if (t === "object" && type.type.length > 1) return `{
|
|
222
|
-
` + _genTypes(type, " ", opts).join("\n") + `
|
|
223
|
-
}`;
|
|
224
|
-
return TYPE_MAP[t];
|
|
225
|
-
}).join("|");
|
|
226
|
-
if (type.type === "array") return `Array<${getTsType(type.items || [], opts)}>`;
|
|
227
|
-
if (type.type === "object") return `{
|
|
228
|
-
` + _genTypes(type, " ", opts).join("\n") + `
|
|
229
|
-
}`;
|
|
230
|
-
return TYPE_MAP[type.type] || type.type;
|
|
231
|
-
}
|
|
232
|
-
function genFunctionType(schema, opts) {
|
|
233
|
-
return `(${genFunctionArgs(schema.args, opts)}) => ${getTsType(schema.returns || [], opts)}`;
|
|
234
|
-
}
|
|
235
|
-
function genFunctionArgs(args, opts) {
|
|
236
|
-
return args?.map((arg) => {
|
|
237
|
-
let argStr = arg.name;
|
|
238
|
-
if (arg.optional || arg.default) argStr += "?";
|
|
239
|
-
if (arg.type || arg.tsType) argStr += `: ${getTsType(arg, opts)}`;
|
|
240
|
-
return argStr;
|
|
241
|
-
}).join(", ") || "";
|
|
242
|
-
}
|
|
243
|
-
function generateJSDoc(schema, opts) {
|
|
244
|
-
opts.defaultDescription = opts.defaultDescription || opts.defaultDescrption;
|
|
245
|
-
let buff = [];
|
|
246
|
-
if (schema.title) buff.push(schema.title, "");
|
|
247
|
-
if (schema.description) buff.push(schema.description, "");
|
|
248
|
-
else if (opts.defaultDescription && schema.type !== "object") buff.push(opts.defaultDescription, "");
|
|
249
|
-
if (opts.addDefaults && schema.type !== "object" && schema.type !== "any" && !(Array.isArray(schema.default) && schema.default.length === 0)) {
|
|
250
|
-
const stringified = JSON.stringify(schema.default);
|
|
251
|
-
if (stringified) buff.push(`@default ${stringified.replace(/\*\//g, String.raw`*\/`)}`);
|
|
252
|
-
}
|
|
253
|
-
for (const key in schema) if (!SCHEMA_KEYS.has(key)) buff.push("", `@${key} ${schema[key]}`);
|
|
254
|
-
if (Array.isArray(schema.tags)) {
|
|
255
|
-
for (const tag of schema.tags) if (tag !== "@untyped") buff.push("", tag);
|
|
256
|
-
}
|
|
257
|
-
buff = buff.flatMap((i) => i.split("\n"));
|
|
258
|
-
if (buff.length > 0) return buff.length === 1 ? ["/** " + buff[0] + " */"] : [
|
|
259
|
-
"/**",
|
|
260
|
-
...buff.map((i) => ` * ${i}`),
|
|
261
|
-
"*/"
|
|
262
|
-
];
|
|
263
|
-
return [];
|
|
264
|
-
}
|
|
265
|
-
function isRequired(schema, key, opts) {
|
|
266
|
-
if (Array.isArray(schema.required) && schema.required.includes(key)) return true;
|
|
267
|
-
return !opts.partial;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
//#endregion
|
|
271
|
-
export { resolveSchema as n, generateTypes as t };
|