@relayfile/relay-helpers 0.3.37 → 0.3.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/slack.d.ts +23 -0
- package/dist/slack.d.ts.map +1 -1
- package/dist/slack.js +42 -3
- package/dist/slack.js.map +1 -1
- package/dist/slack.test.js +26 -1
- package/dist/slack.test.js.map +1 -1
- package/package.json +3 -3
package/dist/slack.d.ts
CHANGED
|
@@ -14,6 +14,29 @@ export declare function slackReceiptTs(receipt: {
|
|
|
14
14
|
created?: string;
|
|
15
15
|
id?: string;
|
|
16
16
|
} | undefined): string;
|
|
17
|
+
/**
|
|
18
|
+
* Build the stamper of per-message idempotency tokens for scheduled (clock)
|
|
19
|
+
* deliveries, so a re-run of the same tick — e.g. a duplicate sandbox spawned
|
|
20
|
+
* when a delivery is re-claimed — can't post the same message twice even if the
|
|
21
|
+
* regenerated content differs slightly (drifting counts, reordered links).
|
|
22
|
+
* Token format: `tick:<deliveryId>:<ordinal>`.
|
|
23
|
+
*
|
|
24
|
+
* The ordinal is a counter incremented in call order across post/dm/reply. Each
|
|
25
|
+
* scheduled `runner.mjs` invocation is exactly one delivery and gets its own
|
|
26
|
+
* stamper, so the counter starts at 1 every run and a re-delivery (a fresh
|
|
27
|
+
* process) reproduces the same ordinals — aligning the keys across the original
|
|
28
|
+
* and duplicate runs. A token is emitted only when a delivery id is present
|
|
29
|
+
* (`WORKFORCE_TICK_DELIVERY_ID`, which the cloud sets for scheduled ticks);
|
|
30
|
+
* otherwise it returns undefined and the cloud worker falls back to its
|
|
31
|
+
* content-hash idempotency, and the ordinal does not advance.
|
|
32
|
+
*
|
|
33
|
+
* Alignment assumes the handler issues its posts in a deterministic order across
|
|
34
|
+
* runs (sequential post → reply, as the digest agents do). Concurrent/unordered
|
|
35
|
+
* posting would not line the ordinals up.
|
|
36
|
+
*
|
|
37
|
+
* Exported (with an injectable delivery-id source) for unit testing.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createWritebackIdempotency(getDeliveryId?: () => string | undefined): () => string | undefined;
|
|
17
40
|
export interface SlackClient extends ProviderClient<'slack'> {
|
|
18
41
|
/** Post a message to a channel. */
|
|
19
42
|
post(channel: string, text: string): Promise<{
|
package/dist/slack.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAO3E;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GACxF,MAAM,CAIR;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,OAAO,CAAC;IAC1D,mCAAmC;IACnC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9E,6BAA6B;IAC7B,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,yBAAyB;IACzB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjG,0BAA0B;IAC1B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,wBAA6B,GAAG,WAAW,CAmB5E"}
|
|
1
|
+
{"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAO3E;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GACxF,MAAM,CAIR;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,GAAE,MAAM,MAAM,GAAG,SAAwD,GACrF,MAAM,MAAM,GAAG,SAAS,CAQ1B;AAWD,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,OAAO,CAAC;IAC1D,mCAAmC;IACnC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9E,6BAA6B;IAC7B,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,yBAAyB;IACzB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjG,0BAA0B;IAC1B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,GAAE,wBAA6B,GAAG,WAAW,CAmB5E"}
|
package/dist/slack.js
CHANGED
|
@@ -17,6 +17,45 @@ export function slackReceiptTs(receipt) {
|
|
|
17
17
|
const replayTs = typeof receipt.ts === 'string' ? receipt.ts : undefined;
|
|
18
18
|
return receipt.externalId ?? replayTs ?? receipt.created ?? receipt.id ?? '';
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Build the stamper of per-message idempotency tokens for scheduled (clock)
|
|
22
|
+
* deliveries, so a re-run of the same tick — e.g. a duplicate sandbox spawned
|
|
23
|
+
* when a delivery is re-claimed — can't post the same message twice even if the
|
|
24
|
+
* regenerated content differs slightly (drifting counts, reordered links).
|
|
25
|
+
* Token format: `tick:<deliveryId>:<ordinal>`.
|
|
26
|
+
*
|
|
27
|
+
* The ordinal is a counter incremented in call order across post/dm/reply. Each
|
|
28
|
+
* scheduled `runner.mjs` invocation is exactly one delivery and gets its own
|
|
29
|
+
* stamper, so the counter starts at 1 every run and a re-delivery (a fresh
|
|
30
|
+
* process) reproduces the same ordinals — aligning the keys across the original
|
|
31
|
+
* and duplicate runs. A token is emitted only when a delivery id is present
|
|
32
|
+
* (`WORKFORCE_TICK_DELIVERY_ID`, which the cloud sets for scheduled ticks);
|
|
33
|
+
* otherwise it returns undefined and the cloud worker falls back to its
|
|
34
|
+
* content-hash idempotency, and the ordinal does not advance.
|
|
35
|
+
*
|
|
36
|
+
* Alignment assumes the handler issues its posts in a deterministic order across
|
|
37
|
+
* runs (sequential post → reply, as the digest agents do). Concurrent/unordered
|
|
38
|
+
* posting would not line the ordinals up.
|
|
39
|
+
*
|
|
40
|
+
* Exported (with an injectable delivery-id source) for unit testing.
|
|
41
|
+
*/
|
|
42
|
+
export function createWritebackIdempotency(getDeliveryId = () => process.env.WORKFORCE_TICK_DELIVERY_ID) {
|
|
43
|
+
let ordinal = 0;
|
|
44
|
+
return () => {
|
|
45
|
+
const deliveryId = getDeliveryId();
|
|
46
|
+
if (!deliveryId)
|
|
47
|
+
return undefined;
|
|
48
|
+
ordinal += 1;
|
|
49
|
+
return `tick:${deliveryId}:${ordinal}`;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/** Process-wide stamper shared across every slackClient instance in this run. */
|
|
53
|
+
const nextWritebackIdempotencyKey = createWritebackIdempotency();
|
|
54
|
+
/** Attach the per-message idempotency token to a writeback body when one applies. */
|
|
55
|
+
function withIdempotency(body) {
|
|
56
|
+
const idempotencyKey = nextWritebackIdempotencyKey();
|
|
57
|
+
return idempotencyKey ? { ...body, idempotencyKey } : body;
|
|
58
|
+
}
|
|
20
59
|
/**
|
|
21
60
|
* Ergonomic Slack client over the writeback-path catalog, plus the uniform
|
|
22
61
|
* resource-keyed access (`.messages`, `.["direct-messages"]`, `.replies`, `.reactions`).
|
|
@@ -25,15 +64,15 @@ export function slackClient(opts = {}) {
|
|
|
25
64
|
const base = providerClient('slack', opts);
|
|
26
65
|
return Object.assign(base, {
|
|
27
66
|
async post(channel, text) {
|
|
28
|
-
const result = await base.messages.write({ channelId: channel }, { text });
|
|
67
|
+
const result = await base.messages.write({ channelId: channel }, withIdempotency({ text }));
|
|
29
68
|
return { channel, ts: slackReceiptTs(result.receipt) };
|
|
30
69
|
},
|
|
31
70
|
async dm(user, text) {
|
|
32
|
-
const result = await base['direct-messages'].write({ userId: user }, { text });
|
|
71
|
+
const result = await base['direct-messages'].write({ userId: user }, withIdempotency({ text }));
|
|
33
72
|
return { user, ts: slackReceiptTs(result.receipt) };
|
|
34
73
|
},
|
|
35
74
|
async reply(channel, threadTs, text) {
|
|
36
|
-
const result = await base.replies.write({ channelId: channel, messageTs: tsParam(threadTs) }, { text });
|
|
75
|
+
const result = await base.replies.write({ channelId: channel, messageTs: tsParam(threadTs) }, withIdempotency({ text }));
|
|
37
76
|
return { channel, ts: slackReceiptTs(result.receipt) };
|
|
38
77
|
},
|
|
39
78
|
async react(channel, messageTs, emoji) {
|
package/dist/slack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.js","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAE3E,8EAA8E;AAC9E,SAAS,OAAO,CAAC,EAAU;IACzB,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAyF;IAEzF,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,OAAO,OAAO,CAAC,UAAU,IAAI,QAAQ,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;AAC/E,CAAC;AAaD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAiC,EAAE;IAC7D,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACzB,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,IAAY;YACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"slack.js","sourceRoot":"","sources":["../src/slack.ts"],"names":[],"mappings":"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"}
|
package/dist/slack.test.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import assert from 'node:assert/strict';
|
|
2
2
|
import test from 'node:test';
|
|
3
|
-
import { slackReceiptTs } from './slack.js';
|
|
3
|
+
import { createWritebackIdempotency, slackReceiptTs } from './slack.js';
|
|
4
4
|
test('slackReceiptTs prefers the Slack message ts (externalId) so replies thread', () => {
|
|
5
5
|
// A chat.postMessage receipt: the worker records the message ts as externalId.
|
|
6
6
|
// Older behaviour returned `created` (a non-ts value) and broke threading.
|
|
@@ -20,4 +20,29 @@ test('slackReceiptTs returns empty when there is no usable receipt', () => {
|
|
|
20
20
|
test('slackReceiptTs ignores a non-string ts', () => {
|
|
21
21
|
assert.equal(slackReceiptTs({ ts: 12345, created: 'c' }), 'c');
|
|
22
22
|
});
|
|
23
|
+
test('writeback idempotency stamps tick:<deliveryId>:<ordinal> in call order', () => {
|
|
24
|
+
const next = createWritebackIdempotency(() => 'delivery-7');
|
|
25
|
+
assert.equal(next(), 'tick:delivery-7:1');
|
|
26
|
+
assert.equal(next(), 'tick:delivery-7:2');
|
|
27
|
+
assert.equal(next(), 'tick:delivery-7:3');
|
|
28
|
+
});
|
|
29
|
+
test('writeback idempotency aligns ordinals across a re-run (fresh stamper restarts at 1)', () => {
|
|
30
|
+
const run1 = createWritebackIdempotency(() => 'delivery-7');
|
|
31
|
+
const run2 = createWritebackIdempotency(() => 'delivery-7');
|
|
32
|
+
assert.equal(run1(), 'tick:delivery-7:1');
|
|
33
|
+
assert.equal(run1(), 'tick:delivery-7:2');
|
|
34
|
+
// A duplicate delivery reuses the same delivery id and restarts the counter,
|
|
35
|
+
// so its keys match run1's — the cloud worker dedups the second post.
|
|
36
|
+
assert.equal(run2(), 'tick:delivery-7:1');
|
|
37
|
+
assert.equal(run2(), 'tick:delivery-7:2');
|
|
38
|
+
});
|
|
39
|
+
test('writeback idempotency yields no key and does not advance without a delivery id', () => {
|
|
40
|
+
let deliveryId;
|
|
41
|
+
const next = createWritebackIdempotency(() => deliveryId);
|
|
42
|
+
assert.equal(next(), undefined);
|
|
43
|
+
assert.equal(next(), undefined);
|
|
44
|
+
// Once a delivery id appears, the ordinal starts at 1 (the no-id calls didn't advance it).
|
|
45
|
+
deliveryId = 'delivery-9';
|
|
46
|
+
assert.equal(next(), 'tick:delivery-9:1');
|
|
47
|
+
});
|
|
23
48
|
//# sourceMappingURL=slack.test.js.map
|
package/dist/slack.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.test.js","sourceRoot":"","sources":["../src/slack.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"slack.test.js","sourceRoot":"","sources":["../src/slack.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@relayfile/relay-helpers",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.39",
|
|
4
4
|
"description": "Ergonomic, catalog-backed provider clients for Relayfile integration handlers",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"prepublishOnly": "npm run build"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@relayfile/adapter-core": "^0.3.
|
|
35
|
-
"@relayfile/adapter-linear": "^0.3.
|
|
34
|
+
"@relayfile/adapter-core": "^0.3.54",
|
|
35
|
+
"@relayfile/adapter-linear": "^0.3.20"
|
|
36
36
|
}
|
|
37
37
|
}
|