@cms0/cms0 0.2.18 → 0.2.20

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 (38) hide show
  1. package/dist/cjs/descriptor-sidecar.cjs +25 -0
  2. package/dist/cjs/generated/schema-descriptor.cjs +3 -0
  3. package/dist/cjs/index.cjs +78 -0
  4. package/dist/cjs/libs/cli/browser-sidecar.cjs +86 -0
  5. package/dist/cjs/libs/cli/build.cjs +2 -2
  6. package/dist/cjs/libs/cli/cli.cjs +8 -3
  7. package/dist/cjs/libs/cli/descriptor-writer.cjs +17 -11
  8. package/dist/cjs/libs/cli/watcher.cjs +5 -3
  9. package/dist/cjs/provenance.cjs +0 -2
  10. package/dist/cjs/schema-descriptors.cjs +129 -10
  11. package/dist/esm/descriptor-sidecar.js +20 -0
  12. package/dist/esm/generated/schema-descriptor.js +3 -0
  13. package/dist/esm/index.js +79 -1
  14. package/dist/esm/libs/cli/browser-sidecar.js +81 -0
  15. package/dist/esm/libs/cli/build.js +2 -2
  16. package/dist/esm/libs/cli/cli.js +8 -3
  17. package/dist/esm/libs/cli/descriptor-writer.js +16 -12
  18. package/dist/esm/libs/cli/watcher.js +5 -3
  19. package/dist/esm/provenance.js +0 -2
  20. package/dist/esm/schema-descriptors.js +126 -10
  21. package/dist/types/descriptor-sidecar.d.ts +6 -0
  22. package/dist/types/descriptor-sidecar.d.ts.map +1 -0
  23. package/dist/types/generated/schema-descriptor.d.ts +3 -0
  24. package/dist/types/generated/schema-descriptor.d.ts.map +1 -1
  25. package/dist/types/index.d.ts.map +1 -1
  26. package/dist/types/libs/cli/browser-sidecar.d.ts +9 -0
  27. package/dist/types/libs/cli/browser-sidecar.d.ts.map +1 -0
  28. package/dist/types/libs/cli/build.d.ts +2 -1
  29. package/dist/types/libs/cli/build.d.ts.map +1 -1
  30. package/dist/types/libs/cli/cli.d.ts.map +1 -1
  31. package/dist/types/libs/cli/descriptor-writer.d.ts +10 -2
  32. package/dist/types/libs/cli/descriptor-writer.d.ts.map +1 -1
  33. package/dist/types/libs/cli/watcher.d.ts +2 -1
  34. package/dist/types/libs/cli/watcher.d.ts.map +1 -1
  35. package/dist/types/provenance.d.ts.map +1 -1
  36. package/dist/types/schema-descriptors.d.ts +6 -0
  37. package/dist/types/schema-descriptors.d.ts.map +1 -1
  38. package/package.json +2 -2
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCms0DescriptorSidecarPort = getCms0DescriptorSidecarPort;
4
+ exports.getCms0DescriptorSidecarUrl = getCms0DescriptorSidecarUrl;
5
+ exports.getCms0DescriptorSidecarEventsUrl = getCms0DescriptorSidecarEventsUrl;
6
+ exports.hashCms0SidecarSeed = hashCms0SidecarSeed;
7
+ function hashCms0SidecarSeed(seed) {
8
+ let hash = 5381;
9
+ for (let index = 0; index < seed.length; index += 1) {
10
+ hash = ((hash << 5) + hash + seed.charCodeAt(index)) >>> 0;
11
+ }
12
+ return hash >>> 0;
13
+ }
14
+ function getCms0DescriptorSidecarPort(baseUrl, apiKey) {
15
+ const seed = `${baseUrl?.trim() ?? ""}|${apiKey?.trim() ?? ""}`;
16
+ return 43129 + (hashCms0SidecarSeed(seed) % 1000);
17
+ }
18
+ function getCms0DescriptorSidecarUrl(baseUrl, apiKey) {
19
+ const port = getCms0DescriptorSidecarPort(baseUrl, apiKey);
20
+ return `http://127.0.0.1:${port}/schema-descriptor`;
21
+ }
22
+ function getCms0DescriptorSidecarEventsUrl(baseUrl, apiKey) {
23
+ const port = getCms0DescriptorSidecarPort(baseUrl, apiKey);
24
+ return `http://127.0.0.1:${port}/schema-events`;
25
+ }
@@ -5,4 +5,7 @@ exports.schemaDescriptor = void 0;
5
5
  exports.schemaDescriptor = {
6
6
  models: {},
7
7
  roots: {},
8
+ metadata: {
9
+ __cms0Fallback: true,
10
+ },
8
11
  };
@@ -1391,8 +1391,86 @@ function createCmsClient(descriptor, config) {
1391
1391
  return rootProxy;
1392
1392
  }
1393
1393
  function cms0(config) {
1394
+ if (typeof window !== "undefined") {
1395
+ return createLazyBrowserCmsClient(config);
1396
+ }
1394
1397
  return createCmsClient((0, schema_descriptors_1.getActiveSchemaDescriptor)(), config);
1395
1398
  }
1399
+ function createLazyBrowserCmsClient(config) {
1400
+ let clientPromise = null;
1401
+ const invalidateClientCache = () => {
1402
+ clientPromise = null;
1403
+ (0, schema_descriptors_1.invalidateBrowserSchemaDescriptorCache)(config.apiConfig?.baseUrl, config.apiConfig?.key);
1404
+ };
1405
+ const handleDescriptorInvalidation = () => {
1406
+ clientPromise = null;
1407
+ };
1408
+ const resolveClient = async () => {
1409
+ (0, schema_descriptors_1.ensureBrowserSchemaDescriptorDevSubscription)(config.apiConfig?.baseUrl, config.apiConfig?.key, handleDescriptorInvalidation);
1410
+ if (!clientPromise) {
1411
+ clientPromise = (0, schema_descriptors_1.resolveBrowserSchemaDescriptor)(config.apiConfig?.baseUrl, config.apiConfig?.key).then((descriptor) => createCmsClient(descriptor, config));
1412
+ }
1413
+ return clientPromise;
1414
+ };
1415
+ const runBrowserAccessor = async (resolver) => {
1416
+ try {
1417
+ const client = await resolveClient();
1418
+ return await resolver(client);
1419
+ }
1420
+ catch (error) {
1421
+ if (error instanceof Error &&
1422
+ error.message.includes("Unknown schema key '")) {
1423
+ invalidateClientCache();
1424
+ const client = await resolveClient();
1425
+ return resolver(client);
1426
+ }
1427
+ throw error;
1428
+ }
1429
+ };
1430
+ const buildModelAccessor = (property) => {
1431
+ const accessor = (async (options) => {
1432
+ return runBrowserAccessor((client) => client.models[property](options));
1433
+ });
1434
+ accessor.byId = async (id, options) => {
1435
+ return runBrowserAccessor((client) => client.models[property].byId(id, options));
1436
+ };
1437
+ return accessor;
1438
+ };
1439
+ const modelsProxy = new Proxy({}, {
1440
+ get(_target, property) {
1441
+ if (typeof property !== "string")
1442
+ return undefined;
1443
+ if (property === "then")
1444
+ return undefined;
1445
+ return buildModelAccessor(property);
1446
+ },
1447
+ });
1448
+ const clientMeta = {
1449
+ locales: config.locales ?? [],
1450
+ defaultLocale: config.defaultLocale,
1451
+ includeIdDefault: !!config.includeId,
1452
+ };
1453
+ const rootProxyTarget = {
1454
+ models: modelsProxy,
1455
+ meta: clientMeta,
1456
+ };
1457
+ const rootProxy = new Proxy(rootProxyTarget, {
1458
+ get(target, property, receiver) {
1459
+ if (typeof property !== "string") {
1460
+ return Reflect.get(target, property, receiver);
1461
+ }
1462
+ if (property === "then")
1463
+ return undefined;
1464
+ if (Reflect.has(target, property)) {
1465
+ return Reflect.get(target, property, receiver);
1466
+ }
1467
+ return async (options) => {
1468
+ return runBrowserAccessor((client) => client[property](options));
1469
+ };
1470
+ },
1471
+ });
1472
+ return rootProxy;
1473
+ }
1396
1474
  var provenance_js_1 = require("./provenance.cjs");
