@fairfox/polly 0.70.0 → 0.72.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/src/client/index.js +2 -2
  2. package/dist/src/client/index.js.map +2 -2
  3. package/dist/src/mesh.js +407 -156
  4. package/dist/src/mesh.js.map +9 -8
  5. package/dist/src/peer.js +92 -5
  6. package/dist/src/peer.js.map +4 -4
  7. package/dist/src/polly-ui/ActionInput.d.ts +10 -1
  8. package/dist/src/polly-ui/ActionSelect.d.ts +35 -0
  9. package/dist/src/polly-ui/Cluster.d.ts +35 -0
  10. package/dist/src/polly-ui/Code.d.ts +17 -0
  11. package/dist/src/polly-ui/Text.d.ts +31 -0
  12. package/dist/src/polly-ui/index.css +278 -185
  13. package/dist/src/polly-ui/index.d.ts +5 -1
  14. package/dist/src/polly-ui/index.js +480 -284
  15. package/dist/src/polly-ui/index.js.map +11 -6
  16. package/dist/src/polly-ui/internal/dispatch-action.d.ts +13 -0
  17. package/dist/src/polly-ui/markdown.js +3 -3
  18. package/dist/src/polly-ui/markdown.js.map +2 -2
  19. package/dist/src/polly-ui/styles.css +288 -185
  20. package/dist/src/shared/lib/mesh-client.d.ts +29 -0
  21. package/dist/src/shared/lib/mesh-diagnostics.d.ts +31 -0
  22. package/dist/src/shared/lib/mesh-network-adapter.d.ts +91 -0
  23. package/dist/src/shared/lib/revocation-summary.d.ts +54 -0
  24. package/dist/tools/quality/src/cli.js +6 -2
  25. package/dist/tools/quality/src/cli.js.map +3 -3
  26. package/dist/tools/quality/src/index.js +6 -2
  27. package/dist/tools/quality/src/index.js.map +3 -3
  28. package/dist/tools/test/src/browser/run.js +75 -44
  29. package/dist/tools/test/src/browser/run.js.map +3 -3
  30. package/dist/tools/test/src/e2e-mesh/index.d.ts +1 -1
  31. package/dist/tools/test/src/e2e-mesh/index.js +95 -1
  32. package/dist/tools/test/src/e2e-mesh/index.js.map +4 -4
  33. package/dist/tools/test/src/e2e-mesh/launch-peer.d.ts +29 -1
  34. package/dist/tools/test/src/visual/index.js +24 -24
  35. package/dist/tools/test/src/visual/index.js.map +2 -2
  36. package/dist/tools/verify/src/cli.js +82 -51
  37. package/dist/tools/verify/src/cli.js.map +7 -6
  38. package/package.json +2 -2
@@ -72,7 +72,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
72
72
  // src/client/wrapper.ts
73
73
  import { treaty } from "@elysiajs/eden";
74
74
 
75
- // ../../node_modules/.bun/@preact+signals-core@1.14.2/node_modules/@preact/signals-core/dist/signals-core.module.js
75
+ // node_modules/.bun/@preact+signals-core@1.14.2/node_modules/@preact/signals-core/dist/signals-core.module.js
76
76
  var i = Symbol.for("preact-signals");
