everything-dev 1.44.1 → 1.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/build.cjs +328 -0
  2. package/dist/build.cjs.map +1 -0
  3. package/dist/build.mjs +320 -0
  4. package/dist/build.mjs.map +1 -0
  5. package/dist/cli/init.cjs +1 -1
  6. package/dist/cli/init.mjs +1 -1
  7. package/dist/cli/sync.cjs +7 -1
  8. package/dist/cli/sync.cjs.map +1 -1
  9. package/dist/cli/sync.mjs +7 -1
  10. package/dist/cli/sync.mjs.map +1 -1
  11. package/dist/cli/upgrade.cjs +2 -2
  12. package/dist/cli/upgrade.mjs +2 -2
  13. package/dist/cli.cjs +36 -2
  14. package/dist/cli.cjs.map +1 -1
  15. package/dist/cli.mjs +36 -2
  16. package/dist/cli.mjs.map +1 -1
  17. package/dist/code-artifacts.cjs +25 -0
  18. package/dist/code-artifacts.cjs.map +1 -0
  19. package/dist/code-artifacts.mjs +24 -0
  20. package/dist/code-artifacts.mjs.map +1 -0
  21. package/dist/contract.cjs +16 -2
  22. package/dist/contract.cjs.map +1 -1
  23. package/dist/contract.d.cts +83 -17
  24. package/dist/contract.d.cts.map +1 -1
  25. package/dist/contract.d.mts +83 -17
  26. package/dist/contract.d.mts.map +1 -1
  27. package/dist/contract.meta.cjs +2 -0
  28. package/dist/contract.meta.cjs.map +1 -1
  29. package/dist/contract.meta.d.cts +6 -0
  30. package/dist/contract.meta.d.mts +6 -0
  31. package/dist/contract.meta.mjs +2 -0
  32. package/dist/contract.meta.mjs.map +1 -1
  33. package/dist/contract.mjs +16 -3
  34. package/dist/contract.mjs.map +1 -1
  35. package/dist/index.cjs +1 -0
  36. package/dist/index.d.cts +2 -2
  37. package/dist/index.d.mts +2 -2
  38. package/dist/index.mjs +2 -2
  39. package/dist/integrity.cjs +79 -0
  40. package/dist/integrity.cjs.map +1 -1
  41. package/dist/integrity.d.cts +17 -1
  42. package/dist/integrity.d.cts.map +1 -1
  43. package/dist/integrity.d.mts +17 -1
  44. package/dist/integrity.d.mts.map +1 -1
  45. package/dist/integrity.mjs +76 -1
  46. package/dist/integrity.mjs.map +1 -1
  47. package/dist/near-cli.cjs +12 -15
  48. package/dist/near-cli.cjs.map +1 -1
  49. package/dist/near-cli.mjs +12 -15
  50. package/dist/near-cli.mjs.map +1 -1
  51. package/dist/plugin.cjs +47 -347
  52. package/dist/plugin.cjs.map +1 -1
  53. package/dist/plugin.d.cts +34 -15
  54. package/dist/plugin.d.cts.map +1 -1
  55. package/dist/plugin.d.mts +34 -15
  56. package/dist/plugin.d.mts.map +1 -1
  57. package/dist/plugin.mjs +32 -331
  58. package/dist/plugin.mjs.map +1 -1
  59. package/dist/publish.cjs +220 -0
  60. package/dist/publish.cjs.map +1 -0
  61. package/dist/publish.mjs +217 -0
  62. package/dist/publish.mjs.map +1 -0
  63. package/dist/types.d.cts +2 -2
  64. package/dist/types.d.mts +2 -2
  65. package/dist/utils/run.cjs +21 -3
  66. package/dist/utils/run.cjs.map +1 -1
  67. package/dist/utils/run.mjs +21 -3
  68. package/dist/utils/run.mjs.map +1 -1
  69. package/dist/utils/string.cjs +9 -0
  70. package/dist/utils/string.cjs.map +1 -0
  71. package/dist/utils/string.mjs +8 -0
  72. package/dist/utils/string.mjs.map +1 -0
  73. package/package.json +1 -1
package/dist/plugin.cjs CHANGED
@@ -7,24 +7,25 @@ const require_types = require('./types.cjs');
7
7
  const require_config = require('./config.cjs');
8
8
  const require_contract = require('./contract.cjs');
9
9
  const require_integrity = require('./integrity.cjs');
10
- const require_api_contract = require('./api-contract.cjs');
11
10
  const require_app = require('./app.cjs');
