@forumone/throughline-workflows 0.3.1 → 0.5.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 +81 -0
- package/README.md +176 -10
- 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/execute-scheduled-publishes.d.ts +5 -1
- package/dist/execute-scheduled-publishes.d.ts.map +1 -1
- package/dist/execute-scheduled-publishes.js +17 -3
- package/dist/execute-scheduled-publishes.js.map +1 -1
- package/dist/failure-handler.d.ts +38 -0
- package/dist/failure-handler.d.ts.map +1 -0
- package/dist/failure-handler.js +60 -0
- package/dist/failure-handler.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/next-revalidate.d.ts +43 -0
- package/dist/next-revalidate.d.ts.map +1 -0
- package/dist/next-revalidate.js +42 -0
- package/dist/next-revalidate.js.map +1 -0
- package/dist/publish-at-scheduled-time.d.ts +23 -0
- package/dist/publish-at-scheduled-time.d.ts.map +1 -0
- package/dist/publish-at-scheduled-time.js +133 -0
- package/dist/publish-at-scheduled-time.js.map +1 -0
- package/dist/revalidate-on-publish.d.ts +10 -0
- package/dist/revalidate-on-publish.d.ts.map +1 -1
- package/dist/revalidate-on-publish.js +21 -25
- package/dist/revalidate-on-publish.js.map +1 -1
- package/dist/revalidate-tag-hooks.d.ts +80 -0
- package/dist/revalidate-tag-hooks.d.ts.map +1 -0
- package/dist/revalidate-tag-hooks.js +116 -0
- package/dist/revalidate-tag-hooks.js.map +1 -0
- package/dist/types.d.ts +50 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +10 -5
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Inngest } from 'inngest';
|
|
2
2
|
import type { Payload } from 'payload';
|
|
3
|
+
import type { CacheTags } from './cache-tags.js';
|
|
3
4
|
/**
|
|
4
5
|
* Common dependencies for workflow factories. Every factory takes an
|
|
5
6
|
* Inngest client and a Payload instance — the workflows-as-factories shape
|
|
@@ -92,15 +93,30 @@ export interface RevalidateOnPublishOptions extends BaseWorkflowOptions {
|
|
|
92
93
|
*/
|
|
93
94
|
revalidate?: RevalidateFn;
|
|
94
95
|
/**
|
|
95
|
-
* Per-collection URL builders
|
|
96
|
-
*
|
|
97
|
-
*
|
|
96
|
+
* Per-collection URL builders: where a document of each collection is
|
|
97
|
+
* served, given its slug. Required, and there are no built-in entries —
|
|
98
|
+
* only the site knows its routes. A collection with no entry has its tags
|
|
99
|
+
* dropped and no path revalidated, and the run logs a warning.
|
|
100
|
+
*
|
|
101
|
+
* ```ts
|
|
102
|
+
* urlBuilders: {
|
|
103
|
+
* pages: (slug) => (slug === 'home' ? '/' : `/${slug}`),
|
|
104
|
+
* posts: (slug) => `/news/${slug}`,
|
|
105
|
+
* }
|
|
106
|
+
* ```
|
|
98
107
|
*/
|
|
99
|
-
urlBuilders
|
|
108
|
+
urlBuilders: Record<string, (slug: string) => string>;
|
|
100
109
|
/**
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
110
|
+
* The tag scheme, shared with readers and with
|
|
111
|
+
* `createTagRevalidationHooks`. A collection with no `collectionTags` entry
|
|
112
|
+
* drops `[cacheTags.collection(<collection>)]`. Default: `defaultCacheTags`,
|
|
113
|
+
* whose collection tag is the bare slug.
|
|
114
|
+
*/
|
|
115
|
+
cacheTags?: CacheTags;
|
|
116
|
+
/**
|
|
117
|
+
* Per-collection cache tags, overriding the scheme for that collection.
|
|
118
|
+
* Multiple tags supported for collections that participate in shared
|
|
119
|
+
* listings (e.g. `programs` → `['programs', 'sitemap']`).
|
|
104
120
|
*/
|
|
105
121
|
collectionTags?: Record<string, string[]>;
|
|
106
122
|
/**
|
|
@@ -172,9 +188,36 @@ export interface ExecuteScheduledPublishesOptions extends BaseWorkflowOptions {
|
|
|
172
188
|
* URL sat behind access protection.
|
|
173
189
|
*/
|
|
174
190
|
publish: (request: ScheduledPublishRequest) => Promise<ScheduledPublishResult>;
|
|
191
|
+
/**
|
|
192
|
+
* Leave a document alone until it is this many milliseconds past its time.
|
|
193
|
+
* Default: 0.
|
|
194
|
+
*
|
|
195
|
+
* For a host that also runs `createPublishAtScheduledTimeFunction`, which
|
|
196
|
+
* publishes on time and makes this poll a backstop for an event that never
|
|
197
|
+
* arrived. Without a grace period the two can reach the same due document in
|
|
198
|
+
* the same moment and publish it twice.
|
|
199
|
+
*/
|
|
200
|
+
overdueByMs?: number;
|
|
175
201
|
/** Override the function id. Default: `execute-scheduled-publishes`. */
|
|
176
202
|
id?: string;
|
|
177
203
|
}
|
|
204
|
+
export interface PublishAtScheduledTimeOptions extends BaseWorkflowOptions {
|
|
205
|
+
/**
|
|
206
|
+
* Collections that participate in scheduled publishing. An event naming any
|
|
207
|
+
* other collection is ignored.
|
|
208
|
+
*/
|
|
209
|
+
collections: ScheduledCollectionConfig[];
|
|
210
|
+
/** How to publish one document. The same contract, and the same warning, as `ExecuteScheduledPublishesOptions.publish`. */
|
|
211
|
+
publish: (request: ScheduledPublishRequest) => Promise<ScheduledPublishResult>;
|
|
212
|
+
/**
|
|
213
|
+
* The longest single sleep, in milliseconds. A schedule further out is
|
|
214
|
+
* reached by relaying the event. Default: six days — Inngest's free plan caps
|
|
215
|
+
* a sleep at seven.
|
|
216
|
+
*/
|
|
217
|
+
maxSleepMs?: number;
|
|
218
|
+
/** Override the function id. Default: `publish-at-scheduled-time`. */
|
|
219
|
+
id?: string;
|
|
220
|
+
}
|
|
178
221
|
export interface ExpireStaleApprovalsOptions extends BaseWorkflowOptions {
|
|
179
222
|
/** Approvals collection slug. Default: 'approvals'. */
|
|
180
223
|
collectionSlug?: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqEA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA4B,EAC5B,kBAA2B;IAE3B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAA;IAE7D,OAAO;QACL,wEAAwE;QACxE,oEAAoE;QACpE,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forumone/throughline-workflows",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Composable Inngest function factories for the Throughline framework — revalidation, scheduled publishing, approval expiration, audit fan-out, healthcheck.",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Composable Inngest function factories and Payload cache-revalidation hooks for the Throughline framework — revalidation, scheduled publishing, approval expiration, audit fan-out, healthcheck.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"default": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./cache-tags": {
|
|
14
|
+
"types": "./dist/cache-tags.d.ts",
|
|
15
|
+
"default": "./dist/cache-tags.js"
|
|
12
16
|
}
|
|
13
17
|
},
|
|
14
18
|
"files": [
|
|
@@ -38,7 +42,7 @@
|
|
|
38
42
|
"peerDependencies": {
|
|
39
43
|
"inngest": "^4.0.0",
|
|
40
44
|
"next": ">=15.0.0",
|
|
41
|
-
"payload": "^3.
|
|
45
|
+
"payload": "^3.89.0"
|
|
42
46
|
},
|
|
43
47
|
"peerDependenciesMeta": {
|
|
44
48
|
"next": {
|
|
@@ -46,11 +50,12 @@
|
|
|
46
50
|
}
|
|
47
51
|
},
|
|
48
52
|
"dependencies": {
|
|
49
|
-
"@forumone/throughline-core": "0.
|
|
53
|
+
"@forumone/throughline-core": "0.10.0",
|
|
54
|
+
"@forumone/throughline-publishing": "0.11.0"
|
|
50
55
|
},
|
|
51
56
|
"devDependencies": {
|
|
52
57
|
"@types/node": "^24.13.2",
|
|
53
|
-
"eslint": "^
|
|
58
|
+
"eslint": "^10.11.0",
|
|
54
59
|
"inngest": "^4.2.0",
|
|
55
60
|
"next": "^16.2.4",
|
|
56
61
|
"payload": "^3.83.0",
|