@heyo-sh/heyo-cms 0.0.0-stage → 0.2.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 +45 -0
- package/dist/adapters/astro.d.ts.map +1 -0
- package/dist/adapters/astro.js +1 -0
- package/dist/adapters/deliver.d.ts +26 -0
- package/dist/adapters/deliver.d.ts.map +1 -0
- package/dist/adapters/next.d.ts +45 -0
- package/dist/adapters/next.d.ts.map +1 -0
- package/dist/adapters/next.js +1 -0
- package/dist/adapters/nuxt.d.ts +51 -0
- package/dist/adapters/nuxt.d.ts.map +1 -0
- package/dist/adapters/nuxt.js +1 -0
- package/dist/adapters/react-router.d.ts +36 -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 +41 -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 +363 -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 +37 -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 +50 -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 +295 -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/slugs.d.ts +124 -0
- package/dist/engine/slugs.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 +169 -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 +9 -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 +41 -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 +58 -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-2ddk43me.js +2 -0
- package/dist/index-2prbs05k.js +2 -0
- package/dist/index-385ggnge.js +2 -0
- package/dist/index-466cwb0b.js +2 -0
- package/dist/index-4qrep5f0.js +26 -0
- package/dist/index-67e458ws.js +2 -0
- package/dist/index-6m1kjq9g.js +2 -0
- package/dist/index-6w10rch0.js +3 -0
- package/dist/index-761dec5z.js +2 -0
- package/dist/index-8nzmqy0f.js +2 -0
- package/dist/index-8x2em6c8.js +14 -0
- package/dist/index-91fa1gzf.js +2 -0
- package/dist/index-9g2n7xa6.js +2 -0
- package/dist/index-a8jcwqsf.js +2 -0
- package/dist/index-abfzb1ve.js +2 -0
- package/dist/index-cv0hpz3d.js +2 -0
- package/dist/index-ebtj6ebd.js +0 -0
- package/dist/index-g041kfa5.js +18 -0
- package/dist/index-g4crf47y.js +0 -0
- package/dist/index-hbx67b20.js +7 -0
- package/dist/index-hpast878.js +40 -0
- package/dist/index-kc1j3h6z.js +2 -0
- package/dist/index-p2cqsmvw.js +2 -0
- package/dist/index-rg9tpg3p.js +5 -0
- package/dist/index-rw0hze6x.js +2 -0
- package/dist/index-s9x07zb3.js +2 -0
- package/dist/index-sgdnp83t.js +2 -0
- package/dist/index-szaq03qq.js +2 -0
- package/dist/index-vkwzdfte.js +5 -0
- package/dist/index-vzhxn50e.js +2 -0
- package/dist/index-x72d1hzh.js +2 -0
- package/dist/index-y8kzzn94.js +2 -0
- package/dist/index-ypcmns0v.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/cloudflare.d.ts +58 -0
- package/dist/media/cloudflare.d.ts.map +1 -0
- package/dist/media/document.d.ts +29 -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 +55 -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/urls.d.ts +77 -0
- package/dist/media/urls.d.ts.map +1 -0
- package/dist/media/usages.d.ts +77 -0
- package/dist/media/usages.d.ts.map +1 -0
- package/dist/media/variants.d.ts +61 -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/plugins/indexnow.d.ts +82 -0
- package/dist/plugins/indexnow.d.ts.map +1 -0
- package/dist/plugins.d.ts +9 -0
- package/dist/plugins.d.ts.map +1 -0
- package/dist/plugins.js +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-bjge3v8e.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 +24 -0
- package/dist/schema/snapshot.d.ts.map +1 -0
- package/dist/schema/system.d.ts +31 -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/slugify.d.ts +31 -0
- package/dist/slugify.d.ts.map +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 +268 -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 +647 -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 +166 -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 +342 -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 +194 -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 +22 -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 +187 -4
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
import type { CollectionsConfig, GlobalsConfig, InferDocument } from "../types/config";
|
|
2
|
+
import type { CmsInstance } from "../types/instance";
|
|
3
|
+
import type { ActivityListArgs, ActivityPage } from "../types/activity";
|
|
4
|
+
import type { ApiKeyRecord, CmsUser, IssuedApiKey, RoleRecord, SignInResult } from "../types/auth";
|
|
5
|
+
import type { FindResult, PreviousSlug, SlugResolution } from "../types/api";
|
|
6
|
+
import type { JsonObject } from "../types/json";
|
|
7
|
+
import type { LocaleRecord } from "../types/locales";
|
|
8
|
+
import type { MediaDocument, MediaListResult, MediaUsage } from "../types/media";
|
|
9
|
+
import type { CmsPlugin } from "../types/plugin";
|
|
10
|
+
import type { OrderBy, Where } from "../types/query";
|
|
11
|
+
import type { TrashPage } from "../types/trash";
|
|
12
|
+
import type { JobFailure, JobRunReport } from "../types/jobs";
|
|
13
|
+
/**
|
|
14
|
+
* The typed client's argument types.
|
|
15
|
+
*
|
|
16
|
+
* Shaped after the local API on purpose: `client.posts.find({ where: eq(...) })`
|
|
17
|
+
* and `cms.api.posts.find({ where: eq(...) })` take the same object, because
|
|
18
|
+
* the second is what the first ends up calling (section 10). The filter
|
|
19
|
+
* helpers from `@heyo-sh/heyo-cms/query` therefore work on both sides of the
|
|
20
|
+
* network, and there is one query language in the product rather than one per
|
|
21
|
+
* transport.
|
|
22
|
+
*/
|
|
23
|
+
export interface ClientLocaleArgs {
|
|
24
|
+
locale?: string;
|
|
25
|
+
fallbackLocale?: string | false;
|
|
26
|
+
}
|
|
27
|
+
export interface ClientReadArgs extends ClientLocaleArgs {
|
|
28
|
+
depth?: number;
|
|
29
|
+
includeTrashed?: boolean;
|
|
30
|
+
/** Per-call headers, e.g. a one-off `authorization`. */
|
|
31
|
+
headers?: Record<string, string>;
|
|
32
|
+
signal?: AbortSignal;
|
|
33
|
+
}
|
|
34
|
+
export interface ClientFindArgs extends ClientReadArgs {
|
|
35
|
+
where?: Where;
|
|
36
|
+
orderBy?: OrderBy[];
|
|
37
|
+
limit?: number;
|
|
38
|
+
offset?: number;
|
|
39
|
+
cursor?: string;
|
|
40
|
+
count?: boolean;
|
|
41
|
+
}
|
|
42
|
+
export type ClientInput<TDoc> = Partial<Omit<TDoc, "id" | "createdAt" | "updatedAt" | "updatedBy" | "deletedAt" | "purgeAfter" | "scheduledAt" | "scheduledPatch" | "_fallback">>;
|
|
43
|
+
export interface ClientCreateArgs<TDoc> extends ClientReadArgs {
|
|
44
|
+
data: ClientInput<TDoc>;
|
|
45
|
+
}
|
|
46
|
+
export interface ClientUpdateArgs<TDoc> extends ClientReadArgs {
|
|
47
|
+
id: string;
|
|
48
|
+
data: ClientInput<TDoc>;
|
|
49
|
+
}
|
|
50
|
+
export interface ClientDeleteArgs extends ClientReadArgs {
|
|
51
|
+
id: string;
|
|
52
|
+
/** Skips the trash. Governed by the `purge` permission. */
|
|
53
|
+
permanent?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface ClientScheduleArgs<TDoc> extends ClientReadArgs {
|
|
56
|
+
id: string;
|
|
57
|
+
at: Date | string;
|
|
58
|
+
data: ClientInput<TDoc>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* One collection, over HTTP.
|
|
62
|
+
*
|
|
63
|
+
* A write answers `null` when a `before` hook stopped it — the 204 the route
|
|
64
|
+
* sends — so the client's return types match the local API's exactly and code
|
|
65
|
+
* can move between them without a change.
|
|
66
|
+
*/
|
|
67
|
+
export interface ClientCollection<TDoc> {
|
|
68
|
+
find(args?: ClientFindArgs): Promise<FindResult<TDoc>>;
|
|
69
|
+
findById(id: string, args?: ClientReadArgs): Promise<TDoc | null>;
|
|
70
|
+
create(args: ClientCreateArgs<TDoc>): Promise<TDoc | null>;
|
|
71
|
+
update(args: ClientUpdateArgs<TDoc>): Promise<TDoc | null>;
|
|
72
|
+
delete(args: ClientDeleteArgs): Promise<TDoc | null>;
|
|
73
|
+
restore(args: {
|
|
74
|
+
id: string;
|
|
75
|
+
} & ClientReadArgs): Promise<TDoc | null>;
|
|
76
|
+
schedule(args: ClientScheduleArgs<TDoc>): Promise<TDoc | null>;
|
|
77
|
+
unschedule(args: {
|
|
78
|
+
id: string;
|
|
79
|
+
} & ClientReadArgs): Promise<TDoc | null>;
|
|
80
|
+
/** `GET /<collection>/resolve-slug`; null when no readable document has it. */
|
|
81
|
+
resolveSlug(slug: string, args?: {
|
|
82
|
+
field?: string;
|
|
83
|
+
} & Omit<ClientReadArgs, "includeTrashed">): Promise<SlugResolution<TDoc> | null>;
|
|
84
|
+
previousSlugs(args: {
|
|
85
|
+
id: string;
|
|
86
|
+
field?: string;
|
|
87
|
+
} & ClientLocaleArgs & ClientCallArgs): Promise<PreviousSlug[]>;
|
|
88
|
+
addPreviousSlug(args: {
|
|
89
|
+
id: string;
|
|
90
|
+
slug: string;
|
|
91
|
+
field?: string;
|
|
92
|
+
} & ClientLocaleArgs & ClientCallArgs): Promise<PreviousSlug[]>;
|
|
93
|
+
removePreviousSlug(args: {
|
|
94
|
+
id: string;
|
|
95
|
+
slug: string;
|
|
96
|
+
field?: string;
|
|
97
|
+
} & ClientLocaleArgs & ClientCallArgs): Promise<PreviousSlug[]>;
|
|
98
|
+
}
|
|
99
|
+
/** Per-call transport options. */
|
|
100
|
+
export interface ClientCallArgs {
|
|
101
|
+
headers?: Record<string, string>;
|
|
102
|
+
signal?: AbortSignal;
|
|
103
|
+
}
|
|
104
|
+
export interface ClientGlobal<TDoc> {
|
|
105
|
+
get(args?: ClientReadArgs): Promise<TDoc>;
|
|
106
|
+
update(args: {
|
|
107
|
+
data: ClientInput<TDoc>;
|
|
108
|
+
} & ClientReadArgs): Promise<TDoc | null>;
|
|
109
|
+
schedule(args: {
|
|
110
|
+
at: Date | string;
|
|
111
|
+
data: ClientInput<TDoc>;
|
|
112
|
+
} & ClientReadArgs): Promise<TDoc | null>;
|
|
113
|
+
unschedule(args?: ClientReadArgs): Promise<TDoc | null>;
|
|
114
|
+
}
|
|
115
|
+
export interface ClientUploadArgs {
|
|
116
|
+
file: Blob | Uint8Array | ArrayBuffer;
|
|
117
|
+
filename?: string;
|
|
118
|
+
contentType?: string;
|
|
119
|
+
alt?: string;
|
|
120
|
+
locale?: string;
|
|
121
|
+
metadata?: JsonObject;
|
|
122
|
+
signal?: AbortSignal;
|
|
123
|
+
}
|
|
124
|
+
export interface ClientMedia {
|
|
125
|
+
upload(args: ClientUploadArgs | File): Promise<MediaDocument>;
|
|
126
|
+
list(args?: {
|
|
127
|
+
status?: MediaDocument["status"];
|
|
128
|
+
mimeType?: string;
|
|
129
|
+
search?: string;
|
|
130
|
+
limit?: number;
|
|
131
|
+
cursor?: string;
|
|
132
|
+
}): Promise<MediaListResult>;
|
|
133
|
+
get(id: string): Promise<MediaDocument | null>;
|
|
134
|
+
update(args: {
|
|
135
|
+
id: string;
|
|
136
|
+
filename?: string;
|
|
137
|
+
alt?: string | Record<string, string>;
|
|
138
|
+
locale?: string;
|
|
139
|
+
focalPoint?: {
|
|
140
|
+
x: number;
|
|
141
|
+
y: number;
|
|
142
|
+
} | null;
|
|
143
|
+
crop?: {
|
|
144
|
+
x: number;
|
|
145
|
+
y: number;
|
|
146
|
+
width: number;
|
|
147
|
+
height: number;
|
|
148
|
+
} | null;
|
|
149
|
+
metadata?: JsonObject;
|
|
150
|
+
}): Promise<MediaDocument>;
|
|
151
|
+
delete(args: {
|
|
152
|
+
id: string;
|
|
153
|
+
force?: boolean;
|
|
154
|
+
}): Promise<MediaDocument>;
|
|
155
|
+
keep(args: {
|
|
156
|
+
id: string;
|
|
157
|
+
}): Promise<MediaDocument>;
|
|
158
|
+
usages(id: string): Promise<MediaUsage[]>;
|
|
159
|
+
/**
|
|
160
|
+
* The URL of a size, built rather than fetched.
|
|
161
|
+
*
|
|
162
|
+
* A string, not a request: this is what goes into an `<img src>`, and a
|
|
163
|
+
* client that had to await the bytes to produce a URL would make rendering
|
|
164
|
+
* a list of thumbnails a waterfall.
|
|
165
|
+
*/
|
|
166
|
+
url(id: string, variant?: string): string;
|
|
167
|
+
}
|
|
168
|
+
export interface ClientAuth {
|
|
169
|
+
signIn(args: {
|
|
170
|
+
email: string;
|
|
171
|
+
password: string;
|
|
172
|
+
}): Promise<SignInResult>;
|
|
173
|
+
/**
|
|
174
|
+
* Creates the first account on a CMS that has none, and signs it in.
|
|
175
|
+
*
|
|
176
|
+
* Answers 409 once any account exists; `GET /panel` reports whether it is
|
|
177
|
+
* still open as `auth.setupRequired`.
|
|
178
|
+
*/
|
|
179
|
+
claimFirstAccount(args: {
|
|
180
|
+
email: string;
|
|
181
|
+
password: string;
|
|
182
|
+
name?: string;
|
|
183
|
+
}): Promise<SignInResult>;
|
|
184
|
+
signOut(): Promise<void>;
|
|
185
|
+
session(): Promise<{
|
|
186
|
+
actor: unknown | null;
|
|
187
|
+
user: CmsUser | null;
|
|
188
|
+
}>;
|
|
189
|
+
magicLink(args: {
|
|
190
|
+
email: string;
|
|
191
|
+
}): Promise<{
|
|
192
|
+
status: string;
|
|
193
|
+
}>;
|
|
194
|
+
verifyMagicLink(args: {
|
|
195
|
+
token: string;
|
|
196
|
+
}): Promise<SignInResult>;
|
|
197
|
+
forgotPassword(args: {
|
|
198
|
+
email: string;
|
|
199
|
+
}): Promise<{
|
|
200
|
+
status: string;
|
|
201
|
+
}>;
|
|
202
|
+
resetPassword(args: {
|
|
203
|
+
token: string;
|
|
204
|
+
password: string;
|
|
205
|
+
}): Promise<{
|
|
206
|
+
user: CmsUser;
|
|
207
|
+
}>;
|
|
208
|
+
acceptInvite(args: {
|
|
209
|
+
token: string;
|
|
210
|
+
password?: string;
|
|
211
|
+
name?: string;
|
|
212
|
+
}): Promise<SignInResult>;
|
|
213
|
+
verifyTwoFactor(args: {
|
|
214
|
+
challenge: string;
|
|
215
|
+
code: string;
|
|
216
|
+
}): Promise<SignInResult>;
|
|
217
|
+
beginTwoFactor(): Promise<{
|
|
218
|
+
secret: string;
|
|
219
|
+
uri: string;
|
|
220
|
+
}>;
|
|
221
|
+
enableTwoFactor(args: {
|
|
222
|
+
code: string;
|
|
223
|
+
}): Promise<{
|
|
224
|
+
user: CmsUser;
|
|
225
|
+
}>;
|
|
226
|
+
disableTwoFactor(): Promise<{
|
|
227
|
+
user: CmsUser;
|
|
228
|
+
}>;
|
|
229
|
+
apiKeys: {
|
|
230
|
+
list(): Promise<ApiKeyRecord[]>;
|
|
231
|
+
create(args: {
|
|
232
|
+
name: string;
|
|
233
|
+
scopes?: string[];
|
|
234
|
+
}): Promise<IssuedApiKey>;
|
|
235
|
+
revoke(id: string): Promise<void>;
|
|
236
|
+
};
|
|
237
|
+
/** The URL to send a browser to for an OAuth or SSO sign-in. */
|
|
238
|
+
oauthUrl(provider: string, redirectTo?: string): string;
|
|
239
|
+
}
|
|
240
|
+
export interface ClientUsers {
|
|
241
|
+
list(args?: {
|
|
242
|
+
status?: CmsUser["status"];
|
|
243
|
+
search?: string;
|
|
244
|
+
limit?: number;
|
|
245
|
+
offset?: number;
|
|
246
|
+
}): Promise<{
|
|
247
|
+
users: CmsUser[];
|
|
248
|
+
totalUsers: number;
|
|
249
|
+
}>;
|
|
250
|
+
get(id: string): Promise<CmsUser | null>;
|
|
251
|
+
update(id: string, args: {
|
|
252
|
+
name?: string | null;
|
|
253
|
+
roles?: string[];
|
|
254
|
+
status?: CmsUser["status"];
|
|
255
|
+
locale?: string | null;
|
|
256
|
+
}): Promise<CmsUser>;
|
|
257
|
+
invite(args: {
|
|
258
|
+
email: string;
|
|
259
|
+
name?: string;
|
|
260
|
+
roles?: string[];
|
|
261
|
+
}): Promise<{
|
|
262
|
+
token: string;
|
|
263
|
+
expiresAt: string;
|
|
264
|
+
user: CmsUser;
|
|
265
|
+
}>;
|
|
266
|
+
remove(id: string): Promise<void>;
|
|
267
|
+
}
|
|
268
|
+
export interface ClientRoles {
|
|
269
|
+
list(): Promise<RoleRecord[]>;
|
|
270
|
+
create(args: {
|
|
271
|
+
name: string;
|
|
272
|
+
permissions: string[];
|
|
273
|
+
label?: string;
|
|
274
|
+
}): Promise<RoleRecord>;
|
|
275
|
+
update(name: string, args: {
|
|
276
|
+
permissions?: string[];
|
|
277
|
+
label?: string | null;
|
|
278
|
+
}): Promise<RoleRecord>;
|
|
279
|
+
remove(name: string): Promise<void>;
|
|
280
|
+
}
|
|
281
|
+
export interface ClientTrash {
|
|
282
|
+
list(args?: {
|
|
283
|
+
collection?: string;
|
|
284
|
+
limit?: number;
|
|
285
|
+
cursor?: string;
|
|
286
|
+
locale?: string;
|
|
287
|
+
}): Promise<TrashPage>;
|
|
288
|
+
restore(args: {
|
|
289
|
+
collection: string;
|
|
290
|
+
id: string;
|
|
291
|
+
}): Promise<JsonObject>;
|
|
292
|
+
purge(args: {
|
|
293
|
+
collection: string;
|
|
294
|
+
id: string;
|
|
295
|
+
}): Promise<JsonObject>;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* The configured languages.
|
|
299
|
+
*
|
|
300
|
+
* Read-only, because `i18n.locales` is code: a client that could add one
|
|
301
|
+
* would be editing a file it cannot see.
|
|
302
|
+
*/
|
|
303
|
+
export interface ClientLocales {
|
|
304
|
+
list(): Promise<{
|
|
305
|
+
locales: LocaleRecord[];
|
|
306
|
+
defaultLocale: string;
|
|
307
|
+
}>;
|
|
308
|
+
}
|
|
309
|
+
export interface ClientJobs {
|
|
310
|
+
run(args?: {
|
|
311
|
+
limit?: number;
|
|
312
|
+
only?: string[];
|
|
313
|
+
}): Promise<JobRunReport>;
|
|
314
|
+
failures(args?: {
|
|
315
|
+
type?: string;
|
|
316
|
+
limit?: number;
|
|
317
|
+
}): Promise<JobFailure[]>;
|
|
318
|
+
}
|
|
319
|
+
/** The escape hatch, and what a plugin's client extension is built on. */
|
|
320
|
+
export interface ClientRequest {
|
|
321
|
+
(path: string, init?: RequestInit & {
|
|
322
|
+
query?: Record<string, unknown>;
|
|
323
|
+
}): Promise<unknown>;
|
|
324
|
+
}
|
|
325
|
+
export interface ClientCore {
|
|
326
|
+
baseUrl: string;
|
|
327
|
+
request: ClientRequest;
|
|
328
|
+
media: ClientMedia;
|
|
329
|
+
auth: ClientAuth;
|
|
330
|
+
users: ClientUsers;
|
|
331
|
+
roles: ClientRoles;
|
|
332
|
+
trash: ClientTrash;
|
|
333
|
+
locales: ClientLocales;
|
|
334
|
+
activity: {
|
|
335
|
+
list(args?: ActivityListArgs): Promise<ActivityPage>;
|
|
336
|
+
};
|
|
337
|
+
jobs: ClientJobs;
|
|
338
|
+
openapi(): Promise<JsonObject>;
|
|
339
|
+
}
|
|
340
|
+
/** Collections become top-level properties, as in `client.posts.find()`. */
|
|
341
|
+
export type ClientCollections<TCollections extends CollectionsConfig> = {
|
|
342
|
+
[K in keyof TCollections]: ClientCollection<InferDocument<TCollections[K]>>;
|
|
343
|
+
};
|
|
344
|
+
export type ClientGlobals<TGlobals extends GlobalsConfig> = {
|
|
345
|
+
[K in keyof TGlobals]: ClientGlobal<InferDocument<TGlobals[K]>>;
|
|
346
|
+
};
|
|
347
|
+
/**
|
|
348
|
+
* The client for one configuration.
|
|
349
|
+
*
|
|
350
|
+
* `globals` is a property rather than being flattened next to the collections
|
|
351
|
+
* because a global and a collection can share a name in different registries
|
|
352
|
+
* and a flat namespace would make that a silent overwrite.
|
|
353
|
+
*/
|
|
354
|
+
export type CmsClient<TCms> = TCms extends CmsInstance<infer TCollections, infer TGlobals> ? ClientCore & ClientCollections<TCollections> & {
|
|
355
|
+
globals: ClientGlobals<TGlobals>;
|
|
356
|
+
} : never;
|
|
357
|
+
/** Turns a plugin tuple into the intersection of what their clients add. */
|
|
358
|
+
export type PluginExtensions<TPlugins extends readonly CmsPlugin<unknown>[]> = UnionToIntersection<{
|
|
359
|
+
[K in keyof TPlugins]: TPlugins[K] extends CmsPlugin<infer Ext> ? Ext : never;
|
|
360
|
+
}[number]>;
|
|
361
|
+
type UnionToIntersection<TUnion> = (TUnion extends unknown ? (value: TUnion) => void : never) extends (value: infer TIntersection) => void ? TIntersection : never;
|
|
362
|
+
export {};
|
|
363
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { CmsClientOptions } from "./client/index";
|
|
2
|
+
import type { CmsClient, PluginExtensions } from "./client/types";
|
|
3
|
+
import type { CmsInstance } from "./types/instance";
|
|
4
|
+
import type { CmsPlugin } from "./types/plugin";
|
|
5
|
+
/**
|
|
6
|
+
* `@heyo-sh/heyo-cms/client`.
|
|
7
|
+
*
|
|
8
|
+
* The typed client. Separate from the main entry point because this is the
|
|
9
|
+
* half that ships to a browser: importing it must not pull in the engine, the
|
|
10
|
+
* field registry or a database adapter.
|
|
11
|
+
*
|
|
12
|
+
* A generated project registers its `typeof cms` here through declaration
|
|
13
|
+
* merging. That is a type-only link — the server configuration is never
|
|
14
|
+
* imported into a browser bundle — and lets the ordinary call stay small:
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { heyoCmsClient } from "@heyo-sh/heyo-cms/client";
|
|
18
|
+
*
|
|
19
|
+
* const client = heyoCmsClient();
|
|
20
|
+
* await client.posts.find();
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* Registering one CMS is the normal application case. The explicit generic
|
|
24
|
+
* remains the escape hatch for a library or a TypeScript program with more
|
|
25
|
+
* than one CMS:
|
|
26
|
+
*
|
|
27
|
+
* ```ts
|
|
28
|
+
* const client = heyoCmsClient<typeof cms>({ baseUrl: "https://cms.acme.dev/api/heyo-cms" });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export interface HeyoCmsClientRegistry {
|
|
32
|
+
}
|
|
33
|
+
type RegisteredCms = HeyoCmsClientRegistry extends {
|
|
34
|
+
cms: infer TCms;
|
|
35
|
+
} ? TCms : CmsInstance;
|
|
36
|
+
/**
|
|
37
|
+
* Creates the browser client.
|
|
38
|
+
*
|
|
39
|
+
* With no options it calls the same-origin `/api/heyo-cms` mount. A generated
|
|
40
|
+
* `heyo-cms.client.d.ts` supplies the document types; without one, the client
|
|
41
|
+
* remains usable with the broad fallback types.
|
|
42
|
+
*/
|
|
43
|
+
export declare function heyoCmsClient<TCms = RegisteredCms, const TPlugins extends readonly CmsPlugin<unknown>[] = []>(options?: CmsClientOptions<TPlugins>): CmsClient<TCms> & PluginExtensions<TPlugins>;
|
|
44
|
+
export type { CmsClientOptions } from "./client/index";
|
|
45
|
+
export type * from "./client/types";
|
|
46
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,qBAAqB;CAAG;AAEzC,KAAK,aAAa,GAAG,qBAAqB,SAAS;IAAE,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,GAClE,IAAI,GACJ,WAAW,CAAC;AAEhB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,GAAG,aAAa,EACpB,KAAK,CAAC,QAAQ,SAAS,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAEzD,OAAO,GAAE,gBAAgB,CAAC,QAAQ,CAAM,GACvC,SAAS,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAE9C;AAED,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,mBAAmB,gBAAgB,CAAC"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ge}from"./index-y8kzzn94.js";import{x}from"./index-2ddk43me.js";import{e}from"./index-x72d1hzh.js";function O(n={}){let r=x(n.baseUrl??ge),o=n.fetch??((...i)=>fetch(...i)),t=async(i,l={})=>{let{query:m,headers:y,...U}=l,k=I(r,i);for(let[w,P]of Object.entries(m??{})){if(P===void 0||P===null)continue;k.searchParams.set(w,String(P))}let g=new Headers(y);for(let[w,P]of Object.entries(await D(n)))if(!g.has(w))g.set(w,P);let R=await B(n);if(R&&!g.has("authorization"))g.set("authorization",`Bearer ${R}`);let v=await o(k,{...U,headers:g,credentials:n.credentials??"same-origin"});if(v.status===204)return null;let b=await F(v);if(!v.ok)throw H(v,b);return b},a={baseUrl:r,request:t,media:q(t,r),auth:{signIn:(i)=>t("/auth/sign-in",u(i)),claimFirstAccount:(i)=>t("/auth/setup",u(i)),signOut:async()=>{await t("/auth/sign-out",{method:"POST"})},session:()=>t("/auth/session"),magicLink:(i)=>t("/auth/magic-link",u(i)),verifyMagicLink:(i)=>t("/auth/magic-link/verify",u(i)),forgotPassword:(i)=>t("/auth/password/forgot",u(i)),resetPassword:(i)=>t("/auth/password/reset",u(i)),acceptInvite:(i)=>t("/auth/invite/accept",u(i)),verifyTwoFactor:(i)=>t("/auth/2fa/verify",u(i)),beginTwoFactor:()=>t("/auth/2fa/begin",{method:"POST"}),enableTwoFactor:(i)=>t("/auth/2fa/enable",u(i)),disableTwoFactor:()=>t("/auth/2fa/disable",{method:"POST"}),apiKeys:{list:async()=>C(await t("/auth/api-keys"),"keys"),create:(i)=>t("/auth/api-keys",u(i)),revoke:async(i)=>{await t(`/auth/api-keys/${encodeURIComponent(i)}`,{method:"DELETE"})}},oauthUrl:(i,l)=>{let m=I(r,`/auth/oauth/${encodeURIComponent(i)}`);if(l)m.searchParams.set("redirectTo",l);return m.toString()}},users:{list:(i)=>t("/users",{query:i}),get:async(i)=>C(await t(`/users/${encodeURIComponent(i)}`),"user"),update:async(i,l)=>C(await t(`/users/${encodeURIComponent(i)}`,u(l,"PATCH")),"user"),invite:(i)=>t("/users/invite",u(i)),remove:async(i)=>{await t(`/users/${encodeURIComponent(i)}`,{method:"DELETE"})}},roles:{list:async()=>C(await t("/roles"),"roles"),create:async(i)=>C(await t("/roles",u(i)),"role"),update:async(i,l)=>C(await t(`/roles/${encodeURIComponent(i)}`,u(l,"PATCH")),"role"),remove:async(i)=>{await t(`/roles/${encodeURIComponent(i)}`,{method:"DELETE"})}},trash:{list:(i)=>t("/trash",{query:i}),restore:(i)=>t(`/trash/${encodeURIComponent(i.collection)}/${encodeURIComponent(i.id)}/restore`,{method:"POST"}),purge:(i)=>t(`/trash/${encodeURIComponent(i.collection)}/${encodeURIComponent(i.id)}`,{method:"DELETE"})},locales:{list:()=>t("/locales")},activity:{list:(i)=>t("/activity",{query:i})},jobs:{run:(i)=>t("/jobs/run",{method:"POST",query:{...i?.limit===void 0?{}:{limit:i.limit},...i?.only===void 0?{}:{only:i.only.join(",")}}}),failures:async(i)=>C(await t("/jobs/failures",{query:i}),"failures")},openapi:()=>t("/openapi.json")},c=new Map,d=new Proxy(a,{get(i,l){if(typeof l!=="string"||l in i)return i[l];let m=c.get(l);if(m)return m;let y=S(t,l);return c.set(l,y),y},has(i,l){return typeof l==="string"?!0:Reflect.has(i,l)}}),h=new Map;a.globals=new Proxy({},{get(i,l){if(typeof l!=="string")return;let m=h.get(l);if(m)return m;let y=j(t,l);return h.set(l,y),y}});for(let i of n.plugins??[]){let l=i.client?.({baseUrl:r,request:t});if(!l)continue;for(let[m,y]of Object.entries(l)){if(m in a)throw new e(`The "${i.id}" plugin's client extension would overwrite "${m}".`,{status:500,code:"client_extension_conflict"});a[m]=y}}return d}function S(n,r){let o=`/${r}`,t=(s)=>`${o}/${encodeURIComponent(s)}`;return{find:(s={})=>n(o,{query:L(s),...f(s)}),findById:(s,a={})=>n(t(s),{query:p(a),...f(a)}),create:({data:s,...a})=>n(o,{...u({data:s}),query:p(a),...f(a)}),update:({id:s,data:a,...c})=>n(t(s),{...u({data:a},"PATCH"),query:p(c),...f(c)}),delete:({id:s,permanent:a,...c})=>n(t(s),{method:"DELETE",query:{...p(c),...a===!0?{permanent:!0}:{}},...f(c)}),restore:({id:s,...a})=>n(`${t(s)}/restore`,{method:"POST",query:p(a),...f(a)}),schedule:({id:s,at:a,data:c,...d})=>n(`${t(s)}/schedule`,{...u({at:a instanceof Date?a.toISOString():a,data:c}),query:p(d),...f(d)}),unschedule:({id:s,...a})=>n(`${t(s)}/schedule`,{method:"DELETE",query:p(a),...f(a)}),resolveSlug:async(s,{field:a,...c}={})=>{try{return await n(`${o}/resolve-slug`,{query:{...p(c),slug:s,field:a},...f(c)})}catch(d){if(d instanceof e&&d.status===404)return null;throw d}},previousSlugs:({id:s,field:a,locale:c,...d})=>n(`${t(s)}/previous-slugs`,{query:{field:a,locale:c},...f(d)}),addPreviousSlug:({id:s,slug:a,field:c,locale:d,...h})=>n(`${t(s)}/previous-slugs`,{...u({slug:a,field:c,locale:d}),...f(h)}),removePreviousSlug:({id:s,slug:a,field:c,locale:d,...h})=>n(`${t(s)}/previous-slugs`,{method:"DELETE",query:{slug:a,field:c,locale:d},...f(h)})}}function j(n,r){let o=`/globals/${r}`;return{get:(t={})=>n(o,{query:p(t),...f(t)}),update:({data:t,...s})=>n(o,{...u({data:t},"PATCH"),query:p(s)}),schedule:({at:t,data:s,...a})=>n(`${o}/schedule`,{...u({at:t instanceof Date?t.toISOString():t,data:s}),query:p(a)}),unschedule:(t={})=>n(`${o}/schedule`,{method:"DELETE",query:p(t)})}}function q(n,r){return{async upload(o){let t=new FormData;if(typeof File<"u"&&o instanceof File)t.set("file",o);else{let s=o,a=s.file instanceof Blob?s.file:new Blob([s.file],{...s.contentType?{type:s.contentType}:{}});if(t.set("file",a,s.filename??"upload"),s.filename)t.set("filename",s.filename);if(s.alt!==void 0)t.set("alt",s.alt);if(s.locale!==void 0)t.set("locale",s.locale);if(s.metadata!==void 0)t.set("metadata",JSON.stringify(s.metadata))}return n("/media/upload",{method:"POST",body:t})},list:(o)=>n("/media",{query:o}),get:(o)=>n(`/media/${encodeURIComponent(o)}`),update:({id:o,...t})=>n(`/media/${encodeURIComponent(o)}`,u(t,"PATCH")),delete:({id:o,force:t})=>n(`/media/${encodeURIComponent(o)}`,{method:"DELETE",...t===!0?{query:{force:!0}}:{}}),keep:({id:o})=>n(`/media/${encodeURIComponent(o)}/keep`,{method:"POST"}),usages:async(o)=>C(await n(`/media/${encodeURIComponent(o)}/usages`),"usages"),url:(o,t="original")=>`${r}/media/${encodeURIComponent(o)}/${encodeURIComponent(t)}`}}function u(n,r="POST"){return{method:r,body:JSON.stringify(n),headers:{"content-type":"application/json"}}}function f(n){return{...n.headers===void 0?{}:{headers:n.headers},...n.signal===void 0?{}:{signal:n.signal}}}function p(n){return{...n.locale===void 0?{}:{locale:n.locale},...n.fallbackLocale===void 0?{}:{fallbackLocale:String(n.fallbackLocale)},...n.depth===void 0?{}:{depth:n.depth},...n.includeTrashed===void 0?{}:{includeTrashed:n.includeTrashed}}}function L(n){return{...p(n),...n.where===void 0?{}:{where:JSON.stringify(T(n.where))},...n.orderBy===void 0?{}:{sort:A(n.orderBy)},...n.limit===void 0?{}:{limit:n.limit},...n.offset===void 0?{}:{offset:n.offset},...n.cursor===void 0?{}:{cursor:n.cursor},...n.count===void 0?{}:{count:n.count}}}function T(n){if(n.kind==="and"||n.kind==="or")return{kind:n.kind,conditions:n.conditions.map(T)};if(n.kind==="not")return{kind:"not",condition:T(n.condition)};let r=Array.isArray(n.value)?n.value.map(E):E(n.value);return{kind:"compare",path:n.path,operator:n.operator,value:r}}function E(n){return n instanceof Date?n.toISOString():n}function A(n){return n.map((r)=>r.direction==="desc"?`-${r.path}`:r.path).join(",")}function I(n,r){let o=`${n}${r}`;try{return new URL(o)}catch{let t=globalThis.location?.origin;if(t)return new URL(o,t);throw new e('heyoCmsClient() needs "baseUrl" outside a browser.',{status:500,code:"client_base_url_required"})}}async function D(n){let r=n.headers;if(!r)return{};return typeof r==="function"?r():r}async function B(n){let r=n.token;if(!r)return null;return(typeof r==="function"?await r():r)??null}async function F(n){if((n.headers.get("content-type")??"").includes("application/json"))return await n.json();let o=await n.text();return o.length===0?null:o}function H(n,r){let o=typeof r==="object"&&r!==null?r.error??{}:{},t=typeof o.message==="string"?o.message:`The CMS answered ${n.status}.`;return new e(t,{status:n.status,code:typeof o.code==="string"?o.code:"request_failed",...o.details===void 0?{}:{details:o.details}})}function C(n,r){if(typeof n!=="object"||n===null)return n;return n[r]}function z(n={}){return O(n)}export{z as heyoCmsClient};
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Actor } from "./types/actor";
|
|
2
|
+
import type { CollectionDefinition, CollectionDefinitionInput, CollectionsConfig, GlobalDefinition, GlobalsConfig, HeyoCmsConfig } from "./types/config";
|
|
3
|
+
import type { FieldsConfig } from "./types/fields";
|
|
4
|
+
import type { CmsInstance } from "./types/instance";
|
|
5
|
+
export { defaultAdminPath, defaultBasePath, defaultMigrationsDirectory, } from "./defaults";
|
|
6
|
+
/**
|
|
7
|
+
* Declares a collection.
|
|
8
|
+
*
|
|
9
|
+
* Returns the definition unchanged apart from a tag: the work happens in
|
|
10
|
+
* `heyoCms()`, which is the only place that can see collections, globals and
|
|
11
|
+
* plugins at once and therefore the only place that can validate them against
|
|
12
|
+
* each other.
|
|
13
|
+
*/
|
|
14
|
+
export declare function defineCollection<TFields extends FieldsConfig>(definition: CollectionDefinitionInput<TFields>): CollectionDefinition<TFields>;
|
|
15
|
+
/** Declares a singleton. Same machinery, one row. */
|
|
16
|
+
export declare function defineGlobal<TFields extends FieldsConfig>(definition: Omit<CollectionDefinitionInput<TFields>, "access"> & {
|
|
17
|
+
access?: GlobalDefinition<TFields>["access"];
|
|
18
|
+
}): GlobalDefinition<TFields>;
|
|
19
|
+
/**
|
|
20
|
+
* Builds the CMS.
|
|
21
|
+
*
|
|
22
|
+
* Everything that can be decided without a database is decided here: names,
|
|
23
|
+
* defaults, the schema the configuration implies, the order hooks will run
|
|
24
|
+
* in. A misconfiguration should fail while the module is loading, with the
|
|
25
|
+
* path to the offending key — not on the first request that happens to touch
|
|
26
|
+
* it.
|
|
27
|
+
*/
|
|
28
|
+
export declare function heyoCms<const TCollections extends CollectionsConfig, const TGlobals extends GlobalsConfig = Record<string, never>>(config: HeyoCmsConfig<TCollections, TGlobals>): CmsInstance<TCollections, TGlobals>;
|
|
29
|
+
/** Convenience for tests and tooling that need an actor without a session. */
|
|
30
|
+
export declare function systemActor(id?: string): Actor;
|
|
31
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAI3C,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EAKd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAGV,WAAW,EAIZ,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AA4CpB;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,SAAS,YAAY,EAC3D,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,GAC7C,oBAAoB,CAAC,OAAO,CAAC,CAE/B;AAED,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,OAAO,SAAS,YAAY,EACvD,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC/D,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC9C,GACA,gBAAgB,CAAC,OAAO,CAAC,CAE3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACrB,KAAK,CAAC,YAAY,SAAS,iBAAiB,EAC5C,KAAK,CAAC,QAAQ,SAAS,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAE5D,MAAM,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,CAAC,GAC5C,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAqQrC;AAg+BD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAAE,SAAW,GAAG,KAAK,CAEhD"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Vn,Gn,Kn,yt}from"./index-cv0hpz3d.js";import"./index-kc1j3h6z.js";import"./index-6w10rch0.js";import"./index-hpast878.js";import"./index-91fa1gzf.js";import"./index-8x2em6c8.js";import"./index-g041kfa5.js";import{ge,et,tt}from"./index-y8kzzn94.js";import"./index-abfzb1ve.js";import"./index-2prbs05k.js";import"./index-sgdnp83t.js";import"./index-6m1kjq9g.js";export{et as defaultAdminPath,ge as defaultBasePath,tt as defaultMigrationsDirectory,Vn as defineCollection,Gn as defineGlobal,Kn as heyoCms,yt as systemActor};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { CmsInstance } from "../types/instance";
|
|
2
|
+
import { type ContentRecord } from "./records";
|
|
3
|
+
export interface ExportOptions {
|
|
4
|
+
/** Collection names. Defaults to every collection in the configuration. */
|
|
5
|
+
collections?: string[];
|
|
6
|
+
/** Global names. Defaults to every global. */
|
|
7
|
+
globals?: string[];
|
|
8
|
+
/** Includes documents that are in the trash. Off by default. */
|
|
9
|
+
includeTrashed?: boolean;
|
|
10
|
+
/** Rows per query. Paging keeps a large dump off the heap. */
|
|
11
|
+
batchSize?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Reads the content out, one record at a time.
|
|
15
|
+
*
|
|
16
|
+
* This is the one operation in the package that reads rows rather than
|
|
17
|
+
* documents, and it has a reason: a read resolves a locale, and an export
|
|
18
|
+
* that resolved a locale would drop every translation it did not pick. So the
|
|
19
|
+
* export takes the storage shape — locale maps and all — and the importer
|
|
20
|
+
* writes it back through the ordinary API, which is what keeps the single
|
|
21
|
+
* write path the engine is built around (stage 3) intact in both directions.
|
|
22
|
+
*
|
|
23
|
+
* It yields instead of returning an array because the caller is a CLI writing
|
|
24
|
+
* to a file descriptor: a collection with a hundred thousand documents must
|
|
25
|
+
* cost a constant amount of memory to export.
|
|
26
|
+
*/
|
|
27
|
+
export declare function exportContent(cms: CmsInstance, options?: ExportOptions): AsyncGenerator<ContentRecord>;
|
|
28
|
+
//# sourceMappingURL=export.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/content/export.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAGL,KAAK,aAAa,EAInB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAuB,aAAa,CAClC,GAAG,EAAE,WAAW,EAChB,OAAO,GAAE,aAAkB,GAC1B,cAAc,CAAC,aAAa,CAAC,CA4D/B"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { Actor } from "../types/actor";
|
|
2
|
+
import type { ResolvedCollection } from "../types/config";
|
|
3
|
+
import type { CmsInstance } from "../types/instance";
|
|
4
|
+
import type { JsonObject } from "../types/json";
|
|
5
|
+
import { type ContentRecord } from "./records";
|
|
6
|
+
export interface ImportOptions {
|
|
7
|
+
/**
|
|
8
|
+
* What to do with a document whose id is already there.
|
|
9
|
+
*
|
|
10
|
+
* `skip` is the default because an import is usually a restore into an
|
|
11
|
+
* empty deployment, and the destructive reading of "merge these two
|
|
12
|
+
* environments" should have to be asked for by name.
|
|
13
|
+
*/
|
|
14
|
+
onConflict?: "skip" | "update" | "fail";
|
|
15
|
+
/** Who the writes are attributed to. Defaults to the system actor. */
|
|
16
|
+
actor?: Actor | null;
|
|
17
|
+
/** Parses and reports without writing anything. */
|
|
18
|
+
dryRun?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface ImportReport {
|
|
21
|
+
documents: {
|
|
22
|
+
created: number;
|
|
23
|
+
updated: number;
|
|
24
|
+
skipped: number;
|
|
25
|
+
};
|
|
26
|
+
globals: {
|
|
27
|
+
updated: number;
|
|
28
|
+
skipped: number;
|
|
29
|
+
};
|
|
30
|
+
/** Everything that was refused, with the reason, in the order it happened. */
|
|
31
|
+
errors: string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Writes an export back, through the ordinary API.
|
|
35
|
+
*
|
|
36
|
+
* Every document goes through `create`/`update`, which means access control,
|
|
37
|
+
* validation, hooks, the activity log and the outbox all run — an import is
|
|
38
|
+
* an ordinary set of writes performed quickly, not a second way into the
|
|
39
|
+
* database. The cost is that `createdAt` and `updatedAt` are the import's own
|
|
40
|
+
* timestamps; a publication date that matters belongs in a field, where a
|
|
41
|
+
* reader can see it.
|
|
42
|
+
*
|
|
43
|
+
* Ids are preserved. That is what keeps a relation pointing at the document
|
|
44
|
+
* it pointed at, and a rich-text image pointing at the file it was, without
|
|
45
|
+
* a rewriting pass that would have to understand every field type a plugin
|
|
46
|
+
* ever adds.
|
|
47
|
+
*/
|
|
48
|
+
export declare function importContent(cms: CmsInstance, records: AsyncIterable<ContentRecord> | Iterable<ContentRecord>, options?: ImportOptions): Promise<ImportReport>;
|
|
49
|
+
interface SplitData {
|
|
50
|
+
/** Everything that can be written in one call, in the default locale. */
|
|
51
|
+
base: JsonObject;
|
|
52
|
+
/** One patch per further locale, written after the document exists. */
|
|
53
|
+
translations: Record<string, JsonObject>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Turns the storage shape back into a sequence of ordinary writes.
|
|
57
|
+
*
|
|
58
|
+
* A localized field is stored as `{ en: ..., pl: ... }` and written one
|
|
59
|
+
* language at a time, because that is what the API offers and inventing a
|
|
60
|
+
* multi-locale write for the importer alone would be a second write path with
|
|
61
|
+
* its own hooks problem.
|
|
62
|
+
*/
|
|
63
|
+
export declare function splitLocales(collection: ResolvedCollection, data: JsonObject, defaultLocale: string): SplitData;
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/content/import.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,eAAe,CAAC;AAC3D,OAAO,EAGL,KAAK,aAAa,EAGnB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,sEAAsE;IACtE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,8EAA8E;IAC9E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,EAC/D,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CA6CvB;AA2HD,UAAU,SAAS;IACjB,yEAAyE;IACzE,IAAI,EAAE,UAAU,CAAC;IACjB,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,kBAAkB,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,GACpB,SAAS,CAkCX"}
|