@mesh-tech/mesh-cli 0.36.0 → 0.37.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.
- package/assets/docs-preview.css +1599 -0
- package/dist/bin/mesh.auth-preflight-JFKL4Y4X.js +48 -0
- package/dist/bin/mesh.auth-preflight-JFKL4Y4X.js.map +6 -0
- package/dist/bin/mesh.capture-history-A4IAVVIR.js +38 -0
- package/dist/bin/mesh.capture-history-A4IAVVIR.js.map +6 -0
- package/dist/bin/mesh.chunk-5A5OFSYR.js +187 -0
- package/dist/bin/mesh.chunk-5A5OFSYR.js.map +6 -0
- package/dist/bin/mesh.chunk-7DMAFUBQ.js +7715 -0
- package/dist/bin/mesh.chunk-7DMAFUBQ.js.map +6 -0
- package/dist/bin/mesh.chunk-A4DGMGHF.js +303 -0
- package/dist/bin/mesh.chunk-A4DGMGHF.js.map +6 -0
- package/dist/bin/mesh.chunk-CQ2IC4OP.js +217 -0
- package/dist/bin/mesh.chunk-CQ2IC4OP.js.map +6 -0
- package/dist/bin/mesh.chunk-F4654EPX.js +383 -0
- package/dist/bin/mesh.chunk-F4654EPX.js.map +6 -0
- package/dist/bin/mesh.chunk-IQOBTL42.js +60 -0
- package/dist/bin/mesh.chunk-IQOBTL42.js.map +6 -0
- package/dist/bin/mesh.chunk-J6DVWKRW.js +647 -0
- package/dist/bin/mesh.chunk-J6DVWKRW.js.map +6 -0
- package/dist/bin/mesh.chunk-JB7FWYSP.js +1751 -0
- package/dist/bin/mesh.chunk-JB7FWYSP.js.map +6 -0
- package/dist/bin/mesh.chunk-MCBMHWXP.js +837 -0
- package/dist/bin/mesh.chunk-MCBMHWXP.js.map +6 -0
- package/dist/bin/mesh.chunk-OW5EMVG5.js +507 -0
- package/dist/bin/mesh.chunk-OW5EMVG5.js.map +6 -0
- package/dist/bin/mesh.chunk-R5VVTXG4.js +10092 -0
- package/dist/bin/mesh.chunk-R5VVTXG4.js.map +6 -0
- package/dist/bin/mesh.chunk-VKV6Z3UI.js +1146 -0
- package/dist/bin/mesh.chunk-VKV6Z3UI.js.map +6 -0
- package/dist/bin/mesh.chunk-WFFDF346.js +59 -0
- package/dist/bin/mesh.chunk-WFFDF346.js.map +6 -0
- package/dist/bin/mesh.chunk-WOJOTUFZ.js +835 -0
- package/dist/bin/mesh.chunk-WOJOTUFZ.js.map +6 -0
- package/dist/bin/mesh.cli-reference-H3TOPIET.js +158 -0
- package/dist/bin/mesh.cli-reference-H3TOPIET.js.map +6 -0
- package/dist/bin/mesh.convert-KK6ZP256.js +274 -0
- package/dist/bin/mesh.convert-KK6ZP256.js.map +6 -0
- package/dist/bin/mesh.create-app-A5F45PWZ.js +39 -0
- package/dist/bin/mesh.create-app-A5F45PWZ.js.map +6 -0
- package/dist/bin/mesh.dev-token-server-GYDYPXYH.js +61 -0
- package/dist/bin/mesh.dev-token-server-GYDYPXYH.js.map +6 -0
- package/dist/bin/mesh.js +20 -26418
- package/dist/bin/mesh.js.map +3 -3
- package/dist/bin/mesh.login-JNHPVMCT.js +91 -0
- package/dist/bin/mesh.login-JNHPVMCT.js.map +6 -0
- package/dist/bin/mesh.platform-setup-EB64EFRN.js +37 -0
- package/dist/bin/mesh.platform-setup-EB64EFRN.js.map +6 -0
- package/dist/bin/mesh.preview-3IP34TDO.js +2410 -0
- package/dist/bin/mesh.preview-3IP34TDO.js.map +6 -0
- package/dist/bin/mesh.program-DWOKHNMQ.js +23 -0
- package/dist/bin/mesh.program-DWOKHNMQ.js.map +6 -0
- package/dist/bin/mesh.registry-OXF57OQW.js +47 -0
- package/dist/bin/mesh.registry-OXF57OQW.js.map +6 -0
- package/dist/bin/mesh.registry-identity-2HSGQGJC.js +42 -0
- package/dist/bin/mesh.registry-identity-2HSGQGJC.js.map +6 -0
- package/dist/bin/mesh.skills-MNDSMBIE.js +23 -0
- package/dist/bin/mesh.skills-MNDSMBIE.js.map +6 -0
- package/dist/bin/mesh.src-5D5DFSLX.js +1302 -0
- package/dist/bin/mesh.src-5D5DFSLX.js.map +6 -0
- package/dist/bin/mesh.src-G7TJBLNJ.js +40 -0
- package/dist/bin/mesh.src-G7TJBLNJ.js.map +6 -0
- package/dist/bin/mesh.stack-EFTFAOCV.js +64 -0
- package/dist/bin/mesh.stack-EFTFAOCV.js.map +6 -0
- package/dist/bin/mesh.start-ARIIY6CV.js +454 -0
- package/dist/bin/mesh.start-ARIIY6CV.js.map +6 -0
- package/dist/bin/mesh.wizard-ROAQAGSF.js +500 -0
- package/dist/bin/mesh.wizard-ROAQAGSF.js.map +6 -0
- package/dist/build-info.json +2 -2
- package/dist/src/commands/app-check.d.ts +2 -1
- package/dist/src/commands/app-check.js +32 -0
- package/dist/src/commands/dev.d.ts +6 -0
- package/dist/src/commands/dev.js +152 -3
- package/dist/src/commands/docs.js +33 -0
- package/dist/src/commands/local/act-as-local.d.ts +5 -0
- package/dist/src/commands/local/act-as-local.js +41 -0
- package/dist/src/commands/local/auth-provision.d.ts +1 -0
- package/dist/src/commands/local/auth-provision.js +1 -0
- package/dist/src/commands/local/index.js +4 -0
- package/dist/src/commands/local/local-api-key.d.ts +44 -0
- package/dist/src/commands/local/local-api-key.js +115 -0
- package/dist/src/commands/local/local-spicedb.d.ts +95 -0
- package/dist/src/commands/local/local-spicedb.js +304 -0
- package/dist/src/commands/local/publish-docs.d.ts +81 -0
- package/dist/src/commands/local/publish-docs.js +328 -0
- package/dist/src/commands/local/seed-zitadel.js +2 -0
- package/dist/src/commands/temporal.js +191 -61
- package/dist/src/commands/temporal.js.map +3 -3
- package/dist/src/docs/convert.d.ts +35 -0
- package/dist/src/docs/convert.js +276 -0
- package/dist/src/docs/preview-source.d.ts +13 -0
- package/dist/src/docs/preview-source.js +58 -0
- package/dist/src/docs/preview.d.ts +32 -0
- package/dist/src/docs/preview.js +279 -0
- package/fragments/agents/AGENTS.md.hbs +27 -27
- package/fragments/base/README.md.hbs +5 -2
- package/fragments/base/index.ts.hbs +17 -30
- package/fragments/base/package.json.hbs +4 -1
- package/fragments/service/api/openapi.json.hbs +1 -1
- package/fragments/service/docs/docs.yaml.hbs +10 -0
- package/fragments/service/docs/pages/getting-started.md.hbs +6 -9
- package/package.json +19 -3
- package/skills/mesh/SKILL.md +2 -2
- package/stack/docker-compose.hub.yml +6 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/docs/start.ts", "../../src/docs/serve.ts", "../../src/docs/registry-docs.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["execFileSync", "existsSync", "writeFileSync", "path", "execFileSync", "existsSync", "path", "result", "spawn", "writeFileSync"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
import {
|
|
2
|
+
bootstrapAppsRepo,
|
|
3
|
+
isInsidePlatformMonorepo,
|
|
4
|
+
shouldBootstrapAppsRepo
|
|
5
|
+
} from "./mesh.chunk-JB7FWYSP.js";
|
|
6
|
+
import {
|
|
7
|
+
PLATFORM_SETUP_DEFAULTS,
|
|
8
|
+
ensureStateBucket,
|
|
9
|
+
renderPlatformNextSteps,
|
|
10
|
+
resolvePlatformSetup,
|
|
11
|
+
scaffoldPlatformRepo
|
|
12
|
+
} from "./mesh.chunk-CQ2IC4OP.js";
|
|
13
|
+
import {
|
|
14
|
+
RegistryNotAuthorizedError
|
|
15
|
+
} from "./mesh.chunk-WOJOTUFZ.js";
|
|
16
|
+
import {
|
|
17
|
+
resolveTargetRoot,
|
|
18
|
+
syncSkills
|
|
19
|
+
} from "./mesh.chunk-F4654EPX.js";
|
|
20
|
+
import {
|
|
21
|
+
readRegistrySession
|
|
22
|
+
} from "./mesh.chunk-A4DGMGHF.js";
|
|
23
|
+
import {
|
|
24
|
+
detectLocalTenant,
|
|
25
|
+
discoverConfigForContext,
|
|
26
|
+
findMeshJson,
|
|
27
|
+
isRemoteEnvironment,
|
|
28
|
+
isValidTenantName,
|
|
29
|
+
readCredentials,
|
|
30
|
+
renderNoConfigHelp,
|
|
31
|
+
runLoginFlow,
|
|
32
|
+
tokenStillValid,
|
|
33
|
+
writeMeshJson
|
|
34
|
+
} from "./mesh.chunk-R5VVTXG4.js";
|
|
35
|
+
import "./mesh.chunk-J6DVWKRW.js";
|
|
36
|
+
import "./mesh.chunk-MCBMHWXP.js";
|
|
37
|
+
import {
|
|
38
|
+
logInfo,
|
|
39
|
+
logWarn
|
|
40
|
+
} from "./mesh.chunk-WFFDF346.js";
|
|
41
|
+
import {
|
|
42
|
+
MeshCliError,
|
|
43
|
+
emitJsonPayload
|
|
44
|
+
} from "./mesh.chunk-IQOBTL42.js";
|
|
45
|
+
import {
|
|
46
|
+
probeRegistryToken
|
|
47
|
+
} from "./mesh.chunk-5A5OFSYR.js";
|
|
48
|
+
|
|
49
|
+
// packages/mesh-cli/src/commands/init/wizard.ts
|
|
50
|
+
import * as fs from "fs";
|
|
51
|
+
import * as path from "path";
|
|
52
|
+
import { execFileSync } from "child_process";
|
|
53
|
+
import chalk from "chalk";
|
|
54
|
+
function isNewPlatform(mode) {
|
|
55
|
+
return typeof mode === "object" && "newPlatform" in mode;
|
|
56
|
+
}
|
|
57
|
+
var NO_SESSION_NO_TTY_MESSAGE = "No registry session and no terminal to sign in with.\n On a headless box: mesh registry login --device (one-time, prints a code)\n In CI with AWS creds: mesh registry login --ci";
|
|
58
|
+
var TENANT_REQUIRED_MESSAGE = "--tenant is required (no TTY for interactive mode)";
|
|
59
|
+
var REGISTRY_WHY = "Package access \u2014 a sign-in to the Mesh package REGISTRY, which is what makes `@mesh-tech/*` installable.\n It is one global identity: no AWS account, no platform, no <tenant>.<env> context.\n (`mesh login <tenant>.<env>` is the other sign-in \u2014 that one is only for deploying to, or operating, a platform.)";
|
|
60
|
+
var INTERRUPTED_EXIT_CODE = 130;
|
|
61
|
+
var STEP_LABELS = {
|
|
62
|
+
registry: "Registry access",
|
|
63
|
+
platform: "Platform sign-in",
|
|
64
|
+
repo: "Repo",
|
|
65
|
+
skills: "Agent skills"
|
|
66
|
+
};
|
|
67
|
+
var PLATFORM_SETUP_LABEL = "Platform setup";
|
|
68
|
+
function wizardExitCode(steps) {
|
|
69
|
+
return steps.some((s) => s.status === "fail") ? 1 : 0;
|
|
70
|
+
}
|
|
71
|
+
function wizardNextCommands(mode, steps = []) {
|
|
72
|
+
const owned = steps.find((s) => s.next?.length)?.next;
|
|
73
|
+
if (owned) return owned;
|
|
74
|
+
const repo = steps.find((s) => s.name === STEP_LABELS.repo);
|
|
75
|
+
const first = repo && repo.status !== "pass" && repo.fix ? repo.fix : "mesh create-app";
|
|
76
|
+
return mode === "local" ? [first] : [first, "mesh deploy up # from the app directory, once it exists"];
|
|
77
|
+
}
|
|
78
|
+
function stepBlocks(result) {
|
|
79
|
+
return result.status === "fail" && result.blocking !== false;
|
|
80
|
+
}
|
|
81
|
+
function describeMode(mode) {
|
|
82
|
+
if (mode === "local") return "local only";
|
|
83
|
+
if (isNewPlatform(mode)) return `a new platform (${mode.newPlatform.env ?? PLATFORM_SETUP_DEFAULTS.env})`;
|
|
84
|
+
return `deployed platform (${mode.platform})`;
|
|
85
|
+
}
|
|
86
|
+
function renderWizardSummary(outcome, opts = {}) {
|
|
87
|
+
const paint = opts.color === false ? { green: (s) => s, red: (s) => s, yellow: (s) => s, dim: (s) => s, cyan: (s) => s } : chalk;
|
|
88
|
+
const icon = (status) => status === "pass" ? paint.green("\u2714") : status === "fail" ? paint.red("\u2718") : status === "warn" ? paint.yellow("\u25B2") : paint.dim("\u2013");
|
|
89
|
+
const lines = [`Setup summary \u2014 tenant ${outcome.tenant} (${describeMode(outcome.mode)})`];
|
|
90
|
+
for (const step of outcome.steps) {
|
|
91
|
+
lines.push(` ${icon(step.status)} ${step.name.padEnd(18)} ${step.detail}`);
|
|
92
|
+
if (step.fix && step.status !== "pass") lines.push(` ${paint.dim("\u2192 run:")} ${paint.cyan(step.fix)}`);
|
|
93
|
+
}
|
|
94
|
+
lines.push("", "Next:");
|
|
95
|
+
for (const cmd of outcome.next) lines.push(` ${cmd}`);
|
|
96
|
+
return lines.join("\n");
|
|
97
|
+
}
|
|
98
|
+
function resolveAnswers(opts, recorded, interactive) {
|
|
99
|
+
const open = [];
|
|
100
|
+
let tenant = opts.tenant;
|
|
101
|
+
if (tenant !== void 0 && !isValidTenantName(tenant)) {
|
|
102
|
+
throw new MeshCliError(`Invalid tenant name '${tenant}' (lowercase alphanumeric + dashes, starting with a letter).`);
|
|
103
|
+
}
|
|
104
|
+
if (!tenant && (opts.yes || !interactive) && recorded) tenant = recorded.tenant;
|
|
105
|
+
if (!tenant) {
|
|
106
|
+
if (!interactive) throw new MeshCliError(TENANT_REQUIRED_MESSAGE);
|
|
107
|
+
open.push("tenant");
|
|
108
|
+
}
|
|
109
|
+
let mode;
|
|
110
|
+
const chosen = [opts.local && "--local", opts.platform && "--platform", opts.newPlatform && "--new-platform"].filter(Boolean);
|
|
111
|
+
if (chosen.length > 1) {
|
|
112
|
+
throw new MeshCliError(`${chosen.join(", ")} are mutually exclusive \u2014 a tenant runs in exactly one of those three places.`);
|
|
113
|
+
}
|
|
114
|
+
if (opts.newPlatform) mode = { newPlatform: platformSetupFlags(opts) };
|
|
115
|
+
else if (opts.platform) mode = { platform: opts.platform };
|
|
116
|
+
else if (opts.local) mode = "local";
|
|
117
|
+
else if (opts.yes || !interactive) {
|
|
118
|
+
mode = recorded && recorded.platform !== "local" ? { platform: recorded.platform } : "local";
|
|
119
|
+
} else {
|
|
120
|
+
open.push("mode");
|
|
121
|
+
}
|
|
122
|
+
return { tenant, mode, open };
|
|
123
|
+
}
|
|
124
|
+
function platformSetupFlags(opts) {
|
|
125
|
+
return {
|
|
126
|
+
env: typeof opts.newPlatform === "string" ? opts.newPlatform : void 0,
|
|
127
|
+
region: opts.region,
|
|
128
|
+
domain: opts.domain,
|
|
129
|
+
profile: opts.profile,
|
|
130
|
+
stateBucket: opts.stateBucket,
|
|
131
|
+
createStateBucket: opts.createStateBucket,
|
|
132
|
+
dir: opts.dir,
|
|
133
|
+
yes: opts.yes
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
var registryStep = {
|
|
137
|
+
name: "registry",
|
|
138
|
+
async run(ctx) {
|
|
139
|
+
const name = STEP_LABELS.registry;
|
|
140
|
+
const probe = await (ctx.seams?.probe ?? probeRegistryToken)();
|
|
141
|
+
if (probe.state === "fresh") {
|
|
142
|
+
const session2 = readRegistrySession();
|
|
143
|
+
return { name, status: "pass", detail: `Registry access OK (${session2 ? `signed in as ${session2.email}` : "token valid"})` };
|
|
144
|
+
}
|
|
145
|
+
if (probe.state === "unreachable") {
|
|
146
|
+
return {
|
|
147
|
+
name,
|
|
148
|
+
status: "warn",
|
|
149
|
+
detail: `could not reach the registry to verify access (${probe.detail ?? "unknown error"})`,
|
|
150
|
+
fix: "mesh registry login"
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
if (!ctx.interactive && !ctx.device && !ctx.profile) {
|
|
154
|
+
logWarn(NO_SESSION_NO_TTY_MESSAGE);
|
|
155
|
+
return { name, status: "fail", detail: NO_SESSION_NO_TTY_MESSAGE.split("\n")[0], fix: "mesh registry login --device", blocking: true };
|
|
156
|
+
}
|
|
157
|
+
try {
|
|
158
|
+
logInfo(REGISTRY_WHY);
|
|
159
|
+
const login = ctx.seams?.runRegistryLogin ?? (async (opts) => {
|
|
160
|
+
const { runRegistryLogin } = await import("./mesh.registry-OXF57OQW.js");
|
|
161
|
+
await runRegistryLogin(void 0, opts);
|
|
162
|
+
});
|
|
163
|
+
await login({ device: ctx.device, profile: ctx.profile });
|
|
164
|
+
} catch (err) {
|
|
165
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
166
|
+
if (err instanceof RegistryNotAuthorizedError) {
|
|
167
|
+
return {
|
|
168
|
+
name,
|
|
169
|
+
status: "fail",
|
|
170
|
+
detail: `not authorized \u2014 ${message.split("\n")[0]}`,
|
|
171
|
+
fix: "ask a Mesh platform admin for the registry:read role, then: mesh registry login",
|
|
172
|
+
blocking: false
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
name,
|
|
177
|
+
status: "fail",
|
|
178
|
+
detail: message.split("\n")[0],
|
|
179
|
+
fix: ctx.device || ctx.remote ? "mesh registry login --device" : "mesh registry login",
|
|
180
|
+
blocking: true
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
const session = readRegistrySession();
|
|
184
|
+
return { name, status: "pass", detail: `Registry access OK (${session ? `signed in as ${session.email}` : "token written"})` };
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
var newPlatformStep = {
|
|
188
|
+
name: "platform",
|
|
189
|
+
async run(ctx) {
|
|
190
|
+
const name = PLATFORM_SETUP_LABEL;
|
|
191
|
+
if (!isNewPlatform(ctx.mode)) return { name, status: "skip", detail: "no new platform requested" };
|
|
192
|
+
let setup;
|
|
193
|
+
try {
|
|
194
|
+
setup = await resolvePlatformSetup(ctx.tenant, { ...ctx.mode.newPlatform, yes: ctx.yes }, {
|
|
195
|
+
prompts: ctx.prompts,
|
|
196
|
+
interactive: ctx.interactive,
|
|
197
|
+
cwd: ctx.cwd
|
|
198
|
+
});
|
|
199
|
+
} catch (err) {
|
|
200
|
+
return {
|
|
201
|
+
name,
|
|
202
|
+
status: "fail",
|
|
203
|
+
detail: err.message.split("\n")[0],
|
|
204
|
+
fix: `mesh init --tenant ${ctx.tenant} --new-platform --domain <your-domain>`
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
try {
|
|
208
|
+
await (ctx.seams?.scaffoldPlatform ?? scaffoldPlatformRepo)(setup);
|
|
209
|
+
} catch (err) {
|
|
210
|
+
return { name, status: "fail", detail: `platform repo not scaffolded: ${err.message.split("\n")[0]}`, fix: `mesh init platform ${ctx.tenant} --dir <empty-dir>` };
|
|
211
|
+
}
|
|
212
|
+
const bucket = await ensureStateBucket(setup, ctx.seams?.stateBucket);
|
|
213
|
+
const next = renderPlatformNextSteps(setup, { bucket, relativeDir: path.relative(ctx.cwd, setup.dir) || "." });
|
|
214
|
+
return {
|
|
215
|
+
name,
|
|
216
|
+
status: setup.createStateBucket && !bucket.present ? "warn" : "pass",
|
|
217
|
+
detail: `platform repo scaffolded at ${setup.dir} (${setup.tenant}.${setup.env}, ${setup.region}, zone ${setup.env}.${setup.domain})` + (setup.createStateBucket ? ` \u2014 state bucket: ${bucket.detail}` : ` \u2014 state bucket ${setup.stateBucket} not created (see Next)`),
|
|
218
|
+
next
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
var platformStep = {
|
|
223
|
+
name: "platform",
|
|
224
|
+
async run(ctx) {
|
|
225
|
+
const name = STEP_LABELS.platform;
|
|
226
|
+
if (isNewPlatform(ctx.mode)) return newPlatformStep.run(ctx);
|
|
227
|
+
if (!ctx.context) return { name, status: "skip", detail: "local only \u2014 no platform to sign in to" };
|
|
228
|
+
const context = ctx.context;
|
|
229
|
+
const cached = readCredentials(context);
|
|
230
|
+
if (cached && tokenStillValid(cached.expiresAt)) {
|
|
231
|
+
return { name, status: "pass", detail: `signed in to ${context}${cached.email ? ` as ${cached.email}` : ""}` };
|
|
232
|
+
}
|
|
233
|
+
const config = await discoverConfigForContext(context);
|
|
234
|
+
if (!config) {
|
|
235
|
+
logWarn(renderNoConfigHelp(context));
|
|
236
|
+
return { name, status: "fail", detail: `no configuration found for ${context} (see above)`, fix: `mesh login ${context}` };
|
|
237
|
+
}
|
|
238
|
+
if (!ctx.interactive && !ctx.device) {
|
|
239
|
+
return { name, status: "fail", detail: `no session for ${context} and no terminal to sign in with`, fix: `mesh login ${context} --device` };
|
|
240
|
+
}
|
|
241
|
+
try {
|
|
242
|
+
await runLoginFlow(context, config, { device: ctx.device });
|
|
243
|
+
} catch (err) {
|
|
244
|
+
return { name, status: "fail", detail: `sign-in failed: ${err.message}`, fix: `mesh login ${context}${ctx.device ? " --device" : ""}` };
|
|
245
|
+
}
|
|
246
|
+
const creds = readCredentials(context);
|
|
247
|
+
return {
|
|
248
|
+
name,
|
|
249
|
+
status: "pass",
|
|
250
|
+
detail: `signed in to ${context}${creds?.email ? ` as ${creds.email}` : ""} \u2014 tenant registration: mesh init app-tenant --context ${context} --hub-url <hub api url>`
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
function classifyRepo(cwd) {
|
|
255
|
+
if (isInsidePlatformMonorepo(cwd)) return { kind: "platform-monorepo", root: resolveTargetRoot(cwd) };
|
|
256
|
+
if (shouldBootstrapAppsRepo(cwd)) return { kind: "empty-apps-repo", root: cwd };
|
|
257
|
+
const root = resolveTargetRoot(cwd);
|
|
258
|
+
const inRepo = fs.existsSync(path.join(root, ".git"));
|
|
259
|
+
if (!inRepo) {
|
|
260
|
+
const hasContent = fs.readdirSync(cwd).some((entry) => !entry.startsWith("."));
|
|
261
|
+
return { kind: hasContent ? "no-repo" : "empty-dir", root: cwd };
|
|
262
|
+
}
|
|
263
|
+
const hasWorkspace = fs.existsSync(path.join(root, "pnpm-workspace.yaml")) || fs.existsSync(path.join(root, "pnpm-lock.yaml"));
|
|
264
|
+
const hasApps = fs.existsSync(path.join(root, "apps")) || fs.existsSync(path.join(root, "tenants"));
|
|
265
|
+
if (hasWorkspace || hasApps) return { kind: "apps-repo", root };
|
|
266
|
+
return { kind: "other-repo", root };
|
|
267
|
+
}
|
|
268
|
+
function gitInit(dir) {
|
|
269
|
+
execFileSync("git", ["init", "-q"], { cwd: dir, stdio: ["ignore", "ignore", "pipe"] });
|
|
270
|
+
}
|
|
271
|
+
var INIT_REPO_FIX = "git init && mesh init";
|
|
272
|
+
var repoStep = {
|
|
273
|
+
name: "repo",
|
|
274
|
+
async run(ctx) {
|
|
275
|
+
const name = STEP_LABELS.repo;
|
|
276
|
+
if (ctx.skipRepo) return { name, status: "skip", detail: "--skip-repo" };
|
|
277
|
+
if (isNewPlatform(ctx.mode)) {
|
|
278
|
+
return { name, status: "skip", detail: "setting up a platform \u2014 the apps repo comes after the first deploy (see Next)" };
|
|
279
|
+
}
|
|
280
|
+
const { kind, root } = classifyRepo(ctx.cwd);
|
|
281
|
+
switch (kind) {
|
|
282
|
+
case "platform-monorepo":
|
|
283
|
+
return { name, status: "skip", detail: "inside mesh-platform \u2014 apps here link workspace packages; nothing to set up" };
|
|
284
|
+
case "empty-dir": {
|
|
285
|
+
const go = ctx.yes || !ctx.interactive ? true : await ctx.prompts.confirm({
|
|
286
|
+
message: `This folder is not a git repo \u2014 initialize ${root} as your ${ctx.tenant}-mesh-apps repo here?`,
|
|
287
|
+
default: true
|
|
288
|
+
});
|
|
289
|
+
if (!go) {
|
|
290
|
+
return { name, status: "skip", detail: "folder left as is", fix: `cd <your ${ctx.tenant}-mesh-apps clone> && mesh init` };
|
|
291
|
+
}
|
|
292
|
+
try {
|
|
293
|
+
(ctx.seams?.gitInit ?? gitInit)(root);
|
|
294
|
+
} catch (err) {
|
|
295
|
+
const why = err instanceof Error && "stderr" in err && err.stderr ? String(err.stderr).trim() : "";
|
|
296
|
+
return {
|
|
297
|
+
name,
|
|
298
|
+
status: "fail",
|
|
299
|
+
detail: `git init failed \u2014 is git installed and ${root} writable?${why ? ` (${why})` : ""}`,
|
|
300
|
+
fix: INIT_REPO_FIX
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
const created = bootstrapAppsRepo(root, ctx.tenant);
|
|
304
|
+
return { name, status: "pass", detail: `initialized a git repo and bootstrapped the apps repo: ${created.join(", ")}` };
|
|
305
|
+
}
|
|
306
|
+
case "no-repo":
|
|
307
|
+
return {
|
|
308
|
+
name,
|
|
309
|
+
status: "skip",
|
|
310
|
+
detail: `not in a git repo, and this folder already holds files \u2014 clone (or git init) your ${ctx.tenant}-mesh-apps repo and re-run mesh init there`,
|
|
311
|
+
fix: INIT_REPO_FIX
|
|
312
|
+
};
|
|
313
|
+
case "other-repo":
|
|
314
|
+
return {
|
|
315
|
+
name,
|
|
316
|
+
status: "warn",
|
|
317
|
+
detail: "this repo is not a Mesh apps repo (no pnpm workspace, no apps/)",
|
|
318
|
+
fix: "mesh create-app # scaffolds an app and the workspace files around it"
|
|
319
|
+
};
|
|
320
|
+
case "empty-apps-repo": {
|
|
321
|
+
const go = ctx.yes || !ctx.interactive ? true : await ctx.prompts.confirm({ message: `Empty repo \u2014 bootstrap the ${ctx.tenant}-mesh-apps layout here?`, default: true });
|
|
322
|
+
if (!go) return { name, status: "skip", detail: "empty repo left as is", fix: "mesh create-app" };
|
|
323
|
+
const created = bootstrapAppsRepo(root, ctx.tenant);
|
|
324
|
+
return { name, status: "pass", detail: `bootstrapped apps repo: ${created.join(", ")}` };
|
|
325
|
+
}
|
|
326
|
+
case "apps-repo": {
|
|
327
|
+
const missing = [];
|
|
328
|
+
if (!fs.existsSync(path.join(root, "package.json"))) missing.push("package.json");
|
|
329
|
+
if (!fs.existsSync(path.join(root, "pnpm-workspace.yaml")) && !fs.existsSync(path.join(root, "pnpm-lock.yaml"))) {
|
|
330
|
+
missing.push("pnpm-workspace.yaml");
|
|
331
|
+
}
|
|
332
|
+
if (missing.length) {
|
|
333
|
+
return { name, status: "warn", detail: `apps repo missing ${missing.join(", ")}`, fix: "mesh create-app # writes the workspace files" };
|
|
334
|
+
}
|
|
335
|
+
return { name, status: "pass", detail: `apps repo at ${root}` };
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
};
|
|
340
|
+
var skillsStep = {
|
|
341
|
+
name: "skills",
|
|
342
|
+
async run(ctx) {
|
|
343
|
+
const name = STEP_LABELS.skills;
|
|
344
|
+
if (ctx.skipRepo) return { name, status: "skip", detail: "--skip-repo" };
|
|
345
|
+
if (isNewPlatform(ctx.mode)) {
|
|
346
|
+
return { name, status: "skip", detail: "synced into the new platform repo by the scaffold" };
|
|
347
|
+
}
|
|
348
|
+
const { kind, root } = classifyRepo(ctx.cwd);
|
|
349
|
+
if (kind !== "apps-repo" && kind !== "empty-apps-repo") {
|
|
350
|
+
return { name, status: "skip", detail: "no apps repo to install skills into" };
|
|
351
|
+
}
|
|
352
|
+
try {
|
|
353
|
+
const complete = syncSkills(root);
|
|
354
|
+
return complete ? { name, status: "pass", detail: "base skills + Intent discovery in sync" } : { name, status: "pass", detail: "base skills synced \u2014 after pnpm install, run: mesh skills sync (platform skills)" };
|
|
355
|
+
} catch (err) {
|
|
356
|
+
return { name, status: "fail", detail: `skills sync failed: ${err.message}`, fix: "mesh skills sync", blocking: false };
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
var WIZARD_STEPS = [registryStep, platformStep, repoStep, skillsStep];
|
|
361
|
+
async function runWizardSteps(ctx, steps) {
|
|
362
|
+
const results = [];
|
|
363
|
+
for (const step of steps) {
|
|
364
|
+
const result = await step.run(ctx);
|
|
365
|
+
results.push(result);
|
|
366
|
+
if (stepBlocks(result)) break;
|
|
367
|
+
}
|
|
368
|
+
return results;
|
|
369
|
+
}
|
|
370
|
+
async function inquirerPrompts() {
|
|
371
|
+
const [{ default: input }, { default: select }, { default: confirm }] = await Promise.all([
|
|
372
|
+
import("@inquirer/input"),
|
|
373
|
+
import("@inquirer/select"),
|
|
374
|
+
import("@inquirer/confirm")
|
|
375
|
+
]);
|
|
376
|
+
return {
|
|
377
|
+
input: (args) => input(args),
|
|
378
|
+
select: (args) => select(args),
|
|
379
|
+
confirm: (args) => confirm(args)
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
function isInterrupt(err) {
|
|
383
|
+
return err instanceof Error && err.name === "ExitPromptError";
|
|
384
|
+
}
|
|
385
|
+
async function runInitWizard(opts, deps = {}) {
|
|
386
|
+
const cwd = deps.cwd ?? process.cwd();
|
|
387
|
+
const interactive = deps.interactive ?? Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
388
|
+
const remote = deps.remote ?? isRemoteEnvironment();
|
|
389
|
+
const recorded = findMeshJson(cwd)?.data ?? null;
|
|
390
|
+
const origLog = console.log;
|
|
391
|
+
if (opts.json) console.log = (...a) => console.error(...a);
|
|
392
|
+
try {
|
|
393
|
+
const answers = resolveAnswers(opts, recorded, interactive);
|
|
394
|
+
const prompts = deps.prompts ?? (answers.open.length ? await inquirerPrompts() : {});
|
|
395
|
+
let tenant = answers.tenant;
|
|
396
|
+
if (!tenant) {
|
|
397
|
+
const detected = recorded?.tenant ?? (() => {
|
|
398
|
+
try {
|
|
399
|
+
const t = detectLocalTenant(cwd);
|
|
400
|
+
return t === "local" ? void 0 : t;
|
|
401
|
+
} catch {
|
|
402
|
+
return void 0;
|
|
403
|
+
}
|
|
404
|
+
})();
|
|
405
|
+
tenant = await prompts.input({
|
|
406
|
+
message: "Tenant name",
|
|
407
|
+
default: detected,
|
|
408
|
+
validate: (v) => isValidTenantName(v) ? true : "lowercase letters, digits and dashes, starting with a letter"
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
let mode = answers.mode;
|
|
412
|
+
if (!mode) {
|
|
413
|
+
const choice = await prompts.select({
|
|
414
|
+
message: "Where does this tenant run?",
|
|
415
|
+
choices: [
|
|
416
|
+
{ name: "Local only (mesh start / mesh dev \u2014 no deployed platform yet)", value: "local" },
|
|
417
|
+
{ name: `A deployed Mesh platform (I have a ${tenant}.<env> context)`, value: "deployed" },
|
|
418
|
+
{ name: "Nothing yet \u2014 set up a new Mesh platform in my AWS account", value: "new" }
|
|
419
|
+
],
|
|
420
|
+
default: recorded && recorded.platform !== "local" ? "deployed" : "local"
|
|
421
|
+
});
|
|
422
|
+
if (choice === "local") mode = "local";
|
|
423
|
+
else if (choice === "new") {
|
|
424
|
+
mode = { newPlatform: platformSetupFlags({ ...opts, newPlatform: true }) };
|
|
425
|
+
} else {
|
|
426
|
+
const env = await prompts.input({
|
|
427
|
+
message: "Environment",
|
|
428
|
+
default: recorded && recorded.platform !== "local" ? recorded.platform : "dev",
|
|
429
|
+
validate: (v) => /^[a-z][a-z0-9-]*$/.test(v) ? true : "lowercase letters, digits and dashes"
|
|
430
|
+
});
|
|
431
|
+
mode = { platform: env };
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
const ctx = {
|
|
435
|
+
cwd,
|
|
436
|
+
tenant,
|
|
437
|
+
mode,
|
|
438
|
+
context: mode === "local" || isNewPlatform(mode) ? null : `${tenant}.${mode.platform}`,
|
|
439
|
+
device: opts.device,
|
|
440
|
+
profile: opts.profile,
|
|
441
|
+
interactive,
|
|
442
|
+
remote,
|
|
443
|
+
yes: Boolean(opts.yes),
|
|
444
|
+
skipRepo: Boolean(opts.skipRepo),
|
|
445
|
+
prompts,
|
|
446
|
+
seams: deps.seams
|
|
447
|
+
};
|
|
448
|
+
logInfo(`Setting up tenant '${tenant}' (${describeMode(mode)})\u2026`);
|
|
449
|
+
const steps = await runWizardSteps(ctx, deps.steps ?? WIZARD_STEPS);
|
|
450
|
+
const { kind, root } = classifyRepo(cwd);
|
|
451
|
+
if (!opts.skipRepo && !isNewPlatform(mode) && (kind === "apps-repo" || kind === "empty-apps-repo")) {
|
|
452
|
+
const written = writeMeshJson(root, { tenant, platform: mode === "local" ? "local" : mode.platform });
|
|
453
|
+
logInfo(`Recorded tenant + mode in ${written}`);
|
|
454
|
+
}
|
|
455
|
+
const outcome = { tenant, mode, steps, next: wizardNextCommands(mode, steps) };
|
|
456
|
+
const code = wizardExitCode(steps);
|
|
457
|
+
if (opts.json) {
|
|
458
|
+
console.log = origLog;
|
|
459
|
+
emitJsonPayload({ ok: code === 0, ...outcome });
|
|
460
|
+
} else {
|
|
461
|
+
console.log("");
|
|
462
|
+
console.log(renderWizardSummary(outcome));
|
|
463
|
+
console.log("");
|
|
464
|
+
}
|
|
465
|
+
return code;
|
|
466
|
+
} catch (err) {
|
|
467
|
+
if (isInterrupt(err)) {
|
|
468
|
+
console.error("");
|
|
469
|
+
logWarn("Interrupted \u2014 nothing was written.");
|
|
470
|
+
return INTERRUPTED_EXIT_CODE;
|
|
471
|
+
}
|
|
472
|
+
throw err;
|
|
473
|
+
} finally {
|
|
474
|
+
console.log = origLog;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
export {
|
|
478
|
+
INIT_REPO_FIX,
|
|
479
|
+
INTERRUPTED_EXIT_CODE,
|
|
480
|
+
NO_SESSION_NO_TTY_MESSAGE,
|
|
481
|
+
PLATFORM_SETUP_LABEL,
|
|
482
|
+
REGISTRY_WHY,
|
|
483
|
+
TENANT_REQUIRED_MESSAGE,
|
|
484
|
+
WIZARD_STEPS,
|
|
485
|
+
classifyRepo,
|
|
486
|
+
describeMode,
|
|
487
|
+
isNewPlatform,
|
|
488
|
+
newPlatformStep,
|
|
489
|
+
platformSetupFlags,
|
|
490
|
+
registryStep,
|
|
491
|
+
renderWizardSummary,
|
|
492
|
+
repoStep,
|
|
493
|
+
resolveAnswers,
|
|
494
|
+
runInitWizard,
|
|
495
|
+
runWizardSteps,
|
|
496
|
+
skillsStep,
|
|
497
|
+
stepBlocks,
|
|
498
|
+
wizardExitCode,
|
|
499
|
+
wizardNextCommands
|
|
500
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/commands/init/wizard.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["session"]
|
|
6
|
+
}
|
package/dist/build-info.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { type ProbeResult } from "./app-check-resolve.js";
|
|
3
3
|
import { jsonReport, type Check, type CheckResult, type CheckStatus } from "./dev-doctor.js";
|
|
4
|
-
export type AppCheckCode = "UNRESOLVABLE_IMPORT" | "UI_IN_API" | "NO_UI_SERVICE" | "NO_REGISTER" | "CUSTOM_SESSION_AUTH" | "NON_PLATFORM_LOGGER" | "LOCAL_AUTH_LIB" | "NO_AUTHZ_POINTER" | "METADATA_UNPUBLISHED" | "IAC_GRANTS" | "POINTER_PROJECT_OVERRIDE" | "PASSWORD_STORE" | "EMAIL_ALLOWLIST" | "USERS_TABLE" | "DOCS_SITE_PUBLIC" | "DOCS_AUDIENCE_IMPLICIT" | "DOCS_AUDIENCE_UNGRANTABLE" | "DOCS_VENDOR_AUDIENCE_PARTNER" | "EVENTS_ROLES_UNDECLARED";
|
|
4
|
+
export type AppCheckCode = "UNRESOLVABLE_IMPORT" | "UI_IN_API" | "NO_UI_SERVICE" | "NO_REGISTER" | "CUSTOM_SESSION_AUTH" | "NON_PLATFORM_LOGGER" | "LOCAL_AUTH_LIB" | "NO_AUTHZ_POINTER" | "METADATA_UNPUBLISHED" | "IAC_GRANTS" | "POINTER_PROJECT_OVERRIDE" | "PASSWORD_STORE" | "EMAIL_ALLOWLIST" | "USERS_TABLE" | "DOCS_SITE_PUBLIC" | "DOCS_SITE_DEPRECATED" | "DOCS_AUDIENCE_IMPLICIT" | "DOCS_AUDIENCE_UNGRANTABLE" | "DOCS_VENDOR_AUDIENCE_PARTNER" | "EVENTS_ROLES_UNDECLARED";
|
|
5
5
|
export interface AppCheckRule {
|
|
6
6
|
gate: string;
|
|
7
7
|
title: string;
|
|
@@ -29,6 +29,7 @@ export interface SurfaceDeclaration {
|
|
|
29
29
|
line: number;
|
|
30
30
|
}
|
|
31
31
|
export declare function surfaceDeclarations(text: string, pattern?: RegExp): SurfaceDeclaration[];
|
|
32
|
+
export declare function docsConvertCommand(docs: Map<string, string>, program: string): string;
|
|
32
33
|
export declare function docsSiteFindings(text: string): Array<{
|
|
33
34
|
code: AppCheckCode;
|
|
34
35
|
line: number;
|
|
@@ -113,6 +113,13 @@ export const APP_CHECK_RULES = {
|
|
|
113
113
|
remediation: "publish the site through the Hub docs door — declare the API as a mesh.apps.AppApiSurface whose docs block builds this same site (docs: { spec, pages }), declare its readers' role on the ZitadelAppIdentity and grant it from the Hub's Access tab; then drop the hostname (docs.ingress on an API surface, where docs.auth, docs.basePath and docs.hubDoor do nothing either; the ingress with its auth and authentication on a mesh.apps.ApiDocs). The public shape keeps deploying until you do",
|
|
114
114
|
scope: "app",
|
|
115
115
|
},
|
|
116
|
+
DOCS_SITE_DEPRECATED: {
|
|
117
|
+
gate: "0.3",
|
|
118
|
+
title: "API docs published as a native docs source",
|
|
119
|
+
severity: "advisory",
|
|
120
|
+
remediation: "run the `mesh docs convert` command the finding names (filled from the docs block) — it writes a starter docs.yaml beside the guides, moves each page's leading # heading into its front-matter title with --fix-pages, and prints every problem the deploy would refuse plus the exact edit; then declare docs: { spec, config: \"<dir>/docs.yaml\" } and drop pages, landingPage, playground, audience, site, split, zudoku and port. The Hub renders the source itself — no docs site, container or door — and `mesh docs preview <dir>` shows it locally. The site keeps deploying, with a preview warning, for one more minor release and is removed with the Hub docs door in the next",
|
|
121
|
+
scope: "app",
|
|
122
|
+
},
|
|
116
123
|
DOCS_AUDIENCE_IMPLICIT: {
|
|
117
124
|
gate: "H",
|
|
118
125
|
title: "Docs audience stated, not derived",
|
|
@@ -497,6 +504,24 @@ function isWritten(value) {
|
|
|
497
504
|
function hasIngress(value) {
|
|
498
505
|
return isWritten(value) && !/^(null|false)$/.test(value);
|
|
499
506
|
}
|
|
507
|
+
function stringLiteral(value) {
|
|
508
|
+
const m = /^(["'`])((?:(?!\1)[^\\$]|\\.)*)\1$/.exec(stripTrailingComments(value?.trim() ?? ""));
|
|
509
|
+
return m ? m[2] : undefined;
|
|
510
|
+
}
|
|
511
|
+
export function docsConvertCommand(docs, program) {
|
|
512
|
+
const words = ["mesh docs convert --spec", stringLiteral(docs.get("spec")) ?? "<spec>"];
|
|
513
|
+
const pagesValue = docs.get("pages");
|
|
514
|
+
if (isWritten(pagesValue)) {
|
|
515
|
+
const list = pagesValue.trim().startsWith("[") ? splitTopLevel(pagesValue.trim().slice(1, -1)) : [pagesValue];
|
|
516
|
+
const first = list.map((e) => stripLeadingComments(e).trim()).find((e) => e !== "") ?? "";
|
|
517
|
+
const dir = first.startsWith("{") ? topLevelProperties(objectLiteralOf(first, program) ?? first).get("dir") : first;
|
|
518
|
+
words.push("--pages", stringLiteral(dir) ?? "<pages>");
|
|
519
|
+
}
|
|
520
|
+
const landing = docs.get("landingPage");
|
|
521
|
+
if (isWritten(landing) && landing.trim() !== "false")
|
|
522
|
+
words.push("--landing", stringLiteral(landing) ?? "<landing>");
|
|
523
|
+
return words.join(" ");
|
|
524
|
+
}
|
|
500
525
|
export function docsSiteFindings(text) {
|
|
501
526
|
const findings = [];
|
|
502
527
|
for (const decl of surfaceDeclarations(text)) {
|
|
@@ -508,10 +533,17 @@ export function docsSiteFindings(text) {
|
|
|
508
533
|
if (!docsText)
|
|
509
534
|
continue;
|
|
510
535
|
const docs = topLevelProperties(docsText);
|
|
536
|
+
if (isWritten(docs.get("config")))
|
|
537
|
+
continue;
|
|
511
538
|
if (docs.get("site") === "false")
|
|
512
539
|
continue;
|
|
513
540
|
if (docs.get("site") !== "true" && !DOCS_SITE_FIELDS.some((f) => docs.has(f)))
|
|
514
541
|
continue;
|
|
542
|
+
findings.push({
|
|
543
|
+
code: "DOCS_SITE_DEPRECATED",
|
|
544
|
+
line: decl.line,
|
|
545
|
+
why: `mesh.apps.${decl.ctor} builds a docs site from its docs block — deprecated for a native docs source the Hub renders itself (docs.config, a docs.yaml); convert with \`${docsConvertCommand(docs, text)}\``,
|
|
546
|
+
});
|
|
515
547
|
const retired = DOCS_SITE_RETIRED_FIELDS.filter((f) => isWritten(docs.get(f)));
|
|
516
548
|
if (retired.length > 0) {
|
|
517
549
|
const named = retired.map((f) => `docs.${f}`).join(", ");
|
|
@@ -41,6 +41,10 @@ export interface SessionState {
|
|
|
41
41
|
runner?: 'tmux' | 'docker';
|
|
42
42
|
composeExternals?: ComposeExternalRef[];
|
|
43
43
|
externalProbeFiles?: string[];
|
|
44
|
+
localDocs?: {
|
|
45
|
+
tenant: string;
|
|
46
|
+
app: string;
|
|
47
|
+
};
|
|
44
48
|
workflowFingerprint?: string;
|
|
45
49
|
}
|
|
46
50
|
export declare function workflowChanged(prior: string | undefined, current: string): boolean;
|
|
@@ -53,6 +57,8 @@ export declare function buildChildAwsEnv(awsEnv: Record<string, string>, method:
|
|
|
53
57
|
sessionScratchDir: string;
|
|
54
58
|
meshBin: string;
|
|
55
59
|
}): Record<string, string>;
|
|
60
|
+
export declare function readDotEnvFile(file: string): Record<string, string>;
|
|
61
|
+
export declare function rebaseServiceSrc(src: string, monorepoRoot: string | null): string;
|
|
56
62
|
export declare function isLinkedDependencyDir(serviceDir: string, appRoot: string): boolean;
|
|
57
63
|
export declare function monorepoRelativeSrc(src: string): string | null;
|
|
58
64
|
export declare function tunnelClientAddress(tunnel: {
|