@plumix/core 0.5.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/context/app.d.ts +12 -0
- package/dist/context/app.d.ts.map +1 -1
- package/dist/context/app.js +10 -4
- package/dist/context/app.js.map +1 -1
- package/dist/context/memo.d.ts +22 -0
- package/dist/context/memo.d.ts.map +1 -0
- package/dist/context/memo.js +27 -0
- package/dist/context/memo.js.map +1 -0
- package/dist/context/traced-slots.d.ts +17 -0
- package/dist/context/traced-slots.d.ts.map +1 -0
- package/dist/context/traced-slots.js +57 -0
- package/dist/context/traced-slots.js.map +1 -0
- package/dist/entries/read-service.d.ts +6 -0
- package/dist/entries/read-service.d.ts.map +1 -1
- package/dist/entries/read-service.js +19 -3
- package/dist/entries/read-service.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -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 +24 -20
- 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 +74 -10
- package/dist/plugin/lookup.d.ts.map +1 -1
- package/dist/plugin/manifest.d.ts +319 -160
- 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 +10 -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/asset-manifest.d.ts +1 -1
- package/dist/route/render/asset-manifest.d.ts.map +1 -1
- package/dist/route/render/asset-manifest.js +7 -1
- package/dist/route/render/asset-manifest.js.map +1 -1
- package/dist/route/render/build-resolved-entries.d.ts.map +1 -1
- package/dist/route/render/build-resolved-entries.js +25 -12
- package/dist/route/render/build-resolved-entries.js.map +1 -1
- package/dist/route/render/render-template.d.ts +1 -1
- package/dist/route/render/render-template.d.ts.map +1 -1
- package/dist/route/render/render-template.js +50 -23
- 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 +92 -14
- package/dist/rpc/meta/core.d.ts.map +1 -1
- package/dist/rpc/meta/core.js +524 -406
- 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 +74 -12
- 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/lookup.errors.d.ts +2 -1
- package/dist/rpc/procedures/lookup.errors.d.ts.map +1 -1
- package/dist/rpc/procedures/lookup.errors.js +3 -0
- package/dist/rpc/procedures/lookup.errors.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 +29 -8
- 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 +90 -39
- 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/telemetry-otel.d.ts +29 -0
- package/dist/telemetry-otel.d.ts.map +1 -0
- package/dist/telemetry-otel.js +218 -0
- package/dist/telemetry-otel.js.map +1 -0
- package/dist/template-deps-core.d.ts.map +1 -1
- package/dist/template-deps-core.js +31 -14
- package/dist/template-deps-core.js.map +1 -1
- package/dist/template-deps.d.ts.map +1 -1
- package/dist/template-deps.js +12 -8
- package/dist/template-deps.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/index.d.ts +3 -0
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +4 -0
- package/dist/test/index.js.map +1 -1
- package/dist/test/traced-context.d.ts +17 -0
- package/dist/test/traced-context.d.ts.map +1 -0
- package/dist/test/traced-context.js +28 -0
- package/dist/test/traced-context.js.map +1 -0
- package/package.json +6 -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
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** Comparison applied between a driver field's value and the rule. */
|
|
2
|
+
export type MetaFieldConditionOperator = "eq" | "neq" | "empty" | "not_empty" | "gt" | "lt" | "contains" | "not_contains" | "count_gt" | "count_lt";
|
|
3
|
+
/**
|
|
4
|
+
* One comparison against a driver field, addressed by its meta key.
|
|
5
|
+
* `value` is the JSON-serializable comparand; operators that don't
|
|
6
|
+
* compare against a value omit it.
|
|
7
|
+
*/
|
|
8
|
+
export interface MetaFieldConditionRule {
|
|
9
|
+
readonly key: string;
|
|
10
|
+
readonly op: MetaFieldConditionOperator;
|
|
11
|
+
readonly value?: unknown;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* OR-of-AND groups: the field is visible when any group passes, and a
|
|
15
|
+
* group passes when all of its rules do. `.visibleWhen(...rules)`
|
|
16
|
+
* authors the first group; each `.orVisibleWhen(...rules)` appends one.
|
|
17
|
+
*/
|
|
18
|
+
export type MetaFieldCondition = readonly (readonly MetaFieldConditionRule[])[];
|
|
19
|
+
/**
|
|
20
|
+
* Evaluate a field's visibility against the sibling values of its box
|
|
21
|
+
* (form values in the admin, the incoming meta bag on the server). A
|
|
22
|
+
* field without a condition is always visible.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isFieldVisible(field: {
|
|
25
|
+
readonly visibleWhen?: MetaFieldCondition;
|
|
26
|
+
}, values: Readonly<Record<string, unknown>>): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Write-side companion to `isFieldVisible`: whether a field's key
|
|
29
|
+
* should be dropped from an incoming write. Condition-hidden fields
|
|
30
|
+
* skip validation entirely, because an editor can never fix a value
|
|
31
|
+
* behind an input they cannot see. Visibility is judged from the
|
|
32
|
+
* incoming bag (the admin submits the full form state), and only when
|
|
33
|
+
* the bag carries every referenced driver: a partial patch that omits
|
|
34
|
+
* a driver is validated as if visible rather than silently dropped on
|
|
35
|
+
* unknown driver state.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isConditionHidden(field: {
|
|
38
|
+
readonly visibleWhen?: MetaFieldCondition;
|
|
39
|
+
}, input: Readonly<Record<string, unknown>>): boolean;
|
|
40
|
+
//# sourceMappingURL=condition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/condition.ts"],"names":[],"mappings":"AAQA,sEAAsE;AACtE,MAAM,MAAM,0BAA0B,GAClC,IAAI,GACJ,KAAK,GACL,OAAO,GACP,WAAW,GACX,IAAI,GACJ,IAAI,GACJ,UAAU,GACV,cAAc,GACd,UAAU,GACV,UAAU,CAAC;AAEf;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,0BAA0B,CAAC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,SAAS,sBAAsB,EAAE,CAAC,EAAE,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;CAAE,EACpD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,OAAO,CAMT;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE;IAAE,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;CAAE,EACpD,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACvC,OAAO,CAMT"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// Conditional-visibility rule model for meta-box fields. Rules are
|
|
2
|
+
// plain wire objects addressing driver fields by key — authored via
|
|
3
|
+
// the typed condition factories on each fluent builder, serialized
|
|
4
|
+
// into the manifest untouched, and evaluated by the same
|
|
5
|
+
// `isFieldVisible` on both sides: the admin form (live show/hide as
|
|
6
|
+
// driver values change) and the server write pipeline (hidden fields
|
|
7
|
+
// skip validation).
|
|
8
|
+
/**
|
|
9
|
+
* Evaluate a field's visibility against the sibling values of its box
|
|
10
|
+
* (form values in the admin, the incoming meta bag on the server). A
|
|
11
|
+
* field without a condition is always visible.
|
|
12
|
+
*/
|
|
13
|
+
export function isFieldVisible(field, values) {
|
|
14
|
+
const groups = field.visibleWhen;
|
|
15
|
+
if (groups === undefined || groups.length === 0)
|
|
16
|
+
return true;
|
|
17
|
+
return groups.some((group) => group.every((rule) => evaluateRule(rule, values[rule.key])));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Write-side companion to `isFieldVisible`: whether a field's key
|
|
21
|
+
* should be dropped from an incoming write. Condition-hidden fields
|
|
22
|
+
* skip validation entirely, because an editor can never fix a value
|
|
23
|
+
* behind an input they cannot see. Visibility is judged from the
|
|
24
|
+
* incoming bag (the admin submits the full form state), and only when
|
|
25
|
+
* the bag carries every referenced driver: a partial patch that omits
|
|
26
|
+
* a driver is validated as if visible rather than silently dropped on
|
|
27
|
+
* unknown driver state.
|
|
28
|
+
*/
|
|
29
|
+
export function isConditionHidden(field, input) {
|
|
30
|
+
const groups = field.visibleWhen ?? [];
|
|
31
|
+
const driversPresent = groups.every((group) => group.every((rule) => rule.key in input));
|
|
32
|
+
return driversPresent && !isFieldVisible(field, input);
|
|
33
|
+
}
|
|
34
|
+
function evaluateRule(rule, value) {
|
|
35
|
+
switch (rule.op) {
|
|
36
|
+
case "eq":
|
|
37
|
+
return structurallyEqual(value, rule.value);
|
|
38
|
+
case "neq":
|
|
39
|
+
return !structurallyEqual(value, rule.value);
|
|
40
|
+
case "empty":
|
|
41
|
+
return isEmptyValue(value);
|
|
42
|
+
case "not_empty":
|
|
43
|
+
return !isEmptyValue(value);
|
|
44
|
+
case "gt":
|
|
45
|
+
return compareNumeric(value, rule.value, (a, b) => a > b);
|
|
46
|
+
case "lt":
|
|
47
|
+
return compareNumeric(value, rule.value, (a, b) => a < b);
|
|
48
|
+
case "contains":
|
|
49
|
+
return containsItem(value, rule.value);
|
|
50
|
+
case "not_contains":
|
|
51
|
+
return !containsItem(value, rule.value);
|
|
52
|
+
case "count_gt":
|
|
53
|
+
return compareNumeric(countOf(value), rule.value, (a, b) => a > b);
|
|
54
|
+
case "count_lt":
|
|
55
|
+
return compareNumeric(countOf(value), rule.value, (a, b) => a < b);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function containsItem(value, comparand) {
|
|
59
|
+
return (Array.isArray(value) &&
|
|
60
|
+
value.some((item) => structurallyEqual(item, comparand)));
|
|
61
|
+
}
|
|
62
|
+
// Multi-value drivers count their selections; anything else (including
|
|
63
|
+
// an absent value) counts as zero.
|
|
64
|
+
function countOf(value) {
|
|
65
|
+
return Array.isArray(value) ? value.length : 0;
|
|
66
|
+
}
|
|
67
|
+
// JSON-structural equality — rule comparands are JSON-serializable by
|
|
68
|
+
// construction (typed factories produce them from field value types),
|
|
69
|
+
// so array order and own enumerable keys are the identity. Objects
|
|
70
|
+
// compare key-order-insensitively.
|
|
71
|
+
function structurallyEqual(a, b) {
|
|
72
|
+
if (a === b)
|
|
73
|
+
return true;
|
|
74
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
75
|
+
return (a.length === b.length &&
|
|
76
|
+
a.every((item, i) => structurallyEqual(item, b[i])));
|
|
77
|
+
}
|
|
78
|
+
if (typeof a === "object" &&
|
|
79
|
+
typeof b === "object" &&
|
|
80
|
+
a !== null &&
|
|
81
|
+
b !== null &&
|
|
82
|
+
!Array.isArray(a) &&
|
|
83
|
+
!Array.isArray(b)) {
|
|
84
|
+
const aEntries = Object.entries(a);
|
|
85
|
+
if (aEntries.length !== Object.keys(b).length)
|
|
86
|
+
return false;
|
|
87
|
+
return aEntries.every(([key, item]) => key in b &&
|
|
88
|
+
structurallyEqual(item, b[key]));
|
|
89
|
+
}
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
// "No value yet" as an editor perceives it: unset, cleared input, or
|
|
93
|
+
// an empty multi-value selection. `false` / `0` are values.
|
|
94
|
+
function isEmptyValue(value) {
|
|
95
|
+
if (value === undefined || value === null || value === "")
|
|
96
|
+
return true;
|
|
97
|
+
return Array.isArray(value) && value.length === 0;
|
|
98
|
+
}
|
|
99
|
+
function compareNumeric(value, bound, cmp) {
|
|
100
|
+
const parsed = numericValueOf(value);
|
|
101
|
+
return (parsed !== undefined && typeof bound === "number" && cmp(parsed, bound));
|
|
102
|
+
}
|
|
103
|
+
// Numeric driver values may arrive as strings (an HTML number input's
|
|
104
|
+
// raw form value) — accept them, but never coerce blank to 0.
|
|
105
|
+
function numericValueOf(value) {
|
|
106
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
107
|
+
return value;
|
|
108
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
109
|
+
const parsed = Number(value);
|
|
110
|
+
if (Number.isFinite(parsed))
|
|
111
|
+
return parsed;
|
|
112
|
+
}
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=condition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../src/plugin/fields/condition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import type { EntryProjection, EntryTypeName, TermProjection, TermTaxonomyName } from "../../template-registry.js";
|
|
2
|
+
import type { MetaBoxFieldInput } from "../manifest.js";
|
|
3
|
+
/**
|
|
4
|
+
* The typed-meta contribution registries. A meta box (or settings
|
|
5
|
+
* group) registration is runtime-only — a `register*` call can't
|
|
6
|
+
* augment a global interface — so typed reads cost one derived
|
|
7
|
+
* declaration per box, merged from any package. The `EntryMeta` /
|
|
8
|
+
* `TermMeta` / `UserMeta` / `SettingsMeta` helpers author that
|
|
9
|
+
* declaration (see {@link EntryMeta} for the end-to-end walkthrough):
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* const articleFields = [text("subtitle").maxLength(120)];
|
|
13
|
+
* declare module "plumix" {
|
|
14
|
+
* interface EntryMetaContributions {
|
|
15
|
+
* article: EntryMeta<"post", typeof articleFields>;
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* `MetaOf<K>` then folds every contribution whose target set includes
|
|
21
|
+
* `K` into one closed record — no open index fallback, so a mistyped
|
|
22
|
+
* field name is a compile error at the read site. A box registered
|
|
23
|
+
* without a declaration simply doesn't contribute (its fields read as
|
|
24
|
+
* absent); any downstream package can supply the missing declaration
|
|
25
|
+
* via interface merging. When a declaration exists, the matching
|
|
26
|
+
* `register*` call is typechecked against it, so declaration and
|
|
27
|
+
* runtime can't drift silently.
|
|
28
|
+
*/
|
|
29
|
+
/** Entry meta-box contributions, keyed by box id. `entryTypes` is a union of registered entry-type names. */
|
|
30
|
+
export interface EntryMetaContributions {
|
|
31
|
+
}
|
|
32
|
+
/** Term meta-box contributions, keyed by box id. `termTaxonomies` is a union of registered taxonomy names. */
|
|
33
|
+
export interface TermMetaContributions {
|
|
34
|
+
}
|
|
35
|
+
/** User meta-box contributions, keyed by box id. Users have a flat keyspace — every contribution applies. */
|
|
36
|
+
export interface UserMetaContributions {
|
|
37
|
+
}
|
|
38
|
+
/** Settings-group contributions, keyed by group name. */
|
|
39
|
+
export interface SettingsContributions {
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The shape of one entry meta-box contribution: the target entry type(s)
|
|
43
|
+
* plus the fields array. A named alias so authors reach for a checked
|
|
44
|
+
* two-generic helper instead of hand-writing the `{ entryTypes; fields }`
|
|
45
|
+
* object — misspelling a property (`entryType`) would otherwise leave the
|
|
46
|
+
* contribution structurally valid but silently unmatched by the fold, so
|
|
47
|
+
* the fields read as *absent* with no error. `EntryTypes` is constrained
|
|
48
|
+
* to registered names, so an unknown entry type errors at the declaration
|
|
49
|
+
* itself rather than only at the `registerEntryMetaBox` call.
|
|
50
|
+
*
|
|
51
|
+
* The full path from declaring fields to typed template reads:
|
|
52
|
+
*
|
|
53
|
+
* ```ts
|
|
54
|
+
* import { text } from "plumix/fields";
|
|
55
|
+
* import type { EntryMeta } from "plumix";
|
|
56
|
+
*
|
|
57
|
+
* // 1. Author the fields as a named const so both the declaration and
|
|
58
|
+
* // the registration reference one source of truth.
|
|
59
|
+
* const articleFields = [text("subtitle"), text("heroCredit").required()];
|
|
60
|
+
*
|
|
61
|
+
* // 2. Declare the contribution — this is what crosses package
|
|
62
|
+
* // boundaries so a theme in another package sees the meta shape.
|
|
63
|
+
* declare module "plumix" {
|
|
64
|
+
* interface EntryMetaContributions {
|
|
65
|
+
* article: EntryMeta<"post", typeof articleFields>;
|
|
66
|
+
* }
|
|
67
|
+
* }
|
|
68
|
+
*
|
|
69
|
+
* // 3. Register the box; the call is typechecked against the declaration
|
|
70
|
+
* // above (anti-drift), so the two can't diverge silently.
|
|
71
|
+
* ctx.registerEntryMetaBox("article", {
|
|
72
|
+
* label: "Article",
|
|
73
|
+
* entryTypes: ["post"],
|
|
74
|
+
* fields: articleFields,
|
|
75
|
+
* });
|
|
76
|
+
*
|
|
77
|
+
* // 4. In the theme, a targeted template reads typed meta:
|
|
78
|
+
* // `forEntryType("post").template(({ entry }) => entry.meta.subtitle)`
|
|
79
|
+
* // — `subtitle` is `string | undefined`, a typo is a compile error.
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export interface EntryMeta<EntryTypes extends EntryTypeName, Fields extends readonly MetaBoxFieldInput[]> {
|
|
83
|
+
entryTypes: EntryTypes;
|
|
84
|
+
fields: Fields;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The shape of one term meta-box contribution — target taxonomy(s) plus
|
|
88
|
+
* fields. The {@link EntryMeta} analogue over `termTaxonomies`; folds
|
|
89
|
+
* through {@link TermMetaOf} for `forTaxonomy(...).template(...)` reads.
|
|
90
|
+
*/
|
|
91
|
+
export interface TermMeta<Taxonomies extends TermTaxonomyName, Fields extends readonly MetaBoxFieldInput[]> {
|
|
92
|
+
termTaxonomies: Taxonomies;
|
|
93
|
+
fields: Fields;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The shape of one user meta-box contribution. Users share a flat
|
|
97
|
+
* keyspace, so there is no target set — every declared contribution folds
|
|
98
|
+
* into {@link UserMetaOf}.
|
|
99
|
+
*/
|
|
100
|
+
export interface UserMeta<Fields extends readonly MetaBoxFieldInput[]> {
|
|
101
|
+
fields: Fields;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The shape of one settings-group contribution, keyed by group name in
|
|
105
|
+
* {@link SettingsContributions}; folds through {@link SettingsOf}.
|
|
106
|
+
*/
|
|
107
|
+
export interface SettingsMeta<Fields extends readonly MetaBoxFieldInput[]> {
|
|
108
|
+
fields: Fields;
|
|
109
|
+
}
|
|
110
|
+
interface TypedField {
|
|
111
|
+
readonly _key: string;
|
|
112
|
+
readonly _value: unknown;
|
|
113
|
+
readonly _stored: unknown;
|
|
114
|
+
}
|
|
115
|
+
type InferShape<F extends readonly MetaBoxFieldInput[], Prop extends "_value" | "_stored"> = {
|
|
116
|
+
[P in Extract<F[number], TypedField> as P["_key"]]: P[Prop];
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* The read-shape record a fields array declares: one property per
|
|
120
|
+
* fluent field, keyed by the literal key, typed by the phantom read
|
|
121
|
+
* type (defaults applied, references hydrated).
|
|
122
|
+
*/
|
|
123
|
+
export type InferFields<F extends readonly MetaBoxFieldInput[]> = InferShape<F, "_value">;
|
|
124
|
+
/**
|
|
125
|
+
* The stored-shape record a fields array declares — what actually sits
|
|
126
|
+
* in the meta JSON. Distinct from {@link InferFields}: `.default()`
|
|
127
|
+
* narrows only the read shape (decode-time), and reference/temporal
|
|
128
|
+
* fields store ids / ISO strings rather than hydrated values.
|
|
129
|
+
*/
|
|
130
|
+
export type InferStoredFields<F extends readonly MetaBoxFieldInput[]> = InferShape<F, "_stored">;
|
|
131
|
+
type UnionToIntersection<U> = (U extends unknown ? (u: U) => void : never) extends (i: infer I extends Record<string, unknown>) => void ? I : never;
|
|
132
|
+
type EmptyMeta = Record<never, never>;
|
|
133
|
+
type FoldRecords<R> = [R] extends [never] ? EmptyMeta : UnionToIntersection<R>;
|
|
134
|
+
type ScopedRecords<Contributions, K, P extends string, Prop extends "_value" | "_stored"> = {
|
|
135
|
+
[B in keyof Contributions]: Contributions[B] extends Record<P, infer T> & {
|
|
136
|
+
fields: infer F extends readonly MetaBoxFieldInput[];
|
|
137
|
+
} ? K extends T ? InferShape<F, Prop> : never : never;
|
|
138
|
+
}[keyof Contributions];
|
|
139
|
+
type AllRecords<Contributions, Prop extends "_value" | "_stored"> = {
|
|
140
|
+
[B in keyof Contributions]: Contributions[B] extends {
|
|
141
|
+
fields: infer F extends readonly MetaBoxFieldInput[];
|
|
142
|
+
} ? InferShape<F, Prop> : never;
|
|
143
|
+
}[keyof Contributions];
|
|
144
|
+
/** The folded read-shape meta record for an entry type. Types template `data.entry.meta` reads. */
|
|
145
|
+
export type MetaOf<K extends EntryTypeName> = FoldRecords<ScopedRecords<EntryMetaContributions, K, "entryTypes", "_value">>;
|
|
146
|
+
/** The folded stored-shape meta record for an entry type. Types `whereMeta` keys and values. */
|
|
147
|
+
export type StoredMetaOf<K extends EntryTypeName> = FoldRecords<ScopedRecords<EntryMetaContributions, K, "entryTypes", "_stored">>;
|
|
148
|
+
/** The folded read-shape meta record for a registered taxonomy. */
|
|
149
|
+
export type TermMetaOf<K extends TermTaxonomyName> = FoldRecords<ScopedRecords<TermMetaContributions, K, "termTaxonomies", "_value">>;
|
|
150
|
+
/** The folded stored-shape meta record for a taxonomy. Types term `whereMeta`. */
|
|
151
|
+
export type StoredTermMetaOf<K extends TermTaxonomyName> = FoldRecords<ScopedRecords<TermMetaContributions, K, "termTaxonomies", "_stored">>;
|
|
152
|
+
/** The folded read-shape user meta record — users have a flat keyspace, so every contribution applies. */
|
|
153
|
+
export type UserMetaOf = FoldRecords<AllRecords<UserMetaContributions, "_value">>;
|
|
154
|
+
/** The read-shape record of one settings group, by declared group name. */
|
|
155
|
+
export type SettingsOf<Name extends keyof SettingsContributions> = FoldRecords<AllRecords<Pick<SettingsContributions, Name>, "_value">>;
|
|
156
|
+
type FieldsMatch<A extends readonly MetaBoxFieldInput[], B extends readonly MetaBoxFieldInput[]> = [
|
|
157
|
+
InferFields<A>,
|
|
158
|
+
InferStoredFields<A>,
|
|
159
|
+
InferFields<B>,
|
|
160
|
+
InferStoredFields<B>
|
|
161
|
+
] extends [
|
|
162
|
+
InferFields<B>,
|
|
163
|
+
InferStoredFields<B>,
|
|
164
|
+
InferFields<A>,
|
|
165
|
+
InferStoredFields<A>
|
|
166
|
+
] ? true : false;
|
|
167
|
+
type FieldsDrift<O extends {
|
|
168
|
+
fields: readonly MetaBoxFieldInput[];
|
|
169
|
+
}, F extends readonly MetaBoxFieldInput[]> = FieldsMatch<O["fields"], F> extends true ? unknown : {
|
|
170
|
+
"drift — fields do not match the declared contribution": F;
|
|
171
|
+
};
|
|
172
|
+
/**
|
|
173
|
+
* The compile-time drift check `registerEntryMetaBox` intersects onto
|
|
174
|
+
* its options. With no declaration for `Id` it vanishes (`unknown`);
|
|
175
|
+
* with one, a mismatched target set or field set demands an impossible
|
|
176
|
+
* `"drift — …"` property, failing the call with a readable message.
|
|
177
|
+
* The comparison is over the inferred read + stored shapes, so the
|
|
178
|
+
* registration must pass literally-typed fields (the declared array
|
|
179
|
+
* itself, or an equivalent inline chain) — options widened to the base
|
|
180
|
+
* interface lose the phantoms and fail the check.
|
|
181
|
+
*/
|
|
182
|
+
export type EntryMetaBoxDrift<Id extends string, O extends {
|
|
183
|
+
entryTypes: readonly string[];
|
|
184
|
+
fields: readonly MetaBoxFieldInput[];
|
|
185
|
+
}> = Id extends keyof EntryMetaContributions ? EntryMetaContributions[Id] extends {
|
|
186
|
+
entryTypes: infer T extends string;
|
|
187
|
+
fields: infer F extends readonly MetaBoxFieldInput[];
|
|
188
|
+
} ? (O["entryTypes"][number] extends T ? unknown : {
|
|
189
|
+
"drift — entryTypes lists an undeclared entry type": Exclude<O["entryTypes"][number], T>;
|
|
190
|
+
}) & ([Exclude<T, O["entryTypes"][number]>] extends [never] ? unknown : {
|
|
191
|
+
"drift — entryTypes is missing a declared entry type": Exclude<T, O["entryTypes"][number]>;
|
|
192
|
+
}) & FieldsDrift<O, F> : unknown : unknown;
|
|
193
|
+
/** The `registerTermMetaBox` analogue of {@link EntryMetaBoxDrift}, over `termTaxonomies`. */
|
|
194
|
+
export type TermMetaBoxDrift<Id extends string, O extends {
|
|
195
|
+
termTaxonomies: readonly string[];
|
|
196
|
+
fields: readonly MetaBoxFieldInput[];
|
|
197
|
+
}> = Id extends keyof TermMetaContributions ? TermMetaContributions[Id] extends {
|
|
198
|
+
termTaxonomies: infer T extends string;
|
|
199
|
+
fields: infer F extends readonly MetaBoxFieldInput[];
|
|
200
|
+
} ? (O["termTaxonomies"][number] extends T ? unknown : {
|
|
201
|
+
"drift — termTaxonomies lists an undeclared taxonomy": Exclude<O["termTaxonomies"][number], T>;
|
|
202
|
+
}) & ([Exclude<T, O["termTaxonomies"][number]>] extends [never] ? unknown : {
|
|
203
|
+
"drift — termTaxonomies is missing a declared taxonomy": Exclude<T, O["termTaxonomies"][number]>;
|
|
204
|
+
}) & FieldsDrift<O, F> : unknown : unknown;
|
|
205
|
+
type FieldsOnlyDrift<Contributions, Key, O extends {
|
|
206
|
+
fields: readonly MetaBoxFieldInput[];
|
|
207
|
+
}> = Key extends keyof Contributions ? Contributions[Key] extends {
|
|
208
|
+
fields: infer F extends readonly MetaBoxFieldInput[];
|
|
209
|
+
} ? FieldsDrift<O, F> : unknown : unknown;
|
|
210
|
+
/** Fields-only drift for `registerUserMetaBox` — users have no target set. */
|
|
211
|
+
export type UserMetaBoxDrift<Id extends string, O extends {
|
|
212
|
+
fields: readonly MetaBoxFieldInput[];
|
|
213
|
+
}> = FieldsOnlyDrift<UserMetaContributions, Id, O>;
|
|
214
|
+
/** Fields-only drift for `registerSettingsGroup`, keyed by group name. */
|
|
215
|
+
export type SettingsGroupDrift<Name extends string, O extends {
|
|
216
|
+
fields: readonly MetaBoxFieldInput[];
|
|
217
|
+
}> = FieldsOnlyDrift<SettingsContributions, Name, O>;
|
|
218
|
+
/**
|
|
219
|
+
* The entry a targeted template receives: the registered projection
|
|
220
|
+
* with `meta` replaced by the folded typed record. Replacement (not
|
|
221
|
+
* intersection) is what makes a mistyped field name a compile error —
|
|
222
|
+
* intersecting would keep the base open `Record<string, unknown>`
|
|
223
|
+
* index and read typos as `unknown`.
|
|
224
|
+
*/
|
|
225
|
+
export type ResolvedEntryFor<K extends EntryTypeName> = Omit<EntryProjection<K>, "meta"> & {
|
|
226
|
+
readonly meta: MetaOf<K>;
|
|
227
|
+
};
|
|
228
|
+
/** The term a targeted template receives — projection with folded typed meta. */
|
|
229
|
+
export type ResolvedTermFor<K extends TermTaxonomyName> = Omit<TermProjection<K>, "meta"> & {
|
|
230
|
+
readonly meta: TermMetaOf<K>;
|
|
231
|
+
};
|
|
232
|
+
export {};
|
|
233
|
+
//# sourceMappingURL=contributions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contributions.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/contributions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,6GAA6G;AAE7G,MAAM,WAAW,sBAAsB;CAAG;AAE1C,8GAA8G;AAE9G,MAAM,WAAW,qBAAqB;CAAG;AAEzC,6GAA6G;AAE7G,MAAM,WAAW,qBAAqB;CAAG;AAEzC,yDAAyD;AAEzD,MAAM,WAAW,qBAAqB;CAAG;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,WAAW,SAAS,CACxB,UAAU,SAAS,aAAa,EAChC,MAAM,SAAS,SAAS,iBAAiB,EAAE;IAE3C,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CACvB,UAAU,SAAS,gBAAgB,EACnC,MAAM,SAAS,SAAS,iBAAiB,EAAE;IAE3C,cAAc,EAAE,UAAU,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,MAAM,SAAS,SAAS,iBAAiB,EAAE;IACnE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,MAAM,SAAS,SAAS,iBAAiB,EAAE;IACvE,MAAM,EAAE,MAAM,CAAC;CAChB;AAKD,UAAU,UAAU;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,KAAK,UAAU,CACb,CAAC,SAAS,SAAS,iBAAiB,EAAE,EACtC,IAAI,SAAS,QAAQ,GAAG,SAAS,IAC/B;KACD,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;CAC5D,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,SAAS,iBAAiB,EAAE,IAAI,UAAU,CAC1E,CAAC,EACD,QAAQ,CACT,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,iBAAiB,EAAE,IAClE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAK3B,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAC5B,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAC3C,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAC1D,CAAC,GACD,KAAK,CAAC;AAKV,KAAK,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAEtC,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAK/E,KAAK,aAAa,CAChB,aAAa,EACb,CAAC,EACD,CAAC,SAAS,MAAM,EAChB,IAAI,SAAS,QAAQ,GAAG,SAAS,IAC/B;KACD,CAAC,IAAI,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG;QACxE,MAAM,EAAE,MAAM,CAAC,SAAS,SAAS,iBAAiB,EAAE,CAAC;KACtD,GACG,CAAC,SAAS,CAAC,GACT,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GACnB,KAAK,GACP,KAAK;CACV,CAAC,MAAM,aAAa,CAAC,CAAC;AAEvB,KAAK,UAAU,CAAC,aAAa,EAAE,IAAI,SAAS,QAAQ,GAAG,SAAS,IAAI;KACjE,CAAC,IAAI,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS;QACnD,MAAM,EAAE,MAAM,CAAC,SAAS,SAAS,iBAAiB,EAAE,CAAC;KACtD,GACG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GACnB,KAAK;CACV,CAAC,MAAM,aAAa,CAAC,CAAC;AAEvB,mGAAmG;AACnG,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,aAAa,IAAI,WAAW,CACvD,aAAa,CAAC,sBAAsB,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,CACjE,CAAC;AAEF,gGAAgG;AAChG,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,aAAa,IAAI,WAAW,CAC7D,aAAa,CAAC,sBAAsB,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,CAAC,CAClE,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,gBAAgB,IAAI,WAAW,CAC9D,aAAa,CAAC,qBAAqB,EAAE,CAAC,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CACpE,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,IAAI,WAAW,CACpE,aAAa,CAAC,qBAAqB,EAAE,CAAC,EAAE,gBAAgB,EAAE,SAAS,CAAC,CACrE,CAAC;AAEF,0GAA0G;AAC1G,MAAM,MAAM,UAAU,GAAG,WAAW,CAClC,UAAU,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAC5C,CAAC;AAEF,2EAA2E;AAC3E,MAAM,MAAM,UAAU,CAAC,IAAI,SAAS,MAAM,qBAAqB,IAAI,WAAW,CAC5E,UAAU,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CACxD,CAAC;AAKF,KAAK,WAAW,CACd,CAAC,SAAS,SAAS,iBAAiB,EAAE,EACtC,CAAC,SAAS,SAAS,iBAAiB,EAAE,IACpC;IACF,WAAW,CAAC,CAAC,CAAC;IACd,iBAAiB,CAAC,CAAC,CAAC;IACpB,WAAW,CAAC,CAAC,CAAC;IACd,iBAAiB,CAAC,CAAC,CAAC;CACrB,SAAS;IACR,WAAW,CAAC,CAAC,CAAC;IACd,iBAAiB,CAAC,CAAC,CAAC;IACpB,WAAW,CAAC,CAAC,CAAC;IACd,iBAAiB,CAAC,CAAC,CAAC;CACrB,GACG,IAAI,GACJ,KAAK,CAAC;AAEV,KAAK,WAAW,CACd,CAAC,SAAS;IAAE,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,EAClD,CAAC,SAAS,SAAS,iBAAiB,EAAE,IAEtC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACpC,OAAO,GACP;IAAE,uDAAuD,EAAE,CAAC,CAAA;CAAE,CAAC;AAErE;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,CAC3B,EAAE,SAAS,MAAM,EACjB,CAAC,SAAS;IACR,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACtC,IACC,EAAE,SAAS,MAAM,sBAAsB,GACvC,sBAAsB,CAAC,EAAE,CAAC,SAAS;IACjC,UAAU,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,SAAS,SAAS,iBAAiB,EAAE,CAAC;CACtD,GACC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAC9B,OAAO,GACP;IACE,mDAAmD,EAAE,OAAO,CAC1D,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EACvB,CAAC,CACF,CAAC;CACH,CAAC,GACJ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAClD,OAAO,GACP;IACE,qDAAqD,EAAE,OAAO,CAC5D,CAAC,EACD,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CACxB,CAAC;CACH,CAAC,GACN,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,OAAO,GACT,OAAO,CAAC;AAEZ,8FAA8F;AAC9F,MAAM,MAAM,gBAAgB,CAC1B,EAAE,SAAS,MAAM,EACjB,CAAC,SAAS;IACR,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACtC,IACC,EAAE,SAAS,MAAM,qBAAqB,GACtC,qBAAqB,CAAC,EAAE,CAAC,SAAS;IAChC,cAAc,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC,SAAS,SAAS,iBAAiB,EAAE,CAAC;CACtD,GACC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAClC,OAAO,GACP;IACE,qDAAqD,EAAE,OAAO,CAC5D,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,EAC3B,CAAC,CACF,CAAC;CACH,CAAC,GACJ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACtD,OAAO,GACP;IACE,uDAAuD,EAAE,OAAO,CAC9D,CAAC,EACD,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAC5B,CAAC;CACH,CAAC,GACN,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GACnB,OAAO,GACT,OAAO,CAAC;AAEZ,KAAK,eAAe,CAClB,aAAa,EACb,GAAG,EACH,CAAC,SAAS;IAAE,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,IAChD,GAAG,SAAS,MAAM,aAAa,GAC/B,aAAa,CAAC,GAAG,CAAC,SAAS;IACzB,MAAM,EAAE,MAAM,CAAC,SAAS,SAAS,iBAAiB,EAAE,CAAC;CACtD,GACC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GACjB,OAAO,GACT,OAAO,CAAC;AAEZ,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,CAC1B,EAAE,SAAS,MAAM,EACjB,CAAC,SAAS;IAAE,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,IAChD,eAAe,CAAC,qBAAqB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAElD,0EAA0E;AAC1E,MAAM,MAAM,kBAAkB,CAC5B,IAAI,SAAS,MAAM,EACnB,CAAC,SAAS;IAAE,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,IAChD,eAAe,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,aAAa,IAAI,IAAI,CAC1D,eAAe,CAAC,CAAC,CAAC,EAClB,MAAM,CACP,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAEjC,iFAAiF;AACjF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,gBAAgB,IAAI,IAAI,CAC5D,cAAc,CAAC,CAAC,CAAC,EACjB,MAAM,CACP,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=contributions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contributions.js","sourceRoot":"","sources":["../../../src/plugin/fields/contributions.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
1
|
+
import type { EntryStatus } from "../../db/schema/entries.js";
|
|
2
|
+
import { ReferenceFieldBuilder } from "./reference.js";
|
|
3
3
|
/**
|
|
4
4
|
* Public scope shape for the `entry()` reference field. Carried on
|
|
5
5
|
* the field's `referenceTarget.scope`; the entry `LookupAdapter`
|
|
@@ -10,31 +10,35 @@ export interface EntryFieldScope {
|
|
|
10
10
|
/**
|
|
11
11
|
* Restrict matches to these entry types. Required at the field
|
|
12
12
|
* level — entry references without a type filter would surface
|
|
13
|
-
* the entire content table to pickers.
|
|
13
|
+
* the entire content table to pickers. Seeded from the `entry()`
|
|
14
|
+
* constructor argument.
|
|
14
15
|
*/
|
|
15
16
|
readonly entryTypes: readonly string[];
|
|
16
17
|
/**
|
|
17
18
|
* Whether to surface trashed entries. Default `false` — trashed
|
|
18
|
-
* entries are usually invalid reference targets.
|
|
19
|
+
* entries are usually invalid reference targets. Set via
|
|
20
|
+
* `.includeTrashed()`.
|
|
19
21
|
*/
|
|
20
22
|
readonly includeTrashed?: boolean;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
readonly
|
|
28
|
-
readonly span?: MetaBoxFieldSpan;
|
|
29
|
-
readonly capability?: string;
|
|
30
|
-
readonly entryTypes: readonly string[];
|
|
31
|
-
readonly includeTrashed?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Restrict matches to exactly this lifecycle status; supersedes the
|
|
25
|
+
* `includeTrashed` default. Public-render consumers (e.g. menu nav)
|
|
26
|
+
* pass `"published"` via `.status()` so drafts never surface; the
|
|
27
|
+
* admin picker leaves it unset and keeps admitting drafts/scheduled.
|
|
28
|
+
*/
|
|
29
|
+
readonly status?: EntryStatus;
|
|
32
30
|
}
|
|
33
31
|
/**
|
|
34
|
-
* Build a typed `entry` reference field
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
32
|
+
* Build a typed `entry` reference field —
|
|
33
|
+
* `entry("related", ["post"])`. The required entry-type scope is the
|
|
34
|
+
* constructor's second argument; `.includeTrashed()` / `.status()`
|
|
35
|
+
* refine it, `.multiple()` flips to an id array.
|
|
36
|
+
*
|
|
37
|
+
* Storage is the bare entry id (an id array under `.multiple()`).
|
|
38
|
+
* Reads hydrate to the entry summary by default (`.returns("id")`
|
|
39
|
+
* opts back to the bare id); single reads stay optional (a target can
|
|
40
|
+
* orphan). The admin renders a picker that calls the lookup RPC with
|
|
41
|
+
* `{ kind: "entry", scope }`.
|
|
38
42
|
*/
|
|
39
|
-
export declare function entry(
|
|
43
|
+
export declare function entry<K extends string>(key: K, entryTypes: readonly string[]): ReferenceFieldBuilder<"entry", K>;
|
|
40
44
|
//# sourceMappingURL=entry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,GAAG,EAAE,CAAC,EACN,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,qBAAqB,CAAC,OAAO,EAAE,CAAC,CAAC,CAEnC"}
|
|
@@ -1,25 +1,17 @@
|
|
|
1
|
+
import { ReferenceFieldBuilder } from "./reference.js";
|
|
1
2
|
/**
|
|
2
|
-
* Build a typed `entry` reference field
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* Build a typed `entry` reference field —
|
|
4
|
+
* `entry("related", ["post"])`. The required entry-type scope is the
|
|
5
|
+
* constructor's second argument; `.includeTrashed()` / `.status()`
|
|
6
|
+
* refine it, `.multiple()` flips to an id array.
|
|
7
|
+
*
|
|
8
|
+
* Storage is the bare entry id (an id array under `.multiple()`).
|
|
9
|
+
* Reads hydrate to the entry summary by default (`.returns("id")`
|
|
10
|
+
* opts back to the bare id); single reads stay optional (a target can
|
|
11
|
+
* orphan). The admin renders a picker that calls the lookup RPC with
|
|
12
|
+
* `{ kind: "entry", scope }`.
|
|
6
13
|
*/
|
|
7
|
-
export function entry(
|
|
8
|
-
|
|
9
|
-
entryTypes: options.entryTypes,
|
|
10
|
-
includeTrashed: options.includeTrashed,
|
|
11
|
-
};
|
|
12
|
-
return {
|
|
13
|
-
key: options.key,
|
|
14
|
-
label: options.label,
|
|
15
|
-
type: "string",
|
|
16
|
-
inputType: "entry",
|
|
17
|
-
referenceTarget: { kind: "entry", scope },
|
|
18
|
-
required: options.required,
|
|
19
|
-
description: options.description,
|
|
20
|
-
default: options.default,
|
|
21
|
-
span: options.span,
|
|
22
|
-
capability: options.capability,
|
|
23
|
-
};
|
|
14
|
+
export function entry(key, entryTypes) {
|
|
15
|
+
return new ReferenceFieldBuilder("entry", key, { entryTypes });
|
|
24
16
|
}
|
|
25
17
|
//# sourceMappingURL=entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../src/plugin/fields/entry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../src/plugin/fields/entry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AA+BvD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,KAAK,CACnB,GAAM,EACN,UAA6B;IAE7B,OAAO,IAAI,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
type FieldConfigErrorCode = "range_min_greater_than_max" | "
|
|
1
|
+
type FieldConfigErrorCode = "range_min_greater_than_max" | "sub_field_key_forbidden" | "sub_field_key_invalid" | "sub_field_duplicate" | "sub_field_condition_not_supported" | "temporal_bound_invalid";
|
|
2
|
+
/** The composite field types that own a list of sub-fields. */
|
|
3
|
+
export type SubFieldContainer = "repeater" | "group";
|
|
2
4
|
export declare class FieldConfigError extends Error {
|
|
3
5
|
readonly code: FieldConfigErrorCode;
|
|
4
6
|
readonly fieldKey: string | undefined;
|
|
5
|
-
readonly
|
|
7
|
+
readonly container: SubFieldContainer | undefined;
|
|
8
|
+
readonly containerKey: string | undefined;
|
|
6
9
|
readonly subFieldKey: string | undefined;
|
|
7
10
|
readonly min: number | undefined;
|
|
8
11
|
readonly max: number | undefined;
|
|
@@ -13,23 +16,32 @@ export declare class FieldConfigError extends Error {
|
|
|
13
16
|
min: number;
|
|
14
17
|
max: number;
|
|
15
18
|
}): FieldConfigError;
|
|
16
|
-
static
|
|
17
|
-
|
|
19
|
+
static subFieldKeyForbidden(ctx: {
|
|
20
|
+
container: SubFieldContainer;
|
|
21
|
+
containerKey: string;
|
|
18
22
|
subFieldKey: string;
|
|
19
23
|
}): FieldConfigError;
|
|
20
|
-
static
|
|
21
|
-
|
|
24
|
+
static subFieldKeyInvalid(ctx: {
|
|
25
|
+
container: SubFieldContainer;
|
|
26
|
+
containerKey: string;
|
|
22
27
|
subFieldKey: string;
|
|
28
|
+
pattern: string;
|
|
23
29
|
}): FieldConfigError;
|
|
24
|
-
static
|
|
25
|
-
|
|
30
|
+
static subFieldDuplicate(ctx: {
|
|
31
|
+
container: SubFieldContainer;
|
|
32
|
+
containerKey: string;
|
|
26
33
|
subFieldKey: string;
|
|
27
|
-
pattern: string;
|
|
28
34
|
}): FieldConfigError;
|
|
29
|
-
static
|
|
30
|
-
|
|
35
|
+
static subFieldCondition(ctx: {
|
|
36
|
+
container: SubFieldContainer;
|
|
37
|
+
containerKey: string;
|
|
31
38
|
subFieldKey: string;
|
|
32
39
|
}): FieldConfigError;
|
|
40
|
+
static temporalBoundInvalid(ctx: {
|
|
41
|
+
fieldKey: string;
|
|
42
|
+
bound: "min" | "max";
|
|
43
|
+
value: string;
|
|
44
|
+
}): FieldConfigError;
|
|
33
45
|
}
|
|
34
46
|
export {};
|
|
35
47
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/errors.ts"],"names":[],"mappings":"AAAA,KAAK,oBAAoB,GACrB,4BAA4B,GAC5B,+
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/plugin/fields/errors.ts"],"names":[],"mappings":"AAAA,KAAK,oBAAoB,GACrB,4BAA4B,GAC5B,yBAAyB,GACzB,uBAAuB,GACvB,qBAAqB,GACrB,mCAAmC,GACnC,wBAAwB,CAAC;AAE7B,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAC;AAYrD,qBAAa,gBAAiB,SAAQ,KAAK;IAKzC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC,OAAO;IAgBP,MAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE;QACjC,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,gBAAgB;IAQpB,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE;QAC/B,SAAS,EAAE,iBAAiB,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,gBAAgB;IASpB,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE;QAC7B,SAAS,EAAE,iBAAiB,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,gBAAgB;IASpB,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE;QAC5B,SAAS,EAAE,iBAAiB,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,gBAAgB;IASpB,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE;QAC5B,SAAS,EAAE,iBAAiB,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,gBAAgB;IASpB,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,gBAAgB;CAQrB"}
|