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,282 @@
1
+ const isObject = value => {
2
+ const type = typeof value;
3
+ return value !== null && (type === 'object' || type === 'function');
4
+ };
5
+
6
+ const disallowedKeys = new Set([
7
+ '__proto__',
8
+ 'prototype',
9
+ 'constructor',
10
+ ]);
11
+
12
+ // Maximum allowed array index to prevent DoS via memory exhaustion.
13
+ const MAX_ARRAY_INDEX = 1_000_000;
14
+
15
+ // Optimized digit check without Set overhead.
16
+ const isDigit = character => character >= '0' && character <= '9';
17
+
18
+ // Check if a segment should be coerced to a number.
19
+ function shouldCoerceToNumber(segment) {
20
+ // Only coerce valid non-negative integers without leading zeros.
21
+ if (segment === '0') {
22
+ return true;
23
+ }
24
+
25
+ if (/^[1-9]\d*$/.test(segment)) {
26
+ const parsedNumber = Number.parseInt(segment, 10);
27
+ // Check within safe integer range and under MAX_ARRAY_INDEX to prevent DoS.
28
+ return parsedNumber <= Number.MAX_SAFE_INTEGER && parsedNumber <= MAX_ARRAY_INDEX;
29
+ }
30
+
31
+ return false;
32
+ }
33
+
34
+ // Helper to process a path segment (eliminates duplication).
35
+ function processSegment(segment, parts) {
36
+ if (disallowedKeys.has(segment)) {
37
+ return false; // Signal to return empty array.
38
+ }
39
+
40
+ if (segment && shouldCoerceToNumber(segment)) {
41
+ parts.push(Number.parseInt(segment, 10));
42
+ } else {
43
+ parts.push(segment);
44
+ }
45
+
46
+ return true;
47
+ }
48
+
49
+ function parsePath(path) { // eslint-disable-line complexity
50
+ if (typeof path !== 'string') {
51
+ throw new TypeError(`Expected a string, got ${typeof path}`);
52
+ }
53
+
54
+ const parts = [];
55
+ let currentSegment = '';
56
+ let currentPart = 'start';
57
+ let isEscaping = false;
58
+ let position = 0;
59
+
60
+ for (const character of path) {
61
+ position++;
62
+
63
+ // Handle escaping.
64
+ if (isEscaping) {
65
+ currentSegment += character;
66
+ isEscaping = false;
67
+ continue;
68
+ }
69
+
70
+ // Handle escape character.
71
+ if (character === '\\') {
72
+ if (currentPart === 'index') {
73
+ throw new Error(`Invalid character '${character}' in an index at position ${position}`);
74
+ }
75
+
76
+ if (currentPart === 'indexEnd') {
77
+ throw new Error(`Invalid character '${character}' after an index at position ${position}`);
78
+ }
79
+
80
+ isEscaping = true;
81
+ currentPart = currentPart === 'start' ? 'property' : currentPart;
82
+ continue;
83
+ }
84
+
85
+ switch (character) {
86
+ case '.': {
87
+ if (currentPart === 'index') {
88
+ throw new Error(`Invalid character '${character}' in an index at position ${position}`);
89
+ }
90
+
91
+ if (currentPart === 'indexEnd') {
92
+ currentPart = 'property';
93
+ break;
94
+ }
95
+
96
+ if (!processSegment(currentSegment, parts)) {
97
+ return [];
98
+ }
99
+
100
+ currentSegment = '';
101
+ currentPart = 'property';
102
+ break;
103
+ }
104
+
105
+ case '[': {
106
+ if (currentPart === 'index') {
107
+ throw new Error(`Invalid character '${character}' in an index at position ${position}`);
108
+ }
109
+
110
+ if (currentPart === 'indexEnd') {
111
+ currentPart = 'index';
112
+ break;
113
+ }
114
+
115
+ if (currentPart === 'property' || currentPart === 'start') {
116
+ // Only push if we have content OR if we're in 'property' mode (not 'start')
117
+ if ((currentSegment || currentPart === 'property') && !processSegment(currentSegment, parts)) {
118
+ return [];
119
+ }
120
+
121
+ currentSegment = '';
122
+ }
123
+
124
+ currentPart = 'index';
125
+ break;
126
+ }
127
+
128
+ case ']': {
129
+ if (currentPart === 'index') {
130
+ if (currentSegment === '') {
131
+ // Empty brackets - backtrack and treat as literal
132
+ const lastSegment = parts.pop() || '';
133
+ currentSegment = lastSegment + '[]';
134
+ currentPart = 'property';
135
+ } else {
136
+ // Index must be digits only (enforced by default case)
137
+ const parsedNumber = Number.parseInt(currentSegment, 10);
138
+ const isValidInteger = !Number.isNaN(parsedNumber)
139
+ && Number.isFinite(parsedNumber)
140
+ && parsedNumber >= 0
141
+ && parsedNumber <= Number.MAX_SAFE_INTEGER
142
+ && parsedNumber <= MAX_ARRAY_INDEX
143
+ && currentSegment === String(parsedNumber);
144
+
145
+ if (isValidInteger) {
146
+ parts.push(parsedNumber);
147
+ } else {
148
+ // Keep as string if not a valid integer representation or exceeds MAX_ARRAY_INDEX
149
+ parts.push(currentSegment);
150
+ }
151
+
152
+ currentSegment = '';
153
+ currentPart = 'indexEnd';
154
+ }
155
+
156
+ break;
157
+ }
158
+
159
+ if (currentPart === 'indexEnd') {
160
+ throw new Error(`Invalid character '${character}' after an index at position ${position}`);
161
+ }
162
+
163
+ // In property context, treat ] as literal character
164
+ currentSegment += character;
165
+ break;
166
+ }
167
+
168
+ default: {
169
+ if (currentPart === 'index' && !isDigit(character)) {
170
+ throw new Error(`Invalid character '${character}' in an index at position ${position}`);
171
+ }
172
+
173
+ if (currentPart === 'indexEnd') {
174
+ throw new Error(`Invalid character '${character}' after an index at position ${position}`);
175
+ }
176
+
177
+ if (currentPart === 'start') {
178
+ currentPart = 'property';
179
+ }
180
+
181
+ currentSegment += character;
182
+ }
183
+ }
184
+ }
185
+
186
+ // Handle unfinished escaping (trailing backslash)
187
+ if (isEscaping) {
188
+ currentSegment += '\\';
189
+ }
190
+
191
+ // Handle end of path
192
+ switch (currentPart) {
193
+ case 'property': {
194
+ if (!processSegment(currentSegment, parts)) {
195
+ return [];
196
+ }
197
+
198
+ break;
199
+ }
200
+
201
+ case 'index': {
202
+ throw new Error('Index was not closed');
203
+ }
204
+
205
+ case 'start': {
206
+ parts.push('');
207
+ break;
208
+ }
209
+ // No default
210
+ }
211
+
212
+ return parts;
213
+ }
214
+
215
+ function normalizePath(path) {
216
+ if (typeof path === 'string') {
217
+ return parsePath(path);
218
+ }
219
+
220
+ if (Array.isArray(path)) {
221
+ const normalized = [];
222
+
223
+ for (const [index, segment] of path.entries()) {
224
+ // Type validation.
225
+ if (typeof segment !== 'string' && typeof segment !== 'number') {
226
+ throw new TypeError(`Expected a string or number for path segment at index ${index}, got ${typeof segment}`);
227
+ }
228
+
229
+ // Validate numbers are finite (reject NaN, Infinity, -Infinity).
230
+ if (typeof segment === 'number' && !Number.isFinite(segment)) {
231
+ throw new TypeError(`Path segment at index ${index} must be a finite number, got ${segment}`);
232
+ }
233
+
234
+ // Check for disallowed keys.
235
+ if (disallowedKeys.has(segment)) {
236
+ return [];
237
+ }
238
+
239
+ // Normalize numeric strings to numbers for simplicity.
240
+ // This treats ['items', '0'] the same as ['items', 0].
241
+ if (typeof segment === 'string' && shouldCoerceToNumber(segment)) {
242
+ normalized.push(Number.parseInt(segment, 10));
243
+ } else {
244
+ normalized.push(segment);
245
+ }
246
+ }
247
+
248
+ return normalized;
249
+ }
250
+
251
+ return [];
252
+ }
253
+
254
+ function getProperty(object, path, value) {
255
+ if (!isObject(object) || (typeof path !== 'string' && !Array.isArray(path))) {
256
+ return value === undefined ? object : value;
257
+ }
258
+
259
+ const pathArray = normalizePath(path);
260
+ if (pathArray.length === 0) {
261
+ return value;
262
+ }
263
+
264
+ for (let index = 0; index < pathArray.length; index++) {
265
+ const key = pathArray[index];
266
+ object = object[key];
267
+
268
+ if (object === undefined || object === null) {
269
+ // Return default value if we hit undefined/null before the end of the path.
270
+ // This ensures get({foo: null}, 'foo.bar') returns the default value, not null.
271
+ if (index !== pathArray.length - 1) {
272
+ return value;
273
+ }
274
+
275
+ break;
276
+ }
277
+ }
278
+
279
+ return object === undefined ? value : object;
280
+ }
281
+
282
+ export { getProperty as g };