nitro-nightly 4.0.0-20251010-091516-7cafddba → 4.0.0-20251030-091344-d4418b98

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.
Files changed (195) hide show
  1. package/dist/{_chunks/build2.mjs → _build/build.mjs} +108 -58
  2. package/dist/_build/build2.mjs +556 -0
  3. package/dist/_build/info.mjs +1002 -0
  4. package/dist/_build/prepare.mjs +1511 -0
  5. package/dist/_build/snapshot.mjs +185 -0
  6. package/dist/{_chunks/plugin.mjs → _build/vite.mjs} +295 -296
  7. package/dist/_build/vite2.mjs +149 -0
  8. package/dist/_chunks/_deps/@jridgewell/gen-mapping.mjs +189 -0
  9. package/dist/_chunks/_deps/@jridgewell/remapping.mjs +137 -0
  10. package/dist/_chunks/_deps/@jridgewell/resolve-uri.mjs +231 -0
  11. package/dist/_chunks/_deps/@jridgewell/sourcemap-codec.mjs +173 -0
  12. package/dist/_chunks/_deps/@jridgewell/trace-mapping.mjs +170 -0
  13. package/dist/_chunks/_deps/@pi0/vite-plugin-fullstack.mjs +575 -0
  14. package/dist/_chunks/_deps/@rollup/plugin-alias.mjs +89 -0
  15. package/dist/_chunks/_deps/@rollup/plugin-commonjs.mjs +2376 -0
  16. package/dist/_chunks/{index2.mjs → _deps/@rollup/plugin-inject.mjs} +5 -90
  17. package/dist/_chunks/_deps/@rollup/plugin-json.mjs +37 -0
  18. package/dist/_chunks/_deps/@rollup/plugin-node-resolve.mjs +1386 -0
  19. package/dist/_chunks/_deps/@rollup/plugin-replace.mjs +133 -0
  20. package/dist/_chunks/_deps/@rollup/pluginutils.mjs +346 -0
  21. package/dist/_chunks/_deps/acorn.mjs +6225 -0
  22. package/dist/_chunks/_deps/c12.mjs +510 -0
  23. package/dist/_chunks/_deps/chokidar.mjs +1428 -0
  24. package/dist/_chunks/_deps/citty.mjs +460 -0
  25. package/dist/_chunks/_deps/commondir.mjs +77 -0
  26. package/dist/_chunks/_deps/compatx.mjs +76 -0
  27. package/dist/_chunks/_deps/confbox.mjs +300 -0
  28. package/dist/_chunks/_deps/debug.mjs +885 -0
  29. package/dist/_chunks/_deps/deepmerge.mjs +147 -0
  30. package/dist/_chunks/_deps/depd.mjs +550 -0
  31. package/dist/_chunks/_deps/dot-prop.mjs +282 -0
  32. package/dist/_chunks/_deps/dotenv.mjs +555 -0
  33. package/dist/_chunks/_deps/duplexer.mjs +1 -0
  34. package/dist/_chunks/_deps/ee-first.mjs +104 -0
  35. package/dist/_chunks/_deps/encodeurl.mjs +69 -0
  36. package/dist/_chunks/_deps/escape-html.mjs +87 -0
  37. package/dist/_chunks/_deps/escape-string-regexp.mjs +13 -0
  38. package/dist/_chunks/_deps/estree-walker.mjs +433 -0
  39. package/dist/_chunks/_deps/etag.mjs +147 -0
  40. package/dist/_chunks/_deps/exsolve.mjs +1416 -0
  41. package/dist/_chunks/_deps/fdir.mjs +569 -0
  42. package/dist/_chunks/_deps/fresh.mjs +145 -0
  43. package/dist/_chunks/_deps/function-bind.mjs +106 -0
  44. package/dist/_chunks/{index4.mjs → _deps/giget.mjs} +21 -776
  45. package/dist/_chunks/_deps/gzip-size.mjs +19 -0
  46. package/dist/_chunks/_deps/hasown.mjs +19 -0
  47. package/dist/_chunks/_deps/http-errors.mjs +307 -0
  48. package/dist/_chunks/_deps/httpxy.mjs +580 -0
  49. package/dist/_chunks/_deps/inherits.mjs +57 -0
  50. package/dist/_chunks/_deps/is-core-module.mjs +596 -0
  51. package/dist/_chunks/_deps/is-module.mjs +25 -0
  52. package/dist/_chunks/_deps/is-reference.mjs +31 -0
  53. package/dist/_chunks/_deps/js-tokens.mjs +411 -0
  54. package/dist/_chunks/_deps/klona.mjs +137 -0
  55. package/dist/_chunks/_deps/knitwork.mjs +172 -0
  56. package/dist/_chunks/_deps/local-pkg.mjs +163 -0
  57. package/dist/_chunks/_deps/magic-string.mjs +1296 -0
  58. package/dist/_chunks/_deps/mime-db.mjs +11685 -0
  59. package/dist/_chunks/_deps/mime-types.mjs +287 -0
  60. package/dist/_chunks/_deps/mime.mjs +1172 -0
  61. package/dist/_chunks/_deps/mlly.mjs +2413 -0
  62. package/dist/_chunks/_deps/ms.mjs +172 -0
  63. package/dist/_chunks/_deps/node-fetch-native.mjs +3 -0
  64. package/dist/_chunks/_deps/nypm.mjs +219 -0
  65. package/dist/_chunks/_deps/on-finished.mjs +246 -0
  66. package/dist/_chunks/_deps/parseurl.mjs +168 -0
  67. package/dist/_chunks/_deps/path-parse.mjs +85 -0
  68. package/dist/_chunks/{pathe.M-eThtNZ.mjs → _deps/pathe.mjs} +48 -1
  69. package/dist/_chunks/_deps/perfect-debounce.mjs +88 -0
  70. package/dist/_chunks/_deps/picomatch.mjs +2144 -0
  71. package/dist/_chunks/_deps/pkg-types.mjs +247 -0
  72. package/dist/_chunks/{snapshot.mjs → _deps/pretty-bytes.mjs} +1 -105
  73. package/dist/_chunks/_deps/quansync.mjs +99 -0
  74. package/dist/_chunks/_deps/range-parser.mjs +171 -0
  75. package/dist/_chunks/_deps/rc9.mjs +219 -0
  76. package/dist/_chunks/_deps/readdirp.mjs +245 -0
  77. package/dist/_chunks/_deps/resolve.mjs +1260 -0
  78. package/dist/_chunks/_deps/rou3.mjs +326 -0
  79. package/dist/_chunks/_deps/send.mjs +1022 -0
  80. package/dist/_chunks/_deps/serve-static.mjs +228 -0
  81. package/dist/_chunks/_deps/setprototypeof.mjs +26 -0
  82. package/dist/_chunks/_deps/statuses.mjs +457 -0
  83. package/dist/_chunks/_deps/std-env.mjs +3 -0
  84. package/dist/_chunks/_deps/strip-literal.mjs +67 -0
  85. package/dist/_chunks/_deps/supports-color.mjs +44 -0
  86. package/dist/_chunks/_deps/tinyexec.mjs +552 -0
  87. package/dist/_chunks/_deps/tinyglobby.mjs +293 -0
  88. package/dist/_chunks/_deps/toidentifier.mjs +41 -0
  89. package/dist/_chunks/_deps/ultrahtml.mjs +3 -0
  90. package/dist/_chunks/_deps/unimport.mjs +2267 -0
  91. package/dist/_chunks/_deps/unplugin-utils.mjs +65 -0
  92. package/dist/_chunks/_deps/unplugin.mjs +1294 -0
  93. package/dist/_chunks/_deps/untyped.mjs +375 -0
  94. package/dist/_chunks/{info.mjs → _deps/unwasm.mjs} +8 -4206
  95. package/dist/_chunks/_deps/webpack-virtual-modules.mjs +360 -0
  96. package/dist/_chunks/_presets/_all.mjs +59 -0
  97. package/dist/_chunks/_presets/_nitro.mjs +74 -0
  98. package/dist/_chunks/_presets/_resolve.mjs +64 -0
  99. package/dist/_chunks/_presets/_static.mjs +69 -0
  100. package/dist/_chunks/_presets/_types.mjs +3 -0
  101. package/dist/_chunks/_presets/_utils.mjs +31 -0
  102. package/dist/_chunks/_presets/alwaysdata.mjs +17 -0
  103. package/dist/_chunks/_presets/aws-amplify.mjs +111 -0
  104. package/dist/_chunks/_presets/aws-lambda.mjs +23 -0
  105. package/dist/_chunks/_presets/azure.mjs +162 -0
  106. package/dist/_chunks/_presets/bun.mjs +19 -0
  107. package/dist/_chunks/_presets/cleavr.mjs +15 -0
  108. package/dist/_chunks/_presets/cloudflare.mjs +608 -0
  109. package/dist/_chunks/_presets/deno.mjs +196 -0
  110. package/dist/_chunks/_presets/digitalocean.mjs +14 -0
  111. package/dist/_chunks/_presets/firebase.mjs +47 -0
  112. package/dist/_chunks/_presets/flightcontrol.mjs +14 -0
  113. package/dist/_chunks/_presets/genezio.mjs +13 -0
  114. package/dist/_chunks/_presets/heroku.mjs +14 -0
  115. package/dist/_chunks/_presets/iis.mjs +194 -0
  116. package/dist/_chunks/_presets/index.mjs +62 -0
  117. package/dist/_chunks/_presets/koyeb.mjs +14 -0
  118. package/dist/_chunks/_presets/netlify.mjs +241 -0
  119. package/dist/_chunks/_presets/node.mjs +54 -0
  120. package/dist/_chunks/_presets/platform.mjs +14 -0
  121. package/dist/_chunks/_presets/render.mjs +14 -0
  122. package/dist/_chunks/_presets/standard.mjs +23 -0
  123. package/dist/_chunks/_presets/stormkit.mjs +18 -0
  124. package/dist/_chunks/_presets/vercel.mjs +375 -0
  125. package/dist/_chunks/_presets/winterjs.mjs +22 -0
  126. package/dist/_chunks/_presets/zeabur.mjs +69 -0
  127. package/dist/_chunks/_presets/zerops.mjs +27 -0
  128. package/dist/_chunks/app.mjs +9 -19206
  129. package/dist/_chunks/{index3.mjs → builder.mjs} +560 -970
  130. package/dist/_chunks/server.mjs +6 -4
  131. package/dist/{cli → _cli}/build.mjs +3 -8
  132. package/dist/{cli → _cli}/dev.mjs +38 -12
  133. package/dist/{cli/index2.mjs → _cli/index.mjs} +1 -2
  134. package/dist/{cli → _cli}/list.mjs +3 -4
  135. package/dist/{cli → _cli}/prepare.mjs +3 -4
  136. package/dist/{cli → _cli}/run.mjs +3 -4
  137. package/dist/{index.d.mts → builder.d.mts} +11 -11
  138. package/dist/builder.mjs +117 -0
  139. package/dist/cli/index.mjs +7 -464
  140. package/dist/node_modules/@speed-highlight/core/dist/index.js +1 -1
  141. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +1 -1
  142. package/dist/node_modules/@speed-highlight/core/package.json +7 -3
  143. package/dist/node_modules/cookie-es/dist/index.mjs +262 -0
  144. package/dist/node_modules/cookie-es/package.json +37 -0
  145. package/dist/node_modules/hookable/dist/index.mjs +243 -266
  146. package/dist/node_modules/hookable/package.json +29 -26
  147. package/dist/node_modules/rendu/dist/index.mjs +380 -0
  148. package/dist/node_modules/rendu/package.json +47 -0
  149. package/dist/presets/_nitro/runtime/nitro-dev.mjs +4 -7
  150. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +5 -4
  151. package/dist/presets/azure/runtime/azure-swa.mjs +1 -1
  152. package/dist/presets/cloudflare/runtime/_module-handler.mjs +7 -6
  153. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +4 -5
  154. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +7 -10
  155. package/dist/presets/cloudflare/runtime/shims/workers.dev.d.mts +21 -0
  156. package/dist/presets/cloudflare/runtime/shims/workers.dev.mjs +27 -0
  157. package/dist/presets/node/runtime/node-server.mjs +1 -1
  158. package/dist/runtime/index.d.mts +1 -1
  159. package/dist/runtime/index.mjs +1 -1
  160. package/dist/runtime/internal/app.d.mts +3 -1
  161. package/dist/runtime/internal/app.mjs +90 -64
  162. package/dist/runtime/internal/error/prod.d.mts +3 -2
  163. package/dist/runtime/internal/error/prod.mjs +9 -13
  164. package/dist/runtime/internal/renderer.mjs +4 -4
  165. package/dist/runtime/internal/routes/dev-tasks.d.mts +30 -2
  166. package/dist/runtime/internal/shutdown.d.mts +1 -2
  167. package/dist/runtime/internal/shutdown.mjs +3 -2
  168. package/dist/runtime/internal/task.mjs +1 -2
  169. package/dist/types/index.d.mts +1603 -10
  170. package/dist/vite.d.mts +5 -0
  171. package/dist/vite.mjs +94 -30
  172. package/lib/index.mjs +1 -0
  173. package/lib/indexd.mts +1 -0
  174. package/lib/runtime/meta.mjs +35 -0
  175. package/package.json +40 -41
  176. package/dist/_chunks/build.mjs +0 -84
  177. package/dist/_chunks/build3.mjs +0 -6452
  178. package/dist/_chunks/detect-acorn.mjs +0 -503
  179. package/dist/_chunks/index.mjs +0 -22242
  180. package/dist/_chunks/json5.mjs +0 -68
  181. package/dist/_chunks/jsonc.mjs +0 -51
  182. package/dist/_chunks/toml.mjs +0 -259
  183. package/dist/_chunks/yaml.mjs +0 -86
  184. package/dist/index.mjs +0 -55
  185. package/dist/node_modules/klona/dist/index.mjs +0 -81
  186. package/dist/node_modules/klona/full/index.mjs +0 -53
  187. package/dist/node_modules/klona/package.json +0 -74
  188. package/dist/node_modules/std-env/dist/index.mjs +0 -1
  189. package/dist/node_modules/std-env/package.json +0 -46
  190. package/dist/presets.mjs +0 -2460
  191. package/dist/runtime/internal/debug.d.mts +0 -2
  192. package/dist/runtime/internal/debug.mjs +0 -5
  193. package/lib/runtime-meta.mjs +0 -38
  194. /package/dist/{cli → _cli}/common.mjs +0 -0
  195. /package/lib/{runtime-meta.d.mts → runtime/meta.d.mts} +0 -0