1397
1475
  Object.defineProperty(exports, "activateCms0CanvasTransport", { enumerable: true, get: function () { return provenance_js_1.activateCms0CanvasTransport; } });
1398
1476
  Object.defineProperty(exports, "attachCms0ProvenanceRoot", { enumerable: true, get: function () { return provenance_js_1.attachCms0ProvenanceRoot; } });
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.startBrowserDescriptorSidecar = startBrowserDescriptorSidecar;
7
+ const node_http_1 = __importDefault(require("node:http"));
8
+ const descriptor_sidecar_js_1 = require("../../descriptor-sidecar.cjs");
9
+ function writeSchemaVersionEvent(response, version) {
10
+ response.write(`event: schema-version\ndata: ${JSON.stringify({ version })}\n\n`);
11
+ }
12
+ function startBrowserDescriptorSidecar(resolved, initialDescriptor) {
13
+ const port = (0, descriptor_sidecar_js_1.getCms0DescriptorSidecarPort)(resolved.apiBaseUrl, resolved.apiKey);
14
+ let currentDescriptor = initialDescriptor;
15
+ let currentVersion = 1;
16
+ const eventClients = new Set();
17
+ const server = node_http_1.default.createServer((request, response) => {
18
+ const requestUrl = new URL(request.url ?? "/", `http://127.0.0.1:${port}`);
19
+ response.setHeader("Access-Control-Allow-Origin", "*");
20
+ response.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
21
+ response.setHeader("Access-Control-Allow-Headers", "Content-Type");
22
+ if (request.method === "OPTIONS") {
23
+ response.writeHead(204);
24
+ response.end();
25
+ return;
26
+ }
27
+ if (request.method === "GET" && requestUrl.pathname === "/schema-events") {
28
+ response.writeHead(200, {
29
+ "content-type": "text/event-stream; charset=utf-8",
30
+ "cache-control": "no-store",
31
+ connection: "keep-alive",
32
+ });
33
+ response.write(": cms0 browser schema sidecar\n\n");
34
+ eventClients.add(response);
35
+ request.on("close", () => {
36
+ eventClients.delete(response);
37
+ });
38
+ return;
39
+ }
40
+ if (request.method !== "GET" || requestUrl.pathname !== "/schema-descriptor") {
41
+ response.writeHead(404, { "content-type": "application/json; charset=utf-8" });
42
+ response.end(JSON.stringify({ error: "Not found" }));
43
+ return;
44
+ }
45
+ response.writeHead(200, {
46
+ "content-type": "application/json; charset=utf-8",
47
+ "cache-control": "no-store",
48
+ });
49
+ response.end(JSON.stringify(currentDescriptor));
50
+ });
51
+ return new Promise((resolve, reject) => {
52
+ server.once("error", reject);
53
+ server.listen(port, "127.0.0.1", () => {
54
+ server.off("error", reject);
55
+ console.log(`cms0: browser descriptor sidecar listening on http://127.0.0.1:${port}/schema-descriptor`);
56
+ resolve({
57
+ updateDescriptor(descriptor) {
58
+ currentDescriptor = descriptor;
59
+ currentVersion += 1;
60
+ for (const client of [...eventClients]) {
61
+ if (client.destroyed || client.writableEnded) {
62
+ eventClients.delete(client);
63
+ continue;
64
+ }
65
+ writeSchemaVersionEvent(client, currentVersion);
66
+ }
67
+ },
68
+ close() {
69
+ return new Promise((closeResolve, closeReject) => {
70
+ for (const client of eventClients) {
71
+ client.end();
72
+ }
73
+ eventClients.clear();
74
+ server.close((error) => {
75
+ if (error) {
76
+ closeReject(error);
77
+ return;
78
+ }
79
+ closeResolve();
80
+ });
81
+ });
82
+ },
83
+ });
84
+ });
85
+ });
86
+ }
@@ -5,9 +5,9 @@ exports.buildOnce = buildOnce;
5
5
  const descriptor_builder_alt_js_1 = require("./descriptor-builder-alt.cjs");
6
6
  const publisher_js_1 = require("./publisher.cjs");
7
7
  const descriptor_writer_js_1 = require("./descriptor-writer.cjs");
