@hype-stack/cli 0.2.3 → 0.3.0

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.
@@ -3,21 +3,14 @@ import { Command as a } from "commander";
3
3
  import * as o from "@clack/prompts";
4
4
  import s from "node:fs/promises";
5
5
  import c from "picocolors";
6
- import l from "node:os";
7
- import u from "node:path";
8
- import { exec as d, spawn as f } from "node:child_process";
9
- import { downloadTemplate as p } from "giget";
10
- //#region \0rolldown/runtime.js
11
- var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescriptor, _ = Object.getOwnPropertyNames, v = Object.getPrototypeOf, y = Object.prototype.hasOwnProperty, b = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), x = (e, t, n, r) => {
12
- if (t && typeof t == "object" || typeof t == "function") for (var i = _(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !y.call(e, s) && s !== n && h(e, s, {
13
- get: ((e) => t[e]).bind(null, s),
14
- enumerable: !(r = g(t, s)) || r.enumerable
15
- });
16
- return e;
17
- }, S = (e, t, n) => (n = e == null ? {} : m(v(e)), x(t || !e || !e.__esModule ? h(n, "default", {
18
- value: e,
19
- enumerable: !0
20
- }) : n, e)), C = "0.0.1", w = "gh:BetterTyped/hype-stack", T = "stack.json", E = "/schema/stack.json", D = "https://api.hype-stack.dev", O = "HYPE_STACK_API_URL", ee = "https://hype-stack.dev", te = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/, k = [
6
+ import { createHash as l, randomBytes as u } from "node:crypto";
7
+ import d from "node:http";
8
+ import f from "node:os";
9
+ import p from "node:path";
10
+ import { exec as m, spawn as h } from "node:child_process";
11
+ import { downloadTemplate as g } from "giget";
12
+ //#region src/constants/constants.ts
13
+ var _ = "0.0.1", v = "gh:BetterTyped/hype-stack", y = "stack.json", b = "/schema/stack.json", x = "https://api.hype-stack.dev", S = "HYPE_STACK_API_URL", C = "https://www.hype-stack.dev", w = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/, T = [
21
14
  {
22
15
  value: "cursor",
23
16
  label: "Cursor",
@@ -35,111 +28,109 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
35
28
  value: "copilot",
36
29
  label: "GitHub Copilot"
37
30
  }
38
- ], A = k.map((e) => e.value), j = ".cursor/rules", ne = ".cursor", M = ".agents";
39
- function N() {
31
+ ], E = T.map((e) => e.value), D = ".cursor/rules", O = ".cursor", ee = ".agents";
32
+ function k() {
40
33
  let e = process.env.HYPE_STACK_API_URL;
41
- return e ? (re(e), e.replace(/\/+$/, "")) : D;
34
+ return e ? (te(e), e.replace(/\/+$/, "")) : x;
42
35
  }
43
- function P() {
36
+ function A() {
44
37
  let e = process.env.HYPE_STACK_WEB_URL;
45
- return e ? (re(e), e.replace(/\/+$/, "")) : ee;
38
+ return e ? (te(e), e.replace(/\/+$/, "")) : C;
46
39
  }
47
- function re(e) {
40
+ function te(e) {
48
41
  try {
49
42
  let t = new URL(e);
50
- if (!t.protocol.startsWith("http")) throw Error(`${O} must use http or https protocol, got "${t.protocol}"`);
43
+ if (!t.protocol.startsWith("http")) throw Error(`${S} must use http or https protocol, got "${t.protocol}"`);
51
44
  } catch (t) {
52
- throw t instanceof TypeError ? Error(`${O} is not a valid URL: "${e}"`, { cause: t }) : t;
45
+ throw t instanceof TypeError ? Error(`${S} is not a valid URL: "${e}"`, { cause: t }) : t;
53
46
  }
54
47
  }
55
- function ie() {
56
- return `${N()}${E}`;
48
+ function j() {
49
+ return `${k()}${b}`;
57
50
  }
58
51
  //#endregion
59
52
  //#region src/ui/theme.ts
60
- var F = (e) => `\x1b[38;5;208m${e}\x1b[39m`, ae = (e) => `\x1b[38;5;214m${e}\x1b[39m`, I = (e) => `\x1b[38;5;220m${e}\x1b[39m`, oe = (e) => `\x1b[38;5;33m${e}\x1b[39m`, L = (e) => `\x1b[38;5;39m${e}\x1b[39m`, se = (e) => `\x1b[38;5;81m${e}\x1b[39m`, ce = {
61
- orange: F,
62
- orangeBright: ae,
63
- amber: I,
64
- deepBlue: oe,
65
- skyBlue: L,
66
- lightBlue: se
67
- }, R = {
68
- brand: (e) => F(e),
69
- brandBold: (e) => c.bold(F(e)),
70
- accent: (e) => L(e),
71
- accentBold: (e) => c.bold(L(e)),
53
+ var M = (e) => `\x1b[38;5;208m${e}\x1b[39m`, N = (e) => `\x1b[38;5;214m${e}\x1b[39m`, P = (e) => `\x1b[38;5;220m${e}\x1b[39m`, F = (e) => `\x1b[38;5;33m${e}\x1b[39m`, I = (e) => `\x1b[38;5;39m${e}\x1b[39m`, ne = (e) => `\x1b[38;5;81m${e}\x1b[39m`, re = {
54
+ orange: M,
55
+ orangeBright: N,
56
+ amber: P,
57
+ deepBlue: F,
58
+ skyBlue: I,
59
+ lightBlue: ne
60
+ }, L = {
61
+ brand: (e) => M(e),
62
+ brandBold: (e) => c.bold(M(e)),
63
+ accent: (e) => I(e),
64
+ accentBold: (e) => c.bold(I(e)),
72
65
  success: (e) => c.green(e),
73
66
  error: (e) => c.red(e),
74
67
  warning: (e) => c.yellow(e),
75
68
  muted: (e) => c.dim(e),
76
69
  bold: (e) => c.bold(e),
77
70
  highlight: (e) => c.bold(c.white(e)),
78
- path: (e) => c.underline(L(e)),
79
- command: (e) => c.bold(I(e)),
71
+ path: (e) => c.underline(I(e)),
72
+ command: (e) => c.bold(P(e)),
80
73
  label: (e) => c.dim(c.bold(e))
81
74
  };
82
- function le(e, t = e) {
83
- return `\x1b]8;;${e}\x07${L(t)}\x1b]8;;\x07`;
84
- }
85
- var z = {
86
- arrow: F("›"),
87
- bullet: R.muted("·"),
88
- dash: R.muted("─"),
89
- corner: R.muted("╰"),
90
- pipe: R.muted("│"),
91
- dot: R.muted("•"),
92
- spark: I("✦"),
93
- sparkSmall: ae("✧"),
94
- bolt: I("⚡")
95
- }, ue = [
96
- I,
97
- I,
98
- ae,
75
+ function ie(e, t = e) {
76
+ return `\x1b]8;;${e}\x07${I(t)}\x1b]8;;\x07`;
77
+ }
78
+ var R = {
79
+ arrow: M("›"),
80
+ bullet: L.muted("·"),
81
+ dash: L.muted("─"),
82
+ corner: L.muted("╰"),
83
+ pipe: L.muted("│"),
84
+ dot: L.muted("•"),
85
+ spark: P("✦"),
86
+ sparkSmall: N("✧"),
87
+ bolt: P("⚡")
88
+ }, ae = [
89
+ P,
90
+ P,
91
+ N,
92
+ M,
99
93
  F,
100
- oe,
101
- L,
102
- se,
103
- se
94
+ I,
95
+ ne,
96
+ ne
104
97
  ];
105
- function de(e) {
98
+ function oe(e) {
106
99
  let t = [...e], n = t.length;
107
100
  return t.map((e, t) => {
108
101
  if (e === " " || e === "\n") return e;
109
102
  let r = t / Math.max(n - 1, 1);
110
- return ue[Math.min(Math.floor(r * ue.length), ue.length - 1)](e);
103
+ return ae[Math.min(Math.floor(r * ae.length), ae.length - 1)](e);
111
104
  }).join("");
112
105
  }
113
- function fe(e, t, n) {
106
+ function se(e, t, n) {
114
107
  return Math.round(e + (t - e) * n);
115
108
  }
116
- function pe(e, t) {
109
+ function ce(e, t) {
117
110
  let { start: n, end: r, angle: i = 1 } = t, a = Math.max(...e.map((e) => e.length), 1), o = Math.max(e.length - 1, 1);
118
111
  return e.map((e, t) => [...e].map((e, s) => {
119
112
  if (e === " ") return e;
120
113
  let c = s / Math.max(a - 1, 1), l = t / o, u = Math.min((c + l * i) / (1 + i), 1);
121
- return `\x1b[38;2;${fe(n[0], r[0], u)};${fe(n[1], r[1], u)};${fe(n[2], r[2], u)}m${e}\x1b[39m`;
114
+ return `\x1b[38;2;${se(n[0], r[0], u)};${se(n[1], r[1], u)};${se(n[2], r[2], u)}m${e}\x1b[39m`;
122
115
  }).join(""));
123
116
  }
124
117
  //#endregion
125
118
  //#region src/core/license.ts
126
- function me(e) {
127
- return `${P()}/packs/${e}`;
119
+ function le(e) {
120
+ return `${A()}/packs/${e}`;
128
121
  }
129
122
  //#endregion
130
123
  //#region ../../node_modules/.pnpm/@hyper-fetch+core@8.1.1/node_modules/@hyper-fetch/core/dist/index.mjs
131
- var he = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
132
- t.exports = {};
133
- })))(), 1), ge = Object.create, _e = Object.defineProperty, ve = Object.getOwnPropertyDescriptor, ye = Object.getOwnPropertyNames, be = Object.getPrototypeOf, xe = Object.prototype.hasOwnProperty, Se = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), Ce = (e, t, n, r) => {
134
- if (t && typeof t == "object" || typeof t == "function") for (var i = ye(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !xe.call(e, s) && s !== n && _e(e, s, {
124
+ var ue = Object.create, de = Object.defineProperty, fe = Object.getOwnPropertyDescriptor, pe = Object.getOwnPropertyNames, me = Object.getPrototypeOf, he = Object.prototype.hasOwnProperty, ge = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), _e = (e, t, n, r) => {
125
+ if (t && typeof t == "object" || typeof t == "function") for (var i = pe(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !he.call(e, s) && s !== n && de(e, s, {
135
126
  get: ((e) => t[e]).bind(null, s),
136
- enumerable: !(r = ve(t, s)) || r.enumerable
127
+ enumerable: !(r = fe(t, s)) || r.enumerable
137
128
  });
138
129
  return e;
139
- }, we = (e, t, n) => (n = e == null ? {} : ge(be(e)), Ce(t || !e || !e.__esModule ? _e(n, "default", {
130
+ }, ve = (e, t, n) => (n = e == null ? {} : ue(me(e)), _e(t || !e || !e.__esModule ? de(n, "default", {
140
131
  value: e,
141
132
  enumerable: !0
142
- }) : n, e)), Te = (e) => `${e.queryKey}_${Date.now().toString(36)}_${Math.random().toString(36).substring(2)}`, Ee = /* @__PURE__ */ we((/* @__PURE__ */ Se(((e, t) => {
133
+ }) : n, e)), ye = (e) => `${e.queryKey}_${Date.now().toString(36)}_${Math.random().toString(36).substring(2)}`, be = /* @__PURE__ */ ve((/* @__PURE__ */ ge(((e, t) => {
143
134
  var n = typeof Reflect == "object" ? Reflect : null, r = n && typeof n.apply == "function" ? n.apply : function(e, t, n) {
144
135
  return Function.prototype.apply.call(e, t, n);
145
136
  }, i = n && typeof n.ownKeys == "function" ? n.ownKeys : Object.getOwnPropertySymbols ? function(e) {
@@ -314,7 +305,7 @@ var he = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
314
305
  });
315
306
  else throw TypeError("The \"emitter\" argument must be of type EventEmitter. Received type " + typeof e);
316
307
  }
317
- })))()), De = (e) => `listen_${String(e)}`, Oe = class extends Ee.default {
308
+ })))()), xe = (e) => `listen_${String(e)}`, Se = class extends be.default {
318
309
  emitCallbacks = [];
319
310
  constructor(e) {
320
311
  super(e);
@@ -326,26 +317,26 @@ var he = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
326
317
  onEmit = (e) => (this.emitCallbacks?.push(e), () => {
327
318
  this.emitCallbacks = this.emitCallbacks?.filter((t) => t !== e);
328
319
  });
329
- onListener = (e, t) => (super.on(De(e), t), () => {
330
- super.off(De(e), t);
320
+ onListener = (e, t) => (super.on(xe(e), t), () => {
321
+ super.off(xe(e), t);
331
322
  });
332
- on = (e, t) => (super.on(e, t), super.emit(De(e), super.listeners(e).length), this);
333
- off = (e, t) => (super.off(e, t), super.emit(De(e), super.listeners(e).length), this);
323
+ on = (e, t) => (super.on(e, t), super.emit(xe(e), super.listeners(e).length), this);
324
+ off = (e, t) => (super.off(e, t), super.emit(xe(e), super.listeners(e).length), this);
334
325
  addListener = this.on;
335
326
  removeListener = this.off;
336
- }, ke = class {
337
- emitter = new Oe();
338
- events = Pe(this.emitter);
327
+ }, Ce = class {
328
+ emitter = new Se();
329
+ events = Oe(this.emitter);
339
330
  isBrowser;
340
331
  isOnline;
341
332
  isFocused;
342
333
  constructor(e) {
343
334
  this.options = e, this.emitter?.setMaxListeners(1e3);
344
- let { initiallyFocused: t = V.initiallyFocused, initiallyOnline: n = V.initiallyOnline } = this.options || V;
345
- this.setInitialFocus(t), this.setInitialOnline(n), this.isBrowser = je();
335
+ let { initiallyFocused: t = B.initiallyFocused, initiallyOnline: n = B.initiallyOnline } = this.options || B;
336
+ this.setInitialFocus(t), this.setInitialOnline(n), this.isBrowser = Te();
346
337
  }
347
338
  initialize = () => {
348
- let { focusEvent: e = V.focusEvent, onlineEvent: t = V.onlineEvent } = this.options || V;
339
+ let { focusEvent: e = B.focusEvent, onlineEvent: t = B.onlineEvent } = this.options || B;
349
340
  e(this.setFocused), t(this.setOnline);
350
341
  };
351
342
  setInitialFocus = async (e) => {
@@ -360,51 +351,51 @@ var he = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
360
351
  setOnline = (e) => {
361
352
  this.isOnline = e, e ? this.events.emitOnline() : this.events.emitOffline();
362
353
  };
363
- }, Ae = () => {
354
+ }, we = () => {
364
355
  try {
365
356
  return !!(window && window.addEventListener);
366
357
  } catch {
367
358
  /* istanbul ignore next */
368
359
  return !1;
369
360
  }
370
- }, je = () => {
361
+ }, Te = () => {
371
362
  try {
372
- return !!(Ae() && window.document && window.document.addEventListener);
363
+ return !!(we() && window.document && window.document.addEventListener);
373
364
  } catch {
374
365
  /* istanbul ignore next */
375
366
  return !1;
376
367
  }
377
- }, Me = (e, t, n) => Ae() ? (window.addEventListener(e, t, n), () => window.removeEventListener(e, t, n)) : () => null, Ne = (e, t, n) => je() ? (window.document.addEventListener(e, t, n), () => window.document.removeEventListener(e, t, n)) : () => null, Pe = (e) => ({
368
+ }, Ee = (e, t, n) => we() ? (window.addEventListener(e, t, n), () => window.removeEventListener(e, t, n)) : () => null, De = (e, t, n) => Te() ? (window.document.addEventListener(e, t, n), () => window.document.removeEventListener(e, t, n)) : () => null, Oe = (e) => ({
378
369
  emitFocus: () => {
379
- e.emit(B.FOCUS);
370
+ e.emit(z.FOCUS);
380
371
  },
381
372
  emitBlur: () => {
382
- e.emit(B.BLUR);
373
+ e.emit(z.BLUR);
383
374
  },
384
375
  emitOnline: () => {
385
- e.emit(B.ONLINE);
376
+ e.emit(z.ONLINE);
386
377
  },
387
378
  emitOffline: () => {
388
- e.emit(B.OFFLINE);
379
+ e.emit(z.OFFLINE);
389
380
  },
390
- onFocus: (t) => (e.on(B.FOCUS, t), () => e.removeListener(B.FOCUS, t)),
391
- onBlur: (t) => (e.on(B.BLUR, t), () => e.removeListener(B.BLUR, t)),
392
- onOnline: (t) => (e.on(B.ONLINE, t), () => e.removeListener(B.ONLINE, t)),
393
- onOffline: (t) => (e.on(B.OFFLINE, t), () => e.removeListener(B.OFFLINE, t))
394
- }), B = /* @__PURE__ */ function(e) {
381
+ onFocus: (t) => (e.on(z.FOCUS, t), () => e.removeListener(z.FOCUS, t)),
382
+ onBlur: (t) => (e.on(z.BLUR, t), () => e.removeListener(z.BLUR, t)),
383
+ onOnline: (t) => (e.on(z.ONLINE, t), () => e.removeListener(z.ONLINE, t)),
384
+ onOffline: (t) => (e.on(z.OFFLINE, t), () => e.removeListener(z.OFFLINE, t))
385
+ }), z = /* @__PURE__ */ function(e) {
395
386
  return e.FOCUS = "focus", e.BLUR = "blur", e.ONLINE = "online", e.OFFLINE = "offline", e;
396
- }({}), V = {
387
+ }({}), B = {
397
388
  initiallyFocused: !0,
398
389
  initiallyOnline: !0,
399
390
  focusEvent: (e) => {
400
- Ne("visibilitychange", () => e(!0)), Me("focus", () => e(!0)), Me("blur", () => e(!1));
391
+ De("visibilitychange", () => e(!0)), Ee("focus", () => e(!0)), Ee("blur", () => e(!1));
401
392
  },
402
393
  onlineEvent: (e) => {
403
- Me("online", () => e(!0)), Me("offline", () => e(!1));
394
+ Ee("online", () => e(!0)), Ee("offline", () => e(!1));
404
395
  }
405
- }, Fe = class {
406
- emitter = new Oe();
407
- events = dt(this.emitter);
396
+ }, ke = class {
397
+ emitter = new Se();
398
+ events = at(this.emitter);
408
399
  constructor() {
409
400
  this.emitter?.setMaxListeners(1e3);
410
401
  }
@@ -441,71 +432,71 @@ var he = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
441
432
  });
442
433
  });
443
434
  };
444
- }, Ie = () => "loading-event-any", Le = (e) => `${e}-loading-event`, Re = (e) => `${e}-loading-cache-event`, ze = (e) => `${e}-loading-event-by-id`, Be = () => "remove-event-any", Ve = (e) => `${e}-remove-event`, He = (e) => `${e}-remove-event-by-id`, Ue = () => "request-abort-any", We = (e) => `${e}-request-abort`, Ge = (e) => `${e}-request-abort-by-id`, Ke = () => "response-any", qe = (e) => `${e}-response`, Je = (e) => `${e}-response-by-id`, Ye = () => "request-start-any", Xe = (e) => `${e}-request-start`, Ze = (e) => `${e}-request-start-by-id`, Qe = () => "response-start-any", $e = (e) => `${e}-response-start`, et = (e) => `${e}-response-start-by-id`, tt = () => "request-progress-any", nt = (e) => `${e}-request-progress`, rt = (e) => `${e}-request-progress-by-id`, it = () => "response-progress-any", at = (e) => `${e}-response-progress`, ot = (e) => `${e}-response-progress-by-id`, st = () => "request-deduplicated-any", ct = (e) => `${e}-query-request-deduplicated`, lt = (e) => `${e}-cache-request-deduplicated`, ut = (e) => `${e}-request-deduplicated-by-id`, dt = (e) => ({
435
+ }, Ae = () => "loading-event-any", je = (e) => `${e}-loading-event`, Me = (e) => `${e}-loading-cache-event`, Ne = (e) => `${e}-loading-event-by-id`, Pe = () => "remove-event-any", Fe = (e) => `${e}-remove-event`, Ie = (e) => `${e}-remove-event-by-id`, Le = () => "request-abort-any", Re = (e) => `${e}-request-abort`, ze = (e) => `${e}-request-abort-by-id`, Be = () => "response-any", Ve = (e) => `${e}-response`, He = (e) => `${e}-response-by-id`, Ue = () => "request-start-any", We = (e) => `${e}-request-start`, Ge = (e) => `${e}-request-start-by-id`, Ke = () => "response-start-any", qe = (e) => `${e}-response-start`, Je = (e) => `${e}-response-start-by-id`, Ye = () => "request-progress-any", Xe = (e) => `${e}-request-progress`, Ze = (e) => `${e}-request-progress-by-id`, Qe = () => "response-progress-any", $e = (e) => `${e}-response-progress`, et = (e) => `${e}-response-progress-by-id`, tt = () => "request-deduplicated-any", nt = (e) => `${e}-query-request-deduplicated`, rt = (e) => `${e}-cache-request-deduplicated`, it = (e) => `${e}-request-deduplicated-by-id`, at = (e) => ({
445
436
  emitDeduplicated: (t, n = !1) => {
446
- e.emit(st(), t, n), e.emit(ut(t.requestId), t, n), e.emit(lt(t.request.cacheKey), t, n), e.emit(ct(t.request.queryKey), t, n);
437
+ e.emit(tt(), t, n), e.emit(it(t.requestId), t, n), e.emit(rt(t.request.cacheKey), t, n), e.emit(nt(t.request.queryKey), t, n);
447
438
  },
448
439
  emitLoading: (t, n = !1) => {
449
- e.emit(Ie(), t, n), e.emit(ze(t.requestId), t, n), e.emit(Re(t.request.cacheKey), t, n), e.emit(Le(t.request.queryKey), t, n);
440
+ e.emit(Ae(), t, n), e.emit(Ne(t.requestId), t, n), e.emit(Me(t.request.cacheKey), t, n), e.emit(je(t.request.queryKey), t, n);
450
441
  },
451
442
  emitRequestStart: (t, n = !1) => {
452
- e.emit(Ye(), t, n), e.emit(Ze(t.requestId), t, n), e.emit(Xe(t.request.queryKey), t, n);
443
+ e.emit(Ue(), t, n), e.emit(Ge(t.requestId), t, n), e.emit(We(t.request.queryKey), t, n);
453
444
  },
454
445
  emitResponseStart: (t, n = !1) => {
455
- e.emit(Qe(), t, n), e.emit(et(t.requestId), t, n), e.emit($e(t.request.queryKey), t, n);
446
+ e.emit(Ke(), t, n), e.emit(Je(t.requestId), t, n), e.emit(qe(t.request.queryKey), t, n);
456
447
  },
457
448
  emitUploadProgress: (t, n = !1) => {
458
- e.emit(tt(), t, n), e.emit(rt(t.requestId), t, n), e.emit(nt(t.request.queryKey), t, n);
449
+ e.emit(Ye(), t, n), e.emit(Ze(t.requestId), t, n), e.emit(Xe(t.request.queryKey), t, n);
459
450
  },
460
451
  emitDownloadProgress: (t, n = !1) => {
461
- e.emit(it(), t, n), e.emit(ot(t.requestId), t, n), e.emit(at(t.request.queryKey), t, n);
452
+ e.emit(Qe(), t, n), e.emit(et(t.requestId), t, n), e.emit($e(t.request.queryKey), t, n);
462
453
  },
463
454
  emitResponse: (t, n = !1) => {
464
- e.emit(Ke(), t, n), e.emit(Je(t.requestId), t, n), e.emit(qe(t.request.cacheKey), t, n);
455
+ e.emit(Be(), t, n), e.emit(He(t.requestId), t, n), e.emit(Ve(t.request.cacheKey), t, n);
465
456
  },
466
457
  emitAbort: (t, n = !1) => {
467
- e.emit(Ue(), t, n), e.emit(Ge(t.requestId), t, n), e.emit(We(t.request.abortKey), t, n);
458
+ e.emit(Le(), t, n), e.emit(ze(t.requestId), t, n), e.emit(Re(t.request.abortKey), t, n);
468
459
  },
469
460
  emitRemove: (t, n = !1) => {
470
- e.emit(Be(), t, n), e.emit(He(t.requestId), t, n), e.emit(Ve(t.request.queryKey), t, n);
461
+ e.emit(Pe(), t, n), e.emit(Ie(t.requestId), t, n), e.emit(Fe(t.request.queryKey), t, n);
471
462
  },
472
- onDeduplicated: (t) => (e.on(st(), t), () => e.removeListener(st(), t)),
473
- onDeduplicatedByQueue: (t, n) => (e.on(ct(t), n), () => e.removeListener(ct(t), n)),
474
- onDeduplicatedByCache: (t, n) => (e.on(lt(t), n), () => e.removeListener(lt(t), n)),
475
- onDeduplicatedById: (t, n) => (e.on(ut(t), n), () => e.removeListener(ut(t), n)),
476
- onLoading: (t) => (e.on(Ie(), t), () => e.removeListener(Ie(), t)),
477
- onLoadingByQueue: (t, n) => (e.on(Le(t), n), () => e.removeListener(Le(t), n)),
478
- onLoadingByCache: (t, n) => (e.on(Re(t), n), () => e.removeListener(Re(t), n)),
479
- onLoadingById: (t, n) => (e.on(ze(t), n), () => e.removeListener(ze(t), n)),
480
- onRequestStart: (t) => (e.on(Ye(), t), () => e.removeListener(Ye(), t)),
481
- onRequestStartByQueue: (t, n) => (e.on(Xe(t), n), () => e.removeListener(Xe(t), n)),
482
- onRequestStartById: (t, n) => (e.on(Ze(t), n), () => e.removeListener(Ze(t), n)),
483
- onResponseStart: (t) => (e.on(Qe(), t), () => e.removeListener(Qe(), t)),
484
- onResponseStartByQueue: (t, n) => (e.on($e(t), n), () => e.removeListener($e(t), n)),
485
- onResponseStartById: (t, n) => (e.on(et(t), n), () => e.removeListener(et(t), n)),
486
- onUploadProgress: (t) => (e.on(tt(), t), () => e.removeListener(tt(), t)),
487
- onUploadProgressByQueue: (t, n) => (e.on(nt(t), n), () => e.removeListener(nt(t), n)),
488
- onUploadProgressById: (t, n) => (e.on(rt(t), n), () => e.removeListener(rt(t), n)),
489
- onDownloadProgress: (t) => (e.on(it(), t), () => e.removeListener(it(), t)),
490
- onDownloadProgressByQueue: (t, n) => (e.on(at(t), n), () => e.removeListener(at(t), n)),
491
- onDownloadProgressById: (t, n) => (e.on(ot(t), n), () => e.removeListener(ot(t), n)),
492
- onResponse: (t) => (e.on(Ke(), t), () => e.removeListener(Ke(), t)),
493
- onResponseByCache: (t, n) => (e.on(qe(t), n), () => e.removeListener(qe(t), n)),
494
- onResponseById: (t, n) => (e.on(Je(t), n), () => e.removeListener(Je(t), n)),
495
- onAbort: (t) => (e.on(Ue(), t), () => e.removeListener(Ue(), t)),
496
- onAbortByKey: (t, n) => (e.on(We(t), n), () => e.removeListener(We(t), n)),
497
- onAbortById: (t, n) => (e.on(Ge(t), n), () => e.removeListener(Ge(t), n)),
498
- onRemove: (t) => (e.on(Be(), t), () => e.removeListener(Be(), t)),
499
- onRemoveByQueue: (t, n) => (e.on(Ve(t), n), () => e.removeListener(Ve(t), n)),
500
- onRemoveById: (t, n) => (e.on(He(t), n), () => e.removeListener(He(t), n))
501
- }), ft = class {
463
+ onDeduplicated: (t) => (e.on(tt(), t), () => e.removeListener(tt(), t)),
464
+ onDeduplicatedByQueue: (t, n) => (e.on(nt(t), n), () => e.removeListener(nt(t), n)),
465
+ onDeduplicatedByCache: (t, n) => (e.on(rt(t), n), () => e.removeListener(rt(t), n)),
466
+ onDeduplicatedById: (t, n) => (e.on(it(t), n), () => e.removeListener(it(t), n)),
467
+ onLoading: (t) => (e.on(Ae(), t), () => e.removeListener(Ae(), t)),
468
+ onLoadingByQueue: (t, n) => (e.on(je(t), n), () => e.removeListener(je(t), n)),
469
+ onLoadingByCache: (t, n) => (e.on(Me(t), n), () => e.removeListener(Me(t), n)),
470
+ onLoadingById: (t, n) => (e.on(Ne(t), n), () => e.removeListener(Ne(t), n)),
471
+ onRequestStart: (t) => (e.on(Ue(), t), () => e.removeListener(Ue(), t)),
472
+ onRequestStartByQueue: (t, n) => (e.on(We(t), n), () => e.removeListener(We(t), n)),
473
+ onRequestStartById: (t, n) => (e.on(Ge(t), n), () => e.removeListener(Ge(t), n)),
474
+ onResponseStart: (t) => (e.on(Ke(), t), () => e.removeListener(Ke(), t)),
475
+ onResponseStartByQueue: (t, n) => (e.on(qe(t), n), () => e.removeListener(qe(t), n)),
476
+ onResponseStartById: (t, n) => (e.on(Je(t), n), () => e.removeListener(Je(t), n)),
477
+ onUploadProgress: (t) => (e.on(Ye(), t), () => e.removeListener(Ye(), t)),
478
+ onUploadProgressByQueue: (t, n) => (e.on(Xe(t), n), () => e.removeListener(Xe(t), n)),
479
+ onUploadProgressById: (t, n) => (e.on(Ze(t), n), () => e.removeListener(Ze(t), n)),
480
+ onDownloadProgress: (t) => (e.on(Qe(), t), () => e.removeListener(Qe(), t)),
481
+ onDownloadProgressByQueue: (t, n) => (e.on($e(t), n), () => e.removeListener($e(t), n)),
482
+ onDownloadProgressById: (t, n) => (e.on(et(t), n), () => e.removeListener(et(t), n)),
483
+ onResponse: (t) => (e.on(Be(), t), () => e.removeListener(Be(), t)),
484
+ onResponseByCache: (t, n) => (e.on(Ve(t), n), () => e.removeListener(Ve(t), n)),
485
+ onResponseById: (t, n) => (e.on(He(t), n), () => e.removeListener(He(t), n)),
486
+ onAbort: (t) => (e.on(Le(), t), () => e.removeListener(Le(), t)),
487
+ onAbortByKey: (t, n) => (e.on(Re(t), n), () => e.removeListener(Re(t), n)),
488
+ onAbortById: (t, n) => (e.on(ze(t), n), () => e.removeListener(ze(t), n)),
489
+ onRemove: (t) => (e.on(Pe(), t), () => e.removeListener(Pe(), t)),
490
+ onRemoveByQueue: (t, n) => (e.on(Fe(t), n), () => e.removeListener(Fe(t), n)),
491
+ onRemoveById: (t, n) => (e.on(Ie(t), n), () => e.removeListener(Ie(t), n))
492
+ }), ot = class {
502
493
  logger;
503
494
  level;
504
495
  modules;
505
- emitter = new Ee.default();
496
+ emitter = new be.default();
506
497
  client;
507
498
  constructor(e) {
508
- this.options = e, this.emitter?.setMaxListeners(1e3), this.logger = this.options?.logger || ht, this.level = this.options?.level || "warning", this.modules = this.options?.modules;
499
+ this.options = e, this.emitter?.setMaxListeners(1e3), this.logger = this.options?.logger || lt, this.level = this.options?.level || "warning", this.modules = this.options?.modules;
509
500
  }
510
501
  setSeverity = (e) => {
511
502
  this.level = e;
@@ -536,58 +527,58 @@ var he = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
536
527
  })
537
528
  });
538
529
  log = (e) => {
539
- this.client.debug && (gt.indexOf(this.level) <= gt.indexOf(e.level) || this.modules && !this.modules.includes(e.module) || this.logger(e));
530
+ this.client.debug && (ut.indexOf(this.level) <= ut.indexOf(e.level) || this.modules && !this.modules.includes(e.module) || this.logger(e));
540
531
  };
541
- }, pt = () => `${(/* @__PURE__ */ new Date()).toLocaleTimeString()}`, mt = (e) => e.type === "request" || e.type === "response" ? `${e.extra.request.endpoint}` : `[${e.module}]`, ht = (e) => {
542
- let t = vt[e.level], n = yt[e.level], r = `%c[${pt()}]%c${e.title}%c${mt(e)}`, i = `${t}${n}font-weight:600;border-radius: 4px 0 0 4px;`, a = `${t}${n}font-weight:600;`, o = `${t}font-weight:normal;border-radius: 0 4px 4px 0;`;
532
+ }, st = () => `${(/* @__PURE__ */ new Date()).toLocaleTimeString()}`, ct = (e) => e.type === "request" || e.type === "response" ? `${e.extra.request.endpoint}` : `[${e.module}]`, lt = (e) => {
533
+ let t = ft[e.level], n = pt[e.level], r = `%c[${st()}]%c${e.title}%c${ct(e)}`, i = `${t}${n}font-weight:600;border-radius: 4px 0 0 4px;`, a = `${t}${n}font-weight:600;`, o = `${t}font-weight:normal;border-radius: 0 4px 4px 0;`;
543
534
  e.extra && Object.keys(e.extra)?.length ? (console.groupCollapsed(r, i, a, o), console.log(e.extra), console.groupEnd()) : console.log(r, t);
544
- }, gt = [
535
+ }, ut = [
545
536
  "error",
546
537
  "warning",
547
538
  "info",
548
539
  "debug"
549
- ], _t = "padding:2px 5px;", vt = {
550
- error: `${_t};background:#db252520;`,
551
- warning: `${_t};background:#e1941e20;`,
552
- info: `${_t};background:#1e74e120;`,
553
- debug: `${_t};background:#00000020;`
554
- }, yt = {
540
+ ], dt = "padding:2px 5px;", ft = {
541
+ error: `${dt};background:#db252520;`,
542
+ warning: `${dt};background:#e1941e20;`,
543
+ info: `${dt};background:#1e74e120;`,
544
+ debug: `${dt};background:#00000020;`
545
+ }, pt = {
555
546
  error: "color:#ff3737;",
556
547
  warning: "color:#ffc107;",
557
548
  info: "color:#34a8ff;",
558
549
  debug: "color:#cccccc;"
559
- }, bt = class extends Error {
550
+ }, mt = class extends Error {
560
551
  constructor() {
561
552
  super("Request timeout"), this.name = "TimeoutError";
562
553
  }
563
- }, xt = class extends Error {
554
+ }, ht = class extends Error {
564
555
  constructor() {
565
556
  super("Request aborted"), this.name = "AbortError";
566
557
  }
567
- }, St = class extends Error {
558
+ }, gt = class extends Error {
568
559
  constructor() {
569
560
  super("Request deleted"), this.name = "DeletedError";
570
561
  }
571
- }, H = class extends Error {
562
+ }, _t = class extends Error {
572
563
  description;
573
564
  constructor(e) {
574
565
  super("Request processing error"), this.description = e, this.name = "RequestProcessingError";
575
566
  }
576
- }, Ct = class extends Error {
567
+ }, vt = class extends Error {
577
568
  description;
578
569
  constructor(e) {
579
570
  super("Unexpected error"), this.description = e, this.name = "UnexpectedError";
580
571
  }
581
- }, U = (e) => e === "timeout" ? new bt() : e === "abort" ? new xt() : e === "deleted" ? new St() : e === "processing" ? new H() : new Ct(), wt = (e) => {
572
+ }, V = (e) => e === "timeout" ? new mt() : e === "abort" ? new ht() : e === "deleted" ? new gt() : e === "processing" ? new _t() : new vt(), yt = (e) => {
582
573
  try {
583
574
  return JSON.stringify(e);
584
575
  } catch {
585
576
  return "";
586
577
  }
587
- }, Tt = (e) => {
588
- let t = Ae() && e.payload instanceof FormData, n = typeof e.payload == "object" && e.payload !== null, r = {};
578
+ }, bt = (e) => {
579
+ let t = we() && e.payload instanceof FormData, n = typeof e.payload == "object" && e.payload !== null, r = {};
589
580
  return !t && n && (r["Content-Type"] = "application/json"), Object.assign(r, e.headers), r;
590
- }, Et = (e) => Ae() && e instanceof FormData ? e : wt(e), Dt = [
581
+ }, xt = (e) => we() && e instanceof FormData ? e : yt(e), St = [
591
582
  "onBeforeSent",
592
583
  "onRequestStart",
593
584
  "onResponseStart",
@@ -596,7 +587,7 @@ var he = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
596
587
  "onResponse",
597
588
  "onRemove"
598
589
  ];
599
- function Ot(e) {
590
+ function Ct(e) {
600
591
  let t = {
601
592
  onBeforeSent: [],
602
593
  onRequestStart: [],
@@ -606,7 +597,7 @@ function Ot(e) {
606
597
  onResponse: [],
607
598
  onRemove: []
608
599
  };
609
- e && Dt.forEach((n) => {
600
+ e && St.forEach((n) => {
610
601
  t[n] = [...e[n]];
611
602
  });
612
603
  let n = (e) => (n) => (t[e].push(n), () => {
@@ -628,15 +619,15 @@ function Ot(e) {
628
619
  },
629
620
  __snapshot() {
630
621
  let e = {};
631
- return Dt.forEach((n) => {
622
+ return St.forEach((n) => {
632
623
  e[n] = [...t[n]];
633
624
  }), e;
634
625
  }
635
626
  };
636
627
  }
637
- var kt = /* @__PURE__ */ function(e) {
628
+ var wt = /* @__PURE__ */ function(e) {
638
629
  return e.GET = "GET", e.POST = "POST", e.PUT = "PUT", e.PATCH = "PATCH", e.DELETE = "DELETE", e;
639
- }({}), W = (e, t) => t ? `${t}__${e}` : e, At = (e) => {
630
+ }({}), H = (e, t) => t ? `${t}__${e}` : e, Tt = (e) => {
640
631
  try {
641
632
  if (typeof e == "string") return e;
642
633
  if (e == null) return "";
@@ -646,13 +637,13 @@ var kt = /* @__PURE__ */ function(e) {
646
637
  } catch {
647
638
  return "";
648
639
  }
649
- }, jt = ({ loaded: e, total: t }) => !e || !t ? 0 : Number((e * 100 / t).toFixed(0)), Mt = (e, t, { total: n, loaded: r }) => {
640
+ }, Et = ({ loaded: e, total: t }) => !e || !t ? 0 : Number((e * 100 / t).toFixed(0)), Dt = (e, t, { total: n, loaded: r }) => {
650
641
  let i = r / (t - +e || 1), a = Math.max(n, r), o = a - r, s = i ? o / i : null;
651
642
  return {
652
643
  timeLeft: a === r ? 0 : s,
653
644
  sizeLeft: o
654
645
  };
655
- }, Nt = (e, t, n) => {
646
+ }, Ot = (e, t, n) => {
656
647
  let { total: r, loaded: i } = n;
657
648
  if (Number.isNaN(r) || Number.isNaN(i)) return {
658
649
  progress: 0,
@@ -662,23 +653,23 @@ var kt = /* @__PURE__ */ function(e) {
662
653
  loaded: 0,
663
654
  startTimestamp: +e
664
655
  };
665
- let { timeLeft: a, sizeLeft: o } = Mt(e, t, n);
656
+ let { timeLeft: a, sizeLeft: o } = Dt(e, t, n);
666
657
  return {
667
- progress: jt(n),
658
+ progress: Et(n),
668
659
  timeLeft: a,
669
660
  sizeLeft: o,
670
661
  total: r,
671
662
  loaded: i,
672
663
  startTimestamp: +e
673
664
  };
674
- }, Pt = (e) => `${e.method}_${e.requestOptions.endpoint}_${e.cancelable}`, Ft = (e, t) => `${At(e.method)}_${t ? e.requestOptions.endpoint : At(e.endpoint)}_${t ? "" : At(e.queryParams)}`, It = (e, t = "auto") => {
675
- let { fetchDispatcher: n, submitDispatcher: r } = e.client, i = e.method === kt.GET, a = t === "auto" && i || t === "fetch";
665
+ }, kt = (e) => `${e.method}_${e.requestOptions.endpoint}_${e.cancelable}`, At = (e, t) => `${Tt(e.method)}_${t ? e.requestOptions.endpoint : Tt(e.endpoint)}_${t ? "" : Tt(e.queryParams)}`, jt = (e, t = "auto") => {
666
+ let { fetchDispatcher: n, submitDispatcher: r } = e.client, i = e.method === wt.GET, a = t === "auto" && i || t === "fetch";
676
667
  return [a ? n : r, a];
677
- }, Lt = async (e, t) => {
668
+ }, Mt = async (e, t) => {
678
669
  let n = e.unstable_responseMapper?.(t);
679
670
  return n instanceof Promise ? await n : n || t;
680
- }, Rt = async (e, t) => {
681
- let { client: n } = e, { requestManager: r } = n, [i] = It(e, t?.dispatcherType), a;
671
+ }, Nt = async (e, t) => {
672
+ let { client: n } = e, { requestManager: r } = n, [i] = jt(e, t?.dispatcherType), a;
682
673
  if (e.optimistic) try {
683
674
  a = await e.optimistic({
684
675
  request: e,
@@ -754,7 +745,7 @@ var kt = /* @__PURE__ */ function(e) {
754
745
  data: null,
755
746
  status: null,
756
747
  success: !1,
757
- error: U("deleted"),
748
+ error: V("deleted"),
758
749
  extra: e.client.adapter.defaultExtra,
759
750
  requestTimestamp: +/* @__PURE__ */ new Date(),
760
751
  responseTimestamp: +/* @__PURE__ */ new Date()
@@ -765,9 +756,9 @@ var kt = /* @__PURE__ */ function(e) {
765
756
  u(), d(), f(), p(), m(), h();
766
757
  }
767
758
  });
768
- }, zt = /* @__PURE__ */ function(e) {
759
+ }, Pt = /* @__PURE__ */ function(e) {
769
760
  return e[e.SEC = 1e3] = "SEC", e[e.MIN = 6e4] = "MIN", e[e.HOUR = 36e5] = "HOUR", e[e.DAY = 864e5] = "DAY", e[e.WEEK = 6048e5] = "WEEK", e[e.MONTH_30 = 2592e6] = "MONTH_30", e[e.MONTH_31 = 26784e5] = "MONTH_31", e[e.YEAR = 31536e6] = "YEAR", e[e.YEAR_LEAP = 316224e5] = "YEAR_LEAP", e;
770
- }({}), Bt = class e {
761
+ }({}), Ft = class e {
771
762
  endpoint;
772
763
  headers;
773
764
  auth;
@@ -791,7 +782,7 @@ var kt = /* @__PURE__ */ function(e) {
791
782
  deduplicate;
792
783
  deduplicateTime;
793
784
  scope;
794
- $hooks = Ot();
785
+ $hooks = Ct();
795
786
  isMockerEnabled = !1;
796
787
  unstable_mock;
797
788
  unstable_payloadMapper;
@@ -808,7 +799,7 @@ var kt = /* @__PURE__ */ function(e) {
808
799
  updatedQueryKey;
809
800
  constructor(e, t, n) {
810
801
  this.client = e, this.requestOptions = t, this.initialRequestConfiguration = n;
811
- let { endpoint: r, headers: i, auth: a = !0, method: o = e.adapter.defaultMethod, options: s, cancelable: c = !1, retry: l = 0, retryTime: u = 500, cacheTime: d = zt.MIN * 5, cache: f = !0, staleTime: p = zt.MIN * 5, queued: m = !1, offline: h = !0, abortKey: g, cacheKey: _, queryKey: v, deduplicate: y = !1, deduplicateTime: b = null } = {
802
+ let { endpoint: r, headers: i, auth: a = !0, method: o = e.adapter.defaultMethod, options: s, cancelable: c = !1, retry: l = 0, retryTime: u = 500, cacheTime: d = Pt.MIN * 5, cache: f = !0, staleTime: p = Pt.MIN * 5, queued: m = !1, offline: h = !0, abortKey: g, cacheKey: _, queryKey: v, deduplicate: y = !1, deduplicateTime: b = null } = {
812
803
  ...this.client.adapter.unstable_getRequestDefaults?.(t),
813
804
  ...t
814
805
  };
@@ -918,11 +909,11 @@ var kt = /* @__PURE__ */ function(e) {
918
909
  payload: t?.payload || this.payload,
919
910
  params: t?.params || this.params
920
911
  }, r = new e(this.client, this.requestOptions, n);
921
- return r.unstable_payloadMapper = this.unstable_payloadMapper, r.unstable_responseMapper = this.unstable_responseMapper, r.unstable_requestMapper = this.unstable_requestMapper, r.retryOnError = this.retryOnError, r.unstable_mock = this.unstable_mock, r.isMockerEnabled = this.isMockerEnabled, r.optimistic = this.optimistic, r.$hooks = Ot(this.$hooks.__snapshot()), r;
912
+ return r.unstable_payloadMapper = this.unstable_payloadMapper, r.unstable_responseMapper = this.unstable_responseMapper, r.unstable_requestMapper = this.unstable_requestMapper, r.retryOnError = this.retryOnError, r.unstable_mock = this.unstable_mock, r.isMockerEnabled = this.isMockerEnabled, r.optimistic = this.optimistic, r.$hooks = Ct(this.$hooks.__snapshot()), r;
922
913
  }
923
914
  abort = () => {
924
915
  let { requestManager: e } = this.client;
925
- return e.abortByKey(W(this.abortKey, this.scope)), this.clone();
916
+ return e.abortByKey(H(this.abortKey, this.scope)), this.clone();
926
917
  };
927
918
  dehydrate = (e) => {
928
919
  let { response: t, override: n = !0 } = e || {};
@@ -937,7 +928,7 @@ var kt = /* @__PURE__ */ function(e) {
937
928
  cache: !0,
938
929
  response: t
939
930
  };
940
- let r = this.client.cache.get(W(this.cacheKey, this.scope));
931
+ let r = this.client.cache.get(H(this.cacheKey, this.scope));
941
932
  if (r) return {
942
933
  override: n,
943
934
  cacheTime: this.cacheTime,
@@ -959,7 +950,7 @@ var kt = /* @__PURE__ */ function(e) {
959
950
  };
960
951
  };
961
952
  read() {
962
- let e = this.client.cache.get(W(this.cacheKey, this.scope));
953
+ let e = this.client.cache.get(H(this.cacheKey, this.scope));
963
954
  if (e) return {
964
955
  data: e.data,
965
956
  error: e.error,
@@ -971,7 +962,7 @@ var kt = /* @__PURE__ */ function(e) {
971
962
  };
972
963
  }
973
964
  exec = async (e) => {
974
- let { adapter: t, requestManager: n } = this.client, r = this.clone(e), i = this.client.unstable_requestIdMapper(this), a = W(this.abortKey, this.scope);
965
+ let { adapter: t, requestManager: n } = this.client, r = this.clone(e), i = this.client.unstable_requestIdMapper(this), a = H(this.abortKey, this.scope);
975
966
  n.addAbortController(a, i);
976
967
  let o = await t.fetch(r, i);
977
968
  return n.removeAbortController(a, i), r.unstable_responseMapper ? r.unstable_responseMapper(o) : o;
@@ -981,17 +972,17 @@ var kt = /* @__PURE__ */ function(e) {
981
972
  ...e,
982
973
  cachePolicy: void 0
983
974
  };
984
- if (n === "network-only") return Rt(i, a);
975
+ if (n === "network-only") return Nt(i, a);
985
976
  let o = i.read();
986
- if (n === "cache-first") return o ? Lt(i, o) : Rt(i, a);
977
+ if (n === "cache-first") return o ? Mt(i, o) : Nt(i, a);
987
978
  if (o) {
988
- let e = await Lt(i, o);
989
- return Rt(i, a), e;
979
+ let e = await Mt(i, o);
980
+ return Nt(i, a), e;
990
981
  }
991
- return Rt(i, a);
982
+ return Nt(i, a);
992
983
  };
993
984
  static fromJSON = (t, n) => new e(t, n.requestOptions, n);
994
- }, Vt = async ({ request: e, requestId: t, resolve: n, onStartTime: r, internalErrorMapping: i }) => {
985
+ }, It = async ({ request: e, requestId: t, resolve: n, onStartTime: r, internalErrorMapping: i }) => {
995
986
  let { requestManager: a, loggerManager: o } = e.client, { unstable_payloadMapper: s } = e.client.adapter, c = o.initialize(e.client, "Adapter"), l = null, u = null, d = e, f = 1, p = 1, m = 0, h = 0;
996
987
  c.debug({
997
988
  title: "Running middleware callbacks",
@@ -1001,7 +992,7 @@ var kt = /* @__PURE__ */ function(e) {
1001
992
  requestId: t
1002
993
  }
1003
994
  }), d = await d.client.unstable_modifyRequest(d), d.auth && (d = await d.client.unstable_modifyAuth(d)), d.unstable_requestMapper && (d = await d.unstable_requestMapper(d, t));
1004
- let { client: g, abortKey: _ } = d, v = W(_, d.scope), y = d.payload;
995
+ let { client: g, abortKey: _ } = d, v = H(_, d.scope), y = d.payload;
1005
996
  d.unstable_payloadMapper ? y = await d.unstable_payloadMapper(d.payload) : s && (y = await s(y));
1006
997
  let b = d.options, x = +/* @__PURE__ */ new Date();
1007
998
  r(x);
@@ -1010,14 +1001,14 @@ var kt = /* @__PURE__ */ function(e) {
1010
1001
  let n = Number(t.total || 0), r = Number(t.loaded || 0);
1011
1002
  return Math.max(n, r, e);
1012
1003
  }, T = (e, n, r) => {
1013
- let i = Nt(new Date(e), new Date(n), r);
1004
+ let i = Ot(new Date(e), new Date(n), r);
1014
1005
  m !== 100 && (m = i.total, a.events.emitUploadProgress({
1015
1006
  ...i,
1016
1007
  requestId: t,
1017
1008
  request: d
1018
1009
  }));
1019
1010
  }, E = (e, n, r) => {
1020
- let i = Nt(new Date(e), new Date(n), r);
1011
+ let i = Ot(new Date(e), new Date(n), r);
1021
1012
  h !== 100 && (h = i.total, a.events.emitDownloadProgress({
1022
1013
  ...i,
1023
1014
  requestId: t,
@@ -1056,14 +1047,14 @@ var kt = /* @__PURE__ */ function(e) {
1056
1047
  total: f,
1057
1048
  loaded: e.loaded || 0
1058
1049
  }), t;
1059
- }, te = () => {
1050
+ }, k = () => {
1060
1051
  l ||= +/* @__PURE__ */ new Date();
1061
1052
  let e = +/* @__PURE__ */ new Date();
1062
1053
  return T(l, e, {
1063
1054
  total: f,
1064
1055
  loaded: f
1065
1056
  }), e;
1066
- }, k = (e) => {
1057
+ }, A = (e) => {
1067
1058
  u = +/* @__PURE__ */ new Date(), p = w(p, e);
1068
1059
  let n = {
1069
1060
  total: p,
@@ -1073,7 +1064,7 @@ var kt = /* @__PURE__ */ function(e) {
1073
1064
  requestId: t,
1074
1065
  request: d
1075
1066
  }), u;
1076
- }, A = (e) => {
1067
+ }, te = (e) => {
1077
1068
  u ||= +/* @__PURE__ */ new Date();
1078
1069
  let t = +/* @__PURE__ */ new Date();
1079
1070
  return p = w(p, e), E(u, t, {
@@ -1087,7 +1078,7 @@ var kt = /* @__PURE__ */ function(e) {
1087
1078
  total: p,
1088
1079
  loaded: p
1089
1080
  }), e;
1090
- }, ne = async ({ data: e, error: r, status: i, extra: a }) => {
1081
+ }, M = async ({ data: e, error: r, status: i, extra: a }) => {
1091
1082
  let o = {
1092
1083
  data: e,
1093
1084
  error: r ?? null,
@@ -1112,50 +1103,50 @@ var kt = /* @__PURE__ */ function(e) {
1112
1103
  response: o
1113
1104
  }
1114
1105
  }), o;
1115
- }, M = Ht({
1106
+ }, N = Lt({
1116
1107
  request: d,
1117
1108
  requestId: t,
1118
1109
  startTime: x,
1119
1110
  logger: c,
1120
1111
  resolve: n
1121
- }), N = ({ status: e, extra: n }) => (c.error({
1112
+ }), P = ({ status: e, extra: n }) => (c.error({
1122
1113
  title: "Abort error",
1123
1114
  type: "request",
1124
1115
  extra: {
1125
1116
  request: d,
1126
1117
  requestId: t
1127
1118
  }
1128
- }), M({
1129
- error: i(U("abort")),
1119
+ }), N({
1120
+ error: i(V("abort")),
1130
1121
  status: e,
1131
1122
  extra: n
1132
- })), P = ({ status: e, extra: n }) => (c.error({
1123
+ })), F = ({ status: e, extra: n }) => (c.error({
1133
1124
  title: "Timeout error",
1134
1125
  type: "request",
1135
1126
  extra: {
1136
1127
  request: d,
1137
1128
  requestId: t
1138
1129
  }
1139
- }), M({
1140
- error: U("timeout"),
1130
+ }), N({
1131
+ error: V("timeout"),
1141
1132
  status: e,
1142
1133
  extra: n
1143
- })), re = ({ status: e, extra: n }) => (c.error({
1134
+ })), I = ({ status: e, extra: n }) => (c.error({
1144
1135
  title: "Unexpected error",
1145
1136
  type: "request",
1146
1137
  extra: {
1147
1138
  request: d,
1148
1139
  requestId: t
1149
1140
  }
1150
- }), M({
1151
- error: U(),
1141
+ }), N({
1142
+ error: V(),
1152
1143
  status: e,
1153
1144
  extra: n
1154
- })), ie = () => a.getAbortController(v, t), F = ({ status: e, extra: n, onAbort: r = () => {} }) => {
1155
- let i = ie();
1156
- if (!i) throw new H("Controller is not found");
1145
+ })), ne = () => a.getAbortController(v, t), re = ({ status: e, extra: n, onAbort: r = () => {} }) => {
1146
+ let i = ne();
1147
+ if (!i) throw new _t("Controller is not found");
1157
1148
  let o = () => {
1158
- N({
1149
+ P({
1159
1150
  status: e,
1160
1151
  extra: n
1161
1152
  }), r(), a.events.emitAbort({
@@ -1175,36 +1166,36 @@ var kt = /* @__PURE__ */ function(e) {
1175
1166
  adapterOptions: b
1176
1167
  }
1177
1168
  });
1178
- let ae = e.client.adapter.unstable_queryParamsMapper(d.queryParams), I = e.client.adapter.unstable_endpointMapper(d.endpoint), oe = e.client.adapter.unstable_headerMapper(d), { url: L } = e.client;
1169
+ let L = e.client.adapter.unstable_queryParamsMapper(d.queryParams), ie = e.client.adapter.unstable_endpointMapper(d.endpoint), R = e.client.adapter.unstable_headerMapper(d), { url: ae } = e.client;
1179
1170
  return {
1180
1171
  request: d,
1181
1172
  requestId: t,
1182
- url: L,
1183
- endpoint: I,
1184
- queryParams: ae,
1173
+ url: ae,
1174
+ endpoint: ie,
1175
+ queryParams: L,
1185
1176
  payload: y,
1186
- headers: oe,
1177
+ headers: R,
1187
1178
  adapter: e.client.adapter,
1188
1179
  adapterOptions: b,
1189
- getAbortController: ie,
1180
+ getAbortController: ne,
1190
1181
  getRequestStartTimestamp: S,
1191
1182
  getResponseStartTimestamp: C,
1192
- createAbortListener: F,
1183
+ createAbortListener: re,
1193
1184
  onBeforeRequest: D,
1194
1185
  onRequestStart: O,
1195
1186
  onRequestProgress: ee,
1196
- onRequestEnd: te,
1197
- onResponseStart: k,
1198
- onResponseProgress: A,
1187
+ onRequestEnd: k,
1188
+ onResponseStart: A,
1189
+ onResponseProgress: te,
1199
1190
  onResponseEnd: j,
1200
- onSuccess: ne,
1201
- onAbortError: N,
1202
- onTimeoutError: P,
1203
- onUnexpectedError: re,
1204
- onError: M
1191
+ onSuccess: M,
1192
+ onAbortError: P,
1193
+ onTimeoutError: F,
1194
+ onUnexpectedError: I,
1195
+ onError: N
1205
1196
  };
1206
1197
  };
1207
- function Ht({ request: e, requestId: t, startTime: n, resolve: r, logger: i }) {
1198
+ function Lt({ request: e, requestId: t, startTime: n, resolve: r, logger: i }) {
1208
1199
  let { client: a } = e;
1209
1200
  return async ({ error: o, status: s, extra: c }) => {
1210
1201
  let l = {
@@ -1233,8 +1224,8 @@ function Ht({ request: e, requestId: t, startTime: n, resolve: r, logger: i }) {
1233
1224
  }), l;
1234
1225
  };
1235
1226
  }
1236
- var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTimeoutError: i, onRequestEnd: a, createAbortListener: o, onResponseProgress: s, onRequestProgress: c, onResponseStart: l, onBeforeRequest: u, onRequestStart: d, onSuccess: f, onAbortError: p, adapter: m }) => {
1237
- if (!e.unstable_mock) throw new H("Mock should be defined when calling mocker");
1227
+ var Rt = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTimeoutError: i, onRequestEnd: a, createAbortListener: o, onResponseProgress: s, onRequestProgress: c, onResponseStart: l, onBeforeRequest: u, onRequestStart: d, onSuccess: f, onAbortError: p, adapter: m }) => {
1228
+ if (!e.unstable_mock) throw new _t("Mock should be defined when calling mocker");
1238
1229
  let h = !1, { requestTime: g = 20, responseTime: _ = 20, totalUploaded: v = 1e3, totalDownloaded: y = 1e3, timeout: b } = e.unstable_mock.config, { data: x, error: S, status: C, success: w = !0, extra: T = e.client.adapter.defaultExtra } = await e.unstable_mock.fn({
1239
1230
  request: e,
1240
1231
  requestId: t
@@ -1278,7 +1269,7 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1278
1269
  status: C,
1279
1270
  extra: T
1280
1271
  }), h || r();
1281
- }, Wt = (e) => e, Gt = class {
1272
+ }, zt = (e) => e, Bt = class {
1282
1273
  unstable_fetcher;
1283
1274
  name;
1284
1275
  defaultMethod;
@@ -1300,10 +1291,10 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1300
1291
  initialize = (e) => (this.logger = e.loggerManager.initialize(e, "Adapter"), this.initialized = !0, this.client = e, this.unstable_onInitializeCallback?.({ client: e }), this);
1301
1292
  onInitialize = (e) => (this.unstable_onInitializeCallback = e, this);
1302
1293
  unstable_internalErrorMapping = (e) => e;
1303
- unstable_headerMapper = Tt;
1304
- unstable_payloadMapper = Et;
1305
- unstable_endpointMapper = Wt;
1306
- unstable_queryParamsMapper = Wt;
1294
+ unstable_headerMapper = bt;
1295
+ unstable_payloadMapper = xt;
1296
+ unstable_endpointMapper = zt;
1297
+ unstable_queryParamsMapper = zt;
1307
1298
  unstable_getAdapterDefaults;
1308
1299
  unstable_getRequestDefaults;
1309
1300
  unstable_devtoolsEndpointGetter = (e) => e;
@@ -1327,14 +1318,14 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1327
1318
  async fetch(e, t) {
1328
1319
  let n, r = async (r) => {
1329
1320
  try {
1330
- if (!this.initialized) throw new H(`Adapter ${this.options.name} is not initialized`);
1331
- if (!this.unstable_fetcher) throw new H(`Fetcher for ${this.options.name} adapter is not set`);
1321
+ if (!this.initialized) throw new _t(`Adapter ${this.options.name} is not initialized`);
1322
+ if (!this.unstable_fetcher) throw new _t(`Fetcher for ${this.options.name} adapter is not set`);
1332
1323
  this.client.triggerPlugins("onAdapterFetch", {
1333
1324
  adapter: this,
1334
1325
  request: e,
1335
1326
  requestId: t
1336
1327
  });
1337
- let i = await Vt({
1328
+ let i = await It({
1338
1329
  request: e,
1339
1330
  requestId: t,
1340
1331
  resolve: r,
@@ -1343,9 +1334,9 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1343
1334
  n = e;
1344
1335
  }
1345
1336
  });
1346
- return e.unstable_mock && e.isMockerEnabled && e.client.isMockerEnabled ? await Ut(i) : this.unstable_fetcher(i);
1337
+ return e.unstable_mock && e.isMockerEnabled && e.client.isMockerEnabled ? await Rt(i) : this.unstable_fetcher(i);
1347
1338
  } catch (i) {
1348
- return Ht({
1339
+ return Lt({
1349
1340
  request: e,
1350
1341
  requestId: t,
1351
1342
  startTime: n || Date.now(),
@@ -1362,66 +1353,66 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1362
1353
  r(e);
1363
1354
  });
1364
1355
  }
1365
- }, Kt = (e) => {
1356
+ }, Vt = (e) => {
1366
1357
  try {
1367
1358
  return JSON.parse(e);
1368
1359
  } catch {
1369
1360
  return e;
1370
1361
  }
1371
- }, qt = (e) => e ? Kt(e) : U(), Jt = (e) => (t) => {
1362
+ }, Ht = (e) => e ? Vt(e) : V(), Ut = (e) => (t) => {
1372
1363
  let { skipNull: n, skipEmptyString: r } = e;
1373
1364
  return !(r && t === void 0 || r && t === "" || n && t === null);
1374
- }, G = (e, { encode: t, strict: n }) => t && n ? encodeURIComponent(e).replace(/[!'()*]/g, (e) => `%${e.charCodeAt(0).toString(16).toUpperCase()}`) : t ? encodeURIComponent(e) : e, Yt = (e, t, n) => {
1375
- let r = !Jt(n)(t);
1376
- return !e || r ? "" : `${G(e, n)}=${G(t instanceof Date ? n.dateParser?.(t) || t.toISOString() : typeof t == "object" && !Array.isArray(t) ? n.objectParser?.(t) || JSON.stringify(t) : String(t), n)}`;
1377
- }, Xt = (e, t, n) => {
1365
+ }, U = (e, { encode: t, strict: n }) => t && n ? encodeURIComponent(e).replace(/[!'()*]/g, (e) => `%${e.charCodeAt(0).toString(16).toUpperCase()}`) : t ? encodeURIComponent(e) : e, Wt = (e, t, n) => {
1366
+ let r = !Ut(n)(t);
1367
+ return !e || r ? "" : `${U(e, n)}=${U(t instanceof Date ? n.dateParser?.(t) || t.toISOString() : typeof t == "object" && !Array.isArray(t) ? n.objectParser?.(t) || JSON.stringify(t) : String(t), n)}`;
1368
+ }, Gt = (e, t, n) => {
1378
1369
  let { arrayFormat: r, arraySeparator: i } = n;
1379
- return t.filter(Jt(n)).reduce((t, a, o) => {
1370
+ return t.filter(Ut(n)).reduce((t, a, o) => {
1380
1371
  switch (r) {
1381
1372
  case "index": {
1382
- let r = `${G(e, n)}[${G(String(o), n)}]=`;
1383
- t.push(`${r}${G(String(a), n)}`);
1373
+ let r = `${U(e, n)}[${U(String(o), n)}]=`;
1374
+ t.push(`${r}${U(String(a), n)}`);
1384
1375
  break;
1385
1376
  }
1386
1377
  case "bracket": {
1387
- let r = `${G(e, n)}[]=`;
1388
- t.push(`${r}${G(String(a), n)}`);
1378
+ let r = `${U(e, n)}[]=`;
1379
+ t.push(`${r}${U(String(a), n)}`);
1389
1380
  break;
1390
1381
  }
1391
1382
  case "comma": {
1392
- let r = !t.length && `${G(e, n)}=` || "";
1393
- return [[...t, `${r}${G(String(a), n)}`].join(",")];
1383
+ let r = !t.length && `${U(e, n)}=` || "";
1384
+ return [[...t, `${r}${U(String(a), n)}`].join(",")];
1394
1385
  }
1395
1386
  case "separator": {
1396
- let r = !t.length && `${G(e, n)}=` || "";
1397
- return [[...t, `${r}${G(String(a), n)}`].join(i || "|")];
1387
+ let r = !t.length && `${U(e, n)}=` || "";
1388
+ return [[...t, `${r}${U(String(a), n)}`].join(i || "|")];
1398
1389
  }
1399
1390
  case "bracket-separator": {
1400
- let r = !t.length && `${G(e, n)}[]=` || "";
1401
- return [[...t, `${r}${G(String(a), n)}`].join(i || "|")];
1391
+ let r = !t.length && `${U(e, n)}[]=` || "";
1392
+ return [[...t, `${r}${U(String(a), n)}`].join(i || "|")];
1402
1393
  }
1403
1394
  default: {
1404
- let r = `${G(e, n)}=`;
1405
- t.push(`${r}${G(String(a), n)}`);
1395
+ let r = `${U(e, n)}=`;
1396
+ t.push(`${r}${U(String(a), n)}`);
1406
1397
  }
1407
1398
  }
1408
1399
  return t;
1409
1400
  }, []).join("&");
1410
- }, Zt = (e, t = Dn) => {
1401
+ }, Kt = (e, t = xn) => {
1411
1402
  if (!e || !Object.keys(e).length) return "";
1412
1403
  if (typeof e == "string") return e[0] === "?" ? e : `?${e}`;
1413
- let n = Object.entries(e).map(([e, n]) => Array.isArray(n) ? Xt(e, n, t) : Yt(e, n, t)).filter(Boolean).join("&");
1404
+ let n = Object.entries(e).map(([e, n]) => Array.isArray(n) ? Gt(e, n, t) : Wt(e, n, t)).filter(Boolean).join("&");
1414
1405
  return n ? `?${n}` : "";
1415
- }, Qt = zt.SEC * 5, $t = { headers: {} }, en = () => new Gt({
1406
+ }, qt = Pt.SEC * 5, W = { headers: {} }, Jt = () => new Bt({
1416
1407
  name: "http",
1417
- defaultMethod: kt.GET,
1418
- defaultExtra: $t,
1408
+ defaultMethod: wt.GET,
1409
+ defaultExtra: W,
1419
1410
  systemErrorStatus: 0,
1420
- systemErrorExtra: $t
1421
- }).setQueryParamsMapper(Zt).setFetcher(async ({ request: e, adapterOptions: t, headers: n, payload: r, onError: i, onResponseEnd: a, onTimeoutError: o, onRequestEnd: s, createAbortListener: c, getAbortController: l, onResponseProgress: u, onResponseStart: d, onBeforeRequest: f, onRequestStart: p, onRequestProgress: m, onSuccess: h }) => {
1422
- let { method: g, client: _, endpoint: v, queryParams: y } = e, b = y ? Zt(y) : "", x = `${_.url}${v}${b}`, S = l(), { timeout: C = Qt, streaming: w = !1, ...T } = t || {}, E = !1, D, O = c({
1411
+ systemErrorExtra: W
1412
+ }).setQueryParamsMapper(Kt).setFetcher(async ({ request: e, adapterOptions: t, headers: n, payload: r, onError: i, onResponseEnd: a, onTimeoutError: o, onRequestEnd: s, createAbortListener: c, getAbortController: l, onResponseProgress: u, onResponseStart: d, onBeforeRequest: f, onRequestStart: p, onRequestProgress: m, onSuccess: h }) => {
1413
+ let { method: g, client: _, endpoint: v, queryParams: y } = e, b = y ? Kt(y) : "", x = `${_.url}${v}${b}`, S = l(), { timeout: C = qt, streaming: w = !1, ...T } = t || {}, E = !1, D, O = c({
1423
1414
  status: 0,
1424
- extra: $t
1415
+ extra: W
1425
1416
  });
1426
1417
  C > 0 && S && (D = setTimeout(() => {
1427
1418
  E = !0, O(), S.abort();
@@ -1453,7 +1444,7 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1453
1444
  status: l,
1454
1445
  extra: c
1455
1446
  }) : i({
1456
- error: qt(await t.text()),
1447
+ error: Ht(await t.text()),
1457
1448
  status: l,
1458
1449
  extra: c
1459
1450
  });
@@ -1474,11 +1465,11 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1474
1465
  e = new TextDecoder().decode(o);
1475
1466
  } else e = await t.text();
1476
1467
  a(), O(), t.ok ? h({
1477
- data: Kt(e),
1468
+ data: Vt(e),
1478
1469
  status: l,
1479
1470
  extra: c
1480
1471
  }) : i({
1481
- error: qt(e),
1472
+ error: Ht(e),
1482
1473
  status: l,
1483
1474
  extra: c
1484
1475
  });
@@ -1487,18 +1478,18 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1487
1478
  if (D && clearTimeout(D), O(), S?.signal?.aborted) {
1488
1479
  E && o({
1489
1480
  status: 0,
1490
- extra: $t
1481
+ extra: W
1491
1482
  });
1492
1483
  return;
1493
1484
  }
1494
1485
  i({
1495
1486
  error: e,
1496
1487
  status: 0,
1497
- extra: $t
1488
+ extra: W
1498
1489
  });
1499
1490
  }
1500
- }), tn = () => en(), nn = class {
1501
- emitter = new Oe();
1491
+ }), Yt = () => Jt(), Xt = class {
1492
+ emitter = new Se();
1502
1493
  events;
1503
1494
  storage;
1504
1495
  lazyStorage;
@@ -1509,7 +1500,7 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1509
1500
  constructor(e) {
1510
1501
  this.options = e;
1511
1502
  let { storage: t = /* @__PURE__ */ new Map(), lazyStorage: n, version: r = "0.0.1" } = e ?? {};
1512
- this.emitter?.setMaxListeners(1e3), this.events = dn(this.emitter), this.storage = t, this.version = r, this.lazyStorage = n;
1503
+ this.emitter?.setMaxListeners(1e3), this.events = an(this.emitter), this.storage = t, this.version = r, this.lazyStorage = n;
1513
1504
  }
1514
1505
  initialize = (e) => (this.client = e, this.logger = e.loggerManager.initialize(e, "Cache"), e.appManager.events.onOnline(() => {
1515
1506
  [...this.storage.keys()].forEach(this.scheduleGarbageCollector);
@@ -1523,7 +1514,7 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1523
1514
  response: t
1524
1515
  }
1525
1516
  });
1526
- let { cacheKey: n, cache: r, staleTime: i, cacheTime: a, scope: o } = e, s = W(n, o), c = this.storage.get(s), l = typeof t == "function" ? t(c || null) : t, u = rn(c, l), d = {
1517
+ let { cacheKey: n, cache: r, staleTime: i, cacheTime: a, scope: o } = e, s = H(n, o), c = this.storage.get(s), l = typeof t == "function" ? t(c || null) : t, u = Zt(c, l), d = {
1527
1518
  ...u,
1528
1519
  scope: o,
1529
1520
  staleTime: i,
@@ -1569,7 +1560,7 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1569
1560
  partialResponse: t
1570
1561
  }
1571
1562
  });
1572
- let { cacheKey: n, scope: r } = e, i = W(n, r), a = this.storage.get(i), o = typeof t == "function" ? t(a || null) : t;
1563
+ let { cacheKey: n, scope: r } = e, i = H(n, r), a = this.storage.get(i), o = typeof t == "function" ? t(a || null) : t;
1573
1564
  a && this.set(e, {
1574
1565
  ...a,
1575
1566
  ...o
@@ -1607,7 +1598,7 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1607
1598
  cacheKey: t
1608
1599
  }), this.events.emitInvalidation(t);
1609
1600
  };
1610
- e instanceof Bt ? n(W(e.cacheKey, e.scope), e.cacheKey) : typeof e == "string" ? n(e) : t.length && t.forEach((t) => {
1601
+ e instanceof Ft ? n(H(e.cacheKey, e.scope), e.cacheKey) : typeof e == "string" ? n(e) : t.length && t.forEach((t) => {
1611
1602
  e.test(t) && n(t);
1612
1603
  });
1613
1604
  };
@@ -1662,49 +1653,49 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1662
1653
  clear = async () => {
1663
1654
  this.garbageCollectors.forEach((e) => clearTimeout(e)), this.storage.clear();
1664
1655
  };
1665
- }, rn = (e, t) => {
1656
+ }, Zt = (e, t) => {
1666
1657
  let { data: n, success: r } = t, i = !r && e ? e.data : null, a = n || i;
1667
1658
  return {
1668
1659
  ...t,
1669
1660
  data: a
1670
1661
  };
1671
- }, an = () => "invalidate", on = (e) => `${e}_invalidate`, sn = () => "delete", cn = (e) => `${e}_delete`, ln = (e) => `${e}_cache`, un = () => "cache", dn = (e) => ({
1662
+ }, Qt = () => "invalidate", $t = (e) => `${e}_invalidate`, en = () => "delete", tn = (e) => `${e}_delete`, nn = (e) => `${e}_cache`, rn = () => "cache", an = (e) => ({
1672
1663
  emitCacheData: (t, n = !1) => {
1673
- e.emit(un(), t, n), e.emit(ln(t.cacheKey), t, n);
1664
+ e.emit(rn(), t, n), e.emit(nn(t.cacheKey), t, n);
1674
1665
  },
1675
1666
  emitInvalidation: (t, n = !1) => {
1676
- e.emit(an(), t, n), e.emit(on(t), n);
1667
+ e.emit(Qt(), t, n), e.emit($t(t), n);
1677
1668
  },
1678
1669
  emitDelete: (t, n = !1) => {
1679
- e.emit(sn(), t, n), e.emit(cn(t), n);
1670
+ e.emit(en(), t, n), e.emit(tn(t), n);
1680
1671
  },
1681
- onData: (t) => (e.on(un(), t), () => e.removeListener(un(), t)),
1682
- onDataByKey: (t, n) => (e.on(ln(t), n), () => e.removeListener(ln(t), n)),
1683
- onInvalidate: (t) => (e.on(an(), t), () => e.removeListener(an(), t)),
1684
- onInvalidateByKey: (t, n) => (e.on(on(t), n), () => e.removeListener(on(t), n)),
1685
- onDelete: (t) => (e.on(sn(), t), () => e.removeListener(sn(), t)),
1686
- onDeleteByKey: (t, n) => (e.on(cn(t), n), () => e.removeListener(cn(t), n))
1687
- }), K = /* @__PURE__ */ function(e) {
1672
+ onData: (t) => (e.on(rn(), t), () => e.removeListener(rn(), t)),
1673
+ onDataByKey: (t, n) => (e.on(nn(t), n), () => e.removeListener(nn(t), n)),
1674
+ onInvalidate: (t) => (e.on(Qt(), t), () => e.removeListener(Qt(), t)),
1675
+ onInvalidateByKey: (t, n) => (e.on($t(t), n), () => e.removeListener($t(t), n)),
1676
+ onDelete: (t) => (e.on(en(), t), () => e.removeListener(en(), t)),
1677
+ onDeleteByKey: (t, n) => (e.on(tn(t), n), () => e.removeListener(tn(t), n))
1678
+ }), G = /* @__PURE__ */ function(e) {
1688
1679
  return e.ONE_BY_ONE = "one-by-one", e.ALL_AT_ONCE = "all-at-once", e.PREVIOUS_CANCELED = "previous-canceled", e.DEDUPLICATED = "deduplicated", e;
1689
- }({}), fn = (e) => ({
1680
+ }({}), on = (e) => ({
1690
1681
  emitDrained: (t, n) => {
1691
- e.emit(mn(), t, n), e.emit(hn(t.queryKey), t, n);
1682
+ e.emit(cn(), t, n), e.emit(ln(t.queryKey), t, n);
1692
1683
  },
1693
1684
  emitQueueStatusChanged: (t, n) => {
1694
- e.emit(gn(), t, n), e.emit(_n(t.queryKey), t, n);
1685
+ e.emit(un(), t, n), e.emit(dn(t.queryKey), t, n);
1695
1686
  },
1696
1687
  emitQueueChanged: (t, n) => {
1697
- e.emit(vn(), t, n), e.emit(yn(t.queryKey), t, n);
1688
+ e.emit(fn(), t, n), e.emit(pn(t.queryKey), t, n);
1698
1689
  },
1699
- onDrained: (t) => (e.on(mn(), t), () => e.removeListener(mn(), t)),
1700
- onDrainedByKey: (t, n) => (e.on(hn(t), n), () => e.removeListener(hn(t), n)),
1701
- onQueueStatusChange: (t) => (e.on(gn(), t), () => e.removeListener(gn(), t)),
1702
- onQueueStatusChangeByKey: (t, n) => (e.on(_n(t), n), () => e.removeListener(_n(t), n)),
1703
- onQueueChange: (t) => (e.on(vn(), t), () => e.removeListener(vn(), t)),
1704
- onQueueChangeByKey: (t, n) => (e.on(yn(t), n), () => e.removeListener(yn(t), n))
1705
- }), pn = class {
1706
- emitter = new Oe();
1707
- events = fn(this.emitter);
1690
+ onDrained: (t) => (e.on(cn(), t), () => e.removeListener(cn(), t)),
1691
+ onDrainedByKey: (t, n) => (e.on(ln(t), n), () => e.removeListener(ln(t), n)),
1692
+ onQueueStatusChange: (t) => (e.on(un(), t), () => e.removeListener(un(), t)),
1693
+ onQueueStatusChangeByKey: (t, n) => (e.on(dn(t), n), () => e.removeListener(dn(t), n)),
1694
+ onQueueChange: (t) => (e.on(fn(), t), () => e.removeListener(fn(), t)),
1695
+ onQueueChangeByKey: (t, n) => (e.on(pn(t), n), () => e.removeListener(pn(t), n))
1696
+ }), sn = class {
1697
+ emitter = new Se();
1698
+ events = on(this.emitter);
1708
1699
  storage = /* @__PURE__ */ new Map();
1709
1700
  requestCount = /* @__PURE__ */ new Map();
1710
1701
  runningRequests = /* @__PURE__ */ new Map();
@@ -1713,7 +1704,7 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1713
1704
  constructor(e) {
1714
1705
  this.options = e, this.emitter?.setMaxListeners(1e3), this.options?.storage && (this.storage = this.options.storage);
1715
1706
  }
1716
- isRequestJSON = (e) => !(e instanceof Bt);
1707
+ isRequestJSON = (e) => !(e instanceof Ft);
1717
1708
  initialize = (e) => (this.client = e, this.logger = e.loggerManager.initialize(e, "Dispatcher"), this.client.appManager.events.onOnline(() => {
1718
1709
  this.flush();
1719
1710
  }), this);
@@ -1837,14 +1828,14 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1837
1828
  hasRunningRequest = (e, t) => !!this.getRunningRequests(e).find((e) => e.requestId === t);
1838
1829
  cancelRunningRequests = (e) => {
1839
1830
  this.runningRequests.get(e)?.forEach((e) => {
1840
- let t = W(e.request.abortKey, e.request.scope);
1831
+ let t = H(e.request.abortKey, e.request.scope);
1841
1832
  this.client.requestManager.abortByRequestId(t, e.requestId);
1842
1833
  }), this.deleteRunningRequests(e);
1843
1834
  };
1844
1835
  cancelRunningRequest = (e, t) => {
1845
1836
  let n = this.getRunningRequests(e).filter((e) => {
1846
1837
  if (e.requestId === t) {
1847
- let t = W(e.request.abortKey, e.request.scope);
1838
+ let t = H(e.request.abortKey, e.request.scope);
1848
1839
  return this.client.requestManager.abortByRequestId(t, e.requestId), !1;
1849
1840
  }
1850
1841
  return !0;
@@ -1872,7 +1863,7 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1872
1863
  resolved: !1
1873
1864
  });
1874
1865
  add = (e) => {
1875
- let t = W(e.queryKey, e.scope), n = this.createStorageItem(e), { requestId: r } = n, [i] = this.getQueue(t).requests.slice(-1), a = Sn(e, i);
1866
+ let t = H(e.queryKey, e.scope), n = this.createStorageItem(e), { requestId: r } = n, [i] = this.getQueue(t).requests.slice(-1), a = gn(e, i);
1876
1867
  switch (this.logger.debug({
1877
1868
  title: "Adding request to queue",
1878
1869
  type: "system",
@@ -1882,9 +1873,9 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1882
1873
  requestId: r
1883
1874
  }
1884
1875
  }), a) {
1885
- case K.ONE_BY_ONE: return this.addQueueItem(t, n), this.flushQueue(t), r;
1886
- case K.PREVIOUS_CANCELED: return this.cancelRunningRequests(t), this.clearQueue(t), this.addQueueItem(t, n), this.flushQueue(t), r;
1887
- case K.DEDUPLICATED: return this.client.requestManager.events.emitDeduplicated({
1876
+ case G.ONE_BY_ONE: return this.addQueueItem(t, n), this.flushQueue(t), r;
1877
+ case G.PREVIOUS_CANCELED: return this.cancelRunningRequests(t), this.clearQueue(t), this.addQueueItem(t, n), this.flushQueue(t), r;
1878
+ case G.DEDUPLICATED: return this.client.requestManager.events.emitDeduplicated({
1888
1879
  request: i.request,
1889
1880
  requestId: r,
1890
1881
  deduplicatedRequest: e
@@ -1926,7 +1917,7 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1926
1917
  requestId: n
1927
1918
  }
1928
1919
  });
1929
- let { retry: r, retryTime: i, queryKey: a, abortKey: o, offline: s, scope: c } = t, l = W(a, c), u = W(o, c), { adapter: d, requestManager: f, cache: p, appManager: m } = this.client, h = bn(e.retries, r), g = !m.isOnline && s, _ = this.hasRunningRequest(l, n), v = e.stopped;
1920
+ let { retry: r, retryTime: i, queryKey: a, abortKey: o, offline: s, scope: c } = t, l = H(a, c), u = H(o, c), { adapter: d, requestManager: f, cache: p, appManager: m } = this.client, h = mn(e.retries, r), g = !m.isOnline && s, _ = this.hasRunningRequest(l, n), v = e.stopped;
1930
1921
  if (g || _ || v) return this.logger.warning({
1931
1922
  title: "Unable to perform request",
1932
1923
  type: "system",
@@ -1946,7 +1937,7 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
1946
1937
  }), this.incrementQueueRequestCount(l), f.addAbortController(u, n);
1947
1938
  let b = await d.fetch(t, n);
1948
1939
  e.resolved = !0, f.removeAbortController(u, n);
1949
- let x = !m.isOnline, S = U("abort").message === b.error?.message, C = !this.hasRunningRequest(l, n) || S;
1940
+ let x = !m.isOnline, S = V("abort").message === b.error?.message, C = !this.hasRunningRequest(l, n) || S;
1950
1941
  this.deleteRunningRequest(l, n);
1951
1942
  let w = b.success || !h || !t.retryOnError || t.retryOnError(b), T = !b.success && h && w && !C && !x, E = {
1952
1943
  isCanceled: C,
@@ -2060,26 +2051,26 @@ var Ut = async ({ request: e, requestId: t, onError: n, onResponseEnd: r, onTime
2060
2051
  }
2061
2052
  }), this.delete(l, n, u));
2062
2053
  };
2063
- }, mn = () => "drained-event", hn = (e) => `${e}-drained-event`, gn = () => "status-event", _n = (e) => `${e}-status-event`, vn = () => "change-event", yn = (e) => `${e}-change-event`, bn = (e, t) => !!(t && e < t), xn = (e, t) => e.deduplicateTime ? +/* @__PURE__ */ new Date() - t.timestamp <= e.deduplicateTime : !0, Sn = (e, t) => {
2064
- let { queued: n, cancelable: r, deduplicate: i } = e, a = t ? xn(e, t) : !1;
2065
- return n ? K.ONE_BY_ONE : r ? K.PREVIOUS_CANCELED : a && i ? K.DEDUPLICATED : K.ALL_AT_ONCE;
2054
+ }, cn = () => "drained-event", ln = (e) => `${e}-drained-event`, un = () => "status-event", dn = (e) => `${e}-status-event`, fn = () => "change-event", pn = (e) => `${e}-change-event`, mn = (e, t) => !!(t && e < t), hn = (e, t) => e.deduplicateTime ? +/* @__PURE__ */ new Date() - t.timestamp <= e.deduplicateTime : !0, gn = (e, t) => {
2055
+ let { queued: n, cancelable: r, deduplicate: i } = e, a = t ? hn(e, t) : !1;
2056
+ return n ? G.ONE_BY_ONE : r ? G.PREVIOUS_CANCELED : a && i ? G.DEDUPLICATED : G.ALL_AT_ONCE;
2066
2057
  };
2067
- function Cn(e) {
2058
+ function _n(e) {
2068
2059
  return e === "client" || e === "server" ? e : typeof window < "u" && typeof document < "u" ? "client" : "server";
2069
2060
  }
2070
- var wn = async (e, t) => {
2061
+ var vn = async (e, t) => {
2071
2062
  let n = t;
2072
2063
  if (!t.requestOptions.disableRequestInterceptors) {
2073
2064
  for (let r of e) if (n = await r(t), !n) throw Error("Request modifier must return request");
2074
2065
  }
2075
2066
  return n;
2076
- }, Tn = async (e, t, n) => {
2067
+ }, yn = async (e, t, n) => {
2077
2068
  let r = t;
2078
2069
  if (!n.requestOptions.disableResponseInterceptors) {
2079
2070
  for (let i of e) if (r = await i(t, n), !r) throw Error("Response modifier must return data");
2080
2071
  }
2081
2072
  return r;
2082
- }, En = class {
2073
+ }, bn = class {
2083
2074
  url;
2084
2075
  mode;
2085
2076
  debug;
@@ -2088,8 +2079,8 @@ var wn = async (e, t) => {
2088
2079
  unstable_onResponseCallbacks = [];
2089
2080
  unstable_onAuthCallbacks = [];
2090
2081
  unstable_onRequestCallbacks = [];
2091
- loggerManager = new ft();
2092
- requestManager = new Fe();
2082
+ loggerManager = new ot();
2083
+ requestManager = new ke();
2093
2084
  appManager;
2094
2085
  adapter;
2095
2086
  cache;
@@ -2097,15 +2088,15 @@ var wn = async (e, t) => {
2097
2088
  submitDispatcher;
2098
2089
  isMockerEnabled = !0;
2099
2090
  plugins = [];
2100
- unstable_abortKeyMapper = Pt;
2101
- unstable_cacheKeyMapper = Ft;
2102
- unstable_queryKeyMapper = Ft;
2103
- unstable_requestIdMapper = Te;
2091
+ unstable_abortKeyMapper = kt;
2092
+ unstable_cacheKeyMapper = At;
2093
+ unstable_queryKeyMapper = At;
2094
+ unstable_requestIdMapper = ye;
2104
2095
  logger = this.loggerManager.initialize(this, "Client");
2105
2096
  constructor(e) {
2106
2097
  this.options = e;
2107
2098
  let { url: t, appManager: n, cache: r, fetchDispatcher: i, submitDispatcher: a, mode: o } = this.options;
2108
- this.url = t, this.mode = Cn(o), this.adapter = tn(), this.appManager = n?.() || new ke(), this.cache = r?.() || new nn(), this.fetchDispatcher = i?.() || new pn(), this.submitDispatcher = a?.() || new pn(), this.adapter.initialize(this), this.appManager.initialize(), this.cache.initialize(this), this.fetchDispatcher.initialize(this), this.submitDispatcher.initialize(this);
2099
+ this.url = t, this.mode = _n(o), this.adapter = Yt(), this.appManager = n?.() || new Ce(), this.cache = r?.() || new Xt(), this.fetchDispatcher = i?.() || new sn(), this.submitDispatcher = a?.() || new sn(), this.adapter.initialize(this), this.appManager.initialize(), this.cache.initialize(this), this.fetchDispatcher.initialize(this), this.submitDispatcher.initialize(this);
2109
2100
  }
2110
2101
  setDebug = (e) => (this.debug = e, this);
2111
2102
  setLogLevel = (e) => (this.loggerManager.setSeverity(e), this);
@@ -2134,15 +2125,15 @@ var wn = async (e, t) => {
2134
2125
  setCacheKeyMapper = (e) => (this.unstable_cacheKeyMapper = e, this);
2135
2126
  setQueryKeyMapper = (e) => (this.unstable_queryKeyMapper = e, this);
2136
2127
  setRequestIdMapper = (e) => (this.unstable_requestIdMapper = e, this);
2137
- unstable_modifyAuth = async (e) => wn(this.unstable_onAuthCallbacks, e);
2138
- unstable_modifyRequest = async (e) => wn(this.unstable_onRequestCallbacks, e);
2139
- unstable_modifyErrorResponse = async (e, t) => Tn(this.unstable_onErrorCallbacks, e, t);
2140
- unstable_modifySuccessResponse = async (e, t) => Tn(this.unstable_onSuccessCallbacks, e, t);
2141
- unstable_modifyResponse = async (e, t) => Tn(this.unstable_onResponseCallbacks, e, t);
2142
- fromJSON = (e) => Bt.fromJSON(this, e);
2128
+ unstable_modifyAuth = async (e) => vn(this.unstable_onAuthCallbacks, e);
2129
+ unstable_modifyRequest = async (e) => vn(this.unstable_onRequestCallbacks, e);
2130
+ unstable_modifyErrorResponse = async (e, t) => yn(this.unstable_onErrorCallbacks, e, t);
2131
+ unstable_modifySuccessResponse = async (e, t) => yn(this.unstable_onSuccessCallbacks, e, t);
2132
+ unstable_modifyResponse = async (e, t) => yn(this.unstable_onResponseCallbacks, e, t);
2133
+ fromJSON = (e) => Ft.fromJSON(this, e);
2143
2134
  clear = () => {
2144
2135
  let { appManager: e, cache: t, fetchDispatcher: n, submitDispatcher: r } = this.options;
2145
- this.requestManager.abortControllers.clear(), this.fetchDispatcher.clear(), this.submitDispatcher.clear(), this.cache.clear(), this.requestManager.emitter.removeAllListeners(), this.fetchDispatcher.emitter.removeAllListeners(), this.submitDispatcher.emitter.removeAllListeners(), this.cache.emitter.removeAllListeners(), this.cache = t?.() || new nn(), this.appManager = e?.() || new ke(), this.fetchDispatcher = n?.() || new pn(), this.submitDispatcher = r?.() || new pn(), this.appManager.initialize(), this.cache.initialize(this), this.fetchDispatcher.initialize(this), this.submitDispatcher.initialize(this);
2136
+ this.requestManager.abortControllers.clear(), this.fetchDispatcher.clear(), this.submitDispatcher.clear(), this.cache.clear(), this.requestManager.emitter.removeAllListeners(), this.fetchDispatcher.emitter.removeAllListeners(), this.submitDispatcher.emitter.removeAllListeners(), this.cache.emitter.removeAllListeners(), this.cache = t?.() || new Xt(), this.appManager = e?.() || new Ce(), this.fetchDispatcher = n?.() || new sn(), this.submitDispatcher = r?.() || new sn(), this.appManager.initialize(), this.cache.initialize(this), this.fetchDispatcher.initialize(this), this.submitDispatcher.initialize(this);
2146
2137
  };
2147
2138
  hydrate = (e, t) => {
2148
2139
  e?.forEach((e) => {
@@ -2159,8 +2150,8 @@ var wn = async (e, t) => {
2159
2150
  ...a,
2160
2151
  ...t
2161
2152
  };
2162
- if (!s.override && this.cache.get(W(n, r))) return;
2163
- let c = Kt(i);
2153
+ if (!s.override && this.cache.get(H(n, r))) return;
2154
+ let c = Vt(i);
2164
2155
  this.cache.set({
2165
2156
  ...s,
2166
2157
  cacheKey: n,
@@ -2172,10 +2163,10 @@ var wn = async (e, t) => {
2172
2163
  let t = this.adapter.unstable_endpointMapper(e.endpoint), n = {
2173
2164
  ...e,
2174
2165
  endpoint: String(t)
2175
- }, r = new Bt(this, n);
2166
+ }, r = new Ft(this, n);
2176
2167
  return this.plugins.forEach((e) => e.trigger("onRequestCreate", { request: r })), r;
2177
2168
  };
2178
- }, Dn = {
2169
+ }, xn = {
2179
2170
  strict: !0,
2180
2171
  encode: !0,
2181
2172
  arrayFormat: "bracket",
@@ -2184,101 +2175,101 @@ var wn = async (e, t) => {
2184
2175
  skipNull: !0,
2185
2176
  skipEmptyString: !0
2186
2177
  };
2187
- function On(e) {
2188
- return new En(e);
2178
+ function Sn(e) {
2179
+ return new bn(e);
2189
2180
  }
2190
2181
  //#endregion
2191
2182
  //#region src/core/client.ts
2192
- var q = On({ url: N() });
2183
+ var K = Sn({ url: k() });
2193
2184
  //#endregion
2194
2185
  //#region src/core/auth-api.ts
2195
- async function kn(e) {
2196
- let { data: t, success: n } = await q.createRequest()({
2186
+ async function Cn(e) {
2187
+ let { data: t, success: n } = await K.createRequest()({
2197
2188
  endpoint: "/auth/cli/whoami",
2198
2189
  method: "GET"
2199
2190
  }).setHeaders({ Authorization: `Bearer ${e}` }).send();
2200
2191
  return !n || !t ? null : t;
2201
2192
  }
2202
- async function An(e) {
2203
- await q.createRequest()({
2193
+ async function wn(e) {
2194
+ await K.createRequest()({
2204
2195
  endpoint: "/auth/cli/token",
2205
2196
  method: "DELETE"
2206
2197
  }).setHeaders({ Authorization: `Bearer ${e}` }).send();
2207
2198
  }
2208
2199
  //#endregion
2209
2200
  //#region src/core/auth-store.ts
2210
- var jn = 1, Mn = "hype-stack", Nn = "auth.json";
2211
- function Pn() {
2201
+ var Tn = 1, En = "hype-stack", Dn = "auth.json";
2202
+ function On() {
2212
2203
  let e = process.env.HYPE_STACK_CONFIG_DIR;
2213
- if (e) return u.join(e, Mn);
2214
- let t = l.homedir();
2204
+ if (e) return p.join(e, En);
2205
+ let t = f.homedir();
2215
2206
  if (process.platform === "win32") {
2216
- let e = process.env.APPDATA ?? u.join(t, "AppData", "Roaming");
2217
- return u.join(e, Mn);
2207
+ let e = process.env.APPDATA ?? p.join(t, "AppData", "Roaming");
2208
+ return p.join(e, En);
2218
2209
  }
2219
- if (process.platform === "darwin") return u.join(t, "Library", "Application Support", Mn);
2220
- let n = process.env.XDG_CONFIG_HOME ?? u.join(t, ".config");
2221
- return u.join(n, Mn);
2210
+ if (process.platform === "darwin") return p.join(t, "Library", "Application Support", En);
2211
+ let n = process.env.XDG_CONFIG_HOME ?? p.join(t, ".config");
2212
+ return p.join(n, En);
2222
2213
  }
2223
- function Fn() {
2224
- return u.join(Pn(), Nn);
2214
+ function kn() {
2215
+ return p.join(On(), Dn);
2225
2216
  }
2226
- async function In() {
2227
- let e = await s.readFile(Fn(), "utf-8").catch(() => null);
2217
+ async function An() {
2218
+ let e = await s.readFile(kn(), "utf-8").catch(() => null);
2228
2219
  if (!e) return {
2229
- version: jn,
2220
+ version: Tn,
2230
2221
  tokens: {}
2231
2222
  };
2232
2223
  let t = JSON.parse(e);
2233
2224
  return {
2234
- version: t.version ?? jn,
2225
+ version: t.version ?? Tn,
2235
2226
  tokens: t.tokens ?? {}
2236
2227
  };
2237
2228
  }
2238
- async function Ln(e) {
2239
- let t = Pn();
2240
- await s.mkdir(t, { recursive: !0 }), await s.writeFile(Fn(), `${JSON.stringify(e, null, 2)}\n`, { mode: 384 });
2229
+ async function jn(e) {
2230
+ let t = On();
2231
+ await s.mkdir(t, { recursive: !0 }), await s.writeFile(kn(), `${JSON.stringify(e, null, 2)}\n`, { mode: 384 });
2241
2232
  }
2242
- async function Rn(e) {
2243
- return (await In()).tokens[e] ?? null;
2233
+ async function Mn(e) {
2234
+ return (await An()).tokens[e] ?? null;
2244
2235
  }
2245
- async function zn(e, t) {
2246
- let n = await In();
2247
- n.tokens[e] = t, await Ln(n);
2236
+ async function Nn(e, t) {
2237
+ let n = await An();
2238
+ n.tokens[e] = t, await jn(n);
2248
2239
  }
2249
- async function Bn(e) {
2250
- let t = await In();
2251
- e in t.tokens && (delete t.tokens[e], await Ln(t));
2240
+ async function Pn(e) {
2241
+ let t = await An();
2242
+ e in t.tokens && (delete t.tokens[e], await jn(t));
2252
2243
  }
2253
2244
  //#endregion
2254
2245
  //#region src/core/device.ts
2255
- function Vn() {
2256
- let e = l.networkInterfaces();
2246
+ function Fn() {
2247
+ let e = f.networkInterfaces();
2257
2248
  for (let t of Object.values(e)) if (t) {
2258
2249
  for (let e of t) if (!e.internal && e.mac !== "00:00:00:00:00:00") return e.mac;
2259
2250
  }
2260
2251
  return "unknown";
2261
2252
  }
2262
- function Hn() {
2263
- let e = `${Vn()}:${l.hostname()}:${l.platform()}:${l.arch()}`;
2264
- return (0, he.createHash)("sha256").update(e).digest("hex").slice(0, 16);
2253
+ function In() {
2254
+ let e = `${Fn()}:${f.hostname()}:${f.platform()}:${f.arch()}`;
2255
+ return l("sha256").update(e).digest("hex").slice(0, 16);
2265
2256
  }
2266
- function Un() {
2267
- return `hype-stack/${C} ${l.platform()} ${l.arch()} node/${process.version.slice(1)}`;
2257
+ function Ln() {
2258
+ return `hype-stack/${_} ${f.platform()} ${f.arch()} node/${process.version.slice(1)}`;
2268
2259
  }
2269
2260
  //#endregion
2270
2261
  //#region src/core/open-browser.ts
2271
- function Wn(e) {
2272
- d(process.platform === "darwin" ? `open "${e}"` : process.platform === "win32" ? `start "" "${e}"` : `xdg-open "${e}"`);
2262
+ function Rn(e) {
2263
+ m(process.platform === "darwin" ? `open "${e}"` : process.platform === "win32" ? `start "" "${e}"` : `xdg-open "${e}"`);
2273
2264
  }
2274
2265
  //#endregion
2275
2266
  //#region src/core/login.ts
2276
- var Gn = 300 * 1e3, Kn = (e) => `<!doctype html><html><head><meta charset="utf-8"><title>Hype Stack CLI</title></head><body style="font-family:system-ui,sans-serif;text-align:center;padding-top:4rem;color:#111"><h2>${e}</h2><p>You can close this tab and return to your terminal.</p></body></html>`;
2277
- async function qn(e = {}) {
2278
- let t = (0, he.randomBytes)(16).toString("hex"), n = N(), r = he.default.createServer(), i = await new Promise((n, i) => {
2267
+ var zn = 300 * 1e3, Bn = (e) => `<!doctype html><html><head><meta charset="utf-8"><title>Hype Stack CLI</title></head><body style="font-family:system-ui,sans-serif;text-align:center;padding-top:4rem;color:#111"><h2>${e}</h2><p>You can close this tab and return to your terminal.</p></body></html>`;
2268
+ async function Vn(e = {}) {
2269
+ let t = u(16).toString("hex"), n = k(), r = d.createServer(), i = await new Promise((n, i) => {
2279
2270
  let a = setTimeout(() => {
2280
- o(), i(/* @__PURE__ */ Error("Login timed out. Run `hype-stack login` again."));
2281
- }, Gn);
2271
+ o(), i(/* @__PURE__ */ Error("Login timed out. Run `npx @hype-stack/cli login` again."));
2272
+ }, zn);
2282
2273
  function o() {
2283
2274
  clearTimeout(a), r.close(), r.closeAllConnections?.();
2284
2275
  }
@@ -2292,10 +2283,10 @@ async function qn(e = {}) {
2292
2283
  r.writeHead(200, {
2293
2284
  "Content-Type": "text/html",
2294
2285
  Connection: "close"
2295
- }), r.end(Kn(e));
2286
+ }), r.end(Bn(e));
2296
2287
  };
2297
2288
  if (a.searchParams.get("state") !== t) {
2298
- s("Login failed."), o(), i(/* @__PURE__ */ Error("Login failed: state mismatch. Run `hype-stack login` again."));
2289
+ s("Login failed."), o(), i(/* @__PURE__ */ Error("Login failed: state mismatch. Run `npx @hype-stack/cli login` again."));
2299
2290
  return;
2300
2291
  }
2301
2292
  let c = a.searchParams.get("token");
@@ -2307,55 +2298,55 @@ async function qn(e = {}) {
2307
2298
  }), r.on("error", (e) => {
2308
2299
  o(), i(e);
2309
2300
  }), r.listen(0, "127.0.0.1", () => {
2310
- let { port: n } = r.address(), i = encodeURIComponent(Un()), a = `${P()}/cli/authorize?port=${n}&state=${t}&label=${i}`;
2311
- e.onUrl?.(a), Wn(a);
2301
+ let { port: n } = r.address(), i = encodeURIComponent(Ln()), a = `${A()}/cli/authorize?port=${n}&state=${t}&label=${i}`;
2302
+ e.onUrl?.(a), Rn(a);
2312
2303
  });
2313
- }), a = await kn(i).catch(() => null), o = {
2304
+ }), a = await Cn(i).catch(() => null), o = {
2314
2305
  token: i,
2315
2306
  email: a?.email,
2316
2307
  organizationId: a?.organizationId
2317
2308
  };
2318
- return await zn(n, o), o;
2309
+ return await Nn(n, o), o;
2319
2310
  }
2320
2311
  //#endregion
2321
2312
  //#region src/core/access-prompts.ts
2322
- async function Jn() {
2313
+ async function Hn() {
2323
2314
  let e = await o.confirm({ message: "Log in to install packs your organization owns? (opens your browser)" });
2324
2315
  if (o.isCancel(e) || !e) return null;
2325
2316
  o.log.step("Opening your browser to sign in...");
2326
2317
  try {
2327
- let e = await qn({ onUrl: (e) => {
2328
- o.log.info(`If your browser didn't open, visit:\n ${R.path(e)}`);
2318
+ let e = await Vn({ onUrl: (e) => {
2319
+ o.log.info(`If your browser didn't open, visit:\n ${L.path(e)}`);
2329
2320
  } });
2330
2321
  return o.log.success(e.email ? `Logged in as ${e.email}` : "Logged in"), e.token;
2331
2322
  } catch (e) {
2332
2323
  return o.log.error(e instanceof Error ? e.message : String(e)), null;
2333
2324
  }
2334
2325
  }
2335
- async function Yn(e) {
2326
+ async function Un(e) {
2336
2327
  if (e.length === 0) return;
2337
2328
  o.note([
2338
2329
  "These packs need a purchase before they can be installed:",
2339
2330
  "",
2340
- ...e.map((e) => ` ${R.brand(e.displayName)} ${R.highlight(`$${e.price}`)}`)
2331
+ ...e.map((e) => ` ${L.brand(e.displayName)} ${L.highlight(`$${e.price}`)}`)
2341
2332
  ].join("\n"), "Locked Packs");
2342
2333
  let t = await o.confirm({ message: `Open the purchase ${e.length === 1 ? "page" : "pages"} in your browser?` });
2343
2334
  if (o.isCancel(t) || !t) {
2344
- o.log.info(R.muted("Run 'hype-stack login' after purchasing, then 'hype-stack compose' again."));
2335
+ o.log.info(L.muted("Run 'npx @hype-stack/cli login' after purchasing, then 'npx @hype-stack/cli compose' again."));
2345
2336
  return;
2346
2337
  }
2347
- for (let t of e) Wn(me(t.name));
2338
+ for (let t of e) Rn(le(t.name));
2348
2339
  o.log.info([
2349
- R.muted("After purchasing, run:"),
2350
- ` ${R.highlight("hype-stack login")} ${R.muted("Save your access")}`,
2351
- ` ${R.highlight("hype-stack compose")} ${R.muted("Install the packs")}`
2340
+ L.muted("After purchasing, run:"),
2341
+ ` ${L.highlight("npx @hype-stack/cli login")} ${L.muted("Save your access")}`,
2342
+ ` ${L.highlight("npx @hype-stack/cli compose")} ${L.muted("Install the packs")}`
2352
2343
  ].join("\n"));
2353
2344
  }
2354
2345
  //#endregion
2355
2346
  //#region src/utils/exec.ts
2356
- function J(e, t, n) {
2347
+ function q(e, t, n) {
2357
2348
  return new Promise((r, i) => {
2358
- let a = f(e, t, {
2349
+ let a = h(e, t, {
2359
2350
  cwd: n.cwd,
2360
2351
  stdio: [
2361
2352
  "ignore",
@@ -2386,60 +2377,60 @@ function J(e, t, n) {
2386
2377
  }
2387
2378
  //#endregion
2388
2379
  //#region src/utils/fs.ts
2389
- async function Xn(e) {
2380
+ async function J(e) {
2390
2381
  return (await s.stat(e).catch(() => null))?.isDirectory() ?? !1;
2391
2382
  }
2392
2383
  async function Y(e) {
2393
2384
  return (await s.stat(e).catch(() => null))?.isFile() ?? !1;
2394
2385
  }
2395
- async function Zn(e) {
2386
+ async function Wn(e) {
2396
2387
  return (await s.readdir(e).catch(() => [])).length === 0;
2397
2388
  }
2398
- async function Qn(e) {
2389
+ async function Gn(e) {
2399
2390
  let t = await s.readFile(e, "utf-8").catch(() => null);
2400
2391
  return t ? JSON.parse(t) : null;
2401
2392
  }
2402
- async function $n(e, t) {
2393
+ async function Kn(e, t) {
2403
2394
  await s.writeFile(e, JSON.stringify(t, null, 2) + "\n", "utf-8");
2404
2395
  }
2405
- async function er(e) {
2396
+ async function qn(e) {
2406
2397
  let t = {};
2407
- if (!await Xn(e)) return t;
2398
+ if (!await J(e)) return t;
2408
2399
  let n = await s.readdir(e, { withFileTypes: !0 });
2409
- for (let r of n) r.isDirectory() && await Y(u.join(e, r.name, "package.json")) && (t[r.name] = u.relative(u.dirname(e), u.join(e, r.name)));
2400
+ for (let r of n) r.isDirectory() && await Y(p.join(e, r.name, "package.json")) && (t[r.name] = p.relative(p.dirname(e), p.join(e, r.name)));
2410
2401
  return t;
2411
2402
  }
2412
- async function tr(e) {
2403
+ async function Jn(e) {
2413
2404
  await s.rm(e, {
2414
2405
  recursive: !0,
2415
2406
  force: !0
2416
2407
  });
2417
2408
  }
2418
- function nr(e, t) {
2419
- return u.basename(e) === t ? e : u.join(e, t);
2409
+ function Yn(e, t) {
2410
+ return p.basename(e) === t ? e : p.join(e, t);
2420
2411
  }
2421
2412
  //#endregion
2422
2413
  //#region src/core/codegen.ts
2423
- function rr(e) {
2424
- o.log.info(R.muted("Run database setup yourself when ready:")), o.note([
2425
- `${R.command(`cd ${e}`)}`,
2426
- `${R.command("pnpm exec prisma generate")} ${R.muted("(regenerate the Prisma client)")}`,
2427
- `${R.command("pnpm exec prisma migrate dev")} ${R.muted("(create + apply tables for new packs)")}`
2414
+ function Xn(e) {
2415
+ o.log.info(L.muted("Run database setup yourself when ready:")), o.note([
2416
+ `${L.command(`cd ${e}`)}`,
2417
+ `${L.command("pnpm exec prisma generate")} ${L.muted("(regenerate the Prisma client)")}`,
2418
+ `${L.command("pnpm exec prisma migrate dev")} ${L.muted("(create + apply tables for new packs)")}`
2428
2419
  ].join("\n"), "Database Setup");
2429
2420
  }
2430
- async function ir(e) {
2431
- let { projectRoot: t, paths: n, skipPrompts: r, runCommand: i = J } = e, a = n.backend.root, s = u.join(t, a);
2432
- if (!await Y(u.join(s, "package.json"))) return;
2421
+ async function Zn(e) {
2422
+ let { projectRoot: t, paths: n, skipPrompts: r, runCommand: i = q } = e, a = n.backend.root, s = p.join(t, a);
2423
+ if (!await Y(p.join(s, "package.json"))) return;
2433
2424
  if (r) {
2434
- rr(a);
2425
+ Xn(a);
2435
2426
  return;
2436
2427
  }
2437
2428
  let c = await o.confirm({
2438
- message: `Run database setup now? (${R.command("prisma generate")} + ${R.command("prisma migrate")})`,
2429
+ message: `Run database setup now? (${L.command("prisma generate")} + ${L.command("prisma migrate")})`,
2439
2430
  initialValue: !0
2440
2431
  });
2441
2432
  if (o.isCancel(c) || !c) {
2442
- rr(a);
2433
+ Xn(a);
2443
2434
  return;
2444
2435
  }
2445
2436
  let l = o.spinner();
@@ -2448,12 +2439,12 @@ async function ir(e) {
2448
2439
  "prisma",
2449
2440
  "generate"
2450
2441
  ], { cwd: s })).exitCode !== 0) {
2451
- l.stop(R.warning("Prisma client generation failed")), rr(a);
2442
+ l.stop(L.warning("Prisma client generation failed")), Xn(a);
2452
2443
  return;
2453
2444
  }
2454
- l.stop(R.success("Prisma client generated"));
2455
- let d = o.spinner();
2456
- if (d.start("Applying database schema..."), (await i("pnpm", [
2445
+ l.stop(L.success("Prisma client generated"));
2446
+ let u = o.spinner();
2447
+ if (u.start("Applying database schema..."), (await i("pnpm", [
2457
2448
  "exec",
2458
2449
  "prisma",
2459
2450
  "migrate",
@@ -2461,30 +2452,30 @@ async function ir(e) {
2461
2452
  "--name",
2462
2453
  "add-packs"
2463
2454
  ], { cwd: s })).exitCode !== 0) {
2464
- d.stop(R.warning("Database migration failed (is your database running?)")), rr(a);
2455
+ u.stop(L.warning("Database migration failed (is your database running?)")), Xn(a);
2465
2456
  return;
2466
2457
  }
2467
- d.stop(R.success("Database schema applied"));
2458
+ u.stop(L.success("Database schema applied"));
2468
2459
  }
2469
2460
  //#endregion
2470
2461
  //#region src/core/stack-config.ts
2471
- async function ar(e) {
2472
- return Qn(u.join(e, T));
2462
+ async function Qn(e) {
2463
+ return Gn(p.join(e, y));
2473
2464
  }
2474
- async function or(e) {
2475
- return Y(u.join(e, T));
2465
+ async function $n(e) {
2466
+ return Y(p.join(e, y));
2476
2467
  }
2477
- async function sr(e, t) {
2478
- await $n(u.join(e, T), t);
2468
+ async function er(e, t) {
2469
+ await Kn(p.join(e, y), t);
2479
2470
  }
2480
- async function cr(e) {
2481
- let t = u.join(e, "apps"), n = u.join(e, "packages"), [r, i] = await Promise.all([er(t), er(n)]);
2471
+ async function tr(e) {
2472
+ let t = p.join(e, "apps"), n = p.join(e, "packages"), [r, i] = await Promise.all([qn(t), qn(n)]);
2482
2473
  return {
2483
2474
  apps: r,
2484
2475
  packages: i
2485
2476
  };
2486
2477
  }
2487
- function lr(e) {
2478
+ function nr(e) {
2488
2479
  let t = e.apps.backend ?? "apps/backend", n = e.apps.frontend ?? "apps/frontend", r = e.apps.admin ?? "apps/admin", i = e.packages.enums ?? "packages/enums";
2489
2480
  return {
2490
2481
  backend: {
@@ -2518,20 +2509,20 @@ function lr(e) {
2518
2509
  }
2519
2510
  };
2520
2511
  }
2521
- function ur(e, t) {
2512
+ function rr(e, t) {
2522
2513
  return {
2523
- $schema: ie(),
2514
+ $schema: j(),
2524
2515
  version: 1,
2525
2516
  name: e,
2526
2517
  apps: t.apps,
2527
2518
  packages: t.packages,
2528
- paths: lr(t),
2519
+ paths: nr(t),
2529
2520
  installedPacks: [],
2530
2521
  licenseKey: null
2531
2522
  };
2532
2523
  }
2533
- async function dr(e) {
2534
- let t = u.join(e, "package.json"), n = u.join(e, "apps"), [r, i] = await Promise.all([Y(t), Xn(n)]);
2524
+ async function ir(e) {
2525
+ let t = p.join(e, "package.json"), n = p.join(e, "apps"), [r, i] = await Promise.all([Y(t), J(n)]);
2535
2526
  return r && i;
2536
2527
  }
2537
2528
  function X(e, t) {
@@ -2545,8 +2536,8 @@ function X(e, t) {
2545
2536
  }
2546
2537
  //#endregion
2547
2538
  //#region src/core/registry.ts
2548
- async function fr(e) {
2549
- let { data: t, error: n, status: r } = await q.createRequest()({
2539
+ async function ar(e) {
2540
+ let { data: t, error: n, status: r } = await K.createRequest()({
2550
2541
  endpoint: `/packs/${encodeURIComponent(e)}/manifest`,
2551
2542
  method: "GET"
2552
2543
  }).send();
@@ -2554,13 +2545,13 @@ async function fr(e) {
2554
2545
  if (n || !t) throw Error(`Failed to load manifest for "${e}": ${String(n)}`);
2555
2546
  return t;
2556
2547
  }
2557
- async function pr(e, t = {}) {
2558
- let n = q.createRequest()({
2548
+ async function or(e, t = {}) {
2549
+ let n = K.createRequest()({
2559
2550
  endpoint: `/packs/${encodeURIComponent(e)}/download`,
2560
2551
  method: "POST"
2561
2552
  }), r = {
2562
- "X-Device-Id": Hn(),
2563
- "X-Client-Info": Un()
2553
+ "X-Device-Id": In(),
2554
+ "X-Client-Info": Ln()
2564
2555
  };
2565
2556
  t.token && (r.Authorization = `Bearer ${t.token}`);
2566
2557
  let { data: i, error: a, success: o } = await n.setPayload({ key: t.licenseKey ?? void 0 }).setHeaders(r).send();
@@ -2571,34 +2562,34 @@ async function pr(e, t = {}) {
2571
2562
  packs: i.packs ?? [],
2572
2563
  expiresAt: i.expiresAt ?? null
2573
2564
  };
2574
- let c = await s.mkdtemp(u.join(l.tmpdir(), `hype-stack-pack-${e}-`));
2565
+ let c = await s.mkdtemp(p.join(f.tmpdir(), `hype-stack-pack-${e}-`));
2575
2566
  return await Promise.all(i.files.map(async (e) => {
2576
- let t = u.join(c, ...e.path.split("/"));
2577
- await s.mkdir(u.dirname(t), { recursive: !0 }), await s.writeFile(t, Buffer.from(e.content, "base64"));
2567
+ let t = p.join(c, ...e.path.split("/"));
2568
+ await s.mkdir(p.dirname(t), { recursive: !0 }), await s.writeFile(t, Buffer.from(e.content, "base64"));
2578
2569
  })), {
2579
2570
  status: "ok",
2580
2571
  packDir: c
2581
2572
  };
2582
2573
  }
2583
- function mr(e, t, n) {
2574
+ function sr(e, t, n) {
2584
2575
  let r = X(e, t);
2585
- return u.resolve(n, r);
2576
+ return p.resolve(n, r);
2586
2577
  }
2587
- function hr(e, t) {
2588
- return u.join(t, e);
2578
+ function cr(e, t) {
2579
+ return p.join(t, e);
2589
2580
  }
2590
- var gr = q.createRequest()({
2581
+ var lr = K.createRequest()({
2591
2582
  endpoint: "/packs/list",
2592
2583
  method: "GET"
2593
2584
  });
2594
- async function _r() {
2595
- let { data: e, error: t } = await gr.send();
2585
+ async function ur() {
2586
+ let { data: e, error: t } = await lr.send();
2596
2587
  if (t || !e) throw Error(`Failed to fetch pack list: ${String(t)}`);
2597
2588
  return e.packs;
2598
2589
  }
2599
- async function vr(e, t = {}) {
2590
+ async function dr(e, t = {}) {
2600
2591
  if (e.length === 0) return {};
2601
- let n = q.createRequest()({
2592
+ let n = K.createRequest()({
2602
2593
  endpoint: "/packs/authorize",
2603
2594
  method: "POST"
2604
2595
  }), r = {};
@@ -2612,35 +2603,35 @@ async function vr(e, t = {}) {
2612
2603
  }
2613
2604
  //#endregion
2614
2605
  //#region src/core/codemods.ts
2615
- var yr = "@hype-stack/";
2616
- function br(e, t) {
2606
+ var fr = "@hype-stack/";
2607
+ function pr(e, t) {
2617
2608
  return X(e === "admin" ? "{{admin.root}}" : "{{frontend.root}}", t);
2618
2609
  }
2619
- async function xr(e, t, n) {
2620
- let r = X("{{backend.root}}", t), i = u.resolve(n, r, "src/config/env/env.config.ts"), a = u.resolve(n, r, ".env.example"), o = u.resolve(n, r, ".env.test");
2610
+ async function mr(e, t, n) {
2611
+ let r = X("{{backend.root}}", t), i = p.resolve(n, r, "src/config/env/env.config.ts"), a = p.resolve(n, r, ".env.example"), o = p.resolve(n, r, ".env.test");
2621
2612
  if (await Y(i)) {
2622
2613
  let t = await s.readFile(i, "utf-8");
2623
- for (let n of e) t.includes(`from "${n.from}"`) || (t = Sr(t, n), t = Cr(t, n));
2614
+ for (let n of e) t.includes(`from "${n.from}"`) || (t = hr(t, n), t = gr(t, n));
2624
2615
  await s.writeFile(i, t, "utf-8");
2625
2616
  }
2626
2617
  if (await Y(a)) {
2627
2618
  let t = await s.readFile(a, "utf-8");
2628
- for (let n of e) t = wr(t, n);
2619
+ for (let n of e) t = _r(t, n);
2629
2620
  await s.writeFile(a, t, "utf-8");
2630
2621
  }
2631
2622
  if (await Y(o)) {
2632
2623
  let t = await s.readFile(o, "utf-8");
2633
- for (let n of e) t = Tr(t, n);
2624
+ for (let n of e) t = vr(t, n);
2634
2625
  await s.writeFile(o, t, "utf-8");
2635
2626
  }
2636
2627
  }
2637
- function Sr(e, t) {
2628
+ function hr(e, t) {
2638
2629
  let n = `import { ${t.import} } from "${t.from}";`, r = e.lastIndexOf("import ");
2639
2630
  if (r === -1) return n + "\n" + e;
2640
2631
  let i = e.indexOf("\n", e.indexOf(";", r));
2641
2632
  return i === -1 ? e + "\n" + n : e.slice(0, i + 1) + n + "\n" + e.slice(i + 1);
2642
2633
  }
2643
- function Cr(e, t) {
2634
+ function gr(e, t) {
2644
2635
  let n = `.extend(${t.import}.shape)`;
2645
2636
  if (e.includes(n)) return e;
2646
2637
  let r = e.indexOf("export const envSchema = z.object({");
@@ -2655,27 +2646,27 @@ function Cr(e, t) {
2655
2646
  let o = a + 2;
2656
2647
  return e.slice(0, o) + n + e.slice(o);
2657
2648
  }
2658
- function wr(e, t) {
2649
+ function _r(e, t) {
2659
2650
  for (let n of Object.keys(t.envExample.vars)) if (e.includes(`${n}=`)) return e;
2660
2651
  let n = [];
2661
2652
  n.push(""), n.push(`# ${t.envExample.section}`);
2662
2653
  for (let [e, r] of Object.entries(t.envExample.vars)) n.push(`${e}=${r}`);
2663
2654
  return e.trimEnd() + "\n" + n.join("\n") + "\n";
2664
2655
  }
2665
- function Tr(e, t) {
2656
+ function vr(e, t) {
2666
2657
  for (let n of Object.keys(t.envTest)) if (e.includes(`${n}=`)) return e;
2667
2658
  let n = [""];
2668
2659
  for (let [e, r] of Object.entries(t.envTest)) n.push(`${e}=${r}`);
2669
2660
  return e.trimEnd() + "\n" + n.join("\n") + "\n";
2670
2661
  }
2671
- async function Er(e, t, n) {
2672
- let r = u.resolve(n, X("{{backend.routes}}", t), "index.ts");
2662
+ async function yr(e, t, n) {
2663
+ let r = p.resolve(n, X("{{backend.routes}}", t), "index.ts");
2673
2664
  if (!await Y(r)) return;
2674
2665
  let i = await s.readFile(r, "utf-8");
2675
- for (let t of e) i.includes(`from "${t.from}"`) || (i = Dr(i, t), i = Or(i, t));
2666
+ for (let t of e) i.includes(`from "${t.from}"`) || (i = br(i, t), i = xr(i, t));
2676
2667
  await s.writeFile(r, i, "utf-8");
2677
2668
  }
2678
- function Dr(e, t) {
2669
+ function br(e, t) {
2679
2670
  let n = `import { ${t.import} } from "${t.from}";`, r = e.lastIndexOf("from \"./");
2680
2671
  if (r !== -1) {
2681
2672
  let t = e.indexOf("\n", r);
@@ -2684,7 +2675,7 @@ function Dr(e, t) {
2684
2675
  let i = e.indexOf("export const registerRoutes");
2685
2676
  return i === -1 ? e : e.slice(0, i) + n + "\n\n" + e.slice(i);
2686
2677
  }
2687
- function Or(e, t) {
2678
+ function xr(e, t) {
2688
2679
  let n = `.route("${t.prefix}", ${t.import})`, r = e.match(/\.route\([^)]+\);/g);
2689
2680
  if (r) {
2690
2681
  let t = r[r.length - 1], i = e.lastIndexOf(t) + t.length - 1;
@@ -2692,14 +2683,14 @@ function Or(e, t) {
2692
2683
  }
2693
2684
  return e.replace("return app;", `return app\n ${n};`);
2694
2685
  }
2695
- async function kr(e, t, n) {
2696
- let r = u.resolve(n, X("{{backend.root}}", t), "src/context.ts");
2686
+ async function Sr(e, t, n) {
2687
+ let r = p.resolve(n, X("{{backend.root}}", t), "src/context.ts");
2697
2688
  if (!await Y(r)) return;
2698
2689
  let i = await s.readFile(r, "utf-8");
2699
- for (let t of e) i.includes(`export let ${t.export}`) || (i = Ar(i, t), i = jr(i, t), i = Mr(i, t), i = Pr(i, t));
2690
+ for (let t of e) i.includes(`export let ${t.export}`) || (i = Cr(i, t), i = wr(i, t), i = Tr(i, t), i = Dr(i, t));
2700
2691
  await s.writeFile(r, i, "utf-8");
2701
2692
  }
2702
- function Ar(e, t) {
2693
+ function Cr(e, t) {
2703
2694
  let n = `import { ${t.typeImport.name} } from "${t.typeImport.from}";`;
2704
2695
  if (e.includes(`from "${t.typeImport.from}"`)) return e;
2705
2696
  let r = e.lastIndexOf("import ");
@@ -2707,7 +2698,7 @@ function Ar(e, t) {
2707
2698
  let i = e.indexOf("\n", e.indexOf(";", r));
2708
2699
  return i === -1 ? e + "\n" + n : e.slice(0, i + 1) + n + "\n" + e.slice(i + 1);
2709
2700
  }
2710
- function jr(e, t) {
2701
+ function wr(e, t) {
2711
2702
  let n = `export let ${t.export}: ${t.type};`, r = e.lastIndexOf("export let ");
2712
2703
  if (r === -1) {
2713
2704
  let t = e.indexOf("export const setupContext");
@@ -2716,15 +2707,15 @@ function jr(e, t) {
2716
2707
  let i = e.indexOf("\n", r);
2717
2708
  return i === -1 ? e + "\n" + n : e.slice(0, i + 1) + n + "\n" + e.slice(i + 1);
2718
2709
  }
2719
- function Mr(e, t) {
2710
+ function Tr(e, t) {
2720
2711
  let n = ` ${t.export} = ${t.init};`, r = e.match(/export const setupContext\s*=\s*async\s*\([^)]*\)\s*=>\s*\{/);
2721
2712
  if (!r) return e;
2722
2713
  let i = e.indexOf("{", e.indexOf(r[0]));
2723
2714
  if (i === -1) return e;
2724
- let a = Nr(e, i);
2715
+ let a = Er(e, i);
2725
2716
  return a === -1 ? e : e.slice(0, a) + n + "\n" + e.slice(a);
2726
2717
  }
2727
- function Nr(e, t) {
2718
+ function Er(e, t) {
2728
2719
  let n = 0;
2729
2720
  for (let r = t; r < e.length; r++) {
2730
2721
  let t = e[r];
@@ -2733,20 +2724,20 @@ function Nr(e, t) {
2733
2724
  }
2734
2725
  return -1;
2735
2726
  }
2736
- function Pr(e, t) {
2727
+ function Dr(e, t) {
2737
2728
  let n = ` ${t.export}: ${t.type};`, r = e.indexOf("export type ContextVariables = {");
2738
2729
  if (r === -1) return e;
2739
2730
  let i = e.indexOf("};", r);
2740
2731
  return i === -1 ? e : e.slice(0, i) + n + "\n" + e.slice(i);
2741
2732
  }
2742
- async function Fr(e, t, n) {
2743
- let r = u.resolve(n, X("{{enums.src}}", t), "index.ts");
2733
+ async function Or(e, t, n) {
2734
+ let r = p.resolve(n, X("{{enums.src}}", t), "index.ts");
2744
2735
  if (!await Y(r)) return;
2745
2736
  let i = await s.readFile(r, "utf-8");
2746
- for (let t of e) i.includes(`from "${t.from}"`) || (i = Ir(i, t));
2737
+ for (let t of e) i.includes(`from "${t.from}"`) || (i = kr(i, t));
2747
2738
  await s.writeFile(r, i, "utf-8");
2748
2739
  }
2749
- function Ir(e, t) {
2740
+ function kr(e, t) {
2750
2741
  let n = `export * from "${t.from}";`, r = e.lastIndexOf("export * from");
2751
2742
  if (r !== -1) {
2752
2743
  let t = e.indexOf("\n", r);
@@ -2754,14 +2745,14 @@ function Ir(e, t) {
2754
2745
  }
2755
2746
  return e.trim() === "" ? n + "\n" : e.trimEnd() + "\n" + n + "\n";
2756
2747
  }
2757
- async function Lr(e, t, n) {
2758
- let r = X("{{backend.root}}", t), i = u.resolve(n, r, "src/sockets/index.ts");
2748
+ async function Ar(e, t, n) {
2749
+ let r = X("{{backend.root}}", t), i = p.resolve(n, r, "src/sockets/index.ts");
2759
2750
  if (!await Y(i)) return;
2760
2751
  let a = await s.readFile(i, "utf-8");
2761
- for (let t of e) a.includes(`from "${t.from}"`) || (a = Rr(a, t), a = zr(a, t));
2762
- await Y(u.resolve(n, r, "src/libs/websocket/ws-authenticate.ts")) && (a = Br(a)), await s.writeFile(i, a, "utf-8");
2752
+ for (let t of e) a.includes(`from "${t.from}"`) || (a = jr(a, t), a = Mr(a, t));
2753
+ await Y(p.resolve(n, r, "src/libs/websocket/ws-authenticate.ts")) && (a = Nr(a)), await s.writeFile(i, a, "utf-8");
2763
2754
  }
2764
- function Rr(e, t) {
2755
+ function jr(e, t) {
2765
2756
  let n = `import { ${t.import} } from "${t.from}";`, r = e.lastIndexOf("from \"./");
2766
2757
  if (r !== -1) {
2767
2758
  let t = e.indexOf("\n", r);
@@ -2770,7 +2761,7 @@ function Rr(e, t) {
2770
2761
  let i = e.indexOf("const sockets");
2771
2762
  return i === -1 ? e : e.slice(0, i) + n + "\n\n" + e.slice(i);
2772
2763
  }
2773
- function zr(e, t) {
2764
+ function Mr(e, t) {
2774
2765
  let n = `.socket("${t.prefix}", ${t.import})`, r = e.indexOf("const sockets");
2775
2766
  if (r === -1) return e;
2776
2767
  let i = e.indexOf("new SocketRouter", r);
@@ -2784,7 +2775,7 @@ function zr(e, t) {
2784
2775
  }
2785
2776
  return e;
2786
2777
  }
2787
- function Br(e) {
2778
+ function Nr(e) {
2788
2779
  if (e.includes("wsAuthenticate")) return e;
2789
2780
  let t = e.indexOf("from \"@backend/libs/websocket/socket-router\""), n = e;
2790
2781
  if (t !== -1) {
@@ -2793,14 +2784,14 @@ function Br(e) {
2793
2784
  }
2794
2785
  return n.replace("new SocketRouter()", "new SocketRouter({ authenticate: wsAuthenticate })");
2795
2786
  }
2796
- async function Vr(e, t, n) {
2797
- let r = X("{{frontend.root}}", t), i = u.resolve(n, r, "src/api/sdk.ts");
2787
+ async function Pr(e, t, n) {
2788
+ let r = X("{{frontend.root}}", t), i = p.resolve(n, r, "src/api/sdk.ts");
2798
2789
  if (!await Y(i)) return;
2799
2790
  let a = await s.readFile(i, "utf-8");
2800
- for (let t of e) a.includes(`.$configure(${t.import})`) || (a = Hr(a, t), a = Ur(a, t));
2791
+ for (let t of e) a.includes(`.$configure(${t.import})`) || (a = Fr(a, t), a = Ir(a, t));
2801
2792
  await s.writeFile(i, a, "utf-8");
2802
2793
  }
2803
- function Hr(e, t) {
2794
+ function Fr(e, t) {
2804
2795
  let n = `import { ${t.import} } from "${t.from}";`;
2805
2796
  if (e.includes(n)) return e;
2806
2797
  let r = e.lastIndexOf("from \"./");
@@ -2811,57 +2802,57 @@ function Hr(e, t) {
2811
2802
  let i = e.indexOf("export const sdk");
2812
2803
  return i === -1 ? e : e.slice(0, i) + n + "\n\n" + e.slice(i);
2813
2804
  }
2814
- function Ur(e, t) {
2805
+ function Ir(e, t) {
2815
2806
  let n = `.$configure(${t.import})`, r = e.indexOf("export const sdk");
2816
2807
  if (r === -1) return e;
2817
2808
  let i = e.indexOf(";", r);
2818
2809
  return i === -1 ? e : e.slice(0, i) + "\n " + n + e.slice(i);
2819
2810
  }
2820
- async function Wr(e, t, n) {
2821
- let r = u.resolve(n, X("{{backend.utils}}", t), "frontend-url/frontend-url.ts");
2811
+ async function Lr(e, t, n) {
2812
+ let r = p.resolve(n, X("{{backend.utils}}", t), "frontend-url/frontend-url.ts");
2822
2813
  if (!await Y(r)) return;
2823
2814
  let i = await s.readFile(r, "utf-8");
2824
- for (let t of e) i.includes(`"${t.path}"`) || (i = Gr(i, t));
2815
+ for (let t of e) i.includes(`"${t.path}"`) || (i = Rr(i, t));
2825
2816
  await s.writeFile(r, i, "utf-8");
2826
2817
  }
2827
- function Gr(e, t) {
2818
+ function Rr(e, t) {
2828
2819
  let n = ` "${t.path}": ${t.search};`, r = e.indexOf("type RouteDefinitions = {");
2829
2820
  if (r === -1) return e;
2830
2821
  let i = e.indexOf("};", r);
2831
2822
  return i === -1 ? e : e.slice(0, i) + n + "\n" + e.slice(i);
2832
2823
  }
2833
- var Kr = "import { type LucideIcon } from \"lucide-react\";\n\n/* -------------------------------------------------------------------------------------------------\n * Types\n * -----------------------------------------------------------------------------------------------*/\n\nexport type NavItem = {\n label: string;\n icon: LucideIcon;\n to: string;\n params?: Record<string, string>;\n};\n\nexport type NavSection = {\n label: string;\n icon: LucideIcon;\n items: NavItem[];\n};\n\nexport type NavSectionLink = NavSection & { to: string; params?: Record<string, string> };\n\nexport type NavEntry = NavSection | NavSectionLink;\n\n/* -------------------------------------------------------------------------------------------------\n * Navigation\n * -----------------------------------------------------------------------------------------------*/\n\nexport const primaryNav: NavEntry[] = [];\n\nexport const secondaryNav: NavEntry[] = [];\n\nexport const tertiaryNav: NavEntry[] = [];\n\nexport const settingsNav: NavEntry[] = [];\n", qr = {
2824
+ var zr = "import { type LucideIcon } from \"lucide-react\";\n\n/* -------------------------------------------------------------------------------------------------\n * Types\n * -----------------------------------------------------------------------------------------------*/\n\nexport type NavItem = {\n label: string;\n icon: LucideIcon;\n to: string;\n params?: Record<string, string>;\n};\n\nexport type NavSection = {\n label: string;\n icon: LucideIcon;\n items: NavItem[];\n};\n\nexport type NavSectionLink = NavSection & { to: string; params?: Record<string, string> };\n\nexport type NavEntry = NavSection | NavSectionLink;\n\n/* -------------------------------------------------------------------------------------------------\n * Navigation\n * -----------------------------------------------------------------------------------------------*/\n\nexport const primaryNav: NavEntry[] = [];\n\nexport const secondaryNav: NavEntry[] = [];\n\nexport const tertiaryNav: NavEntry[] = [];\n\nexport const settingsNav: NavEntry[] = [];\n", Br = {
2834
2825
  primary: "primaryNav",
2835
2826
  secondary: "secondaryNav",
2836
2827
  tertiary: "tertiaryNav",
2837
2828
  settings: "settingsNav"
2838
2829
  };
2839
- async function Jr(e) {
2840
- let { entries: t, paths: n, projectRoot: r, slot: i = "frontend" } = e, a = br(i, n), o = u.resolve(r, a, "src/constants/nav.constants.ts"), c;
2841
- await Y(o) ? c = await s.readFile(o, "utf-8") : (await s.mkdir(u.dirname(o), { recursive: !0 }), c = Kr);
2842
- for (let e of t) c.includes(`label: "${e.label}"`) || (c = Zr(c, e));
2843
- for (let e of t.toReversed()) c.includes(`label: "${e.label}"`) || (c = $r(c, e));
2830
+ async function Vr(e) {
2831
+ let { entries: t, paths: n, projectRoot: r, slot: i = "frontend" } = e, a = pr(i, n), o = p.resolve(r, a, "src/constants/nav.constants.ts"), c;
2832
+ await Y(o) ? c = await s.readFile(o, "utf-8") : (await s.mkdir(p.dirname(o), { recursive: !0 }), c = zr);
2833
+ for (let e of t) c.includes(`label: "${e.label}"`) || (c = Wr(c, e));
2834
+ for (let e of t.toReversed()) c.includes(`label: "${e.label}"`) || (c = Kr(c, e));
2844
2835
  await s.writeFile(o, c, "utf-8");
2845
2836
  }
2846
- async function Yr(e) {
2847
- let { postLoginRedirect: t, paths: n, projectRoot: r, slot: i = "frontend" } = e, a = br(i, n), o = u.resolve(r, a, "src/features/auth/constants/auth.constants.ts");
2837
+ async function Hr(e) {
2838
+ let { postLoginRedirect: t, paths: n, projectRoot: r, slot: i = "frontend" } = e, a = pr(i, n), o = p.resolve(r, a, "src/features/auth/constants/auth.constants.ts");
2848
2839
  if (!await Y(o)) return;
2849
2840
  let c = await s.readFile(o, "utf-8"), l = /export const POST_LOGIN_REDIRECT_PATH = "[^"]*";/;
2850
2841
  if (!l.test(c)) return;
2851
- let d = c.replace(l, `export const POST_LOGIN_REDIRECT_PATH = "${t}";`);
2852
- await s.writeFile(o, d, "utf-8");
2842
+ let u = c.replace(l, `export const POST_LOGIN_REDIRECT_PATH = "${t}";`);
2843
+ await s.writeFile(o, u, "utf-8");
2853
2844
  }
2854
- function Xr(e) {
2845
+ function Ur(e) {
2855
2846
  let t = [e.icon];
2856
2847
  if (e.items) for (let n of e.items) t.includes(n.icon) || t.push(n.icon);
2857
2848
  return t;
2858
2849
  }
2859
- function Zr(e, t) {
2860
- let n = Xr(t), r = e;
2861
- for (let e of n) r = Qr(r, e);
2850
+ function Wr(e, t) {
2851
+ let n = Ur(t), r = e;
2852
+ for (let e of n) r = Gr(r, e);
2862
2853
  return r;
2863
2854
  }
2864
- function Qr(e, t) {
2855
+ function Gr(e, t) {
2865
2856
  let n = e.match(/import \{([^}]+)\} from "lucide-react";/);
2866
2857
  if (!n) return e;
2867
2858
  let r = n[1].split(",").map((e) => e.trim()).filter(Boolean);
@@ -2869,21 +2860,21 @@ function Qr(e, t) {
2869
2860
  let i = r.findIndex((e) => e.startsWith("type "));
2870
2861
  return i === -1 ? r.push(t) : r.splice(i, 0, t), e.replace(n[0], `import { ${r.join(", ")} } from "lucide-react";`);
2871
2862
  }
2872
- function $r(e, t) {
2873
- let n = qr[t.group];
2863
+ function Kr(e, t) {
2864
+ let n = Br[t.group];
2874
2865
  if (!n) return e;
2875
- let r = ti(t), i = RegExp(`export const ${n}: NavEntry\\[\\] = \\[`), a = e.match(i);
2866
+ let r = Jr(t), i = RegExp(`export const ${n}: NavEntry\\[\\] = \\[`), a = e.match(i);
2876
2867
  if (!a) return e;
2877
- let o = e.indexOf(a[0]) + a[0].length, s = ei(e, o - 1);
2868
+ let o = e.indexOf(a[0]) + a[0].length, s = qr(e, o - 1);
2878
2869
  return s === -1 ? e : e.slice(o, s).trim() === "" ? e.slice(0, o) + "\n" + r + "\n" + e.slice(o) : e.slice(0, o) + "\n" + r + e.slice(o);
2879
2870
  }
2880
- function ei(e, t) {
2871
+ function qr(e, t) {
2881
2872
  let n = 0;
2882
2873
  for (let r = t; r < e.length; r++) if (e[r] === "[") n++;
2883
2874
  else if (e[r] === "]" && (n--, n === 0)) return r;
2884
2875
  return -1;
2885
2876
  }
2886
- function ti(e) {
2877
+ function Jr(e) {
2887
2878
  let t = [];
2888
2879
  if (t.push(" {"), t.push(` label: "${e.label}",`), t.push(` icon: ${e.icon},`), e.to && t.push(` to: "${e.to}",`), e.params && t.push(` params: ${e.params},`), e.items && e.items.length > 0) {
2889
2880
  t.push(" items: [");
@@ -2899,14 +2890,14 @@ function ti(e) {
2899
2890
  } else t.push(" items: [],");
2900
2891
  return t.push(" },"), t.join("\n");
2901
2892
  }
2902
- async function ni(e, t, n) {
2903
- let r = X("{{backend.features}}", t), i = u.resolve(n, r, "organizations/modules/setup-organization/steps/index.ts");
2893
+ async function Yr(e, t, n) {
2894
+ let r = X("{{backend.features}}", t), i = p.resolve(n, r, "organizations/modules/setup-organization/steps/index.ts");
2904
2895
  if (!await Y(i)) return;
2905
2896
  let a = await s.readFile(i, "utf-8");
2906
- for (let t of e) a.includes(`from "${t.from}"`) || (a = ri(a, t), a = ii(a, t));
2897
+ for (let t of e) a.includes(`from "${t.from}"`) || (a = Xr(a, t), a = Zr(a, t));
2907
2898
  await s.writeFile(i, a, "utf-8");
2908
2899
  }
2909
- function ri(e, t) {
2900
+ function Xr(e, t) {
2910
2901
  let n = `import { ${t.import} } from "${t.from}";`, r = e.lastIndexOf("import ");
2911
2902
  if (r !== -1) {
2912
2903
  let t = e.indexOf("\n", e.indexOf(";", r));
@@ -2914,38 +2905,38 @@ function ri(e, t) {
2914
2905
  }
2915
2906
  return e.indexOf("type "), n + "\n\n" + e;
2916
2907
  }
2917
- function ii(e, t) {
2908
+ function Zr(e, t) {
2918
2909
  let n = ` { id: "${t.id}", execute: (ctx) => ${t.import}(ctx) },`, r = e.match(/export const steps:\s*Step\[\]\s*=\s*\[/);
2919
2910
  if (!r) return e;
2920
- let i = e.indexOf(r[0]) + r[0].length, a = ai(e, i - 1);
2911
+ let i = e.indexOf(r[0]) + r[0].length, a = Qr(e, i - 1);
2921
2912
  return a === -1 ? e : e.slice(i, a).trim() === "" ? e.slice(0, a) + "\n" + n + "\n" + e.slice(a) : e.slice(0, a) + n + "\n" + e.slice(a);
2922
2913
  }
2923
- function ai(e, t) {
2914
+ function Qr(e, t) {
2924
2915
  let n = 0;
2925
2916
  for (let r = t; r < e.length; r++) if (e[r] === "[") n++;
2926
2917
  else if (e[r] === "]" && (n--, n === 0)) return r;
2927
2918
  return -1;
2928
2919
  }
2929
- var oi = "import { type ComponentType } from \"react\";\n\nexport type NavbarAction = {\n id: string;\n component: ComponentType;\n};\n\nexport const navbarActions: NavbarAction[] = [];\n\nexport const userMenuActions: NavbarAction[] = [];\n";
2930
- async function si(e) {
2931
- await li({
2920
+ var $r = "import { type ComponentType } from \"react\";\n\nexport type NavbarAction = {\n id: string;\n component: ComponentType;\n};\n\nexport const navbarActions: NavbarAction[] = [];\n\nexport const userMenuActions: NavbarAction[] = [];\n";
2921
+ async function ei(e) {
2922
+ await ni({
2932
2923
  ...e,
2933
2924
  arrayName: "navbarActions"
2934
2925
  });
2935
2926
  }
2936
- async function ci(e) {
2937
- await li({
2927
+ async function ti(e) {
2928
+ await ni({
2938
2929
  ...e,
2939
2930
  arrayName: "userMenuActions"
2940
2931
  });
2941
2932
  }
2942
- async function li({ actions: e, arrayName: t, paths: n, projectRoot: r, slot: i }) {
2943
- let a = br(i, n), o = u.resolve(r, a, "src/constants/navbar-actions.tsx"), c;
2944
- await Y(o) ? c = await s.readFile(o, "utf-8") : (await s.mkdir(u.dirname(o), { recursive: !0 }), c = oi);
2945
- for (let n of e) c = ui(c, n), c = di(c, n, t);
2933
+ async function ni({ actions: e, arrayName: t, paths: n, projectRoot: r, slot: i }) {
2934
+ let a = pr(i, n), o = p.resolve(r, a, "src/constants/navbar-actions.tsx"), c;
2935
+ await Y(o) ? c = await s.readFile(o, "utf-8") : (await s.mkdir(p.dirname(o), { recursive: !0 }), c = $r);
2936
+ for (let n of e) c = ri(c, n), c = ii(c, n, t);
2946
2937
  await s.writeFile(o, c, "utf-8");
2947
2938
  }
2948
- function ui(e, t) {
2939
+ function ri(e, t) {
2949
2940
  let n = `import { ${t.import} } from "${t.from}";`;
2950
2941
  if (e.includes(n)) return e;
2951
2942
  let r = e.lastIndexOf("import ");
@@ -2953,38 +2944,38 @@ function ui(e, t) {
2953
2944
  let i = e.indexOf("\n", r);
2954
2945
  return i === -1 ? e + "\n" + n : e.slice(0, i + 1) + n + "\n" + e.slice(i + 1);
2955
2946
  }
2956
- function di(e, t, n) {
2947
+ function ii(e, t, n) {
2957
2948
  let r = e.match(RegExp(`export const ${n}:\\s*NavbarAction\\[\\]\\s*=\\s*\\[`));
2958
2949
  if (!r) return e;
2959
- let i = e.indexOf(r[0]) + r[0].length, a = fi(e, i - 1);
2950
+ let i = e.indexOf(r[0]) + r[0].length, a = ai(e, i - 1);
2960
2951
  if (a === -1) return e;
2961
2952
  let o = e.slice(i, a);
2962
2953
  if (o.includes(`id: "${t.id}"`)) return e;
2963
2954
  let s = ` { id: "${t.id}", component: ${t.import} },`;
2964
2955
  return o.trim() === "" ? e.slice(0, a) + "\n" + s + "\n" + e.slice(a) : e.slice(0, a) + s + "\n" + e.slice(a);
2965
2956
  }
2966
- function fi(e, t) {
2957
+ function ai(e, t) {
2967
2958
  let n = 0;
2968
2959
  for (let r = t; r < e.length; r++) if (e[r] === "[") n++;
2969
2960
  else if (e[r] === "]" && (n--, n === 0)) return r;
2970
2961
  return -1;
2971
2962
  }
2972
- var pi = new Set([
2963
+ var oi = new Set([
2973
2964
  ".ts",
2974
2965
  ".tsx",
2975
2966
  ".js",
2976
2967
  ".jsx"
2977
2968
  ]);
2978
- async function mi(e) {
2969
+ async function si(e) {
2979
2970
  let { files: t, paths: n, projectRoot: r, projectName: i } = e;
2980
2971
  if (i === "hype-stack") return;
2981
2972
  let a = `@${i}/`;
2982
2973
  await Promise.all(t.map(async (e) => {
2983
- let t = mr(e.target, n, r), i = await s.stat(t).catch(() => null);
2984
- i?.isDirectory() ? await _i(t, a) : i?.isFile() && pi.has(u.extname(t)) && await vi(t, a);
2974
+ let t = sr(e.target, n, r), i = await s.stat(t).catch(() => null);
2975
+ i?.isDirectory() ? await ui(t, a) : i?.isFile() && oi.has(p.extname(t)) && await di(t, a);
2985
2976
  }));
2986
2977
  }
2987
- var hi = new Set([
2978
+ var ci = new Set([
2988
2979
  ".git",
2989
2980
  "node_modules",
2990
2981
  "dist",
@@ -2993,48 +2984,48 @@ var hi = new Set([
2993
2984
  ".next",
2994
2985
  "coverage"
2995
2986
  ]);
2996
- async function gi(e, t) {
2997
- t !== "hype-stack" && await _i(e, `@${t}/`);
2987
+ async function li(e, t) {
2988
+ t !== "hype-stack" && await ui(e, `@${t}/`);
2998
2989
  }
2999
- async function _i(e, t) {
2990
+ async function ui(e, t) {
3000
2991
  let n = await s.readdir(e, { withFileTypes: !0 });
3001
2992
  await Promise.all(n.map(async (n) => {
3002
- let r = u.join(e, n.name);
2993
+ let r = p.join(e, n.name);
3003
2994
  if (n.isDirectory()) {
3004
- if (hi.has(n.name)) return;
3005
- await _i(r, t);
3006
- } else n.isFile() && pi.has(u.extname(n.name)) && await vi(r, t);
2995
+ if (ci.has(n.name)) return;
2996
+ await ui(r, t);
2997
+ } else n.isFile() && oi.has(p.extname(n.name)) && await di(r, t);
3007
2998
  }));
3008
2999
  }
3009
- async function vi(e, t) {
3000
+ async function di(e, t) {
3010
3001
  let n = await s.readFile(e, "utf-8");
3011
- if (!n.includes(yr)) return;
3012
- let r = n.replaceAll(yr, t);
3002
+ if (!n.includes(fr)) return;
3003
+ let r = n.replaceAll(fr, t);
3013
3004
  await s.writeFile(e, r, "utf-8");
3014
3005
  }
3015
3006
  //#endregion
3016
3007
  //#region src/core/installer.ts
3017
- function yi(e, t) {
3008
+ function fi(e, t) {
3018
3009
  return e.slot ? t ? t.includes(e.slot) : e.slot === "frontend" : !0;
3019
3010
  }
3020
- async function bi(e, t) {
3011
+ async function pi(e, t) {
3021
3012
  if ((await s.stat(e)).isDirectory()) {
3022
3013
  await s.mkdir(t, { recursive: !0 });
3023
3014
  let n = await s.readdir(e, { withFileTypes: !0 });
3024
- for (let r of n) await bi(u.join(e, r.name), u.join(t, r.name));
3025
- } else await s.mkdir(u.dirname(t), { recursive: !0 }), await s.copyFile(e, t);
3015
+ for (let r of n) await pi(p.join(e, r.name), p.join(t, r.name));
3016
+ } else await s.mkdir(p.dirname(t), { recursive: !0 }), await s.copyFile(e, t);
3026
3017
  }
3027
- async function xi(e) {
3028
- let { file: t, packDir: n, paths: r, projectRoot: i } = e, a = hr(t.source, n), o = mr(t.target, r, i);
3018
+ async function mi(e) {
3019
+ let { file: t, packDir: n, paths: r, projectRoot: i } = e, a = cr(t.source, n), o = sr(t.target, r, i);
3029
3020
  return {
3030
3021
  sourcePath: a,
3031
3022
  targetPath: o,
3032
- sourceExists: await Y(a) || await Xn(a),
3033
- targetExists: await Y(o) || await Xn(o)
3023
+ sourceExists: await Y(a) || await J(a),
3024
+ targetExists: await Y(o) || await J(o)
3034
3025
  };
3035
3026
  }
3036
- async function Si(e) {
3037
- let { file: t, packDir: n, paths: r, projectRoot: i } = e, { sourcePath: a, targetPath: o, sourceExists: c, targetExists: l } = await xi({
3027
+ async function hi(e) {
3028
+ let { file: t, packDir: n, paths: r, projectRoot: i } = e, { sourcePath: a, targetPath: o, sourceExists: c, targetExists: l } = await mi({
3038
3029
  file: t,
3039
3030
  packDir: n,
3040
3031
  paths: r,
@@ -3049,8 +3040,8 @@ async function Si(e) {
3049
3040
  default: return `${t.target}: Unknown strategy: ${String(t.strategy)}`;
3050
3041
  }
3051
3042
  }
3052
- async function Ci(e) {
3053
- let { file: t, packDir: n, paths: r, projectRoot: i, force: a, overwrite: o } = e, { sourcePath: c, targetPath: l, sourceExists: u, targetExists: d } = await xi({
3043
+ async function gi(e) {
3044
+ let { file: t, packDir: n, paths: r, projectRoot: i, force: a, overwrite: o } = e, { sourcePath: c, targetPath: l, sourceExists: u, targetExists: d } = await mi({
3054
3045
  file: t,
3055
3046
  packDir: n,
3056
3047
  paths: r,
@@ -3068,7 +3059,7 @@ async function Ci(e) {
3068
3059
  status: "skipped",
3069
3060
  path: t.target,
3070
3061
  reason: "Already exists"
3071
- } : (await bi(c, l), {
3062
+ } : (await pi(c, l), {
3072
3063
  status: "installed",
3073
3064
  path: t.target
3074
3065
  });
@@ -3077,16 +3068,16 @@ async function Ci(e) {
3077
3068
  status: "skipped",
3078
3069
  path: t.target,
3079
3070
  reason: "Already exists (skip-if-exists)"
3080
- } : (await bi(c, l), {
3071
+ } : (await pi(c, l), {
3081
3072
  status: "installed",
3082
3073
  path: t.target
3083
3074
  });
3084
- case "override": return await bi(c, l), {
3075
+ case "override": return await pi(c, l), {
3085
3076
  status: "installed",
3086
3077
  path: t.target
3087
3078
  };
3088
3079
  case "merge": {
3089
- if (!d) return await bi(c, l), {
3080
+ if (!d) return await pi(c, l), {
3090
3081
  status: "installed",
3091
3082
  path: t.target
3092
3083
  };
@@ -3116,15 +3107,15 @@ async function Ci(e) {
3116
3107
  };
3117
3108
  }
3118
3109
  }
3119
- async function wi(e) {
3110
+ async function _i(e) {
3120
3111
  let { packs: t, config: n, projectRoot: r, slotsByPack: i } = e, a = n.paths;
3121
- if (!a) throw Error("stack.json is missing 'paths' configuration. Run 'hype-stack init' to set it up.");
3112
+ if (!a) throw Error("stack.json is missing 'paths' configuration. Run 'npx @hype-stack/cli init' to set it up.");
3122
3113
  let o = [], s = /* @__PURE__ */ new Set();
3123
3114
  for (let e of t) {
3124
3115
  let t = i?.get(e.manifest.name);
3125
3116
  for (let n of e.manifest.files) {
3126
- if (n.strategy !== "create" || !yi(n, t)) continue;
3127
- let { targetPath: i, targetExists: c } = await xi({
3117
+ if (n.strategy !== "create" || !fi(n, t)) continue;
3118
+ let { targetPath: i, targetExists: c } = await mi({
3128
3119
  file: n,
3129
3120
  packDir: e.packDir,
3130
3121
  paths: a,
@@ -3139,13 +3130,13 @@ async function wi(e) {
3139
3130
  }
3140
3131
  return o;
3141
3132
  }
3142
- async function Ti(e) {
3133
+ async function vi(e) {
3143
3134
  let { manifest: t, config: n, projectRoot: r, force: i, packDir: a, slots: o } = e, s = n.paths;
3144
- if (!s) throw Error("stack.json is missing 'paths' configuration. Run 'hype-stack init' to set it up.");
3135
+ if (!s) throw Error("stack.json is missing 'paths' configuration. Run 'npx @hype-stack/cli init' to set it up.");
3145
3136
  let c = [];
3146
3137
  for (let e of t.files) {
3147
- if (!yi(e, o)) continue;
3148
- let t = await Si({
3138
+ if (!fi(e, o)) continue;
3139
+ let t = await hi({
3149
3140
  file: e,
3150
3141
  packDir: a,
3151
3142
  paths: s,
@@ -3156,16 +3147,16 @@ async function Ti(e) {
3156
3147
  }
3157
3148
  return c;
3158
3149
  }
3159
- async function Ei(e) {
3150
+ async function yi(e) {
3160
3151
  let { manifest: t, config: n, projectRoot: r, force: i, overwrite: a, packDir: o, slots: s } = e, c = n.paths;
3161
- if (!c) throw Error("stack.json is missing 'paths' configuration. Run 'hype-stack init' to set it up.");
3152
+ if (!c) throw Error("stack.json is missing 'paths' configuration. Run 'npx @hype-stack/cli init' to set it up.");
3162
3153
  let l = {
3163
3154
  installed: [],
3164
3155
  skipped: [],
3165
3156
  errors: []
3166
- }, u = t.files.filter((e) => yi(e, s));
3157
+ }, u = t.files.filter((e) => fi(e, s));
3167
3158
  for (let e of u) {
3168
- let t = await Ci({
3159
+ let t = await gi({
3169
3160
  file: e,
3170
3161
  packDir: o,
3171
3162
  paths: c,
@@ -3185,40 +3176,40 @@ async function Ei(e) {
3185
3176
  break;
3186
3177
  }
3187
3178
  }
3188
- await mi({
3179
+ await si({
3189
3180
  files: u,
3190
3181
  paths: c,
3191
3182
  projectRoot: r,
3192
3183
  projectName: n.name
3193
- }), t.env && t.env.length > 0 && await xr(t.env, c, r), t.routes && t.routes.length > 0 && await Er(t.routes, c, r), t.context && t.context.length > 0 && await kr(t.context, c, r), t.sockets && t.sockets.length > 0 && await Lr(t.sockets, c, r), t.sdkConfigurations && t.sdkConfigurations.length > 0 && await Vr(t.sdkConfigurations, c, r), t.enums && t.enums.length > 0 && await Fr(t.enums, c, r), t.frontendRoutes && t.frontendRoutes.length > 0 && await Wr(t.frontendRoutes, c, r);
3184
+ }), t.env && t.env.length > 0 && await mr(t.env, c, r), t.routes && t.routes.length > 0 && await yr(t.routes, c, r), t.context && t.context.length > 0 && await Sr(t.context, c, r), t.sockets && t.sockets.length > 0 && await Ar(t.sockets, c, r), t.sdkConfigurations && t.sdkConfigurations.length > 0 && await Pr(t.sdkConfigurations, c, r), t.enums && t.enums.length > 0 && await Or(t.enums, c, r), t.frontendRoutes && t.frontendRoutes.length > 0 && await Lr(t.frontendRoutes, c, r);
3194
3185
  let d = s && s.length > 0 ? s : ["frontend"];
3195
- for (let e of d) t.nav && t.nav.length > 0 && await Jr({
3186
+ for (let e of d) t.nav && t.nav.length > 0 && await Vr({
3196
3187
  entries: t.nav,
3197
3188
  paths: c,
3198
3189
  projectRoot: r,
3199
3190
  slot: e
3200
- }), t.navbarActions && t.navbarActions.length > 0 && await si({
3191
+ }), t.navbarActions && t.navbarActions.length > 0 && await ei({
3201
3192
  actions: t.navbarActions,
3202
3193
  paths: c,
3203
3194
  projectRoot: r,
3204
3195
  slot: e
3205
- }), t.userMenuActions && t.userMenuActions.length > 0 && await ci({
3196
+ }), t.userMenuActions && t.userMenuActions.length > 0 && await ti({
3206
3197
  actions: t.userMenuActions,
3207
3198
  paths: c,
3208
3199
  projectRoot: r,
3209
3200
  slot: e
3210
3201
  });
3211
- return t.onboardingSteps && t.onboardingSteps.length > 0 && await ni(t.onboardingSteps, c, r), t.postLoginRedirect && await Yr({
3202
+ return t.onboardingSteps && t.onboardingSteps.length > 0 && await Yr(t.onboardingSteps, c, r), t.postLoginRedirect && await Hr({
3212
3203
  postLoginRedirect: t.postLoginRedirect,
3213
3204
  paths: c,
3214
3205
  projectRoot: r,
3215
3206
  slot: d[0]
3216
3207
  }), l;
3217
3208
  }
3218
- async function Di(e) {
3209
+ async function bi(e) {
3219
3210
  let { packs: t, config: n, projectRoot: r, force: i, overwrite: a, slotsByPack: o } = e, s = [];
3220
3211
  for (let e of t) {
3221
- let t = o?.get(e.manifest.name), a = await Ti({
3212
+ let t = o?.get(e.manifest.name), a = await vi({
3222
3213
  manifest: e.manifest,
3223
3214
  config: n,
3224
3215
  projectRoot: r,
@@ -3238,7 +3229,7 @@ async function Di(e) {
3238
3229
  };
3239
3230
  let c = [], l = [], u = [], d = [], f = n;
3240
3231
  for (let e of t) {
3241
- let t = o?.get(e.manifest.name), n = await Ei({
3232
+ let t = o?.get(e.manifest.name), n = await yi({
3242
3233
  manifest: e.manifest,
3243
3234
  config: f,
3244
3235
  projectRoot: r,
@@ -3247,7 +3238,7 @@ async function Di(e) {
3247
3238
  packDir: e.packDir,
3248
3239
  slots: t
3249
3240
  });
3250
- c.push(...n.installed), l.push(...n.skipped), u.push(...n.errors), f = await Oi(f, e.manifest.name, r), d.push(e.manifest.name);
3241
+ c.push(...n.installed), l.push(...n.skipped), u.push(...n.errors), f = await xi(f, e.manifest.name, r), d.push(e.manifest.name);
3251
3242
  }
3252
3243
  return {
3253
3244
  installed: c,
@@ -3258,19 +3249,19 @@ async function Di(e) {
3258
3249
  config: f
3259
3250
  };
3260
3251
  }
3261
- async function Oi(e, t, n) {
3252
+ async function xi(e, t, n) {
3262
3253
  let r = {
3263
3254
  ...e,
3264
3255
  installedPacks: [...e.installedPacks ?? [], t]
3265
3256
  };
3266
- return await sr(n, r), r;
3257
+ return await er(n, r), r;
3267
3258
  }
3268
- async function ki(e) {
3259
+ async function Si(e) {
3269
3260
  let { manifest: t, config: n, projectRoot: r, templateDir: i } = e, a = n.paths;
3270
- if (!a) throw Error("stack.json is missing 'paths' configuration. Run 'hype-stack init' to set it up.");
3261
+ if (!a) throw Error("stack.json is missing 'paths' configuration. Run 'npx @hype-stack/cli init' to set it up.");
3271
3262
  let o = [], s = [];
3272
3263
  for (let e of t.files) {
3273
- let t = await Ci({
3264
+ let t = await gi({
3274
3265
  file: e,
3275
3266
  packDir: i,
3276
3267
  paths: a,
@@ -3288,11 +3279,11 @@ async function ki(e) {
3288
3279
  case "skipped": break;
3289
3280
  }
3290
3281
  }
3291
- return t.frontendRoutes && t.frontendRoutes.length > 0 && await Wr(t.frontendRoutes, a, r), t.nav && t.nav.length > 0 && await Jr({
3282
+ return t.frontendRoutes && t.frontendRoutes.length > 0 && await Lr(t.frontendRoutes, a, r), t.nav && t.nav.length > 0 && await Vr({
3292
3283
  entries: t.nav,
3293
3284
  paths: a,
3294
3285
  projectRoot: r
3295
- }), t.postLoginRedirect && await Yr({
3286
+ }), t.postLoginRedirect && await Hr({
3296
3287
  postLoginRedirect: t.postLoginRedirect,
3297
3288
  paths: a,
3298
3289
  projectRoot: r
@@ -3303,28 +3294,28 @@ async function ki(e) {
3303
3294
  }
3304
3295
  //#endregion
3305
3296
  //#region src/core/pack-categories.ts
3306
- var Ai = [
3297
+ var Ci = [
3307
3298
  "starter",
3308
3299
  "layout",
3309
3300
  "feature"
3310
- ], ji = {
3301
+ ], wi = {
3311
3302
  starter: "Starter",
3312
3303
  layout: "Layout",
3313
3304
  feature: "Features"
3314
- }, Mi = new Set(["starter", "layout"]), Ni = "layout-basic";
3315
- function Pi(e, t = {}) {
3305
+ }, Ti = new Set(["starter", "layout"]), Ei = "layout-basic";
3306
+ function Di(e, t = {}) {
3316
3307
  let n = [];
3317
- for (let r of Ai) {
3308
+ for (let r of Ci) {
3318
3309
  let i = e.filter((e) => e.category === r);
3319
3310
  if (i.length === 0) continue;
3320
- let a = Mi.has(r) ? "single" : "multiple";
3311
+ let a = Ti.has(r) ? "single" : "multiple";
3321
3312
  if (r === "layout") {
3322
- n.push(Fi("frontend", i)), t.adminAvailable && n.push(Fi("admin", i));
3313
+ n.push(Oi("frontend", i)), t.adminAvailable && n.push(Oi("admin", i));
3323
3314
  continue;
3324
3315
  }
3325
3316
  n.push({
3326
3317
  category: r,
3327
- label: ji[r],
3318
+ label: wi[r],
3328
3319
  mode: a,
3329
3320
  packs: i,
3330
3321
  preselect: null
@@ -3332,20 +3323,20 @@ function Pi(e, t = {}) {
3332
3323
  }
3333
3324
  return n;
3334
3325
  }
3335
- function Fi(e, t) {
3336
- let n = t.some((e) => e.name === Ni);
3326
+ function Oi(e, t) {
3327
+ let n = t.some((e) => e.name === Ei);
3337
3328
  return {
3338
3329
  category: "layout",
3339
3330
  label: e === "admin" ? "Admin Layout" : "Layout",
3340
3331
  mode: "single",
3341
3332
  packs: t,
3342
- preselect: n ? Ni : null,
3333
+ preselect: n ? Ei : null,
3343
3334
  slot: e
3344
3335
  };
3345
3336
  }
3346
3337
  //#endregion
3347
3338
  //#region src/core/resolve.ts
3348
- function Ii(e) {
3339
+ function ki(e) {
3349
3340
  let t = /* @__PURE__ */ new Map();
3350
3341
  for (let n of e) t.set(n.name, {
3351
3342
  name: n.name,
@@ -3353,7 +3344,7 @@ function Ii(e) {
3353
3344
  });
3354
3345
  return t;
3355
3346
  }
3356
- function Li(e, t, n = /* @__PURE__ */ new Set()) {
3347
+ function Ai(e, t, n = /* @__PURE__ */ new Set()) {
3357
3348
  let r = /* @__PURE__ */ new Set();
3358
3349
  function i(e) {
3359
3350
  if (n.has(e)) return [];
@@ -3367,10 +3358,10 @@ function Li(e, t, n = /* @__PURE__ */ new Set()) {
3367
3358
  }
3368
3359
  return i(e);
3369
3360
  }
3370
- function Ri(e, t, n = []) {
3361
+ function ji(e, t, n = []) {
3371
3362
  let r = new Set(n), i = new Set(n), a = [];
3372
3363
  for (let n of e) {
3373
- let e = Li(n, t, new Set(i));
3364
+ let e = Ai(n, t, new Set(i));
3374
3365
  for (let t of e) i.has(t) || (i.add(t), a.push(t));
3375
3366
  }
3376
3367
  return {
@@ -3378,7 +3369,7 @@ function Ri(e, t, n = []) {
3378
3369
  alreadyInstalled: e.filter((e) => r.has(e))
3379
3370
  };
3380
3371
  }
3381
- function zi(e) {
3372
+ function Mi(e) {
3382
3373
  let { order: t, graph: n, isLocked: r, installed: i = [] } = e, a = new Set(i), o = /* @__PURE__ */ new Set();
3383
3374
  for (let e of t) {
3384
3375
  let t = n.get(e)?.dependencies.some((e) => !a.has(e) && o.has(e)) ?? !1;
@@ -3391,7 +3382,7 @@ function zi(e) {
3391
3382
  }
3392
3383
  //#endregion
3393
3384
  //#region src/core/variants.ts
3394
- function Bi(e, t = {}) {
3385
+ function Ni(e, t = {}) {
3395
3386
  let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
3396
3387
  for (let i of e) {
3397
3388
  let e = t[i.family] ?? i.default;
@@ -3403,14 +3394,14 @@ function Bi(e, t = {}) {
3403
3394
  familyOf: r
3404
3395
  };
3405
3396
  }
3406
- function Vi(e, t, n) {
3397
+ function Pi(e, t, n) {
3407
3398
  return [...e.map((e) => n.chosen.get(e.family) ?? e.default), ...t];
3408
3399
  }
3409
- function Hi(e, t) {
3400
+ function Fi(e, t) {
3410
3401
  let n = t.familyOf.get(e);
3411
3402
  return n ? t.chosen.get(n) ?? e : e;
3412
3403
  }
3413
- function Ui(e, t) {
3404
+ function Ii(e, t) {
3414
3405
  let n = /* @__PURE__ */ new Map();
3415
3406
  for (let t of e) t.family && n.set(t.name, t.family);
3416
3407
  let r = new Set(t), i = /* @__PURE__ */ new Map();
@@ -3426,73 +3417,73 @@ function Ui(e, t) {
3426
3417
  familyOf: n
3427
3418
  };
3428
3419
  }
3429
- function Wi(e, t) {
3420
+ function Li(e, t) {
3430
3421
  return e.map((e) => ({
3431
3422
  ...e,
3432
- dependencies: e.dependencies.map((e) => Hi(e, t))
3423
+ dependencies: e.dependencies.map((e) => Fi(e, t))
3433
3424
  }));
3434
3425
  }
3435
3426
  //#endregion
3436
3427
  //#region src/ui/banner.ts
3437
- var Gi = [
3428
+ var Ri = [
3438
3429
  " ██╗ ██╗ ██╗ ██╗ ██████╗ ███████╗",
3439
3430
  " ██║ ██║ ╚██╗ ██╔╝ ██╔══██╗ ██╔════╝",
3440
3431
  " ███████║ ╚████╔╝ ██████╔╝ █████╗ ",
3441
3432
  " ██╔══██║ ╚██╔╝ ██╔═══╝ ██╔══╝ ",
3442
3433
  " ██║ ██║ ██║ ██║ ███████╗",
3443
3434
  " ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝"
3444
- ], Ki = [
3435
+ ], zi = [
3445
3436
  " ███████╗ ████████╗ █████╗ ██████╗ ██╗ ██╗",
3446
3437
  " ██╔════╝ ╚══██╔══╝ ██╔══██╗ ██╔════╝ ██║ ██╔╝",
3447
3438
  " ███████╗ ██║ ███████║ ██║ █████╔╝ ",
3448
3439
  " ╚════██║ ██║ ██╔══██║ ██║ ██╔═██╗ ",
3449
3440
  " ███████║ ██║ ██║ ██║ ╚██████╗ ██║ ██╗",
3450
3441
  " ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝"
3451
- ], qi = [
3442
+ ], Bi = [
3452
3443
  253,
3453
3444
  176,
3454
3445
  21
3455
- ], Ji = [
3446
+ ], Vi = [
3456
3447
  245,
3457
3448
  76,
3458
3449
  2
3459
- ], Yi = 5, Xi = [
3450
+ ], Hi = 5, Ui = [
3460
3451
  17,
3461
3452
  103,
3462
3453
  248
3463
- ], Zi = [
3454
+ ], Wi = [
3464
3455
  42,
3465
3456
  160,
3466
3457
  250
3467
- ], Qi = .2;
3468
- function $i() {
3458
+ ], Gi = .2;
3459
+ function Ki() {
3469
3460
  console.log();
3470
- for (let e of pe(Gi, {
3471
- start: qi,
3472
- end: Ji,
3473
- angle: Yi
3461
+ for (let e of ce(Ri, {
3462
+ start: Bi,
3463
+ end: Vi,
3464
+ angle: Hi
3474
3465
  })) console.log(c.bold(e));
3475
- for (let e of pe(Ki, {
3476
- start: Xi,
3477
- end: Zi,
3478
- angle: Qi
3466
+ for (let e of ce(zi, {
3467
+ start: Ui,
3468
+ end: Wi,
3469
+ angle: Gi
3479
3470
  })) console.log(c.bold(e));
3480
- console.log(), console.log(` ${z.spark} ${c.dim("v" + C)} ${c.dim("·")} ${de("Ship web + desktop apps from one codebase")}`), console.log();
3471
+ console.log(), console.log(` ${R.spark} ${c.dim("v" + _)} ${c.dim("·")} ${oe("Ship web + desktop apps from one codebase")}`), console.log();
3481
3472
  }
3482
- function ea() {
3483
- console.log(), console.log(` ${z.bolt} ${ce.orange("Hype")}${ce.skyBlue("Stack")} ${c.dim("v" + C)}`), console.log();
3473
+ function qi() {
3474
+ console.log(), console.log(` ${R.bolt} ${re.orange("Hype")}${re.skyBlue("Stack")} ${c.dim("v" + _)}`), console.log();
3484
3475
  }
3485
3476
  //#endregion
3486
3477
  //#region src/ui/logger.ts
3487
- function ta(e) {
3488
- o.note(e.map((e) => `${z.arrow} ${e}`).join("\n"), "Next steps");
3478
+ function Ji(e) {
3479
+ o.note(e.map((e) => `${R.arrow} ${e}`).join("\n"), "Next steps");
3489
3480
  }
3490
3481
  function Z() {
3491
- o.cancel(R.muted("Operation cancelled.")), process.exit(0);
3482
+ o.cancel(L.muted("Operation cancelled.")), process.exit(0);
3492
3483
  }
3493
3484
  //#endregion
3494
3485
  //#region src/core/apply-theme.ts
3495
- function na(e, t) {
3486
+ function Yi(e, t) {
3496
3487
  let n = e.indexOf(t);
3497
3488
  if (n === -1) return null;
3498
3489
  let r = e.indexOf("{", n);
@@ -3507,47 +3498,47 @@ function na(e, t) {
3507
3498
  bodyEnd: a - 1
3508
3499
  } : null;
3509
3500
  }
3510
- function ra(e, t) {
3501
+ function Xi(e, t) {
3511
3502
  let n = e;
3512
3503
  for (let [e, r] of Object.entries(t)) {
3513
- let t = RegExp(`(^[ \\t]*--${ia(e)}[ \\t]*:[ \\t]*)([^;\\n]*);`, "m");
3504
+ let t = RegExp(`(^[ \\t]*--${Zi(e)}[ \\t]*:[ \\t]*)([^;\\n]*);`, "m");
3514
3505
  n = n.replace(t, (e, t) => `${t}${r};`);
3515
3506
  }
3516
3507
  return n;
3517
3508
  }
3518
- function ia(e) {
3509
+ function Zi(e) {
3519
3510
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
3520
3511
  }
3521
- function aa(e, t) {
3522
- let n = na(e, ":root"), r = na(e, ".dark"), i = e;
3512
+ function Qi(e, t) {
3513
+ let n = Yi(e, ":root"), r = Yi(e, ".dark"), i = e;
3523
3514
  if (n) {
3524
3515
  let e = i.slice(0, n.bodyStart), r = i.slice(n.bodyStart, n.bodyEnd), a = i.slice(n.bodyEnd);
3525
- i = e + ra(r, t.light) + a;
3516
+ i = e + Xi(r, t.light) + a;
3526
3517
  }
3527
3518
  if (r) {
3528
- let e = na(i, ".dark");
3519
+ let e = Yi(i, ".dark");
3529
3520
  if (e) {
3530
3521
  let n = i.slice(0, e.bodyStart), r = i.slice(e.bodyStart, e.bodyEnd), a = i.slice(e.bodyEnd);
3531
- i = n + ra(r, t.dark) + a;
3522
+ i = n + Xi(r, t.dark) + a;
3532
3523
  }
3533
3524
  }
3534
3525
  return i;
3535
3526
  }
3536
- var oa = "assets/styles.css";
3537
- async function sa(e, t) {
3538
- let n = u.resolve(e, oa), r;
3527
+ var $i = "assets/styles.css";
3528
+ async function ea(e, t) {
3529
+ let n = p.resolve(e, $i), r;
3539
3530
  try {
3540
3531
  r = await s.readFile(n, "utf-8");
3541
3532
  } catch {
3542
3533
  return !1;
3543
3534
  }
3544
- let i = aa(r, t);
3535
+ let i = Qi(r, t);
3545
3536
  return i === r || await s.writeFile(n, i, "utf-8"), !0;
3546
3537
  }
3547
3538
  //#endregion
3548
3539
  //#region src/core/clone.ts
3549
- async function ca(e) {
3550
- let t = await p(w, {
3540
+ async function ta(e) {
3541
+ let t = await g(v, {
3551
3542
  dir: e,
3552
3543
  force: !0
3553
3544
  });
@@ -3558,7 +3549,7 @@ async function ca(e) {
3558
3549
  }
3559
3550
  //#endregion
3560
3551
  //#region src/core/editor-config.ts
3561
- function la(e) {
3552
+ function na(e) {
3562
3553
  let t = {
3563
3554
  globs: [],
3564
3555
  alwaysApply: !1
@@ -3593,10 +3584,10 @@ function la(e) {
3593
3584
  content: i
3594
3585
  };
3595
3586
  }
3596
- function ua(e) {
3587
+ function ra(e) {
3597
3588
  return e.frontmatter.globs.length > 0 ? `---\npaths:\n${e.frontmatter.globs.map((e) => ` - "${e}"`).join("\n")}\n---\n\n${e.content}` : e.content;
3598
3589
  }
3599
- function da(e) {
3590
+ function ia(e) {
3600
3591
  let t;
3601
3592
  t = e.frontmatter.alwaysApply ? "always_on" : e.frontmatter.globs.length > 0 ? "glob" : "model_decision";
3602
3593
  let n = [`trigger: ${t}`];
@@ -3606,30 +3597,30 @@ function da(e) {
3606
3597
  }
3607
3598
  return e.frontmatter.description && n.push(`description: ${e.frontmatter.description}`), `---\n${n.join("\n")}\n---\n\n${e.content}`;
3608
3599
  }
3609
- function fa(e) {
3600
+ function aa(e) {
3610
3601
  return e.frontmatter.globs.length > 0 ? `---\napplyTo: "${e.frontmatter.globs.join(", ")}"\n---\n\n${e.content}` : e.content;
3611
3602
  }
3612
- var pa = {
3603
+ var oa = {
3613
3604
  claude: {
3614
3605
  rulesDir: ".claude/rules",
3615
3606
  extension: ".md",
3616
- convert: ua
3607
+ convert: ra
3617
3608
  },
3618
3609
  windsurf: {
3619
3610
  rulesDir: ".windsurf/rules",
3620
3611
  extension: ".md",
3621
- convert: da
3612
+ convert: ia
3622
3613
  },
3623
3614
  copilot: {
3624
3615
  rulesDir: ".github/instructions",
3625
3616
  extension: ".instructions.md",
3626
- convert: fa
3617
+ convert: aa
3627
3618
  }
3628
3619
  };
3629
- async function ma(e) {
3630
- let t = u.join(e, j), n = (await s.readdir(t, { withFileTypes: !0 }).catch(() => [])).filter((e) => e.isFile() && e.name.endsWith(".mdc"));
3620
+ async function sa(e) {
3621
+ let t = p.join(e, D), n = (await s.readdir(t, { withFileTypes: !0 }).catch(() => [])).filter((e) => e.isFile() && e.name.endsWith(".mdc"));
3631
3622
  return await Promise.all(n.map(async (e) => {
3632
- let n = u.join(t, e.name), { frontmatter: r, content: i } = la(await s.readFile(n, "utf-8"));
3623
+ let n = p.join(t, e.name), { frontmatter: r, content: i } = na(await s.readFile(n, "utf-8"));
3633
3624
  return {
3634
3625
  frontmatter: r,
3635
3626
  content: i,
@@ -3637,44 +3628,44 @@ async function ma(e) {
3637
3628
  };
3638
3629
  }));
3639
3630
  }
3640
- async function ha(e, t) {
3631
+ async function ca(e, t) {
3641
3632
  if (t === "cursor") return;
3642
- let n = pa[t], r = await ma(e), i = u.join(e, n.rulesDir);
3633
+ let n = oa[t], r = await sa(e), i = p.join(e, n.rulesDir);
3643
3634
  await s.mkdir(i, { recursive: !0 }), await Promise.all(r.map((e) => {
3644
3635
  let t = n.convert(e), r = e.filename.replace(/\.mdc$/, n.extension);
3645
- return s.writeFile(u.join(i, r), t, "utf-8");
3646
- })), await tr(u.join(e, ne)), await tr(u.join(e, M));
3636
+ return s.writeFile(p.join(i, r), t, "utf-8");
3637
+ })), await Jn(p.join(e, O)), await Jn(p.join(e, ee));
3647
3638
  }
3648
3639
  //#endregion
3649
3640
  //#region src/core/env-files.ts
3650
- var ga = [
3641
+ var la = [
3651
3642
  "apps",
3652
3643
  "packages",
3653
3644
  "libs",
3654
3645
  "shared"
3655
3646
  ];
3656
- async function _a(e) {
3657
- let t = await va(e);
3647
+ async function ua(e) {
3648
+ let t = await da(e);
3658
3649
  return (await Promise.all(t.map(async (t) => {
3659
- let n = u.join(u.dirname(t), ".env");
3660
- return await Y(n) ? null : (await s.copyFile(t, n), u.relative(e, n));
3650
+ let n = p.join(p.dirname(t), ".env");
3651
+ return await Y(n) ? null : (await s.copyFile(t, n), p.relative(e, n));
3661
3652
  }))).filter((e) => e !== null).sort();
3662
3653
  }
3663
- async function va(e) {
3664
- let t = [u.join(e, ".env.example")], n = await Promise.all(ga.map(async (t) => {
3665
- let n = u.join(e, t);
3666
- return (await s.readdir(n, { withFileTypes: !0 }).catch(() => [])).filter((e) => e.isDirectory()).map((e) => u.join(n, e.name, ".env.example"));
3654
+ async function da(e) {
3655
+ let t = [p.join(e, ".env.example")], n = await Promise.all(la.map(async (t) => {
3656
+ let n = p.join(e, t);
3657
+ return (await s.readdir(n, { withFileTypes: !0 }).catch(() => [])).filter((e) => e.isDirectory()).map((e) => p.join(n, e.name, ".env.example"));
3667
3658
  }));
3668
3659
  return t.push(...n.flat()), (await Promise.all(t.map(async (e) => await Y(e) ? e : null))).filter((e) => e !== null);
3669
3660
  }
3670
3661
  //#endregion
3671
3662
  //#region src/core/post-clone.ts
3672
- var Q = "@hype-stack/", ya = "hype-stack";
3673
- async function ba(e) {
3674
- await tr(u.join(e, ".git"));
3663
+ var Q = "@hype-stack/", fa = "hype-stack";
3664
+ async function pa(e) {
3665
+ await Jn(p.join(e, ".git"));
3675
3666
  }
3676
- async function xa(e) {
3677
- await J("git", ["init"], { cwd: e }), await J("git", ["add", "."], { cwd: e }), await J("git", [
3667
+ async function ma(e) {
3668
+ await q("git", ["init"], { cwd: e }), await q("git", ["add", "."], { cwd: e }), await q("git", [
3678
3669
  "-c",
3679
3670
  "user.name=Hype Stack CLI",
3680
3671
  "-c",
@@ -3684,22 +3675,22 @@ async function xa(e) {
3684
3675
  "Initial commit from Hype Stack CLI"
3685
3676
  ], { cwd: e });
3686
3677
  }
3687
- async function Sa(e, t) {
3688
- let n = `@${t}/`, r = await Ea(e);
3678
+ async function ha(e, t) {
3679
+ let n = `@${t}/`, r = await ya(e);
3689
3680
  for (let e of r) {
3690
- let t = await Qn(e);
3681
+ let t = await Gn(e);
3691
3682
  if (!t) continue;
3692
3683
  let r = !1;
3693
- t.name?.startsWith(Q) && (t.name = t.name.replace(Q, n), r = !0), Ca(t.dependencies, n) && (r = !0), Ca(t.devDependencies, n) && (r = !0), t.nx && wa(t.nx, n) && (r = !0);
3684
+ t.name?.startsWith(Q) && (t.name = t.name.replace(Q, n), r = !0), ga(t.dependencies, n) && (r = !0), ga(t.devDependencies, n) && (r = !0), t.nx && _a(t.nx, n) && (r = !0);
3694
3685
  let i = await s.readFile(e, "utf-8");
3695
3686
  if (i.includes(Q)) {
3696
3687
  let t = i.replaceAll(Q, n);
3697
3688
  await s.writeFile(e, t, "utf-8");
3698
- } else r && await $n(e, t);
3689
+ } else r && await Kn(e, t);
3699
3690
  }
3700
- await gi(e, t), await Ta(e, t);
3691
+ await li(e, t), await va(e, t);
3701
3692
  }
3702
- function Ca(e, t) {
3693
+ function ga(e, t) {
3703
3694
  if (!e) return !1;
3704
3695
  let n = !1;
3705
3696
  for (let r of Object.keys(e)) if (r.startsWith(Q)) {
@@ -3708,7 +3699,7 @@ function Ca(e, t) {
3708
3699
  }
3709
3700
  return n;
3710
3701
  }
3711
- function wa(e, t) {
3702
+ function _a(e, t) {
3712
3703
  if (!e) return !1;
3713
3704
  let n = !1;
3714
3705
  if (e.implicitDependencies &&= e.implicitDependencies.map((e) => e.startsWith(Q) ? (n = !0, e.replace(Q, t)) : e), e.targets) {
@@ -3716,14 +3707,14 @@ function wa(e, t) {
3716
3707
  }
3717
3708
  return n;
3718
3709
  }
3719
- async function Ta(e, t) {
3720
- let n = u.join(e, "packages/enums/src/app/index.ts"), r = await s.readFile(n, "utf-8").catch(() => null);
3710
+ async function va(e, t) {
3711
+ let n = p.join(e, "packages/enums/src/app/index.ts"), r = await s.readFile(n, "utf-8").catch(() => null);
3721
3712
  if (!r) return;
3722
- let i = t.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(" "), a = r.replaceAll(`id: "${ya}"`, `id: "${t}"`).replaceAll(`name: "${ya}"`, `name: "${t}"`).replace(/name: "Hype Stack"/, `name: "${i}"`).replace(/description: ".*?"/, `description: "${i} application"`);
3713
+ let i = t.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(" "), a = r.replaceAll(`id: "${fa}"`, `id: "${t}"`).replaceAll(`name: "${fa}"`, `name: "${t}"`).replace(/name: "Hype Stack"/, `name: "${i}"`).replace(/description: ".*?"/, `description: "${i} application"`);
3723
3714
  await s.writeFile(n, a, "utf-8");
3724
3715
  }
3725
- async function Ea(e) {
3726
- let t = [], n = u.join(e, "package.json");
3716
+ async function ya(e) {
3717
+ let t = [], n = p.join(e, "package.json");
3727
3718
  (await s.stat(n).catch(() => null))?.isFile() && t.push(n);
3728
3719
  for (let n of [
3729
3720
  "apps",
@@ -3731,10 +3722,10 @@ async function Ea(e) {
3731
3722
  "libs",
3732
3723
  "shared"
3733
3724
  ]) {
3734
- let r = u.join(e, n), i = await s.readdir(r, { withFileTypes: !0 }).catch(() => []);
3725
+ let r = p.join(e, n), i = await s.readdir(r, { withFileTypes: !0 }).catch(() => []);
3735
3726
  for (let e of i) {
3736
3727
  if (!e.isDirectory()) continue;
3737
- let n = u.join(r, e.name, "package.json");
3728
+ let n = p.join(r, e.name, "package.json");
3738
3729
  (await s.stat(n).catch(() => null))?.isFile() && t.push(n);
3739
3730
  }
3740
3731
  }
@@ -3742,28 +3733,28 @@ async function Ea(e) {
3742
3733
  }
3743
3734
  //#endregion
3744
3735
  //#region src/core/post-setup.ts
3745
- async function Da() {
3746
- return (await J("docker", ["info"], { cwd: process.cwd() })).exitCode === 0;
3736
+ async function ba() {
3737
+ return (await q("docker", ["info"], { cwd: process.cwd() })).exitCode === 0;
3747
3738
  }
3748
- async function Oa(e) {
3739
+ async function xa(e) {
3749
3740
  return Y(`${e}/apps/backend/.env`);
3750
3741
  }
3751
- async function ka(e, t, n) {
3752
- let r = n ? `Start services with ${R.command("docker compose up -d")}?` : `Docker is not running. Start services with ${R.command("docker compose up -d")}?`, i = t ? !0 : await o.confirm({
3742
+ async function Sa(e, t, n) {
3743
+ let r = n ? `Start services with ${L.command("docker compose up -d")}?` : `Docker is not running. Start services with ${L.command("docker compose up -d")}?`, i = t ? !0 : await o.confirm({
3753
3744
  message: r,
3754
3745
  initialValue: !0
3755
3746
  });
3756
- if (o.isCancel(i) && Z(), !i) return o.log.info(R.muted("Skipping Docker services and database migrations.")), !1;
3747
+ if (o.isCancel(i) && Z(), !i) return o.log.info(L.muted("Skipping Docker services and database migrations.")), !1;
3757
3748
  let a = o.spinner();
3758
- return a.start("Starting Docker services..."), (await J("docker", [
3749
+ return a.start("Starting Docker services..."), (await q("docker", [
3759
3750
  "compose",
3760
3751
  "up",
3761
3752
  "-d"
3762
- ], { cwd: `${e}/apps/backend` })).exitCode === 0 ? (a.stop(R.success("Docker services started")), !0) : (a.stop(R.warning("Failed to start Docker services")), o.log.warn(R.muted("Run `docker compose up -d` in apps/backend manually to start services.")), o.log.info(R.muted("Skipping database migrations.")), !1);
3753
+ ], { cwd: `${e}/apps/backend` })).exitCode === 0 ? (a.stop(L.success("Docker services started")), !0) : (a.stop(L.warning("Failed to start Docker services")), o.log.warn(L.muted("Run `docker compose up -d` in apps/backend manually to start services.")), o.log.info(L.muted("Skipping database migrations.")), !1);
3763
3754
  }
3764
- async function Aa(e, t = 15, n = 2e3) {
3755
+ async function Ca(e, t = 15, n = 2e3) {
3765
3756
  for (let r = 0; r < t; r++) {
3766
- if ((await J("docker", [
3757
+ if ((await q("docker", [
3767
3758
  "compose",
3768
3759
  "exec",
3769
3760
  "-T",
@@ -3776,50 +3767,50 @@ async function Aa(e, t = 15, n = 2e3) {
3776
3767
  }
3777
3768
  return !1;
3778
3769
  }
3779
- async function ja(e, t, n = {}) {
3780
- if (!await Oa(e)) {
3781
- o.log.warn(`${R.path(".env")} not found in ${R.path("apps/backend")}. Skipping Docker and migrations - configure it first.`);
3770
+ async function wa(e, t, n = {}) {
3771
+ if (!await xa(e)) {
3772
+ o.log.warn(`${L.path(".env")} not found in ${L.path("apps/backend")}. Skipping Docker and migrations - configure it first.`);
3782
3773
  return;
3783
3774
  }
3784
- if (!await ka(e, t, await Da())) return;
3775
+ if (!await Sa(e, t, await ba())) return;
3785
3776
  let r = o.spinner();
3786
- if (r.start("Waiting for Postgres to be ready..."), !await Aa(e, n.postgresMaxAttempts ?? 15, n.postgresCheckIntervalMs ?? 2e3)) {
3787
- r.stop(R.warning("Postgres health check timed out")), o.log.warn(R.muted("Run migrations manually once Postgres is ready: pnpm --filter @internal/backend migration:latest"));
3777
+ if (r.start("Waiting for Postgres to be ready..."), !await Ca(e, n.postgresMaxAttempts ?? 15, n.postgresCheckIntervalMs ?? 2e3)) {
3778
+ r.stop(L.warning("Postgres health check timed out")), o.log.warn(L.muted("Run migrations manually once Postgres is ready: pnpm --filter @internal/backend migration:latest"));
3788
3779
  return;
3789
3780
  }
3790
- r.stop(R.success("Postgres is ready"));
3781
+ r.stop(L.success("Postgres is ready"));
3791
3782
  let i = t ? !0 : await o.confirm({
3792
- message: `Run database migrations with ${R.command("prisma migrate deploy")}?`,
3783
+ message: `Run database migrations with ${L.command("prisma migrate deploy")}?`,
3793
3784
  initialValue: !0
3794
3785
  });
3795
3786
  if (o.isCancel(i) && Z(), !i) {
3796
- o.log.info(R.muted("Skipping database migrations."));
3787
+ o.log.info(L.muted("Skipping database migrations."));
3797
3788
  return;
3798
3789
  }
3799
3790
  let a = o.spinner();
3800
- if (a.start("Running database migrations..."), (await J("pnpm", [
3791
+ if (a.start("Running database migrations..."), (await q("pnpm", [
3801
3792
  "--filter",
3802
3793
  "@internal/backend",
3803
3794
  "migration:latest"
3804
3795
  ], { cwd: e })).exitCode !== 0) {
3805
- a.stop(R.warning("Migrations failed")), o.log.warn(R.muted("Run `pnpm --filter @internal/backend migration:latest` manually to apply migrations."));
3796
+ a.stop(L.warning("Migrations failed")), o.log.warn(L.muted("Run `pnpm --filter @internal/backend migration:latest` manually to apply migrations."));
3806
3797
  return;
3807
3798
  }
3808
- a.stop(R.success("Database migrations applied"));
3799
+ a.stop(L.success("Database migrations applied"));
3809
3800
  let s = o.spinner();
3810
- if (s.start("Generating Prisma client..."), (await J("pnpm", [
3801
+ if (s.start("Generating Prisma client..."), (await q("pnpm", [
3811
3802
  "--filter",
3812
3803
  "@internal/backend",
3813
3804
  "generate"
3814
3805
  ], { cwd: e })).exitCode !== 0) {
3815
- s.stop(R.warning("Prisma client generation failed")), o.log.warn(R.muted("Run `pnpm --filter @internal/backend generate` manually."));
3806
+ s.stop(L.warning("Prisma client generation failed")), o.log.warn(L.muted("Run `pnpm --filter @internal/backend generate` manually."));
3816
3807
  return;
3817
3808
  }
3818
- s.stop(R.success("Prisma client generated"));
3809
+ s.stop(L.success("Prisma client generated"));
3819
3810
  }
3820
3811
  //#endregion
3821
3812
  //#region src/core/readme.ts
3822
- var Ma = {
3813
+ var Ta = {
3823
3814
  cursor: {
3824
3815
  label: "Cursor",
3825
3816
  rulesDir: ".cursor/rules"
@@ -3836,24 +3827,24 @@ var Ma = {
3836
3827
  label: "GitHub Copilot",
3837
3828
  rulesDir: ".github/instructions"
3838
3829
  }
3839
- }, Na = {
3830
+ }, Ea = {
3840
3831
  backend: "Hono API server (Postgres, Prisma, Kysely, Valkey cache, WorkOS auth)",
3841
3832
  frontend: "React + Vite app talking to the backend through the typed HyperFetch SDK"
3842
- }, Pa = {
3833
+ }, Da = {
3843
3834
  enums: "Shared enums and app config used across apps",
3844
3835
  cli: "Project tooling and code generators"
3845
3836
  };
3846
- function Fa(e) {
3837
+ function Oa(e) {
3847
3838
  return e.split(/[-_]/).filter(Boolean).map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join(" ");
3848
3839
  }
3849
- function Ia(e, t) {
3840
+ function ka(e, t) {
3850
3841
  return Object.entries(e).toSorted(([e], [t]) => e.localeCompare(t)).map(([e, n]) => {
3851
3842
  let r = t[e];
3852
3843
  return r ? `- \`${n}\` - ${r}` : `- \`${n}\``;
3853
3844
  });
3854
3845
  }
3855
- function La(e) {
3856
- let { projectName: t, editor: n, workspace: r } = e, i = Fa(t), a = Ma[n], o = !!r.apps.backend, s = Ia(r.apps, Na), c = Ia(r.packages, Pa), l = [];
3846
+ function Aa(e) {
3847
+ let { projectName: t, editor: n, workspace: r } = e, i = Oa(t), a = Ta[n], o = !!r.apps.backend, s = ka(r.apps, Ea), c = ka(r.packages, Da), l = [];
3857
3848
  s.length > 0 && l.push(...s), c.length > 0 && l.push(...c), l.push("- `stack.json` - Hype Stack workspace config (apps, paths, installed packs)");
3858
3849
  let u = [];
3859
3850
  u.push(`# ${i}`), u.push([
@@ -3949,7 +3940,7 @@ function La(e) {
3949
3940
  "Pick the ones you want with the CLI:",
3950
3941
  "",
3951
3942
  "```bash",
3952
- "npx hype-stack compose",
3943
+ "npx @hype-stack/cli compose",
3953
3944
  "```",
3954
3945
  "",
3955
3946
  "Installed packs are tracked in `stack.json`."
@@ -3961,19 +3952,19 @@ function La(e) {
3961
3952
  "stays useful."
3962
3953
  ].join("\n")), u.join("\n\n") + "\n";
3963
3954
  }
3964
- async function Ra(e, t) {
3965
- let n = u.join(e, "README.md");
3966
- await s.writeFile(n, La(t), "utf-8");
3955
+ async function ja(e, t) {
3956
+ let n = p.join(e, "README.md");
3957
+ await s.writeFile(n, Aa(t), "utf-8");
3967
3958
  }
3968
3959
  //#endregion
3969
3960
  //#region src/core/tracking.ts
3970
- async function za(e) {
3961
+ async function Ma(e) {
3971
3962
  try {
3972
3963
  let t = {
3973
- "X-Device-Id": Hn(),
3974
- "X-Client-Info": Un()
3975
- }, n = await Rn(N()).catch(() => null);
3976
- n?.token && (t.Authorization = `Bearer ${n.token}`), await q.createRequest()({
3964
+ "X-Device-Id": In(),
3965
+ "X-Client-Info": Ln()
3966
+ }, n = await Mn(k()).catch(() => null);
3967
+ n?.token && (t.Authorization = `Bearer ${n.token}`), await K.createRequest()({
3977
3968
  endpoint: "/cli/track",
3978
3969
  method: "POST"
3979
3970
  }).setPayload({ event: e }).setHeaders(t).send();
@@ -3981,7 +3972,7 @@ async function za(e) {
3981
3972
  }
3982
3973
  //#endregion
3983
3974
  //#region src/ui/swatch.ts
3984
- function Ba(e) {
3975
+ function Na(e) {
3985
3976
  let t = e.trim().match(/^oklch\(([^)]+)\)$/i);
3986
3977
  if (!t) return null;
3987
3978
  let n = t[1].trim().split(/\s+/);
@@ -4000,61 +3991,61 @@ function Ba(e) {
4000
3991
  h: a
4001
3992
  };
4002
3993
  }
4003
- function Va(e) {
3994
+ function Pa(e) {
4004
3995
  return Math.min(255, Math.max(0, Math.round(e)));
4005
3996
  }
4006
- function Ha(e) {
3997
+ function Fa(e) {
4007
3998
  return e <= .0031308 ? 12.92 * e : 1.055 * e ** (1 / 2.4) - .055;
4008
3999
  }
4009
- function Ua({ l: e, c: t, h: n }) {
4000
+ function Ia({ l: e, c: t, h: n }) {
4010
4001
  let r = n * Math.PI / 180, i = t * Math.cos(r), a = t * Math.sin(r), o = e + .3963377774 * i + .2158037573 * a, s = e - .1055613458 * i - .0638541728 * a, c = e - .0894841775 * i - 1.291485548 * a, l = o ** 3, u = s ** 3, d = c ** 3, f = 4.0767416621 * l - 3.3077115913 * u + .2309699292 * d, p = -1.2684380042 * l + 2.6097570613 * u - .3413193965 * d, m = -.0041960863 * l - .7034186147 * u + 1.7076146937 * d;
4011
4002
  return [
4012
- Va(Ha(f) * 255),
4013
- Va(Ha(p) * 255),
4014
- Va(Ha(m) * 255)
4003
+ Pa(Fa(f) * 255),
4004
+ Pa(Fa(p) * 255),
4005
+ Pa(Fa(m) * 255)
4015
4006
  ];
4016
4007
  }
4017
- var Wa = "\x1B[49m";
4018
- function Ga(e, t) {
4008
+ var La = "\x1B[49m";
4009
+ function Ra(e, t) {
4019
4010
  let n = e[t];
4020
4011
  if (!n) return c.dim(" ");
4021
- let r = Ba(n);
4012
+ let r = Na(n);
4022
4013
  if (!r) return c.dim(" ");
4023
- let [i, a, o] = Ua(r);
4024
- return `\x1b[48;2;${i};${a};${o}m ${Wa}`;
4014
+ let [i, a, o] = Ia(r);
4015
+ return `\x1b[48;2;${i};${a};${o}m ${La}`;
4025
4016
  }
4026
- var Ka = [
4017
+ var za = [
4027
4018
  "primary",
4028
4019
  "secondary",
4029
4020
  "accent"
4030
4021
  ];
4031
- function qa(e) {
4032
- return Ka.map((t) => Ga(e, t)).join("");
4022
+ function Ba(e) {
4023
+ return za.map((t) => Ra(e, t)).join("");
4033
4024
  }
4034
- function Ja(e) {
4035
- return `${qa(e.light)} ${c.dim("·")} ${qa(e.dark)}`;
4025
+ function Va(e) {
4026
+ return `${Ba(e.light)} ${c.dim("·")} ${Ba(e.dark)}`;
4036
4027
  }
4037
4028
  //#endregion
4038
4029
  //#region src/utils/validate.ts
4039
- function Ya(e) {
4030
+ function Ha(e) {
4040
4031
  if (!e.trim()) return "Project name cannot be empty";
4041
- if (!te.test(e)) return "Project name must be lowercase, alphanumeric, and may contain hyphens, dots, or underscores";
4032
+ if (!w.test(e)) return "Project name must be lowercase, alphanumeric, and may contain hyphens, dots, or underscores";
4042
4033
  if (e.length > 214) return "Project name is too long (max 214 characters)";
4043
4034
  }
4044
4035
  //#endregion
4045
4036
  //#region src/commands/create.ts
4046
- async function Xa(a) {
4047
- $i(), o.intro(R.brandBold("Create a new Hype Stack project"));
4037
+ async function Ua(a) {
4038
+ Ki(), o.intro(L.brandBold("Create a new Hype Stack project"));
4048
4039
  let s = a.yes === !0, c;
4049
4040
  if (s && a.name) {
4050
- let e = Ya(a.name);
4041
+ let e = Ha(a.name);
4051
4042
  e && (o.log.error(e), Z()), c = a.name;
4052
4043
  } else {
4053
4044
  let e = await o.text({
4054
4045
  message: "What is your project named?",
4055
4046
  placeholder: "my-app",
4056
4047
  initialValue: a.name ?? "",
4057
- validate: (e) => Ya(e ?? "")
4048
+ validate: (e) => Ha(e ?? "")
4058
4049
  });
4059
4050
  o.isCancel(e) && Z(), c = e;
4060
4051
  }
@@ -4072,24 +4063,24 @@ async function Xa(a) {
4072
4063
  });
4073
4064
  o.isCancel(t) && Z(), e = t;
4074
4065
  }
4075
- l = nr(e, c);
4066
+ l = Yn(e, c);
4076
4067
  }
4077
- let d = u.resolve(l);
4078
- s || o.note(R.path(d), "Project will be created at");
4079
- let f = a.editor && A.includes(a.editor) ? a.editor : null, p;
4080
- if (f) p = f;
4081
- else if (s) p = "cursor";
4068
+ let u = p.resolve(l);
4069
+ s || o.note(L.path(u), "Project will be created at");
4070
+ let d = a.editor && E.includes(a.editor) ? a.editor : null, f;
4071
+ if (d) f = d;
4072
+ else if (s) f = "cursor";
4082
4073
  else {
4083
4074
  let e = await o.select({
4084
4075
  message: "Which code editor do you use?",
4085
- options: k.map((e) => ({
4076
+ options: T.map((e) => ({
4086
4077
  value: e.value,
4087
4078
  label: e.label,
4088
4079
  hint: "hint" in e ? e.hint : void 0
4089
4080
  })),
4090
4081
  initialValue: "cursor"
4091
4082
  });
4092
- o.isCancel(e) && Z(), p = e;
4083
+ o.isCancel(e) && Z(), f = e;
4093
4084
  }
4094
4085
  let m = a.theme !== void 0 && i(a.theme), h;
4095
4086
  if (m) h = a.theme;
@@ -4099,93 +4090,93 @@ async function Xa(a) {
4099
4090
  message: "Pick a color theme",
4100
4091
  options: n.map((e) => ({
4101
4092
  value: e.name,
4102
- label: `${Ja(e)} ${e.label}`
4093
+ label: `${Va(e)} ${e.label}`
4103
4094
  })),
4104
4095
  initialValue: e
4105
4096
  });
4106
4097
  o.isCancel(t) && Z(), h = t;
4107
4098
  }
4108
4099
  if (!s) {
4109
- let e = k.find((e) => e.value === p)?.label ?? p, n = t.find((e) => e.value === h)?.label ?? h, r = await o.confirm({ message: `Create ${R.highlight(c)} in ${R.path(d)} with ${R.highlight(e)} config and the ${R.highlight(n)} theme?` });
4100
+ let e = T.find((e) => e.value === f)?.label ?? f, n = t.find((e) => e.value === h)?.label ?? h, r = await o.confirm({ message: `Create ${L.highlight(c)} in ${L.path(u)} with ${L.highlight(e)} config and the ${L.highlight(n)} theme?` });
4110
4101
  (o.isCancel(r) || !r) && Z();
4111
4102
  }
4112
- if (await Xn(d) && !await Zn(d)) {
4103
+ if (await J(u) && !await Wn(u)) {
4113
4104
  let e = await o.confirm({
4114
- message: `Directory ${R.path(d)} is not empty. Continue anyway?`,
4105
+ message: `Directory ${L.path(u)} is not empty. Continue anyway?`,
4115
4106
  initialValue: !1
4116
4107
  });
4117
4108
  (o.isCancel(e) || !e) && Z();
4118
4109
  }
4119
4110
  let g = o.spinner();
4120
- g.start("Cloning Hype Stack template..."), await ca(d), g.stop(R.success("Template cloned"));
4111
+ g.start("Cloning Hype Stack template..."), await ta(u), g.stop(L.success("Template cloned"));
4121
4112
  let _ = o.spinner();
4122
- _.start("Setting up project..."), await ba(d), await Sa(d, c), await ha(d, p);
4123
- let v = await cr(d), y = ur(c, v);
4124
- await sr(d, y), await Ra(d, {
4113
+ _.start("Setting up project..."), await pa(u), await ha(u, c), await ca(u, f);
4114
+ let v = await tr(u), y = rr(c, v);
4115
+ await er(u, y), await ja(u, {
4125
4116
  projectName: c,
4126
- editor: p,
4117
+ editor: f,
4127
4118
  workspace: v
4128
- }), i(h) && (await sa(u.resolve(d, y.paths?.frontend.root ?? "apps/frontend"), r(h)) || o.log.warn(R.muted(`Could not find ${R.path("assets/styles.css")} to apply the ${h} theme`))), _.stop(R.success("Project configured"));
4119
+ }), i(h) && (await ea(p.resolve(u, y.paths?.frontend.root ?? "apps/frontend"), r(h)) || o.log.warn(L.muted(`Could not find ${L.path("assets/styles.css")} to apply the ${h} theme`))), _.stop(L.success("Project configured"));
4129
4120
  let b = o.spinner();
4130
- b.start("Installing dependencies..."), (await J("pnpm", ["install"], { cwd: d })).exitCode === 0 ? b.stop(R.success("Dependencies installed")) : (b.stop(R.warning("Dependencies installed with warnings")), o.log.warn(R.muted("You may need to run `pnpm install` manually to resolve issues.")));
4121
+ b.start("Installing dependencies..."), (await q("pnpm", ["install"], { cwd: u })).exitCode === 0 ? b.stop(L.success("Dependencies installed")) : (b.stop(L.warning("Dependencies installed with warnings")), o.log.warn(L.muted("You may need to run `pnpm install` manually to resolve issues.")));
4131
4122
  let x = o.spinner();
4132
- x.start("Initializing git repository..."), await xa(d), x.stop(R.success("Git repository initialized with clean history"));
4123
+ x.start("Initializing git repository..."), await ma(u), x.stop(L.success("Git repository initialized with clean history"));
4133
4124
  let S = o.spinner();
4134
4125
  S.start("Creating .env files from examples...");
4135
- let C = await _a(d);
4126
+ let C = await ua(u);
4136
4127
  if (C.length > 0) {
4137
4128
  let e = C.length;
4138
- S.stop(R.success(`Created ${e} .env file${e === 1 ? "" : "s"} from examples`));
4139
- } else S.stop(R.muted("No .env.example files to copy"));
4140
- o.log.success(`${R.brandBold("Hype Stack")} project ${R.highlight(c)} is ready!`);
4141
- let w = u.relative(process.cwd(), d) || ".", T = [`${R.command(`cd ${w}`)}`];
4142
- C.length > 0 ? T.push(`Review your ${R.path(".env")} files and fill in any secrets`) : T.push(`Copy ${R.path(".env.example")} to ${R.path(".env")} and configure`), ta(T);
4143
- let E = a.setup !== !1 && (s || await o.confirm({
4129
+ S.stop(L.success(`Created ${e} .env file${e === 1 ? "" : "s"} from examples`));
4130
+ } else S.stop(L.muted("No .env.example files to copy"));
4131
+ o.log.success(`${L.brandBold("Hype Stack")} project ${L.highlight(c)} is ready!`);
4132
+ let w = p.relative(process.cwd(), u) || ".", D = [`${L.command(`cd ${w}`)}`];
4133
+ C.length > 0 ? D.push(`Review your ${L.path(".env")} files and fill in any secrets`) : D.push(`Copy ${L.path(".env.example")} to ${L.path(".env")} and configure`), Ji(D);
4134
+ let O = a.setup !== !1 && (s || await o.confirm({
4144
4135
  message: "Would you like to start Docker services and run database migrations now?",
4145
4136
  initialValue: !0
4146
4137
  }));
4147
- return o.isCancel(E) && Z(), E ? await ja(d, s) : (o.log.info(R.muted("You can start services later:")), ta([
4148
- `${R.command("docker compose up -d")} ${R.muted("(in apps/backend - start Postgres, Valkey, RustFS)")}`,
4149
- `${R.command("pnpm --filter @internal/backend migration:latest")} ${R.muted("(apply migrations)")}`,
4150
- `${R.command("pnpm run generate")} ${R.muted("(generate Prisma client)")}`
4151
- ])), ta([`${R.command("pnpm dev")} ${R.muted("(start frontend + backend)")}`]), await za("project_create"), o.outro(R.muted("Happy building!")), d;
4138
+ return o.isCancel(O) && Z(), O ? await wa(u, s) : (o.log.info(L.muted("You can start services later:")), Ji([
4139
+ `${L.command("docker compose up -d")} ${L.muted("(in apps/backend - start Postgres, Valkey, RustFS)")}`,
4140
+ `${L.command("pnpm --filter @internal/backend migration:latest")} ${L.muted("(apply migrations)")}`,
4141
+ `${L.command("pnpm run generate")} ${L.muted("(generate Prisma client)")}`
4142
+ ])), Ji([`${L.command("pnpm dev")} ${L.muted("(start frontend + backend)")}`]), await Ma("project_create"), o.outro(L.muted("Happy building!")), u;
4152
4143
  }
4153
4144
  //#endregion
4154
4145
  //#region src/commands/init.ts
4155
- async function Za(e) {
4146
+ async function Wa(e) {
4156
4147
  let t = e.cwd ?? process.cwd(), n = e.silent ?? !1;
4157
- if (n || (ea(), o.intro(R.brandBold("Initialize Hype Stack configuration"))), !await dr(t)) {
4158
- o.log.error(`This doesn't look like a Hype Stack project. ${R.muted("Expected apps/ directory and package.json")}`), o.outro(R.muted(`Run ${R.command("hype-stack create")} to scaffold a new project.`));
4148
+ if (n || (qi(), o.intro(L.brandBold("Initialize Hype Stack configuration"))), !await ir(t)) {
4149
+ o.log.error(`This doesn't look like a Hype Stack project. ${L.muted("Expected apps/ directory and package.json")}`), o.outro(L.muted(`Run ${L.command("npx @hype-stack/cli create")} to scaffold a new project.`));
4159
4150
  return;
4160
4151
  }
4161
- if (await or(t)) {
4162
- let e = await ar(t);
4152
+ if (await $n(t)) {
4153
+ let e = await Qn(t);
4163
4154
  if (e && !n) {
4164
- o.log.info(`Found existing ${R.path("stack.json")} for project ${R.highlight(e.name)}`);
4155
+ o.log.info(`Found existing ${L.path("stack.json")} for project ${L.highlight(e.name)}`);
4165
4156
  let t = await o.confirm({
4166
4157
  message: "Overwrite existing configuration?",
4167
4158
  initialValue: !1
4168
4159
  });
4169
4160
  if (o.isCancel(t) || !t) {
4170
- o.outro(R.muted("Keeping existing configuration."));
4161
+ o.outro(L.muted("Keeping existing configuration."));
4171
4162
  return;
4172
4163
  }
4173
4164
  }
4174
4165
  }
4175
- let r = await cr(t);
4166
+ let r = await tr(t);
4176
4167
  if (!n) {
4177
4168
  let e = Object.entries(r.apps), t = Object.entries(r.packages);
4178
4169
  if (e.length > 0) {
4179
- o.log.info(R.bold("Detected apps:"));
4180
- for (let [t, n] of e) o.log.message(` ${z.arrow} ${R.highlight(t)} ${R.muted(`→ ${n}`)}`);
4170
+ o.log.info(L.bold("Detected apps:"));
4171
+ for (let [t, n] of e) o.log.message(` ${R.arrow} ${L.highlight(t)} ${L.muted(`→ ${n}`)}`);
4181
4172
  }
4182
4173
  if (t.length > 0) {
4183
- o.log.info(R.bold("Detected packages:"));
4184
- for (let [e, n] of t) o.log.message(` ${z.arrow} ${R.highlight(e)} ${R.muted(`→ ${n}`)}`);
4174
+ o.log.info(L.bold("Detected packages:"));
4175
+ for (let [e, n] of t) o.log.message(` ${R.arrow} ${L.highlight(e)} ${L.muted(`→ ${n}`)}`);
4185
4176
  }
4186
4177
  e.length === 0 && t.length === 0 && o.log.warn("No apps or packages detected in the workspace.");
4187
4178
  }
4188
- let i = (await Qn(u.join(t, "package.json")))?.name?.replace(/^@/, "").replace(/\/source$/, "") ?? "my-app", a = i;
4179
+ let i = (await Gn(p.join(t, "package.json")))?.name?.replace(/^@/, "").replace(/\/source$/, "") ?? "my-app", a = i;
4189
4180
  if (!n) {
4190
4181
  let e = await o.text({
4191
4182
  message: "Project name for stack.json?",
@@ -4194,28 +4185,28 @@ async function Za(e) {
4194
4185
  });
4195
4186
  o.isCancel(e) && Z(), a = e;
4196
4187
  }
4197
- await sr(t, ur(a, r)), n || (o.log.success(`${R.path("stack.json")} written successfully`), o.outro(R.muted("Your project is mapped and ready for Hype Stack CLI commands.")));
4188
+ await er(t, rr(a, r)), n || (o.log.success(`${L.path("stack.json")} written successfully`), o.outro(L.muted("Your project is mapped and ready for Hype Stack CLI commands.")));
4198
4189
  }
4199
- async function Qa(e, t = {}) {
4200
- if (await or(e)) return e;
4201
- let n = t.runInit ?? ((e) => Za({
4190
+ async function Ga(e, t = {}) {
4191
+ if (await $n(e)) return e;
4192
+ let n = t.runInit ?? ((e) => Wa({
4202
4193
  cwd: e,
4203
4194
  silent: !0
4204
- })), r = t.runCreate ?? ((e) => Xa({ parentDirectory: e }));
4205
- if (await dr(e)) {
4206
- o.log.warn(`No ${R.path("stack.json")} found in ${R.path(e)}.`);
4195
+ })), r = t.runCreate ?? ((e) => Ua({ parentDirectory: e }));
4196
+ if (await ir(e)) {
4197
+ o.log.warn(`No ${L.path("stack.json")} found in ${L.path(e)}.`);
4207
4198
  let t = await o.confirm({
4208
- message: `Create ${R.path("stack.json")} now?`,
4199
+ message: `Create ${L.path("stack.json")} now?`,
4209
4200
  initialValue: !0
4210
4201
  });
4211
4202
  if (o.isCancel(t) || !t) return null;
4212
4203
  await n(e);
4213
- let r = await or(e);
4214
- return r && o.log.success(`${R.path("stack.json")} created`), r ? e : null;
4204
+ let r = await $n(e);
4205
+ return r && o.log.success(`${L.path("stack.json")} created`), r ? e : null;
4215
4206
  }
4216
- o.log.warn(`This doesn't look like a Hype Stack project, and there's no ${R.path("stack.json")} here.`);
4207
+ o.log.warn(`This doesn't look like a Hype Stack project, and there's no ${L.path("stack.json")} here.`);
4217
4208
  let i = await o.confirm({
4218
- message: `Is ${R.path(e)} where you want to work?`,
4209
+ message: `Is ${L.path(e)} where you want to work?`,
4219
4210
  initialValue: !0
4220
4211
  });
4221
4212
  if (o.isCancel(i) || !i) return null;
@@ -4225,11 +4216,11 @@ async function Qa(e, t = {}) {
4225
4216
  });
4226
4217
  if (o.isCancel(a) || !a) return null;
4227
4218
  let s = await r(e);
4228
- return await or(s) ? s : null;
4219
+ return await $n(s) ? s : null;
4229
4220
  }
4230
4221
  //#endregion
4231
4222
  //#region src/core/npm-deps.ts
4232
- function $a(e, t) {
4223
+ function Ka(e, t) {
4233
4224
  let n = [], r = [];
4234
4225
  if (!e) return {
4235
4226
  errors: n,
@@ -4260,7 +4251,7 @@ function $a(e, t) {
4260
4251
  operations: r
4261
4252
  };
4262
4253
  }
4263
- function eo(e) {
4254
+ function qa(e) {
4264
4255
  let t = {};
4265
4256
  for (let n of e) if (n) for (let [e, r] of Object.entries(n)) t[e] = {
4266
4257
  ...t[e],
@@ -4268,15 +4259,15 @@ function eo(e) {
4268
4259
  };
4269
4260
  return t;
4270
4261
  }
4271
- async function to(e, t, n = J) {
4262
+ async function Ja(e, t, n = q) {
4272
4263
  let r = [];
4273
4264
  for (let i of e) {
4274
- let e = u.join(t, i.relativeDir);
4275
- if (!await Y(u.join(e, "package.json"))) {
4265
+ let e = p.join(t, i.relativeDir);
4266
+ if (!await Y(p.join(e, "package.json"))) {
4276
4267
  r.push(`Cannot install npm dependencies under "${i.relativeDir}": package.json not found.`);
4277
4268
  continue;
4278
4269
  }
4279
- let a = u.normalize(i.relativeDir), o;
4270
+ let a = p.normalize(i.relativeDir), o;
4280
4271
  try {
4281
4272
  o = await n("pnpm", [
4282
4273
  "add",
@@ -4304,25 +4295,25 @@ async function to(e, t, n = J) {
4304
4295
  function $(e) {
4305
4296
  return e instanceof Error ? e.message : String(e);
4306
4297
  }
4307
- async function no(e, t, n) {
4298
+ async function Ya(e, t, n) {
4308
4299
  let r = e.filter((e) => e.tier === "paid" && !t.has(e.name)).map((e) => e.name);
4309
- return r.length === 0 ? {} : vr(r, n).catch(() => ({}));
4300
+ return r.length === 0 ? {} : dr(r, n).catch(() => ({}));
4310
4301
  }
4311
- function ro(e, t) {
4312
- return e === "free" ? R.success("free") : e === "owned" ? R.accent("owned") : `${R.highlight(`$${t}`)} ${R.muted("locked")}`;
4302
+ function Xa(e, t) {
4303
+ return e === "free" ? L.success("free") : e === "owned" ? L.accent("owned") : `${L.highlight(`$${t}`)} ${L.muted("locked")}`;
4313
4304
  }
4314
- async function io(e, t, n) {
4305
+ async function Za(e, t, n) {
4315
4306
  let r = e.filter((e) => t(e)), i = e.filter((e) => !t(e));
4316
- i.length > 0 && o.log.warning(`Skipping ${i.join(", ")} because ${i.length === 1 ? "it depends" : "they depend"} on a pack you don't own yet.`), await Yn(r.map((e) => n.get(e)).filter((e) => e !== void 0).map((e) => ({
4307
+ i.length > 0 && o.log.warning(`Skipping ${i.join(", ")} because ${i.length === 1 ? "it depends" : "they depend"} on a pack you don't own yet.`), await Un(r.map((e) => n.get(e)).filter((e) => e !== void 0).map((e) => ({
4317
4308
  name: e.name,
4318
4309
  displayName: e.displayName,
4319
4310
  price: e.price
4320
4311
  })));
4321
4312
  }
4322
- function ao(e, t) {
4313
+ function Qa(e, t) {
4323
4314
  let n = e.map((e, n) => {
4324
4315
  let r = t.get(e), i = r ? r.displayName : e;
4325
- return ` ${R.muted(`${n + 1}.`)} ${R.brand(i)}`;
4316
+ return ` ${L.muted(`${n + 1}.`)} ${L.brand(i)}`;
4326
4317
  });
4327
4318
  o.note([
4328
4319
  "These packs will be installed, in order:",
@@ -4330,11 +4321,11 @@ function ao(e, t) {
4330
4321
  ...n
4331
4322
  ].join("\n"), "Install Plan");
4332
4323
  }
4333
- async function oo(e, t) {
4324
+ async function $a(e, t) {
4334
4325
  let n = [];
4335
4326
  for (let r of e) {
4336
- let e = await fr(r), i = await pr(r, t);
4337
- if (i.status === "denied") throw Error(`Access to "${r}" was denied (${i.reason}). Try 'hype-stack login' or check your license.`);
4327
+ let e = await ar(r), i = await or(r, t);
4328
+ if (i.status === "denied") throw Error(`Access to "${r}" was denied (${i.reason}). Try 'npx @hype-stack/cli login' or check your license.`);
4338
4329
  n.push({
4339
4330
  manifest: e,
4340
4331
  packDir: i.packDir
@@ -4342,36 +4333,36 @@ async function oo(e, t) {
4342
4333
  }
4343
4334
  return n;
4344
4335
  }
4345
- async function so(e) {
4346
- let { prepared: t, paths: n, cwd: r, spinner: i } = e, a = $a(eo(t.map((e) => e.manifest.dependencies_npm)), n);
4336
+ async function eo(e) {
4337
+ let { prepared: t, paths: n, cwd: r, spinner: i } = e, a = Ka(qa(t.map((e) => e.manifest.dependencies_npm)), n);
4347
4338
  if (a.errors.length > 0) {
4348
4339
  for (let e of a.errors) o.log.error(e);
4349
4340
  return;
4350
4341
  }
4351
4342
  if (a.operations.length === 0) return;
4352
4343
  i.start("Installing npm dependencies...");
4353
- let s = await to(a.operations, r);
4344
+ let s = await Ja(a.operations, r);
4354
4345
  if (i.stop(s.ok ? "npm dependencies installed" : "npm dependency installation failed"), !s.ok) for (let e of s.errors) o.log.error(e);
4355
4346
  }
4356
- function co(e) {
4347
+ function to(e) {
4357
4348
  let t = e.flatMap((e) => e.manifest.postInstall ?? []), n = [...new Set(t)];
4358
- n.length !== 0 && o.note(n.map((e) => ` ${R.muted("→")} ${e}`).join("\n"), "Next Steps");
4349
+ n.length !== 0 && o.note(n.map((e) => ` ${L.muted("→")} ${e}`).join("\n"), "Next Steps");
4359
4350
  }
4360
- async function lo(e) {
4351
+ async function no(e) {
4361
4352
  let { prepared: t, config: n, cwd: r, force: i, yes: a, slotsByPack: s } = e, c = /* @__PURE__ */ new Set();
4362
4353
  if (i) return c;
4363
- let l = await wi({
4354
+ let l = await _i({
4364
4355
  packs: t,
4365
4356
  config: n,
4366
4357
  projectRoot: r,
4367
4358
  slotsByPack: s
4368
4359
  });
4369
4360
  if (l.length === 0) return c;
4370
- if (a) return o.log.warning(`${l.length} existing file${l.length === 1 ? "" : "s"} kept. Pass ${R.command("--force")} to overwrite.`), c;
4361
+ if (a) return o.log.warning(`${l.length} existing file${l.length === 1 ? "" : "s"} kept. Pass ${L.command("--force")} to overwrite.`), c;
4371
4362
  o.log.warning(`${l.length} file${l.length === 1 ? "" : "s"} already exist in your project.`);
4372
4363
  for (let e of l) {
4373
- let t = u.relative(r, e.targetPath) || e.target, n = await o.confirm({
4374
- message: `Overwrite ${R.path(t)}? ${R.muted(`(${e.packName})`)}`,
4364
+ let t = p.relative(r, e.targetPath) || e.target, n = await o.confirm({
4365
+ message: `Overwrite ${L.path(t)}? ${L.muted(`(${e.packName})`)}`,
4375
4366
  initialValue: !1
4376
4367
  });
4377
4368
  o.isCancel(n) && (o.cancel("Installation cancelled."), process.exit(0)), n && c.add(e.targetPath);
@@ -4380,34 +4371,34 @@ async function lo(e) {
4380
4371
  }
4381
4372
  //#endregion
4382
4373
  //#region src/commands/compose.ts
4383
- async function uo(e = {}) {
4374
+ async function ro(e = {}) {
4384
4375
  let t = e.cwd ?? process.cwd();
4385
- ea();
4386
- let n = await Qa(t), r;
4376
+ qi();
4377
+ let n = await Ga(t), r;
4387
4378
  try {
4388
- r = await ar(n ?? t);
4379
+ r = await Qn(n ?? t);
4389
4380
  } catch (e) {
4390
- o.cancel(`Could not parse ${R.path("stack.json")}: ${$(e)} Run 'hype-stack init' to regenerate it.`), process.exit(1);
4381
+ o.cancel(`Could not parse ${L.path("stack.json")}: ${$(e)} Run 'npx @hype-stack/cli init' to regenerate it.`), process.exit(1);
4391
4382
  }
4392
- r || (o.cancel(n ? `Could not read ${R.path("stack.json")}. Run 'hype-stack init' to regenerate it, then run 'hype-stack compose' again.` : `No ${R.path("stack.json")}. Run 'hype-stack init' first, then 'hype-stack compose'.`), process.exit(1)), r.paths || (o.cancel(`${R.path("stack.json")} is missing ${R.path("paths")}. Run 'hype-stack init' again to regenerate it.`), process.exit(1));
4383
+ r || (o.cancel(n ? `Could not read ${L.path("stack.json")}. Run 'npx @hype-stack/cli init' to regenerate it, then run 'npx @hype-stack/cli compose' again.` : `No ${L.path("stack.json")}. Run 'npx @hype-stack/cli init' first, then 'npx @hype-stack/cli compose'.`), process.exit(1)), r.paths || (o.cancel(`${L.path("stack.json")} is missing ${L.path("paths")}. Run 'npx @hype-stack/cli init' again to regenerate it.`), process.exit(1));
4393
4384
  let i = n ?? t;
4394
- o.intro(R.brandBold("Compose your stack"));
4385
+ o.intro(L.brandBold("Compose your stack"));
4395
4386
  let a = o.spinner();
4396
4387
  a.start("Loading packs...");
4397
4388
  let c;
4398
4389
  try {
4399
- c = await _r();
4390
+ c = await ur();
4400
4391
  } catch (e) {
4401
4392
  a.stop("Failed to load packs"), o.cancel(`Could not reach Hype Stack. Check your connection and try again.\n${$(e)}`), process.exit(1);
4402
4393
  }
4403
4394
  a.stop("Packs loaded");
4404
- let l = r.installedPacks ?? [], u = new Set(l), d = new Map(c.map((e) => [e.name, e])), f = e.licenseKey ?? r.licenseKey ?? null, p = (await Rn(N()))?.token ?? null, m = await no(c, u, {
4395
+ let l = r.installedPacks ?? [], u = new Set(l), d = new Map(c.map((e) => [e.name, e])), f = e.licenseKey ?? r.licenseKey ?? null, p = (await Mn(k()))?.token ?? null, m = await Ya(c, u, {
4405
4396
  token: p,
4406
4397
  key: f
4407
4398
  }), h = (e) => {
4408
4399
  let t = d.get(e);
4409
4400
  return !t || t.tier === "free" ? "free" : m[e]?.owned ? "owned" : "locked";
4410
- }, g = (e) => !u.has(e) && h(e) === "locked", _ = await fo({
4401
+ }, g = (e) => !u.has(e) && h(e) === "locked", _ = await io({
4411
4402
  packs: c,
4412
4403
  installedSet: u,
4413
4404
  stateOf: h,
@@ -4415,49 +4406,49 @@ async function uo(e = {}) {
4415
4406
  adminAvailable: !!r.apps.admin
4416
4407
  });
4417
4408
  if (_ === null && (o.cancel("Cancelled."), process.exit(0)), _.length === 0) {
4418
- o.outro(R.muted("No packs selected. Nothing to do."));
4409
+ o.outro(L.muted("No packs selected. Nothing to do."));
4419
4410
  return;
4420
4411
  }
4421
- let v = ho(_), y = go(_), b = Ui(c, v), x = Ii(Wi(c, b)), S;
4412
+ let v = so(_), y = co(_), b = Ii(c, v), x = ki(Li(c, b)), S;
4422
4413
  try {
4423
- S = Ri(v, x, l);
4414
+ S = ji(v, x, l);
4424
4415
  } catch (e) {
4425
4416
  o.cancel($(e)), process.exit(1);
4426
4417
  }
4427
4418
  if (S.order.length === 0) {
4428
- o.note(`${S.alreadyInstalled.join(", ")} already installed.`, "Nothing to do"), o.outro(R.muted("Your selection is already part of the project."));
4419
+ o.note(`${S.alreadyInstalled.join(", ")} already installed.`, "Nothing to do"), o.outro(L.muted("Your selection is already part of the project."));
4429
4420
  return;
4430
4421
  }
4431
- let C = zi({
4422
+ let C = Mi({
4432
4423
  order: S.order,
4433
4424
  graph: x,
4434
4425
  isLocked: g,
4435
4426
  installed: l
4436
4427
  });
4437
4428
  if (C.blocked.length > 0 && !p && !f) {
4438
- let e = await Jn();
4439
- e && (p = e, m = await no(c, u, {
4429
+ let e = await Hn();
4430
+ e && (p = e, m = await Ya(c, u, {
4440
4431
  token: p,
4441
4432
  key: f
4442
- }), C = zi({
4433
+ }), C = Mi({
4443
4434
  order: S.order,
4444
4435
  graph: x,
4445
4436
  isLocked: g,
4446
4437
  installed: l
4447
4438
  }));
4448
4439
  }
4449
- if (C.blocked.length > 0 && await io(C.blocked, g, d), C.installable.length === 0) {
4450
- o.outro(R.muted("Nothing left to install once locked packs are removed."));
4440
+ if (C.blocked.length > 0 && await Za(C.blocked, g, d), C.installable.length === 0) {
4441
+ o.outro(L.muted("Nothing left to install once locked packs are removed."));
4451
4442
  return;
4452
4443
  }
4453
- if (ao(C.installable, d), !e.yes) {
4444
+ if (Qa(C.installable, d), !e.yes) {
4454
4445
  let e = await o.confirm({ message: `Install ${C.installable.length} pack${C.installable.length === 1 ? "" : "s"}?` });
4455
4446
  (o.isCancel(e) || !e) && (o.cancel("Installation cancelled."), process.exit(0));
4456
4447
  }
4457
4448
  a.start("Downloading packs...");
4458
4449
  let w;
4459
4450
  try {
4460
- w = await oo(C.installable, {
4451
+ w = await $a(C.installable, {
4461
4452
  token: p,
4462
4453
  key: f
4463
4454
  });
@@ -4465,7 +4456,7 @@ async function uo(e = {}) {
4465
4456
  a.stop("Download failed"), o.cancel($(e)), process.exit(1);
4466
4457
  }
4467
4458
  a.stop(`Downloaded ${w.length} pack${w.length === 1 ? "" : "s"}`);
4468
- let T = await lo({
4459
+ let T = await no({
4469
4460
  prepared: w,
4470
4461
  config: r,
4471
4462
  cwd: i,
@@ -4475,7 +4466,7 @@ async function uo(e = {}) {
4475
4466
  });
4476
4467
  try {
4477
4468
  a.start("Installing pack files...");
4478
- let t = await Di({
4469
+ let t = await bi({
4479
4470
  packs: w,
4480
4471
  config: r,
4481
4472
  projectRoot: i,
@@ -4488,18 +4479,18 @@ async function uo(e = {}) {
4488
4479
  for (let e of t.errors) o.log.error(e);
4489
4480
  o.cancel("No files were written. Fix the errors above (or pass --force for existing files) and try again."), process.exit(1);
4490
4481
  }
4491
- a.stop("Files installed"), t.installed.length > 0 && o.log.success(`${R.highlight(String(t.installed.length))} files installed`), t.skipped.length > 0 && o.log.warning(`${t.skipped.length} files skipped (use --force to overwrite)`);
4482
+ a.stop("Files installed"), t.installed.length > 0 && o.log.success(`${L.highlight(String(t.installed.length))} files installed`), t.skipped.length > 0 && o.log.warning(`${t.skipped.length} files skipped (use --force to overwrite)`);
4492
4483
  for (let e of t.errors) o.log.error(e);
4493
- await so({
4484
+ await eo({
4494
4485
  prepared: w,
4495
4486
  paths: r.paths,
4496
4487
  cwd: i,
4497
4488
  spinner: a
4498
- }), await ir({
4489
+ }), await Zn({
4499
4490
  projectRoot: i,
4500
4491
  paths: r.paths,
4501
4492
  skipPrompts: e.yes ?? !1
4502
- }), co(w), o.outro(R.brand(`Installed ${t.appliedPacks.join(", ")}.`));
4493
+ }), to(w), o.outro(L.brand(`Installed ${t.appliedPacks.join(", ")}.`));
4503
4494
  } finally {
4504
4495
  await Promise.all(w.map((e) => s.rm(e.packDir, {
4505
4496
  recursive: !0,
@@ -4507,25 +4498,25 @@ async function uo(e = {}) {
4507
4498
  })));
4508
4499
  }
4509
4500
  }
4510
- async function fo(e) {
4501
+ async function io(e) {
4511
4502
  let { packs: t, installedSet: n, stateOf: r, options: i, adminAvailable: a } = e;
4512
4503
  if (i.packs && i.packs.length > 0) {
4513
- let e = i.packs.map(mo), n = e.filter((e) => !t.some((t) => t.name === e.name));
4504
+ let e = i.packs.map(oo), n = e.filter((e) => !t.some((t) => t.name === e.name));
4514
4505
  return n.length > 0 && (o.cancel(`Unknown pack${n.length === 1 ? "" : "s"}: ${n.map((e) => e.name).join(", ")}`), process.exit(1)), e;
4515
4506
  }
4516
4507
  let s = t.filter((e) => n.has(e.name));
4517
- s.length > 0 && o.note(s.map((e) => ` ${R.muted("✓")} ${e.displayName}`).join("\n"), "Already Installed");
4508
+ s.length > 0 && o.note(s.map((e) => ` ${L.muted("✓")} ${e.displayName}`).join("\n"), "Already Installed");
4518
4509
  let c = t.filter((e) => !n.has(e.name));
4519
- if (c.length === 0) return o.outro(R.muted("Every available pack is already installed.")), [];
4520
- let l = P();
4521
- o.note(c.map((e) => ` ${z.arrow} ${R.highlight(e.displayName)} ${le(`${l}/packs/${e.name}`)}`).join("\n"), "Browse packs");
4522
- let u = Pi(c, { adminAvailable: a }), d = [];
4510
+ if (c.length === 0) return o.outro(L.muted("Every available pack is already installed.")), [];
4511
+ let l = A();
4512
+ o.note(c.map((e) => ` ${R.arrow} ${L.highlight(e.displayName)} ${ie(`${l}/packs/${e.name}`)}`).join("\n"), "Browse packs");
4513
+ let u = Di(c, { adminAvailable: a }), d = [];
4523
4514
  for (let e of u) {
4524
4515
  let t = e.packs.map((e) => {
4525
4516
  let t = r(e.name);
4526
4517
  return {
4527
4518
  value: e.name,
4528
- label: `${e.displayName} ${ro(t, e.price)}`,
4519
+ label: `${e.displayName} ${Xa(t, e.price)}`,
4529
4520
  hint: e.description
4530
4521
  };
4531
4522
  });
@@ -4552,20 +4543,20 @@ async function fo(e) {
4552
4543
  }
4553
4544
  return d;
4554
4545
  }
4555
- var po = /@(frontend|admin)$/;
4556
- function mo(e) {
4557
- let t = e.match(po);
4546
+ var ao = /@(frontend|admin)$/;
4547
+ function oo(e) {
4548
+ let t = e.match(ao);
4558
4549
  return t ? {
4559
4550
  name: e.slice(0, -t[0].length),
4560
4551
  slot: t[1]
4561
4552
  } : { name: e };
4562
4553
  }
4563
- function ho(e) {
4554
+ function so(e) {
4564
4555
  let t = /* @__PURE__ */ new Set(), n = [];
4565
4556
  for (let r of e) t.has(r.name) || (t.add(r.name), n.push(r.name));
4566
4557
  return n;
4567
4558
  }
4568
- function go(e) {
4559
+ function co(e) {
4569
4560
  let t = /* @__PURE__ */ new Map();
4570
4561
  for (let n of e) {
4571
4562
  if (!n.slot) continue;
@@ -4576,42 +4567,42 @@ function go(e) {
4576
4567
  }
4577
4568
  //#endregion
4578
4569
  //#region src/commands/login.ts
4579
- async function _o() {
4580
- ea(), o.intro(R.brandBold("Log in to Hype Stack")), o.log.step("Opening your browser to sign in...");
4570
+ async function lo() {
4571
+ qi(), o.intro(L.brandBold("Log in to Hype Stack")), o.log.step("Opening your browser to sign in...");
4581
4572
  let e;
4582
4573
  try {
4583
- e = await qn({ onUrl: (e) => {
4584
- o.log.info(`If your browser didn't open, visit:\n ${R.path(e)}`);
4574
+ e = await Vn({ onUrl: (e) => {
4575
+ o.log.info(`If your browser didn't open, visit:\n ${L.path(e)}`);
4585
4576
  } });
4586
4577
  } catch (e) {
4587
4578
  o.cancel(e instanceof Error ? e.message : String(e)), process.exit(1);
4588
4579
  }
4589
- o.outro(R.brand(e.email ? `Logged in as ${e.email}. You can now install packs your organization owns.` : "Logged in. You can now install packs your organization owns."));
4580
+ o.outro(L.brand(e.email ? `Logged in as ${e.email}. You can now install packs your organization owns.` : "Logged in. You can now install packs your organization owns."));
4590
4581
  }
4591
4582
  //#endregion
4592
4583
  //#region src/commands/logout.ts
4593
- async function vo() {
4594
- ea(), o.intro(R.brandBold("Log out of Hype Stack"));
4595
- let e = N(), t = await Rn(e);
4584
+ async function uo() {
4585
+ qi(), o.intro(L.brandBold("Log out of Hype Stack"));
4586
+ let e = k(), t = await Mn(e);
4596
4587
  if (!t) {
4597
- o.outro(R.muted("You're not logged in."));
4588
+ o.outro(L.muted("You're not logged in."));
4598
4589
  return;
4599
4590
  }
4600
- await An(t.token).catch(() => null), await Bn(e), o.outro(R.brand("Logged out."));
4591
+ await wn(t.token).catch(() => null), await Pn(e), o.outro(L.brand("Logged out."));
4601
4592
  }
4602
4593
  //#endregion
4603
4594
  //#region src/core/templates.ts
4604
- var yo = q.createRequest()({
4595
+ var fo = K.createRequest()({
4605
4596
  endpoint: "/templates/list",
4606
4597
  method: "GET"
4607
4598
  });
4608
- async function bo() {
4609
- let { data: e, error: t } = await yo.send();
4599
+ async function po() {
4600
+ let { data: e, error: t } = await fo.send();
4610
4601
  if (t || !e) throw Error(`Failed to fetch template list: ${String(t)}`);
4611
4602
  return e.templates;
4612
4603
  }
4613
- async function xo(e) {
4614
- let { data: t, error: n, status: r } = await q.createRequest()({
4604
+ async function mo(e) {
4605
+ let { data: t, error: n, status: r } = await K.createRequest()({
4615
4606
  endpoint: `/templates/${encodeURIComponent(e)}/manifest`,
4616
4607
  method: "GET"
4617
4608
  }).send();
@@ -4619,13 +4610,13 @@ async function xo(e) {
4619
4610
  if (n || !t) throw Error(`Failed to load manifest for template "${e}": ${String(n)}`);
4620
4611
  return t;
4621
4612
  }
4622
- async function So(e, t = {}) {
4623
- let n = q.createRequest()({
4613
+ async function ho(e, t = {}) {
4614
+ let n = K.createRequest()({
4624
4615
  endpoint: `/templates/${encodeURIComponent(e)}/download`,
4625
4616
  method: "POST"
4626
4617
  }), r = {
4627
- "X-Device-Id": Hn(),
4628
- "X-Client-Info": Un()
4618
+ "X-Device-Id": In(),
4619
+ "X-Client-Info": Ln()
4629
4620
  };
4630
4621
  t.token && (r.Authorization = `Bearer ${t.token}`);
4631
4622
  let { data: i, error: a, success: o } = await n.setPayload({ key: t.licenseKey ?? void 0 }).setHeaders(r).send();
@@ -4636,10 +4627,10 @@ async function So(e, t = {}) {
4636
4627
  packs: i.packs ?? [],
4637
4628
  expiresAt: i.expiresAt ?? null
4638
4629
  };
4639
- let c = await s.mkdtemp(u.join(l.tmpdir(), `hype-stack-template-${e}-`));
4630
+ let c = await s.mkdtemp(p.join(f.tmpdir(), `hype-stack-template-${e}-`));
4640
4631
  return await Promise.all(i.files.map(async (e) => {
4641
- let t = u.join(c, ...e.path.split("/"));
4642
- await s.mkdir(u.dirname(t), { recursive: !0 }), await s.writeFile(t, Buffer.from(e.content, "base64"));
4632
+ let t = p.join(c, ...e.path.split("/"));
4633
+ await s.mkdir(p.dirname(t), { recursive: !0 }), await s.writeFile(t, Buffer.from(e.content, "base64"));
4643
4634
  })), {
4644
4635
  status: "ok",
4645
4636
  templateDir: c
@@ -4647,40 +4638,40 @@ async function So(e, t = {}) {
4647
4638
  }
4648
4639
  //#endregion
4649
4640
  //#region src/commands/template.ts
4650
- async function Co(e = {}) {
4641
+ async function go(e = {}) {
4651
4642
  let t = e.cwd ?? process.cwd();
4652
- ea();
4653
- let n = await Qa(t), a;
4643
+ qi();
4644
+ let n = await Ga(t), a;
4654
4645
  try {
4655
- a = await ar(n ?? t);
4646
+ a = await Qn(n ?? t);
4656
4647
  } catch (e) {
4657
- o.cancel(`Could not parse ${R.path("stack.json")}: ${$(e)} Run 'hype-stack init' to regenerate it.`), process.exit(1);
4648
+ o.cancel(`Could not parse ${L.path("stack.json")}: ${$(e)} Run 'npx @hype-stack/cli init' to regenerate it.`), process.exit(1);
4658
4649
  }
4659
- a || (o.cancel(n ? `Could not read ${R.path("stack.json")}. Run 'hype-stack init' to regenerate it, then run 'hype-stack template' again.` : `No ${R.path("stack.json")}. Run 'hype-stack init' first, then 'hype-stack template'.`), process.exit(1)), a.paths || (o.cancel(`${R.path("stack.json")} is missing ${R.path("paths")}. Run 'hype-stack init' again to regenerate it.`), process.exit(1));
4650
+ a || (o.cancel(n ? `Could not read ${L.path("stack.json")}. Run 'npx @hype-stack/cli init' to regenerate it, then run 'npx @hype-stack/cli template' again.` : `No ${L.path("stack.json")}. Run 'npx @hype-stack/cli init' first, then 'npx @hype-stack/cli template'.`), process.exit(1)), a.paths || (o.cancel(`${L.path("stack.json")} is missing ${L.path("paths")}. Run 'npx @hype-stack/cli init' again to regenerate it.`), process.exit(1));
4660
4651
  let c = n ?? t;
4661
- o.intro(R.brandBold("Install a template"));
4652
+ o.intro(L.brandBold("Install a template"));
4662
4653
  let l = o.spinner();
4663
4654
  l.start("Loading packs...");
4664
- let d;
4655
+ let u;
4665
4656
  try {
4666
- d = await _r();
4657
+ u = await ur();
4667
4658
  } catch (e) {
4668
4659
  l.stop("Failed to load packs"), o.cancel(`Could not reach Hype Stack. Check your connection and try again.\n${$(e)}`), process.exit(1);
4669
4660
  }
4670
4661
  l.stop("Packs loaded");
4671
- let f = a.installedPacks ?? [], p = new Set(f), m = new Map(d.map((e) => [e.name, e])), h = e.licenseKey ?? a.licenseKey ?? null, g = (await Rn(N()))?.token ?? null;
4662
+ let d = a.installedPacks ?? [], f = new Set(d), m = new Map(u.map((e) => [e.name, e])), h = e.licenseKey ?? a.licenseKey ?? null, g = (await Mn(k()))?.token ?? null;
4672
4663
  l.start("Loading templates...");
4673
4664
  let _;
4674
4665
  try {
4675
- _ = await bo();
4666
+ _ = await po();
4676
4667
  } catch (e) {
4677
4668
  l.stop("Failed to load templates"), o.cancel(`Could not reach Hype Stack. Check your connection and try again.\n${$(e)}`), process.exit(1);
4678
4669
  }
4679
4670
  let v = e.templateId;
4680
4671
  if (!v) {
4681
- e.yes && (l.stop("Template id required"), o.cancel("Pass a template id with `hype-stack template <id>` (required in --yes mode)."), process.exit(1)), _.length === 0 && (l.stop("No templates available"), o.cancel("No templates are available yet. Check back later."), process.exit(1)), l.stop("Templates loaded");
4682
- let t = P();
4683
- o.note(_.map((e) => ` ${z.arrow} ${R.highlight(e.name)} ${le(`${t}/templates/${e.id}`)}`).join("\n"), "Browse templates");
4672
+ e.yes && (l.stop("Template id required"), o.cancel("Pass a template id with `npx @hype-stack/cli template <id>` (required in --yes mode)."), process.exit(1)), _.length === 0 && (l.stop("No templates available"), o.cancel("No templates are available yet. Check back later."), process.exit(1)), l.stop("Templates loaded");
4673
+ let t = A();
4674
+ o.note(_.map((e) => ` ${R.arrow} ${L.highlight(e.name)} ${ie(`${t}/templates/${e.id}`)}`).join("\n"), "Browse templates");
4684
4675
  let n = await o.select({
4685
4676
  message: "Choose a template",
4686
4677
  options: _.map((e) => ({
@@ -4693,126 +4684,126 @@ async function Co(e = {}) {
4693
4684
  }
4694
4685
  let y = _.find((e) => e.id === v);
4695
4686
  y || (l.stop("Template not found"), o.cancel(`Template "${v}" not found. Available: ${_.map((e) => e.id).join(", ") || "(none)"}`), process.exit(1)), l.stop(`Template: ${y.name}`);
4696
- let b = await wo(y, e.variants, e.yes ?? !1), x = Bi(y.slots, b), S = Vi(y.slots, y.packs, x), C = await To({
4697
- packs: d,
4687
+ let b = await _o(y, e.variants, e.yes ?? !1), x = Ni(y.slots, b), S = Pi(y.slots, y.packs, x), C = await vo({
4688
+ packs: u,
4698
4689
  templatePacks: S,
4699
- installedSet: p,
4690
+ installedSet: f,
4700
4691
  options: e
4701
4692
  }), w = [...S, ...C.filter((e) => !S.includes(e))], T = w.filter((e) => !m.has(e));
4702
4693
  T.length > 0 && (o.cancel(`Unknown pack${T.length === 1 ? "" : "s"}: ${T.join(", ")}`), process.exit(1));
4703
- let E = Wi(d, x), D = Ii(E), O;
4694
+ let E = Li(u, x), D = ki(E), O;
4704
4695
  try {
4705
- O = Ri(w, D, f);
4696
+ O = ji(w, D, d);
4706
4697
  } catch (e) {
4707
4698
  o.cancel($(e)), process.exit(1);
4708
4699
  }
4709
4700
  if (O.order.length === 0) {
4710
- o.outro(R.muted("Every pack in this template is already installed."));
4701
+ o.outro(L.muted("Every pack in this template is already installed."));
4711
4702
  return;
4712
4703
  }
4713
- let ee = await no(E, p, {
4704
+ let ee = await Ya(E, f, {
4714
4705
  token: g,
4715
4706
  key: h
4716
4707
  }), te = (e) => {
4717
4708
  let t = m.get(e);
4718
4709
  return !t || t.tier === "free" ? "free" : ee[e]?.owned ? "owned" : "locked";
4719
- }, k = (e) => !p.has(e) && te(e) === "locked", A = zi({
4710
+ }, j = (e) => !f.has(e) && te(e) === "locked", M = Mi({
4720
4711
  order: O.order,
4721
4712
  graph: D,
4722
- isLocked: k,
4723
- installed: f
4713
+ isLocked: j,
4714
+ installed: d
4724
4715
  });
4725
- if (A.blocked.length > 0 && !g && !h) {
4726
- let e = await Jn();
4727
- e && (g = e, ee = await no(E, p, {
4716
+ if (M.blocked.length > 0 && !g && !h) {
4717
+ let e = await Hn();
4718
+ e && (g = e, ee = await Ya(E, f, {
4728
4719
  token: g,
4729
4720
  key: h
4730
- }), A = zi({
4721
+ }), M = Mi({
4731
4722
  order: O.order,
4732
4723
  graph: D,
4733
- isLocked: k,
4734
- installed: f
4724
+ isLocked: j,
4725
+ installed: d
4735
4726
  }));
4736
4727
  }
4737
- if (A.blocked.length > 0 && await io(A.blocked, k, m), A.installable.length === 0) {
4738
- o.outro(R.muted("Nothing left to install once locked packs are removed."));
4728
+ if (M.blocked.length > 0 && await Za(M.blocked, j, m), M.installable.length === 0) {
4729
+ o.outro(L.muted("Nothing left to install once locked packs are removed."));
4739
4730
  return;
4740
4731
  }
4741
- if (ao(A.installable, m), !e.yes) {
4742
- let e = await o.confirm({ message: `Install template ${R.brandBold(y.name)} (${A.installable.length} pack${A.installable.length === 1 ? "" : "s"})?` });
4732
+ if (Qa(M.installable, m), !e.yes) {
4733
+ let e = await o.confirm({ message: `Install template ${L.brandBold(y.name)} (${M.installable.length} pack${M.installable.length === 1 ? "" : "s"})?` });
4743
4734
  (o.isCancel(e) || !e) && (o.cancel("Installation cancelled."), process.exit(0));
4744
4735
  }
4745
4736
  l.start("Downloading packs...");
4746
- let j;
4737
+ let N;
4747
4738
  try {
4748
- j = await oo(A.installable, {
4739
+ N = await $a(M.installable, {
4749
4740
  token: g,
4750
4741
  key: h
4751
4742
  });
4752
4743
  } catch (e) {
4753
4744
  l.stop("Download failed"), o.cancel($(e)), process.exit(1);
4754
4745
  }
4755
- l.stop(`Downloaded ${j.length} pack${j.length === 1 ? "" : "s"}`);
4756
- let ne = await lo({
4757
- prepared: j,
4746
+ l.stop(`Downloaded ${N.length} pack${N.length === 1 ? "" : "s"}`);
4747
+ let P = await no({
4748
+ prepared: N,
4758
4749
  config: a,
4759
4750
  cwd: c,
4760
4751
  force: e.force ?? !1,
4761
4752
  yes: e.yes ?? !1
4762
- }), M = null;
4753
+ }), F = null;
4763
4754
  try {
4764
4755
  l.start("Installing pack files...");
4765
- let t = await Di({
4766
- packs: j,
4756
+ let t = await bi({
4757
+ packs: N,
4767
4758
  config: a,
4768
4759
  projectRoot: c,
4769
4760
  force: e.force ?? !1,
4770
- overwrite: ne
4761
+ overwrite: P
4771
4762
  });
4772
4763
  if (t.aborted) {
4773
4764
  l.stop("Installation aborted");
4774
4765
  for (let e of t.errors) o.log.error(e);
4775
4766
  o.cancel("No files were written. Fix the errors above (or pass --force for existing files) and try again."), process.exit(1);
4776
4767
  }
4777
- l.stop("Files installed"), t.installed.length > 0 && o.log.success(`${R.highlight(String(t.installed.length))} files installed`), t.skipped.length > 0 && o.log.warning(`${t.skipped.length} files skipped (use --force to overwrite)`);
4768
+ l.stop("Files installed"), t.installed.length > 0 && o.log.success(`${L.highlight(String(t.installed.length))} files installed`), t.skipped.length > 0 && o.log.warning(`${t.skipped.length} files skipped (use --force to overwrite)`);
4778
4769
  for (let e of t.errors) o.log.error(e);
4779
4770
  l.start("Applying template overrides...");
4780
- let n = await xo(y.id), s = await So(y.id, {
4771
+ let n = await mo(y.id), s = await ho(y.id, {
4781
4772
  token: g,
4782
4773
  licenseKey: h
4783
4774
  });
4784
- s.status === "denied" && (l.stop("Template download denied"), o.cancel(`Access to template "${y.id}" was denied (${s.reason}). Try 'hype-stack login' or check your license.`), process.exit(1)), M = s.templateDir;
4785
- let d = await ki({
4775
+ s.status === "denied" && (l.stop("Template download denied"), o.cancel(`Access to template "${y.id}" was denied (${s.reason}). Try 'npx @hype-stack/cli login' or check your license.`), process.exit(1)), F = s.templateDir;
4776
+ let u = await Si({
4786
4777
  manifest: n,
4787
4778
  config: a,
4788
4779
  projectRoot: c,
4789
- templateDir: M
4780
+ templateDir: F
4790
4781
  });
4791
- l.stop("Template overrides applied"), d.installed.length > 0 && o.log.success(`${d.installed.length} template file${d.installed.length === 1 ? "" : "s"} applied`);
4792
- for (let e of d.errors) o.log.error(e);
4793
- let f = n.theme ?? "zinc-mono";
4794
- i(f) && (await sa(u.resolve(c, a.paths?.frontend.root ?? "apps/frontend"), r(f)) ? o.log.success(`Applied the ${r(f).label} theme`) : o.log.warning(R.muted(`Could not find ${R.path("assets/styles.css")} to apply the theme`))), await Eo({
4795
- prepared: j,
4782
+ l.stop("Template overrides applied"), u.installed.length > 0 && o.log.success(`${u.installed.length} template file${u.installed.length === 1 ? "" : "s"} applied`);
4783
+ for (let e of u.errors) o.log.error(e);
4784
+ let d = n.theme ?? "zinc-mono";
4785
+ i(d) && (await ea(p.resolve(c, a.paths?.frontend.root ?? "apps/frontend"), r(d)) ? o.log.success(`Applied the ${r(d).label} theme`) : o.log.warning(L.muted(`Could not find ${L.path("assets/styles.css")} to apply the theme`))), await yo({
4786
+ prepared: N,
4796
4787
  templateNpm: n.dependencies_npm,
4797
4788
  paths: a.paths,
4798
4789
  cwd: c,
4799
4790
  spinner: l
4800
- }), await ir({
4791
+ }), await Zn({
4801
4792
  projectRoot: c,
4802
4793
  paths: a.paths,
4803
4794
  skipPrompts: e.yes ?? !1
4804
- }), co(j), n.postInstall && n.postInstall.length > 0 && o.note(n.postInstall.map((e) => ` ${R.muted("→")} ${e}`).join("\n"), "Template Next Steps"), o.outro(R.brand(`Installed template ${y.name}.`));
4795
+ }), to(N), n.postInstall && n.postInstall.length > 0 && o.note(n.postInstall.map((e) => ` ${L.muted("→")} ${e}`).join("\n"), "Template Next Steps"), o.outro(L.brand(`Installed template ${y.name}.`));
4805
4796
  } finally {
4806
- await Promise.all(j.map((e) => s.rm(e.packDir, {
4797
+ await Promise.all(N.map((e) => s.rm(e.packDir, {
4807
4798
  recursive: !0,
4808
4799
  force: !0
4809
- }))), M && await s.rm(M, {
4800
+ }))), F && await s.rm(F, {
4810
4801
  recursive: !0,
4811
4802
  force: !0
4812
4803
  });
4813
4804
  }
4814
4805
  }
4815
- async function wo(e, t, n) {
4806
+ async function _o(e, t, n) {
4816
4807
  let r = {};
4817
4808
  for (let i of e.slots) {
4818
4809
  if (t?.[i.family]) {
@@ -4836,7 +4827,7 @@ async function wo(e, t, n) {
4836
4827
  }
4837
4828
  return r;
4838
4829
  }
4839
- async function To(e) {
4830
+ async function vo(e) {
4840
4831
  let { packs: t, templatePacks: n, installedSet: r, options: i } = e, a = new Set(n);
4841
4832
  if (i.packs && i.packs.length > 0) {
4842
4833
  let e = i.packs.filter((e) => !t.some((t) => t.name === e));
@@ -4845,8 +4836,8 @@ async function To(e) {
4845
4836
  if (i.yes) return [];
4846
4837
  let s = t.filter((e) => e.category === "feature" && !a.has(e.name) && !r.has(e.name));
4847
4838
  if (s.length === 0) return [];
4848
- let c = P();
4849
- o.note(s.map((e) => ` ${z.arrow} ${R.highlight(e.displayName)} ${le(`${c}/packs/${e.name}`)}`).join("\n"), "Browse packs");
4839
+ let c = A();
4840
+ o.note(s.map((e) => ` ${R.arrow} ${L.highlight(e.displayName)} ${ie(`${c}/packs/${e.name}`)}`).join("\n"), "Browse packs");
4850
4841
  let l = await o.multiselect({
4851
4842
  message: "Add extra packs on top of the template (optional)",
4852
4843
  options: s.map((e) => ({
@@ -4858,25 +4849,25 @@ async function To(e) {
4858
4849
  });
4859
4850
  return o.isCancel(l) && (o.cancel("Cancelled."), process.exit(0)), l;
4860
4851
  }
4861
- async function Eo(e) {
4862
- let { prepared: t, templateNpm: n, paths: r, cwd: i, spinner: a } = e, s = eo(t.map((e) => e.manifest.dependencies_npm)), c = $a(n ? eo([s, n]) : s, r);
4852
+ async function yo(e) {
4853
+ let { prepared: t, templateNpm: n, paths: r, cwd: i, spinner: a } = e, s = qa(t.map((e) => e.manifest.dependencies_npm)), c = Ka(n ? qa([s, n]) : s, r);
4863
4854
  if (c.errors.length > 0) {
4864
4855
  for (let e of c.errors) o.log.error(e);
4865
4856
  return;
4866
4857
  }
4867
4858
  if (c.operations.length === 0) return;
4868
4859
  a.start("Installing npm dependencies...");
4869
- let l = await to(c.operations, i);
4860
+ let l = await Ja(c.operations, i);
4870
4861
  if (a.stop(l.ok ? "npm dependencies installed" : "npm dependency installation failed"), !l.ok) for (let e of l.errors) o.log.error(e);
4871
4862
  }
4872
4863
  //#endregion
4873
4864
  //#region src/cli.ts
4874
- function Do(e) {
4865
+ function bo(e) {
4875
4866
  if (!e) return;
4876
4867
  let t = e.split(",").map((e) => e.trim()).filter((e) => e.length > 0);
4877
4868
  return t.length > 0 ? t : void 0;
4878
4869
  }
4879
- function Oo(e) {
4870
+ function xo(e) {
4880
4871
  if (!e) return;
4881
4872
  let t = {};
4882
4873
  for (let n of e.split(",")) {
@@ -4885,10 +4876,10 @@ function Oo(e) {
4885
4876
  }
4886
4877
  return Object.keys(t).length > 0 ? t : void 0;
4887
4878
  }
4888
- function ko() {
4879
+ function So() {
4889
4880
  let e = new a();
4890
- return e.name("hype-stack").description("Build with Hype Stack -- templates, components, modules, and more").version(C, "-v, --version"), e.command("create").description("Create a new Hype Stack project").option("-n, --name <name>", "Project name").option("-d, --directory <path>", "Target directory").option("-e, --editor <editor>", "Code editor (cursor, claude, windsurf, copilot)").option("-t, --theme <theme>", "Color theme (default, slate, rose, emerald, violet, amber, ocean, zinc-mono, crimson, midnight)").option("--no-install", "Skip dependency installation").option("--no-setup", "Skip Docker services and database migrations after create").option("-y, --yes", "Skip confirmation prompts (requires --name)").action(async (e) => {
4891
- await Xa({
4881
+ return e.name("hype-stack").description("Build with Hype Stack -- templates, components, modules, and more").version(_, "-v, --version"), e.command("create").description("Create a new Hype Stack project").option("-n, --name <name>", "Project name").option("-d, --directory <path>", "Target directory").option("-e, --editor <editor>", "Code editor (cursor, claude, windsurf, copilot)").option("-t, --theme <theme>", "Color theme (default, slate, rose, emerald, violet, amber, ocean, zinc-mono, crimson, midnight)").option("--no-install", "Skip dependency installation").option("--no-setup", "Skip Docker services and database migrations after create").option("-y, --yes", "Skip confirmation prompts (requires --name)").action(async (e) => {
4882
+ await Ua({
4892
4883
  name: e.name,
4893
4884
  directory: e.directory,
4894
4885
  install: e.install,
@@ -4898,32 +4889,32 @@ function ko() {
4898
4889
  setup: e.setup
4899
4890
  });
4900
4891
  }), e.command("init").description("Initialize stack.json in the current project").action(async () => {
4901
- await Za({});
4892
+ await Wa({});
4902
4893
  }), e.command("compose").description("Choose feature packs to add to your project").option("--packs <list>", "Comma-separated pack names (non-interactive). Append @frontend or @admin to a layout pack to target that app shell, e.g. layout-basic@frontend,layout-native-app-shell@admin").option("--force", "Overwrite existing files").option("-y, --yes", "Skip confirmation prompts").option("-k, --key <key>", "License key").option("--license-key <key>", "License key (alias for --key)").option("--cwd <path>", "Working directory").action(async (e) => {
4903
- await uo({
4904
- packs: Do(e.packs),
4894
+ await ro({
4895
+ packs: bo(e.packs),
4905
4896
  force: e.force,
4906
4897
  yes: e.yes,
4907
4898
  licenseKey: e.key ?? e.licenseKey,
4908
4899
  cwd: e.cwd
4909
4900
  });
4910
4901
  }), e.command("template").description("Install a template by id, with starter/layout variant swaps and extra packs on top").argument("[id]", "Template id (omit to pick interactively)").option("--variants <map>", "Preselect slot variants, e.g. starter-saas=starter-saas-better-auth,layout=layout-basic").option("--packs <list>", "Extra packs to add on top of the template (comma-separated)").option("--force", "Overwrite existing files").option("-y, --yes", "Skip confirmation prompts (requires <id>)").option("-k, --key <key>", "License key").option("--license-key <key>", "License key (alias for --key)").option("--cwd <path>", "Working directory").action(async (e, t) => {
4911
- await Co({
4902
+ await go({
4912
4903
  templateId: e,
4913
- variants: Oo(t.variants),
4914
- packs: Do(t.packs),
4904
+ variants: xo(t.variants),
4905
+ packs: bo(t.packs),
4915
4906
  force: t.force,
4916
4907
  yes: t.yes,
4917
4908
  licenseKey: t.key ?? t.licenseKey,
4918
4909
  cwd: t.cwd
4919
4910
  });
4920
4911
  }), e.command("login").description("Log in via your browser to install packs your organization owns").action(async () => {
4921
- await _o();
4912
+ await lo();
4922
4913
  }), e.command("logout").description("Log out and remove the saved CLI token").action(async () => {
4923
- await vo();
4914
+ await uo();
4924
4915
  }), e.command("auth").description("Alias for `login`").action(async () => {
4925
- await _o();
4916
+ await lo();
4926
4917
  }), e;
4927
4918
  }
4928
4919
  //#endregion
4929
- export { Qa as a, uo as i, vo as n, Za as o, _o as r, Xa as s, ko as t };
4920
+ export { Ga as a, ro as i, uo as n, Wa as o, lo as r, Ua as s, So as t };