@classytic/arc-notifications 0.5.0 → 0.6.1

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.
Files changed (2) hide show
  1. package/dist/index.mjs +13 -4
  2. package/package.json +5 -5
package/dist/index.mjs CHANGED
@@ -1288,11 +1288,20 @@ function candidateChannels(t, catalog) {
1288
1288
  * knows what it registered, so a connector that exists is offered and one that
1289
1289
  * does not is absent, with no edit in this package.
1290
1290
  *
1291
- * Falling back to the trigger's own declaration keeps a caller that supplies
1292
- * no catalog working: the degradation is "no NEW channels offered", never
1293
- * "no channels at all".
1291
+ * A genuine UNION, not `catalog ?? declared`. The fallback form silently DROPPED
1292
+ * a code-declared channel the catalog happened not to carry: `channels:
1293
+ * ['telegram']` under a catalog of `['email']` expanded to `[in-app, email]`,
1294
+ * so no telegram trigger existed to dispatch. And the loss was invisible from
1295
+ * the operator's side rather than merely quiet — `defaults.channels` is
1296
+ * `declaredChannels(t)`, which still contains telegram, so
1297
+ * `resolveEffectiveSettings` reported the channel ENABLED while nothing was
1298
+ * subscribed to deliver it. Supplying a catalog must only ever ADD reach; a
1299
+ * trigger's own declaration is the floor.
1300
+ *
1301
+ * With no catalog this still degrades to the declared set — "no NEW channels
1302
+ * offered", never "no channels at all".
1294
1303
  */
1295
- const configurable = (catalog?.list() ?? t.channels ?? []).filter((c) => c !== IN_APP_CHANNEL);
1304
+ const configurable = [...catalog?.list() ?? [], ...t.channels ?? []].filter((c) => c !== IN_APP_CHANNEL);
1296
1305
  const unique = [...new Set(configurable)];
1297
1306
  /**
1298
1307
  * A customer audience never gets `in-app`: buyers are not dashboard users, so
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@classytic/arc-notifications",
3
- "version": "0.5.0",
3
+ "version": "0.6.1",
4
4
  "description": "Notifications module for @classytic/arc — domain events → multi-channel notifications via @classytic/notifications, with DB-draftable templates, repo-backed delivery log, and a templates resource",
5
5
  "type": "module",
6
6
  "exports": {
@@ -29,10 +29,10 @@
29
29
  "prepublishOnly": "node ../../scripts/prepublish-gate.mjs"
30
30
  },
31
31
  "peerDependencies": {
32
- "@classytic/arc": ">=2.33.0",
33
- "@classytic/notifications": ">=2.4.0",
34
- "@classytic/primitives": ">=0.23.0",
35
- "@classytic/repo-core": ">=0.24.0"
32
+ "@classytic/arc": ">=2.35.0",
33
+ "@classytic/notifications": ">=2.5.0",
34
+ "@classytic/primitives": ">=0.25.0",
35
+ "@classytic/repo-core": ">=0.25.0"
36
36
  },
37
37
  "keywords": [
38
38
  "arc",