11
+ const require_shared_deps = require('./shared-deps.cjs');
12
+ const require_run = require('./utils/run.cjs');
13
+ const require_theme = require('./utils/theme.cjs');
14
+ const require_build = require('./build.cjs');
12
15
  const require_infra = require('./cli/infra.cjs');
13
16
  const require_save_config = require('./utils/save-config.cjs');
14
17
  const require_cli_init = require('./cli/init.cjs');
15
18
  const require_status = require('./cli/status.cjs');
16
- const require_shared_deps = require('./shared-deps.cjs');
17
19
  const require_sync = require('./cli/sync.cjs');
18
20
  const require_upgrade = require('./cli/upgrade.cjs');
19
- const require_theme = require('./utils/theme.cjs');
21
+ const require_code_artifacts = require('./code-artifacts.cjs');
20
22
  const require_near_cli = require('./near-cli.cjs');
23
+ const require_publish = require('./publish.cjs');
21
24
  const require_service_descriptor = require('./service-descriptor.cjs');
22
- const require_run = require('./utils/run.cjs');
23
25
  let node_fs = require("node:fs");
24
26
  let node_path = require("node:path");
25
27
  let effect = require("effect");
26
28
  let node_events = require("node:events");
27
- let node_fs_promises = require("node:fs/promises");
28
29
  let node_process = require("node:process");
29
30
  node_process = require_runtime.__toESM(node_process, 1);
30
31
  let every_plugin = require("every-plugin");
@@ -72,25 +73,7 @@ async function timePhase(timings, name, fn) {
72
73
  throw error;
73
74
  }
74
75
  }
75
- const buildCommands = {
76
- host: {
77
- cmd: "bun",
78
- args: ["run", "build"]
79
- },
80
- ui: {
81
- cmd: "bun",
82
- args: ["run", "build"]
83
- },
84
- api: {
85
- cmd: "bun",
86
- args: ["run", "build"]
87
- }
88
- };
89
76
  const PUBLISH_FUNCTION_NAMES = ["__fastdata_kv"];
90
- function getPluginRef(entry) {
91
- if (!entry || typeof entry === "string") return null;
92
- return entry;
93
- }
94
77
  function parseSourceMode(value, defaultValue) {
95
78
  if (value === "local" || value === "remote") return value;
96
79
  return defaultValue;
@@ -105,40 +88,6 @@ function buildConfigResult(bosConfig, full = false) {
105
88
  full
106
89
  };
107
90
  }
