everything-dev 1.26.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/api-contract.cjs.map +1 -1
  2. package/dist/api-contract.mjs.map +1 -1
  3. package/dist/cli/catalog.cjs.map +1 -1
  4. package/dist/cli/catalog.mjs.map +1 -1
  5. package/dist/cli/framework-version.cjs.map +1 -1
  6. package/dist/cli/framework-version.mjs.map +1 -1
  7. package/dist/cli/infra.cjs.map +1 -1
  8. package/dist/cli/infra.mjs.map +1 -1
  9. package/dist/cli/init.cjs +127 -114
  10. package/dist/cli/init.cjs.map +1 -1
  11. package/dist/cli/init.d.cts +7 -6
  12. package/dist/cli/init.d.cts.map +1 -1
  13. package/dist/cli/init.d.mts +7 -6
  14. package/dist/cli/init.d.mts.map +1 -1
  15. package/dist/cli/init.mjs +124 -114
  16. package/dist/cli/init.mjs.map +1 -1
  17. package/dist/cli/parse.cjs.map +1 -1
  18. package/dist/cli/parse.mjs.map +1 -1
  19. package/dist/cli/prompts.cjs +3 -3
  20. package/dist/cli/prompts.cjs.map +1 -1
  21. package/dist/cli/prompts.mjs +2 -2
  22. package/dist/cli/prompts.mjs.map +1 -1
  23. package/dist/cli/status.cjs.map +1 -1
  24. package/dist/cli/status.mjs.map +1 -1
  25. package/dist/cli/sync.cjs +42 -92
  26. package/dist/cli/sync.cjs.map +1 -1
  27. package/dist/cli/sync.mjs +45 -95
  28. package/dist/cli/sync.mjs.map +1 -1
  29. package/dist/cli/timing.cjs.map +1 -1
  30. package/dist/cli/timing.mjs.map +1 -1
  31. package/dist/cli/upgrade.cjs +43 -22
  32. package/dist/cli/upgrade.cjs.map +1 -1
  33. package/dist/cli/upgrade.mjs +44 -23
  34. package/dist/cli/upgrade.mjs.map +1 -1
  35. package/dist/cli.cjs +1 -1
  36. package/dist/cli.cjs.map +1 -1
  37. package/dist/cli.mjs +1 -1
  38. package/dist/cli.mjs.map +1 -1
  39. package/dist/components/dev-view.cjs.map +1 -1
  40. package/dist/components/dev-view.mjs.map +1 -1
  41. package/dist/components/streaming-view.cjs.map +1 -1
  42. package/dist/components/streaming-view.mjs.map +1 -1
  43. package/dist/config.cjs.map +1 -1
  44. package/dist/config.mjs.map +1 -1
  45. package/dist/contract.cjs +174 -173
  46. package/dist/contract.cjs.map +1 -1
  47. package/dist/contract.d.cts +3 -3
  48. package/dist/contract.d.cts.map +1 -1
  49. package/dist/contract.d.mts +3 -3
  50. package/dist/contract.d.mts.map +1 -1
  51. package/dist/contract.meta.cjs +1 -1
  52. package/dist/contract.meta.cjs.map +1 -1
  53. package/dist/contract.meta.d.cts +1 -1
  54. package/dist/contract.meta.d.mts +1 -1
  55. package/dist/contract.meta.mjs +1 -1
  56. package/dist/contract.meta.mjs.map +1 -1
  57. package/dist/contract.mjs +2 -1
  58. package/dist/contract.mjs.map +1 -1
  59. package/dist/dev-logs.cjs.map +1 -1
  60. package/dist/dev-logs.mjs.map +1 -1
  61. package/dist/fastkv.cjs.map +1 -1
  62. package/dist/fastkv.mjs.map +1 -1
  63. package/dist/index.cjs +3 -3
  64. package/dist/index.d.cts +1 -1
  65. package/dist/index.d.mts +1 -1
  66. package/dist/index.mjs +1 -1
  67. package/dist/integrity.cjs.map +1 -1
  68. package/dist/integrity.mjs.map +1 -1
  69. package/dist/internal/manifest-normalizer.cjs.map +1 -1
  70. package/dist/internal/manifest-normalizer.mjs.map +1 -1
  71. package/dist/merge.cjs.map +1 -1
  72. package/dist/merge.mjs.map +1 -1
  73. package/dist/near-cli.cjs.map +1 -1
  74. package/dist/near-cli.mjs.map +1 -1
  75. package/dist/orchestrator.cjs.map +1 -1
  76. package/dist/orchestrator.mjs.map +1 -1
  77. package/dist/plugin.cjs +72 -50
  78. package/dist/plugin.cjs.map +1 -1
  79. package/dist/plugin.d.cts +2 -2
  80. package/dist/plugin.d.cts.map +1 -1
  81. package/dist/plugin.d.mts +2 -2
  82. package/dist/plugin.d.mts.map +1 -1
  83. package/dist/plugin.mjs +53 -32
  84. package/dist/plugin.mjs.map +1 -1
  85. package/dist/sdk.cjs +2 -2
  86. package/dist/sdk.d.cts +1 -1
  87. package/dist/sdk.d.mts +1 -1
  88. package/dist/sdk.mjs +1 -1
  89. package/dist/shared.cjs.map +1 -1
  90. package/dist/shared.mjs.map +1 -1
  91. package/dist/types.cjs +184 -184
  92. package/dist/types.cjs.map +1 -1
  93. package/dist/types.d.cts +3 -3
  94. package/dist/types.d.mts +3 -3
  95. package/dist/types.mjs +1 -1
  96. package/dist/types.mjs.map +1 -1
  97. package/dist/ui/types.d.cts +1 -0
  98. package/dist/ui/types.d.cts.map +1 -1
  99. package/dist/ui/types.d.mts +1 -0
  100. package/dist/ui/types.d.mts.map +1 -1
  101. package/dist/utils/banner.cjs.map +1 -1
  102. package/dist/utils/banner.mjs.map +1 -1
  103. package/dist/utils/run.cjs.map +1 -1
  104. package/dist/utils/run.mjs.map +1 -1
  105. package/package.json +2 -2
  106. package/skills/init-upgrade/SKILL.md +22 -16
  107. package/skills/publish-sync/SKILL.md +7 -18
  108. package/src/cli/init.ts +149 -195
  109. package/src/cli/prompts.ts +1 -1
  110. package/src/cli/sync.ts +48 -137
  111. package/src/cli/upgrade.ts +66 -25
  112. package/src/contract.meta.ts +1 -1
  113. package/src/contract.ts +2 -1
  114. package/src/plugin.ts +69 -34
  115. package/src/sdk.ts +1 -1
  116. package/src/types.ts +1 -1
  117. package/src/ui/types.ts +1 -0
  118. package/dist/utils/path-match.cjs +0 -18
  119. package/dist/utils/path-match.cjs.map +0 -1
  120. package/dist/utils/path-match.mjs +0 -17
  121. package/dist/utils/path-match.mjs.map +0 -1