@@ -0,0 +1,133 @@
1
+ import { M as MagicString } from '../magic-string.mjs';
2
+ import { c as createFilter } from './pluginutils.mjs';
3
+
4
+ function escape(str) {
5
+ return str.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&');
6
+ }
7
+
8
+ function ensureFunction(functionOrValue) {
9
+ if (typeof functionOrValue === 'function') { return functionOrValue; }
10
+ return function () { return functionOrValue; };
11
+ }
12
+
13
+ function longest(a, b) {
14
+ return b.length - a.length;
15
+ }
16
+
17
+ function getReplacements(options) {
18
+ if (options.values) {
19
+ return Object.assign({}, options.values);
20
+ }
21
+ var values = Object.assign({}, options);
22
+ delete values.delimiters;
23
+ delete values.include;
24
+ delete values.exclude;
25
+ delete values.sourcemap;
26
+ delete values.sourceMap;
27
+ delete values.objectGuards;
28
+ delete values.preventAssignment;
29
+ return values;
30
+ }
31
+
32
+ function mapToFunctions(object) {
33
+ return Object.keys(object).reduce(function (fns, key) {
34
+ var functions = Object.assign({}, fns);
35
+ functions[key] = ensureFunction(object[key]);
36
+ return functions;
37
+ }, {});
38
+ }
39
+
40
+ var objKeyRegEx =
41
+ /^([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)(\.([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*))+$/;
42
+ function expandTypeofReplacements(replacements) {
43
+ Object.keys(replacements).forEach(function (key) {
44
+ var objMatch = key.match(objKeyRegEx);
45
+ if (!objMatch) { return; }
46
+ var dotIndex = objMatch[1].length;
47
+ do {
48
+ // eslint-disable-next-line no-param-reassign
49
+ replacements[("typeof " + (key.slice(0, dotIndex)))] = '"object"';
50
+ dotIndex = key.indexOf('.', dotIndex + 1);
51
+ } while (dotIndex !== -1);
52
+ });
53
+ }
54
+
55
+ function replace(options) {
56
+ if ( options === void 0 ) options = {};
57
+
58
+ var filter = createFilter(options.include, options.exclude);
59
+ var delimiters = options.delimiters; if ( delimiters === void 0 ) delimiters = ['(?<![_$a-zA-Z0-9\\xA0-\\uFFFF])', '(?![_$a-zA-Z0-9\\xA0-\\uFFFF])(?!\\.)'];
60
+ var preventAssignment = options.preventAssignment;
61
+ var objectGuards = options.objectGuards;
62
+ var replacements = getReplacements(options);
63
+ if (objectGuards) { expandTypeofReplacements(replacements); }
64
+ var functionValues = mapToFunctions(replacements);
65
+ var keys = Object.keys(functionValues).sort(longest).map(escape);
66
+ var lookbehind = preventAssignment ? '(?<!\\b(?:const|let|var)\\s*)' : '';
67
+ var lookahead = preventAssignment ? '(?!\\s*=[^=])' : '';
68
+ var pattern = new RegExp(
69
+ ("" + lookbehind + (delimiters[0]) + "(" + (keys.join('|')) + ")" + (delimiters[1]) + lookahead),
70
+ 'g'
71
+ );
72
+
73
+ return {
74
+ name: 'replace',
75
+
76
+ buildStart: function buildStart() {
77
+ if (![true, false].includes(preventAssignment)) {
78
+ this.warn({
79
+ message:
80
+ "@rollup/plugin-replace: 'preventAssignment' currently defaults to false. It is recommended to set this option to `true`, as the next major version will default this option to `true`."
81
+ });
82
+ }
83
+ },
84
+
85
+ renderChunk: function renderChunk(code, chunk) {
86
+ var id = chunk.fileName;
87
+ if (!keys.length) { return null; }
88
+ if (!filter(id)) { return null; }
89
+ return executeReplacement(code, id);
90
+ },
91
+
92
+ transform: function transform(code, id) {
93
+ if (!keys.length) { return null; }
94
+ if (!filter(id)) { return null; }
95
+ return executeReplacement(code, id);
96
+ }
97
+ };
98
+
99
+ function executeReplacement(code, id) {
100
+ var magicString = new MagicString(code);
101
+ if (!codeHasReplacements(code, id, magicString)) {
102
+ return null;
103
+ }
104
+
105
+ var result = { code: magicString.toString() };
106
+ if (isSourceMapEnabled()) {
107
+ result.map = magicString.generateMap({ hires: true });
108
+ }
109
+ return result;
110
+ }
111
+
112
+ function codeHasReplacements(code, id, magicString) {
113
+ var result = false;
114
+ var match;
115
+
116
+ // eslint-disable-next-line no-cond-assign
117
+ while ((match = pattern.exec(code))) {
118
+ result = true;
119
+
120
+ var start = match.index;
121
+ var end = start + match[0].length;
122
+ var replacement = String(functionValues[match[1]](id));
123
+ magicString.overwrite(start, end, replacement);
124
+ }
125
+ return result;
126
+ }
127
+
128
+ function isSourceMapEnabled() {
129
+ return options.sourceMap !== false && options.sourcemap !== false;
130
+ }
131
+ }
132
+
133
+ export { replace as r };
@@ -0,0 +1,346 @@
1
+ import { win32, posix, isAbsolute, resolve } from 'path';
2
+ import { w as walk } from '../estree-walker.mjs';
3
+ import { p as pm } from '../picomatch.mjs';
4
+
5
+ const extractors = {
6
+ ArrayPattern(names, param) {
7
+ for (const element of param.elements) {
8
+ if (element)
9
+ extractors[element.type](names, element);
10
+ }
11
+ },
12
+ AssignmentPattern(names, param) {
13
+ extractors[param.left.type](names, param.left);
14
+ },
15
+ Identifier(names, param) {
16
+ names.push(param.name);
17
+ },
18
+ MemberExpression() { },
19
+ ObjectPattern(names, param) {
20
+ for (const prop of param.properties) {
21
+ // @ts-ignore Typescript reports that this is not a valid type
22
+ if (prop.type === 'RestElement') {
23
+ extractors.RestElement(names, prop);
24
+ }
25
+ else {
26
+ extractors[prop.value.type](names, prop.value);
27
+ }
28
+ }
29
+ },
30
+ RestElement(names, param) {
31
+ extractors[param.argument.type](names, param.argument);
32
+ }
33
+ };
34
+ const extractAssignedNames = function extractAssignedNames(param) {
35
+ const names = [];
36
+ extractors[param.type](names, param);
37
+ return names;
38
+ };
39
+
40
+ const blockDeclarations = {
41
+ const: true,
42
+ let: true
43
+ };
44
+ class Scope {
45
+ constructor(options = {}) {
46
+ this.parent = options.parent;
47
+ this.isBlockScope = !!options.block;
48
+ this.declarations = Object.create(null);
49
+ if (options.params) {
50
+ options.params.forEach((param) => {
51
+ extractAssignedNames(param).forEach((name) => {
52
+ this.declarations[name] = true;
53
+ });
54
+ });
55
+ }
56
+ }
57
+ addDeclaration(node, isBlockDeclaration, isVar) {
58
+ if (!isBlockDeclaration && this.isBlockScope) {
59
+ // it's a `var` or function node, and this
60
+ // is a block scope, so we need to go up
61
+ this.parent.addDeclaration(node, isBlockDeclaration, isVar);
62
+ }
63
+ else if (node.id) {
64
+ extractAssignedNames(node.id).forEach((name) => {
65
+ this.declarations[name] = true;
66
+ });
67
+ }
68
+ }
69
+ contains(name) {
70
+ return this.declarations[name] || (this.parent ? this.parent.contains(name) : false);
71
+ }
72
+ }
73
+ const attachScopes = function attachScopes(ast, propertyName = 'scope') {
74
+ let scope = new Scope();
75
+ walk(ast, {
76
+ enter(n, parent) {
77
+ const node = n;
78
+ // function foo () {...}
79
+ // class Foo {...}
80
+ if (/(?:Function|Class)Declaration/.test(node.type)) {
81
+ scope.addDeclaration(node, false, false);
82
+ }
83
+ // var foo = 1
84
+ if (node.type === 'VariableDeclaration') {
85
+ const { kind } = node;
86
+ const isBlockDeclaration = blockDeclarations[kind];
87
+ node.declarations.forEach((declaration) => {
88
+ scope.addDeclaration(declaration, isBlockDeclaration, true);
89
+ });
90
+ }
91
+ let newScope;
92
+ // create new function scope
93
+ if (node.type.includes('Function')) {
94
+ const func = node;
95
+ newScope = new Scope({
96
+ parent: scope,
97
+ block: false,
98
+ params: func.params
99
+ });
100
+ // named function expressions - the name is considered
101
+ // part of the function's scope
102
+ if (func.type === 'FunctionExpression' && func.id) {
103
+ newScope.addDeclaration(func, false, false);
104
+ }
105
+ }
106
+ // create new for scope
107
+ if (/For(?:In|Of)?Statement/.test(node.type)) {
108
+ newScope = new Scope({
109
+ parent: scope,
110
+ block: true
111
+ });
112
+ }
113
+ // create new block scope
114
+ if (node.type === 'BlockStatement' && !parent.type.includes('Function')) {
115
+ newScope = new Scope({
116
+ parent: scope,
117
+ block: true
118
+ });
119
+ }
120
+ // catch clause has its own block scope
121
+ if (node.type === 'CatchClause') {
122
+ newScope = new Scope({
123
+ parent: scope,
124
+ params: node.param ? [node.param] : [],
125
+ block: true
126
+ });
127
+ }
128
+ if (newScope) {
129
+ Object.defineProperty(node, propertyName, {
130
+ value: newScope,
131
+ configurable: true
132
+ });
133
+ scope = newScope;
134
+ }
135
+ },
136
+ leave(n) {
137
+ const node = n;
138
+ if (node[propertyName])
139
+ scope = scope.parent;
140
+ }
141
+ });
142
+ return scope;
143
+ };
144
+
145
+ // Helper since Typescript can't detect readonly arrays with Array.isArray
146
+ function isArray(arg) {
147
+ return Array.isArray(arg);
148
+ }
149
+ function ensureArray(thing) {
150
+ if (isArray(thing))
151
+ return thing;
152
+ if (thing == null)
153
+ return [];
154
+ return [thing];
155
+ }
156
+
157
+ const normalizePathRegExp = new RegExp(`\\${win32.sep}`, 'g');
158
+ const normalizePath = function normalizePath(filename) {
159
+ return filename.replace(normalizePathRegExp, posix.sep);
160
+ };
161
+
162
+ function getMatcherString(id, resolutionBase) {
163
+ if (resolutionBase === false || isAbsolute(id) || id.startsWith('**')) {
164
+ return normalizePath(id);
165
+ }
166
+ // resolve('') is valid and will default to process.cwd()
167
+ const basePath = normalizePath(resolve(resolutionBase || ''))
168
+ // escape all possible (posix + win) path characters that might interfere with regex
169
+ .replace(/[-^$*+?.()|[\]{}]/g, '\\$&');
170
+ // Note that we use posix.join because:
171
+ // 1. the basePath has been normalized to use /
172
+ // 2. the incoming glob (id) matcher, also uses /
173
+ // otherwise Node will force backslash (\) on windows
174
+ return posix.join(basePath, normalizePath(id));
175
+ }
176
+ const createFilter = function createFilter(include, exclude, options) {
177
+ const resolutionBase = options && options.resolve;
178
+ const getMatcher = (id) => id instanceof RegExp
179
+ ? id
180
+ : {
181
+ test: (what) => {
182
+ // this refactor is a tad overly verbose but makes for easy debugging
183
+ const pattern = getMatcherString(id, resolutionBase);
184
+ const fn = pm(pattern, { dot: true });
185
+ const result = fn(what);
186
+ return result;
187
+ }
188
+ };
189
+ const includeMatchers = ensureArray(include).map(getMatcher);
190
+ const excludeMatchers = ensureArray(exclude).map(getMatcher);
191
+ if (!includeMatchers.length && !excludeMatchers.length)
192
+ return (id) => typeof id === 'string' && !id.includes('\0');
193
+ return function result(id) {
194
+ if (typeof id !== 'string')
195
+ return false;
196
+ if (id.includes('\0'))
197
+ return false;
198
+ const pathId = normalizePath(id);
199
+ for (let i = 0; i < excludeMatchers.length; ++i) {
200
+ const matcher = excludeMatchers[i];
201
+ if (matcher instanceof RegExp) {
202
+ matcher.lastIndex = 0;
203
+ }
204
+ if (matcher.test(pathId))
205
+ return false;
206
+ }
207
+ for (let i = 0; i < includeMatchers.length; ++i) {
208
+ const matcher = includeMatchers[i];
209
+ if (matcher instanceof RegExp) {
210
+ matcher.lastIndex = 0;
211
+ }
212
+ if (matcher.test(pathId))
213
+ return true;
214
+ }
215
+ return !includeMatchers.length;
216
+ };
217
+ };
218
+
219
+ const reservedWords = 'break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public';
220
+ const builtins = 'arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl';
221
+ const forbiddenIdentifiers = new Set(`${reservedWords} ${builtins}`.split(' '));
222
+ forbiddenIdentifiers.add('');
223
+ const makeLegalIdentifier = function makeLegalIdentifier(str) {
224
+ let identifier = str
225
+ .replace(/-(\w)/g, (_, letter) => letter.toUpperCase())
226
+ .replace(/[^$_a-zA-Z0-9]/g, '_');
227
+ if (/\d/.test(identifier[0]) || forbiddenIdentifiers.has(identifier)) {
228
+ identifier = `_${identifier}`;
229
+ }
230
+ return identifier || '_';
231
+ };
232
+
233
+ function stringify(obj) {
234
+ return (JSON.stringify(obj) || 'undefined').replace(/[\u2028\u2029]/g, (char) => `\\u${`000${char.charCodeAt(0).toString(16)}`.slice(-4)}`);
235
+ }
236
+ function serializeArray(arr, indent, baseIndent) {
237
+ let output = '[';
238
+ const separator = indent ? `\n${baseIndent}${indent}` : '';
239
+ for (let i = 0; i < arr.length; i++) {
240
+ const key = arr[i];
241
+ output += `${i > 0 ? ',' : ''}${separator}${serialize(key, indent, baseIndent + indent)}`;
242
+ }
243
+ return `${output}${indent ? `\n${baseIndent}` : ''}]`;
244
+ }
245
+ function serializeObject(obj, indent, baseIndent) {
246
+ let output = '{';
247
+ const separator = indent ? `\n${baseIndent}${indent}` : '';
248
+ const entries = Object.entries(obj);
249
+ for (let i = 0; i < entries.length; i++) {
250
+ const [key, value] = entries[i];
251
+ const stringKey = makeLegalIdentifier(key) === key ? key : stringify(key);
252
+ output += `${i > 0 ? ',' : ''}${separator}${stringKey}:${indent ? ' ' : ''}${serialize(value, indent, baseIndent + indent)}`;
253
+ }
254
+ return `${output}${indent ? `\n${baseIndent}` : ''}}`;
255
+ }
256
+ function serialize(obj, indent, baseIndent) {
257
+ if (typeof obj === 'object' && obj !== null) {
258
+ if (Array.isArray(obj))
259
+ return serializeArray(obj, indent, baseIndent);
260
+ if (obj instanceof Date)
261
+ return `new Date(${obj.getTime()})`;
262
+ if (obj instanceof RegExp)
263
+ return obj.toString();
264
+ return serializeObject(obj, indent, baseIndent);
265
+ }
266
+ if (typeof obj === 'number') {
267
+ if (obj === Infinity)
268
+ return 'Infinity';
269
+ if (obj === -Infinity)
270
+ return '-Infinity';
271
+ if (obj === 0)
272
+ return 1 / obj === Infinity ? '0' : '-0';
273
+ if (obj !== obj)
274
+ return 'NaN'; // eslint-disable-line no-self-compare
275
+ }
276
+ if (typeof obj === 'symbol') {
277
+ const key = Symbol.keyFor(obj);
278
+ // eslint-disable-next-line no-undefined
279
+ if (key !== undefined)
280
+ return `Symbol.for(${stringify(key)})`;
281
+ }
282
+ if (typeof obj === 'bigint')
283
+ return `${obj}n`;
284
+ return stringify(obj);
285
+ }
286
+ // isWellFormed exists from Node.js 20
287
+ const hasStringIsWellFormed = 'isWellFormed' in String.prototype;
288
+ function isWellFormedString(input) {
289
+ // @ts-expect-error String::isWellFormed exists from ES2024. tsconfig lib is set to ES6
290
+ if (hasStringIsWellFormed)
291
+ return input.isWellFormed();
292
+ // https://github.com/tc39/proposal-is-usv-string/blob/main/README.md#algorithm
293
+ return !/\p{Surrogate}/u.test(input);
294
+ }
295
+ const dataToEsm = function dataToEsm(data, options = {}) {
296
+ var _a, _b;
297
+ const t = options.compact ? '' : 'indent' in options ? options.indent : '\t';
298
+ const _ = options.compact ? '' : ' ';
299
+ const n = options.compact ? '' : '\n';
300
+ const declarationType = options.preferConst ? 'const' : 'var';
301
+ if (options.namedExports === false ||
302
+ typeof data !== 'object' ||
303
+ Array.isArray(data) ||
304
+ data instanceof Date ||
305
+ data instanceof RegExp ||
306
+ data === null) {
307
+ const code = serialize(data, options.compact ? null : t, '');
308
+ const magic = _ || (/^[{[\-\/]/.test(code) ? '' : ' '); // eslint-disable-line no-useless-escape
309
+ return `export default${magic}${code};`;
310
+ }
311
+ let maxUnderbarPrefixLength = 0;
312
+ for (const key of Object.keys(data)) {
313
+ const underbarPrefixLength = (_b = (_a = /^(_+)/.exec(key)) === null || _a === void 0 ? void 0 : _a[0].length) !== null && _b !== void 0 ? _b : 0;
314
+ if (underbarPrefixLength > maxUnderbarPrefixLength) {
315
+ maxUnderbarPrefixLength = underbarPrefixLength;
316
+ }
317
+ }
318
+ const arbitraryNamePrefix = `${'_'.repeat(maxUnderbarPrefixLength + 1)}arbitrary`;
319
+ let namedExportCode = '';
320
+ const defaultExportRows = [];
321
+ const arbitraryNameExportRows = [];
322
+ for (const [key, value] of Object.entries(data)) {
323
+ if (key === makeLegalIdentifier(key)) {
324
+ if (options.objectShorthand)
325
+ defaultExportRows.push(key);
326
+ else
327
+ defaultExportRows.push(`${key}:${_}${key}`);
328
+ namedExportCode += `export ${declarationType} ${key}${_}=${_}${serialize(value, options.compact ? null : t, '')};${n}`;
329
+ }
330
+ else {
331
+ defaultExportRows.push(`${stringify(key)}:${_}${serialize(value, options.compact ? null : t, '')}`);
332
+ if (options.includeArbitraryNames && isWellFormedString(key)) {
333
+ const variableName = `${arbitraryNamePrefix}${arbitraryNameExportRows.length}`;
334
+ namedExportCode += `${declarationType} ${variableName}${_}=${_}${serialize(value, options.compact ? null : t, '')};${n}`;
335
+ arbitraryNameExportRows.push(`${variableName} as ${JSON.stringify(key)}`);
336
+ }
337
+ }
338
+ }
339
+ const arbitraryExportCode = arbitraryNameExportRows.length > 0
340
+ ? `export${_}{${n}${t}${arbitraryNameExportRows.join(`,${n}${t}`)}${n}};${n}`
341
+ : '';
342
+ const defaultExportCode = `export default${_}{${n}${t}${defaultExportRows.join(`,${n}${t}`)}${n}};${n}`;
343
+ return `${namedExportCode}${arbitraryExportCode}${defaultExportCode}`;
344
+ };
345
+
346
+ export { attachScopes as a, createFilter as c, dataToEsm as d, extractAssignedNames as e, makeLegalIdentifier as m };