108
- async function fileExists(path) {
109
- try {
110
- await (0, node_fs_promises.access)(path);
111
- return true;
112
- } catch {
113
- return false;
114
- }
115
- }
116
- async function readJsonFile(path) {
117
- return JSON.parse(await (0, node_fs_promises.readFile)(path, "utf8"));
118
- }
119
- function resolveWorkspaceTarget(key, bosConfig, runtimeConfig, configDir) {
120
- if (bosConfig?.app && key in bosConfig.app) {
121
- const appEntry = bosConfig.app[key];
122
- const devPath = require_config.resolveLocalDevelopmentPath(appEntry?.development, configDir);
123
- if (devPath) return {
124
- key,
125
- kind: "app",
126
- path: devPath
127
- };
128
- return {
129
- key,
130
- kind: "app",
131
- path: `${configDir}/${key}`
132
- };
133
- }
134
- const pluginPath = (runtimeConfig?.plugins?.[key])?.localPath ?? require_config.resolveLocalDevelopmentPath(getPluginRef(bosConfig?.plugins?.[key])?.development, configDir);
135
- if (pluginPath) return {
136
- key,
137
- kind: "plugin",
138
- path: pluginPath
139
- };
140
- return null;
141
- }
142
91
  function isValidProxyUrl(url) {
143
92
  try {
144
93
  const parsed = new URL(url);
@@ -169,14 +118,14 @@ function defaultPluginKey(source) {
169
118
  }
170
119
  }
171
120
  function pluginLocalPath(configDir, attachment) {
172
- const ref = getPluginRef(attachment);
121
+ const ref = require_build.getPluginRef(attachment);
173
122
  const source = ref?.development ?? ref?.production;
174
123
  if (!source?.startsWith("local:")) return null;
175
124
  return (0, node_path.join)(configDir, source.slice(6));
176
125
  }
177
126
  function listPluginAttachments(config) {
178
127
  return Object.entries(config?.plugins ?? {}).map(([key, attachment]) => {
179
- const ref = getPluginRef(attachment);
128
+ const ref = require_build.getPluginRef(attachment);
180
129
  return {
181
130
  key,
182
131
  development: ref?.development,
@@ -189,88 +138,6 @@ function listPluginAttachments(config) {
189
138
  };
190
139
  }).sort((a, b) => a.key.localeCompare(b.key));
191
140
  }
192
- async function generateCodeArtifacts(configDir, config, opts) {
193
- if (opts?.env) require_config.writeResolvedConfig(configDir, config, opts.env, opts.extendsChain);
194
- const runtimeConfig = opts?.runtimeConfig ?? (await require_config.loadResolvedConfig({ cwd: configDir }))?.runtime;
195
- if (!runtimeConfig) return null;
196
- const bridge = await require_api_contract.syncApiContractBridge({
197
- configDir,
198
- runtimeConfig,
199
- apiBaseUrl: runtimeConfig.api.url
200
- });
201
- return {
202
- resolvedConfigPath: opts?.env ? (0, node_path.join)(configDir, ".bos/bos.resolved-config.json") : void 0,
203
- contractBridgePath: bridge.bridgePath,
204
- contractStatus: bridge.status
205
- };
206
- }
207
- function extractPublishedUrl(output) {
208
- const match = output.match(/https?:\/\/[^\s"'<>]+/g);
209
- if (!match || match.length === 0) return null;
210
- return match[match.length - 1] ?? null;
211
- }
212
- function sleep(ms) {
213
- return new Promise((resolve) => setTimeout(resolve, ms));
214
- }
215
- async function waitForPublishedConfig(opts) {
216
- const envTimeoutMs = Number(node_process.default.env.BOS_PUBLISH_CONFIRMATION_TIMEOUT_MS);
217
- const envIntervalMs = Number(node_process.default.env.BOS_PUBLISH_CONFIRMATION_INTERVAL_MS);
218
- const timeoutMs = opts.timeoutMs ?? (Number.isFinite(envTimeoutMs) ? envTimeoutMs : void 0) ?? 12e4;
219
- const intervalMs = opts.intervalMs ?? (Number.isFinite(envIntervalMs) ? envIntervalMs : void 0) ?? 3e3;
220
- const startedAt = Date.now();
221
- let lastError;
222
- while (Date.now() - startedAt < timeoutMs) {
223
- try {
224
- const verifiedConfig = await require_fastkv.fetchBosConfigFromFastKv(`bos://${opts.account}/${opts.gateway}`);
225
- if (JSON.stringify(verifiedConfig) === JSON.stringify(opts.publishConfig)) return;
226
- } catch (error) {
227
- lastError = error;
228
- }
229
- await sleep(intervalMs);
230
- }
231
- const reason = lastError instanceof Error ? ` Last error: ${lastError.message}` : "";
232
- throw new Error(`Timed out waiting for publish confirmation at bos://${opts.account}/${opts.gateway}.${reason}`);
233
- }
234
- async function buildEveryPluginQuietly(cwd) {
235
- if (!await fileExists(`${`${cwd}/packages/every-plugin`}/package.json`)) return;
236
- if (await fileExists(`${cwd}/packages/every-plugin/dist/build/rspack/plugin.mjs`)) return;
237
- const result = await require_run.run("bun", [
238
- "run",
239
- "--cwd",
240
- "packages/every-plugin",
241
- "build"
242
- ], {
243
- cwd,
244
- capture: true
245
- });
246
- if (result.exitCode === 0) {
247
- console.log("[build:ssr] build succeeded");
248
- return;
249
- }
250
- if (result.stdout.trim()) node_process.default.stdout.write(result.stdout);
251
- if (result.stderr.trim()) node_process.default.stderr.write(result.stderr);
252
- throw new Error(`bun run --cwd packages/every-plugin build failed with exit code ${result.exitCode}`);
253
- }
254
- async function buildEverythingDevQuietly(cwd) {
255
- if (!await fileExists(`${`${cwd}/packages/everything-dev`}/package.json`)) return;
256
- if (await fileExists(`${cwd}/packages/everything-dev/dist/index.mjs`)) return;
257
- const result = await require_run.run("bun", [
258
- "run",
259
- "--cwd",
260
- "packages/everything-dev",
261
- "build"
262
- ], {
263
- cwd,
264
- capture: true
265
- });
266
- if (result.exitCode === 0) {
267
- console.log("[everything-dev] build succeeded");
268
- return;
269
- }
270
- if (result.stdout.trim()) node_process.default.stdout.write(result.stdout);
271
- if (result.stderr.trim()) node_process.default.stderr.write(result.stderr);
272
- throw new Error(`bun run --cwd packages/everything-dev build failed with exit code ${result.exitCode}`);
273
- }
274
141
  async function resolveRemoteConfigChain(accountId, gatewayId, visited) {
275
142
  const selfRef = `bos://${accountId}/${gatewayId}`;
276
143
  if (visited.has(selfRef)) throw new Error(`Circular extends detected: ${selfRef}`);
@@ -294,69 +161,6 @@ async function fetchPublishedConfig(accountId, gatewayId) {
294
161
  throw error;
295
162
  }
296
163
  }
297
- function selectWorkspaceTargets(packages, bosConfig) {
298
- const allPackages = [...Object.keys(bosConfig?.app ?? {}), ...Object.keys(bosConfig?.plugins ?? {})];
299
- if (packages === "all") return allPackages;
300
- return packages.split(",").map((pkg) => pkg.trim()).filter((pkg) => allPackages.includes(pkg));
301
- }
302
- async function buildWorkspaceTargets(opts) {
303
- const existing = [];
304
- const skipped = [];
305
- for (const target of opts.targets) {
306
- const resolved = resolveWorkspaceTarget(target, opts.bosConfig, opts.runtimeConfig, opts.configDir);
307
- if (!resolved) {
308
- skipped.push(target);
309
- continue;
310
- }
311
- if (await fileExists(`${resolved.path}/package.json`)) existing.push(resolved);
312
- else skipped.push(target);
313
- }
314
- if (existing.length === 0) return {
315
- built: [],
316
- skipped
317
- };
318
- if ((await require_shared_deps.syncResolvedSharedDeps({
319
- configDir: opts.configDir,
320
- hostMode: "local",
321
- bosConfig: opts.bosConfig ?? void 0,
322
- extendsChain: []
323
- })).catalogChanged) await require_run.run("bun", ["install"], { cwd: opts.configDir });
324
- const shouldBuildPlugin = existing.some((entry) => entry.key === "api");
325
- const buildTasks = [buildEverythingDevQuietly(opts.configDir)];
326
- if (shouldBuildPlugin) buildTasks.push(buildEveryPluginQuietly(opts.configDir));
327
- await Promise.all(buildTasks);
328
- const env = {
329
- ...node_process.default.env,
330
- NODE_ENV: opts.deploy ? "production" : "development"
331
- };
332
- if (opts.deploy) env.DEPLOY = "true";
333
- else delete env.DEPLOY;
334
- const orderedExisting = opts.deploy ? [
335
- ...existing.filter((entry) => entry.kind === "app" && entry.key !== "host"),
336
- ...existing.filter((entry) => entry.kind === "plugin"),
337
- ...existing.filter((entry) => entry.kind === "app" && entry.key === "host")
338
- ] : existing;
339
- const built = [];
340
- for (const resolved of orderedExisting) {
341
- const pkgJson = await readJsonFile(`${resolved.path}/package.json`);
342
- const buildConfig = opts.deploy && pkgJson.scripts?.deploy ? {
343
- cmd: "bun",
344
- args: ["run", "deploy"]
345
- } : buildCommands[resolved.key] ?? {
346
- cmd: "bun",
347
- args: ["run", "build"]
348
- };
349
- await require_run.run(buildConfig.cmd, buildConfig.args, {
350
- cwd: resolved.path,
351
- env
352
- });
353
- built.push(resolved.key);
354
- }
355
- return {
356
- built,
357
- skipped
358
- };
359
- }
360
164
  var plugin_default = (0, every_plugin.createPlugin)({
361
165
  variables: zod.z.object({ configPath: zod.z.string().optional() }),
362
166
  secrets: zod.z.object({}),
@@ -405,7 +209,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
405
209
  plugins: nextPlugins
406
210
  };
407
211
  await require_save_config.saveBosConfig(deps.configDir, deps.bosConfig);
408
- await generateCodeArtifacts(deps.configDir, deps.bosConfig);
212
+ await require_code_artifacts.generateCodeArtifacts(deps.configDir, deps.bosConfig);
409
213
  const stored = deps.bosConfig.plugins?.[key];
410
214
  const storedObj = stored && typeof stored === "object" ? stored : {};
411
215
  return {
@@ -435,7 +239,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
435
239
  plugins: Object.keys(nextPlugins).length > 0 ? nextPlugins : void 0
436
240
  };
437
241
  await require_save_config.saveBosConfig(deps.configDir, deps.bosConfig);
438
- await generateCodeArtifacts(deps.configDir, deps.bosConfig);
242
+ await require_code_artifacts.generateCodeArtifacts(deps.configDir, deps.bosConfig);
439
243
  return {
440
244
  status: "removed",
441
245
  key: input.key
@@ -459,7 +263,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
459
263
  key: input.key,
460
264
  error: `Plugin '${input.key}' is not configured`
461
265
  };
462
- const attachmentRef = getPluginRef(attachment);
266
+ const attachmentRef = require_build.getPluginRef(attachment);
463
267
  const localPath = pluginLocalPath(deps.configDir, attachment);
464
268
  if (!localPath) return {
465
269
  status: "error",
@@ -467,12 +271,12 @@ var plugin_default = (0, every_plugin.createPlugin)({
467
271
  error: `Plugin '${input.key}' does not have a local development path`
468
272
  };
469
273
  const pkgPath = (0, node_path.join)(localPath, "package.json");
470
- if (!await fileExists(pkgPath)) return {
274
+ if (!await require_build.fileExists(pkgPath)) return {
471
275
  status: "error",
472
276
  key: input.key,
473
277
  error: `Missing package.json at ${localPath}`
474
278
  };
475
- const pkgJson = await readJsonFile(pkgPath);
279
+ const pkgJson = await require_build.readJsonFile(pkgPath);
476
280
  const script = pkgJson.scripts?.deploy ? "deploy" : "build";
477
281
  const { stdout, stderr, exitCode } = await require_run.run("bun", ["run", script], {
478
282
  cwd: localPath,
@@ -489,14 +293,23 @@ var plugin_default = (0, every_plugin.createPlugin)({
489
293
  }
490
294
  if (stdout.trim()) node_process.default.stdout.write(stdout);
491
295
  if (stderr.trim()) node_process.default.stderr.write(stderr);
492
- let publishedUrl = extractPublishedUrl(`${stdout}\n${stderr}`);
296
+ const output = `${stdout}\n${stderr}`;
297
+ const deployEntry = require_integrity.parseDeployLines(output).find((e) => e.urlField === `plugins.${input.key}.production`);
298
+ let publishedUrl;
299
+ let integrity;
300
+ if (deployEntry) {
301
+ publishedUrl = deployEntry.url;
302
+ integrity = deployEntry.integrity;
303
+ } else {
304
+ publishedUrl = require_publish.extractPublishedUrl(output) ?? void 0;
305
+ integrity = publishedUrl ? await require_integrity.computeSriHashForUrl(publishedUrl) ?? void 0 : void 0;
306
+ }
493
307
  let manifest = null;
494
308
  if (publishedUrl) manifest = await require_fastkv.fetchRemotePluginManifest(publishedUrl);
495
309
  else if (attachmentRef?.production) {
496
310
  manifest = await require_fastkv.fetchRemotePluginManifest(attachmentRef.production);
497
311
  if (manifest) publishedUrl = attachmentRef.production;
498
312
  }
499
- const integrity = publishedUrl ? await require_integrity.computeSriHashForUrl(publishedUrl) : null;
500
313
  const version = manifest?.plugin.version ?? pkgJson.version;
501
314
  if (publishedUrl) {
502
315
  const rootConfigPath = (0, node_path.join)(deps.configDir, "bos.config.json");
@@ -514,7 +327,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
514
327
  } catch (err) {
515
328
  console.error(` ❌ Failed to update bos.config.json:`, err instanceof Error ? err.message : err);
516
329
  }
517
- await generateCodeArtifacts(deps.configDir, deps.bosConfig);
330
+ await require_code_artifacts.generateCodeArtifacts(deps.configDir, deps.bosConfig);
518
331
  }
519
332
  return {
520
333
  status: "published",
@@ -550,8 +363,8 @@ var plugin_default = (0, every_plugin.createPlugin)({
550
363
  }
551
364
  const shouldBuildPlugin = apiSource === "local" && !proxy || localPackages.some((pkg) => pkg.startsWith("plugin:"));
552
365
  await timePhase(devTimings, "build", async () => {
553
- const buildTasks = [buildEverythingDevQuietly(deps.configDir)];
554
- if (shouldBuildPlugin) buildTasks.push(buildEveryPluginQuietly(deps.configDir));
366
+ const buildTasks = [require_build.buildEverythingDevQuietly(deps.configDir)];
367
+ if (shouldBuildPlugin) buildTasks.push(require_build.buildEveryPluginQuietly(deps.configDir));
555
368
  await Promise.all(buildTasks);
556
369
  });
557
370
  let devExtendsChain;
@@ -595,7 +408,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
595
408
  require_infra.syncGeneratedInfra(deps.configDir, runtimeConfig);
596
409
  require_infra.ensureEnvFile(deps.configDir);
597
410
  require_infra.loadProjectEnv(deps.configDir);
598
- await timePhase(devTimings, "generate artifacts", () => generateCodeArtifacts(deps.configDir, deps.bosConfig, {
411
+ await timePhase(devTimings, "generate artifacts", () => require_code_artifacts.generateCodeArtifacts(deps.configDir, deps.bosConfig, {
599
412
  env: "development",
600
413
  extendsChain: devExtendsChain,
601
414
  runtimeConfig
@@ -699,7 +512,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
699
512
  phase: "generate artifacts",
700
513
  status: "running"
701
514
  });
702
- await generateCodeArtifacts(deps.configDir, config, {
515
+ await require_code_artifacts.generateCodeArtifacts(deps.configDir, config, {
703
516
  env: "production",
704
517
  runtimeConfig
705
518
  });
@@ -773,7 +586,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
773
586
  skipped: []
774
587
  };
775
588
  const buildEnv = input.deploy ? "production" : "development";
776
- const targets = selectWorkspaceTargets(input.packages, deps.bosConfig);
589
+ const targets = require_build.selectWorkspaceTargets(input.packages, deps.bosConfig);
777
590
  if (targets.length === 0) return {
778
591
  status: "error",
779
592
  built: [],
@@ -790,11 +603,11 @@ var plugin_default = (0, every_plugin.createPlugin)({
790
603
  });
791
604
  require_config.drainConfigWarnings();
792
605
  require_config.resumeWarnings();
793
- await generateCodeArtifacts(deps.configDir, deps.bosConfig, {
606
+ await require_code_artifacts.generateCodeArtifacts(deps.configDir, deps.bosConfig, {
794
607
  env: buildEnv,
795
608
  runtimeConfig
796
609
  });
797
- const { built, skipped } = await buildWorkspaceTargets({
610
+ const { built, skipped } = await require_build.buildWorkspaceTargets({
798
611
  configDir: deps.configDir,
799
612
  bosConfig: deps.bosConfig,
800
613
  runtimeConfig,
@@ -819,13 +632,14 @@ var plugin_default = (0, every_plugin.createPlugin)({
819
632
  registryUrl: "",
820
633
  error: "No bos.config.json found"
821
634
  };
822
- const result = await publishToFastKv({
635
+ const result = await require_publish.publishToFastKv({
823
636
  bosConfig: deps.bosConfig,
824
637
  runtimeConfig: deps.runtimeConfig,
825
638
  configDir: deps.configDir,
826
639
  env: input.env,
827
640
  build: input.deploy,
828
641
  dryRun: input.dryRun,
642
+ verbose: input.verbose,
829
643
  packages: input.packages,
830
644
  network: input.network,
831
645
  privateKey: input.privateKey
@@ -843,7 +657,8 @@ var plugin_default = (0, every_plugin.createPlugin)({
843
657
  txHash: result.txHash,
844
658
  error: result.error,
845
659
  built: result.built,
846
- skipped: result.skipped
660
+ skipped: result.skipped,
661
+ deployResults: result.deployResults
847
662
  };
848
663
  }),
849
664
  deploy: builder.deploy.handler(async ({ input }) => {
@@ -853,13 +668,14 @@ var plugin_default = (0, every_plugin.createPlugin)({
853
668
  redeployed: false,
854
669
  error: "No bos.config.json found"
855
670
  };
856
- const result = await publishToFastKv({
671
+ const result = await require_publish.publishToFastKv({
857
672
  bosConfig: deps.bosConfig,
858
673
  runtimeConfig: deps.runtimeConfig,
859
674
  configDir: deps.configDir,
860
675
  env: input.env,
861
676
  build: input.build,
862
677
  dryRun: input.dryRun,
678
+ verbose: input.verbose,
863
679
  packages: input.packages,
864
680
  network: input.network,
865
681
  privateKey: input.privateKey
@@ -871,7 +687,8 @@ var plugin_default = (0, every_plugin.createPlugin)({
871
687
  built: result.built,
872
688
  skipped: result.skipped,
873
689
  redeployed: false,
874
- error: result.error
690
+ error: result.error,
691
+ deployResults: result.deployResults
875
692
  };
876
693
  if (result.status === "dry-run") return {
877
694
  status: "dry-run",
@@ -901,6 +718,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
901
718
  built: result.built,
902
719
  skipped: result.skipped,
903
720
  redeployed: false,
721
+ deployResults: result.deployResults,
904
722
  error: "Config published but Railway redeploy failed: ci.railway.service is not configured in bos.config.json"
905
723
  };
906
724
  }
@@ -931,6 +749,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
931
749
  skipped: result.skipped,
932
750
  redeployed: false,
933
751
  service,
752
+ deployResults: result.deployResults,
934
753
  error: `Config published but ${railError}`
935
754
  };
936
755
  }
@@ -945,7 +764,8 @@ var plugin_default = (0, every_plugin.createPlugin)({
945
764
  built: result.built,
946
765
  skipped: result.skipped,
947
766
  redeployed,
948
- service
767
+ service,
768
+ deployResults: result.deployResults
949
769
  };
950
770
  }),
951
771
  keyPublish: builder.keyPublish.handler(async ({ input }) => {
@@ -1137,7 +957,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
1137
957
  await timePhase(timings, "generate types", () => require_cli_init.runTypesGen(targetDir));
1138
958
  await timePhase(timings, "generate migrations", () => require_cli_init.generateDatabaseMigrations(targetDir));
1139
959
  }
1140
- if (input.noInstall && initConfig?.config) await timePhase(timings, "generate code artifacts", () => generateCodeArtifacts(targetDir, initConfig.config));
960
+ if (input.noInstall && initConfig?.config) await timePhase(timings, "generate code artifacts", () => require_code_artifacts.generateCodeArtifacts(targetDir, initConfig.config));
1141
961
  return {
1142
962
  status: "initialized",
1143
963
  directory,
@@ -1185,7 +1005,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
1185
1005
  const result = await require_sync.syncTemplate(projectDir, input);
1186
1006
  if (result.status === "synced" || result.status === "dry-run") {
1187
1007
  const syncedConfig = await require_config.loadResolvedConfig({ cwd: projectDir });
1188
- if (syncedConfig?.config) await generateCodeArtifacts(projectDir, syncedConfig.config);
1008
+ if (syncedConfig?.config) await require_code_artifacts.generateCodeArtifacts(projectDir, syncedConfig.config);
1189
1009
  }
1190
1010
  return result;
1191
1011
  } catch (error) {
@@ -1263,7 +1083,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
1263
1083
  source: refreshed.runtime.api.source
1264
1084
  };
1265
1085
  }
1266
- const artifacts = await generateCodeArtifacts(projectDir, refreshed.config, { runtimeConfig: refreshed.runtime });
1086
+ const artifacts = await require_code_artifacts.generateCodeArtifacts(projectDir, refreshed.config, { runtimeConfig: refreshed.runtime });
1267
1087
  const hasLocalApiWorkspace = (0, node_fs.existsSync)((0, node_path.join)(projectDir, "api", "src"));
1268
1088
  const generated = ["ui/src/lib/api-types.gen.ts"];
1269
1089
  if (hasLocalApiWorkspace) generated.push("api/src/lib/plugins-types.gen.ts", "api/src/lib/auth-types.gen.ts");
@@ -1361,125 +1181,6 @@ var plugin_default = (0, every_plugin.createPlugin)({
1361
1181
  })
1362
1182
  })
1363
1183
  });
1364
- async function publishToFastKv(input) {
1365
- const { env, dryRun, configDir } = input;
1366
- let bosConfig = input.bosConfig;
1367
- const runtimeConfig = input.runtimeConfig;
1368
- const isStaging = env === "staging";
1369
- const account = bosConfig.account;
1370
- const gateway = isStaging ? bosConfig.staging?.domain ?? bosConfig.domain : bosConfig.domain;
1371
- if (!gateway) return {
1372
- status: "error",
1373
- registryUrl: "",
1374
- error: "bos.config.json must define domain to publish"
1375
- };
1376
- const network = input.network ?? require_network.getNetworkIdForAccount(account);
1377
- const registryUrl = require_fastkv.buildRegistryConfigUrlForNetwork(network, account, gateway);
1378
- const targets = selectWorkspaceTargets(input.packages, bosConfig);
1379
- let built;
1380
- let skipped;
1381
- if (dryRun) return {
1382
- status: "dry-run",
1383
- registryUrl,
1384
- built,
1385
- skipped
1386
- };
1387
- if (input.build) {
1388
- await generateCodeArtifacts(configDir, bosConfig, {
1389
- env: "production",
1390
- runtimeConfig: runtimeConfig ?? void 0
1391
- });
1392
- const result = await buildWorkspaceTargets({
1393
- configDir,
1394
- bosConfig,
1395
- runtimeConfig,
1396
- targets,
1397
- deploy: true
1398
- });
1399
- built = result.built;
1400
- skipped = result.skipped;
1401
- const refreshed = await require_config.loadResolvedConfig({ cwd: configDir });
1402
- if (!refreshed?.config) return {
1403
- status: "error",
1404
- registryUrl,
1405
- built,
1406
- skipped,
1407
- error: "Failed to reload bos.config.json after build"
1408
- };
1409
- bosConfig = refreshed.config;
1410
- }
1411
- const rawConfigPath = (0, node_path.join)(configDir, "bos.config.json");
1412
- const rawConfig = JSON.parse((0, node_fs.readFileSync)(rawConfigPath, "utf-8"));
1413
- const publishPayload = isStaging ? {
1414
- ...rawConfig,
1415
- domain: gateway
1416
- } : rawConfig;
1417
- const registryEntries = { [`apps/${account}/${gateway}/bos.config.json`]: JSON.stringify(publishPayload) };
1418
- const payload = JSON.stringify(registryEntries);
1419
- const argsBase64 = Buffer.from(payload).toString("base64");
1420
- const privateKey = input.privateKey || node_process.default.env.NEAR_PRIVATE_KEY || node_process.default.env.BOS_NEAR_PRIVATE_KEY;
1421
- let signingMode;
1422
- try {
1423
- signingMode = require_near_cli.resolveNearSigningMode(privateKey);
1424
- } catch (error) {
1425
- return {
1426
- status: "error",
1427
- registryUrl,
1428
- error: error instanceof Error ? error.message : "Unknown error"
1429
- };
1430
- }
1431
- console.log();
1432
- console.log(" Publishing to:");
1433
- console.log(` ${require_theme.colors.cyan(registryUrl)}`);
1434
- try {
1435
- console.log(" Ensuring NEAR CLI...");
1436
- await effect.Effect.runPromise(require_near_cli.ensureNearCli);
1437
- console.log(" NEAR CLI ready");
1438
- let txHash;
1439
- console.log(` Submitting transaction on ${network}...`);
1440
- try {
1441
- txHash = (await effect.Effect.runPromise(require_near_cli.executeTransaction({
1442
- account,
1443
- contract: require_fastkv.getRegistryNamespaceForNetwork(network),
1444
- method: "__fastdata_kv",
1445
- argsBase64,
1446
- network,
1447
- privateKey: signingMode._tag === "privateKey" ? signingMode.privateKey : void 0,
1448
- gas: "300Tgas",
1449
- deposit: "0NEAR"
1450
- }, signingMode))).txHash;
1451
- if (txHash) console.log(` Transaction submitted: ${require_theme.colors.dim(txHash)}`);
1452
- } catch (error) {
1453
- txHash = extractTransactionHash(error);
1454
- if (!txHash) throw error;
1455
- }
1456
- console.log(" Waiting for publish confirmation...");
1457
- await waitForPublishedConfig({
1458
- account,
1459
- gateway,
1460
- publishConfig: publishPayload
1461
- });
1462
- return {
1463
- status: "published",
1464
- registryUrl,
1465
- txHash,
1466
- built,
1467
- skipped,
1468
- publishConfig: publishPayload
1469
- };
1470
- } catch (error) {
1471
- return {
1472
- status: "error",
1473
- registryUrl,
1474
- error: error instanceof Error ? error.message : "Unknown error",
1475
- built,
1476
- skipped
1477
- };
1478
- }
1479
- }
1480
- function extractTransactionHash(error) {
1481
- return (error instanceof Error ? error.message : String(error)).match(/Transaction ID:\s*([A-Za-z0-9]+)/i)?.[1];
1482
- }
1483
1184
  function computeAllowedWorkspaces(overrides, plugins) {
1484
1185
  const workspaces = [];
1485
1186
  for (const section of overrides) {
@@ -1496,5 +1197,4 @@ exports.consumeDevSession = consumeDevSession;
1496
1197
  exports.default = plugin_default;
1497
1198
  exports.pluginEvents = pluginEvents;
1498
1199
  exports.resolveRemoteConfigChain = resolveRemoteConfigChain;
1499
- exports.waitForPublishedConfig = waitForPublishedConfig;
1500
1200
  //# sourceMappingURL=plugin.cjs.map