package/dist/plugin.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
2
2
  const require_fastkv = require('./fastkv.cjs');
3
3
  const require_network = require('./network.cjs');
4
- require('./sdk.cjs');
5
4
  const require_config = require('./config.cjs');
5
+ require('./sdk.cjs');
6
6
  const require_contract = require('./contract.cjs');
7
7
  const require_api_contract = require('./api-contract.cjs');
8
8
  const require_app = require('./app.cjs');
@@ -23,11 +23,13 @@ const require_run = require('./utils/run.cjs');
23
23
  const require_theme = require('./utils/theme.cjs');
24
24
  let node_fs = require("node:fs");
25
25
  let node_path = require("node:path");
26
+ let node_process = require("node:process");
27
+ node_process = require_runtime.__toESM(node_process, 1);
26
28
  let _clack_prompts = require("@clack/prompts");
27
29
  _clack_prompts = require_runtime.__toESM(_clack_prompts, 1);
28
30
  let effect = require("effect");
29
31
  let every_plugin = require("every-plugin");
30
- let every_plugin_zod = require("every-plugin/zod");
32
+ let zod = require("zod");
31
33
 
32
34
  //#region src/plugin.ts
33
35
  async function loadDevSession() {
@@ -176,8 +178,8 @@ async function buildEveryPluginQuietly(cwd) {
176
178
  console.log("[build:ssr] build succeeded");
177
179
  return;
178
180
  }
179
- if (result.stdout.trim()) process.stdout.write(result.stdout);
180
- if (result.stderr.trim()) process.stderr.write(result.stderr);
181
+ if (result.stdout.trim()) node_process.default.stdout.write(result.stdout);
182
+ if (result.stderr.trim()) node_process.default.stderr.write(result.stderr);
181
183
  throw new Error(`bun run --cwd packages/every-plugin build failed with exit code ${result.exitCode}`);
182
184
  }
