everything-dev 0.3.3 → 1.3.3

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 (313) hide show
  1. package/README.md +64 -0
  2. package/cli.js +10 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  4. package/dist/api-contract.cjs +172 -0
  5. package/dist/api-contract.cjs.map +1 -0
  6. package/dist/api-contract.mjs +171 -0
  7. package/dist/api-contract.mjs.map +1 -0
  8. package/dist/api.cjs +124 -0
  9. package/dist/api.cjs.map +1 -0
  10. package/dist/api.d.cts +36 -0
  11. package/dist/api.d.cts.map +1 -0
  12. package/dist/api.d.mts +36 -0
  13. package/dist/api.d.mts.map +1 -0
  14. package/dist/api.mjs +119 -0
  15. package/dist/api.mjs.map +1 -0
  16. package/dist/app.cjs +156 -0
  17. package/dist/app.cjs.map +1 -0
  18. package/dist/app.mjs +153 -0
  19. package/dist/app.mjs.map +1 -0
  20. package/dist/cli/catalog.cjs +30 -0
  21. package/dist/cli/catalog.cjs.map +1 -0
  22. package/dist/cli/catalog.mjs +29 -0
  23. package/dist/cli/catalog.mjs.map +1 -0
  24. package/dist/cli/help.cjs +16 -0
  25. package/dist/cli/help.cjs.map +1 -0
  26. package/dist/cli/help.mjs +16 -0
  27. package/dist/cli/help.mjs.map +1 -0
  28. package/dist/cli/init.cjs +287 -0
  29. package/dist/cli/init.cjs.map +1 -0
  30. package/dist/cli/init.d.cts +36 -0
  31. package/dist/cli/init.d.cts.map +1 -0
  32. package/dist/cli/init.d.mts +36 -0
  33. package/dist/cli/init.d.mts.map +1 -0
  34. package/dist/cli/init.mjs +279 -0
  35. package/dist/cli/init.mjs.map +1 -0
  36. package/dist/cli/parse.cjs +96 -0
  37. package/dist/cli/parse.cjs.map +1 -0
  38. package/dist/cli/parse.mjs +95 -0
  39. package/dist/cli/parse.mjs.map +1 -0
  40. package/dist/cli/prompts.cjs +42 -0
  41. package/dist/cli/prompts.cjs.map +1 -0
  42. package/dist/cli/prompts.mjs +41 -0
  43. package/dist/cli/prompts.mjs.map +1 -0
  44. package/dist/cli.cjs +167 -0
  45. package/dist/cli.cjs.map +1 -0
  46. package/dist/cli.d.cts +1 -0
  47. package/dist/cli.d.mts +1 -0
  48. package/dist/cli.mjs +166 -0
  49. package/dist/cli.mjs.map +1 -0
  50. package/dist/components/dev-view.cjs +307 -0
  51. package/dist/components/dev-view.cjs.map +1 -0
  52. package/dist/components/dev-view.mjs +306 -0
  53. package/dist/components/dev-view.mjs.map +1 -0
  54. package/dist/components/streaming-view.cjs +146 -0
  55. package/dist/components/streaming-view.cjs.map +1 -0
  56. package/dist/components/streaming-view.mjs +144 -0
  57. package/dist/components/streaming-view.mjs.map +1 -0
  58. package/dist/config.cjs +280 -0
  59. package/dist/config.cjs.map +1 -0
  60. package/dist/config.d.cts +35 -0
  61. package/dist/config.d.cts.map +1 -0
  62. package/dist/config.d.mts +35 -0
  63. package/dist/config.d.mts.map +1 -0
  64. package/dist/config.mjs +266 -0
  65. package/dist/config.mjs.map +1 -0
  66. package/dist/contract.cjs +209 -0
  67. package/dist/contract.cjs.map +1 -0
  68. package/dist/contract.d.cts +490 -0
  69. package/dist/contract.d.cts.map +1 -0
  70. package/dist/contract.d.mts +490 -0
  71. package/dist/contract.d.mts.map +1 -0
  72. package/dist/contract.meta.cjs +104 -0
  73. package/dist/contract.meta.cjs.map +1 -0
  74. package/dist/contract.meta.d.cts +141 -0
  75. package/dist/contract.meta.d.cts.map +1 -0
  76. package/dist/contract.meta.d.mts +141 -0
  77. package/dist/contract.meta.d.mts.map +1 -0
  78. package/dist/contract.meta.mjs +102 -0
  79. package/dist/contract.meta.mjs.map +1 -0
  80. package/dist/contract.mjs +186 -0
  81. package/dist/contract.mjs.map +1 -0
  82. package/dist/dev-logs.cjs +53 -0
  83. package/dist/dev-logs.cjs.map +1 -0
  84. package/dist/dev-logs.mjs +51 -0
  85. package/dist/dev-logs.mjs.map +1 -0
  86. package/dist/dev-session.cjs +195 -0
  87. package/dist/dev-session.cjs.map +1 -0
  88. package/dist/dev-session.mjs +194 -0
  89. package/dist/dev-session.mjs.map +1 -0
  90. package/dist/fastkv.cjs +89 -0
  91. package/dist/fastkv.cjs.map +1 -0
  92. package/dist/fastkv.d.cts +11 -0
  93. package/dist/fastkv.d.cts.map +1 -0
  94. package/dist/fastkv.d.mts +11 -0
  95. package/dist/fastkv.d.mts.map +1 -0
  96. package/dist/fastkv.mjs +82 -0
  97. package/dist/fastkv.mjs.map +1 -0
  98. package/dist/federation.server.cjs +27 -0
  99. package/dist/federation.server.cjs.map +1 -0
  100. package/dist/federation.server.mjs +27 -0
  101. package/dist/federation.server.mjs.map +1 -0
  102. package/dist/host.cjs +367 -0
  103. package/dist/host.cjs.map +1 -0
  104. package/dist/host.d.cts +22 -0
  105. package/dist/host.d.cts.map +1 -0
  106. package/dist/host.d.mts +22 -0
  107. package/dist/host.d.mts.map +1 -0
  108. package/dist/host.mjs +364 -0
  109. package/dist/host.mjs.map +1 -0
  110. package/dist/index.cjs +122 -0
  111. package/dist/index.d.cts +7 -0
  112. package/dist/index.d.mts +7 -0
  113. package/dist/index.mjs +9 -0
  114. package/dist/integrity.cjs +39 -0
  115. package/dist/integrity.cjs.map +1 -0
  116. package/dist/integrity.d.cts +7 -0
  117. package/dist/integrity.d.cts.map +1 -0
  118. package/dist/integrity.d.mts +7 -0
  119. package/dist/integrity.d.mts.map +1 -0
  120. package/dist/integrity.mjs +35 -0
  121. package/dist/integrity.mjs.map +1 -0
  122. package/dist/internal/manifest-normalizer.cjs +140 -0
  123. package/dist/internal/manifest-normalizer.cjs.map +1 -0
  124. package/dist/internal/manifest-normalizer.mjs +138 -0
  125. package/dist/internal/manifest-normalizer.mjs.map +1 -0
  126. package/dist/mf.cjs +77 -0
  127. package/dist/mf.cjs.map +1 -0
  128. package/dist/mf.d.cts +19 -0
  129. package/dist/mf.d.cts.map +1 -0
  130. package/dist/mf.d.mts +19 -0
  131. package/dist/mf.d.mts.map +1 -0
  132. package/dist/mf.mjs +71 -0
  133. package/dist/mf.mjs.map +1 -0
  134. package/dist/near-cli.cjs +196 -0
  135. package/dist/near-cli.cjs.map +1 -0
  136. package/dist/near-cli.mjs +193 -0
  137. package/dist/near-cli.mjs.map +1 -0
  138. package/dist/network.cjs +9 -0
  139. package/dist/network.cjs.map +1 -0
  140. package/dist/network.mjs +8 -0
  141. package/dist/network.mjs.map +1 -0
  142. package/dist/orchestrator.cjs +441 -0
  143. package/dist/orchestrator.cjs.map +1 -0
  144. package/dist/orchestrator.d.cts +40 -0
  145. package/dist/orchestrator.d.cts.map +1 -0
  146. package/dist/orchestrator.d.mts +40 -0
  147. package/dist/orchestrator.d.mts.map +1 -0
  148. package/dist/orchestrator.mjs +436 -0
  149. package/dist/orchestrator.mjs.map +1 -0
  150. package/dist/plugin.cjs +830 -0
  151. package/dist/plugin.cjs.map +1 -0
  152. package/dist/plugin.d.cts +347 -0
  153. package/dist/plugin.d.cts.map +1 -0
  154. package/dist/plugin.d.mts +348 -0
  155. package/dist/plugin.d.mts.map +1 -0
  156. package/dist/plugin.mjs +827 -0
  157. package/dist/plugin.mjs.map +1 -0
  158. package/dist/process-registry.cjs +120 -0
  159. package/dist/process-registry.cjs.map +1 -0
  160. package/dist/process-registry.d.cts +25 -0
  161. package/dist/process-registry.d.cts.map +1 -0
  162. package/dist/process-registry.d.mts +25 -0
  163. package/dist/process-registry.d.mts.map +1 -0
  164. package/dist/process-registry.mjs +119 -0
  165. package/dist/process-registry.mjs.map +1 -0
  166. package/dist/sdk.cjs +61 -0
  167. package/dist/sdk.d.cts +5 -0
  168. package/dist/sdk.d.mts +5 -0
  169. package/dist/sdk.mjs +6 -0
  170. package/dist/shared.cjs +143 -0
  171. package/dist/shared.cjs.map +1 -0
  172. package/dist/shared.d.cts +33 -0
  173. package/dist/shared.d.cts.map +1 -0
  174. package/dist/shared.d.mts +33 -0
  175. package/dist/shared.d.mts.map +1 -0
  176. package/dist/shared.mjs +140 -0
  177. package/dist/shared.mjs.map +1 -0
  178. package/dist/types.cjs +160 -0
  179. package/dist/types.cjs.map +1 -0
  180. package/dist/types.d.cts +269 -0
  181. package/dist/types.d.cts.map +1 -0
  182. package/dist/types.d.mts +269 -0
  183. package/dist/types.d.mts.map +1 -0
  184. package/dist/types.mjs +144 -0
  185. package/dist/types.mjs.map +1 -0
  186. package/dist/ui/head.cjs +67 -0
  187. package/dist/ui/head.cjs.map +1 -0
  188. package/dist/ui/head.d.cts +19 -0
  189. package/dist/ui/head.d.cts.map +1 -0
  190. package/dist/ui/head.d.mts +19 -0
  191. package/dist/ui/head.d.mts.map +1 -0
  192. package/dist/ui/head.mjs +61 -0
  193. package/dist/ui/head.mjs.map +1 -0
  194. package/dist/ui/index.cjs +32 -0
  195. package/dist/ui/index.d.cts +7 -0
  196. package/dist/ui/index.d.mts +7 -0
  197. package/dist/ui/index.mjs +6 -0
  198. package/dist/ui/metadata.cjs +106 -0
  199. package/dist/ui/metadata.cjs.map +1 -0
  200. package/dist/ui/metadata.d.cts +35 -0
  201. package/dist/ui/metadata.d.cts.map +1 -0
  202. package/dist/ui/metadata.d.mts +35 -0
  203. package/dist/ui/metadata.d.mts.map +1 -0
  204. package/dist/ui/metadata.mjs +100 -0
  205. package/dist/ui/metadata.mjs.map +1 -0
  206. package/dist/ui/router.cjs +56 -0
  207. package/dist/ui/router.cjs.map +1 -0
  208. package/dist/ui/router.d.cts +11 -0
  209. package/dist/ui/router.d.cts.map +1 -0
  210. package/dist/ui/router.d.mts +11 -0
  211. package/dist/ui/router.d.mts.map +1 -0
  212. package/dist/ui/router.mjs +51 -0
  213. package/dist/ui/router.mjs.map +1 -0
  214. package/dist/ui/runtime.cjs +65 -0
  215. package/dist/ui/runtime.cjs.map +1 -0
  216. package/dist/ui/runtime.d.cts +29 -0
  217. package/dist/ui/runtime.d.cts.map +1 -0
  218. package/dist/ui/runtime.d.mts +29 -0
  219. package/dist/ui/runtime.d.mts.map +1 -0
  220. package/dist/ui/runtime.mjs +53 -0
  221. package/dist/ui/runtime.mjs.map +1 -0
  222. package/dist/ui/types.cjs +0 -0
  223. package/dist/ui/types.d.cts +52 -0
  224. package/dist/ui/types.d.cts.map +1 -0
  225. package/dist/ui/types.d.mts +52 -0
  226. package/dist/ui/types.d.mts.map +1 -0
  227. package/dist/ui/types.mjs +1 -0
  228. package/dist/utils/banner.cjs +24 -0
  229. package/dist/utils/banner.cjs.map +1 -0
  230. package/dist/utils/banner.mjs +23 -0
  231. package/dist/utils/banner.mjs.map +1 -0
  232. package/dist/utils/linkify.cjs +15 -0
  233. package/dist/utils/linkify.cjs.map +1 -0
  234. package/dist/utils/linkify.mjs +14 -0
  235. package/dist/utils/linkify.mjs.map +1 -0
  236. package/dist/utils/run.cjs +40 -0
  237. package/dist/utils/run.cjs.map +1 -0
  238. package/dist/utils/run.mjs +39 -0
  239. package/dist/utils/run.mjs.map +1 -0
  240. package/dist/utils/theme.cjs +44 -0
  241. package/dist/utils/theme.cjs.map +1 -0
  242. package/dist/utils/theme.mjs +37 -0
  243. package/dist/utils/theme.mjs.map +1 -0
  244. package/package.json +269 -80
  245. package/src/api-contract.ts +309 -0
  246. package/src/api.ts +181 -0
  247. package/src/app.ts +346 -0
  248. package/src/cli/catalog.ts +49 -0
  249. package/src/cli/help.ts +13 -0
  250. package/src/cli/init.ts +386 -0
  251. package/src/cli/parse.ts +130 -0
  252. package/src/cli/prompts.ts +64 -0
  253. package/src/cli.ts +203 -1507
  254. package/src/components/dev-view.tsx +307 -255
  255. package/src/components/streaming-view.ts +164 -128
  256. package/src/config.ts +462 -532
  257. package/src/contract.meta.ts +96 -0
  258. package/src/contract.ts +164 -561
  259. package/src/dev-logs.ts +85 -0
  260. package/src/dev-session.ts +318 -0
  261. package/src/fastkv.ts +153 -0
  262. package/src/federation.server.ts +43 -0
  263. package/src/host.ts +526 -0
  264. package/src/index.ts +6 -3
  265. package/src/integrity.ts +54 -0
  266. package/src/internal/manifest-normalizer.ts +251 -0
  267. package/src/mf.ts +105 -0
  268. package/src/near-cli.ts +284 -0
  269. package/src/network.ts +3 -0
  270. package/src/orchestrator.ts +648 -0
  271. package/src/plugin.ts +1130 -2311
  272. package/src/process-registry.ts +154 -0
  273. package/src/scripts/sync-api-contract.ts +24 -0
  274. package/src/sdk.ts +14 -0
  275. package/src/shared.ts +206 -0
  276. package/src/types.ts +152 -206
  277. package/src/ui/head.ts +34 -27
  278. package/src/ui/index.ts +3 -3
  279. package/src/ui/metadata.ts +95 -0
  280. package/src/ui/router.ts +22 -6
  281. package/src/ui/runtime.ts +55 -6
  282. package/src/ui/types.ts +24 -11
  283. package/src/utils/banner.ts +10 -6
  284. package/src/utils/run.ts +26 -27
  285. package/src/utils/theme.ts +3 -66
  286. package/src/components/monitor-view.tsx +0 -475
  287. package/src/components/status-view.tsx +0 -173
  288. package/src/lib/env.ts +0 -109
  289. package/src/lib/near-cli.ts +0 -289
  290. package/src/lib/nova.ts +0 -266
  291. package/src/lib/orchestrator.ts +0 -276
  292. package/src/lib/process-registry.ts +0 -166
  293. package/src/lib/process.ts +0 -550
  294. package/src/lib/resource-monitor/assertions.ts +0 -234
  295. package/src/lib/resource-monitor/command.ts +0 -283
  296. package/src/lib/resource-monitor/diff.ts +0 -157
  297. package/src/lib/resource-monitor/errors.ts +0 -127
  298. package/src/lib/resource-monitor/index.ts +0 -305
  299. package/src/lib/resource-monitor/platform/darwin.ts +0 -306
  300. package/src/lib/resource-monitor/platform/index.ts +0 -35
  301. package/src/lib/resource-monitor/platform/linux.ts +0 -332
  302. package/src/lib/resource-monitor/platform/windows.ts +0 -298
  303. package/src/lib/resource-monitor/snapshot.ts +0 -217
  304. package/src/lib/resource-monitor/types.ts +0 -74
  305. package/src/lib/session-recorder/errors.ts +0 -102
  306. package/src/lib/session-recorder/flows/login.ts +0 -210
  307. package/src/lib/session-recorder/index.ts +0 -361
  308. package/src/lib/session-recorder/playwright.ts +0 -257
  309. package/src/lib/session-recorder/report.ts +0 -353
  310. package/src/lib/session-recorder/server.ts +0 -268
  311. package/src/lib/session-recorder/types.ts +0 -115
  312. package/src/lib/sync.ts +0 -1
  313. package/src/ui/files.ts +0 -134
