@heyo-sh/heyo-cms 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 +44 -2
- package/dist/access/index.d.ts +9 -0
- package/dist/access/index.d.ts.map +1 -0
- package/dist/access/permissions.d.ts +54 -0
- package/dist/access/permissions.d.ts.map +1 -0
- package/dist/adapters/astro.d.ts +38 -0
- package/dist/adapters/astro.d.ts.map +1 -0
- package/dist/adapters/astro.js +1 -0
- package/dist/adapters/next.d.ts +31 -0
- package/dist/adapters/next.d.ts.map +1 -0
- package/dist/adapters/next.js +1 -0
- package/dist/adapters/nuxt.d.ts +47 -0
- package/dist/adapters/nuxt.d.ts.map +1 -0
- package/dist/adapters/nuxt.js +1 -0
- package/dist/adapters/react-router.d.ts +29 -0
- package/dist/adapters/react-router.d.ts.map +1 -0
- package/dist/adapters/react-router.js +1 -0
- package/dist/adapters/sveltekit.d.ts +37 -0
- package/dist/adapters/sveltekit.d.ts.map +1 -0
- package/dist/adapters/sveltekit.js +1 -0
- package/dist/ai/assistant/context.d.ts +64 -0
- package/dist/ai/assistant/context.d.ts.map +1 -0
- package/dist/ai/assistant/limits.d.ts +10 -0
- package/dist/ai/assistant/limits.d.ts.map +1 -0
- package/dist/ai/assistant/plans.d.ts +83 -0
- package/dist/ai/assistant/plans.d.ts.map +1 -0
- package/dist/ai/assistant/prompt.d.ts +22 -0
- package/dist/ai/assistant/prompt.d.ts.map +1 -0
- package/dist/ai/assistant/run.d.ts +59 -0
- package/dist/ai/assistant/run.d.ts.map +1 -0
- package/dist/ai/assistant/runtime.d.ts +35 -0
- package/dist/ai/assistant/runtime.d.ts.map +1 -0
- package/dist/ai/assistant/schema.d.ts +66 -0
- package/dist/ai/assistant/schema.d.ts.map +1 -0
- package/dist/ai/assistant/tools.d.ts +41 -0
- package/dist/ai/assistant/tools.d.ts.map +1 -0
- package/dist/ai/assistant/values.d.ts +33 -0
- package/dist/ai/assistant/values.d.ts.map +1 -0
- package/dist/ai/crypto.d.ts +12 -0
- package/dist/ai/crypto.d.ts.map +1 -0
- package/dist/ai/index.d.ts +19 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/pi.d.ts +89 -0
- package/dist/ai/pi.d.ts.map +1 -0
- package/dist/ai/registry.d.ts +66 -0
- package/dist/ai/registry.d.ts.map +1 -0
- package/dist/ai/service.d.ts +31 -0
- package/dist/ai/service.d.ts.map +1 -0
- package/dist/ai/variant-translation.d.ts +6 -0
- package/dist/ai/variant-translation.d.ts.map +1 -0
- package/dist/ai.d.ts +12 -0
- package/dist/ai.d.ts.map +1 -0
- package/dist/ai.js +1 -0
- package/dist/auth/config.d.ts +65 -0
- package/dist/auth/config.d.ts.map +1 -0
- package/dist/auth/crypto.d.ts +44 -0
- package/dist/auth/crypto.d.ts.map +1 -0
- package/dist/auth/index.d.ts +15 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/oauth.d.ts +93 -0
- package/dist/auth/oauth.d.ts.map +1 -0
- package/dist/auth/service.d.ts +38 -0
- package/dist/auth/service.d.ts.map +1 -0
- package/dist/auth/totp.d.ts +34 -0
- package/dist/auth/totp.d.ts.map +1 -0
- package/dist/auth.d.ts +9 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +30 -0
- package/dist/client/index.d.ts +51 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/types.d.ts +340 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client.d.ts +46 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +1 -0
- package/dist/config.d.ts +31 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +1 -0
- package/dist/content/export.d.ts +28 -0
- package/dist/content/export.d.ts.map +1 -0
- package/dist/content/import.d.ts +65 -0
- package/dist/content/import.d.ts.map +1 -0
- package/dist/content/records.d.ts +73 -0
- package/dist/content/records.d.ts.map +1 -0
- package/dist/content.d.ts +12 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +1 -0
- package/dist/db/d1.d.ts +29 -0
- package/dist/db/d1.d.ts.map +1 -0
- package/dist/db/d1.js +1 -0
- package/dist/db/mongodb.d.ts +128 -0
- package/dist/db/mongodb.d.ts.map +1 -0
- package/dist/db/mongodb.js +2 -0
- package/dist/db/postgres.d.ts +37 -0
- package/dist/db/postgres.d.ts.map +1 -0
- package/dist/db/postgres.js +1 -0
- package/dist/db/sql/adapter.d.ts +57 -0
- package/dist/db/sql/adapter.d.ts.map +1 -0
- package/dist/db/sql/compile.d.ts +50 -0
- package/dist/db/sql/compile.d.ts.map +1 -0
- package/dist/db/sql/ddl.d.ts +34 -0
- package/dist/db/sql/ddl.d.ts.map +1 -0
- package/dist/db/sql/dialect.d.ts +35 -0
- package/dist/db/sql/dialect.d.ts.map +1 -0
- package/dist/db/sql/driver.d.ts +34 -0
- package/dist/db/sql/driver.d.ts.map +1 -0
- package/dist/db/sql/introspect.d.ts +15 -0
- package/dist/db/sql/introspect.d.ts.map +1 -0
- package/dist/db/sqlite.d.ts +39 -0
- package/dist/db/sqlite.d.ts.map +1 -0
- package/dist/db/sqlite.js +1 -0
- package/dist/defaults.d.ts +5 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/duration.d.ts +12 -0
- package/dist/duration.d.ts.map +1 -0
- package/dist/editor/builtin.d.ts +45 -0
- package/dist/editor/builtin.d.ts.map +1 -0
- package/dist/editor/index.d.ts +14 -0
- package/dist/editor/index.d.ts.map +1 -0
- package/dist/editor/markdown.d.ts +19 -0
- package/dist/editor/markdown.d.ts.map +1 -0
- package/dist/editor/registry.d.ts +30 -0
- package/dist/editor/registry.d.ts.map +1 -0
- package/dist/editor/serialize.d.ts +41 -0
- package/dist/editor/serialize.d.ts.map +1 -0
- package/dist/editor.d.ts +10 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/editor.js +1 -0
- package/dist/engine/access.d.ts +33 -0
- package/dist/engine/access.d.ts.map +1 -0
- package/dist/engine/activity.d.ts +16 -0
- package/dist/engine/activity.d.ts.map +1 -0
- package/dist/engine/cursor.d.ts +19 -0
- package/dist/engine/cursor.d.ts.map +1 -0
- package/dist/engine/documents.d.ts +81 -0
- package/dist/engine/documents.d.ts.map +1 -0
- package/dist/engine/engine.d.ts +276 -0
- package/dist/engine/engine.d.ts.map +1 -0
- package/dist/engine/field-access.d.ts +21 -0
- package/dist/engine/field-access.d.ts.map +1 -0
- package/dist/engine/hooks.d.ts +58 -0
- package/dist/engine/hooks.d.ts.map +1 -0
- package/dist/engine/index.d.ts +20 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/jobs.d.ts +63 -0
- package/dist/engine/jobs.d.ts.map +1 -0
- package/dist/engine/locales.d.ts +40 -0
- package/dist/engine/locales.d.ts.map +1 -0
- package/dist/engine/outbox.d.ts +81 -0
- package/dist/engine/outbox.d.ts.map +1 -0
- package/dist/engine/relations.d.ts +60 -0
- package/dist/engine/relations.d.ts.map +1 -0
- package/dist/engine/scoped-db.d.ts +13 -0
- package/dist/engine/scoped-db.d.ts.map +1 -0
- package/dist/engine/trash.d.ts +25 -0
- package/dist/engine/trash.d.ts.map +1 -0
- package/dist/errors.d.ts +42 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/fields/builtin.d.ts +142 -0
- package/dist/fields/builtin.d.ts.map +1 -0
- package/dist/fields/index.d.ts +3 -0
- package/dist/fields/index.d.ts.map +1 -0
- package/dist/fields/registry.d.ts +35 -0
- package/dist/fields/registry.d.ts.map +1 -0
- package/dist/fields.d.ts +8 -0
- package/dist/fields.d.ts.map +1 -0
- package/dist/fields.js +1 -0
- package/dist/http/guard.d.ts +45 -0
- package/dist/http/guard.d.ts.map +1 -0
- package/dist/http/handler.d.ts +31 -0
- package/dist/http/handler.d.ts.map +1 -0
- package/dist/http/index.d.ts +13 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/openapi.d.ts +5 -0
- package/dist/http/openapi.d.ts.map +1 -0
- package/dist/http/params.d.ts +32 -0
- package/dist/http/params.d.ts.map +1 -0
- package/dist/http/request-db.d.ts +19 -0
- package/dist/http/request-db.d.ts.map +1 -0
- package/dist/http/respond.d.ts +48 -0
- package/dist/http/respond.d.ts.map +1 -0
- package/dist/http/rich-text.d.ts +30 -0
- package/dist/http/rich-text.d.ts.map +1 -0
- package/dist/http/router.d.ts +55 -0
- package/dist/http/router.d.ts.map +1 -0
- package/dist/http/routes/access.d.ts +13 -0
- package/dist/http/routes/access.d.ts.map +1 -0
- package/dist/http/routes/admin.d.ts +28 -0
- package/dist/http/routes/admin.d.ts.map +1 -0
- package/dist/http/routes/ai.d.ts +26 -0
- package/dist/http/routes/ai.d.ts.map +1 -0
- package/dist/http/routes/auth.d.ts +13 -0
- package/dist/http/routes/auth.d.ts.map +1 -0
- package/dist/http/routes/documents.d.ts +24 -0
- package/dist/http/routes/documents.d.ts.map +1 -0
- package/dist/http/routes/generate.d.ts +5 -0
- package/dist/http/routes/generate.d.ts.map +1 -0
- package/dist/http/routes/media.d.ts +28 -0
- package/dist/http/routes/media.d.ts.map +1 -0
- package/dist/http/routes/panel.d.ts +20 -0
- package/dist/http/routes/panel.d.ts.map +1 -0
- package/dist/http/routes/system.d.ts +25 -0
- package/dist/http/routes/system.d.ts.map +1 -0
- package/dist/http/routes/webhooks.d.ts +17 -0
- package/dist/http/routes/webhooks.d.ts.map +1 -0
- package/dist/http/spec.d.ts +28 -0
- package/dist/http/spec.d.ts.map +1 -0
- package/dist/http.d.ts +17 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +1 -0
- package/dist/i18n/index.d.ts +12 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/names.d.ts +25 -0
- package/dist/i18n/names.d.ts.map +1 -0
- package/dist/ids.d.ts +28 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/index-2757kej5.js +2 -0
- package/dist/index-2kb5nbxx.js +2 -0
- package/dist/index-2z1qe5mw.js +2 -0
- package/dist/index-34s342fz.js +2 -0
- package/dist/index-5ngtc7gy.js +2 -0
- package/dist/index-7a231xfp.js +2 -0
- package/dist/index-7k091gpe.js +2 -0
- package/dist/index-9g2n7xa6.js +2 -0
- package/dist/index-9x1z3b85.js +5 -0
- package/dist/index-9zqnf6gx.js +23 -0
- package/dist/index-b2ecggck.js +26 -0
- package/dist/index-cbwwtcm4.js +2 -0
- package/dist/index-ebtj6ebd.js +0 -0
- package/dist/index-g4crf47y.js +0 -0
- package/dist/index-gpwcmmvr.js +2 -0
- package/dist/index-hq05mc1n.js +3 -0
- package/dist/index-hy1x46nf.js +2 -0
- package/dist/index-k8wbg1dw.js +2 -0
- package/dist/index-kbsgt44t.js +2 -0
- package/dist/index-m82a0shw.js +2 -0
- package/dist/index-md79xr6h.js +5 -0
- package/dist/index-nvgwyykk.js +40 -0
- package/dist/index-ty698y02.js +2 -0
- package/dist/index-vq2978e7.js +14 -0
- package/dist/index-vxw0a03g.js +2 -0
- package/dist/index-wj8y1xcj.js +2 -0
- package/dist/index-x72d1hzh.js +2 -0
- package/dist/index-y5mwknr9.js +2 -0
- package/dist/index-ymq6jsar.js +2 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/jobs/runner.d.ts +77 -0
- package/dist/jobs/runner.d.ts.map +1 -0
- package/dist/jobs.d.ts +11 -0
- package/dist/jobs.d.ts.map +1 -0
- package/dist/jobs.js +1 -0
- package/dist/media/document.d.ts +28 -0
- package/dist/media/document.d.ts.map +1 -0
- package/dist/media/gc.d.ts +46 -0
- package/dist/media/gc.d.ts.map +1 -0
- package/dist/media/index.d.ts +20 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/pipeline.d.ts +36 -0
- package/dist/media/pipeline.d.ts.map +1 -0
- package/dist/media/probe.d.ts +6 -0
- package/dist/media/probe.d.ts.map +1 -0
- package/dist/media/service.d.ts +26 -0
- package/dist/media/service.d.ts.map +1 -0
- package/dist/media/sharp.d.ts +28 -0
- package/dist/media/sharp.d.ts.map +1 -0
- package/dist/media/strip.d.ts +16 -0
- package/dist/media/strip.d.ts.map +1 -0
- package/dist/media/usages.d.ts +69 -0
- package/dist/media/usages.d.ts.map +1 -0
- package/dist/media/variants.d.ts +50 -0
- package/dist/media/variants.d.ts.map +1 -0
- package/dist/migrations.d.ts +115 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +1 -0
- package/dist/panel.d.ts +31 -0
- package/dist/panel.d.ts.map +1 -0
- package/dist/query.d.ts +40 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +1 -0
- package/dist/run-3r72dwhs.js +6 -0
- package/dist/schema/describe.d.ts +19 -0
- package/dist/schema/describe.d.ts.map +1 -0
- package/dist/schema/index.d.ts +5 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/plan.d.ts +20 -0
- package/dist/schema/plan.d.ts.map +1 -0
- package/dist/schema/snapshot.d.ts +22 -0
- package/dist/schema/snapshot.d.ts.map +1 -0
- package/dist/schema/system.d.ts +22 -0
- package/dist/schema/system.d.ts.map +1 -0
- package/dist/schema.d.ts +7 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +1 -0
- package/dist/storage/bytes.d.ts +17 -0
- package/dist/storage/bytes.d.ts.map +1 -0
- package/dist/storage/http.d.ts +43 -0
- package/dist/storage/http.d.ts.map +1 -0
- package/dist/storage/local.d.ts +31 -0
- package/dist/storage/local.d.ts.map +1 -0
- package/dist/storage/providers.d.ts +95 -0
- package/dist/storage/providers.d.ts.map +1 -0
- package/dist/storage/sign.d.ts +53 -0
- package/dist/storage/sign.d.ts.map +1 -0
- package/dist/strings.d.ts +13 -0
- package/dist/strings.d.ts.map +1 -0
- package/dist/telemetry.d.ts +137 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +1 -0
- package/dist/types/activity.d.ts +68 -0
- package/dist/types/activity.d.ts.map +1 -0
- package/dist/types/actor.d.ts +26 -0
- package/dist/types/actor.d.ts.map +1 -0
- package/dist/types/ai.d.ts +357 -0
- package/dist/types/ai.d.ts.map +1 -0
- package/dist/types/api.d.ts +212 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/auth.d.ts +310 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/config.d.ts +632 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/database.d.ts +75 -0
- package/dist/types/database.d.ts.map +1 -0
- package/dist/types/editor.d.ts +140 -0
- package/dist/types/editor.d.ts.map +1 -0
- package/dist/types/events.d.ts +72 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/fields.d.ts +142 -0
- package/dist/types/fields.d.ts.map +1 -0
- package/dist/types/hooks.d.ts +142 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/index.d.ts +25 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/instance.d.ts +263 -0
- package/dist/types/instance.d.ts.map +1 -0
- package/dist/types/jobs.d.ts +78 -0
- package/dist/types/jobs.d.ts.map +1 -0
- package/dist/types/json.d.ts +24 -0
- package/dist/types/json.d.ts.map +1 -0
- package/dist/types/locales.d.ts +30 -0
- package/dist/types/locales.d.ts.map +1 -0
- package/dist/types/media.d.ts +245 -0
- package/dist/types/media.d.ts.map +1 -0
- package/dist/types/panel.d.ts +249 -0
- package/dist/types/panel.d.ts.map +1 -0
- package/dist/types/plugin.d.ts +172 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/query.d.ts +101 -0
- package/dist/types/query.d.ts.map +1 -0
- package/dist/types/schema.d.ts +203 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/storage.d.ts +61 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/telemetry.d.ts +14 -0
- package/dist/types/telemetry.d.ts.map +1 -0
- package/dist/types/trash.d.ts +42 -0
- package/dist/types/trash.d.ts.map +1 -0
- package/dist/types/webhooks.d.ts +133 -0
- package/dist/types/webhooks.d.ts.map +1 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/uploads.d.ts +21 -0
- package/dist/uploads.d.ts.map +1 -0
- package/dist/uploads.js +9 -0
- package/dist/webhooks/index.d.ts +10 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/job.d.ts +17 -0
- package/dist/webhooks/job.d.ts.map +1 -0
- package/dist/webhooks/service.d.ts +53 -0
- package/dist/webhooks/service.d.ts.map +1 -0
- package/dist/webhooks/sign.d.ts +26 -0
- package/dist/webhooks/sign.d.ts.map +1 -0
- package/dist/webhooks.d.ts +10 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/dist/webhooks.js +1 -0
- package/package.json +183 -4
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { ResolvedCmsConfig } from "../types/config";
|
|
2
|
+
import type { DatabaseAdapter } from "../types/database";
|
|
3
|
+
import type { Tx } from "../types/query";
|
|
4
|
+
import type { CmsWebhooks, WebhookDelivery } from "../types/webhooks";
|
|
5
|
+
import type { BufferedEvent, OutboxEntryMeta } from "../engine/outbox";
|
|
6
|
+
/**
|
|
7
|
+
* The service, plus the one operation only a sweep needs.
|
|
8
|
+
*
|
|
9
|
+
* `cms.webhooks` is the public `CmsWebhooks`; the runner holds this. Keeping
|
|
10
|
+
* "re-attempt this exact row" off the public type is deliberate: a caller
|
|
11
|
+
* that wants to re-send something wants `retry()`, which records a new
|
|
12
|
+
* attempt instead of quietly rewriting the history of an old one.
|
|
13
|
+
*/
|
|
14
|
+
export interface WebhookRuntime extends CmsWebhooks {
|
|
15
|
+
attemptDelivery(id: string, at?: Date): Promise<WebhookDelivery | null>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* What the service needs from `fetch`, and no more.
|
|
19
|
+
*
|
|
20
|
+
* Narrower than `typeof fetch` on purpose: that type carries whatever the
|
|
21
|
+
* host runtime bolted on — Bun adds `preconnect` — and a package that has to
|
|
22
|
+
* build the same way on Node, Bun and Workers cannot depend on which one is
|
|
23
|
+
* compiling it.
|
|
24
|
+
*/
|
|
25
|
+
export type WebhookFetch = (url: string, init: RequestInit) => Promise<Response>;
|
|
26
|
+
export interface WebhookServiceOptions {
|
|
27
|
+
config: ResolvedCmsConfig;
|
|
28
|
+
database(): Promise<DatabaseAdapter>;
|
|
29
|
+
emit(tx: Tx, events: BufferedEvent[], meta: OutboxEntryMeta): Promise<void>;
|
|
30
|
+
deliver(): void;
|
|
31
|
+
/** Injectable so a test does not need a socket. Defaults to `fetch`. */
|
|
32
|
+
fetch?: WebhookFetch;
|
|
33
|
+
now?: () => Date;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* `cms.webhooks`.
|
|
37
|
+
*
|
|
38
|
+
* The contract, in one place, is section 7:
|
|
39
|
+
*
|
|
40
|
+
* - **Signed.** Every request carries an HMAC over `timestamp.body`, so a
|
|
41
|
+
* receiver can tell a delivery from a stranger with a URL.
|
|
42
|
+
* - **Identified.** `x-heyo-event-id` and `x-heyo-delivery-id` let a consumer
|
|
43
|
+
* be idempotent, which matters because retries are a promise rather than an
|
|
44
|
+
* accident.
|
|
45
|
+
* - **Retried, then parked.** Five attempts with exponential backoff, then
|
|
46
|
+
* the delivery is `failed` and stays in the table for replay. A dead letter
|
|
47
|
+
* that disappears is a dead letter nobody can act on.
|
|
48
|
+
* - **Ordered per document, not globally.** The outbox is drained in
|
|
49
|
+
* insertion order and a document's events are inserted in the order they
|
|
50
|
+
* happened; across documents, parallel delivery is the point.
|
|
51
|
+
*/
|
|
52
|
+
export declare function createWebhooks(options: WebhookServiceOptions): WebhookRuntime;
|
|
53
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/webhooks/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,KAAK,EAAgB,EAAE,EAAS,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EACV,WAAW,EAEX,eAAe,EAUhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAUvE;;;;;;;GAOG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;CACzE;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,OAAO,IAAI,IAAI,CAAC;IAChB,wEAAwE;IACxE,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CA4gB7E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The signature a consumer verifies.
|
|
3
|
+
*
|
|
4
|
+
* `t=<unix seconds>,v1=<hex hmac>` over `${t}.${body}`, which is the shape
|
|
5
|
+
* Stripe popularised and most receivers already have code for. The timestamp
|
|
6
|
+
* is inside the signed string on purpose: without it a captured delivery can
|
|
7
|
+
* be replayed forever, and the consumer has no way to notice.
|
|
8
|
+
*/
|
|
9
|
+
export declare const signatureHeader = "x-heyo-signature";
|
|
10
|
+
export declare function signPayload(body: string, secret: string, timestamp?: number): Promise<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Verifies a signature the way a consumer should.
|
|
13
|
+
*
|
|
14
|
+
* Exported because the first thing anybody writes after subscribing is this
|
|
15
|
+
* function, and the second thing they do is get it subtly wrong — comparing
|
|
16
|
+
* with `===`, or forgetting that the timestamp is part of the signed string.
|
|
17
|
+
*/
|
|
18
|
+
export declare function verifySignature(options: {
|
|
19
|
+
body: string;
|
|
20
|
+
header: string;
|
|
21
|
+
secret: string;
|
|
22
|
+
/** Rejects a delivery older than this. Defaults to five minutes. */
|
|
23
|
+
toleranceSeconds?: number;
|
|
24
|
+
now?: number;
|
|
25
|
+
}): Promise<boolean>;
|
|
26
|
+
//# sourceMappingURL=sign.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../src/webhooks/sign.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAElD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,SAAgC,GACxC,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@heyo-sh/heyo-cms/webhooks`.
|
|
3
|
+
*
|
|
4
|
+
* Subscriptions are managed through `cms.webhooks` and the routes under
|
|
5
|
+
* `/webhooks`. What is here is the part a *consumer* needs: the signature
|
|
6
|
+
* scheme, and a verifier so nobody has to write the HMAC comparison again.
|
|
7
|
+
*/
|
|
8
|
+
export { signatureHeader, signPayload, verifySignature } from "./webhooks/sign";
|
|
9
|
+
export type { CmsWebhooks, WebhookCreateArgs, WebhookDelivery, WebhookDeliveryListArgs, WebhookDeliveryPage, WebhookDeliveryStatus, WebhookDispatchReport, WebhookFilters, WebhookListArgs, WebhookRetryArgs, WebhookSubscription, WebhookTestArgs, WebhookUpdateArgs, } from "./types/webhooks";
|
|
10
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAChF,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC"}
|
package/dist/webhooks.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{be,we,wn}from"./index-7k091gpe.js";export{we as signPayload,be as signatureHeader,wn as verifySignature};
|
package/package.json
CHANGED
|
@@ -1,6 +1,185 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heyo-sh/heyo-cms",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Framework-agnostic, TypeScript-first headless CMS with its own panel, RBAC, i18n, native AI and first-class media.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"cms",
|
|
7
|
+
"headless-cms",
|
|
8
|
+
"typescript",
|
|
9
|
+
"postgres",
|
|
10
|
+
"mongodb",
|
|
11
|
+
"sqlite",
|
|
12
|
+
"cloudflare-workers",
|
|
13
|
+
"vercel"
|
|
14
|
+
],
|
|
15
|
+
"homepage": "https://heyo.sh",
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/heyo-sh/heyo-cms.git",
|
|
19
|
+
"directory": "packages/heyo-cms"
|
|
20
|
+
},
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/heyo-sh/heyo-cms/issues"
|
|
23
|
+
},
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"type": "module",
|
|
26
|
+
"files": [
|
|
27
|
+
"dist",
|
|
28
|
+
"LICENSE",
|
|
29
|
+
"README.md"
|
|
30
|
+
],
|
|
31
|
+
"bin": {
|
|
32
|
+
"heyo-cms": "./dist/cli.js"
|
|
33
|
+
},
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"access": "public"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"typebox": "1.3.30",
|
|
39
|
+
"zod": "4.6.5"
|
|
40
|
+
},
|
|
41
|
+
"peerDependencies": {
|
|
42
|
+
"@mariozechner/pi-agent-core": "^0.73.0",
|
|
43
|
+
"@mariozechner/pi-ai": "^0.73.0",
|
|
44
|
+
"mongodb": "^6.0.0 || ^7.0.0",
|
|
45
|
+
"pg": "^8.0.0",
|
|
46
|
+
"sharp": "^0.33.0 || ^0.34.0 || ^0.35.0"
|
|
47
|
+
},
|
|
48
|
+
"peerDependenciesMeta": {
|
|
49
|
+
"@mariozechner/pi-agent-core": {
|
|
50
|
+
"optional": true
|
|
51
|
+
},
|
|
52
|
+
"@mariozechner/pi-ai": {
|
|
53
|
+
"optional": true
|
|
54
|
+
},
|
|
55
|
+
"mongodb": {
|
|
56
|
+
"optional": true
|
|
57
|
+
},
|
|
58
|
+
"pg": {
|
|
59
|
+
"optional": true
|
|
60
|
+
},
|
|
61
|
+
"sharp": {
|
|
62
|
+
"optional": true
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"devDependencies": {
|
|
66
|
+
"@electric-sql/pglite": "0.5.8",
|
|
67
|
+
"@mariozechner/pi-agent-core": "0.73.1",
|
|
68
|
+
"@mariozechner/pi-ai": "0.73.1",
|
|
69
|
+
"pg": "8.16.3"
|
|
70
|
+
},
|
|
71
|
+
"exports": {
|
|
72
|
+
".": {
|
|
73
|
+
"types": "./dist/index.d.ts",
|
|
74
|
+
"default": "./dist/index.js"
|
|
75
|
+
},
|
|
76
|
+
"./types": {
|
|
77
|
+
"types": "./dist/types.d.ts",
|
|
78
|
+
"default": "./dist/types.js"
|
|
79
|
+
},
|
|
80
|
+
"./config": {
|
|
81
|
+
"types": "./dist/config.d.ts",
|
|
82
|
+
"default": "./dist/config.js"
|
|
83
|
+
},
|
|
84
|
+
"./fields": {
|
|
85
|
+
"types": "./dist/fields.d.ts",
|
|
86
|
+
"default": "./dist/fields.js"
|
|
87
|
+
},
|
|
88
|
+
"./http": {
|
|
89
|
+
"types": "./dist/http.d.ts",
|
|
90
|
+
"default": "./dist/http.js"
|
|
91
|
+
},
|
|
92
|
+
"./client": {
|
|
93
|
+
"types": "./dist/client.d.ts",
|
|
94
|
+
"default": "./dist/client.js"
|
|
95
|
+
},
|
|
96
|
+
"./content": {
|
|
97
|
+
"types": "./dist/content.d.ts",
|
|
98
|
+
"default": "./dist/content.js"
|
|
99
|
+
},
|
|
100
|
+
"./telemetry": {
|
|
101
|
+
"types": "./dist/telemetry.d.ts",
|
|
102
|
+
"default": "./dist/telemetry.js"
|
|
103
|
+
},
|
|
104
|
+
"./next": {
|
|
105
|
+
"types": "./dist/adapters/next.d.ts",
|
|
106
|
+
"default": "./dist/adapters/next.js"
|
|
107
|
+
},
|
|
108
|
+
"./astro": {
|
|
109
|
+
"types": "./dist/adapters/astro.d.ts",
|
|
110
|
+
"default": "./dist/adapters/astro.js"
|
|
111
|
+
},
|
|
112
|
+
"./react-router": {
|
|
113
|
+
"types": "./dist/adapters/react-router.d.ts",
|
|
114
|
+
"default": "./dist/adapters/react-router.js"
|
|
115
|
+
},
|
|
116
|
+
"./sveltekit": {
|
|
117
|
+
"types": "./dist/adapters/sveltekit.d.ts",
|
|
118
|
+
"default": "./dist/adapters/sveltekit.js"
|
|
119
|
+
},
|
|
120
|
+
"./nuxt": {
|
|
121
|
+
"types": "./dist/adapters/nuxt.d.ts",
|
|
122
|
+
"default": "./dist/adapters/nuxt.js"
|
|
123
|
+
},
|
|
124
|
+
"./schema": {
|
|
125
|
+
"types": "./dist/schema.d.ts",
|
|
126
|
+
"default": "./dist/schema.js"
|
|
127
|
+
},
|
|
128
|
+
"./query": {
|
|
129
|
+
"types": "./dist/query.d.ts",
|
|
130
|
+
"default": "./dist/query.js"
|
|
131
|
+
},
|
|
132
|
+
"./migrations": {
|
|
133
|
+
"types": "./dist/migrations.d.ts",
|
|
134
|
+
"default": "./dist/migrations.js"
|
|
135
|
+
},
|
|
136
|
+
"./auth": {
|
|
137
|
+
"types": "./dist/auth.d.ts",
|
|
138
|
+
"default": "./dist/auth.js"
|
|
139
|
+
},
|
|
140
|
+
"./uploads": {
|
|
141
|
+
"types": "./dist/uploads.d.ts",
|
|
142
|
+
"default": "./dist/uploads.js"
|
|
143
|
+
},
|
|
144
|
+
"./editor": {
|
|
145
|
+
"types": "./dist/editor.d.ts",
|
|
146
|
+
"default": "./dist/editor.js"
|
|
147
|
+
},
|
|
148
|
+
"./ai": {
|
|
149
|
+
"types": "./dist/ai.d.ts",
|
|
150
|
+
"default": "./dist/ai.js"
|
|
151
|
+
},
|
|
152
|
+
"./webhooks": {
|
|
153
|
+
"types": "./dist/webhooks.d.ts",
|
|
154
|
+
"default": "./dist/webhooks.js"
|
|
155
|
+
},
|
|
156
|
+
"./jobs": {
|
|
157
|
+
"types": "./dist/jobs.d.ts",
|
|
158
|
+
"default": "./dist/jobs.js"
|
|
159
|
+
},
|
|
160
|
+
"./postgres": {
|
|
161
|
+
"types": "./dist/db/postgres.d.ts",
|
|
162
|
+
"default": "./dist/db/postgres.js"
|
|
163
|
+
},
|
|
164
|
+
"./sqlite": {
|
|
165
|
+
"types": "./dist/db/sqlite.d.ts",
|
|
166
|
+
"default": "./dist/db/sqlite.js"
|
|
167
|
+
},
|
|
168
|
+
"./d1": {
|
|
169
|
+
"types": "./dist/db/d1.d.ts",
|
|
170
|
+
"default": "./dist/db/d1.js"
|
|
171
|
+
},
|
|
172
|
+
"./mongodb": {
|
|
173
|
+
"types": "./dist/db/mongodb.d.ts",
|
|
174
|
+
"default": "./dist/db/mongodb.js"
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
"scripts": {
|
|
178
|
+
"dev": "bun run build --watch",
|
|
179
|
+
"build": "rm -rf dist && bun run build:core && bun run build:types",
|
|
180
|
+
"build:core": "bun build src/index.ts src/types.ts src/config.ts src/fields.ts src/schema.ts src/query.ts src/migrations.ts src/auth.ts src/uploads.ts src/editor.ts src/ai.ts src/webhooks.ts src/jobs.ts src/http.ts src/client.ts src/content.ts src/telemetry.ts src/cli.ts src/adapters/next.ts src/adapters/astro.ts src/adapters/react-router.ts src/adapters/sveltekit.ts src/adapters/nuxt.ts src/db/postgres.ts src/db/sqlite.ts src/db/d1.ts src/db/mongodb.ts --outdir dist --root src --target node --production --splitting --external zod --external pg --external mongodb --external sharp --external @mariozechner/pi-ai --external @mariozechner/pi-agent-core --external typebox",
|
|
181
|
+
"build:types": "tsc -p tsconfig.build.json",
|
|
182
|
+
"typecheck": "tsc -p tsconfig.json",
|
|
183
|
+
"test": "bun test"
|
|
184
|
+
}
|
|
185
|
+
}
|