iterate 0.2.7 → 0.3.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.
- package/README.md +86 -76
- package/THIRD_PARTY_NOTICES.md +55 -0
- package/bin/iterate.js +11 -3
- package/dist/api-url-B6404M82.mjs +17 -0
- package/dist/api-url-B6404M82.mjs.map +1 -0
- package/dist/app-ref-BipL0feU.mjs +35 -0
- package/dist/app-ref-BipL0feU.mjs.map +1 -0
- package/dist/app-ref-C1CrgXqX.mjs +7 -0
- package/dist/app-ref-C1CrgXqX.mjs.map +1 -0
- package/dist/app-ref-DYai_om1.mjs +7 -0
- package/dist/app-ref-DYai_om1.mjs.map +1 -0
- package/dist/cli-D0c-pDL_.mjs +1010 -0
- package/dist/cli-D0c-pDL_.mjs.map +1 -0
- package/dist/client.d.ts +3 -0
- package/dist/client.mjs +4 -0
- package/dist/cloudflare-BTm90gQ4.mjs +951 -0
- package/dist/cloudflare-BTm90gQ4.mjs.map +1 -0
- package/dist/contract-s4FW4eES.mjs +309 -0
- package/dist/contract-s4FW4eES.mjs.map +1 -0
- package/dist/document-review/index.d.ts +5 -0
- package/dist/document-review/types.d.ts +107 -0
- package/dist/document-review.mjs +7015 -0
- package/dist/document-review.mjs.map +1 -0
- package/dist/durable-object-processor-durability-CNsTjAJS.mjs +205 -0
- package/dist/durable-object-processor-durability-CNsTjAJS.mjs.map +1 -0
- package/dist/idempotency-DleloJNt.mjs +28 -0
- package/dist/idempotency-DleloJNt.mjs.map +1 -0
- package/dist/index.mjs +1 -1
- package/dist/itx/api-url.d.ts +6 -0
- package/dist/itx/itx-node-client.d.ts +65 -0
- package/dist/itx/itx-session.d.ts +215 -0
- package/dist/itx/owned-rpc-session.d.ts +14 -0
- package/dist/itx/query-client.d.ts +10 -0
- package/dist/itx-api.generated.d.ts +6195 -0
- package/dist/itx-session-sjud8GiT.mjs +534 -0
- package/dist/itx-session-sjud8GiT.mjs.map +1 -0
- package/dist/live-state-BJNqOwFw.mjs +299 -0
- package/dist/live-state-BJNqOwFw.mjs.map +1 -0
- package/dist/next/api.d.ts +479 -0
- package/dist/next/api.mjs +0 -0
- package/dist/next/app-server.d.ts +44 -0
- package/dist/next/app-server.mjs +479 -0
- package/dist/next/app-server.mjs.map +1 -0
- package/dist/next/app-session.d.ts +49 -0
- package/dist/next/app-session.mjs +238 -0
- package/dist/next/app-session.mjs.map +1 -0
- package/dist/next/app.d.ts +29 -0
- package/dist/next/app.mjs +141 -0
- package/dist/next/app.mjs.map +1 -0
- package/dist/next/client/live-state.d.ts +63 -0
- package/dist/next/client/oauth.d.ts +12 -0
- package/dist/next/client/react.d.ts +109 -0
- package/dist/next/client/socket.d.ts +6 -0
- package/dist/next/client.mjs +156 -0
- package/dist/next/client.mjs.map +1 -0
- package/dist/next/expression.d.ts +146 -0
- package/dist/next/expression.mjs +399 -0
- package/dist/next/expression.mjs.map +1 -0
- package/dist/next/lib.d.ts +56 -0
- package/dist/next/lib.mjs +199 -0
- package/dist/next/lib.mjs.map +1 -0
- package/dist/next/oauth-scopes.d.ts +32 -0
- package/dist/next/oauth-scopes.mjs +40 -0
- package/dist/next/oauth-scopes.mjs.map +1 -0
- package/dist/next/oauth.mjs +29 -0
- package/dist/next/oauth.mjs.map +1 -0
- package/dist/next/principal.d.ts +64 -0
- package/dist/next/principal.mjs +98 -0
- package/dist/next/principal.mjs.map +1 -0
- package/dist/next/project-ingress.d.ts +37 -0
- package/dist/next/project-ingress.mjs +75 -0
- package/dist/next/project-ingress.mjs.map +1 -0
- package/dist/next/react.mjs +285 -0
- package/dist/next/react.mjs.map +1 -0
- package/dist/next/sdk/auth.d.ts +5 -0
- package/dist/next/sdk/index.d.ts +112 -0
- package/dist/next/sdk.mjs +139 -0
- package/dist/next/sdk.mjs.map +1 -0
- package/dist/next/stream/processor.d.ts +378 -0
- package/dist/next/stream/processor.mjs +582 -0
- package/dist/next/stream/processor.mjs.map +1 -0
- package/dist/next/stream/run.d.ts +58 -0
- package/dist/next/stream/run.mjs +40 -0
- package/dist/next/stream/run.mjs.map +1 -0
- package/dist/next-node.d.ts +15 -0
- package/dist/next-node.mjs +51 -0
- package/dist/next-node.mjs.map +1 -0
- package/dist/node.d.ts +3 -0
- package/dist/node.mjs +185 -0
- package/dist/node.mjs.map +1 -0
- package/dist/processor-host-capabilities-BMFH3KTM.mjs +56 -0
- package/dist/processor-host-capabilities-BMFH3KTM.mjs.map +1 -0
- package/dist/processors/cloudflare.d.ts +3 -0
- package/dist/processors/durable-object-processor-durability.d.ts +79 -0
- package/dist/processors/event-consumption-metrics.d.ts +82 -0
- package/dist/processors/idempotency.d.ts +13 -0
- package/dist/processors/index.d.ts +12 -0
- package/dist/processors/processor-contracts.d.ts +342 -0
- package/dist/processors/processor-facet.d.ts +186 -0
- package/dist/processors/processor-host-capabilities.d.ts +60 -0
- package/dist/processors/prompt-sections.d.ts +17 -0
- package/dist/processors/rpc-types.d.ts +515 -0
- package/dist/processors/schemas.d.ts +102 -0
- package/dist/processors/stream-handle.d.ts +45 -0
- package/dist/processors/stream-processor-keepalive.d.ts +95 -0
- package/dist/processors/stream-processor-registry.d.ts +233 -0
- package/dist/processors/stream-processor-runner.d.ts +289 -0
- package/dist/processors/stream-processor.d.ts +339 -0
- package/dist/processors/stream-runtime-metrics.d.ts +107 -0
- package/dist/processors/testing.d.ts +302 -0
- package/dist/processors-BoNyeBfQ.mjs +10 -0
- package/dist/processors-BoNyeBfQ.mjs.map +1 -0
- package/dist/processors-cloudflare.mjs +3 -0
- package/dist/processors-testing.mjs +435 -0
- package/dist/processors-testing.mjs.map +1 -0
- package/dist/processors.mjs +52 -0
- package/dist/processors.mjs.map +1 -0
- package/dist/protocol-DnK_f2m6.mjs +251 -0
- package/dist/protocol-DnK_f2m6.mjs.map +1 -0
- package/dist/sdk/capnweb/index.d.ts +2 -0
- package/dist/sdk/capnweb/live-state/compact.d.ts +5 -0
- package/dist/sdk/capnweb/live-state/diff.d.ts +41 -0
- package/dist/sdk/capnweb/live-state/engine.d.ts +44 -0
- package/dist/sdk/capnweb/live-state/index.d.ts +41 -0
- package/dist/sdk/capnweb/live-state/protocol.d.ts +87 -0
- package/dist/sdk/capnweb/live-state/retain.d.ts +23 -0
- package/dist/sdk/capnweb/live-state/store.d.ts +20 -0
- package/dist/sdk/capnweb/live-state/types.d.ts +11 -0
- package/dist/sdk/capnweb/react.d.ts +45 -0
- package/dist/sdk/capnweb/react.mjs +316 -0
- package/dist/sdk/capnweb/react.mjs.map +1 -0
- package/dist/sdk/capnweb.mjs +4 -0
- package/dist/sdk/itx/react.d.ts +191 -0
- package/dist/sdk/itx/react.mjs +383 -0
- package/dist/sdk/itx/react.mjs.map +1 -0
- package/dist/sdk-DMB-IM11.mjs +933 -0
- package/dist/sdk-DMB-IM11.mjs.map +1 -0
- package/dist/sdk.d.ts +339 -0
- package/dist/sdk.mjs +2 -0
- package/dist/serve-itx.d.ts +46 -0
- package/dist/starter-apps/flake-dashboard/app-ref.d.ts +31 -0
- package/dist/starter-apps/flake-dashboard/configured-worker.mjs +1055 -0
- package/dist/starter-apps/flake-dashboard/configured-worker.mjs.map +1 -0
- package/dist/starter-apps/flake-dashboard/contract.d.ts +4839 -0
- package/dist/starter-apps/flake-dashboard/contract.mjs +2 -0
- package/dist/starter-apps/flake-dashboard/index.d.ts +17 -0
- package/dist/starter-apps/flake-dashboard/index.mjs +56 -0
- package/dist/starter-apps/flake-dashboard/index.mjs.map +1 -0
- package/dist/starter-apps/flake-dashboard/worker.d.ts +4607 -0
- package/dist/starter-apps/github-ai-linter/ai-linter.d.ts +8914 -0
- package/dist/starter-apps/github-ai-linter/configured-worker.mjs +17987 -0
- package/dist/starter-apps/github-ai-linter/configured-worker.mjs.map +1 -0
- package/dist/starter-apps/github-ai-linter/contract.d.ts +9193 -0
- package/dist/starter-apps/github-ai-linter/index.d.ts +10 -0
- package/dist/starter-apps/github-ai-linter/index.mjs +36 -0
- package/dist/starter-apps/github-ai-linter/index.mjs.map +1 -0
- package/dist/starter-apps/github-ai-linter/prompt.d.ts +13 -0
- package/dist/starter-apps/github-ai-linter/review-bot.d.ts +808 -0
- package/dist/starter-apps/github-ai-linter/rules.d.ts +34 -0
- package/dist/starter-apps/github-ai-linter/worker-ref.d.ts +19 -0
- package/dist/starter-apps/github-ai-linter/worker.d.ts +19 -0
- package/dist/starter-apps/github-ai-linter/worker.mjs +947 -0
- package/dist/starter-apps/github-ai-linter/worker.mjs.map +1 -0
- package/dist/starter-apps/guestbook/app-ref.d.ts +27 -0
- package/dist/starter-apps/guestbook/client.d.ts +7 -0
- package/dist/starter-apps/guestbook/client.mjs +59 -0
- package/dist/starter-apps/guestbook/configured-worker.mjs +205 -0
- package/dist/starter-apps/guestbook/configured-worker.mjs.map +1 -0
- package/dist/starter-apps/guestbook/index.d.ts +9 -0
- package/dist/starter-apps/guestbook/index.mjs +31 -0
- package/dist/starter-apps/guestbook/index.mjs.map +1 -0
- package/dist/starter-apps/guestbook/processor.d.ts +2267 -0
- package/dist/starter-apps/guestbook/worker.d.ts +26 -0
- package/dist/starter-apps/guestbook/worker.mjs +191 -0
- package/dist/starter-apps/guestbook/worker.mjs.map +1 -0
- package/dist/starter-apps/media/configured-worker.mjs +577 -0
- package/dist/starter-apps/media/configured-worker.mjs.map +1 -0
- package/dist/starter-apps/media/index.mjs +36 -0
- package/dist/starter-apps/media/index.mjs.map +1 -0
- package/dist/starter-apps/media/ref.mjs +20 -0
- package/dist/starter-apps/media/ref.mjs.map +1 -0
- package/dist/starter-apps/media/worker.mjs +579 -0
- package/dist/starter-apps/media/worker.mjs.map +1 -0
- package/dist/starter-apps/notes/configured-worker.mjs +6134 -0
- package/dist/starter-apps/notes/configured-worker.mjs.map +1 -0
- package/dist/starter-apps/notes/index.mjs +23 -0
- package/dist/starter-apps/notes/index.mjs.map +1 -0
- package/dist/starter-apps/notes/ref.mjs +21 -0
- package/dist/starter-apps/notes/ref.mjs.map +1 -0
- package/dist/starter-apps/notes/worker.mjs +427 -0
- package/dist/starter-apps/notes/worker.mjs.map +1 -0
- package/dist/starter-apps/todo/client.mjs +59 -0
- package/dist/starter-apps/todo/configured-worker.mjs +2864 -0
- package/dist/starter-apps/todo/configured-worker.mjs.map +1 -0
- package/dist/starter-apps/todo/index.d.ts +8 -0
- package/dist/starter-apps/todo/index.mjs +29 -0
- package/dist/starter-apps/todo/index.mjs.map +1 -0
- package/dist/stream-processor-keepalive-DAQTP6m3.mjs +2082 -0
- package/dist/stream-processor-keepalive-DAQTP6m3.mjs.map +1 -0
- package/dist/usingCtx-inzbY1Qz.mjs +57 -0
- package/dist/usingCtx-mZx5nsAW.mjs +11800 -0
- package/dist/usingCtx-mZx5nsAW.mjs.map +1 -0
- package/dist/worker-ref-DZxPDmb_.mjs +390 -0
- package/dist/worker-ref-DZxPDmb_.mjs.map +1 -0
- package/menubar/Iterate.entitlements +12 -0
- package/menubar/Iterate.swift +914 -0
- package/menubar/IterateIcon.swift +145 -0
- package/menubar/README.md +28 -0
- package/menubar/build-menubar-app.sh +59 -0
- package/package.json +235 -18
- package/dist/cli-DMS4kJph.mjs +0 -868
- package/dist/cli-DMS4kJph.mjs.map +0 -1
- package/dist/config-DtnR7Lv7.mjs +0 -170
- package/dist/config-DtnR7Lv7.mjs.map +0 -1
- package/dist/index.d.mts.map +0 -1
- package/dist/stream-tui/agent-chat-terminal.d.mts +0 -1
- package/dist/stream-tui/agent-chat-terminal.mjs +0 -933
- package/dist/stream-tui/agent-chat-terminal.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configured-worker.mjs","names":["z.object","z\n .object","z.string","z\n .array","z\n .string","z\n .object","#ensureInitialized","guestbookClientSource","#app","#liveState"],"sources":["../../../src/starter-apps/guestbook/app-ref.ts","../../../src/starter-apps/guestbook/processor.ts","../../../src/starter-apps/guestbook/worker.ts"],"sourcesContent":["// The Guestbook's physical identity. Keeping the durable key stable preserves\n// its processor storage while the implementation moves out of config repos.\nimport type { StreamEventInput } from \"../../processors/index.ts\";\nimport type { StatefulDynamicWorkerRef } from \"../../sdk.ts\";\n\nexport const guestbookStreamPath = \"/guestbook\";\n\nexport const guestbookWorkerRef = {\n className: \"GuestbookApp\",\n // \"-stream\" keeps clear of a retired predecessor's durable identity.\n durableWorkerKey: \"app-guestbook-stream\",\n path: \"/\",\n source: {\n createWorker: {\n entryPoint: \"node_modules/iterate/dist/starter-apps/guestbook/configured-worker.mjs\",\n files: {\n include: [\"package.json\"],\n repoPath: \"/repos/config\",\n type: \"repo\",\n },\n },\n },\n type: \"stateful\",\n} satisfies StatefulDynamicWorkerRef;\n\n/**\n * The Guestbook's creation facts. The project worker owns committed event\n * delivery through GuestbookApp.processEvent; no stream ever carries an\n * app-specific subscription for the Guestbook (streams that predate the\n * current subscription model are recreated, not migrated), so there is no\n * retirement fact to append — removing a key that was never configured is a\n * hard error.\n */\nexport function guestbookCreationEvents(): StreamEventInput[] {\n return [\n {\n type: \"events.iterate.com/guestbook/created\",\n payload: { config: { title: \"Guestbook\" } },\n idempotencyKey: \"guestbook/created\",\n },\n ];\n}\n","// The guestbook's stream processor: it folds the signatures on the project\n// stream at /guestbook into a birth certificate plus an append-only list of\n// entries. The reduce is the whole processor — pure fold, no side effects.\nimport { z } from \"zod\";\nimport { defineProcessorContract, StreamProcessor } from \"../../processors/index.ts\";\nimport type { ProcessorState, ReduceArgs } from \"../../processors/index.ts\";\n\nexport const GuestbookProcessorContract = defineProcessorContract({\n slug: \"guestbook\",\n version: \"0.1.0\",\n description: \"Reduces guestbook signatures on /guestbook.\",\n stateSchema: z.object({\n birthCertificate: z\n .object({\n config: z.object({\n title: z.string().meta({ description: \"Display title shown on the public page.\" }),\n }),\n })\n .nullable()\n .default(null)\n .meta({\n description: \"Existence marker: null until guestbook/created reduces. Signing requires it.\",\n }),\n entries: z\n .array(\n z.object({\n name: z.string().meta({ description: \"Signer display name.\" }),\n message: z.string().meta({ description: \"Note left by the signer.\" }),\n signedAt: z\n .string()\n .meta({ description: \"ISO-8601 time from the stream event createdAt.\" }),\n }),\n )\n .default([])\n .meta({ description: \"Signatures in stream order (oldest first).\" }),\n }),\n events: {\n \"events.iterate.com/guestbook/created\": {\n description:\n \"The guestbook exists: its birth certificate, the first event in its domain history. \" +\n \"Appended (idempotency-keyed) by whoever signs first or opens the API.\",\n payloadSchema: z.object({\n config: z\n .object({\n title: z.string().meta({ description: \"Display title for the guestbook.\" }),\n })\n .meta({ description: \"Initial configuration.\" }),\n }),\n examples: [\n {\n description: \"A guestbook born with its display title.\",\n payload: { config: { title: \"Guestbook\" } },\n },\n ],\n },\n \"events.iterate.com/guestbook/entry-signed\": {\n description: \"Someone signed the guestbook: their name and message.\",\n payloadSchema: z.object({\n name: z.string().trim().min(1).meta({ description: \"Signer display name.\" }),\n message: z.string().trim().min(1).meta({ description: \"Note left by the signer.\" }),\n }),\n examples: [\n {\n description: \"A visitor left a note.\",\n payload: { name: \"Ada\", message: \"Lovely worker you have here.\" },\n },\n ],\n },\n },\n consumes: [\"events.iterate.com/guestbook/created\", \"events.iterate.com/guestbook/entry-signed\"],\n emits: [],\n});\nexport type GuestbookProcessorContract = typeof GuestbookProcessorContract;\n\nexport type GuestbookState = ProcessorState<GuestbookProcessorContract>;\n\nexport class GuestbookProcessor extends StreamProcessor<GuestbookProcessorContract> {\n readonly contract = GuestbookProcessorContract;\n\n protected override reduce({ event, state }: ReduceArgs<GuestbookProcessorContract>) {\n switch (event.type) {\n case \"events.iterate.com/guestbook/created\":\n // Idempotency-keyed at the source, but a duplicate that slips through\n // folds to a no-op rather than wedging the frame.\n if (state.birthCertificate !== null) return state;\n return { ...state, birthCertificate: event.payload };\n case \"events.iterate.com/guestbook/entry-signed\":\n return {\n ...state,\n entries: [...state.entries, { ...event.payload, signedAt: event.createdAt }],\n };\n default:\n return state;\n }\n }\n}\n","/// <reference path=\"./virtual-client.d.ts\" />\nimport guestbookClientSource from \"iterate:guestbook-client-source\";\nimport {\n LiveStateRpcTarget,\n RpcTarget,\n newWorkersWebSocketRpcResponse,\n type LiveStateRpc,\n} from \"../../sdk/capnweb/index.ts\";\nimport type { StreamProcessorRegistry } from \"../../processors/cloudflare.ts\";\nimport {\n StreamProcessorDurableObject,\n type ProcessorHostDeps,\n type StreamEvent,\n} from \"../../sdk.ts\";\nimport { guestbookCreationEvents, guestbookStreamPath } from \"./app-ref.ts\";\nimport { GuestbookProcessor, type GuestbookState } from \"./processor.ts\";\n\n/** One packaged Durable Object owns the page, API, processor, and live value.\n * `alarm()`, the `processor` wake door, `snapshot()`, and `registry()` come\n * from {@link StreamProcessorDurableObject}; all this class writes is how to\n * build its processor plus its own HTTP + append verbs. */\nexport class GuestbookApp extends StreamProcessorDurableObject<GuestbookState> {\n protected readonly streamPath = guestbookStreamPath;\n protected createProcessor(deps: ProcessorHostDeps) {\n return new GuestbookProcessor(deps);\n }\n\n /** Lazily initialize the stream. The idempotency-keyed creation fact may be\n * offered by every caller. */\n async #ensureInitialized(): Promise<StreamProcessorRegistry<GuestbookState>> {\n const registry = await this.registry();\n await registry.catchUp(\"guestbook\");\n using project = await this.env.ITX.get();\n await project.streams.get(guestbookStreamPath).append(...guestbookCreationEvents());\n await registry.catchUp(\"guestbook\");\n return registry;\n }\n\n /** Project-worker event delivery calls this after a durable Guestbook event\n * commits. Catch-up owns validation, ordering, checkpointing, and dedupe. */\n async syncEvent(event: StreamEvent): Promise<void> {\n if (event.path !== guestbookStreamPath) return;\n const registry = await this.#ensureInitialized();\n await registry.catchUp(\"guestbook\");\n registry.refreshLive();\n }\n\n /** Internal worker RPC surface used to verify source upgrades and delivery. */\n async getState(): Promise<GuestbookState> {\n await this.#ensureInitialized();\n return (await this.snapshot()).state;\n }\n\n async sign(name: string, message: string): Promise<void> {\n const trimmedName = name.trim().slice(0, 80);\n const trimmedMessage = message.trim().slice(0, 500);\n if (trimmedName.length === 0 || trimmedMessage.length === 0) {\n throw new TypeError(\"Name and message are required\");\n }\n const registry = await this.#ensureInitialized();\n using project = await this.env.ITX.get();\n await project.streams.get(guestbookStreamPath).append({\n type: \"events.iterate.com/guestbook/entry-signed\",\n payload: { message: trimmedMessage, name: trimmedName },\n idempotencyKey: `guestbook/entry:${crypto.randomUUID()}`,\n });\n await registry.catchUp(\"guestbook\");\n registry.refreshLive();\n }\n\n async fetch(request: Request): Promise<Response> {\n const url = new URL(request.url);\n if (url.pathname === \"/api\") {\n const registry = await this.#ensureInitialized();\n await registry.loadAndRefreshLive();\n return newWorkersWebSocketRpcResponse(request, new GuestbookApi(this, registry));\n }\n if (request.method === \"GET\" && url.pathname === \"/apps/guestbook/client.js\") {\n return new Response(guestbookClientSource, {\n headers: {\n \"content-type\": \"application/javascript; charset=utf-8\",\n \"x-content-type-options\": \"nosniff\",\n },\n });\n }\n if (request.method !== \"GET\" || url.pathname !== \"/\") {\n return new Response(\"not found\", { status: 404 });\n }\n return new Response(\n `<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <title>Guestbook</title>\n <style>\n :root { color-scheme: light dark; font-family: system-ui, sans-serif; }\n body { margin: 0; padding: 2rem; }\n main { margin: 0 auto; max-width: 38rem; }\n form { display: grid; gap: .75rem; }\n input, textarea, button { font: inherit; padding: .6rem; }\n article { border-block-start: 1px solid #8886; margin-block-start: 1.25rem; padding-block-start: 1rem; }\n time { opacity: .65; }\n [role=\"alert\"] { color: #c33; }\n </style>\n </head>\n <body>\n <main id=\"root\"><p>Loading…</p></main>\n <script type=\"module\" src=\"/apps/guestbook/client.js\"></script>\n </body>\n</html>`,\n {\n headers: {\n \"content-type\": \"text/html; charset=utf-8\",\n \"x-content-type-options\": \"nosniff\",\n },\n },\n );\n }\n}\n\nexport class GuestbookApi extends RpcTarget {\n readonly #app: GuestbookApp;\n readonly #liveState: LiveStateRpcTarget<GuestbookState>;\n\n constructor(app: GuestbookApp, registry: StreamProcessorRegistry<GuestbookState>) {\n super();\n this.#app = app;\n this.#liveState = new LiveStateRpcTarget(registry);\n }\n\n get liveState(): LiveStateRpc<GuestbookState> {\n return this.#liveState;\n }\n\n async sign(name: string, message: string): Promise<void> {\n await this.#app.sign(name, message);\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ItxBinding, StreamEvent } from "../../sdk.ts";
|
|
2
|
+
export declare const GuestbookApp: {
|
|
3
|
+
create(env: {
|
|
4
|
+
ITX: Pick<ItxBinding, "fetch" | "get">;
|
|
5
|
+
}): {
|
|
6
|
+
fetch(request: Request): Promise<Response>;
|
|
7
|
+
processEvent(event: StreamEvent): Promise<void>;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { t as _usingCtx } from "../../usingCtx-inzbY1Qz.mjs";
|
|
2
|
+
import { r as guestbookWorkerRef } from "../../app-ref-BipL0feU.mjs";
|
|
3
|
+
//#region src/starter-apps/guestbook/index.ts
|
|
4
|
+
const GuestbookApp = { create(env) {
|
|
5
|
+
return {
|
|
6
|
+
async fetch(request) {
|
|
7
|
+
const headers = new Headers(request.headers);
|
|
8
|
+
headers.set("x-iterate-worker-dispatch", JSON.stringify({
|
|
9
|
+
buildBudgetMs: 15e3,
|
|
10
|
+
ref: guestbookWorkerRef
|
|
11
|
+
}));
|
|
12
|
+
return await env.ITX.fetch(new Request(request, { headers }));
|
|
13
|
+
},
|
|
14
|
+
async processEvent(event) {
|
|
15
|
+
try {
|
|
16
|
+
var _usingCtx$1 = _usingCtx();
|
|
17
|
+
if (event.path !== "/guestbook") return;
|
|
18
|
+
const project = _usingCtx$1.u(await env.ITX.get());
|
|
19
|
+
await _usingCtx$1.u(project.workers.get(guestbookWorkerRef)).syncEvent(event);
|
|
20
|
+
} catch (_) {
|
|
21
|
+
_usingCtx$1.e = _;
|
|
22
|
+
} finally {
|
|
23
|
+
_usingCtx$1.d();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
} };
|
|
28
|
+
//#endregion
|
|
29
|
+
export { GuestbookApp };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/starter-apps/guestbook/index.ts"],"sourcesContent":["import type { DynamicWorkerCapability, ItxBinding, StreamEvent } from \"../../sdk.ts\";\nimport { guestbookStreamPath, guestbookWorkerRef } from \"./app-ref.ts\";\nimport type { GuestbookApp as GuestbookWorker } from \"./worker.ts\";\n\nexport const GuestbookApp = {\n create(env: { ITX: Pick<ItxBinding, \"fetch\" | \"get\"> }) {\n return {\n async fetch(request: Request): Promise<Response> {\n const headers = new Headers(request.headers);\n headers.set(\n \"x-iterate-worker-dispatch\",\n JSON.stringify({ buildBudgetMs: 15_000, ref: guestbookWorkerRef }),\n );\n return await env.ITX.fetch(new Request(request, { headers }));\n },\n async processEvent(event: StreamEvent): Promise<void> {\n if (event.path !== guestbookStreamPath) return;\n using project = await env.ITX.get();\n using worker = project.workers.get(guestbookWorkerRef) as DynamicWorkerCapability<\n Pick<GuestbookWorker, \"syncEvent\">\n >;\n await worker.syncEvent(event);\n },\n };\n },\n};\n"],"mappings":";;;AAIA,MAAa,eAAe,EAC1B,OAAO,KAAiD;CACtD,OAAO;EACL,MAAM,MAAM,SAAqC;GAC/C,MAAM,UAAU,IAAI,QAAQ,QAAQ,OAAO;GAC3C,QAAQ,IACN,6BACA,KAAK,UAAU;IAAE,eAAe;IAAQ,KAAK;GAAmB,CAAC,CACnE;GACA,OAAO,MAAM,IAAI,IAAI,MAAM,IAAI,QAAQ,SAAS,EAAE,QAAQ,CAAC,CAAC;EAC9D;EACA,MAAM,aAAa,OAAmC;;;IACpD,IAAI,MAAM,SAAA,cAA8B;IACxC,MAAM,UAAA,YAAA,EAAU,MAAM,IAAI,IAAI,IAAI,CAAA;IAIlC,MAAA,YAAA,EAHe,QAAQ,QAAQ,IAAI,kBAAkB,CAG1C,CAAC,CAAC,UAAU,KAAK;;;;;;EAC9B;CACF;AACF,EACF"}
|