@plumix/core 0.6.0 → 0.7.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/dist/cache/embedded-tags.d.ts +5 -0
- package/dist/cache/embedded-tags.d.ts.map +1 -0
- package/dist/cache/embedded-tags.js +30 -0
- package/dist/cache/embedded-tags.js.map +1 -0
- package/dist/entries/read-service.d.ts.map +1 -1
- package/dist/entries/read-service.js +5 -3
- package/dist/entries/read-service.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin/errors.d.ts +7 -1
- package/dist/plugin/errors.d.ts.map +1 -1
- package/dist/plugin/errors.js +5 -0
- package/dist/plugin/errors.js.map +1 -1
- package/dist/plugin/fields/builder.d.ts +106 -0
- package/dist/plugin/fields/builder.d.ts.map +1 -0
- package/dist/plugin/fields/builder.js +162 -0
- package/dist/plugin/fields/builder.js.map +1 -0
- package/dist/plugin/fields/color.d.ts +78 -18
- package/dist/plugin/fields/color.d.ts.map +1 -1
- package/dist/plugin/fields/color.js +116 -25
- package/dist/plugin/fields/color.js.map +1 -1
- package/dist/plugin/fields/condition.d.ts +40 -0
- package/dist/plugin/fields/condition.d.ts.map +1 -0
- package/dist/plugin/fields/condition.js +115 -0
- package/dist/plugin/fields/condition.js.map +1 -0
- package/dist/plugin/fields/contributions.d.ts +233 -0
- package/dist/plugin/fields/contributions.d.ts.map +1 -0
- package/dist/plugin/fields/contributions.js +1 -0
- package/dist/plugin/fields/contributions.js.map +1 -0
- package/dist/plugin/fields/entry.d.ts +18 -22
- package/dist/plugin/fields/entry.d.ts.map +1 -1
- package/dist/plugin/fields/entry.js +13 -21
- package/dist/plugin/fields/entry.js.map +1 -1
- package/dist/plugin/fields/errors.d.ts +23 -11
- package/dist/plugin/fields/errors.d.ts.map +1 -1
- package/dist/plugin/fields/errors.js +20 -13
- package/dist/plugin/fields/errors.js.map +1 -1
- package/dist/plugin/fields/group.d.ts +90 -0
- package/dist/plugin/fields/group.d.ts.map +1 -0
- package/dist/plugin/fields/group.js +124 -0
- package/dist/plugin/fields/group.js.map +1 -0
- package/dist/plugin/fields/index.d.ts +22 -45
- package/dist/plugin/fields/index.d.ts.map +1 -1
- package/dist/plugin/fields/index.js +25 -30
- package/dist/plugin/fields/index.js.map +1 -1
- package/dist/plugin/fields/json.d.ts +71 -9
- package/dist/plugin/fields/json.d.ts.map +1 -1
- package/dist/plugin/fields/json.js +110 -16
- package/dist/plugin/fields/json.js.map +1 -1
- package/dist/plugin/fields/link.d.ts +96 -0
- package/dist/plugin/fields/link.d.ts.map +1 -0
- package/dist/plugin/fields/link.js +160 -0
- package/dist/plugin/fields/link.js.map +1 -0
- package/dist/plugin/fields/number.d.ts +86 -13
- package/dist/plugin/fields/number.d.ts.map +1 -1
- package/dist/plugin/fields/number.js +133 -20
- package/dist/plugin/fields/number.js.map +1 -1
- package/dist/plugin/fields/range.d.ts +101 -17
- package/dist/plugin/fields/range.d.ts.map +1 -1
- package/dist/plugin/fields/range.js +153 -38
- package/dist/plugin/fields/range.js.map +1 -1
- package/dist/plugin/fields/reference.d.ts +171 -0
- package/dist/plugin/fields/reference.d.ts.map +1 -0
- package/dist/plugin/fields/reference.js +193 -0
- package/dist/plugin/fields/reference.js.map +1 -0
- package/dist/plugin/fields/repeater.d.ts +111 -8
- package/dist/plugin/fields/repeater.d.ts.map +1 -1
- package/dist/plugin/fields/repeater.js +157 -66
- package/dist/plugin/fields/repeater.js.map +1 -1
- package/dist/plugin/fields/richtext-validate.d.ts +7 -0
- package/dist/plugin/fields/richtext-validate.d.ts.map +1 -1
- package/dist/plugin/fields/richtext-validate.js +11 -5
- package/dist/plugin/fields/richtext-validate.js.map +1 -1
- package/dist/plugin/fields/richtext.d.ts +78 -12
- package/dist/plugin/fields/richtext.d.ts.map +1 -1
- package/dist/plugin/fields/richtext.js +121 -26
- package/dist/plugin/fields/richtext.js.map +1 -1
- package/dist/plugin/fields/select.d.ts +150 -10
- package/dist/plugin/fields/select.d.ts.map +1 -1
- package/dist/plugin/fields/select.js +205 -17
- package/dist/plugin/fields/select.js.map +1 -1
- package/dist/plugin/fields/sub-fields.d.ts +12 -0
- package/dist/plugin/fields/sub-fields.d.ts.map +1 -0
- package/dist/plugin/fields/sub-fields.js +62 -0
- package/dist/plugin/fields/sub-fields.js.map +1 -0
- package/dist/plugin/fields/temporal.d.ts +124 -0
- package/dist/plugin/fields/temporal.d.ts.map +1 -0
- package/dist/plugin/fields/temporal.js +180 -0
- package/dist/plugin/fields/temporal.js.map +1 -0
- package/dist/plugin/fields/term.d.ts +11 -16
- package/dist/plugin/fields/term.d.ts.map +1 -1
- package/dist/plugin/fields/term.js +11 -19
- package/dist/plugin/fields/term.js.map +1 -1
- package/dist/plugin/fields/toggle.d.ts +97 -0
- package/dist/plugin/fields/toggle.d.ts.map +1 -0
- package/dist/plugin/fields/toggle.js +135 -0
- package/dist/plugin/fields/toggle.js.map +1 -0
- package/dist/plugin/fields/user.d.ts +14 -26
- package/dist/plugin/fields/user.d.ts.map +1 -1
- package/dist/plugin/fields/user.js +11 -25
- package/dist/plugin/fields/user.js.map +1 -1
- package/dist/plugin/lookup.d.ts +70 -1
- package/dist/plugin/lookup.d.ts.map +1 -1
- package/dist/plugin/manifest.d.ts +308 -128
- package/dist/plugin/manifest.d.ts.map +1 -1
- package/dist/plugin/manifest.js +94 -4
- package/dist/plugin/manifest.js.map +1 -1
- package/dist/plugin/setup-context.d.ts +5 -4
- package/dist/plugin/setup-context.d.ts.map +1 -1
- package/dist/plugin/setup-context.js +10 -3
- package/dist/plugin/setup-context.js.map +1 -1
- package/dist/plugin/validation/meta-box-fields.d.ts.map +1 -1
- package/dist/plugin/validation/meta-box-fields.js +16 -0
- package/dist/plugin/validation/meta-box-fields.js.map +1 -1
- package/dist/route/render/build-resolved-entries.d.ts.map +1 -1
- package/dist/route/render/build-resolved-entries.js +7 -2
- package/dist/route/render/build-resolved-entries.js.map +1 -1
- package/dist/route/render/render-template.d.ts.map +1 -1
- package/dist/route/render/render-template.js +12 -2
- package/dist/route/render/render-template.js.map +1 -1
- package/dist/route/render/template-builders.d.ts +15 -10
- package/dist/route/render/template-builders.d.ts.map +1 -1
- package/dist/route/render/template-builders.js.map +1 -1
- package/dist/rpc/base.d.ts +7 -0
- package/dist/rpc/base.d.ts.map +1 -1
- package/dist/rpc/errors.d.ts +7 -0
- package/dist/rpc/errors.d.ts.map +1 -1
- package/dist/rpc/errors.js +16 -0
- package/dist/rpc/errors.js.map +1 -1
- package/dist/rpc/meta/core.d.ts +89 -10
- package/dist/rpc/meta/core.d.ts.map +1 -1
- package/dist/rpc/meta/core.js +465 -282
- package/dist/rpc/meta/core.js.map +1 -1
- package/dist/rpc/meta/field-messages.d.ts +67 -0
- package/dist/rpc/meta/field-messages.d.ts.map +1 -0
- package/dist/rpc/meta/field-messages.js +67 -0
- package/dist/rpc/meta/field-messages.js.map +1 -0
- package/dist/rpc/meta/field-pipeline.d.ts +52 -0
- package/dist/rpc/meta/field-pipeline.d.ts.map +1 -0
- package/dist/rpc/meta/field-pipeline.js +501 -0
- package/dist/rpc/meta/field-pipeline.js.map +1 -0
- package/dist/rpc/procedures/auth/allowed-domains/create.d.ts +7 -0
- package/dist/rpc/procedures/auth/allowed-domains/create.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/allowed-domains/delete.d.ts +7 -0
- package/dist/rpc/procedures/auth/allowed-domains/delete.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/allowed-domains/index.d.ts +28 -0
- package/dist/rpc/procedures/auth/allowed-domains/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/allowed-domains/list.d.ts +7 -0
- package/dist/rpc/procedures/auth/allowed-domains/list.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/allowed-domains/update.d.ts +7 -0
- package/dist/rpc/procedures/auth/allowed-domains/update.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/admin-list.d.ts +7 -0
- package/dist/rpc/procedures/auth/api-tokens/admin-list.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/admin-revoke.d.ts +7 -0
- package/dist/rpc/procedures/auth/api-tokens/admin-revoke.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/create.d.ts +7 -0
- package/dist/rpc/procedures/auth/api-tokens/create.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/index.d.ts +35 -0
- package/dist/rpc/procedures/auth/api-tokens/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/list.d.ts +7 -0
- package/dist/rpc/procedures/auth/api-tokens/list.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/api-tokens/revoke.d.ts +7 -0
- package/dist/rpc/procedures/auth/api-tokens/revoke.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/credentials/delete.d.ts +7 -0
- package/dist/rpc/procedures/auth/credentials/delete.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/credentials/index.d.ts +21 -0
- package/dist/rpc/procedures/auth/credentials/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/credentials/list.d.ts +7 -0
- package/dist/rpc/procedures/auth/credentials/list.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/credentials/rename.d.ts +7 -0
- package/dist/rpc/procedures/auth/credentials/rename.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/device-flow/approve.d.ts +7 -0
- package/dist/rpc/procedures/auth/device-flow/approve.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/device-flow/deny.d.ts +7 -0
- package/dist/rpc/procedures/auth/device-flow/deny.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/device-flow/index.d.ts +21 -0
- package/dist/rpc/procedures/auth/device-flow/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/device-flow/lookup.d.ts +7 -0
- package/dist/rpc/procedures/auth/device-flow/lookup.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/index.d.ts +154 -0
- package/dist/rpc/procedures/auth/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/login-links.d.ts +7 -0
- package/dist/rpc/procedures/auth/login-links.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/mailer/index.d.ts +7 -0
- package/dist/rpc/procedures/auth/mailer/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/mailer/test-send.d.ts +7 -0
- package/dist/rpc/procedures/auth/mailer/test-send.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/oauth-providers.d.ts +7 -0
- package/dist/rpc/procedures/auth/oauth-providers.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/session.d.ts +7 -0
- package/dist/rpc/procedures/auth/session.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/sessions/index.d.ts +21 -0
- package/dist/rpc/procedures/auth/sessions/index.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/sessions/list.d.ts +7 -0
- package/dist/rpc/procedures/auth/sessions/list.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/sessions/revoke-others.d.ts +7 -0
- package/dist/rpc/procedures/auth/sessions/revoke-others.d.ts.map +1 -1
- package/dist/rpc/procedures/auth/sessions/revoke.d.ts +7 -0
- package/dist/rpc/procedures/auth/sessions/revoke.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/activity.d.ts +7 -0
- package/dist/rpc/procedures/entry/activity.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/bulk.d.ts +21 -0
- package/dist/rpc/procedures/entry/bulk.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/create-preview-link.d.ts +7 -0
- package/dist/rpc/procedures/entry/create-preview-link.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/create.d.ts +8 -1
- package/dist/rpc/procedures/entry/create.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/create.js +8 -8
- package/dist/rpc/procedures/entry/create.js.map +1 -1
- package/dist/rpc/procedures/entry/dashboard.d.ts +14 -0
- package/dist/rpc/procedures/entry/dashboard.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/delete-permanent.d.ts +7 -0
- package/dist/rpc/procedures/entry/delete-permanent.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/discard-draft.d.ts +7 -0
- package/dist/rpc/procedures/entry/discard-draft.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/duplicate.d.ts +7 -0
- package/dist/rpc/procedures/entry/duplicate.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/duplicate.js +2 -2
- package/dist/rpc/procedures/entry/duplicate.js.map +1 -1
- package/dist/rpc/procedures/entry/get.d.ts +7 -0
- package/dist/rpc/procedures/entry/get.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/get.js +2 -2
- package/dist/rpc/procedures/entry/get.js.map +1 -1
- package/dist/rpc/procedures/entry/index.d.ts +156 -2
- package/dist/rpc/procedures/entry/index.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/list.d.ts +7 -0
- package/dist/rpc/procedures/entry/list.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/lookup.d.ts +8 -2
- package/dist/rpc/procedures/entry/lookup.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/lookup.js +60 -1
- package/dist/rpc/procedures/entry/lookup.js.map +1 -1
- package/dist/rpc/procedures/entry/meta.d.ts +37 -3
- package/dist/rpc/procedures/entry/meta.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/meta.js +63 -7
- package/dist/rpc/procedures/entry/meta.js.map +1 -1
- package/dist/rpc/procedures/entry/publish.d.ts +7 -0
- package/dist/rpc/procedures/entry/publish.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/publish.js +6 -4
- package/dist/rpc/procedures/entry/publish.js.map +1 -1
- package/dist/rpc/procedures/entry/refresh-block-loader.d.ts +7 -0
- package/dist/rpc/procedures/entry/refresh-block-loader.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/restore.d.ts +7 -0
- package/dist/rpc/procedures/entry/restore.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/revisions.d.ts +56 -0
- package/dist/rpc/procedures/entry/revisions.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/schemas.d.ts +2 -2
- package/dist/rpc/procedures/entry/schemas.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/schemas.js +9 -2
- package/dist/rpc/procedures/entry/schemas.js.map +1 -1
- package/dist/rpc/procedures/entry/trash.d.ts +7 -0
- package/dist/rpc/procedures/entry/trash.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/update.d.ts +8 -1
- package/dist/rpc/procedures/entry/update.d.ts.map +1 -1
- package/dist/rpc/procedures/entry/update.js +77 -18
- package/dist/rpc/procedures/entry/update.js.map +1 -1
- package/dist/rpc/procedures/lookup/index.d.ts +14 -0
- package/dist/rpc/procedures/lookup/index.d.ts.map +1 -1
- package/dist/rpc/procedures/lookup/list.d.ts +7 -0
- package/dist/rpc/procedures/lookup/list.d.ts.map +1 -1
- package/dist/rpc/procedures/lookup/resolve.d.ts +7 -0
- package/dist/rpc/procedures/lookup/resolve.d.ts.map +1 -1
- package/dist/rpc/procedures/lookup/resolve.js +1 -1
- package/dist/rpc/procedures/lookup/resolve.js.map +1 -1
- package/dist/rpc/procedures/search/index.d.ts +7 -0
- package/dist/rpc/procedures/search/index.d.ts.map +1 -1
- package/dist/rpc/procedures/settings/get.d.ts +7 -0
- package/dist/rpc/procedures/settings/get.d.ts.map +1 -1
- package/dist/rpc/procedures/settings/index.d.ts +14 -0
- package/dist/rpc/procedures/settings/index.d.ts.map +1 -1
- package/dist/rpc/procedures/settings/upsert.d.ts +7 -0
- package/dist/rpc/procedures/settings/upsert.d.ts.map +1 -1
- package/dist/rpc/procedures/settings/upsert.js +9 -0
- package/dist/rpc/procedures/settings/upsert.js.map +1 -1
- package/dist/rpc/procedures/term/create.d.ts +7 -0
- package/dist/rpc/procedures/term/create.d.ts.map +1 -1
- package/dist/rpc/procedures/term/create.js +3 -3
- package/dist/rpc/procedures/term/create.js.map +1 -1
- package/dist/rpc/procedures/term/delete.d.ts +7 -0
- package/dist/rpc/procedures/term/delete.d.ts.map +1 -1
- package/dist/rpc/procedures/term/get.d.ts +7 -0
- package/dist/rpc/procedures/term/get.d.ts.map +1 -1
- package/dist/rpc/procedures/term/index.d.ts +35 -0
- package/dist/rpc/procedures/term/index.d.ts.map +1 -1
- package/dist/rpc/procedures/term/list.d.ts +7 -0
- package/dist/rpc/procedures/term/list.d.ts.map +1 -1
- package/dist/rpc/procedures/term/lookup.d.ts +7 -2
- package/dist/rpc/procedures/term/lookup.d.ts.map +1 -1
- package/dist/rpc/procedures/term/lookup.js +26 -0
- package/dist/rpc/procedures/term/lookup.js.map +1 -1
- package/dist/rpc/procedures/term/meta.d.ts +3 -2
- package/dist/rpc/procedures/term/meta.d.ts.map +1 -1
- package/dist/rpc/procedures/term/meta.js +7 -5
- package/dist/rpc/procedures/term/meta.js.map +1 -1
- package/dist/rpc/procedures/term/update.d.ts +7 -0
- package/dist/rpc/procedures/term/update.d.ts.map +1 -1
- package/dist/rpc/procedures/term/update.js +4 -4
- package/dist/rpc/procedures/term/update.js.map +1 -1
- package/dist/rpc/procedures/user/cancel-email-change.d.ts +7 -0
- package/dist/rpc/procedures/user/cancel-email-change.d.ts.map +1 -1
- package/dist/rpc/procedures/user/delete.d.ts +7 -0
- package/dist/rpc/procedures/user/delete.d.ts.map +1 -1
- package/dist/rpc/procedures/user/disable.d.ts +7 -0
- package/dist/rpc/procedures/user/disable.d.ts.map +1 -1
- package/dist/rpc/procedures/user/enable.d.ts +7 -0
- package/dist/rpc/procedures/user/enable.d.ts.map +1 -1
- package/dist/rpc/procedures/user/get.d.ts +7 -0
- package/dist/rpc/procedures/user/get.d.ts.map +1 -1
- package/dist/rpc/procedures/user/get.js +2 -2
- package/dist/rpc/procedures/user/get.js.map +1 -1
- package/dist/rpc/procedures/user/index.d.ts +77 -0
- package/dist/rpc/procedures/user/index.d.ts.map +1 -1
- package/dist/rpc/procedures/user/invite.d.ts +7 -0
- package/dist/rpc/procedures/user/invite.d.ts.map +1 -1
- package/dist/rpc/procedures/user/list.d.ts +7 -0
- package/dist/rpc/procedures/user/list.d.ts.map +1 -1
- package/dist/rpc/procedures/user/lookup.d.ts +6 -2
- package/dist/rpc/procedures/user/lookup.d.ts.map +1 -1
- package/dist/rpc/procedures/user/lookup.js +29 -0
- package/dist/rpc/procedures/user/lookup.js.map +1 -1
- package/dist/rpc/procedures/user/meta.d.ts +3 -2
- package/dist/rpc/procedures/user/meta.d.ts.map +1 -1
- package/dist/rpc/procedures/user/meta.js +7 -5
- package/dist/rpc/procedures/user/meta.js.map +1 -1
- package/dist/rpc/procedures/user/pending-email-change.d.ts +7 -0
- package/dist/rpc/procedures/user/pending-email-change.d.ts.map +1 -1
- package/dist/rpc/procedures/user/request-email-change.d.ts +7 -0
- package/dist/rpc/procedures/user/request-email-change.d.ts.map +1 -1
- package/dist/rpc/procedures/user/set-locale.d.ts +7 -0
- package/dist/rpc/procedures/user/set-locale.d.ts.map +1 -1
- package/dist/rpc/procedures/user/update.d.ts +7 -0
- package/dist/rpc/procedures/user/update.d.ts.map +1 -1
- package/dist/rpc/procedures/user/update.js +4 -4
- package/dist/rpc/procedures/user/update.js.map +1 -1
- package/dist/rpc/router.d.ts +457 -2
- package/dist/rpc/router.d.ts.map +1 -1
- package/dist/rpc/validation.d.ts +1 -0
- package/dist/rpc/validation.d.ts.map +1 -1
- package/dist/rpc/validation.js +1 -0
- package/dist/rpc/validation.js.map +1 -1
- package/dist/runtime/dispatcher.d.ts.map +1 -1
- package/dist/runtime/dispatcher.js +20 -10
- package/dist/runtime/dispatcher.js.map +1 -1
- package/dist/seo/feed.d.ts.map +1 -1
- package/dist/seo/feed.js +7 -1
- package/dist/seo/feed.js.map +1 -1
- package/dist/settings-core.js +1 -1
- package/dist/settings-core.js.map +1 -1
- package/dist/template-registry.d.ts +0 -16
- package/dist/template-registry.d.ts.map +1 -1
- package/dist/terms/read-service.js +2 -2
- package/dist/terms/read-service.js.map +1 -1
- package/dist/test/traced-context.d.ts +1 -1
- package/dist/test/traced-context.d.ts.map +1 -1
- package/dist/test/traced-context.js +2 -2
- package/dist/test/traced-context.js.map +1 -1
- package/package.json +2 -2
- package/dist/plugin/fields/checkbox.d.ts +0 -19
- package/dist/plugin/fields/checkbox.d.ts.map +0 -1
- package/dist/plugin/fields/checkbox.js +0 -20
- package/dist/plugin/fields/checkbox.js.map +0 -1
- package/dist/plugin/fields/date.d.ts +0 -24
- package/dist/plugin/fields/date.d.ts.map +0 -1
- package/dist/plugin/fields/date.js +0 -23
- package/dist/plugin/fields/date.js.map +0 -1
- package/dist/plugin/fields/datetime.d.ts +0 -26
- package/dist/plugin/fields/datetime.d.ts.map +0 -1
- package/dist/plugin/fields/datetime.js +0 -25
- package/dist/plugin/fields/datetime.js.map +0 -1
- package/dist/plugin/fields/email.d.ts +0 -17
- package/dist/plugin/fields/email.d.ts.map +0 -1
- package/dist/plugin/fields/email.js +0 -18
- package/dist/plugin/fields/email.js.map +0 -1
- package/dist/plugin/fields/entry-list.d.ts +0 -28
- package/dist/plugin/fields/entry-list.d.ts.map +0 -1
- package/dist/plugin/fields/entry-list.js +0 -31
- package/dist/plugin/fields/entry-list.js.map +0 -1
- package/dist/plugin/fields/multiselect.d.ts +0 -21
- package/dist/plugin/fields/multiselect.d.ts.map +0 -1
- package/dist/plugin/fields/multiselect.js +0 -43
- package/dist/plugin/fields/multiselect.js.map +0 -1
- package/dist/plugin/fields/password.d.ts +0 -24
- package/dist/plugin/fields/password.d.ts.map +0 -1
- package/dist/plugin/fields/password.js +0 -25
- package/dist/plugin/fields/password.js.map +0 -1
- package/dist/plugin/fields/radio.d.ts +0 -16
- package/dist/plugin/fields/radio.d.ts.map +0 -1
- package/dist/plugin/fields/radio.js +0 -17
- package/dist/plugin/fields/radio.js.map +0 -1
- package/dist/plugin/fields/repeater-validate.d.ts +0 -34
- package/dist/plugin/fields/repeater-validate.d.ts.map +0 -1
- package/dist/plugin/fields/repeater-validate.js +0 -104
- package/dist/plugin/fields/repeater-validate.js.map +0 -1
- package/dist/plugin/fields/term-list.d.ts +0 -27
- package/dist/plugin/fields/term-list.d.ts.map +0 -1
- package/dist/plugin/fields/term-list.js +0 -30
- package/dist/plugin/fields/term-list.js.map +0 -1
- package/dist/plugin/fields/text.d.ts +0 -37
- package/dist/plugin/fields/text.d.ts.map +0 -1
- package/dist/plugin/fields/text.js +0 -31
- package/dist/plugin/fields/text.js.map +0 -1
- package/dist/plugin/fields/textarea.d.ts +0 -20
- package/dist/plugin/fields/textarea.d.ts.map +0 -1
- package/dist/plugin/fields/textarea.js +0 -21
- package/dist/plugin/fields/textarea.js.map +0 -1
- package/dist/plugin/fields/time.d.ts +0 -24
- package/dist/plugin/fields/time.d.ts.map +0 -1
- package/dist/plugin/fields/time.js +0 -23
- package/dist/plugin/fields/time.js.map +0 -1
- package/dist/plugin/fields/url.d.ts +0 -17
- package/dist/plugin/fields/url.d.ts.map +0 -1
- package/dist/plugin/fields/url.js +0 -18
- package/dist/plugin/fields/url.js.map +0 -1
- package/dist/plugin/fields/user-list.d.ts +0 -29
- package/dist/plugin/fields/user-list.d.ts.map +0 -1
- package/dist/plugin/fields/user-list.js +0 -31
- package/dist/plugin/fields/user-list.js.map +0 -1
|
@@ -1,46 +1,161 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { humanizeFieldKey } from "./builder.js";
|
|
1
3
|
import { FieldConfigError } from "./errors.js";
|
|
2
4
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Entry point of the `range()` chain — only `.bounds()` is available
|
|
6
|
+
* until the slider's `[min, max]` track is declared, so a range without
|
|
7
|
+
* bounds can't reach `build()` (registration surfaces require a `build`
|
|
8
|
+
* method). Forgetting the bounds is a compile error, not a runtime throw.
|
|
7
9
|
*/
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
export class RangeFieldSeed {
|
|
11
|
+
#key;
|
|
12
|
+
constructor(key) {
|
|
13
|
+
this.#key = key;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Declare the slider's inclusive `[min, max]` track — both required.
|
|
17
|
+
* `min <= max` is enforced when the chain compiles at registration.
|
|
18
|
+
*/
|
|
19
|
+
bounds(min, max) {
|
|
20
|
+
return new RangeFieldBuilder(this.#key, { min, max });
|
|
15
21
|
}
|
|
16
|
-
const { min, max } = options;
|
|
17
|
-
return {
|
|
18
|
-
key: options.key,
|
|
19
|
-
label: options.label,
|
|
20
|
-
type: "number",
|
|
21
|
-
inputType: "range",
|
|
22
|
-
min,
|
|
23
|
-
max,
|
|
24
|
-
step: options.step,
|
|
25
|
-
required: options.required,
|
|
26
|
-
description: options.description,
|
|
27
|
-
default: options.default,
|
|
28
|
-
span: options.span,
|
|
29
|
-
capability: options.capability,
|
|
30
|
-
sanitize: options.sanitize ?? buildBoundsSanitizer(min, max),
|
|
31
|
-
};
|
|
32
22
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Fluent chain for the `range` slider field. Its `[min, max]` track is
|
|
25
|
+
* fixed by `.bounds()` on the seed (so the bounds are always present here);
|
|
26
|
+
* `min <= max` is enforced when the chain compiles at registration.
|
|
27
|
+
* `build()` injects a default sanitizer that rejects values outside
|
|
28
|
+
* `[min, max]` on write; a custom `.sanitize()` replaces it entirely.
|
|
29
|
+
*/
|
|
30
|
+
export class RangeFieldBuilder {
|
|
31
|
+
#key;
|
|
32
|
+
#state;
|
|
33
|
+
constructor(key, state) {
|
|
34
|
+
this.#key = key;
|
|
35
|
+
this.#state = state;
|
|
36
|
+
}
|
|
37
|
+
#fork(patch) {
|
|
38
|
+
return new _a(this.#key, {
|
|
39
|
+
...this.#state,
|
|
40
|
+
...patch,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/** Override the derived (humanized-key) label. */
|
|
44
|
+
label(label) {
|
|
45
|
+
return this.#fork({ label });
|
|
46
|
+
}
|
|
47
|
+
/** Help text rendered under the label. */
|
|
48
|
+
description(description) {
|
|
49
|
+
return this.#fork({ description });
|
|
50
|
+
}
|
|
51
|
+
/** Default for absent keys, applied at read decode (and seeded into
|
|
52
|
+
* the admin form) — narrows the read type to `number`; the stored
|
|
53
|
+
* shape stays optional. */
|
|
54
|
+
default(value) {
|
|
55
|
+
return this.#fork({ default: value });
|
|
56
|
+
}
|
|
57
|
+
/** Mark the field required — narrows the read and stored types to `number`. */
|
|
58
|
+
required() {
|
|
59
|
+
return this.#fork({ required: true });
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Column span within the box's 12-column grid — a universal layout
|
|
63
|
+
* hint; surfaces that can't honor it (the entry editor rail) ignore it.
|
|
64
|
+
*/
|
|
65
|
+
span(span) {
|
|
66
|
+
return this.#fork({ span });
|
|
67
|
+
}
|
|
68
|
+
/** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
|
|
69
|
+
capability(capability) {
|
|
70
|
+
return this.#fork({ capability });
|
|
71
|
+
}
|
|
72
|
+
/** Opt this field's value into public REST responses (default-deny). */
|
|
73
|
+
showInApi() {
|
|
74
|
+
return this.#fork({ showInApi: true });
|
|
75
|
+
}
|
|
76
|
+
/** Rule factory: this field's value equals `value` — pass the rule
|
|
77
|
+
* to a dependent field's `.visibleWhen()`. */
|
|
78
|
+
is(value) {
|
|
79
|
+
return { key: this.#key, op: "eq", value };
|
|
80
|
+
}
|
|
81
|
+
/** Rule factory: this field's value differs from `value`. */
|
|
82
|
+
isNot(value) {
|
|
83
|
+
return { key: this.#key, op: "neq", value };
|
|
84
|
+
}
|
|
85
|
+
/** Rule factory: this field has no value (unset or cleared). */
|
|
86
|
+
isEmpty() {
|
|
87
|
+
return { key: this.#key, op: "empty" };
|
|
88
|
+
}
|
|
89
|
+
/** Rule factory: this field has a value. */
|
|
90
|
+
isNotEmpty() {
|
|
91
|
+
return { key: this.#key, op: "not_empty" };
|
|
92
|
+
}
|
|
93
|
+
/** Rule factory: this field's value is greater than `value`. */
|
|
94
|
+
gt(value) {
|
|
95
|
+
return { key: this.#key, op: "gt", value };
|
|
96
|
+
}
|
|
97
|
+
/** Rule factory: this field's value is less than `value`. */
|
|
98
|
+
lt(value) {
|
|
99
|
+
return { key: this.#key, op: "lt", value };
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Show this field only when every rule passes (one AND group) —
|
|
103
|
+
* rules come from sibling fields' condition factories. Replaces any
|
|
104
|
+
* previously declared condition; `.orVisibleWhen()` adds
|
|
105
|
+
* alternatives.
|
|
106
|
+
*/
|
|
107
|
+
visibleWhen(...rules) {
|
|
108
|
+
return this.#fork({ visibleWhen: [rules] });
|
|
109
|
+
}
|
|
110
|
+
/** Add an OR alternative — one more AND group of rules. */
|
|
111
|
+
orVisibleWhen(...rules) {
|
|
112
|
+
return this.#fork({
|
|
113
|
+
visibleWhen: [...(this.#state.visibleWhen ?? []), rules],
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
step(step) {
|
|
117
|
+
return this.#fork({ step });
|
|
118
|
+
}
|
|
119
|
+
/** Normalising transform, applied after coercion and before persistence. */
|
|
120
|
+
sanitize(sanitize) {
|
|
121
|
+
return this.#fork({ sanitize: sanitize });
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Custom validation — `true` for valid, or an i18n-able failure
|
|
125
|
+
* message (sync or async). Runs after `.sanitize()` and the
|
|
126
|
+
* declarative constraints.
|
|
127
|
+
*/
|
|
128
|
+
validate(validate) {
|
|
129
|
+
return this.#fork({ validate: validate });
|
|
130
|
+
}
|
|
131
|
+
/** Compile the chain into the wire/manifest field definition. */
|
|
132
|
+
build() {
|
|
133
|
+
const { min, max } = this.#state;
|
|
134
|
+
if (min > max) {
|
|
135
|
+
throw FieldConfigError.rangeMinGreaterThanMax({
|
|
136
|
+
fieldKey: this.#key,
|
|
137
|
+
min,
|
|
138
|
+
max,
|
|
139
|
+
});
|
|
42
140
|
}
|
|
43
|
-
return
|
|
44
|
-
|
|
141
|
+
return {
|
|
142
|
+
...this.#state,
|
|
143
|
+
key: this.#key,
|
|
144
|
+
label: this.#state.label ?? humanizeFieldKey(this.#key),
|
|
145
|
+
type: "number",
|
|
146
|
+
inputType: "range",
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
_a = RangeFieldBuilder;
|
|
151
|
+
/**
|
|
152
|
+
* Bounded numeric slider — `range("opacity").bounds(0, 100)`. The
|
|
153
|
+
* `[min, max]` track is required: only `.bounds()` is available on the
|
|
154
|
+
* bare constructor, so omitting it is a compile error. `min <= max` is
|
|
155
|
+
* enforced at registration; bounds are enforced server-side by the
|
|
156
|
+
* constraint walker.
|
|
157
|
+
*/
|
|
158
|
+
export function range(key) {
|
|
159
|
+
return new RangeFieldSeed(key);
|
|
45
160
|
}
|
|
46
161
|
//# sourceMappingURL=range.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/plugin/fields/range.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/plugin/fields/range.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import type { EntryStatus } from "../../db/schema/entries.js";
|
|
2
|
+
import type { UserRole } from "../../db/schema/users.js";
|
|
3
|
+
import type { Label } from "../../i18n/label.js";
|
|
4
|
+
import type { ReferenceHydrationShapes } from "../lookup.js";
|
|
5
|
+
import type { EntryListMetaBoxField, EntryReferenceMetaBoxField, FieldBuilder, MetaBoxFieldSpan, MetaBoxFieldValidate, ReferenceReadProjection, TermListMetaBoxField, TermReferenceMetaBoxField, UserListMetaBoxField, UserMetaBoxField } from "../manifest.js";
|
|
6
|
+
import type { MetaFieldCondition, MetaFieldConditionRule } from "./condition.js";
|
|
7
|
+
/**
|
|
8
|
+
* The hydrated read shape for a reference `kind`, sourced from the
|
|
9
|
+
* shared {@link ReferenceHydrationShapes} registry so the builder's
|
|
10
|
+
* default read type tracks whatever the adapter actually resolves.
|
|
11
|
+
* Plugin-registered kinds augment that registry; an unregistered kind
|
|
12
|
+
* folds to `never`.
|
|
13
|
+
*/
|
|
14
|
+
type ReferenceSummaryOf<Kind extends string> = Kind extends keyof ReferenceHydrationShapes ? ReferenceHydrationShapes[Kind] : never;
|
|
15
|
+
/** One read element: the hydrated summary by default, the bare id after `.returns("id")`. */
|
|
16
|
+
type ReferenceReadItem<Summary, Returns extends "id" | "hydrated"> = Returns extends "id" ? string : Summary;
|
|
17
|
+
/**
|
|
18
|
+
* The phantom read type. Single references are *always* optional — a
|
|
19
|
+
* live target can be deleted after the id is written, so even a
|
|
20
|
+
* `.required()` field reads `undefined` for an orphan. Multi references
|
|
21
|
+
* read a dense array (orphans drop out); the array itself is present
|
|
22
|
+
* once `.required()` guarantees a write, optional otherwise.
|
|
23
|
+
*/
|
|
24
|
+
type ReferenceReadValue<Summary, Multiple extends boolean, Required extends boolean, Returns extends "id" | "hydrated"> = Multiple extends true ? Required extends true ? readonly ReferenceReadItem<Summary, Returns>[] : readonly ReferenceReadItem<Summary, Returns>[] | undefined : ReferenceReadItem<Summary, Returns> | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* The phantom stored shape — bare ids, what `whereMeta` addresses.
|
|
27
|
+
* `.required()` narrows away `undefined` (write-enforced); the read
|
|
28
|
+
* projection (`.returns()`) never touches it.
|
|
29
|
+
*/
|
|
30
|
+
type ReferenceStoredValue<Multiple extends boolean, Required extends boolean> = Multiple extends true ? Required extends true ? readonly string[] : readonly string[] | undefined : Required extends true ? string : string | undefined;
|
|
31
|
+
/** The compiled field variant a `(kind, cardinality)` pair builds to. */
|
|
32
|
+
type ReferenceFieldOf<Kind extends string, Multiple extends boolean> = Kind extends "entry" ? Multiple extends true ? EntryListMetaBoxField : EntryReferenceMetaBoxField : Kind extends "term" ? Multiple extends true ? TermListMetaBoxField : TermReferenceMetaBoxField : Kind extends "user" ? Multiple extends true ? UserListMetaBoxField : UserMetaBoxField : never;
|
|
33
|
+
interface ReferenceFieldState {
|
|
34
|
+
readonly visibleWhen?: MetaFieldCondition;
|
|
35
|
+
readonly label?: Label;
|
|
36
|
+
readonly description?: Label;
|
|
37
|
+
readonly default?: string | readonly string[];
|
|
38
|
+
readonly required?: true;
|
|
39
|
+
readonly multiple?: true;
|
|
40
|
+
readonly returns?: ReferenceReadProjection;
|
|
41
|
+
readonly max?: number;
|
|
42
|
+
readonly span?: MetaBoxFieldSpan;
|
|
43
|
+
readonly capability?: string;
|
|
44
|
+
readonly showInApi?: true;
|
|
45
|
+
readonly sanitize?: (value: unknown) => unknown;
|
|
46
|
+
readonly validate?: MetaBoxFieldValidate;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Fluent chain shared by the core reference fields (`entry`, `term`,
|
|
50
|
+
* `user`). Immutable — every call returns a fresh instance. The type
|
|
51
|
+
* parameters are the declaration's compile-time state:
|
|
52
|
+
*
|
|
53
|
+
* - `Kind` selects the adapter and, through {@link ReferenceSummaryOf},
|
|
54
|
+
* the hydrated read shape; it also gates the kind-specific scope
|
|
55
|
+
* chains (`.roles()` on `user`, `.status()` / `.includeTrashed()` on
|
|
56
|
+
* `entry`);
|
|
57
|
+
* - `K` is the literal field key;
|
|
58
|
+
* - `Multiple` flips storage + read type to arrays (`.multiple()`);
|
|
59
|
+
* - `Required` narrows the stored shape and, for multi fields, the read
|
|
60
|
+
* type (`.required()`);
|
|
61
|
+
* - `Returns` swaps the hydrated read for the bare id (`.returns("id")`).
|
|
62
|
+
*
|
|
63
|
+
* All phantom — nothing at runtime carries them. Reads default to the
|
|
64
|
+
* hydrated summary so the typed value never lies about what the read
|
|
65
|
+
* pipeline resolves. The scope object lives on the runtime instance,
|
|
66
|
+
* seeded by the factory and refined by the scope chains.
|
|
67
|
+
*/
|
|
68
|
+
export declare class ReferenceFieldBuilder<Kind extends string, K extends string = string, Multiple extends boolean = false, Required extends boolean = false, Returns extends "id" | "hydrated" = "hydrated"> implements FieldBuilder {
|
|
69
|
+
#private;
|
|
70
|
+
/** Phantom literal key of the field — type-level only, never assigned. */
|
|
71
|
+
readonly _key: K;
|
|
72
|
+
/** Phantom read type — hydrated summary by default, id after `.returns("id")`. */
|
|
73
|
+
readonly _value: ReferenceReadValue<ReferenceSummaryOf<Kind>, Multiple, Required, Returns>;
|
|
74
|
+
/** Phantom stored shape — bare ids; `.required()` narrows optionality. */
|
|
75
|
+
readonly _stored: ReferenceStoredValue<Multiple, Required>;
|
|
76
|
+
/** Phantom cardinality marker backing the compile-time gate on `.multiple()` / `.max()`. */
|
|
77
|
+
readonly _multiple: Multiple;
|
|
78
|
+
constructor(kind: Kind, key: string, scope: Record<string, unknown>, state?: ReferenceFieldState);
|
|
79
|
+
/**
|
|
80
|
+
* Store an array of ids instead of a single one (`type` flips to
|
|
81
|
+
* `json`, reads become a dense array). Declare cardinality before
|
|
82
|
+
* `.required()` narrows the shapes — the `this`-type gate keeps a
|
|
83
|
+
* post-narrowing `.multiple()` from compiling.
|
|
84
|
+
*/
|
|
85
|
+
multiple(this: ReferenceFieldBuilder<Kind, K, false, false, Returns>): ReferenceFieldBuilder<Kind, K, true, false, Returns>;
|
|
86
|
+
/**
|
|
87
|
+
* Cap the array length — multi-value fields only. Carried on the
|
|
88
|
+
* definition and the wire; the constraint walker enforces it server-side.
|
|
89
|
+
*/
|
|
90
|
+
max(this: ReferenceFieldBuilder<Kind, K, true, Required, Returns>, max: number): ReferenceFieldBuilder<Kind, K, true, Required, Returns>;
|
|
91
|
+
/**
|
|
92
|
+
* Read the bare stored id(s) instead of the hydrated summary — opts
|
|
93
|
+
* this field out of the read-time hydration join. Storage and the
|
|
94
|
+
* write contract are unaffected.
|
|
95
|
+
*/
|
|
96
|
+
returns(shape: "id"): ReferenceFieldBuilder<Kind, K, Multiple, Required, "id">;
|
|
97
|
+
/**
|
|
98
|
+
* Mark the field required — enforced at write time by the constraint
|
|
99
|
+
* walker. Narrows the stored shape; a single reference's read stays
|
|
100
|
+
* optional (targets can orphan after the write).
|
|
101
|
+
*/
|
|
102
|
+
required(): ReferenceFieldBuilder<Kind, K, Multiple, true, Returns>;
|
|
103
|
+
/**
|
|
104
|
+
* Restrict an `entry` reference to a lifecycle status (supersedes the
|
|
105
|
+
* `includeTrashed` default). Public-render consumers pass `"published"`
|
|
106
|
+
* so drafts never surface.
|
|
107
|
+
*/
|
|
108
|
+
status(this: ReferenceFieldBuilder<"entry", K, Multiple, Required, Returns>, status: EntryStatus): ReferenceFieldBuilder<"entry", K, Multiple, Required, Returns>;
|
|
109
|
+
/** Surface trashed entries in an `entry` reference (default: hidden). */
|
|
110
|
+
includeTrashed(this: ReferenceFieldBuilder<"entry", K, Multiple, Required, Returns>): ReferenceFieldBuilder<"entry", K, Multiple, Required, Returns>;
|
|
111
|
+
/** Restrict a `user` reference to these roles (absent → any role). */
|
|
112
|
+
roles(this: ReferenceFieldBuilder<"user", K, Multiple, Required, Returns>, roles: readonly UserRole[]): ReferenceFieldBuilder<"user", K, Multiple, Required, Returns>;
|
|
113
|
+
/** Surface disabled accounts in a `user` reference (default: hidden). */
|
|
114
|
+
includeDisabled(this: ReferenceFieldBuilder<"user", K, Multiple, Required, Returns>): ReferenceFieldBuilder<"user", K, Multiple, Required, Returns>;
|
|
115
|
+
/** Override the derived (humanized-key) label. */
|
|
116
|
+
label(label: Label): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
|
|
117
|
+
/** Help text rendered under the label. */
|
|
118
|
+
description(description: Label): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
|
|
119
|
+
/**
|
|
120
|
+
* Prefill for absent keys — a stored id (or id array for multi
|
|
121
|
+
* fields), seeded into the admin form. Purely a form/decode seed:
|
|
122
|
+
* a reference read stays optional regardless (the default id can
|
|
123
|
+
* itself orphan).
|
|
124
|
+
*/
|
|
125
|
+
default(value: Multiple extends true ? readonly string[] : string): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
|
|
126
|
+
/**
|
|
127
|
+
* Column span within the box's 12-column grid — a universal layout
|
|
128
|
+
* hint; surfaces that can't honor it (the entry editor rail) ignore it.
|
|
129
|
+
*/
|
|
130
|
+
span(span: MetaBoxFieldSpan): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
|
|
131
|
+
/** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
|
|
132
|
+
capability(capability: string): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
|
|
133
|
+
/** Opt this field's value into public REST responses (default-deny). */
|
|
134
|
+
showInApi(): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
|
|
135
|
+
/** Rule factory: this field's stored id equals `value`. */
|
|
136
|
+
is(value: string): MetaFieldConditionRule;
|
|
137
|
+
/** Rule factory: this field's stored id differs from `value`. */
|
|
138
|
+
isNot(value: string): MetaFieldConditionRule;
|
|
139
|
+
/** Rule factory: this field has no value (unset or cleared). */
|
|
140
|
+
isEmpty(): MetaFieldConditionRule;
|
|
141
|
+
/** Rule factory: this field has a value. */
|
|
142
|
+
isNotEmpty(): MetaFieldConditionRule;
|
|
143
|
+
/** Rule factory: the selection includes `id` — multi-value only. */
|
|
144
|
+
contains(this: ReferenceFieldBuilder<Kind, K, true, Required, Returns>, id: string): MetaFieldConditionRule;
|
|
145
|
+
/** Rule factory: the selection does not include `id` — multi-value only. */
|
|
146
|
+
notContains(this: ReferenceFieldBuilder<Kind, K, true, Required, Returns>, id: string): MetaFieldConditionRule;
|
|
147
|
+
/**
|
|
148
|
+
* Show this field only when every rule passes (one AND group) — rules
|
|
149
|
+
* come from sibling fields' condition factories. Replaces any
|
|
150
|
+
* previously declared condition; `.orVisibleWhen()` adds alternatives.
|
|
151
|
+
*/
|
|
152
|
+
visibleWhen(...rules: MetaFieldConditionRule[]): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
|
|
153
|
+
/** Add an OR alternative — one more AND group of rules. */
|
|
154
|
+
orVisibleWhen(...rules: MetaFieldConditionRule[]): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
|
|
155
|
+
/**
|
|
156
|
+
* Normalising transform, applied after coercion and before
|
|
157
|
+
* persistence. Receives the stored id(s) — the read-time hydration is
|
|
158
|
+
* a separate, later step.
|
|
159
|
+
*/
|
|
160
|
+
sanitize(sanitize: (value: unknown) => unknown): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
|
|
161
|
+
/**
|
|
162
|
+
* Custom validation — `true` for valid, or an i18n-able failure
|
|
163
|
+
* message (sync or async). Runs after `.sanitize()` and the
|
|
164
|
+
* declarative constraints.
|
|
165
|
+
*/
|
|
166
|
+
validate(validate: MetaBoxFieldValidate): ReferenceFieldBuilder<Kind, K, Multiple, Required, Returns>;
|
|
167
|
+
/** Compile the chain into the wire/manifest field definition. */
|
|
168
|
+
build(): ReferenceFieldOf<Kind, Multiple>;
|
|
169
|
+
}
|
|
170
|
+
export {};
|
|
171
|
+
//# sourceMappingURL=reference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/reference.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
var _a;
|
|
2
|
+
import { humanizeFieldKey } from "./builder.js";
|
|
3
|
+
/**
|
|
4
|
+
* Fluent chain shared by the core reference fields (`entry`, `term`,
|
|
5
|
+
* `user`). Immutable — every call returns a fresh instance. The type
|
|
6
|
+
* parameters are the declaration's compile-time state:
|
|
7
|
+
*
|
|
8
|
+
* - `Kind` selects the adapter and, through {@link ReferenceSummaryOf},
|
|
9
|
+
* the hydrated read shape; it also gates the kind-specific scope
|
|
10
|
+
* chains (`.roles()` on `user`, `.status()` / `.includeTrashed()` on
|
|
11
|
+
* `entry`);
|
|
12
|
+
* - `K` is the literal field key;
|
|
13
|
+
* - `Multiple` flips storage + read type to arrays (`.multiple()`);
|
|
14
|
+
* - `Required` narrows the stored shape and, for multi fields, the read
|
|
15
|
+
* type (`.required()`);
|
|
16
|
+
* - `Returns` swaps the hydrated read for the bare id (`.returns("id")`).
|
|
17
|
+
*
|
|
18
|
+
* All phantom — nothing at runtime carries them. Reads default to the
|
|
19
|
+
* hydrated summary so the typed value never lies about what the read
|
|
20
|
+
* pipeline resolves. The scope object lives on the runtime instance,
|
|
21
|
+
* seeded by the factory and refined by the scope chains.
|
|
22
|
+
*/
|
|
23
|
+
export class ReferenceFieldBuilder {
|
|
24
|
+
#kind;
|
|
25
|
+
#key;
|
|
26
|
+
#scope;
|
|
27
|
+
#state;
|
|
28
|
+
constructor(kind, key, scope, state = {}) {
|
|
29
|
+
this.#kind = kind;
|
|
30
|
+
this.#key = key;
|
|
31
|
+
this.#scope = scope;
|
|
32
|
+
this.#state = state;
|
|
33
|
+
}
|
|
34
|
+
#fork(patch, scopePatch) {
|
|
35
|
+
return new _a(this.#kind, this.#key, scopePatch ? { ...this.#scope, ...scopePatch } : this.#scope, { ...this.#state, ...patch });
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Store an array of ids instead of a single one (`type` flips to
|
|
39
|
+
* `json`, reads become a dense array). Declare cardinality before
|
|
40
|
+
* `.required()` narrows the shapes — the `this`-type gate keeps a
|
|
41
|
+
* post-narrowing `.multiple()` from compiling.
|
|
42
|
+
*/
|
|
43
|
+
multiple() {
|
|
44
|
+
return this.#fork({ multiple: true });
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Cap the array length — multi-value fields only. Carried on the
|
|
48
|
+
* definition and the wire; the constraint walker enforces it server-side.
|
|
49
|
+
*/
|
|
50
|
+
max(max) {
|
|
51
|
+
return this.#fork({ max });
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Read the bare stored id(s) instead of the hydrated summary — opts
|
|
55
|
+
* this field out of the read-time hydration join. Storage and the
|
|
56
|
+
* write contract are unaffected.
|
|
57
|
+
*/
|
|
58
|
+
returns(shape) {
|
|
59
|
+
return this.#fork({ returns: shape });
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Mark the field required — enforced at write time by the constraint
|
|
63
|
+
* walker. Narrows the stored shape; a single reference's read stays
|
|
64
|
+
* optional (targets can orphan after the write).
|
|
65
|
+
*/
|
|
66
|
+
required() {
|
|
67
|
+
return this.#fork({ required: true });
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Restrict an `entry` reference to a lifecycle status (supersedes the
|
|
71
|
+
* `includeTrashed` default). Public-render consumers pass `"published"`
|
|
72
|
+
* so drafts never surface.
|
|
73
|
+
*/
|
|
74
|
+
status(status) {
|
|
75
|
+
return this.#fork({}, { status });
|
|
76
|
+
}
|
|
77
|
+
/** Surface trashed entries in an `entry` reference (default: hidden). */
|
|
78
|
+
includeTrashed() {
|
|
79
|
+
return this.#fork({}, { includeTrashed: true });
|
|
80
|
+
}
|
|
81
|
+
/** Restrict a `user` reference to these roles (absent → any role). */
|
|
82
|
+
roles(roles) {
|
|
83
|
+
return this.#fork({}, { roles });
|
|
84
|
+
}
|
|
85
|
+
/** Surface disabled accounts in a `user` reference (default: hidden). */
|
|
86
|
+
includeDisabled() {
|
|
87
|
+
return this.#fork({}, { includeDisabled: true });
|
|
88
|
+
}
|
|
89
|
+
/** Override the derived (humanized-key) label. */
|
|
90
|
+
label(label) {
|
|
91
|
+
return this.#fork({ label });
|
|
92
|
+
}
|
|
93
|
+
/** Help text rendered under the label. */
|
|
94
|
+
description(description) {
|
|
95
|
+
return this.#fork({ description });
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Prefill for absent keys — a stored id (or id array for multi
|
|
99
|
+
* fields), seeded into the admin form. Purely a form/decode seed:
|
|
100
|
+
* a reference read stays optional regardless (the default id can
|
|
101
|
+
* itself orphan).
|
|
102
|
+
*/
|
|
103
|
+
default(value) {
|
|
104
|
+
return this.#fork({ default: value });
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Column span within the box's 12-column grid — a universal layout
|
|
108
|
+
* hint; surfaces that can't honor it (the entry editor rail) ignore it.
|
|
109
|
+
*/
|
|
110
|
+
span(span) {
|
|
111
|
+
return this.#fork({ span });
|
|
112
|
+
}
|
|
113
|
+
/** Capability gate for this field — see `MetaBoxFieldBase.capability`. */
|
|
114
|
+
capability(capability) {
|
|
115
|
+
return this.#fork({ capability });
|
|
116
|
+
}
|
|
117
|
+
/** Opt this field's value into public REST responses (default-deny). */
|
|
118
|
+
showInApi() {
|
|
119
|
+
return this.#fork({ showInApi: true });
|
|
120
|
+
}
|
|
121
|
+
/** Rule factory: this field's stored id equals `value`. */
|
|
122
|
+
is(value) {
|
|
123
|
+
return { key: this.#key, op: "eq", value };
|
|
124
|
+
}
|
|
125
|
+
/** Rule factory: this field's stored id differs from `value`. */
|
|
126
|
+
isNot(value) {
|
|
127
|
+
return { key: this.#key, op: "neq", value };
|
|
128
|
+
}
|
|
129
|
+
/** Rule factory: this field has no value (unset or cleared). */
|
|
130
|
+
isEmpty() {
|
|
131
|
+
return { key: this.#key, op: "empty" };
|
|
132
|
+
}
|
|
133
|
+
/** Rule factory: this field has a value. */
|
|
134
|
+
isNotEmpty() {
|
|
135
|
+
return { key: this.#key, op: "not_empty" };
|
|
136
|
+
}
|
|
137
|
+
/** Rule factory: the selection includes `id` — multi-value only. */
|
|
138
|
+
contains(id) {
|
|
139
|
+
return { key: this.#key, op: "contains", value: id };
|
|
140
|
+
}
|
|
141
|
+
/** Rule factory: the selection does not include `id` — multi-value only. */
|
|
142
|
+
notContains(id) {
|
|
143
|
+
return { key: this.#key, op: "not_contains", value: id };
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Show this field only when every rule passes (one AND group) — rules
|
|
147
|
+
* come from sibling fields' condition factories. Replaces any
|
|
148
|
+
* previously declared condition; `.orVisibleWhen()` adds alternatives.
|
|
149
|
+
*/
|
|
150
|
+
visibleWhen(...rules) {
|
|
151
|
+
return this.#fork({ visibleWhen: [rules] });
|
|
152
|
+
}
|
|
153
|
+
/** Add an OR alternative — one more AND group of rules. */
|
|
154
|
+
orVisibleWhen(...rules) {
|
|
155
|
+
return this.#fork({
|
|
156
|
+
visibleWhen: [...(this.#state.visibleWhen ?? []), rules],
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Normalising transform, applied after coercion and before
|
|
161
|
+
* persistence. Receives the stored id(s) — the read-time hydration is
|
|
162
|
+
* a separate, later step.
|
|
163
|
+
*/
|
|
164
|
+
sanitize(sanitize) {
|
|
165
|
+
return this.#fork({ sanitize });
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Custom validation — `true` for valid, or an i18n-able failure
|
|
169
|
+
* message (sync or async). Runs after `.sanitize()` and the
|
|
170
|
+
* declarative constraints.
|
|
171
|
+
*/
|
|
172
|
+
validate(validate) {
|
|
173
|
+
return this.#fork({ validate });
|
|
174
|
+
}
|
|
175
|
+
/** Compile the chain into the wire/manifest field definition. */
|
|
176
|
+
build() {
|
|
177
|
+
const { multiple, ...state } = this.#state;
|
|
178
|
+
const target = multiple
|
|
179
|
+
? { kind: this.#kind, scope: this.#scope, multiple: true }
|
|
180
|
+
: { kind: this.#kind, scope: this.#scope };
|
|
181
|
+
const field = {
|
|
182
|
+
...state,
|
|
183
|
+
key: this.#key,
|
|
184
|
+
label: state.label ?? humanizeFieldKey(this.#key),
|
|
185
|
+
type: multiple ? "json" : "string",
|
|
186
|
+
inputType: multiple ? `${this.#kind}List` : this.#kind,
|
|
187
|
+
referenceTarget: target,
|
|
188
|
+
};
|
|
189
|
+
return field;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
_a = ReferenceFieldBuilder;
|
|
193
|
+
//# sourceMappingURL=reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../../../src/plugin/fields/reference.ts"],"names":[],"mappings":"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"}
|