@incajs/cli 0.0.22 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +5 -6
  2. package/dist/chunks/_format-CFy6_BQd.js +1 -0
  3. package/dist/chunks/defaults-DfHXv1fN.js +1 -0
  4. package/dist/chunks/dist-B-B_PlmU.js +1 -0
  5. package/dist/chunks/dist-BTWvruNB.js +1 -0
  6. package/dist/chunks/json5-BcF68iGq.js +14 -0
  7. package/dist/chunks/jsonc-DJWoCi14.js +4 -0
  8. package/dist/chunks/ohash-DUMW2FP0.js +1 -0
  9. package/dist/chunks/rolldown-runtime-DT7IzrpZ.js +1 -0
  10. package/dist/chunks/toml-n3nLqi2g.js +5 -0
  11. package/dist/chunks/types-Dz2aIWaI.d.ts +84 -0
  12. package/dist/chunks/yaml-DtBxpt6z.js +38 -0
  13. package/dist/{cli.d.mts → cli.d.ts} +1 -1
  14. package/dist/cli.js +22 -2229
  15. package/dist/config.d.ts +35 -0
  16. package/dist/config.js +1 -5
  17. package/dist/index.d.ts +27 -0
  18. package/dist/index.js +1 -0
  19. package/dist/vite-runtime.d.ts +28 -0
  20. package/dist/vite-runtime.js +7 -1179
  21. package/package.json +8 -26
  22. package/dist/adapterCore.d.mts +0 -11
  23. package/dist/build.d.mts +0 -28
  24. package/dist/chunks/__vite-optional-peer-dep_dotenv_c12-CxKvRg9-.js +0 -3
  25. package/dist/chunks/__vite-optional-peer-dep_giget_c12-BYcrHYBM.js +0 -5
  26. package/dist/chunks/__vite-optional-peer-dep_jiti_c12-DZVJNj6v.js +0 -5
  27. package/dist/chunks/_format-BKs7bsc4.js +0 -98
  28. package/dist/chunks/defaults-Ct95BSBl.js +0 -23
  29. package/dist/chunks/dist-C64iuQVW.js +0 -730
  30. package/dist/chunks/dist-DrnNGO2a.js +0 -114
  31. package/dist/chunks/json5-RapVXICN.js +0 -711
  32. package/dist/chunks/jsonc-BDHXk_1o.js +0 -40
  33. package/dist/chunks/ohash-Cc4pJh84.js +0 -231
  34. package/dist/chunks/rolldown-runtime-Dy4uBu1J.js +0 -11
  35. package/dist/chunks/toml-CgS7wGvD.js +0 -416
  36. package/dist/chunks/yaml-U_oPOIGK.js +0 -2123
  37. package/dist/config/defaults.d.mts +0 -45
  38. package/dist/config/index.d.mts +0 -18
  39. package/dist/config/loader.d.mts +0 -82
  40. package/dist/config/types.d.mts +0 -73
  41. package/dist/defaultBundler.d.mts +0 -7
  42. package/dist/dev-client/hostBin.d.mts +0 -15
  43. package/dist/dev-client/hostClient.d.mts +0 -70
  44. package/dist/dev-client/hostError.d.mts +0 -6
  45. package/dist/dev-client/index.d.mts +0 -4
  46. package/dist/dev-client/protocol.d.mts +0 -39
  47. package/dist/dev.d.mts +0 -51
  48. package/dist/devLock.d.mts +0 -11
  49. package/dist/entry.d.mts +0 -29
  50. package/dist/error.d.mts +0 -15
  51. package/dist/index.d.mts +0 -1
  52. package/dist/log.d.mts +0 -36
  53. package/dist/macosApp.d.mts +0 -47
  54. package/dist/package.d.mts +0 -50
  55. package/dist/plist.d.mts +0 -4
  56. package/dist/printConfig.d.mts +0 -20
  57. package/dist/retryOnEdit.d.mts +0 -32
  58. package/dist/types.d.mts +0 -136
  59. package/dist/vite/build.d.mts +0 -6
  60. package/dist/vite/captureOutput.d.mts +0 -17
  61. package/dist/vite/config.d.mts +0 -45
  62. package/dist/vite/createBundler.d.mts +0 -7
  63. package/dist/vite/emitConfig.d.mts +0 -17
  64. package/dist/vite/hmr.d.mts +0 -37
  65. package/dist/vite/index.d.mts +0 -1
  66. package/dist/vite/logger.d.mts +0 -8
  67. package/dist/vite/unsupported.d.mts +0 -24
  68. package/dist/vite/watch.d.mts +0 -7
  69. package/dist/watchForEdit.d.mts +0 -27
