@shware/workflow 0.0.0-stage → 0.1.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/LICENSE +21 -0
- package/README.md +154 -2
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/apns-relay.cjs +105 -0
- package/dist/apns-relay.cjs.map +1 -0
- package/dist/apns-relay.d.cts +28 -0
- package/dist/apns-relay.d.cts.map +1 -0
- package/dist/apns-relay.d.mts +28 -0
- package/dist/apns-relay.d.mts.map +1 -0
- package/dist/apns-relay.mjs +104 -0
- package/dist/apns-relay.mjs.map +1 -0
- package/dist/apns.cjs +121 -0
- package/dist/apns.cjs.map +1 -0
- package/dist/apns.d.cts +63 -0
- package/dist/apns.d.cts.map +1 -0
- package/dist/apns.d.mts +63 -0
- package/dist/apns.d.mts.map +1 -0
- package/dist/apns.mjs +116 -0
- package/dist/apns.mjs.map +1 -0
- package/dist/client.cjs +125 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.cts +108 -0
- package/dist/client.d.cts.map +1 -0
- package/dist/client.d.mts +108 -0
- package/dist/client.d.mts.map +1 -0
- package/dist/client.mjs +122 -0
- package/dist/client.mjs.map +1 -0
- package/dist/cloudflare/bindings.cjs +28 -0
- package/dist/cloudflare/bindings.cjs.map +1 -0
- package/dist/cloudflare/bindings.d.cts +144 -0
- package/dist/cloudflare/bindings.d.cts.map +1 -0
- package/dist/cloudflare/bindings.d.mts +144 -0
- package/dist/cloudflare/bindings.d.mts.map +1 -0
- package/dist/cloudflare/bindings.mjs +25 -0
- package/dist/cloudflare/bindings.mjs.map +1 -0
- package/dist/cloudflare/channels.cjs +164 -0
- package/dist/cloudflare/channels.cjs.map +1 -0
- package/dist/cloudflare/channels.d.cts +29 -0
- package/dist/cloudflare/channels.d.cts.map +1 -0
- package/dist/cloudflare/channels.d.mts +29 -0
- package/dist/cloudflare/channels.d.mts.map +1 -0
- package/dist/cloudflare/channels.mjs +161 -0
- package/dist/cloudflare/channels.mjs.map +1 -0
- package/dist/cloudflare/d1-env.cjs +17 -0
- package/dist/cloudflare/d1-env.cjs.map +1 -0
- package/dist/cloudflare/d1-env.d.cts +12 -0
- package/dist/cloudflare/d1-env.d.cts.map +1 -0
- package/dist/cloudflare/d1-env.d.mts +12 -0
- package/dist/cloudflare/d1-env.d.mts.map +1 -0
- package/dist/cloudflare/d1-env.mjs +16 -0
- package/dist/cloudflare/d1-env.mjs.map +1 -0
- package/dist/cloudflare/index.cjs +54 -0
- package/dist/cloudflare/index.d.cts +19 -0
- package/dist/cloudflare/index.d.mts +19 -0
- package/dist/cloudflare/index.mjs +16 -0
- package/dist/cloudflare/router.cjs +516 -0
- package/dist/cloudflare/router.cjs.map +1 -0
- package/dist/cloudflare/router.d.cts +157 -0
- package/dist/cloudflare/router.d.cts.map +1 -0
- package/dist/cloudflare/router.d.mts +157 -0
- package/dist/cloudflare/router.d.mts.map +1 -0
- package/dist/cloudflare/router.mjs +503 -0
- package/dist/cloudflare/router.mjs.map +1 -0
- package/dist/cloudflare/runner.cjs +225 -0
- package/dist/cloudflare/runner.cjs.map +1 -0
- package/dist/cloudflare/runner.d.cts +73 -0
- package/dist/cloudflare/runner.d.cts.map +1 -0
- package/dist/cloudflare/runner.d.mts +73 -0
- package/dist/cloudflare/runner.d.mts.map +1 -0
- package/dist/cloudflare/runner.mjs +224 -0
- package/dist/cloudflare/runner.mjs.map +1 -0
- package/dist/cloudflare/schema.sql +127 -0
- package/dist/cloudflare/senders.cjs +114 -0
- package/dist/cloudflare/senders.cjs.map +1 -0
- package/dist/cloudflare/senders.d.cts +68 -0
- package/dist/cloudflare/senders.d.cts.map +1 -0
- package/dist/cloudflare/senders.d.mts +68 -0
- package/dist/cloudflare/senders.d.mts.map +1 -0
- package/dist/cloudflare/senders.mjs +108 -0
- package/dist/cloudflare/senders.mjs.map +1 -0
- package/dist/cloudflare/worker.cjs +228 -0
- package/dist/cloudflare/worker.cjs.map +1 -0
- package/dist/cloudflare/worker.d.cts +92 -0
- package/dist/cloudflare/worker.d.cts.map +1 -0
- package/dist/cloudflare/worker.d.mts +92 -0
- package/dist/cloudflare/worker.d.mts.map +1 -0
- package/dist/cloudflare/worker.mjs +224 -0
- package/dist/cloudflare/worker.mjs.map +1 -0
- package/dist/cloudflare/workers.d.cjs +0 -0
- package/dist/cloudflare/workers.d.cts +44 -0
- package/dist/cloudflare/workers.d.cts.map +1 -0
- package/dist/cloudflare/workers.d.mts +44 -0
- package/dist/cloudflare/workers.d.mts.map +1 -0
- package/dist/config.cjs +151 -0
- package/dist/config.cjs.map +1 -0
- package/dist/config.d.cts +149 -0
- package/dist/config.d.cts.map +1 -0
- package/dist/config.d.mts +149 -0
- package/dist/config.d.mts.map +1 -0
- package/dist/config.mjs +143 -0
- package/dist/config.mjs.map +1 -0
- package/dist/contract.cjs +212 -0
- package/dist/contract.cjs.map +1 -0
- package/dist/contract.d.cts +90 -0
- package/dist/contract.d.cts.map +1 -0
- package/dist/contract.d.mts +90 -0
- package/dist/contract.d.mts.map +1 -0
- package/dist/contract.mjs +206 -0
- package/dist/contract.mjs.map +1 -0
- package/dist/dsl/action.cjs +29 -0
- package/dist/dsl/action.cjs.map +1 -0
- package/dist/dsl/action.d.cts +64 -0
- package/dist/dsl/action.d.cts.map +1 -0
- package/dist/dsl/action.d.mts +64 -0
- package/dist/dsl/action.d.mts.map +1 -0
- package/dist/dsl/action.mjs +28 -0
- package/dist/dsl/action.mjs.map +1 -0
- package/dist/dsl/base.cjs +34 -0
- package/dist/dsl/base.cjs.map +1 -0
- package/dist/dsl/base.d.cts +45 -0
- package/dist/dsl/base.d.cts.map +1 -0
- package/dist/dsl/base.d.mts +45 -0
- package/dist/dsl/base.d.mts.map +1 -0
- package/dist/dsl/base.mjs +30 -0
- package/dist/dsl/base.mjs.map +1 -0
- package/dist/dsl/bundle.cjs +207 -0
- package/dist/dsl/bundle.cjs.map +1 -0
- package/dist/dsl/bundle.d.cts +19 -0
- package/dist/dsl/bundle.d.cts.map +1 -0
- package/dist/dsl/bundle.d.mts +19 -0
- package/dist/dsl/bundle.d.mts.map +1 -0
- package/dist/dsl/bundle.mjs +206 -0
- package/dist/dsl/bundle.mjs.map +1 -0
- package/dist/dsl/condition.cjs +177 -0
- package/dist/dsl/condition.cjs.map +1 -0
- package/dist/dsl/condition.d.cts +140 -0
- package/dist/dsl/condition.d.cts.map +1 -0
- package/dist/dsl/condition.d.mts +140 -0
- package/dist/dsl/condition.d.mts.map +1 -0
- package/dist/dsl/condition.mjs +156 -0
- package/dist/dsl/condition.mjs.map +1 -0
- package/dist/dsl/flow.cjs +228 -0
- package/dist/dsl/flow.cjs.map +1 -0
- package/dist/dsl/flow.d.cts +223 -0
- package/dist/dsl/flow.d.cts.map +1 -0
- package/dist/dsl/flow.d.mts +223 -0
- package/dist/dsl/flow.d.mts.map +1 -0
- package/dist/dsl/flow.mjs +226 -0
- package/dist/dsl/flow.mjs.map +1 -0
- package/dist/dsl/index.cjs +38 -0
- package/dist/dsl/index.d.cts +10 -0
- package/dist/dsl/index.d.mts +10 -0
- package/dist/dsl/index.mjs +9 -0
- package/dist/dsl/refs.cjs +59 -0
- package/dist/dsl/refs.cjs.map +1 -0
- package/dist/dsl/refs.d.cts +88 -0
- package/dist/dsl/refs.d.cts.map +1 -0
- package/dist/dsl/refs.d.mts +88 -0
- package/dist/dsl/refs.d.mts.map +1 -0
- package/dist/dsl/refs.mjs +55 -0
- package/dist/dsl/refs.mjs.map +1 -0
- package/dist/dsl/template.cjs +65 -0
- package/dist/dsl/template.cjs.map +1 -0
- package/dist/dsl/template.d.cts +75 -0
- package/dist/dsl/template.d.cts.map +1 -0
- package/dist/dsl/template.d.mts +75 -0
- package/dist/dsl/template.d.mts.map +1 -0
- package/dist/dsl/template.mjs +63 -0
- package/dist/dsl/template.mjs.map +1 -0
- package/dist/dsl/trigger.cjs +40 -0
- package/dist/dsl/trigger.cjs.map +1 -0
- package/dist/dsl/trigger.d.cts +65 -0
- package/dist/dsl/trigger.d.cts.map +1 -0
- package/dist/dsl/trigger.d.mts +65 -0
- package/dist/dsl/trigger.d.mts.map +1 -0
- package/dist/dsl/trigger.mjs +39 -0
- package/dist/dsl/trigger.mjs.map +1 -0
- package/dist/dsl/workflow.cjs +121 -0
- package/dist/dsl/workflow.cjs.map +1 -0
- package/dist/dsl/workflow.d.cts +59 -0
- package/dist/dsl/workflow.d.cts.map +1 -0
- package/dist/dsl/workflow.d.mts +59 -0
- package/dist/dsl/workflow.d.mts.map +1 -0
- package/dist/dsl/workflow.mjs +120 -0
- package/dist/dsl/workflow.mjs.map +1 -0
- package/dist/engine/actions.cjs +27 -0
- package/dist/engine/actions.cjs.map +1 -0
- package/dist/engine/actions.d.cts +40 -0
- package/dist/engine/actions.d.cts.map +1 -0
- package/dist/engine/actions.d.mts +40 -0
- package/dist/engine/actions.d.mts.map +1 -0
- package/dist/engine/actions.mjs +26 -0
- package/dist/engine/actions.mjs.map +1 -0
- package/dist/engine/bucket.cjs +72 -0
- package/dist/engine/bucket.cjs.map +1 -0
- package/dist/engine/bucket.d.cts +32 -0
- package/dist/engine/bucket.d.cts.map +1 -0
- package/dist/engine/bucket.d.mts +32 -0
- package/dist/engine/bucket.d.mts.map +1 -0
- package/dist/engine/bucket.mjs +69 -0
- package/dist/engine/bucket.mjs.map +1 -0
- package/dist/engine/condition.cjs +166 -0
- package/dist/engine/condition.cjs.map +1 -0
- package/dist/engine/condition.d.cts +52 -0
- package/dist/engine/condition.d.cts.map +1 -0
- package/dist/engine/condition.d.mts +52 -0
- package/dist/engine/condition.d.mts.map +1 -0
- package/dist/engine/condition.mjs +161 -0
- package/dist/engine/condition.mjs.map +1 -0
- package/dist/engine/index.cjs +20 -0
- package/dist/engine/index.d.cts +8 -0
- package/dist/engine/index.d.mts +8 -0
- package/dist/engine/index.mjs +7 -0
- package/dist/engine/interpreter.cjs +428 -0
- package/dist/engine/interpreter.cjs.map +1 -0
- package/dist/engine/interpreter.d.cts +6 -0
- package/dist/engine/interpreter.d.cts.map +1 -0
- package/dist/engine/interpreter.d.mts +6 -0
- package/dist/engine/interpreter.d.mts.map +1 -0
- package/dist/engine/interpreter.mjs +427 -0
- package/dist/engine/interpreter.mjs.map +1 -0
- package/dist/engine/ports.cjs +0 -0
- package/dist/engine/ports.d.cts +252 -0
- package/dist/engine/ports.d.cts.map +1 -0
- package/dist/engine/ports.d.mts +252 -0
- package/dist/engine/ports.d.mts.map +1 -0
- package/dist/engine/ports.mjs +1 -0
- package/dist/engine/recipient.cjs +23 -0
- package/dist/engine/recipient.cjs.map +1 -0
- package/dist/engine/recipient.d.cts +13 -0
- package/dist/engine/recipient.d.cts.map +1 -0
- package/dist/engine/recipient.d.mts +13 -0
- package/dist/engine/recipient.d.mts.map +1 -0
- package/dist/engine/recipient.mjs +22 -0
- package/dist/engine/recipient.mjs.map +1 -0
- package/dist/engine/time-scale.cjs +54 -0
- package/dist/engine/time-scale.cjs.map +1 -0
- package/dist/engine/time-scale.d.cts +31 -0
- package/dist/engine/time-scale.d.cts.map +1 -0
- package/dist/engine/time-scale.d.mts +31 -0
- package/dist/engine/time-scale.d.mts.map +1 -0
- package/dist/engine/time-scale.mjs +52 -0
- package/dist/engine/time-scale.mjs.map +1 -0
- package/dist/engine/time-window.cjs +149 -0
- package/dist/engine/time-window.cjs.map +1 -0
- package/dist/engine/time-window.d.cts +22 -0
- package/dist/engine/time-window.d.cts.map +1 -0
- package/dist/engine/time-window.d.mts +22 -0
- package/dist/engine/time-window.d.mts.map +1 -0
- package/dist/engine/time-window.mjs +147 -0
- package/dist/engine/time-window.mjs.map +1 -0
- package/dist/fcm.cjs +125 -0
- package/dist/fcm.cjs.map +1 -0
- package/dist/fcm.d.cts +48 -0
- package/dist/fcm.d.cts.map +1 -0
- package/dist/fcm.d.mts +48 -0
- package/dist/fcm.d.mts.map +1 -0
- package/dist/fcm.mjs +121 -0
- package/dist/fcm.mjs.map +1 -0
- package/dist/hash.cjs +245 -0
- package/dist/hash.cjs.map +1 -0
- package/dist/hash.d.cts +30 -0
- package/dist/hash.d.cts.map +1 -0
- package/dist/hash.d.mts +30 -0
- package/dist/hash.d.mts.map +1 -0
- package/dist/hash.mjs +239 -0
- package/dist/hash.mjs.map +1 -0
- package/dist/index.cjs +100 -0
- package/dist/index.d.cts +18 -0
- package/dist/index.d.mts +18 -0
- package/dist/index.mjs +17 -0
- package/dist/ir.cjs +366 -0
- package/dist/ir.cjs.map +1 -0
- package/dist/ir.d.cts +486 -0
- package/dist/ir.d.cts.map +1 -0
- package/dist/ir.d.mts +486 -0
- package/dist/ir.d.mts.map +1 -0
- package/dist/ir.mjs +344 -0
- package/dist/ir.mjs.map +1 -0
- package/dist/jwt.cjs +22 -0
- package/dist/jwt.cjs.map +1 -0
- package/dist/jwt.d.cts +9 -0
- package/dist/jwt.d.cts.map +1 -0
- package/dist/jwt.d.mts +9 -0
- package/dist/jwt.d.mts.map +1 -0
- package/dist/jwt.mjs +20 -0
- package/dist/jwt.mjs.map +1 -0
- package/dist/plan.cjs +223 -0
- package/dist/plan.cjs.map +1 -0
- package/dist/plan.d.cts +68 -0
- package/dist/plan.d.cts.map +1 -0
- package/dist/plan.d.mts +68 -0
- package/dist/plan.d.mts.map +1 -0
- package/dist/plan.mjs +221 -0
- package/dist/plan.mjs.map +1 -0
- package/dist/postgres-js.cjs +42 -0
- package/dist/postgres-js.cjs.map +1 -0
- package/dist/postgres-js.d.cts +28 -0
- package/dist/postgres-js.d.cts.map +1 -0
- package/dist/postgres-js.d.mts +28 -0
- package/dist/postgres-js.d.mts.map +1 -0
- package/dist/postgres-js.mjs +38 -0
- package/dist/postgres-js.mjs.map +1 -0
- package/dist/provenance.cjs +67 -0
- package/dist/provenance.cjs.map +1 -0
- package/dist/provenance.d.cts +41 -0
- package/dist/provenance.d.cts.map +1 -0
- package/dist/provenance.d.mts +41 -0
- package/dist/provenance.d.mts.map +1 -0
- package/dist/provenance.mjs +65 -0
- package/dist/provenance.mjs.map +1 -0
- package/dist/push.cjs +14 -0
- package/dist/push.cjs.map +1 -0
- package/dist/push.d.cts +16 -0
- package/dist/push.d.cts.map +1 -0
- package/dist/push.d.mts +16 -0
- package/dist/push.d.mts.map +1 -0
- package/dist/push.mjs +13 -0
- package/dist/push.mjs.map +1 -0
- package/dist/react-email.cjs +48 -0
- package/dist/react-email.cjs.map +1 -0
- package/dist/react-email.d.cts +7 -0
- package/dist/react-email.d.cts.map +1 -0
- package/dist/react-email.d.mts +7 -0
- package/dist/react-email.d.mts.map +1 -0
- package/dist/react-email.mjs +47 -0
- package/dist/react-email.mjs.map +1 -0
- package/dist/reporting/classify.cjs +42 -0
- package/dist/reporting/classify.cjs.map +1 -0
- package/dist/reporting/classify.d.cts +60 -0
- package/dist/reporting/classify.d.cts.map +1 -0
- package/dist/reporting/classify.d.mts +60 -0
- package/dist/reporting/classify.d.mts.map +1 -0
- package/dist/reporting/classify.mjs +38 -0
- package/dist/reporting/classify.mjs.map +1 -0
- package/dist/reporting/observer.cjs +63 -0
- package/dist/reporting/observer.cjs.map +1 -0
- package/dist/reporting/observer.d.cts +18 -0
- package/dist/reporting/observer.d.cts.map +1 -0
- package/dist/reporting/observer.d.mts +18 -0
- package/dist/reporting/observer.d.mts.map +1 -0
- package/dist/reporting/observer.mjs +62 -0
- package/dist/reporting/observer.mjs.map +1 -0
- package/dist/reporting/tracking.cjs +153 -0
- package/dist/reporting/tracking.cjs.map +1 -0
- package/dist/reporting/tracking.d.cts +43 -0
- package/dist/reporting/tracking.d.cts.map +1 -0
- package/dist/reporting/tracking.d.mts +43 -0
- package/dist/reporting/tracking.d.mts.map +1 -0
- package/dist/reporting/tracking.mjs +151 -0
- package/dist/reporting/tracking.mjs.map +1 -0
- package/dist/runtime.cjs +19 -0
- package/dist/runtime.cjs.map +1 -0
- package/dist/runtime.d.cts +30 -0
- package/dist/runtime.d.cts.map +1 -0
- package/dist/runtime.d.mts +30 -0
- package/dist/runtime.d.mts.map +1 -0
- package/dist/runtime.mjs +18 -0
- package/dist/runtime.mjs.map +1 -0
- package/dist/store/d1.cjs +185 -0
- package/dist/store/d1.cjs.map +1 -0
- package/dist/store/d1.d.cts +55 -0
- package/dist/store/d1.d.cts.map +1 -0
- package/dist/store/d1.d.mts +55 -0
- package/dist/store/d1.d.mts.map +1 -0
- package/dist/store/d1.mjs +184 -0
- package/dist/store/d1.mjs.map +1 -0
- package/dist/store/facts.cjs +60 -0
- package/dist/store/facts.cjs.map +1 -0
- package/dist/store/facts.d.cts +38 -0
- package/dist/store/facts.d.cts.map +1 -0
- package/dist/store/facts.d.mts +38 -0
- package/dist/store/facts.d.mts.map +1 -0
- package/dist/store/facts.mjs +58 -0
- package/dist/store/facts.mjs.map +1 -0
- package/dist/store/index.cjs +31 -0
- package/dist/store/index.cjs.map +1 -0
- package/dist/store/index.d.cts +291 -0
- package/dist/store/index.d.cts.map +1 -0
- package/dist/store/index.d.mts +291 -0
- package/dist/store/index.d.mts.map +1 -0
- package/dist/store/index.mjs +22 -0
- package/dist/store/index.mjs.map +1 -0
- package/dist/store/postgres-reporting.cjs +213 -0
- package/dist/store/postgres-reporting.cjs.map +1 -0
- package/dist/store/postgres-reporting.d.cts +63 -0
- package/dist/store/postgres-reporting.d.cts.map +1 -0
- package/dist/store/postgres-reporting.d.mts +63 -0
- package/dist/store/postgres-reporting.d.mts.map +1 -0
- package/dist/store/postgres-reporting.mjs +212 -0
- package/dist/store/postgres-reporting.mjs.map +1 -0
- package/dist/store/postgres.cjs +309 -0
- package/dist/store/postgres.cjs.map +1 -0
- package/dist/store/postgres.d.cts +77 -0
- package/dist/store/postgres.d.cts.map +1 -0
- package/dist/store/postgres.d.mts +77 -0
- package/dist/store/postgres.d.mts.map +1 -0
- package/dist/store/postgres.mjs +306 -0
- package/dist/store/postgres.mjs.map +1 -0
- package/dist/store/sql.cjs +24 -0
- package/dist/store/sql.cjs.map +1 -0
- package/dist/store/sql.d.cts +25 -0
- package/dist/store/sql.d.cts.map +1 -0
- package/dist/store/sql.d.mts +25 -0
- package/dist/store/sql.d.mts.map +1 -0
- package/dist/store/sql.mjs +23 -0
- package/dist/store/sql.mjs.map +1 -0
- package/dist/store/tables.cjs +404 -0
- package/dist/store/tables.cjs.map +1 -0
- package/dist/store/tables.d.cts +81 -0
- package/dist/store/tables.d.cts.map +1 -0
- package/dist/store/tables.d.mts +81 -0
- package/dist/store/tables.d.mts.map +1 -0
- package/dist/store/tables.mjs +399 -0
- package/dist/store/tables.mjs.map +1 -0
- package/dist/templates.cjs +247 -0
- package/dist/templates.cjs.map +1 -0
- package/dist/templates.d.cts +187 -0
- package/dist/templates.d.cts.map +1 -0
- package/dist/templates.d.mts +187 -0
- package/dist/templates.d.mts.map +1 -0
- package/dist/templates.mjs +230 -0
- package/dist/templates.mjs.map +1 -0
- package/dist/webhooks.cjs +96 -0
- package/dist/webhooks.cjs.map +1 -0
- package/dist/webhooks.d.cts +25 -0
- package/dist/webhooks.d.cts.map +1 -0
- package/dist/webhooks.d.mts +25 -0
- package/dist/webhooks.d.mts.map +1 -0
- package/dist/webhooks.mjs +94 -0
- package/dist/webhooks.mjs.map +1 -0
- package/dist/webpush.cjs +180 -0
- package/dist/webpush.cjs.map +1 -0
- package/dist/webpush.d.cts +53 -0
- package/dist/webpush.d.cts.map +1 -0
- package/dist/webpush.d.mts +53 -0
- package/dist/webpush.d.mts.map +1 -0
- package/dist/webpush.mjs +175 -0
- package/dist/webpush.mjs.map +1 -0
- package/package.json +189 -3
- package/src/cloudflare/schema.sql +127 -0
- package/src/cloudflare/workers.d.ts +44 -0
package/package.json
CHANGED
|
@@ -1,6 +1,192 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shware/workflow",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "git+https://github.com/ShwareHQ/shware-sdk.git"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"dist",
|
|
10
|
+
"src/cloudflare/schema.sql",
|
|
11
|
+
"src/cloudflare/workers.d.ts"
|
|
12
|
+
],
|
|
13
|
+
"type": "module",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"import": {
|
|
17
|
+
"types": "./dist/index.d.mts",
|
|
18
|
+
"default": "./dist/index.mjs"
|
|
19
|
+
},
|
|
20
|
+
"require": {
|
|
21
|
+
"types": "./dist/index.d.cts",
|
|
22
|
+
"default": "./dist/index.cjs"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"./engine": {
|
|
26
|
+
"import": {
|
|
27
|
+
"types": "./dist/engine/index.d.mts",
|
|
28
|
+
"default": "./dist/engine/index.mjs"
|
|
29
|
+
},
|
|
30
|
+
"require": {
|
|
31
|
+
"types": "./dist/engine/index.d.cts",
|
|
32
|
+
"default": "./dist/engine/index.cjs"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"./schema.sql": "./dist/cloudflare/schema.sql",
|
|
36
|
+
"./cloudflare": {
|
|
37
|
+
"import": {
|
|
38
|
+
"types": "./dist/cloudflare/index.d.mts",
|
|
39
|
+
"default": "./dist/cloudflare/index.mjs"
|
|
40
|
+
},
|
|
41
|
+
"require": {
|
|
42
|
+
"types": "./dist/cloudflare/index.d.cts",
|
|
43
|
+
"default": "./dist/cloudflare/index.cjs"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"./store": {
|
|
47
|
+
"import": {
|
|
48
|
+
"types": "./dist/store/index.d.mts",
|
|
49
|
+
"default": "./dist/store/index.mjs"
|
|
50
|
+
},
|
|
51
|
+
"require": {
|
|
52
|
+
"types": "./dist/store/index.d.cts",
|
|
53
|
+
"default": "./dist/store/index.cjs"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"./client": {
|
|
57
|
+
"import": {
|
|
58
|
+
"types": "./dist/client.d.mts",
|
|
59
|
+
"default": "./dist/client.mjs"
|
|
60
|
+
},
|
|
61
|
+
"require": {
|
|
62
|
+
"types": "./dist/client.d.cts",
|
|
63
|
+
"default": "./dist/client.cjs"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"./postgres-js": {
|
|
67
|
+
"import": {
|
|
68
|
+
"types": "./dist/postgres-js.d.mts",
|
|
69
|
+
"default": "./dist/postgres-js.mjs"
|
|
70
|
+
},
|
|
71
|
+
"require": {
|
|
72
|
+
"types": "./dist/postgres-js.d.cts",
|
|
73
|
+
"default": "./dist/postgres-js.cjs"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"./react-email": {
|
|
77
|
+
"import": {
|
|
78
|
+
"types": "./dist/react-email.d.mts",
|
|
79
|
+
"default": "./dist/react-email.mjs"
|
|
80
|
+
},
|
|
81
|
+
"require": {
|
|
82
|
+
"types": "./dist/react-email.d.cts",
|
|
83
|
+
"default": "./dist/react-email.cjs"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"./push": {
|
|
87
|
+
"import": {
|
|
88
|
+
"types": "./dist/push.d.mts",
|
|
89
|
+
"default": "./dist/push.mjs"
|
|
90
|
+
},
|
|
91
|
+
"require": {
|
|
92
|
+
"types": "./dist/push.d.cts",
|
|
93
|
+
"default": "./dist/push.cjs"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"./apns": {
|
|
97
|
+
"import": {
|
|
98
|
+
"types": "./dist/apns.d.mts",
|
|
99
|
+
"default": "./dist/apns.mjs"
|
|
100
|
+
},
|
|
101
|
+
"require": {
|
|
102
|
+
"types": "./dist/apns.d.cts",
|
|
103
|
+
"default": "./dist/apns.cjs"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"./apns-relay": {
|
|
107
|
+
"import": {
|
|
108
|
+
"types": "./dist/apns-relay.d.mts",
|
|
109
|
+
"default": "./dist/apns-relay.mjs"
|
|
110
|
+
},
|
|
111
|
+
"require": {
|
|
112
|
+
"types": "./dist/apns-relay.d.cts",
|
|
113
|
+
"default": "./dist/apns-relay.cjs"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"./fcm": {
|
|
117
|
+
"import": {
|
|
118
|
+
"types": "./dist/fcm.d.mts",
|
|
119
|
+
"default": "./dist/fcm.mjs"
|
|
120
|
+
},
|
|
121
|
+
"require": {
|
|
122
|
+
"types": "./dist/fcm.d.cts",
|
|
123
|
+
"default": "./dist/fcm.cjs"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"./webpush": {
|
|
127
|
+
"import": {
|
|
128
|
+
"types": "./dist/webpush.d.mts",
|
|
129
|
+
"default": "./dist/webpush.mjs"
|
|
130
|
+
},
|
|
131
|
+
"require": {
|
|
132
|
+
"types": "./dist/webpush.d.cts",
|
|
133
|
+
"default": "./dist/webpush.cjs"
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"./webhooks": {
|
|
137
|
+
"import": {
|
|
138
|
+
"types": "./dist/webhooks.d.mts",
|
|
139
|
+
"default": "./dist/webhooks.mjs"
|
|
140
|
+
},
|
|
141
|
+
"require": {
|
|
142
|
+
"types": "./dist/webhooks.d.cts",
|
|
143
|
+
"default": "./dist/webhooks.cjs"
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"publishConfig": {
|
|
148
|
+
"access": "public"
|
|
149
|
+
},
|
|
150
|
+
"dependencies": {
|
|
151
|
+
"@slack/types": "^3.2.0",
|
|
152
|
+
"@types/ms": "^2.1.0",
|
|
153
|
+
"discord-api-types": "^0.38.56",
|
|
154
|
+
"ms": "^2.1.3",
|
|
155
|
+
"zod": "^4.6.5"
|
|
156
|
+
},
|
|
157
|
+
"devDependencies": {
|
|
158
|
+
"@electric-sql/pglite": "^0.5.8",
|
|
159
|
+
"@repo/typescript-config": "0.0.0",
|
|
160
|
+
"@types/node": "^26.6.3",
|
|
161
|
+
"@types/react": "^19.2.18",
|
|
162
|
+
"@types/react-dom": "^19.2.5",
|
|
163
|
+
"postgres": "^3.4.9",
|
|
164
|
+
"react": "^19.2.8",
|
|
165
|
+
"react-dom": "^19.2.8",
|
|
166
|
+
"typescript": "^7.0.2",
|
|
167
|
+
"vitest": "^5.0.2"
|
|
168
|
+
},
|
|
169
|
+
"peerDependencies": {
|
|
170
|
+
"postgres": ">=3.4.0",
|
|
171
|
+
"react": ">=19",
|
|
172
|
+
"react-dom": ">=19"
|
|
173
|
+
},
|
|
174
|
+
"peerDependenciesMeta": {
|
|
175
|
+
"postgres": {
|
|
176
|
+
"optional": true
|
|
177
|
+
},
|
|
178
|
+
"react": {
|
|
179
|
+
"optional": true
|
|
180
|
+
},
|
|
181
|
+
"react-dom": {
|
|
182
|
+
"optional": true
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"scripts": {
|
|
186
|
+
"dev": "tsc --watch",
|
|
187
|
+
"build": "tsdown",
|
|
188
|
+
"test": "vitest run --passWithNoTests",
|
|
189
|
+
"check-types": "tsc --noEmit",
|
|
190
|
+
"lint": "oxlint --type-aware src tests --fix"
|
|
191
|
+
}
|
|
6
192
|
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
-- Journey engine data plane (D1). Conditions are evaluated by querying at
|
|
2
|
+
-- decision time: lazy, with no real-time segment materialisation.
|
|
3
|
+
|
|
4
|
+
-- Raw event log. Every count- and window-based condition reads this table, so a
|
|
5
|
+
-- duplicated row silently changes a journey's behaviour, and `id` is what stops
|
|
6
|
+
-- that: it is the occurrence's identity, chosen by whoever sent it, and the key
|
|
7
|
+
-- constraint makes a second delivery of the same occurrence a no-op. Ingest is
|
|
8
|
+
-- reachable from two retrying callers (a client retrying a 500, and the
|
|
9
|
+
-- interpreter's send_event step being retried after it already committed its
|
|
10
|
+
-- row), so both pass an id they can reproduce.
|
|
11
|
+
--
|
|
12
|
+
-- Only the sender knows whether two deliveries describe one occurrence or two,
|
|
13
|
+
-- so the engine never invents that answer: an ingest that arrives without an id
|
|
14
|
+
-- is given a fresh one, which is a truthful "this is its own occurrence" rather
|
|
15
|
+
-- than a guess.
|
|
16
|
+
CREATE TABLE IF NOT EXISTS events (
|
|
17
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
18
|
+
user_id TEXT NOT NULL,
|
|
19
|
+
name TEXT NOT NULL,
|
|
20
|
+
ts INTEGER NOT NULL,
|
|
21
|
+
payload TEXT NOT NULL DEFAULT '{}'
|
|
22
|
+
);
|
|
23
|
+
CREATE INDEX IF NOT EXISTS idx_events_user_name_ts ON events (user_id, name, ts);
|
|
24
|
+
|
|
25
|
+
CREATE TABLE IF NOT EXISTS profiles (
|
|
26
|
+
user_id TEXT PRIMARY KEY,
|
|
27
|
+
props TEXT NOT NULL DEFAULT '{}'
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
-- Deploy artefacts: segment definitions (resolved by id during evaluation)
|
|
31
|
+
-- and the trigger routing table.
|
|
32
|
+
-- Push devices: one row per provider token, owned by the user who registered it last.
|
|
33
|
+
-- user_id is null for a device whose user signed out: it stays registered until the next
|
|
34
|
+
-- sign-in binds it again. A database created while it was NOT NULL needs the table rebuilt.
|
|
35
|
+
CREATE TABLE IF NOT EXISTS devices (
|
|
36
|
+
token TEXT PRIMARY KEY,
|
|
37
|
+
user_id TEXT,
|
|
38
|
+
platform TEXT NOT NULL,
|
|
39
|
+
ts INTEGER NOT NULL
|
|
40
|
+
);
|
|
41
|
+
CREATE INDEX IF NOT EXISTS idx_devices_user_ts ON devices (user_id, ts);
|
|
42
|
+
|
|
43
|
+
CREATE TABLE IF NOT EXISTS segments (
|
|
44
|
+
id TEXT PRIMARY KEY,
|
|
45
|
+
condition TEXT NOT NULL,
|
|
46
|
+
hash TEXT NOT NULL
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
-- Event trigger routes. `where` gates on the triggering event's payload
|
|
50
|
+
-- (a payload-only condition tree); `filter` gates on the profile.
|
|
51
|
+
CREATE TABLE IF NOT EXISTS triggers (
|
|
52
|
+
workflow TEXT PRIMARY KEY,
|
|
53
|
+
hash TEXT NOT NULL,
|
|
54
|
+
event TEXT NOT NULL,
|
|
55
|
+
"where" TEXT,
|
|
56
|
+
filter TEXT
|
|
57
|
+
);
|
|
58
|
+
CREATE INDEX IF NOT EXISTS idx_triggers_event ON triggers (event);
|
|
59
|
+
|
|
60
|
+
-- Segment-entry trigger routes.
|
|
61
|
+
CREATE TABLE IF NOT EXISTS segment_triggers (
|
|
62
|
+
workflow TEXT PRIMARY KEY,
|
|
63
|
+
hash TEXT NOT NULL,
|
|
64
|
+
segment TEXT NOT NULL
|
|
65
|
+
);
|
|
66
|
+
CREATE INDEX IF NOT EXISTS idx_segment_triggers_segment ON segment_triggers (segment);
|
|
67
|
+
|
|
68
|
+
-- Lazily maintained segment membership, covering only segments that something
|
|
69
|
+
-- triggers on. Transitions are re-evaluated when the user is ingested or
|
|
70
|
+
-- identified, and by the scheduled sweep (journeyWorker's `scheduled`), which
|
|
71
|
+
-- also catches drift driven purely by the clock.
|
|
72
|
+
CREATE TABLE IF NOT EXISTS segment_members (
|
|
73
|
+
segment TEXT NOT NULL,
|
|
74
|
+
user_id TEXT NOT NULL,
|
|
75
|
+
ts INTEGER NOT NULL,
|
|
76
|
+
PRIMARY KEY (segment, user_id)
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
-- Workflows a segment entry still has to start for a member: written with the
|
|
80
|
+
-- membership, removed as each starts, so a failed start is retried by the next
|
|
81
|
+
-- evaluation instead of being hidden behind the membership.
|
|
82
|
+
CREATE TABLE IF NOT EXISTS segment_starts (
|
|
83
|
+
segment TEXT NOT NULL,
|
|
84
|
+
workflow TEXT NOT NULL,
|
|
85
|
+
user_id TEXT NOT NULL,
|
|
86
|
+
ts INTEGER NOT NULL,
|
|
87
|
+
PRIMARY KEY (segment, workflow, user_id)
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
-- Erasures in progress (forgetUser): the user's data stays until every running
|
|
91
|
+
-- instance is stopped, and the scheduled sweep retries what is left.
|
|
92
|
+
CREATE TABLE IF NOT EXISTS erasures (
|
|
93
|
+
user_id TEXT PRIMARY KEY,
|
|
94
|
+
ts INTEGER NOT NULL
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
-- Entry ledger: the once-per-user policy, instance addressing, and the audit
|
|
98
|
+
-- trail of which IR version each user was pinned to.
|
|
99
|
+
--
|
|
100
|
+
-- The primary key is what makes the policy atomic, and it is also the whole
|
|
101
|
+
-- policy: a user who has entered cannot enter again. The one exception is a
|
|
102
|
+
-- row left at 'failed', which records an instance that died rather than a
|
|
103
|
+
-- journey the user received; the router takes such a row over so the entry can
|
|
104
|
+
-- be retried (see startJourney). A general re-entry policy is a separate
|
|
105
|
+
-- design question and deliberately not encoded here.
|
|
106
|
+
CREATE TABLE IF NOT EXISTS entries (
|
|
107
|
+
workflow TEXT NOT NULL,
|
|
108
|
+
user_id TEXT NOT NULL,
|
|
109
|
+
instance_id TEXT NOT NULL,
|
|
110
|
+
hash TEXT NOT NULL,
|
|
111
|
+
status TEXT NOT NULL,
|
|
112
|
+
ts INTEGER NOT NULL,
|
|
113
|
+
PRIMARY KEY (workflow, user_id)
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
-- wait_until wake routing. `wake_handle` is an opaque handle (the instance id
|
|
117
|
+
-- on Cloudflare, a callback id on AWS). The primary key makes the interpreter's
|
|
118
|
+
-- re-subscription on every wait attempt idempotent, which its one-shot-callback
|
|
119
|
+
-- contract requires.
|
|
120
|
+
CREATE TABLE IF NOT EXISTS subscriptions (
|
|
121
|
+
user_id TEXT NOT NULL,
|
|
122
|
+
event TEXT NOT NULL,
|
|
123
|
+
wake_handle TEXT NOT NULL,
|
|
124
|
+
ts INTEGER NOT NULL,
|
|
125
|
+
PRIMARY KEY (wake_handle, event)
|
|
126
|
+
);
|
|
127
|
+
CREATE INDEX IF NOT EXISTS idx_subs_user_event ON subscriptions (user_id, event);
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal ambient declaration for cloudflare:workers — only the surface
|
|
3
|
+
* JourneyRunner actually uses. @cloudflare/workers-types is avoided because its
|
|
4
|
+
* global types clash with react/DOM. Shapes follow the official API:
|
|
5
|
+
* https://developers.cloudflare.com/workflows/build/workers-api/
|
|
6
|
+
*/
|
|
7
|
+
declare module 'cloudflare:workers' {
|
|
8
|
+
export interface WorkflowEvent<Params = unknown> {
|
|
9
|
+
payload: Readonly<Params>;
|
|
10
|
+
timestamp: Date;
|
|
11
|
+
instanceId: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface WorkflowStepEvent<Payload = unknown> {
|
|
15
|
+
payload: Payload;
|
|
16
|
+
timestamp: Date;
|
|
17
|
+
type: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export interface WorkflowStep {
|
|
21
|
+
do<T>(name: string, callback: () => Promise<T>): Promise<T>;
|
|
22
|
+
sleep(name: string, durationMs: number | string): Promise<void>;
|
|
23
|
+
sleepUntil(name: string, timestamp: Date | number): Promise<void>;
|
|
24
|
+
waitForEvent<Payload = unknown>(
|
|
25
|
+
name: string,
|
|
26
|
+
options: { type: string; timeout?: number | string }
|
|
27
|
+
): Promise<WorkflowStepEvent<Payload>>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export abstract class WorkflowEntrypoint<Env = unknown, Params = unknown> {
|
|
31
|
+
/** The runtime constructs it with the execution context and the bindings. */
|
|
32
|
+
constructor(ctx: unknown, env: Env);
|
|
33
|
+
protected readonly ctx: unknown;
|
|
34
|
+
protected readonly env: Env;
|
|
35
|
+
abstract run(event: WorkflowEvent<Params>, step: WorkflowStep): Promise<unknown>;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** The one export of cloudflare:workflows the runner uses: an error that ends the step without retries. */
|
|
40
|
+
declare module 'cloudflare:workflows' {
|
|
41
|
+
export class NonRetryableError extends Error {
|
|
42
|
+
constructor(message: string, name?: string);
|
|
43
|
+
}
|
|
44
|
+
}
|