77
77
  function t() {
78
78
  if (!(s > 1)) {
@@ -643,4 +643,4 @@ export {
643
643
  createPollyClient
644
644
  };
645
645
 
646
- //# debugId=74C4CA57821ED6F364756E2164756E21
646
+ //# debugId=DBB93F1CDEC2CAC264756E2164756E21
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/client/wrapper.ts", "../../../node_modules/.bun/@preact+signals-core@1.14.2/node_modules/@preact/signals-core/dist/signals-core.module.js", "../src/core/clock.ts", "../src/elysia/route-match.ts"],
3
+ "sources": ["../src/client/wrapper.ts", "../node_modules/.bun/@preact+signals-core@1.14.2/node_modules/@preact/signals-core/dist/signals-core.module.js", "../src/core/clock.ts", "../src/elysia/route-match.ts"],
4
4
  "sourcesContent": [
5
5
  "// @ts-nocheck - Optional peer dependencies (elysia, @elysiajs/eden)\nimport { treaty } from \"@elysiajs/eden\";\nimport { type Signal, signal } from \"@preact/signals-core\";\nimport { createLamportClock } from \"../core/clock\";\nimport { findMatchingConfig } from \"../elysia/route-match\";\nimport type { ClientEffectConfig, PollyResponseMetadata, RoutePattern } from \"../elysia/types\";\n\n/**\n * Offline queue entry\n */\ninterface QueuedRequest {\n id: string;\n method: string;\n path: string;\n body: unknown;\n optimisticResult?: unknown;\n timestamp: number;\n}\n\n/**\n * Client-side state management\n */\ninterface ClientState {\n isOnline: Signal<boolean>;\n isSyncing: Signal<boolean>;\n queuedRequests: Signal<QueuedRequest[]>;\n}\n\n/**\n * Polly client options\n */\nexport interface PollyClientOptions {\n /**\n * Client state signals that should be synced\n */\n state?: Record<string, Signal<unknown>>;\n\n /**\n * Client-side effect handlers, keyed by the same route pattern used in the\n * server config (e.g. `'POST /todos'`). The wrapper looks up handlers here\n * after a successful request — handlers are imported, never shipped from\n * the server.\n */\n clientEffects?: Record<RoutePattern, ClientEffectConfig[\"client\"]>;\n\n /**\n * Callback when online/offline status changes\n */\n onOfflineChange?: (isOnline: boolean) => void;\n\n /**\n * Enable WebSocket for real-time updates (default: true in dev, false in prod)\n */\n websocket?: boolean;\n\n /**\n * WebSocket path (default: '/polly/ws')\n */\n websocketPath?: string;\n}\n\n/**\n * Create a Polly-enhanced Eden client\n *\n * In DEV mode:\n * - Processes server metadata for hot reloading\n * - Executes client effects from server\n * - Handles offline queueing\n * - Connects WebSocket for real-time updates\n *\n * In PROD mode:\n * - Minimal wrapper (client effects are bundled)\n * - Optional WebSocket for real-time features\n * - Offline queueing still works\n *\n * Example:\n * ```typescript\n * import { createPollyClient } from '@fairfox/polly/client';\n * import { $syncedState } from '@fairfox/polly';\n * import type { app } from './server';\n *\n * const clientState = {\n * todos: $syncedState('todos', []),\n * user: $syncedState('user', null),\n * };\n *\n * export const api = createPollyClient<typeof app>('http://localhost:3000', {\n * state: clientState,\n * websocket: true,\n * });\n * ```\n */\nexport function createPollyClient<T extends Record<string, unknown>>(\n url: string,\n options: PollyClientOptions = {}\n) {\n const isDev = process.env.NODE_ENV !== \"production\";\n const baseClient = treaty<T>(url);\n const clock = createLamportClock(\"client\");\n\n // Client state\n const clientState: ClientState = {\n isOnline: signal(typeof navigator === \"undefined\" ? true : navigator.onLine),\n isSyncing: signal(false),\n queuedRequests: signal<QueuedRequest[]>([]),\n };\n\n // WebSocket connection for real-time updates (opt-in in prod)\n let ws: WebSocket | null = null;\n const shouldUseWebSocket = options.websocket === undefined ? isDev : options.websocket;\n\n if (shouldUseWebSocket && typeof WebSocket !== \"undefined\") {\n const wsPath = options.websocketPath || \"/polly/ws\";\n const wsUrl = url.replace(/^http/, \"ws\") + wsPath;\n\n try {\n ws = new WebSocket(wsUrl);\n\n ws.addEventListener(\"open\", () => {\n console.log(\"[Polly] WebSocket connected\");\n });\n\n ws.addEventListener(\"message\", (event) => {\n const message = JSON.parse(event.data);\n\n if (message.type === \"state-sync\") {\n // Initial state sync\n // nosemgrep: javascript.lang.security.insecure-object-assign.insecure-object-assign — `message.state` is already typed wire data delivered by the polly server; the trust boundary is the WebSocket auth, not Object.assign.\n Object.assign(options.state || {}, message.state);\n } else if (message.type === \"effect\") {\n // Remote effect triggered by another client (broadcast)\n console.log(\"[Polly] Received broadcast effect:\", message);\n // In production, handle this via your bundled effects\n // In dev, the effect handler comes from metadata\n }\n });\n\n ws.addEventListener(\"error\", (error) => {\n // biome-ignore lint/suspicious/noConsole: Error logging is intentional\n console.error(\"[Polly] WebSocket error:\", error);\n });\n } catch (error) {\n // biome-ignore lint/suspicious/noConsole: Error logging is intentional\n console.error(\"[Polly] Failed to create WebSocket:\", error);\n }\n }\n\n // Online/offline listeners (browser only)\n if (typeof window !== \"undefined\") {\n window.addEventListener(\"online\", () => {\n clientState.isOnline.value = true;\n options.onOfflineChange?.(true);\n processQueue();\n });\n\n window.addEventListener(\"offline\", () => {\n clientState.isOnline.value = false;\n options.onOfflineChange?.(false);\n });\n }\n\n /**\n * Process queued requests when back online\n */\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: Queue processing requires complex branching logic\n async function processQueue() {\n if (clientState.queuedRequests.value.length === 0) return;\n\n clientState.isSyncing.value = true;\n\n const queue = [...clientState.queuedRequests.value];\n clientState.queuedRequests.value = [];\n\n for (const req of queue) {\n try {\n // Replay request\n const response = await fetch(url + req.path, {\n method: req.method,\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(req.body),\n });\n\n const result = await response.json();\n\n // In dev mode, process metadata\n if (isDev) {\n const metadataHeader = response.headers.get(\"X-Polly-Metadata\");\n if (metadataHeader) {\n const metadata: PollyResponseMetadata = JSON.parse(metadataHeader);\n\n // Handle merge if optimistic update was used\n if (req.optimisticResult && metadata.offline?.merge) {\n const mergeStrategy = metadata.offline.merge;\n\n if (mergeStrategy === \"replace\") {\n // Replace optimistic with server result (default)\n // The client effect will handle this\n } else if (typeof mergeStrategy === \"function\") {\n // TODO: call mergeStrategy(req.optimisticResult, result) and apply\n // the merged state to local signals.\n }\n }\n\n // Execute client effect — looked up locally by route, never deserialised from the wire\n if (metadata.hasClientEffect) {\n const handler = findMatchingConfig(options.clientEffects, req.method, req.path);\n if (handler) {\n handler({\n result,\n body: req.body,\n state: { client: options.state || {}, server: {} },\n params: {},\n clock: metadata.clock,\n });\n }\n }\n }\n }\n } catch (error) {\n // biome-ignore lint/suspicious/noConsole: Error logging is intentional\n console.error(\"[Polly] Failed to replay request:\", req, error);\n // Re-queue on failure\n clientState.queuedRequests.value.push(req);\n }\n }\n\n clientState.isSyncing.value = false;\n }\n\n // Return the base client with additional Polly features\n return {\n ...baseClient,\n $polly: {\n state: clientState,\n clock,\n ws,\n /**\n * Manually process queued requests\n */\n sync: processQueue,\n },\n };\n}\n",
6
6
  "var i=Symbol.for(\"preact-signals\");function t(){if(!(s>1)){var i,t=!1;!function(){var i=c;c=void 0;while(void 0!==i){if(i.S.v===i.v)i.S.i=i.i;i=i.o}}();while(void 0!==h){var n=h;h=void 0;v++;while(void 0!==n){var r=n.u;n.u=void 0;n.f&=-3;if(!(8&n.f)&&w(n))try{n.c()}catch(n){if(!t){i=n;t=!0}}n=r}}v=0;s--;if(t)throw i}else s--}function n(i){if(s>0)return i();e=++u;s++;try{return i()}finally{t()}}var r=void 0;function o(i){var t=r;r=void 0;try{return i()}finally{r=t}}var f,h=void 0,s=0,v=0,u=0,e=0,c=void 0,d=0;function a(i){if(void 0!==r){var t=i.n;if(void 0===t||t.t!==r){t={i:0,S:i,p:r.s,n:void 0,t:r,e:void 0,x:void 0,r:t};if(void 0!==r.s)r.s.n=t;r.s=t;i.n=t;if(32&r.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=r.s;t.n=void 0;r.s.n=t;r.s=t}return t}}}function l(i,t){this.v=i;this.i=0;this.n=void 0;this.t=void 0;this.l=0;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched;this.name=null==t?void 0:t.name}l.prototype.brand=i;l.prototype.h=function(){return!0};l.prototype.S=function(i){var t=this,n=this.t;if(n!==i&&void 0===i.e){i.x=n;this.t=i;if(void 0!==n)n.e=i;else o(function(){var i;null==(i=t.W)||i.call(t)})}};l.prototype.U=function(i){var t=this;if(void 0!==this.t){var n=i.e,r=i.x;if(void 0!==n){n.x=r;i.e=void 0}if(void 0!==r){r.e=n;i.x=void 0}if(i===this.t){this.t=r;if(void 0===r)o(function(){var i;null==(i=t.Z)||i.call(t)})}}};l.prototype.subscribe=function(i){var t=this;return j(function(){var n=t.value,o=r;r=void 0;try{i(n)}finally{r=o}},{name:\"sub\"})};l.prototype.valueOf=function(){return this.value};l.prototype.toString=function(){return this.value+\"\"};l.prototype.toJSON=function(){return this.value};l.prototype.peek=function(){var i=this;return o(function(){return i.value})};Object.defineProperty(l.prototype,\"value\",{get:function(){var i=a(this);if(void 0!==i)i.i=this.i;return this.v},set:function(i){if(i!==this.v){if(v>100)throw new Error(\"Cycle detected\");!function(i){if(0!==s&&0===v)if(i.l!==e){i.l=e;c={S:i,v:i.v,i:i.i,o:c}}}(this);this.v=i;this.i++;d++;s++;try{for(var n=this.t;void 0!==n;n=n.x)n.t.N()}finally{t()}}}});function y(i,t){return new l(i,t)}function w(i){for(var t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function _(i){for(var t=i.s;void 0!==t;t=t.n){var n=t.S.n;if(void 0!==n)t.r=n;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function b(i){var t=i.s,n=void 0;while(void 0!==t){var r=t.p;if(-1===t.i){t.S.U(t);if(void 0!==r)r.n=t.n;if(void 0!==t.n)t.n.p=r}else n=t;t.S.n=t.r;if(void 0!==t.r)t.r=void 0;t=r}i.s=n}function p(i,t){l.call(this,void 0);this.x=i;this.s=void 0;this.g=d-1;this.f=4;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched;this.name=null==t?void 0:t.name}p.prototype=new l;p.prototype.h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===d)return!0;this.g=d;this.f|=1;if(this.i>0&&!w(this)){this.f&=-2;return!0}var i=r;try{_(this);r=this;var t=this.x();if(16&this.f||this.v!==t||0===this.i){this.v=t;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}r=i;b(this);this.f&=-2;return!0};p.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}l.prototype.S.call(this,i)};p.prototype.U=function(i){if(void 0!==this.t){l.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}}};p.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var i=this.t;void 0!==i;i=i.x)i.t.N()}};Object.defineProperty(p.prototype,\"value\",{get:function(){if(1&this.f)throw new Error(\"Cycle detected\");var i=a(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function g(i,t){return new p(i,t)}function S(i){var n=i.m;i.m=void 0;if(\"function\"==typeof n){s++;var o=r;r=void 0;try{n()}catch(t){i.f&=-2;i.f|=8;m(i);throw t}finally{r=o;t()}}}function m(i){for(var t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;S(i)}function x(i){if(r!==this)throw new Error(\"Out-of-order effect\");b(this);r=i;this.f&=-2;if(8&this.f)m(this);t()}function E(i,t){this.x=i;this.m=void 0;this.s=void 0;this.u=void 0;this.f=32;this.name=null==t?void 0:t.name;if(f)f.push(this)}E.prototype.c=function(){var i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();if(\"function\"==typeof t)this.m=t}finally{i()}};E.prototype.S=function(){if(1&this.f)throw new Error(\"Cycle detected\");this.f|=1;this.f&=-9;S(this);_(this);s++;var i=r;r=this;return x.bind(this,i)};E.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.u=h;h=this}};E.prototype.d=function(){this.f|=8;if(!(1&this.f))m(this)};E.prototype.dispose=function(){this.d()};function j(i,t){var n=new E(i,t);try{n.c()}catch(i){n.d();throw i}var r=n.d.bind(n);r[Symbol.dispose]=r;return r}function C(i){return function(){var t=arguments,r=this;return n(function(){return o(function(){return i.apply(r,[].slice.call(t))})})}}function O(){var i=f;f=[];return function(){var t=f;if(f&&i)i=i.concat(f);f=i;return t}}var k=function(i){for(var t in i){var n=i[t];if(\"function\"==typeof n)i[t]=C(n);else if(\"object\"==typeof n&&null!==n&&!(\"brand\"in n))k(n)}};function T(i){return function(){var t,n,r=O();try{n=i.apply(void 0,[].slice.call(arguments))}catch(i){f=void 0;throw i}finally{t=r()}k(n);n[Symbol.dispose]=C(function(){if(t)for(var i=0;i<t.length;i++)t[i].dispose();t=void 0});return n}}export{p as Computed,E as Effect,l as Signal,C as action,n as batch,g as computed,T as createModel,j as effect,y as signal,o as untracked};//# sourceMappingURL=signals-core.module.js.map\n",
@@ -8,6 +8,6 @@
8
8
  "/**\n * Route pattern matcher\n * Supports:\n * - Exact match: 'POST /todos'\n * - Param match: 'GET /todos/:id'\n * - Wildcard: '/todos/*'\n */\nexport function matchRoute(pattern: string, method: string, path: string): boolean {\n const spaceIdx = pattern.indexOf(\" \");\n const patternMethod = spaceIdx === -1 ? null : pattern.slice(0, spaceIdx);\n const patternPath = spaceIdx === -1 ? pattern : pattern.slice(spaceIdx + 1);\n\n if (patternMethod && patternMethod !== method) {\n return false;\n }\n\n const patternSegments = patternPath.split(\"/\").filter(Boolean);\n const pathSegments = path.split(\"/\").filter(Boolean);\n\n if (patternSegments.length !== pathSegments.length && !patternPath.includes(\"*\")) {\n return false;\n }\n\n for (let i = 0; i < patternSegments.length; i++) {\n const patternSeg = patternSegments[i];\n const pathSeg = pathSegments[i];\n\n if (patternSeg === \"*\") return true;\n if (patternSeg?.startsWith(\":\")) continue;\n if (patternSeg !== pathSeg) return false;\n }\n\n return true;\n}\n\nexport function findMatchingConfig<T>(\n configs: Record<string, T> | undefined,\n method: string,\n path: string\n): T | undefined {\n if (!configs) return undefined;\n\n for (const [pattern, config] of Object.entries(configs)) {\n if (matchRoute(pattern, method, path)) {\n return config;\n }\n }\n\n return undefined;\n}\n"
9
9
  ],
10
10
  "mappings": "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",
11
- "debugId": "74C4CA57821ED6F364756E2164756E21",
11
+ "debugId": "DBB93F1CDEC2CAC264756E2164756E21",
12
12
  "names": []
13
13
  }