183
185
  async function buildEverythingDevQuietly(cwd) {
@@ -198,8 +200,8 @@ async function buildEverythingDevQuietly(cwd) {
198
200
  console.log("[everything-dev] build succeeded");
199
201
  return;
200
202
  }
201
- if (result.stdout.trim()) process.stdout.write(result.stdout);
202
- if (result.stderr.trim()) process.stderr.write(result.stderr);
203
+ if (result.stdout.trim()) node_process.default.stdout.write(result.stdout);
204
+ if (result.stderr.trim()) node_process.default.stderr.write(result.stderr);
203
205
  throw new Error(`bun run --cwd packages/everything-dev build failed with exit code ${result.exitCode}`);
204
206
  }
205
207
  async function fetchPublishedConfig(accountId, gatewayId) {
@@ -239,7 +241,7 @@ async function buildWorkspaceTargets(opts) {
239
241
  if (existing.some((entry) => entry.key === "api")) await buildEveryPluginQuietly(opts.configDir);
240
242
  await buildEverythingDevQuietly(opts.configDir);
241
243
  const env = {
242
- ...process.env,
244
+ ...node_process.default.env,
243
245
  NODE_ENV: opts.deploy ? "production" : "development"
244
246
  };
245
247
  if (opts.deploy) env.DEPLOY = "true";
@@ -271,8 +273,8 @@ async function buildWorkspaceTargets(opts) {
271
273
  };
272
274
  }
273
275
  var plugin_default = (0, every_plugin.createPlugin)({
274
- variables: every_plugin_zod.z.object({ configPath: every_plugin_zod.z.string().optional() }),
275
- secrets: every_plugin_zod.z.object({}),
276
+ variables: zod.z.object({ configPath: zod.z.string().optional() }),
277
+ secrets: zod.z.object({}),
276
278
  contract: require_contract.bosContract,
277
279
  initialize: (config) => effect.Effect.promise(async () => {
278
280
  const configResult = await require_config.loadConfig({ path: config.variables.configPath });
@@ -389,16 +391,16 @@ var plugin_default = (0, every_plugin.createPlugin)({
389
391
  capture: true
390
392
  });
391
393
  if (exitCode !== 0) {
392
- if (stdout.trim()) process.stdout.write(stdout);
393
- if (stderr.trim()) process.stderr.write(stderr);
394
+ if (stdout.trim()) node_process.default.stdout.write(stdout);
395
+ if (stderr.trim()) node_process.default.stderr.write(stderr);
394
396
  return {
395
397
  status: "error",
396
398
  key: input.key,
397
399
  error: `Publish failed with exit code ${exitCode}`
398
400
  };
399
401
  }
400
- if (stdout.trim()) process.stdout.write(stdout);
401
- if (stderr.trim()) process.stderr.write(stderr);
402
+ if (stdout.trim()) node_process.default.stdout.write(stdout);
403
+ if (stderr.trim()) node_process.default.stderr.write(stderr);
402
404
  let publishedUrl = extractPublishedUrl(`${stdout}\n${stderr}`);
403
405
  let manifest = null;
404
406
  if (publishedUrl) manifest = await require_fastkv.fetchRemotePluginManifest(publishedUrl);
@@ -510,8 +512,8 @@ var plugin_default = (0, every_plugin.createPlugin)({
510
512
  }),
511
513
  start: builder.start.handler(async ({ input }) => {
512
514
  require_infra.ensureEnvFile(deps.configDir);
513
- const account = input.account ?? process.env.BOS_ACCOUNT;
514
- const domain = input.domain ?? process.env.BOS_GATEWAY;
515
+ const account = input.account ?? node_process.default.env.BOS_ACCOUNT;
516
+ const domain = input.domain ?? node_process.default.env.BOS_GATEWAY;
515
517
  let config = null;
516
518
  let remoteConfig = null;
517
519
  if (account && domain) {
@@ -550,7 +552,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
550
552
  });
551
553
  const productionEnv = {};
552
554
  const warnings = [];
553
- if (!process.env.CORS_ORIGIN && config.domain) {
555
+ if (!node_process.default.env.CORS_ORIGIN && config.domain) {
554
556
  const defaultOrigin = `https://${config.domain}`;
555
557
  productionEnv.CORS_ORIGIN = defaultOrigin;
556
558
  warnings.push(`CORS_ORIGIN defaulting to ${defaultOrigin}`);
@@ -561,7 +563,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
561
563
  if (runtimeConfig.api?.secrets) for (const s of runtimeConfig.api.secrets) requiredSecrets.add(s);
562
564
  for (const plugin of Object.values(runtimeConfig.plugins ?? {})) if (plugin.secrets) for (const s of plugin.secrets) requiredSecrets.add(s);
563
565
  for (const secret of requiredSecrets) {
564
- const value = process.env[secret];
566
+ const value = node_process.default.env[secret];
565
567
  if (!value || value.length === 0) missingSecrets.push(secret);
566
568
  }
567
569
  if (missingSecrets.length > 0) warnings.push(`Missing ${missingSecrets.length} secret(s): ${missingSecrets.join(", ")}`);
@@ -692,7 +694,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
692
694
  const registryEntries = { [`apps/${account}/${gateway}/bos.config.json`]: JSON.stringify(publishConfig) };
693
695
  const payload = JSON.stringify(registryEntries);
694
696
  const argsBase64 = Buffer.from(payload).toString("base64");
695
- const privateKey = input.privateKey || process.env.NEAR_PRIVATE_KEY || process.env.BOS_NEAR_PRIVATE_KEY;
697
+ const privateKey = input.privateKey || node_process.default.env.NEAR_PRIVATE_KEY || node_process.default.env.BOS_NEAR_PRIVATE_KEY;
696
698
  try {
697
699
  await effect.Effect.runPromise(require_near_cli.ensureNearCli);
698
700
  let txHash;
@@ -805,6 +807,8 @@ var plugin_default = (0, every_plugin.createPlugin)({
805
807
  } catch {}
806
808
  if (!input.noInteractive) {
807
809
  s.stop("Config fetched");
810
+ const initialExtendsAccount = extendsAccount;
811
+ const initialExtendsGateway = extendsGateway;
808
812
  const prompted = await require_prompts.promptInitOptions({
809
813
  extends: `bos://${extendsAccount}/${extendsGateway}`,
810
814
  directory,
@@ -821,6 +825,35 @@ var plugin_default = (0, every_plugin.createPlugin)({
821
825
  domain = prompted.domain;
822
826
  plugins = prompted.plugins;
823
827
  overrides = prompted.overrides;
828
+ if (!parentConfig || prompted.extendsAccount !== initialExtendsAccount || prompted.extendsGateway !== initialExtendsGateway) {
829
+ try {
830
+ parentConfig = await require_timing.timePhase(timings, "parent config", () => require_cli_init.fetchParentConfig(prompted.extendsAccount, prompted.extendsGateway), s);
831
+ if (parentConfig?.plugins && typeof parentConfig.plugins === "object") parentPluginKeys = Object.keys(parentConfig.plugins);
832
+ else parentPluginKeys = [];
833
+ } catch {
834
+ return {
835
+ status: "error",
836
+ directory,
837
+ extendsRef: `bos://${prompted.extendsAccount}/${prompted.extendsGateway}`,
838
+ account,
839
+ domain,
840
+ extends: `bos://${prompted.extendsAccount}/${prompted.extendsGateway}`,
841
+ plugins,
842
+ overrides,
843
+ filesCopied: 0,
844
+ timings,
845
+ error: `No config found at bos://${prompted.extendsAccount}/${prompted.extendsGateway} — are you sure this is the right parent?`
846
+ };
847
+ }
848
+ s.stop("Config fetched");
849
+ }
850
+ if (typeof parentConfig?.title === "string" && parentConfig.title.trim() && typeof parentConfig.description === "string" && parentConfig.description.trim()) {
851
+ const shouldContinue = await _clack_prompts.confirm({
852
+ message: `You will be extending ${parentConfig.title} - ${parentConfig.description}. Continue?`,
853
+ initialValue: true
854
+ });
855
+ if (_clack_prompts.isCancel(shouldContinue) || !shouldContinue) node_process.default.exit(0);
856
+ }
824
857
  s.start("Setting up project");
825
858
  }
826
859
  overrides = overrides?.length ? overrides : ["ui", "api"];
@@ -830,7 +863,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
830
863
  const targetDir = (0, node_path.resolve)(directory);
831
864
  const extendsRef = `bos://${extendsAccount}/${extendsGateway}`;
832
865
  if (overrides.includes("plugins") && !plugins.length) {}
833
- const repository = await require_cli_init.detectGitRemoteUrl(process.cwd()).catch(() => void 0) ?? parentConfig?.repository;
866
+ const repository = await require_cli_init.detectGitRemoteUrl(node_process.default.cwd()).catch(() => void 0) ?? parentConfig?.repository;
834
867
  if (!parentConfig) try {
835
868
  parentConfig = await require_timing.timePhase(timings, "parent config", () => require_cli_init.fetchParentConfig(extendsAccount, extendsGateway), s);
836
869
  } catch {
@@ -866,7 +899,9 @@ var plugin_default = (0, every_plugin.createPlugin)({
866
899
  domain,
867
900
  plugins,
868
901
  overrides,
869
- repository
902
+ repository,
903
+ title: parentConfig?.title,
904
+ description: parentConfig?.description
870
905
  }), s);
871
906
  await require_timing.timePhase(timings, "personalize config", () => require_cli_init.personalizeConfig(targetDir, {
872
907
  extendsAccount,
@@ -876,34 +911,17 @@ var plugin_default = (0, every_plugin.createPlugin)({
876
911
  plugins,
877
912
  overrides,
878
913
  mode: "init",
879
- repository
914
+ repository,
915
+ title: parentConfig?.title,
916
+ description: parentConfig?.description,
917
+ testnet: parentConfig?.testnet,
918
+ staging: parentConfig?.staging
880
919
  }), s);
881
920
  } else {
882
- const patterns = await require_cli_init.readTemplatekeep(sourceDir);
883
- if (patterns.length === 0) {
884
- s.stop("Failed");
885
- return {
886
- status: "error",
887
- directory,
888
- extendsRef,
889
- account,
890
- domain,
891
- extends: extendsRef,
892
- plugins,
893
- overrides,
894
- filesCopied: 0,
895
- error: "No .templatekeep found in template source"
896
- };
897
- }
898
- const pluginRoutes = {};
899
- if (overrides.includes("plugins")) {
900
- const parentRuntimePlugins = await require_config.buildRuntimePluginsForConfig(parentConfig, sourceDir, "production");
901
- for (const [key, plugin] of Object.entries(parentRuntimePlugins ?? {})) if (plugin.routes && plugin.routes.length > 0) pluginRoutes[key] = plugin.routes;
902
- }
921
+ const patterns = require_cli_init.buildInitPatterns(overrides, plugins);
903
922
  filesCopied = await require_timing.timePhase(timings, "copy files", () => require_cli_init.copyFilteredFiles(sourceDir, targetDir, patterns, {
904
923
  overrides,
905
- plugins,
906
- pluginRoutes
924
+ plugins
907
925
  }), s);
908
926
  await require_timing.timePhase(timings, "personalize config", () => require_cli_init.personalizeConfig(targetDir, {
909
927
  extendsAccount,
@@ -912,17 +930,21 @@ var plugin_default = (0, every_plugin.createPlugin)({
912
930
  domain: domain || extendsGateway,
913
931
  plugins,
914
932
  overrides,
915
- pluginRoutes,
916
933
  workspaceOpts: { sourceDir },
917
- repository
934
+ repository,
935
+ title: parentConfig?.title,
936
+ description: parentConfig?.description,
937
+ testnet: parentConfig?.testnet,
938
+ staging: parentConfig?.staging
918
939
  }), s);
919
940
  await require_timing.timePhase(timings, "write snapshot", () => require_cli_init.writeInitSnapshot(targetDir, extendsAccount, extendsGateway, sourceDir, patterns, {
920
941
  overrides,
921
- plugins,
922
- pluginRoutes
942
+ plugins
923
943
  }), s);
924
944
  }
925
- require_cli_init.stripOrphanedWorkspacesFromLockfile((0, node_path.join)(targetDir, "bun.lock"), computeAllowedWorkspaces(overrides, plugins));
945
+ const lockfilePath = (0, node_path.join)(targetDir, "bun.lock");
946
+ require_cli_init.stripOrphanedWorkspacesFromLockfile(lockfilePath, computeAllowedWorkspaces(overrides, plugins));
947
+ require_cli_init.removeInitLockfile(lockfilePath);
926
948
  const initConfig = await require_timing.timePhase(timings, "resolve config", () => require_config.loadConfig({ cwd: targetDir }), s);
927
949
  if (initConfig?.runtime) await require_timing.timePhase(timings, "generate env/docker", async () => {
928
950
  require_infra.writeGeneratedInfra(targetDir, initConfig.runtime);
@@ -1043,7 +1065,7 @@ var plugin_default = (0, every_plugin.createPlugin)({
1043
1065
  const projectDir = (0, node_path.resolve)((0, node_path.dirname)(configPath));
1044
1066
  const refreshed = await require_config.loadConfig({
1045
1067
  cwd: projectDir,
1046
- env: input.env ?? (process.env.NODE_ENV === "production" ? "production" : "development")
1068
+ env: input.env ?? (node_process.default.env.NODE_ENV === "production" ? "production" : "development")
1047
1069
  });
1048
1070
  if (!refreshed) return {
1049
1071
  status: "error",