@githolon/runtime 0.112.7 → 0.112.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@githolon/runtime",
3
- "version": "0.112.7",
3
+ "version": "0.112.11",
4
4
  "type": "module",
5
5
  "description": "The portable Nomos application runtime, reception contracts, and Node/browser runners.",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -26,7 +26,9 @@
26
26
  "./package.json": "./package.json",
27
27
  "./runner/node-entry.mjs": "./runner/node-entry.mjs",
28
28
  "./dist/nomos-runner.html": "./dist/nomos-runner.html",
29
- "./dist/nomos-runner.js": "./dist/nomos-runner.js"
29
+ "./dist/nomos-runner.js": "./dist/nomos-runner.js",
30
+ "./dist/nomos-runner-web.js": "./dist/nomos-runner-web.js",
31
+ "./dist/nomos-runner-worker.js": "./dist/nomos-runner-worker.js"
30
32
  },
31
33
  "typesVersions": {
32
34
  "*": {
package/runner/README.md CHANGED
@@ -47,7 +47,8 @@ Build the distributable shells with:
47
47
  npm run build:runner
48
48
  ```
49
49
 
50
- This produces `dist/nomos-runner.js`, `dist/nomos-runner.html`, the Node shell,
50
+ This produces `dist/nomos-runner.js` for WebViews, `dist/nomos-runner-web.js`
51
+ and `dist/nomos-runner-worker.js` for Flutter web, `dist/nomos-runner.html`, the Node shell,
51
52
  and the Apple runtime bundle. Generated applications consume these artifacts;
52
53
  they do not implement lifecycle themselves.
53
54
 
package/runner/build.ts CHANGED
@@ -1,5 +1,5 @@
1
- // Build the Nomos client bundles: the @githolon/runtime + a per-host entry + the engine shims, esbuild'd into
2
- // ONE self-contained IIFE. The browser shell and Apple JavaScriptCore host
1
+ // Build the Nomos client bundles: the @githolon/runtime + per-host entries + the engine shims.
2
+ // Flutter web gets a page bridge and a self-contained worker; WebViews keep the page entry. The browser shell and Apple JavaScriptCore host
3
3
  // both retain the same peer-runtime implementation; they differ only in the
4
4
  // physical kernel and byte-transport ports they provide.
5
5
  // Run: `npm run build:runner`.
@@ -45,6 +45,37 @@ const browserBuild = await build({
45
45
  legalComments: "none",
46
46
  metafile: true,
47
47
  });
48
+ // Flutter web uses a small page bridge and a dedicated worker. The existing page entry
49
+ // remains the WebView host, so native packaging keeps its existing physical shell.
50
+ const browserWorkerPageBuild = await build({
51
+ entryPoints: [here("../../../platform-shells/browser/worker_page_entry.ts")],
52
+ preserveSymlinks: true,
53
+ bundle: true,
54
+ platform: "browser",
55
+ format: "iife",
56
+ target: "es2020",
57
+ outfile: here("../dist/nomos-runner-web.js"),
58
+ legalComments: "none",
59
+ metafile: true,
60
+ });
61
+ const browserWorkerBuild = await build({
62
+ entryPoints: [here("../../../platform-shells/browser/worker_entry.ts")],
63
+ preserveSymlinks: true,
64
+ bundle: true,
65
+ platform: "browser",
66
+ format: "iife",
67
+ target: "es2020",
68
+ inject: [here("./shims.js")],
69
+ define: {
70
+ global: "globalThis",
71
+ __NOMOS_BUNDLE_VERSION__: JSON.stringify(BUNDLE_VERSION),
72
+ __NOMOS_KERNEL_RELEASE__: JSON.stringify(KERNEL_RELEASE),
73
+ __NOMOS_BROWSER_KERNEL_REPOSITORY__: JSON.stringify(process.env.NOMOS_BROWSER_KERNEL_REPOSITORY ?? ""),
74
+ },
75
+ outfile: here("../dist/nomos-runner-worker.js"),
76
+ legalComments: "none",
77
+ metafile: true,
78
+ });
48
79
  copyFileSync(here("./nomos-runner.html"), here("../dist/nomos-runner.html"));
49
80
 
50
81
  // THE TYPED NATIVE RUNTIME — the shared Peer Office executed by the Apple
@@ -152,7 +183,7 @@ console.error("✓ built Remote Reception ESM + CommonJS (typed HTTP corresponde
152
183
  // dep, so the copy is the sync.)
153
184
  const FLUTTER_ASSETS = here("../../../nomos_flutter/assets");
154
185
  if (existsSync(FLUTTER_ASSETS)) {
155
- for (const f of ["nomos-runner.js", "nomos-runner.html", "nomos-native-runtime.js"]) {
186
+ for (const f of ["nomos-runner.js", "nomos-runner-web.js", "nomos-runner-worker.js", "nomos-runner.html", "nomos-native-runtime.js"]) {
156
187
  copyFileSync(here(`../dist/${f}`), join(FLUTTER_ASSETS, f));
157
188
  }
158
189
  console.error("✓ synced browser shell and shared Peer Office assets → nomos_flutter/assets");
@@ -198,6 +229,8 @@ if (existsSync(here("../../../dsl/dart"))) {
198
229
  const repositoryRoot = here("../../../");
199
230
  const sourceInputs = new Set<string>([
200
231
  ...Object.keys(browserBuild.metafile.inputs),
232
+ ...Object.keys(browserWorkerPageBuild.metafile.inputs),
233
+ ...Object.keys(browserWorkerBuild.metafile.inputs),
201
234
  ...Object.keys(nativeBuild.metafile.inputs),
202
235
  ...Object.keys(applicationBuild.metafile.inputs),
203
236
  ...Object.keys(typescriptReceptionBuild.metafile.inputs),