@@ -0,0 +1,143 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
3
+ let node_fs = require("node:fs");
4
+ let node_path = require("node:path");
5
+ let node_crypto = require("node:crypto");
6
+
7
+ //#region src/shared.ts
8
+ function sha256(input) {
9
+ return (0, node_crypto.createHash)("sha256").update(input).digest("hex");
10
+ }
11
+ function extractSemverExact(input) {
12
+ if (typeof input !== "string") return null;
13
+ const match = input.match(/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/);
14
+ return match ? match[0] : null;
15
+ }
16
+ function caretRange(version) {
17
+ return `^${version}`;
18
+ }
19
+ function stableDepsObject(deps) {
20
+ const keys = Object.keys(deps).sort((a, b) => a.localeCompare(b));
21
+ const out = {};
22
+ for (const k of keys) out[k] = deps[k];
23
+ return out;
24
+ }
25
+ function writeFileIfChanged(filePath, nextContent) {
26
+ try {
27
+ if ((0, node_fs.readFileSync)(filePath, "utf-8") === nextContent) return false;
28
+ } catch {}
29
+ (0, node_fs.writeFileSync)(filePath, nextContent);
30
+ return true;
31
+ }
32
+ function fingerprintResolved(deps) {
33
+ const stable = stableDepsObject(deps);
34
+ return sha256(JSON.stringify(stable));
35
+ }
36
+ function getSharedUiDeps(bosConfig) {
37
+ return (bosConfig.shared ?? {}).ui ?? {};
38
+ }
39
+ async function syncAndGenerateSharedUi(opts) {
40
+ const bosConfigPath = (0, node_path.join)(opts.configDir, "bos.config.json");
41
+ const packageJsonPath = (0, node_path.join)(opts.configDir, "package.json");
42
+ const generatedPath = (0, node_path.join)(opts.configDir, ".bos", "generated", "shared-ui.json");
43
+ const bosConfig = opts.bosConfig ?? JSON.parse((0, node_fs.readFileSync)(bosConfigPath, "utf-8"));
44
+ let pkgJson = {};
45
+ try {
46
+ pkgJson = JSON.parse((0, node_fs.readFileSync)(packageJsonPath, "utf-8"));
47
+ } catch {}
48
+ const originalBos = JSON.stringify(bosConfig);
49
+ const originalPkg = JSON.stringify(pkgJson);
50
+ const catalog = pkgJson?.workspaces?.catalog ?? {};
51
+ const sharedUi = getSharedUiDeps(bosConfig);
52
+ const mode = opts.hostMode === "local" ? "catalog->bos" : "bos->catalog";
53
+ if (mode === "catalog->bos") for (const [name, cfg] of Object.entries(sharedUi)) {
54
+ const dep = cfg;
55
+ const version = catalog[name] ?? extractSemverExact(dep.version) ?? extractSemverExact(dep.requiredVersion);
56
+ if (!version) continue;
57
+ dep.version = version;
58
+ dep.requiredVersion = caretRange(version);
59
+ dep.shareScope = dep.shareScope ?? "default";
60
+ }
61
+ else {
62
+ for (const [name, cfg] of Object.entries(sharedUi)) {
63
+ const dep = cfg;
64
+ const version = extractSemverExact(dep.version) ?? extractSemverExact(dep.requiredVersion);
65
+ if (!version) continue;
66
+ dep.version = version;
67
+ dep.requiredVersion = caretRange(version);
68
+ dep.shareScope = dep.shareScope ?? "default";
69
+ if (catalog[name] !== version) catalog[name] = version;
70
+ }
71
+ if (!pkgJson.workspaces) pkgJson.workspaces = {
72
+ packages: [],
73
+ catalog: {}
74
+ };
75
+ pkgJson.workspaces.catalog = catalog;
76
+ }
77
+ const nextBos = JSON.stringify(bosConfig);
78
+ const nextPkg = JSON.stringify(pkgJson);
79
+ const bosConfigChanged = nextBos !== originalBos;
80
+ const catalogChanged = nextPkg !== originalPkg;
81
+ if (bosConfigChanged) writeFileIfChanged(bosConfigPath, `${JSON.stringify(bosConfig, null, 2)}\n`);
82
+ if (catalogChanged) writeFileIfChanged(packageJsonPath, `${JSON.stringify(pkgJson, null, 2)}\n`);
83
+ const resolvedDeps = {};
84
+ for (const [name, cfg] of Object.entries(getSharedUiDeps(bosConfig))) {
85
+ const version = catalog[name] ?? extractSemverExact(cfg.version) ?? extractSemverExact(cfg.requiredVersion);
86
+ if (!version) continue;
87
+ resolvedDeps[name] = {
88
+ name,
89
+ version,
90
+ requiredVersion: caretRange(version),
91
+ shareScope: cfg.shareScope ?? "default",
92
+ singleton: cfg.singleton ?? false,
93
+ eager: cfg.eager ?? false,
94
+ strictVersion: cfg.strictVersion ?? false
95
+ };
96
+ }
97
+ const stableResolvedDeps = stableDepsObject(resolvedDeps);
98
+ const resolved = {
99
+ deps: stableResolvedDeps,
100
+ fingerprintSha256: fingerprintResolved(stableResolvedDeps)
101
+ };
102
+ const nextGenerated = {
103
+ schemaVersion: 1,
104
+ kind: "everything-dev/shared-ui",
105
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
106
+ ui: {
107
+ deps: stableResolvedDeps,
108
+ fingerprintSha256: resolved.fingerprintSha256
109
+ },
110
+ inputs: {
111
+ mode,
112
+ hostMode: opts.hostMode
113
+ }
114
+ };
115
+ let prevFingerprint = null;
116
+ try {
117
+ prevFingerprint = JSON.parse((0, node_fs.readFileSync)(generatedPath, "utf-8"))?.ui?.fingerprintSha256 ?? null;
118
+ } catch {}
119
+ (0, node_fs.mkdirSync)((0, node_path.dirname)(generatedPath), { recursive: true });
120
+ writeFileIfChanged(generatedPath, `${JSON.stringify(nextGenerated, null, 2)}\n`);
121
+ const generatedChanged = prevFingerprint !== nextGenerated.ui.fingerprintSha256;
122
+ return {
123
+ mode,
124
+ hostMode: opts.hostMode,
125
+ bosConfigChanged,
126
+ catalogChanged,
127
+ generatedChanged,
128
+ resolved
129
+ };
130
+ }
131
+ function loadGeneratedSharedUi(configDir) {
132
+ const generatedPath = (0, node_path.join)(configDir, ".bos", "generated", "shared-ui.json");
133
+ try {
134
+ return JSON.parse((0, node_fs.readFileSync)(generatedPath, "utf-8"))?.ui ?? null;
135
+ } catch {
136
+ return null;
137
+ }
138
+ }
139
+
140
+ //#endregion
141
+ exports.loadGeneratedSharedUi = loadGeneratedSharedUi;
142
+ exports.syncAndGenerateSharedUi = syncAndGenerateSharedUi;
143
+ //# sourceMappingURL=shared.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.cjs","names":[],"sources":["../src/shared.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport type { BosConfig, SharedDepConfig } from \"./types\";\n\nexport interface SharedUiResolvedDep {\n name: string;\n version: string;\n requiredVersion: string;\n shareScope: string;\n singleton: boolean;\n eager: boolean;\n strictVersion: boolean;\n}\n\nexport interface SharedUiResolved {\n deps: Record<string, SharedUiResolvedDep>;\n fingerprintSha256: string;\n}\n\nexport interface SharedSyncResult {\n mode: \"catalog->bos\" | \"bos->catalog\";\n hostMode: \"local\" | \"remote\";\n bosConfigChanged: boolean;\n catalogChanged: boolean;\n generatedChanged: boolean;\n resolved: SharedUiResolved;\n}\n\nfunction sha256(input: string): string {\n return createHash(\"sha256\").update(input).digest(\"hex\");\n}\n\nfunction extractSemverExact(input: unknown): string | null {\n if (typeof input !== \"string\") return null;\n const match = input.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n return match ? match[0] : null;\n}\n\nfunction caretRange(version: string): string {\n return `^${version}`;\n}\n\nfunction stableDepsObject(\n deps: Record<string, SharedUiResolvedDep>,\n): Record<string, SharedUiResolvedDep> {\n const keys = Object.keys(deps).sort((a, b) => a.localeCompare(b));\n const out: Record<string, SharedUiResolvedDep> = {};\n for (const k of keys) out[k] = deps[k]!;\n return out;\n}\n\nfunction writeFileIfChanged(filePath: string, nextContent: string): boolean {\n try {\n const current = readFileSync(filePath, \"utf-8\");\n if (current === nextContent) return false;\n } catch {\n // ignore\n }\n\n writeFileSync(filePath, nextContent);\n return true;\n}\n\nfunction fingerprintResolved(deps: Record<string, SharedUiResolvedDep>): string {\n const stable = stableDepsObject(deps);\n return sha256(JSON.stringify(stable));\n}\n\nfunction getSharedUiDeps(bosConfig: BosConfig): Record<string, SharedDepConfig> {\n const shared = bosConfig.shared ?? {};\n const ui = shared.ui ?? {};\n return ui;\n}\n\nexport async function syncAndGenerateSharedUi(opts: {\n configDir: string;\n hostMode: \"local\" | \"remote\";\n bosConfig?: BosConfig;\n}): Promise<SharedSyncResult> {\n const bosConfigPath = join(opts.configDir, \"bos.config.json\");\n const packageJsonPath = join(opts.configDir, \"package.json\");\n const generatedPath = join(opts.configDir, \".bos\", \"generated\", \"shared-ui.json\");\n\n const bosConfig: BosConfig = opts.bosConfig ?? JSON.parse(readFileSync(bosConfigPath, \"utf-8\"));\n let pkgJson: any = {};\n try {\n pkgJson = JSON.parse(readFileSync(packageJsonPath, \"utf-8\"));\n } catch {\n // package.json might not exist\n }\n\n const originalBos = JSON.stringify(bosConfig);\n const originalPkg = JSON.stringify(pkgJson);\n\n const catalog = pkgJson?.workspaces?.catalog ?? {};\n const sharedUi = getSharedUiDeps(bosConfig);\n\n const mode = opts.hostMode === \"local\" ? \"catalog->bos\" : \"bos->catalog\";\n\n if (mode === \"catalog->bos\") {\n for (const [name, cfg] of Object.entries(sharedUi)) {\n const dep = cfg as SharedDepConfig;\n const version =\n catalog[name] ?? extractSemverExact(dep.version) ?? extractSemverExact(dep.requiredVersion);\n if (!version) continue;\n dep.version = version;\n dep.requiredVersion = caretRange(version);\n dep.shareScope = dep.shareScope ?? \"default\";\n }\n } else {\n for (const [name, cfg] of Object.entries(sharedUi)) {\n const dep = cfg as SharedDepConfig;\n const version = extractSemverExact(dep.version) ?? extractSemverExact(dep.requiredVersion);\n if (!version) continue;\n dep.version = version;\n dep.requiredVersion = caretRange(version);\n dep.shareScope = dep.shareScope ?? \"default\";\n if (catalog[name] !== version) {\n catalog[name] = version;\n }\n }\n if (!pkgJson.workspaces) pkgJson.workspaces = { packages: [], catalog: {} };\n pkgJson.workspaces.catalog = catalog;\n }\n\n const nextBos = JSON.stringify(bosConfig);\n const nextPkg = JSON.stringify(pkgJson);\n const bosConfigChanged = nextBos !== originalBos;\n const catalogChanged = nextPkg !== originalPkg;\n\n if (bosConfigChanged) {\n writeFileIfChanged(bosConfigPath, `${JSON.stringify(bosConfig, null, 2)}\\n`);\n }\n if (catalogChanged) {\n writeFileIfChanged(packageJsonPath, `${JSON.stringify(pkgJson, null, 2)}\\n`);\n }\n\n const resolvedDeps: Record<string, SharedUiResolvedDep> = {};\n for (const [name, cfg] of Object.entries(getSharedUiDeps(bosConfig))) {\n const version =\n catalog[name] ?? extractSemverExact(cfg.version) ?? extractSemverExact(cfg.requiredVersion);\n if (!version) continue;\n resolvedDeps[name] = {\n name,\n version,\n requiredVersion: caretRange(version),\n shareScope: cfg.shareScope ?? \"default\",\n singleton: cfg.singleton ?? false,\n eager: cfg.eager ?? false,\n strictVersion: cfg.strictVersion ?? false,\n };\n }\n\n const stableResolvedDeps = stableDepsObject(resolvedDeps);\n const resolved: SharedUiResolved = {\n deps: stableResolvedDeps,\n fingerprintSha256: fingerprintResolved(stableResolvedDeps),\n };\n\n const nextGenerated = {\n schemaVersion: 1,\n kind: \"everything-dev/shared-ui\",\n generatedAt: new Date().toISOString(),\n ui: {\n deps: stableResolvedDeps,\n fingerprintSha256: resolved.fingerprintSha256,\n },\n inputs: {\n mode,\n hostMode: opts.hostMode,\n },\n };\n\n let prevFingerprint: string | null = null;\n try {\n const prev = JSON.parse(readFileSync(generatedPath, \"utf-8\"));\n prevFingerprint = prev?.ui?.fingerprintSha256 ?? null;\n } catch {\n // ignore\n }\n\n mkdirSync(dirname(generatedPath), { recursive: true });\n writeFileIfChanged(generatedPath, `${JSON.stringify(nextGenerated, null, 2)}\\n`);\n\n const generatedChanged = prevFingerprint !== nextGenerated.ui.fingerprintSha256;\n\n return {\n mode,\n hostMode: opts.hostMode,\n bosConfigChanged,\n catalogChanged,\n generatedChanged,\n resolved,\n };\n}\n\nexport function loadGeneratedSharedUi(configDir: string): SharedUiResolved | null {\n const generatedPath = join(configDir, \".bos\", \"generated\", \"shared-ui.json\");\n try {\n const content = JSON.parse(readFileSync(generatedPath, \"utf-8\"));\n return content?.ui ?? null;\n } catch {\n return null;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { BosConfig } from "./types.cjs";
2
+
3
+ //#region src/shared.d.ts
4
+ interface SharedUiResolvedDep {
5
+ name: string;
6
+ version: string;
7
+ requiredVersion: string;
8
+ shareScope: string;
9
+ singleton: boolean;
10
+ eager: boolean;
11
+ strictVersion: boolean;
12
+ }
13
+ interface SharedUiResolved {
14
+ deps: Record<string, SharedUiResolvedDep>;
15
+ fingerprintSha256: string;
16
+ }
17
+ interface SharedSyncResult {
18
+ mode: "catalog->bos" | "bos->catalog";
19
+ hostMode: "local" | "remote";
20
+ bosConfigChanged: boolean;
21
+ catalogChanged: boolean;
22
+ generatedChanged: boolean;
23
+ resolved: SharedUiResolved;
24
+ }
25
+ declare function syncAndGenerateSharedUi(opts: {
26
+ configDir: string;
27
+ hostMode: "local" | "remote";
28
+ bosConfig?: BosConfig;
29
+ }): Promise<SharedSyncResult>;
30
+ declare function loadGeneratedSharedUi(configDir: string): SharedUiResolved | null;
31
+ //#endregion
32
+ export { SharedSyncResult, SharedUiResolved, SharedUiResolvedDep, loadGeneratedSharedUi, syncAndGenerateSharedUi };
33
+ //# sourceMappingURL=shared.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.cts","names":[],"sources":["../src/shared.ts"],"mappings":";;;UAKiB,mBAAA;EACf,IAAA;EACA,OAAA;EACA,eAAA;EACA,UAAA;EACA,SAAA;EACA,KAAA;EACA,aAAA;AAAA;AAAA,UAGe,gBAAA;EACf,IAAA,EAAM,MAAA,SAAe,mBAAA;EACrB,iBAAA;AAAA;AAAA,UAGe,gBAAA;EACf,IAAA;EACA,QAAA;EACA,gBAAA;EACA,cAAA;EACA,gBAAA;EACA,QAAA,EAAU,gBAAA;AAAA;AAAA,iBAiDU,uBAAA,CAAwB,IAAA;EAC5C,SAAA;EACA,QAAA;EACA,SAAA,GAAY,SAAA;AAAA,IACV,OAAA,CAAQ,gBAAA;AAAA,iBAsHI,qBAAA,CAAsB,SAAA,WAAoB,gBAAA"}
@@ -0,0 +1,33 @@
1
+ import { BosConfig } from "./types.mjs";
2
+
3
+ //#region src/shared.d.ts
4
+ interface SharedUiResolvedDep {
5
+ name: string;
6
+ version: string;
7
+ requiredVersion: string;
8
+ shareScope: string;
9
+ singleton: boolean;
10
+ eager: boolean;
11
+ strictVersion: boolean;
12
+ }
13
+ interface SharedUiResolved {
14
+ deps: Record<string, SharedUiResolvedDep>;
15
+ fingerprintSha256: string;
16
+ }
17
+ interface SharedSyncResult {
18
+ mode: "catalog->bos" | "bos->catalog";
19
+ hostMode: "local" | "remote";
20
+ bosConfigChanged: boolean;
21
+ catalogChanged: boolean;
22
+ generatedChanged: boolean;
23
+ resolved: SharedUiResolved;
24
+ }
25
+ declare function syncAndGenerateSharedUi(opts: {
26
+ configDir: string;
27
+ hostMode: "local" | "remote";
28
+ bosConfig?: BosConfig;
29
+ }): Promise<SharedSyncResult>;
30
+ declare function loadGeneratedSharedUi(configDir: string): SharedUiResolved | null;
31
+ //#endregion
32
+ export { SharedSyncResult, SharedUiResolved, SharedUiResolvedDep, loadGeneratedSharedUi, syncAndGenerateSharedUi };
33
+ //# sourceMappingURL=shared.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.mts","names":[],"sources":["../src/shared.ts"],"mappings":";;;UAKiB,mBAAA;EACf,IAAA;EACA,OAAA;EACA,eAAA;EACA,UAAA;EACA,SAAA;EACA,KAAA;EACA,aAAA;AAAA;AAAA,UAGe,gBAAA;EACf,IAAA,EAAM,MAAA,SAAe,mBAAA;EACrB,iBAAA;AAAA;AAAA,UAGe,gBAAA;EACf,IAAA;EACA,QAAA;EACA,gBAAA;EACA,cAAA;EACA,gBAAA;EACA,QAAA,EAAU,gBAAA;AAAA;AAAA,iBAiDU,uBAAA,CAAwB,IAAA;EAC5C,SAAA;EACA,QAAA;EACA,SAAA,GAAY,SAAA;AAAA,IACV,OAAA,CAAQ,gBAAA;AAAA,iBAsHI,qBAAA,CAAsB,SAAA,WAAoB,gBAAA"}
@@ -0,0 +1,140 @@
1
+ import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { createHash } from "node:crypto";
4
+
5
+ //#region src/shared.ts
6
+ function sha256(input) {
7
+ return createHash("sha256").update(input).digest("hex");
8
+ }
9
+ function extractSemverExact(input) {
10
+ if (typeof input !== "string") return null;
11
+ const match = input.match(/\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?/);
12
+ return match ? match[0] : null;
13
+ }
14
+ function caretRange(version) {
15
+ return `^${version}`;
16
+ }
17
+ function stableDepsObject(deps) {
18
+ const keys = Object.keys(deps).sort((a, b) => a.localeCompare(b));
19
+ const out = {};
20
+ for (const k of keys) out[k] = deps[k];
21
+ return out;
22
+ }
23
+ function writeFileIfChanged(filePath, nextContent) {
24
+ try {
25
+ if (readFileSync(filePath, "utf-8") === nextContent) return false;
26
+ } catch {}
27
+ writeFileSync(filePath, nextContent);
28
+ return true;
29
+ }
30
+ function fingerprintResolved(deps) {
31
+ const stable = stableDepsObject(deps);
32
+ return sha256(JSON.stringify(stable));
33
+ }
34
+ function getSharedUiDeps(bosConfig) {
35
+ return (bosConfig.shared ?? {}).ui ?? {};
36
+ }
37
+ async function syncAndGenerateSharedUi(opts) {
38
+ const bosConfigPath = join(opts.configDir, "bos.config.json");
39
+ const packageJsonPath = join(opts.configDir, "package.json");
40
+ const generatedPath = join(opts.configDir, ".bos", "generated", "shared-ui.json");
41
+ const bosConfig = opts.bosConfig ?? JSON.parse(readFileSync(bosConfigPath, "utf-8"));
42
+ let pkgJson = {};
43
+ try {
44
+ pkgJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
45
+ } catch {}
46
+ const originalBos = JSON.stringify(bosConfig);
47
+ const originalPkg = JSON.stringify(pkgJson);
48
+ const catalog = pkgJson?.workspaces?.catalog ?? {};
49
+ const sharedUi = getSharedUiDeps(bosConfig);
50
+ const mode = opts.hostMode === "local" ? "catalog->bos" : "bos->catalog";
51
+ if (mode === "catalog->bos") for (const [name, cfg] of Object.entries(sharedUi)) {
52
+ const dep = cfg;
53
+ const version = catalog[name] ?? extractSemverExact(dep.version) ?? extractSemverExact(dep.requiredVersion);
54
+ if (!version) continue;
55
+ dep.version = version;
56
+ dep.requiredVersion = caretRange(version);
57
+ dep.shareScope = dep.shareScope ?? "default";
58
+ }
59
+ else {
60
+ for (const [name, cfg] of Object.entries(sharedUi)) {
61
+ const dep = cfg;
62
+ const version = extractSemverExact(dep.version) ?? extractSemverExact(dep.requiredVersion);
63
+ if (!version) continue;
64
+ dep.version = version;
65
+ dep.requiredVersion = caretRange(version);
66
+ dep.shareScope = dep.shareScope ?? "default";
67
+ if (catalog[name] !== version) catalog[name] = version;
68
+ }
69
+ if (!pkgJson.workspaces) pkgJson.workspaces = {
70
+ packages: [],
71
+ catalog: {}
72
+ };
73
+ pkgJson.workspaces.catalog = catalog;
74
+ }
75
+ const nextBos = JSON.stringify(bosConfig);
76
+ const nextPkg = JSON.stringify(pkgJson);
77
+ const bosConfigChanged = nextBos !== originalBos;
78
+ const catalogChanged = nextPkg !== originalPkg;
79
+ if (bosConfigChanged) writeFileIfChanged(bosConfigPath, `${JSON.stringify(bosConfig, null, 2)}\n`);
80
+ if (catalogChanged) writeFileIfChanged(packageJsonPath, `${JSON.stringify(pkgJson, null, 2)}\n`);
81
+ const resolvedDeps = {};
82
+ for (const [name, cfg] of Object.entries(getSharedUiDeps(bosConfig))) {
83
+ const version = catalog[name] ?? extractSemverExact(cfg.version) ?? extractSemverExact(cfg.requiredVersion);
84
+ if (!version) continue;
85
+ resolvedDeps[name] = {
86
+ name,
87
+ version,
88
+ requiredVersion: caretRange(version),
89
+ shareScope: cfg.shareScope ?? "default",
90
+ singleton: cfg.singleton ?? false,
91
+ eager: cfg.eager ?? false,
92
+ strictVersion: cfg.strictVersion ?? false
93
+ };
94
+ }
95
+ const stableResolvedDeps = stableDepsObject(resolvedDeps);
96
+ const resolved = {
97
+ deps: stableResolvedDeps,
98
+ fingerprintSha256: fingerprintResolved(stableResolvedDeps)
99
+ };
100
+ const nextGenerated = {
101
+ schemaVersion: 1,
102
+ kind: "everything-dev/shared-ui",
103
+ generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
104
+ ui: {
105
+ deps: stableResolvedDeps,
106
+ fingerprintSha256: resolved.fingerprintSha256
107
+ },
108
+ inputs: {
109
+ mode,
110
+ hostMode: opts.hostMode
111
+ }
112
+ };
113
+ let prevFingerprint = null;
114
+ try {
115
+ prevFingerprint = JSON.parse(readFileSync(generatedPath, "utf-8"))?.ui?.fingerprintSha256 ?? null;
116
+ } catch {}
117
+ mkdirSync(dirname(generatedPath), { recursive: true });
118
+ writeFileIfChanged(generatedPath, `${JSON.stringify(nextGenerated, null, 2)}\n`);
119
+ const generatedChanged = prevFingerprint !== nextGenerated.ui.fingerprintSha256;
120
+ return {
121
+ mode,
122
+ hostMode: opts.hostMode,
123
+ bosConfigChanged,
124
+ catalogChanged,
125
+ generatedChanged,
126
+ resolved
127
+ };
128
+ }
129
+ function loadGeneratedSharedUi(configDir) {
130
+ const generatedPath = join(configDir, ".bos", "generated", "shared-ui.json");
131
+ try {
132
+ return JSON.parse(readFileSync(generatedPath, "utf-8"))?.ui ?? null;
133
+ } catch {
134
+ return null;
135
+ }
136
+ }
137
+
138
+ //#endregion
139
+ export { loadGeneratedSharedUi, syncAndGenerateSharedUi };
140
+ //# sourceMappingURL=shared.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.mjs","names":[],"sources":["../src/shared.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport type { BosConfig, SharedDepConfig } from \"./types\";\n\nexport interface SharedUiResolvedDep {\n name: string;\n version: string;\n requiredVersion: string;\n shareScope: string;\n singleton: boolean;\n eager: boolean;\n strictVersion: boolean;\n}\n\nexport interface SharedUiResolved {\n deps: Record<string, SharedUiResolvedDep>;\n fingerprintSha256: string;\n}\n\nexport interface SharedSyncResult {\n mode: \"catalog->bos\" | \"bos->catalog\";\n hostMode: \"local\" | \"remote\";\n bosConfigChanged: boolean;\n catalogChanged: boolean;\n generatedChanged: boolean;\n resolved: SharedUiResolved;\n}\n\nfunction sha256(input: string): string {\n return createHash(\"sha256\").update(input).digest(\"hex\");\n}\n\nfunction extractSemverExact(input: unknown): string | null {\n if (typeof input !== \"string\") return null;\n const match = input.match(/\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?/);\n return match ? match[0] : null;\n}\n\nfunction caretRange(version: string): string {\n return `^${version}`;\n}\n\nfunction stableDepsObject(\n deps: Record<string, SharedUiResolvedDep>,\n): Record<string, SharedUiResolvedDep> {\n const keys = Object.keys(deps).sort((a, b) => a.localeCompare(b));\n const out: Record<string, SharedUiResolvedDep> = {};\n for (const k of keys) out[k] = deps[k]!;\n return out;\n}\n\nfunction writeFileIfChanged(filePath: string, nextContent: string): boolean {\n try {\n const current = readFileSync(filePath, \"utf-8\");\n if (current === nextContent) return false;\n } catch {\n // ignore\n }\n\n writeFileSync(filePath, nextContent);\n return true;\n}\n\nfunction fingerprintResolved(deps: Record<string, SharedUiResolvedDep>): string {\n const stable = stableDepsObject(deps);\n return sha256(JSON.stringify(stable));\n}\n\nfunction getSharedUiDeps(bosConfig: BosConfig): Record<string, SharedDepConfig> {\n const shared = bosConfig.shared ?? {};\n const ui = shared.ui ?? {};\n return ui;\n}\n\nexport async function syncAndGenerateSharedUi(opts: {\n configDir: string;\n hostMode: \"local\" | \"remote\";\n bosConfig?: BosConfig;\n}): Promise<SharedSyncResult> {\n const bosConfigPath = join(opts.configDir, \"bos.config.json\");\n const packageJsonPath = join(opts.configDir, \"package.json\");\n const generatedPath = join(opts.configDir, \".bos\", \"generated\", \"shared-ui.json\");\n\n const bosConfig: BosConfig = opts.bosConfig ?? JSON.parse(readFileSync(bosConfigPath, \"utf-8\"));\n let pkgJson: any = {};\n try {\n pkgJson = JSON.parse(readFileSync(packageJsonPath, \"utf-8\"));\n } catch {\n // package.json might not exist\n }\n\n const originalBos = JSON.stringify(bosConfig);\n const originalPkg = JSON.stringify(pkgJson);\n\n const catalog = pkgJson?.workspaces?.catalog ?? {};\n const sharedUi = getSharedUiDeps(bosConfig);\n\n const mode = opts.hostMode === \"local\" ? \"catalog->bos\" : \"bos->catalog\";\n\n if (mode === \"catalog->bos\") {\n for (const [name, cfg] of Object.entries(sharedUi)) {\n const dep = cfg as SharedDepConfig;\n const version =\n catalog[name] ?? extractSemverExact(dep.version) ?? extractSemverExact(dep.requiredVersion);\n if (!version) continue;\n dep.version = version;\n dep.requiredVersion = caretRange(version);\n dep.shareScope = dep.shareScope ?? \"default\";\n }\n } else {\n for (const [name, cfg] of Object.entries(sharedUi)) {\n const dep = cfg as SharedDepConfig;\n const version = extractSemverExact(dep.version) ?? extractSemverExact(dep.requiredVersion);\n if (!version) continue;\n dep.version = version;\n dep.requiredVersion = caretRange(version);\n dep.shareScope = dep.shareScope ?? \"default\";\n if (catalog[name] !== version) {\n catalog[name] = version;\n }\n }\n if (!pkgJson.workspaces) pkgJson.workspaces = { packages: [], catalog: {} };\n pkgJson.workspaces.catalog = catalog;\n }\n\n const nextBos = JSON.stringify(bosConfig);\n const nextPkg = JSON.stringify(pkgJson);\n const bosConfigChanged = nextBos !== originalBos;\n const catalogChanged = nextPkg !== originalPkg;\n\n if (bosConfigChanged) {\n writeFileIfChanged(bosConfigPath, `${JSON.stringify(bosConfig, null, 2)}\\n`);\n }\n if (catalogChanged) {\n writeFileIfChanged(packageJsonPath, `${JSON.stringify(pkgJson, null, 2)}\\n`);\n }\n\n const resolvedDeps: Record<string, SharedUiResolvedDep> = {};\n for (const [name, cfg] of Object.entries(getSharedUiDeps(bosConfig))) {\n const version =\n catalog[name] ?? extractSemverExact(cfg.version) ?? extractSemverExact(cfg.requiredVersion);\n if (!version) continue;\n resolvedDeps[name] = {\n name,\n version,\n requiredVersion: caretRange(version),\n shareScope: cfg.shareScope ?? \"default\",\n singleton: cfg.singleton ?? false,\n eager: cfg.eager ?? false,\n strictVersion: cfg.strictVersion ?? false,\n };\n }\n\n const stableResolvedDeps = stableDepsObject(resolvedDeps);\n const resolved: SharedUiResolved = {\n deps: stableResolvedDeps,\n fingerprintSha256: fingerprintResolved(stableResolvedDeps),\n };\n\n const nextGenerated = {\n schemaVersion: 1,\n kind: \"everything-dev/shared-ui\",\n generatedAt: new Date().toISOString(),\n ui: {\n deps: stableResolvedDeps,\n fingerprintSha256: resolved.fingerprintSha256,\n },\n inputs: {\n mode,\n hostMode: opts.hostMode,\n },\n };\n\n let prevFingerprint: string | null = null;\n try {\n const prev = JSON.parse(readFileSync(generatedPath, \"utf-8\"));\n prevFingerprint = prev?.ui?.fingerprintSha256 ?? null;\n } catch {\n // ignore\n }\n\n mkdirSync(dirname(generatedPath), { recursive: true });\n writeFileIfChanged(generatedPath, `${JSON.stringify(nextGenerated, null, 2)}\\n`);\n\n const generatedChanged = prevFingerprint !== nextGenerated.ui.fingerprintSha256;\n\n return {\n mode,\n hostMode: opts.hostMode,\n bosConfigChanged,\n catalogChanged,\n generatedChanged,\n resolved,\n };\n}\n\nexport function loadGeneratedSharedUi(configDir: string): SharedUiResolved | null {\n const generatedPath = join(configDir, \".bos\", \"generated\", \"shared-ui.json\");\n try {\n const content = JSON.parse(readFileSync(generatedPath, \"utf-8\"));\n return content?.ui ?? null;\n } catch {\n return null;\n }\n}\n"],"mappings":"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"}
package/dist/types.cjs ADDED
@@ -0,0 +1,160 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
3
+ require('./sdk.cjs');
4
+ let every_plugin_zod = require("every-plugin/zod");
5
+
6
+ //#region src/types.ts
7
+ const SourceModeSchema = every_plugin_zod.z.enum(["local", "remote"]);
8
+ const SharedConfigSchema = every_plugin_zod.z.object({
9
+ version: every_plugin_zod.z.string(),
10
+ requiredVersion: every_plugin_zod.z.string().optional(),
11
+ singleton: every_plugin_zod.z.boolean().optional(),
12
+ eager: every_plugin_zod.z.boolean().optional(),
13
+ strictVersion: every_plugin_zod.z.boolean().optional(),
14
+ shareScope: every_plugin_zod.z.string().optional()
15
+ });
16
+ const SharedDepConfigSchema = SharedConfigSchema;
17
+ const FederationEntrySchema = every_plugin_zod.z.object({
18
+ name: every_plugin_zod.z.string(),
19
+ url: every_plugin_zod.z.string(),
20
+ entry: every_plugin_zod.z.string(),
21
+ source: SourceModeSchema,
22
+ integrity: every_plugin_zod.z.string().optional()
23
+ });
24
+ const ApiPluginConfigSchema = every_plugin_zod.z.object({
25
+ name: every_plugin_zod.z.string(),
26
+ development: every_plugin_zod.z.string().optional(),
27
+ production: every_plugin_zod.z.string().optional(),
28
+ productionIntegrity: every_plugin_zod.z.string().optional(),
29
+ proxy: every_plugin_zod.z.string().optional(),
30
+ variables: every_plugin_zod.z.record(every_plugin_zod.z.string(), every_plugin_zod.z.string()).optional(),
31
+ secrets: every_plugin_zod.z.array(every_plugin_zod.z.string()).optional()
32
+ });
33
+ const BosPluginRefSchema = every_plugin_zod.z.object({
34
+ extends: every_plugin_zod.z.string().optional(),
35
+ development: every_plugin_zod.z.string().optional(),
36
+ production: every_plugin_zod.z.string().optional(),
37
+ productionIntegrity: every_plugin_zod.z.string().optional(),
38
+ proxy: every_plugin_zod.z.string().optional(),
39
+ variables: every_plugin_zod.z.record(every_plugin_zod.z.string(), every_plugin_zod.z.string()).optional(),
40
+ secrets: every_plugin_zod.z.array(every_plugin_zod.z.string()).optional()
41
+ });
42
+ const RuntimePluginConfigSchema = every_plugin_zod.z.object({
43
+ name: every_plugin_zod.z.string(),
44
+ url: every_plugin_zod.z.string(),
45
+ entry: every_plugin_zod.z.string(),
46
+ source: SourceModeSchema,
47
+ localPath: every_plugin_zod.z.string().optional(),
48
+ port: every_plugin_zod.z.number().optional(),
49
+ proxy: every_plugin_zod.z.string().optional(),
50
+ variables: every_plugin_zod.z.record(every_plugin_zod.z.string(), every_plugin_zod.z.string()).optional(),
51
+ secrets: every_plugin_zod.z.array(every_plugin_zod.z.string()).optional(),
52
+ integrity: every_plugin_zod.z.string().optional()
53
+ });
54
+ const UiConfigSchema = every_plugin_zod.z.object({
55
+ name: every_plugin_zod.z.string(),
56
+ development: every_plugin_zod.z.string().optional(),
57
+ production: every_plugin_zod.z.string().optional(),
58
+ productionIntegrity: every_plugin_zod.z.string().optional(),
59
+ ssr: every_plugin_zod.z.string().optional(),
60
+ ssrIntegrity: every_plugin_zod.z.string().optional()
61
+ });
62
+ const HostConfigSchema = every_plugin_zod.z.object({
63
+ development: every_plugin_zod.z.string(),
64
+ production: every_plugin_zod.z.string(),
65
+ productionIntegrity: every_plugin_zod.z.string().optional(),
66
+ secrets: every_plugin_zod.z.array(every_plugin_zod.z.string()).optional()
67
+ });
68
+ const ClientRuntimeInfoSchema = every_plugin_zod.z.object({
69
+ accountId: every_plugin_zod.z.string(),
70
+ gatewayId: every_plugin_zod.z.string(),
71
+ runtimeBasePath: every_plugin_zod.z.string(),
72
+ title: every_plugin_zod.z.string().nullable(),
73
+ hostUrl: every_plugin_zod.z.string().nullable()
74
+ });
75
+ const BosStagingSchema = every_plugin_zod.z.object({ domain: every_plugin_zod.z.string() });
76
+ const BosConfigSchema = every_plugin_zod.z.object({
77
+ account: every_plugin_zod.z.string(),
78
+ extends: every_plugin_zod.z.string().optional(),
79
+ domain: every_plugin_zod.z.string().optional(),
80
+ testnet: every_plugin_zod.z.string().optional(),
81
+ staging: BosStagingSchema.optional(),
82
+ repository: every_plugin_zod.z.string().optional(),
83
+ shared: every_plugin_zod.z.record(every_plugin_zod.z.string(), every_plugin_zod.z.record(every_plugin_zod.z.string(), SharedConfigSchema)).optional(),
84
+ plugins: every_plugin_zod.z.record(every_plugin_zod.z.string(), BosPluginRefSchema).optional(),
85
+ app: every_plugin_zod.z.object({
86
+ host: HostConfigSchema,
87
+ ui: UiConfigSchema,
88
+ api: ApiPluginConfigSchema
89
+ })
90
+ });
91
+ const RuntimeConfigSchema = every_plugin_zod.z.object({
92
+ env: every_plugin_zod.z.enum(["development", "production"]),
93
+ account: every_plugin_zod.z.string(),
94
+ domain: every_plugin_zod.z.string().optional(),
95
+ networkId: every_plugin_zod.z.enum(["mainnet", "testnet"]),
96
+ title: every_plugin_zod.z.string().optional(),
97
+ repository: every_plugin_zod.z.string().optional(),
98
+ hostUrl: every_plugin_zod.z.string(),
99
+ shared: every_plugin_zod.z.object({ ui: every_plugin_zod.z.record(every_plugin_zod.z.string(), SharedConfigSchema).optional() }).optional(),
100
+ ui: FederationEntrySchema.extend({
101
+ localPath: every_plugin_zod.z.string().optional(),
102
+ port: every_plugin_zod.z.number().optional(),
103
+ ssrUrl: every_plugin_zod.z.string().optional(),
104
+ ssrIntegrity: every_plugin_zod.z.string().optional()
105
+ }),
106
+ api: FederationEntrySchema.extend({
107
+ localPath: every_plugin_zod.z.string().optional(),
108
+ port: every_plugin_zod.z.number().optional(),
109
+ proxy: every_plugin_zod.z.string().optional(),
110
+ variables: every_plugin_zod.z.record(every_plugin_zod.z.string(), every_plugin_zod.z.string()).optional(),
111
+ secrets: every_plugin_zod.z.array(every_plugin_zod.z.string()).optional()
112
+ }),
113
+ plugins: every_plugin_zod.z.record(every_plugin_zod.z.string(), RuntimePluginConfigSchema).optional()
114
+ });
115
+ const ClientRuntimeConfigSchema = every_plugin_zod.z.object({
116
+ env: every_plugin_zod.z.enum(["development", "production"]),
117
+ account: every_plugin_zod.z.string(),
118
+ networkId: every_plugin_zod.z.enum(["mainnet", "testnet"]),
119
+ hostUrl: every_plugin_zod.z.string().optional(),
120
+ assetsUrl: every_plugin_zod.z.string(),
121
+ apiBase: every_plugin_zod.z.string(),
122
+ rpcBase: every_plugin_zod.z.string(),
123
+ repository: every_plugin_zod.z.string().optional(),
124
+ runtime: ClientRuntimeInfoSchema.optional(),
125
+ ui: every_plugin_zod.z.object({
126
+ name: every_plugin_zod.z.string(),
127
+ url: every_plugin_zod.z.string(),
128
+ entry: every_plugin_zod.z.string(),
129
+ integrity: every_plugin_zod.z.string().optional()
130
+ }).optional(),
131
+ api: every_plugin_zod.z.object({
132
+ name: every_plugin_zod.z.string(),
133
+ url: every_plugin_zod.z.string(),
134
+ entry: every_plugin_zod.z.string(),
135
+ integrity: every_plugin_zod.z.string().optional()
136
+ }).optional(),
137
+ plugins: every_plugin_zod.z.record(every_plugin_zod.z.string(), every_plugin_zod.z.object({
138
+ name: every_plugin_zod.z.string(),
139
+ url: every_plugin_zod.z.string(),
140
+ entry: every_plugin_zod.z.string(),
141
+ integrity: every_plugin_zod.z.string().optional()
142
+ })).optional()
143
+ });
144
+
145
+ //#endregion
146
+ exports.ApiPluginConfigSchema = ApiPluginConfigSchema;
147
+ exports.BosConfigSchema = BosConfigSchema;
148
+ exports.BosPluginRefSchema = BosPluginRefSchema;
149
+ exports.BosStagingSchema = BosStagingSchema;
150
+ exports.ClientRuntimeConfigSchema = ClientRuntimeConfigSchema;
151
+ exports.ClientRuntimeInfoSchema = ClientRuntimeInfoSchema;
152
+ exports.FederationEntrySchema = FederationEntrySchema;
153
+ exports.HostConfigSchema = HostConfigSchema;
154
+ exports.RuntimeConfigSchema = RuntimeConfigSchema;
155
+ exports.RuntimePluginConfigSchema = RuntimePluginConfigSchema;
156
+ exports.SharedConfigSchema = SharedConfigSchema;
157
+ exports.SharedDepConfigSchema = SharedDepConfigSchema;
158
+ exports.SourceModeSchema = SourceModeSchema;
159
+ exports.UiConfigSchema = UiConfigSchema;
160
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","names":["z"],"sources":["../src/types.ts"],"sourcesContent":["import { z } from \"./sdk\";\n\nexport const SourceModeSchema = z.enum([\"local\", \"remote\"]);\nexport type SourceMode = z.infer<typeof SourceModeSchema>;\n\nexport const SharedConfigSchema = z.object({\n version: z.string(),\n requiredVersion: z.string().optional(),\n singleton: z.boolean().optional(),\n eager: z.boolean().optional(),\n strictVersion: z.boolean().optional(),\n shareScope: z.string().optional(),\n});\nexport type SharedConfig = z.infer<typeof SharedConfigSchema>;\nexport type SharedDepConfig = SharedConfig;\nexport const SharedDepConfigSchema = SharedConfigSchema;\n\nexport const FederationEntrySchema = z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n integrity: z.string().optional(),\n});\nexport type FederationEntry = z.infer<typeof FederationEntrySchema>;\n\nexport const ApiPluginConfigSchema = z.object({\n name: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n productionIntegrity: z.string().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n});\nexport type ApiPluginConfig = z.infer<typeof ApiPluginConfigSchema>;\n\nexport const BosPluginRefSchema = z.object({\n extends: z.string().optional(),\n development: z.string().optional(),\n production: z.string().optional(),\n productionIntegrity: z.string().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n});\nexport type BosPluginRef = z.infer<typeof BosPluginRefSchema>;\n\nexport const RuntimePluginConfigSchema = z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n source: SourceModeSchema,\n localPath: z.string().optional(),\n port: z.number().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n integrity: z.string().optional(),\n});\nexport type RuntimePluginConfig = z.infer<typeof RuntimePluginConfigSchema>;\n\nexport const UiConfigSchema = z.object({\n name: z.string(),\n development: z.string().optional(),\n production: z.string().optional(),\n productionIntegrity: z.string().optional(),\n ssr: z.string().optional(),\n ssrIntegrity: z.string().optional(),\n});\nexport type UiConfig = z.infer<typeof UiConfigSchema>;\n\nexport const HostConfigSchema = z.object({\n development: z.string(),\n production: z.string(),\n productionIntegrity: z.string().optional(),\n secrets: z.array(z.string()).optional(),\n});\nexport type HostConfig = z.infer<typeof HostConfigSchema>;\n\nexport const ClientRuntimeInfoSchema = z.object({\n accountId: z.string(),\n gatewayId: z.string(),\n runtimeBasePath: z.string(),\n title: z.string().nullable(),\n hostUrl: z.string().nullable(),\n});\nexport type ClientRuntimeInfo = z.infer<typeof ClientRuntimeInfoSchema>;\n\nexport const BosStagingSchema = z.object({\n domain: z.string(),\n});\nexport type BosStaging = z.infer<typeof BosStagingSchema>;\n\nexport const BosConfigSchema = z.object({\n account: z.string(),\n extends: z.string().optional(),\n domain: z.string().optional(),\n testnet: z.string().optional(),\n staging: BosStagingSchema.optional(),\n repository: z.string().optional(),\n shared: z.record(z.string(), z.record(z.string(), SharedConfigSchema)).optional(),\n plugins: z.record(z.string(), BosPluginRefSchema).optional(),\n app: z.object({\n host: HostConfigSchema,\n ui: UiConfigSchema,\n api: ApiPluginConfigSchema,\n }),\n});\nexport type BosConfig = z.infer<typeof BosConfigSchema>;\n\nexport const RuntimeConfigSchema = z.object({\n env: z.enum([\"development\", \"production\"]),\n account: z.string(),\n domain: z.string().optional(),\n networkId: z.enum([\"mainnet\", \"testnet\"]),\n title: z.string().optional(),\n repository: z.string().optional(),\n hostUrl: z.string(),\n shared: z\n .object({\n ui: z.record(z.string(), SharedConfigSchema).optional(),\n })\n .optional(),\n ui: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n ssrUrl: z.string().optional(),\n ssrIntegrity: z.string().optional(),\n }),\n api: FederationEntrySchema.extend({\n localPath: z.string().optional(),\n port: z.number().optional(),\n proxy: z.string().optional(),\n variables: z.record(z.string(), z.string()).optional(),\n secrets: z.array(z.string()).optional(),\n }),\n plugins: z.record(z.string(), RuntimePluginConfigSchema).optional(),\n});\nexport type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;\n\nexport const ClientRuntimeConfigSchema = z.object({\n env: z.enum([\"development\", \"production\"]),\n account: z.string(),\n networkId: z.enum([\"mainnet\", \"testnet\"]),\n hostUrl: z.string().optional(),\n assetsUrl: z.string(),\n apiBase: z.string(),\n rpcBase: z.string(),\n repository: z.string().optional(),\n runtime: ClientRuntimeInfoSchema.optional(),\n ui: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n })\n .optional(),\n api: z\n .object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n })\n .optional(),\n plugins: z\n .record(\n z.string(),\n z.object({\n name: z.string(),\n url: z.string(),\n entry: z.string(),\n integrity: z.string().optional(),\n }),\n )\n .optional(),\n});\nexport type ClientRuntimeConfig = z.infer<typeof ClientRuntimeConfigSchema>;\n"],"mappings":"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"}