edge-functions 7.2.0-stage.1 → 7.2.0-stage.3

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.
@@ -1,29 +1,30 @@
1
- import { fetchContext as Fe, FirewallEventContext as Ae, FetchEventContext as _e, AsyncHooksContext as Oe, StorageContext as je, EnvVarsContext as Re, NetworkListContext as Ne, fsContext as Ue, streamContext as Ie, cryptoContext as We, promisesContext as De, KVContext as Be } from "azion/bundler/polyfills";
2
- import { load as Me } from "@edge-runtime/primitives/dist/load.js";
3
- import { pathToFileURL as Le } from "url";
4
- import { S as ae, B as j, D as A, d as m, a as F, m as He, e as Ve, c as ze, b as _, r as ee, w as X, f as we, g as Ge, h as ye } from "./utils-CBdIcH7l.js";
1
+ import { fetchContext as Ae, FirewallEventContext as _e, FetchEventContext as Oe, AsyncHooksContext as je, StorageContext as Re, EnvVarsContext as Ue, NetworkListContext as Ne, fsContext as Ie, streamContext as Be, cryptoContext as De, promisesContext as We, KVContext as Me } from "azion/bundler/polyfills";
2
+ import { load as Le } from "@edge-runtime/primitives/dist/load.js";
3
+ import { pathToFileURL as He } from "url";
4
+ import { S as ce, B as A, D as _, d as g, a as F, m as Ve, e as ze, c as Ge, b as O, r as re, w as Z, f as ye, g as qe, h as be } from "./utils-CBdIcH7l.js";
5
5
  import * as k from "azion/utils/node";
6
- import { getPackageManager as qe, feedback as g } from "azion/utils/node";
7
- import Ke from "chokidar";
8
- import v, { resolve as re, join as C, basename as Z, extname as V, dirname as be, relative as Je } from "path";
9
- import h, { rm as te, mkdir as Ee, readFile as Xe, stat as Ze, writeFile as Ye } from "fs/promises";
10
- import { validateConfig as Y, processConfig as Qe, convertJsonConfigToObject as er } from "azion/config";
6
+ import { getPackageManager as Ke, feedback as d } from "azion/utils/node";
7
+ import Je from "chokidar";
8
+ import v, { resolve as te, join as C, basename as Y, extname as V, dirname as Ee, relative as Xe } from "path";
9
+ import m, { rm as ne, mkdir as ve, readFile as Ze, stat as Ye, writeFile as Qe } from "fs/promises";
10
+ import { validateConfig as Q, processConfig as er, convertJsonConfigToObject as rr } from "azion/config";
11
11
  import * as z from "azion/presets";
