@forumone/throughline 1.0.0-next.0 → 1.0.0-next.2
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 +46 -0
- package/README.md +70 -324
- package/bin/throughline.mjs +6 -0
- package/dist/approvals/tokens.d.ts +2 -2
- package/dist/approvals/tokens.d.ts.map +1 -1
- package/dist/approvals/tokens.js +2 -2
- package/dist/audit/query/options.d.ts +6 -4
- package/dist/audit/query/options.d.ts.map +1 -1
- package/dist/audit/query/options.js.map +1 -1
- package/dist/audit/query/plugin.d.ts.map +1 -1
- package/dist/audit/query/plugin.js +5 -1
- package/dist/audit/query/plugin.js.map +1 -1
- package/dist/audit/query/tools/get-change-history.d.ts +3 -1
- package/dist/audit/query/tools/get-change-history.d.ts.map +1 -1
- package/dist/audit/query/tools/get-change-history.js +2 -2
- package/dist/audit/query/tools/get-change-history.js.map +1 -1
- package/dist/audit/query/tools/get-recent-failures.d.ts +3 -1
- package/dist/audit/query/tools/get-recent-failures.d.ts.map +1 -1
- package/dist/audit/query/tools/get-recent-failures.js +2 -2
- package/dist/audit/query/tools/get-recent-failures.js.map +1 -1
- package/dist/audit/query/tools/query-audit.d.ts +5 -3
- package/dist/audit/query/tools/query-audit.d.ts.map +1 -1
- package/dist/audit/query/tools/query-audit.js +2 -2
- package/dist/audit/query/tools/query-audit.js.map +1 -1
- package/dist/audit/query/tools/what-changed-in-range.d.ts +3 -1
- package/dist/audit/query/tools/what-changed-in-range.d.ts.map +1 -1
- package/dist/audit/query/tools/what-changed-in-range.js +2 -2
- package/dist/audit/query/tools/what-changed-in-range.js.map +1 -1
- package/dist/audit/query/tools/who-changed-what.d.ts +3 -1
- package/dist/audit/query/tools/who-changed-what.d.ts.map +1 -1
- package/dist/audit/query/tools/who-changed-what.js +2 -2
- package/dist/audit/query/tools/who-changed-what.js.map +1 -1
- package/dist/components/manifest-source.d.ts +1 -1
- package/dist/components/manifest-source.d.ts.map +1 -1
- package/dist/components/manifest-source.js +1 -1
- package/dist/components/manifest-source.js.map +1 -1
- package/dist/components/matching/tfidf.d.ts +1 -1
- package/dist/components/matching/tfidf.d.ts.map +1 -1
- package/dist/components/matching/types.d.ts +1 -1
- package/dist/components/matching/types.d.ts.map +1 -1
- package/dist/components/options.d.ts +1 -1
- package/dist/components/options.d.ts.map +1 -1
- package/dist/components/validation/composition.d.ts +1 -1
- package/dist/components/validation/composition.d.ts.map +1 -1
- package/dist/email/client.d.ts.map +1 -1
- package/dist/email/client.js +3 -2
- package/dist/email/client.js.map +1 -1
- package/dist/email/functions/_shared.d.ts +6 -0
- package/dist/email/functions/_shared.d.ts.map +1 -1
- package/dist/email/functions/_shared.js +9 -0
- package/dist/email/functions/_shared.js.map +1 -1
- package/dist/email/functions/notify-approval-decision.d.ts.map +1 -1
- package/dist/email/functions/notify-approval-decision.js +2 -1
- package/dist/email/functions/notify-approval-decision.js.map +1 -1
- package/dist/email/functions/notify-approval-expired.d.ts.map +1 -1
- package/dist/email/functions/notify-approval-expired.js +2 -1
- package/dist/email/functions/notify-approval-expired.js.map +1 -1
- package/dist/email/functions/notify-approval-request.d.ts.map +1 -1
- package/dist/email/functions/notify-approval-request.js +2 -1
- package/dist/email/functions/notify-approval-request.js.map +1 -1
- package/dist/email/index.d.ts +1 -1
- package/dist/email/index.d.ts.map +1 -1
- package/dist/email/index.js +1 -1
- package/dist/email/index.js.map +1 -1
- package/dist/email/options.js +1 -1
- package/dist/email/options.js.map +1 -1
- package/dist/env/index.d.ts +0 -1
- package/dist/env/index.d.ts.map +1 -1
- package/dist/env/index.js +0 -1
- package/dist/env/index.js.map +1 -1
- package/dist/index.d.ts +3 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -11
- package/dist/index.js.map +1 -1
- package/dist/integrations/index.d.ts +1 -1
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +1 -1
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/integrations/webhook/config-fields.d.ts.map +1 -1
- package/dist/integrations/integrations/webhook/config-fields.js +3 -0
- package/dist/integrations/integrations/webhook/config-fields.js.map +1 -1
- package/dist/integrations/integrations/webhook/functions.d.ts.map +1 -1
- package/dist/integrations/integrations/webhook/functions.js +0 -1
- package/dist/integrations/integrations/webhook/functions.js.map +1 -1
- package/dist/integrations/integrations/webhook/index.d.ts.map +1 -1
- package/dist/integrations/integrations/webhook/index.js +0 -1
- package/dist/integrations/integrations/webhook/index.js.map +1 -1
- package/dist/integrations/jobs/healthcheck.js +1 -1
- package/dist/integrations/jobs/healthcheck.js.map +1 -1
- package/dist/integrations/plugin.js +1 -1
- package/dist/integrations/plugin.js.map +1 -1
- package/dist/integrations/registry.d.ts +1 -1
- package/dist/integrations/registry.js +1 -1
- package/dist/integrations/types.d.ts +11 -9
- package/dist/integrations/types.d.ts.map +1 -1
- package/dist/jobs/failure-handler.d.ts.map +1 -1
- package/dist/jobs/failure-handler.js +5 -2
- package/dist/jobs/failure-handler.js.map +1 -1
- package/dist/jobs/workflow-types.d.ts +5 -1
- package/dist/jobs/workflow-types.d.ts.map +1 -1
- package/dist/mcp/audit-server.js +1 -1
- package/dist/mcp/audit-server.js.map +1 -1
- package/dist/mcp/meta.d.ts +8 -8
- package/dist/migrate/cli.d.ts +9 -0
- package/dist/migrate/cli.d.ts.map +1 -0
- package/dist/migrate/cli.js +105 -0
- package/dist/migrate/cli.js.map +1 -0
- package/dist/migrate/exports.json +601 -0
- package/dist/migrate/rewrite.d.ts +28 -0
- package/dist/migrate/rewrite.d.ts.map +1 -0
- package/dist/migrate/rewrite.js +188 -0
- package/dist/migrate/rewrite.js.map +1 -0
- package/dist/observability/collection.d.ts +3 -0
- package/dist/observability/collection.d.ts.map +1 -1
- package/dist/observability/collection.js +2 -0
- package/dist/observability/collection.js.map +1 -1
- package/dist/publishing/hooks/block-status-writes.d.ts +32 -0
- package/dist/publishing/hooks/block-status-writes.d.ts.map +1 -1
- package/dist/publishing/hooks/block-status-writes.js +52 -9
- package/dist/publishing/hooks/block-status-writes.js.map +1 -1
- package/dist/publishing/index.d.ts +6 -0
- package/dist/publishing/index.d.ts.map +1 -1
- package/dist/publishing/index.js +6 -0
- package/dist/publishing/index.js.map +1 -1
- package/dist/publishing/pipeline/steps/accessibility.d.ts +4 -3
- package/dist/publishing/pipeline/steps/accessibility.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/accessibility.js +10 -4
- package/dist/publishing/pipeline/steps/accessibility.js.map +1 -1
- package/dist/publishing/pipeline/steps/approval.js +1 -1
- package/dist/publishing/pipeline/steps/approval.js.map +1 -1
- package/dist/throughline.d.ts +123 -0
- package/dist/throughline.d.ts.map +1 -0
- package/dist/throughline.js +190 -0
- package/dist/throughline.js.map +1 -0
- package/dist/utils/optionalPeer.d.ts +12 -0
- package/dist/utils/optionalPeer.d.ts.map +1 -0
- package/dist/utils/optionalPeer.js +28 -0
- package/dist/utils/optionalPeer.js.map +1 -0
- package/package.json +33 -17
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Every 0.x public path, and its 1.0 counterpart: the default target for its names. */
|
|
2
|
+
export declare const COUNTERPARTS: Readonly<Record<string, string>>;
|
|
3
|
+
/** Names 1.0 renamed, each to a name with the same value. */
|
|
4
|
+
export declare const RENAMED: Readonly<Record<string, string>>;
|
|
5
|
+
/** Names 1.0 removed or made internal, and what to do instead. */
|
|
6
|
+
export declare const REMOVED: Readonly<Record<string, string>>;
|
|
7
|
+
export interface Finding {
|
|
8
|
+
/** 1-based. */
|
|
9
|
+
line: number;
|
|
10
|
+
message: string;
|
|
11
|
+
}
|
|
12
|
+
export interface Rewrite {
|
|
13
|
+
text: string;
|
|
14
|
+
changed: boolean;
|
|
15
|
+
/** Rewritten, but worth a look: a mock or dynamic import pointed at one entry. */
|
|
16
|
+
review: Finding[];
|
|
17
|
+
/** Left as they were: what the codemod could not place. */
|
|
18
|
+
unresolved: Finding[];
|
|
19
|
+
}
|
|
20
|
+
/** The 1.0 entry for one name imported from one 0.x path, or why there is none. */
|
|
21
|
+
export declare function placeName(oldSpecifier: string, name: string): {
|
|
22
|
+
specifier: string;
|
|
23
|
+
name: string;
|
|
24
|
+
} | {
|
|
25
|
+
reason: string;
|
|
26
|
+
};
|
|
27
|
+
export declare function rewriteSource(text: string): Rewrite;
|
|
28
|
+
//# sourceMappingURL=rewrite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/migrate/rewrite.ts"],"names":[],"mappings":"AAmBA,wFAAwF;AACxF,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoCzD,CAAA;AAED,6DAA6D;AAC7D,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGpD,CAAA;AAMD,kEAAkE;AAClE,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgCpD,CAAA;AAED,MAAM,WAAW,OAAO;IACtB,eAAe;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,kFAAkF;IAClF,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,2DAA2D;IAC3D,UAAU,EAAE,OAAO,EAAE,CAAA;CACtB;AAOD,mFAAmF;AACnF,wBAAgB,SAAS,CACvB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAa1D;AAsBD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAoFnD"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import table from './exports.json' with { type: 'json' };
|
|
2
|
+
/*
|
|
3
|
+
Rewrites a source file's imports of the 0.x packages to their 1.0 homes, by
|
|
4
|
+
docs/spec/1.0-exports.md.
|
|
5
|
+
|
|
6
|
+
Each name goes to the 1.0 entry that exports it, from `exports.json`, which is
|
|
7
|
+
read from the packages themselves. Where a name is exported twice in one
|
|
8
|
+
package, the 0.x path's own 1.0 counterpart wins: `ContentField` from
|
|
9
|
+
design-contract is `/contract`'s, and from design-system-payload `/generate`'s.
|
|
10
|
+
|
|
11
|
+
What it cannot do safely it reports rather than guesses: a removed name, a
|
|
12
|
+
namespace or default import, a mock or a dynamic import whose names it cannot
|
|
13
|
+
see, a re-export of everything.
|
|
14
|
+
*/
|
|
15
|
+
const THROUGHLINE = '@forumone/throughline';
|
|
16
|
+
const DESIGN_SYSTEM = '@forumone/throughline-design-system';
|
|
17
|
+
/** Every 0.x public path, and its 1.0 counterpart: the default target for its names. */
|
|
18
|
+
export const COUNTERPARTS = {
|
|
19
|
+
'@forumone/throughline-core': THROUGHLINE,
|
|
20
|
+
'@forumone/throughline-core/audit': `${THROUGHLINE}/audit`,
|
|
21
|
+
'@forumone/throughline-core/auth': THROUGHLINE,
|
|
22
|
+
'@forumone/throughline-core/client': `${THROUGHLINE}/client`,
|
|
23
|
+
'@forumone/throughline-core/env': THROUGHLINE,
|
|
24
|
+
'@forumone/throughline-core/events': `${THROUGHLINE}/jobs`,
|
|
25
|
+
'@forumone/throughline-core/fields': `${THROUGHLINE}/fields`,
|
|
26
|
+
'@forumone/throughline-core/media': `${THROUGHLINE}/media`,
|
|
27
|
+
'@forumone/throughline-core/mcp': THROUGHLINE,
|
|
28
|
+
'@forumone/throughline-core/observability': `${THROUGHLINE}/observability`,
|
|
29
|
+
'@forumone/throughline-core/references': `${THROUGHLINE}/media`,
|
|
30
|
+
'@forumone/throughline-core/rsc': `${THROUGHLINE}/rsc`,
|
|
31
|
+
'@forumone/throughline-core/testing': `${THROUGHLINE}/testing`,
|
|
32
|
+
'@forumone/throughline-plugin-contract': THROUGHLINE,
|
|
33
|
+
'@forumone/throughline-audit': `${THROUGHLINE}/audit`,
|
|
34
|
+
'@forumone/throughline-approvals': `${THROUGHLINE}/approvals`,
|
|
35
|
+
'@forumone/throughline-publishing': `${THROUGHLINE}/publishing`,
|
|
36
|
+
'@forumone/throughline-publishing/checks': `${THROUGHLINE}/publishing`,
|
|
37
|
+
'@forumone/throughline-publishing/client': `${THROUGHLINE}/client`,
|
|
38
|
+
'@forumone/throughline-publishing/editorial': `${THROUGHLINE}/editorial`,
|
|
39
|
+
'@forumone/throughline-publishing/rsc': `${THROUGHLINE}/rsc`,
|
|
40
|
+
'@forumone/throughline-components': `${THROUGHLINE}/components`,
|
|
41
|
+
'@forumone/throughline-integrations': `${THROUGHLINE}/integrations`,
|
|
42
|
+
'@forumone/throughline-integrations/client': `${THROUGHLINE}/client`,
|
|
43
|
+
'@forumone/throughline-email': `${THROUGHLINE}/email`,
|
|
44
|
+
'@forumone/throughline-email/templates': `${THROUGHLINE}/email`,
|
|
45
|
+
'@forumone/throughline-workflows': `${THROUGHLINE}/jobs`,
|
|
46
|
+
'@forumone/throughline-workflows/cache-tags': `${THROUGHLINE}/cache-tags`,
|
|
47
|
+
'@forumone/throughline-design-contract': `${DESIGN_SYSTEM}/contract`,
|
|
48
|
+
'@forumone/throughline-design-contract/lint': `${DESIGN_SYSTEM}/lint`,
|
|
49
|
+
'@forumone/throughline-design-system-payload': `${DESIGN_SYSTEM}/generate`,
|
|
50
|
+
'@forumone/throughline-design-system-payload/generate': `${DESIGN_SYSTEM}/generate`,
|
|
51
|
+
'@forumone/throughline-design-system-payload/render': `${DESIGN_SYSTEM}/render`,
|
|
52
|
+
'@forumone/throughline-design-system-payload/client': `${DESIGN_SYSTEM}/client`,
|
|
53
|
+
'@forumone/throughline-design-system-payload/testing': `${DESIGN_SYSTEM}/testing`,
|
|
54
|
+
};
|
|
55
|
+
/** Names 1.0 renamed, each to a name with the same value. */
|
|
56
|
+
export const RENAMED = {
|
|
57
|
+
DEFAULT_AUDIT_COLLECTION_SLUG: 'DEFAULT_AUDIT_SLUG',
|
|
58
|
+
DEFAULT_APPROVALS_COLLECTION_SLUG: 'DEFAULT_APPROVALS_SLUG',
|
|
59
|
+
};
|
|
60
|
+
const FACTORY = 'removed: register the job instead, with inngestJobs(inngest, { onFailure, payload }), or let throughline() list it in suite.jobs';
|
|
61
|
+
const VIA_THROUGHLINE = 'internal: throughline() does this. See docs/spec/1.0-throughline-call.md';
|
|
62
|
+
/** Names 1.0 removed or made internal, and what to do instead. */
|
|
63
|
+
export const REMOVED = {
|
|
64
|
+
createRevalidateOnPublishFunction: `${FACTORY} (revalidateOnPublishJob, /publishing)`,
|
|
65
|
+
createExecuteScheduledPublishesFunction: `${FACTORY} (executeScheduledPublishesJob, /publishing)`,
|
|
66
|
+
createPublishAtScheduledTimeFunction: `${FACTORY} (publishAtScheduledTimeJob, /publishing)`,
|
|
67
|
+
createExpireStaleApprovalsFunction: `${FACTORY} (expireStaleApprovalsJob, /approvals)`,
|
|
68
|
+
createAuditEventEchoFunction: `${FACTORY} (auditEventEchoJob, /audit)`,
|
|
69
|
+
createHealthcheckFunction: `${FACTORY} (healthcheckJob, /integrations)`,
|
|
70
|
+
createNotifyApprovalRequestFunction: `${FACTORY} (emailJobs, /email)`,
|
|
71
|
+
createNotifyApprovalDecisionFunction: `${FACTORY} (emailJobs, /email)`,
|
|
72
|
+
createNotifyApprovalExpiredFunction: `${FACTORY} (emailJobs, /email)`,
|
|
73
|
+
createMcpToolCollector: `${VIA_THROUGHLINE}; give mcpPlugin suite.mcpTools`,
|
|
74
|
+
toPayloadMcpTool: VIA_THROUGHLINE,
|
|
75
|
+
toPayloadMcpTools: VIA_THROUGHLINE,
|
|
76
|
+
AddToolsOptions: VIA_THROUGHLINE,
|
|
77
|
+
CreateMcpToolCollectorOptions: VIA_THROUGHLINE,
|
|
78
|
+
DeclareToolsOptions: VIA_THROUGHLINE,
|
|
79
|
+
McpToolDescriptor: VIA_THROUGHLINE,
|
|
80
|
+
PayloadMcpRequest: VIA_THROUGHLINE,
|
|
81
|
+
ToPayloadMcpToolOptions: VIA_THROUGHLINE,
|
|
82
|
+
getPluginRegistry: `${VIA_THROUGHLINE}: it owns the order plugins register in`,
|
|
83
|
+
PluginRegistry: VIA_THROUGHLINE,
|
|
84
|
+
PluginRegistryEntry: VIA_THROUGHLINE,
|
|
85
|
+
resolveAdminGroup: `${VIA_THROUGHLINE}; pass admin: { group } to it`,
|
|
86
|
+
DEFAULT_ADMIN_GROUP: VIA_THROUGHLINE,
|
|
87
|
+
getEmailFunctions: `${VIA_THROUGHLINE}; serve suite.jobs from the Inngest route`,
|
|
88
|
+
getIntegrationRegistry: `${VIA_THROUGHLINE}; serve suite.jobs from the Inngest route`,
|
|
89
|
+
getIntegrationContext: `${VIA_THROUGHLINE}; serve suite.jobs from the Inngest route`,
|
|
90
|
+
APPROVALS_RESOLVER_SYMBOL: 'internal: approvalsPlugin attaches the resolver and publishing finds it',
|
|
91
|
+
auditServerFor: 'internal',
|
|
92
|
+
mcpServerRefusal: 'internal',
|
|
93
|
+
validateOptions: 'internal: each plugin validates its own options',
|
|
94
|
+
};
|
|
95
|
+
const OLD = Object.keys(COUNTERPARTS)
|
|
96
|
+
.sort((a, b) => b.length - a.length)
|
|
97
|
+
.map((s) => s.replace(/[/-]/g, (c) => `\\${c}`))
|
|
98
|
+
.join('|');
|
|
99
|
+
/** The 1.0 entry for one name imported from one 0.x path, or why there is none. */
|
|
100
|
+
export function placeName(oldSpecifier, name) {
|
|
101
|
+
const counterpart = COUNTERPARTS[oldSpecifier];
|
|
102
|
+
if (!counterpart)
|
|
103
|
+
return { reason: `${oldSpecifier} is not a 0.x Throughline path` };
|
|
104
|
+
const renamed = RENAMED[name] ?? name;
|
|
105
|
+
if (name in REMOVED)
|
|
106
|
+
return { reason: `${name}: ${REMOVED[name]}` };
|
|
107
|
+
const pkg = counterpart.startsWith(DESIGN_SYSTEM) ? DESIGN_SYSTEM : THROUGHLINE;
|
|
108
|
+
const homes = table[pkg]?.[renamed] ?? [];
|
|
109
|
+
if (homes.includes(counterpart))
|
|
110
|
+
return { specifier: counterpart, name: renamed };
|
|
111
|
+
if (homes.length === 1)
|
|
112
|
+
return { specifier: homes[0], name: renamed };
|
|
113
|
+
if (homes.length === 0) {
|
|
114
|
+
return { reason: `${name} is not exported by ${pkg} 1.0; see docs/spec/1.0-exports.md` };
|
|
115
|
+
}
|
|
116
|
+
return { reason: `${name} is exported from ${homes.join(' and ')}; choose one` };
|
|
117
|
+
}
|
|
118
|
+
function lineOf(text, index) {
|
|
119
|
+
return text.slice(0, index).split('\n').length;
|
|
120
|
+
}
|
|
121
|
+
/** `{ a, type B, c as d }` -> its specifiers, keeping `type` and `as`. */
|
|
122
|
+
function specifiersOf(body) {
|
|
123
|
+
return body
|
|
124
|
+
.split(',')
|
|
125
|
+
.map((raw) => raw.trim())
|
|
126
|
+
.filter(Boolean)
|
|
127
|
+
.map((raw) => {
|
|
128
|
+
const typeOnly = /^type\s+/.test(raw);
|
|
129
|
+
const rest = raw.replace(/^type\s+/, '');
|
|
130
|
+
const [name, alias] = rest.split(/\s+as\s+/).map((part) => part.trim());
|
|
131
|
+
return { raw, name: name, typeOnly, ...(alias ? { alias } : {}) };
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
export function rewriteSource(text) {
|
|
135
|
+
const review = [];
|
|
136
|
+
const unresolved = [];
|
|
137
|
+
let out = text;
|
|
138
|
+
// 1. Named imports and re-exports: split by where each name now lives.
|
|
139
|
+
const declaration = new RegExp(`(import|export)(\\s+type)?\\s*\\{([^}]*)\\}\\s*from\\s*(['"])(${OLD})\\4`, 'g');
|
|
140
|
+
out = out.replace(declaration, (whole, kw, typeKw, body, quote, oldSpecifier, offset) => {
|
|
141
|
+
const groups = new Map();
|
|
142
|
+
const left = [];
|
|
143
|
+
for (const spec of specifiersOf(body)) {
|
|
144
|
+
const placed = placeName(oldSpecifier, spec.name);
|
|
145
|
+
if ('reason' in placed) {
|
|
146
|
+
unresolved.push({ line: lineOf(text, offset), message: placed.reason });
|
|
147
|
+
left.push(spec.raw);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
const local = spec.alias ?? (placed.name !== spec.name ? spec.name : undefined);
|
|
151
|
+
const written = (spec.typeOnly ? 'type ' : '') +
|
|
152
|
+
placed.name +
|
|
153
|
+
(local && local !== placed.name ? ` as ${local}` : '');
|
|
154
|
+
groups.set(placed.specifier, [...(groups.get(placed.specifier) ?? []), written]);
|
|
155
|
+
}
|
|
156
|
+
const type = typeKw ? ' type' : '';
|
|
157
|
+
const lines = [...groups.entries()].map(([specifier, names]) => `${kw}${type} { ${names.join(', ')} } from ${quote}${specifier}${quote}`);
|
|
158
|
+
if (left.length > 0)
|
|
159
|
+
lines.push(`${kw}${type} { ${left.join(', ')} } from ${quote}${oldSpecifier}${quote}`);
|
|
160
|
+
return lines.length > 0 ? lines.join('\n') : whole;
|
|
161
|
+
});
|
|
162
|
+
// 2. Everything else that names a 0.x path as a whole: point it at the
|
|
163
|
+
// counterpart, and say so, because the names inside cannot be checked.
|
|
164
|
+
const whole = new RegExp(`(import\\s+\\*\\s+as\\s+\\w+\\s+from|import\\s+\\w+\\s+from|export\\s+\\*\\s+from|import\\(|vi\\.mock\\(|vi\\.doMock\\(|declare\\s+module)\\s*(['"])(${OLD})\\2`, 'g');
|
|
165
|
+
out = out.replace(whole, (match, head, quote, oldSpecifier, offset) => {
|
|
166
|
+
const counterpart = COUNTERPARTS[oldSpecifier];
|
|
167
|
+
review.push({
|
|
168
|
+
line: lineOf(out, offset),
|
|
169
|
+
message: `${head.trim()} ${oldSpecifier} now names ${counterpart}; check the names it relies on live there`,
|
|
170
|
+
});
|
|
171
|
+
return `${head} ${quote}${counterpart}${quote}`.replace(/\(\s+/, '(');
|
|
172
|
+
});
|
|
173
|
+
// 3. Admin component paths: 'pkg/client#Name', as an importMap or a config names them.
|
|
174
|
+
const componentPath = new RegExp(`(['"\`])(${OLD})#(\\w+)\\1`, 'g');
|
|
175
|
+
out = out.replace(componentPath, (match, quote, oldSpecifier, name, offset) => {
|
|
176
|
+
const placed = placeName(oldSpecifier, name);
|
|
177
|
+
if ('reason' in placed) {
|
|
178
|
+
unresolved.push({
|
|
179
|
+
line: lineOf(out, offset),
|
|
180
|
+
message: `${oldSpecifier}#${name}: ${placed.reason}`,
|
|
181
|
+
});
|
|
182
|
+
return match;
|
|
183
|
+
}
|
|
184
|
+
return `${quote}${placed.specifier}#${placed.name}${quote}`;
|
|
185
|
+
});
|
|
186
|
+
return { text: out, changed: out !== text, review, unresolved };
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=rewrite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/migrate/rewrite.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Access, CollectionConfig } from 'payload';
|
|
2
|
+
import { type PluginAdminOptions } from '../plugin-contract/admin.js';
|
|
2
3
|
export declare const DEFAULT_JOB_FAILURES_SLUG = "job-failures";
|
|
3
4
|
/** What kind of thing failed. Adding a value is a schema change and needs a migration. */
|
|
4
5
|
export declare const JOB_FAILURE_KINDS: readonly ["job", "healthcheck"];
|
|
@@ -8,6 +9,8 @@ export interface JobFailuresCollectionOptions {
|
|
|
8
9
|
slug?: string;
|
|
9
10
|
/** Read access. Default: users with the `admin` role. */
|
|
10
11
|
readAccess?: Access;
|
|
12
|
+
/** Sidebar group, as every Throughline collection takes it. Default: `Throughline`. */
|
|
13
|
+
admin?: PluginAdminOptions;
|
|
11
14
|
}
|
|
12
15
|
export declare function createJobFailuresCollection(options?: JobFailuresCollectionOptions): CollectionConfig;
|
|
13
16
|
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/observability/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/observability/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AACvD,OAAO,EAAE,KAAK,kBAAkB,EAAqB,MAAM,6BAA6B,CAAA;AAgBxF,eAAO,MAAM,yBAAyB,iBAAiB,CAAA;AAEvD,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB,iCAAkC,CAAA;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE/D,MAAM,WAAW,4BAA4B;IAC3C,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uFAAuF;IACvF,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAC3B;AAOD,wBAAgB,2BAA2B,CACzC,OAAO,GAAE,4BAAiC,GACzC,gBAAgB,CAwDlB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolveAdminGroup } from '../plugin-contract/admin.js';
|
|
1
2
|
/*
|
|
2
3
|
Where a background job's failure is recorded.
|
|
3
4
|
|
|
@@ -22,6 +23,7 @@ export function createJobFailuresCollection(options = {}) {
|
|
|
22
23
|
return {
|
|
23
24
|
slug: options.slug ?? DEFAULT_JOB_FAILURES_SLUG,
|
|
24
25
|
admin: {
|
|
26
|
+
...resolveAdminGroup(options.admin),
|
|
25
27
|
useAsTitle: 'summary',
|
|
26
28
|
defaultColumns: ['createdAt', 'kind', 'source', 'message'],
|
|
27
29
|
description: 'Background jobs that ran out of retries, and healthchecks that failed. Read-only; written by the failure handlers.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/observability/collection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/observability/collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,38 @@ import type { CollectionBeforeChangeHook } from 'payload';
|
|
|
47
47
|
* its own check it passed as an ordinary edit, and the page came down with no
|
|
48
48
|
* policy check, no `unpublished` event and nothing to drop the cached copy.
|
|
49
49
|
* It is refused while the document is live: unpublish, then trash.
|
|
50
|
+
*
|
|
51
|
+
* A create is the same question again. A document created as `published` is
|
|
52
|
+
* live the moment it exists, so it is refused like any other publish: create
|
|
53
|
+
* it as a draft, then publish it. This hook used to skip creates entirely,
|
|
54
|
+
* which left REST, and Payload's own MCP `create` tools, a way to put a page
|
|
55
|
+
* live that no check, approval or audit row ever saw.
|
|
56
|
+
*
|
|
57
|
+
* And an edit to a live document is a change to what the public sees, so it
|
|
58
|
+
* belongs in the pipeline as much as the first publish does. A non-draft write
|
|
59
|
+
* to a live document is refused unless it changes nothing; editors save a
|
|
60
|
+
* draft and publish it, which is what the admin's own buttons do. Otherwise
|
|
61
|
+
* "requires approval" held for the first publish and for no edit after it.
|
|
62
|
+
*
|
|
63
|
+
* The one exception is data a system derives from the published document and
|
|
64
|
+
* writes back to it — an audio rendition's URL, a sync's timestamp. Running
|
|
65
|
+
* the pipeline for those would gate the page on its own side effects. A write
|
|
66
|
+
* that carries `DERIVED_WRITE_CONTEXT` may change fields on a document that is
|
|
67
|
+
* live with nothing pending. It can never change `_status`, never promote a
|
|
68
|
+
* pending draft, and never create: it is a way to annotate a live page, not
|
|
69
|
+
* to publish one.
|
|
50
70
|
*/
|
|
51
71
|
export declare function createBlockStatusWritesHook(): CollectionBeforeChangeHook;
|
|
72
|
+
/**
|
|
73
|
+
* The context for a write of data derived from a live document, such as an
|
|
74
|
+
* audio rendition's URL, which is allowed to change that document without the
|
|
75
|
+
* pipeline. See `createBlockStatusWritesHook`.
|
|
76
|
+
*
|
|
77
|
+
* ```ts
|
|
78
|
+
* await payload.update({ collection: 'posts', id, data: { narration }, context: DERIVED_WRITE_CONTEXT })
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare const DERIVED_WRITE_CONTEXT: Readonly<{
|
|
82
|
+
throughlineDerivedWrite: true;
|
|
83
|
+
}>;
|
|
52
84
|
//# sourceMappingURL=block-status-writes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-status-writes.d.ts","sourceRoot":"","sources":["../../../src/publishing/hooks/block-status-writes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAkB,MAAM,SAAS,CAAA;AAGzE
|
|
1
|
+
{"version":3,"file":"block-status-writes.d.ts","sourceRoot":"","sources":["../../../src/publishing/hooks/block-status-writes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAkB,MAAM,SAAS,CAAA;AAGzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,wBAAgB,2BAA2B,IAAI,0BAA0B,CAyExE;AA6ID;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB;;EAAmD,CAAA"}
|
|
@@ -48,15 +48,40 @@ import { isDraftWrite } from './draft-writes.js';
|
|
|
48
48
|
* its own check it passed as an ordinary edit, and the page came down with no
|
|
49
49
|
* policy check, no `unpublished` event and nothing to drop the cached copy.
|
|
50
50
|
* It is refused while the document is live: unpublish, then trash.
|
|
51
|
+
*
|
|
52
|
+
* A create is the same question again. A document created as `published` is
|
|
53
|
+
* live the moment it exists, so it is refused like any other publish: create
|
|
54
|
+
* it as a draft, then publish it. This hook used to skip creates entirely,
|
|
55
|
+
* which left REST, and Payload's own MCP `create` tools, a way to put a page
|
|
56
|
+
* live that no check, approval or audit row ever saw.
|
|
57
|
+
*
|
|
58
|
+
* And an edit to a live document is a change to what the public sees, so it
|
|
59
|
+
* belongs in the pipeline as much as the first publish does. A non-draft write
|
|
60
|
+
* to a live document is refused unless it changes nothing; editors save a
|
|
61
|
+
* draft and publish it, which is what the admin's own buttons do. Otherwise
|
|
62
|
+
* "requires approval" held for the first publish and for no edit after it.
|
|
63
|
+
*
|
|
64
|
+
* The one exception is data a system derives from the published document and
|
|
65
|
+
* writes back to it — an audio rendition's URL, a sync's timestamp. Running
|
|
66
|
+
* the pipeline for those would gate the page on its own side effects. A write
|
|
67
|
+
* that carries `DERIVED_WRITE_CONTEXT` may change fields on a document that is
|
|
68
|
+
* live with nothing pending. It can never change `_status`, never promote a
|
|
69
|
+
* pending draft, and never create: it is a way to annotate a live page, not
|
|
70
|
+
* to publish one.
|
|
51
71
|
*/
|
|
52
72
|
export function createBlockStatusWritesHook() {
|
|
53
73
|
return async ({ collection, data, originalDoc, operation, context, req }) => {
|
|
54
|
-
if (operation !== 'update')
|
|
55
|
-
return data;
|
|
56
74
|
if (!carriesStatus(data))
|
|
57
75
|
return data;
|
|
58
76
|
if (isBypassed(context) || isBypassed(req?.context))
|
|
59
77
|
return data;
|
|
78
|
+
if (operation === 'create') {
|
|
79
|
+
if (data['_status'] !== 'published')
|
|
80
|
+
return data;
|
|
81
|
+
throw new APIError('Create it as a draft, then publish it. Publishing is what runs the checks a live page needs.', 400);
|
|
82
|
+
}
|
|
83
|
+
if (operation !== 'update')
|
|
84
|
+
return data;
|
|
60
85
|
const nextStatus = data['_status'];
|
|
61
86
|
const previousStatus = originalDoc?.['_status'];
|
|
62
87
|
const id = originalDoc?.id;
|
|
@@ -75,15 +100,18 @@ export function createBlockStatusWritesHook() {
|
|
|
75
100
|
return data;
|
|
76
101
|
}
|
|
77
102
|
if (nextStatus === 'published') {
|
|
78
|
-
// This
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
//
|
|
82
|
-
//
|
|
83
|
-
if (previousStatus === 'published')
|
|
84
|
-
return data;
|
|
103
|
+
// This writes to what is live. Allowed when it changes nothing — a
|
|
104
|
+
// save that restates the live content, or Payload's "Revert to
|
|
105
|
+
// published" discarding a pending draft — or when it is derived data
|
|
106
|
+
// on a document that is live with nothing pending: a latest version of
|
|
107
|
+
// `published` means there is no newer draft for it to promote.
|
|
85
108
|
if (await restatesLiveContent(req, collection?.slug, id, data))
|
|
86
109
|
return data;
|
|
110
|
+
if (previousStatus === 'published' && !restoresFromTrash(data, originalDoc)) {
|
|
111
|
+
if (isDerivedWrite(context) || isDerivedWrite(req?.context))
|
|
112
|
+
return data;
|
|
113
|
+
throw new APIError('This page is live. Save your change as a draft, then publish it, so the checks a live page needs run.', 400);
|
|
114
|
+
}
|
|
87
115
|
}
|
|
88
116
|
else {
|
|
89
117
|
// This takes the live document down. Harmless only if nothing is
|
|
@@ -234,6 +262,21 @@ function restoresFromTrash(data, originalDoc) {
|
|
|
234
262
|
const previous = originalDoc?.['deletedAt'];
|
|
235
263
|
return next == null && previous != null;
|
|
236
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* The context for a write of data derived from a live document, such as an
|
|
267
|
+
* audio rendition's URL, which is allowed to change that document without the
|
|
268
|
+
* pipeline. See `createBlockStatusWritesHook`.
|
|
269
|
+
*
|
|
270
|
+
* ```ts
|
|
271
|
+
* await payload.update({ collection: 'posts', id, data: { narration }, context: DERIVED_WRITE_CONTEXT })
|
|
272
|
+
* ```
|
|
273
|
+
*/
|
|
274
|
+
export const DERIVED_WRITE_CONTEXT = Object.freeze({ throughlineDerivedWrite: true });
|
|
275
|
+
function isDerivedWrite(context) {
|
|
276
|
+
if (!context || typeof context !== 'object')
|
|
277
|
+
return false;
|
|
278
|
+
return context['throughlineDerivedWrite'] === true;
|
|
279
|
+
}
|
|
237
280
|
function isBypassed(context) {
|
|
238
281
|
if (!context || typeof context !== 'object')
|
|
239
282
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-status-writes.js","sourceRoot":"","sources":["../../../src/publishing/hooks/block-status-writes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD
|
|
1
|
+
{"version":3,"file":"block-status-writes.js","sourceRoot":"","sources":["../../../src/publishing/hooks/block-status-writes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;QAC1E,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QACrC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;YAAE,OAAO,IAAI,CAAA;QAEhE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAK,IAAgC,CAAC,SAAS,CAAC,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAA;YAC7E,MAAM,IAAI,QAAQ,CAChB,8FAA8F,EAC9F,GAAG,CACJ,CAAA;QACH,CAAC;QACD,IAAI,SAAS,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAA;QAEvC,MAAM,UAAU,GAAI,IAAgC,CAAC,SAAS,CAAC,CAAA;QAC/D,MAAM,cAAc,GAAI,WAAmD,EAAE,CAAC,SAAS,CAAC,CAAA;QACxF,MAAM,EAAE,GAAI,WAA4C,EAAE,EAAE,CAAA;QAE5D,IAAI,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,CAAC,CAAA;YACrF,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAA;YACvE,MAAM,IAAI,QAAQ,CAChB,4EAA4E,EAC5E,GAAG,CACJ,CAAA;QACH,CAAC;QAED,oEAAoE;QACpE,EAAE;QACF,sEAAsE;QACtE,wEAAwE;QACxE,yEAAyE;QACzE,IAAI,UAAU,KAAK,WAAW,IAAI,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;YAC1E,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC/B,mEAAmE;YACnE,+DAA+D;YAC/D,qEAAqE;YACrE,uEAAuE;YACvE,+DAA+D;YAC/D,IAAI,MAAM,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;YAC3E,IAAI,cAAc,KAAK,WAAW,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC5E,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC;oBAAE,OAAO,IAAI,CAAA;gBACxE,MAAM,IAAI,QAAQ,CAChB,uGAAuG,EACvG,GAAG,CACJ,CAAA;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,iEAAiE;YACjE,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,CAAC,CAAA;YACrF,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAA;QACzE,CAAC;QAED,yEAAyE;QACzE,yEAAyE;QACzE,sEAAsE;QACtE,8DAA8D;QAC9D,IAAI,UAAU,KAAK,WAAW,IAAI,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,QAAQ,CAChB,+FAA+F,EAC/F,GAAG,CACJ,CAAA;QACH,CAAC;QAED,MAAM,IAAI,QAAQ,CAChB,qIAAqI,EACrI,GAAG,CACJ,CAAA;IACH,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,iBAAiB,CAC9B,GAA+B,EAC/B,cAAkC,EAClC,EAAW,EACX,cAAuB;IAEvB,IAAI,cAAc,KAAK,WAAW;QAAE,OAAO,WAAW,CAAA;IACtD,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,cAAc,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAEzF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;YACtC,UAAU,EAAE,cAAc;YAC1B,EAAE,EAAE,EAAqB;YACzB,KAAK,EAAE,CAAC;YACR,cAAc,EAAE,IAAI;YACpB,mEAAmE;YACnE,oEAAoE;YACpE,gEAAgE;YAChE,2BAA2B;YAC3B,KAAK,EAAE,IAAI;YACX,+DAA+D;YAC/D,GAAG;SACJ,CAAC,CAAA;QACF,MAAM,MAAM,GAAI,IAAuC,EAAE,CAAC,SAAS,CAAC,CAAA;QACpE,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAA;AAExE;;;;;;;;GAQG;AACH,KAAK,UAAU,mBAAmB,CAChC,GAA+B,EAC/B,cAAkC,EAClC,EAAW,EACX,IAAa;IAEb,IAAI,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,cAAc,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAErF,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC;YAChC,UAAU,EAAE,cAAc;YAC1B,EAAE,EAAE,EAAqB;YACzB,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,KAAK;YACZ,cAAc,EAAE,IAAI;YACpB,GAAG;SACJ,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACnD,IAAK,IAAgC,CAAC,SAAS,CAAC,KAAK,WAAW;QAAE,OAAO,KAAK,CAAA;IAE9E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACrE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAQ;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;IACzD,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAA4B,CAAA;AACrE,CAAC;AAED,iEAAiE;AACjE,SAAS,WAAW,CAAC,CAAU,EAAE,CAAU;IACzC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACb,CAAC,GAAG,CAAC,IAAI,IAAI,CAAA;IACb,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACxB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC5F,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAA;IACvD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,CAAc,CAAA;QAC5B,OAAO,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACvF,CAAC;IACD,MAAM,IAAI,GAAG,CAA4B,CAAA;IACzC,MAAM,KAAK,GAAG,CAA4B,CAAA;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACnE,KAAK,MAAM,GAAG,IAAI,IAAI;QAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;IAC7E,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAa;IAClC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,SAAS,IAAI,IAAI,CAAA;AACvE,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAa,EAAE,WAAoB;IACvD,MAAM,IAAI,GAAI,IAAmD,EAAE,CAAC,WAAW,CAAC,CAAA;IAChF,MAAM,QAAQ,GAAI,WAA0D,EAAE,CAAC,WAAW,CAAC,CAAA;IAC3F,OAAO,IAAI,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAA;AACzC,CAAC;AAED,mFAAmF;AACnF,SAAS,iBAAiB,CAAC,IAAa,EAAE,WAAoB;IAC5D,MAAM,IAAI,GAAI,IAAmD,EAAE,CAAC,WAAW,CAAC,CAAA;IAChF,MAAM,QAAQ,GAAI,WAA0D,EAAE,CAAC,WAAW,CAAC,CAAA;IAC3F,OAAO,IAAI,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,CAAA;AACzC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAA;AAErF,SAAS,cAAc,CAAC,OAAgB;IACtC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzD,OAAQ,OAAmC,CAAC,yBAAyB,CAAC,KAAK,IAAI,CAAA;AACjF,CAAC;AAED,SAAS,UAAU,CAAC,OAAgB;IAClC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzD,OAAQ,OAAmC,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAA;AAChF,CAAC"}
|
|
@@ -25,6 +25,12 @@ export type { DocumentActionArgs, PublishOutcome, PublishRequest, PublishStatusO
|
|
|
25
25
|
* notification fires every few seconds of typing unless it asks this first.
|
|
26
26
|
*/
|
|
27
27
|
export { isDraftWrite } from './hooks/draft-writes.js';
|
|
28
|
+
/**
|
|
29
|
+
* For a write of data derived from a live document — an audio rendition, a
|
|
30
|
+
* sync timestamp — which may change it without the publish pipeline. Never a
|
|
31
|
+
* status change, a create, or the promotion of a pending draft.
|
|
32
|
+
*/
|
|
33
|
+
export { DERIVED_WRITE_CONTEXT } from './hooks/block-status-writes.js';
|
|
28
34
|
export { BUILT_IN_ACCESSIBILITY_CHECKS, altTextCheck, headingHierarchyCheck, linkLabelsCheck, } from './checks/index.js';
|
|
29
35
|
export { revalidateOnPublishJob } from './jobs/revalidate-on-publish.js';
|
|
30
36
|
export { executeScheduledPublishesJob } from './jobs/execute-scheduled-publishes.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publishing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAE5B;;;;GAIG;AACH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AAErB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publishing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAE5B;;;;GAIG;AACH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAErB,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AAErB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAGtE,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA;AAC3E,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,WAAW,GACZ,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACV,gCAAgC,EAChC,6BAA6B,EAC7B,YAAY,EACZ,0BAA0B,EAC1B,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,2BAA2B,CAAA"}
|
package/dist/publishing/index.js
CHANGED
|
@@ -22,6 +22,12 @@ export { getPublishStatus, getPublishingService, publishDocument, scheduleDocume
|
|
|
22
22
|
* notification fires every few seconds of typing unless it asks this first.
|
|
23
23
|
*/
|
|
24
24
|
export { isDraftWrite } from './hooks/draft-writes.js';
|
|
25
|
+
/**
|
|
26
|
+
* For a write of data derived from a live document — an audio rendition, a
|
|
27
|
+
* sync timestamp — which may change it without the publish pipeline. Never a
|
|
28
|
+
* status change, a create, or the promotion of a pending draft.
|
|
29
|
+
*/
|
|
30
|
+
export { DERIVED_WRITE_CONTEXT } from './hooks/block-status-writes.js';
|
|
25
31
|
// Built-in accessibility checks, which were `@forumone/throughline-publishing/checks`.
|
|
26
32
|
export { BUILT_IN_ACCESSIBILITY_CHECKS, altTextCheck, headingHierarchyCheck, linkLabelsCheck, } from './checks/index.js';
|
|
27
33
|
// Revalidation and scheduled publishing, as jobs for either adapter in `/jobs`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publishing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAmB9C;;;;GAIG;AACH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAerB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,uFAAuF;AACvF,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAE1B,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/publishing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAmB9C;;;;GAIG;AACH,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAA;AAerB;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,uFAAuF;AACvF,OAAO,EACL,6BAA6B,EAC7B,YAAY,EACZ,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAE1B,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { PipelineStep } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Runs every built-in accessibility check followed by user-supplied ones.
|
|
4
|
-
* Errors block publish; warnings
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Errors block publish; warnings don't, and reach the publish result's
|
|
5
|
+
* `warnings`, one line each, named by the check that raised them. (The
|
|
6
|
+
* built-ins raise none; a site's own checks may.) They used to be dropped
|
|
7
|
+
* here, so a check that warned said nothing to anybody.
|
|
7
8
|
*
|
|
8
9
|
* Built-ins named in `disableAccessibilityChecks` are skipped, so a host
|
|
9
10
|
* whose content shape trips one can replace it rather than wait for a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../../../src/publishing/pipeline/steps/accessibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAA;AAG9D
|
|
1
|
+
{"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../../../src/publishing/pipeline/steps/accessibility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAA;AAG9D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAiC/B,CAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { BUILT_IN_ACCESSIBILITY_CHECKS } from '../../checks/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* Runs every built-in accessibility check followed by user-supplied ones.
|
|
4
|
-
* Errors block publish; warnings
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Errors block publish; warnings don't, and reach the publish result's
|
|
5
|
+
* `warnings`, one line each, named by the check that raised them. (The
|
|
6
|
+
* built-ins raise none; a site's own checks may.) They used to be dropped
|
|
7
|
+
* here, so a check that warned said nothing to anybody.
|
|
7
8
|
*
|
|
8
9
|
* Built-ins named in `disableAccessibilityChecks` are skipped, so a host
|
|
9
10
|
* whose content shape trips one can replace it rather than wait for a
|
|
@@ -23,8 +24,13 @@ export const accessibilityStep = async (ctx) => {
|
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
const errors = allIssues.filter((i) => i.severity === 'error');
|
|
27
|
+
const warnings = allIssues
|
|
28
|
+
.filter((i) => i.severity === 'warning')
|
|
29
|
+
.map((i) => `${i.rule}: ${i.message}${i.field ? ` (${i.field})` : ''}`);
|
|
30
|
+
const carried = warnings.length ? { warnings } : {};
|
|
26
31
|
if (errors.length > 0) {
|
|
27
32
|
return {
|
|
33
|
+
...carried,
|
|
28
34
|
pass: false,
|
|
29
35
|
code: 'accessibility-errors',
|
|
30
36
|
reason: `${errors.length} accessibility issue${errors.length === 1 ? '' : 's'}`,
|
|
@@ -32,6 +38,6 @@ export const accessibilityStep = async (ctx) => {
|
|
|
32
38
|
suggestion: 'Every image needs alt text. Every link needs a label. Heading levels must not skip. Fix these before publishing.',
|
|
33
39
|
};
|
|
34
40
|
}
|
|
35
|
-
return { pass: true };
|
|
41
|
+
return { pass: true, ...carried };
|
|
36
42
|
};
|
|
37
43
|
//# sourceMappingURL=accessibility.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../../../src/publishing/pipeline/steps/accessibility.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAA;AAErE
|
|
1
|
+
{"version":3,"file":"accessibility.js","sourceRoot":"","sources":["../../../../src/publishing/pipeline/steps/accessibility.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAA;AAErE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAiB,KAAK,EAAE,GAAG,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAA;IACtE,MAAM,MAAM,GAAG;QACb,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7E,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC;KAC3C,CAAA;IAED,MAAM,SAAS,GAAoB,EAAE,CAAA;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;QAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAA;IAC9D,MAAM,QAAQ,GAAG,SAAS;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,GAAG,OAAO;YACV,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,sBAAsB;YAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,uBAAuB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;YAC/E,MAAM,EAAE,MAAM;YACd,UAAU,EACR,kHAAkH;SACrH,CAAA;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAA;AACnC,CAAC,CAAA"}
|
|
@@ -42,7 +42,7 @@ export const approvalStep = async (ctx) => {
|
|
|
42
42
|
pass: false,
|
|
43
43
|
code: 'approval-required',
|
|
44
44
|
reason: 'This document requires approval and no granted approval exists for the current version',
|
|
45
|
-
suggestion: '
|
|
45
|
+
suggestion: 'Call request_approval to ask for one. Once it is granted, publish will succeed.',
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
return { pass: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../../../src/publishing/pipeline/steps/approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAGpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAGxE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAiB,KAAK,EAAE,GAAG,EAAE,EAAE;IACtD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAEzC,CAAA;IACb,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAExD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACrF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,2BAA2B;YACjC,MAAM,EAAE,mEAAmE;YAC3E,UAAU,EACR,sJAAsJ;SACzJ,CAAA;IACH,CAAC;IAED;;;;;;;;;;MAUE;IACF,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAC/C,GAAG,CAAC,UAAU,CAAC,IAAI,EACnB,GAAG,CAAC,UAAU,EACd,SAAS,CACV,CAAA;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,mBAAmB;YACzB,MAAM,EACJ,wFAAwF;YAC1F,UAAU,EACR,
|
|
1
|
+
{"version":3,"file":"approval.js","sourceRoot":"","sources":["../../../../src/publishing/pipeline/steps/approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAGpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAA;AAGxE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAiB,KAAK,EAAE,GAAG,EAAE,EAAE;IACtD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAEzC,CAAA;IACb,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAExD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,IAAI,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACrF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,2BAA2B;YACjC,MAAM,EAAE,mEAAmE;YAC3E,UAAU,EACR,sJAAsJ;SACzJ,CAAA;IACH,CAAC;IAED;;;;;;;;;;MAUE;IACF,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAC/C,GAAG,CAAC,UAAU,CAAC,IAAI,EACnB,GAAG,CAAC,UAAU,EACd,SAAS,CACV,CAAA;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,mBAAmB;YACzB,MAAM,EACJ,wFAAwF;YAC1F,UAAU,EACR,iFAAiF;SACpF,CAAA;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AACvB,CAAC,CAAA;AAED,SAAS,uBAAuB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAI,OAAmC,CAAC,yBAAyB,CAAC,CAAA;IAC7E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAE,KAA0B,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9F,CAAC"}
|