@mesh-tech/mesh-cli 0.25.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +74 -246
  2. package/dist/bin/mesh.js +2179 -1328
  3. package/dist/bin/mesh.js.map +3 -3
  4. package/dist/build-info.json +2 -2
  5. package/dist/src/commands/db/axes.d.ts +19 -0
  6. package/dist/src/commands/db/axes.js +35 -0
  7. package/dist/src/commands/db/connect.d.ts +2 -4
  8. package/dist/src/commands/db/connect.js +4 -19
  9. package/dist/src/commands/db/credentials.d.ts +2 -5
  10. package/dist/src/commands/db/credentials.js +7 -23
  11. package/dist/src/commands/db/env.d.ts +2 -5
  12. package/dist/src/commands/db/env.js +7 -23
  13. package/dist/src/commands/db/exec.js +7 -24
  14. package/dist/src/commands/db/psql.d.ts +2 -5
  15. package/dist/src/commands/db/psql.js +8 -23
  16. package/dist/src/commands/init/platform-setup.d.ts +68 -0
  17. package/dist/src/commands/init/platform-setup.js +203 -0
  18. package/dist/src/commands/init/wizard.d.ts +20 -0
  19. package/dist/src/commands/init/wizard.js +89 -7
  20. package/dist/src/commands/init.js +42 -36
  21. package/dist/src/commands/local/index.d.ts +5 -3
  22. package/dist/src/commands/local/index.js +61 -23
  23. package/dist/src/commands/local/mock-idps.d.ts +48 -0
  24. package/dist/src/commands/local/mock-idps.js +119 -0
  25. package/dist/src/commands/local/seed-zitadel.d.ts +6 -0
  26. package/dist/src/commands/local/seed-zitadel.js +76 -0
  27. package/dist/src/commands/local/stack.d.ts +11 -3
  28. package/dist/src/commands/local/stack.js +29 -15
  29. package/dist/src/commands/login.d.ts +4 -0
  30. package/dist/src/commands/login.js +16 -2
  31. package/dist/src/commands/registry.d.ts +2 -2
  32. package/dist/src/commands/registry.js +11 -6
  33. package/dist/src/commands/secrets/context.d.ts +5 -0
  34. package/dist/src/commands/secrets/context.js +5 -0
  35. package/dist/src/commands/secrets/index.js +3 -0
  36. package/dist/src/commands/secrets/migrate-config.d.ts +1 -0
  37. package/dist/src/commands/secrets/migrate-config.js +2 -3
  38. package/dist/src/commands/secrets/reindex.d.ts +1 -0
  39. package/dist/src/commands/secrets/reindex.js +2 -2
  40. package/dist/src/commands/secrets/set.d.ts +1 -0
  41. package/dist/src/commands/secrets/set.js +2 -2
  42. package/dist/src/commands/temporal.js +35 -8
  43. package/dist/src/commands/temporal.js.map +2 -2
  44. package/dist/src/commands/tunnel/index.d.ts +8 -0
  45. package/dist/src/commands/tunnel/index.js +3 -3
  46. package/dist/src/index.js +324 -62
  47. package/dist/src/index.js.map +3 -3
  48. package/dist/src/utils/context.d.ts +6 -1
  49. package/dist/src/utils/context.js +302 -39
  50. package/dist/src/utils/registry-identity.d.ts +5 -0
  51. package/dist/src/utils/registry-identity.js +16 -0
  52. package/fragments/agents/AGENTS.md.hbs +10 -2
  53. package/fragments/base/index.ts.hbs +15 -5
  54. package/package.json +2 -2
  55. package/skills/core/SKILL.md +74 -7
  56. package/stack/docker-compose.idps.yml +104 -0
  57. package/stack/idps/dex.yaml +53 -0
  58. package/templates/api-auth/index.ts.hbs +5 -4
  59. package/templates/api-role-gating/index.ts.hbs +5 -4
  60. package/templates/external-service/index.ts.hbs +5 -4
  61. package/templates/platform-repo/README.md.hbs +17 -3
  62. package/templates/platform-repo/core/Pulumi.{{tenant}}-{{env}}.yaml.hbs +7 -0
  63. package/templates/workflow/index.ts.hbs +5 -4
package/dist/src/index.js CHANGED
@@ -108,93 +108,355 @@ function startHeartbeat(label, intervalMs = 15e3) {
108
108
  }
109
109
 
110
110
  // libs/mesh-cli/src/utils/context.ts
111
+ import * as fs2 from "fs";
112
+ import * as path2 from "path";
113
+
114
+ // libs/mesh-cli/src/utils/mesh-json.ts
111
115
  import * as fs from "fs";
112
116
  import * as path from "path";
