everything-dev 2.0.0-rc.6 → 2.0.0-rc.8
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/README.md +2 -2
- package/dist/api/auth-middleware.cjs +14 -1
- package/dist/api/auth-middleware.cjs.map +1 -1
- package/dist/api/auth-middleware.d.cts +9 -0
- package/dist/api/auth-middleware.d.mts +9 -0
- package/dist/api/auth-middleware.mjs +14 -1
- package/dist/api/auth-middleware.mjs.map +1 -1
- package/dist/build.cjs +1 -1
- package/dist/build.mjs +1 -1
- package/dist/bundle-cache.cjs +1 -1
- package/dist/bundle-cache.cjs.map +1 -1
- package/dist/bundle-cache.mjs +1 -1
- package/dist/bundle-cache.mjs.map +1 -1
- package/dist/cli/init.cjs +22 -10
- package/dist/cli/init.cjs.map +1 -1
- package/dist/cli/init.mjs +22 -10
- package/dist/cli/init.mjs.map +1 -1
- package/dist/cli.cjs +6 -5
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +5 -4
- package/dist/cli.mjs.map +1 -1
- package/dist/commands/deploy.cjs +111 -1
- package/dist/commands/deploy.cjs.map +1 -1
- package/dist/commands/deploy.mjs +112 -2
- package/dist/commands/deploy.mjs.map +1 -1
- package/dist/commands/keys.cjs +1 -1
- package/dist/commands/keys.cjs.map +1 -1
- package/dist/commands/keys.mjs +1 -1
- package/dist/commands/keys.mjs.map +1 -1
- package/dist/commands/smoke.cjs +41 -0
- package/dist/commands/smoke.cjs.map +1 -0
- package/dist/commands/smoke.mjs +41 -0
- package/dist/commands/smoke.mjs.map +1 -0
- package/dist/commands/upgrade.cjs +2 -2
- package/dist/commands/upgrade.cjs.map +1 -1
- package/dist/commands/upgrade.mjs +1 -1
- package/dist/commands/upgrade.mjs.map +1 -1
- package/dist/contract.cjs +27 -1
- package/dist/contract.cjs.map +1 -1
- package/dist/contract.d.cts +65 -1
- package/dist/contract.d.mts +65 -1
- package/dist/contract.meta.cjs +14 -2
- package/dist/contract.meta.cjs.map +1 -1
- package/dist/contract.meta.d.cts +24 -2
- package/dist/contract.meta.d.mts +24 -2
- package/dist/contract.meta.mjs +14 -2
- package/dist/contract.meta.mjs.map +1 -1
- package/dist/contract.mjs +26 -2
- package/dist/contract.mjs.map +1 -1
- package/dist/db/core.cjs +22 -4
- package/dist/db/core.cjs.map +1 -1
- package/dist/db/core.mjs +22 -4
- package/dist/db/core.mjs.map +1 -1
- package/dist/dev-log-pipeline.cjs +6 -0
- package/dist/dev-log-pipeline.cjs.map +1 -1
- package/dist/dev-log-pipeline.mjs +6 -0
- package/dist/dev-log-pipeline.mjs.map +1 -1
- package/dist/dev-program.cjs +20 -3
- package/dist/dev-program.cjs.map +1 -1
- package/dist/dev-program.mjs +20 -4
- package/dist/dev-program.mjs.map +1 -1
- package/dist/dev-session.cjs +1 -0
- package/dist/dev-session.cjs.map +1 -1
- package/dist/dev-session.mjs +1 -0
- package/dist/dev-session.mjs.map +1 -1
- package/dist/fastkv.cjs +21 -3
- package/dist/fastkv.cjs.map +1 -1
- package/dist/fastkv.d.cts +14 -1
- package/dist/fastkv.d.mts +14 -1
- package/dist/fastkv.mjs +21 -5
- package/dist/fastkv.mjs.map +1 -1
- package/dist/{mf.cjs → federation.cjs} +6 -13
- package/dist/federation.cjs.map +1 -0
- package/dist/{mf.d.cts → federation.d.cts} +2 -2
- package/dist/{mf.d.mts → federation.d.mts} +2 -2
- package/dist/{mf.mjs → federation.mjs} +6 -13
- package/dist/federation.mjs.map +1 -0
- package/dist/http-client.cjs +84 -57
- package/dist/http-client.cjs.map +1 -1
- package/dist/http-client.mjs +84 -58
- package/dist/http-client.mjs.map +1 -1
- package/dist/image-deploy.cjs +9 -0
- package/dist/image-deploy.cjs.map +1 -1
- package/dist/image-deploy.mjs +9 -1
- package/dist/image-deploy.mjs.map +1 -1
- package/dist/index.cjs +4 -0
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +3 -3
- package/dist/infra/planner.cjs +6 -2
- package/dist/infra/planner.cjs.map +1 -1
- package/dist/infra/planner.mjs +6 -2
- package/dist/infra/planner.mjs.map +1 -1
- package/dist/orchestrator.cjs +39 -35
- package/dist/orchestrator.cjs.map +1 -1
- package/dist/orchestrator.mjs +39 -35
- package/dist/orchestrator.mjs.map +1 -1
- package/dist/plugin.cjs +2 -0
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.cts +24 -0
- package/dist/plugin.d.mts +24 -0
- package/dist/plugin.mjs +2 -0
- package/dist/plugin.mjs.map +1 -1
- package/dist/process-registry.cjs +1 -1
- package/dist/process-registry.mjs +1 -1
- package/dist/publish.cjs +3 -3
- package/dist/publish.cjs.map +1 -1
- package/dist/publish.mjs +4 -4
- package/dist/publish.mjs.map +1 -1
- package/dist/resolver.cjs +293 -0
- package/dist/resolver.cjs.map +1 -0
- package/dist/resolver.d.cts +99 -0
- package/dist/resolver.d.mts +99 -0
- package/dist/resolver.mjs +284 -0
- package/dist/resolver.mjs.map +1 -0
- package/dist/smoke.cjs +262 -0
- package/dist/smoke.cjs.map +1 -0
- package/dist/smoke.mjs +260 -0
- package/dist/smoke.mjs.map +1 -0
- package/dist/ui/auth.d.cts +217 -123
- package/dist/ui/auth.d.mts +217 -123
- package/dist/ui/router-client.cjs +2 -1
- package/dist/ui/router-client.cjs.map +1 -1
- package/dist/ui/router-client.mjs +2 -1
- package/dist/ui/router-client.mjs.map +1 -1
- package/dist/version-manifest-resolve.cjs +3 -3
- package/dist/version-manifest-resolve.cjs.map +1 -1
- package/dist/version-manifest-resolve.mjs +1 -1
- package/dist/version-manifest-resolve.mjs.map +1 -1
- package/dist/workspace.cjs +1 -1
- package/dist/workspace.mjs +1 -1
- package/package.json +18 -18
- package/skills/api-and-auth/SKILL.md +12 -9
- package/skills/api-and-auth/references/middleware.md +38 -0
- package/skills/cli-reference/SKILL.md +22 -6
- package/skills/talk-to-the-app/SKILL.md +32 -5
- package/dist/bundle-fs-resolve.cjs +0 -235
- package/dist/bundle-fs-resolve.cjs.map +0 -1
- package/dist/bundle-fs-resolve.d.cts +0 -82
- package/dist/bundle-fs-resolve.d.mts +0 -82
- package/dist/bundle-fs-resolve.mjs +0 -228
- package/dist/bundle-fs-resolve.mjs.map +0 -1
- package/dist/bundle-path.cjs +0 -48
- package/dist/bundle-path.cjs.map +0 -1
- package/dist/bundle-path.mjs +0 -45
- package/dist/bundle-path.mjs.map +0 -1
- package/dist/mf.cjs.map +0 -1
- package/dist/mf.mjs.map +0 -1
package/dist/contract.meta.d.cts
CHANGED
|
@@ -186,7 +186,7 @@ declare const cliCommandMeta: {
|
|
|
186
186
|
};
|
|
187
187
|
readonly deploy: {
|
|
188
188
|
readonly commandPath: ["deploy"];
|
|
189
|
-
readonly summary: "Deploy train: preflight → build → upload bundles → publish config → runtime image (pre-pushed digest or local docker build) → Railway (image-backed, no build)";
|
|
189
|
+
readonly summary: "Deploy train: preflight → build → upload bundles → publish config → runtime image (pre-pushed digest or local docker build) → post-publish smoke (optional) → Railway (image-backed, no build)";
|
|
190
190
|
readonly interactive: false;
|
|
191
191
|
readonly fields: {
|
|
192
192
|
readonly env: {
|
|
@@ -207,11 +207,33 @@ declare const cliCommandMeta: {
|
|
|
207
207
|
readonly imageDigest: {
|
|
208
208
|
readonly description: "Digest of a pre-pushed runtime image (sha256:…) — skips the local image build/push; Railway pins this digest";
|
|
209
209
|
};
|
|
210
|
+
readonly smoke: {
|
|
211
|
+
readonly description: "Gate the Railway promotion on a post-publish boot smoke of the runtime image — a red smoke rolls the config back";
|
|
212
|
+
};
|
|
210
213
|
readonly registry: {
|
|
211
214
|
readonly description: "Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)";
|
|
212
215
|
};
|
|
213
216
|
};
|
|
214
217
|
};
|
|
218
|
+
readonly smoke: {
|
|
219
|
+
readonly commandPath: ["smoke"];
|
|
220
|
+
readonly summary: "Boot a runtime image the way production boots (identity-driven, published config) and assert the boot surface: /health, SSR, OpenAPI spec, in-image mf check";
|
|
221
|
+
readonly interactive: false;
|
|
222
|
+
readonly fields: {
|
|
223
|
+
readonly image: {
|
|
224
|
+
readonly description: "Runtime image ref to boot (required)";
|
|
225
|
+
};
|
|
226
|
+
readonly port: {
|
|
227
|
+
readonly description: "Host port to publish the container on (default: 3000)";
|
|
228
|
+
};
|
|
229
|
+
readonly keep: {
|
|
230
|
+
readonly description: "Keep the container after the run (debugging)";
|
|
231
|
+
};
|
|
232
|
+
readonly account: {
|
|
233
|
+
readonly description: "Registry identity — defaults to the resolved session config";
|
|
234
|
+
};
|
|
235
|
+
};
|
|
236
|
+
};
|
|
215
237
|
readonly login: {
|
|
216
238
|
readonly commandPath: ["login"];
|
|
217
239
|
readonly summary: "Sign in with your NEAR account via the hosted site (wallet, passkey, or social login)";
|
|
@@ -251,7 +273,7 @@ declare const cliCommandMeta: {
|
|
|
251
273
|
readonly description: "NEAR allowance for the key (default: 1NEAR, min: 0.3NEAR)";
|
|
252
274
|
};
|
|
253
275
|
readonly removeOldKeys: {
|
|
254
|
-
readonly description: "Remove existing publish key(s) without prompting (default: ask on a TTY,
|
|
276
|
+
readonly description: "Remove existing publish key(s) without prompting (default: ask on a TTY, defaulting to keep; keep when non-interactive — pass --remove-old-keys to remove)";
|
|
255
277
|
};
|
|
256
278
|
readonly registry: {
|
|
257
279
|
readonly description: "Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)";
|
package/dist/contract.meta.d.mts
CHANGED
|
@@ -186,7 +186,7 @@ declare const cliCommandMeta: {
|
|
|
186
186
|
};
|
|
187
187
|
readonly deploy: {
|
|
188
188
|
readonly commandPath: ["deploy"];
|
|
189
|
-
readonly summary: "Deploy train: preflight → build → upload bundles → publish config → runtime image (pre-pushed digest or local docker build) → Railway (image-backed, no build)";
|
|
189
|
+
readonly summary: "Deploy train: preflight → build → upload bundles → publish config → runtime image (pre-pushed digest or local docker build) → post-publish smoke (optional) → Railway (image-backed, no build)";
|
|
190
190
|
readonly interactive: false;
|
|
191
191
|
readonly fields: {
|
|
192
192
|
readonly env: {
|
|
@@ -207,11 +207,33 @@ declare const cliCommandMeta: {
|
|
|
207
207
|
readonly imageDigest: {
|
|
208
208
|
readonly description: "Digest of a pre-pushed runtime image (sha256:…) — skips the local image build/push; Railway pins this digest";
|
|
209
209
|
};
|
|
210
|
+
readonly smoke: {
|
|
211
|
+
readonly description: "Gate the Railway promotion on a post-publish boot smoke of the runtime image — a red smoke rolls the config back";
|
|
212
|
+
};
|
|
210
213
|
readonly registry: {
|
|
211
214
|
readonly description: "Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)";
|
|
212
215
|
};
|
|
213
216
|
};
|
|
214
217
|
};
|
|
218
|
+
readonly smoke: {
|
|
219
|
+
readonly commandPath: ["smoke"];
|
|
220
|
+
readonly summary: "Boot a runtime image the way production boots (identity-driven, published config) and assert the boot surface: /health, SSR, OpenAPI spec, in-image mf check";
|
|
221
|
+
readonly interactive: false;
|
|
222
|
+
readonly fields: {
|
|
223
|
+
readonly image: {
|
|
224
|
+
readonly description: "Runtime image ref to boot (required)";
|
|
225
|
+
};
|
|
226
|
+
readonly port: {
|
|
227
|
+
readonly description: "Host port to publish the container on (default: 3000)";
|
|
228
|
+
};
|
|
229
|
+
readonly keep: {
|
|
230
|
+
readonly description: "Keep the container after the run (debugging)";
|
|
231
|
+
};
|
|
232
|
+
readonly account: {
|
|
233
|
+
readonly description: "Registry identity — defaults to the resolved session config";
|
|
234
|
+
};
|
|
235
|
+
};
|
|
236
|
+
};
|
|
215
237
|
readonly login: {
|
|
216
238
|
readonly commandPath: ["login"];
|
|
217
239
|
readonly summary: "Sign in with your NEAR account via the hosted site (wallet, passkey, or social login)";
|
|
@@ -251,7 +273,7 @@ declare const cliCommandMeta: {
|
|
|
251
273
|
readonly description: "NEAR allowance for the key (default: 1NEAR, min: 0.3NEAR)";
|
|
252
274
|
};
|
|
253
275
|
readonly removeOldKeys: {
|
|
254
|
-
readonly description: "Remove existing publish key(s) without prompting (default: ask on a TTY,
|
|
276
|
+
readonly description: "Remove existing publish key(s) without prompting (default: ask on a TTY, defaulting to keep; keep when non-interactive — pass --remove-old-keys to remove)";
|
|
255
277
|
};
|
|
256
278
|
readonly registry: {
|
|
257
279
|
readonly description: "Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)";
|
package/dist/contract.meta.mjs
CHANGED
|
@@ -116,7 +116,7 @@ const cliCommandMeta = {
|
|
|
116
116
|
},
|
|
117
117
|
deploy: {
|
|
118
118
|
commandPath: ["deploy"],
|
|
119
|
-
summary: "Deploy train: preflight → build → upload bundles → publish config → runtime image (pre-pushed digest or local docker build) → Railway (image-backed, no build)",
|
|
119
|
+
summary: "Deploy train: preflight → build → upload bundles → publish config → runtime image (pre-pushed digest or local docker build) → post-publish smoke (optional) → Railway (image-backed, no build)",
|
|
120
120
|
interactive: false,
|
|
121
121
|
fields: {
|
|
122
122
|
env: { description: "Environment: production or staging" },
|
|
@@ -125,9 +125,21 @@ const cliCommandMeta = {
|
|
|
125
125
|
verbose: { description: "Show full build output instead of clean summary" },
|
|
126
126
|
service: { description: "Override Railway service name from config" },
|
|
127
127
|
imageDigest: { description: "Digest of a pre-pushed runtime image (sha256:…) — skips the local image build/push; Railway pins this digest" },
|
|
128
|
+
smoke: { description: "Gate the Railway promotion on a post-publish boot smoke of the runtime image — a red smoke rolls the config back" },
|
|
128
129
|
registry: { description: "Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)" }
|
|
129
130
|
}
|
|
130
131
|
},
|
|
132
|
+
smoke: {
|
|
133
|
+
commandPath: ["smoke"],
|
|
134
|
+
summary: "Boot a runtime image the way production boots (identity-driven, published config) and assert the boot surface: /health, SSR, OpenAPI spec, in-image mf check",
|
|
135
|
+
interactive: false,
|
|
136
|
+
fields: {
|
|
137
|
+
image: { description: "Runtime image ref to boot (required)" },
|
|
138
|
+
port: { description: "Host port to publish the container on (default: 3000)" },
|
|
139
|
+
keep: { description: "Keep the container after the run (debugging)" },
|
|
140
|
+
account: { description: "Registry identity — defaults to the resolved session config" }
|
|
141
|
+
}
|
|
142
|
+
},
|
|
131
143
|
login: {
|
|
132
144
|
commandPath: ["login"],
|
|
133
145
|
summary: "Sign in with your NEAR account via the hosted site (wallet, passkey, or social login)",
|
|
@@ -152,7 +164,7 @@ const cliCommandMeta = {
|
|
|
152
164
|
fields: {
|
|
153
165
|
env: { description: "Environment: production or staging" },
|
|
154
166
|
allowance: { description: "NEAR allowance for the key (default: 1NEAR, min: 0.3NEAR)" },
|
|
155
|
-
removeOldKeys: { description: "Remove existing publish key(s) without prompting (default: ask on a TTY,
|
|
167
|
+
removeOldKeys: { description: "Remove existing publish key(s) without prompting (default: ask on a TTY, defaulting to keep; keep when non-interactive — pass --remove-old-keys to remove)" },
|
|
156
168
|
registry: { description: "Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)" }
|
|
157
169
|
}
|
|
158
170
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.meta.mjs","names":[],"sources":["../src/contract.meta.ts"],"sourcesContent":["export type CliCommandMeta = {\n commandPath?: string[];\n summary: string;\n description?: string;\n examples?: string[];\n interactive?: boolean;\n longRunning?: boolean;\n fields?: Record<string, { positional?: boolean; description?: string }>;\n};\n\nexport const cliCommandMeta = {\n dev: {\n commandPath: [\"dev\"],\n summary: \"Start a development session\",\n interactive: true,\n longRunning: true,\n fields: {\n remotePlugins: {\n description:\n \"Comma-separated plugin IDs to force remote (e.g. --remote-plugins auth,registry)\",\n },\n logLevel: {\n description:\n \"Log tail level: error, warn (default), info, or debug (overrides BOS_LOG_LEVEL; the file always gets everything)\",\n },\n },\n },\n start: {\n commandPath: [\"start\"],\n summary: \"Start the production host\",\n interactive: false,\n longRunning: true,\n fields: {\n env: { description: \"Environment: production or staging\" },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n configPath: {\n description:\n \"Boot from a local bos config file — skips FastKV resolution and SRI integrity verification\",\n },\n },\n },\n build: {\n commandPath: [\"build\"],\n summary: \"Build selected workspaces\",\n interactive: false,\n fields: {\n packages: { positional: true, description: \"Comma-separated package list\" },\n },\n },\n config: {\n commandPath: [\"config\"],\n summary: \"Print the loaded BOS configuration\",\n interactive: false,\n fields: {\n full: { description: \"Print the fully resolved configuration\" },\n },\n },\n registryUse: {\n commandPath: [\"registry\", \"use\"],\n summary:\n \"Compose app.ui/app.host/app.api/plugins.<key> sections from a published runtime into bos.config.json\",\n interactive: false,\n fields: {\n from: {\n positional: true,\n description:\n \"Published runtime (account/gateway or bos:// URL), e.g. v1.citynode.near/citynode.app\",\n },\n sections: {\n description: \"Comma-separated sections to compose, e.g. app.ui,plugins.apps\",\n },\n dryRun: { description: \"Preview the merged config without writing\" },\n },\n },\n pluginAdd: {\n commandPath: [\"plugin\", \"add\"],\n summary: \"Add a plugin attachment\",\n interactive: false,\n fields: {\n source: {\n positional: true,\n description: \"Plugin source (local:path, bos://account/domain, or URL)\",\n },\n as: { description: \"Plugin alias\" },\n production: { description: \"Production URL override\" },\n },\n },\n pluginRemove: {\n commandPath: [\"plugin\", \"remove\"],\n summary: \"Remove a plugin attachment\",\n interactive: false,\n fields: { key: { positional: true, description: \"Plugin key\" } },\n },\n pluginList: {\n commandPath: [\"plugin\", \"list\"],\n summary: \"List configured plugins\",\n interactive: false,\n },\n pluginPublish: {\n commandPath: [\"plugin\", \"publish\"],\n summary: \"Publish a single plugin\",\n interactive: false,\n fields: { key: { positional: true, description: \"Plugin key\" } },\n },\n publish: {\n commandPath: [\"publish\"],\n summary:\n \"Publish the current workspace configuration (no build — use bos deploy for the full train)\",\n interactive: false,\n fields: {\n dryRun: { description: \"Preview what would be published without writing\" },\n verbose: { description: \"Show full build output instead of clean summary\" },\n env: { description: \"Environment: production or staging\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n wallet: {\n description:\n \"Publish gaslessly with a one-time wallet approval (NEP-366 delegate action relayed by the platform relayer)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n rollback: {\n commandPath: [\"rollback\"],\n summary: \"Republish an earlier config snapshot from the registry publish history\",\n interactive: true,\n fields: {\n version: { description: \"Block height (or timestamp) of the snapshot from the listing\" },\n previous: { description: \"Roll back to the write immediately before the current one\" },\n force: {\n description:\n \"Allow pre-Phase-A snapshots without verifiable manifest pins (their bytes were overwritten in place)\",\n },\n limit: { description: \"Listing depth (1-200, default 20)\" },\n dryRun: { description: \"Preview the rollback without publishing\" },\n env: { description: \"Environment: production or staging\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n wallet: {\n description:\n \"Publish gaslessly with a one-time wallet approval (NEP-366 delegate action relayed by the platform relayer)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n deploy: {\n commandPath: [\"deploy\"],\n summary:\n \"Deploy train: preflight → build → upload bundles → publish config → runtime image (pre-pushed digest or local docker build) → Railway (image-backed, no build)\",\n interactive: false,\n fields: {\n env: { description: \"Environment: production or staging\" },\n build: { description: \"Build and deploy workspaces before publish (default: true)\" },\n dryRun: { description: \"Preview what would be deployed without writing\" },\n verbose: { description: \"Show full build output instead of clean summary\" },\n service: { description: \"Override Railway service name from config\" },\n imageDigest: {\n description:\n \"Digest of a pre-pushed runtime image (sha256:…) — skips the local image build/push; Railway pins this digest\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n login: {\n commandPath: [\"login\"],\n summary:\n \"Sign in with your NEAR account via the hosted site (wallet, passkey, or social login)\",\n interactive: true,\n fields: {\n key: { description: \"Also mint and export a scoped publish key for headless/CI use\" },\n site: { description: \"Override site URL hosting the CLI login page\" },\n device: { description: \"Device label recorded on the credential (default: hostname)\" },\n expiresIn: { description: \"Session lifetime in seconds (default: 90 days)\" },\n env: { description: \"Environment: production (default) or staging\" },\n },\n },\n logout: {\n commandPath: [\"logout\"],\n summary: \"Revoke the stored CLI session and delete the exported publish key\",\n interactive: false,\n },\n keyPublish: {\n commandPath: [\"key\", \"generate\"],\n summary: \"Generate a publish access key\",\n interactive: true,\n fields: {\n env: { description: \"Environment: production or staging\" },\n allowance: { description: \"NEAR allowance for the key (default: 1NEAR, min: 0.3NEAR)\" },\n removeOldKeys: {\n description:\n \"Remove existing publish key(s) without prompting (default: ask on a TTY, yes when non-interactive)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n init: {\n commandPath: [\"init\"],\n summary: \"Scaffold a new project by extending a deployed app or template\",\n interactive: true,\n fields: {\n domain: {\n positional: true,\n description: \"New project domain (e.g. myapp.everything.dev)\",\n },\n extends: {\n description: \"Parent to extend from (e.g. bos://account/gateway or account/gateway)\",\n },\n account: { description: \"New project NEAR account (auto-derived from extends)\" },\n directory: { description: \"Target directory (auto-derived from domain)\" },\n source: { description: \"Local source dir (skips GitHub download)\" },\n plugins: {\n description: \"Comma-separated plugin keys to include (requires --overrides=plugins)\",\n },\n overrides: {\n description: \"Comma-separated sections to customize locally: ui,api,host,plugins\",\n },\n level: {\n description:\n \"Starter complexity: simple (public shell) or advanced (adds dashboard, orgs, admin)\",\n },\n noInteractive: { description: \"Skip prompts, use flags only\" },\n noInstall: { description: \"Skip pnpm install\" },\n },\n },\n sync: {\n commandPath: [\"sync\"],\n summary: \"Sync template files from parent project\",\n interactive: false,\n fields: {\n dryRun: { description: \"Preview changes without writing files\" },\n noInstall: { description: \"Skip pnpm install\" },\n },\n },\n upgrade: {\n commandPath: [\"upgrade\"],\n summary: \"Upgrade framework packages and sync template files\",\n interactive: true,\n fields: {\n dryRun: { description: \"Preview changes without writing\" },\n noInstall: { description: \"Skip pnpm install\" },\n noSync: { description: \"Only upgrade packages, skip template sync\" },\n },\n },\n typesGen: {\n commandPath: [\"types\", \"gen\"],\n summary: \"Generate type definitions from configured API and plugin contracts\",\n interactive: false,\n fields: {\n env: { description: \"Environment: development (default) or production\" },\n dryRun: { description: \"Preview what would be fetched without writing files\" },\n remotePlugins: {\n description:\n \"Comma-separated plugin IDs to fetch contract types remotely (e.g. --remote-plugins auth,registry)\",\n },\n },\n },\n typecheck: {\n commandPath: [\"typecheck\"],\n summary: \"Run TypeScript type checking across all local workspaces\",\n interactive: false,\n fields: {\n packages: {\n positional: true,\n description: \"Comma-separated workspace list (default: all)\",\n },\n },\n },\n mfCheck: {\n commandPath: [\"mf\", \"check\"],\n summary:\n \"Verify Module Federation runtime compatibility across published host + plugin bundles\",\n interactive: false,\n },\n dbStudio: {\n commandPath: [\"db\", \"studio\"],\n summary: \"Open Drizzle Studio for a plugin's database\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name (default: api)\",\n },\n },\n },\n dbDoctor: {\n commandPath: [\"db\", \"doctor\"],\n summary: \"Diagnose migration health for a plugin's database\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name\",\n },\n },\n },\n dbRepair: {\n commandPath: [\"db\", \"repair\"],\n summary: \"Reset migration history and reapply migrations for a plugin\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name\",\n },\n mode: {\n description: \"Repair mode: history-reset (default) or recreate (not yet supported)\",\n },\n yes: {\n description: \"Skip confirmation prompt\",\n },\n },\n },\n status: {\n commandPath: [\"status\"],\n summary: \"Show project health, versions, and update availability\",\n interactive: false,\n },\n ps: {\n commandPath: [\"ps\"],\n summary: \"List tracked development processes\",\n interactive: false,\n },\n logs: {\n commandPath: [\"logs\"],\n summary: \"Read dev session logs (.bos/logs/dev-latest.log)\",\n interactive: false,\n fields: {\n service: {\n description: \"Filter by service name (e.g. host, api, auth, ui, plugin:votes)\",\n },\n tail: { description: \"Show only the last N lines\" },\n follow: { description: \"Stream the log as lines are appended\" },\n },\n },\n kill: {\n commandPath: [\"kill\"],\n summary: \"Stop tracked development processes\",\n interactive: false,\n fields: {\n configDir: { description: \"Kill processes owned by a config directory (defaults to cwd)\" },\n signal: { description: \"Signal: SIGTERM (default) or SIGKILL\" },\n all: { description: \"Kill processes across all config directories\" },\n },\n },\n infraExport: {\n commandPath: [\"infra\", \"export\"],\n summary: \"Emit the resolved CI infra plan (env + services) for the current runtime\",\n interactive: false,\n fields: {\n target: { description: \"Export target: ci (default) or local\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n configDir: { description: \"Override config directory\" },\n },\n },\n} as const satisfies Record<string, CliCommandMeta>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.meta.mjs","names":[],"sources":["../src/contract.meta.ts"],"sourcesContent":["export type CliCommandMeta = {\n commandPath?: string[];\n summary: string;\n description?: string;\n examples?: string[];\n interactive?: boolean;\n longRunning?: boolean;\n fields?: Record<string, { positional?: boolean; description?: string }>;\n};\n\nexport const cliCommandMeta = {\n dev: {\n commandPath: [\"dev\"],\n summary: \"Start a development session\",\n interactive: true,\n longRunning: true,\n fields: {\n remotePlugins: {\n description:\n \"Comma-separated plugin IDs to force remote (e.g. --remote-plugins auth,registry)\",\n },\n logLevel: {\n description:\n \"Log tail level: error, warn (default), info, or debug (overrides BOS_LOG_LEVEL; the file always gets everything)\",\n },\n },\n },\n start: {\n commandPath: [\"start\"],\n summary: \"Start the production host\",\n interactive: false,\n longRunning: true,\n fields: {\n env: { description: \"Environment: production or staging\" },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n configPath: {\n description:\n \"Boot from a local bos config file — skips FastKV resolution and SRI integrity verification\",\n },\n },\n },\n build: {\n commandPath: [\"build\"],\n summary: \"Build selected workspaces\",\n interactive: false,\n fields: {\n packages: { positional: true, description: \"Comma-separated package list\" },\n },\n },\n config: {\n commandPath: [\"config\"],\n summary: \"Print the loaded BOS configuration\",\n interactive: false,\n fields: {\n full: { description: \"Print the fully resolved configuration\" },\n },\n },\n registryUse: {\n commandPath: [\"registry\", \"use\"],\n summary:\n \"Compose app.ui/app.host/app.api/plugins.<key> sections from a published runtime into bos.config.json\",\n interactive: false,\n fields: {\n from: {\n positional: true,\n description:\n \"Published runtime (account/gateway or bos:// URL), e.g. v1.citynode.near/citynode.app\",\n },\n sections: {\n description: \"Comma-separated sections to compose, e.g. app.ui,plugins.apps\",\n },\n dryRun: { description: \"Preview the merged config without writing\" },\n },\n },\n pluginAdd: {\n commandPath: [\"plugin\", \"add\"],\n summary: \"Add a plugin attachment\",\n interactive: false,\n fields: {\n source: {\n positional: true,\n description: \"Plugin source (local:path, bos://account/domain, or URL)\",\n },\n as: { description: \"Plugin alias\" },\n production: { description: \"Production URL override\" },\n },\n },\n pluginRemove: {\n commandPath: [\"plugin\", \"remove\"],\n summary: \"Remove a plugin attachment\",\n interactive: false,\n fields: { key: { positional: true, description: \"Plugin key\" } },\n },\n pluginList: {\n commandPath: [\"plugin\", \"list\"],\n summary: \"List configured plugins\",\n interactive: false,\n },\n pluginPublish: {\n commandPath: [\"plugin\", \"publish\"],\n summary: \"Publish a single plugin\",\n interactive: false,\n fields: { key: { positional: true, description: \"Plugin key\" } },\n },\n publish: {\n commandPath: [\"publish\"],\n summary:\n \"Publish the current workspace configuration (no build — use bos deploy for the full train)\",\n interactive: false,\n fields: {\n dryRun: { description: \"Preview what would be published without writing\" },\n verbose: { description: \"Show full build output instead of clean summary\" },\n env: { description: \"Environment: production or staging\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n wallet: {\n description:\n \"Publish gaslessly with a one-time wallet approval (NEP-366 delegate action relayed by the platform relayer)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n rollback: {\n commandPath: [\"rollback\"],\n summary: \"Republish an earlier config snapshot from the registry publish history\",\n interactive: true,\n fields: {\n version: { description: \"Block height (or timestamp) of the snapshot from the listing\" },\n previous: { description: \"Roll back to the write immediately before the current one\" },\n force: {\n description:\n \"Allow pre-Phase-A snapshots without verifiable manifest pins (their bytes were overwritten in place)\",\n },\n limit: { description: \"Listing depth (1-200, default 20)\" },\n dryRun: { description: \"Preview the rollback without publishing\" },\n env: { description: \"Environment: production or staging\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n wallet: {\n description:\n \"Publish gaslessly with a one-time wallet approval (NEP-366 delegate action relayed by the platform relayer)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n deploy: {\n commandPath: [\"deploy\"],\n summary:\n \"Deploy train: preflight → build → upload bundles → publish config → runtime image (pre-pushed digest or local docker build) → post-publish smoke (optional) → Railway (image-backed, no build)\",\n interactive: false,\n fields: {\n env: { description: \"Environment: production or staging\" },\n build: { description: \"Build and deploy workspaces before publish (default: true)\" },\n dryRun: { description: \"Preview what would be deployed without writing\" },\n verbose: { description: \"Show full build output instead of clean summary\" },\n service: { description: \"Override Railway service name from config\" },\n imageDigest: {\n description:\n \"Digest of a pre-pushed runtime image (sha256:…) — skips the local image build/push; Railway pins this digest\",\n },\n smoke: {\n description:\n \"Gate the Railway promotion on a post-publish boot smoke of the runtime image — a red smoke rolls the config back\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n smoke: {\n commandPath: [\"smoke\"],\n summary:\n \"Boot a runtime image the way production boots (identity-driven, published config) and assert the boot surface: /health, SSR, OpenAPI spec, in-image mf check\",\n interactive: false,\n fields: {\n image: { description: \"Runtime image ref to boot (required)\" },\n port: { description: \"Host port to publish the container on (default: 3000)\" },\n keep: { description: \"Keep the container after the run (debugging)\" },\n account: { description: \"Registry identity — defaults to the resolved session config\" },\n },\n },\n login: {\n commandPath: [\"login\"],\n summary:\n \"Sign in with your NEAR account via the hosted site (wallet, passkey, or social login)\",\n interactive: true,\n fields: {\n key: { description: \"Also mint and export a scoped publish key for headless/CI use\" },\n site: { description: \"Override site URL hosting the CLI login page\" },\n device: { description: \"Device label recorded on the credential (default: hostname)\" },\n expiresIn: { description: \"Session lifetime in seconds (default: 90 days)\" },\n env: { description: \"Environment: production (default) or staging\" },\n },\n },\n logout: {\n commandPath: [\"logout\"],\n summary: \"Revoke the stored CLI session and delete the exported publish key\",\n interactive: false,\n },\n keyPublish: {\n commandPath: [\"key\", \"generate\"],\n summary: \"Generate a publish access key\",\n interactive: true,\n fields: {\n env: { description: \"Environment: production or staging\" },\n allowance: { description: \"NEAR allowance for the key (default: 1NEAR, min: 0.3NEAR)\" },\n removeOldKeys: {\n description:\n \"Remove existing publish key(s) without prompting (default: ask on a TTY, defaulting to keep; keep when non-interactive — pass --remove-old-keys to remove)\",\n },\n registry: {\n description:\n \"Override FastKV registry contract account (defaults: dev.everything.near / dev.allthethings.testnet)\",\n },\n },\n },\n init: {\n commandPath: [\"init\"],\n summary: \"Scaffold a new project by extending a deployed app or template\",\n interactive: true,\n fields: {\n domain: {\n positional: true,\n description: \"New project domain (e.g. myapp.everything.dev)\",\n },\n extends: {\n description: \"Parent to extend from (e.g. bos://account/gateway or account/gateway)\",\n },\n account: { description: \"New project NEAR account (auto-derived from extends)\" },\n directory: { description: \"Target directory (auto-derived from domain)\" },\n source: { description: \"Local source dir (skips GitHub download)\" },\n plugins: {\n description: \"Comma-separated plugin keys to include (requires --overrides=plugins)\",\n },\n overrides: {\n description: \"Comma-separated sections to customize locally: ui,api,host,plugins\",\n },\n level: {\n description:\n \"Starter complexity: simple (public shell) or advanced (adds dashboard, orgs, admin)\",\n },\n noInteractive: { description: \"Skip prompts, use flags only\" },\n noInstall: { description: \"Skip pnpm install\" },\n },\n },\n sync: {\n commandPath: [\"sync\"],\n summary: \"Sync template files from parent project\",\n interactive: false,\n fields: {\n dryRun: { description: \"Preview changes without writing files\" },\n noInstall: { description: \"Skip pnpm install\" },\n },\n },\n upgrade: {\n commandPath: [\"upgrade\"],\n summary: \"Upgrade framework packages and sync template files\",\n interactive: true,\n fields: {\n dryRun: { description: \"Preview changes without writing\" },\n noInstall: { description: \"Skip pnpm install\" },\n noSync: { description: \"Only upgrade packages, skip template sync\" },\n },\n },\n typesGen: {\n commandPath: [\"types\", \"gen\"],\n summary: \"Generate type definitions from configured API and plugin contracts\",\n interactive: false,\n fields: {\n env: { description: \"Environment: development (default) or production\" },\n dryRun: { description: \"Preview what would be fetched without writing files\" },\n remotePlugins: {\n description:\n \"Comma-separated plugin IDs to fetch contract types remotely (e.g. --remote-plugins auth,registry)\",\n },\n },\n },\n typecheck: {\n commandPath: [\"typecheck\"],\n summary: \"Run TypeScript type checking across all local workspaces\",\n interactive: false,\n fields: {\n packages: {\n positional: true,\n description: \"Comma-separated workspace list (default: all)\",\n },\n },\n },\n mfCheck: {\n commandPath: [\"mf\", \"check\"],\n summary:\n \"Verify Module Federation runtime compatibility across published host + plugin bundles\",\n interactive: false,\n },\n dbStudio: {\n commandPath: [\"db\", \"studio\"],\n summary: \"Open Drizzle Studio for a plugin's database\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name (default: api)\",\n },\n },\n },\n dbDoctor: {\n commandPath: [\"db\", \"doctor\"],\n summary: \"Diagnose migration health for a plugin's database\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name\",\n },\n },\n },\n dbRepair: {\n commandPath: [\"db\", \"repair\"],\n summary: \"Reset migration history and reapply migrations for a plugin\",\n fields: {\n plugin: {\n positional: true,\n description: \"Plugin key: api, auth, or a plugin name\",\n },\n mode: {\n description: \"Repair mode: history-reset (default) or recreate (not yet supported)\",\n },\n yes: {\n description: \"Skip confirmation prompt\",\n },\n },\n },\n status: {\n commandPath: [\"status\"],\n summary: \"Show project health, versions, and update availability\",\n interactive: false,\n },\n ps: {\n commandPath: [\"ps\"],\n summary: \"List tracked development processes\",\n interactive: false,\n },\n logs: {\n commandPath: [\"logs\"],\n summary: \"Read dev session logs (.bos/logs/dev-latest.log)\",\n interactive: false,\n fields: {\n service: {\n description: \"Filter by service name (e.g. host, api, auth, ui, plugin:votes)\",\n },\n tail: { description: \"Show only the last N lines\" },\n follow: { description: \"Stream the log as lines are appended\" },\n },\n },\n kill: {\n commandPath: [\"kill\"],\n summary: \"Stop tracked development processes\",\n interactive: false,\n fields: {\n configDir: { description: \"Kill processes owned by a config directory (defaults to cwd)\" },\n signal: { description: \"Signal: SIGTERM (default) or SIGKILL\" },\n all: { description: \"Kill processes across all config directories\" },\n },\n },\n infraExport: {\n commandPath: [\"infra\", \"export\"],\n summary: \"Emit the resolved CI infra plan (env + services) for the current runtime\",\n interactive: false,\n fields: {\n target: { description: \"Export target: ci (default) or local\" },\n network: { description: \"NEAR network: mainnet or testnet\" },\n configDir: { description: \"Override config directory\" },\n },\n },\n} as const satisfies Record<string, CliCommandMeta>;\n"],"mappings":"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"}
|
package/dist/contract.mjs
CHANGED
|
@@ -211,7 +211,8 @@ const DeployOptionsSchema = z$1.object({
|
|
|
211
211
|
service: z$1.string().optional(),
|
|
212
212
|
registry: z$1.string().optional(),
|
|
213
213
|
imageDigest: z$1.string().optional().refine((digest) => digest === void 0 || isValidImageDigest(digest), { message: "image digest must be sha256:<64 hex characters>" }).describe("Digest (sha256:…) of a pre-pushed runtime image — skips the image build/push leg and pins Railway to this digest"),
|
|
214
|
-
fullUpload: z$1.boolean().default(false).describe("Re-upload every dist file instead of diffing unchanged files against the previous deploy")
|
|
214
|
+
fullUpload: z$1.boolean().default(false).describe("Re-upload every dist file instead of diffing unchanged files against the previous deploy"),
|
|
215
|
+
smoke: z$1.boolean().default(false).describe("After publish, boot the runtime image against the just-published config and gate the Railway promotion on it — a red smoke rolls the config back to the previous snapshot")
|
|
215
216
|
});
|
|
216
217
|
const DeployManifestListEntrySchema = z$1.object({
|
|
217
218
|
key: z$1.string(),
|
|
@@ -240,6 +241,24 @@ const DeployResultSchema = z$1.object({
|
|
|
240
241
|
error: z$1.string().optional(),
|
|
241
242
|
deployResults: z$1.array(WorkspaceDeployResultSchema).optional()
|
|
242
243
|
});
|
|
244
|
+
const SmokeOptionsSchema = z$1.object({
|
|
245
|
+
image: z$1.string().optional().describe("Runtime image ref to boot — required unless defaulted by the deploy train"),
|
|
246
|
+
port: z$1.number().int().default(3e3),
|
|
247
|
+
keep: z$1.boolean().default(false),
|
|
248
|
+
account: z$1.string().optional().describe("Registry identity — defaults to the resolved session config"),
|
|
249
|
+
gateway: z$1.string().optional(),
|
|
250
|
+
apiDatabaseUrl: z$1.string().optional(),
|
|
251
|
+
authDatabaseUrl: z$1.string().optional(),
|
|
252
|
+
env: z$1.enum(["production", "staging"]).default("production"),
|
|
253
|
+
registry: z$1.string().optional()
|
|
254
|
+
});
|
|
255
|
+
const SmokeResultSchema = z$1.object({
|
|
256
|
+
status: z$1.enum(["ok", "error"]),
|
|
257
|
+
image: z$1.string().optional(),
|
|
258
|
+
summary: z$1.string().optional(),
|
|
259
|
+
diagnosis: z$1.string().optional(),
|
|
260
|
+
error: z$1.string().optional()
|
|
261
|
+
});
|
|
243
262
|
function parseNearAmount(value) {
|
|
244
263
|
const match = value.replace(/[\s_,]/g, "").match(/^(\d+(?:\.\d+)?)near$/i);
|
|
245
264
|
if (!match) return NaN;
|
|
@@ -593,6 +612,7 @@ const commandOptionSchemas = {
|
|
|
593
612
|
publish: PublishOptionsSchema,
|
|
594
613
|
rollback: RollbackOptionsSchema,
|
|
595
614
|
deploy: DeployOptionsSchema,
|
|
615
|
+
smoke: SmokeOptionsSchema,
|
|
596
616
|
keyPublish: KeyPublishOptionsSchema,
|
|
597
617
|
login: LoginOptionsSchema,
|
|
598
618
|
logout: LogoutOptionsSchema,
|
|
@@ -657,6 +677,10 @@ const bosContract = oc.router({
|
|
|
657
677
|
method: "POST",
|
|
658
678
|
path: "/deploy"
|
|
659
679
|
}).input(DeployOptionsSchema).output(DeployResultSchema),
|
|
680
|
+
smoke: oc.route({
|
|
681
|
+
method: "POST",
|
|
682
|
+
path: "/smoke"
|
|
683
|
+
}).input(SmokeOptionsSchema).output(SmokeResultSchema),
|
|
660
684
|
keyPublish: oc.route({
|
|
661
685
|
method: "POST",
|
|
662
686
|
path: "/key/publish"
|
|
@@ -728,5 +752,5 @@ const bosContract = oc.router({
|
|
|
728
752
|
});
|
|
729
753
|
|
|
730
754
|
//#endregion
|
|
731
|
-
export { BuildOptionsSchema, BuildResultSchema, ConfigOptionsSchema, ConfigResultSchema, DbDoctorOptionsSchema, DbDoctorResultSchema, DbRepairOptionsSchema, DbRepairResultSchema, DbStudioOptionsSchema, DbStudioResultSchema, DeployManifestListEntrySchema, DeployOptionsSchema, DeployResultSchema, DeployedVersionStatusSchema, DevOptionsSchema, DevResultSchema, InfraExportOptionsSchema, InfraExportResultSchema, InfraExportServiceSchema, InitOptionsSchema, InitResultSchema, KeyPublishOptionsSchema, KeyPublishResultSchema, KillOptionsSchema, KillResultSchema, LoginOptionsSchema, LoginResultSchema, LogoutOptionsSchema, LogoutResultSchema, LogsOptionsSchema, LogsResultSchema, MfCheckOptionsSchema, MfCheckRemoteResultSchema, MfCheckResultSchema, OverrideSectionSchema, PhaseTimingSchema, PidEntrySchema, PluginAddOptionsSchema, PluginAddResultSchema, PluginListResultSchema, PluginPublishOptionsSchema, PluginPublishResultSchema, PluginRemoveOptionsSchema, PluginRemoveResultSchema, ProcessRoleSchema, PsResultSchema, PublishOptionsSchema, PublishResultSchema, RegistryUseOptionsSchema, RegistryUseResultSchema, RollbackHistoryEntrySchema, RollbackOptionsSchema, RollbackResultSchema, RollbackSlotCheckSchema, RuntimeOverrideTargetBaseSchema, RuntimeOverrideTargetSchema, StartOptionsSchema, StartResultSchema, StatusResultSchema, SyncOptionsSchema, SyncResultSchema, TypecheckOptionsSchema, TypecheckResultSchema, TypecheckWorkspaceResultSchema, TypesGenOptionsSchema, TypesGenResultSchema, UpgradeOptionsSchema, UpgradeResultSchema, WorkspaceDeployResultSchema, bosContract, commandOptionSchemas };
|
|
755
|
+
export { BuildOptionsSchema, BuildResultSchema, ConfigOptionsSchema, ConfigResultSchema, DbDoctorOptionsSchema, DbDoctorResultSchema, DbRepairOptionsSchema, DbRepairResultSchema, DbStudioOptionsSchema, DbStudioResultSchema, DeployManifestListEntrySchema, DeployOptionsSchema, DeployResultSchema, DeployedVersionStatusSchema, DevOptionsSchema, DevResultSchema, InfraExportOptionsSchema, InfraExportResultSchema, InfraExportServiceSchema, InitOptionsSchema, InitResultSchema, KeyPublishOptionsSchema, KeyPublishResultSchema, KillOptionsSchema, KillResultSchema, LoginOptionsSchema, LoginResultSchema, LogoutOptionsSchema, LogoutResultSchema, LogsOptionsSchema, LogsResultSchema, MfCheckOptionsSchema, MfCheckRemoteResultSchema, MfCheckResultSchema, OverrideSectionSchema, PhaseTimingSchema, PidEntrySchema, PluginAddOptionsSchema, PluginAddResultSchema, PluginListResultSchema, PluginPublishOptionsSchema, PluginPublishResultSchema, PluginRemoveOptionsSchema, PluginRemoveResultSchema, ProcessRoleSchema, PsResultSchema, PublishOptionsSchema, PublishResultSchema, RegistryUseOptionsSchema, RegistryUseResultSchema, RollbackHistoryEntrySchema, RollbackOptionsSchema, RollbackResultSchema, RollbackSlotCheckSchema, RuntimeOverrideTargetBaseSchema, RuntimeOverrideTargetSchema, SmokeOptionsSchema, SmokeResultSchema, StartOptionsSchema, StartResultSchema, StatusResultSchema, SyncOptionsSchema, SyncResultSchema, TypecheckOptionsSchema, TypecheckResultSchema, TypecheckWorkspaceResultSchema, TypesGenOptionsSchema, TypesGenResultSchema, UpgradeOptionsSchema, UpgradeResultSchema, WorkspaceDeployResultSchema, bosContract, commandOptionSchemas };
|
|
732
756
|
//# sourceMappingURL=contract.mjs.map
|
package/dist/contract.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.mjs","names":["z"],"sources":["../src/contract.ts"],"sourcesContent":["import \"@orpc/openapi/extensions/route\";\nimport * as z from \"zod\";\nimport type { DevSessionData, StartSummary } from \"./dev-session-data\";\nimport { isValidImageDigest } from \"./image-deploy\";\nimport { oc } from \"./sdk\";\nimport {\n BosConfigInputSchema,\n BosConfigSchema,\n SourceModeSchema,\n StarterLevelSchema,\n} from \"./types\";\n\nexport const PhaseTimingSchema = z.object({\n name: z.string(),\n durationMs: z.number(),\n});\n\nexport const DevOptionsSchema = z.object({\n host: SourceModeSchema.default(\"local\"),\n ui: SourceModeSchema.default(\"local\"),\n api: SourceModeSchema.default(\"local\"),\n auth: SourceModeSchema.default(\"local\"),\n remotePlugins: z.array(z.string()).optional(),\n proxy: z.boolean().default(false),\n ssr: z.boolean().default(false),\n port: z.number().optional(),\n apiPort: z.number().optional(),\n uiPort: z.number().optional(),\n authPort: z.number().optional(),\n pluginPortStart: z.number().optional(),\n interactive: z.boolean().optional(),\n logLevel: z.enum([\"error\", \"warn\", \"info\", \"debug\"]).optional(),\n});\n\nexport const DevResultSchema = z.object({\n status: z.enum([\"started\", \"error\"]),\n description: z.string(),\n processes: z.array(z.string()),\n timings: z.array(PhaseTimingSchema).optional(),\n session: z.custom<DevSessionData>().optional(),\n});\n\nexport const StartOptionsSchema = z.object({\n port: z.number().optional(),\n interactive: z.boolean().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n configPath: z.string().optional(),\n});\n\nexport const StartResultSchema = z.object({\n status: z.enum([\"running\", \"error\"]),\n url: z.string(),\n error: z.string().optional(),\n session: z.custom<DevSessionData>().optional(),\n summary: z.custom<StartSummary>().optional(),\n});\n\nexport const BuildOptionsSchema = z.object({\n packages: z\n .string()\n .default(\"all\")\n .describe(\n \"Comma-separated keys, 'all' (default), or 'local' (only this repo's local plugins hosted via 'local:…')\",\n ),\n force: z.boolean().default(false),\n});\n\nexport const BuildResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n error: z.string().optional(),\n built: z.array(z.string()),\n skipped: z.array(z.string()).optional(),\n});\n\nexport const ConfigOptionsSchema = z.object({\n full: z.boolean().default(false),\n});\n\nexport const ConfigResultSchema = z.object({\n config: z.union([BosConfigInputSchema, BosConfigSchema]).nullable(),\n packages: z.array(z.string()),\n remotes: z.array(z.string()),\n full: z.boolean().default(false),\n});\n\nexport const RegistryUseOptionsSchema = z.object({\n from: z.string().describe(\"Published runtime to compose from (account/gateway or bos:// URL)\"),\n sections: z\n .array(z.string())\n .min(1)\n .describe(\"Sections to compose: app.ui, app.host, app.api, app.auth, plugins.<key>\"),\n dryRun: z.boolean().default(false),\n});\n\nexport const RegistryUseResultSchema = z.object({\n status: z.enum([\"updated\", \"dry-run\", \"error\"]),\n from: z.string(),\n applied: z.array(z.string()),\n configPath: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginAddOptionsSchema = z.object({\n source: z.string(),\n as: z.string().optional(),\n production: z.string().optional(),\n});\n\nexport const PluginAddResultSchema = z.object({\n status: z.enum([\"added\", \"error\"]),\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginRemoveOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginRemoveResultSchema = z.object({\n status: z.enum([\"removed\", \"error\"]),\n key: z.string(),\n error: z.string().optional(),\n});\n\nexport const PluginListResultSchema = z.object({\n status: z.enum([\"listed\", \"error\"]),\n plugins: z.array(\n z.object({\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n localPath: z.string().optional(),\n source: z.enum([\"local\", \"remote\"]),\n integrity: z.string().optional(),\n version: z.string().optional(),\n name: z.string().optional(),\n }),\n ),\n error: z.string().optional(),\n});\n\nexport const PluginPublishOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n key: z.string(),\n path: z.string().optional(),\n production: z.string().optional(),\n version: z.string().optional(),\n fingerprint: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const WorkspaceDeployResultSchema = z.object({\n key: z.string(),\n kind: z.enum([\"app\", \"plugin\"]),\n success: z.boolean(),\n error: z.string().optional(),\n durationMs: z.number().optional(),\n});\n\nexport const PublishOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n wallet: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const RollbackOptionsSchema = z.object({\n listOnly: z.boolean().default(false),\n version: z.string().optional(),\n previous: z.boolean().default(false),\n force: z.boolean().default(false),\n limit: z.number().int().min(1).max(200).default(20),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n wallet: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const RollbackHistoryEntrySchema = z.object({\n blockHeight: z.number(),\n blockTimestamp: z.string(),\n txHash: z.string().optional(),\n summary: z.string(),\n});\n\nexport const RollbackSlotCheckSchema = z.object({\n slot: z.string(),\n ok: z.boolean(),\n reason: z.string().optional(),\n});\n\nexport const RollbackResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\", \"list\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n error: z.string().optional(),\n history: z.array(RollbackHistoryEntrySchema).optional(),\n verification: z.array(RollbackSlotCheckSchema).optional(),\n});\n\nexport const PublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n fingerprint: z.string().optional(),\n slotPins: z.record(z.string(), z.string()).optional(),\n error: z.string().optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nexport const DeployOptionsSchema = z.object({\n statusList: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n build: z.boolean().default(true),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n packages: z\n .string()\n .default(\"all\")\n .describe(\n \"Comma-separated keys, 'all' (default), or 'local' (only this repo's local plugins hosted via 'local:…')\",\n ),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n service: z.string().optional(),\n registry: z.string().optional(),\n imageDigest: z\n .string()\n .optional()\n .refine((digest) => digest === undefined || isValidImageDigest(digest), {\n message: \"image digest must be sha256:<64 hex characters>\",\n })\n .describe(\n \"Digest (sha256:…) of a pre-pushed runtime image — skips the image build/push leg and pins Railway to this digest\",\n ),\n fullUpload: z\n .boolean()\n .default(false)\n .describe(\n \"Re-upload every dist file instead of diffing unchanged files against the previous deploy\",\n ),\n});\n\nexport const DeployManifestListEntrySchema = z.object({\n key: z.string(),\n blockHeight: z.number(),\n blockTimestamp: z.string(),\n txHash: z.string().optional(),\n publishedAt: z.string().optional(),\n});\n\nexport const DeployResultSchema = z.object({\n status: z.enum([\"deployed\", \"published\", \"error\", \"dry-run\", \"list\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n fingerprint: z.string().optional(),\n slotPins: z.record(z.string(), z.string()).optional(),\n history: z.array(DeployManifestListEntrySchema).optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n image: z.string().optional(),\n service: z.string().optional(),\n error: z.string().optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nfunction parseNearAmount(value: string): number {\n const cleaned = value.replace(/[\\s_,]/g, \"\");\n const match = cleaned.match(/^(\\d+(?:\\.\\d+)?)near$/i);\n if (!match) return NaN;\n return Number.parseFloat(match[1]!);\n}\n\nconst MIN_PUBLISH_ALLOWANCE_NEAR = 0.3;\n\nexport const KeyPublishOptionsSchema = z.object({\n allowance: z\n .string()\n .default(\"1NEAR\")\n .refine(\n (val) => {\n const amount = parseNearAmount(val);\n return !Number.isNaN(amount) && amount >= MIN_PUBLISH_ALLOWANCE_NEAR;\n },\n {\n message: `Allowance must be at least ${MIN_PUBLISH_ALLOWANCE_NEAR} NEAR to cover the transaction cost`,\n },\n ),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n removeOldKeys: z.boolean().optional(),\n});\n\nexport const KeyPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n account: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n env: z.enum([\"production\", \"staging\"]),\n contract: z.string(),\n allowance: z.string(),\n functionNames: z.array(z.string()),\n publicKey: z.string().optional(),\n privateKey: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const OverrideSectionSchema = z.enum([\"ui\", \"api\", \"host\", \"plugins\"]);\n\nconst DEFAULT_LOGIN_EXPIRES_IN_SECONDS = 90 * 24 * 60 * 60;\n\nexport const LoginOptionsSchema = z.object({\n key: z.boolean().default(false),\n site: z.string().optional(),\n expiresIn: z.number().int().positive().default(DEFAULT_LOGIN_EXPIRES_IN_SECONDS),\n device: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const LoginResultSchema = z.object({\n status: z.enum([\"logged-in\", \"error\"]),\n siteUrl: z.string(),\n accountId: z.string().nullish(),\n expiresAt: z.string().nullish(),\n loginUrl: z.string().nullish(),\n publishKey: z\n .object({\n publicKey: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n contract: z.string(),\n exportedTo: z.string(),\n })\n .nullish(),\n warning: z.string().nullish(),\n error: z.string().optional(),\n});\n\nexport const LogoutOptionsSchema = z.object({\n configDir: z.string().optional(),\n});\n\nexport const LogoutResultSchema = z.object({\n status: z.enum([\"logged-out\", \"error\"]),\n revokedApiKey: z.boolean(),\n removedPublishKey: z.boolean(),\n warning: z.string().nullish(),\n error: z.string().optional(),\n});\n\nexport const RuntimeOverrideTargetBaseSchema = z.enum([\"ui\", \"api\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetSchema = z.union([\n RuntimeOverrideTargetBaseSchema,\n z.string().regex(/^plugins\\.(\\*|[a-z0-9_-]+)$/),\n]);\n\nexport const InitOptionsSchema = z.object({\n extends: z.string().optional(),\n directory: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n source: z.string().optional(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n level: StarterLevelSchema.optional(),\n noInteractive: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const InitResultSchema = z.object({\n status: z.enum([\"initialized\", \"error\"]),\n directory: z.string(),\n extendsRef: z.string(),\n account: z.string().optional(),\n domain: z.string().optional(),\n extends: z.string(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n filesCopied: z.number(),\n timings: z.array(PhaseTimingSchema).optional(),\n targetDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const SyncOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n json: z.boolean().default(false),\n});\n\nexport const SyncResultSchema = z.object({\n status: z.enum([\"synced\", \"dry-run\", \"error\"]),\n updated: z.array(z.string()),\n skipped: z.array(z.string()),\n added: z.array(z.string()),\n conflicted: z.array(z.string()).default([]),\n /** retired stub files deleted silently (unmodified) — ADR 0023 migration */\n retired: z.array(z.string()).optional(),\n /** retired stub files that were hand-modified — backed up, then deleted */\n retiredConflicted: z.array(z.string()).optional(),\n /** where the retired hand-modified copies were backed up */\n retiredBackupDir: z.string().optional(),\n backupDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const UpgradeOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n noSync: z.boolean().default(false),\n json: z.boolean().default(false),\n migrationsOnly: z.boolean().default(false),\n});\n\nexport const UpgradeResultSchema = z.object({\n status: z.enum([\"upgraded\", \"dry-run\", \"error\"]),\n packages: z.array(\n z.object({\n name: z.string(),\n from: z.string().optional(),\n to: z.string(),\n }),\n ),\n sync: SyncResultSchema.optional(),\n migrated: z.array(z.string()).optional(),\n availablePlugins: z.array(z.string()).optional(),\n selectedPlugins: z.array(z.string()).optional(),\n timings: z.array(PhaseTimingSchema).optional(),\n changelogUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DeployedVersionStatusSchema = z.object({\n publishedFingerprint: z.string(),\n servedFingerprint: z.string().optional(),\n inSync: z.boolean(),\n error: z.string().optional(),\n});\n\nexport const StatusResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n deployedVersion: DeployedVersionStatusSchema.optional(),\n extends: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n packages: z.array(\n z.object({\n name: z.string(),\n installed: z.string().optional(),\n latest: z.string().optional(),\n isLinked: z.boolean().optional(),\n specifier: z.string().optional(),\n }),\n ),\n lastSync: z.string().optional(),\n envFile: z.enum([\"found\", \"missing\", \"example-only\"]),\n parentReachable: z.boolean().optional(),\n error: z.string().optional(),\n});\n\nexport const TypesGenOptionsSchema = z.object({\n env: z.enum([\"development\", \"production\"]).optional(),\n dryRun: z.boolean().default(false),\n remotePlugins: z.array(z.string()).optional(),\n});\n\nexport const TypesGenResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n generated: z.array(z.string()),\n fetched: z.array(z.string()),\n skipped: z.array(z.string()),\n failed: z.array(z.string()),\n error: z.string().optional(),\n});\n\nexport const DbStudioOptionsSchema = z.object({\n plugin: z.string().default(\"api\"),\n});\n\nexport const DbStudioResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n source: z.enum([\"local\", \"remote\"]),\n section: z.string(),\n databaseSecret: z.string().optional(),\n databaseUrl: z.string().optional(),\n workspaceDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbDoctorOptionsSchema = z.object({\n plugin: z.string(),\n});\n\nexport const DbDoctorResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n slug: z.string(),\n journalTable: z.string(),\n journalSchema: z.string(),\n diagnosis: z.string(),\n localMigrationCount: z.number(),\n appliedHashCount: z.number(),\n expectedTables: z.array(z.string()),\n missingTables: z.array(z.string()),\n workspaceDir: z.string().optional(),\n dbSecret: z.string().optional(),\n dbUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbRepairOptionsSchema = z.object({\n plugin: z.string(),\n mode: z.enum([\"history-reset\", \"recreate\"]).default(\"history-reset\"),\n yes: z.boolean().optional(),\n});\n\nexport const DbRepairResultSchema = z.object({\n status: z.enum([\"repaired\", \"refused\", \"error\"]),\n message: z.string(),\n diagnosis: z.any(),\n error: z.string().optional(),\n});\n\nexport const ProcessRoleSchema = z.enum([\"standalone\", \"workspace-parent\", \"workspace-child\"]);\n\nexport const PidEntrySchema = z.object({\n pid: z.number(),\n configDir: z.string(),\n parentPid: z.number().optional(),\n role: ProcessRoleSchema,\n ports: z\n .object({\n host: z.number().optional(),\n api: z.number().optional(),\n ui: z.number().optional(),\n auth: z.number().optional(),\n })\n .default({}),\n budget: z\n .object({\n min: z.number(),\n max: z.number(),\n })\n .optional(),\n startedAt: z.number(),\n description: z.string(),\n});\n\nexport const PsResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n entries: z.array(PidEntrySchema),\n error: z.string().optional(),\n});\n\nexport const LogsOptionsSchema = z.object({\n service: z.string().optional(),\n tail: z.number().int().positive().max(100_000).optional(),\n follow: z.boolean().optional(),\n});\n\nexport const LogsResultSchema = z.object({\n logFile: z.string(),\n lines: z.array(z.string()),\n});\n\nexport const KillOptionsSchema = z.object({\n configDir: z.string().optional(),\n signal: z.enum([\"SIGTERM\", \"SIGKILL\"]).default(\"SIGTERM\"),\n all: z.boolean().default(false),\n});\n\nexport const KillResultSchema = z.object({\n status: z.enum([\"killed\", \"error\"]),\n killed: z.array(z.object({ pid: z.number(), configDir: z.string() })),\n skipped: z.array(z.object({ pid: z.number(), reason: z.string() })),\n error: z.string().optional(),\n});\n\nexport const TypecheckOptionsSchema = z.object({\n packages: z.string().default(\"all\"),\n});\n\nexport const TypecheckWorkspaceResultSchema = z.object({\n workspace: z.string(),\n passed: z.boolean(),\n output: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const TypecheckResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n checked: z.array(z.string()),\n skipped: z.array(z.string()),\n results: z.array(TypecheckWorkspaceResultSchema),\n error: z.string().optional(),\n});\n\nexport const InfraExportServiceSchema = z.object({\n key: z.string(),\n image: z.string(),\n env: z.record(z.string(), z.string()).default({}),\n ports: z.array(z.string()),\n healthcheck: z\n .object({\n test: z.array(z.string()),\n interval: z.string(),\n timeout: z.string(),\n retries: z.number(),\n })\n .optional(),\n volumes: z.array(z.string()).default([]),\n});\n\nexport const InfraExportOptionsSchema = z.object({\n target: z.enum([\"ci\", \"local\"]).default(\"ci\"),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n configDir: z.string().optional(),\n});\n\nexport const InfraExportResultSchema = z.object({\n env: z.record(z.string(), z.string()),\n services: z.array(InfraExportServiceSchema),\n generatedAt: z.string(),\n project: z.string(),\n account: z.string(),\n gateway: z.string(),\n});\n\nexport const MfCheckOptionsSchema = z.object({\n timeoutMs: z.number().default(15_000),\n});\n\nexport const MfCheckRemoteResultSchema = z.object({\n role: z.string(),\n url: z.string(),\n reachable: z.boolean(),\n pluginVersion: z.string().nullable(),\n ok: z.boolean(),\n reason: z.string().optional(),\n});\n\nexport const MfCheckResultSchema = z.object({\n status: z.enum([\"ok\", \"fail\"]),\n hostVersion: z.string().nullable(),\n hostReachable: z.boolean(),\n hostReason: z.string().optional(),\n remotes: z.array(MfCheckRemoteResultSchema),\n});\n\nexport const commandOptionSchemas = {\n dev: DevOptionsSchema,\n start: StartOptionsSchema,\n build: BuildOptionsSchema,\n config: ConfigOptionsSchema,\n registryUse: RegistryUseOptionsSchema,\n pluginAdd: PluginAddOptionsSchema,\n pluginRemove: PluginRemoveOptionsSchema,\n pluginPublish: PluginPublishOptionsSchema,\n publish: PublishOptionsSchema,\n rollback: RollbackOptionsSchema,\n deploy: DeployOptionsSchema,\n keyPublish: KeyPublishOptionsSchema,\n login: LoginOptionsSchema,\n logout: LogoutOptionsSchema,\n init: InitOptionsSchema,\n sync: SyncOptionsSchema,\n upgrade: UpgradeOptionsSchema,\n typecheck: TypecheckOptionsSchema,\n mfCheck: MfCheckOptionsSchema,\n infraExport: InfraExportOptionsSchema,\n dbStudio: DbStudioOptionsSchema,\n dbDoctor: DbDoctorOptionsSchema,\n dbRepair: DbRepairOptionsSchema,\n logs: LogsOptionsSchema,\n kill: KillOptionsSchema,\n} satisfies Partial<Record<keyof typeof bosContract, z.ZodType>>;\n\nexport const bosContract = oc.router({\n dev: oc.route({ method: \"POST\", path: \"/dev\" }).input(DevOptionsSchema).output(DevResultSchema),\n start: oc\n .route({ method: \"POST\", path: \"/start\" })\n .input(StartOptionsSchema)\n .output(StartResultSchema),\n build: oc\n .route({ method: \"POST\", path: \"/build\" })\n .input(BuildOptionsSchema)\n .output(BuildResultSchema),\n config: oc\n .route({ method: \"GET\", path: \"/config\" })\n .input(ConfigOptionsSchema)\n .output(ConfigResultSchema),\n registryUse: oc\n .route({ method: \"POST\", path: \"/registry/use\" })\n .input(RegistryUseOptionsSchema)\n .output(RegistryUseResultSchema),\n pluginAdd: oc\n .route({ method: \"POST\", path: \"/plugin/add\" })\n .input(PluginAddOptionsSchema)\n .output(PluginAddResultSchema),\n pluginRemove: oc\n .route({ method: \"POST\", path: \"/plugin/remove\" })\n .input(PluginRemoveOptionsSchema)\n .output(PluginRemoveResultSchema),\n pluginList: oc.route({ method: \"GET\", path: \"/plugin/list\" }).output(PluginListResultSchema),\n pluginPublish: oc\n .route({ method: \"POST\", path: \"/plugin/publish\" })\n .input(PluginPublishOptionsSchema)\n .output(PluginPublishResultSchema),\n publish: oc\n .route({ method: \"POST\", path: \"/publish\" })\n .input(PublishOptionsSchema)\n .output(PublishResultSchema),\n rollback: oc\n .route({ method: \"POST\", path: \"/rollback\" })\n .input(RollbackOptionsSchema)\n .output(RollbackResultSchema),\n deploy: oc\n .route({ method: \"POST\", path: \"/deploy\" })\n .input(DeployOptionsSchema)\n .output(DeployResultSchema),\n keyPublish: oc\n .route({ method: \"POST\", path: \"/key/publish\" })\n .input(KeyPublishOptionsSchema)\n .output(KeyPublishResultSchema),\n login: oc\n .route({ method: \"POST\", path: \"/login\" })\n .input(LoginOptionsSchema)\n .output(LoginResultSchema),\n logout: oc\n .route({ method: \"POST\", path: \"/logout\" })\n .input(LogoutOptionsSchema)\n .output(LogoutResultSchema),\n init: oc\n .route({ method: \"POST\", path: \"/init\" })\n .input(InitOptionsSchema)\n .output(InitResultSchema),\n sync: oc\n .route({ method: \"POST\", path: \"/sync\" })\n .input(SyncOptionsSchema)\n .output(SyncResultSchema),\n upgrade: oc\n .route({ method: \"POST\", path: \"/upgrade\" })\n .input(UpgradeOptionsSchema)\n .output(UpgradeResultSchema),\n status: oc.route({ method: \"GET\", path: \"/status\" }).output(StatusResultSchema),\n typesGen: oc\n .route({ method: \"POST\", path: \"/types/gen\" })\n .input(TypesGenOptionsSchema)\n .output(TypesGenResultSchema),\n dbStudio: oc\n .route({ method: \"POST\", path: \"/db/studio\" })\n .input(DbStudioOptionsSchema)\n .output(DbStudioResultSchema),\n dbDoctor: oc\n .route({ method: \"POST\", path: \"/db/doctor\" })\n .input(DbDoctorOptionsSchema)\n .output(DbDoctorResultSchema),\n dbRepair: oc\n .route({ method: \"POST\", path: \"/db/repair\" })\n .input(DbRepairOptionsSchema)\n .output(DbRepairResultSchema),\n ps: oc.route({ method: \"GET\", path: \"/ps\" }).output(PsResultSchema),\n logs: oc\n .route({ method: \"GET\", path: \"/logs\" })\n .input(LogsOptionsSchema)\n .output(LogsResultSchema),\n kill: oc\n .route({ method: \"POST\", path: \"/kill\" })\n .input(KillOptionsSchema)\n .output(KillResultSchema),\n typecheck: oc\n .route({ method: \"POST\", path: \"/typecheck\" })\n .input(TypecheckOptionsSchema)\n .output(TypecheckResultSchema),\n mfCheck: oc\n .route({ method: \"POST\", path: \"/mf/check\" })\n .input(MfCheckOptionsSchema)\n .output(MfCheckResultSchema),\n infraExport: oc\n .route({ method: \"POST\", path: \"/infra/export\" })\n .input(InfraExportOptionsSchema)\n .output(InfraExportResultSchema),\n});\n\nexport type DevOptions = z.infer<typeof DevOptionsSchema>;\nexport type DevResult = z.infer<typeof DevResultSchema>;\nexport type StartOptions = z.infer<typeof StartOptionsSchema>;\nexport type StartResult = z.infer<typeof StartResultSchema>;\nexport type BuildOptions = z.infer<typeof BuildOptionsSchema>;\nexport type BosConfigResult = z.infer<typeof ConfigResultSchema>;\nexport type PluginAddOptions = z.infer<typeof PluginAddOptionsSchema>;\nexport type PluginAddResult = z.infer<typeof PluginAddResultSchema>;\nexport type PluginRemoveOptions = z.infer<typeof PluginRemoveOptionsSchema>;\nexport type PluginRemoveResult = z.infer<typeof PluginRemoveResultSchema>;\nexport type PluginListResult = z.infer<typeof PluginListResultSchema>;\nexport type PluginPublishOptions = z.infer<typeof PluginPublishOptionsSchema>;\nexport type PluginPublishResult = z.infer<typeof PluginPublishResultSchema>;\nexport type WorkspaceDeployResult = z.infer<typeof WorkspaceDeployResultSchema>;\nexport type PublishOptions = z.infer<typeof PublishOptionsSchema>;\nexport type PublishResult = z.infer<typeof PublishResultSchema>;\nexport type DeployOptions = z.infer<typeof DeployOptionsSchema>;\nexport type DeployResult = z.infer<typeof DeployResultSchema>;\nexport type KeyPublishOptions = z.infer<typeof KeyPublishOptionsSchema>;\nexport type KeyPublishResult = z.infer<typeof KeyPublishResultSchema>;\nexport type LoginOptions = z.infer<typeof LoginOptionsSchema>;\nexport type LoginResult = z.infer<typeof LoginResultSchema>;\nexport type LogoutOptions = z.infer<typeof LogoutOptionsSchema>;\nexport type LogoutResult = z.infer<typeof LogoutResultSchema>;\nexport type InitOptions = z.infer<typeof InitOptionsSchema>;\nexport type InitResult = z.infer<typeof InitResultSchema>;\nexport type OverrideSection = z.infer<typeof OverrideSectionSchema>;\nexport type PhaseTiming = z.infer<typeof PhaseTimingSchema>;\nexport type SyncOptions = z.infer<typeof SyncOptionsSchema>;\nexport type SyncResult = z.infer<typeof SyncResultSchema>;\nexport type UpgradeOptions = z.infer<typeof UpgradeOptionsSchema>;\nexport type UpgradeResult = z.infer<typeof UpgradeResultSchema>;\nexport type StatusResult = z.infer<typeof StatusResultSchema>;\nexport type TypesGenOptions = z.infer<typeof TypesGenOptionsSchema>;\nexport type TypesGenResult = z.infer<typeof TypesGenResultSchema>;\nexport type DbStudioOptions = z.infer<typeof DbStudioOptionsSchema>;\nexport type DbStudioResult = z.infer<typeof DbStudioResultSchema>;\nexport type DbDoctorOptions = z.infer<typeof DbDoctorOptionsSchema>;\nexport type DbDoctorResult = z.infer<typeof DbDoctorResultSchema>;\nexport type DbRepairOptions = z.infer<typeof DbRepairOptionsSchema>;\nexport type DbRepairResult = z.infer<typeof DbRepairResultSchema>;\nexport type RuntimeOverrideTarget = z.infer<typeof RuntimeOverrideTargetSchema>;\nexport type ProcessRole = z.infer<typeof ProcessRoleSchema>;\nexport type PidEntry = z.infer<typeof PidEntrySchema>;\nexport type PsResult = z.infer<typeof PsResultSchema>;\nexport type LogsOptions = z.infer<typeof LogsOptionsSchema>;\nexport type LogsResult = z.infer<typeof LogsResultSchema>;\nexport type KillOptions = z.infer<typeof KillOptionsSchema>;\nexport type KillResult = z.infer<typeof KillResultSchema>;\nexport type TypecheckOptions = z.infer<typeof TypecheckOptionsSchema>;\nexport type TypecheckResult = z.infer<typeof TypecheckResultSchema>;\nexport type TypecheckWorkspaceResult = z.infer<typeof TypecheckWorkspaceResultSchema>;\nexport type InfraExportOptions = z.infer<typeof InfraExportOptionsSchema>;\nexport type MfCheckOptions = z.infer<typeof MfCheckOptionsSchema>;\nexport type MfCheckResult = z.infer<typeof MfCheckResultSchema>;\nexport type InfraExportResult = z.infer<typeof InfraExportResultSchema>;\nexport type InfraExportService = z.infer<typeof InfraExportServiceSchema>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract.mjs","names":["z"],"sources":["../src/contract.ts"],"sourcesContent":["import \"@orpc/openapi/extensions/route\";\nimport * as z from \"zod\";\nimport type { DevSessionData, StartSummary } from \"./dev-session-data\";\nimport { isValidImageDigest } from \"./image-deploy\";\nimport { oc } from \"./sdk\";\nimport {\n BosConfigInputSchema,\n BosConfigSchema,\n SourceModeSchema,\n StarterLevelSchema,\n} from \"./types\";\n\nexport const PhaseTimingSchema = z.object({\n name: z.string(),\n durationMs: z.number(),\n});\n\nexport const DevOptionsSchema = z.object({\n host: SourceModeSchema.default(\"local\"),\n ui: SourceModeSchema.default(\"local\"),\n api: SourceModeSchema.default(\"local\"),\n auth: SourceModeSchema.default(\"local\"),\n remotePlugins: z.array(z.string()).optional(),\n proxy: z.boolean().default(false),\n ssr: z.boolean().default(false),\n port: z.number().optional(),\n apiPort: z.number().optional(),\n uiPort: z.number().optional(),\n authPort: z.number().optional(),\n pluginPortStart: z.number().optional(),\n interactive: z.boolean().optional(),\n logLevel: z.enum([\"error\", \"warn\", \"info\", \"debug\"]).optional(),\n});\n\nexport const DevResultSchema = z.object({\n status: z.enum([\"started\", \"error\"]),\n description: z.string(),\n processes: z.array(z.string()),\n timings: z.array(PhaseTimingSchema).optional(),\n session: z.custom<DevSessionData>().optional(),\n});\n\nexport const StartOptionsSchema = z.object({\n port: z.number().optional(),\n interactive: z.boolean().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n configPath: z.string().optional(),\n});\n\nexport const StartResultSchema = z.object({\n status: z.enum([\"running\", \"error\"]),\n url: z.string(),\n error: z.string().optional(),\n session: z.custom<DevSessionData>().optional(),\n summary: z.custom<StartSummary>().optional(),\n});\n\nexport const BuildOptionsSchema = z.object({\n packages: z\n .string()\n .default(\"all\")\n .describe(\n \"Comma-separated keys, 'all' (default), or 'local' (only this repo's local plugins hosted via 'local:…')\",\n ),\n force: z.boolean().default(false),\n});\n\nexport const BuildResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n error: z.string().optional(),\n built: z.array(z.string()),\n skipped: z.array(z.string()).optional(),\n});\n\nexport const ConfigOptionsSchema = z.object({\n full: z.boolean().default(false),\n});\n\nexport const ConfigResultSchema = z.object({\n config: z.union([BosConfigInputSchema, BosConfigSchema]).nullable(),\n packages: z.array(z.string()),\n remotes: z.array(z.string()),\n full: z.boolean().default(false),\n});\n\nexport const RegistryUseOptionsSchema = z.object({\n from: z.string().describe(\"Published runtime to compose from (account/gateway or bos:// URL)\"),\n sections: z\n .array(z.string())\n .min(1)\n .describe(\"Sections to compose: app.ui, app.host, app.api, app.auth, plugins.<key>\"),\n dryRun: z.boolean().default(false),\n});\n\nexport const RegistryUseResultSchema = z.object({\n status: z.enum([\"updated\", \"dry-run\", \"error\"]),\n from: z.string(),\n applied: z.array(z.string()),\n configPath: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginAddOptionsSchema = z.object({\n source: z.string(),\n as: z.string().optional(),\n production: z.string().optional(),\n});\n\nexport const PluginAddResultSchema = z.object({\n status: z.enum([\"added\", \"error\"]),\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n integrity: z.string().optional(),\n version: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const PluginRemoveOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginRemoveResultSchema = z.object({\n status: z.enum([\"removed\", \"error\"]),\n key: z.string(),\n error: z.string().optional(),\n});\n\nexport const PluginListResultSchema = z.object({\n status: z.enum([\"listed\", \"error\"]),\n plugins: z.array(\n z.object({\n key: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n localPath: z.string().optional(),\n source: z.enum([\"local\", \"remote\"]),\n integrity: z.string().optional(),\n version: z.string().optional(),\n name: z.string().optional(),\n }),\n ),\n error: z.string().optional(),\n});\n\nexport const PluginPublishOptionsSchema = z.object({\n key: z.string(),\n});\n\nexport const PluginPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n key: z.string(),\n path: z.string().optional(),\n production: z.string().optional(),\n version: z.string().optional(),\n fingerprint: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const WorkspaceDeployResultSchema = z.object({\n key: z.string(),\n kind: z.enum([\"app\", \"plugin\"]),\n success: z.boolean(),\n error: z.string().optional(),\n durationMs: z.number().optional(),\n});\n\nexport const PublishOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n wallet: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const RollbackOptionsSchema = z.object({\n listOnly: z.boolean().default(false),\n version: z.string().optional(),\n previous: z.boolean().default(false),\n force: z.boolean().default(false),\n limit: z.number().int().min(1).max(200).default(20),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n wallet: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const RollbackHistoryEntrySchema = z.object({\n blockHeight: z.number(),\n blockTimestamp: z.string(),\n txHash: z.string().optional(),\n summary: z.string(),\n});\n\nexport const RollbackSlotCheckSchema = z.object({\n slot: z.string(),\n ok: z.boolean(),\n reason: z.string().optional(),\n});\n\nexport const RollbackResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\", \"list\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n error: z.string().optional(),\n history: z.array(RollbackHistoryEntrySchema).optional(),\n verification: z.array(RollbackSlotCheckSchema).optional(),\n});\n\nexport const PublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\", \"dry-run\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n fingerprint: z.string().optional(),\n slotPins: z.record(z.string(), z.string()).optional(),\n error: z.string().optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nexport const DeployOptionsSchema = z.object({\n statusList: z.boolean().default(false),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n build: z.boolean().default(true),\n dryRun: z.boolean().default(false),\n verbose: z.boolean().default(false),\n packages: z\n .string()\n .default(\"all\")\n .describe(\n \"Comma-separated keys, 'all' (default), or 'local' (only this repo's local plugins hosted via 'local:…')\",\n ),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n privateKey: z.string().optional(),\n service: z.string().optional(),\n registry: z.string().optional(),\n imageDigest: z\n .string()\n .optional()\n .refine((digest) => digest === undefined || isValidImageDigest(digest), {\n message: \"image digest must be sha256:<64 hex characters>\",\n })\n .describe(\n \"Digest (sha256:…) of a pre-pushed runtime image — skips the image build/push leg and pins Railway to this digest\",\n ),\n fullUpload: z\n .boolean()\n .default(false)\n .describe(\n \"Re-upload every dist file instead of diffing unchanged files against the previous deploy\",\n ),\n smoke: z\n .boolean()\n .default(false)\n .describe(\n \"After publish, boot the runtime image against the just-published config and gate the Railway promotion on it — a red smoke rolls the config back to the previous snapshot\",\n ),\n});\n\nexport const DeployManifestListEntrySchema = z.object({\n key: z.string(),\n blockHeight: z.number(),\n blockTimestamp: z.string(),\n txHash: z.string().optional(),\n publishedAt: z.string().optional(),\n});\n\nexport const DeployResultSchema = z.object({\n status: z.enum([\"deployed\", \"published\", \"error\", \"dry-run\", \"list\"]),\n registryUrl: z.string(),\n txHash: z.string().optional(),\n fingerprint: z.string().optional(),\n slotPins: z.record(z.string(), z.string()).optional(),\n history: z.array(DeployManifestListEntrySchema).optional(),\n built: z.array(z.string()).optional(),\n skipped: z.array(z.string()).optional(),\n image: z.string().optional(),\n service: z.string().optional(),\n error: z.string().optional(),\n deployResults: z.array(WorkspaceDeployResultSchema).optional(),\n});\n\nexport const SmokeOptionsSchema = z.object({\n image: z\n .string()\n .optional()\n .describe(\"Runtime image ref to boot — required unless defaulted by the deploy train\"),\n port: z.number().int().default(3000),\n keep: z.boolean().default(false),\n account: z\n .string()\n .optional()\n .describe(\"Registry identity — defaults to the resolved session config\"),\n gateway: z.string().optional(),\n apiDatabaseUrl: z.string().optional(),\n authDatabaseUrl: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const SmokeResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n image: z.string().optional(),\n summary: z.string().optional(),\n diagnosis: z.string().optional(),\n error: z.string().optional(),\n});\n\nfunction parseNearAmount(value: string): number {\n const cleaned = value.replace(/[\\s_,]/g, \"\");\n const match = cleaned.match(/^(\\d+(?:\\.\\d+)?)near$/i);\n if (!match) return NaN;\n return Number.parseFloat(match[1]!);\n}\n\nconst MIN_PUBLISH_ALLOWANCE_NEAR = 0.3;\n\nexport const KeyPublishOptionsSchema = z.object({\n allowance: z\n .string()\n .default(\"1NEAR\")\n .refine(\n (val) => {\n const amount = parseNearAmount(val);\n return !Number.isNaN(amount) && amount >= MIN_PUBLISH_ALLOWANCE_NEAR;\n },\n {\n message: `Allowance must be at least ${MIN_PUBLISH_ALLOWANCE_NEAR} NEAR to cover the transaction cost`,\n },\n ),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n removeOldKeys: z.boolean().optional(),\n});\n\nexport const KeyPublishResultSchema = z.object({\n status: z.enum([\"published\", \"error\"]),\n account: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n env: z.enum([\"production\", \"staging\"]),\n contract: z.string(),\n allowance: z.string(),\n functionNames: z.array(z.string()),\n publicKey: z.string().optional(),\n privateKey: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const OverrideSectionSchema = z.enum([\"ui\", \"api\", \"host\", \"plugins\"]);\n\nconst DEFAULT_LOGIN_EXPIRES_IN_SECONDS = 90 * 24 * 60 * 60;\n\nexport const LoginOptionsSchema = z.object({\n key: z.boolean().default(false),\n site: z.string().optional(),\n expiresIn: z.number().int().positive().default(DEFAULT_LOGIN_EXPIRES_IN_SECONDS),\n device: z.string().optional(),\n env: z.enum([\"production\", \"staging\"]).default(\"production\"),\n registry: z.string().optional(),\n});\n\nexport const LoginResultSchema = z.object({\n status: z.enum([\"logged-in\", \"error\"]),\n siteUrl: z.string(),\n accountId: z.string().nullish(),\n expiresAt: z.string().nullish(),\n loginUrl: z.string().nullish(),\n publishKey: z\n .object({\n publicKey: z.string(),\n network: z.enum([\"mainnet\", \"testnet\"]),\n contract: z.string(),\n exportedTo: z.string(),\n })\n .nullish(),\n warning: z.string().nullish(),\n error: z.string().optional(),\n});\n\nexport const LogoutOptionsSchema = z.object({\n configDir: z.string().optional(),\n});\n\nexport const LogoutResultSchema = z.object({\n status: z.enum([\"logged-out\", \"error\"]),\n revokedApiKey: z.boolean(),\n removedPublishKey: z.boolean(),\n warning: z.string().nullish(),\n error: z.string().optional(),\n});\n\nexport const RuntimeOverrideTargetBaseSchema = z.enum([\"ui\", \"api\", \"plugins\"]);\n\nexport const RuntimeOverrideTargetSchema = z.union([\n RuntimeOverrideTargetBaseSchema,\n z.string().regex(/^plugins\\.(\\*|[a-z0-9_-]+)$/),\n]);\n\nexport const InitOptionsSchema = z.object({\n extends: z.string().optional(),\n directory: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n source: z.string().optional(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n level: StarterLevelSchema.optional(),\n noInteractive: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n});\n\nexport const InitResultSchema = z.object({\n status: z.enum([\"initialized\", \"error\"]),\n directory: z.string(),\n extendsRef: z.string(),\n account: z.string().optional(),\n domain: z.string().optional(),\n extends: z.string(),\n plugins: z.array(z.string()).optional(),\n overrides: z.array(OverrideSectionSchema).optional(),\n filesCopied: z.number(),\n timings: z.array(PhaseTimingSchema).optional(),\n targetDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const SyncOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n json: z.boolean().default(false),\n});\n\nexport const SyncResultSchema = z.object({\n status: z.enum([\"synced\", \"dry-run\", \"error\"]),\n updated: z.array(z.string()),\n skipped: z.array(z.string()),\n added: z.array(z.string()),\n conflicted: z.array(z.string()).default([]),\n /** retired stub files deleted silently (unmodified) — ADR 0023 migration */\n retired: z.array(z.string()).optional(),\n /** retired stub files that were hand-modified — backed up, then deleted */\n retiredConflicted: z.array(z.string()).optional(),\n /** where the retired hand-modified copies were backed up */\n retiredBackupDir: z.string().optional(),\n backupDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const UpgradeOptionsSchema = z.object({\n dryRun: z.boolean().default(false),\n noInstall: z.boolean().default(false),\n noSync: z.boolean().default(false),\n json: z.boolean().default(false),\n migrationsOnly: z.boolean().default(false),\n});\n\nexport const UpgradeResultSchema = z.object({\n status: z.enum([\"upgraded\", \"dry-run\", \"error\"]),\n packages: z.array(\n z.object({\n name: z.string(),\n from: z.string().optional(),\n to: z.string(),\n }),\n ),\n sync: SyncResultSchema.optional(),\n migrated: z.array(z.string()).optional(),\n availablePlugins: z.array(z.string()).optional(),\n selectedPlugins: z.array(z.string()).optional(),\n timings: z.array(PhaseTimingSchema).optional(),\n changelogUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DeployedVersionStatusSchema = z.object({\n publishedFingerprint: z.string(),\n servedFingerprint: z.string().optional(),\n inSync: z.boolean(),\n error: z.string().optional(),\n});\n\nexport const StatusResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n deployedVersion: DeployedVersionStatusSchema.optional(),\n extends: z.string().optional(),\n account: z.string().optional(),\n domain: z.string().optional(),\n packages: z.array(\n z.object({\n name: z.string(),\n installed: z.string().optional(),\n latest: z.string().optional(),\n isLinked: z.boolean().optional(),\n specifier: z.string().optional(),\n }),\n ),\n lastSync: z.string().optional(),\n envFile: z.enum([\"found\", \"missing\", \"example-only\"]),\n parentReachable: z.boolean().optional(),\n error: z.string().optional(),\n});\n\nexport const TypesGenOptionsSchema = z.object({\n env: z.enum([\"development\", \"production\"]).optional(),\n dryRun: z.boolean().default(false),\n remotePlugins: z.array(z.string()).optional(),\n});\n\nexport const TypesGenResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n generated: z.array(z.string()),\n fetched: z.array(z.string()),\n skipped: z.array(z.string()),\n failed: z.array(z.string()),\n error: z.string().optional(),\n});\n\nexport const DbStudioOptionsSchema = z.object({\n plugin: z.string().default(\"api\"),\n});\n\nexport const DbStudioResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n source: z.enum([\"local\", \"remote\"]),\n section: z.string(),\n databaseSecret: z.string().optional(),\n databaseUrl: z.string().optional(),\n workspaceDir: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbDoctorOptionsSchema = z.object({\n plugin: z.string(),\n});\n\nexport const DbDoctorResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n plugin: z.string(),\n slug: z.string(),\n journalTable: z.string(),\n journalSchema: z.string(),\n diagnosis: z.string(),\n localMigrationCount: z.number(),\n appliedHashCount: z.number(),\n expectedTables: z.array(z.string()),\n missingTables: z.array(z.string()),\n workspaceDir: z.string().optional(),\n dbSecret: z.string().optional(),\n dbUrl: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const DbRepairOptionsSchema = z.object({\n plugin: z.string(),\n mode: z.enum([\"history-reset\", \"recreate\"]).default(\"history-reset\"),\n yes: z.boolean().optional(),\n});\n\nexport const DbRepairResultSchema = z.object({\n status: z.enum([\"repaired\", \"refused\", \"error\"]),\n message: z.string(),\n diagnosis: z.any(),\n error: z.string().optional(),\n});\n\nexport const ProcessRoleSchema = z.enum([\"standalone\", \"workspace-parent\", \"workspace-child\"]);\n\nexport const PidEntrySchema = z.object({\n pid: z.number(),\n configDir: z.string(),\n parentPid: z.number().optional(),\n role: ProcessRoleSchema,\n ports: z\n .object({\n host: z.number().optional(),\n api: z.number().optional(),\n ui: z.number().optional(),\n auth: z.number().optional(),\n })\n .default({}),\n budget: z\n .object({\n min: z.number(),\n max: z.number(),\n })\n .optional(),\n startedAt: z.number(),\n description: z.string(),\n});\n\nexport const PsResultSchema = z.object({\n status: z.enum([\"ok\", \"error\"]),\n entries: z.array(PidEntrySchema),\n error: z.string().optional(),\n});\n\nexport const LogsOptionsSchema = z.object({\n service: z.string().optional(),\n tail: z.number().int().positive().max(100_000).optional(),\n follow: z.boolean().optional(),\n});\n\nexport const LogsResultSchema = z.object({\n logFile: z.string(),\n lines: z.array(z.string()),\n});\n\nexport const KillOptionsSchema = z.object({\n configDir: z.string().optional(),\n signal: z.enum([\"SIGTERM\", \"SIGKILL\"]).default(\"SIGTERM\"),\n all: z.boolean().default(false),\n});\n\nexport const KillResultSchema = z.object({\n status: z.enum([\"killed\", \"error\"]),\n killed: z.array(z.object({ pid: z.number(), configDir: z.string() })),\n skipped: z.array(z.object({ pid: z.number(), reason: z.string() })),\n error: z.string().optional(),\n});\n\nexport const TypecheckOptionsSchema = z.object({\n packages: z.string().default(\"all\"),\n});\n\nexport const TypecheckWorkspaceResultSchema = z.object({\n workspace: z.string(),\n passed: z.boolean(),\n output: z.string().optional(),\n error: z.string().optional(),\n});\n\nexport const TypecheckResultSchema = z.object({\n status: z.enum([\"success\", \"error\"]),\n checked: z.array(z.string()),\n skipped: z.array(z.string()),\n results: z.array(TypecheckWorkspaceResultSchema),\n error: z.string().optional(),\n});\n\nexport const InfraExportServiceSchema = z.object({\n key: z.string(),\n image: z.string(),\n env: z.record(z.string(), z.string()).default({}),\n ports: z.array(z.string()),\n healthcheck: z\n .object({\n test: z.array(z.string()),\n interval: z.string(),\n timeout: z.string(),\n retries: z.number(),\n })\n .optional(),\n volumes: z.array(z.string()).default([]),\n});\n\nexport const InfraExportOptionsSchema = z.object({\n target: z.enum([\"ci\", \"local\"]).default(\"ci\"),\n network: z.enum([\"mainnet\", \"testnet\"]).optional(),\n configDir: z.string().optional(),\n});\n\nexport const InfraExportResultSchema = z.object({\n env: z.record(z.string(), z.string()),\n services: z.array(InfraExportServiceSchema),\n generatedAt: z.string(),\n project: z.string(),\n account: z.string(),\n gateway: z.string(),\n});\n\nexport const MfCheckOptionsSchema = z.object({\n timeoutMs: z.number().default(15_000),\n});\n\nexport const MfCheckRemoteResultSchema = z.object({\n role: z.string(),\n url: z.string(),\n reachable: z.boolean(),\n pluginVersion: z.string().nullable(),\n ok: z.boolean(),\n reason: z.string().optional(),\n});\n\nexport const MfCheckResultSchema = z.object({\n status: z.enum([\"ok\", \"fail\"]),\n hostVersion: z.string().nullable(),\n hostReachable: z.boolean(),\n hostReason: z.string().optional(),\n remotes: z.array(MfCheckRemoteResultSchema),\n});\n\nexport const commandOptionSchemas = {\n dev: DevOptionsSchema,\n start: StartOptionsSchema,\n build: BuildOptionsSchema,\n config: ConfigOptionsSchema,\n registryUse: RegistryUseOptionsSchema,\n pluginAdd: PluginAddOptionsSchema,\n pluginRemove: PluginRemoveOptionsSchema,\n pluginPublish: PluginPublishOptionsSchema,\n publish: PublishOptionsSchema,\n rollback: RollbackOptionsSchema,\n deploy: DeployOptionsSchema,\n smoke: SmokeOptionsSchema,\n keyPublish: KeyPublishOptionsSchema,\n login: LoginOptionsSchema,\n logout: LogoutOptionsSchema,\n init: InitOptionsSchema,\n sync: SyncOptionsSchema,\n upgrade: UpgradeOptionsSchema,\n typecheck: TypecheckOptionsSchema,\n mfCheck: MfCheckOptionsSchema,\n infraExport: InfraExportOptionsSchema,\n dbStudio: DbStudioOptionsSchema,\n dbDoctor: DbDoctorOptionsSchema,\n dbRepair: DbRepairOptionsSchema,\n logs: LogsOptionsSchema,\n kill: KillOptionsSchema,\n} satisfies Partial<Record<keyof typeof bosContract, z.ZodType>>;\n\nexport const bosContract = oc.router({\n dev: oc.route({ method: \"POST\", path: \"/dev\" }).input(DevOptionsSchema).output(DevResultSchema),\n start: oc\n .route({ method: \"POST\", path: \"/start\" })\n .input(StartOptionsSchema)\n .output(StartResultSchema),\n build: oc\n .route({ method: \"POST\", path: \"/build\" })\n .input(BuildOptionsSchema)\n .output(BuildResultSchema),\n config: oc\n .route({ method: \"GET\", path: \"/config\" })\n .input(ConfigOptionsSchema)\n .output(ConfigResultSchema),\n registryUse: oc\n .route({ method: \"POST\", path: \"/registry/use\" })\n .input(RegistryUseOptionsSchema)\n .output(RegistryUseResultSchema),\n pluginAdd: oc\n .route({ method: \"POST\", path: \"/plugin/add\" })\n .input(PluginAddOptionsSchema)\n .output(PluginAddResultSchema),\n pluginRemove: oc\n .route({ method: \"POST\", path: \"/plugin/remove\" })\n .input(PluginRemoveOptionsSchema)\n .output(PluginRemoveResultSchema),\n pluginList: oc.route({ method: \"GET\", path: \"/plugin/list\" }).output(PluginListResultSchema),\n pluginPublish: oc\n .route({ method: \"POST\", path: \"/plugin/publish\" })\n .input(PluginPublishOptionsSchema)\n .output(PluginPublishResultSchema),\n publish: oc\n .route({ method: \"POST\", path: \"/publish\" })\n .input(PublishOptionsSchema)\n .output(PublishResultSchema),\n rollback: oc\n .route({ method: \"POST\", path: \"/rollback\" })\n .input(RollbackOptionsSchema)\n .output(RollbackResultSchema),\n deploy: oc\n .route({ method: \"POST\", path: \"/deploy\" })\n .input(DeployOptionsSchema)\n .output(DeployResultSchema),\n smoke: oc\n .route({ method: \"POST\", path: \"/smoke\" })\n .input(SmokeOptionsSchema)\n .output(SmokeResultSchema),\n keyPublish: oc\n .route({ method: \"POST\", path: \"/key/publish\" })\n .input(KeyPublishOptionsSchema)\n .output(KeyPublishResultSchema),\n login: oc\n .route({ method: \"POST\", path: \"/login\" })\n .input(LoginOptionsSchema)\n .output(LoginResultSchema),\n logout: oc\n .route({ method: \"POST\", path: \"/logout\" })\n .input(LogoutOptionsSchema)\n .output(LogoutResultSchema),\n init: oc\n .route({ method: \"POST\", path: \"/init\" })\n .input(InitOptionsSchema)\n .output(InitResultSchema),\n sync: oc\n .route({ method: \"POST\", path: \"/sync\" })\n .input(SyncOptionsSchema)\n .output(SyncResultSchema),\n upgrade: oc\n .route({ method: \"POST\", path: \"/upgrade\" })\n .input(UpgradeOptionsSchema)\n .output(UpgradeResultSchema),\n status: oc.route({ method: \"GET\", path: \"/status\" }).output(StatusResultSchema),\n typesGen: oc\n .route({ method: \"POST\", path: \"/types/gen\" })\n .input(TypesGenOptionsSchema)\n .output(TypesGenResultSchema),\n dbStudio: oc\n .route({ method: \"POST\", path: \"/db/studio\" })\n .input(DbStudioOptionsSchema)\n .output(DbStudioResultSchema),\n dbDoctor: oc\n .route({ method: \"POST\", path: \"/db/doctor\" })\n .input(DbDoctorOptionsSchema)\n .output(DbDoctorResultSchema),\n dbRepair: oc\n .route({ method: \"POST\", path: \"/db/repair\" })\n .input(DbRepairOptionsSchema)\n .output(DbRepairResultSchema),\n ps: oc.route({ method: \"GET\", path: \"/ps\" }).output(PsResultSchema),\n logs: oc\n .route({ method: \"GET\", path: \"/logs\" })\n .input(LogsOptionsSchema)\n .output(LogsResultSchema),\n kill: oc\n .route({ method: \"POST\", path: \"/kill\" })\n .input(KillOptionsSchema)\n .output(KillResultSchema),\n typecheck: oc\n .route({ method: \"POST\", path: \"/typecheck\" })\n .input(TypecheckOptionsSchema)\n .output(TypecheckResultSchema),\n mfCheck: oc\n .route({ method: \"POST\", path: \"/mf/check\" })\n .input(MfCheckOptionsSchema)\n .output(MfCheckResultSchema),\n infraExport: oc\n .route({ method: \"POST\", path: \"/infra/export\" })\n .input(InfraExportOptionsSchema)\n .output(InfraExportResultSchema),\n});\n\nexport type DevOptions = z.infer<typeof DevOptionsSchema>;\nexport type DevResult = z.infer<typeof DevResultSchema>;\nexport type StartOptions = z.infer<typeof StartOptionsSchema>;\nexport type StartResult = z.infer<typeof StartResultSchema>;\nexport type BuildOptions = z.infer<typeof BuildOptionsSchema>;\nexport type BosConfigResult = z.infer<typeof ConfigResultSchema>;\nexport type PluginAddOptions = z.infer<typeof PluginAddOptionsSchema>;\nexport type PluginAddResult = z.infer<typeof PluginAddResultSchema>;\nexport type PluginRemoveOptions = z.infer<typeof PluginRemoveOptionsSchema>;\nexport type PluginRemoveResult = z.infer<typeof PluginRemoveResultSchema>;\nexport type PluginListResult = z.infer<typeof PluginListResultSchema>;\nexport type PluginPublishOptions = z.infer<typeof PluginPublishOptionsSchema>;\nexport type PluginPublishResult = z.infer<typeof PluginPublishResultSchema>;\nexport type WorkspaceDeployResult = z.infer<typeof WorkspaceDeployResultSchema>;\nexport type PublishOptions = z.infer<typeof PublishOptionsSchema>;\nexport type PublishResult = z.infer<typeof PublishResultSchema>;\nexport type DeployOptions = z.infer<typeof DeployOptionsSchema>;\nexport type DeployResult = z.infer<typeof DeployResultSchema>;\nexport type KeyPublishOptions = z.infer<typeof KeyPublishOptionsSchema>;\nexport type KeyPublishResult = z.infer<typeof KeyPublishResultSchema>;\nexport type LoginOptions = z.infer<typeof LoginOptionsSchema>;\nexport type LoginResult = z.infer<typeof LoginResultSchema>;\nexport type LogoutOptions = z.infer<typeof LogoutOptionsSchema>;\nexport type LogoutResult = z.infer<typeof LogoutResultSchema>;\nexport type InitOptions = z.infer<typeof InitOptionsSchema>;\nexport type InitResult = z.infer<typeof InitResultSchema>;\nexport type OverrideSection = z.infer<typeof OverrideSectionSchema>;\nexport type PhaseTiming = z.infer<typeof PhaseTimingSchema>;\nexport type SyncOptions = z.infer<typeof SyncOptionsSchema>;\nexport type SyncResult = z.infer<typeof SyncResultSchema>;\nexport type UpgradeOptions = z.infer<typeof UpgradeOptionsSchema>;\nexport type UpgradeResult = z.infer<typeof UpgradeResultSchema>;\nexport type StatusResult = z.infer<typeof StatusResultSchema>;\nexport type TypesGenOptions = z.infer<typeof TypesGenOptionsSchema>;\nexport type TypesGenResult = z.infer<typeof TypesGenResultSchema>;\nexport type DbStudioOptions = z.infer<typeof DbStudioOptionsSchema>;\nexport type DbStudioResult = z.infer<typeof DbStudioResultSchema>;\nexport type DbDoctorOptions = z.infer<typeof DbDoctorOptionsSchema>;\nexport type DbDoctorResult = z.infer<typeof DbDoctorResultSchema>;\nexport type DbRepairOptions = z.infer<typeof DbRepairOptionsSchema>;\nexport type DbRepairResult = z.infer<typeof DbRepairResultSchema>;\nexport type RuntimeOverrideTarget = z.infer<typeof RuntimeOverrideTargetSchema>;\nexport type ProcessRole = z.infer<typeof ProcessRoleSchema>;\nexport type PidEntry = z.infer<typeof PidEntrySchema>;\nexport type PsResult = z.infer<typeof PsResultSchema>;\nexport type LogsOptions = z.infer<typeof LogsOptionsSchema>;\nexport type LogsResult = z.infer<typeof LogsResultSchema>;\nexport type KillOptions = z.infer<typeof KillOptionsSchema>;\nexport type KillResult = z.infer<typeof KillResultSchema>;\nexport type TypecheckOptions = z.infer<typeof TypecheckOptionsSchema>;\nexport type TypecheckResult = z.infer<typeof TypecheckResultSchema>;\nexport type TypecheckWorkspaceResult = z.infer<typeof TypecheckWorkspaceResultSchema>;\nexport type InfraExportOptions = z.infer<typeof InfraExportOptionsSchema>;\nexport type MfCheckOptions = z.infer<typeof MfCheckOptionsSchema>;\nexport type MfCheckResult = z.infer<typeof MfCheckResultSchema>;\nexport type InfraExportResult = z.infer<typeof InfraExportResultSchema>;\nexport type InfraExportService = z.infer<typeof InfraExportServiceSchema>;\n"],"mappings":"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"}
|
package/dist/db/core.cjs
CHANGED
|
@@ -179,10 +179,28 @@ function suppressPgQueryQueueDeprecation() {
|
|
|
179
179
|
}
|
|
180
180
|
function extractExpectedTables(migrations) {
|
|
181
181
|
const tables = /* @__PURE__ */ new Set();
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
182
|
+
const ident = String.raw`(?:"([^"]+)"|(\w+))`;
|
|
183
|
+
const qualified = String.raw`(?:${ident}\.)?`;
|
|
184
|
+
const createRe = new RegExp(String.raw`CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?${qualified}${ident}`, "gi");
|
|
185
|
+
const dropRe = new RegExp(String.raw`DROP\s+TABLE\s+(?:IF\s+EXISTS\s+)?${qualified}${ident}`, "gi");
|
|
186
|
+
const renameRe = new RegExp(String.raw`ALTER\s+TABLE\s+(?:IF\s+EXISTS\s+)?${qualified}${ident}${String.raw`\s+RENAME\s+TO\s+`}${ident}`, "gi");
|
|
187
|
+
for (const migration of migrations) for (const stmt of migration.sql) {
|
|
188
|
+
for (const match of stmt.matchAll(createRe)) {
|
|
189
|
+
const tableName = match[3] ?? match[4];
|
|
190
|
+
if (tableName) tables.add(tableName);
|
|
191
|
+
}
|
|
192
|
+
for (const match of stmt.matchAll(dropRe)) {
|
|
193
|
+
const tableName = match[3] ?? match[4];
|
|
194
|
+
if (tableName) tables.delete(tableName);
|
|
195
|
+
}
|
|
196
|
+
for (const match of stmt.matchAll(renameRe)) {
|
|
197
|
+
const from = match[3] ?? match[4];
|
|
198
|
+
const to = match[5] ?? match[6];
|
|
199
|
+
if (from && to) {
|
|
200
|
+
tables.delete(from);
|
|
201
|
+
tables.add(to);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
186
204
|
}
|
|
187
205
|
return [...tables];
|
|
188
206
|
}
|