12
- import ce, { promises as B } from "fs";
13
- import { listFrameworks as rr } from "@netlify/framework-info";
14
- import { createAzionWebpackConfig as tr, executeWebpackBuild as nr, executeESBuildBuild as sr, createAzionESBuildConfig as ir } from "azion/bundler";
15
- import or from "lodash";
16
- import { runInContext as ne } from "vm";
17
- import N from "node:vm";
18
- import ar from "net";
19
- import { runServer as cr } from "edge-runtime";
20
- import * as ve from "prettier";
21
- import { cosmiconfig as lr } from "cosmiconfig";
22
- import { TypeScriptLoader as G } from "cosmiconfig-typescript-loader";
23
- class fr {
12
+ import le, { promises as W } from "fs";
13
+ import { listFrameworks as tr } from "@netlify/framework-info";
14
+ import { createAzionWebpackConfig as nr, executeWebpackBuild as sr, executeESBuildBuild as ir, createAzionESBuildConfig as or } from "azion/bundler";
15
+ import G from "os";
16
+ import ar from "lodash";
17
+ import { runInContext as se } from "vm";
18
+ import U from "node:vm";
19
+ import cr from "net";
20
+ import { runServer as lr } from "edge-runtime";
21
+ import * as Se from "prettier";
22
+ import { cosmiconfig as fr } from "cosmiconfig";
23
+ import { TypeScriptLoader as q } from "cosmiconfig-typescript-loader";
24
+ class ur {
24
25
  context;
25
26
  constructor(r = {}) {
26
- const t = N.createContext(
27
+ const t = U.createContext(
27
28
  {},
28
29
  {
29
30
  name: "Edge Runtime",
@@ -40,17 +41,17 @@ class fr {
40
41
  */
41
42
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
43
  evaluate(r) {
43
- return N.runInContext(r, this.context, {
44
+ return U.runInContext(r, this.context, {
44
45
  importModuleDynamically: async (t) => {
45
46
  try {
46
- return await import(Le(re(t)).href);
47
+ return await import(He(te(t)).href);
47
48
  } catch {
48
49
  process.env.DEBUG && console.warn(
49
50
  ">>> [edge-runtime] dynamic import failed, returning empty module:",
50
51
  t
51
52
  );
52
- const s = new N.SourceTextModule("export default {}", { context: this.context });
53
- return await s.link(() => new N.SourceTextModule("export {}", { context: this.context })), await s.evaluate(), s;
53
+ const s = new U.SourceTextModule("export default {}", { context: this.context });
54
+ return await s.link(() => new U.SourceTextModule("export {}", { context: this.context })), await s.evaluate(), s;
54
55
  }
55
56
  }
56
57
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -58,14 +59,14 @@ class fr {
58
59
  }
59
60
  }
60
61
  let M, L;
61
- class ur extends fr {
62
+ class dr extends ur {
62
63
  dispatchFetch;
63
64
  constructor(r) {
64
65
  super({
65
66
  ...r,
66
- extend: (t) => r?.extend ? r.extend(le(t)) : le(t)
67
+ extend: (t) => r?.extend ? r.extend(fe(t)) : fe(t)
67
68
  }), Object.defineProperty(this.context, "__onUnhandledRejectionHandlers", {
68
- set: pr,
69
+ set: hr,
69
70
  configurable: !1,
70
71
  enumerable: !1
71
72
  }), Object.defineProperty(this, "__rejectionHandlers", {
@@ -73,20 +74,20 @@ class ur extends fr {
73
74
  configurable: !1,
74
75
  enumerable: !1
75
76
  }), Object.defineProperty(this.context, "__onErrorHandlers", {
76
- set: hr,
77
+ set: mr,
77
78
  configurable: !1,
78
79
  enumerable: !1
79
80
  }), Object.defineProperty(this, "__errorHandlers", {
80
81
  get: () => L,
81
82
  configurable: !1,
82
83
  enumerable: !1
83
- }), this.evaluate(gr()), this.dispatchFetch = this.evaluate(mr());
84
- for (const t of Se)
85
- dr(t, this.context);
84
+ }), this.evaluate(gr()), this.dispatchFetch = this.evaluate(wr());
85
+ for (const t of Te)
86
+ pr(t, this.context);
86
87
  r?.initialCode && this.evaluate(r.initialCode);
87
88
  }
88
89
  }
89
- const Se = [
90
+ const Te = [
90
91
  "Object",
91
92
  "Array",
92
93
  "RegExp",
@@ -96,9 +97,9 @@ const Se = [
96
97
  "SyntaxError",
97
98
  "TypeError"
98
99
  ];
99
- function dr(e, r) {
100
+ function pr(e, r) {
100
101
  const t = eval;
101
- return r[/* @__PURE__ */ Symbol.for(`node:${e}`)] = t(e), ne(
102
+ return r[/* @__PURE__ */ Symbol.for(`node:${e}`)] = t(e), se(
102
103
  `
103
104
  globalThis.${e} = new Proxy(${e}, {
104
105
  get(target, prop, receiver) {
@@ -120,12 +121,12 @@ function dr(e, r) {
120
121
  r
121
122
  );
122
123
  }
123
- function pr(e) {
124
+ function hr(e) {
124
125
  M || process.on("unhandledRejection", function(t, n) {
125
126
  M.forEach((s) => s({ reason: t, promise: n }));
126
127
  }), M = e;
127
128
  }
128
- function hr(e) {
129
+ function mr(e) {
129
130
  L || process.on("uncaughtException", function(t) {
130
131
  L.forEach((n) => n(t));
131
132
  }), L = e;
@@ -173,7 +174,7 @@ function gr() {
173
174
  }
174
175
  `;
175
176
  }
176
- function mr() {
177
+ function wr() {
177
178
  return `(async function dispatchFetch(input, init) {
178
179
  const request = new Request(input, init);
179
180
  const event = new FetchEvent(request);
@@ -212,13 +213,13 @@ function mr() {
212
213
  .catch(error => getResponse({ error }))
213
214
  })`;
214
215
  }
215
- function le(e) {
216
+ function fe(e) {
216
217
  x(e, "self", { enumerable: !0, value: e }), x(e, "globalThis", { value: e }), x(e, "Symbol", { value: Symbol }), x(e, "clearInterval", { value: clearInterval }), x(e, "clearTimeout", { value: clearTimeout }), x(e, "queueMicrotask", { value: queueMicrotask }), x(e, "EdgeRuntime", { value: "edge-runtime" });
217
- const r = yr(e);
218
- return wr(e, {
219
- exports: Me({
218
+ const r = br(e);
219
+ return yr(e, {
220
+ exports: Le({
220
221
  ...r,
221
- WeakRef: ne("WeakRef", e)
222
+ WeakRef: se("WeakRef", e)
222
223
  }),
223
224
  enumerable: ["crypto"],
224
225
  nonenumerable: [
@@ -281,7 +282,7 @@ function x(e, r, t) {
281
282
  writable: t.writable ?? !0
282
283
  });
283
284
  }
284
- function wr(e, r) {
285
+ function yr(e, r) {
285
286
  for (const t of r.enumerable ?? []) {
286
287
  if (!r.exports[t])
287
288
  throw new Error(`Attempt to export a nullable value for "${t}"`);
@@ -298,12 +299,12 @@ function wr(e, r) {
298
299
  });
299
300
  }
300
301
  }
301
- function yr(e) {
302
- const t = `({${Se.join(",")}})`;
303
- return ne(t, e);
302
+ function br(e) {
303
+ const t = `({${Te.join(",")}})`;
304
+ return se(t, e);
304
305
  }
305
- function Te(e, r = !1) {
306
- const t = (s) => (s.RESERVED_FETCH = s.fetch.bind(s), s.fetch = async (i, o) => Fe(
306
+ function $e(e, r = !1) {
307
+ const t = (s) => (s.RESERVED_FETCH = s.fetch.bind(s), s.fetch = async (i, o) => Ae(
307
308
  s,
308
309
  i,
309
310
  o,
@@ -311,50 +312,50 @@ function Te(e, r = !1) {
311
312
  globalThis?.AZION_BUCKET_NAME,
312
313
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
313
314
  globalThis?.AZION_BUCKET_PREFIX
314
- ), s.FetchEvent = r ? Ae : _e, s.Response = r ? Response : s.Response, s.eval = eval, s.process = { env: process.env }, s.File = void 0, s.WebSocket = void 0, s.ASYNC_LOCAL_STORAGE = Oe, s.STORAGE_CONTEXT = je, s.ENV_VARS_CONTEXT = Re, s.NETWORK_LIST_CONTEXT = Ne, s.FS_CONTEXT = Ue, s.STREAM_CONTEXT = Ie, s.CRYPTO_CONTEXT = We, s.TextDecoderStream = TextDecoderStream, s.TextEncoderStream = TextEncoderStream, s.perfomance = { now: performance.now }, s.CompressionStream = CompressionStream, s.CountQueuingStrategy = CountQueuingStrategy, s.DecompressionStream = DecompressionStream, s.Promise = Promise, s.Promise.withResolvers = De, s.KV_CONTEXT = Be, s);
315
- return new ur({ extend: t, initialCode: e, codeGeneration: { strings: !0 } });
315
+ ), s.FetchEvent = r ? _e : Oe, s.Response = r ? Response : s.Response, s.eval = eval, s.process = { env: process.env }, s.File = void 0, s.WebSocket = void 0, s.ASYNC_LOCAL_STORAGE = je, s.STORAGE_CONTEXT = Re, s.ENV_VARS_CONTEXT = Ue, s.NETWORK_LIST_CONTEXT = Ne, s.FS_CONTEXT = Ie, s.STREAM_CONTEXT = Be, s.CRYPTO_CONTEXT = De, s.TextDecoderStream = TextDecoderStream, s.TextEncoderStream = TextEncoderStream, s.perfomance = { now: performance.now }, s.CompressionStream = CompressionStream, s.CountQueuingStrategy = CountQueuingStrategy, s.DecompressionStream = DecompressionStream, s.Promise = Promise, s.Promise.withResolvers = We, s.KV_CONTEXT = Me, s);
316
+ return new dr({ extend: t, initialCode: e, codeGeneration: { strings: !0 } });
316
317
  }
317
- class $e extends Error {
318
+ class Pe extends Error {
318
319
  constructor(r, t) {
319
320
  super(r), this.code = t, this.name = "PackageJsonError";
320
321
  }
321
322
  }
322
- class br extends Error {
323
+ class Er extends Error {
323
324
  constructor(r) {
324
325
  super(`Please install dependencies using ${r}`), this.name = "DependenciesError";
325
326
  }
326
327
  }
327
- const Er = async () => {
328
+ const vr = async () => {
328
329
  const e = C(process.cwd(), "package.json");
329
330
  try {
330
- const r = await Xe(e, "utf8");
331
+ const r = await Ze(e, "utf8");
331
332
  return JSON.parse(r);
332
333
  } catch (r) {
333
- throw new $e("Failed to read package.json", r.code);
334
+ throw new Pe("Failed to read package.json", r.code);
334
335
  }
335
- }, vr = async () => {
336
+ }, Sr = async () => {
336
337
  const e = C(process.cwd(), "node_modules");
337
338
  try {
338
- return (await Ze(e)).isDirectory();
339
+ return (await Ye(e)).isDirectory();
339
340
  } catch {
340
341
  return !1;
341
342
  }
342
- }, Sr = async () => {
343
+ }, Tr = async () => {
343
344
  let e;
344
345
  try {
345
- e = await Er();
346
+ e = await vr();
346
347
  } catch (r) {
347
- if (r instanceof $e && r.code === "ENOENT")
348
+ if (r instanceof Pe && r.code === "ENOENT")
348
349
  return;
349
350
  throw r;
350
351
  }
351
352
  if (e && (e.dependencies || e.devDependencies)) {
352
- const r = await qe();
353
- if (!await vr())
354
- throw new br(r);
353
+ const r = await Ke();
354
+ if (!await Sr())
355
+ throw new Er(r);
355
356
  }
356
357
  };
357
- function U({
358
+ function N({
358
359
  inputValue: e,
359
360
  fileValue: r,
360
361
  storeValue: t,
@@ -362,56 +363,56 @@ function U({
362
363
  }) {
363
364
  return ((o) => o === "true" ? !0 : o === "false" ? !1 : o)(e ?? r ?? t ?? n);
364
365
  }
365
- const Tr = async (e) => {
366
+ const $r = async (e) => {
366
367
  try {
367
368
  await Promise.all(
368
369
  e.map(async (r) => {
369
370
  try {
370
- await te(r, { recursive: !0, force: !0 });
371
+ await ne(r, { recursive: !0, force: !0 });
371
372
  } catch (t) {
372
373
  if (t.code !== "ENOENT")
373
374
  throw t;
374
375
  }
375
- await Ee(r, { recursive: !0 });
376
+ await ve(r, { recursive: !0 });
376
377
  })
377
378
  );
378
379
  } catch (r) {
379
380
  throw new Error(`Failed to clean directories: ${r}`);
380
381
  }
381
- }, $r = () => (/* @__PURE__ */ new Date()).toISOString().slice(0, 10).replace(/-/g, ""), Pr = async ({
382
+ }, Pr = () => (/* @__PURE__ */ new Date()).toISOString().slice(0, 10).replace(/-/g, ""), xr = async ({
382
383
  entry: e,
383
384
  ext: r = "js",
384
385
  basePath: t = ".edge/functions",
385
386
  production: n = !0,
386
387
  bundler: s
387
388
  }) => {
388
- const i = $r(), o = (a, c) => {
389
- const l = Z(a, V(a)), f = be(a), d = `azion-${l}-${i}.temp.${r}`, p = re(f, d), b = s === "webpack" ? ".js" : "", u = n ? "" : ".dev";
389
+ const i = Pr(), o = (a, c) => {
390
+ const l = Y(a, V(a)), f = Ee(a), p = `azion-${l}-${i}.temp.${r}`, h = te(f, p), b = s === "webpack" ? ".js" : "", u = n ? "" : ".dev";
390
391
  let w;
391
392
  if (c) {
392
393
  const T = c.replace(/\.[^/.]+$/, "");
393
394
  w = C(t, `${T}${u}${b}`);
394
395
  } else
395
396
  w = C(t, f, `${l}${u}${b}`);
396
- return { [w]: p };
397
+ return { [w]: h };
397
398
  };
398
399
  if (typeof e == "string") {
399
- const c = `${Z(e, V(e))}${n ? "" : ".dev"}`;
400
+ const c = `${Y(e, V(e))}${n ? "" : ".dev"}`;
400
401
  return { ...o(e, c) };
401
402
  }
402
403
  return Array.isArray(e) ? e.reduce((a, c) => ({ ...a, ...o(c) }), {}) : Object.entries(e).reduce(
403
404
  (a, [c, l]) => ({ ...a, ...o(l, c) }),
404
405
  {}
405
406
  );
406
- }, xr = async (e, r, t) => {
407
+ }, kr = async (e, r, t) => {
407
408
  let n = {};
408
- const s = e.build?.entry, i = async (o) => await Pr({
409
+ const s = e.build?.entry, i = async (o) => await xr({
409
410
  entry: o,
410
- ext: r.metadata.ext ?? j.DEFAULT_OUTPUT_EXTENSION,
411
+ ext: r.metadata.ext ?? A.DEFAULT_OUTPUT_EXTENSION,
411
412
  production: t,
412
- bundler: e.build?.bundler ?? r.config.build?.bundler ?? ae.DEFAULT
413
+ bundler: e.build?.bundler ?? r.config.build?.bundler ?? ce.DEFAULT
413
414
  });
414
- if (s ? n = await i(s) : r.config.build?.entry ? n = await i(r.config.build.entry) : r.handler && (n = await i(j.DEFAULT_HANDLER_FILENAME)), Object.keys(n).length === 0) {
415
+ if (s ? n = await i(s) : r.config.build?.entry ? n = await i(r.config.build.entry) : r.handler && (n = await i(A.DEFAULT_HANDLER_FILENAME)), Object.keys(n).length === 0) {
415
416
  const o = r.config.build?.entry ? `(default is "${r.config.build.entry}")` : "";
416
417
  throw new Error(
417
418
  `No entry point found ${o}. Please specify one using --entry or create a default entry file in your project.`
@@ -420,7 +421,7 @@ const Tr = async (e) => {
420
421
  return {
421
422
  ...e.build,
422
423
  entry: n,
423
- bundler: e.build?.bundler ?? r.config.build?.bundler ?? ae.DEFAULT,
424
+ bundler: e.build?.bundler ?? r.config.build?.bundler ?? ce.DEFAULT,
424
425
  preset: r,
425
426
  setup: {
426
427
  contentToInject: void 0,
@@ -428,12 +429,12 @@ const Tr = async (e) => {
428
429
  },
429
430
  polyfills: !!e.build?.polyfills
430
431
  };
431
- }, kr = ({ projectDir: e = process.cwd() }) => rr({
432
+ }, Cr = ({ projectDir: e = process.cwd() }) => tr({
432
433
  projectDir: e
433
- }), Cr = { listFrameworks: kr };
434
- async function Fr() {
434
+ }), Fr = { listFrameworks: Cr };
435
+ async function Ar() {
435
436
  try {
436
- const e = await Cr.listFrameworks({
437
+ const e = await Fr.listFrameworks({
437
438
  projectDir: process.cwd()
438
439
  });
439
440
  if (e[0]?.id && Object.values(z).some(
@@ -441,49 +442,49 @@ async function Fr() {
441
442
  ))
442
443
  return e[0].id;
443
444
  const r = C(process.cwd(), "tsconfig.json");
444
- return ce.existsSync(r) || ce.readdirSync(process.cwd()).some((i) => [".ts", ".tsx"].includes(V(i))) ? "typescript" : "javascript";
445
+ return le.existsSync(r) || le.readdirSync(process.cwd()).some((i) => [".ts", ".tsx"].includes(V(i))) ? "typescript" : "javascript";
445
446
  } catch {
446
447
  return "javascript";
447
448
  }
448
449
  }
449
- const Ar = { inferPreset: Fr }, _r = (e) => Object.values(z).find((r) => r.metadata?.name === e), Or = async (e) => {
450
+ const _r = { inferPreset: Ar }, Or = (e) => Object.values(z).find((r) => r.metadata?.name === e), jr = async (e) => {
450
451
  if (e) {
451
452
  const r = typeof e == "string" ? e : e.metadata?.name;
452
453
  k.feedback.build.info(`Using preset: ${r}`);
453
454
  }
454
- if (e || (k.feedback.build.info("No preset specified, using automatic detection..."), e = await Ar.inferPreset(), k.feedback.build.info(`Detected preset: ${e}`)), typeof e == "string") {
455
- const r = _r(e);
455
+ if (e || (k.feedback.build.info("No preset specified, using automatic detection..."), e = await _r.inferPreset(), k.feedback.build.info(`Detected preset: ${e}`)), typeof e == "string") {
456
+ const r = Or(e);
456
457
  if (!r)
457
458
  throw new Error(`Invalid build preset name: '${e}'`);
458
459
  return r;
459
460
  }
460
461
  return e;
461
- }, jr = async ({
462
+ }, Rr = async ({
462
463
  namespace: e,
463
464
  property: r,
464
465
  dirs: t
465
466
  }) => {
466
467
  const n = {}, s = async (i) => {
467
468
  for (const o of i) {
468
- const a = await h.readdir(o);
469
+ const a = await m.readdir(o);
469
470
  for (const c of a) {
470
- const l = C(o, c), f = await h.stat(l);
471
+ const l = C(o, c), f = await m.stat(l);
471
472
  if (f.isDirectory())
472
473
  await s([l]);
473
474
  else if (f.isFile()) {
474
- const d = await h.readFile(l);
475
- let p = l;
476
- l.startsWith("/") || (p = `/${l}`), n[p] = { content: d.toString("base64") };
475
+ const p = await m.readFile(l);
476
+ let h = l;
477
+ l.startsWith("/") || (h = `/${l}`), n[h] = { content: p.toString("base64") };
477
478
  }
478
479
  }
479
480
  }
480
481
  };
481
482
  return await s(t), `globalThis.${e}.${r}=${JSON.stringify(n)};`;
482
- }, Rr = async ({ dirs: e, prefix: r, outputPath: t }) => {
483
+ }, Ur = async ({ dirs: e, prefix: r, outputPath: t }) => {
483
484
  await Promise.all(
484
485
  e.map(async (n) => {
485
486
  const s = r ? n.replace(r, "") : n, i = C(t, s);
486
- await h.access(i).then(() => !0).catch(() => !1) || await h.mkdir(i, { recursive: !0 }), await h.cp(n, i, { recursive: !0 });
487
+ await m.access(i).then(() => !0).catch(() => !1) || await m.mkdir(i, { recursive: !0 }), await m.cp(n, i, { recursive: !0 });
487
488
  })
488
489
  );
489
490
  }, Nr = ({ namespace: e, property: r, vars: t }) => Object.entries(t).reduce(
@@ -492,16 +493,16 @@ const Ar = { inferPreset: Fr }, _r = (e) => Object.values(z).find((r) => r.metad
492
493
  return `${n} globalThis.${o}.${s}=${i};`;
493
494
  },
494
495
  r ? `globalThis.${e}.${r}={};` : `globalThis.${e}={};`
495
- ), Ur = async ({
496
+ ), Ir = async ({
496
497
  namespace: e,
497
498
  property: r,
498
499
  prefix: t
499
500
  }) => `globalThis.${e} = { ...globalThis.${e}, ${r}: '${t && typeof t == "string" && t !== "" ? t : '""'}'};`, I = {
500
- injectWorkerMemoryFiles: jr,
501
- copyFilesToLocalEdgeStorage: Rr,
501
+ injectWorkerMemoryFiles: Rr,
502
+ copyFilesToLocalEdgeStorage: Ur,
502
503
  injectWorkerGlobals: Nr,
503
- injectWorkerPathPrefix: Ur
504
- }, Ir = {
504
+ injectWorkerPathPrefix: Ir
505
+ }, Br = {
505
506
  filesToInject: [],
506
507
  injection: {
507
508
  globals: {}
@@ -510,12 +511,12 @@ const Ar = { inferPreset: Fr }, _r = (e) => Object.values(z).find((r) => r.metad
510
511
  defineVars: {},
511
512
  plugins: []
512
513
  }
513
- }, Wr = async ({
514
+ }, Dr = async ({
514
515
  buildConfig: e,
515
516
  ctx: r
516
517
  }) => {
517
- const t = await e.preset.prebuild?.(e, r) || Ir, n = I.injectWorkerGlobals({
518
- namespace: j.NAMESPACE,
518
+ const t = await e.preset.prebuild?.(e, r) || Br, n = I.injectWorkerGlobals({
519
+ namespace: A.NAMESPACE,
519
520
  // Transform globals object:
520
521
  // 1. Convert object to entries
521
522
  // 2. Remove any entries with undefined values
@@ -524,17 +525,17 @@ const Ar = { inferPreset: Fr }, _r = (e) => Object.values(z).find((r) => r.metad
524
525
  Object.entries(t.injection?.globals || {}).filter(([a, c]) => c !== void 0).map(([a, c]) => [a, c])
525
526
  )
526
527
  }), s = await I.injectWorkerMemoryFiles({
527
- namespace: j.NAMESPACE,
528
+ namespace: A.NAMESPACE,
528
529
  property: "__FILES__",
529
530
  dirs: e.memoryFS?.injectionDirs || []
530
531
  });
531
532
  e.memoryFS && I.copyFilesToLocalEdgeStorage({
532
533
  dirs: e.memoryFS?.injectionDirs,
533
534
  prefix: e.memoryFS?.removePathPrefix,
534
- outputPath: A.OUTPUT_STORAGE_PATH
535
+ outputPath: _.OUTPUT_STORAGE_PATH
535
536
  });
536
537
  const i = await I.injectWorkerPathPrefix({
537
- namespace: j.NAMESPACE,
538
+ namespace: A.NAMESPACE,
538
539
  property: "FS_PATH_PREFIX_TO_REMOVE",
539
540
  prefix: e.memoryFS?.removePathPrefix || ""
540
541
  }), o = `${n}${i}
@@ -551,12 +552,12 @@ ${s}`;
551
552
  plugins: t.bundler?.plugins || []
552
553
  }
553
554
  };
554
- }, Dr = (e, r) => ir(e, r), Br = (e, r) => tr(e, r), Mr = async (e) => sr(e), Lr = async (e) => nr(e), W = {
555
- createAzionESBuildConfigWrapper: Dr,
556
- createAzionWebpackConfigWrapper: Br,
557
- executeESBuildBuildWrapper: Mr,
558
- executeWebpackBuildWrapper: Lr
559
- }, Hr = (e) => {
555
+ }, Wr = (e, r) => or(e, r), Mr = (e, r) => nr(e, r), Lr = async (e) => ir(e), Hr = async (e) => sr(e), B = {
556
+ createAzionESBuildConfigWrapper: Wr,
557
+ createAzionWebpackConfigWrapper: Mr,
558
+ executeESBuildBuildWrapper: Lr,
559
+ executeWebpackBuildWrapper: Hr
560
+ }, Vr = (e) => {
560
561
  const r = /import\s+.*?from\s*['"](.*?)['"];?/g, t = /(const\s+.*?=\s*require\(.*\).*);/g, n = (e.match(r) || []).map((o) => o.trim()), s = (e.match(t) || []).map((o) => o.trim());
561
562
  let i = e.replace(r, "").replace(t, "").replace(/\n\s*\n\s*\n/g, `
562
563
 
@@ -565,8 +566,8 @@ ${s}`;
565
566
  `)}
566
567
 
567
568
  ${i.trim()}`), i;
568
- }, Vr = (e, r, t) => r.polyfills && t.production ? `import SRC_NODE_FS from "node:fs";
569
- ${e}` : e, zr = async ({
569
+ }, zr = (e, r, t) => r.polyfills && t.production ? `import SRC_NODE_FS from "node:fs";
570
+ ${e}` : e, Gr = async ({
570
571
  buildConfig: e,
571
572
  prebuildResult: r,
572
573
  ctx: t
@@ -575,12 +576,12 @@ ${e}` : e, zr = async ({
575
576
  const n = typeof e.entry == "string" ? [e.entry] : Array.isArray(e.entry) ? e.entry : Object.values(e.entry);
576
577
  if (r.filesToInject.length > 0) {
577
578
  const i = await Promise.all(
578
- r.filesToInject.map((o) => h.readFile(o, "utf-8"))
579
+ r.filesToInject.map((o) => m.readFile(o, "utf-8"))
579
580
  ).then((o) => o.join(" "));
580
581
  await Promise.all(
581
582
  n.map(async (o) => {
582
- const a = await h.readFile(o, "utf-8"), c = `${i} ${a}`, l = Hr(c);
583
- return h.writeFile(o, l);
583
+ const a = await m.readFile(o, "utf-8"), c = `${i} ${a}`, l = Vr(c);
584
+ return m.writeFile(o, l);
584
585
  })
585
586
  );
586
587
  }
@@ -594,51 +595,64 @@ ${e}` : e, zr = async ({
594
595
  )
595
596
  }
596
597
  };
597
- return await Gr(s, t), Promise.all(
598
+ return await qr(s, t), Promise.all(
598
599
  Object.entries(s.entry).map(async ([i]) => {
599
- const o = i.endsWith(".js") ? i : `${i}.js`, a = await h.readFile(o, "utf-8");
600
+ const o = i.endsWith(".js") ? i : `${i}.js`, a = await m.readFile(o, "utf-8");
600
601
  if (!t.production) return a;
601
- const c = Vr(
602
+ const c = zr(
602
603
  a,
603
604
  e,
604
605
  t
605
606
  );
606
- return await h.writeFile(o, c), c;
607
+ return await m.writeFile(o, c), c;
607
608
  })
608
609
  );
609
610
  } catch (n) {
610
611
  return Promise.reject(n);
611
612
  }
612
- }, Gr = async (e, r) => {
613
+ }, qr = async (e, r) => {
613
614
  switch (e.bundler) {
614
615
  case "esbuild": {
615
- const t = W.createAzionESBuildConfigWrapper(e, r);
616
- return W.executeESBuildBuildWrapper(t);
616
+ A.IS_DEBUG && (d.build.info("=== System Info ==="), d.build.info("CPUs:", G.cpus().length), d.build.info("Total Memory:", G.totalmem() / 1024 / 1024, "MB"), d.build.info("Free Memory:", G.freemem() / 1024 / 1024, "MB"));
617
+ const t = B.createAzionESBuildConfigWrapper(e, r);
618
+ let n, s;
619
+ A.IS_DEBUG && (d.build.info("=== Build Test ==="), n = Date.now(), s = process.memoryUsage());
620
+ const i = await B.executeESBuildBuildWrapper(t);
621
+ if (A.IS_DEBUG) {
622
+ const o = Date.now() - n, a = process.memoryUsage();
623
+ d.build.info("=== Results ==="), d.build.info("Duration:", o, "ms");
624
+ const c = {
625
+ heapUsed: `${(a.heapUsed - s.heapUsed) / 1024 / 1024} MB`,
626
+ rss: `${(a.rss - s.rss) / 1024 / 1024} MB`
627
+ };
628
+ d.build.info("Memory heapUsed:", c.heapUsed), d.build.info("Memory rss:", c.rss);
629
+ }
630
+ return i;
617
631
  }
618
632
  case "webpack": {
619
- const t = W.createAzionWebpackConfigWrapper(e, r);
620
- return W.executeWebpackBuildWrapper(t);
633
+ const t = B.createAzionWebpackConfigWrapper(e, r);
634
+ return B.executeWebpackBuildWrapper(t);
621
635
  }
622
636
  default:
623
637
  throw new Error(`Unsupported bundler: ${e.bundler}`);
624
638
  }
625
- }, qr = async ({ buildConfig: e, ctx: r }) => {
639
+ }, Kr = async ({ buildConfig: e, ctx: r }) => {
626
640
  const { postbuild: t } = e.preset;
627
641
  t && await t(e, { ...r });
628
- }, Kr = (e, r) => {
642
+ }, Jr = (e, r) => {
629
643
  const t = (n, s) => {
630
644
  if (n && !n.build || Array.isArray(n) && !Array.isArray(s))
631
645
  return s;
632
646
  };
633
- return or.mergeWith({}, e, r, t);
634
- }, Jr = { mergeConfigWithUserOverrides: Kr }, fe = async ({
647
+ return ar.mergeWith({}, e, r, t);
648
+ }, Xr = { mergeConfigWithUserOverrides: Jr }, ue = async ({
635
649
  config: e,
636
650
  preset: r
637
651
  }) => {
638
652
  try {
639
653
  const { config: t } = r;
640
654
  e.firewall && (delete t.applications, delete t.workloads, delete t.connectors, delete t.functions);
641
- const n = Jr.mergeConfigWithUserOverrides(
655
+ const n = Xr.mergeConfigWithUserOverrides(
642
656
  t,
643
657
  e
644
658
  );
@@ -648,18 +662,18 @@ ${e}` : e, zr = async ({
648
662
  ...!r.handler && e.build?.entry && {
649
663
  entry: e.build?.entry
650
664
  }
651
- }), await he.readAzionConfig() || await he.writeUserConfig(n), n;
665
+ }), await me.readAzionConfig() || await me.writeUserConfig(n), n;
652
666
  } catch (t) {
653
667
  throw new Error(`Failed to set environment: ${t.message}`);
654
668
  }
655
- }, q = {
669
+ }, K = {
656
670
  LEGACY_DEPRECATION: "DEPRECATED: Migrate handler to → export default { fetch: (request, env, ctx) => {...} }",
657
671
  UNSUPPORTED_PATTERN_DETECTED: "Unsupported handler pattern detected. Generating Service Worker wrapper as fallback.",
658
672
  UNSUPPORTED_PATTERN_SUGGESTIONS: "Consider updating your handler to use ES Modules pattern."
659
673
  }, D = `
660
674
  const request = event.request;
661
675
  const env = {};
662
- const ctx = { waitUntil: event.waitUntil?.bind(event) };`, K = {
676
+ const ctx = { waitUntil: event.waitUntil?.bind(event) };`, J = {
663
677
  baseImport: (e) => `
664
678
  import module from '${e}';
665
679
 
@@ -700,14 +714,14 @@ if (fetchHandler) {
700
714
  } else {
701
715
  throw new Error("No fetch handler found in default export object.");
702
716
  }`
703
- }, Pe = (e) => {
717
+ }, xe = (e) => {
704
718
  const r = e.split(`
705
719
  `), t = /addEventListener\s*\(\s*['"`](fetch|firewall)['"`]\s*,/;
706
720
  return r.some((n) => {
707
721
  const s = n.trim();
708
722
  return s.startsWith("//") || s.startsWith("/*") ? !1 : t.test(n);
709
723
  });
710
- }, Xr = async (e) => {
724
+ }, Zr = async (e) => {
711
725
  try {
712
726
  const r = await import(e), t = r.default || r;
713
727
  return {
@@ -720,18 +734,18 @@ if (fetchHandler) {
720
734
  hasFetch: !0
721
735
  };
722
736
  }
723
- }, Zr = async (e, r) => {
724
- const { hasFirewall: t, hasFetch: n } = await Xr(e);
737
+ }, Yr = async (e, r) => {
738
+ const { hasFirewall: t, hasFetch: n } = await Zr(e);
725
739
  if (!t && !n)
726
740
  return `// No fetch or firewall handlers found in: ${e}
727
741
  // The original file will be used as-is in production mode.
728
742
  // Consider adding: export default { fetch: (request, env, ctx) => { ... } }
729
743
 
730
744
  console.warn('No Edge Function handlers found. File will run as-is.');`;
731
- const s = [K.baseImport(e)];
732
- return t && s.push(K.firewallHandler), n && s.push(K.fetchHandler(r)), s.join(`
745
+ const s = [J.baseImport(e)];
746
+ return t && s.push(J.firewallHandler), n && s.push(J.fetchHandler(r)), s.join(`
733
747
  `);
734
- }, Yr = (e) => `
748
+ }, Qr = (e) => `
735
749
  import handler from '${e}';
736
750
 
737
751
  // Legacy pattern wrapper: export default function → addEventListener
@@ -740,36 +754,36 @@ addEventListener('fetch', (event) => {
740
754
  return await handler(event);
741
755
  })());
742
756
  });
743
- `, se = (e) => /export\s+default\s*\{[\s\S]*fetch[\s\S]*\}/.test(e), xe = (e) => !(!/export\s+default\s+/.test(e) || se(e)), Qr = async (e) => {
757
+ `, ie = (e) => /export\s+default\s*\{[\s\S]*fetch[\s\S]*\}/.test(e), ke = (e) => !(!/export\s+default\s+/.test(e) || ie(e)), et = async (e) => {
744
758
  try {
745
759
  const r = await import(e);
746
760
  return typeof r.default > "u" && !r.fetch && !r.firewall ? "serviceWorker" : r.default && typeof r.default == "object" && (r.default.fetch || r.default.firewall) ? "ESModules" : r.default ? "legacy" : "unsupported";
747
761
  } catch {
748
762
  const n = await (await import("fs/promises")).readFile(e, "utf-8");
749
- return Pe(n) ? "serviceWorker" : se(n) ? "ESModules" : xe(n) ? "legacy" : "unsupported";
763
+ return xe(n) ? "serviceWorker" : ie(n) ? "ESModules" : ke(n) ? "legacy" : "unsupported";
750
764
  }
751
- }, et = (e) => typeof e == "string" ? [e] : Array.isArray(e) ? e : Object.values(e), rt = (e) => Pe(e) ? "serviceWorker" : se(e) ? "ESModules" : xe(e) ? "legacy" : "unsupported", tt = async (e, r, t) => {
765
+ }, rt = (e) => typeof e == "string" ? [e] : Array.isArray(e) ? e : Object.values(e), tt = (e) => xe(e) ? "serviceWorker" : ie(e) ? "ESModules" : ke(e) ? "legacy" : "unsupported", nt = async (e, r, t) => {
752
766
  let n;
753
767
  try {
754
- n = await Qr(r);
768
+ n = await et(r);
755
769
  } catch {
756
- n = rt(e);
770
+ n = tt(e);
757
771
  }
758
772
  switch (n) {
759
773
  case "serviceWorker":
760
774
  return e;
761
775
  case "ESModules":
762
- return await Zr(r, t);
776
+ return await Yr(r, t);
763
777
  case "legacy":
764
- return g.build.warn(q.LEGACY_DEPRECATION), Yr(r);
778
+ return d.build.warn(K.LEGACY_DEPRECATION), Qr(r);
765
779
  default:
766
- return g.build.warn(q.UNSUPPORTED_PATTERN_DETECTED), g.build.info(q.UNSUPPORTED_PATTERN_SUGGESTIONS), e;
780
+ return d.build.warn(K.UNSUPPORTED_PATTERN_DETECTED), d.build.info(K.UNSUPPORTED_PATTERN_SUGGESTIONS), e;
767
781
  }
768
- }, nt = async (e, r) => {
782
+ }, st = async (e, r) => {
769
783
  try {
770
- const t = et(r.handler), n = e.entry || {}, s = await Promise.all(
784
+ const t = rt(r.handler), n = e.entry || {}, s = await Promise.all(
771
785
  t.map(async (i, o) => {
772
- const a = Object.values(n)[o], c = await h.readFile(i, "utf-8"), l = await tt(c, i, r.production);
786
+ const a = Object.values(n)[o], c = await m.readFile(i, "utf-8"), l = await nt(c, i, r.production);
773
787
  return [a, l];
774
788
  })
775
789
  );
@@ -779,24 +793,24 @@ addEventListener('fetch', (event) => {
779
793
  `Failed to setup worker code: ${t instanceof Error ? t.message : String(t)}`
780
794
  );
781
795
  }
782
- }, ue = (e) => e ? typeof e == "string" ? [e] : Array.isArray(e) ? e : Object.values(e) : [], st = async ({
796
+ }, de = (e) => e ? typeof e == "string" ? [e] : Array.isArray(e) ? e : Object.values(e) : [], it = async ({
783
797
  entrypoint: e,
784
798
  preset: r
785
799
  }) => {
786
800
  if (e && !r.handler) {
787
- const t = ue(e), n = t.map((s) => v.resolve(s));
801
+ const t = de(e), n = t.map((s) => v.resolve(s));
788
802
  return await Promise.all(
789
803
  n.map(async (s) => {
790
804
  try {
791
- await h.access(s);
805
+ await m.access(s);
792
806
  } catch (i) {
793
- throw m.error(i), new Error(
807
+ throw g.error(i), new Error(
794
808
  `Entry point "${s}" was not found. Please verify the path and try again.`
795
809
  );
796
810
  }
797
811
  })
798
812
  ), k.feedback.build.info(
799
- `Using entry point(s): ${t.map((s) => Je(process.cwd(), s)).join(", ")}`
813
+ `Using entry point(s): ${t.map((s) => Xe(process.cwd(), s)).join(", ")}`
800
814
  ), n;
801
815
  }
802
816
  if (r.handler) {
@@ -807,22 +821,22 @@ addEventListener('fetch', (event) => {
807
821
  "handler.js"
808
822
  );
809
823
  try {
810
- await h.access(n);
824
+ await m.access(n);
811
825
  } catch (s) {
812
- throw m.error(s), new Error(
826
+ throw g.error(s), new Error(
813
827
  `Missing handler "${n}" (default for "${r.metadata.name}" preset). Either create this file or specify a custom entry point using --entry.`
814
828
  );
815
829
  }
816
830
  return k.feedback.build.info(`Using built-in handler from "${r.metadata.name}" preset.`), [n];
817
831
  }
818
832
  if (r.config.build?.entry) {
819
- const t = ue(r.config.build.entry), n = t.map((s) => v.resolve(s));
833
+ const t = de(r.config.build.entry), n = t.map((s) => v.resolve(s));
820
834
  return await Promise.all(
821
835
  n.map(async (s) => {
822
836
  try {
823
- await h.access(s);
837
+ await m.access(s);
824
838
  } catch (i) {
825
- throw m.error(i), new Error(
839
+ throw g.error(i), new Error(
826
840
  `Missing default entry point "${s}" for "${r.metadata.name}" preset. Either create this file or specify a custom entry point using --entry.`
827
841
  );
828
842
  }
@@ -832,7 +846,7 @@ addEventListener('fetch', (event) => {
832
846
  throw new Error(
833
847
  "Cannot determine entry point. Please specify one using --entry or in your configuration."
834
848
  );
835
- }, it = (e) => `//---
849
+ }, ot = (e) => `//---
836
850
  //storages:
837
851
  // - name: assets
838
852
  // bucket: ${e.bucket}
@@ -840,56 +854,56 @@ addEventListener('fetch', (event) => {
840
854
  //---
841
855
  /* this temporary binding is used to inject the storage name and prefix into the function file */
842
856
  globalThis.AZION_BUCKET_NAME = '${e.bucket}';
843
- globalThis.AZION_BUCKET_PREFIX = '${e.prefix}';`, ot = async (e) => {
857
+ globalThis.AZION_BUCKET_PREFIX = '${e.prefix}';`, at = async (e) => {
844
858
  try {
845
- return await h.access(e), !0;
859
+ return await m.access(e), !0;
846
860
  } catch {
847
861
  return !1;
848
862
  }
849
- }, at = (e) => v.isAbsolute(e) ? e : v.resolve(process.cwd(), A.OUTPUT_BASE_PATH, e), ct = (e, r) => r.find((t) => t.name === e), lt = async (e, r, t) => {
863
+ }, ct = (e) => v.isAbsolute(e) ? e : v.resolve(process.cwd(), _.OUTPUT_BASE_PATH, e), lt = (e, r) => r.find((t) => t.name === e), ft = async (e, r, t) => {
850
864
  if (!e.path) {
851
- m.warn(`Function ${e.name} does not have a defined path`);
865
+ g.warn(`Function ${e.name} does not have a defined path`);
852
866
  return;
853
867
  }
854
868
  const n = e.bindings?.storage;
855
869
  if (!n) {
856
- m.info(`Function ${e.name} does not have storage bindings`);
870
+ g.info(`Function ${e.name} does not have storage bindings`);
857
871
  return;
858
872
  }
859
- const s = at(
873
+ const s = ct(
860
874
  e.path.replace(/\.js$/, t ? ".js" : ".dev.js")
861
875
  );
862
- if (!await ot(s)) {
863
- g.bindings.warn(`Function file not found: ${s}.`), g.bindings.info(`Binding injection skipped for function ${e.name}`);
876
+ if (!await at(s)) {
877
+ d.bindings.warn(`Function file not found: ${s}.`), d.bindings.info(`Binding injection skipped for function ${e.name}`);
864
878
  return;
865
879
  }
866
880
  try {
867
- const i = await h.readFile(s, "utf-8");
881
+ const i = await m.readFile(s, "utf-8");
868
882
  if (i.includes("//storages:") || i.includes("//---")) {
869
- m.info(`Function ${e.name} already has injected bindings`);
883
+ g.info(`Function ${e.name} already has injected bindings`);
870
884
  return;
871
885
  }
872
- const o = String(n.bucket), a = ct(o, r);
886
+ const o = String(n.bucket), a = lt(o, r);
873
887
  if (!a) {
874
- m.warn(`Storage '${o}' not found for function ${e.name}`);
888
+ g.warn(`Storage '${o}' not found for function ${e.name}`);
875
889
  return;
876
890
  }
877
891
  const c = n.prefix, l = c || a.prefix;
878
- c || g.postbuild.info(
892
+ c || d.postbuild.info(
879
893
  `No prefix provided for binding in function '${e.name}', using storage prefix: ${l}`
880
894
  );
881
- const f = it({
895
+ const f = ot({
882
896
  bucket: o,
883
897
  prefix: l
884
898
  });
885
- m.info(`Generated binding template for ${e.name}: ${f}`);
886
- const d = `${f}
899
+ g.info(`Generated binding template for ${e.name}: ${f}`);
900
+ const p = `${f}
887
901
  ${i}`;
888
- await h.writeFile(s, d), m.info(`Bindings injected into ${s} for function ${e.name}`);
902
+ await m.writeFile(s, p), g.info(`Bindings injected into ${s} for function ${e.name}`);
889
903
  } catch (i) {
890
- throw m.error(`Failed to process bindings for function ${e.name}:`, i), i;
904
+ throw g.error(`Failed to process bindings for function ${e.name}:`, i), i;
891
905
  }
892
- }, ft = async ({
906
+ }, ut = async ({
893
907
  config: e,
894
908
  storageSetup: r,
895
909
  isProduction: t
@@ -897,66 +911,66 @@ ${i}`;
897
911
  try {
898
912
  const n = e.functions || [];
899
913
  if (n.length === 0) {
900
- m.info("No functions found to inject bindings");
914
+ g.info("No functions found to inject bindings");
901
915
  return;
902
916
  }
903
- m.info("Injecting bindings into functions..."), await Promise.all(
904
- n.map((s) => lt(s, r, t))
917
+ g.info("Injecting bindings into functions..."), await Promise.all(
918
+ n.map((s) => ft(s, r, t))
905
919
  );
906
920
  } catch (n) {
907
- return m.error("Failed to execute bindings setup:", n), Promise.reject(n);
921
+ return g.error("Failed to execute bindings setup:", n), Promise.reject(n);
908
922
  }
909
- }, ut = () => `${Date.now()}`, dt = async (e) => {
923
+ }, dt = () => `${Date.now()}`, pt = async (e) => {
910
924
  try {
911
- return await h.access(e), (await h.stat(e)).isDirectory();
925
+ return await m.access(e), (await m.stat(e)).isDirectory();
912
926
  } catch {
913
927
  return !1;
914
928
  }
915
- }, pt = async (e, r) => {
929
+ }, ht = async (e, r) => {
916
930
  try {
917
- const t = A.OUTPUT_STORAGE_METADATA_PATH;
931
+ const t = _.OUTPUT_STORAGE_METADATA_PATH;
918
932
  let n = [];
919
933
  try {
920
- const i = await h.readFile(t, "utf-8");
934
+ const i = await m.readFile(t, "utf-8");
921
935
  n = JSON.parse(i);
922
936
  } catch {
923
- m.info("Creating new storage metadata file");
937
+ g.info("Creating new storage metadata file");
924
938
  }
925
939
  const s = {
926
940
  ...r,
927
941
  createdAt: (/* @__PURE__ */ new Date()).toISOString()
928
942
  };
929
- n = n.filter((i) => i.name !== e), n.push(s), await h.writeFile(t, JSON.stringify(n, null, 2), "utf-8"), m.info(`Storage metadata saved for: ${e}`);
943
+ n = n.filter((i) => i.name !== e), n.push(s), await m.writeFile(t, JSON.stringify(n, null, 2), "utf-8"), g.info(`Storage metadata saved for: ${e}`);
930
944
  } catch (t) {
931
- throw m.error(`Failed to save storage metadata for ${e}:`, t), t;
945
+ throw g.error(`Failed to save storage metadata for ${e}:`, t), t;
932
946
  }
933
- }, ht = async (e, r, t, n) => {
947
+ }, mt = async (e, r, t, n) => {
934
948
  const s = e.name;
935
949
  try {
936
950
  const i = v.join(t, s, n);
937
- await h.mkdir(v.join(t, s), { recursive: !0 });
951
+ await m.mkdir(v.join(t, s), { recursive: !0 });
938
952
  try {
939
- const o = await h.readdir(v.join(t, s));
953
+ const o = await m.readdir(v.join(t, s));
940
954
  await Promise.all(
941
955
  o.filter((a) => a !== n).map(async (a) => {
942
956
  const c = v.join(t, s, a);
943
957
  try {
944
- const l = await h.lstat(c);
945
- l.isSymbolicLink() ? await h.unlink(c) : l.isDirectory() ? await h.rmdir(c, { recursive: !0 }) : await h.unlink(c);
958
+ const l = await m.lstat(c);
959
+ l.isSymbolicLink() ? await m.unlink(c) : l.isDirectory() ? await m.rmdir(c, { recursive: !0 }) : await m.unlink(c);
946
960
  } catch (l) {
947
- m.warn(`Failed to remove ${c}:`, l);
961
+ g.warn(`Failed to remove ${c}:`, l);
948
962
  }
949
963
  })
950
- ), m.info(`Cleaned up existing storage items in: ${v.join(t, s)}`);
964
+ ), g.info(`Cleaned up existing storage items in: ${v.join(t, s)}`);
951
965
  } catch {
952
- m.warn(`Storage directory not found or empty: ${v.join(t, s)}`);
966
+ g.warn(`Storage directory not found or empty: ${v.join(t, s)}`);
953
967
  }
954
968
  try {
955
- const o = await h.lstat(i);
956
- o.isSymbolicLink() ? (await h.unlink(i), m.info(`Removed existing symlink: ${i}`)) : o.isDirectory() && (await h.rmdir(i, { recursive: !0 }), m.info(`Removed existing directory: ${i}`));
969
+ const o = await m.lstat(i);
970
+ o.isSymbolicLink() ? (await m.unlink(i), g.info(`Removed existing symlink: ${i}`)) : o.isDirectory() && (await m.rmdir(i, { recursive: !0 }), g.info(`Removed existing directory: ${i}`));
957
971
  } catch {
958
972
  }
959
- await h.symlink(r, i, "dir"), m.info(`Storage link created: ${s} -> ${r}`), await pt(s, {
973
+ await m.symlink(r, i, "dir"), g.info(`Storage link created: ${s} -> ${r}`), await ht(s, {
960
974
  name: s,
961
975
  workloadsAccess: e.workloadsAccess || "read_only",
962
976
  sourceDir: r,
@@ -964,42 +978,42 @@ ${i}`;
964
978
  prefix: n
965
979
  });
966
980
  } catch (i) {
967
- throw m.error(`Failed to create storage link for ${s}:`, i), i;
981
+ throw g.error(`Failed to create storage link for ${s}:`, i), i;
968
982
  }
969
- }, gt = (e) => !e.name || !e.dir ? (m.warn("Storage configuration is missing required fields (name or dir)"), !1) : !0, mt = async ({ config: e }) => {
983
+ }, gt = (e) => !e.name || !e.dir ? (g.warn("Storage configuration is missing required fields (name or dir)"), !1) : !0, wt = async ({ config: e }) => {
970
984
  try {
971
985
  const r = e.storage || [], t = [];
972
986
  if (r.length === 0)
973
- return m.info("No storages found to setup"), t;
974
- await h.mkdir(A.OUTPUT_STORAGE_PATH, { recursive: !0 });
987
+ return g.info("No storages found to setup"), t;
988
+ await m.mkdir(_.OUTPUT_STORAGE_PATH, { recursive: !0 });
975
989
  for (const n of r) {
976
990
  if (!gt(n))
977
991
  continue;
978
992
  const s = v.resolve(process.cwd(), n.dir);
979
- if (!await dt(s))
993
+ if (!await pt(s))
980
994
  throw new Error(
981
995
  `Storage directory not found: ${s}.
982
996
  - Please check the path provided in the azion.config file on storage[].dir`
983
997
  );
984
- const i = n.prefix, o = i || ut();
985
- i || g.storage.info(
998
+ const i = n.prefix, o = i || dt();
999
+ i || d.storage.info(
986
1000
  `No prefix provided for storage '${n.name}', generating version prefix: ${o}`
987
- ), i && g.storage.info(`Using provided prefix for storage '${n.name}': ${o}`), await ht(n, s, A.OUTPUT_STORAGE_PATH, o), t.push({
1001
+ ), i && d.storage.info(`Using provided prefix for storage '${n.name}': ${o}`), await mt(n, s, _.OUTPUT_STORAGE_PATH, o), t.push({
988
1002
  ...n,
989
1003
  prefix: o
990
1004
  });
991
1005
  }
992
- return m.info("Storage setup completed successfully"), t;
1006
+ return g.info("Storage setup completed successfully"), t;
993
1007
  } catch (r) {
994
- throw m.error("Failed to setup storages:", r), r;
1008
+ throw g.error("Failed to setup storages:", r), r;
995
1009
  }
996
- }, wt = async (e) => {
1010
+ }, yt = async (e) => {
997
1011
  try {
998
1012
  const { config: r, options: t } = e, n = !!t.production;
999
- t.skipFrameworkBuild && g.build.warn("Skipping framework build"), await Sr();
1000
- const s = await Or(r.build?.preset), i = await xr(r, s, n);
1013
+ t.skipFrameworkBuild && d.build.warn("Skipping framework build"), await Tr();
1014
+ const s = await jr(r.build?.preset), i = await kr(r, s, n);
1001
1015
  if (t.onlyGenerateConfig) {
1002
- const p = await fe({
1016
+ const h = await ue({
1003
1017
  config: r,
1004
1018
  preset: s,
1005
1019
  ctx: {
@@ -1008,8 +1022,8 @@ ${i}`;
1008
1022
  handler: ""
1009
1023
  }
1010
1024
  });
1011
- return g.build.success("Build completed successfully with only azion.config"), Y(p), {
1012
- config: p,
1025
+ return d.build.success("Build completed successfully with only azion.config"), Q(h), {
1026
+ config: h,
1013
1027
  ctx: {
1014
1028
  production: n ?? F.PRODUCTION,
1015
1029
  skipFrameworkBuild: !!t.skipFrameworkBuild,
@@ -1023,67 +1037,67 @@ ${i}`;
1023
1037
  skipFrameworkBuild: !!t.skipFrameworkBuild,
1024
1038
  handler: ""
1025
1039
  };
1026
- const a = await fe({
1040
+ const a = await ue({
1027
1041
  config: r,
1028
1042
  preset: s,
1029
1043
  ctx: o
1030
1044
  });
1031
- Y(a), g.prebuild.info("Starting pre-build...");
1032
- const c = await Wr({
1045
+ Q(a), d.prebuild.info("Starting pre-build...");
1046
+ const c = await Dr({
1033
1047
  buildConfig: i,
1034
1048
  ctx: o
1035
1049
  });
1036
- g.prebuild.info("Pre-build completed successfully"), o = {
1050
+ d.prebuild.info("Pre-build completed successfully"), o = {
1037
1051
  production: n ?? F.PRODUCTION,
1038
- handler: await st({
1052
+ handler: await it({
1039
1053
  entrypoint: r.build?.entry,
1040
1054
  preset: s
1041
1055
  }),
1042
1056
  skipFrameworkBuild: !!t.skipFrameworkBuild
1043
1057
  };
1044
- const l = await nt(i, o), f = [];
1058
+ const l = await st(i, o), f = [];
1045
1059
  await Promise.all(
1046
- Object.entries(l).map(async ([p, b]) => {
1047
- await Ee(be(p), { recursive: !0 }), await Ye(p, b, "utf-8"), f.push(p);
1060
+ Object.entries(l).map(async ([h, b]) => {
1061
+ await ve(Ee(h), { recursive: !0 }), await Qe(h, b, "utf-8"), f.push(h);
1048
1062
  })
1049
1063
  );
1050
- for (const p of f)
1051
- await He(p);
1052
- g.build.info("Starting build..."), await zr({
1064
+ for (const h of f)
1065
+ await Ve(h);
1066
+ d.build.info("Starting build..."), await Gr({
1053
1067
  buildConfig: i,
1054
1068
  prebuildResult: c,
1055
1069
  ctx: o
1056
- }), g.build.success("Build completed successfully"), await Ve(), g.postbuild.info("Starting post-build..."), await qr({ buildConfig: i, ctx: o }), g.postbuild.success("Post-build completed successfully");
1057
- const d = await mt({ config: a });
1058
- return await ft({ config: a, storageSetup: d, isProduction: n }), await ze(), {
1070
+ }), d.build.success("Build completed successfully"), await ze(), d.postbuild.info("Starting post-build..."), await Kr({ buildConfig: i, ctx: o }), d.postbuild.success("Post-build completed successfully");
1071
+ const p = await wt({ config: a });
1072
+ return await ut({ config: a, storageSetup: p, isProduction: n }), await Ge(), {
1059
1073
  config: a,
1060
1074
  ctx: o,
1061
1075
  setup: i
1062
1076
  };
1063
1077
  } catch (r) {
1064
- m.error("Build process failed:", r), g.build.error(
1065
- `${r instanceof Error ? r.message : String(r)}${_}`
1078
+ g.error("Build process failed:", r), d.build.error(
1079
+ `${r instanceof Error ? r.message : String(r)}${O}`
1066
1080
  ), process.exit(1);
1067
1081
  }
1068
1082
  };
1069
- async function yt(e) {
1070
- const r = await ee() || {}, { build: t } = r, n = {
1071
- preset: U({
1083
+ async function bt(e) {
1084
+ const r = await re() || {}, { build: t } = r, n = {
1085
+ preset: N({
1072
1086
  inputValue: e.preset,
1073
1087
  fileValue: t?.preset,
1074
1088
  defaultValue: F.PRESET
1075
1089
  }),
1076
- entry: U({
1090
+ entry: N({
1077
1091
  inputValue: e.entry,
1078
1092
  fileValue: t?.entry,
1079
1093
  defaultValue: F.ENTRY
1080
1094
  }),
1081
- bundler: U({
1095
+ bundler: N({
1082
1096
  inputValue: void 0,
1083
1097
  fileValue: t?.bundler,
1084
1098
  defaultValue: F.BUNDLER
1085
1099
  }),
1086
- polyfills: U({
1100
+ polyfills: N({
1087
1101
  inputValue: t?.polyfills,
1088
1102
  fileValue: e.polyfills,
1089
1103
  defaultValue: F.POLYFILLS
@@ -1096,7 +1110,7 @@ async function yt(e) {
1096
1110
  extend: r?.build?.extend
1097
1111
  }
1098
1112
  };
1099
- return e.production && await Tr([A.OUTPUT_BASE_PATH]), wt({
1113
+ return e.production && await $r([_.OUTPUT_BASE_PATH]), yt({
1100
1114
  config: s,
1101
1115
  options: {
1102
1116
  production: e.production,
@@ -1105,15 +1119,15 @@ async function yt(e) {
1105
1119
  }
1106
1120
  });
1107
1121
  }
1108
- let J, H = !1;
1109
- const bt = (e, r, t, n = !0) => {
1122
+ let X, H = !1;
1123
+ const Et = (e, r, t, n = !0) => {
1110
1124
  let s = t;
1111
1125
  const i = new RegExp(`addEventListener\\((['"]?)${e}\\1,`, "g"), o = /firewall:\s*\(event\)\s*=>\s*{/g, a = !!t.match(o), c = /eventType\s*=\s*['"]firewall['"];/g, l = !!t.match(i);
1112
1126
  return (n && l || a) && (s = t.replace(i, `addEventListener("${r}",`), a && (s = s.replace(c, "eventType = 'fetch';"))), { matchEvent: l || a, codeChanged: s };
1113
1127
  };
1114
- function Et(e) {
1128
+ function vt(e) {
1115
1129
  return new Promise((r) => {
1116
- const t = new ar.Socket();
1130
+ const t = new cr.Socket();
1117
1131
  t.setTimeout(1e3), t.on("connect", () => {
1118
1132
  t.destroy(), r(!0);
1119
1133
  }), t.on("timeout", () => {
@@ -1123,31 +1137,31 @@ function Et(e) {
1123
1137
  }), t.connect(e, "127.0.0.1");
1124
1138
  });
1125
1139
  }
1126
- async function vt(e) {
1140
+ async function St(e) {
1127
1141
  try {
1128
- return await h.access(e), await h.readFile(e, "utf8");
1142
+ return await m.access(e), await m.readFile(e, "utf8");
1129
1143
  } catch (r) {
1130
1144
  if (r.message.includes("ENOENT")) {
1131
- const t = Z(e);
1145
+ const t = Y(e);
1132
1146
  throw new Error(
1133
- `Server entry file "${t}" not found. Please specify your entry point using "azion dev <path>" or create the default handler file.${_}`
1147
+ `Server entry file "${t}" not found. Please specify your entry point using "azion dev <path>" or create the default handler file.${O}`
1134
1148
  );
1135
1149
  }
1136
- throw new Error(`Error reading file ${e}: ${r.message}${_}`);
1150
+ throw new Error(`Error reading file ${e}: ${r.message}${O}`);
1137
1151
  }
1138
1152
  }
1139
- async function St(e, r) {
1153
+ async function Tt(e, r) {
1140
1154
  const { matchEvent: t, codeChanged: n } = (
1141
1155
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1142
- bt("firewall", "fetch", r)
1143
- ), i = Te(t ? n : r, t);
1144
- return cr({ port: e, host: "0.0.0.0", runtime: i });
1156
+ Et("firewall", "fetch", r)
1157
+ ), i = $e(t ? n : r, t);
1158
+ return lr({ port: e, host: "0.0.0.0", runtime: i });
1145
1159
  }
1146
- function de(e, r) {
1160
+ function pe(e, r) {
1147
1161
  const t = e?.bindings?.storage?.bucket || r?.storage?.[0].name || "", n = e?.bindings?.storage?.prefix || r?.storage?.[0].prefix || "";
1148
1162
  return { bucketName: t, prefix: n };
1149
1163
  }
1150
- function Tt(e, r, t) {
1164
+ function $t(e, r, t) {
1151
1165
  const n = Object.keys(e).find((s) => {
1152
1166
  const i = s.replace(/\.dev$/, "").replace(/\.edge\//, "");
1153
1167
  return t.replace(/\.js$/, "").endsWith(i);
@@ -1156,83 +1170,83 @@ function Tt(e, r, t) {
1156
1170
  throw new Error(`Entry path not found for function "${r}"`);
1157
1171
  return n;
1158
1172
  }
1159
- function pe(e) {
1173
+ function he(e) {
1160
1174
  return e.endsWith(".js") ? e : `${e}.js`;
1161
1175
  }
1162
- function $t(e, r, t) {
1176
+ function Pt(e, r, t) {
1163
1177
  if (!e || Object.keys(e).length === 0)
1164
1178
  throw new Error("No entries provided");
1165
1179
  if (t) {
1166
1180
  const o = r.functions?.find((l) => l.name === t);
1167
1181
  if (!o)
1168
1182
  throw new Error(`Function "${t}" not found in edge functions configuration`);
1169
- const a = Tt(e, t, o.path), c = de(o, r);
1183
+ const a = $t(e, t, o.path), c = pe(o, r);
1170
1184
  return {
1171
1185
  name: o.name,
1172
1186
  bucket: c.bucketName,
1173
1187
  prefix: c.prefix,
1174
- path: pe(a)
1188
+ path: he(a)
1175
1189
  };
1176
1190
  }
1177
- const n = Object.keys(e)[0], s = r.functions?.[0], i = de(s, r);
1191
+ const n = Object.keys(e)[0], s = r.functions?.[0], i = pe(s, r);
1178
1192
  return {
1179
1193
  name: s?.name,
1180
1194
  bucket: i.bucketName,
1181
1195
  prefix: i.prefix,
1182
- path: pe(n)
1196
+ path: he(n)
1183
1197
  };
1184
1198
  }
1185
- async function ie(e, r, t = !1, n) {
1199
+ async function oe(e, r, t = !1, n) {
1186
1200
  try {
1187
- J && await J.close();
1201
+ X && await X.close();
1188
1202
  const {
1189
1203
  setup: { entry: s },
1190
1204
  config: { functions: i, storage: o }
1191
- } = await yt({ production: !1, skipFrameworkBuild: t });
1205
+ } = await bt({ production: !1, skipFrameworkBuild: t });
1192
1206
  let a;
1193
1207
  try {
1194
1208
  const {
1195
1209
  path: c,
1196
1210
  bucket: l,
1197
1211
  prefix: f
1198
- } = $t(s, { functions: i, storage: o }, n);
1199
- globalThis.AZION_BUCKET_NAME = l, globalThis.AZION_BUCKET_PREFIX = f, a = await vt(c);
1212
+ } = Pt(s, { functions: i, storage: o }, n);
1213
+ globalThis.AZION_BUCKET_NAME = l, globalThis.AZION_BUCKET_PREFIX = f, a = await St(c);
1200
1214
  } catch (c) {
1201
- g.server.error(c.message), m.error(`Error reading worker file: ${c}`), process.exit(1);
1215
+ d.server.error(c.message), g.error(`Error reading worker file: ${c}`), process.exit(1);
1202
1216
  }
1203
1217
  try {
1204
- J = await St(r, a), g.server.success(
1218
+ X = await Tt(r, a), d.server.success(
1205
1219
  `Function running on port 0.0.0.0:${r}, url: http://localhost:${r}`
1206
1220
  );
1207
1221
  } catch (c) {
1208
1222
  if (c.message.includes("EADDRINUSE"))
1209
- await ie(e, r + 1);
1223
+ await oe(e, r + 1);
1210
1224
  else
1211
1225
  throw c;
1212
1226
  }
1213
1227
  } catch (s) {
1214
- g.server.error(
1215
- `${s instanceof Error ? s.message : String(s)}${_}`
1216
- ), m.error(`Server management error: ${s}`), process.exit(1);
1228
+ d.server.error(
1229
+ `${s instanceof Error ? s.message : String(s)}${O}`
1230
+ ), g.error(`Server management error: ${s}`), process.exit(1);
1217
1231
  } finally {
1218
1232
  H = !1;
1219
1233
  }
1220
1234
  }
1221
- async function Pt(e, r, t) {
1235
+ async function xt(e, r, t) {
1222
1236
  if (!H && !(e.startsWith(".azion-bundler") || e.startsWith("azion") && e.includes(".temp") || e.startsWith(".edge") || e.startsWith("node_modules") || e.startsWith(".vercel"))) {
1223
1237
  H = !0;
1224
1238
  try {
1225
- g.build.info("Rebuilding with the new changes..."), await ie(r, t);
1239
+ d.build.info("Rebuilding with the new changes..."), await oe(r, t);
1226
1240
  } catch (n) {
1227
- m.error(`Build or server restart failed: ${n}`);
1241
+ g.error(`Build or server restart failed: ${n}`);
1228
1242
  } finally {
1229
1243
  H = !1;
1230
1244
  }
1231
1245
  }
1232
1246
  }
1233
- async function ke(e, r, t = !1, n) {
1234
- await Et(r) && (g.server.error(`Port ${r} is in use. Please choose another port.`), process.exit(1)), await ie(e, r, t, n);
1235
- const i = Ke.watch("./", {
1247
+ async function Ce(e, r, t = !1, n) {
1248
+ await vt(r) && (d.server.error(`Port ${r} is in use. Please choose another port.`), process.exit(1)), await oe(e, r, t, n);
1249
+ const i = Je.watch("./", {
1236
1250
  persistent: !0,
1237
1251
  ignoreInitial: !0,
1238
1252
  // Ignore the initial add events
@@ -1240,31 +1254,31 @@ async function ke(e, r, t = !1, n) {
1240
1254
  ignored: [".git", ".vscode", ".idea", ".sublime-text", ".history"]
1241
1255
  // Added common IDE-related folders
1242
1256
  }), o = async (a) => {
1243
- await Pt(a, e, r);
1257
+ await xt(a, e, r);
1244
1258
  };
1245
- i.on("add", o).on("change", o).on("unlink", o).on("addDir", o).on("unlinkDir", o).on("error", (a) => m.error(`Watcher error: ${a}`)).on("ready", () => g.server.info("Initial scan complete. Ready for changes."));
1259
+ i.on("add", o).on("change", o).on("unlink", o).on("addDir", o).on("unlinkDir", o).on("error", (a) => g.error(`Watcher error: ${a}`)).on("ready", () => d.server.info("Initial scan complete. Ready for changes."));
1246
1260
  }
1247
- const he = {
1248
- runtime: Te,
1249
- server: ke,
1250
- readStore: Ge,
1251
- readAzionConfig: ee,
1252
- writeStore: we,
1253
- writeUserConfig: X
1261
+ const me = {
1262
+ runtime: $e,
1263
+ server: Ce,
1264
+ readStore: qe,
1265
+ readAzionConfig: re,
1266
+ writeStore: ye,
1267
+ writeUserConfig: Z
1254
1268
  };
1255
- async function fn({
1269
+ async function dn({
1256
1270
  entry: e,
1257
1271
  port: r,
1258
1272
  skipFrameworkBuild: t = !1,
1259
1273
  functionName: n
1260
1274
  }) {
1261
1275
  const s = parseInt(r, 10);
1262
- ke(e || null, s, t, n);
1276
+ Ce(e || null, s, t, n);
1263
1277
  }
1264
1278
  function ge() {
1265
1279
  return Object.values(z).filter((r) => r.metadata?.name).map((r) => r.metadata.name);
1266
1280
  }
1267
- function xt(e) {
1281
+ function kt(e) {
1268
1282
  const r = z[e];
1269
1283
  if (!r)
1270
1284
  throw new Error(
@@ -1272,81 +1286,81 @@ function xt(e) {
1272
1286
  );
1273
1287
  return r.config;
1274
1288
  }
1275
- async function un(e, r = {}) {
1289
+ async function pn(e, r = {}) {
1276
1290
  const t = process.env.CLEAN_OUTPUT_MODE === "true";
1277
1291
  switch (e) {
1278
1292
  case "ls":
1279
- t && ge().forEach((n) => console.log(n?.toLowerCase())), t || ge().forEach((n) => g.option(n));
1293
+ t && ge().forEach((n) => console.log(n?.toLowerCase())), t || ge().forEach((n) => d.option(n));
1280
1294
  break;
1281
1295
  case "config":
1282
1296
  if (!r.preset) {
1283
- g.error("Preset name is required. Use: ef presets config <preset-name>");
1297
+ d.error("Preset name is required. Use: ef presets config <preset-name>");
1284
1298
  return;
1285
1299
  }
1286
1300
  try {
1287
- const n = xt(r.preset);
1301
+ const n = kt(r.preset);
1288
1302
  console.log(JSON.stringify(n, null, 2));
1289
1303
  } catch (n) {
1290
- g.error(n instanceof Error ? n.message : "Unknown error occurred");
1304
+ d.error(n instanceof Error ? n.message : "Unknown error occurred");
1291
1305
  }
1292
1306
  break;
1293
1307
  default:
1294
- g.error("Invalid argument provided. Available commands: ls, config");
1308
+ d.error("Invalid argument provided. Available commands: ls, config");
1295
1309
  break;
1296
1310
  }
1297
1311
  }
1298
- function kt(e) {
1299
- return Qe(e);
1312
+ function Ct(e) {
1313
+ return er(e);
1300
1314
  }
1301
- const Ct = { processConfigWrapper: kt }, Ft = ".edge/manifest.json", At = "azion.config", _t = async (e, r = C(process.cwd(), ".edge")) => {
1315
+ const Ft = { processConfigWrapper: Ct }, At = ".edge/manifest.json", _t = "azion.config", Ot = async (e, r = C(process.cwd(), ".edge")) => {
1302
1316
  try {
1303
- await B.access(r);
1317
+ await W.access(r);
1304
1318
  } catch {
1305
- await B.mkdir(r, { recursive: !0 });
1319
+ await W.mkdir(r, { recursive: !0 });
1306
1320
  }
1307
1321
  let t;
1308
1322
  if (typeof e == "object")
1309
1323
  t = e;
1310
1324
  else {
1311
- const i = await ye.readAzionConfig(e);
1325
+ const i = await be.readAzionConfig(e);
1312
1326
  if (!i)
1313
1327
  throw new Error(
1314
1328
  e ? `Failed to load config from ${e}` : "No configuration found. Please provide a config file or object."
1315
1329
  );
1316
1330
  t = i;
1317
1331
  }
1318
- Y(t);
1319
- const n = Ct.processConfigWrapper(t), s = C(r, "manifest.json");
1320
- await B.writeFile(s, JSON.stringify(n, null, 2)), k.feedback.manifest.success(`Manifest generated successfully at ${s}`);
1321
- }, Ot = async (e, r = At) => {
1332
+ Q(t);
1333
+ const n = Ft.processConfigWrapper(t), s = C(r, "manifest.json");
1334
+ await W.writeFile(s, JSON.stringify(n, null, 2)), k.feedback.manifest.success(`Manifest generated successfully at ${s}`);
1335
+ }, jt = async (e, r = _t) => {
1322
1336
  const n = await (async (s) => {
1323
- const i = re(process.cwd(), s);
1337
+ const i = te(process.cwd(), s);
1324
1338
  if (V(i) !== ".json")
1325
1339
  throw new Error("Input file must be .json");
1326
- const o = await B.readFile(i, "utf8");
1327
- return er(o);
1328
- })(e || Ft);
1329
- await ye.writeUserConfig(n, r), k.feedback.manifest.success(`Config file generated successfully at ${r}`);
1340
+ const o = await W.readFile(i, "utf8");
1341
+ return rr(o);
1342
+ })(e || At);
1343
+ await be.writeUserConfig(n, r), k.feedback.manifest.success(`Config file generated successfully at ${r}`);
1330
1344
  };
1331
- async function dn(e) {
1345
+ async function hn(e) {
1332
1346
  try {
1333
1347
  const r = e.action || "generate", n = {
1334
1348
  generate: async () => {
1335
1349
  const s = e.entry || e.config;
1336
- await _t(s, e.output);
1350
+ await Ot(s, e.output);
1337
1351
  },
1338
1352
  transform: async () => {
1339
- await Ot(e.entry, e.output);
1353
+ await jt(e.entry, e.output);
1340
1354
  }
1341
1355
  }[r];
1342
- n && await n(), n || (g.manifest.error(
1356
+ n && await n(), n || (d.manifest.error(
1343
1357
  "Only transform and generate actions are supported"
1344
1358
  ), process.exit(1));
1345
1359
  } catch (r) {
1346
- m.error(r), g.error(`${r instanceof Error ? r.message : String(r)}${_}`), await te(A.OUTPUT_BASE_PATH, { recursive: !0, force: !0 }), process.exit(1);
1360
+ g.error(r), d.error(`${r instanceof Error ? r.message : String(r)}${O}`), await ne(_.OUTPUT_BASE_PATH, { recursive: !0, force: !0 }), process.exit(1);
1347
1361
  }
1348
1362
  }
1349
- async function pn({ command: e, options: r }) {
1363
+ async function mn({ command: e, options: r }) {
1350
1364
  const t = JSON.parse(
1351
1365
  typeof r.config == "string" ? r.config : "{}"
1352
1366
  ), n = r.scope || "global";
@@ -1354,20 +1368,20 @@ async function pn({ command: e, options: r }) {
1354
1368
  switch (e) {
1355
1369
  case "init": {
1356
1370
  const s = { ...t };
1357
- await we(s, n), g.info(`Store file initialized with scope: ${n}`);
1371
+ await ye(s, n), d.info(`Store file initialized with scope: ${n}`);
1358
1372
  break;
1359
1373
  }
1360
1374
  case "destroy":
1361
- await te(globalThis.bundler.tempPath, { recursive: !0, force: !0 }), g.info("Temporary store directory removed");
1375
+ await ne(globalThis.bundler.tempPath, { recursive: !0, force: !0 }), d.info("Temporary store directory removed");
1362
1376
  break;
1363
1377
  default:
1364
1378
  throw new Error(`Invalid command: ${e}`);
1365
1379
  }
1366
1380
  } catch (s) {
1367
- g.error(`${s instanceof Error ? s.message : String(s)}${_}`), process.exit(1);
1381
+ d.error(`${s instanceof Error ? s.message : String(s)}${O}`), process.exit(1);
1368
1382
  }
1369
1383
  }
1370
- function Q(e) {
1384
+ function ee(e) {
1371
1385
  if (typeof e != "string")
1372
1386
  return e;
1373
1387
  const r = e.trim();
@@ -1379,8 +1393,8 @@ function Q(e) {
1379
1393
  return e;
1380
1394
  }
1381
1395
  }
1382
- async function jt() {
1383
- const r = await lr("azion", {
1396
+ async function Rt() {
1397
+ const r = await fr("azion", {
1384
1398
  searchPlaces: [
1385
1399
  "azion.config.ts",
1386
1400
  "azion.config.mts",
@@ -1391,30 +1405,30 @@ async function jt() {
1391
1405
  "azion.config.json"
1392
1406
  ],
1393
1407
  loaders: {
1394
- ".ts": G(),
1395
- ".mts": G(),
1396
- ".cts": G()
1408
+ ".ts": q(),
1409
+ ".mts": q(),
1410
+ ".cts": q()
1397
1411
  }
1398
1412
  }).search();
1399
1413
  if (!r)
1400
1414
  throw new Error("No azion config file found");
1401
- const t = r.filepath, n = await h.readFile(t, "utf8");
1415
+ const t = r.filepath, n = await m.readFile(t, "utf8");
1402
1416
  return { configPath: t, fileContent: n };
1403
1417
  }
1404
- const Ce = {
1405
- findAndReadConfigFile: jt,
1406
- tryParseJSON: Q
1418
+ const Fe = {
1419
+ findAndReadConfigFile: Rt,
1420
+ tryParseJSON: ee
1407
1421
  };
1408
- function Rt(e) {
1422
+ function Ut(e) {
1409
1423
  const r = {}, t = e.key.split(".");
1410
1424
  let n = r;
1411
1425
  for (let s = 0; s < t.length; s++) {
1412
1426
  const i = t[s], o = i.match(/^(.+)\[(\d+)\]$/);
1413
1427
  if (o) {
1414
1428
  const a = o[1], c = parseInt(o[2]);
1415
- s === t.length - 1 ? (n[a] || (n[a] = []), n[a][c] = Q(e.value)) : (n[a] || (n[a] = []), n[a][c] || (n[a][c] = {}), n = n[a][c]);
1429
+ s === t.length - 1 ? (n[a] || (n[a] = []), n[a][c] = ee(e.value)) : (n[a] || (n[a] = []), n[a][c] || (n[a][c] = {}), n = n[a][c]);
1416
1430
  } else
1417
- s === t.length - 1 ? n[i] = Q(e.value) : (n[i] || (n[i] = {}), n = n[i]);
1431
+ s === t.length - 1 ? n[i] = ee(e.value) : (n[i] || (n[i] = {}), n = n[i]);
1418
1432
  }
1419
1433
  return r;
1420
1434
  }
@@ -1449,7 +1463,7 @@ function Nt(e) {
1449
1463
  }
1450
1464
  return n;
1451
1465
  }
1452
- function Ut(e) {
1466
+ function It(e) {
1453
1467
  if (!e.config)
1454
1468
  throw new Error("Config is required for delete");
1455
1469
  const r = { ...e.config }, t = e.key.split(".");
@@ -1488,7 +1502,7 @@ function Ut(e) {
1488
1502
  }
1489
1503
  return r;
1490
1504
  }
1491
- function It(e) {
1505
+ function Bt(e) {
1492
1506
  const r = e.match(
1493
1507
  /^\s*export\s+default\s+defineConfig\s*\(\s*/m
1494
1508
  ), t = e.match(
@@ -1524,27 +1538,27 @@ function It(e) {
1524
1538
  const a = e[o], c = a === "{" ? "}" : a === "(" ? ")" : null;
1525
1539
  if (!c)
1526
1540
  throw new Error("Config object must start with { or (");
1527
- let l = 1, f = !1, d = "", p = e.length;
1541
+ let l = 1, f = !1, p = "", h = e.length;
1528
1542
  for (let b = o + 1; b < e.length; b++) {
1529
1543
  const u = e[b], w = b > 0 ? e[b - 1] : "";
1530
1544
  if ((u === '"' || u === "'" || u === "`") && w !== "\\") {
1531
- f ? u === d && (f = !1, d = "") : (f = !0, d = u);
1545
+ f ? u === p && (f = !1, p = "") : (f = !0, p = u);
1532
1546
  continue;
1533
1547
  }
1534
1548
  if (!f && (u === a ? l++ : u === c && l--, l === 0)) {
1535
- p = b + 1;
1549
+ h = b + 1;
1536
1550
  break;
1537
1551
  }
1538
1552
  }
1539
- return { start: i, end: p };
1553
+ return { start: i, end: h };
1540
1554
  }
1541
- async function Wt(e, r) {
1555
+ async function Dt(e, r) {
1542
1556
  try {
1543
1557
  const t = Array.isArray(e) ? e : [{ placeholder: e, value: r }];
1544
1558
  for (const { placeholder: u, value: w } of t)
1545
1559
  if (typeof u != "string" || typeof w != "string")
1546
1560
  throw new Error("Placeholder and value must be strings");
1547
- const { configPath: n, fileContent: s } = await Ce.findAndReadConfigFile(), { start: i, end: o } = It(s), a = s.slice(0, i);
1561
+ const { configPath: n, fileContent: s } = await Fe.findAndReadConfigFile(), { start: i, end: o } = Bt(s), a = s.slice(0, i);
1548
1562
  let c = s.slice(i, o);
1549
1563
  const l = s.slice(o), f = /* @__PURE__ */ new Map();
1550
1564
  for (const { placeholder: u, value: w } of t) {
@@ -1552,35 +1566,35 @@ async function Wt(e, r) {
1552
1566
  for (; S < c.length; ) {
1553
1567
  const y = c.indexOf(u, S);
1554
1568
  if (y === -1) break;
1555
- const E = y > 0 ? c[y - 1] : "", O = y + u.length < c.length ? c[y + u.length] : "";
1569
+ const E = y > 0 ? c[y - 1] : "", j = y + u.length < c.length ? c[y + u.length] : "";
1556
1570
  let R = !0;
1557
1571
  if (typeof u == "string" && u.match(/[A-Za-z0-9_$]/)) {
1558
- const P = E && E.match(/[A-Za-z0-9_$]/), $ = O && O.match(/[A-Za-z0-9_]/);
1572
+ const P = E && E.match(/[A-Za-z0-9_$]/), $ = j && j.match(/[A-Za-z0-9_]/);
1559
1573
  (P || $) && (R = !1);
1560
1574
  }
1561
1575
  R ? (c = c.slice(0, y) + w + c.slice(y + u.length), S = y + w.length, T++) : S = y + 1;
1562
1576
  }
1563
1577
  T > 0 && f.set(u, T);
1564
1578
  }
1565
- const d = a + c + l;
1566
- let p;
1579
+ const p = a + c + l;
1580
+ let h;
1567
1581
  try {
1568
- p = await ve.format(d, {
1582
+ h = await Se.format(p, {
1569
1583
  parser: "babel",
1570
1584
  semi: !1,
1571
1585
  singleQuote: !0,
1572
1586
  trailingComma: "none"
1573
1587
  });
1574
1588
  } catch {
1575
- p = d;
1589
+ h = p;
1576
1590
  }
1577
- await h.writeFile(n, p, "utf8");
1591
+ await m.writeFile(n, h, "utf8");
1578
1592
  const b = Array.from(f.values()).reduce((u, w) => u + w, 0);
1579
1593
  if (b === 0)
1580
- g.info(`No placeholders found to replace in ${v.basename(n)}`);
1594
+ d.info(`No placeholders found to replace in ${v.basename(n)}`);
1581
1595
  else if (f.size === 1) {
1582
1596
  const [u, w] = Array.from(f.entries())[0], T = t.find((S) => S.placeholder === u);
1583
- g.info(
1597
+ d.info(
1584
1598
  `Successfully replaced "${u}" with "${T?.value}" (${w} occurrence${w > 1 ? "s" : ""}) in ${v.basename(n)}`
1585
1599
  );
1586
1600
  } else {
@@ -1588,7 +1602,7 @@ async function Wt(e, r) {
1588
1602
  const S = t.find((y) => y.placeholder === w);
1589
1603
  return `"${w}" -> "${S?.value}" (${T})`;
1590
1604
  }).join(", ");
1591
- g.info(
1605
+ d.info(
1592
1606
  `Successfully replaced ${b} occurrences of ${f.size} placeholders (${u}) in ${v.basename(n)}`
1593
1607
  );
1594
1608
  }
@@ -1598,12 +1612,12 @@ async function Wt(e, r) {
1598
1612
  );
1599
1613
  }
1600
1614
  }
1601
- async function Dt(e, r) {
1615
+ async function Wt(e, r) {
1602
1616
  try {
1603
- const { configPath: t, fileContent: n } = await Ce.findAndReadConfigFile(), s = Bt(n, e, r);
1617
+ const { configPath: t, fileContent: n } = await Fe.findAndReadConfigFile(), s = Mt(n, e, r);
1604
1618
  let i;
1605
1619
  try {
1606
- i = await ve.format(s, {
1620
+ i = await Se.format(s, {
1607
1621
  parser: "babel",
1608
1622
  semi: !1,
1609
1623
  singleQuote: !0,
@@ -1612,7 +1626,7 @@ async function Dt(e, r) {
1612
1626
  } catch {
1613
1627
  i = s;
1614
1628
  }
1615
- await h.writeFile(t, i, "utf8"), k.feedback.info(
1629
+ await m.writeFile(t, i, "utf8"), k.feedback.info(
1616
1630
  `Successfully updated "${e}" to "${r}" in ${v.basename(t)}`
1617
1631
  );
1618
1632
  } catch (t) {
@@ -1621,11 +1635,11 @@ async function Dt(e, r) {
1621
1635
  );
1622
1636
  }
1623
1637
  }
1624
- function Bt(e, r, t) {
1625
- return Mt(e, r, t);
1626
- }
1627
1638
  function Mt(e, r, t) {
1628
- const n = Ht(t), s = e.replace(/\n\s*/g, " ").replace(/\s+/g, " "), i = s.match(
1639
+ return Lt(e, r, t);
1640
+ }
1641
+ function Lt(e, r, t) {
1642
+ const n = Vt(t), s = e.replace(/\n\s*/g, " ").replace(/\s+/g, " "), i = s.match(
1629
1643
  /(.*(?:module\.exports\s*=(?:\s+\w+\()?|export default(?:\s+\w+\()?)\s*)\{/
1630
1644
  );
1631
1645
  if (!i)
@@ -1641,16 +1655,16 @@ function Mt(e, r, t) {
1641
1655
  }
1642
1656
  if (a !== 0)
1643
1657
  return e;
1644
- const d = s.substring(o, c), p = Lt(r), b = oe(d, p, n), u = e.match(
1658
+ const p = s.substring(o, c), h = Ht(r), b = ae(p, h, n), u = e.match(
1645
1659
  /(.*(?:module\.exports\s*=(?:\s+\w+\()?|export default(?:\s+\w+\()?)\s*)\{/s
1646
1660
  );
1647
1661
  if (!u)
1648
1662
  return e;
1649
1663
  const w = u[1] + "{", T = u[0].length;
1650
- let S = 1, y = T, E = !1, O = "";
1664
+ let S = 1, y = T, E = !1, j = "";
1651
1665
  for (let P = T; P < e.length && S > 0; P++) {
1652
1666
  const $ = e[P];
1653
- if (E ? $ === O && e[P - 1] !== "\\" && (E = !1) : $ === '"' || $ === "'" ? (E = !0, O = $) : $ === "{" ? S++ : $ === "}" && S--, S === 0) {
1667
+ if (E ? $ === j && e[P - 1] !== "\\" && (E = !1) : $ === '"' || $ === "'" ? (E = !0, j = $) : $ === "{" ? S++ : $ === "}" && S--, S === 0) {
1654
1668
  y = P;
1655
1669
  break;
1656
1670
  }
@@ -1658,7 +1672,7 @@ function Mt(e, r, t) {
1658
1672
  const R = "}" + e.substring(y + 1);
1659
1673
  return w + b + R;
1660
1674
  }
1661
- function Lt(e) {
1675
+ function Ht(e) {
1662
1676
  const r = [];
1663
1677
  let t = "", n = 0;
1664
1678
  for (; n < e.length; ) {
@@ -1677,7 +1691,7 @@ function Lt(e) {
1677
1691
  }
1678
1692
  return t && r.push(t), r;
1679
1693
  }
1680
- function oe(e, r, t) {
1694
+ function ae(e, r, t) {
1681
1695
  if (r.length === 0) return e;
1682
1696
  const [n, ...s] = r;
1683
1697
  if (typeof n == "string") {
@@ -1695,54 +1709,54 @@ function oe(e, r, t) {
1695
1709
  const c = e.indexOf(a.trim());
1696
1710
  if (c === -1)
1697
1711
  return e;
1698
- let l = 0, f = !1, d = "", p = -1;
1712
+ let l = 0, f = !1, p = "", h = -1;
1699
1713
  for (let y = c; y < e.length; y++) {
1700
1714
  const E = e[y];
1701
1715
  if (f)
1702
- E === d && e[y - 1] !== "\\" && (f = !1);
1716
+ E === p && e[y - 1] !== "\\" && (f = !1);
1703
1717
  else if (E === '"' || E === "'")
1704
- f = !0, d = E;
1718
+ f = !0, p = E;
1705
1719
  else if (E === "{")
1706
1720
  l++;
1707
1721
  else if (E === "}" && (l--, l === 0)) {
1708
- p = y;
1722
+ h = y;
1709
1723
  break;
1710
1724
  }
1711
1725
  }
1712
- if (p === -1)
1726
+ if (h === -1)
1713
1727
  return e;
1714
- const u = e.substring(c, p + 1).slice(1, -1), w = oe(u, s, t), T = e.substring(0, c), S = e.substring(p + 1);
1728
+ const u = e.substring(c, h + 1).slice(1, -1), w = ae(u, s, t), T = e.substring(0, c), S = e.substring(h + 1);
1715
1729
  return T + `{ ${w} }` + S;
1716
1730
  } else if (a.trim().startsWith("[")) {
1717
1731
  const c = e.indexOf(a.trim());
1718
1732
  if (c === -1)
1719
1733
  return e;
1720
- let l = 0, f = !1, d = "", p = -1;
1734
+ let l = 0, f = !1, p = "", h = -1;
1721
1735
  for (let y = c; y < e.length; y++) {
1722
1736
  const E = e[y];
1723
1737
  if (f)
1724
- E === d && e[y - 1] !== "\\" && (f = !1);
1738
+ E === p && e[y - 1] !== "\\" && (f = !1);
1725
1739
  else if (E === '"' || E === "'")
1726
- f = !0, d = E;
1740
+ f = !0, p = E;
1727
1741
  else if (E === "[")
1728
1742
  l++;
1729
1743
  else if (E === "]" && (l--, l === 0)) {
1730
- p = y;
1744
+ h = y;
1731
1745
  break;
1732
1746
  }
1733
1747
  }
1734
- if (p === -1)
1748
+ if (h === -1)
1735
1749
  return e;
1736
- const u = e.substring(c, p + 1).slice(1, -1), w = me(u, s, t), T = e.substring(0, c), S = e.substring(p + 1);
1750
+ const u = e.substring(c, h + 1).slice(1, -1), w = we(u, s, t), T = e.substring(0, c), S = e.substring(h + 1);
1737
1751
  return T + `[ ${w} ]` + S;
1738
1752
  }
1739
1753
  }
1740
1754
  }
1741
1755
  } else if (typeof n == "number")
1742
- return me(e, r, t);
1756
+ return we(e, r, t);
1743
1757
  return e;
1744
1758
  }
1745
- function me(e, r, t) {
1759
+ function we(e, r, t) {
1746
1760
  if (r.length === 0) return e;
1747
1761
  const [n, ...s] = r;
1748
1762
  if (typeof n != "number") return e;
@@ -1756,16 +1770,16 @@ function me(e, r, t) {
1756
1770
  let a = 0, c = !1, l = "";
1757
1771
  const f = o;
1758
1772
  for (; o < e.length; ) {
1759
- const d = e[o];
1773
+ const p = e[o];
1760
1774
  if (c)
1761
- d === l && e[o - 1] !== "\\" && (c = !1);
1762
- else if (d === '"' || d === "'")
1763
- c = !0, l = d;
1764
- else if (d === "{")
1775
+ p === l && e[o - 1] !== "\\" && (c = !1);
1776
+ else if (p === '"' || p === "'")
1777
+ c = !0, l = p;
1778
+ else if (p === "{")
1765
1779
  a++;
1766
- else if (d === "}" && (a--, a === 0)) {
1767
- const p = e.substring(f, o + 1);
1768
- for (i.push(p.trim()), o++; o < e.length && /[\s,]/.test(e[o]); )
1780
+ else if (p === "}" && (a--, a === 0)) {
1781
+ const h = e.substring(f, o + 1);
1782
+ for (i.push(h.trim()), o++; o < e.length && /[\s,]/.test(e[o]); )
1769
1783
  o++;
1770
1784
  break;
1771
1785
  }
@@ -1781,8 +1795,8 @@ function me(e, r, t) {
1781
1795
  else if (f === '"' || f === "'")
1782
1796
  c = !0, l = f;
1783
1797
  else if (f === ",") {
1784
- const d = e.substring(a, o);
1785
- for (i.push(d.trim()), o++; o < e.length && /\s/.test(e[o]); )
1798
+ const p = e.substring(a, o);
1799
+ for (i.push(p.trim()), o++; o < e.length && /\s/.test(e[o]); )
1786
1800
  o++;
1787
1801
  break;
1788
1802
  }
@@ -1800,13 +1814,13 @@ function me(e, r, t) {
1800
1814
  else {
1801
1815
  const a = i[n];
1802
1816
  if (a.startsWith("{") && a.endsWith("}")) {
1803
- const c = a.slice(1, -1), l = oe(c, s, t);
1817
+ const c = a.slice(1, -1), l = ae(c, s, t);
1804
1818
  i[n] = `{ ${l} }`;
1805
1819
  }
1806
1820
  }
1807
1821
  return i.join(", ");
1808
1822
  }
1809
- function Ht(e) {
1823
+ function Vt(e) {
1810
1824
  if (typeof e == "string") {
1811
1825
  if (e.startsWith('"') && e.endsWith('"') || e.startsWith("'") && e.endsWith("'"))
1812
1826
  return e;
@@ -1815,16 +1829,16 @@ function Ht(e) {
1815
1829
  }
1816
1830
  return String(e);
1817
1831
  }
1818
- async function hn({ command: e, options: r }) {
1832
+ async function gn({ command: e, options: r }) {
1819
1833
  try {
1820
- const t = await ee();
1834
+ const t = await re();
1821
1835
  if (r.all) {
1822
1836
  let l;
1823
1837
  switch (e) {
1824
1838
  case "read":
1825
1839
  return l = t || {}, console.log(JSON.stringify(l, null, 2)), l;
1826
1840
  case "delete":
1827
- return await X({}), {};
1841
+ return await Z({}), {};
1828
1842
  default:
1829
1843
  throw new Error("--all flag is only supported for read and delete commands");
1830
1844
  }
@@ -1840,7 +1854,7 @@ async function hn({ command: e, options: r }) {
1840
1854
  throw new Error("Configuration already exists. Use update command instead.");
1841
1855
  if (o === void 0)
1842
1856
  throw new Error("Value is required for create command");
1843
- a = Rt({
1857
+ a = Ut({
1844
1858
  key: i,
1845
1859
  value: o
1846
1860
  });
@@ -1850,7 +1864,7 @@ async function hn({ command: e, options: r }) {
1850
1864
  throw new Error("No configuration found. Use create command first.");
1851
1865
  if (o === void 0)
1852
1866
  throw new Error("Value is required for update command");
1853
- return await Dt(i, o), {};
1867
+ return await Wt(i, o), {};
1854
1868
  case "read":
1855
1869
  if (!t)
1856
1870
  throw new Error("No configuration found");
@@ -1861,7 +1875,7 @@ async function hn({ command: e, options: r }) {
1861
1875
  case "delete":
1862
1876
  if (!t)
1863
1877
  throw new Error("No configuration found");
1864
- a = Ut({
1878
+ a = It({
1865
1879
  key: i,
1866
1880
  config: t
1867
1881
  });
@@ -1875,12 +1889,12 @@ async function hn({ command: e, options: r }) {
1875
1889
  f = JSON.parse(r.replacements);
1876
1890
  } catch {
1877
1891
  try {
1878
- const d = r.replacements.replace(/\\"/g, '"');
1879
- f = JSON.parse(d);
1880
- } catch (d) {
1881
- const p = d instanceof Error ? d.message : String(d);
1892
+ const p = r.replacements.replace(/\\"/g, '"');
1893
+ f = JSON.parse(p);
1894
+ } catch (p) {
1895
+ const h = p instanceof Error ? p.message : String(p);
1882
1896
  throw new Error(
1883
- `Invalid JSON format for --replacements option: ${p}. Received: ${r.replacements}`
1897
+ `Invalid JSON format for --replacements option: ${h}. Received: ${r.replacements}`
1884
1898
  );
1885
1899
  }
1886
1900
  }
@@ -1888,8 +1902,8 @@ async function hn({ command: e, options: r }) {
1888
1902
  f = r.replacements;
1889
1903
  else
1890
1904
  throw new Error("Invalid format for --replacements option");
1891
- for (const [d, p] of Object.entries(f))
1892
- l.push({ placeholder: d, value: String(p) });
1905
+ for (const [p, h] of Object.entries(f))
1906
+ l.push({ placeholder: p, value: String(h) });
1893
1907
  } else if (n.length > 0 && s.length > 0)
1894
1908
  for (let f = 0; f < Math.min(n.length, s.length); f++)
1895
1909
  l.push({ placeholder: n[f], value: String(s[f]) });
@@ -1897,21 +1911,21 @@ async function hn({ command: e, options: r }) {
1897
1911
  throw new Error(
1898
1912
  "Replacements are required for replace command. Use -k/-v pairs or --replacements JSON"
1899
1913
  );
1900
- return await Wt(l), {};
1914
+ return await Dt(l), {};
1901
1915
  }
1902
1916
  default:
1903
1917
  throw new Error(`Unknown command: ${e}`);
1904
1918
  }
1905
- return await X(a), a;
1919
+ return await Z(a), a;
1906
1920
  } catch (t) {
1907
- m.error(t), g.error(`${t instanceof Error ? t.message : String(t)}`), process.exit(1);
1921
+ g.error(t), d.error(`${t instanceof Error ? t.message : String(t)}`), process.exit(1);
1908
1922
  }
1909
1923
  }
1910
1924
  export {
1911
- yt as buildCommand,
1912
- hn as configCommand,
1913
- fn as devCommand,
1914
- dn as manifestCommand,
1915
- un as presetsCommand,
1916
- pn as storeCommand
1925
+ bt as buildCommand,
1926
+ gn as configCommand,
1927
+ dn as devCommand,
1928
+ hn as manifestCommand,
1929
+ pn as presetsCommand,
1930
+ mn as storeCommand
1917
1931
  };