@forumone/throughline 0.0.0-stage → 1.0.0-next.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/CHANGELOG.md +584 -0
- package/LICENSE +21 -0
- package/README.md +351 -2
- package/bin/payload-cli.mjs +443 -0
- package/bin/throughline-payload.mjs +6 -0
- package/dist/access/coreCollections.d.ts +18 -0
- package/dist/access/coreCollections.d.ts.map +1 -0
- package/dist/access/coreCollections.js +56 -0
- package/dist/access/coreCollections.js.map +1 -0
- package/dist/approvals/collection.d.ts +21 -0
- package/dist/approvals/collection.d.ts.map +1 -0
- package/dist/approvals/collection.js +99 -0
- package/dist/approvals/collection.js.map +1 -0
- package/dist/approvals/endpoints/action.d.ts +31 -0
- package/dist/approvals/endpoints/action.d.ts.map +1 -0
- package/dist/approvals/endpoints/action.js +205 -0
- package/dist/approvals/endpoints/action.js.map +1 -0
- package/dist/approvals/index.d.ts +19 -0
- package/dist/approvals/index.d.ts.map +1 -0
- package/dist/approvals/index.js +13 -0
- package/dist/approvals/index.js.map +1 -0
- package/dist/approvals/jobs/expire-stale-approvals.d.ts +14 -0
- package/dist/approvals/jobs/expire-stale-approvals.d.ts.map +1 -0
- package/dist/approvals/jobs/expire-stale-approvals.js +101 -0
- package/dist/approvals/jobs/expire-stale-approvals.js.map +1 -0
- package/dist/approvals/options.d.ts +76 -0
- package/dist/approvals/options.d.ts.map +1 -0
- package/dist/approvals/options.js +47 -0
- package/dist/approvals/options.js.map +1 -0
- package/dist/approvals/plugin.d.ts +4 -0
- package/dist/approvals/plugin.d.ts.map +1 -0
- package/dist/approvals/plugin.js +92 -0
- package/dist/approvals/plugin.js.map +1 -0
- package/dist/approvals/resolver.d.ts +18 -0
- package/dist/approvals/resolver.d.ts.map +1 -0
- package/dist/approvals/resolver.js +57 -0
- package/dist/approvals/resolver.js.map +1 -0
- package/dist/approvals/symbol.d.ts +12 -0
- package/dist/approvals/symbol.d.ts.map +1 -0
- package/dist/approvals/symbol.js +12 -0
- package/dist/approvals/symbol.js.map +1 -0
- package/dist/approvals/tokens.d.ts +48 -0
- package/dist/approvals/tokens.d.ts.map +1 -0
- package/dist/approvals/tokens.js +123 -0
- package/dist/approvals/tokens.js.map +1 -0
- package/dist/approvals/tools/descriptors.d.ts +26 -0
- package/dist/approvals/tools/descriptors.d.ts.map +1 -0
- package/dist/approvals/tools/descriptors.js +35 -0
- package/dist/approvals/tools/descriptors.js.map +1 -0
- package/dist/approvals/tools/get-approval-status.d.ts +11 -0
- package/dist/approvals/tools/get-approval-status.d.ts.map +1 -0
- package/dist/approvals/tools/get-approval-status.js +94 -0
- package/dist/approvals/tools/get-approval-status.js.map +1 -0
- package/dist/approvals/tools/index.d.ts +7 -0
- package/dist/approvals/tools/index.d.ts.map +1 -0
- package/dist/approvals/tools/index.js +7 -0
- package/dist/approvals/tools/index.js.map +1 -0
- package/dist/approvals/tools/list-my-requests.d.ts +11 -0
- package/dist/approvals/tools/list-my-requests.d.ts.map +1 -0
- package/dist/approvals/tools/list-my-requests.js +55 -0
- package/dist/approvals/tools/list-my-requests.js.map +1 -0
- package/dist/approvals/tools/list-pending-approvals.d.ts +11 -0
- package/dist/approvals/tools/list-pending-approvals.d.ts.map +1 -0
- package/dist/approvals/tools/list-pending-approvals.js +53 -0
- package/dist/approvals/tools/list-pending-approvals.js.map +1 -0
- package/dist/approvals/tools/request-approval.d.ts +13 -0
- package/dist/approvals/tools/request-approval.d.ts.map +1 -0
- package/dist/approvals/tools/request-approval.js +123 -0
- package/dist/approvals/tools/request-approval.js.map +1 -0
- package/dist/approvals/tools/respond-to-approval.d.ts +13 -0
- package/dist/approvals/tools/respond-to-approval.d.ts.map +1 -0
- package/dist/approvals/tools/respond-to-approval.js +98 -0
- package/dist/approvals/tools/respond-to-approval.js.map +1 -0
- package/dist/audit/collection.d.ts +22 -0
- package/dist/audit/collection.d.ts.map +1 -0
- package/dist/audit/collection.js +109 -0
- package/dist/audit/collection.js.map +1 -0
- package/dist/audit/index.d.ts +16 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +11 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/jobs/audit-event-echo.d.ts +14 -0
- package/dist/audit/jobs/audit-event-echo.d.ts.map +1 -0
- package/dist/audit/jobs/audit-event-echo.js +61 -0
- package/dist/audit/jobs/audit-event-echo.js.map +1 -0
- package/dist/audit/plugin.d.ts +20 -0
- package/dist/audit/plugin.d.ts.map +1 -0
- package/dist/audit/plugin.js +55 -0
- package/dist/audit/plugin.js.map +1 -0
- package/dist/audit/query/formatting/index.d.ts +40 -0
- package/dist/audit/query/formatting/index.d.ts.map +1 -0
- package/dist/audit/query/formatting/index.js +73 -0
- package/dist/audit/query/formatting/index.js.map +1 -0
- package/dist/audit/query/options.d.ts +34 -0
- package/dist/audit/query/options.d.ts.map +1 -0
- package/dist/audit/query/options.js +8 -0
- package/dist/audit/query/options.js.map +1 -0
- package/dist/audit/query/plugin.d.ts +11 -0
- package/dist/audit/query/plugin.d.ts.map +1 -0
- package/dist/audit/query/plugin.js +68 -0
- package/dist/audit/query/plugin.js.map +1 -0
- package/dist/audit/query/tools/access.d.ts +9 -0
- package/dist/audit/query/tools/access.d.ts.map +1 -0
- package/dist/audit/query/tools/access.js +14 -0
- package/dist/audit/query/tools/access.js.map +1 -0
- package/dist/audit/query/tools/descriptors.d.ts +26 -0
- package/dist/audit/query/tools/descriptors.d.ts.map +1 -0
- package/dist/audit/query/tools/descriptors.js +35 -0
- package/dist/audit/query/tools/descriptors.js.map +1 -0
- package/dist/audit/query/tools/get-change-history.d.ts +23 -0
- package/dist/audit/query/tools/get-change-history.d.ts.map +1 -0
- package/dist/audit/query/tools/get-change-history.js +44 -0
- package/dist/audit/query/tools/get-change-history.js.map +1 -0
- package/dist/audit/query/tools/get-recent-failures.d.ts +23 -0
- package/dist/audit/query/tools/get-recent-failures.d.ts.map +1 -0
- package/dist/audit/query/tools/get-recent-failures.js +56 -0
- package/dist/audit/query/tools/get-recent-failures.js.map +1 -0
- package/dist/audit/query/tools/index.d.ts +13 -0
- package/dist/audit/query/tools/index.d.ts.map +1 -0
- package/dist/audit/query/tools/index.js +8 -0
- package/dist/audit/query/tools/index.js.map +1 -0
- package/dist/audit/query/tools/query-audit.d.ts +53 -0
- package/dist/audit/query/tools/query-audit.d.ts.map +1 -0
- package/dist/audit/query/tools/query-audit.js +78 -0
- package/dist/audit/query/tools/query-audit.js.map +1 -0
- package/dist/audit/query/tools/what-changed-in-range.d.ts +23 -0
- package/dist/audit/query/tools/what-changed-in-range.d.ts.map +1 -0
- package/dist/audit/query/tools/what-changed-in-range.js +86 -0
- package/dist/audit/query/tools/what-changed-in-range.js.map +1 -0
- package/dist/audit/query/tools/who-changed-what.d.ts +38 -0
- package/dist/audit/query/tools/who-changed-what.d.ts.map +1 -0
- package/dist/audit/query/tools/who-changed-what.js +66 -0
- package/dist/audit/query/tools/who-changed-what.js.map +1 -0
- package/dist/audit/types.d.ts +11 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +45 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/audit/writer.d.ts +50 -0
- package/dist/audit/writer.d.ts.map +1 -0
- package/dist/audit/writer.js +101 -0
- package/dist/audit/writer.js.map +1 -0
- package/dist/cache-tags.d.ts +31 -0
- package/dist/cache-tags.d.ts.map +1 -0
- package/dist/cache-tags.js +53 -0
- package/dist/cache-tags.js.map +1 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +7 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/manifest-source.d.ts +17 -0
- package/dist/components/manifest-source.d.ts.map +1 -0
- package/dist/components/manifest-source.js +60 -0
- package/dist/components/manifest-source.js.map +1 -0
- package/dist/components/matching/index.d.ts +3 -0
- package/dist/components/matching/index.d.ts.map +1 -0
- package/dist/components/matching/index.js +2 -0
- package/dist/components/matching/index.js.map +1 -0
- package/dist/components/matching/tfidf.d.ts +13 -0
- package/dist/components/matching/tfidf.d.ts.map +1 -0
- package/dist/components/matching/tfidf.js +118 -0
- package/dist/components/matching/tfidf.js.map +1 -0
- package/dist/components/matching/types.d.ts +22 -0
- package/dist/components/matching/types.d.ts.map +1 -0
- package/dist/components/matching/types.js +2 -0
- package/dist/components/matching/types.js.map +1 -0
- package/dist/components/options.d.ts +136 -0
- package/dist/components/options.d.ts.map +1 -0
- package/dist/components/options.js +40 -0
- package/dist/components/options.js.map +1 -0
- package/dist/components/plugin.d.ts +4 -0
- package/dist/components/plugin.d.ts.map +1 -0
- package/dist/components/plugin.js +95 -0
- package/dist/components/plugin.js.map +1 -0
- package/dist/components/tools/descriptors.d.ts +34 -0
- package/dist/components/tools/descriptors.d.ts.map +1 -0
- package/dist/components/tools/descriptors.js +43 -0
- package/dist/components/tools/descriptors.js.map +1 -0
- package/dist/components/tools/find-anti-pattern.d.ts +9 -0
- package/dist/components/tools/find-anti-pattern.d.ts.map +1 -0
- package/dist/components/tools/find-anti-pattern.js +31 -0
- package/dist/components/tools/find-anti-pattern.js.map +1 -0
- package/dist/components/tools/get-contract.d.ts +4 -0
- package/dist/components/tools/get-contract.d.ts.map +1 -0
- package/dist/components/tools/get-contract.js +19 -0
- package/dist/components/tools/get-contract.js.map +1 -0
- package/dist/components/tools/get-tokens.d.ts +4 -0
- package/dist/components/tools/get-tokens.d.ts.map +1 -0
- package/dist/components/tools/get-tokens.js +19 -0
- package/dist/components/tools/get-tokens.js.map +1 -0
- package/dist/components/tools/get-variants.d.ts +4 -0
- package/dist/components/tools/get-variants.d.ts.map +1 -0
- package/dist/components/tools/get-variants.js +19 -0
- package/dist/components/tools/get-variants.js.map +1 -0
- package/dist/components/tools/index.d.ts +9 -0
- package/dist/components/tools/index.d.ts.map +1 -0
- package/dist/components/tools/index.js +9 -0
- package/dist/components/tools/index.js.map +1 -0
- package/dist/components/tools/list-components.d.ts +4 -0
- package/dist/components/tools/list-components.d.ts.map +1 -0
- package/dist/components/tools/list-components.js +25 -0
- package/dist/components/tools/list-components.js.map +1 -0
- package/dist/components/tools/suggest-for-intent.d.ts +12 -0
- package/dist/components/tools/suggest-for-intent.d.ts.map +1 -0
- package/dist/components/tools/suggest-for-intent.js +83 -0
- package/dist/components/tools/suggest-for-intent.js.map +1 -0
- package/dist/components/tools/validate-composition.d.ts +9 -0
- package/dist/components/tools/validate-composition.d.ts.map +1 -0
- package/dist/components/tools/validate-composition.js +31 -0
- package/dist/components/tools/validate-composition.js.map +1 -0
- package/dist/components/validation/composition.d.ts +38 -0
- package/dist/components/validation/composition.d.ts.map +1 -0
- package/dist/components/validation/composition.js +135 -0
- package/dist/components/validation/composition.js.map +1 -0
- package/dist/editorial/calendar/ContentCalendarReport.d.ts +9 -0
- package/dist/editorial/calendar/ContentCalendarReport.d.ts.map +1 -0
- package/dist/editorial/calendar/ContentCalendarReport.js +47 -0
- package/dist/editorial/calendar/ContentCalendarReport.js.map +1 -0
- package/dist/editorial/calendar/ContentCalendarView.d.ts +3 -0
- package/dist/editorial/calendar/ContentCalendarView.d.ts.map +1 -0
- package/dist/editorial/calendar/ContentCalendarView.js +36 -0
- package/dist/editorial/calendar/ContentCalendarView.js.map +1 -0
- package/dist/editorial/calendar/calendar.d.ts +30 -0
- package/dist/editorial/calendar/calendar.d.ts.map +1 -0
- package/dist/editorial/calendar/calendar.js +23 -0
- package/dist/editorial/calendar/calendar.js.map +1 -0
- package/dist/editorial/calendar/find.d.ts +41 -0
- package/dist/editorial/calendar/find.d.ts.map +1 -0
- package/dist/editorial/calendar/find.js +108 -0
- package/dist/editorial/calendar/find.js.map +1 -0
- package/dist/editorial/calendar/month.d.ts +45 -0
- package/dist/editorial/calendar/month.d.ts.map +1 -0
- package/dist/editorial/calendar/month.js +120 -0
- package/dist/editorial/calendar/month.js.map +1 -0
- package/dist/editorial/calendar/tool.d.ts +50 -0
- package/dist/editorial/calendar/tool.d.ts.map +1 -0
- package/dist/editorial/calendar/tool.js +68 -0
- package/dist/editorial/calendar/tool.js.map +1 -0
- package/dist/editorial/config.d.ts +25 -0
- package/dist/editorial/config.d.ts.map +1 -0
- package/dist/editorial/config.js +12 -0
- package/dist/editorial/config.js.map +1 -0
- package/dist/editorial/health/ContentHealthReport.d.ts +7 -0
- package/dist/editorial/health/ContentHealthReport.d.ts.map +1 -0
- package/dist/editorial/health/ContentHealthReport.js +29 -0
- package/dist/editorial/health/ContentHealthReport.js.map +1 -0
- package/dist/editorial/health/ContentHealthView.d.ts +3 -0
- package/dist/editorial/health/ContentHealthView.d.ts.map +1 -0
- package/dist/editorial/health/ContentHealthView.js +29 -0
- package/dist/editorial/health/ContentHealthView.js.map +1 -0
- package/dist/editorial/health/HealthSummary.d.ts +6 -0
- package/dist/editorial/health/HealthSummary.d.ts.map +1 -0
- package/dist/editorial/health/HealthSummary.js +39 -0
- package/dist/editorial/health/HealthSummary.js.map +1 -0
- package/dist/editorial/health/checks.d.ts +104 -0
- package/dist/editorial/health/checks.d.ts.map +1 -0
- package/dist/editorial/health/checks.js +188 -0
- package/dist/editorial/health/checks.js.map +1 -0
- package/dist/editorial/health/find.d.ts +43 -0
- package/dist/editorial/health/find.d.ts.map +1 -0
- package/dist/editorial/health/find.js +97 -0
- package/dist/editorial/health/find.js.map +1 -0
- package/dist/editorial/health/tool.d.ts +53 -0
- package/dist/editorial/health/tool.d.ts.map +1 -0
- package/dist/editorial/health/tool.js +80 -0
- package/dist/editorial/health/tool.js.map +1 -0
- package/dist/editorial/index.d.ts +25 -0
- package/dist/editorial/index.d.ts.map +1 -0
- package/dist/editorial/index.js +15 -0
- package/dist/editorial/index.js.map +1 -0
- package/dist/editorial/palette/CommandPalette.d.ts +15 -0
- package/dist/editorial/palette/CommandPalette.d.ts.map +1 -0
- package/dist/editorial/palette/CommandPalette.js +319 -0
- package/dist/editorial/palette/CommandPalette.js.map +1 -0
- package/dist/editorial/palette/ReportsNav.d.ts +5 -0
- package/dist/editorial/palette/ReportsNav.d.ts.map +1 -0
- package/dist/editorial/palette/ReportsNav.js +31 -0
- package/dist/editorial/palette/ReportsNav.js.map +1 -0
- package/dist/editorial/palette/search.d.ts +18 -0
- package/dist/editorial/palette/search.d.ts.map +1 -0
- package/dist/editorial/palette/search.js +41 -0
- package/dist/editorial/palette/search.js.map +1 -0
- package/dist/editorial/palette/sources.d.ts +64 -0
- package/dist/editorial/palette/sources.d.ts.map +1 -0
- package/dist/editorial/palette/sources.js +103 -0
- package/dist/editorial/palette/sources.js.map +1 -0
- package/dist/editorial/palette/styles.d.ts +2 -0
- package/dist/editorial/palette/styles.d.ts.map +1 -0
- package/dist/editorial/palette/styles.js +76 -0
- package/dist/editorial/palette/styles.js.map +1 -0
- package/dist/editorial/palette/tool.d.ts +31 -0
- package/dist/editorial/palette/tool.d.ts.map +1 -0
- package/dist/editorial/palette/tool.js +63 -0
- package/dist/editorial/palette/tool.js.map +1 -0
- package/dist/editorial/plugin.d.ts +76 -0
- package/dist/editorial/plugin.d.ts.map +1 -0
- package/dist/editorial/plugin.js +186 -0
- package/dist/editorial/plugin.js.map +1 -0
- package/dist/editorial/relativeTime.d.ts +3 -0
- package/dist/editorial/relativeTime.d.ts.map +1 -0
- package/dist/editorial/relativeTime.js +27 -0
- package/dist/editorial/relativeTime.js.map +1 -0
- package/dist/editorial/styles.d.ts +2 -0
- package/dist/editorial/styles.d.ts.map +1 -0
- package/dist/editorial/styles.js +191 -0
- package/dist/editorial/styles.js.map +1 -0
- package/dist/editorial/work/YourWork.d.ts +13 -0
- package/dist/editorial/work/YourWork.d.ts.map +1 -0
- package/dist/editorial/work/YourWork.js +40 -0
- package/dist/editorial/work/YourWork.js.map +1 -0
- package/dist/editorial/work/tool.d.ts +45 -0
- package/dist/editorial/work/tool.d.ts.map +1 -0
- package/dist/editorial/work/tool.js +54 -0
- package/dist/editorial/work/tool.js.map +1 -0
- package/dist/editorial/work/work.d.ts +31 -0
- package/dist/editorial/work/work.d.ts.map +1 -0
- package/dist/editorial/work/work.js +68 -0
- package/dist/editorial/work/work.js.map +1 -0
- package/dist/email/client.d.ts +78 -0
- package/dist/email/client.d.ts.map +1 -0
- package/dist/email/client.js +63 -0
- package/dist/email/client.js.map +1 -0
- package/dist/email/functions/_shared.d.ts +17 -0
- package/dist/email/functions/_shared.d.ts.map +1 -0
- package/dist/email/functions/_shared.js +40 -0
- package/dist/email/functions/_shared.js.map +1 -0
- package/dist/email/functions/index.d.ts +7 -0
- package/dist/email/functions/index.d.ts.map +1 -0
- package/dist/email/functions/index.js +4 -0
- package/dist/email/functions/index.js.map +1 -0
- package/dist/email/functions/notify-approval-decision.d.ts +34 -0
- package/dist/email/functions/notify-approval-decision.d.ts.map +1 -0
- package/dist/email/functions/notify-approval-decision.js +77 -0
- package/dist/email/functions/notify-approval-decision.js.map +1 -0
- package/dist/email/functions/notify-approval-expired.d.ts +32 -0
- package/dist/email/functions/notify-approval-expired.d.ts.map +1 -0
- package/dist/email/functions/notify-approval-expired.js +54 -0
- package/dist/email/functions/notify-approval-expired.js.map +1 -0
- package/dist/email/functions/notify-approval-request.d.ts +35 -0
- package/dist/email/functions/notify-approval-request.d.ts.map +1 -0
- package/dist/email/functions/notify-approval-request.js +89 -0
- package/dist/email/functions/notify-approval-request.js.map +1 -0
- package/dist/email/index.d.ts +17 -0
- package/dist/email/index.d.ts.map +1 -0
- package/dist/email/index.js +12 -0
- package/dist/email/index.js.map +1 -0
- package/dist/email/options.d.ts +100 -0
- package/dist/email/options.d.ts.map +1 -0
- package/dist/email/options.js +55 -0
- package/dist/email/options.js.map +1 -0
- package/dist/email/plugin.d.ts +28 -0
- package/dist/email/plugin.d.ts.map +1 -0
- package/dist/email/plugin.js +113 -0
- package/dist/email/plugin.js.map +1 -0
- package/dist/email/templates/ApprovalDecision.d.ts +15 -0
- package/dist/email/templates/ApprovalDecision.d.ts.map +1 -0
- package/dist/email/templates/ApprovalDecision.js +56 -0
- package/dist/email/templates/ApprovalDecision.js.map +1 -0
- package/dist/email/templates/ApprovalExpired.d.ts +10 -0
- package/dist/email/templates/ApprovalExpired.d.ts.map +1 -0
- package/dist/email/templates/ApprovalExpired.js +8 -0
- package/dist/email/templates/ApprovalExpired.js.map +1 -0
- package/dist/email/templates/ApprovalRequest.d.ts +24 -0
- package/dist/email/templates/ApprovalRequest.d.ts.map +1 -0
- package/dist/email/templates/ApprovalRequest.js +58 -0
- package/dist/email/templates/ApprovalRequest.js.map +1 -0
- package/dist/email/templates/_layout.d.ts +17 -0
- package/dist/email/templates/_layout.d.ts.map +1 -0
- package/dist/email/templates/_layout.js +39 -0
- package/dist/email/templates/_layout.js.map +1 -0
- package/dist/email/templates/index.d.ts +9 -0
- package/dist/email/templates/index.d.ts.map +1 -0
- package/dist/email/templates/index.js +5 -0
- package/dist/email/templates/index.js.map +1 -0
- package/dist/email/tokens.d.ts +39 -0
- package/dist/email/tokens.d.ts.map +1 -0
- package/dist/email/tokens.js +17 -0
- package/dist/email/tokens.js.map +1 -0
- package/dist/env/index.d.ts +54 -0
- package/dist/env/index.d.ts.map +1 -0
- package/dist/env/index.js +113 -0
- package/dist/env/index.js.map +1 -0
- package/dist/events/inngest.d.ts +24 -0
- package/dist/events/inngest.d.ts.map +1 -0
- package/dist/events/inngest.js +24 -0
- package/dist/events/inngest.js.map +1 -0
- package/dist/events/taxonomy.d.ts +84 -0
- package/dist/events/taxonomy.d.ts.map +1 -0
- package/dist/events/taxonomy.js +10 -0
- package/dist/events/taxonomy.js.map +1 -0
- package/dist/events/vercel.d.ts +47 -0
- package/dist/events/vercel.d.ts.map +1 -0
- package/dist/events/vercel.js +69 -0
- package/dist/events/vercel.js.map +1 -0
- package/dist/exports/client.d.ts +24 -0
- package/dist/exports/client.d.ts.map +1 -0
- package/dist/exports/client.js +21 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/exports/rsc.d.ts +17 -0
- package/dist/exports/rsc.d.ts.map +1 -0
- package/dist/exports/rsc.js +19 -0
- package/dist/exports/rsc.js.map +1 -0
- package/dist/fields/CharacterCountField.d.ts +4 -0
- package/dist/fields/CharacterCountField.d.ts.map +1 -0
- package/dist/fields/CharacterCountField.js +94 -0
- package/dist/fields/CharacterCountField.js.map +1 -0
- package/dist/fields/characterCount.d.ts +15 -0
- package/dist/fields/characterCount.d.ts.map +1 -0
- package/dist/fields/characterCount.js +92 -0
- package/dist/fields/characterCount.js.map +1 -0
- package/dist/fields/checkSlug.d.ts +62 -0
- package/dist/fields/checkSlug.d.ts.map +1 -0
- package/dist/fields/checkSlug.js +119 -0
- package/dist/fields/checkSlug.js.map +1 -0
- package/dist/fields/index.d.ts +9 -0
- package/dist/fields/index.d.ts.map +1 -0
- package/dist/fields/index.js +9 -0
- package/dist/fields/index.js.map +1 -0
- package/dist/fields/mapFields.d.ts +13 -0
- package/dist/fields/mapFields.d.ts.map +1 -0
- package/dist/fields/mapFields.js +32 -0
- package/dist/fields/mapFields.js.map +1 -0
- package/dist/fields/publishing.d.ts +33 -0
- package/dist/fields/publishing.d.ts.map +1 -0
- package/dist/fields/publishing.js +81 -0
- package/dist/fields/publishing.js.map +1 -0
- package/dist/fields/revisedAt.d.ts +15 -0
- package/dist/fields/revisedAt.d.ts.map +1 -0
- package/dist/fields/revisedAt.js +79 -0
- package/dist/fields/revisedAt.js.map +1 -0
- package/dist/fields/slug.d.ts +21 -0
- package/dist/fields/slug.d.ts.map +1 -0
- package/dist/fields/slug.js +102 -0
- package/dist/fields/slug.js.map +1 -0
- package/dist/fields/unlisted.d.ts +13 -0
- package/dist/fields/unlisted.d.ts.map +1 -0
- package/dist/fields/unlisted.js +35 -0
- package/dist/fields/unlisted.js.map +1 -0
- package/dist/fields/usedBy.d.ts +12 -0
- package/dist/fields/usedBy.d.ts.map +1 -0
- package/dist/fields/usedBy.js +36 -0
- package/dist/fields/usedBy.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/admin/SyncButton.d.ts +27 -0
- package/dist/integrations/admin/SyncButton.d.ts.map +1 -0
- package/dist/integrations/admin/SyncButton.js +134 -0
- package/dist/integrations/admin/SyncButton.js.map +1 -0
- package/dist/integrations/admin/sync-client.d.ts +83 -0
- package/dist/integrations/admin/sync-client.d.ts.map +1 -0
- package/dist/integrations/admin/sync-client.js +121 -0
- package/dist/integrations/admin/sync-client.js.map +1 -0
- package/dist/integrations/collection.d.ts +26 -0
- package/dist/integrations/collection.d.ts.map +1 -0
- package/dist/integrations/collection.js +193 -0
- package/dist/integrations/collection.js.map +1 -0
- package/dist/integrations/endpoints/sync.d.ts +27 -0
- package/dist/integrations/endpoints/sync.d.ts.map +1 -0
- package/dist/integrations/endpoints/sync.js +90 -0
- package/dist/integrations/endpoints/sync.js.map +1 -0
- package/dist/integrations/index.d.ts +22 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +15 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/integrations/index.d.ts +3 -0
- package/dist/integrations/integrations/index.d.ts.map +1 -0
- package/dist/integrations/integrations/index.js +2 -0
- package/dist/integrations/integrations/index.js.map +1 -0
- package/dist/integrations/integrations/webhook/config-fields.d.ts +33 -0
- package/dist/integrations/integrations/webhook/config-fields.d.ts.map +1 -0
- package/dist/integrations/integrations/webhook/config-fields.js +54 -0
- package/dist/integrations/integrations/webhook/config-fields.js.map +1 -0
- package/dist/integrations/integrations/webhook/functions.d.ts +24 -0
- package/dist/integrations/integrations/webhook/functions.d.ts.map +1 -0
- package/dist/integrations/integrations/webhook/functions.js +139 -0
- package/dist/integrations/integrations/webhook/functions.js.map +1 -0
- package/dist/integrations/integrations/webhook/healthcheck.d.ts +10 -0
- package/dist/integrations/integrations/webhook/healthcheck.d.ts.map +1 -0
- package/dist/integrations/integrations/webhook/healthcheck.js +26 -0
- package/dist/integrations/integrations/webhook/healthcheck.js.map +1 -0
- package/dist/integrations/integrations/webhook/hmac.d.ts +11 -0
- package/dist/integrations/integrations/webhook/hmac.d.ts.map +1 -0
- package/dist/integrations/integrations/webhook/hmac.js +25 -0
- package/dist/integrations/integrations/webhook/hmac.js.map +1 -0
- package/dist/integrations/integrations/webhook/index.d.ts +6 -0
- package/dist/integrations/integrations/webhook/index.d.ts.map +1 -0
- package/dist/integrations/integrations/webhook/index.js +47 -0
- package/dist/integrations/integrations/webhook/index.js.map +1 -0
- package/dist/integrations/integrations/webhook/payload.d.ts +9 -0
- package/dist/integrations/integrations/webhook/payload.d.ts.map +1 -0
- package/dist/integrations/integrations/webhook/payload.js +19 -0
- package/dist/integrations/integrations/webhook/payload.js.map +1 -0
- package/dist/integrations/jobs/healthcheck.d.ts +24 -0
- package/dist/integrations/jobs/healthcheck.d.ts.map +1 -0
- package/dist/integrations/jobs/healthcheck.js +133 -0
- package/dist/integrations/jobs/healthcheck.js.map +1 -0
- package/dist/integrations/options.d.ts +54 -0
- package/dist/integrations/options.d.ts.map +1 -0
- package/dist/integrations/options.js +8 -0
- package/dist/integrations/options.js.map +1 -0
- package/dist/integrations/plugin.d.ts +51 -0
- package/dist/integrations/plugin.d.ts.map +1 -0
- package/dist/integrations/plugin.js +215 -0
- package/dist/integrations/plugin.js.map +1 -0
- package/dist/integrations/registry.d.ts +27 -0
- package/dist/integrations/registry.d.ts.map +1 -0
- package/dist/integrations/registry.js +39 -0
- package/dist/integrations/registry.js.map +1 -0
- package/dist/integrations/sync/manual-sync.d.ts +70 -0
- package/dist/integrations/sync/manual-sync.d.ts.map +1 -0
- package/dist/integrations/sync/manual-sync.js +91 -0
- package/dist/integrations/sync/manual-sync.js.map +1 -0
- package/dist/integrations/sync/problems.d.ts +31 -0
- package/dist/integrations/sync/problems.d.ts.map +1 -0
- package/dist/integrations/sync/problems.js +40 -0
- package/dist/integrations/sync/problems.js.map +1 -0
- package/dist/integrations/sync/status.d.ts +15 -0
- package/dist/integrations/sync/status.d.ts.map +1 -0
- package/dist/integrations/sync/status.js +31 -0
- package/dist/integrations/sync/status.js.map +1 -0
- package/dist/integrations/tools/access.d.ts +5 -0
- package/dist/integrations/tools/access.d.ts.map +1 -0
- package/dist/integrations/tools/access.js +14 -0
- package/dist/integrations/tools/access.js.map +1 -0
- package/dist/integrations/tools/descriptors.d.ts +26 -0
- package/dist/integrations/tools/descriptors.d.ts.map +1 -0
- package/dist/integrations/tools/descriptors.js +35 -0
- package/dist/integrations/tools/descriptors.js.map +1 -0
- package/dist/integrations/tools/get-integration-status.d.ts +17 -0
- package/dist/integrations/tools/get-integration-status.d.ts.map +1 -0
- package/dist/integrations/tools/get-integration-status.js +41 -0
- package/dist/integrations/tools/get-integration-status.js.map +1 -0
- package/dist/integrations/tools/index.d.ts +13 -0
- package/dist/integrations/tools/index.d.ts.map +1 -0
- package/dist/integrations/tools/index.js +8 -0
- package/dist/integrations/tools/index.js.map +1 -0
- package/dist/integrations/tools/list-integration-types.d.ts +10 -0
- package/dist/integrations/tools/list-integration-types.d.ts.map +1 -0
- package/dist/integrations/tools/list-integration-types.js +22 -0
- package/dist/integrations/tools/list-integration-types.js.map +1 -0
- package/dist/integrations/tools/list-integrations.d.ts +20 -0
- package/dist/integrations/tools/list-integrations.d.ts.map +1 -0
- package/dist/integrations/tools/list-integrations.js +49 -0
- package/dist/integrations/tools/list-integrations.js.map +1 -0
- package/dist/integrations/tools/test-integration.d.ts +19 -0
- package/dist/integrations/tools/test-integration.d.ts.map +1 -0
- package/dist/integrations/tools/test-integration.js +51 -0
- package/dist/integrations/tools/test-integration.js.map +1 -0
- package/dist/integrations/tools/trigger-sync.d.ts +26 -0
- package/dist/integrations/tools/trigger-sync.d.ts.map +1 -0
- package/dist/integrations/tools/trigger-sync.js +44 -0
- package/dist/integrations/tools/trigger-sync.js.map +1 -0
- package/dist/integrations/types.d.ts +183 -0
- package/dist/integrations/types.d.ts.map +1 -0
- package/dist/integrations/types.js +2 -0
- package/dist/integrations/types.js.map +1 -0
- package/dist/jobs/define.d.ts +17 -0
- package/dist/jobs/define.d.ts.map +1 -0
- package/dist/jobs/define.js +39 -0
- package/dist/jobs/define.js.map +1 -0
- package/dist/jobs/failure-handler.d.ts +39 -0
- package/dist/jobs/failure-handler.d.ts.map +1 -0
- package/dist/jobs/failure-handler.js +62 -0
- package/dist/jobs/failure-handler.js.map +1 -0
- package/dist/jobs/index.d.ts +28 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +7 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/inngest/adapter.d.ts +39 -0
- package/dist/jobs/inngest/adapter.d.ts.map +1 -0
- package/dist/jobs/inngest/adapter.js +81 -0
- package/dist/jobs/inngest/adapter.js.map +1 -0
- package/dist/jobs/inngest/index.d.ts +15 -0
- package/dist/jobs/inngest/index.d.ts.map +1 -0
- package/dist/jobs/inngest/index.js +13 -0
- package/dist/jobs/inngest/index.js.map +1 -0
- package/dist/jobs/options.d.ts +18 -0
- package/dist/jobs/options.d.ts.map +1 -0
- package/dist/jobs/options.js +12 -0
- package/dist/jobs/options.js.map +1 -0
- package/dist/jobs/payload/adapter.d.ts +33 -0
- package/dist/jobs/payload/adapter.d.ts.map +1 -0
- package/dist/jobs/payload/adapter.js +257 -0
- package/dist/jobs/payload/adapter.js.map +1 -0
- package/dist/jobs/payload/index.d.ts +8 -0
- package/dist/jobs/payload/index.d.ts.map +1 -0
- package/dist/jobs/payload/index.js +7 -0
- package/dist/jobs/payload/index.js.map +1 -0
- package/dist/jobs/sender.d.ts +4 -0
- package/dist/jobs/sender.d.ts.map +1 -0
- package/dist/jobs/sender.js +19 -0
- package/dist/jobs/sender.js.map +1 -0
- package/dist/jobs/types.d.ts +105 -0
- package/dist/jobs/types.d.ts.map +1 -0
- package/dist/jobs/types.js +2 -0
- package/dist/jobs/types.js.map +1 -0
- package/dist/jobs/workflow-types.d.ts +280 -0
- package/dist/jobs/workflow-types.d.ts.map +1 -0
- package/dist/jobs/workflow-types.js +22 -0
- package/dist/jobs/workflow-types.js.map +1 -0
- package/dist/logger/index.d.ts +9 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +41 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/mcp/api-key-access.d.ts +50 -0
- package/dist/mcp/api-key-access.d.ts.map +1 -0
- package/dist/mcp/api-key-access.js +94 -0
- package/dist/mcp/api-key-access.js.map +1 -0
- package/dist/mcp/audit-context.d.ts +39 -0
- package/dist/mcp/audit-context.d.ts.map +1 -0
- package/dist/mcp/audit-context.js +36 -0
- package/dist/mcp/audit-context.js.map +1 -0
- package/dist/mcp/audit-server.d.ts +13 -0
- package/dist/mcp/audit-server.d.ts.map +1 -0
- package/dist/mcp/audit-server.js +68 -0
- package/dist/mcp/audit-server.js.map +1 -0
- package/dist/mcp/collector.d.ts +51 -0
- package/dist/mcp/collector.d.ts.map +1 -0
- package/dist/mcp/collector.js +96 -0
- package/dist/mcp/collector.js.map +1 -0
- package/dist/mcp/envelope.d.ts +22 -0
- package/dist/mcp/envelope.d.ts.map +1 -0
- package/dist/mcp/envelope.js +22 -0
- package/dist/mcp/envelope.js.map +1 -0
- package/dist/mcp/index.d.ts +12 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +8 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/meta.d.ts +74 -0
- package/dist/mcp/meta.d.ts.map +1 -0
- package/dist/mcp/meta.js +27 -0
- package/dist/mcp/meta.js.map +1 -0
- package/dist/mcp/payload-mcp.d.ts +68 -0
- package/dist/mcp/payload-mcp.d.ts.map +1 -0
- package/dist/mcp/payload-mcp.js +175 -0
- package/dist/mcp/payload-mcp.js.map +1 -0
- package/dist/media/hooks.d.ts +70 -0
- package/dist/media/hooks.d.ts.map +1 -0
- package/dist/media/hooks.js +200 -0
- package/dist/media/hooks.js.map +1 -0
- package/dist/media/index.d.ts +8 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/index.js +7 -0
- package/dist/media/index.js.map +1 -0
- package/dist/media/svg.d.ts +17 -0
- package/dist/media/svg.d.ts.map +1 -0
- package/dist/media/svg.js +241 -0
- package/dist/media/svg.js.map +1 -0
- package/dist/media/uploadKey.d.ts +25 -0
- package/dist/media/uploadKey.d.ts.map +1 -0
- package/dist/media/uploadKey.js +70 -0
- package/dist/media/uploadKey.js.map +1 -0
- package/dist/observability/collection.d.ts +13 -0
- package/dist/observability/collection.d.ts.map +1 -0
- package/dist/observability/collection.js +76 -0
- package/dist/observability/collection.js.map +1 -0
- package/dist/observability/index.d.ts +10 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +6 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/plugin.d.ts +24 -0
- package/dist/observability/plugin.d.ts.map +1 -0
- package/dist/observability/plugin.js +59 -0
- package/dist/observability/plugin.js.map +1 -0
- package/dist/observability/report.d.ts +175 -0
- package/dist/observability/report.d.ts.map +1 -0
- package/dist/observability/report.js +274 -0
- package/dist/observability/report.js.map +1 -0
- package/dist/observability/tool.d.ts +33 -0
- package/dist/observability/tool.d.ts.map +1 -0
- package/dist/observability/tool.js +75 -0
- package/dist/observability/tool.js.map +1 -0
- package/dist/observability/writer.d.ts +24 -0
- package/dist/observability/writer.d.ts.map +1 -0
- package/dist/observability/writer.js +72 -0
- package/dist/observability/writer.js.map +1 -0
- package/dist/plugin-contract/admin.d.ts +45 -0
- package/dist/plugin-contract/admin.d.ts.map +1 -0
- package/dist/plugin-contract/admin.js +12 -0
- package/dist/plugin-contract/admin.js.map +1 -0
- package/dist/plugin-contract/env.d.ts +29 -0
- package/dist/plugin-contract/env.d.ts.map +1 -0
- package/dist/plugin-contract/env.js +2 -0
- package/dist/plugin-contract/env.js.map +1 -0
- package/dist/plugin-contract/index.d.ts +39 -0
- package/dist/plugin-contract/index.d.ts.map +1 -0
- package/dist/plugin-contract/index.js +5 -0
- package/dist/plugin-contract/index.js.map +1 -0
- package/dist/plugin-contract/mcp.d.ts +51 -0
- package/dist/plugin-contract/mcp.d.ts.map +1 -0
- package/dist/plugin-contract/mcp.js +2 -0
- package/dist/plugin-contract/mcp.js.map +1 -0
- package/dist/plugin-contract/registry.d.ts +23 -0
- package/dist/plugin-contract/registry.d.ts.map +1 -0
- package/dist/plugin-contract/registry.js +51 -0
- package/dist/plugin-contract/registry.js.map +1 -0
- package/dist/publishing/admin/PublishButton.d.ts +22 -0
- package/dist/publishing/admin/PublishButton.d.ts.map +1 -0
- package/dist/publishing/admin/PublishButton.js +164 -0
- package/dist/publishing/admin/PublishButton.js.map +1 -0
- package/dist/publishing/admin/SchedulePublishField.d.ts +24 -0
- package/dist/publishing/admin/SchedulePublishField.d.ts.map +1 -0
- package/dist/publishing/admin/SchedulePublishField.js +160 -0
- package/dist/publishing/admin/SchedulePublishField.js.map +1 -0
- package/dist/publishing/admin/UnpublishButton.d.ts +15 -0
- package/dist/publishing/admin/UnpublishButton.d.ts.map +1 -0
- package/dist/publishing/admin/UnpublishButton.js +90 -0
- package/dist/publishing/admin/UnpublishButton.js.map +1 -0
- package/dist/publishing/admin/publishing-client.d.ts +105 -0
- package/dist/publishing/admin/publishing-client.d.ts.map +1 -0
- package/dist/publishing/admin/publishing-client.js +139 -0
- package/dist/publishing/admin/publishing-client.js.map +1 -0
- package/dist/publishing/admin/schedule-state.d.ts +30 -0
- package/dist/publishing/admin/schedule-state.d.ts.map +1 -0
- package/dist/publishing/admin/schedule-state.js +39 -0
- package/dist/publishing/admin/schedule-state.js.map +1 -0
- package/dist/publishing/checks/alt-text.d.ts +17 -0
- package/dist/publishing/checks/alt-text.d.ts.map +1 -0
- package/dist/publishing/checks/alt-text.js +63 -0
- package/dist/publishing/checks/alt-text.js.map +1 -0
- package/dist/publishing/checks/heading-hierarchy.d.ts +11 -0
- package/dist/publishing/checks/heading-hierarchy.d.ts.map +1 -0
- package/dist/publishing/checks/heading-hierarchy.js +32 -0
- package/dist/publishing/checks/heading-hierarchy.js.map +1 -0
- package/dist/publishing/checks/index.d.ts +6 -0
- package/dist/publishing/checks/index.d.ts.map +1 -0
- package/dist/publishing/checks/index.js +13 -0
- package/dist/publishing/checks/index.js.map +1 -0
- package/dist/publishing/checks/link-labels.d.ts +9 -0
- package/dist/publishing/checks/link-labels.d.ts.map +1 -0
- package/dist/publishing/checks/link-labels.js +44 -0
- package/dist/publishing/checks/link-labels.js.map +1 -0
- package/dist/publishing/endpoints/admin.d.ts +19 -0
- package/dist/publishing/endpoints/admin.d.ts.map +1 -0
- package/dist/publishing/endpoints/admin.js +112 -0
- package/dist/publishing/endpoints/admin.js.map +1 -0
- package/dist/publishing/events.d.ts +16 -0
- package/dist/publishing/events.d.ts.map +1 -0
- package/dist/publishing/events.js +30 -0
- package/dist/publishing/events.js.map +1 -0
- package/dist/publishing/hooks/block-status-writes.d.ts +52 -0
- package/dist/publishing/hooks/block-status-writes.d.ts.map +1 -0
- package/dist/publishing/hooks/block-status-writes.js +242 -0
- package/dist/publishing/hooks/block-status-writes.js.map +1 -0
- package/dist/publishing/hooks/draft-writes.d.ts +32 -0
- package/dist/publishing/hooks/draft-writes.d.ts.map +1 -0
- package/dist/publishing/hooks/draft-writes.js +76 -0
- package/dist/publishing/hooks/draft-writes.js.map +1 -0
- package/dist/publishing/hooks/schedule-events.d.ts +26 -0
- package/dist/publishing/hooks/schedule-events.d.ts.map +1 -0
- package/dist/publishing/hooks/schedule-events.js +54 -0
- package/dist/publishing/hooks/schedule-events.js.map +1 -0
- package/dist/publishing/index.d.ts +35 -0
- package/dist/publishing/index.d.ts.map +1 -0
- package/dist/publishing/index.js +32 -0
- package/dist/publishing/index.js.map +1 -0
- package/dist/publishing/jobs/execute-scheduled-publishes.d.ts +24 -0
- package/dist/publishing/jobs/execute-scheduled-publishes.d.ts.map +1 -0
- package/dist/publishing/jobs/execute-scheduled-publishes.js +114 -0
- package/dist/publishing/jobs/execute-scheduled-publishes.js.map +1 -0
- package/dist/publishing/jobs/next-revalidate.d.ts +43 -0
- package/dist/publishing/jobs/next-revalidate.d.ts.map +1 -0
- package/dist/publishing/jobs/next-revalidate.js +42 -0
- package/dist/publishing/jobs/next-revalidate.js.map +1 -0
- package/dist/publishing/jobs/publish-at-scheduled-time.d.ts +24 -0
- package/dist/publishing/jobs/publish-at-scheduled-time.d.ts.map +1 -0
- package/dist/publishing/jobs/publish-at-scheduled-time.js +136 -0
- package/dist/publishing/jobs/publish-at-scheduled-time.js.map +1 -0
- package/dist/publishing/jobs/revalidate-on-publish.d.ts +24 -0
- package/dist/publishing/jobs/revalidate-on-publish.d.ts.map +1 -0
- package/dist/publishing/jobs/revalidate-on-publish.js +78 -0
- package/dist/publishing/jobs/revalidate-on-publish.js.map +1 -0
- package/dist/publishing/jobs/revalidate-tag-hooks.d.ts +80 -0
- package/dist/publishing/jobs/revalidate-tag-hooks.d.ts.map +1 -0
- package/dist/publishing/jobs/revalidate-tag-hooks.js +116 -0
- package/dist/publishing/jobs/revalidate-tag-hooks.js.map +1 -0
- package/dist/publishing/options.d.ts +100 -0
- package/dist/publishing/options.d.ts.map +1 -0
- package/dist/publishing/options.js +56 -0
- package/dist/publishing/options.js.map +1 -0
- package/dist/publishing/pipeline/index.d.ts +20 -0
- package/dist/publishing/pipeline/index.d.ts.map +1 -0
- package/dist/publishing/pipeline/index.js +88 -0
- package/dist/publishing/pipeline/index.js.map +1 -0
- package/dist/publishing/pipeline/steps/accessibility.d.ts +13 -0
- package/dist/publishing/pipeline/steps/accessibility.d.ts.map +1 -0
- package/dist/publishing/pipeline/steps/accessibility.js +37 -0
- package/dist/publishing/pipeline/steps/accessibility.js.map +1 -0
- package/dist/publishing/pipeline/steps/approval.d.ts +14 -0
- package/dist/publishing/pipeline/steps/approval.d.ts.map +1 -0
- package/dist/publishing/pipeline/steps/approval.js +54 -0
- package/dist/publishing/pipeline/steps/approval.js.map +1 -0
- package/dist/publishing/pipeline/steps/composition.d.ts +14 -0
- package/dist/publishing/pipeline/steps/composition.d.ts.map +1 -0
- package/dist/publishing/pipeline/steps/composition.js +63 -0
- package/dist/publishing/pipeline/steps/composition.js.map +1 -0
- package/dist/publishing/pipeline/steps/embargo.d.ts +12 -0
- package/dist/publishing/pipeline/steps/embargo.d.ts.map +1 -0
- package/dist/publishing/pipeline/steps/embargo.js +41 -0
- package/dist/publishing/pipeline/steps/embargo.js.map +1 -0
- package/dist/publishing/pipeline/steps/execute.d.ts +52 -0
- package/dist/publishing/pipeline/steps/execute.d.ts.map +1 -0
- package/dist/publishing/pipeline/steps/execute.js +161 -0
- package/dist/publishing/pipeline/steps/execute.js.map +1 -0
- package/dist/publishing/pipeline/steps/exist.d.ts +9 -0
- package/dist/publishing/pipeline/steps/exist.d.ts.map +1 -0
- package/dist/publishing/pipeline/steps/exist.js +31 -0
- package/dist/publishing/pipeline/steps/exist.js.map +1 -0
- package/dist/publishing/pipeline/steps/required-fields.d.ts +9 -0
- package/dist/publishing/pipeline/steps/required-fields.d.ts.map +1 -0
- package/dist/publishing/pipeline/steps/required-fields.js +63 -0
- package/dist/publishing/pipeline/steps/required-fields.js.map +1 -0
- package/dist/publishing/pipeline/types.d.ts +72 -0
- package/dist/publishing/pipeline/types.d.ts.map +1 -0
- package/dist/publishing/pipeline/types.js +2 -0
- package/dist/publishing/pipeline/types.js.map +1 -0
- package/dist/publishing/plugin.d.ts +4 -0
- package/dist/publishing/plugin.d.ts.map +1 -0
- package/dist/publishing/plugin.js +196 -0
- package/dist/publishing/plugin.js.map +1 -0
- package/dist/publishing/service.d.ts +149 -0
- package/dist/publishing/service.d.ts.map +1 -0
- package/dist/publishing/service.js +474 -0
- package/dist/publishing/service.js.map +1 -0
- package/dist/publishing/tools/actor.d.ts +32 -0
- package/dist/publishing/tools/actor.d.ts.map +1 -0
- package/dist/publishing/tools/actor.js +40 -0
- package/dist/publishing/tools/actor.js.map +1 -0
- package/dist/publishing/tools/descriptors.d.ts +26 -0
- package/dist/publishing/tools/descriptors.d.ts.map +1 -0
- package/dist/publishing/tools/descriptors.js +38 -0
- package/dist/publishing/tools/descriptors.js.map +1 -0
- package/dist/publishing/tools/get-publish-status.d.ts +12 -0
- package/dist/publishing/tools/get-publish-status.d.ts.map +1 -0
- package/dist/publishing/tools/get-publish-status.js +45 -0
- package/dist/publishing/tools/get-publish-status.js.map +1 -0
- package/dist/publishing/tools/index.d.ts +7 -0
- package/dist/publishing/tools/index.d.ts.map +1 -0
- package/dist/publishing/tools/index.js +7 -0
- package/dist/publishing/tools/index.js.map +1 -0
- package/dist/publishing/tools/publish.d.ts +14 -0
- package/dist/publishing/tools/publish.d.ts.map +1 -0
- package/dist/publishing/tools/publish.js +35 -0
- package/dist/publishing/tools/publish.js.map +1 -0
- package/dist/publishing/tools/rollback.d.ts +11 -0
- package/dist/publishing/tools/rollback.d.ts.map +1 -0
- package/dist/publishing/tools/rollback.js +98 -0
- package/dist/publishing/tools/rollback.js.map +1 -0
- package/dist/publishing/tools/schedule-publish.d.ts +20 -0
- package/dist/publishing/tools/schedule-publish.d.ts.map +1 -0
- package/dist/publishing/tools/schedule-publish.js +49 -0
- package/dist/publishing/tools/schedule-publish.js.map +1 -0
- package/dist/publishing/tools/unpublish.d.ts +14 -0
- package/dist/publishing/tools/unpublish.d.ts.map +1 -0
- package/dist/publishing/tools/unpublish.js +29 -0
- package/dist/publishing/tools/unpublish.js.map +1 -0
- package/dist/references/UsedOnPanel.d.ts +3 -0
- package/dist/references/UsedOnPanel.d.ts.map +1 -0
- package/dist/references/UsedOnPanel.js +47 -0
- package/dist/references/UsedOnPanel.js.map +1 -0
- package/dist/references/find.d.ts +46 -0
- package/dist/references/find.d.ts.map +1 -0
- package/dist/references/find.js +142 -0
- package/dist/references/find.js.map +1 -0
- package/dist/references/guards.d.ts +32 -0
- package/dist/references/guards.d.ts.map +1 -0
- package/dist/references/guards.js +76 -0
- package/dist/references/guards.js.map +1 -0
- package/dist/references/index.d.ts +11 -0
- package/dist/references/index.d.ts.map +1 -0
- package/dist/references/index.js +6 -0
- package/dist/references/index.js.map +1 -0
- package/dist/references/plugin.d.ts +51 -0
- package/dist/references/plugin.d.ts.map +1 -0
- package/dist/references/plugin.js +111 -0
- package/dist/references/plugin.js.map +1 -0
- package/dist/references/tools.d.ts +54 -0
- package/dist/references/tools.d.ts.map +1 -0
- package/dist/references/tools.js +124 -0
- package/dist/references/tools.js.map +1 -0
- package/dist/references/walk.d.ts +43 -0
- package/dist/references/walk.d.ts.map +1 -0
- package/dist/references/walk.js +214 -0
- package/dist/references/walk.js.map +1 -0
- package/dist/testing/anonymousAccess.d.ts +111 -0
- package/dist/testing/anonymousAccess.d.ts.map +1 -0
- package/dist/testing/anonymousAccess.js +185 -0
- package/dist/testing/anonymousAccess.js.map +1 -0
- package/dist/testing/describeAnonymousAccess.d.ts +26 -0
- package/dist/testing/describeAnonymousAccess.d.ts.map +1 -0
- package/dist/testing/describeAnonymousAccess.js +76 -0
- package/dist/testing/describeAnonymousAccess.js.map +1 -0
- package/dist/testing/index.d.ts +11 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +9 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/utils/content-hash.d.ts +31 -0
- package/dist/utils/content-hash.d.ts.map +1 -0
- package/dist/utils/content-hash.js +94 -0
- package/dist/utils/content-hash.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/relationships.d.ts +17 -0
- package/dist/utils/relationships.d.ts.map +1 -0
- package/dist/utils/relationships.js +26 -0
- package/dist/utils/relationships.js.map +1 -0
- package/dist/utils/sha256.d.ts +10 -0
- package/dist/utils/sha256.d.ts.map +1 -0
- package/dist/utils/sha256.js +16 -0
- package/dist/utils/sha256.js.map +1 -0
- package/dist/utils/zod-issues.d.ts +19 -0
- package/dist/utils/zod-issues.d.ts.map +1 -0
- package/dist/utils/zod-issues.js +22 -0
- package/dist/utils/zod-issues.js.map +1 -0
- package/package.json +180 -3
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
/*
|
|
2
|
+
The Payload CLI, wrapped so a hung run cannot outlive the shell that started it.
|
|
3
|
+
`bin/throughline-payload.mjs` is the entry point; this module is the runner and
|
|
4
|
+
the pure pieces its tests exercise.
|
|
5
|
+
|
|
6
|
+
`pnpm payload generate:types` is three processes deep — shell, pnpm, node — and
|
|
7
|
+
pnpm (like npm and yarn) does not forward signals to the script child it
|
|
8
|
+
spawns. Kill the shell (a Ctrl-C, an agent tool-call timeout, a closed
|
|
9
|
+
terminal, a cancelled CI step) and pnpm dies while node keeps running,
|
|
10
|
+
reparented to PID 1. When the run was hung rather than merely slow, that orphan
|
|
11
|
+
spins on a core indefinitely: 48 of them piled up on one machine inside a day,
|
|
12
|
+
~90 CPU-minutes each, at a load average of 300.
|
|
13
|
+
|
|
14
|
+
Three layers, because no single one covers every way this exits.
|
|
15
|
+
|
|
16
|
+
1. The child is spawned `detached`, so it leads its own process group. That is
|
|
17
|
+
what makes it killable as a *group* by pid — the whole subtree dies with it,
|
|
18
|
+
and nothing is ever matched by process name, which would put unrelated node
|
|
19
|
+
work on the same machine at risk.
|
|
20
|
+
2. SIGINT, SIGTERM and SIGHUP are forwarded to that group, and a wall-clock
|
|
21
|
+
timeout kills it as well. Between them that covers Ctrl-C, a tool-call
|
|
22
|
+
timeout, and a hangup from a closing terminal.
|
|
23
|
+
3. If this runner is itself SIGKILLed, no handler of ours can run. So each
|
|
24
|
+
spawn is recorded in `.payload-cli-pids` at the workspace root and the
|
|
25
|
+
*next* run (or `--reap`) sweeps the file. See `verdict` for what an entry
|
|
26
|
+
must satisfy before anything is signalled.
|
|
27
|
+
|
|
28
|
+
PAYLOAD_CLI_TIMEOUT_MS sets the wall clock; 0 disables it. The default is five
|
|
29
|
+
minutes, except for the `migrate` family (`migrate`, `migrate:create`, …),
|
|
30
|
+
which gets none: a large migration is legitimately long, and `migrate:create`
|
|
31
|
+
can stop at an interactive prompt. Layers 1 and 3 apply regardless.
|
|
32
|
+
*/
|
|
33
|
+
import { execFile, spawn } from 'node:child_process'
|
|
34
|
+
import { createRequire } from 'node:module'
|
|
35
|
+
import { promisify } from 'node:util'
|
|
36
|
+
import fs from 'node:fs'
|
|
37
|
+
import os from 'node:os'
|
|
38
|
+
import path from 'node:path'
|
|
39
|
+
|
|
40
|
+
const execFileAsync = promisify(execFile)
|
|
41
|
+
|
|
42
|
+
export const PID_FILE_NAME = '.payload-cli-pids'
|
|
43
|
+
export const DEFAULT_TIMEOUT_MS = 300_000
|
|
44
|
+
export const DEFAULT_GRACE_MS = 5_000
|
|
45
|
+
/** Exit code for "gave up waiting", as coreutils `timeout` uses. */
|
|
46
|
+
export const TIMEOUT_EXIT_CODE = 124
|
|
47
|
+
|
|
48
|
+
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
|
|
49
|
+
const log = (message) => process.stderr.write(`throughline-payload: ${message}\n`)
|
|
50
|
+
|
|
51
|
+
/** Collapse runs of whitespace, so `ps` column padding never decides a match. */
|
|
52
|
+
export const norm = (value) => (value ?? '').trim().replace(/\s+/g, ' ')
|
|
53
|
+
|
|
54
|
+
// ---------------------------------------------------------------------------
|
|
55
|
+
// Pure pieces
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* `--reap` alone sweeps and exits. Anything else is passed to the Payload CLI
|
|
60
|
+
* untouched, including flags that look like ours further along the argv.
|
|
61
|
+
*/
|
|
62
|
+
export function parseArgs(argv) {
|
|
63
|
+
if (argv[0] === '--reap') return { mode: 'reap', args: [] }
|
|
64
|
+
return { mode: 'run', args: [...argv] }
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/** `migrate`, `migrate:create`, `migrate:status`, `migrate:fresh`, … */
|
|
68
|
+
export const isMigrateCommand = (args) => /^migrate(:|$)/.test(args[0] ?? '')
|
|
69
|
+
|
|
70
|
+
function readMs(env, name, fallback) {
|
|
71
|
+
const raw = env[name]
|
|
72
|
+
if (raw === undefined || raw.trim() === '') return fallback
|
|
73
|
+
const value = Number(raw)
|
|
74
|
+
if (!Number.isInteger(value) || value < 0) {
|
|
75
|
+
throw new Error(`${name} must be a whole number of milliseconds (0 disables it), got '${raw}'`)
|
|
76
|
+
}
|
|
77
|
+
return value
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* The wall clock for a run, in ms; 0 means none. An explicit
|
|
82
|
+
* PAYLOAD_CLI_TIMEOUT_MS always wins. A malformed one is an error rather than
|
|
83
|
+
* silently "no timeout", which is the failure this exists to prevent.
|
|
84
|
+
*/
|
|
85
|
+
export function selectTimeout(args, env) {
|
|
86
|
+
return readMs(env, 'PAYLOAD_CLI_TIMEOUT_MS', isMigrateCommand(args) ? 0 : DEFAULT_TIMEOUT_MS)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** How long a group gets between the polite signal and SIGKILL. */
|
|
90
|
+
export const selectGrace = (env) => readMs(env, 'PAYLOAD_CLI_GRACE_MS', DEFAULT_GRACE_MS)
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* The directory that owns the pid file: the nearest ancestor of `cwd` holding
|
|
94
|
+
* `pnpm-workspace.yaml` — the workspace root, so every app in a monorepo
|
|
95
|
+
* shares one file and one `payload:reap` — or, outside a pnpm workspace, the
|
|
96
|
+
* nearest directory with a `package.json`. Real path, because that is what
|
|
97
|
+
* the spawned command line contains.
|
|
98
|
+
*/
|
|
99
|
+
export function findRoot(cwd, exists = fs.existsSync) {
|
|
100
|
+
const real = fs.realpathSync(cwd)
|
|
101
|
+
let nearestPackage
|
|
102
|
+
for (let dir = real; ; dir = path.dirname(dir)) {
|
|
103
|
+
if (exists(path.join(dir, 'pnpm-workspace.yaml'))) return dir
|
|
104
|
+
if (!nearestPackage && exists(path.join(dir, 'package.json'))) nearestPackage = dir
|
|
105
|
+
if (path.dirname(dir) === dir) break
|
|
106
|
+
}
|
|
107
|
+
return nearestPackage ?? real
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const ENTRY_FIELDS = {
|
|
111
|
+
pid: 'number',
|
|
112
|
+
pgid: 'number',
|
|
113
|
+
start: 'string',
|
|
114
|
+
command: 'string',
|
|
115
|
+
runnerPid: 'number',
|
|
116
|
+
runnerStart: 'string',
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* One JSON object per line. A torn line from an abrupt exit, or anything
|
|
121
|
+
* missing a field verification needs, is dropped — never guessed at.
|
|
122
|
+
*/
|
|
123
|
+
export function parsePidFile(text) {
|
|
124
|
+
return text
|
|
125
|
+
.split('\n')
|
|
126
|
+
.filter((line) => line.trim())
|
|
127
|
+
.flatMap((line) => {
|
|
128
|
+
let entry
|
|
129
|
+
try {
|
|
130
|
+
entry = JSON.parse(line)
|
|
131
|
+
} catch {
|
|
132
|
+
return []
|
|
133
|
+
}
|
|
134
|
+
if (!entry || typeof entry !== 'object') return []
|
|
135
|
+
for (const [field, type] of Object.entries(ENTRY_FIELDS)) {
|
|
136
|
+
if (typeof entry[field] !== type) return []
|
|
137
|
+
}
|
|
138
|
+
if (!Number.isInteger(entry.pid) || entry.pid <= 1) return []
|
|
139
|
+
if (entry.pgid !== entry.pid) return [] // We only ever record group leaders.
|
|
140
|
+
return [entry]
|
|
141
|
+
})
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export const serializeEntries = (entries) =>
|
|
145
|
+
entries.map((entry) => `${JSON.stringify(entry)}\n`).join('')
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* What the sweep does with one recorded entry, given what `ps` reports now
|
|
149
|
+
* (`undefined` fields mean the pid is gone):
|
|
150
|
+
*
|
|
151
|
+
* 'forget' — the pid is gone, or it is no longer the process we recorded:
|
|
152
|
+
* its start time differs (the OS recycled the pid), its command
|
|
153
|
+
* line differs, or that command line is not rooted in this
|
|
154
|
+
* workspace. Nothing is signalled.
|
|
155
|
+
* 'keep' — it is ours and its runner is still alive: a concurrent run in
|
|
156
|
+
* this workspace, which keeps its child.
|
|
157
|
+
* 'reap' — it is ours and its runner is gone: an orphan.
|
|
158
|
+
*
|
|
159
|
+
* Only 'reap' leads to a signal, and only to the recorded process group.
|
|
160
|
+
*/
|
|
161
|
+
export function verdict(entry, observed, root) {
|
|
162
|
+
if (!observed.start) return 'forget'
|
|
163
|
+
if (norm(observed.start) !== norm(entry.start)) return 'forget'
|
|
164
|
+
if (norm(observed.command) !== norm(entry.command)) return 'forget'
|
|
165
|
+
if (!entry.command.includes(`${root}${path.sep}`)) return 'forget'
|
|
166
|
+
if (observed.runnerStart && norm(observed.runnerStart) === norm(entry.runnerStart)) return 'keep'
|
|
167
|
+
return 'reap'
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/** 128 + signal number, as a shell reports a signalled exit. */
|
|
171
|
+
export const signalExitCode = (signal) => 128 + (os.constants.signals[signal] ?? 0)
|
|
172
|
+
|
|
173
|
+
// ---------------------------------------------------------------------------
|
|
174
|
+
// Processes
|
|
175
|
+
// ---------------------------------------------------------------------------
|
|
176
|
+
|
|
177
|
+
/*
|
|
178
|
+
`payload/bin.js` is not in the package's `exports`, so it cannot be resolved
|
|
179
|
+
directly. Resolve the package entry from the app's directory — never from this
|
|
180
|
+
package's own install — and walk up to the directory that owns it. The result
|
|
181
|
+
is a real path inside this workspace, which is what makes the spawned argv
|
|
182
|
+
unambiguous: one node process whose command line names this workspace.
|
|
183
|
+
*/
|
|
184
|
+
export function resolvePayloadBin(fromDir) {
|
|
185
|
+
const require = createRequire(path.join(fromDir, 'package.json'))
|
|
186
|
+
let entry
|
|
187
|
+
try {
|
|
188
|
+
entry = require.resolve('payload')
|
|
189
|
+
} catch {
|
|
190
|
+
throw new Error(`could not resolve 'payload' from ${fromDir} — is it a dependency of this app?`)
|
|
191
|
+
}
|
|
192
|
+
for (let dir = path.dirname(entry); ; dir = path.dirname(dir)) {
|
|
193
|
+
const manifest = path.join(dir, 'package.json')
|
|
194
|
+
if (fs.existsSync(manifest)) {
|
|
195
|
+
const { name, bin } = JSON.parse(fs.readFileSync(manifest, 'utf8'))
|
|
196
|
+
if (name === 'payload') {
|
|
197
|
+
const relative = typeof bin === 'string' ? bin : bin?.payload
|
|
198
|
+
if (relative) return fs.realpathSync(path.join(dir, relative))
|
|
199
|
+
break
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (path.dirname(dir) === dir) break
|
|
203
|
+
}
|
|
204
|
+
throw new Error(`could not find the payload CLI's bin from ${fromDir}`)
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/*
|
|
208
|
+
One `ps` field for a set of pids, as a map; a pid that is gone is absent. `-ww`
|
|
209
|
+
so a long command line is never truncated. Every process is listed and then
|
|
210
|
+
filtered, rather than asking for the pids with `-p`: one implausible pid in the
|
|
211
|
+
file ("process id too large" on macOS) makes `ps -p` fail for the whole batch,
|
|
212
|
+
which would blind the sweep.
|
|
213
|
+
*/
|
|
214
|
+
async function psField(pids, field) {
|
|
215
|
+
const found = new Map()
|
|
216
|
+
if (!pids.length) return found
|
|
217
|
+
const wanted = new Set(pids)
|
|
218
|
+
let stdout
|
|
219
|
+
try {
|
|
220
|
+
;({ stdout } = await execFileAsync('ps', ['-A', '-ww', '-o', `pid=,${field}=`], {
|
|
221
|
+
maxBuffer: 64 * 1024 * 1024,
|
|
222
|
+
}))
|
|
223
|
+
} catch (error) {
|
|
224
|
+
stdout = error?.stdout ?? ''
|
|
225
|
+
}
|
|
226
|
+
for (const line of stdout.split('\n')) {
|
|
227
|
+
const match = line.match(/^\s*(\d+)\s+(.*)$/)
|
|
228
|
+
if (match && wanted.has(Number(match[1]))) found.set(Number(match[1]), match[2])
|
|
229
|
+
}
|
|
230
|
+
return found
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
const groupAlive = (pgid) => {
|
|
234
|
+
try {
|
|
235
|
+
process.kill(-pgid, 0)
|
|
236
|
+
return true
|
|
237
|
+
} catch {
|
|
238
|
+
return false
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/*
|
|
243
|
+
`signal` to the group, then SIGKILL to whatever is left after the grace period.
|
|
244
|
+
The wait is on the whole group, not just its leader, so a grandchild that
|
|
245
|
+
ignores the first signal is still caught.
|
|
246
|
+
*/
|
|
247
|
+
async function killGroup(pgid, signal, graceMs) {
|
|
248
|
+
try {
|
|
249
|
+
process.kill(-pgid, signal)
|
|
250
|
+
} catch {
|
|
251
|
+
return // Already gone.
|
|
252
|
+
}
|
|
253
|
+
for (let waited = 0; waited < graceMs; waited += 100) {
|
|
254
|
+
if (!groupAlive(pgid)) return
|
|
255
|
+
await delay(100)
|
|
256
|
+
}
|
|
257
|
+
try {
|
|
258
|
+
process.kill(-pgid, 'SIGKILL')
|
|
259
|
+
} catch {
|
|
260
|
+
// Exited during the grace period.
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
function pidFileStore(root) {
|
|
265
|
+
const file = path.join(root, PID_FILE_NAME)
|
|
266
|
+
const read = () => {
|
|
267
|
+
try {
|
|
268
|
+
return parsePidFile(fs.readFileSync(file, 'utf8'))
|
|
269
|
+
} catch {
|
|
270
|
+
return []
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
const write = (entries) => {
|
|
274
|
+
if (!entries.length) fs.rmSync(file, { force: true })
|
|
275
|
+
else fs.writeFileSync(file, serializeEntries(entries))
|
|
276
|
+
}
|
|
277
|
+
return {
|
|
278
|
+
read,
|
|
279
|
+
write,
|
|
280
|
+
append: (entry) => fs.appendFileSync(file, serializeEntries([entry])),
|
|
281
|
+
drop: (pid) => write(read().filter((entry) => entry.pid !== pid)),
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
/** The backstop: reap orphans this workspace recorded. Returns how many. */
|
|
286
|
+
export async function sweep(root, graceMs) {
|
|
287
|
+
const store = pidFileStore(root)
|
|
288
|
+
const entries = store.read()
|
|
289
|
+
if (!entries.length) return 0
|
|
290
|
+
|
|
291
|
+
const pids = [...new Set(entries.flatMap((entry) => [entry.pid, entry.runnerPid]))]
|
|
292
|
+
const [starts, commands] = await Promise.all([psField(pids, 'lstart'), psField(pids, 'args')])
|
|
293
|
+
|
|
294
|
+
const keep = []
|
|
295
|
+
let reaped = 0
|
|
296
|
+
for (const entry of entries) {
|
|
297
|
+
const result = verdict(
|
|
298
|
+
entry,
|
|
299
|
+
{
|
|
300
|
+
start: starts.get(entry.pid),
|
|
301
|
+
command: commands.get(entry.pid),
|
|
302
|
+
runnerStart: starts.get(entry.runnerPid),
|
|
303
|
+
},
|
|
304
|
+
root,
|
|
305
|
+
)
|
|
306
|
+
if (result === 'keep') keep.push(entry)
|
|
307
|
+
if (result !== 'reap') continue
|
|
308
|
+
log(
|
|
309
|
+
`reaping orphaned '${entry.script ?? 'payload'}' (pid ${entry.pid}, started ${entry.at ?? entry.start})`,
|
|
310
|
+
)
|
|
311
|
+
await killGroup(entry.pgid, 'SIGTERM', graceMs)
|
|
312
|
+
reaped += 1
|
|
313
|
+
}
|
|
314
|
+
// Re-read so an entry a concurrent run appended meanwhile is not lost.
|
|
315
|
+
const handled = new Set(entries.map((entry) => entry.pid))
|
|
316
|
+
const kept = new Set(keep.map((entry) => entry.pid))
|
|
317
|
+
store.write(store.read().filter((entry) => !handled.has(entry.pid) || kept.has(entry.pid)))
|
|
318
|
+
return reaped
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
export async function main({
|
|
322
|
+
argv = process.argv.slice(2),
|
|
323
|
+
cwd = process.cwd(),
|
|
324
|
+
env = process.env,
|
|
325
|
+
} = {}) {
|
|
326
|
+
let parsed, timeoutMs, graceMs, root
|
|
327
|
+
try {
|
|
328
|
+
parsed = parseArgs(argv)
|
|
329
|
+
timeoutMs = selectTimeout(parsed.args, env)
|
|
330
|
+
graceMs = selectGrace(env)
|
|
331
|
+
root = findRoot(cwd)
|
|
332
|
+
} catch (error) {
|
|
333
|
+
log(error.message)
|
|
334
|
+
process.exit(2)
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
if (process.platform === 'win32') {
|
|
338
|
+
// No process groups and no `ps`: run it plainly rather than not at all.
|
|
339
|
+
if (parsed.mode === 'reap') return
|
|
340
|
+
const child = spawn(process.execPath, [resolvePayloadBin(cwd), ...parsed.args], {
|
|
341
|
+
stdio: 'inherit',
|
|
342
|
+
cwd,
|
|
343
|
+
})
|
|
344
|
+
child.on('exit', (code) => process.exit(code ?? 1))
|
|
345
|
+
return
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
const reaped = await sweep(root, graceMs)
|
|
349
|
+
if (parsed.mode === 'reap') {
|
|
350
|
+
log(reaped ? `reaped ${reaped} orphaned run(s)` : 'nothing to reap')
|
|
351
|
+
return
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
let bin
|
|
355
|
+
try {
|
|
356
|
+
bin = resolvePayloadBin(cwd)
|
|
357
|
+
} catch (error) {
|
|
358
|
+
log(error.message)
|
|
359
|
+
process.exit(1)
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
const store = pidFileStore(root)
|
|
363
|
+
const childArgv = [bin, ...parsed.args]
|
|
364
|
+
const child = spawn(process.execPath, childArgv, { stdio: 'inherit', detached: true, cwd, env })
|
|
365
|
+
|
|
366
|
+
let timer
|
|
367
|
+
let finished = false
|
|
368
|
+
let stopping = false
|
|
369
|
+
const finish = (code) => {
|
|
370
|
+
if (finished) return
|
|
371
|
+
finished = true
|
|
372
|
+
clearTimeout(timer)
|
|
373
|
+
if (child.pid) store.drop(child.pid)
|
|
374
|
+
process.exit(code)
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/*
|
|
378
|
+
Kill the group and then exit with `code`. Exiting is deliberately left to
|
|
379
|
+
this, not to the child's 'exit' event: the leader usually dies on the first
|
|
380
|
+
signal, and exiting then would abandon the grace period — and with it the
|
|
381
|
+
SIGKILL for a grandchild that ignored that signal.
|
|
382
|
+
*/
|
|
383
|
+
const stop = async (signal, code) => {
|
|
384
|
+
if (stopping || finished) return
|
|
385
|
+
stopping = true
|
|
386
|
+
if (child.pid) await killGroup(child.pid, signal, graceMs)
|
|
387
|
+
finish(code)
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
child.on('error', (error) => {
|
|
391
|
+
log(error.message)
|
|
392
|
+
if (!stopping) finish(1)
|
|
393
|
+
})
|
|
394
|
+
child.on('exit', async (code, signal) => {
|
|
395
|
+
if (stopping) return
|
|
396
|
+
// Payload is done. Anything it left running in its group goes with it.
|
|
397
|
+
if (groupAlive(child.pid)) {
|
|
398
|
+
stopping = true
|
|
399
|
+
await killGroup(child.pid, 'SIGTERM', graceMs)
|
|
400
|
+
}
|
|
401
|
+
finish(signal ? signalExitCode(signal) : (code ?? 0))
|
|
402
|
+
})
|
|
403
|
+
|
|
404
|
+
/*
|
|
405
|
+
The child is in its own group, so a terminal Ctrl-C reaches this runner
|
|
406
|
+
alone. Forwarding the same signal lets Payload clean up as it would have;
|
|
407
|
+
the grace period then escalates to SIGKILL.
|
|
408
|
+
*/
|
|
409
|
+
for (const signal of ['SIGINT', 'SIGTERM', 'SIGHUP']) {
|
|
410
|
+
process.on(signal, () => stop(signal, signalExitCode(signal)))
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
if (timeoutMs > 0) {
|
|
414
|
+
timer = setTimeout(() => {
|
|
415
|
+
log(
|
|
416
|
+
`no exit after ${Math.round(timeoutMs / 1000)}s — killing process group ${child.pid}. ` +
|
|
417
|
+
'Set PAYLOAD_CLI_TIMEOUT_MS higher, or 0, if this run is legitimately slow.',
|
|
418
|
+
)
|
|
419
|
+
stop('SIGTERM', TIMEOUT_EXIT_CODE)
|
|
420
|
+
}, timeoutMs)
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
if (!child.pid) return // Spawn failed; 'error' handles it.
|
|
424
|
+
|
|
425
|
+
/*
|
|
426
|
+
Recorded after the spawn, so a run that exits before this lands leaves an
|
|
427
|
+
entry the next sweep forgets on its first condition. The command is the argv
|
|
428
|
+
we spawned, not what `ps` shows this instant — just after fork the child can
|
|
429
|
+
still carry this runner's argv.
|
|
430
|
+
*/
|
|
431
|
+
const starts = await psField([child.pid, process.pid], 'lstart')
|
|
432
|
+
if (finished) return
|
|
433
|
+
store.append({
|
|
434
|
+
pid: child.pid,
|
|
435
|
+
pgid: child.pid, // `detached` makes the child its own group leader.
|
|
436
|
+
start: norm(starts.get(child.pid)),
|
|
437
|
+
command: [process.execPath, ...childArgv].join(' '),
|
|
438
|
+
runnerPid: process.pid,
|
|
439
|
+
runnerStart: norm(starts.get(process.pid)),
|
|
440
|
+
script: parsed.args[0] ?? 'payload',
|
|
441
|
+
at: new Date().toISOString(),
|
|
442
|
+
})
|
|
443
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { SanitizedConfig } from 'payload';
|
|
2
|
+
/** Payload's own slug for the lock table. */
|
|
3
|
+
export declare const LOCKED_DOCUMENTS_SLUG = "payload-locked-documents";
|
|
4
|
+
export interface HardenCoreCollectionsOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Who may take, read and release document locks. A lock is created by
|
|
7
|
+
* whoever opens a document for editing, so this must include everyone who
|
|
8
|
+
* edits. Default: users with the `admin` or `editor` role.
|
|
9
|
+
*/
|
|
10
|
+
canLock?: (user: unknown) => boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Close the `defaultAccess` holes on the collections Payload adds for itself.
|
|
14
|
+
* Mutates and returns the config. Throws if a collection it expects is absent,
|
|
15
|
+
* because a silent no-op here is a reopened hole nobody would see.
|
|
16
|
+
*/
|
|
17
|
+
export declare function hardenCoreCollections(config: SanitizedConfig, options?: HardenCoreCollectionsOptions): SanitizedConfig;
|
|
18
|
+
//# sourceMappingURL=coreCollections.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreCollections.d.ts","sourceRoot":"","sources":["../../src/access/coreCollections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,eAAe,EAAE,MAAM,SAAS,CAAA;AAmCtD,6CAA6C;AAC7C,eAAO,MAAM,qBAAqB,6BAA6B,CAAA;AAQ/D,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;CACrC;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,OAAO,GAAE,4BAAiC,GACzC,eAAe,CAajB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Narrowing a collection Payload adds for itself, after the fact. From
|
|
3
|
+
forumone-2026's `access/coreCollections.ts` (audit 04 F-12 there).
|
|
4
|
+
|
|
5
|
+
`payload-locked-documents` ships with all four operations at `defaultAccess`,
|
|
6
|
+
which is `Boolean(user)`. So any authenticated principal (an approver, a
|
|
7
|
+
role-less account, an MCP API key) could read, create, update and delete every
|
|
8
|
+
lock row through a full REST surface. Two consequences:
|
|
9
|
+
|
|
10
|
+
- **Deleting locks defeats a control the publishing service depends on.** The
|
|
11
|
+
publish and unpublish writes pass `overrideLock: false`, so that unpublishing a
|
|
12
|
+
page somebody has open is a refusal. Deleting the lock first gets round it.
|
|
13
|
+
- **Creating them is an editorial denial of service.** One row per document
|
|
14
|
+
makes every document read-only in the admin.
|
|
15
|
+
|
|
16
|
+
## Why a function on the sanitized config
|
|
17
|
+
|
|
18
|
+
There is no override point. The collection does not exist while the config is
|
|
19
|
+
written or while plugins run: `buildConfig` runs every plugin first and then
|
|
20
|
+
`sanitizeConfig` builds this collection. `lockDocuments: false` everywhere would
|
|
21
|
+
remove it, and `overrideLock: false` with it. What is left is to patch the
|
|
22
|
+
sanitized result:
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
export default buildConfig({ ... }).then(hardenCoreCollections)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Access functions are read per request off `collection.config.access`, so
|
|
29
|
+
replacing them there is the same as having declared them. It depends on the
|
|
30
|
+
slug, so it throws when the collection is missing rather than becoming a silent
|
|
31
|
+
no-op after a Payload upgrade renames it.
|
|
32
|
+
*/
|
|
33
|
+
/** Payload's own slug for the lock table. */
|
|
34
|
+
export const LOCKED_DOCUMENTS_SLUG = 'payload-locked-documents';
|
|
35
|
+
/** Default: a user whose `roles` include `admin` or `editor`. */
|
|
36
|
+
function editorsAndAdmins(user) {
|
|
37
|
+
const roles = user?.roles;
|
|
38
|
+
return Array.isArray(roles) && (roles.includes('admin') || roles.includes('editor'));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Close the `defaultAccess` holes on the collections Payload adds for itself.
|
|
42
|
+
* Mutates and returns the config. Throws if a collection it expects is absent,
|
|
43
|
+
* because a silent no-op here is a reopened hole nobody would see.
|
|
44
|
+
*/
|
|
45
|
+
export function hardenCoreCollections(config, options = {}) {
|
|
46
|
+
const locked = config.collections.find((collection) => collection.slug === LOCKED_DOCUMENTS_SLUG);
|
|
47
|
+
if (!locked) {
|
|
48
|
+
throw new Error(`hardenCoreCollections: no "${LOCKED_DOCUMENTS_SLUG}" collection in the sanitized config. ` +
|
|
49
|
+
'Payload has renamed or stopped adding it, and its access rules are no longer being narrowed.');
|
|
50
|
+
}
|
|
51
|
+
const canLock = options.canLock ?? editorsAndAdmins;
|
|
52
|
+
const rule = ({ req }) => canLock(req.user);
|
|
53
|
+
locked.access = { ...locked.access, create: rule, read: rule, update: rule, delete: rule };
|
|
54
|
+
return config;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=coreCollections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreCollections.js","sourceRoot":"","sources":["../../src/access/coreCollections.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BE;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,0BAA0B,CAAA;AAE/D,iEAAiE;AACjE,SAAS,gBAAgB,CAAC,IAAa;IACrC,MAAM,KAAK,GAAI,IAA+C,EAAE,KAAK,CAAA;IACrE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;AACtF,CAAC;AAWD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAuB,EACvB,UAAwC,EAAE;IAE1C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAA;IACjG,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,8BAA8B,qBAAqB,wCAAwC;YACzF,8FAA8F,CACjG,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAA;IACnD,MAAM,IAAI,GAAW,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IAC1F,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CollectionConfig } from 'payload';
|
|
2
|
+
import { type PluginAdminOptions } from '../plugin-contract/admin.js';
|
|
3
|
+
export interface CreateApprovalsCollectionOptions {
|
|
4
|
+
/** Override the collection slug. Default: 'approvals'. */
|
|
5
|
+
slug?: string;
|
|
6
|
+
/** Slug of the users collection that approver/requester relationships point at. Default: 'users'. */
|
|
7
|
+
usersSlug?: string;
|
|
8
|
+
/** Allowed group slugs from the plugin's `groups` option. Used as the select options on the approverGroups field. */
|
|
9
|
+
groupSlugs: string[];
|
|
10
|
+
/** Sidebar placement. Default: the `'Throughline'` group; `group: false` leaves it ungrouped. */
|
|
11
|
+
admin?: PluginAdminOptions;
|
|
12
|
+
}
|
|
13
|
+
export declare const DEFAULT_APPROVALS_SLUG = "approvals";
|
|
14
|
+
/**
|
|
15
|
+
* Builds the approvals collection config. The collection is read-mostly:
|
|
16
|
+
* `create` is system-only (the plugin's tools mint records via the local
|
|
17
|
+
* API), `update` is admin-only (so a stuck pending record can be corrected),
|
|
18
|
+
* `delete` is denied (audit trail must remain).
|
|
19
|
+
*/
|
|
20
|
+
export declare function createApprovalsCollection(options: CreateApprovalsCollectionOptions): CollectionConfig;
|
|
21
|
+
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/approvals/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,KAAK,kBAAkB,EAAqB,MAAM,6BAA6B,CAAA;AAExF,MAAM,WAAW,gCAAgC;IAC/C,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qGAAqG;IACrG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qHAAqH;IACrH,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,iGAAiG;IACjG,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAC3B;AAED,eAAO,MAAM,sBAAsB,cAAc,CAAA;AAEjD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,gBAAgB,CAgGlB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { resolveAdminGroup } from '../plugin-contract/admin.js';
|
|
2
|
+
export const DEFAULT_APPROVALS_SLUG = 'approvals';
|
|
3
|
+
/**
|
|
4
|
+
* Builds the approvals collection config. The collection is read-mostly:
|
|
5
|
+
* `create` is system-only (the plugin's tools mint records via the local
|
|
6
|
+
* API), `update` is admin-only (so a stuck pending record can be corrected),
|
|
7
|
+
* `delete` is denied (audit trail must remain).
|
|
8
|
+
*/
|
|
9
|
+
export function createApprovalsCollection(options) {
|
|
10
|
+
const slug = options.slug ?? DEFAULT_APPROVALS_SLUG;
|
|
11
|
+
const usersSlug = options.usersSlug ?? 'users';
|
|
12
|
+
return {
|
|
13
|
+
slug,
|
|
14
|
+
admin: {
|
|
15
|
+
...resolveAdminGroup(options.admin),
|
|
16
|
+
useAsTitle: 'targetTitle',
|
|
17
|
+
defaultColumns: ['targetTitle', 'status', 'requestedBy', 'requestedAt', 'expiresAt'],
|
|
18
|
+
description: 'Approval workflow state. Mostly read-only here; changes come from approval actions.',
|
|
19
|
+
},
|
|
20
|
+
access: {
|
|
21
|
+
read: ({ req }) => {
|
|
22
|
+
const roles = req.user?.['roles'] ?? [];
|
|
23
|
+
return roles.includes('admin') || roles.includes('editor') || roles.includes('approver');
|
|
24
|
+
},
|
|
25
|
+
create: () => false,
|
|
26
|
+
update: ({ req }) => (req.user?.['roles'] ?? []).includes('admin'),
|
|
27
|
+
delete: () => false,
|
|
28
|
+
},
|
|
29
|
+
fields: [
|
|
30
|
+
// Target
|
|
31
|
+
{ name: 'targetCollection', type: 'text', required: true },
|
|
32
|
+
{ name: 'targetId', type: 'text', required: true },
|
|
33
|
+
{ name: 'targetTitle', type: 'text', required: true },
|
|
34
|
+
{
|
|
35
|
+
name: 'targetVersion',
|
|
36
|
+
type: 'text',
|
|
37
|
+
required: true,
|
|
38
|
+
admin: {
|
|
39
|
+
description: 'Hash of the document content at request time. Any content change invalidates the approval.',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
{ name: 'previewUrl', type: 'text' },
|
|
43
|
+
// Request
|
|
44
|
+
{ name: 'requestedBy', type: 'relationship', relationTo: usersSlug, required: true },
|
|
45
|
+
{
|
|
46
|
+
name: 'requestedAt',
|
|
47
|
+
type: 'date',
|
|
48
|
+
required: true,
|
|
49
|
+
defaultValue: () => new Date().toISOString(),
|
|
50
|
+
},
|
|
51
|
+
{ name: 'requestReason', type: 'textarea' },
|
|
52
|
+
{ name: 'changesSummary', type: 'textarea', required: true },
|
|
53
|
+
{
|
|
54
|
+
name: 'approverGroups',
|
|
55
|
+
type: 'select',
|
|
56
|
+
hasMany: true,
|
|
57
|
+
required: true,
|
|
58
|
+
options: options.groupSlugs.map((s) => ({ label: s, value: s })),
|
|
59
|
+
},
|
|
60
|
+
// Decision
|
|
61
|
+
{
|
|
62
|
+
name: 'status',
|
|
63
|
+
type: 'select',
|
|
64
|
+
required: true,
|
|
65
|
+
defaultValue: 'pending',
|
|
66
|
+
options: [
|
|
67
|
+
{ label: 'Pending', value: 'pending' },
|
|
68
|
+
{ label: 'Granted', value: 'granted' },
|
|
69
|
+
{ label: 'Declined', value: 'declined' },
|
|
70
|
+
{ label: 'Changes requested', value: 'changes-requested' },
|
|
71
|
+
{ label: 'Expired', value: 'expired' },
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
{ name: 'decidedBy', type: 'relationship', relationTo: usersSlug },
|
|
75
|
+
{ name: 'decidedAt', type: 'date' },
|
|
76
|
+
{ name: 'decisionNotes', type: 'textarea' },
|
|
77
|
+
// Workflow state
|
|
78
|
+
{
|
|
79
|
+
name: 'notifiedApprovers',
|
|
80
|
+
type: 'json',
|
|
81
|
+
defaultValue: [],
|
|
82
|
+
admin: { description: 'IDs of users notified for this request.' },
|
|
83
|
+
},
|
|
84
|
+
{ name: 'expiresAt', type: 'date', required: true },
|
|
85
|
+
{
|
|
86
|
+
name: 'consumedTokens',
|
|
87
|
+
type: 'json',
|
|
88
|
+
defaultValue: [],
|
|
89
|
+
admin: { description: 'Action tokens already consumed; prevents replay.' },
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
indexes: [
|
|
93
|
+
{ fields: ['targetCollection', 'targetId', 'status'] },
|
|
94
|
+
{ fields: ['status', 'expiresAt'] },
|
|
95
|
+
{ fields: ['requestedBy', 'requestedAt'] },
|
|
96
|
+
],
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/approvals/collection.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAaxF,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAyC;IAEzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,sBAAsB,CAAA;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAA;IAE9C,OAAO;QACL,IAAI;QACJ,KAAK,EAAE;YACL,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;YACnC,UAAU,EAAE,aAAa;YACzB,cAAc,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,CAAC;YACpF,WAAW,EACT,qFAAqF;SACxF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;gBAChB,MAAM,KAAK,GAAI,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAA0B,IAAI,EAAE,CAAA;gBACjE,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;YAC1F,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;YACnB,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAClB,CAAE,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAA0B,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzE,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;SACpB;QACD,MAAM,EAAE;YACN,SAAS;YACT,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC1D,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YAClD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACrD;gBACE,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE;oBACL,WAAW,EACT,4FAA4F;iBAC/F;aACF;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;YAEpC,UAAU;YACV,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;YACpF;gBACE,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAC7C;YACD,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE;YAC3C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5D;gBACE,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;aACjE;YAED,WAAW;YACX;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,SAAS;gBACvB,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;oBACtC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;oBACtC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;oBACxC,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,EAAE;oBAC1D,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;iBACvC;aACF;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE;YAClE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;YACnC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAE;YAE3C,iBAAiB;YACjB;gBACE,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE;aAClE;YACD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,EAAE,WAAW,EAAE,kDAAkD,EAAE;aAC3E;SACF;QACD,OAAO,EAAE;YACP,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;YACtD,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;YACnC,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE;SAC3C;KACF,CAAA;AACH,CAAC"}
|