113
- function findFileUpward(filename, startDir = process.cwd()) {
117
+ var MESH_JSON = "mesh.json";
118
+ function isValidTenantName(value) {
119
+ return /^[a-z][a-z0-9-]*$/.test(value);
120
+ }
121
+ function parseMeshJson(content) {
122
+ try {
123
+ const data = JSON.parse(content);
124
+ if (typeof data?.tenant !== "string" || !isValidTenantName(data.tenant)) return null;
125
+ const platform = typeof data.platform === "string" && data.platform ? data.platform : "local";
126
+ return { tenant: data.tenant, platform };
127
+ } catch {
128
+ return null;
129
+ }
130
+ }
131
+ function findMeshJson(startDir) {
132
+ let dir = path.resolve(startDir);
133
+ while (true) {
134
+ const candidate = path.join(dir, MESH_JSON);
135
+ if (fs.existsSync(candidate)) {
136
+ let content = "";
137
+ try {
138
+ content = fs.readFileSync(candidate, "utf-8");
139
+ } catch {
140
+ return null;
141
+ }
142
+ const data = parseMeshJson(content);
143
+ return data ? { path: candidate, data } : null;
144
+ }
145
+ if (fs.existsSync(path.join(dir, ".git"))) return null;
146
+ const parent = path.dirname(dir);
147
+ if (parent === dir) return null;
148
+ dir = parent;
149
+ }
150
+ }
151
+
152
+ // libs/mesh-cli/src/utils/context.ts
153
+ function findFileUpwardInRepo(filename, startDir = process.cwd()) {
114
154
  let currentDir = startDir;
115
- const root = path.parse(currentDir).root;
116
- while (currentDir !== root) {
117
- const filePath = path.join(currentDir, filename);
118
- if (fs.existsSync(filePath)) {
155
+ const root = path2.parse(currentDir).root;
156
+ for (; ; ) {
157
+ const filePath = path2.join(currentDir, filename);
158
+ if (fs2.existsSync(filePath)) {
119
159
  return filePath;
120
160
  }
121
- currentDir = path.dirname(currentDir);
161
+ if (fs2.existsSync(path2.join(currentDir, ".git")) || fs2.existsSync(path2.join(currentDir, "pnpm-workspace.yaml")) || currentDir === root) {
162
+ return void 0;
163
+ }
164
+ currentDir = path2.dirname(currentDir);
165
+ }
166
+ }
167
+ function findRepoRoot(startDir) {
168
+ let currentDir = startDir;
169
+ const root = path2.parse(currentDir).root;
170
+ for (; ; ) {
171
+ if (fs2.existsSync(path2.join(currentDir, ".git")) || fs2.existsSync(path2.join(currentDir, "pnpm-workspace.yaml"))) {
172
+ return currentDir;
173
+ }
174
+ if (currentDir === root) {
175
+ return void 0;
176
+ }
177
+ currentDir = path2.dirname(currentDir);
178
+ }
179
+ }
180
+ function stripComments(source) {
181
+ let out = "";
182
+ for (let i = 0; i < source.length; i++) {
183
+ const ch = source[i];
184
+ if (ch === '"' || ch === "'" || ch === "`") {
185
+ const start = i;
186
+ i++;
187
+ while (i < source.length && source[i] !== ch) {
188
+ if (source[i] === "\\") i++;
189
+ i++;
190
+ }
191
+ out += source.slice(start, i + 1);
192
+ } else if (ch === "/" && source[i + 1] === "/") {
193
+ while (i < source.length && source[i] !== "\n") i++;
194
+ i--;
195
+ } else if (ch === "/" && source[i + 1] === "*") {
196
+ i += 2;
197
+ while (i < source.length && !(source[i] === "*" && source[i + 1] === "/")) i++;
198
+ i++;
199
+ } else {
200
+ out += ch;
201
+ }
202
+ }
203
+ return out;
204
+ }
205
+ function findExportedConfigStart(source) {
206
+ const declMatch = /export\s+(const\s+config\b|default\b)/.exec(source);
207
+ if (!declMatch) return void 0;
208
+ const start = source.indexOf("{", declMatch.index);
209
+ if (start === -1) return void 0;
210
+ const gap = source.slice(declMatch.index + declMatch[0].length, start);
211
+ if (!/^[\s=]*(:[^;{]*)?$/.test(gap)) return void 0;
212
+ return start;
213
+ }
214
+ function scanDepth1(source, start, visit) {
215
+ let depth = 0;
216
+ for (let i = start; i < source.length; i++) {
217
+ const ch = source[i];
218
+ if (ch === '"' || ch === "'" || ch === "`") {
219
+ i++;
220
+ while (i < source.length && source[i] !== ch) {
221
+ if (source[i] === "\\") i++;
222
+ i++;
223
+ }
224
+ } else if (ch === "{") {
225
+ depth++;
226
+ } else if (ch === "}") {
227
+ depth--;
228
+ if (depth === 0) return void 0;
229
+ } else if (depth === 1 && !/[\w$.]/.test(source[i - 1] ?? "")) {
230
+ const found = visit(i);
231
+ if (found !== void 0) return found;
232
+ }
122
233
  }
123
234
  return void 0;
124
235
  }
125
- function detectContext(stageArg) {
236
+ function extractConfigTenant(rawSource) {
237
+ const source = stripComments(rawSource);
238
+ const start = findExportedConfigStart(source);
239
+ if (start === void 0) return void 0;
240
+ const tenantRe = /tenant\s*:\s*(["'])([^"'\n]+)\1/y;
241
+ return scanDepth1(source, start, (i) => {
242
+ tenantRe.lastIndex = i;
243
+ return tenantRe.exec(source)?.[2];
244
+ });
245
+ }
246
+ function matchBlock(source, open) {
247
+ let depth = 0;
248
+ for (let i = open; i < source.length; i++) {
249
+ const ch = source[i];
250
+ if (ch === '"' || ch === "'" || ch === "`") {
251
+ i++;
252
+ while (i < source.length && source[i] !== ch) {
253
+ if (source[i] === "\\") i++;
254
+ i++;
255
+ }
256
+ } else if (ch === "{") {
257
+ depth++;
258
+ } else if (ch === "}") {
259
+ depth--;
260
+ if (depth === 0) return source.slice(open, i + 1);
261
+ }
262
+ }
263
+ return void 0;
264
+ }
265
+ function extractExportedConfigSource(cleanedSource) {
266
+ const start = findExportedConfigStart(cleanedSource);
267
+ return start === void 0 ? void 0 : matchBlock(cleanedSource, start);
268
+ }
269
+ function extractPlatformBlock(cleanedSource) {
270
+ const start = findExportedConfigStart(cleanedSource);
271
+ if (start === void 0) return void 0;
272
+ const platformRe = /platform\s*:\s*\{/y;
273
+ let open;
274
+ scanDepth1(cleanedSource, start, (i) => {
275
+ platformRe.lastIndex = i;
276
+ if (platformRe.exec(cleanedSource)) {
277
+ open = platformRe.lastIndex - 1;
278
+ return true;
279
+ }
280
+ return void 0;
281
+ });
282
+ if (open === void 0) return void 0;
283
+ return matchBlock(cleanedSource, open);
284
+ }
285
+ function pickStackFile(files, hint, explicitStack) {
286
+ if (explicitStack !== void 0) {
287
+ const wanted = `Pulumi.${explicitStack}.yaml`;
288
+ return { file: files.includes(wanted) ? wanted : void 0, qualified: true };
289
+ }
290
+ if (hint) {
291
+ const wanted = `Pulumi.${hint}.yaml`;
292
+ if (files.includes(wanted)) return { file: wanted, qualified: true };
293
+ }
294
+ const stageOf = (f) => f.slice("Pulumi.".length, -".yaml".length);
295
+ const byBaseFirst = [...files].sort(
296
+ (a, b) => stageOf(a).length - stageOf(b).length || a.localeCompare(b)
297
+ );
298
+ return { file: byBaseFirst[0], qualified: false };
299
+ }
300
+ function tenantNotDeclared(cwd, found) {
301
+ const looked = found.stackFile ? `${found.stackFile} in ${cwd} does not declare mesh:tenant` : found.hasProjectFile ? `${cwd} has a Pulumi.yaml but no Pulumi.<stack>.yaml to read mesh:tenant from` : `${cwd} is not a Pulumi project directory (no Pulumi.yaml)`;
302
+ return new MeshCliError(
303
+ `No tenant declared: ${looked}, and MESH_TENANT is not set. There is no default tenant \u2014 "mesh" is the live hub and is never assumed. Run from a directory whose Pulumi.<stack>.yaml declares mesh:tenant, set MESH_TENANT, or pass --tenant where the command accepts one.`,
304
+ {
305
+ remediation: {
306
+ command: "MESH_TENANT=<tenant> mesh \u2026 # or --tenant <tenant> where accepted, or run from a directory whose Pulumi.<stack>.yaml declares mesh:tenant"
307
+ }
308
+ }
309
+ );
310
+ }
311
+ function detectContext(stageArg, options = {}) {
126
312
  let tenant;
127
313
  let stage;
128
314
  const cwd = process.cwd();
129
- if (fs.existsSync("Pulumi.yaml")) {
130
- const files = fs.readdirSync(".").filter(
131
- (f) => f.startsWith("Pulumi.") && f.endsWith(".yaml") && f !== "Pulumi.yaml"
132
- );
133
- const configFile = files[0];
134
- if (configFile) {
135
- const content = fs.readFileSync(configFile, "utf-8");
136
- const tenantMatch = content.match(/^\s*mesh:tenant:\s*["']?([^"'\n]+)["']?/m);
315
+ const stageHint = stageArg || process.env.MESH_STAGE || process.env.SST_STAGE;
316
+ let hasProjectFile = false;
317
+ let stackFile;
318
+ let stackFilesHere = [];
319
+ let namedStackMissing = false;
320
+ if (fs2.existsSync("Pulumi.yaml")) {
321
+ hasProjectFile = true;
322
+ const files = fs2.readdirSync(".").filter((f) => f.startsWith("Pulumi.") && f.endsWith(".yaml") && f !== "Pulumi.yaml").sort();
323
+ const picked = pickStackFile(files, stageHint, options.stack);
324
+ stackFile = picked.file;
325
+ namedStackMissing = options.stack !== void 0 && picked.file === void 0;
326
+ stackFilesHere = files;
327
+ if (!picked.qualified && files.length > 1) {
328
+ const lengths = files.map((f) => f.length - "Pulumi..yaml".length).sort((a, b) => a - b);
329
+ if (lengths[0] === lengths[1]) {
330
+ logWarn(
331
+ `Several Pulumi stack configs here (${files.join(", ")}); using ${stackFile}. Pass --stack to choose one.`
332
+ );
333
+ }
334
+ }
335
+ if (stackFile) {
336
+ const content = fs2.readFileSync(stackFile, "utf-8");
337
+ const tenantMatch = content.match(/^\s*mesh:tenant:\s*["']?([^"'#\n]+)["']?/m);
137
338
  if (tenantMatch?.[1]) {
138
339
  tenant = tenantMatch[1].trim();
139
340
  }
140
- const stageMatch = configFile.match(/Pulumi\.(.+)\.yaml/);
341
+ const stageMatch = stackFile.match(/Pulumi\.(.+)\.yaml/);
141
342
  if (stageMatch?.[1]) {
142
343
  stage = stageMatch[1];
143
344
  }
144
345
  }
145
346
  }
146
- const sstConfigPath = findFileUpward("sst.config.ts");
347
+ const sstConfigPath = findFileUpwardInRepo("sst.config.ts");
147
348
  let sstDir;
148
349
  if (sstConfigPath) {
149
- sstDir = path.dirname(sstConfigPath);
150
- const parentConfigPath = path.join(sstDir, "..", "config.ts");
151
- if (fs.existsSync(parentConfigPath)) {
152
- const configContent = fs.readFileSync(parentConfigPath, "utf-8");
153
- const tenantMatch = configContent.match(/tenant:\s*["']([^"']+)["']/);
154
- if (tenantMatch) {
155
- tenant = tenantMatch[1];
156
- }
157
- }
158
- const sstStagePath = path.join(sstDir, ".sst", "stage");
159
- if (fs.existsSync(sstStagePath)) {
160
- stage = fs.readFileSync(sstStagePath, "utf-8").trim();
350
+ sstDir = path2.dirname(sstConfigPath);
351
+ const sstStagePath = path2.join(sstDir, ".sst", "stage");
352
+ if (fs2.existsSync(sstStagePath)) {
353
+ stage = fs2.readFileSync(sstStagePath, "utf-8").trim();
161
354
  }
162
355
  }
163
- if (!tenant) {
164
- const pathMatch = cwd.match(/tenants\/([^/]+)/);
356
+ const repoRoot = findRepoRoot(cwd);
357
+ const parentConfigPath = (sstDir ? [path2.join(sstDir, "config.ts"), path2.join(sstDir, "..", "config.ts")] : hasProjectFile ? [path2.resolve(cwd, "..", "config.ts")] : []).filter(
358
+ // Fail closed when no checkout root is found — same stance as the
359
+ // no-tenant throw: an arbitrary config.ts is not a context source.
360
+ (p) => repoRoot !== void 0 && !path2.relative(repoRoot, p).startsWith("..")
361
+ ).find((p) => fs2.existsSync(p));
362
+ const parentConfig = parentConfigPath ? fs2.readFileSync(parentConfigPath, "utf-8") : void 0;
363
+ if (parentConfig && !tenant) {
364
+ tenant = extractConfigTenant(parentConfig);
365
+ }
366
+ if (!tenant && repoRoot) {
367
+ const pathMatch = path2.relative(repoRoot, cwd).match(/(?:^|\/)tenants\/([^/]+)/);
165
368
  if (pathMatch) {
166
369
  tenant = pathMatch[1];
167
370
  }
168
371
  }
169
- stage = stageArg || process.env.MESH_STAGE || process.env.SST_STAGE || stage || "dev";
170
- tenant = process.env.MESH_TENANT || tenant || "mesh";
372
+ if (!tenant) {
373
+ tenant = findMeshJson(cwd)?.data.tenant;
374
+ }
375
+ stage = stageHint || stage || "dev";
376
+ const detectedTenant = tenant;
377
+ tenant = options.tenant || process.env.MESH_TENANT || tenant;
378
+ if (!tenant) {
379
+ throw tenantNotDeclared(cwd, { stackFile, hasProjectFile });
380
+ }
381
+ if (!/^[a-z0-9][a-z0-9-]*$/.test(tenant)) {
382
+ throw new MeshCliError(
383
+ `Invalid tenant "${tenant}": expected lowercase alphanumerics and hyphens. This usually means a config file was misparsed.`,
384
+ { remediation: { command: "mesh <command> --tenant <tenant>" } }
385
+ );
386
+ }
387
+ const overrideSource = options.tenant ? "--tenant" : "MESH_TENANT";
388
+ const tenantOverridden = detectedTenant !== void 0 && detectedTenant !== tenant;
389
+ if (tenantOverridden) {
390
+ logWarn(
391
+ `${overrideSource}=${tenant} overrides the tenant detected here (${detectedTenant}); paths will use ${tenant} while implicit AWS credentials still come from the ${detectedTenant} app's deployer role`
392
+ );
393
+ }
171
394
  let platformEnv = stage;
172
- let platformEnvMap = {};
395
+ const platformEnvMap = /* @__PURE__ */ Object.create(null);
173
396
  let defaultPlatformEnv;
174
- const configPath = sstDir ? path.join(sstDir, "..", "config.ts") : "../config.ts";
175
- if (fs.existsSync(configPath)) {
176
- const configContent = fs.readFileSync(configPath, "utf-8");
177
- const mapMatch = configContent.match(/platformEnvMap:\s*\{([^}]+)\}/);
178
- if (mapMatch?.[1]) {
179
- const entries = mapMatch[1].matchAll(/(\w+):\s*["']([^"']+)["']/g);
397
+ if (parentConfig) {
398
+ const cleaned = stripComments(parentConfig);
399
+ const platformScope = extractPlatformBlock(cleaned);
400
+ const legacyScope = extractExportedConfigSource(cleaned);
401
+ const mapSource = (scope, key) => {
402
+ if (!scope) return void 0;
403
+ const at = scope.search(new RegExp(`${key}\\s*:\\s*\\{`));
404
+ if (at === -1) return void 0;
405
+ return matchBlock(scope, scope.indexOf("{", at));
406
+ };
407
+ const mapBody = mapSource(platformScope, "envMap") ?? mapSource(legacyScope, "platformEnvMap");
408
+ if (mapBody) {
409
+ const entries = mapBody.matchAll(/(?:"([^"]+)"|'([^']+)'|([\w-]+))\s*:\s*["']([^"']+)["']/g);
180
410
  for (const entry of entries) {
181
- const key = entry[1];
182
- const value = entry[2];
411
+ const key = entry[1] ?? entry[2] ?? entry[3];
412
+ const value = entry[4];
183
413
  if (key && value) {
184
414
  platformEnvMap[key] = value;
185
415
  }
186
416
  }
187
417
  }
188
- const defaultMatch = configContent.match(/defaultPlatformEnv:\s*["']([^"']+)["']/);
418
+ const defaultMatch = platformScope?.match(/defaultEnv:\s*["']([^"']+)["']/) ?? legacyScope?.match(/defaultPlatformEnv:\s*["']([^"']+)["']/);
189
419
  if (defaultMatch?.[1]) {
190
420
  defaultPlatformEnv = defaultMatch[1];
191
421
  }
192
422
  }
193
- const tenantPrefix = `${tenant}-`;
194
- const parsedEnv = stage.startsWith(tenantPrefix) ? stage.slice(tenantPrefix.length) : stage;
195
- platformEnv = platformEnvMap[parsedEnv] ?? platformEnvMap[stage] ?? defaultPlatformEnv ?? parsedEnv;
423
+ const tenantPrefix = [detectedTenant, tenant].filter((t) => Boolean(t)).map((t) => `${t}-`).sort((a, b) => b.length - a.length).find((p) => stage.startsWith(p));
424
+ const parsedEnv = tenantPrefix ? stage.slice(tenantPrefix.length) : stage;
425
+ const mapApplies = !tenantOverridden;
426
+ if (tenantOverridden && (Object.keys(platformEnvMap).length > 0 || defaultPlatformEnv)) {
427
+ logWarn(
428
+ `${overrideSource}=${tenant} also leaves the ${detectedTenant} config's envMap unapplied \u2014 it maps ${detectedTenant}'s stages, not ${tenant}'s \u2014 so the platform env is the stage itself ("${parsedEnv}"). Pass -e/--env where the command takes one, or run from the ${tenant} app's own directory.`
429
+ );
430
+ }
431
+ const mapped = mapApplies ? platformEnvMap[stage] ?? platformEnvMap[parsedEnv] : void 0;
432
+ if (mapped) {
433
+ platformEnv = mapped;
434
+ } else if (mapApplies && defaultPlatformEnv) {
435
+ if (namedStackMissing) {
436
+ const known = [
437
+ ...stackFilesHere.map((f) => f.slice("Pulumi.".length, -".yaml".length)),
438
+ ...Object.keys(platformEnvMap)
439
+ ].filter((v, i, a) => a.indexOf(v) === i);
440
+ throw new MeshCliError(
441
+ `No such stack "${options.stack}": ${cwd} has no Pulumi.${options.stack}.yaml, and the app's config.ts does not map it to a platform env \u2014 it would address defaultEnv "${defaultPlatformEnv}", not the stack you asked for.`,
442
+ {
443
+ remediation: {
444
+ command: `mesh <command> --stack <${known.join("|") || "stack"}>`
445
+ }
446
+ }
447
+ );
448
+ }
449
+ platformEnv = defaultPlatformEnv;
450
+ if (Object.keys(platformEnvMap).length > 0) {
451
+ logWarn(
452
+ `Stage "${stage}" is not in the config's envMap (${Object.keys(platformEnvMap).join(", ")}); using defaultEnv "${defaultPlatformEnv}".`
453
+ );
454
+ }
455
+ } else {
456
+ platformEnv = parsedEnv;
457
+ }
196
458
  logInfo(`Stage: ${stage}, Platform: ${platformEnv}, Tenant: ${tenant}`);
197
- return { tenant, stage, platformEnv };
459
+ return { tenant, stage, platformEnv, detectedTenant };
198
460
  }
199
461
 
200
462
  // libs/mesh-cli/src/utils/bastion.ts
@@ -363,12 +625,12 @@ function buildDatabaseUrl(creds, options) {
363
625
  return url;
364
626
  }
365
627
  async function readSstOutputs() {
366
- const fs3 = await import("fs");
367
- if (!fs3.existsSync(".sst/outputs.json")) {
628
+ const fs4 = await import("fs");
629
+ if (!fs4.existsSync(".sst/outputs.json")) {
368
630
  return null;
369
631
  }
370
632
  try {
371
- const content = fs3.readFileSync(".sst/outputs.json", "utf-8");
633
+ const content = fs4.readFileSync(".sst/outputs.json", "utf-8");
372
634
  const outputs = JSON.parse(content);
373
635
  if (outputs.databaseUrl) {
374
636
  logInfo("Found SST outputs with database config");
@@ -387,19 +649,19 @@ async function readSstOutputs() {
387
649
 
388
650
  // libs/mesh-cli/src/utils/pulumi.ts
389
651
  import { execFileSync } from "child_process";
390
- import * as path2 from "path";
391
- import * as fs2 from "fs";
652
+ import * as path3 from "path";
653
+ import * as fs3 from "fs";
392
654
  function findAppRoot(startDir) {
393
655
  let dir = startDir;
394
656
  while (true) {
395
- if (fs2.existsSync(path2.join(dir, "Pulumi.yaml"))) return dir;
396
- const parent = path2.dirname(dir);
657
+ if (fs3.existsSync(path3.join(dir, "Pulumi.yaml"))) return dir;
658
+ const parent = path3.dirname(dir);
397
659
  if (parent === dir) return null;
398
660
  dir = parent;
399
661
  }
400
662
  }
401
663
  function findStackConfigs(appRoot) {
402
- return fs2.readdirSync(appRoot).filter((f) => /^Pulumi\..+\.yaml$/.test(f) && f !== "Pulumi.yaml").map((f) => f.replace(/^Pulumi\./, "").replace(/\.yaml$/, ""));
664
+ return fs3.readdirSync(appRoot).filter((f) => /^Pulumi\..+\.yaml$/.test(f) && f !== "Pulumi.yaml").map((f) => f.replace(/^Pulumi\./, "").replace(/\.yaml$/, ""));
403
665
  }
404
666
  function getCurrentStack(appRoot) {
405
667
  try {
@@ -414,9 +676,9 @@ function getCurrentStack(appRoot) {
414
676
  }
415
677
  }
416
678
  function readStackConfig(appRoot, stack, key) {
417
- const configFile = path2.join(appRoot, `Pulumi.${stack}.yaml`);
418
- if (!fs2.existsSync(configFile)) return null;
419
- const content = fs2.readFileSync(configFile, "utf-8");
679
+ const configFile = path3.join(appRoot, `Pulumi.${stack}.yaml`);
680
+ if (!fs3.existsSync(configFile)) return null;
681
+ const content = fs3.readFileSync(configFile, "utf-8");
420
682
  const pattern = new RegExp(`^\\s+${key.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}:\\s*(.+)$`, "m");
421
683
  const match = content.match(pattern);
422
684
  if (!match) return null;
@@ -453,7 +715,7 @@ function pulumiStackOutput(appRoot, key, extraArgs, env) {
453
715
 
454
716
  // libs/mesh-cli/src/utils/vpn.ts
455
717
  import { execFile, execFileSync as execFileSync2 } from "node:child_process";
456
- import { existsSync as existsSync3 } from "node:fs";
718
+ import { existsSync as existsSync4 } from "node:fs";
457
719
  var TAILSCALE_PATHS = [
458
720
  "tailscale",
459
721
  "/Applications/Tailscale.app/Contents/MacOS/Tailscale"
@@ -478,7 +740,7 @@ function headscaleDnsConfig(tenant = "mesh", env = "dev", overrides) {
478
740
  };
479
741
  }
480
742
  function execTailscaleCmd(args) {
481
- const socketPath = TAILSCALE_SOCKET_PATHS.find(existsSync3);
743
+ const socketPath = TAILSCALE_SOCKET_PATHS.find(existsSync4);
482
744
  const attempts = [];
483
745
  for (const binary of TAILSCALE_PATHS) {
484
746
  if (socketPath) {
@@ -486,7 +748,7 @@ function execTailscaleCmd(args) {
486
748
  }
487
749
  attempts.push({ binary, args });
488
750
  }
489
- return new Promise((resolve, reject) => {
751
+ return new Promise((resolve3, reject) => {
490
752
  let index = 0;
491
753
  function tryNext() {
492
754
  if (index >= attempts.length) {
@@ -498,7 +760,7 @@ function execTailscaleCmd(args) {
498
760
  if (error) {
499
761
  tryNext();
500
762
  } else {
501
- resolve(stdout);
763
+ resolve3(stdout);
502
764
  }
503
765
  });
504
766
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/utils/errors.ts", "../../src/utils/log.ts", "../../src/utils/context.ts", "../../src/utils/bastion.ts", "../../src/utils/credentials.ts", "../../src/utils/pulumi.ts", "../../src/utils/vpn.ts"],
4
- "mappings": "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",
5
- "names": ["chalk", "fs", "path", "fs", "execFileSync", "existsSync"]
3
+ "sources": ["../../src/utils/errors.ts", "../../src/utils/log.ts", "../../src/utils/context.ts", "../../src/utils/mesh-json.ts", "../../src/utils/bastion.ts", "../../src/utils/credentials.ts", "../../src/utils/pulumi.ts", "../../src/utils/vpn.ts"],
4
+ "mappings": ";AAQA,OAAO,WAAW;AAkBX,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC7B;AAAA,EACA;AAAA,EAET,YAAY,SAAiB,UAA+B,CAAC,GAAG;AAC9D,UAAM,SAAS,QAAQ,UAAU,SAAY,EAAE,OAAO,QAAQ,MAAM,IAAI,MAAS;AACjF,SAAK,OAAO;AACZ,SAAK,cAAc,QAAQ;AAC3B,SAAK,WAAW,QAAQ,YAAY;AAAA,EACtC;AACF;AAWO,SAAS,gBAAgB,KAAsB;AACpD,QAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,MAAI,EAAE,eAAe,cAAe,QAAO;AAC3C,QAAM,QAAQ,CAAC,OAAO;AACtB,MAAI,IAAI,aAAa,SAAS;AAC5B,UAAM,KAAK,MAAM,KAAK,gBAAW,IAAI,IAAI,YAAY,OAAO;AAAA,EAC9D;AACA,MAAI,IAAI,aAAa,MAAM;AACzB,UAAM,KAAK,MAAM,KAAK,gBAAW,IAAI,IAAI,YAAY,IAAI;AAAA,EAC3D;AACA,SAAO,MAAM,KAAK,IAAI;AACxB;AAMO,SAAS,YAAY,KAAsB;AAChD,SAAO,MAAM,IAAI,QAAG,IAAI,MAAM,gBAAgB,GAAG;AACnD;AAMO,SAAS,gBAAgB,KAAsB;AACpD,MAAI,eAAe,cAAc;AAC/B,WAAO,KAAK,UAAU;AAAA,MACpB,OAAO,IAAI;AAAA,MACX,GAAI,IAAI,cAAc,EAAE,aAAa,IAAI,YAAY,IAAI,CAAC;AAAA,IAC5D,CAAC;AAAA,EACH;AACA,SAAO,KAAK,UAAU,EAAE,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,EAAE,CAAC;AACnF;AAEA,IAAI,qBAAqB;AAalB,SAAS,gBAAgB,SAAwB;AACtD,UAAQ,IAAI,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AAC5C,uBAAqB;AACvB;AAGO,SAAS,wBAAiC;AAC/C,SAAO;AACT;AAGO,SAAS,0BAAgC;AAC9C,uBAAqB;AACvB;AAaO,SAAS,eAAe,KAAqB;AAClD,QAAM,YAAY,QAAQ,KAAK,SAAS,QAAQ;AAChD,MAAI,aAAa,CAAC,sBAAsB,GAAG;AACzC,YAAQ,IAAI,gBAAgB,GAAG,CAAC;AAAA,EAClC,OAAO;AACL,YAAQ,MAAM,YAAY,GAAG,CAAC;AAAA,EAChC;AACA,UAAQ,KAAK,eAAe,eAAe,IAAI,WAAW,CAAC;AAC7D;;;ACxHA,OAAOA,YAAW;AAMX,SAAS,UAAU,MAIf;AACT,QAAM,UAAU,KAAK,YAAY,OAAQ,KAAK,YAAY,OAAO,CAAC,KAAK;AACvE,SAAO,UAAU,IAAI,KAAK,IAAI,YAAY,EAAE,MAAM,IAAI,EAAE,CAAC,OAAO;AAClE;AAEA,SAAS,SAAiB;AACxB,SAAOA,OAAM;AAAA,IACX,UAAU;AAAA,MACR,OAAO,CAAC,CAAC,QAAQ,OAAO;AAAA,MACxB,SAAS,QAAQ,IAAI;AAAA,MACrB,KAAK,oBAAI,KAAK;AAAA,IAChB,CAAC;AAAA,EACH;AACF;AAEO,SAAS,QAAQ,SAAuB;AAC7C,UAAQ,MAAM,OAAO,IAAIA,OAAM,KAAK,QAAG,GAAG,OAAO;AACnD;AAEO,SAAS,WAAW,SAAuB;AAChD,UAAQ,MAAM,OAAO,IAAIA,OAAM,MAAM,QAAG,GAAG,OAAO;AACpD;AAEO,SAAS,QAAQ,SAAuB;AAC7C,UAAQ,MAAM,OAAO,IAAIA,OAAM,OAAO,QAAG,GAAG,OAAO;AACrD;AAEO,SAAS,SAAS,SAAuB;AAC9C,UAAQ,MAAM,OAAO,IAAIA,OAAM,IAAI,QAAG,GAAG,OAAO;AAClD;AAGO,SAAS,cAAc,IAAoB;AAChD,QAAM,WAAW,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,GAAI,CAAC;AAClD,QAAM,IAAI,KAAK,MAAM,WAAW,IAAI;AACpC,QAAM,IAAI,KAAK,MAAO,WAAW,OAAQ,EAAE;AAC3C,QAAM,IAAI,WAAW;AACrB,MAAI,IAAI,EAAG,QAAO,GAAG,CAAC,KAAK,CAAC;AAC5B,MAAI,IAAI,EAAG,QAAO,GAAG,CAAC,KAAK,CAAC;AAC5B,SAAO,GAAG,CAAC;AACb;AAQO,SAAS,eACd,OACA,aAAa,MAC4B;AACzC,QAAM,YAAY,KAAK,IAAI;AAC3B,MAAI,eAAe;AACnB,QAAM,QAAQ,YAAY,MAAM;AAC9B,QAAI,KAAK,IAAI,IAAI,eAAe,WAAY;AAC5C,YAAQ,yBAAoB,KAAK,KAAK,cAAc,KAAK,IAAI,IAAI,SAAS,CAAC,WAAW;AAAA,EACxF,GAAG,UAAU;AACb,QAAM,QAAQ;AACd,SAAO;AAAA,IACL,MAAM,MAAM,cAAc,KAAK;AAAA,IAC/B,OAAO,MAAM;AACX,qBAAe,KAAK,IAAI;AAAA,IAC1B;AAAA,EACF;AACF;;;ACrEA,YAAYC,SAAQ;AACpB,YAAYC,WAAU;;;ACDtB,YAAY,QAAQ;AACpB,YAAY,UAAU;AAGf,IAAM,YAAY;AAelB,SAAS,kBAAkB,OAAwB;AACxD,SAAO,oBAAoB,KAAK,KAAK;AACvC;AAUO,SAAS,cAAc,SAAkC;AAC9D,MAAI;AACF,UAAM,OAAO,KAAK,MAAM,OAAO;AAC/B,QAAI,OAAO,MAAM,WAAW,YAAY,CAAC,kBAAkB,KAAK,MAAM,EAAG,QAAO;AAChF,UAAM,WAAW,OAAO,KAAK,aAAa,YAAY,KAAK,WAAW,KAAK,WAAW;AACtF,WAAO,EAAE,QAAQ,KAAK,QAAQ,SAAS;AAAA,EACzC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AASO,SAAS,aAAa,UAA2D;AACtF,MAAI,MAAW,aAAQ,QAAQ;AAC/B,SAAO,MAAM;AACX,UAAM,YAAiB,UAAK,KAAK,SAAS;AAC1C,QAAO,cAAW,SAAS,GAAG;AAC5B,UAAI,UAAU;AACd,UAAI;AACF,kBAAa,gBAAa,WAAW,OAAO;AAAA,MAC9C,QAAQ;AACN,eAAO;AAAA,MACT;AACA,YAAM,OAAO,cAAc,OAAO;AAClC,aAAO,OAAO,EAAE,MAAM,WAAW,KAAK,IAAI;AAAA,IAC5C;AACA,QAAO,cAAgB,UAAK,KAAK,MAAM,CAAC,EAAG,QAAO;AAClD,UAAM,SAAc,aAAQ,GAAG;AAC/B,QAAI,WAAW,IAAK,QAAO;AAC3B,UAAM;AAAA,EACR;AACF;;;AD3BA,SAAS,qBACP,UACA,WAAmB,QAAQ,IAAI,GACX;AACpB,MAAI,aAAa;AACjB,QAAM,OAAY,YAAM,UAAU,EAAE;AAIpC,aAAS;AACP,UAAM,WAAgB,WAAK,YAAY,QAAQ;AAC/C,QAAO,eAAW,QAAQ,GAAG;AAC3B,aAAO;AAAA,IACT;AAGA,QACK,eAAgB,WAAK,YAAY,MAAM,CAAC,KACxC,eAAgB,WAAK,YAAY,qBAAqB,CAAC,KAC1D,eAAe,MACf;AACA,aAAO;AAAA,IACT;AACA,iBAAkB,cAAQ,UAAU;AAAA,EACtC;AACF;AAGA,SAAS,aAAa,UAAsC;AAC1D,MAAI,aAAa;AACjB,QAAM,OAAY,YAAM,UAAU,EAAE;AACpC,aAAS;AACP,QACK,eAAgB,WAAK,YAAY,MAAM,CAAC,KACxC,eAAgB,WAAK,YAAY,qBAAqB,CAAC,GAC1D;AACA,aAAO;AAAA,IACT;AACA,QAAI,eAAe,MAAM;AACvB,aAAO;AAAA,IACT;AACA,iBAAkB,cAAQ,UAAU;AAAA,EACtC;AACF;AAWA,SAAS,cAAc,QAAwB;AAC7C,MAAI,MAAM;AACV,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,UAAM,KAAK,OAAO,CAAC;AACnB,QAAI,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAC1C,YAAM,QAAQ;AACd;AACA,aAAO,IAAI,OAAO,UAAU,OAAO,CAAC,MAAM,IAAI;AAC5C,YAAI,OAAO,CAAC,MAAM,KAAM;AACxB;AAAA,MACF;AACA,aAAO,OAAO,MAAM,OAAO,IAAI,CAAC;AAAA,IAClC,WAAW,OAAO,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK;AAC9C,aAAO,IAAI,OAAO,UAAU,OAAO,CAAC,MAAM,KAAM;AAChD;AAAA,IACF,WAAW,OAAO,OAAO,OAAO,IAAI,CAAC,MAAM,KAAK;AAC9C,WAAK;AACL,aAAO,IAAI,OAAO,UAAU,EAAE,OAAO,CAAC,MAAM,OAAO,OAAO,IAAI,CAAC,MAAM,KAAM;AAC3E;AAAA,IACF,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAQA,SAAS,wBAAwB,QAAoC;AACnE,QAAM,YAAY,wCAAwC,KAAK,MAAM;AACrE,MAAI,CAAC,UAAW,QAAO;AACvB,QAAM,QAAQ,OAAO,QAAQ,KAAK,UAAU,KAAK;AACjD,MAAI,UAAU,GAAI,QAAO;AAQzB,QAAM,MAAM,OAAO,MAAM,UAAU,QAAQ,UAAU,CAAC,EAAE,QAAQ,KAAK;AACrE,MAAI,CAAC,qBAAqB,KAAK,GAAG,EAAG,QAAO;AAE5C,SAAO;AACT;AAQA,SAAS,WACP,QACA,OACA,OACe;AACf,MAAI,QAAQ;AACZ,WAAS,IAAI,OAAO,IAAI,OAAO,QAAQ,KAAK;AAC1C,UAAM,KAAK,OAAO,CAAC;AACnB,QAAI,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAC1C;AACA,aAAO,IAAI,OAAO,UAAU,OAAO,CAAC,MAAM,IAAI;AAC5C,YAAI,OAAO,CAAC,MAAM,KAAM;AACxB;AAAA,MACF;AAAA,IACF,WAAW,OAAO,KAAK;AACrB;AAAA,IACF,WAAW,OAAO,KAAK;AACrB;AACA,UAAI,UAAU,EAAG,QAAO;AAAA,IAC1B,WAAW,UAAU,KAAK,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG;AAC7D,YAAM,QAAQ,MAAM,CAAC;AACrB,UAAI,UAAU,OAAW,QAAO;AAAA,IAClC;AAAA,EACF;AACA,SAAO;AACT;AAYA,SAAS,oBAAoB,WAAuC;AAClE,QAAM,SAAS,cAAc,SAAS;AACtC,QAAM,QAAQ,wBAAwB,MAAM;AAC5C,MAAI,UAAU,OAAW,QAAO;AAEhC,QAAM,WAAW;AACjB,SAAO,WAAW,QAAQ,OAAO,CAAC,MAAM;AACtC,aAAS,YAAY;AACrB,WAAO,SAAS,KAAK,MAAM,IAAI,CAAC;AAAA,EAClC,CAAC;AACH;AAGA,SAAS,WAAW,QAAgB,MAAkC;AACpE,MAAI,QAAQ;AACZ,WAAS,IAAI,MAAM,IAAI,OAAO,QAAQ,KAAK;AACzC,UAAM,KAAK,OAAO,CAAC;AACnB,QAAI,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AAC1C;AACA,aAAO,IAAI,OAAO,UAAU,OAAO,CAAC,MAAM,IAAI;AAC5C,YAAI,OAAO,CAAC,MAAM,KAAM;AACxB;AAAA,MACF;AAAA,IACF,WAAW,OAAO,KAAK;AACrB;AAAA,IACF,WAAW,OAAO,KAAK;AACrB;AACA,UAAI,UAAU,EAAG,QAAO,OAAO,MAAM,MAAM,IAAI,CAAC;AAAA,IAClD;AAAA,EACF;AACA,SAAO;AACT;AAGA,SAAS,4BAA4B,eAA2C;AAC9E,QAAM,QAAQ,wBAAwB,aAAa;AACnD,SAAO,UAAU,SAAY,SAAY,WAAW,eAAe,KAAK;AAC1E;AAQA,SAAS,qBAAqB,eAA2C;AACvE,QAAM,QAAQ,wBAAwB,aAAa;AACnD,MAAI,UAAU,OAAW,QAAO;AAEhC,QAAM,aAAa;AACnB,MAAI;AACJ,aAAW,eAAe,OAAO,CAAC,MAAM;AACtC,eAAW,YAAY;AACvB,QAAI,WAAW,KAAK,aAAa,GAAG;AAClC,aAAO,WAAW,YAAY;AAC9B,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,CAAC;AACD,MAAI,SAAS,OAAW,QAAO;AAC/B,SAAO,WAAW,eAAe,IAAI;AACvC;AAiBA,SAAS,cACP,OACA,MACA,eACuC;AACvC,MAAI,kBAAkB,QAAW;AAC/B,UAAM,SAAS,UAAU,aAAa;AACtC,WAAO,EAAE,MAAM,MAAM,SAAS,MAAM,IAAI,SAAS,QAAW,WAAW,KAAK;AAAA,EAC9E;AACA,MAAI,MAAM;AACR,UAAM,SAAS,UAAU,IAAI;AAC7B,QAAI,MAAM,SAAS,MAAM,EAAG,QAAO,EAAE,MAAM,QAAQ,WAAW,KAAK;AAAA,EACrE;AACA,QAAM,UAAU,CAAC,MAAc,EAAE,MAAM,UAAU,QAAQ,CAAC,QAAQ,MAAM;AACxE,QAAM,cAAc,CAAC,GAAG,KAAK,EAAE;AAAA,IAC7B,CAAC,GAAG,MAAM,QAAQ,CAAC,EAAE,SAAS,QAAQ,CAAC,EAAE,UAAU,EAAE,cAAc,CAAC;AAAA,EACtE;AACA,SAAO,EAAE,MAAM,YAAY,CAAC,GAAG,WAAW,MAAM;AAClD;AAQA,SAAS,kBACP,KACA,OACc;AACd,QAAM,SAAS,MAAM,YACjB,GAAG,MAAM,SAAS,OAAO,GAAG,kCAC5B,MAAM,iBACJ,GAAG,GAAG,2EACN,GAAG,GAAG;AACZ,SAAO,IAAI;AAAA,IACT,uBAAuB,MAAM;AAAA,IAI7B;AAAA,MACE,aAAa;AAAA,QACX,SACE;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AACF;AAuCO,SAAS,cAAc,UAAmB,UAAgC,CAAC,GAAgB;AAChG,MAAI;AACJ,MAAI;AAEJ,QAAM,MAAM,QAAQ,IAAI;AACxB,QAAM,YAAY,YAAY,QAAQ,IAAI,cAAc,QAAQ,IAAI;AAGpE,MAAI,iBAAiB;AACrB,MAAI;AACJ,MAAI,iBAA2B,CAAC;AAGhC,MAAI,oBAAoB;AAGxB,MAAO,eAAW,aAAa,GAAG;AAChC,qBAAiB;AAEjB,UAAM,QACH,gBAAY,GAAG,EACf,OAAO,CAAC,MAAM,EAAE,WAAW,SAAS,KAAK,EAAE,SAAS,OAAO,KAAK,MAAM,aAAa,EACnF,KAAK;AAER,UAAM,SAAS,cAAc,OAAO,WAAW,QAAQ,KAAK;AAC5D,gBAAY,OAAO;AAQnB,wBAAoB,QAAQ,UAAU,UAAa,OAAO,SAAS;AACnE,qBAAiB;AAIjB,QAAI,CAAC,OAAO,aAAa,MAAM,SAAS,GAAG;AACzC,YAAM,UAAU,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,eAAe,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC;AACvF,UAAI,QAAQ,CAAC,MAAM,QAAQ,CAAC,GAAG;AAC7B;AAAA,UACE,sCAAsC,MAAM,KAAK,IAAI,CAAC,YAAY,SAAS;AAAA,QAE7E;AAAA,MACF;AAAA,IACF;AAEA,QAAI,WAAW;AACb,YAAM,UAAa,iBAAa,WAAW,OAAO;AAIlD,YAAM,cAAc,QAAQ,MAAM,2CAA2C;AAC7E,UAAI,cAAc,CAAC,GAAG;AACpB,iBAAS,YAAY,CAAC,EAAE,KAAK;AAAA,MAC/B;AAGA,YAAM,aAAa,UAAU,MAAM,oBAAoB;AACvD,UAAI,aAAa,CAAC,GAAG;AACnB,gBAAQ,WAAW,CAAC;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAGA,QAAM,gBAAgB,qBAAqB,eAAe;AAC1D,MAAI;AAEJ,MAAI,eAAe;AACjB,aAAc,cAAQ,aAAa;AAGnC,UAAM,eAAoB,WAAK,QAAQ,QAAQ,OAAO;AACtD,QAAO,eAAW,YAAY,GAAG;AAC/B,cAAW,iBAAa,cAAc,OAAO,EAAE,KAAK;AAAA,IACtD;AAAA,EACF;AASA,QAAM,WAAW,aAAa,GAAG;AACjC,QAAM,oBACJ,SACI,CAAM,WAAK,QAAQ,WAAW,GAAQ,WAAK,QAAQ,MAAM,WAAW,CAAC,IACrE,iBACE,CAAM,cAAQ,KAAK,MAAM,WAAW,CAAC,IACrC,CAAC,GAEN;AAAA;AAAA;AAAA,IAGC,CAAC,MAAM,aAAa,UAAa,CAAM,eAAS,UAAU,CAAC,EAAE,WAAW,IAAI;AAAA,EAC9E,EACC,KAAK,CAAC,MAAS,eAAW,CAAC,CAAC;AAC/B,QAAM,eAAe,mBAAsB,iBAAa,kBAAkB,OAAO,IAAI;AAQrF,MAAI,gBAAgB,CAAC,QAAQ;AAC3B,aAAS,oBAAoB,YAAY;AAAA,EAC3C;AAKA,MAAI,CAAC,UAAU,UAAU;AACvB,UAAM,YAAiB,eAAS,UAAU,GAAG,EAAE,MAAM,0BAA0B;AAC/E,QAAI,WAAW;AACb,eAAS,UAAU,CAAC;AAAA,IACtB;AAAA,EACF;AAGA,MAAI,CAAC,QAAQ;AACX,aAAS,aAAa,GAAG,GAAG,KAAK;AAAA,EACnC;AAGA,UAAQ,aAAa,SAAS;AAC9B,QAAM,iBAAiB;AACvB,WAAS,QAAQ,UAAU,QAAQ,IAAI,eAAe;AACtD,MAAI,CAAC,QAAQ;AACX,UAAM,kBAAkB,KAAK,EAAE,WAAW,eAAe,CAAC;AAAA,EAC5D;AAKA,MAAI,CAAC,uBAAuB,KAAK,MAAM,GAAG;AACxC,UAAM,IAAI;AAAA,MACR,mBAAmB,MAAM;AAAA,MAEzB,EAAE,aAAa,EAAE,SAAS,mCAAmC,EAAE;AAAA,IACjE;AAAA,EACF;AAMA,QAAM,iBAAiB,QAAQ,SAAS,aAAa;AACrD,QAAM,mBAAmB,mBAAmB,UAAa,mBAAmB;AAC5E,MAAI,kBAAkB;AACpB;AAAA,MACE,GAAG,cAAc,IAAI,MAAM,wCAAwC,cAAc,qBAC7D,MAAM,uDACjB,cAAc;AAAA,IACzB;AAAA,EACF;AAGA,MAAI,cAAc;AAIlB,QAAM,iBAAyC,uBAAO,OAAO,IAAI;AACjE,MAAI;AASJ,MAAI,cAAc;AAChB,UAAM,UAAU,cAAc,YAAY;AAC1C,UAAM,gBAAgB,qBAAqB,OAAO;AAGlD,UAAM,cAAc,4BAA4B,OAAO;AAGvD,UAAM,YAAY,CAAC,OAA2B,QAAoC;AAChF,UAAI,CAAC,MAAO,QAAO;AACnB,YAAM,KAAK,MAAM,OAAO,IAAI,OAAO,GAAG,GAAG,cAAc,CAAC;AACxD,UAAI,OAAO,GAAI,QAAO;AACtB,aAAO,WAAW,OAAO,MAAM,QAAQ,KAAK,EAAE,CAAC;AAAA,IACjD;AACA,UAAM,UAAU,UAAU,eAAe,QAAQ,KAAK,UAAU,aAAa,gBAAgB;AAC7F,QAAI,SAAS;AAGX,YAAM,UAAU,QAAQ,SAAS,0DAA0D;AAC3F,iBAAW,SAAS,SAAS;AAC3B,cAAM,MAAM,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC;AAC3C,cAAM,QAAQ,MAAM,CAAC;AACrB,YAAI,OAAO,OAAO;AAChB,yBAAe,GAAG,IAAI;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAEA,UAAM,eACJ,eAAe,MAAM,gCAAgC,KACrD,aAAa,MAAM,wCAAwC;AAC7D,QAAI,eAAe,CAAC,GAAG;AACrB,2BAAqB,aAAa,CAAC;AAAA,IACrC;AAAA,EACF;AAOA,QAAM,eAAe,CAAC,gBAAgB,MAAM,EACzC,OAAO,CAAC,MAAmB,QAAQ,CAAC,CAAC,EACrC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAClB,KAAK,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE,MAAM,EAClC,KAAK,CAAC,MAAM,MAAM,WAAW,CAAC,CAAC;AAClC,QAAM,YAAY,eAAe,MAAM,MAAM,aAAa,MAAM,IAAI;AASpE,QAAM,aAAa,CAAC;AACpB,MAAI,qBAAqB,OAAO,KAAK,cAAc,EAAE,SAAS,KAAK,qBAAqB;AACtF;AAAA,MACE,GAAG,cAAc,IAAI,MAAM,oBAAoB,cAAc,6CACpC,cAAc,kBAAkB,MAAM,uDACvB,SAAS,kEACT,MAAM;AAAA,IAChD;AAAA,EACF;AAIA,QAAM,SAAS,aAAc,eAAe,KAAK,KAAK,eAAe,SAAS,IAAK;AACnF,MAAI,QAAQ;AACV,kBAAc;AAAA,EAChB,WAAW,cAAc,oBAAoB;AAQ3C,QAAI,mBAAmB;AACrB,YAAM,QAAQ;AAAA,QACZ,GAAG,eAAe,IAAI,CAAC,MAAM,EAAE,MAAM,UAAU,QAAQ,CAAC,QAAQ,MAAM,CAAC;AAAA,QACvE,GAAG,OAAO,KAAK,cAAc;AAAA,MAC/B,EAAE,OAAO,CAAC,GAAG,GAAG,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;AACxC,YAAM,IAAI;AAAA,QACR,kBAAkB,QAAQ,KAAK,MAAM,GAAG,kBAAkB,QAAQ,KAAK,wGAE9C,kBAAkB;AAAA,QAC3C;AAAA,UACE,aAAa;AAAA,YACX,SAAS,2BAA2B,MAAM,KAAK,GAAG,KAAK,OAAO;AAAA,UAChE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAOA,kBAAc;AACd,QAAI,OAAO,KAAK,cAAc,EAAE,SAAS,GAAG;AAC1C;AAAA,QACE,UAAU,KAAK,oCACT,OAAO,KAAK,cAAc,EAAE,KAAK,IAAI,CAAC,wBACtC,kBAAkB;AAAA,MAC1B;AAAA,IACF;AAAA,EACF,OAAO;AACL,kBAAc;AAAA,EAChB;AAEA,UAAQ,UAAU,KAAK,eAAe,WAAW,aAAa,MAAM,EAAE;AAEtE,SAAO,EAAE,QAAQ,OAAO,aAAa,eAAe;AACtD;;;AE9oBA,SAAS,WAAW,2BAA2B;AAqC/C,eAAsB,uBACpB,QACA,aACA,QAC8B;AAC9B,QAAM,MAAM,IAAI,UAAU,SAAS,EAAE,OAAO,IAAI,CAAC,CAAC;AAMlD,MAAI;AAGJ,QAAM,eAAe,kBAAkB,MAAM,IAAI,WAAW;AAC5D,UAAQ,oCAAoC,YAAY,KAAK;AAE7D,MAAI;AACF,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAAA,IAChD;AAEA,QAAI,SAAS,WAAW,OAAO;AAC7B,YAAM,WAAW,KAAK,MAAM,SAAS,UAAU,KAAK;AACpD,UAAI,SAAS,iBAAiB;AAC5B,cAAM,OAAO,SAAS;AACtB,mBAAW,kBAAkB,KAAK,UAAU,EAAE;AAE9C,cAAM,eAAe,OAAO,KAAK,KAAK,QAAQ;AAC9C,YAAI,aAAa,SAAS,GAAG;AAC3B,kBAAQ,uBAAuB,aAAa,KAAK,IAAI,CAAC,EAAE;AAAA,QAC1D;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,KAAK;AAGZ,mBAAe;AAAA,EACjB;AAGA,QAAM,aAAa,kBAAkB,MAAM,IAAI,WAAW;AAC1D,UAAQ,sBAAsB,UAAU,KAAK;AAE7C,MAAI;AACF,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,IAAI,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAAA,IAC9C;AAEA,QAAI,CAAC,SAAS,WAAW,OAAO;AAC9B,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AAEA,UAAM,OAAO,KAAK,MAAM,SAAS,UAAU,KAAK;AAChD,eAAW,kBAAkB,KAAK,UAAU,EAAE;AAE9C,UAAM,eAAe,OAAO,KAAK,KAAK,QAAQ;AAC9C,QAAI,aAAa,SAAS,GAAG;AAC3B,cAAQ,uBAAuB,aAAa,KAAK,IAAI,CAAC,EAAE;AAAA,IAC1D;AAEA,WAAO;AAAA,EACT,SAAS,aAAa;AAGpB,UAAM,QAAQ,gBAAgB;AAC9B,UAAM,OAAQ,OAA6B,QAAQ;AACnD,UAAM,eAAe,0GAA0G;AAAA,MAC7H;AAAA,IACF;AAEA,QAAI,cAAc;AAChB;AAAA,QACE,4CAA4C,YAAY,sBAAiB,IAAI;AAAA,MAC/E;AACA;AAAA,QACE;AAAA,MACF;AACA;AAAA,QACE;AAAA,MACF;AACA;AAAA,QACE;AAAA,MACF;AACA;AAAA,QACE;AAAA,MACF;AAAA,IACF,OAAO;AACL,eAAS,iCAAiC,YAAY,OAAO,UAAU,EAAE;AACzE,cAAQ,4EAA4E;AAAA,IACtF;AACA,UAAM;AAAA,EACR;AACF;AAQA,eAAsB,eACpB,QACA,aACsB;AACtB,QAAM,OAAO,MAAM,uBAAuB,QAAQ,WAAW;AAE7D,QAAM,aAAa,KAAK,SAAS,KAAK;AACtC,MAAI,CAAC,YAAY;AACf,UAAM,IAAI,MAAM,gEAAgE;AAAA,EAClF;AAEA,SAAO;AAAA,IACL,YAAY,KAAK;AAAA,IACjB,aAAa,WAAW;AAAA,IACxB,SAAS,WAAW;AAAA,EACtB;AACF;;;AC5JA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AA6BP,eAAsB,eACpB,QACA,OACA,SACiB;AACjB,QAAM,iBAAiB,IAAI,qBAAqB,CAAC,CAAC;AAGlD,QAAM,aAAa,SAAS,MACxB,QAAQ,MAAM,IAAI,KAAK,IAAI,QAAQ,GAAG,oBACtC,QAAQ,MAAM,IAAI,KAAK;AAC3B,UAAQ,6BAA6B,UAAU,KAAK;AAEpD,MAAI;AACF,UAAM,WAAW,MAAM,eAAe;AAAA,MACpC,IAAI,sBAAsB,EAAE,UAAU,WAAW,CAAC;AAAA,IACpD;AAEA,QAAI,SAAS,cAAc;AACzB,YAAM,SAAS,KAAK,MAAM,SAAS,YAAY;AAG/C,UAAI,OAAO,cAAc;AACvB,cAAM,SAAS,IAAI,IAAI,OAAO,YAAY;AAC1C,mBAAW,6BAA6B,OAAO,QAAQ,EAAE;AACzD,eAAO,OAAO;AAAA,MAChB;AAGA,UAAI,OAAO,YAAY,OAAO,UAAU;AACtC,mBAAW,6BAA6B,OAAO,QAAQ,EAAE;AACzD,cAAM,WAAW,OAAO,UAAU,OAAO,YAAY;AACrD,eAAO,gBAAgB,OAAO,QAAQ,IAAI,mBAAmB,OAAO,QAAQ,CAAC,IAAI,OAAO,QAAQ,WAAW,IAAI,OAAO,QAAQ,IAAI,IAAI,QAAQ;AAAA,MAChJ;AAEA,YAAM,IAAI,MAAM,UAAU,UAAU,kEAAkE;AAAA,IACxG;AAAA,EACF,SAAS,OAAO;AACd,QAAK,MAAgB,SAAS,SAAS,mBAAmB,GAAG;AAC3D,YAAM;AAAA,IACR;AAAA,EAEF;AAEA,QAAM,IAAI,MAAM,iCAAiC,UAAU,EAAE;AAC/D;AAKA,eAAsB,iBACpB,QACA,OACA,cACA,SACA,SACA,SAC8B;AAC9B,QAAM,cAAc,MAAM,eAAe,QAAQ,OAAO,OAAO;AAC/D,QAAM,SAAS,IAAI,IAAI,WAAW;AAElC,SAAO;AAAA,IACL,UAAU,OAAO;AAAA,IACjB,UAAU,mBAAmB,OAAO,QAAQ;AAAA,IAC5C,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU,OAAO,SAAS,MAAM,CAAC;AAAA,EACnC;AACF;AAkBO,SAAS,mBACd,KACA,SACQ;AACR,MAAI;AACF,UAAM,SAAS,IAAI,IAAI,GAAG;AAG1B,QAAI,QAAQ,UAAU;AACpB,UAAI,QAAQ,SAAS,SAAS,GAAG,GAAG;AAClC,cAAM,aAAa,QAAQ,SAAS,YAAY,GAAG;AACnD,eAAO,WAAW,QAAQ,SAAS,MAAM,GAAG,UAAU;AACtD,eAAO,OAAO,QAAQ,SAAS,MAAM,aAAa,CAAC;AAAA,MACrD,OAAO;AACL,eAAO,WAAW,QAAQ;AAC1B,eAAO,OAAO,OAAO,QAAQ;AAAA,MAC/B;AAAA,IACF;AAGA,QAAI,QAAQ,SAAS;AACnB,aAAO,aAAa,IAAI,WAAW,QAAQ,OAAO;AAElD,UAAI,QAAQ,YAAY,aAAa,QAAQ,YAAY,aAAa;AACpE,eAAO,aAAa,IAAI,aAAa,sBAAsB;AAAA,MAC7D;AAAA,IACF;AAEA,WAAO,OAAO,SAAS;AAAA,EACzB,QAAQ;AAEN,WAAO;AAAA,EACT;AACF;AAKO,SAAS,iBACd,OACA,SACQ;AACR,QAAM,OAAO,SAAS,UAAU,MAAM,GAAG,EAAE,CAAC,KAAK,MAAM;AACvD,QAAM,OAAO,SAAS,UAAU,MAAM,GAAG,EAAE,CAAC,KAAK,OAAO,MAAM,IAAI;AAElE,MAAI,MAAM,gBAAgB,MAAM,QAAQ,IAAI,mBAAmB,MAAM,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,QAAQ;AAEhH,MAAI,SAAS,SAAS;AACpB,WAAO,YAAY,QAAQ,OAAO;AAClC,QAAI,QAAQ,YAAY,aAAa,QAAQ,YAAY,aAAa;AACpE,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AACT;AAKA,eAAsB,iBAIZ;AACR,QAAMC,MAAK,MAAM,OAAO,IAAI;AAE5B,MAAI,CAACA,IAAG,WAAW,mBAAmB,GAAG;AACvC,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,UAAUA,IAAG,aAAa,qBAAqB,OAAO;AAC5D,UAAM,UAAU,KAAK,MAAM,OAAO;AAElC,QAAI,QAAQ,aAAa;AACvB,cAAQ,wCAAwC;AAGhD,YAAM,iBAAiB,QAAQ,YAAY,MAAM,mBAAmB;AACpE,YAAM,YAAY,iBACd,mBAAmB,eAAe,CAAC,CAAC,IACpC;AAEJ,aAAO;AAAA,QACL,aAAa,QAAQ;AAAA,QACrB,cAAc,QAAQ;AAAA,QACtB;AAAA,MACF;AAAA,IACF;AAAA,EACF,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;;;ACrNA,SAAS,oBAAoB;AAC7B,YAAYC,WAAU;AACtB,YAAYC,SAAQ;AAMb,SAAS,YAAY,UAAiC;AAC3D,MAAI,MAAM;AACV,SAAO,MAAM;AACX,QAAO,eAAgB,WAAK,KAAK,aAAa,CAAC,EAAG,QAAO;AACzD,UAAM,SAAc,cAAQ,GAAG;AAC/B,QAAI,WAAW,IAAK,QAAO;AAC3B,UAAM;AAAA,EACR;AACF;AAMO,SAAS,iBAAiB,SAA2B;AAC1D,SAAU,gBAAY,OAAO,EAC1B,OAAO,CAAC,MAAM,qBAAqB,KAAK,CAAC,KAAK,MAAM,aAAa,EACjE,IAAI,CAAC,MAAM,EAAE,QAAQ,aAAa,EAAE,EAAE,QAAQ,WAAW,EAAE,CAAC;AACjE;AAKO,SAAS,gBAAgB,SAAgC;AAC9D,MAAI;AACF,UAAM,SAAS,aAAa,UAAU,CAAC,SAAS,aAAa,GAAG;AAAA,MAC9D,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO,CAAC,QAAQ,QAAQ,MAAM;AAAA,IAChC,CAAC;AACD,WAAO,OAAO,KAAK,KAAK;AAAA,EAC1B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAOO,SAAS,gBAAgB,SAAiB,OAAe,KAA4B;AAC1F,QAAM,aAAkB,WAAK,SAAS,UAAU,KAAK,OAAO;AAC5D,MAAI,CAAI,eAAW,UAAU,EAAG,QAAO;AAEvC,QAAM,UAAa,iBAAa,YAAY,OAAO;AACnD,QAAM,UAAU,IAAI,OAAO,QAAQ,IAAI,QAAQ,uBAAuB,MAAM,CAAC,cAAc,GAAG;AAC9F,QAAM,QAAQ,QAAQ,MAAM,OAAO;AACnC,MAAI,CAAC,MAAO,QAAO;AAEnB,SAAO,MAAM,CAAC,EAAG,KAAK,EAAE,QAAQ,gBAAgB,EAAE;AACpD;AAgBO,SAAS,kBACd,SACA,KACA,WACA,KACQ;AACR,QAAM,UAAU,MAAM,EAAE,GAAG,QAAQ,KAAK,GAAG,IAAI,IAAI;AAEnD,MAAI;AACF,UAAM,SAAS;AAAA,MACb;AAAA,MACA,CAAC,SAAS,UAAU,KAAK,UAAU,GAAG,SAAS;AAAA,MAC/C,EAAE,KAAK,SAAS,UAAU,SAAS,OAAO,CAAC,UAAU,QAAQ,MAAM,GAAG,KAAK,QAAQ;AAAA,IACrF;AAEA,QAAI,OAAO,SAAS,YAAY,GAAG;AACjC,aAAO;AAAA,QACL;AAAA,QACA,CAAC,SAAS,UAAU,KAAK,UAAU,kBAAkB,GAAG,SAAS;AAAA,QACjE,EAAE,KAAK,SAAS,UAAU,SAAS,OAAO,CAAC,UAAU,QAAQ,MAAM,GAAG,KAAK,QAAQ;AAAA,MACrF;AAAA,IACF;AACA,WAAO;AAAA,EACT,SAAS,KAAc;AAGrB,UAAM,SAAU,KAA6B,UAAU;AACvD,QAAI,OAAO,SAAS,MAAM,KAAK,OAAO,SAAS,KAAK,KAAK,OAAO,SAAS,iBAAiB,GAAG;AAC3F,YAAM;AAAA,IACR;AACA,WAAO;AAAA,MACL;AAAA,MACA,CAAC,SAAS,UAAU,KAAK,UAAU,kBAAkB,GAAG,SAAS;AAAA,MACjE,EAAE,KAAK,SAAS,UAAU,SAAS,OAAO,CAAC,UAAU,QAAQ,MAAM,GAAG,KAAK,QAAQ;AAAA,IACrF;AAAA,EACF;AACF;;;AC/GA,SAAS,UAAU,gBAAAC,qBAAoB;AACvC,SAAS,cAAAC,mBAAkB;AAC3B,IAAM,kBAAkB;AAAA,EACtB;AAAA,EACA;AACF;AAWA,eAAsB,iBAAmC;AACvD,MAAI;AACF,UAAM,SAAS,MAAM,iBAAiB,CAAC,UAAU,QAAQ,CAAC;AAC1D,UAAM,SAAkC,KAAK,MAAM,MAAM;AACzD,WAAO,OAAO,iBAAiB,aAAa,OAAO,MAAM,WAAW;AAAA,EACtE,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAOA,IAAM,yBAAyB,CAAC,sCAAsC,qBAAqB;AAiBpF,SAAS,mBACd,SAAS,QACT,MAAM,OACN,WACoB;AACpB,SAAO;AAAA,IACL,WAAW,GAAG,MAAM,IAAI,GAAG;AAAA,IAC3B,KAAK;AAAA,IACL,WAAW;AAAA,IACX,UAAU;AAAA,IACV,GAAG;AAAA,EACL;AACF;AAqBA,SAAS,iBAAiB,MAAiC;AACzD,QAAM,aAAa,uBAAuB,KAAKA,WAAU;AAOzD,QAAM,WAAsB,CAAC;AAC7B,aAAW,UAAU,iBAAiB;AACpC,QAAI,YAAY;AACd,eAAS,KAAK,EAAE,QAAQ,MAAM,CAAC,YAAY,YAAY,GAAG,IAAI,EAAE,CAAC;AAAA,IACnE;AACA,aAAS,KAAK,EAAE,QAAQ,KAAK,CAAC;AAAA,EAChC;AAEA,SAAO,IAAI,QAAQ,CAACC,UAAS,WAAW;AACtC,QAAI,QAAQ;AAEZ,aAAS,UAAgB;AACvB,UAAI,SAAS,SAAS,QAAQ;AAC5B,eAAO,IAAI,MAAM,sCAAsC,CAAC;AACxD;AAAA,MACF;AAEA,YAAM,UAAU,SAAS,OAAO;AAChC,eAAS,QAAQ,QAAQ,QAAQ,MAAM,CAAC,OAAO,WAAW;AACxD,YAAI,OAAO;AACT,kBAAQ;AAAA,QACV,OAAO;AACL,UAAAA,SAAQ,MAAM;AAAA,QAChB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,YAAQ;AAAA,EACV,CAAC;AACH;AAOA,eAAsB,mBAAqE;AACzF,MAAI;AACF,UAAM,SAAS,MAAM,iBAAiB,CAAC,UAAU,QAAQ,CAAC;AAC1D,UAAM,SAAkC,KAAK,MAAM,MAAM;AAEzD,QACE,OAAO,iBAAiB,aACxB,OAAO,MAAM,WAAW,QACxB,OAAO,KAAK,YACZ,OAAO,KAAK,cAAc,QAC1B;AACA,aAAO;AAAA,QACL,UAAU,OAAO,KAAK;AAAA,QACtB,IAAI,OAAO,KAAK,aAAa,CAAC;AAAA,MAChC;AAAA,IACF;AAEA,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAGA,SAAS,cAAc,KAAyB,KAAe,cAAc,OAAiB;AAC5F,SAAO;AAAA,IACL;AAAA,IAAQ,GAAI,cAAc,CAAC,IAAI,IAAI,CAAC;AAAA,IACpC;AAAA,IAAM,IAAI;AAAA,IAAW,IAAI;AAAA,IAAK;AAAA,IAAM,IAAI;AAAA,IAAW;AAAA,IAAM,GAAG;AAAA,EAC9D;AACF;AAQO,SAAS,eAAe,KAAsC;AACnE,MAAI;AACF,UAAM,MAAMF,cAAa,WAAW,cAAc,KAAK,CAAC,OAAO,IAAI,QAAQ,CAAC,GAAG;AAAA,MAC7E,UAAU;AAAA,MACV,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,IAClC,CAAC;AACD,UAAM,UAAU,IAAI,KAAK;AACzB,QAAI,CAAC,WAAW,YAAY,KAAM,QAAO,CAAC;AAC1C,QAAI;AACF,aAAO,KAAK,MAAM,OAAO;AAAA,IAC3B,QAAQ;AACN,cAAQ,KAAK,iEAAiE;AAC9E,aAAO,CAAC;AAAA,IACV;AAAA,EACF,SAAS,KAAK;AACZ,UAAM,MAAO,IAAc,WAAW,OAAO,GAAG;AAChD,QAAI,IAAI,SAAS,WAAW,KAAK,IAAI,SAAS,mBAAmB,GAAG;AAClE,YAAM,IAAI;AAAA,QACR,gDAAgD,IAAI,SAAS,SAAS,IAAI,GAAG;AAAA;AAAA,wBAEpD,IAAI,SAAS;AAAA,MACxC;AAAA,IACF;AACA,QAAI,IAAI,SAAS,cAAc,GAAG;AAChC,aAAO,CAAC;AAAA,IACV;AAEA,UAAM;AAAA,EACR;AACF;AAQO,SAAS,mBAAmB,KAAyB,SAA4B;AACtF,QAAM,OAAO,KAAK,UAAU,OAAO;AACnC,MAAI;AACF,IAAAA;AAAA,MACE;AAAA,MACA,cAAc,KAAK,CAAC,MAAM,MAAM,UAAU,IAAI,QAAQ,GAAG,GAAG,IAAI;AAAA,MAChE,EAAE,OAAO,MAAM,OAAO,CAAC,QAAQ,QAAQ,MAAM,EAAE;AAAA,IACjD;AAAA,EACF,SAAS,KAAK;AACZ,UAAM,MAAO,IAAc,WAAW,OAAO,GAAG;AAChD,UAAM,IAAI;AAAA,MACR,uDAAuD,IAAI,SAAS,SAAS,IAAI,GAAG;AAAA,EACjF,IAAI,SAAS,WAAW,IAAI,oBAAoB,EAAE,+CACN,IAAI,SAAS;AAAA,IAC9D;AAAA,EACF;AACF;AAMO,SAAS,qBAAqB,KAAyB,QAAsB;AAClF,MAAI;AACF,UAAM,UAAU,eAAe,GAAG;AAClC,UAAM,WAAW,QAAQ,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS,MAAM,CAAC;AAC/D,uBAAmB,KAAK,QAAQ;AAAA,EAClC,QAAQ;AAAA,EAER;AACF;",
5
+ "names": ["chalk", "fs", "path", "fs", "path", "fs", "execFileSync", "existsSync", "resolve"]
6
6
  }
@@ -2,5 +2,10 @@ export interface MeshContext {
2
2
  tenant: string;
3
3
  stage: string;
4
4
  platformEnv: string;
5
+ detectedTenant?: string;
5
6
  }
6
- export declare function detectContext(stageArg?: string): MeshContext;
7
+ export interface DetectContextOptions {
8
+ tenant?: string;
9
+ stack?: string;
10
+ }
11
+ export declare function detectContext(stageArg?: string, options?: DetectContextOptions): MeshContext;