package/dist/cli.js CHANGED
@@ -1,2240 +1,33 @@
1
- import { t as e } from "./chunks/rolldown-runtime-Dy4uBu1J.js";
2
- import { c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "./chunks/dist-C64iuQVW.js";
3
- import { i as c, n as l, r as u, t as d } from "./chunks/defaults-Ct95BSBl.js";
4
- import f, { existsSync as p, lstatSync as m, readFileSync as h, realpathSync as g, statSync as _, watch as v } from "node:fs";
5
- import y, { resolve as b } from "node:path";
6
- import * as x from "node:util";
7
- import { parseArgs as S, styleText as C } from "node:util";
8
- import { chmod as w, cp as T, link as E, mkdir as D, readFile as O, readdir as k, rm as A, writeFile as j } from "node:fs/promises";
9
- import { fileURLToPath as ee, pathToFileURL as te } from "node:url";
10
- import { homedir as M } from "node:os";
11
- import { createRequire as ne } from "node:module";
12
- import { spawn as re, spawnSync as ie } from "node:child_process";
13
- import { once as N } from "node:events";
14
- import P from "node:readline";
15
- import { setTimeout as ae } from "node:timers/promises";
16
- import { DevEnvironment as oe, build as se, buildErrorMessage as ce, createServer as le } from "vite";
17
- import ue from "@vitejs/plugin-vue";
18
- import { randomUUID as de } from "node:crypto";
19
- //#region ../../node_modules/.pnpm/citty@0.2.2/node_modules/citty/dist/_chunks/libs/scule.mjs
20
- var fe = /\d/, pe = [
21
- "-",
22
- "_",
23
- "/",
24
- "."
25
- ];
26
- function me(e = "") {
27
- if (!fe.test(e)) return e !== e.toLowerCase();
28
- }
29
- function he(e, t) {
30
- let n = t ?? pe, r = [];
31
- if (!e || typeof e != "string") return r;
32
- let i = "", a, o;
33
- for (let t of e) {
34
- let e = n.includes(t);
35
- if (e === !0) {
36
- r.push(i), i = "", a = void 0;
37
- continue;
38
- }
39
- let s = me(t);
40
- if (o === !1) {
41
- if (a === !1 && s === !0) {
42
- r.push(i), i = t, a = s;
43
- continue;
44
- }
45
- if (a === !0 && s === !1 && i.length > 1) {
46
- let e = i.at(-1);
47
- r.push(i.slice(0, Math.max(0, i.length - 1))), i = e + t, a = s;
48
- continue;
49
- }
50
- }
51
- i += t, a = s, o = e;
52
- }
53
- return r.push(i), r;
54
- }
55
- function ge(e) {
56
- return e ? e[0].toUpperCase() + e.slice(1) : "";
57
- }
58
- function _e(e) {
59
- return e ? e[0].toLowerCase() + e.slice(1) : "";
60
- }
61
- function ve(e, t) {
62
- return e ? (Array.isArray(e) ? e : he(e)).map((e) => ge(t?.normalize ? e.toLowerCase() : e)).join("") : "";
63
- }
64
- function F(e, t) {
65
- return _e(ve(e || "", t));
66
- }
67
- function ye(e, t) {
68
- return e ? (Array.isArray(e) ? e : he(e)).map((e) => e.toLowerCase()).join(t ?? "-") : "";
69
- }
70
- function be(e) {
71
- return ye(e || "", "_");
72
- }
73
- //#endregion
74
- //#region ../../node_modules/.pnpm/citty@0.2.2/node_modules/citty/dist/index.mjs
75
- function I(e) {
76
- return Array.isArray(e) ? e : e === void 0 ? [] : [e];
77
- }
78
- function xe(e, t = "") {
79
- let n = [];
80
- for (let t of e) for (let [e, r] of t.entries()) n[e] = Math.max(n[e] || 0, r.length);
81
- return e.map((e) => e.map((e, r) => t + e[r === 0 ? "padStart" : "padEnd"](n[r])).join(" ")).join("\n");
82
- }
83
- function L(e) {
84
- return typeof e == "function" ? e() : e;
85
- }
86
- var R = class extends Error {
87
- code;
88
- constructor(e, t) {
89
- super(e), this.name = "CLIError", this.code = t;
90
- }
91
- };
92
- function Se(e = [], t = {}) {
93
- let n = new Set(t.boolean || []), r = new Set(t.string || []), i = t.alias || {}, a = t.default || {}, o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map();
94
- for (let [e, t] of Object.entries(i)) {
95
- let n = t;
96
- for (let t of n) o.set(e, t), s.has(t) || s.set(t, []), s.get(t).push(e), o.set(t, e), s.has(e) || s.set(e, []), s.get(e).push(t);
97
- }
98
- let c = {};
99
- function l(e) {
100
- if (n.has(e)) return "boolean";
101
- let t = s.get(e) || [];
102
- for (let e of t) if (n.has(e)) return "boolean";
103
- return "string";
104
- }
105
- function u(e) {
106
- if (r.has(e)) return !0;
107
- let t = s.get(e) || [];
108
- for (let e of t) if (r.has(e)) return !0;
109
- return !1;
110
- }
111
- let d = /* @__PURE__ */ new Set([
112
- ...n,
113
- ...r,
114
- ...Object.keys(i),
115
- ...Object.values(i).flat(),
116
- ...Object.keys(a)
117
- ]);
118
- for (let e of d) c[e] || (c[e] = {
119
- type: l(e),
120
- default: a[e]
121
- });
122
- for (let [e, t] of o.entries()) e.length === 1 && c[t] && !c[t].short && (c[t].short = e);
123
- let f = [], p = {};
124
- for (let t = 0; t < e.length; t++) {
125
- let n = e[t];
126
- if (n === "--") {
127
- f.push(...e.slice(t));
128
- break;
129
- }
130
- if (n.startsWith("--no-")) {
131
- let e = n.slice(5);
132
- p[e] = !0;
133
- } else f.push(n);
134
- }
135
- let m;
136
- try {
137
- m = S({
138
- args: f,
139
- options: Object.keys(c).length > 0 ? c : void 0,
140
- allowPositionals: !0,
141
- strict: !1
142
- });
143
- } catch {
144
- m = {
145
- values: {},
146
- positionals: f
147
- };
148
- }
149
- let h = { _: [] };
150
- h._ = m.positionals;
151
- for (let [e, t] of Object.entries(m.values)) {
152
- let n = t;
153
- l(e) === "boolean" && typeof t == "string" ? n = t !== "false" : u(e) && typeof t == "boolean" && (n = ""), h[e] = n;
154
- }
155
- for (let [e] of Object.entries(p)) {
156
- h[e] = !1;
157
- let t = o.get(e);
158
- t && (h[t] = !1);
159
- let n = s.get(e);
160
- if (n) for (let e of n) h[e] = !1;
161
- }
162
- for (let [e, t] of o.entries()) h[e] !== void 0 && h[t] === void 0 && (h[t] = h[e]), h[t] !== void 0 && h[e] === void 0 && (h[e] = h[t]), h[e] !== h[t] && a[t] === h[t] && (h[t] = h[e]);
163
- return h;
164
- }
165
- var Ce = /* @__PURE__ */ (() => {
166
- let e = globalThis.process?.env ?? {};
167
- return e.NO_COLOR === "1" || e.TERM === "dumb" || e.TEST || e.CI;
168
- })(), z = (e, t = 39) => (n) => Ce ? n : `\u001B[${e}m${n}\u001B[${t}m`, B = /* @__PURE__ */ z(1, 22), V = /* @__PURE__ */ z(36), H = /* @__PURE__ */ z(90), U = /* @__PURE__ */ z(4, 24);
169
- function we(e, t) {
170
- let n = {
171
- boolean: [],
172
- string: [],
173
- alias: {},
174
- default: {}
175
- }, r = Te(t);
176
- for (let e of r) {
177
- if (e.type === "positional") continue;
178
- e.type === "string" || e.type === "enum" ? n.string.push(e.name) : e.type === "boolean" && n.boolean.push(e.name), e.default !== void 0 && (n.default[e.name] = e.default), e.alias && (n.alias[e.name] = e.alias);
179
- let t = F(e.name), r = ye(e.name);
180
- if (t !== e.name || r !== e.name) {
181
- let i = I(n.alias[e.name] || []);
182
- t !== e.name && !i.includes(t) && i.push(t), r !== e.name && !i.includes(r) && i.push(r), i.length > 0 && (n.alias[e.name] = i);
183
- }
184
- }
185
- let i = Se(e, n), [ ...a] = i._, o = new Proxy(i, { get(e, t) {
186
- return e[t] ?? e[F(t)] ?? e[ye(t)];
187
- } });
188
- for (let [, e] of r.entries()) if (e.type === "positional") {
189
- let t = a.shift();
190
- if (t !== void 0) o[e.name] = t;
191
- else if (e.default === void 0 && e.required !== !1) throw new R(`Missing required positional argument: ${e.name.toUpperCase()}`, "EARG");
192
- else o[e.name] = e.default;
193
- } else if (e.type === "enum") {
194
- let t = o[e.name], n = e.options || [];
195
- if (t !== void 0 && n.length > 0 && !n.includes(t)) throw new R(`Invalid value for argument: ${V(`--${e.name}`)} (${V(t)}). Expected one of: ${n.map((e) => V(e)).join(", ")}.`, "EARG");
196
- } else if (e.required && o[e.name] === void 0) throw new R(`Missing required argument: --${e.name}`, "EARG");
197
- return o;
198
- }
199
- function Te(e) {
200
- let t = [];
201
- for (let [n, r] of Object.entries(e || {})) t.push({
202
- ...r,
203
- name: n,
204
- alias: I(r.alias)
205
- });
206
- return t;
207
- }
208
- async function Ee(e) {
209
- return Promise.all(e.map((e) => L(e)));
210
- }
211
- function W(e) {
212
- return e;
213
- }
214
- async function De(e, t) {
215
- let n = await L(e.args || {}), r = we(t.rawArgs, n), i = {
216
- rawArgs: t.rawArgs,
217
- args: r,
218
- data: t.data,
219
- cmd: e
220
- }, a = await Ee(e.plugins ?? []), o, s;
221
- try {
222
- for (let e of a) await e.setup?.(i);
223
- typeof e.setup == "function" && await e.setup(i);
224
- let r = await L(e.subCommands);
225
- if (r && Object.keys(r).length > 0) {
226
- let i = Ae(t.rawArgs, n), a = t.rawArgs[i];
227
- if (a) {
228
- let e = await ke(r, a);
229
- if (!e) throw new R(`Unknown command ${V(a)}`, "E_UNKNOWN_COMMAND");
230
- await De(e, { rawArgs: t.rawArgs.slice(i + 1) });
231
- } else {
232
- let n = await L(e.default);
233
- if (n) {
234
- if (e.run) throw new R("Cannot specify both 'run' and 'default' on the same command.", "E_DEFAULT_CONFLICT");
235
- let i = await ke(r, n);
236
- if (!i) throw new R(`Default sub command ${V(n)} not found in subCommands.`, "E_UNKNOWN_COMMAND");
237
- await De(i, { rawArgs: t.rawArgs });
238
- } else if (!e.run) throw new R("No command specified.", "E_NO_COMMAND");
239
- }
240
- }
241
- typeof e.run == "function" && (o = await e.run(i));
242
- } catch (e) {
243
- s = e;
244
- }
245
- let c = [];
246
- if (typeof e.cleanup == "function") try {
247
- await e.cleanup(i);
248
- } catch (e) {
249
- c.push(e);
250
- }
251
- for (let e of [...a].reverse()) try {
252
- await e.cleanup?.(i);
253
- } catch (e) {
254
- c.push(e);
255
- }
256
- if (s) throw s;
257
- if (c.length === 1) throw c[0];
258
- if (c.length > 1) throw Error("Multiple cleanup errors", { cause: c });
259
- return { result: o };
260
- }
261
- async function Oe(e, t, n) {
262
- let r = await L(e.subCommands);
263
- if (r && Object.keys(r).length > 0) {
264
- let n = Ae(t, await L(e.args || {})), i = t[n], a = await ke(r, i);
265
- if (a) return Oe(a, t.slice(n + 1), e);
266
- }
267
- return [e, n];
268
- }
269
- async function ke(e, t) {
270
- if (t in e) return L(e[t]);
271
- for (let n of Object.values(e)) {
272
- let e = await L(n), r = await L(e?.meta);
273
- if (r?.alias && I(r.alias).includes(t)) return e;
274
- }
275
- }
276
- function Ae(e, t) {
277
- for (let n = 0; n < e.length; n++) {
278
- let r = e[n];
279
- if (r === "--") return -1;
280
- if (r.startsWith("-")) !r.includes("=") && je(r, t) && n++;
281
- else return n;
282
- }
283
- return -1;
284
- }
285
- function je(e, t) {
286
- let n = e.replace(/^-{1,2}/, ""), r = F(n);
287
- for (let [e, i] of Object.entries(t)) if ((i.type === "string" || i.type === "enum") && (r === F(e) || (Array.isArray(i.alias) ? i.alias : i.alias ? [i.alias] : []).includes(n))) return !0;
288
- return !1;
289
- }
290
- async function Me(e, t) {
291
- try {
292
- console.log(await Pe(e, t) + "\n");
293
- } catch (e) {
294
- console.error(e);
295
- }
296
- }
297
- var Ne = /^no[-A-Z]/;
298
- async function Pe(e, t) {
299
- let n = await L(e.meta || {}), r = Te(await L(e.args || {})), i = await L(t?.meta || {}), a = `${i.name ? `${i.name} ` : ""}` + (n.name || process.argv[1]), o = [], s = [], c = [], l = [];
300
- for (let e of r) if (e.type === "positional") {
301
- let t = e.name.toUpperCase(), n = e.required !== !1 && e.default === void 0;
302
- s.push([V(t + Fe(e)), Ie(e, n)]), l.push(n ? `<${t}>` : `[${t}]`);
303
- } else {
304
- let t = e.required === !0 && e.default === void 0, n = [...(e.alias || []).map((e) => `-${e}`), `--${e.name}`].join(", ") + Fe(e);
305
- if (o.push([V(n), Ie(e, t)]), e.type === "boolean" && (e.default === !0 || e.negativeDescription) && !Ne.test(e.name)) {
306
- let n = [...(e.alias || []).map((e) => `--no-${e}`), `--no-${e.name}`].join(", ");
307
- o.push([V(n), [e.negativeDescription, t ? H("(Required)") : ""].filter(Boolean).join(" ")]);
308
- }
309
- t && l.push(`--${e.name}` + Fe(e));
310
- }
311
- if (e.subCommands) {
312
- let t = [], n = await L(e.subCommands);
313
- for (let [e, r] of Object.entries(n)) {
314
- let n = await L((await L(r))?.meta);
315
- if (n?.hidden) continue;
316
- let i = I(n?.alias), a = [e, ...i].join(", ");
317
- c.push([V(a), n?.description || ""]), t.push(e, ...i);
318
- }
319
- l.push(t.join("|"));
320
- }
321
- let u = [], d = n.version || i.version;
322
- u.push(H(`${n.description} (${a + (d ? ` v${d}` : "")})`), "");
323
- let f = o.length > 0 || s.length > 0;
324
- return u.push(`${U(B("USAGE"))} ${V(`${a}${f ? " [OPTIONS]" : ""} ${l.join(" ")}`)}`, ""), s.length > 0 && (u.push(U(B("ARGUMENTS")), ""), u.push(xe(s, " ")), u.push("")), o.length > 0 && (u.push(U(B("OPTIONS")), ""), u.push(xe(o, " ")), u.push("")), c.length > 0 && (u.push(U(B("COMMANDS")), ""), u.push(xe(c, " ")), u.push("", `Use ${V(`${a} <command> --help`)} for more information about a command.`)), u.filter((e) => typeof e == "string").join("\n");
325
- }
326
- function Fe(e) {
327
- let t = e.valueHint ? `=<${e.valueHint}>` : "", n = t || `=<${be(e.name)}>`;
328
- return !e.type || e.type === "positional" || e.type === "boolean" ? t : e.type === "enum" && e.options?.length ? `=<${e.options.join("|")}>` : n;
329
- }
330
- function Ie(e, t) {
331
- let n = t ? H("(Required)") : "", r = e.default === void 0 ? "" : H(`(Default: ${e.default})`);
332
- return [
333
- e.description,
334
- n,
335
- r
336
- ].filter(Boolean).join(" ");
337
- }
338
- async function Le(e, t = {}) {
339
- let n = t.rawArgs || process.argv.slice(2), r = t.showUsage || Me;
340
- try {
341
- let t = await Re(e);
342
- if (t.help.length > 0 && n.some((e) => t.help.includes(e))) await r(...await Oe(e, n)), process.exit(0);
343
- else if (n.length === 1 && t.version.includes(n[0])) {
344
- let t = typeof e.meta == "function" ? await e.meta() : await e.meta;
345
- if (!t?.version) throw new R("No version specified", "E_NO_VERSION");
346
- console.log(t.version);
347
- } else await De(e, { rawArgs: n });
348
- } catch (t) {
349
- t instanceof R ? (await r(...await Oe(e, n)), console.error(t.message)) : console.error(t, "\n"), process.exit(1);
350
- }
351
- }
352
- async function Re(e) {
353
- let t = await L(e.args || {}), n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
354
- for (let [e, i] of Object.entries(t)) {
355
- n.add(e);
356
- for (let e of I(i.alias)) r.add(e);
357
- }
358
- return {
359
- help: ze("help", "h", n, r),
360
- version: ze("version", "v", n, r)
361
- };
362
- }
363
- function ze(e, t, n, r) {
364
- return n.has(e) || r.has(e) ? [] : n.has(t) || r.has(t) ? [`--${e}`] : [`--${e}`, `-${t}`];
365
- }
366
- //#endregion
367
- //#region package.json
368
- var Be = "0.0.22", Ve = "Commands to develop, bundle, and package Incarnative.js apps.";
369
- //#endregion
370
- //#region ../../node_modules/.pnpm/rc9@3.1.0/node_modules/rc9/dist/_chunks/libs/flat.mjs
371
- function He(e) {
372
- return e && e.constructor && typeof e.constructor.isBuffer == "function" && e.constructor.isBuffer(e);
373
- }
374
- function Ue(e) {
375
- return e;
376
- }
377
- function We(e, t) {
378
- t ||= {};
379
- let n = t.delimiter || ".", r = t.maxDepth, i = t.transformKey || Ue, a = {};
380
- function o(e, s, c) {
381
- c ||= 1, Object.keys(e).forEach(function(l) {
382
- let u = e[l], d = t.safe && Array.isArray(u), f = Object.prototype.toString.call(u), p = He(u), m = f === "[object Object]" || f === "[object Array]", h = s ? s + n + i(l) : i(l);
383
- if (!d && !p && m && Object.keys(u).length && (!t.maxDepth || c < r)) return o(u, h, c + 1);
384
- a[h] = u;
385
- });
386
- }
387
- return o(e), a;
388
- }
389
- function Ge(e, t) {
390
- t ||= {};
391
- let n = t.delimiter || ".", r = t.overwrite || !1, i = t.transformKey || Ue, a = {};
392
- if (He(e) || Object.prototype.toString.call(e) !== "[object Object]") return e;
393
- function o(e) {
394
- let n = Number(e);
395
- return isNaN(n) || e.indexOf(".") !== -1 || t.object ? e : n;
396
- }
397
- function s(e, t, r) {
398
- return Object.keys(r).reduce(function(t, i) {
399
- return t[e + n + i] = r[i], t;
400
- }, t);
401
- }
402
- function c(e) {
403
- let t = Object.prototype.toString.call(e), n = t === "[object Array]", r = t === "[object Object]";
404
- if (!e) return !0;
405
- if (n) return !e.length;
406
- if (r) return !Object.keys(e).length;
407
- }
408
- return e = Object.keys(e).reduce(function(n, r) {
409
- let i = Object.prototype.toString.call(e[r]);
410
- return i !== "[object Object]" && i !== "[object Array]" || c(e[r]) ? (n[r] = e[r], n) : s(r, n, We(e[r], t));
411
- }, {}), Object.keys(e).forEach(function(s) {
412
- let c = s.split(n).map(i), l = o(c.shift()), u = o(c[0]), d = a;
413
- for (; u !== void 0;) {
414
- if (l === "__proto__") return;
415
- let e = Object.prototype.toString.call(d[l]), n = e === "[object Object]" || e === "[object Array]";
416
- if (!r && !n && d[l] !== void 0) return;
417
- (r && !n || !r && d[l] == null) && (d[l] = typeof u == "number" && !t.object ? [] : {}), d = d[l], c.length > 0 && (l = o(c.shift()), u = o(c[0]));
418
- }
419
- d[l] = Ge(e[s], t);
420
- }), a;
421
- }
422
- //#endregion
423
- //#region ../../node_modules/.pnpm/destr@2.0.5/node_modules/destr/dist/index.mjs
424
- var Ke = /"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/, qe = /"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/, Je = /^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;
425
- function Ye(e, t) {
426
- if (e === "__proto__" || e === "constructor" && t && typeof t == "object" && "prototype" in t) Xe(e);
427
- else return t;
428
- }
429
- function Xe(e) {
430
- console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`);
431
- }
432
- function Ze(e, t = {}) {
433
- if (typeof e != "string") return e;
434
- if (e[0] === "\"" && e[e.length - 1] === "\"" && e.indexOf("\\") === -1) return e.slice(1, -1);
435
- let n = e.trim();
436
- if (n.length <= 9) switch (n.toLowerCase()) {
437
- case "true": return !0;
438
- case "false": return !1;
439
- case "undefined": return;
440
- case "null": return null;
441
- case "nan": return NaN;
442
- case "infinity": return Infinity;
443
- case "-infinity": return -Infinity;
444
- }
445
- if (!Je.test(e)) {
446
- if (t.strict) throw SyntaxError("[destr] Invalid JSON");
447
- return e;
448
- }
449
- try {
450
- if (Ke.test(e) || qe.test(e)) {
451
- if (t.strict) throw Error("[destr] Possible prototype pollution");
452
- return JSON.parse(e, Ye);
453
- }
454
- return JSON.parse(e);
455
- } catch (n) {
456
- if (t.strict) throw n;
457
- return e;
458
- }
459
- }
460
- //#endregion
461
- //#region ../../node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs
462
- function Qe(e) {
463
- if (typeof e != "object" || !e) return !1;
464
- let t = Object.getPrototypeOf(e);
465
- return t !== null && t !== Object.prototype && Object.getPrototypeOf(t) !== null || Symbol.iterator in e ? !1 : Symbol.toStringTag in e ? Object.prototype.toString.call(e) === "[object Module]" : !0;
466
- }
467
- function $e(e, t, n = ".", r) {
468
- if (!Qe(t)) return $e(e, {}, n, r);
469
- let i = { ...t };
470
- for (let t of Object.keys(e)) {
471
- if (t === "__proto__" || t === "constructor") continue;
472
- let a = e[t];
473
- a != null && (r && r(i, t, a, n) || (i[t] = Array.isArray(a) && Array.isArray(i[t]) ? [...a, ...i[t]] : Qe(a) && Qe(i[t]) ? $e(a, i[t], (n ? `${n}.` : "") + t.toString(), r) : a));
474
- }
475
- return i;
476
- }
477
- function et(e) {
478
- return (...t) => t.reduce((t, n) => $e(t, n, "", e), {});
479
- }
480
- var G = et(), tt = /^\s*([^\s=]+)\s*=\s*(.*)?\s*$/, nt = /\n|\r|\r\n/, rt = {
481
- name: ".conf",
482
- dir: process.cwd(),
483
- flat: !1
484
- };
485
- function it(e) {
486
- return typeof e == "string" && (e = { name: e }), {
487
- ...rt,
488
- ...e
489
- };
490
- }
491
- function at(e, t = {}) {
492
- let n = {}, r = e.split(nt);
493
- for (let e of r) {
494
- let t = e.match(tt);
495
- if (!t) continue;
496
- let r = t[1];
497
- if (!r || r === "__proto__" || r === "constructor") continue;
498
- let i = Ze((t[2] || "").trim());
499
- if (r.endsWith("[]")) {
500
- let e = r.slice(0, Math.max(0, r.length - 2));
501
- n[e] = (n[e] || []).concat(i);
502
- } else n[r] = i;
503
- }
504
- return t.flat ? n : Ge(n, { overwrite: !0 });
505
- }
506
- function ot(e, t) {
507
- return p(e) ? at(h(e, "utf8"), t) : {};
508
- }
509
- function K(e) {
510
- return e = it(e), ot(b(e.dir, e.name), e);
511
- }
512
- function st() {
513
- return process.env.XDG_CONFIG_HOME || b(M(), ".config");
514
- }
515
- function ct(e) {
516
- return e = it(e), e.dir = st(), K(e);
517
- }
518
- //#endregion
519
- //#region ../../node_modules/.pnpm/c12@4.0.0-rc.2_magicast@0.5.4/node_modules/c12/dist/index.mjs
520
- async function lt(e) {
521
- let t = e.env ?? process.env, n = await ut({
522
- cwd: e.cwd,
523
- fileName: e.fileName ?? ".env",
524
- env: t,
525
- interpolate: e.interpolate ?? !0,
526
- expandFileReferences: e.expandFileReferences ?? !1,
527
- parse: e.parse
528
- }), r = vt(t);
529
- for (let e in n) e.startsWith("_") || (t[e] === void 0 || r.has(e)) && (t[e] = n[e]);
530
- return n;
531
- }
532
- async function ut(e) {
533
- let n = Object.create(null), r = t(e.cwd || "."), i = e.fileName || ".env", a = typeof i == "string" ? [i] : i, o = vt(e.env || {});
534
- Object.assign(n, e.env);
535
- for (let i of a) {
536
- let a = t(r, i);
537
- if (!_(a, { throwIfNoEntry: !1 })?.isFile()) continue;
538
- let s = await ft(a, e.parse);
539
- for (let e in s) e in n && !o.has(e) || (n[e] = s[e], o.add(e));
540
- }
541
- if (e.expandFileReferences) {
542
- for (let e in n) if (e.endsWith("_FILE")) {
543
- let t = e.slice(0, -5);
544
- if (n[t] === void 0) {
545
- let r = n[e];
546
- r && _(r, { throwIfNoEntry: !1 })?.isFile() && (n[t] = h(r, "utf8").trim(), o.add(t));
547
- }
548
- }
549
- }
550
- return e.interpolate && pt(n), n;
551
- }
552
- var dt = x.parseEnv;
553
- async function ft(e, t) {
554
- let n = h(e, "utf8");
555
- if (t) return t(n);
556
- if (!dt) try {
557
- let e = await import("./chunks/__vite-optional-peer-dep_dotenv_c12-CxKvRg9-.js");
558
- dt = (t) => e.parse(t);
559
- } catch {
560
- throw Error("Failed to parse .env file: `node:util.parseEnv` is not available and `dotenv` package is not installed. Please upgrade your runtime, install `dotenv` as a dependency or provide a custom `parse` option.");
561
- }
562
- return dt(n);
563
- }
564
- function pt(e, t = {}, n = (e) => e) {
565
- function r(n) {
566
- return t[n] === void 0 ? e[n] : t[n];
567
- }
568
- function i(e, t = []) {
569
- if (typeof e != "string") return e;
570
- let a = "", o = 0;
571
- for (; o < e.length;) {
572
- let n = e[o];
573
- if (n === "\\" && e[o + 1] === "$") {
574
- a += "$", o += 2;
575
- continue;
576
- }
577
- let s = n === "$" ? gt(e, o) : void 0;
578
- if (!s) {
579
- a += n, o++;
580
- continue;
581
- }
582
- if (t.includes(s.key)) {
583
- if (s.defaultValue !== void 0) {
584
- a += i(s.defaultValue, t), o = s.end;
585
- continue;
586
- }
587
- return console.warn(`Please avoid recursive environment variables ( loop: ${t.join(" > ")} > ${s.key} )`), "";
588
- }
589
- let c = i(r(s.key), [...t, s.key]);
590
- s.defaultValue !== void 0 && (c === void 0 || s.operator === ":-" && c === "") && (c = i(s.defaultValue, t)), a += c === void 0 ? e.slice(o, s.end) : c, o = s.end;
591
- }
592
- return n(a);
593
- }
594
- for (let t in e) e[t] = i(r(t));
595
- }
596
- var mt = /\w+/y, ht = /[\w:]+/y;
597
- function gt(e, t) {
598
- let n = t + 1, r = e[n] === "{";
599
- r && n++;
600
- let i = r ? ht : mt;
601
- i.lastIndex = n;
602
- let a = i.exec(e);
603
- if (!a) return;
604
- let o = a[0];
605
- if (n = i.lastIndex, !r) return {
606
- key: o,
607
- end: n
608
- };
609
- if (e[n] === "}") return {
610
- key: o,
611
- end: n + 1
612
- };
613
- if (e[n] === "-") {
614
- let t = "-";
615
- o.endsWith(":") && (o = o.slice(0, -1), t = ":-");
616
- let r = o ? _t(e, n + 1) : void 0;
617
- return r ? {
618
- key: o,
619
- operator: t,
620
- defaultValue: r.value,
621
- end: r.end
622
- } : void 0;
623
- }
624
- return {
625
- key: o,
626
- end: n
627
- };
628
- }
629
- function _t(e, t) {
630
- let n = "", r = 1;
631
- for (let i = t; i < e.length; i++) {
632
- let t = e[i];
633
- if (t === "\\" && i + 1 < e.length) {
634
- let r = e[i + 1];
635
- n += r === "{" || r === "}" ? r : t + r, i++;
636
- } else if (t === "$" && e[i + 1] === "{") r++, n += "${", i++;
637
- else {
638
- if (t === "{" && r++, t === "}" && (r--, r === 0)) return {
639
- value: n,
640
- end: i + 1
641
- };
642
- n += t;
643
- }
644
- }
645
- }
646
- function vt(e) {
647
- let t = globalThis.__c12_dotenv_vars__ ||= /* @__PURE__ */ new Map();
648
- return t.has(e) || t.set(e, /* @__PURE__ */ new Set()), t.get(e);
649
- }
650
- var yt = (e) => e?.replace(/\\/g, "/"), bt = 0, xt = {
651
- ".json": () => JSON.parse,
652
- ".yaml": () => import("./chunks/yaml-U_oPOIGK.js").then((e) => e.parseYAML),
653
- ".yml": () => import("./chunks/yaml-U_oPOIGK.js").then((e) => e.parseYAML),
654
- ".jsonc": () => import("./chunks/jsonc-BDHXk_1o.js").then((e) => e.n).then((e) => (t) => e.parseJSONC(t, { allowTrailingComma: !0 })),
655
- ".json5": () => import("./chunks/json5-RapVXICN.js").then((e) => e.parseJSON5),
656
- ".toml": () => import("./chunks/toml-CgS7wGvD.js").then((e) => e.parseTOML)
657
- }, St = Object.freeze([
658
- ".js",
659
- ".ts",
660
- ".mjs",
661
- ".cjs",
662
- ".mts",
663
- ".cts",
664
- ".json",
665
- ".jsonc",
666
- ".json5",
667
- ".yaml",
668
- ".yml",
669
- ".toml"
670
- ]);
671
- async function Ct(e) {
672
- e.cwd = t(process.cwd(), e.cwd || "."), e.name = e.name || "config", e.envName = e.envName ?? process.env.NODE_ENV, e.configFile = e.configFile ?? (e.name === "config" ? "config" : `${e.name}.config`), e.rcFile = e.rcFile ?? `.${e.name}rc`, e.extend !== !1 && (e.extend = {
673
- extendKey: "extends",
674
- ...e.extend
675
- });
676
- let n = e.merger || G, r = {
677
- config: {},
678
- cwd: e.cwd,
679
- configFile: t(e.cwd, e.configFile),
680
- layers: [],
681
- _configFile: void 0
682
- }, i = {
683
- overrides: e.overrides,
684
- main: void 0,
685
- rc: void 0,
686
- packageJson: void 0,
687
- defaultConfig: e.defaultConfig
688
- };
689
- e.dotenv && await lt({
690
- cwd: e.cwd,
691
- ...e.dotenv === !0 ? {} : e.dotenv
692
- });
693
- let a = await Dt(".", e);
694
- if (a.configFile && (i.main = a.config, r.configFile = a.configFile, r._configFile = a._configFile), a.meta && (r.meta = a.meta), e.rcFile) {
695
- let t = [];
696
- if (t.push(K({
697
- name: e.rcFile,
698
- dir: e.cwd
699
- })), e.globalRc) {
700
- let { findWorkspaceDir: n } = await import("./chunks/dist-DrnNGO2a.js"), r = await n(e.cwd).catch(() => {});
701
- r && t.push(K({
702
- name: e.rcFile,
703
- dir: r
704
- })), t.push(ct({ name: e.rcFile })), t.push(K({
705
- name: e.rcFile,
706
- dir: M()
707
- }));
708
- }
709
- i.rc = n({}, ...t);
710
- }
711
- if (e.packageJson) {
712
- let t = (Array.isArray(e.packageJson) ? e.packageJson : [typeof e.packageJson == "string" ? e.packageJson : e.name]).filter((e) => e && typeof e == "string"), { readPackageJSON: r } = await import("./chunks/dist-DrnNGO2a.js"), a = await r(e.cwd).catch(() => {});
713
- i.packageJson = n({}, ...t.map((e) => a?.[e]));
714
- }
715
- let o = {};
716
- for (let e in i) {
717
- let t = i[e];
718
- o[e] = await (typeof t == "function" ? t({
719
- configs: o,
720
- rawConfigs: i
721
- }) : t);
722
- }
723
- if (Array.isArray(o.main) ? r.config = o.main : (r.config = n(o.overrides, o.main, o.rc, o.packageJson, o.defaultConfig), e.extend && (await wt(r.config, e), r.layers = r.config._layers, delete r.config._layers, r.config = n(r.config, ...r.layers.map((e) => e.config)))), r.layers = [...[
724
- o.overrides && {
725
- config: o.overrides,
726
- configFile: void 0,
727
- cwd: void 0
728
- },
729
- {
730
- config: o.main,
731
- configFile: e.configFile,
732
- cwd: e.cwd
733
- },
734
- o.rc && {
735
- config: o.rc,
736
- configFile: e.rcFile
737
- },
738
- o.packageJson && {
739
- config: o.packageJson,
740
- configFile: "package.json"
741
- }
742
- ].filter((e) => e && e.config), ...r.layers], e.defaults && (r.config = n(r.config, e.defaults)), e.omit$Keys) for (let e in r.config) e.startsWith("$") && delete r.config[e];
743
- if (e.configFileRequired && !r._configFile) throw Error(`Required config (${r.configFile}) cannot be resolved.`);
744
- return e.schema != null && (r.config = await Ot(r.config, e.schema)), r;
745
- }
746
- async function wt(e, t) {
747
- if (e._layers = e._layers || [], !t.extend) return;
748
- let n = t.extend.extendKey;
749
- typeof n == "string" && (n = [n]);
750
- let r = [];
751
- for (let t of n) r.push(...(Array.isArray(e[t]) ? e[t] : [e[t]]).filter(Boolean)), delete e[t];
752
- for (let n of r) {
753
- let r = n, i = {};
754
- if (n.source && (i = n.options || {}, n = n.source), Array.isArray(n) && (i = n[1] || {}, n = n[0]), typeof n != "string") {
755
- console.warn(`Cannot extend config from \`${JSON.stringify(r)}\` in ${t.cwd}`);
756
- continue;
757
- }
758
- let a = await Dt(n, t, i);
759
- a.config ? (await wt(a.config, {
760
- ...t,
761
- cwd: a.cwd
762
- }), e._layers.push(a), a.config._layers && (e._layers.push(...a.config._layers), delete a.config._layers)) : console.warn(`Cannot extend config from \`${n}\` in ${t.cwd}`);
763
- }
764
- }
765
- var Tt = [
766
- "gh:",
767
- "github:",
768
- "gitlab:",
769
- "bitbucket:",
770
- "https://",
771
- "http://"
772
- ], Et = /^(@[\da-z~-][\d._a-z~-]*\/)?[\da-z~-][\d._a-z~-]*($|\/.*)/;
773
- async function Dt(e, o, s = {}) {
774
- if (o.resolve) {
775
- let t = await o.resolve(e, o);
776
- if (t) return t;
777
- }
778
- let c = o.merger || G, l = Object.keys(s.giget?.providers || {}).map((e) => `${e}:`), u = l.length > 0 ? [.../* @__PURE__ */ new Set([...l, ...Tt])] : Tt;
779
- if (o.giget !== !1 && u.some((t) => e.startsWith(t))) {
780
- let { downloadTemplate: n } = await import("./chunks/__vite-optional-peer-dep_giget_c12-BYcrHYBM.js").catch((t) => {
781
- throw Error(`Extending config from \`${e}\` requires \`giget\` peer dependency to be installed.\n\nInstall it with: \`npx nypm i giget\``, { cause: t });
782
- }), { digest: c } = await import("./chunks/ohash-Cc4pJh84.js").then((e) => e.dist_exports), l = e.replace(/\W+/g, "_").split("_").splice(0, 3).join("_") + "_" + c(e).slice(0, 10).replace(/[-_]/g, ""), u, d = t(o.cwd, "node_modules"), f = a(o.cwd);
783
- u = r(f) === ".c12" ? i(f, l) : p(d) ? i(d, ".c12", l) : process.env.XDG_CACHE_HOME ? t(process.env.XDG_CACHE_HOME, "c12", l) : t(M(), ".cache/c12", l);
784
- let m = s.install ? G(s.install === !0 ? {} : s.install, { ignoreWorkspace: !0 }) : !1;
785
- p(u) && !m && await A(u, { recursive: !0 }), e = (await n(e, {
786
- dir: u,
787
- install: m,
788
- force: !!m,
789
- auth: s.auth,
790
- ...o.giget,
791
- ...s.giget
792
- })).dir;
793
- }
794
- Et.test(e) && (e = q(e, o) || e);
795
- let d = n(e), f = kt(t(o.cwd, e)) ?? (!d || d === r(e)), m = t(o.cwd, f ? e : a(e));
796
- f && (e = o.configFile);
797
- let h = {
798
- config: void 0,
799
- configFile: void 0,
800
- cwd: m,
801
- source: e,
802
- sourceOptions: s
803
- };
804
- if (h.configFile = q(t(m, e), o) || q(t(m, ".config", e.replace(/\.config$/, "")), o) || q(t(m, ".config", e), o) || e, !p(h.configFile)) return h;
805
- h._configFile = h.configFile;
806
- let g = n(h.configFile) || "";
807
- if (g in xt) h.config = (await xt[g]())(await O(h.configFile, "utf8"));
808
- else {
809
- let e = o.resolveModule || ((e) => e.default || e);
810
- if (o.import) h.config = e(await o.import(h.configFile));
811
- else {
812
- let t = te(h.configFile);
813
- t.search = `_${++bt}`, h.config = await import(t.href).then(e, async (t) => {
814
- let { createJiti: n } = await import("./chunks/__vite-optional-peer-dep_jiti_c12-DZVJNj6v.js").catch(() => {
815
- throw Error(`Failed to load config file \`${h.configFile}\`: ${t?.message}. Hint install \`jiti\` for compatibility.`, { cause: t });
816
- }), r = n(i(o.cwd || ".", o.configFile || "/"), {
817
- interopDefault: !0,
818
- moduleCache: !1,
819
- extensions: [...St],
820
- ...o.jitiOptions
821
- });
822
- return o.import = (e) => r.import(e), e(await o.import(h.configFile));
823
- });
824
- }
825
- }
826
- typeof h.config == "function" && (h.config = await h.config(o.context)), h.config && typeof h.config == "object" && !Array.isArray(h.config) && !Object.isExtensible(h.config) && (h.config = { ...h.config });
827
- let _ = (Array.isArray(o.envName) ? o.envName : [o.envName]).filter(Boolean).reverse().flatMap((e) => [h.config.$env?.[e], h.config["$" + e]]).filter((e) => e && Object.keys(e).length > 0);
828
- return _.length > 0 && (h.config = (o.envMerger || c)({}, ..._, h.config)), h.meta = G(h.sourceOptions.meta, h.config.$meta), delete h.config.$meta, h.sourceOptions.overrides && (h.config = c(h.sourceOptions.overrides, h.config)), h.configFile = yt(h.configFile), h.source = yt(h.source), h;
829
- }
830
- async function Ot(e, t) {
831
- if (typeof t?.["~standard"]?.validate != "function") throw TypeError("Invalid `schema` option: expected a Standard Schema (https://standardschema.dev).");
832
- let n = await t["~standard"].validate(e);
833
- if (n.issues) {
834
- let e = n.issues.map((e) => {
835
- let t = e.path?.map((e) => String(typeof e == "object" ? e.key : e)).join(".");
836
- return ` - ${t ? `${t}: ` : ""}${e.message}`;
837
- });
838
- throw Error(`Config validation failed (${t["~standard"].vendor}):\n${e.join("\n")}`, { cause: n.issues });
839
- }
840
- return n.value;
841
- }
842
- function q(e, t) {
843
- let n = s(e, {
844
- try: !0,
845
- from: te(i(t.cwd || ".", t.configFile || "/")),
846
- suffixes: ["", "/index"],
847
- extensions: St,
848
- cache: !1
849
- });
850
- return n ? o(n) : void 0;
851
- }
852
- function kt(e) {
853
- try {
854
- return _(e).isDirectory();
855
- } catch {
856
- return null;
857
- }
858
- }
859
- //#endregion
860
- //#region src/error.mts
861
- var J = class extends Error {
862
- code;
863
- path;
864
- name = "IncaError";
865
- constructor(e, t, n) {
866
- super(t), this.code = e, this.path = n;
867
- }
868
- }, At = {
869
- name: "inca",
870
- packageJson: "inca",
871
- rcFile: !1,
872
- globalRc: !1,
873
- giget: !1,
874
- extend: !1
875
- }, jt = /[/\\:*?"<>|\0]/;
876
- function Mt(e) {
877
- return e === e.trim() && e !== "" && e !== "." && e !== ".." && !jt.test(e);
878
- }
879
- function Nt(e) {
880
- if (!(typeof e == "string" && Mt(e))) throw new J("ERR_INCA_PRODUCT_NAME_INVALID", `${JSON.stringify(e)} can't name a directory. set a "productName" in inca.config.ts with no leading or trailing space, and none of \`/\\:*?"<>|\``);
881
- }
882
- var Pt = process.platform === "darwin" || process.platform === "win32";
883
- function Ft(e, t) {
884
- let n = (e) => Pt ? e.toLowerCase() : e, r = y.relative(n(e), n(t));
885
- return r === "" || r !== ".." && !r.startsWith(`..${y.sep}`) && !y.isAbsolute(r);
886
- }
887
- function It(e) {
888
- let t = y.resolve(e), n = t;
889
- for (let e; !m(n, { throwIfNoEntry: !1 }) && (e = y.dirname(n)) !== n;) n = e;
890
- return y.join(g.native(n), y.relative(n, t));
891
- }
892
- function Y(e, t, n) {
893
- let r = y.resolve(e, t), i;
894
- try {
895
- let t = It(r);
896
- i = [
897
- e,
898
- y.join(e, "src"),
899
- y.join(e, "node_modules"),
900
- ...n ? [n] : []
901
- ].some((e) => Ft(t, It(e)));
902
- } catch {
903
- i = !0;
904
- }
905
- if (i) throw new J("ERR_INCA_OUT_DIR_INVALID", `"outDir" resolves to ${r}, which holds the app's own files. Set it to a directory the build can own, such as "dist"`);
906
- }
907
- function Lt(e, t, n) {
908
- let r = y.resolve(e, t ?? d.outDir);
909
- return Y(e, r, n), r;
910
- }
911
- function Rt(e, t) {
912
- try {
913
- return JSON.parse(e);
914
- } catch (e) {
915
- throw new J("ERR_INCA_PACKAGE_JSON_INVALID", `${t} holds malformed JSON: ${e.message}`, t);
916
- }
917
- }
918
- async function zt(e) {
919
- let { config: t, layers: n } = await Ct({
920
- cwd: e,
921
- ...At
922
- }), r = n?.find((e) => e.configFile === "package.json");
923
- return {
924
- config: t,
925
- usedPackageJsonKey: Object.keys(r?.config ?? {}).length > 0
926
- };
927
- }
928
- async function Bt(e) {
929
- let { config: t } = await zt(e), n = t.entry ? y.resolve(e, t.entry) : void 0;
930
- return {
931
- entry: n,
932
- outDir: Lt(e, t.outDir, n),
933
- sourcemap: t.sourcemap ?? d.sourcemap
934
- };
935
- }
936
- async function Vt(e) {
937
- let t = y.join(e, "package.json"), n;
938
- try {
939
- n = await O(t, "utf8");
940
- } catch {
941
- throw new J("ERR_INCA_PACKAGE_JSON_NOT_FOUND", `no package.json found at ${t}`);
942
- }
943
- let r = Rt(n, t), { config: i, usedPackageJsonKey: a } = await zt(e), o = i.productName ?? u(r.name);
944
- if (!o) throw new J("ERR_INCA_PRODUCT_NAME_MISSING", `${t} needs a "name", or "productName" in inca.config.ts`);
945
- Nt(o);
946
- let s = i.version ?? r.version ?? d.version, c = i.identifier ?? l(o), f;
947
- if (i.icon && (f = y.resolve(e, i.icon), !p(f))) throw new J("ERR_INCA_ICON_NOT_FOUND", `"icon" points to ${f}, which doesn't exist`, f);
948
- let m = i.entry ? y.resolve(e, i.entry) : void 0, h = Lt(e, i.outDir, m);
949
- return {
950
- productName: o,
951
- identifier: c,
952
- identifierIsDefault: i.identifier === void 0,
953
- version: s,
954
- icon: f,
955
- window: i.window,
956
- entry: m,
957
- outDir: h,
958
- sourcemap: i.sourcemap ?? d.sourcemap,
959
- usedPackageJsonKey: a
960
- };
961
- }
962
- function Ht(e) {
963
- return {
964
- name: e.productName,
965
- identifier: e.identifier,
966
- window: e.window
967
- };
968
- }
969
- async function Ut(e) {
970
- let { config: t } = await zt(e), n = y.join(e, "package.json"), r = await O(n, "utf8").catch(() => void 0), i = r === void 0 ? {} : Rt(r, n), a = t.productName ?? u(i.name);
971
- a && Nt(a);
972
- let o = {
973
- name: a,
974
- identifier: t.identifier ?? (a ? l(a) : void 0),
975
- window: t.window
976
- };
977
- return Object.values(o).some((e) => e !== void 0) ? o : void 0;
978
- }
979
- //#endregion
980
- //#region src/dev-client/hostBin.mts
981
- var Wt = "INCA_HOST_BIN";
982
- function Gt() {
983
- let e = process.platform === "darwin" || process.platform === "linux" ? process.platform : void 0, t = process.arch === "arm64" || process.arch === "x64" ? process.arch : void 0;
984
- return e && t ? `@incajs/host-${e}-${t}` : void 0;
985
- }
986
- function Kt() {
987
- let e = Gt();
988
- if (e) try {
989
- return ne(import.meta.url).resolve(`${e}/bin/inca-host`);
990
- } catch {
991
- return;
992
- }
993
- }
994
- function qt() {
995
- let e = process.env[Wt];
996
- if (e) return e;
997
- let t = Kt();
998
- if (t) return t;
999
- let n = Gt();
1000
- throw new J("ERR_INCA_HOST_BIN_UNRESOLVED", `no host binary found. ${n ? `no ${n} package is installed for it` : `this platform (${process.platform}/${process.arch}) has no published package`}, and ${Wt} isn't set to one`);
1001
- }
1002
- function Jt(e) {
1003
- if (!_(e, { throwIfNoEntry: !1 })?.isFile()) throw new J("ERR_INCA_HOST_BIN_NOT_FOUND", `no host binary at ${e}. check that it was built`);
1004
- }
1005
- //#endregion
1006
- //#region src/dev-client/hostError.mts
1007
- var Yt = class extends Error {
1008
- code;
1009
- hostStack;
1010
- constructor(e, t, n = null) {
1011
- super(e), this.code = t, this.hostStack = n, this.name = "HostError";
1012
- }
1013
- };
1014
- function Xt(e) {
1015
- return typeof e == "object" && !!e && e.jsonrpc === "2.0";
1016
- }
1017
- //#endregion
1018
- //#region src/dev-client/hostClient.mts
1019
- var Zt = (e) => {
1020
- process.stderr.write(e.endsWith("\n") ? e : `${e}\n`);
1021
- }, Qt = -32e3, $t = class {
1022
- #e;
1023
- #t;
1024
- #n = 1;
1025
- #r = /* @__PURE__ */ new Map();
1026
- #i = !1;
1027
- constructor(e) {
1028
- this.#e = e;
1029
- }
1030
- async start() {
1031
- let e = this.#e.hostBin ?? qt();
1032
- Jt(e);
1033
- let t = re(e, ["--dev", this.#e.entryFile], {
1034
- stdio: [
1035
- "pipe",
1036
- "pipe",
1037
- "pipe"
1038
- ],
1039
- env: this.#e.env
1040
- });
1041
- this.#t = t;
1042
- let n = this.#e.onStderr ?? Zt;
1043
- t.stderr.setEncoding("utf8"), t.stderr.on("data", (e) => n(e)), t.stdin.on("error", (e) => {
1044
- e.code !== "EPIPE" && n(`host stdin: ${e.message}\n`);
1045
- }), P.createInterface({ input: t.stdout }).on("line", (e) => {
1046
- this.#a(e, n);
1047
- }), t.on("exit", (e, t) => {
1048
- let n = /* @__PURE__ */ Error(`the host exited (code=${String(e)}, signal=${String(t)}) before answering`);
1049
- for (let { reject: e } of this.#r.values()) e(n);
1050
- this.#r.clear(), this.#i || this.#e.onExit?.(e, t);
1051
- });
1052
- let r = !1;
1053
- t.on("error", (e) => {
1054
- r && n(`host: ${e.message}\n`);
1055
- }), await N(t, "spawn"), r = !0;
1056
- }
1057
- #a(e, t) {
1058
- let n;
1059
- try {
1060
- n = JSON.parse(e);
1061
- } catch {
1062
- t(`[stray stdout] ${e}`);
1063
- return;
1064
- }
1065
- if (!Xt(n)) {
1066
- t(`[stray stdout] ${e}`);
1067
- return;
1068
- }
1069
- if ("method" in n) {
1070
- this.#o(n.method, n.params, t);
1071
- return;
1072
- }
1073
- if (n.id === null) {
1074
- if (!("error" in n)) return;
1075
- let { code: e, message: r, data: i } = n.error;
1076
- e === Qt ? this.#e.onAppError?.({
1077
- message: r,
1078
- stack: i?.stack ?? null
1079
- }) : t(`[host error ${String(e)}] ${r}\n`);
1080
- return;
1081
- }
1082
- let r = this.#r.get(n.id);
1083
- r && (this.#r.delete(n.id), "error" in n ? r.reject(new Yt(n.error.message, n.error.code, n.error.data?.stack ?? null)) : r.resolve(n.result));
1084
- }
1085
- #o(e, t, n) {
1086
- switch (e) {
1087
- case "ready": {
1088
- let { protocol: e } = t;
1089
- if (e !== 0) {
1090
- n(`the host speaks protocol ${String(e)}, this package was built for 0. stopping it`), this.#t && this.#s(this.#t);
1091
- return;
1092
- }
1093
- this.#e.onReady?.();
1094
- return;
1095
- }
1096
- case "appError":
1097
- this.#e.onAppError?.(t);
1098
- return;
1099
- default: {
1100
- let r = this.#e.integrations?.[e];
1101
- r ? r(t) : n(`[unhandled notification] ${e}`);
1102
- }
1103
- }
1104
- }
1105
- async #s(e) {
1106
- let t = N(e, "exit");
1107
- e.kill(), await t;
1108
- }
1109
- async call(e, t, n) {
1110
- let r = this.#t;
1111
- if (!r) throw Error("HostClient.start() has not been called");
1112
- let i = this.#n++, a = JSON.stringify({
1113
- jsonrpc: "2.0",
1114
- id: i,
1115
- method: e,
1116
- params: t
1117
- });
1118
- return new Promise((t, o) => {
1119
- let s = n === void 0 ? void 0 : setTimeout(() => {
1120
- this.#r.delete(i), o(/* @__PURE__ */ Error(`${e} timed out after ${String(n)}ms`));
1121
- }, n);
1122
- this.#r.set(i, {
1123
- resolve: (e) => {
1124
- clearTimeout(s), t(e);
1125
- },
1126
- reject: (e) => {
1127
- clearTimeout(s), o(e);
1128
- }
1129
- }), r.stdin.write(`${a}\n`, (e) => {
1130
- e && (clearTimeout(s), this.#r.delete(i), o(e));
1131
- });
1132
- });
1133
- }
1134
- notify(e, t) {
1135
- let n = this.#t;
1136
- if (!n) throw Error("HostClient.start() has not been called");
1137
- n.stdin.write(`${JSON.stringify({
1138
- jsonrpc: "2.0",
1139
- method: e,
1140
- params: t
1141
- })}\n`);
1142
- }
1143
- async stop(e = 2e3) {
1144
- let t = this.#t;
1145
- if (!t || t.exitCode !== null || t.signalCode !== null) return;
1146
- this.#i = !0;
1147
- let n = N(t, "exit");
1148
- this.call("shutdown").catch(() => {}), await Promise.race([n.then(() => "exited"), ae(e, void 0, { ref: !1 }).then(() => "timeout")]) === "timeout" && (t.kill(), await n);
1149
- }
1150
- }, en = "[inca]", tn = new Intl.DateTimeFormat(void 0, {
1151
- hour: "numeric",
1152
- minute: "numeric",
1153
- second: "numeric"
1154
- }), X = { timestamp: !0 };
1155
- function nn(e, t, n) {
1156
- let r = C(["bold", n], en, { stream: e });
1157
- return t.timestamp ? `${C("dim", tn.format(/* @__PURE__ */ new Date()), { stream: e })} ${r}` : r;
1158
- }
1159
- function Z(e, t, n = {}) {
1160
- e.write(`${nn(e, n, "cyan")} ${t}\n`);
1161
- }
1162
- function rn(e, t, n = {}) {
1163
- e.write(`${nn(e, n, "yellow")} ${t}\n`);
1164
- }
1165
- function an(e) {
1166
- let t = e.code;
1167
- return typeof t == "string" ? t : null;
1168
- }
1169
- function on(e) {
1170
- return /\bERR_INCA_[A-Z0-9_]+/.exec(e)?.[0] ?? null;
1171
- }
1172
- function sn(e) {
1173
- let t = e.stack;
1174
- if (!t) return null;
1175
- for (let n of [`${e.name}: ${e.message}`, e.message]) if (t.startsWith(n)) return t.slice(n.length).replace(/^\r?\n/, "") || null;
1176
- return t;
1177
- }
1178
- function cn(e) {
1179
- let t = /^(?:\w*Error: )?(ERR_INCA_[A-Z0-9_]+): /.exec(e);
1180
- return t ? {
1181
- message: e.slice(t[0].length),
1182
- stack: null,
1183
- code: t[1]
1184
- } : {
1185
- message: e.replace(/^\w*Error: /, ""),
1186
- stack: null,
1187
- code: null
1188
- };
1189
- }
1190
- function Q(e) {
1191
- return e instanceof Yt ? {
1192
- message: e.message,
1193
- stack: e.hostStack,
1194
- code: an(e)
1195
- } : e instanceof Error ? {
1196
- message: e.message,
1197
- stack: sn(e),
1198
- code: an(e) ?? on(e.message)
1199
- } : {
1200
- message: String(e),
1201
- stack: null,
1202
- code: null
1203
- };
1204
- }
1205
- function ln(e, t) {
1206
- return e.split("\n").map((e) => /^\s*at\b/.test(e) ? C("dim", e, { stream: t }) : e).join("\n");
1207
- }
1208
- function $(e, t, n, r = {}) {
1209
- n.stack && e.write(`${ln(n.stack, e)}\n`);
1210
- let i = n.code ? ` (${C("bold", n.code, { stream: e })})` : "";
1211
- e.write(`${nn(e, r, "red")} ${t}${i}: ${n.message}\n`);
1212
- }
1213
- //#endregion
1214
- //#region src/adapterCore.mts
1215
- var un = /* @__PURE__ */ e({
1216
- IncaError: () => J,
1217
- bundlerFault: () => cn
1218
- });
1219
- //#endregion
1220
- //#region src/vite/captureOutput.mts
1221
- function dn(e, t, n) {
1222
- return {
1223
- outDir: e,
1224
- entryFile: y.join(e, t.entryFile),
1225
- files: t.files,
1226
- changed: n
1227
- };
1228
- }
1229
- function fn(e, t) {
1230
- return {
1231
- name: "inca:capture-output",
1232
- writeBundle(n, r) {
1233
- let i = Object.keys(r), a = Object.values(r).find((e) => e.type === "chunk" && e.isEntry);
1234
- if (!a) throw new e.IncaError("ERR_INCA_BUILD_NO_ENTRY_CHUNK", "build produced no entry chunk");
1235
- t({
1236
- entryFile: a.fileName,
1237
- files: i
1238
- });
1239
- }
1240
- };
1241
- }
1242
- //#endregion
1243
- //#region src/vite/emitConfig.mts
1244
- var pn = "inca.json";
1245
- function mn(e) {
1246
- let t = JSON.stringify(e, void 0, 2);
1247
- if (t !== void 0 && t !== "{}") return `${t}\n`;
1248
- }
1249
- function hn(e) {
1250
- let t = mn(e);
1251
- return {
1252
- name: "inca:emit-config",
1253
- generateBundle() {
1254
- t && this.emitFile({
1255
- type: "asset",
1256
- fileName: pn,
1257
- source: t
1258
- });
1259
- }
1260
- };
1261
- }
1262
- //#endregion
1263
- //#region src/vite/logger.mts
1264
- var gn = "Build failed with ", _n = "Pre-transform error";
1265
- function vn(e, t, n = !1) {
1266
- let r = /* @__PURE__ */ new WeakSet(), i = /* @__PURE__ */ new Set(), a = {
1267
- hasWarned: !1,
1268
- info(t) {
1269
- n || e.write(`${t}\n`);
1270
- },
1271
- warn(e) {
1272
- a.hasWarned = !0, t.write(`${e}\n`);
1273
- },
1274
- warnOnce(e) {
1275
- i.has(e) || (i.add(e), a.warn(e));
1276
- },
1277
- error(e, n) {
1278
- a.hasWarned = !0, n?.error && r.add(n.error), !e.includes(gn) && (e.includes(_n) || t.write(`${e.replace(/\n\s+at .*/g, "")}\n`));
1279
- },
1280
- clearScreen() {},
1281
- hasErrorLogged(e) {
1282
- return r.has(e);
1283
- }
1284
- };
1285
- return a;
1286
- }
1287
- //#endregion
1288
- //#region src/vite/unsupported.mts
1289
- var yn = /\.(?:css|pcss|postcss|sass|scss|less|styl|stylus)(?:\?|$)/, bn = [{
1290
- code: "ERR_INCA_UNSUPPORTED_STYLE",
1291
- name: "a <style> block",
1292
- matches: (e) => e.includes("vue&type=style"),
1293
- hint: "the renderer applies no stylesheet. use a :style binding instead"
1294
- }, {
1295
- code: "ERR_INCA_UNSUPPORTED_STYLESHEET",
1296
- name: "a stylesheet import",
1297
- matches: (e) => yn.test(e),
1298
- hint: "the renderer applies no stylesheet. use a :style binding instead"
1299
- }];
1300
- function xn(e, t = bn) {
1301
- return {
1302
- name: "inca:reject-unsupported",
1303
- enforce: "pre",
1304
- transform(n, r) {
1305
- let i = t.find((e) => e.matches(r));
1306
- if (!i) return null;
1307
- let a = y.relative(process.cwd(), r.split("?")[0] ?? r);
1308
- throw new e.IncaError(i.code, `${i.code}: ${a} uses ${i.name}, unsupported for now: ${i.hint}`);
1309
- }
1310
- };
1311
- }
1312
- //#endregion
1313
- //#region src/vite/config.mts
1314
- var Sn = "bundle.js";
1315
- function Cn({ core: e, runtimeModuleName: t, entry: n, root: r = y.dirname(n), envDir: i, publicDir: a, outDir: o, mode: s, sourcemap: c = !1, watch: l, onOutput: u, stdout: d, stderr: f, quiet: p, runtimeConfig: m }) {
1316
- let h = s === "development" || c;
1317
- return {
1318
- configFile: !1,
1319
- root: r,
1320
- envDir: i,
1321
- publicDir: a,
1322
- mode: s,
1323
- clearScreen: !1,
1324
- logLevel: p ? "silent" : "info",
1325
- customLogger: vn(d, f),
1326
- define: { "process.env.NODE_ENV": JSON.stringify(s) },
1327
- plugins: [
1328
- ue({ template: { compilerOptions: {
1329
- runtimeModuleName: t,
1330
- hoistStatic: !1
1331
- } } }),
1332
- xn(e),
1333
- hn(m),
1334
- fn(e, u)
1335
- ],
1336
- build: {
1337
- lib: {
1338
- entry: n,
1339
- formats: ["es"],
1340
- fileName: () => Sn
1341
- },
1342
- outDir: o,
1343
- emptyOutDir: s === "production",
1344
- minify: s === "production",
1345
- sourcemap: h,
1346
- watch: l ? { buildDelay: 30 } : void 0,
1347
- rolldownOptions: { output: {
1348
- chunkFileNames: "chunks/[name]-[hash].js",
1349
- assetFileNames: "assets/[name]-[hash][extname]",
1350
- sourcemapExcludeSources: h
1351
- } }
1352
- }
1353
- };
1354
- }
1355
- //#endregion
1356
- //#region src/vite/build.mts
1357
- async function wn(e, t, { entry: n, root: r, envDir: i, publicDir: a, outDir: o, sourcemap: s, runtimeConfig: c, stdout: l = process.stdout, stderr: u = process.stderr, quiet: d = !1 }) {
1358
- let f;
1359
- if (await se(Cn({
1360
- core: e,
1361
- runtimeModuleName: t,
1362
- entry: n,
1363
- root: r,
1364
- envDir: i,
1365
- publicDir: a,
1366
- outDir: o,
1367
- runtimeConfig: c,
1368
- mode: "production",
1369
- sourcemap: s,
1370
- watch: !1,
1371
- stdout: l,
1372
- stderr: u,
1373
- quiet: d,
1374
- onOutput: (e) => {
1375
- f = dn(o, e);
1376
- }
1377
- })), !f) throw new e.IncaError("ERR_INCA_BUILD_NO_OUTPUT", "build produced no output");
1378
- return f;
1379
- }
1380
- //#endregion
1381
- //#region ../../node_modules/.pnpm/ts-dedent@2.3.0/node_modules/ts-dedent/esm/index.js
1382
- function Tn(e) {
1383
- var t = [...arguments].slice(1), n = Array.from(typeof e == "string" ? [e] : e);
1384
- n[n.length - 1] = n[n.length - 1].replace(/\r?\n([\t ]*)$/, "");
1385
- var r = n.reduce(function(e, t) {
1386
- var n = t.match(/\n([\t ]+|(?!\s).)/g);
1387
- return n ? e.concat(n.map(function(e) {
1388
- return e.match(/[\t ]/g)?.length ?? 0;
1389
- })) : e;
1390
- }, []);
1391
- if (r.length) {
1392
- var i = RegExp(`
1393
- [ ]{${Math.min.apply(Math, r)}}`, "g");
1394
- n = n.map(function(e) {
1395
- return e.replace(i, "\n");
1396
- });
1397
- }
1398
- n[0] = n[0].replace(/^\r?\n/, "");
1399
- var a = n[0];
1400
- return t.forEach(function(e, t) {
1401
- var r = a.match(/(?:^|\n)( *)$/), i = r ? r[1] : "", o = e;
1402
- typeof e == "string" && e.includes("\n") && (o = String(e).split("\n").map(function(e, t) {
1403
- return t === 0 ? e : `${i}${e}`;
1404
- }).join("\n")), a += o + n[t + 1];
1405
- }), a;
1406
- }
1407
- //#endregion
1408
- //#region src/vite/hmr.mts
1409
- function En(e, t) {
1410
- let n = ce(t, [], !1), r = [t.stack, n].filter((e) => e).join("\n");
1411
- return {
1412
- ...e.bundlerFault(t.message),
1413
- stack: r || null
1414
- };
1415
- }
1416
- function Dn(e) {
1417
- return y.join(e, "node_modules/.inca/hmr");
1418
- }
1419
- function On() {
1420
- let e = y.dirname(ee(import.meta.url));
1421
- for (; !p(y.join(e, "package.json"));) {
1422
- let t = y.dirname(e);
1423
- if (t === e) throw Error("could not locate @incajs/cli's own package.json");
1424
- e = t;
1425
- }
1426
- return y.join(e, "dist/vite-runtime.js");
1427
- }
1428
- function kn(e, t) {
1429
- let n = y.relative(e, t).split(y.sep).join("/");
1430
- return n.startsWith(".") ? n : `./${n}`;
1431
- }
1432
- var An = /^[A-Za-z_$][\w$]*$/;
1433
- function jn(e) {
1434
- let t = {};
1435
- for (let [n, r] of Object.entries(e ?? {})) if (An.test(n)) try {
1436
- t[n] = JSON.parse(typeof r == "string" ? r : JSON.stringify(r));
1437
- } catch {}
1438
- return t;
1439
- }
1440
- async function Mn(e, t, n, r) {
1441
- let i = Dn(e), a = y.join(i, "entry.js"), o = kn(i, r ?? On()), s = t.split(y.sep).join("/");
1442
- return await j(a, Tn`
1
+ import{t as e}from"./chunks/rolldown-runtime-DT7IzrpZ.js";import{c as t,i as n,n as r,o as i,r as a,s as o,t as s}from"./chunks/dist-B-B_PlmU.js";import{i as c,n as l,r as u,t as d}from"./chunks/defaults-DfHXv1fN.js";import{createRequire as f}from"node:module";import p,{existsSync as m,lstatSync as h,readFileSync as g,realpathSync as _,statSync as v,watch as y}from"node:fs";import b,{resolve as x}from"node:path";import*as S from"node:util";import{parseArgs as C,styleText as w}from"node:util";import{chmod as ee,cp as T,link as E,mkdir as D,readFile as O,readdir as k,rm as A,writeFile as j}from"node:fs/promises";import{fileURLToPath as te,pathToFileURL as M}from"node:url";import{homedir as ne}from"node:os";import{spawn as re,spawnSync as ie}from"node:child_process";import{once as ae}from"node:events";import oe from"node:readline";import{setTimeout as N}from"node:timers/promises";import{DevEnvironment as se,build as ce,buildErrorMessage as le,createServer as ue}from"vite";import de from"@vitejs/plugin-vue";import{randomUUID as fe}from"node:crypto";const pe=/\d/,me=[`-`,`_`,`/`,`.`];function he(e=``){if(!pe.test(e))return e!==e.toLowerCase()}function ge(e,t){let n=t??me,r=[];if(!e||typeof e!=`string`)return r;let i=``,a,o;for(let t of e){let e=n.includes(t);if(e===!0){r.push(i),i=``,a=void 0;continue}let s=he(t);if(o===!1){if(a===!1&&s===!0){r.push(i),i=t,a=s;continue}if(a===!0&&s===!1&&i.length>1){let e=i.at(-1);r.push(i.slice(0,Math.max(0,i.length-1))),i=e+t,a=s;continue}}i+=t,a=s,o=e}return r.push(i),r}function _e(e){return e?e[0].toUpperCase()+e.slice(1):``}function ve(e){return e?e[0].toLowerCase()+e.slice(1):``}function ye(e,t){return e?(Array.isArray(e)?e:ge(e)).map(e=>_e(t?.normalize?e.toLowerCase():e)).join(``):``}function be(e,t){return ve(ye(e||``,t))}function xe(e,t){return e?(Array.isArray(e)?e:ge(e)).map(e=>e.toLowerCase()).join(t??`-`):``}function Se(e){return xe(e||``,`_`)}function P(e){return Array.isArray(e)?e:e===void 0?[]:[e]}function Ce(e,t=``){let n=[];for(let t of e)for(let[e,r]of t.entries())n[e]=Math.max(n[e]||0,r.length);return e.map(e=>e.map((e,r)=>t+e[r===0?`padStart`:`padEnd`](n[r])).join(` `)).join(`
2
+ `)}function F(e){return typeof e==`function`?e():e}var I=class extends Error{code;constructor(e,t){super(e),this.name=`CLIError`,this.code=t}};function we(e=[],t={}){let n=new Set(t.boolean||[]),r=new Set(t.string||[]),i=t.alias||{},a=t.default||{},o=/* @__PURE__ */ new Map,s=/* @__PURE__ */ new Map;for(let[e,t]of Object.entries(i)){let n=t;for(let t of n)o.set(e,t),s.has(t)||s.set(t,[]),s.get(t).push(e),o.set(t,e),s.has(e)||s.set(e,[]),s.get(e).push(t)}let c={};function l(e){if(n.has(e))return`boolean`;let t=s.get(e)||[];for(let e of t)if(n.has(e))return`boolean`;return`string`}function u(e){if(r.has(e))return!0;let t=s.get(e)||[];for(let e of t)if(r.has(e))return!0;return!1}let d=/* @__PURE__ */ new Set([...n,...r,...Object.keys(i),...Object.values(i).flat(),...Object.keys(a)]);for(let e of d)c[e]||(c[e]={type:l(e),default:a[e]});for(let[e,t]of o.entries())e.length===1&&c[t]&&!c[t].short&&(c[t].short=e);let f=[],p={};for(let t=0;t<e.length;t++){let n=e[t];if(n===`--`){f.push(...e.slice(t));break}if(n.startsWith(`--no-`)){let e=n.slice(5);p[e]=!0}else f.push(n)}let m;try{m=C({args:f,options:Object.keys(c).length>0?c:void 0,allowPositionals:!0,strict:!1})}catch{m={values:{},positionals:f}}let h={_:[]};h._=m.positionals;for(let[e,t]of Object.entries(m.values)){let n=t;l(e)===`boolean`&&typeof t==`string`?n=t!==`false`:u(e)&&typeof t==`boolean`&&(n=``),h[e]=n}for(let[e]of Object.entries(p)){h[e]=!1;let t=o.get(e);t&&(h[t]=!1);let n=s.get(e);if(n)for(let e of n)h[e]=!1}for(let[e,t]of o.entries())h[e]!==void 0&&h[t]===void 0&&(h[t]=h[e]),h[t]!==void 0&&h[e]===void 0&&(h[e]=h[t]),h[e]!==h[t]&&a[t]===h[t]&&(h[t]=h[e]);return h}const Te=/* @__PURE__ */ (()=>{let e=globalThis.process?.env??{};return e.NO_COLOR===`1`||e.TERM===`dumb`||e.TEST||e.CI})(),Ee=(e,t=39)=>n=>Te?n:`\u001B[${e}m${n}\u001B[${t}m`,L=/* @__PURE__ */ Ee(1,22),R=/* @__PURE__ */ Ee(36),z=/* @__PURE__ */ Ee(90),B=/* @__PURE__ */ Ee(4,24);function De(e,t){let n={boolean:[],string:[],alias:{},default:{}},r=Oe(t);for(let e of r){if(e.type===`positional`)continue;e.type===`string`||e.type===`enum`?n.string.push(e.name):e.type===`boolean`&&n.boolean.push(e.name),e.default!==void 0&&(n.default[e.name]=e.default),e.alias&&(n.alias[e.name]=e.alias);let t=be(e.name),r=xe(e.name);if(t!==e.name||r!==e.name){let i=P(n.alias[e.name]||[]);t!==e.name&&!i.includes(t)&&i.push(t),r!==e.name&&!i.includes(r)&&i.push(r),i.length>0&&(n.alias[e.name]=i)}}let i=we(e,n),[...a]=i._,o=new Proxy(i,{get(e,t){return e[t]??e[be(t)]??e[xe(t)]}});for(let[,e]of r.entries())if(e.type===`positional`){let t=a.shift();if(t!==void 0)o[e.name]=t;else if(e.default===void 0&&e.required!==!1)throw new I(`Missing required positional argument: ${e.name.toUpperCase()}`,`EARG`);else o[e.name]=e.default}else if(e.type===`enum`){let t=o[e.name],n=e.options||[];if(t!==void 0&&n.length>0&&!n.includes(t))throw new I(`Invalid value for argument: ${R(`--${e.name}`)} (${R(t)}). Expected one of: ${n.map(e=>R(e)).join(`, `)}.`,`EARG`)}else if(e.required&&o[e.name]===void 0)throw new I(`Missing required argument: --${e.name}`,`EARG`);return o}function Oe(e){let t=[];for(let[n,r]of Object.entries(e||{}))t.push({...r,name:n,alias:P(r.alias)});return t}async function ke(e){return Promise.all(e.map(e=>F(e)))}function V(e){return e}async function Ae(e,t){let n=await F(e.args||{}),r=De(t.rawArgs,n),i={rawArgs:t.rawArgs,args:r,data:t.data,cmd:e},a=await ke(e.plugins??[]),o,s;try{for(let e of a)await e.setup?.(i);typeof e.setup==`function`&&await e.setup(i);let r=await F(e.subCommands);if(r&&Object.keys(r).length>0){let i=Ne(t.rawArgs,n),a=t.rawArgs[i];if(a){let e=await Me(r,a);if(!e)throw new I(`Unknown command ${R(a)}`,`E_UNKNOWN_COMMAND`);await Ae(e,{rawArgs:t.rawArgs.slice(i+1)})}else{let n=await F(e.default);if(n){if(e.run)throw new I(`Cannot specify both 'run' and 'default' on the same command.`,`E_DEFAULT_CONFLICT`);let i=await Me(r,n);if(!i)throw new I(`Default sub command ${R(n)} not found in subCommands.`,`E_UNKNOWN_COMMAND`);await Ae(i,{rawArgs:t.rawArgs})}else if(!e.run)throw new I(`No command specified.`,`E_NO_COMMAND`)}}typeof e.run==`function`&&(o=await e.run(i))}catch(e){s=e}let c=[];if(typeof e.cleanup==`function`)try{await e.cleanup(i)}catch(e){c.push(e)}for(let e of[...a].reverse())try{await e.cleanup?.(i)}catch(e){c.push(e)}if(s)throw s;if(c.length===1)throw c[0];if(c.length>1)throw Error(`Multiple cleanup errors`,{cause:c});return{result:o}}async function je(e,t,n){let r=await F(e.subCommands);if(r&&Object.keys(r).length>0){let n=Ne(t,await F(e.args||{})),i=t[n],a=await Me(r,i);if(a)return je(a,t.slice(n+1),e)}return[e,n]}async function Me(e,t){if(t in e)return F(e[t]);for(let n of Object.values(e)){let e=await F(n),r=await F(e?.meta);if(r?.alias&&P(r.alias).includes(t))return e}}function Ne(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(r===`--`)return-1;if(r.startsWith(`-`))!r.includes(`=`)&&Pe(r,t)&&n++;else return n}return-1}function Pe(e,t){let n=e.replace(/^-{1,2}/,``),r=be(n);for(let[e,i]of Object.entries(t))if((i.type===`string`||i.type===`enum`)&&(r===be(e)||(Array.isArray(i.alias)?i.alias:i.alias?[i.alias]:[]).includes(n)))return!0;return!1}async function Fe(e,t){try{console.log(await Le(e,t)+`
3
+ `)}catch(e){console.error(e)}}const Ie=/^no[-A-Z]/;async function Le(e,t){let n=await F(e.meta||{}),r=Oe(await F(e.args||{})),i=await F(t?.meta||{}),a=`${i.name?`${i.name} `:``}`+(n.name||process.argv[1]),o=[],s=[],c=[],l=[];for(let e of r)if(e.type===`positional`){let t=e.name.toUpperCase(),n=e.required!==!1&&e.default===void 0;s.push([R(t+Re(e)),ze(e,n)]),l.push(n?`<${t}>`:`[${t}]`)}else{let t=e.required===!0&&e.default===void 0,n=[...(e.alias||[]).map(e=>`-${e}`),`--${e.name}`].join(`, `)+Re(e);if(o.push([R(n),ze(e,t)]),e.type===`boolean`&&(e.default===!0||e.negativeDescription)&&!Ie.test(e.name)){let n=[...(e.alias||[]).map(e=>`--no-${e}`),`--no-${e.name}`].join(`, `);o.push([R(n),[e.negativeDescription,t?z(`(Required)`):``].filter(Boolean).join(` `)])}t&&l.push(`--${e.name}`+Re(e))}if(e.subCommands){let t=[],n=await F(e.subCommands);for(let[e,r]of Object.entries(n)){let n=await F((await F(r))?.meta);if(n?.hidden)continue;let i=P(n?.alias),a=[e,...i].join(`, `);c.push([R(a),n?.description||``]),t.push(e,...i)}l.push(t.join(`|`))}let u=[],d=n.version||i.version;u.push(z(`${n.description} (${a+(d?` v${d}`:``)})`),``);let f=o.length>0||s.length>0;return u.push(`${B(L(`USAGE`))} ${R(`${a}${f?` [OPTIONS]`:``} ${l.join(` `)}`)}`,``),s.length>0&&(u.push(B(L(`ARGUMENTS`)),``),u.push(Ce(s,` `)),u.push(``)),o.length>0&&(u.push(B(L(`OPTIONS`)),``),u.push(Ce(o,` `)),u.push(``)),c.length>0&&(u.push(B(L(`COMMANDS`)),``),u.push(Ce(c,` `)),u.push(``,`Use ${R(`${a} <command> --help`)} for more information about a command.`)),u.filter(e=>typeof e==`string`).join(`
4
+ `)}function Re(e){let t=e.valueHint?`=<${e.valueHint}>`:``,n=t||`=<${Se(e.name)}>`;return!e.type||e.type===`positional`||e.type===`boolean`?t:e.type===`enum`&&e.options?.length?`=<${e.options.join(`|`)}>`:n}function ze(e,t){let n=t?z(`(Required)`):``,r=e.default===void 0?``:z(`(Default: ${e.default})`);return[e.description,n,r].filter(Boolean).join(` `)}async function Be(e,t={}){let n=t.rawArgs||process.argv.slice(2),r=t.showUsage||Fe;try{let t=await Ve(e);if(t.help.length>0&&n.some(e=>t.help.includes(e)))await r(...await je(e,n)),process.exit(0);else if(n.length===1&&t.version.includes(n[0])){let t=typeof e.meta==`function`?await e.meta():await e.meta;if(!t?.version)throw new I(`No version specified`,`E_NO_VERSION`);console.log(t.version)}else await Ae(e,{rawArgs:n})}catch(t){t instanceof I?(await r(...await je(e,n)),console.error(t.message)):console.error(t,`
5
+ `),process.exit(1)}}async function Ve(e){let t=await F(e.args||{}),n=/* @__PURE__ */ new Set,r=/* @__PURE__ */ new Set;for(let[e,i]of Object.entries(t)){n.add(e);for(let e of P(i.alias))r.add(e)}return{help:He(`help`,`h`,n,r),version:He(`version`,`v`,n,r)}}function He(e,t,n,r){return n.has(e)||r.has(e)?[]:n.has(t)||r.has(t)?[`--${e}`]:[`--${e}`,`-${t}`]}var Ue=`0.0.23`,We=`Commands to develop, bundle, and package Incarnative.js apps.`;function H(e,t,n){let r=typeof e==`object`&&e?e:{},i=b.relative(n,t).split(b.sep).join(`/`);return{...r,root:i===``?`.`:i}}function Ge(e){return e&&e.constructor&&typeof e.constructor.isBuffer==`function`&&e.constructor.isBuffer(e)}function Ke(e){return e}function qe(e,t){t||={};let n=t.delimiter||`.`,r=t.maxDepth,i=t.transformKey||Ke,a={};function o(e,s,c){c||=1,Object.keys(e).forEach(function(l){let u=e[l],d=t.safe&&Array.isArray(u),f=Object.prototype.toString.call(u),p=Ge(u),m=f===`[object Object]`||f===`[object Array]`,h=s?s+n+i(l):i(l);if(!d&&!p&&m&&Object.keys(u).length&&(!t.maxDepth||c<r))return o(u,h,c+1);a[h]=u})}return o(e),a}function Je(e,t){t||={};let n=t.delimiter||`.`,r=t.overwrite||!1,i=t.transformKey||Ke,a={};if(Ge(e)||Object.prototype.toString.call(e)!==`[object Object]`)return e;function o(e){let n=Number(e);return isNaN(n)||e.indexOf(`.`)!==-1||t.object?e:n}function s(e,t,r){return Object.keys(r).reduce(function(t,i){return t[e+n+i]=r[i],t},t)}function c(e){let t=Object.prototype.toString.call(e),n=t===`[object Array]`,r=t===`[object Object]`;if(!e)return!0;if(n)return!e.length;if(r)return!Object.keys(e).length}return e=Object.keys(e).reduce(function(n,r){let i=Object.prototype.toString.call(e[r]);return i!==`[object Object]`&&i!==`[object Array]`||c(e[r])?(n[r]=e[r],n):s(r,n,qe(e[r],t))},{}),Object.keys(e).forEach(function(s){let c=s.split(n).map(i),l=o(c.shift()),u=o(c[0]),d=a;for(;u!==void 0;){if(l===`__proto__`)return;let e=Object.prototype.toString.call(d[l]),n=e===`[object Object]`||e===`[object Array]`;if(!r&&!n&&d[l]!==void 0)return;(r&&!n||!r&&d[l]==null)&&(d[l]=typeof u==`number`&&!t.object?[]:{}),d=d[l],c.length>0&&(l=o(c.shift()),u=o(c[0]))}d[l]=Je(e[s],t)}),a}const Ye=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Xe=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Ze=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function Qe(e,t){if(e===`__proto__`||e===`constructor`&&t&&typeof t==`object`&&`prototype`in t)$e(e);else return t}function $e(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function et(e,t={}){if(typeof e!=`string`)return e;if(e[0]===`"`&&e[e.length-1]===`"`&&e.indexOf(`\\`)===-1)return e.slice(1,-1);let n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case`true`:return!0;case`false`:return!1;case`undefined`:return;case`null`:return null;case`nan`:return NaN;case`infinity`:return 1/0;case`-infinity`:return-1/0}if(!Ze.test(e)){if(t.strict)throw SyntaxError(`[destr] Invalid JSON`);return e}try{if(Ye.test(e)||Xe.test(e)){if(t.strict)throw Error(`[destr] Possible prototype pollution`);return JSON.parse(e,Qe)}return JSON.parse(e)}catch(n){if(t.strict)throw n;return e}}function tt(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function nt(e,t,n=`.`,r){if(!tt(t))return nt(e,{},n,r);let i={...t};for(let t of Object.keys(e)){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(i[t]=Array.isArray(a)&&Array.isArray(i[t])?[...a,...i[t]]:tt(a)&&tt(i[t])?nt(a,i[t],(n?`${n}.`:``)+t.toString(),r):a))}return i}function rt(e){return(...t)=>t.reduce((t,n)=>nt(t,n,``,e),{})}const U=rt(),it=/^\s*([^\s=]+)\s*=\s*(.*)?\s*$/,at=/\n|\r|\r\n/,ot={name:`.conf`,dir:process.cwd(),flat:!1};function st(e){return typeof e==`string`&&(e={name:e}),{...ot,...e}}function ct(e,t={}){let n={},r=e.split(at);for(let e of r){let t=e.match(it);if(!t)continue;let r=t[1];if(!r||r===`__proto__`||r===`constructor`)continue;let i=et((t[2]||``).trim());if(r.endsWith(`[]`)){let e=r.slice(0,Math.max(0,r.length-2));n[e]=(n[e]||[]).concat(i)}else n[r]=i}return t.flat?n:Je(n,{overwrite:!0})}function lt(e,t){return m(e)?ct(g(e,`utf8`),t):{}}function W(e){return e=st(e),lt(x(e.dir,e.name),e)}function ut(){return process.env.XDG_CONFIG_HOME||x(ne(),`.config`)}function dt(e){return e=st(e),e.dir=ut(),W(e)}async function ft(e){let t=e.env??process.env,n=await pt({cwd:e.cwd,fileName:e.fileName??`.env`,env:t,interpolate:e.interpolate??!0,expandFileReferences:e.expandFileReferences??!1,parse:e.parse}),r=xt(t);for(let e in n)e.startsWith(`_`)||(t[e]===void 0||r.has(e))&&(t[e]=n[e]);return n}async function pt(e){let n=Object.create(null),r=t(e.cwd||`.`),i=e.fileName||`.env`,a=typeof i==`string`?[i]:i,o=xt(e.env||{});Object.assign(n,e.env);for(let i of a){let a=t(r,i);if(!v(a,{throwIfNoEntry:!1})?.isFile())continue;let s=await ht(a,e.parse);for(let e in s)e in n&&!o.has(e)||(n[e]=s[e],o.add(e))}if(e.expandFileReferences){for(let e in n)if(e.endsWith(`_FILE`)){let t=e.slice(0,-5);if(n[t]===void 0){let r=n[e];r&&v(r,{throwIfNoEntry:!1})?.isFile()&&(n[t]=g(r,`utf8`).trim(),o.add(t))}}}return e.interpolate&&gt(n),n}let mt=S.parseEnv;async function ht(e,t){let n=g(e,`utf8`);if(t)return t(n);if(!mt)try{let e=await import(`dotenv`);mt=t=>e.parse(t)}catch{throw Error("Failed to parse .env file: `node:util.parseEnv` is not available and `dotenv` package is not installed. Please upgrade your runtime, install `dotenv` as a dependency or provide a custom `parse` option.")}return mt(n)}function gt(e,t={},n=e=>e){function r(n){return t[n]===void 0?e[n]:t[n]}function i(e,t=[]){if(typeof e!=`string`)return e;let a=``,o=0;for(;o<e.length;){let n=e[o];if(n===`\\`&&e[o+1]===`$`){a+=`$`,o+=2;continue}let s=n===`$`?yt(e,o):void 0;if(!s){a+=n,o++;continue}if(t.includes(s.key)){if(s.defaultValue!==void 0){a+=i(s.defaultValue,t),o=s.end;continue}return console.warn(`Please avoid recursive environment variables ( loop: ${t.join(` > `)} > ${s.key} )`),``}let c=i(r(s.key),[...t,s.key]);s.defaultValue!==void 0&&(c===void 0||s.operator===`:-`&&c===``)&&(c=i(s.defaultValue,t)),a+=c===void 0?e.slice(o,s.end):c,o=s.end}return n(a)}for(let t in e)e[t]=i(r(t))}const _t=/\w+/y,vt=/[\w:]+/y;function yt(e,t){let n=t+1,r=e[n]===`{`;r&&n++;let i=r?vt:_t;i.lastIndex=n;let a=i.exec(e);if(!a)return;let o=a[0];if(n=i.lastIndex,!r)return{key:o,end:n};if(e[n]===`}`)return{key:o,end:n+1};if(e[n]===`-`){let t=`-`;o.endsWith(`:`)&&(o=o.slice(0,-1),t=`:-`);let r=o?bt(e,n+1):void 0;return r?{key:o,operator:t,defaultValue:r.value,end:r.end}:void 0}return{key:o,end:n}}function bt(e,t){let n=``,r=1;for(let i=t;i<e.length;i++){let t=e[i];if(t===`\\`&&i+1<e.length){let r=e[i+1];n+=r===`{`||r===`}`?r:t+r,i++}else if(t===`$`&&e[i+1]===`{`)r++,n+="${",i++;else{if(t===`{`&&r++,t===`}`&&(r--,r===0))return{value:n,end:i+1};n+=t}}}function xt(e){let t=globalThis.__c12_dotenv_vars__||=/* @__PURE__ */ new Map;return t.has(e)||t.set(e,/* @__PURE__ */ new Set),t.get(e)}const St=e=>e?.replace(/\\/g,`/`);let Ct=0;const wt={".json":()=>JSON.parse,".yaml":()=>import(`./chunks/yaml-DtBxpt6z.js`).then(e=>e.parseYAML),".yml":()=>import(`./chunks/yaml-DtBxpt6z.js`).then(e=>e.parseYAML),".jsonc":()=>import(`./chunks/jsonc-DJWoCi14.js`).then(e=>e.n).then(e=>t=>e.parseJSONC(t,{allowTrailingComma:!0})),".json5":()=>import(`./chunks/json5-BcF68iGq.js`).then(e=>e.parseJSON5),".toml":()=>import(`./chunks/toml-n3nLqi2g.js`).then(e=>e.parseTOML)},Tt=Object.freeze([`.js`,`.ts`,`.mjs`,`.cjs`,`.mts`,`.cts`,`.json`,`.jsonc`,`.json5`,`.yaml`,`.yml`,`.toml`]);async function Et(e){e.cwd=t(process.cwd(),e.cwd||`.`),e.name=e.name||`config`,e.envName=e.envName??process.env.NODE_ENV,e.configFile=e.configFile??(e.name===`config`?`config`:`${e.name}.config`),e.rcFile=e.rcFile??`.${e.name}rc`,e.extend!==!1&&(e.extend={extendKey:`extends`,...e.extend});let n=e.merger||U,r={config:{},cwd:e.cwd,configFile:t(e.cwd,e.configFile),layers:[],_configFile:void 0},i={overrides:e.overrides,main:void 0,rc:void 0,packageJson:void 0,defaultConfig:e.defaultConfig};e.dotenv&&await ft({cwd:e.cwd,...e.dotenv===!0?{}:e.dotenv});let a=await At(`.`,e);if(a.configFile&&(i.main=a.config,r.configFile=a.configFile,r._configFile=a._configFile),a.meta&&(r.meta=a.meta),e.rcFile){let t=[];if(t.push(W({name:e.rcFile,dir:e.cwd})),e.globalRc){let{findWorkspaceDir:n}=await import(`./chunks/dist-BTWvruNB.js`),r=await n(e.cwd).catch(()=>{});r&&t.push(W({name:e.rcFile,dir:r})),t.push(dt({name:e.rcFile})),t.push(W({name:e.rcFile,dir:ne()}))}i.rc=n({},...t)}if(e.packageJson){let t=(Array.isArray(e.packageJson)?e.packageJson:[typeof e.packageJson==`string`?e.packageJson:e.name]).filter(e=>e&&typeof e==`string`),{readPackageJSON:r}=await import(`./chunks/dist-BTWvruNB.js`),a=await r(e.cwd).catch(()=>{});i.packageJson=n({},...t.map(e=>a?.[e]))}let o={};for(let e in i){let t=i[e];o[e]=await(typeof t==`function`?t({configs:o,rawConfigs:i}):t)}if(Array.isArray(o.main)?r.config=o.main:(r.config=n(o.overrides,o.main,o.rc,o.packageJson,o.defaultConfig),e.extend&&(await Dt(r.config,e),r.layers=r.config._layers,delete r.config._layers,r.config=n(r.config,...r.layers.map(e=>e.config)))),r.layers=[...[o.overrides&&{config:o.overrides,configFile:void 0,cwd:void 0},{config:o.main,configFile:e.configFile,cwd:e.cwd},o.rc&&{config:o.rc,configFile:e.rcFile},o.packageJson&&{config:o.packageJson,configFile:`package.json`}].filter(e=>e&&e.config),...r.layers],e.defaults&&(r.config=n(r.config,e.defaults)),e.omit$Keys)for(let e in r.config)e.startsWith(`$`)&&delete r.config[e];if(e.configFileRequired&&!r._configFile)throw Error(`Required config (${r.configFile}) cannot be resolved.`);return e.schema!=null&&(r.config=await jt(r.config,e.schema)),r}async function Dt(e,t){if(e._layers=e._layers||[],!t.extend)return;let n=t.extend.extendKey;typeof n==`string`&&(n=[n]);let r=[];for(let t of n)r.push(...(Array.isArray(e[t])?e[t]:[e[t]]).filter(Boolean)),delete e[t];for(let n of r){let r=n,i={};if(n.source&&(i=n.options||{},n=n.source),Array.isArray(n)&&(i=n[1]||{},n=n[0]),typeof n!=`string`){console.warn(`Cannot extend config from \`${JSON.stringify(r)}\` in ${t.cwd}`);continue}let a=await At(n,t,i);a.config?(await Dt(a.config,{...t,cwd:a.cwd}),e._layers.push(a),a.config._layers&&(e._layers.push(...a.config._layers),delete a.config._layers)):console.warn(`Cannot extend config from \`${n}\` in ${t.cwd}`)}}const Ot=[`gh:`,`github:`,`gitlab:`,`bitbucket:`,`https://`,`http://`],kt=/^(@[\da-z~-][\d._a-z~-]*\/)?[\da-z~-][\d._a-z~-]*($|\/.*)/;async function At(e,o,s={}){if(o.resolve){let t=await o.resolve(e,o);if(t)return t}let c=o.merger||U,l=Object.keys(s.giget?.providers||{}).map(e=>`${e}:`),u=l.length>0?[.../* @__PURE__ */ new Set([...l,...Ot])]:Ot;if(o.giget!==!1&&u.some(t=>e.startsWith(t))){let{downloadTemplate:n}=await import(`giget`).catch(t=>{throw Error(`Extending config from \`${e}\` requires \`giget\` peer dependency to be installed.\n\nInstall it with: \`npx nypm i giget\``,{cause:t})}),{digest:c}=await import(`./chunks/ohash-DUMW2FP0.js`).then(e=>e.dist_exports),l=e.replace(/\W+/g,`_`).split(`_`).splice(0,3).join(`_`)+`_`+c(e).slice(0,10).replace(/[-_]/g,``),u,d=t(o.cwd,`node_modules`),f=a(o.cwd);u=r(f)===`.c12`?i(f,l):m(d)?i(d,`.c12`,l):process.env.XDG_CACHE_HOME?t(process.env.XDG_CACHE_HOME,`c12`,l):t(ne(),`.cache/c12`,l);let p=s.install?U(s.install===!0?{}:s.install,{ignoreWorkspace:!0}):!1;m(u)&&!p&&await A(u,{recursive:!0}),e=(await n(e,{dir:u,install:p,force:!!p,auth:s.auth,...o.giget,...s.giget})).dir}kt.test(e)&&(e=G(e,o)||e);let d=n(e),f=Mt(t(o.cwd,e))??(!d||d===r(e)),p=t(o.cwd,f?e:a(e));f&&(e=o.configFile);let h={config:void 0,configFile:void 0,cwd:p,source:e,sourceOptions:s};if(h.configFile=G(t(p,e),o)||G(t(p,`.config`,e.replace(/\.config$/,``)),o)||G(t(p,`.config`,e),o)||e,!m(h.configFile))return h;h._configFile=h.configFile;let g=n(h.configFile)||``;if(g in wt)h.config=(await wt[g]())(await O(h.configFile,`utf8`));else{let e=o.resolveModule||(e=>e.default||e);if(o.import)h.config=e(await o.import(h.configFile));else{let t=M(h.configFile);t.search=`_${++Ct}`,h.config=await import(t.href).then(e,async t=>{let{createJiti:n}=await import(`jiti`).catch(()=>{throw Error(`Failed to load config file \`${h.configFile}\`: ${t?.message}. Hint install \`jiti\` for compatibility.`,{cause:t})}),r=n(i(o.cwd||`.`,o.configFile||`/`),{interopDefault:!0,moduleCache:!1,extensions:[...Tt],...o.jitiOptions});return o.import=e=>r.import(e),e(await o.import(h.configFile))})}}typeof h.config==`function`&&(h.config=await h.config(o.context)),h.config&&typeof h.config==`object`&&!Array.isArray(h.config)&&!Object.isExtensible(h.config)&&(h.config={...h.config});let _=(Array.isArray(o.envName)?o.envName:[o.envName]).filter(Boolean).reverse().flatMap(e=>[h.config.$env?.[e],h.config[`$`+e]]).filter(e=>e&&Object.keys(e).length>0);return _.length>0&&(h.config=(o.envMerger||c)({},..._,h.config)),h.meta=U(h.sourceOptions.meta,h.config.$meta),delete h.config.$meta,h.sourceOptions.overrides&&(h.config=c(h.sourceOptions.overrides,h.config)),h.configFile=St(h.configFile),h.source=St(h.source),h}async function jt(e,t){if(typeof t?.[`~standard`]?.validate!=`function`)throw TypeError("Invalid `schema` option: expected a Standard Schema (https://standardschema.dev).");let n=await t[`~standard`].validate(e);if(n.issues){let e=n.issues.map(e=>{let t=e.path?.map(e=>String(typeof e==`object`?e.key:e)).join(`.`);return` - ${t?`${t}: `:``}${e.message}`});throw Error(`Config validation failed (${t[`~standard`].vendor}):\n${e.join(`
6
+ `)}`,{cause:n.issues})}return n.value}function G(e,t){let n=s(e,{try:!0,from:M(i(t.cwd||`.`,t.configFile||`/`)),suffixes:[``,`/index`],extensions:Tt,cache:!1});return n?o(n):void 0}function Mt(e){try{return v(e).isDirectory()}catch{return null}}var K=class extends Error{code;path;name=`IncaError`;constructor(e,t,n){super(t),this.code=e,this.path=n}};const Nt={name:`inca`,packageJson:`inca`,rcFile:!1,globalRc:!1,giget:!1,extend:!1},Pt=[`.js`,`.ts`,`.mjs`,`.cjs`,`.mts`,`.cts`],Ft=/[/\\:*?"<>|\0]/;function It(e){return e===e.trim()&&e!==``&&e!==`.`&&e!==`..`&&!Ft.test(e)}function Lt(e){if(!(typeof e==`string`&&It(e)))throw new K(`ERR_INCA_PRODUCT_NAME_INVALID`,`${JSON.stringify(e)} can't name a directory. set a "productName" in inca.config.ts with no leading or trailing space, and none of \`/\\:*?"<>|\``)}const Rt=process.platform===`darwin`||process.platform===`win32`;function zt(e,t){let n=e=>Rt?e.toLowerCase():e,r=b.relative(n(e),n(t));return r===``||r!==`..`&&!r.startsWith(`..${b.sep}`)&&!b.isAbsolute(r)}function Bt(e){let t=b.resolve(e),n=t;for(let e;!h(n,{throwIfNoEntry:!1})&&(e=b.dirname(n))!==n;)n=e;return b.join(_.native(n),b.relative(n,t))}function q(e,t,n){let r=b.resolve(e,t),i;try{let t=Bt(r);i=[e,b.join(e,`src`),b.join(e,`node_modules`),...n?[n]:[]].some(e=>zt(t,Bt(e)))}catch{i=!0}if(i)throw new K(`ERR_INCA_OUT_DIR_INVALID`,`"outDir" resolves to ${r}, which holds the app's own files. Set it to a directory the build can own, such as "dist"`)}function Vt(e,t,n){let r=b.resolve(e,t??d.outDir);return q(e,r,n),r}function Ht(e,t){try{return JSON.parse(e)}catch(e){throw new K(`ERR_INCA_PACKAGE_JSON_INVALID`,`${t} holds malformed JSON: ${e.message}`,t)}}async function Ut(e){let t=f(import.meta.url).cache;for(let n of Pt)delete t[b.join(e,`inca.config`+n)];let{config:n,layers:r}=await Et({cwd:e,...Nt}),i=r?.find(e=>e.configFile===`package.json`);return{config:n,usedPackageJsonKey:Object.keys(i?.config??{}).length>0}}async function Wt(e){let{config:t}=await Ut(e),n=t.entry?b.resolve(e,t.entry):void 0;return{entry:n,outDir:Vt(e,t.outDir,n),sourcemap:t.sourcemap??d.sourcemap}}function Gt(e){return e.dev?.stackPaths??d.dev.stackPaths}async function Kt(e){let t=b.join(e,`package.json`),n;try{n=await O(t,`utf8`)}catch{throw new K(`ERR_INCA_PACKAGE_JSON_NOT_FOUND`,`no package.json found at ${t}`)}let r=Ht(n,t),{config:i,usedPackageJsonKey:a}=await Ut(e),o=i.productName??u(r.name);if(!o)throw new K(`ERR_INCA_PRODUCT_NAME_MISSING`,`${t} needs a "name", or "productName" in inca.config.ts`);Lt(o);let s=i.version??r.version??d.version,c=i.identifier??l(o),f;if(i.icon&&(f=b.resolve(e,i.icon),!m(f)))throw new K(`ERR_INCA_ICON_NOT_FOUND`,`"icon" points to ${f}, which doesn't exist`,f);let p=i.entry?b.resolve(e,i.entry):void 0,h=Vt(e,i.outDir,p);return{productName:o,identifier:c,identifierIsDefault:i.identifier===void 0,version:s,icon:f,window:i.window,dev:{stackPaths:Gt(i)},entry:p,outDir:h,sourcemap:i.sourcemap??d.sourcemap,usedPackageJsonKey:a}}function qt(e,{dev:t=!1}={}){return{name:e.productName,identifier:e.identifier,window:e.window,...t&&{dev:{stackPaths:e.dev.stackPaths}}}}async function Jt(e,{dev:t=!1}={}){let{config:n}=await Ut(e),r=b.join(e,`package.json`),i=await O(r,`utf8`).catch(()=>void 0),a=i===void 0?{}:Ht(i,r),o=n.productName??u(a.name);return o&&Lt(o),{name:o,identifier:n.identifier??(o?l(o):void 0),window:n.window,...t&&{dev:{stackPaths:Gt(n)}}}}const Yt=`INCA_HOST_BIN`;function Xt(){let e=process.platform===`darwin`||process.platform===`linux`?process.platform:void 0,t=process.arch===`arm64`||process.arch===`x64`?process.arch:void 0;return e&&t?`@incajs/host-${e}-${t}`:void 0}function Zt(){let e=Xt();if(e)try{return f(import.meta.url).resolve(`${e}/bin/inca-host`)}catch{return}}function J(){let e=process.env[Yt];if(e)return e;let t=Zt();if(t)return t;let n=Xt();throw new K(`ERR_INCA_HOST_BIN_UNRESOLVED`,`no host binary found. ${n?`no ${n} package is installed for it`:`this platform (${process.platform}/${process.arch}) has no published package`}, and ${Yt} isn't set to one`)}function Y(e){if(!v(e,{throwIfNoEntry:!1})?.isFile())throw new K(`ERR_INCA_HOST_BIN_NOT_FOUND`,`no host binary at ${e}. check that it was built`)}var Qt=class extends Error{code;hostStack;constructor(e,t,n=null){super(e),this.code=t,this.hostStack=n,this.name=`HostError`}};function $t(e){return typeof e==`object`&&!!e&&e.jsonrpc===`2.0`}const en=e=>{process.stderr.write(e.endsWith(`
7
+ `)?e:`${e}\n`)};var tn=class{#e;#t;#n=1;#r=/* @__PURE__ */ new Map;#i=!1;constructor(e){this.#e=e}async start(){let e=this.#e.hostBin??J();Y(e);let t=re(e,[`--dev`,this.#e.entryFile],{stdio:[`pipe`,`pipe`,`pipe`],env:this.#e.env});this.#t=t;let n=this.#e.onStderr??en;t.stderr.setEncoding(`utf8`),t.stderr.on(`data`,e=>n(e)),t.stdin.on(`error`,e=>{e.code!==`EPIPE`&&n(`host stdin: ${e.message}\n`)}),oe.createInterface({input:t.stdout}).on(`line`,e=>{this.#a(e,n)}),t.on(`exit`,(e,t)=>{let n=/* @__PURE__ */ Error(`the host exited (code=${String(e)}, signal=${String(t)}) before answering`);for(let{reject:e}of this.#r.values())e(n);this.#r.clear(),this.#i||this.#e.onExit?.(e,t)});let r=!1;t.on(`error`,e=>{r&&n(`host: ${e.message}\n`)}),await ae(t,`spawn`),r=!0}#a(e,t){let n;try{n=JSON.parse(e)}catch{t(`[stray stdout] ${e}`);return}if(!$t(n)){t(`[stray stdout] ${e}`);return}if(`method`in n){this.#o(n.method,n.params,t);return}if(n.id===null){if(!(`error`in n))return;let{code:e,message:r,data:i}=n.error;e===-32e3?this.#e.onAppError?.({message:r,stack:i?.stack??null}):t(`[host error ${String(e)}] ${r}\n`);return}let r=this.#r.get(n.id);r&&(this.#r.delete(n.id),`error`in n?r.reject(new Qt(n.error.message,n.error.code,n.error.data?.stack??null)):r.resolve(n.result))}#o(e,t,n){switch(e){case`ready`:{let{protocol:e}=t;if(e!==0){n(`the host speaks protocol ${String(e)}, this package was built for 0. stopping it`),this.#t&&this.#s(this.#t);return}this.#e.onReady?.();return}case`appError`:this.#e.onAppError?.(t);return;default:{let r=this.#e.integrations?.[e];r?r(t):n(`[unhandled notification] ${e}`)}}}async#s(e){let t=ae(e,`exit`);e.kill(),await t}async call(e,t,n){let r=this.#t;if(!r)throw Error(`HostClient.start() has not been called`);let i=this.#n++,a=JSON.stringify({jsonrpc:`2.0`,id:i,method:e,params:t});return new Promise((t,o)=>{let s=n===void 0?void 0:setTimeout(()=>{this.#r.delete(i),o(/* @__PURE__ */ Error(`${e} timed out after ${String(n)}ms`))},n);this.#r.set(i,{resolve:e=>{clearTimeout(s),t(e)},reject:e=>{clearTimeout(s),o(e)}}),r.stdin.write(`${a}\n`,e=>{e&&(clearTimeout(s),this.#r.delete(i),o(e))})})}notify(e,t){let n=this.#t;if(!n)throw Error(`HostClient.start() has not been called`);n.stdin.write(`${JSON.stringify({jsonrpc:`2.0`,method:e,params:t})}\n`)}async stop(e=2e3){let t=this.#t;if(!t||t.exitCode!==null||t.signalCode!==null)return;this.#i=!0;let n=ae(t,`exit`);this.call(`shutdown`).catch(()=>{}),await Promise.race([n.then(()=>`exited`),N(e,void 0,{ref:!1}).then(()=>`timeout`)])===`timeout`&&(t.kill(),await n)}};const nn=new Intl.DateTimeFormat(void 0,{hour:`numeric`,minute:`numeric`,second:`numeric`}),X={timestamp:!0};function rn(e,t,n){let r=w([`bold`,n],`[inca]`,{stream:e});return t.timestamp?`${w(`dim`,nn.format(/* @__PURE__ */ new Date),{stream:e})} ${r}`:r}function Z(e,t,n={}){e.write(`${rn(e,n,`cyan`)} ${t}\n`)}function an(e,t,n={}){e.write(`${rn(e,n,`yellow`)} ${t}\n`)}function on(e){let t=e.code;return typeof t==`string`?t:null}function sn(e){return/\bERR_INCA_[A-Z0-9_]+/.exec(e)?.[0]??null}function cn(e){let t=e.stack;if(!t)return null;for(let n of[`${e.name}: ${e.message}`,e.message])if(t.startsWith(n))return t.slice(n.length).replace(/^\r?\n/,``)||null;return t}function ln(e){let t=/^(?:\w*Error: )?(ERR_INCA_[A-Z0-9_]+): /.exec(e);return t?{message:e.slice(t[0].length),stack:null,code:t[1]}:{message:e.replace(/^\w*Error: /,``),stack:null,code:null}}function Q(e){return e instanceof Qt?{message:e.message,stack:e.hostStack,code:on(e)}:e instanceof Error?{message:e.message,stack:cn(e),code:on(e)??sn(e.message)}:{message:String(e),stack:null,code:null}}function un(e,t){return e.split(`
8
+ `).map(e=>/^\s*at\b/.test(e)?w(`dim`,e,{stream:t}):e).join(`
9
+ `)}function $(e,t,n,r={}){n.stack&&e.write(`${un(n.stack,e)}\n`);let i=n.code?` (${w(`bold`,n.code,{stream:e})})`:``;e.write(`${rn(e,r,`red`)} ${t}${i}: ${n.message}\n`)}var dn=/* @__PURE__ */ e({IncaError:()=>K,bundlerFault:()=>ln,withAppRoot:()=>H});function fn(e,t,n){return{outDir:e,entryFile:b.join(e,t.entryFile),files:t.files,changed:n}}function pn(e,t){return{name:`inca:capture-output`,writeBundle(n,r){let i=Object.keys(r),a=Object.values(r).find(e=>e.type===`chunk`&&e.isEntry);if(!a)throw new e.IncaError(`ERR_INCA_BUILD_NO_ENTRY_CHUNK`,`build produced no entry chunk`);t({entryFile:a.fileName,files:i})}}}const mn=`inca.json`;function hn(e){let t=JSON.stringify(e,void 0,2);return{name:`inca:emit-config`,generateBundle(){t!==void 0&&this.emitFile({type:`asset`,fileName:mn,source:`${t}\n`})}}}function gn(e,t,n=!1){let r=/* @__PURE__ */ new WeakSet,i=/* @__PURE__ */ new Set,a={hasWarned:!1,info(t){n||e.write(`${t}\n`)},warn(e){a.hasWarned=!0,t.write(`${e}\n`)},warnOnce(e){i.has(e)||(i.add(e),a.warn(e))},error(e,n){a.hasWarned=!0,n?.error&&r.add(n.error),e.includes(`Build failed with `)||e.includes(`Pre-transform error`)||t.write(`${e.replace(/\n\s+at .*/g,``)}\n`)},clearScreen(){},hasErrorLogged(e){return r.has(e)}};return a}const _n=/\.(?:css|pcss|postcss|sass|scss|less|styl|stylus)(?:\?|$)/,vn=[{code:`ERR_INCA_UNSUPPORTED_STYLE`,name:`a <style> block`,matches:e=>e.includes(`vue&type=style`),hint:`the renderer applies no stylesheet. use a :style binding instead`},{code:`ERR_INCA_UNSUPPORTED_STYLESHEET`,name:`a stylesheet import`,matches:e=>_n.test(e),hint:`the renderer applies no stylesheet. use a :style binding instead`}];function yn(e,t=vn){return{name:`inca:reject-unsupported`,enforce:`pre`,transform(n,r){let i=t.find(e=>e.matches(r));if(!i)return null;let a=b.relative(process.cwd(),r.split(`?`)[0]??r);throw new e.IncaError(i.code,`${i.code}: ${a} uses ${i.name}, unsupported for now: ${i.hint}`)}}}function bn({core:e,runtimeModuleName:t,entry:n,root:r=b.dirname(n),envDir:i,publicDir:a,outDir:o,mode:s,sourcemap:c=!1,watch:l,onOutput:u,stdout:d,stderr:f,quiet:p,runtimeConfig:m}){let h=s===`development`||c;return{configFile:!1,root:r,envDir:i,publicDir:a,mode:s,clearScreen:!1,logLevel:p?`silent`:`info`,customLogger:gn(d,f),define:{"process.env.NODE_ENV":JSON.stringify(s)},plugins:[de({template:{compilerOptions:{runtimeModuleName:t,hoistStatic:!1}}}),yn(e),hn(m),pn(e,u)],build:{lib:{entry:n,formats:[`es`],fileName:()=>`bundle.js`},outDir:o,emptyOutDir:s===`production`,minify:s===`production`,sourcemap:h,watch:l?{buildDelay:30}:void 0,rolldownOptions:{output:{chunkFileNames:`chunks/[name]-[hash].js`,assetFileNames:`assets/[name]-[hash][extname]`,sourcemapExcludeSources:h}}}}}async function xn(e,t,{entry:n,root:r,envDir:i,publicDir:a,outDir:o,sourcemap:s,runtimeConfig:c,stdout:l=process.stdout,stderr:u=process.stderr,quiet:d=!1}){let f;if(await ce(bn({core:e,runtimeModuleName:t,entry:n,root:r,envDir:i,publicDir:a,outDir:o,runtimeConfig:c,mode:`production`,sourcemap:s,watch:!1,stdout:l,stderr:u,quiet:d,onOutput:e=>{f=fn(o,e)}})),!f)throw new e.IncaError(`ERR_INCA_BUILD_NO_OUTPUT`,`build produced no output`);return f}function Sn(e){var t=[...arguments].slice(1),n=Array.from(typeof e==`string`?[e]:e);n[n.length-1]=n[n.length-1].replace(/\r?\n([\t ]*)$/,``);var r=n.reduce(function(e,t){var n=t.match(/\n([\t ]+|(?!\s).)/g);return n?e.concat(n.map(function(e){return e.match(/[\t ]/g)?.length??0})):e},[]);if(r.length){var i=RegExp(`
10
+ [ ]{${Math.min.apply(Math,r)}}`,`g`);n=n.map(function(e){return e.replace(i,`
11
+ `)})}n[0]=n[0].replace(/^\r?\n/,``);var a=n[0];return t.forEach(function(e,t){var r=a.match(/(?:^|\n)( *)$/),i=r?r[1]:``,o=e;typeof e==`string`&&e.includes(`
12
+ `)&&(o=String(e).split(`
13
+ `).map(function(e,t){return t===0?e:`${i}${e}`}).join(`
14
+ `)),a+=o+n[t+1]}),a}function Cn(e,t){let n=le(t,[],!1),r=[t.stack,n].filter(e=>e).join(`
15
+ `);return{...e.bundlerFault(t.message),stack:r||null}}function wn(e){return b.join(e,`node_modules/.inca/hmr`)}function Tn(){let e=b.dirname(te(import.meta.url));for(;!m(b.join(e,`package.json`));){let t=b.dirname(e);if(t===e)throw Error(`could not locate @incajs/cli's own package.json`);e=t}return b.join(e,`dist/vite-runtime.js`)}function En(e,t){let n=b.relative(e,t).split(b.sep).join(`/`);return n.startsWith(`.`)?n:`./${n}`}const Dn=/^[A-Za-z_$][\w$]*$/;function On(e){let t={};for(let[n,r]of Object.entries(e??{}))if(Dn.test(n))try{t[n]=JSON.parse(typeof r==`string`?r:JSON.stringify(r))}catch{}return t}async function kn(e,t,n,r){let i=wn(e),a=b.join(i,`entry.js`),o=En(i,r??Tn()),s=t.split(b.sep).join(`/`);return await j(a,Sn`
1443
16
  import { start } from ${JSON.stringify(o)};
1444
17
  await start(${JSON.stringify(s)}, ${JSON.stringify(n)});
1445
- `), a;
1446
- }
1447
- function Nn(e) {
1448
- if (e.type === "error") return e.err;
1449
- if (e.type === "custom" && e.event === "vite:invoke") return e.data?.data?.error;
1450
- }
1451
- function Pn(e) {
1452
- if (e.type !== "custom" || e.event !== "vite:invoke") return !1;
1453
- let t = e.data;
1454
- return t.name === "fetchModule" && !t.data?.error;
1455
- }
1456
- function Fn(e, t, n, r, i) {
1457
- let a = /* @__PURE__ */ new Map(), o = { send: s };
1458
- function s(a) {
1459
- if (a.type === "full-reload") {
1460
- let e = i.current;
1461
- i.current = void 0, t(e);
1462
- return;
1463
- }
1464
- let o = Nn(a);
1465
- o ? (n(o), i.current = void 0) : Pn(a) && i.current && (r({
1466
- file: i.current.file,
1467
- took: Date.now() - i.current.at
1468
- }), i.current = void 0), e(a);
1469
- }
1470
- return {
1471
- channel: {
1472
- send: s,
1473
- on(e, t) {
1474
- let n = a.get(e);
1475
- n || a.set(e, n = /* @__PURE__ */ new Set()), n.add(t);
1476
- },
1477
- off(e, t) {
1478
- a.get(e)?.delete(t);
1479
- }
1480
- },
1481
- dispatch(e) {
1482
- let t = e;
1483
- if (t?.type === "custom" && typeof t.event == "string") for (let e of a.get(t.event) ?? []) e(t.data, o);
1484
- }
1485
- };
1486
- }
1487
- function In() {
1488
- let e = "\0inca:vite-client-shim";
1489
- return {
1490
- name: "inca:shim-vite-client",
1491
- enforce: "pre",
1492
- resolveId(t) {
1493
- return t === "/@vite/client" || t.endsWith("/dist/client/client.mjs") ? e : null;
1494
- },
1495
- load(t) {
1496
- return t === e ? "export function createHotContext() { return undefined; }" : null;
1497
- }
1498
- };
1499
- }
1500
- function Ln(e) {
1501
- return {
1502
- name: "inca:file-changed",
1503
- hotUpdate(t) {
1504
- e.current = {
1505
- file: t.file,
1506
- at: Date.now()
1507
- }, this.environment.hot.send({
1508
- type: "custom",
1509
- event: "file-changed",
1510
- data: { file: t.file }
1511
- });
1512
- }
1513
- };
1514
- }
1515
- async function Rn(e, t, { entry: n, root: r = y.dirname(n), envDir: i, publicDir: a, cwd: o, runtimeConfig: s, runtimePath: c, stdout: l = process.stdout, stderr: u = process.stderr, quiet: d = !1, notify: f, reload: p, onError: m, onUpdate: h = () => {} }) {
1516
- await D(Dn(o), { recursive: !0 });
1517
- let g = mn(s), _ = y.join(Dn(o), pn);
1518
- g ? await j(_, g) : await A(_, { force: !0 });
1519
- let v = { current: void 0 }, { channel: b, dispatch: x } = Fn(f, p, (t) => m(En(e, t)), h, v), S = await le({
1520
- configFile: !1,
1521
- root: r,
1522
- envDir: i,
1523
- publicDir: a,
1524
- mode: "development",
1525
- clearScreen: !1,
1526
- logLevel: d ? "silent" : "info",
1527
- customLogger: vn(l, u, d),
1528
- define: { "process.env.NODE_ENV": JSON.stringify("development") },
1529
- server: {
1530
- middlewareMode: !0,
1531
- ws: !1,
1532
- watch: { awaitWriteFinish: {
1533
- stabilityThreshold: 20,
1534
- pollInterval: 10
1535
- } }
1536
- },
1537
- optimizeDeps: { noDiscovery: !0 },
1538
- environments: { client: {
1539
- consumer: "client",
1540
- dev: {
1541
- moduleRunnerTransform: !0,
1542
- createEnvironment: (e, t) => new oe(e, t, {
1543
- hot: !0,
1544
- transport: b
1545
- })
1546
- }
1547
- } },
1548
- plugins: [
1549
- ue({ template: { compilerOptions: {
1550
- runtimeModuleName: t,
1551
- hoistStatic: !1
1552
- } } }),
1553
- xn(e),
1554
- In(),
1555
- Ln(v)
1556
- ]
1557
- }), C;
1558
- try {
1559
- C = await Mn(o, n, jn(S.environments.client.config.define), c);
1560
- } catch (e) {
1561
- throw await S.close(), e;
1562
- }
1563
- return {
1564
- entryFile: C,
1565
- dispatch: x,
1566
- close: () => S.close()
1567
- };
1568
- }
1569
- //#endregion
1570
- //#region src/vite/watch.mts
1571
- async function zn(e, t, { onBuild: n, onError: r, stdout: i = process.stdout, stderr: a = process.stderr, quiet: o = !1, ...s }) {
1572
- let { outDir: c } = s, l, u = await se(Cn({
1573
- core: e,
1574
- runtimeModuleName: t,
1575
- ...s,
1576
- watch: !0,
1577
- stdout: i,
1578
- stderr: a,
1579
- quiet: o,
1580
- onOutput: (e) => {
1581
- n(dn(c, e, l)), l = void 0;
1582
- }
1583
- }));
1584
- return u.on("change", (e) => {
1585
- l ??= {
1586
- file: e,
1587
- at: Date.now()
1588
- };
1589
- }), u.on("event", (t) => {
1590
- if (t.code !== "ERROR") return;
1591
- l = void 0;
1592
- let { errors: n } = t.error;
1593
- r(e.bundlerFault(n?.[0]?.message ?? t.error.message));
1594
- }), { close: () => u.close() };
1595
- }
1596
- //#endregion
1597
- //#region src/vite/createBundler.mts
1598
- function Bn(e, t) {
1599
- return {
1600
- watch: (n) => zn(e, t, n),
1601
- build: (n) => wn(e, t, n),
1602
- hmr: (n) => Rn(e, t, n)
1603
- };
1604
- }
1605
- //#endregion
1606
- //#region src/defaultBundler.mts
1607
- var Vn = Bn(un, "incajs/vue/runtime"), Hn = [
1608
- "main.mts",
1609
- "main.ts",
1610
- "main.js"
1611
- ];
1612
- function Un(e) {
1613
- return y.join(e, "node_modules/.inca/entry.mts");
1614
- }
1615
- function Wn(e, t) {
1616
- return t === Un(e) ? y.join(e, "src") : y.dirname(t);
1617
- }
1618
- function Gn(e) {
1619
- return Hn.map((t) => y.join(e, "src", t)).find((e) => p(e)) || (p(y.join(e, "src/App.vue")) ? Un(e) : void 0);
1620
- }
1621
- async function Kn(e) {
1622
- let t = y.join(e, "src/App.vue"), n = Gn(e);
1623
- if (n === Un(e)) return qn(t, e);
1624
- if (n) return n;
1625
- throw new J("ERR_INCA_ENTRY_NOT_FOUND", `no app entry found. check that ${y.join(e, "src/main.ts")} or ${t} exists`);
1626
- }
1627
- async function qn(e, t) {
1628
- let n = Un(t);
1629
- await D(y.dirname(n), { recursive: !0 });
1630
- let r = JSON.stringify(e.split(y.sep).join("/"));
1631
- return await j(n, Tn`
18
+ `),a}function An(e){if(e.type===`error`)return e.err;if(e.type===`custom`&&e.event===`vite:invoke`)return e.data?.data?.error}function jn(e){if(e.type!==`custom`||e.event!==`vite:invoke`)return!1;let t=e.data;return t.name===`fetchModule`&&!t.data?.error}function Mn(e,t,n,r,i){let a=/* @__PURE__ */ new Map,o={send:s};function s(a){if(a.type===`full-reload`){let e=i.current;i.current=void 0,t(e);return}let o=An(a);o?(n(o),i.current=void 0):jn(a)&&i.current&&(r({file:i.current.file,took:Date.now()-i.current.at}),i.current=void 0),e(a)}return{channel:{send:s,on(e,t){let n=a.get(e);n||a.set(e,n=/* @__PURE__ */ new Set),n.add(t)},off(e,t){a.get(e)?.delete(t)}},dispatch(e){let t=e;if(t?.type===`custom`&&typeof t.event==`string`)for(let e of a.get(t.event)??[])e(t.data,o)}}}function Nn(){let e=`\0inca:vite-client-shim`;return{name:`inca:shim-vite-client`,enforce:`pre`,resolveId(t){return t===`/@vite/client`||t.endsWith(`/dist/client/client.mjs`)?e:null},load(t){return t===e?`export function createHotContext() { return undefined; }`:null}}}function Pn(e){return{name:`inca:file-changed`,hotUpdate(t){e.current={file:t.file,at:Date.now()},this.environment.hot.send({type:`custom`,event:`file-changed`,data:{file:t.file}})}}}async function Fn(e,t,{entry:n,root:r=b.dirname(n),envDir:i,publicDir:a,cwd:o,runtimeConfig:s,runtimePath:c,stdout:l=process.stdout,stderr:u=process.stderr,quiet:d=!1,notify:f,reload:p,onError:m,onUpdate:h=()=>{}}){await D(wn(o),{recursive:!0});let g=e.withAppRoot(s,o,wn(o));await j(b.join(wn(o),mn),`${JSON.stringify(g,void 0,2)}\n`);let _={current:void 0},{channel:v,dispatch:y}=Mn(f,p,t=>m(Cn(e,t)),h,_),x=await ue({configFile:!1,root:r,envDir:i,publicDir:a,mode:`development`,clearScreen:!1,logLevel:d?`silent`:`info`,customLogger:gn(l,u,d),define:{"process.env.NODE_ENV":JSON.stringify(`development`)},server:{middlewareMode:!0,ws:!1,watch:{awaitWriteFinish:{stabilityThreshold:20,pollInterval:10}}},optimizeDeps:{noDiscovery:!0},environments:{client:{consumer:`client`,dev:{moduleRunnerTransform:!0,createEnvironment:(e,t)=>new se(e,t,{hot:!0,transport:v})}}},plugins:[de({template:{compilerOptions:{runtimeModuleName:t,hoistStatic:!1}}}),yn(e),Nn(),Pn(_)]}),S;try{S=await kn(o,n,On(x.environments.client.config.define),c)}catch(e){throw await x.close(),e}return{entryFile:S,dispatch:y,close:()=>x.close()}}async function In(e,t,{onBuild:n,onError:r,stdout:i=process.stdout,stderr:a=process.stderr,quiet:o=!1,...s}){let{outDir:c}=s,l,u=await ce(bn({core:e,runtimeModuleName:t,...s,watch:!0,stdout:i,stderr:a,quiet:o,onOutput:e=>{n(fn(c,e,l)),l=void 0}}));return u.on(`change`,e=>{l??={file:e,at:Date.now()}}),u.on(`event`,t=>{if(t.code!==`ERROR`)return;l=void 0;let{errors:n}=t.error;r(e.bundlerFault(n?.[0]?.message??t.error.message))}),{close:()=>u.close()}}function Ln(e,t){return{watch:n=>In(e,t,n),build:n=>xn(e,t,n),hmr:n=>Fn(e,t,n)}}const Rn=Ln(dn,`incajs/vue/runtime`),zn=[`main.mts`,`main.ts`,`main.js`];function Bn(e){return b.join(e,`node_modules/.inca/entry.mts`)}function Vn(e,t){return t===Bn(e)?b.join(e,`src`):b.dirname(t)}function Hn(e){return zn.map(t=>b.join(e,`src`,t)).find(e=>m(e))||(m(b.join(e,`src/App.vue`))?Bn(e):void 0)}async function Un(e){let t=b.join(e,`src/App.vue`),n=Hn(e);if(n===Bn(e))return Wn(t,e);if(n)return n;throw new K(`ERR_INCA_ENTRY_NOT_FOUND`,`no app entry found. check that ${b.join(e,`src/main.ts`)} or ${t} exists`)}async function Wn(e,t){let n=Bn(t);await D(b.dirname(n),{recursive:!0});let r=JSON.stringify(e.split(b.sep).join(`/`));return await j(n,Sn`
1632
19
  import { createIncaApp } from "incajs/vue";
1633
20
  import App from ${r};
1634
21
  createIncaApp(App).mount();
1635
- `), n;
1636
- }
1637
- //#endregion
1638
- //#region src/build.mts
1639
- async function Jn(e = {}) {
1640
- let t = e.cwd ?? process.cwd(), n = e.config ?? await Bt(t), r = y.resolve(t, n.outDir), i = e.bundler ?? Vn, a = e.entry ?? n.entry ?? await Kn(t);
1641
- Y(t, r, a);
1642
- let o = e.runtimeConfig ?? await Ut(t);
1643
- return i.build({
1644
- entry: a,
1645
- root: Wn(t, a),
1646
- envDir: t,
1647
- publicDir: y.join(t, "public"),
1648
- outDir: r,
1649
- sourcemap: e.sourcemap ?? n.sourcemap,
1650
- runtimeConfig: o,
1651
- stdout: e.stdout,
1652
- stderr: e.stderr
1653
- });
1654
- }
1655
- //#endregion
1656
- //#region src/devLock.mts
1657
- function Yn(e) {
1658
- return y.join(e, "node_modules/.inca/dev.pid");
1659
- }
1660
- function Xn(e) {
1661
- try {
1662
- return process.kill(e, 0), !0;
1663
- } catch (e) {
1664
- return e.code === "EPERM";
1665
- }
1666
- }
1667
- var Zn = de();
1668
- function Qn(e) {
1669
- return new J("ERR_INCA_DEV_RUNNING", `inca dev is already running for this app (pid ${String(e)})`);
1670
- }
1671
- async function $n(e) {
1672
- let t = Yn(e), n = `${String(process.pid)}:${Zn}`, r = `${t}.${de()}`;
1673
- await D(y.dirname(t), { recursive: !0 }), await j(r, n);
1674
- let i = process.pid;
1675
- try {
1676
- for (let e = 0; e < 5; e++) {
1677
- try {
1678
- return await E(r, t), er(t, n);
1679
- } catch (e) {
1680
- if (e.code !== "EEXIST") throw e;
1681
- }
1682
- let e = await O(t, "utf8").catch(() => ""), a = Number.parseInt(e, 10);
1683
- if (a === process.pid) {
1684
- if (e === n) throw Qn(a);
1685
- } else if (Number.isSafeInteger(a) && a > 0 && Xn(a)) throw Qn(a);
1686
- i = Number.isSafeInteger(a) && a > 0 ? a : i, await A(t, { force: !0 });
1687
- }
1688
- throw Qn(i);
1689
- } finally {
1690
- await A(r, { force: !0 });
1691
- }
1692
- }
1693
- function er(e, t) {
1694
- let n = !1;
1695
- return async () => {
1696
- n || (n = !0, await O(e, "utf8").catch(() => "") === t && await A(e, { force: !0 }));
1697
- };
1698
- }
1699
- //#endregion
1700
- //#region src/plist.mts
1701
- function tr(e) {
1702
- return e.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
1703
- }
1704
- function nr(e) {
1705
- return typeof e == "boolean" ? e ? "<true/>" : "<false/>" : `<string>${tr(e)}</string>`;
1706
- }
1707
- function rr(e) {
1708
- return Tn`
22
+ `),n}async function Gn(e={}){let t=e.cwd??process.cwd(),n=e.config??await Wt(t),r=b.resolve(t,n.outDir),i=e.bundler??Rn,a=e.entry??n.entry??await Un(t);q(t,r,a);let o=e.runtimeConfig??await Jt(t);return i.build({entry:a,root:Vn(t,a),envDir:t,publicDir:b.join(t,`public`),outDir:r,sourcemap:e.sourcemap??n.sourcemap,runtimeConfig:H(o,t,r),stdout:e.stdout,stderr:e.stderr})}function Kn(e){return b.join(e,`node_modules/.inca/dev.pid`)}function qn(e){try{return process.kill(e,0),!0}catch(e){return e.code===`EPERM`}}const Jn=fe();function Yn(e){return new K(`ERR_INCA_DEV_RUNNING`,`inca dev is already running for this app (pid ${String(e)})`)}async function Xn(e){let t=Kn(e),n=`${String(process.pid)}:${Jn}`,r=`${t}.${fe()}`;await D(b.dirname(t),{recursive:!0}),await j(r,n);let i=process.pid;try{for(let e=0;e<5;e++){try{return await E(r,t),Zn(t,n)}catch(e){if(e.code!==`EEXIST`)throw e}let e=await O(t,`utf8`).catch(()=>``),a=Number.parseInt(e,10);if(a===process.pid){if(e===n)throw Yn(a)}else if(Number.isSafeInteger(a)&&a>0&&qn(a))throw Yn(a);i=Number.isSafeInteger(a)&&a>0?a:i,await A(t,{force:!0})}throw Yn(i)}finally{await A(r,{force:!0})}}function Zn(e,t){let n=!1;return async()=>{n||(n=!0,await O(e,`utf8`).catch(()=>``)===t&&await A(e,{force:!0}))}}function Qn(e){return e.replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`)}function $n(e){return typeof e==`boolean`?e?`<true/>`:`<false/>`:`<string>${Qn(e)}</string>`}function er(e){return Sn`
1709
23
  <?xml version="1.0" encoding="UTF-8"?>
1710
24
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
1711
25
  <plist version="1.0">
1712
26
  <dict>
1713
- ${Object.entries(e).map(([e, t]) => `\t<key>${tr(e)}</key>\n\t${nr(t)}`).join("\n")}
27
+ ${Object.entries(e).map(([e,t])=>`\t<key>${Qn(e)}</key>\n\t${$n(t)}`).join(`
28
+ `)}
1714
29
  </dict>
1715
30
  </plist>
1716
- `;
1717
- }
1718
- //#endregion
1719
- //#region src/macosApp.mts
1720
- async function ir(e) {
1721
- let { appPath: t, metadata: n, hostBin: r } = e;
1722
- await A(t, {
1723
- recursive: !0,
1724
- force: !0
1725
- });
1726
- let i = y.join(t, "Contents"), a = y.join(i, "MacOS"), o = y.join(i, "Resources");
1727
- await D(a, { recursive: !0 }), await D(o, { recursive: !0 });
1728
- let s = y.join(a, n.productName);
1729
- e.link ? await E(r, s).catch(() => T(r, s)) : await T(r, s), await w(s, 493);
1730
- let c = {
1731
- CFBundleName: n.productName,
1732
- CFBundleDisplayName: n.productName,
1733
- CFBundleExecutable: n.productName,
1734
- CFBundleIdentifier: n.identifier,
1735
- CFBundleVersion: n.version,
1736
- CFBundleShortVersionString: n.version,
1737
- CFBundlePackageType: "APPL",
1738
- CFBundleInfoDictionaryVersion: "6.0",
1739
- NSHighResolutionCapable: !0
1740
- };
1741
- if (n.icon) {
1742
- let e = y.basename(n.icon);
1743
- await T(n.icon, y.join(o, e)), c.CFBundleIconFile = e;
1744
- }
1745
- return await j(y.join(i, "Info.plist"), rr(c)), await j(y.join(i, "PkgInfo"), "APPL????"), {
1746
- appPath: t,
1747
- executablePath: s,
1748
- resourcesDir: o
1749
- };
1750
- }
1751
- //#endregion
1752
- //#region src/watchForEdit.mts
1753
- var ar = /^(?:inca\.config\.[a-z0-9]+|package\.json)$/, or = [...Hn, "App.vue"];
1754
- function sr(e, t = {}) {
1755
- let n = t.debounceMs ?? 100, r = /* @__PURE__ */ new Set(), i, a = !1, o = () => {}, s = new Promise((e) => {
1756
- o = e;
1757
- }), c = () => {
1758
- a || (clearTimeout(i), i = setTimeout(o, n), i.unref());
1759
- }, l = (e, t) => {
1760
- let n = e;
1761
- for (let e; !p(n) && (e = y.dirname(n)) !== n;) n = e;
1762
- let i = n === e ? void 0 : y.relative(n, e).split(y.sep)[0], a = v(n);
1763
- a.on("change", (e, n) => {
1764
- let r = n === null ? null : String(n);
1765
- (r === null || (i === void 0 ? t(r) : r === i)) && c();
1766
- }), a.on("error", () => {
1767
- a.close(), r.delete(a), c();
1768
- }), r.add(a);
1769
- }, u = () => {
1770
- a = !0, clearTimeout(i);
1771
- for (let e of r) e.close();
1772
- r.clear();
1773
- };
1774
- try {
1775
- l(e, (e) => e === "src" || ar.test(e)), l(y.join(e, "src"), (e) => or.includes(e));
1776
- } catch (e) {
1777
- throw u(), e;
1778
- }
1779
- return {
1780
- edited: s,
1781
- add(e) {
1782
- if (a) return;
1783
- let t = y.resolve(e);
1784
- l(y.dirname(t), (e) => e === y.basename(t));
1785
- },
1786
- close: u
1787
- };
1788
- }
1789
- //#endregion
1790
- //#region src/retryOnEdit.mts
1791
- function cr(e, t) {
1792
- return new Promise((n) => {
1793
- let r = () => n(!1);
1794
- t.addEventListener("abort", r, { once: !0 }), e.then(() => {
1795
- t.removeEventListener("abort", r), n(!0);
1796
- });
1797
- });
1798
- }
1799
- async function lr(e) {
1800
- let { cwd: t, signal: n, stdout: r, stderr: i, debounceMs: a } = e, o = !1;
1801
- for (;;) {
1802
- let s = sr(t, { debounceMs: a });
1803
- try {
1804
- return await e.attempt(s);
1805
- } catch (e) {
1806
- let t = e instanceof J ? e.path : void 0;
1807
- if (t) try {
1808
- s.add(t);
1809
- } catch (t) {
1810
- throw $(i, "build failed", Q(e), X), t;
1811
- }
1812
- if (!n.aborted && !o && t && p(t)) {
1813
- o = !0;
1814
- continue;
1815
- }
1816
- if (o = !1, $(i, "build failed", Q(e), X), n.aborted || (Z(r, "waiting for a change to retry", X), !await cr(s.edited, n))) return;
1817
- Z(r, "retrying", X);
1818
- } finally {
1819
- s.close();
1820
- }
1821
- }
1822
- }
1823
- //#endregion
1824
- //#region src/dev.mts
1825
- var ur = 1e4, dr = ["ERR_INCA_PACKAGE_JSON_NOT_FOUND", "ERR_INCA_PRODUCT_NAME_MISSING"];
1826
- async function fr(e, t) {
1827
- try {
1828
- return await Vt(e);
1829
- } catch (e) {
1830
- if (!(e instanceof J) || !dr.includes(e.code)) throw e;
1831
- Z(t, `running unnamed. ${e.message}`, X);
1832
- return;
1833
- }
1834
- }
1835
- async function pr(e, t, n, r) {
1836
- if (process.platform === "darwin" && t) try {
1837
- return (await ir({
1838
- appPath: y.join(e, "node_modules/.inca", `${t.productName}.app`),
1839
- metadata: t,
1840
- hostBin: n,
1841
- link: !0
1842
- })).executablePath;
1843
- } catch (e) {
1844
- Z(r, `running unbundled. ${Q(e).message}`, X);
1845
- return;
1846
- }
1847
- }
1848
- async function mr(e, t) {
1849
- let n = new Set(t), r;
1850
- try {
1851
- r = await k(e, {
1852
- recursive: !0,
1853
- withFileTypes: !0
1854
- });
1855
- } catch {
1856
- return;
1857
- }
1858
- await Promise.all(r.filter((e) => e.isFile()).map((t) => y.relative(e, y.join(t.parentPath, t.name))).filter((e) => !n.has(e)).map((t) => A(y.join(e, t), { force: !0 })));
1859
- }
1860
- function hr(e) {
1861
- let { NO_COLOR: t, FORCE_COLOR: n } = process.env;
1862
- if (!(!e.isTTY || t || n)) return {
1863
- ...process.env,
1864
- FORCE_COLOR: "1"
1865
- };
1866
- }
1867
- async function gr(e) {
1868
- let t = e.cwd ?? process.cwd(), n = await $n(t), r = () => {}, i = !1, a = new Promise((e) => {
1869
- r = () => {
1870
- i = !0, e();
1871
- };
1872
- }), o, s;
1873
- try {
1874
- let n = e.hostBin ?? qt();
1875
- Jt(n);
1876
- let c = e.bundler ?? Vn, l = e.stdout ?? process.stdout, u = e.stderr ?? process.stderr, d = e.experimentalHmr ? c.hmr?.bind(c) : void 0;
1877
- if (e.experimentalHmr && !d) throw new J("ERR_INCA_HMR_UNSUPPORTED", "--experimental-hmr was set, but the configured bundler has no HMR support");
1878
- let f = await lr({
1879
- cwd: t,
1880
- signal: e.signal,
1881
- stdout: l,
1882
- stderr: u,
1883
- async attempt() {
1884
- let n = await Bt(t), r = y.resolve(t, n.outDir), i = e.entry === void 0 && n.entry === void 0, a = e.entry ?? n.entry ?? await Kn(t);
1885
- Y(t, r, a);
1886
- let o = await fr(t, l);
1887
- return {
1888
- outDir: r,
1889
- entry: a,
1890
- automaticEntry: i,
1891
- metadata: o,
1892
- runtimeConfig: o ? Ht(o) : await Ut(t)
1893
- };
1894
- }
1895
- });
1896
- if (!f) return;
1897
- let { outDir: p, entry: m, automaticEntry: h, metadata: g, runtimeConfig: _ } = f, v = await pr(t, g, n, l) ?? n, b, x = !1, S = !1, w = !1, T, E = Promise.resolve(), D, O = 0, k = !1, A;
1898
- async function j() {
1899
- try {
1900
- return await b?.call("reload", void 0, ur), !0;
1901
- } catch (e) {
1902
- return $(u, "reload failed", Q(e), X), !1;
1903
- }
1904
- }
1905
- function ee(e) {
1906
- if (!e) return;
1907
- let n = C("dim", y.relative(t, e.file), { stream: l }), r = Date.now() - e.at;
1908
- Z(l, `${C("green", "reload")} ${n} (${r}ms)`, X);
1909
- }
1910
- async function te(e, t) {
1911
- let n = new $t({
1912
- entryFile: e,
1913
- hostBin: v,
1914
- env: hr(u),
1915
- onStderr: (e) => u.write(e),
1916
- onReady: () => {
1917
- x = !0, Z(l, "ready", X), S && (S = !1, j());
1918
- },
1919
- onAppError: (e) => $(u, "app error", e, X),
1920
- onExit: (e, t) => {
1921
- w = !x, T = {
1922
- code: e,
1923
- signal: t
1924
- }, Z(l, "host exited. stopping", X), r();
1925
- },
1926
- integrations: t
1927
- });
1928
- try {
1929
- await n.start();
1930
- } catch (e) {
1931
- $(u, "failed to start the host", Q(e), X);
1932
- return;
1933
- }
1934
- b = n;
1935
- }
1936
- async function M(e) {
1937
- await mr(e.outDir, e.files), b ? x ? await j() && ee(e.changed) : S = !0 : await te(e.entryFile);
1938
- }
1939
- async function ne(e) {
1940
- Y(t, p, e);
1941
- let n = ++O, a = () => n === O && !i, o = (e) => (...t) => {
1942
- a() && e(...t);
1943
- }, s;
1944
- if (d) {
1945
- let n = await d({
1946
- entry: e,
1947
- root: Wn(t, e),
1948
- envDir: t,
1949
- publicDir: y.join(t, "public"),
1950
- cwd: t,
1951
- runtimeConfig: _,
1952
- stdout: l,
1953
- stderr: u,
1954
- notify: o((e) => b?.notify("vite", e)),
1955
- reload: o((e) => {
1956
- x ? j().then((t) => {
1957
- t && ee(e);
1958
- }) : S = !0;
1959
- }),
1960
- onError: o((e) => $(u, "build failed", e, X)),
1961
- onUpdate: o(({ file: e, took: n }) => {
1962
- if (!x) return;
1963
- let r = C("dim", y.relative(t, e), { stream: l });
1964
- Z(l, `${C("green", "update")} ${r} (${n}ms)`, X);
1965
- })
1966
- });
1967
- A = (e) => n.dispatch(e), s = { close: () => (A = void 0, n.close()) }, b ? x ? await j() : S = !0 : (await te(n.entryFile, { vite: (e) => A?.(e) }), b || r());
1968
- } else s = await c.watch({
1969
- entry: e,
1970
- root: Wn(t, e),
1971
- envDir: t,
1972
- publicDir: y.join(t, "public"),
1973
- outDir: p,
1974
- runtimeConfig: _,
1975
- mode: "development",
1976
- stdout: l,
1977
- stderr: u,
1978
- onBuild: (e) => {
1979
- E = E.then(() => a() ? M(e) : void 0);
1980
- },
1981
- onError: o((e) => {
1982
- $(u, "build failed", e, X);
1983
- })
1984
- });
1985
- return {
1986
- entry: e,
1987
- async close() {
1988
- O++, await s.close();
1989
- }
1990
- };
1991
- }
1992
- async function re() {
1993
- let e = D;
1994
- D = void 0, await e?.close();
1995
- }
1996
- async function ie() {
1997
- if (i) return;
1998
- let e = Gn(t);
1999
- if (e === void 0 || e !== D?.entry) try {
2000
- e === void 0 && await re();
2001
- let n = await Kn(t);
2002
- if (k = !1, await re(), i) return;
2003
- D = await ne(n);
2004
- } catch (t) {
2005
- k || $(u, "build failed", Q(t), X), k = e === void 0;
2006
- }
2007
- }
2008
- async function N(e) {
2009
- let n = e;
2010
- for (; await Promise.race([a.then(() => !1), n.edited.then(() => !0)]);) n.close(), n = o = sr(t), E = E.then(ie), await E;
2011
- }
2012
- let P = m;
2013
- if (h) {
2014
- o = sr(t);
2015
- try {
2016
- P = await Kn(t);
2017
- } catch (e) {
2018
- P = void 0, k = !0, $(u, "build failed", Q(e), X);
2019
- }
2020
- }
2021
- P !== void 0 && (D = await ne(P)), o && (s = N(o).then(() => void 0, (e) => (r(), { error: e }))), e.signal.aborted ? r() : e.signal.addEventListener("abort", () => r(), { once: !0 }), await a;
2022
- let ae = await s;
2023
- if (await D?.close(), await E, await b?.stop(), ae) throw ae.error;
2024
- if (w) throw new J("ERR_INCA_HOST_EXITED_EARLY", "the host exited before it was ready");
2025
- if (T && T.code !== 0 && T.signal !== "SIGINT" && T.signal !== "SIGTERM") {
2026
- let { code: e, signal: t } = T;
2027
- throw new J("ERR_INCA_HOST_CRASHED", `the host exited with ${t ? `signal ${t}` : `code ${e}`}`);
2028
- }
2029
- } finally {
2030
- r(), await s, o?.close(), await n();
2031
- }
2032
- }
2033
- //#endregion
2034
- //#region src/package.mts
2035
- function _r() {
2036
- if (process.platform === "darwin") return "macos";
2037
- if (process.platform === "linux") return "linux";
2038
- throw new J("ERR_INCA_PLATFORM_UNSUPPORTED", `inca package doesn't support ${process.platform} yet`);
2039
- }
2040
- async function vr(e, t) {
2041
- await Promise.all(e.files.map(async (n) => {
2042
- let r = y.join(t, n);
2043
- await D(y.dirname(r), { recursive: !0 }), await T(y.join(e.outDir, n), r);
2044
- }));
2045
- }
2046
- function yr(e, t) {
2047
- let n = e.files.map((e) => e.split("/")[0] ?? e).find((e) => e.toLowerCase() === t.toLowerCase());
2048
- if (n !== void 0) throw new J("ERR_INCA_PRODUCT_NAME_INVALID", `the packaged app's directory "${t}" collides with "${n}" in the build output. Set a different "productName" in inca.config.ts`);
2049
- }
2050
- async function br({ metadata: e, output: t, hostBin: n }) {
2051
- let { appPath: r, resourcesDir: i } = await ir({
2052
- appPath: y.join(t.outDir, `${e.productName}.app`),
2053
- metadata: e,
2054
- hostBin: n
2055
- });
2056
- return await vr(t, i), r;
2057
- }
2058
- async function xr({ metadata: e, output: t, hostBin: n }) {
2059
- let r = c(e.productName);
2060
- yr(t, r);
2061
- let i = y.join(t.outDir, r);
2062
- await A(i, {
2063
- recursive: !0,
2064
- force: !0
2065
- }), await D(i, { recursive: !0 });
2066
- let a = y.join(i, r);
2067
- return await T(n, a), await w(a, 493), await vr(t, i), i;
2068
- }
2069
- async function Sr(e = {}) {
2070
- let t = e.cwd ?? process.cwd(), n = e.stdout ?? process.stdout, r = e.target ?? _r(), i = await Vt(t);
2071
- i.usedPackageJsonKey && Z(n, "the \"inca\" key in package.json is deprecated. move these settings to inca.config.ts"), i.identifierIsDefault && Z(n, `no "identifier" set in inca.config.ts. using generated identifier ${i.identifier}`);
2072
- let a = await Jn({
2073
- cwd: t,
2074
- entry: e.entry,
2075
- config: i,
2076
- sourcemap: e.sourcemap,
2077
- runtimeConfig: Ht(i),
2078
- bundler: e.bundler,
2079
- stdout: n,
2080
- stderr: e.stderr
2081
- }), o = e.hostBin ?? qt();
2082
- Jt(o);
2083
- let s = {
2084
- metadata: i,
2085
- output: a,
2086
- hostBin: o
2087
- };
2088
- return { appPath: r === "macos" ? await br(s) : await xr(s) };
2089
- }
2090
- //#endregion
2091
- //#region src/printConfig.mts
2092
- var Cr = {
2093
- productName: "a string",
2094
- identifier: "a string",
2095
- window: "an object",
2096
- "window.width": "a number",
2097
- "window.height": "a number",
2098
- "window.title": "a string",
2099
- "window.resizable": "true or false",
2100
- "window.minWidth": "a number",
2101
- "window.minHeight": "a number"
2102
- };
2103
- function wr(e) {
2104
- return typeof e == "number" ? "a number" : typeof e == "string" ? "a string" : typeof e == "boolean" ? "true or false" : "an object";
2105
- }
2106
- function Tr(e, t, n) {
2107
- let r = `failed to read ${t}: `, i = e.split("\n")[0] ?? "";
2108
- if (!i.startsWith(r)) return;
2109
- let a = i.slice(r.length), o = a.indexOf("]: "), s;
2110
- try {
2111
- s = JSON.parse(a.slice(0, o + 1));
2112
- } catch {
2113
- return;
2114
- }
2115
- if (!Array.isArray(s)) return;
2116
- let [c, ...l] = s, u = [c === "name" ? "productName" : c, ...l].join("."), d = Cr[u];
2117
- if (!d) return;
2118
- let f = s.reduce((e, t) => e?.[t], n), p = wr(f) === d ? "the host can't use it" : `it must be ${d}`;
2119
- return new J("ERR_INCA_CONFIG_INVALID", `${u} in inca.config.ts is ${JSON.stringify(f)}. ${p}`);
2120
- }
2121
- async function Er(e = {}) {
2122
- let t = e.cwd ?? process.cwd(), n = e.hostBin ?? qt();
2123
- Jt(n);
2124
- let r = await Ut(t) ?? {}, i = y.join(t, "node_modules/.inca/config"), a = y.join(i, "bundle.js"), o = y.join(i, "inca.json");
2125
- await D(i, { recursive: !0 }), await j(a, ""), await j(o, JSON.stringify(r, void 0, 2));
2126
- let s = ie(n, ["--print-config", a], { encoding: "utf8" });
2127
- if (s.error) throw s.error;
2128
- if (s.status !== 0) {
2129
- let e = Tr(s.stderr, o, r);
2130
- if (e) throw e;
2131
- }
2132
- return (e.stdout ?? process.stdout).write(s.stdout), (e.stderr ?? process.stderr).write(s.stderr), s.status ?? 1;
2133
- }
2134
- //#endregion
2135
- //#region src/cli.mts
2136
- function Dr(e) {
2137
- return y.relative(process.cwd(), e);
2138
- }
2139
- var Or = {
2140
- type: "boolean",
2141
- description: "Write a source map",
2142
- negativeDescription: "Skip the source map"
2143
- };
2144
- function kr() {
2145
- for (let e of [
2146
- 0,
2147
- 1,
2148
- 2
2149
- ]) try {
2150
- f.closeSync(e);
2151
- } catch {}
2152
- }
2153
- var Ar = W({
2154
- meta: {
2155
- name: "build",
2156
- description: "Bundle the app into dist"
2157
- },
2158
- args: { sourcemap: Or },
2159
- async run({ args: e }) {
2160
- try {
2161
- let t = await Jn({ sourcemap: e.sourcemap });
2162
- Z(process.stdout, `built ${Dr(t.entryFile)}`);
2163
- } catch (e) {
2164
- $(process.stderr, "build failed", Q(e)), process.exitCode = 1;
2165
- }
2166
- }
2167
- }), jr = W({
2168
- meta: {
2169
- name: "package",
2170
- description: "Package the app as an application bundle"
2171
- },
2172
- args: { sourcemap: Or },
2173
- async run({ args: e }) {
2174
- try {
2175
- let { appPath: t } = await Sr({ sourcemap: e.sourcemap });
2176
- Z(process.stdout, `packaged ${Dr(t)}`);
2177
- } catch (e) {
2178
- $(process.stderr, "package failed", Q(e)), process.exitCode = 1;
2179
- }
2180
- }
2181
- }), Mr = W({
2182
- meta: {
2183
- name: "config",
2184
- description: "Print the settings the host applies to the app"
2185
- },
2186
- async run() {
2187
- try {
2188
- process.exitCode = await Er();
2189
- } catch (e) {
2190
- $(process.stderr, "config failed", Q(e)), process.exitCode = 1;
2191
- }
2192
- }
2193
- }), Nr = W({
2194
- meta: {
2195
- name: "dev",
2196
- description: "Run the app in a development window"
2197
- },
2198
- args: { "experimental-hmr": {
2199
- type: "boolean",
2200
- description: "Apply edits without a reload (or set INCA_EXPERIMENTAL_HMR)"
2201
- } },
2202
- async run({ args: e }) {
2203
- "sourcemap" in e && rn(process.stderr, "dev ignores --sourcemap and --no-sourcemap", { timestamp: !0 });
2204
- let t = new AbortController(), n = () => {
2205
- t.signal.aborted || (Z(process.stderr, "shutting down", { timestamp: !0 }), t.abort());
2206
- };
2207
- process.on("SIGINT", n), process.on("SIGTERM", n);
2208
- let r = e["experimental-hmr"] === !0 || ![
2209
- "",
2210
- "0",
2211
- "false"
2212
- ].includes(process.env.INCA_EXPERIMENTAL_HMR ?? "");
2213
- r && Z(process.stdout, "experimental HMR active", { timestamp: !0 });
2214
- try {
2215
- await gr({
2216
- signal: t.signal,
2217
- experimentalHmr: r
2218
- }), t.signal.aborted && kr();
2219
- } catch (e) {
2220
- $(process.stderr, "dev failed", Q(e), { timestamp: !0 }), process.exitCode = 1;
2221
- }
2222
- }
2223
- }), Pr = W({
2224
- meta: {
2225
- name: "inca",
2226
- version: Be,
2227
- description: Ve
2228
- },
2229
- subCommands: {
2230
- dev: Nr,
2231
- build: Ar,
2232
- package: jr,
2233
- config: Mr
2234
- }
2235
- });
2236
- async function Fr(e = process.argv) {
2237
- await Le(Pr, { rawArgs: e.slice(2) });
2238
- }
2239
- //#endregion
2240
- export { Fr as run };
31
+ `}async function tr(e){let{appPath:t,metadata:n,hostBin:r}=e;await A(t,{recursive:!0,force:!0});let i=b.join(t,`Contents`),a=b.join(i,`MacOS`),o=b.join(i,`Resources`);await D(a,{recursive:!0}),await D(o,{recursive:!0});let s=b.join(a,n.productName);e.link?await E(r,s).catch(()=>T(r,s)):await T(r,s),await ee(s,493);let c={CFBundleName:n.productName,CFBundleDisplayName:n.productName,CFBundleExecutable:n.productName,CFBundleIdentifier:n.identifier,CFBundleVersion:n.version,CFBundleShortVersionString:n.version,CFBundlePackageType:`APPL`,CFBundleInfoDictionaryVersion:`6.0`,NSHighResolutionCapable:!0};if(n.icon){let e=b.basename(n.icon);await T(n.icon,b.join(o,e)),c.CFBundleIconFile=e}return await j(b.join(i,`Info.plist`),er(c)),await j(b.join(i,`PkgInfo`),`APPL????`),{appPath:t,executablePath:s,resourcesDir:o}}const nr={productName:`a string`,identifier:`a string`,window:`an object`,dev:`an object`,"window.width":`a number`,"window.height":`a number`,"window.title":`a string`,"window.resizable":`true or false`,"window.minWidth":`a number`,"window.minHeight":`a number`,"dev.stackPaths":`a string`};function rr(e){return typeof e==`number`?`a number`:typeof e==`string`?`a string`:typeof e==`boolean`?`true or false`:`an object`}function ir(e,t,n){let r=`failed to read ${t}: `,i=e.split(`
32
+ `)[0]??``;if(!i.startsWith(r))return;let a=i.slice(r.length),o=a.indexOf(`]: `),s;try{s=JSON.parse(a.slice(0,o+1))}catch{return}if(!Array.isArray(s))return;let[c,...l]=s,u=[c===`name`?`productName`:c,...l].join(`.`),d=nr[u];if(!d)return;let f=s.reduce((e,t)=>e?.[t],n),p=rr(f)===d?`the host can't use it`:`it must be ${d}`;return new K(`ERR_INCA_CONFIG_INVALID`,`${u} in inca.config.ts is ${JSON.stringify(f)}. ${p}`)}function ar(e,t,n,r){let i=ie(e,[`--print-config`,t],{encoding:`utf8`});if(i.error)throw i.error;if(i.status!==0){let e=ir(i.stderr,n,r);if(e)throw e}return i}function or(e,t){let n=b.join(b.dirname(t),`inca.json`),r={};try{r=JSON.parse(g(n,`utf8`))}catch{}let i=ar(e,t,n,r);if(i.status===null)throw new K(`ERR_INCA_HOST_EXITED_EARLY`,`the host exited with signal ${String(i.signal)} before it read the config`);if(i.status!==0)throw new K(`ERR_INCA_CONFIG_INVALID`,`the host can't read ${n}. it reported "${i.stderr.split(`
33
+ `)[0]??``}"`)}function sr(e,t){let n;try{n=J(),Y(n)}catch(e){if(e instanceof K&&(e.code===`ERR_INCA_HOST_BIN_UNRESOLVED`||e.code===`ERR_INCA_HOST_BIN_NOT_FOUND`)){an(t,`no host binary found, so the config was not checked`);return}throw e}or(n,e)}async function cr(e={}){let t=e.cwd??process.cwd(),n=e.hostBin??J();Y(n);let r=await Jt(t,{dev:!0}),i=b.join(t,`node_modules/.inca/config`),a=b.join(i,`bundle.js`),o=b.join(i,`inca.json`);await D(i,{recursive:!0}),await j(a,``),await j(o,JSON.stringify(H(r,t,i),void 0,2));let s=ar(n,a,o,r);return(e.stdout??process.stdout).write(s.stdout),(e.stderr??process.stderr).write(s.stderr),s.status??1}const lr=/^(?:inca\.config\.[a-z0-9]+|package\.json)$/,ur=[...zn,`App.vue`];function dr(e,t={}){let n=t.debounceMs??100,r=/* @__PURE__ */ new Set,i,a=!1,o=()=>{},s=new Promise(e=>{o=e}),c=()=>{a||(clearTimeout(i),i=setTimeout(o,n),i.unref())},l=(e,t)=>{let n=e;for(let e;!m(n)&&(e=b.dirname(n))!==n;)n=e;let i=n===e?void 0:b.relative(n,e).split(b.sep)[0],a=y(n);a.on(`change`,(e,n)=>{let r=n===null?null:String(n);(r===null||(i===void 0?t(r):r===i))&&c()}),a.on(`error`,()=>{a.close(),r.delete(a),c()}),r.add(a)},u=()=>{a=!0,clearTimeout(i);for(let e of r)e.close();r.clear()};try{l(e,e=>e===`src`||lr.test(e)),l(b.join(e,`src`),e=>ur.includes(e))}catch(e){throw u(),e}return{edited:s,add(e){if(a)return;let t=b.resolve(e);l(b.dirname(t),e=>e===b.basename(t))},close:u}}function fr(e,t){return new Promise(n=>{let r=()=>n(!1);t.addEventListener(`abort`,r,{once:!0}),e.then(()=>{t.removeEventListener(`abort`,r),n(!0)})})}async function pr(e){let{cwd:t,signal:n,stdout:r,stderr:i,debounceMs:a}=e,o=!1;for(;;){let s=dr(t,{debounceMs:a});try{return await e.attempt(s)}catch(e){let t=e instanceof K?e.path:void 0;if(t)try{s.add(t)}catch(t){throw $(i,`build failed`,Q(e),X),t}if(!n.aborted&&!o&&t&&m(t)){o=!0;continue}if(o=!1,$(i,`build failed`,Q(e),X),n.aborted||(Z(r,`waiting for a change to retry`,X),!await fr(s.edited,n)))return;Z(r,`retrying`,X)}finally{s.close()}}}const mr=[`ERR_INCA_PACKAGE_JSON_NOT_FOUND`,`ERR_INCA_PRODUCT_NAME_MISSING`];async function hr(e,t){try{return await Kt(e)}catch(e){if(!(e instanceof K)||!mr.includes(e.code))throw e;Z(t,`running unnamed. ${e.message}`,X);return}}async function gr(e,t,n,r){if(process.platform===`darwin`&&t)try{return(await tr({appPath:b.join(e,`node_modules/.inca`,`${t.productName}.app`),metadata:t,hostBin:n,link:!0})).executablePath}catch(e){Z(r,`running unbundled. ${Q(e).message}`,X);return}}async function _r(e,t){let n=new Set(t),r;try{r=await k(e,{recursive:!0,withFileTypes:!0})}catch{return}await Promise.all(r.filter(e=>e.isFile()).map(t=>b.relative(e,b.join(t.parentPath,t.name))).filter(e=>!n.has(e)).map(t=>A(b.join(e,t),{force:!0})))}function vr(e){let{NO_COLOR:t,FORCE_COLOR:n}=process.env;if(!(!e.isTTY||t||n))return{...process.env,FORCE_COLOR:`1`}}async function yr(e){let t=e.cwd??process.cwd(),n=await Xn(t),r=()=>{},i=!1,a=new Promise(e=>{r=()=>{i=!0,e()}}),o,s;try{let n=e.hostBin??J();Y(n);let c=e.bundler??Rn,l=e.stdout??process.stdout,u=e.stderr??process.stderr,d=e.experimentalHmr?c.hmr?.bind(c):void 0;if(e.experimentalHmr&&!d)throw new K(`ERR_INCA_HMR_UNSUPPORTED`,`--experimental-hmr was set, but the configured bundler has no HMR support`);let f=await pr({cwd:t,signal:e.signal,stdout:l,stderr:u,async attempt(){let n=await Wt(t),r=b.resolve(t,n.outDir),i=e.entry===void 0&&n.entry===void 0,a=e.entry??n.entry??await Un(t);q(t,r,a);let o=await hr(t,l);return{outDir:r,entry:a,automaticEntry:i,metadata:o,runtimeConfig:o?qt(o,{dev:!0}):await Jt(t,{dev:!0})}}});if(!f)return;let{outDir:p,entry:m,automaticEntry:h,metadata:g,runtimeConfig:_}=f,v=await gr(t,g,n,l)??n,y,x,S=!1,C=!1,ee=!1,T,E=Promise.resolve(),D,O=0,k=!1,A;async function j(){try{return await y?.call(`reload`,void 0,1e4),!0}catch(e){return $(u,`reload failed`,Q(e),X),!1}}function te(e){if(!e)return;let n=w(`dim`,b.relative(t,e.file),{stream:l}),r=Date.now()-e.at;Z(l,`${w(`green`,`reload`)} ${n} (${r}ms)`,X)}async function M(e,t){try{or(v,e)}catch(e){e instanceof K&&e.code===`ERR_INCA_CONFIG_INVALID`?(x=e,r()):$(u,`failed to start the host`,Q(e),X);return}let n=new tn({entryFile:e,hostBin:v,env:vr(u),onStderr:e=>u.write(e),onReady:()=>{S=!0,Z(l,`ready`,X),C&&(C=!1,j())},onAppError:e=>$(u,`app error`,e,X),onExit:(e,t)=>{ee=!S,T={code:e,signal:t},Z(l,`host exited. stopping`,X),r()},integrations:t});try{await n.start()}catch(e){$(u,`failed to start the host`,Q(e),X);return}y=n}async function ne(e){await _r(e.outDir,e.files),y?S?await j()&&te(e.changed):C=!0:await M(e.entryFile)}async function re(e){q(t,p,e);let n=++O,a=()=>n===O&&!i,o=e=>(...t)=>{a()&&e(...t)},s;if(d){let n=await d({entry:e,root:Vn(t,e),envDir:t,publicDir:b.join(t,`public`),cwd:t,runtimeConfig:_,stdout:l,stderr:u,notify:o(e=>y?.notify(`vite`,e)),reload:o(e=>{S?j().then(t=>{t&&te(e)}):C=!0}),onError:o(e=>$(u,`build failed`,e,X)),onUpdate:o(({file:e,took:n})=>{if(!S)return;let r=w(`dim`,b.relative(t,e),{stream:l});Z(l,`${w(`green`,`update`)} ${r} (${n}ms)`,X)})});A=e=>n.dispatch(e),s={close:()=>(A=void 0,n.close())},y?S?await j():C=!0:(await M(n.entryFile,{vite:e=>A?.(e)}),y||r())}else s=await c.watch({entry:e,root:Vn(t,e),envDir:t,publicDir:b.join(t,`public`),outDir:p,runtimeConfig:H(_,t,p),mode:`development`,stdout:l,stderr:u,onBuild:e=>{E=E.then(()=>a()?ne(e):void 0)},onError:o(e=>{$(u,`build failed`,e,X)})});return{entry:e,async close(){O++,await s.close()}}}async function ie(){let e=D;D=void 0,await e?.close()}async function ae(){if(i)return;let e=Hn(t);if(e===void 0||e!==D?.entry)try{e===void 0&&await ie();let n=await Un(t);if(k=!1,await ie(),i)return;D=await re(n)}catch(t){k||$(u,`build failed`,Q(t),X),k=e===void 0}}async function oe(e){let n=e;for(;await Promise.race([a.then(()=>!1),n.edited.then(()=>!0)]);)n.close(),n=o=dr(t),E=E.then(ae),await E}let N=m;if(h){o=dr(t);try{N=await Un(t)}catch(e){N=void 0,k=!0,$(u,`build failed`,Q(e),X)}}N!==void 0&&(D=await re(N)),o&&(s=oe(o).then(()=>void 0,e=>(r(),{error:e}))),e.signal.aborted?r():e.signal.addEventListener(`abort`,()=>r(),{once:!0}),await a;let se=await s;if(await D?.close(),await E,await y?.stop(),se)throw se.error;if(x)throw x;if(ee)throw new K(`ERR_INCA_HOST_EXITED_EARLY`,`the host exited before it was ready`);if(T&&T.code!==0&&T.signal!==`SIGINT`&&T.signal!==`SIGTERM`){let{code:e,signal:t}=T;throw new K(`ERR_INCA_HOST_CRASHED`,`the host exited with ${t?`signal ${t}`:`code ${e}`}`)}}finally{r(),await s,o?.close(),await n()}}function br(){if(process.platform===`darwin`)return`macos`;if(process.platform===`linux`)return`linux`;throw new K(`ERR_INCA_PLATFORM_UNSUPPORTED`,`inca package doesn't support ${process.platform} yet`)}async function xr(e,t){await Promise.all(e.files.map(async n=>{let r=b.join(t,n);await D(b.dirname(r),{recursive:!0}),await T(b.join(e.outDir,n),r)}))}function Sr(e,t){let n=e.files.map(e=>e.split(`/`)[0]??e).find(e=>e.toLowerCase()===t.toLowerCase());if(n!==void 0)throw new K(`ERR_INCA_PRODUCT_NAME_INVALID`,`the packaged app's directory "${t}" collides with "${n}" in the build output. Set a different "productName" in inca.config.ts`)}async function Cr({metadata:e,output:t,hostBin:n}){let{appPath:r,resourcesDir:i}=await tr({appPath:b.join(t.outDir,`${e.productName}.app`),metadata:e,hostBin:n});return await xr(t,i),r}async function wr({metadata:e,output:t,hostBin:n}){let r=c(e.productName);Sr(t,r);let i=b.join(t.outDir,r);await A(i,{recursive:!0,force:!0}),await D(i,{recursive:!0});let a=b.join(i,r);return await T(n,a),await ee(a,493),await xr(t,i),i}async function Tr(e={}){let t=e.cwd??process.cwd(),n=e.stdout??process.stdout,r=e.target??br(),i=await Kt(t);i.usedPackageJsonKey&&Z(n,`the "inca" key in package.json is deprecated. move these settings to inca.config.ts`),i.identifierIsDefault&&Z(n,`no "identifier" set in inca.config.ts. using generated identifier ${i.identifier}`);let a=await Gn({cwd:t,entry:e.entry,config:i,sourcemap:e.sourcemap,runtimeConfig:qt(i),bundler:e.bundler,stdout:n,stderr:e.stderr}),o=e.hostBin??J();Y(o),or(o,a.entryFile);let s={metadata:i,output:a,hostBin:o};return{appPath:r===`macos`?await Cr(s):await wr(s)}}function Er(e){return b.relative(process.cwd(),e)}const Dr={type:`boolean`,description:`Write a source map`,negativeDescription:`Skip the source map`};function Or(){for(let e of[0,1,2])try{p.closeSync(e)}catch{}}const kr=V({meta:{name:`build`,description:`Bundle the app into dist`},args:{sourcemap:Dr},async run({args:e}){try{let t=await Gn({sourcemap:e.sourcemap});sr(t.entryFile,process.stderr),Z(process.stdout,`built ${Er(t.entryFile)}`)}catch(e){$(process.stderr,`build failed`,Q(e)),process.exitCode=1}}}),Ar=V({meta:{name:`package`,description:`Package the app as an application bundle`},args:{sourcemap:Dr},async run({args:e}){try{let{appPath:t}=await Tr({sourcemap:e.sourcemap});Z(process.stdout,`packaged ${Er(t)}`)}catch(e){$(process.stderr,`package failed`,Q(e)),process.exitCode=1}}}),jr=V({meta:{name:`config`,description:`Print the settings the host applies to the app`},async run(){try{process.exitCode=await cr()}catch(e){$(process.stderr,`config failed`,Q(e)),process.exitCode=1}}}),Mr=V({meta:{name:`dev`,description:`Run the app in a development window`},args:{"experimental-hmr":{type:`boolean`,description:`Apply edits without a reload (or set INCA_EXPERIMENTAL_HMR)`}},async run({args:e}){`sourcemap`in e&&an(process.stderr,`dev ignores --sourcemap and --no-sourcemap`,{timestamp:!0});let t=new AbortController,n=()=>{t.signal.aborted||(Z(process.stderr,`shutting down`,{timestamp:!0}),t.abort())};process.on(`SIGINT`,n),process.on(`SIGTERM`,n);let r=e[`experimental-hmr`]===!0||![``,`0`,`false`].includes(process.env.INCA_EXPERIMENTAL_HMR??``);r&&Z(process.stdout,`experimental HMR active`,{timestamp:!0});try{await yr({signal:t.signal,experimentalHmr:r}),t.signal.aborted&&Or()}catch(e){$(process.stderr,`dev failed`,Q(e),{timestamp:!0}),process.exitCode=1}}}),Nr=V({meta:{name:`inca`,version:Ue,description:We},subCommands:{dev:Mr,build:kr,package:Ar,config:jr}});async function Pr(e=process.argv){await Be(Nr,{rawArgs:e.slice(2)})}export{Pr as run};