8
- function buildOnce(resolved) {
8
+ function buildOnce(resolved, browserTarget = "sidecar") {
9
9
  const descriptor = (0, descriptor_builder_alt_js_1.buildDescriptorAlt)(resolved);
10
- (0, descriptor_writer_js_1.writeDescriptorFiles)(resolved, descriptor);
10
+ (0, descriptor_writer_js_1.writeDescriptorFiles)(resolved, descriptor, browserTarget);
11
11
  (0, publisher_js_1.publishDescriptor)(resolved, descriptor);
12
12
  return descriptor;
13
13
  }
@@ -4,6 +4,7 @@ exports.runFromCli = runFromCli;
4
4
  // CLI entry point: parse arguments, load config, and trigger build/watch modes.
5
5
  const url_1 = require("url");
6
6
  const build_js_1 = require("./build.cjs");
7
+ const browser_sidecar_js_1 = require("./browser-sidecar.cjs");
7
8
  const config_loader_js_1 = require("./config-loader.cjs");
8
9
  const watcher_js_1 = require("./watcher.cjs");
9
10
  async function runFromCli() {
@@ -29,14 +30,18 @@ async function runFromCli() {
29
30
  const resolved = (0, config_loader_js_1.resolvePaths)(loaded.path, loaded.config);
30
31
  console.log("resolved: ", resolved);
31
32
  if (mode === "watch") {
32
- (0, watcher_js_1.startWatcher)(resolved);
33
+ const descriptor = (0, build_js_1.buildOnce)(resolved, "sidecar");
34
+ const sidecar = await (0, browser_sidecar_js_1.startBrowserDescriptorSidecar)(resolved, descriptor);
35
+ (0, watcher_js_1.startWatcher)(resolved, (nextDescriptor) => sidecar.updateDescriptor(nextDescriptor), "sidecar", false);
33
36
  return;
34
37
  }
35
38
  if (mode === "dev") {
36
- (0, watcher_js_1.startWatcher)(resolved);
39
+ const descriptor = (0, build_js_1.buildOnce)(resolved, "sidecar");
40
+ const sidecar = await (0, browser_sidecar_js_1.startBrowserDescriptorSidecar)(resolved, descriptor);
41
+ (0, watcher_js_1.startWatcher)(resolved, (nextDescriptor) => sidecar.updateDescriptor(nextDescriptor), "sidecar", false);
37
42
  return;
38
43
  }
39
- (0, build_js_1.buildOnce)(resolved);
44
+ (0, build_js_1.buildOnce)(resolved, "bundle");
40
45
  }
41
46
  // ESM/CJS-safe main check without import.meta syntax in the source so CJS builds succeed.
42
47
  const isDirectRun = (() => {
@@ -3,10 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FALLBACK_DESCRIPTOR = void 0;
6
7
  exports.writeDescriptorFiles = writeDescriptorFiles;
7
8
  const fs_1 = __importDefault(require("fs"));
8
9
  const path_1 = __importDefault(require("path"));
9
10
  const paths_js_1 = require("./paths.cjs");
11
+ const FALLBACK_DESCRIPTOR = {
12
+ models: {},
13
+ roots: {},
14
+ metadata: {
15
+ __cms0Fallback: true,
16
+ },
17
+ };
18
+ exports.FALLBACK_DESCRIPTOR = FALLBACK_DESCRIPTOR;
10
19
  function safeWrite(outputPath, output) {
11
20
  try {
12
21
  fs_1.default.mkdirSync(path_1.default.dirname(outputPath), { recursive: true });
@@ -21,25 +30,22 @@ function safeWrite(outputPath, output) {
21
30
  }
22
31
  }
23
32
  }
24
- function createSourceTsOutput(descriptor) {
25
- return `// Auto-generated schema descriptor\nexport const schemaDescriptor = ${JSON.stringify(descriptor, null, 2)} as const;\n`;
26
- }
27
- function createEsmOutput(descriptor) {
28
- return `// Auto-generated schema descriptor\nexport const schemaDescriptor = ${JSON.stringify(descriptor, null, 2)};\n`;
29
- }
30
33
  function createCjsOutput(descriptor) {
31
34
  return `// Auto-generated schema descriptor\nexports.schemaDescriptor = ${JSON.stringify(descriptor, null, 2)};\n`;
32
35
  }
33
36
  function createJsonOutput(descriptor) {
34
37
  return `${JSON.stringify(descriptor, null, 2)}\n`;
35
38
  }
36
- function writeDescriptorFiles(resolved, descriptor) {
37
- const localDescriptorOutputPaths = (0, paths_js_1.resolveLocalDescriptorOutputPaths)(resolved.projectRoot);
38
- if (fs_1.default.existsSync(path_1.default.resolve(path_1.default.dirname(paths_js_1.descriptorOutputPaths.sourceTs), ".."))) {
39
- safeWrite(paths_js_1.descriptorOutputPaths.sourceTs, createSourceTsOutput(descriptor));
40
- }
39
+ function createEsmOutput(descriptor) {
40
+ return `// Auto-generated schema descriptor\nexport const schemaDescriptor = ${JSON.stringify(descriptor, null, 2)};\n`;
41
+ }
42
+ function writeBundledDescriptorProjection(descriptor) {
41
43
  safeWrite(paths_js_1.descriptorOutputPaths.esmJs, createEsmOutput(descriptor));
42
44
  safeWrite(paths_js_1.descriptorOutputPaths.cjsJs, createCjsOutput(descriptor));
45
+ }
46
+ function writeDescriptorFiles(resolved, descriptor, browserTarget = "sidecar") {
47
+ const localDescriptorOutputPaths = (0, paths_js_1.resolveLocalDescriptorOutputPaths)(resolved.projectRoot);
43
48
  safeWrite(localDescriptorOutputPaths.json, createJsonOutput(descriptor));
44
49
  safeWrite(localDescriptorOutputPaths.cjsJs, createCjsOutput(descriptor));
50
+ writeBundledDescriptorProjection(browserTarget === "bundle" ? descriptor : FALLBACK_DESCRIPTOR);
45
51
  }
@@ -7,13 +7,13 @@ exports.startWatcher = startWatcher;
7
7
  // File watcher that rebuilds descriptors on entry changes.
8
8
  const chokidar_1 = __importDefault(require("chokidar"));
9
9
  const build_js_1 = require("./build.cjs");
10
- function startWatcher(resolved, afterBuild) {
10
+ function startWatcher(resolved, afterBuild, browserTarget = "sidecar", runInitialBuild = true) {
11
11
  const watcher = chokidar_1.default.watch([resolved.entryFile], {
12
12
  ignoreInitial: false,
13
13
  });
14
14
  const run = (after) => {
15
15
  try {
16
- const descriptor = (0, build_js_1.buildOnce)(resolved);
16
+ const descriptor = (0, build_js_1.buildOnce)(resolved, browserTarget);
17
17
  if (after) {
18
18
  Promise.resolve(after(descriptor)).catch((err) => {
19
19
  console.error("cms0: post-build hook failed", err);
@@ -25,7 +25,9 @@ function startWatcher(resolved, afterBuild) {
25
25
  }
26
26
  };
27
27
  // Trigger a build on startup and whenever the entry file changes.
28
- watcher.on("ready", () => run(afterBuild));
28
+ if (runInitialBuild) {
29
+ watcher.on("ready", () => run(afterBuild));
30
+ }
29
31
  watcher.on("change", () => run(afterBuild));
30
32
  watcher.on("error", (error) => {
31
33
  console.error("cms0: watcher error", error);
@@ -16,8 +16,6 @@ exports.readCms0CanvasTransportCollectionItemId = readCms0CanvasTransportCollect
16
16
  exports.restoreCms0CanvasTransportMetadata = restoreCms0CanvasTransportMetadata;
17
17
  exports.readCms0LiveRoots = readCms0LiveRoots;
18
18
  exports.captureCms0Provenance = captureCms0Provenance;
19
- const schema_descriptors_js_1 = require("./schema-descriptors.cjs");
20
- (0, schema_descriptors_js_1.syncActiveSchemaDescriptorGlobals)();
21
19
  const CAPTURE_STACK = [];
22
20
  const ARRAY_METHOD_NAMES = new Set(Object.getOwnPropertyNames(Array.prototype));
23
21
  const TRACK_IGNORED_OBJECT_KEYS = new Set([
@@ -2,16 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.schemaDescriptor = void 0;
4
4
  exports.readLocalSchemaDescriptor = readLocalSchemaDescriptor;
5
+ exports.invalidateBrowserSchemaDescriptorCache = invalidateBrowserSchemaDescriptorCache;
6
+ exports.ensureBrowserSchemaDescriptorDevSubscription = ensureBrowserSchemaDescriptorDevSubscription;
7
+ exports.resolveBrowserSchemaDescriptor = resolveBrowserSchemaDescriptor;
5
8
  exports.getActiveSchemaDescriptor = getActiveSchemaDescriptor;
6
9
  exports.syncActiveSchemaDescriptorGlobals = syncActiveSchemaDescriptorGlobals;
7
10
  const schema_descriptor_1 = require("@cms0/cms0/generated/schema-descriptor");
11
+ const descriptor_sidecar_js_1 = require("./descriptor-sidecar.cjs");
8
12
  const LOCAL_DESCRIPTOR_RELATIVE_SEGMENTS = [
9
13
  ".cms0",
10
14
  "generated",
11
15
  "schema-descriptor.json",
12
16
  ];
13
17
  let cachedLocalDescriptor = null;
18
+ const browserDescriptorPromiseCache = new Map();
19
+ const browserDescriptorSubscriptionCache = new Map();
14
20
  exports.schemaDescriptor = schema_descriptor_1.schemaDescriptor;
21
+ function setSchemaDescriptorGlobals(descriptor) {
22
+ const globals = globalThis;
23
+ globals.__CMS0_SCHEMA_DESCRIPTOR__ = descriptor;
24
+ globals.__CMS0_CANVAS_SCHEMA_DESCRIPTOR__ = descriptor;
25
+ return descriptor;
26
+ }
27
+ function createMissingBrowserDescriptorError() {
28
+ return new Error("cms0: no browser schema descriptor is active. Start the cms0 sidecar so the browser can load the descriptor generated from .cms0. Bundled package descriptors are not used at runtime.");
29
+ }
30
+ function createMissingLocalDescriptorError() {
31
+ return new Error("cms0: no local schema descriptor was found. Expected .cms0/generated/schema-descriptor.json near the current project root. Run cms0 dev or cms0 build before calling cms0().");
32
+ }
15
33
  function getBuiltinModule(specifier) {
16
34
  const runtimeProcess = globalThis.process;
17
35
  if (typeof runtimeProcess?.getBuiltinModule === "function") {
@@ -178,21 +196,122 @@ function readGlobalSchemaDescriptor() {
178
196
  const activeDescriptor = globals.__CMS0_CANVAS_SCHEMA_DESCRIPTOR__ ?? globals.__CMS0_SCHEMA_DESCRIPTOR__;
179
197
  return isFullDescriptor(activeDescriptor) ? activeDescriptor : null;
180
198
  }
199
+ function isBundledFallbackDescriptor(descriptor) {
200
+ return (isRecord(descriptor.metadata) &&
201
+ descriptor.metadata.__cms0Fallback === true);
202
+ }
203
+ function readBundledBrowserDescriptor() {
204
+ const descriptor = schema_descriptor_1.schemaDescriptor;
205
+ return isBundledFallbackDescriptor(descriptor) ? null : descriptor;
206
+ }
207
+ function createBrowserDescriptorFetchError(sidecarUrl, reason) {
208
+ const details = reason ? ` ${reason}` : "";
209
+ return new Error(`cms0: failed to load the browser schema descriptor from ${sidecarUrl}.${details} Start the cms0 sidecar before calling cms0() in the browser.`);
210
+ }
211
+ function clearBrowserSchemaDescriptorGlobals() {
212
+ const globals = globalThis;
213
+ delete globals.__CMS0_SCHEMA_DESCRIPTOR__;
214
+ delete globals.__CMS0_CANVAS_SCHEMA_DESCRIPTOR__;
215
+ }
216
+ function invalidateBrowserSchemaDescriptorCache(baseUrl, apiKey) {
217
+ clearBrowserSchemaDescriptorGlobals();
218
+ browserDescriptorPromiseCache.delete((0, descriptor_sidecar_js_1.getCms0DescriptorSidecarUrl)(baseUrl, apiKey));
219
+ }
220
+ function ensureBrowserSchemaDescriptorDevSubscription(baseUrl, apiKey, onInvalidate) {
221
+ if (typeof window === "undefined")
222
+ return;
223
+ if (readBundledBrowserDescriptor())
224
+ return;
225
+ if (typeof globalThis.EventSource !== "function")
226
+ return;
227
+ const eventsUrl = (0, descriptor_sidecar_js_1.getCms0DescriptorSidecarEventsUrl)(baseUrl, apiKey);
228
+ let subscription = browserDescriptorSubscriptionCache.get(eventsUrl);
229
+ if (!subscription) {
230
+ const listeners = new Set();
231
+ const source = new globalThis.EventSource(eventsUrl);
232
+ const handleSchemaVersion = () => {
233
+ invalidateBrowserSchemaDescriptorCache(baseUrl, apiKey);
234
+ for (const listener of listeners) {
235
+ listener();
236
+ }
237
+ };
238
+ const handleError = () => {
239
+ const activeSubscription = browserDescriptorSubscriptionCache.get(eventsUrl);
240
+ if (activeSubscription?.source === source) {
241
+ browserDescriptorSubscriptionCache.delete(eventsUrl);
242
+ }
243
+ source.close();
244
+ };
245
+ source.addEventListener("schema-version", handleSchemaVersion);
246
+ source.onerror = handleError;
247
+ subscription = {
248
+ listeners,
249
+ source,
250
+ };
251
+ browserDescriptorSubscriptionCache.set(eventsUrl, subscription);
252
+ }
253
+ if (onInvalidate) {
254
+ subscription.listeners.add(onInvalidate);
255
+ }
256
+ }
257
+ async function resolveBrowserSchemaDescriptor(baseUrl, apiKey) {
258
+ const injectedDescriptor = readGlobalSchemaDescriptor();
259
+ if (injectedDescriptor) {
260
+ return setSchemaDescriptorGlobals(injectedDescriptor);
261
+ }
262
+ const bundledDescriptor = readBundledBrowserDescriptor();
263
+ if (bundledDescriptor) {
264
+ return setSchemaDescriptorGlobals(bundledDescriptor);
265
+ }
266
+ const sidecarUrl = (0, descriptor_sidecar_js_1.getCms0DescriptorSidecarUrl)(baseUrl, apiKey);
267
+ const cachedPromise = browserDescriptorPromiseCache.get(sidecarUrl);
268
+ if (cachedPromise) {
269
+ return cachedPromise;
270
+ }
271
+ const descriptorPromise = (async () => {
272
+ try {
273
+ const response = await fetch(sidecarUrl, {
274
+ headers: {
275
+ accept: "application/json",
276
+ },
277
+ });
278
+ if (!response.ok) {
279
+ throw createBrowserDescriptorFetchError(sidecarUrl, `HTTP ${response.status}`);
280
+ }
281
+ const parsed = await response.json();
282
+ if (!isFullDescriptor(parsed)) {
283
+ throw createBrowserDescriptorFetchError(sidecarUrl, "Received an invalid descriptor payload.");
284
+ }
285
+ return setSchemaDescriptorGlobals(parsed);
286
+ }
287
+ catch (error) {
288
+ browserDescriptorPromiseCache.delete(sidecarUrl);
289
+ if (error instanceof Error) {
290
+ throw createBrowserDescriptorFetchError(sidecarUrl, error.message);
291
+ }
292
+ throw createBrowserDescriptorFetchError(sidecarUrl);
293
+ }
294
+ })();
295
+ browserDescriptorPromiseCache.set(sidecarUrl, descriptorPromise);
296
+ return descriptorPromise;
297
+ }
181
298
  function getActiveSchemaDescriptor() {
182
299
  if (typeof window !== "undefined") {
183
- return (readGlobalSchemaDescriptor() ??
184
- schema_descriptor_1.schemaDescriptor);
300
+ const injectedDescriptor = readGlobalSchemaDescriptor();
301
+ if (!injectedDescriptor) {
302
+ throw createMissingBrowserDescriptorError();
303
+ }
304
+ return setSchemaDescriptorGlobals(injectedDescriptor);
185
305
  }
186
- return resolveActiveSchemaDescriptor();
306
+ return setSchemaDescriptorGlobals(resolveActiveSchemaDescriptor());
187
307
  }
188
308
  function resolveActiveSchemaDescriptor() {
189
- return (readLocalSchemaDescriptor() ??
190
- schema_descriptor_1.schemaDescriptor);
309
+ const localDescriptor = readLocalSchemaDescriptor();
310
+ if (!localDescriptor) {
311
+ throw createMissingLocalDescriptorError();
312
+ }
313
+ return localDescriptor;
191
314
  }
192
315
  function syncActiveSchemaDescriptorGlobals() {
193
- const activeDescriptor = resolveActiveSchemaDescriptor();
194
- const globals = globalThis;
195
- globals.__CMS0_SCHEMA_DESCRIPTOR__ = activeDescriptor;
196
- globals.__CMS0_CANVAS_SCHEMA_DESCRIPTOR__ = activeDescriptor;
197
- return activeDescriptor;
316
+ return setSchemaDescriptorGlobals(getActiveSchemaDescriptor());
198
317
  }
@@ -0,0 +1,20 @@
1
+ function hashCms0SidecarSeed(seed) {
2
+ let hash = 5381;
3
+ for (let index = 0; index < seed.length; index += 1) {
4
+ hash = ((hash << 5) + hash + seed.charCodeAt(index)) >>> 0;
5
+ }
6
+ return hash >>> 0;
7
+ }
8
+ function getCms0DescriptorSidecarPort(baseUrl, apiKey) {
9
+ const seed = `${baseUrl?.trim() ?? ""}|${apiKey?.trim() ?? ""}`;
10
+ return 43129 + (hashCms0SidecarSeed(seed) % 1000);
11
+ }
12
+ function getCms0DescriptorSidecarUrl(baseUrl, apiKey) {
13
+ const port = getCms0DescriptorSidecarPort(baseUrl, apiKey);
14
+ return `http://127.0.0.1:${port}/schema-descriptor`;
15
+ }
16
+ function getCms0DescriptorSidecarEventsUrl(baseUrl, apiKey) {
17
+ const port = getCms0DescriptorSidecarPort(baseUrl, apiKey);
18
+ return `http://127.0.0.1:${port}/schema-events`;
19
+ }
20
+ export { getCms0DescriptorSidecarPort, getCms0DescriptorSidecarUrl, getCms0DescriptorSidecarEventsUrl, hashCms0SidecarSeed, };
@@ -2,4 +2,7 @@
2
2
  export const schemaDescriptor = {
3
3
  models: {},
4
4
  roots: {},
5
+ metadata: {
6
+ __cms0Fallback: true,
7
+ },
5
8
  };
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { attachCms0ProvenanceRoot, enableCms0ProvenanceTracking, isCms0CanvasTransportEnabled, registerCms0CollectionItemIdentity, } from "@cms0/cms0/provenance";
2
- import { getActiveSchemaDescriptor, } from "@cms0/cms0/schema-descriptors";
2
+ import { ensureBrowserSchemaDescriptorDevSubscription, getActiveSchemaDescriptor, invalidateBrowserSchemaDescriptorCache, resolveBrowserSchemaDescriptor, } from "@cms0/cms0/schema-descriptors";
3
3
  import { buildZodSchemasFromDescriptor, decodeTaggedUnionValue, getUnionBranchKeys, } from "@cms0/shared";
4
4
  import { getCustomInlineTypeMetadata } from "./custom-types/registry.js";
5
5
  const DEFAULT_MODEL_NORMALIZATION_CONCURRENCY = 8;
@@ -1386,7 +1386,85 @@ export function createCmsClient(descriptor, config) {
1386
1386
  return rootProxy;
1387
1387
  }
1388
1388
  export function cms0(config) {
1389
+ if (typeof window !== "undefined") {
1390
+ return createLazyBrowserCmsClient(config);
1391
+ }
1389
1392
  return createCmsClient(getActiveSchemaDescriptor(), config);
1390
1393
  }
1394
+ function createLazyBrowserCmsClient(config) {
1395
+ let clientPromise = null;
1396
+ const invalidateClientCache = () => {
1397
+ clientPromise = null;
1398
+ invalidateBrowserSchemaDescriptorCache(config.apiConfig?.baseUrl, config.apiConfig?.key);
1399
+ };
1400
+ const handleDescriptorInvalidation = () => {
1401
+ clientPromise = null;
1402
+ };
1403
+ const resolveClient = async () => {
1404
+ ensureBrowserSchemaDescriptorDevSubscription(config.apiConfig?.baseUrl, config.apiConfig?.key, handleDescriptorInvalidation);
1405
+ if (!clientPromise) {
1406
+ clientPromise = resolveBrowserSchemaDescriptor(config.apiConfig?.baseUrl, config.apiConfig?.key).then((descriptor) => createCmsClient(descriptor, config));
1407
+ }
1408
+ return clientPromise;
1409
+ };
1410
+ const runBrowserAccessor = async (resolver) => {
1411
+ try {
1412
+ const client = await resolveClient();
1413
+ return await resolver(client);
1414
+ }
1415
+ catch (error) {
1416
+ if (error instanceof Error &&
1417
+ error.message.includes("Unknown schema key '")) {
1418
+ invalidateClientCache();
1419
+ const client = await resolveClient();
1420
+ return resolver(client);
1421
+ }
1422
+ throw error;
1423
+ }
1424
+ };
1425
+ const buildModelAccessor = (property) => {
1426
+ const accessor = (async (options) => {
1427
+ return runBrowserAccessor((client) => client.models[property](options));
1428
+ });
1429
+ accessor.byId = async (id, options) => {
1430
+ return runBrowserAccessor((client) => client.models[property].byId(id, options));
1431
+ };
1432
+ return accessor;
1433
+ };
1434
+ const modelsProxy = new Proxy({}, {
1435
+ get(_target, property) {
1436
+ if (typeof property !== "string")
1437
+ return undefined;
1438
+ if (property === "then")
1439
+ return undefined;
1440
+ return buildModelAccessor(property);
1441
+ },
1442
+ });
1443
+ const clientMeta = {
1444
+ locales: config.locales ?? [],
1445
+ defaultLocale: config.defaultLocale,
1446
+ includeIdDefault: !!config.includeId,
1447
+ };
1448
+ const rootProxyTarget = {
1449
+ models: modelsProxy,
1450
+ meta: clientMeta,
1451
+ };
1452
+ const rootProxy = new Proxy(rootProxyTarget, {
1453
+ get(target, property, receiver) {
1454
+ if (typeof property !== "string") {
1455
+ return Reflect.get(target, property, receiver);
1456
+ }
1457
+ if (property === "then")
1458
+ return undefined;
1459
+ if (Reflect.has(target, property)) {
1460
+ return Reflect.get(target, property, receiver);
1461
+ }
1462
+ return async (options) => {
1463
+ return runBrowserAccessor((client) => client[property](options));
1464
+ };
1465
+ },
1466
+ });
1467
+ return rootProxy;
1468
+ }
1391
1469
  export { activateCms0CanvasTransport, attachCms0ProvenanceRoot, captureCms0Provenance, dehydrateCms0CanvasTransportValue, dehydrateCms0CanvasVisibleValue, enableCms0ProvenanceTracking, readCms0CanvasTransportCollectionItemId, readCms0CollectionItemIdentity, registerCms0LiveRoot, registerCms0CollectionItemIdentity, readCms0LiveRoots, readCms0ProvenanceValueMeta, restoreCms0CanvasTransportMetadata, unwrapCms0CanvasTransportValue, } from "./provenance.js";
1392
1470
  export { resolveLocalized, toNextMetadata, toOpenGraph, toTwitter, } from "./seo.js";
@@ -0,0 +1,81 @@
1
+ import http from "node:http";
2
+ import { getCms0DescriptorSidecarPort } from "../../descriptor-sidecar.js";
3
+ function writeSchemaVersionEvent(response, version) {
4
+ response.write(`event: schema-version\ndata: ${JSON.stringify({ version })}\n\n`);
5
+ }
6
+ function startBrowserDescriptorSidecar(resolved, initialDescriptor) {
7
+ const port = getCms0DescriptorSidecarPort(resolved.apiBaseUrl, resolved.apiKey);
8
+ let currentDescriptor = initialDescriptor;
9
+ let currentVersion = 1;
10
+ const eventClients = new Set();
11
+ const server = http.createServer((request, response) => {
12
+ const requestUrl = new URL(request.url ?? "/", `http://127.0.0.1:${port}`);
13
+ response.setHeader("Access-Control-Allow-Origin", "*");
14
+ response.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
15
+ response.setHeader("Access-Control-Allow-Headers", "Content-Type");
16
+ if (request.method === "OPTIONS") {
17
+ response.writeHead(204);
18
+ response.end();
19
+ return;
20
+ }
21
+ if (request.method === "GET" && requestUrl.pathname === "/schema-events") {
22
+ response.writeHead(200, {
23
+ "content-type": "text/event-stream; charset=utf-8",
24
+ "cache-control": "no-store",
25
+ connection: "keep-alive",
26
+ });
27
+ response.write(": cms0 browser schema sidecar\n\n");
28
+ eventClients.add(response);
29
+ request.on("close", () => {
30
+ eventClients.delete(response);
31
+ });
32
+ return;
33
+ }
34
+ if (request.method !== "GET" || requestUrl.pathname !== "/schema-descriptor") {
35
+ response.writeHead(404, { "content-type": "application/json; charset=utf-8" });
36
+ response.end(JSON.stringify({ error: "Not found" }));
37
+ return;
38
+ }
39
+ response.writeHead(200, {
40
+ "content-type": "application/json; charset=utf-8",
41
+ "cache-control": "no-store",
42
+ });
43
+ response.end(JSON.stringify(currentDescriptor));
44
+ });
45
+ return new Promise((resolve, reject) => {
46
+ server.once("error", reject);
47
+ server.listen(port, "127.0.0.1", () => {
48
+ server.off("error", reject);
49
+ console.log(`cms0: browser descriptor sidecar listening on http://127.0.0.1:${port}/schema-descriptor`);
50
+ resolve({
51
+ updateDescriptor(descriptor) {
52
+ currentDescriptor = descriptor;
53
+ currentVersion += 1;
54
+ for (const client of [...eventClients]) {
55
+ if (client.destroyed || client.writableEnded) {
56
+ eventClients.delete(client);
57
+ continue;
58
+ }
59
+ writeSchemaVersionEvent(client, currentVersion);
60
+ }
61
+ },
62
+ close() {
63
+ return new Promise((closeResolve, closeReject) => {
64
+ for (const client of eventClients) {
65
+ client.end();
66
+ }
67
+ eventClients.clear();
68
+ server.close((error) => {
69
+ if (error) {
70
+ closeReject(error);
71
+ return;
72
+ }
73
+ closeResolve();
74
+ });
75
+ });
76
+ },
77
+ });
78
+ });
79
+ });
80
+ }
81
+ export { startBrowserDescriptorSidecar };
@@ -2,9 +2,9 @@
2
2
  import { buildDescriptorAlt as buildDescriptor } from "./descriptor-builder-alt.js";
3
3
  import { publishDescriptor } from "./publisher.js";
4
4
  import { writeDescriptorFiles } from "./descriptor-writer.js";
5
- function buildOnce(resolved) {
5
+ function buildOnce(resolved, browserTarget = "sidecar") {
6
6
  const descriptor = buildDescriptor(resolved);
7
- writeDescriptorFiles(resolved, descriptor);
7
+ writeDescriptorFiles(resolved, descriptor, browserTarget);
8
8
  publishDescriptor(resolved, descriptor);
9
9
  return descriptor;
10
10
  }
@@ -1,6 +1,7 @@
1
1
  // CLI entry point: parse arguments, load config, and trigger build/watch modes.
2
2
  import { pathToFileURL } from "url";
3
3
  import { buildOnce } from "./build.js";
4
+ import { startBrowserDescriptorSidecar } from "./browser-sidecar.js";
4
5
  import { loadUserConfig, resolvePaths } from "./config-loader.js";
5
6
  import { startWatcher } from "./watcher.js";
6
7
  async function runFromCli() {
@@ -26,14 +27,18 @@ async function runFromCli() {
26
27
  const resolved = resolvePaths(loaded.path, loaded.config);
27
28
  console.log("resolved: ", resolved);
28
29
  if (mode === "watch") {
29
- startWatcher(resolved);
30
+ const descriptor = buildOnce(resolved, "sidecar");
31
+ const sidecar = await startBrowserDescriptorSidecar(resolved, descriptor);
32
+ startWatcher(resolved, (nextDescriptor) => sidecar.updateDescriptor(nextDescriptor), "sidecar", false);
30
33
  return;
31
34
  }
32
35
  if (mode === "dev") {
33
- startWatcher(resolved);
36
+ const descriptor = buildOnce(resolved, "sidecar");
37
+ const sidecar = await startBrowserDescriptorSidecar(resolved, descriptor);
38
+ startWatcher(resolved, (nextDescriptor) => sidecar.updateDescriptor(nextDescriptor), "sidecar", false);
34
39
  return;
35
40
  }
36
- buildOnce(resolved);
41
+ buildOnce(resolved, "bundle");
37
42
  }
38
43
  // ESM/CJS-safe main check without import.meta syntax in the source so CJS builds succeed.
39
44
  const isDirectRun = (() => {
@@ -1,6 +1,13 @@
1
1
  import fs from "fs";
2
2
  import path from "path";
3
3
  import { descriptorOutputPaths, resolveLocalDescriptorOutputPaths } from "./paths.js";
4
+ const FALLBACK_DESCRIPTOR = {
5
+ models: {},
6
+ roots: {},
7
+ metadata: {
8
+ __cms0Fallback: true,
9
+ },
10
+ };
4
11
  function safeWrite(outputPath, output) {
5
12
  try {
6
13
  fs.mkdirSync(path.dirname(outputPath), { recursive: true });
@@ -15,26 +22,23 @@ function safeWrite(outputPath, output) {
15
22
  }
16
23
  }
17
24
  }
18
- function createSourceTsOutput(descriptor) {
19
- return `// Auto-generated schema descriptor\nexport const schemaDescriptor = ${JSON.stringify(descriptor, null, 2)} as const;\n`;
20
- }
21
- function createEsmOutput(descriptor) {
22
- return `// Auto-generated schema descriptor\nexport const schemaDescriptor = ${JSON.stringify(descriptor, null, 2)};\n`;
23
- }
24
25
  function createCjsOutput(descriptor) {
25
26
  return `// Auto-generated schema descriptor\nexports.schemaDescriptor = ${JSON.stringify(descriptor, null, 2)};\n`;
26
27
  }
27
28
  function createJsonOutput(descriptor) {
28
29
  return `${JSON.stringify(descriptor, null, 2)}\n`;
29
30
  }
30
- function writeDescriptorFiles(resolved, descriptor) {
31
- const localDescriptorOutputPaths = resolveLocalDescriptorOutputPaths(resolved.projectRoot);
32
- if (fs.existsSync(path.resolve(path.dirname(descriptorOutputPaths.sourceTs), ".."))) {
33
- safeWrite(descriptorOutputPaths.sourceTs, createSourceTsOutput(descriptor));
34
- }
31
+ function createEsmOutput(descriptor) {
32
+ return `// Auto-generated schema descriptor\nexport const schemaDescriptor = ${JSON.stringify(descriptor, null, 2)};\n`;
33
+ }
34
+ function writeBundledDescriptorProjection(descriptor) {
35
35
  safeWrite(descriptorOutputPaths.esmJs, createEsmOutput(descriptor));
36
36
  safeWrite(descriptorOutputPaths.cjsJs, createCjsOutput(descriptor));
37
+ }
38
+ function writeDescriptorFiles(resolved, descriptor, browserTarget = "sidecar") {
39
+ const localDescriptorOutputPaths = resolveLocalDescriptorOutputPaths(resolved.projectRoot);
37
40
  safeWrite(localDescriptorOutputPaths.json, createJsonOutput(descriptor));
38
41
  safeWrite(localDescriptorOutputPaths.cjsJs, createCjsOutput(descriptor));
42
+ writeBundledDescriptorProjection(browserTarget === "bundle" ? descriptor : FALLBACK_DESCRIPTOR);
39
43
  }
40
- export { writeDescriptorFiles };
44
+ export { FALLBACK_DESCRIPTOR, writeDescriptorFiles };
@@ -1,13 +1,13 @@
1
1
  // File watcher that rebuilds descriptors on entry changes.
2
2
  import chokidar from "chokidar";
3
3
  import { buildOnce } from "./build.js";
4
- function startWatcher(resolved, afterBuild) {
4
+ function startWatcher(resolved, afterBuild, browserTarget = "sidecar", runInitialBuild = true) {
5
5
  const watcher = chokidar.watch([resolved.entryFile], {
6
6
  ignoreInitial: false,
7
7
  });
8
8
  const run = (after) => {
9
9
  try {
10
- const descriptor = buildOnce(resolved);
10
+ const descriptor = buildOnce(resolved, browserTarget);
11
11
  if (after) {
12
12
  Promise.resolve(after(descriptor)).catch((err) => {
13
13
  console.error("cms0: post-build hook failed", err);
@@ -19,7 +19,9 @@ function startWatcher(resolved, afterBuild) {
19
19
  }
20
20
  };
21
21
  // Trigger a build on startup and whenever the entry file changes.
22
- watcher.on("ready", () => run(afterBuild));
22
+ if (runInitialBuild) {
23
+ watcher.on("ready", () => run(afterBuild));
24
+ }
23
25
  watcher.on("change", () => run(afterBuild));
24
26
  watcher.on("error", (error) => {
25
27
  console.error("cms0: watcher error", error);
@@ -1,5 +1,3 @@
1
- import { syncActiveSchemaDescriptorGlobals } from "./schema-descriptors.js";
2
- syncActiveSchemaDescriptorGlobals();
3
1
  const CAPTURE_STACK = [];
4
2
  const ARRAY_METHOD_NAMES = new Set(Object.getOwnPropertyNames(Array.prototype));
5
3
  const TRACK_IGNORED_OBJECT_KEYS = new Set([
@@ -1,11 +1,26 @@
1
1
  import { schemaDescriptor as bundledSchemaDescriptor } from "@cms0/cms0/generated/schema-descriptor";
2
+ import { getCms0DescriptorSidecarEventsUrl, getCms0DescriptorSidecarUrl, } from "./descriptor-sidecar.js";
2
3
  const LOCAL_DESCRIPTOR_RELATIVE_SEGMENTS = [
3
4
  ".cms0",
4
5
  "generated",
5
6
  "schema-descriptor.json",
6
7
  ];
7
8
  let cachedLocalDescriptor = null;
9
+ const browserDescriptorPromiseCache = new Map();
10
+ const browserDescriptorSubscriptionCache = new Map();
8
11
  export const schemaDescriptor = bundledSchemaDescriptor;
12
+ function setSchemaDescriptorGlobals(descriptor) {
13
+ const globals = globalThis;
14
+ globals.__CMS0_SCHEMA_DESCRIPTOR__ = descriptor;
15
+ globals.__CMS0_CANVAS_SCHEMA_DESCRIPTOR__ = descriptor;
16
+ return descriptor;
17
+ }
18
+ function createMissingBrowserDescriptorError() {
19
+ return new Error("cms0: no browser schema descriptor is active. Start the cms0 sidecar so the browser can load the descriptor generated from .cms0. Bundled package descriptors are not used at runtime.");
20
+ }
21
+ function createMissingLocalDescriptorError() {
22
+ return new Error("cms0: no local schema descriptor was found. Expected .cms0/generated/schema-descriptor.json near the current project root. Run cms0 dev or cms0 build before calling cms0().");
23
+ }
9
24
  function getBuiltinModule(specifier) {
10
25
  const runtimeProcess = globalThis.process;
11
26
  if (typeof runtimeProcess?.getBuiltinModule === "function") {
@@ -172,21 +187,122 @@ function readGlobalSchemaDescriptor() {
172
187
  const activeDescriptor = globals.__CMS0_CANVAS_SCHEMA_DESCRIPTOR__ ?? globals.__CMS0_SCHEMA_DESCRIPTOR__;
173
188
  return isFullDescriptor(activeDescriptor) ? activeDescriptor : null;
174
189
  }
190
+ function isBundledFallbackDescriptor(descriptor) {
191
+ return (isRecord(descriptor.metadata) &&
192
+ descriptor.metadata.__cms0Fallback === true);
193
+ }
194
+ function readBundledBrowserDescriptor() {
195
+ const descriptor = bundledSchemaDescriptor;
196
+ return isBundledFallbackDescriptor(descriptor) ? null : descriptor;
197
+ }
198
+ function createBrowserDescriptorFetchError(sidecarUrl, reason) {
199
+ const details = reason ? ` ${reason}` : "";
200
+ return new Error(`cms0: failed to load the browser schema descriptor from ${sidecarUrl}.${details} Start the cms0 sidecar before calling cms0() in the browser.`);
201
+ }
202
+ function clearBrowserSchemaDescriptorGlobals() {
203
+ const globals = globalThis;
204
+ delete globals.__CMS0_SCHEMA_DESCRIPTOR__;
205
+ delete globals.__CMS0_CANVAS_SCHEMA_DESCRIPTOR__;
206
+ }
207
+ export function invalidateBrowserSchemaDescriptorCache(baseUrl, apiKey) {
208
+ clearBrowserSchemaDescriptorGlobals();
209
+ browserDescriptorPromiseCache.delete(getCms0DescriptorSidecarUrl(baseUrl, apiKey));
210
+ }
211
+ export function ensureBrowserSchemaDescriptorDevSubscription(baseUrl, apiKey, onInvalidate) {
212
+ if (typeof window === "undefined")
213
+ return;
214
+ if (readBundledBrowserDescriptor())
215
+ return;
216
+ if (typeof globalThis.EventSource !== "function")
217
+ return;
218
+ const eventsUrl = getCms0DescriptorSidecarEventsUrl(baseUrl, apiKey);
219
+ let subscription = browserDescriptorSubscriptionCache.get(eventsUrl);
220
+ if (!subscription) {
221
+ const listeners = new Set();
222
+ const source = new globalThis.EventSource(eventsUrl);
223
+ const handleSchemaVersion = () => {
224
+ invalidateBrowserSchemaDescriptorCache(baseUrl, apiKey);
225
+ for (const listener of listeners) {
226
+ listener();
227
+ }
228
+ };
229
+ const handleError = () => {
230
+ const activeSubscription = browserDescriptorSubscriptionCache.get(eventsUrl);
231
+ if (activeSubscription?.source === source) {
232
+ browserDescriptorSubscriptionCache.delete(eventsUrl);
233
+ }
234
+ source.close();
235
+ };
236
+ source.addEventListener("schema-version", handleSchemaVersion);
237
+ source.onerror = handleError;
238
+ subscription = {
239
+ listeners,
240
+ source,
241
+ };
242
+ browserDescriptorSubscriptionCache.set(eventsUrl, subscription);
243
+ }
244
+ if (onInvalidate) {
245
+ subscription.listeners.add(onInvalidate);
246
+ }
247
+ }
248
+ export async function resolveBrowserSchemaDescriptor(baseUrl, apiKey) {
249
+ const injectedDescriptor = readGlobalSchemaDescriptor();
250
+ if (injectedDescriptor) {
251
+ return setSchemaDescriptorGlobals(injectedDescriptor);
252
+ }
253
+ const bundledDescriptor = readBundledBrowserDescriptor();
254
+ if (bundledDescriptor) {
255
+ return setSchemaDescriptorGlobals(bundledDescriptor);
256
+ }
257
+ const sidecarUrl = getCms0DescriptorSidecarUrl(baseUrl, apiKey);
258
+ const cachedPromise = browserDescriptorPromiseCache.get(sidecarUrl);
259
+ if (cachedPromise) {
260
+ return cachedPromise;
261
+ }
262
+ const descriptorPromise = (async () => {
263
+ try {
264
+ const response = await fetch(sidecarUrl, {
265
+ headers: {
266
+ accept: "application/json",
267
+ },
268
+ });
269
+ if (!response.ok) {
270
+ throw createBrowserDescriptorFetchError(sidecarUrl, `HTTP ${response.status}`);
271
+ }
272
+ const parsed = await response.json();
273
+ if (!isFullDescriptor(parsed)) {
274
+ throw createBrowserDescriptorFetchError(sidecarUrl, "Received an invalid descriptor payload.");
275
+ }
276
+ return setSchemaDescriptorGlobals(parsed);
277
+ }
278
+ catch (error) {
279
+ browserDescriptorPromiseCache.delete(sidecarUrl);
280
+ if (error instanceof Error) {
281
+ throw createBrowserDescriptorFetchError(sidecarUrl, error.message);
282
+ }
283
+ throw createBrowserDescriptorFetchError(sidecarUrl);
284
+ }
285
+ })();
286
+ browserDescriptorPromiseCache.set(sidecarUrl, descriptorPromise);
287
+ return descriptorPromise;
288
+ }
175
289
  export function getActiveSchemaDescriptor() {
176
290
  if (typeof window !== "undefined") {
177
- return (readGlobalSchemaDescriptor() ??
178
- bundledSchemaDescriptor);
291
+ const injectedDescriptor = readGlobalSchemaDescriptor();
292
+ if (!injectedDescriptor) {
293
+ throw createMissingBrowserDescriptorError();
294
+ }
295
+ return setSchemaDescriptorGlobals(injectedDescriptor);
179
296
  }
180
- return resolveActiveSchemaDescriptor();
297
+ return setSchemaDescriptorGlobals(resolveActiveSchemaDescriptor());
181
298
  }
182
299
  function resolveActiveSchemaDescriptor() {
183
- return (readLocalSchemaDescriptor() ??
184
- bundledSchemaDescriptor);
300
+ const localDescriptor = readLocalSchemaDescriptor();
301
+ if (!localDescriptor) {
302
+ throw createMissingLocalDescriptorError();
303
+ }
304
+ return localDescriptor;
185
305
  }
186
306
  export function syncActiveSchemaDescriptorGlobals() {
187
- const activeDescriptor = resolveActiveSchemaDescriptor();
188
- const globals = globalThis;
189
- globals.__CMS0_SCHEMA_DESCRIPTOR__ = activeDescriptor;
190
- globals.__CMS0_CANVAS_SCHEMA_DESCRIPTOR__ = activeDescriptor;
191
- return activeDescriptor;
307
+ return setSchemaDescriptorGlobals(getActiveSchemaDescriptor());
192
308
  }
@@ -0,0 +1,6 @@
1
+ declare function hashCms0SidecarSeed(seed: string): number;
2
+ declare function getCms0DescriptorSidecarPort(baseUrl?: string, apiKey?: string): number;
3
+ declare function getCms0DescriptorSidecarUrl(baseUrl?: string, apiKey?: string): string;
4
+ declare function getCms0DescriptorSidecarEventsUrl(baseUrl?: string, apiKey?: string): string;
5
+ export { getCms0DescriptorSidecarPort, getCms0DescriptorSidecarUrl, getCms0DescriptorSidecarEventsUrl, hashCms0SidecarSeed, };
6
+ //# sourceMappingURL=descriptor-sidecar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptor-sidecar.d.ts","sourceRoot":"","sources":["../../src/descriptor-sidecar.ts"],"names":[],"mappings":"AAAA,iBAAS,mBAAmB,CAAC,IAAI,EAAE,MAAM,UAMxC;AAED,iBAAS,4BAA4B,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAGtE;AAED,iBAAS,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAGrE;AAED,iBAAS,iCAAiC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAG3E;AAED,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,iCAAiC,EACjC,mBAAmB,GACpB,CAAC"}
@@ -1,5 +1,8 @@
1
1
  export declare const schemaDescriptor: {
2
2
  readonly models: {};
3
3
  readonly roots: {};
4
+ readonly metadata: {
5
+ readonly __cms0Fallback: true;
6
+ };
4
7
  };
5
8
  //# sourceMappingURL=schema-descriptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-descriptor.d.ts","sourceRoot":"","sources":["../../../src/generated/schema-descriptor.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC"}
1
+ {"version":3,"file":"schema-descriptor.d.ts","sourceRoot":"","sources":["../../../src/generated/schema-descriptor.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { FullDescriptor } from "@cms0/shared";
2
+ import type { ResolvedConfig } from "./types.js";
3
+ type DescriptorSidecarHandle = {
4
+ updateDescriptor(descriptor: FullDescriptor): void;
5
+ close(): Promise<void>;
6
+ };
7
+ declare function startBrowserDescriptorSidecar(resolved: ResolvedConfig, initialDescriptor: FullDescriptor): Promise<DescriptorSidecarHandle>;
8
+ export { startBrowserDescriptorSidecar };
9
+ //# sourceMappingURL=browser-sidecar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-sidecar.d.ts","sourceRoot":"","sources":["../../../../src/libs/cli/browser-sidecar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,KAAK,uBAAuB,GAAG;IAC7B,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAWF,iBAAS,6BAA6B,CACpC,QAAQ,EAAE,cAAc,EACxB,iBAAiB,EAAE,cAAc,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAuFlC;AAED,OAAO,EAAE,6BAA6B,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { ResolvedConfig } from "./types.js";
2
2
  import { FullDescriptor } from "@cms0/shared";
3
- declare function buildOnce(resolved: ResolvedConfig): FullDescriptor;
3
+ type BuildMode = "sidecar" | "bundle";
4
+ declare function buildOnce(resolved: ResolvedConfig, browserTarget?: BuildMode): FullDescriptor;
4
5
  export { buildOnce };
5
6
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/libs/cli/build.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,iBAAS,SAAS,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,CAK3D;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../src/libs/cli/build.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,KAAK,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtC,iBAAS,SAAS,CAChB,QAAQ,EAAE,cAAc,EACxB,aAAa,GAAE,SAAqB,GACnC,cAAc,CAKhB;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../../src/libs/cli/cli.ts"],"names":[],"mappings":"AAMA,iBAAe,UAAU,kBAkCxB;AA4BD,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../../src/libs/cli/cli.ts"],"names":[],"mappings":"AAOA,iBAAe,UAAU,kBAgDxB;AA4BD,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,5 +1,13 @@
1
1
  import { FullDescriptor } from "@cms0/shared";
2
2
  import type { ResolvedConfig } from "./types.js";
3
- declare function writeDescriptorFiles(resolved: ResolvedConfig, descriptor: FullDescriptor): void;
4
- export { writeDescriptorFiles };
3
+ type BrowserDescriptorTarget = "sidecar" | "bundle";
4
+ declare const FALLBACK_DESCRIPTOR: {
5
+ readonly models: {};
6
+ readonly roots: {};
7
+ readonly metadata: {
8
+ readonly __cms0Fallback: true;
9
+ };
10
+ };
11
+ declare function writeDescriptorFiles(resolved: ResolvedConfig, descriptor: FullDescriptor, browserTarget?: BrowserDescriptorTarget): void;
12
+ export { FALLBACK_DESCRIPTOR, writeDescriptorFiles };
5
13
  //# sourceMappingURL=descriptor-writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor-writer.d.ts","sourceRoot":"","sources":["../../../../src/libs/cli/descriptor-writer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA6CjD,iBAAS,oBAAoB,CAC3B,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,cAAc,QAa3B;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"descriptor-writer.d.ts","sourceRoot":"","sources":["../../../../src/libs/cli/descriptor-writer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,KAAK,uBAAuB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpD,QAAA,MAAM,mBAAmB;;;;;;CAMf,CAAC;AA4CX,iBAAS,oBAAoB,CAC3B,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,cAAc,EAC1B,aAAa,GAAE,uBAAmC,QAWnD;AAED,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { ResolvedConfig } from "./types.js";
2
2
  import { FullDescriptor } from "@cms0/shared";
3
- declare function startWatcher(resolved: ResolvedConfig, afterBuild?: (descriptor: FullDescriptor) => Promise<void> | void): import("chokidar").FSWatcher;
3
+ type WatcherBrowserTarget = "sidecar" | "bundle";
4
+ declare function startWatcher(resolved: ResolvedConfig, afterBuild?: (descriptor: FullDescriptor) => Promise<void> | void, browserTarget?: WatcherBrowserTarget, runInitialBuild?: boolean): import("chokidar").FSWatcher;
4
5
  export { startWatcher };
5
6
  //# sourceMappingURL=watcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../../src/libs/cli/watcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,iBAAS,YAAY,CACnB,QAAQ,EAAE,cAAc,EACxB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,gCA6BlE;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../../src/libs/cli/watcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,KAAK,oBAAoB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjD,iBAAS,YAAY,CACnB,QAAQ,EAAE,cAAc,EACxB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACjE,aAAa,GAAE,oBAAgC,EAC/C,eAAe,UAAO,gCA+BvB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/provenance.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,14 @@ import type { FullDescriptor } from "@cms0/shared";
2
2
  export declare const schemaDescriptor: {
3
3
  readonly models: {};
4
4
  readonly roots: {};
5
+ readonly metadata: {
6
+ readonly __cms0Fallback: true;
7
+ };
5
8
  };
6
9
  export declare function readLocalSchemaDescriptor(searchRoots?: string[]): FullDescriptor | null;
10
+ export declare function invalidateBrowserSchemaDescriptorCache(baseUrl?: string, apiKey?: string): void;
11
+ export declare function ensureBrowserSchemaDescriptorDevSubscription(baseUrl?: string, apiKey?: string, onInvalidate?: () => void): void;
12
+ export declare function resolveBrowserSchemaDescriptor(baseUrl?: string, apiKey?: string): Promise<FullDescriptor>;
7
13
  export declare function getActiveSchemaDescriptor(): FullDescriptor;
8
14
  export declare function syncActiveSchemaDescriptorGlobals(): FullDescriptor;
9
15
  //# sourceMappingURL=schema-descriptors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-descriptors.d.ts","sourceRoot":"","sources":["../../src/schema-descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAiCnD,eAAO,MAAM,gBAAgB;;;CAA0B,CAAC;AAwKxD,wBAAgB,yBAAyB,CACvC,WAAW,WAAuC,GACjD,cAAc,GAAG,IAAI,CAmCvB;AAaD,wBAAgB,yBAAyB,IAAI,cAAc,CAS1D;AASD,wBAAgB,iCAAiC,mBAUhD"}
1
+ {"version":3,"file":"schema-descriptors.d.ts","sourceRoot":"","sources":["../../src/schema-descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AA6CnD,eAAO,MAAM,gBAAgB;;;;;;CAA0B,CAAC;AA+LxD,wBAAgB,yBAAyB,CACvC,WAAW,WAAuC,GACjD,cAAc,GAAG,IAAI,CAmCvB;AA0CD,wBAAgB,sCAAsC,CACpD,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,QAMhB;AAED,wBAAgB,4CAA4C,CAC1D,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,IAAI,QAuC1B;AAED,wBAAsB,8BAA8B,CAClD,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC,CAiDzB;AAED,wBAAgB,yBAAyB,IAAI,cAAc,CAU1D;AAUD,wBAAgB,iCAAiC,mBAEhD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cms0/cms0",
3
- "version": "0.2.18",
3
+ "version": "0.2.20",
4
4
  "description": "",
5
5
  "publishConfig": {
6
6
  "access": "restricted"
@@ -64,7 +64,7 @@
64
64
  "ts-node": "^10.9.2",
65
65
  "typescript": "^5.9.3",
66
66
  "zod": "^4.1.12",
67
- "@cms0/shared": "0.2.18"
67
+ "@cms0/shared": "0.2.20"
68
68
  },
69
69
  "devDependencies": {
70
70
  "@types/lodash": "^4.17.21",