hazo_notify 5.2.1 → 6.0.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/README.md +38 -6
- package/config/hazo_notify_config.ini +5 -0
- package/dist/lib/adapters/email/config.d.ts.map +1 -1
- package/dist/lib/adapters/email/config.js +7 -6
- package/dist/lib/adapters/email/config.js.map +1 -1
- package/dist/lib/adapters/email/providers/zeptomail_provider.d.ts.map +1 -1
- package/dist/lib/adapters/email/providers/zeptomail_provider.js +11 -19
- package/dist/lib/adapters/email/providers/zeptomail_provider.js.map +1 -1
- package/dist/lib/adapters/email/utils/logger.d.ts +4 -11
- package/dist/lib/adapters/email/utils/logger.d.ts.map +1 -1
- package/dist/lib/adapters/email/utils/logger.js +11 -53
- package/dist/lib/adapters/email/utils/logger.js.map +1 -1
- package/dist/lib/adapters/telegram/config.d.ts.map +1 -1
- package/dist/lib/adapters/telegram/config.js +5 -4
- package/dist/lib/adapters/telegram/config.js.map +1 -1
- package/dist/lib/adapters/telegram/transport.d.ts.map +1 -1
- package/dist/lib/adapters/telegram/transport.js +2 -1
- package/dist/lib/adapters/telegram/transport.js.map +1 -1
- package/dist/lib/config/hazo_notify_config.d.ts +45 -0
- package/dist/lib/config/hazo_notify_config.d.ts.map +1 -0
- package/dist/lib/config/hazo_notify_config.js +82 -0
- package/dist/lib/config/hazo_notify_config.js.map +1 -0
- package/dist/lib/dispatcher/batch-key.js +2 -2
- package/dist/lib/dispatcher/batch-key.js.map +1 -1
- package/dist/lib/dispatcher/index.d.ts.map +1 -1
- package/dist/lib/dispatcher/index.js +6 -3
- package/dist/lib/dispatcher/index.js.map +1 -1
- package/dist/lib/errors.d.ts +30 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +57 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/inbox/connection.d.ts.map +1 -1
- package/dist/lib/inbox/connection.js +4 -3
- package/dist/lib/inbox/connection.js.map +1 -1
- package/dist/lib/inbox/storage.d.ts.map +1 -1
- package/dist/lib/inbox/storage.js +4 -3
- package/dist/lib/inbox/storage.js.map +1 -1
- package/dist/lib/inbox/types.d.ts +3 -1
- package/dist/lib/inbox/types.d.ts.map +1 -1
- package/dist/lib/inbox/worker/flush.d.ts.map +1 -1
- package/dist/lib/inbox/worker/flush.js +56 -50
- package/dist/lib/inbox/worker/flush.js.map +1 -1
- package/dist/lib/inbox/worker/render.d.ts.map +1 -1
- package/dist/lib/inbox/worker/render.js +2 -1
- package/dist/lib/inbox/worker/render.js.map +1 -1
- package/dist/lib/jobs/digest.d.ts +77 -0
- package/dist/lib/jobs/digest.d.ts.map +1 -0
- package/dist/lib/jobs/digest.js +127 -0
- package/dist/lib/jobs/digest.js.map +1 -0
- package/dist/lib/jobs/handler.d.ts.map +1 -1
- package/dist/lib/jobs/handler.js +23 -18
- package/dist/lib/jobs/handler.js.map +1 -1
- package/dist/lib/jobs/index.d.ts +2 -0
- package/dist/lib/jobs/index.d.ts.map +1 -1
- package/dist/lib/jobs/index.js +1 -0
- package/dist/lib/jobs/index.js.map +1 -1
- package/dist/lib/lifecycle/default_templates.d.ts.map +1 -1
- package/dist/lib/lifecycle/default_templates.js +36 -0
- package/dist/lib/lifecycle/default_templates.js.map +1 -1
- package/dist/lib/lifecycle/dispatch.d.ts.map +1 -1
- package/dist/lib/lifecycle/dispatch.js +2 -1
- package/dist/lib/lifecycle/dispatch.js.map +1 -1
- package/dist/lib/lifecycle/handler.d.ts.map +1 -1
- package/dist/lib/lifecycle/handler.js +103 -97
- package/dist/lib/lifecycle/handler.js.map +1 -1
- package/dist/lib/lifecycle/scheduler.d.ts.map +1 -1
- package/dist/lib/lifecycle/scheduler.js +2 -1
- package/dist/lib/lifecycle/scheduler.js.map +1 -1
- package/dist/lib/logger.d.ts +2 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +3 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/preferences/storage.d.ts.map +1 -1
- package/dist/lib/preferences/storage.js +7 -2
- package/dist/lib/preferences/storage.js.map +1 -1
- package/dist/lib/preferences/types.d.ts +1 -1
- package/dist/lib/preferences/types.d.ts.map +1 -1
- package/dist/lib/utils.d.ts +1 -2
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +1 -5
- package/dist/lib/utils.js.map +1 -1
- package/migrations/011_digest_status.pg.sql +21 -0
- package/migrations/011_digest_status.sqlite.sql +43 -0
- package/migrations/012_preferences_digest.pg.sql +12 -0
- package/migrations/012_preferences_digest.sqlite.sql +51 -0
- package/package.json +20 -9
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* hazo_notify standard configuration loader (Wave 2).
|
|
3
|
+
*
|
|
4
|
+
* Loads [general], [log], [ui], and [inbox] sections from config/hazo_notify_config.ini
|
|
5
|
+
* via hazo_core's loadConfig with Zod validation.
|
|
6
|
+
*
|
|
7
|
+
* Adapter-specific sections ([emailer], [telegram], [template_manager], etc.) are loaded
|
|
8
|
+
* by their respective adapter config loaders and are NOT included here.
|
|
9
|
+
*
|
|
10
|
+
* @packageDocumentation
|
|
11
|
+
*/
|
|
12
|
+
import { loadConfig } from 'hazo_core';
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
const schema = z
|
|
15
|
+
.object({
|
|
16
|
+
general: z
|
|
17
|
+
.object({
|
|
18
|
+
env: z.string().optional(),
|
|
19
|
+
})
|
|
20
|
+
.optional(),
|
|
21
|
+
log: z
|
|
22
|
+
.object({
|
|
23
|
+
overrides: z.record(z.string(), z.string()).optional(),
|
|
24
|
+
})
|
|
25
|
+
.optional(),
|
|
26
|
+
ui: z
|
|
27
|
+
.object({
|
|
28
|
+
enable_ui: z
|
|
29
|
+
.union([z.boolean(), z.string()])
|
|
30
|
+
.transform((v) => v === true || v === 'true')
|
|
31
|
+
.optional(),
|
|
32
|
+
})
|
|
33
|
+
.optional(),
|
|
34
|
+
inbox: z
|
|
35
|
+
.object({
|
|
36
|
+
default_batch_window_ms: z
|
|
37
|
+
.union([z.number(), z.string()])
|
|
38
|
+
.transform((v) => (typeof v === 'string' ? parseInt(v, 10) : v))
|
|
39
|
+
.optional(),
|
|
40
|
+
read_retention_ms: z
|
|
41
|
+
.union([z.number(), z.string()])
|
|
42
|
+
.transform((v) => (typeof v === 'string' ? parseInt(v, 10) : v))
|
|
43
|
+
.optional(),
|
|
44
|
+
failed_delivery_retention_ms: z
|
|
45
|
+
.union([z.number(), z.string()])
|
|
46
|
+
.transform((v) => (typeof v === 'string' ? parseInt(v, 10) : v))
|
|
47
|
+
.optional(),
|
|
48
|
+
})
|
|
49
|
+
.optional(),
|
|
50
|
+
})
|
|
51
|
+
.nullable();
|
|
52
|
+
let _cached = null;
|
|
53
|
+
/**
|
|
54
|
+
* Get hazo_notify standard configuration (cached).
|
|
55
|
+
*
|
|
56
|
+
* Loads from config/hazo_notify_config.ini via hazo_core loadConfig.
|
|
57
|
+
* On any error, returns an empty config object instead of throwing.
|
|
58
|
+
*
|
|
59
|
+
* @returns Standard configuration with [general], [log], [ui], [inbox] sections
|
|
60
|
+
*/
|
|
61
|
+
export function getNotifyConfig() {
|
|
62
|
+
if (_cached !== null)
|
|
63
|
+
return _cached;
|
|
64
|
+
try {
|
|
65
|
+
_cached = loadConfig({
|
|
66
|
+
pkg: 'hazo_notify',
|
|
67
|
+
schema: schema,
|
|
68
|
+
}) ?? {};
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
_cached = {};
|
|
72
|
+
}
|
|
73
|
+
return _cached;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Clear the hazo_notify config cache.
|
|
77
|
+
* Primarily for testing or when the config file has changed at runtime.
|
|
78
|
+
*/
|
|
79
|
+
export function clearNotifyConfigCache() {
|
|
80
|
+
_cached = null;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=hazo_notify_config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hazo_notify_config.js","sourceRoot":"","sources":["../../../src/lib/config/hazo_notify_config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC;KACb,MAAM,CAAC;IACN,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC3B,CAAC;SACD,QAAQ,EAAE;IACb,GAAG,EAAE,CAAC;SACH,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACvD,CAAC;SACD,QAAQ,EAAE;IACb,EAAE,EAAE,CAAC;SACF,MAAM,CAAC;QACN,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aAChC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM,CAAC;aAC5C,QAAQ,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;IACb,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,uBAAuB,EAAE,CAAC;aACvB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aAC/B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/D,QAAQ,EAAE;QACb,iBAAiB,EAAE,CAAC;aACjB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aAC/B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/D,QAAQ,EAAE;QACb,4BAA4B,EAAE,CAAC;aAC5B,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aAC/B,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/D,QAAQ,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,QAAQ,EAAE,CAAC;AAId,IAAI,OAAO,GAAgC,IAAI,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,GAAG,UAAU,CAAuB;YACzC,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,MAAe;SACxB,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,GAAG,IAAI,CAAC;AACjB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { generateRequestId } from 'hazo_core';
|
|
2
2
|
/**
|
|
3
3
|
* Build a deterministic batch_key.
|
|
4
4
|
*
|
|
@@ -14,6 +14,6 @@ import { randomUUID } from "crypto";
|
|
|
14
14
|
*/
|
|
15
15
|
export function buildBatchKey(event_type, subject_id, user_id, batch_window_ms) {
|
|
16
16
|
const base = `${event_type}:${subject_id ?? "_"}:${user_id}`;
|
|
17
|
-
return batch_window_ms === 0 ? `${base}:imm:${
|
|
17
|
+
return batch_window_ms === 0 ? `${base}:imm:${generateRequestId().slice(4)}` : base;
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=batch-key.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-key.js","sourceRoot":"","sources":["../../../src/lib/dispatcher/batch-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"batch-key.js","sourceRoot":"","sources":["../../../src/lib/dispatcher/batch-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAkB,EAClB,UAAyB,EACzB,OAAe,EACf,eAAuB;IAEvB,MAAM,IAAI,GAAG,GAAG,UAAU,IAAI,UAAU,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAC7D,OAAO,eAAe,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACtF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/dispatcher/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/dispatcher/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGvE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIvE,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CA6F5E"}
|
|
@@ -3,6 +3,7 @@ import { upsertInboxRow, upsertDelivery } from '../inbox/storage.js';
|
|
|
3
3
|
import { buildBatchKey } from './batch-key.js';
|
|
4
4
|
import { batchGetPreferences } from '../preferences/storage.js';
|
|
5
5
|
import { getInboxBroadcaster } from '../inbox/broadcaster.js';
|
|
6
|
+
import { NotifyChannelNotRegisteredError, NotifyDispatchValidationError } from '../errors.js';
|
|
6
7
|
const DEFAULT_BATCH_WINDOW_MS = 5 * 60000;
|
|
7
8
|
export async function dispatch(input) {
|
|
8
9
|
const enabled = Object.entries(input.channels)
|
|
@@ -12,13 +13,13 @@ export async function dispatch(input) {
|
|
|
12
13
|
for (const id of enabled) {
|
|
13
14
|
const adapter = getChannel(id);
|
|
14
15
|
if (!adapter)
|
|
15
|
-
throw new
|
|
16
|
+
throw new NotifyChannelNotRegisteredError(id);
|
|
16
17
|
const payload = input.channel_payloads?.[id];
|
|
17
18
|
if (!payload)
|
|
18
|
-
throw new
|
|
19
|
+
throw new NotifyDispatchValidationError(id, [`channel_payloads.${id} required`]);
|
|
19
20
|
const v = adapter.validate(payload);
|
|
20
21
|
if (!v.ok)
|
|
21
|
-
throw new
|
|
22
|
+
throw new NotifyDispatchValidationError(id, v.errors ?? []);
|
|
22
23
|
}
|
|
23
24
|
if (input.recipient_user_ids.length === 0 || enabled.length === 0) {
|
|
24
25
|
return {
|
|
@@ -68,11 +69,13 @@ export async function dispatch(input) {
|
|
|
68
69
|
deliveries_skipped++;
|
|
69
70
|
continue;
|
|
70
71
|
}
|
|
72
|
+
const initial_status = mode === 'digest' ? 'digesting' : 'pending';
|
|
71
73
|
const d = await upsertDelivery({
|
|
72
74
|
inbox_id: inbox.id,
|
|
73
75
|
channel_id,
|
|
74
76
|
payload: input.channel_payloads[channel_id],
|
|
75
77
|
flush_after,
|
|
78
|
+
initial_status,
|
|
76
79
|
});
|
|
77
80
|
if (d.inserted)
|
|
78
81
|
deliveries_created++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/dispatcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/dispatcher/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { HazoError, HazoValidationError, HazoConfigError, HazoNotFoundError, HazoExternalError, HazoUnavailableError } from 'hazo_core';
|
|
2
|
+
export { HazoError };
|
|
3
|
+
export declare class NotifySendFailedError extends HazoExternalError {
|
|
4
|
+
constructor(channel: string, reason: string, context?: Record<string, unknown>);
|
|
5
|
+
}
|
|
6
|
+
export declare class NotifyTemplateNotFoundError extends HazoNotFoundError {
|
|
7
|
+
constructor(templateName: string, context?: Record<string, unknown>);
|
|
8
|
+
}
|
|
9
|
+
export declare class NotifyInvalidRecipientError extends HazoValidationError {
|
|
10
|
+
constructor(reason: string, context?: Record<string, unknown>);
|
|
11
|
+
}
|
|
12
|
+
export declare class NotifyTransportDownError extends HazoUnavailableError {
|
|
13
|
+
constructor(transport: string, reason: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class NotifyConfigError extends HazoConfigError {
|
|
16
|
+
constructor(message: string, context?: Record<string, unknown>);
|
|
17
|
+
}
|
|
18
|
+
export declare class NotifyChannelNotRegisteredError extends HazoError {
|
|
19
|
+
constructor(channelId: string);
|
|
20
|
+
}
|
|
21
|
+
export declare class NotifyDispatchValidationError extends HazoValidationError {
|
|
22
|
+
constructor(channelId: string, errors: string[]);
|
|
23
|
+
}
|
|
24
|
+
export declare class NotifySequenceNotFoundError extends HazoNotFoundError {
|
|
25
|
+
constructor(sequenceId: string);
|
|
26
|
+
}
|
|
27
|
+
export declare class NotifyStepNotFoundError extends HazoNotFoundError {
|
|
28
|
+
constructor(sequenceId: string, stepId: string);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,SAAS,EAAE,CAAC;AAErB,qBAAa,qBAAsB,SAAQ,iBAAiB;gBAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/E;AAED,qBAAa,2BAA4B,SAAQ,iBAAiB;gBACpD,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAIpE;AAED,qBAAa,2BAA4B,SAAQ,mBAAmB;gBACtD,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI9D;AAED,qBAAa,wBAAyB,SAAQ,oBAAoB;gBACpD,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI9C;AAED,qBAAa,iBAAkB,SAAQ,eAAe;gBACxC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,+BAAgC,SAAQ,SAAS;gBAChD,SAAS,EAAE,MAAM;CAI9B;AAED,qBAAa,6BAA8B,SAAQ,mBAAmB;gBACxD,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;CAIhD;AAED,qBAAa,2BAA4B,SAAQ,iBAAiB;gBACpD,UAAU,EAAE,MAAM;CAI/B;AAED,qBAAa,uBAAwB,SAAQ,iBAAiB;gBAChD,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI/C"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { HazoError, HazoValidationError, HazoConfigError, HazoNotFoundError, HazoExternalError, HazoUnavailableError, } from 'hazo_core';
|
|
2
|
+
export { HazoError };
|
|
3
|
+
export class NotifySendFailedError extends HazoExternalError {
|
|
4
|
+
constructor(channel, reason, context) {
|
|
5
|
+
super({ code: 'HAZO_NOTIFY_SEND_FAILED', pkg: 'hazo_notify', message: `Send failed on channel ${channel}: ${reason}`, context: { channel, ...context } });
|
|
6
|
+
this.name = 'NotifySendFailedError';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class NotifyTemplateNotFoundError extends HazoNotFoundError {
|
|
10
|
+
constructor(templateName, context) {
|
|
11
|
+
super({ code: 'HAZO_NOTIFY_TEMPLATE_NOT_FOUND', pkg: 'hazo_notify', message: `template not found: ${templateName}`, context: { templateName, ...context } });
|
|
12
|
+
this.name = 'NotifyTemplateNotFoundError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class NotifyInvalidRecipientError extends HazoValidationError {
|
|
16
|
+
constructor(reason, context) {
|
|
17
|
+
super({ code: 'HAZO_NOTIFY_INVALID_RECIPIENT', pkg: 'hazo_notify', message: `Invalid recipient: ${reason}`, context });
|
|
18
|
+
this.name = 'NotifyInvalidRecipientError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class NotifyTransportDownError extends HazoUnavailableError {
|
|
22
|
+
constructor(transport, reason) {
|
|
23
|
+
super({ code: 'HAZO_NOTIFY_TRANSPORT_DOWN', pkg: 'hazo_notify', message: `Transport ${transport} unavailable: ${reason}`, context: { transport } });
|
|
24
|
+
this.name = 'NotifyTransportDownError';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class NotifyConfigError extends HazoConfigError {
|
|
28
|
+
constructor(message, context) {
|
|
29
|
+
super({ code: 'HAZO_NOTIFY_CONFIG_ERROR', pkg: 'hazo_notify', message, context });
|
|
30
|
+
this.name = 'NotifyConfigError';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export class NotifyChannelNotRegisteredError extends HazoError {
|
|
34
|
+
constructor(channelId) {
|
|
35
|
+
super({ code: 'HAZO_NOTIFY_CHANNEL_NOT_REGISTERED', pkg: 'hazo_notify', message: `no adapter registered for channel "${channelId}"`, context: { channelId }, httpStatus: 400 });
|
|
36
|
+
this.name = 'NotifyChannelNotRegisteredError';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export class NotifyDispatchValidationError extends HazoValidationError {
|
|
40
|
+
constructor(channelId, errors) {
|
|
41
|
+
super({ code: 'HAZO_NOTIFY_DISPATCH_VALIDATION', pkg: 'hazo_notify', message: `Dispatch validation failed for ${channelId}: ${errors.join('; ')}`, context: { channelId, errors } });
|
|
42
|
+
this.name = 'NotifyDispatchValidationError';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class NotifySequenceNotFoundError extends HazoNotFoundError {
|
|
46
|
+
constructor(sequenceId) {
|
|
47
|
+
super({ code: 'HAZO_NOTIFY_SEQUENCE_NOT_FOUND', pkg: 'hazo_notify', message: `Lifecycle sequence not found: ${sequenceId}`, context: { sequenceId } });
|
|
48
|
+
this.name = 'NotifySequenceNotFoundError';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export class NotifyStepNotFoundError extends HazoNotFoundError {
|
|
52
|
+
constructor(sequenceId, stepId) {
|
|
53
|
+
super({ code: 'HAZO_NOTIFY_STEP_NOT_FOUND', pkg: 'hazo_notify', message: `Lifecycle step ${stepId} not found in sequence ${sequenceId}`, context: { sequenceId, stepId } });
|
|
54
|
+
this.name = 'NotifyStepNotFoundError';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/lib/inbox/connection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../src/lib/inbox/connection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAM9D,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC1E;AAUD,uEAAuE;AACvE,wBAAsB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAanF;AAED,qEAAqE;AACrE,wBAAgB,kBAAkB,IAAI,kBAAkB,CAIvD;AAED,mCAAmC;AACnC,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NotifyConfigError } from "../errors.js";
|
|
1
2
|
const CONN_KEY = "__hazo_notify_inbox_connection__";
|
|
2
3
|
const g = globalThis;
|
|
3
4
|
function looksLikeAdapter(a) {
|
|
@@ -15,10 +16,10 @@ export async function initInbox(opts) {
|
|
|
15
16
|
adapter = await opts.adapter_factory();
|
|
16
17
|
}
|
|
17
18
|
if (!adapter) {
|
|
18
|
-
throw new
|
|
19
|
+
throw new NotifyConfigError('initInbox: must provide adapter or adapter_factory');
|
|
19
20
|
}
|
|
20
21
|
if (!looksLikeAdapter(adapter)) {
|
|
21
|
-
throw new
|
|
22
|
+
throw new NotifyConfigError('initInbox: argument must be a HazoConnectAdapter (with query, claimRows, getConfig)');
|
|
22
23
|
}
|
|
23
24
|
g[CONN_KEY] = adapter;
|
|
24
25
|
return adapter;
|
|
@@ -27,7 +28,7 @@ export async function initInbox(opts) {
|
|
|
27
28
|
export function getInboxConnection() {
|
|
28
29
|
const a = g[CONN_KEY];
|
|
29
30
|
if (!a)
|
|
30
|
-
throw new
|
|
31
|
+
throw new NotifyConfigError('inbox: initInbox() must be called before storage access');
|
|
31
32
|
return a;
|
|
32
33
|
}
|
|
33
34
|
/** Test-only: reset the holder. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/lib/inbox/connection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/lib/inbox/connection.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,MAAM,QAAQ,GAAG,kCAAkC,CAAC;AACpD,MAAM,CAAC,GAAG,UAAkE,CAAC;AAS7E,SAAS,gBAAgB,CAAC,CAAU;IAClC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,GAAG,GAAG,CAA4B,CAAC;IACzC,OAAO,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU;WAC/B,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU;WACnC,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC;AAC7C,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAsB;IACpD,IAAI,OAAO,GAAmC,IAAI,CAAC,OAAO,CAAC;IAC3D,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,iBAAiB,CAAC,oDAAoD,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,iBAAiB,CAAC,qFAAqF,CAAC,CAAC;IACrH,CAAC;IACD,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;IACtB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,kBAAkB;IAChC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,iBAAiB,CAAC,yDAAyD,CAAC,CAAC;IAC/F,OAAO,CAAC,CAAC;AACX,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,sBAAsB;IACpC,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/lib/inbox/storage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA4C1F;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/lib/inbox/storage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACT,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA4C1F;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA8C1F;AAED,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAwD3G;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASpF;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CASjF;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtG;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAW1E;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQxE;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlF;AAID,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC/B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAarB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASpF;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU5E;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUpF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { generateRequestId } from 'hazo_core';
|
|
2
2
|
import { QueryBuilder, createCrudService } from "hazo_connect/server";
|
|
3
3
|
import { getInboxConnection } from "./connection.js";
|
|
4
4
|
/**
|
|
@@ -35,7 +35,7 @@ export async function upsertInboxRow(i) {
|
|
|
35
35
|
return { id: claimed[0].id, inserted: false };
|
|
36
36
|
}
|
|
37
37
|
// No open batch — insert a new row.
|
|
38
|
-
const new_inbox_id =
|
|
38
|
+
const new_inbox_id = generateRequestId().slice(4);
|
|
39
39
|
const rows = await adapter.query(new QueryBuilder()
|
|
40
40
|
.from("hazo_notify_inbox")
|
|
41
41
|
.returning("id"), "POST", {
|
|
@@ -91,7 +91,7 @@ export async function upsertDelivery(i) {
|
|
|
91
91
|
return { id: claimedInFlight[0].id, inserted: false, attempt_in_flight: true };
|
|
92
92
|
}
|
|
93
93
|
// Step 3: no existing row — insert a new delivery.
|
|
94
|
-
const new_delivery_id =
|
|
94
|
+
const new_delivery_id = generateRequestId().slice(4);
|
|
95
95
|
const rows = await adapter.query(new QueryBuilder()
|
|
96
96
|
.from("hazo_notify_channel_deliveries")
|
|
97
97
|
.returning("id"), "POST", {
|
|
@@ -99,6 +99,7 @@ export async function upsertDelivery(i) {
|
|
|
99
99
|
inbox_id: i.inbox_id,
|
|
100
100
|
channel_id: i.channel_id,
|
|
101
101
|
payload: JSON.stringify(i.payload),
|
|
102
|
+
status: i.initial_status ?? "pending",
|
|
102
103
|
flush_after: i.flush_after,
|
|
103
104
|
});
|
|
104
105
|
return { id: rows[0]?.id ?? new_delivery_id, inserted: true, attempt_in_flight: false };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/lib/inbox/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/lib/inbox/storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export interface DeliveryRow {
|
|
|
24
24
|
inbox_id: string;
|
|
25
25
|
channel_id: string;
|
|
26
26
|
payload: Record<string, unknown>;
|
|
27
|
-
status: "pending" | "sent" | "failed";
|
|
27
|
+
status: "pending" | "sent" | "failed" | "digesting";
|
|
28
28
|
flush_after: string;
|
|
29
29
|
attempt_count: number;
|
|
30
30
|
message_id: string | null;
|
|
@@ -82,6 +82,8 @@ export interface UpsertDeliveryInput {
|
|
|
82
82
|
channel_id: string;
|
|
83
83
|
payload: Record<string, unknown>;
|
|
84
84
|
flush_after: string;
|
|
85
|
+
/** Default 'pending'. Use 'digesting' for digest-mode deliveries. */
|
|
86
|
+
initial_status?: 'pending' | 'digesting';
|
|
85
87
|
}
|
|
86
88
|
export interface UpsertDeliveryResult {
|
|
87
89
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/inbox/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/inbox/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flush.d.ts","sourceRoot":"","sources":["../../../../src/lib/inbox/worker/flush.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"flush.d.ts","sourceRoot":"","sources":["../../../../src/lib/inbox/worker/flush.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE5E,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpG,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,CAAC,CA6FtB"}
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
*
|
|
9
9
|
* @packageDocumentation
|
|
10
10
|
*/
|
|
11
|
+
import { withContext, getContext } from 'hazo_core';
|
|
11
12
|
import { getChannel } from "../../channels/registry.js";
|
|
13
|
+
import { NotifyChannelNotRegisteredError } from "../../errors.js";
|
|
12
14
|
import { claimDueDeliveries, markDeliverySent, markDeliveryFailed, rescheduleDelivery, } from "../storage.js";
|
|
13
15
|
import { renderForChannel } from "./render.js";
|
|
14
16
|
const noopLogger = {
|
|
@@ -23,65 +25,69 @@ const noopLogger = {
|
|
|
23
25
|
export async function flushChannelOnce(channel_id, opts) {
|
|
24
26
|
const adapter = getChannel(channel_id);
|
|
25
27
|
if (!adapter)
|
|
26
|
-
throw new
|
|
28
|
+
throw new NotifyChannelNotRegisteredError(channel_id);
|
|
27
29
|
const logger = opts.logger ?? noopLogger;
|
|
28
30
|
const rows = await claimDueDeliveries(channel_id, opts.batchSize);
|
|
29
31
|
if (rows.length === 0)
|
|
30
32
|
return { processed: 0, sent: 0, failed: 0, retried: 0 };
|
|
31
33
|
let sent = 0, failed = 0, retried = 0;
|
|
32
34
|
const runOne = async (row) => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const correlationId = getContext()?.correlationId
|
|
36
|
+
?? `notify_delivery_${row.inbox_id}`;
|
|
37
|
+
return withContext({ correlationId }, async () => {
|
|
38
|
+
try {
|
|
39
|
+
const recipient = await opts.resolveRecipient(row.user_id, row.scope_id, channel_id);
|
|
40
|
+
if (!recipient) {
|
|
41
|
+
await markDeliveryFailed(row.delivery_id, "no_recipient");
|
|
42
|
+
failed++;
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const rendered_bodies = await renderForChannel(adapter, {
|
|
46
|
+
scope_id: row.scope_id, payload: row.payload,
|
|
47
|
+
});
|
|
48
|
+
const branding = opts.resolveScopeBranding
|
|
49
|
+
? await opts.resolveScopeBranding(row.scope_id)
|
|
50
|
+
: null;
|
|
51
|
+
const result = await adapter.send(row.payload, {
|
|
52
|
+
inbox_id: row.inbox_id,
|
|
53
|
+
scope_id: row.scope_id,
|
|
54
|
+
user_id: row.user_id,
|
|
55
|
+
attempt_count: row.attempt_count,
|
|
56
|
+
recipient,
|
|
57
|
+
rendered_bodies,
|
|
58
|
+
branding,
|
|
59
|
+
logger,
|
|
60
|
+
});
|
|
61
|
+
if (result.ok) {
|
|
62
|
+
await markDeliverySent(row.delivery_id, result.message_id ?? "");
|
|
63
|
+
sent++;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// attempt_count was already incremented at claim (spec §7.2).
|
|
67
|
+
// First attempt has attempt_count = 1, so `1 < max_attempts` means retry is available.
|
|
68
|
+
if (result.retryable && row.attempt_count < adapter.capabilities.retry.max_attempts) {
|
|
69
|
+
const delay = adapter.capabilities.retry.backoff_ms(row.attempt_count, result.retry_after_ms);
|
|
70
|
+
await rescheduleDelivery(row.delivery_id, new Date(Date.now() + delay).toISOString(), result.error ?? "transient");
|
|
71
|
+
retried++;
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
await markDeliveryFailed(row.delivery_id, result.error ?? "send_failed");
|
|
37
75
|
failed++;
|
|
38
|
-
return;
|
|
39
76
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
rendered_bodies,
|
|
53
|
-
branding,
|
|
54
|
-
logger,
|
|
55
|
-
});
|
|
56
|
-
if (result.ok) {
|
|
57
|
-
await markDeliverySent(row.delivery_id, result.message_id ?? "");
|
|
58
|
-
sent++;
|
|
59
|
-
return;
|
|
77
|
+
catch (e) {
|
|
78
|
+
// Uncaught adapter exceptions are conservatively treated as retryable up to the cap (spec §7.2).
|
|
79
|
+
const err = e instanceof Error ? e.message : String(e);
|
|
80
|
+
if (row.attempt_count < adapter.capabilities.retry.max_attempts) {
|
|
81
|
+
const delay = adapter.capabilities.retry.backoff_ms(row.attempt_count);
|
|
82
|
+
await rescheduleDelivery(row.delivery_id, new Date(Date.now() + delay).toISOString(), err);
|
|
83
|
+
retried++;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
await markDeliveryFailed(row.delivery_id, err);
|
|
87
|
+
failed++;
|
|
88
|
+
}
|
|
60
89
|
}
|
|
61
|
-
|
|
62
|
-
// First attempt has attempt_count = 1, so `1 < max_attempts` means retry is available.
|
|
63
|
-
if (result.retryable && row.attempt_count < adapter.capabilities.retry.max_attempts) {
|
|
64
|
-
const delay = adapter.capabilities.retry.backoff_ms(row.attempt_count, result.retry_after_ms);
|
|
65
|
-
await rescheduleDelivery(row.delivery_id, new Date(Date.now() + delay).toISOString(), result.error ?? "transient");
|
|
66
|
-
retried++;
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
await markDeliveryFailed(row.delivery_id, result.error ?? "send_failed");
|
|
70
|
-
failed++;
|
|
71
|
-
}
|
|
72
|
-
catch (e) {
|
|
73
|
-
// Uncaught adapter exceptions are conservatively treated as retryable up to the cap (spec §7.2).
|
|
74
|
-
const err = e instanceof Error ? e.message : String(e);
|
|
75
|
-
if (row.attempt_count < adapter.capabilities.retry.max_attempts) {
|
|
76
|
-
const delay = adapter.capabilities.retry.backoff_ms(row.attempt_count);
|
|
77
|
-
await rescheduleDelivery(row.delivery_id, new Date(Date.now() + delay).toISOString(), err);
|
|
78
|
-
retried++;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
await markDeliveryFailed(row.delivery_id, err);
|
|
82
|
-
failed++;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
90
|
+
});
|
|
85
91
|
};
|
|
86
92
|
// Bounded concurrency: spin up `concurrency` workers that drain the queue.
|
|
87
93
|
const queue = [...rows];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flush.js","sourceRoot":"","sources":["../../../../src/lib/inbox/worker/flush.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAkB/C,MAAM,UAAU,GAAkB;IAChC,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,UAAkB,EAClB,IAAkB;IAElB,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"flush.js","sourceRoot":"","sources":["../../../../src/lib/inbox/worker/flush.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../../src/lib/inbox/worker/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../../src/lib/inbox/worker/render.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAmB9D;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC1D,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA2BjC"}
|