@chipmobilesdk/rn-notification 0.5.0 → 0.7.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.
Files changed (681) hide show
  1. package/CHANGELOG.md +184 -0
  2. package/README.md +108 -16
  3. package/lib/commonjs/advanced.js +139 -0
  4. package/lib/commonjs/advanced.js.map +1 -0
  5. package/lib/commonjs/channel/migrate.js +246 -0
  6. package/lib/commonjs/channel/migrate.js.map +1 -0
  7. package/lib/commonjs/channel/tone-map.js +120 -0
  8. package/lib/commonjs/channel/tone-map.js.map +1 -0
  9. package/lib/commonjs/channel/validate-tone.js +61 -0
  10. package/lib/commonjs/channel/validate-tone.js.map +1 -0
  11. package/lib/commonjs/contract/channel.js +52 -0
  12. package/lib/commonjs/contract/channel.js.map +1 -0
  13. package/lib/commonjs/contract/diagnostics.js +25 -0
  14. package/lib/commonjs/contract/diagnostics.js.map +1 -0
  15. package/lib/commonjs/contract/errors.js +126 -0
  16. package/lib/commonjs/contract/errors.js.map +1 -0
  17. package/lib/commonjs/contract/hash.js +35 -0
  18. package/lib/commonjs/contract/hash.js.map +1 -0
  19. package/lib/commonjs/contract/index.js +94 -0
  20. package/lib/commonjs/contract/index.js.map +1 -0
  21. package/lib/commonjs/contract/interaction.js +37 -0
  22. package/lib/commonjs/contract/interaction.js.map +1 -0
  23. package/lib/commonjs/contract/notification.js +42 -0
  24. package/lib/commonjs/contract/notification.js.map +1 -0
  25. package/lib/commonjs/contract/permission.js +2 -0
  26. package/lib/commonjs/contract/permission.js.map +1 -0
  27. package/lib/commonjs/contract/reconcile.js +6 -0
  28. package/lib/commonjs/contract/reconcile.js.map +1 -0
  29. package/lib/commonjs/contract/recurrence.js +53 -0
  30. package/lib/commonjs/contract/recurrence.js.map +1 -0
  31. package/lib/commonjs/diagnostics/burst.js +89 -0
  32. package/lib/commonjs/diagnostics/burst.js.map +1 -0
  33. package/lib/commonjs/diagnostics/events.js +63 -0
  34. package/lib/commonjs/diagnostics/events.js.map +1 -0
  35. package/lib/commonjs/diagnostics/redact.js +48 -0
  36. package/lib/commonjs/diagnostics/redact.js.map +1 -0
  37. package/lib/commonjs/diagnostics/snapshot.js +68 -0
  38. package/lib/commonjs/diagnostics/snapshot.js.map +1 -0
  39. package/lib/commonjs/engine/adapter.js +6 -0
  40. package/lib/commonjs/engine/adapter.js.map +1 -0
  41. package/lib/commonjs/engine/codec.js +84 -0
  42. package/lib/commonjs/engine/codec.js.map +1 -0
  43. package/lib/commonjs/engine/notify-kit/events.js +148 -0
  44. package/lib/commonjs/engine/notify-kit/events.js.map +1 -0
  45. package/lib/commonjs/engine/notify-kit/module.js +119 -0
  46. package/lib/commonjs/engine/notify-kit/module.js.map +1 -0
  47. package/lib/commonjs/engine/notify-kit/platform/android.js +159 -0
  48. package/lib/commonjs/engine/notify-kit/platform/android.js.map +1 -0
  49. package/lib/commonjs/engine/notify-kit/platform/index.js +57 -0
  50. package/lib/commonjs/engine/notify-kit/platform/index.js.map +1 -0
  51. package/lib/commonjs/engine/notify-kit/platform/ios.js +54 -0
  52. package/lib/commonjs/engine/notify-kit/platform/ios.js.map +1 -0
  53. package/lib/commonjs/engine/notify-kit/platform/types.js +6 -0
  54. package/lib/commonjs/engine/notify-kit/platform/types.js.map +1 -0
  55. package/lib/commonjs/engine/notify-kit-engine.js +260 -0
  56. package/lib/commonjs/engine/notify-kit-engine.js.map +1 -0
  57. package/lib/commonjs/index.js +367 -0
  58. package/lib/commonjs/index.js.map +1 -0
  59. package/lib/commonjs/initialize.js +187 -0
  60. package/lib/commonjs/initialize.js.map +1 -0
  61. package/lib/commonjs/interaction/index.js +120 -0
  62. package/lib/commonjs/interaction/index.js.map +1 -0
  63. package/lib/commonjs/maintenance/cycle.js +108 -0
  64. package/lib/commonjs/maintenance/cycle.js.map +1 -0
  65. package/lib/commonjs/maintenance/permission-refresh.js +39 -0
  66. package/lib/commonjs/maintenance/permission-refresh.js.map +1 -0
  67. package/lib/commonjs/maintenance/reanchor.js +99 -0
  68. package/lib/commonjs/maintenance/reanchor.js.map +1 -0
  69. package/lib/commonjs/maintenance/toggle.js +50 -0
  70. package/lib/commonjs/maintenance/toggle.js.map +1 -0
  71. package/lib/commonjs/maintenance/verify.js +70 -0
  72. package/lib/commonjs/maintenance/verify.js.map +1 -0
  73. package/lib/commonjs/maintenance/window-refresh.js +53 -0
  74. package/lib/commonjs/maintenance/window-refresh.js.map +1 -0
  75. package/lib/commonjs/notifications.js +161 -0
  76. package/lib/commonjs/notifications.js.map +1 -0
  77. package/lib/commonjs/package.json +1 -0
  78. package/lib/commonjs/permission/index.js +182 -0
  79. package/lib/commonjs/permission/index.js.map +1 -0
  80. package/lib/commonjs/permission/state.js +92 -0
  81. package/lib/commonjs/permission/state.js.map +1 -0
  82. package/lib/commonjs/push/envelope.js +141 -0
  83. package/lib/commonjs/push/envelope.js.map +1 -0
  84. package/lib/commonjs/push/fcm-provider.js +122 -0
  85. package/lib/commonjs/push/fcm-provider.js.map +1 -0
  86. package/lib/commonjs/push/gate.js +162 -0
  87. package/lib/commonjs/push/gate.js.map +1 -0
  88. package/lib/commonjs/push/index.js +47 -0
  89. package/lib/commonjs/push/index.js.map +1 -0
  90. package/lib/commonjs/push/instructions.js +101 -0
  91. package/lib/commonjs/push/instructions.js.map +1 -0
  92. package/lib/commonjs/push/provider-adapter.js +6 -0
  93. package/lib/commonjs/push/provider-adapter.js.map +1 -0
  94. package/lib/commonjs/push/signout.js +55 -0
  95. package/lib/commonjs/push/signout.js.map +1 -0
  96. package/lib/commonjs/reconcile/chunk.js +49 -0
  97. package/lib/commonjs/reconcile/chunk.js.map +1 -0
  98. package/lib/commonjs/reconcile/diff.js +105 -0
  99. package/lib/commonjs/reconcile/diff.js.map +1 -0
  100. package/lib/commonjs/reconcile/duplicates.js +60 -0
  101. package/lib/commonjs/reconcile/duplicates.js.map +1 -0
  102. package/lib/commonjs/reconcile/index.js +164 -0
  103. package/lib/commonjs/reconcile/index.js.map +1 -0
  104. package/lib/commonjs/reconcile/truncate.js +50 -0
  105. package/lib/commonjs/reconcile/truncate.js.map +1 -0
  106. package/lib/commonjs/recurrence/clock-guard.js +65 -0
  107. package/lib/commonjs/recurrence/clock-guard.js.map +1 -0
  108. package/lib/commonjs/recurrence/expand.js +254 -0
  109. package/lib/commonjs/recurrence/expand.js.map +1 -0
  110. package/lib/commonjs/recurrence/index.js +212 -0
  111. package/lib/commonjs/recurrence/index.js.map +1 -0
  112. package/lib/commonjs/repeat/expiry.js +41 -0
  113. package/lib/commonjs/repeat/expiry.js.map +1 -0
  114. package/lib/commonjs/repeat/index.js +100 -0
  115. package/lib/commonjs/repeat/index.js.map +1 -0
  116. package/lib/commonjs/repeat/marker.js +58 -0
  117. package/lib/commonjs/repeat/marker.js.map +1 -0
  118. package/lib/commonjs/repeat/place.js +83 -0
  119. package/lib/commonjs/repeat/place.js.map +1 -0
  120. package/lib/commonjs/schedule/anchor.js +243 -0
  121. package/lib/commonjs/schedule/anchor.js.map +1 -0
  122. package/lib/commonjs/schedule/index.js +142 -0
  123. package/lib/commonjs/schedule/index.js.map +1 -0
  124. package/lib/commonjs/schedule/partition.js +59 -0
  125. package/lib/commonjs/schedule/partition.js.map +1 -0
  126. package/lib/commonjs/schedule/resolve-moment.js +72 -0
  127. package/lib/commonjs/schedule/resolve-moment.js.map +1 -0
  128. package/lib/commonjs/schedule/validate-content.js +101 -0
  129. package/lib/commonjs/schedule/validate-content.js.map +1 -0
  130. package/lib/commonjs/schedule/validate-identifier.js +126 -0
  131. package/lib/commonjs/schedule/validate-identifier.js.map +1 -0
  132. package/lib/commonjs/schedule/writer.js +44 -0
  133. package/lib/commonjs/schedule/writer.js.map +1 -0
  134. package/lib/commonjs/state/caps.js +101 -0
  135. package/lib/commonjs/state/caps.js.map +1 -0
  136. package/lib/commonjs/state/dedup-ledger.js +39 -0
  137. package/lib/commonjs/state/dedup-ledger.js.map +1 -0
  138. package/lib/commonjs/state/interaction-buffer.js +98 -0
  139. package/lib/commonjs/state/interaction-buffer.js.map +1 -0
  140. package/lib/commonjs/state/mmkv-store.js +75 -0
  141. package/lib/commonjs/state/mmkv-store.js.map +1 -0
  142. package/lib/commonjs/state/permission-history.js +64 -0
  143. package/lib/commonjs/state/permission-history.js.map +1 -0
  144. package/lib/commonjs/state/record.js +269 -0
  145. package/lib/commonjs/state/record.js.map +1 -0
  146. package/lib/commonjs/state/reset.js +37 -0
  147. package/lib/commonjs/state/reset.js.map +1 -0
  148. package/lib/commonjs/state/series-ledger.js +71 -0
  149. package/lib/commonjs/state/series-ledger.js.map +1 -0
  150. package/lib/commonjs/state/store.js +39 -0
  151. package/lib/commonjs/state/store.js.map +1 -0
  152. package/lib/commonjs/testing/conformance/index.js +218 -0
  153. package/lib/commonjs/testing/conformance/index.js.map +1 -0
  154. package/lib/commonjs/testing/fake-engine.js +338 -0
  155. package/lib/commonjs/testing/fake-engine.js.map +1 -0
  156. package/lib/commonjs/testing/fake-provider.js +93 -0
  157. package/lib/commonjs/testing/fake-provider.js.map +1 -0
  158. package/lib/commonjs/testing/faults.js +59 -0
  159. package/lib/commonjs/testing/faults.js.map +1 -0
  160. package/lib/commonjs/testing/index.js +54 -0
  161. package/lib/commonjs/testing/index.js.map +1 -0
  162. package/lib/commonjs/testing/measure.js +298 -0
  163. package/lib/commonjs/testing/measure.js.map +1 -0
  164. package/lib/module/advanced.js +29 -0
  165. package/lib/module/advanced.js.map +1 -0
  166. package/lib/module/channel/migrate.js +242 -0
  167. package/lib/module/channel/migrate.js.map +1 -0
  168. package/lib/module/channel/tone-map.js +112 -0
  169. package/lib/module/channel/tone-map.js.map +1 -0
  170. package/lib/module/channel/validate-tone.js +57 -0
  171. package/lib/module/channel/validate-tone.js.map +1 -0
  172. package/lib/module/contract/channel.js +48 -0
  173. package/lib/module/contract/channel.js.map +1 -0
  174. package/lib/module/contract/diagnostics.js +21 -0
  175. package/lib/module/contract/diagnostics.js.map +1 -0
  176. package/lib/module/contract/errors.js +119 -0
  177. package/lib/module/contract/errors.js.map +1 -0
  178. package/lib/module/contract/hash.js +29 -0
  179. package/lib/module/contract/hash.js.map +1 -0
  180. package/lib/module/contract/index.js +13 -0
  181. package/lib/module/contract/index.js.map +1 -0
  182. package/lib/module/contract/interaction.js +33 -0
  183. package/lib/module/contract/interaction.js.map +1 -0
  184. package/lib/module/contract/notification.js +38 -0
  185. package/lib/module/contract/notification.js.map +1 -0
  186. package/lib/module/contract/permission.js +2 -0
  187. package/lib/module/contract/permission.js.map +1 -0
  188. package/lib/module/contract/reconcile.js +4 -0
  189. package/lib/module/contract/reconcile.js.map +1 -0
  190. package/lib/module/contract/recurrence.js +49 -0
  191. package/lib/module/contract/recurrence.js.map +1 -0
  192. package/lib/module/diagnostics/burst.js +85 -0
  193. package/lib/module/diagnostics/burst.js.map +1 -0
  194. package/lib/module/diagnostics/events.js +58 -0
  195. package/lib/module/diagnostics/events.js.map +1 -0
  196. package/lib/module/diagnostics/redact.js +44 -0
  197. package/lib/module/diagnostics/redact.js.map +1 -0
  198. package/lib/module/diagnostics/snapshot.js +64 -0
  199. package/lib/module/diagnostics/snapshot.js.map +1 -0
  200. package/lib/module/engine/adapter.js +4 -0
  201. package/lib/module/engine/adapter.js.map +1 -0
  202. package/lib/module/engine/codec.js +79 -0
  203. package/lib/module/engine/codec.js.map +1 -0
  204. package/lib/module/engine/notify-kit/events.js +139 -0
  205. package/lib/module/engine/notify-kit/events.js.map +1 -0
  206. package/lib/module/engine/notify-kit/module.js +113 -0
  207. package/lib/module/engine/notify-kit/module.js.map +1 -0
  208. package/lib/module/engine/notify-kit/platform/android.js +155 -0
  209. package/lib/module/engine/notify-kit/platform/android.js.map +1 -0
  210. package/lib/module/engine/notify-kit/platform/index.js +51 -0
  211. package/lib/module/engine/notify-kit/platform/index.js.map +1 -0
  212. package/lib/module/engine/notify-kit/platform/ios.js +49 -0
  213. package/lib/module/engine/notify-kit/platform/ios.js.map +1 -0
  214. package/lib/module/engine/notify-kit/platform/types.js +4 -0
  215. package/lib/module/engine/notify-kit/platform/types.js.map +1 -0
  216. package/lib/module/engine/notify-kit-engine.js +257 -0
  217. package/lib/module/engine/notify-kit-engine.js.map +1 -0
  218. package/lib/module/index.js +98 -0
  219. package/lib/module/index.js.map +1 -0
  220. package/lib/module/initialize.js +182 -0
  221. package/lib/module/initialize.js.map +1 -0
  222. package/lib/module/interaction/index.js +116 -0
  223. package/lib/module/interaction/index.js.map +1 -0
  224. package/lib/module/maintenance/cycle.js +102 -0
  225. package/lib/module/maintenance/cycle.js.map +1 -0
  226. package/lib/module/maintenance/permission-refresh.js +34 -0
  227. package/lib/module/maintenance/permission-refresh.js.map +1 -0
  228. package/lib/module/maintenance/reanchor.js +94 -0
  229. package/lib/module/maintenance/reanchor.js.map +1 -0
  230. package/lib/module/maintenance/toggle.js +45 -0
  231. package/lib/module/maintenance/toggle.js.map +1 -0
  232. package/lib/module/maintenance/verify.js +65 -0
  233. package/lib/module/maintenance/verify.js.map +1 -0
  234. package/lib/module/maintenance/window-refresh.js +48 -0
  235. package/lib/module/maintenance/window-refresh.js.map +1 -0
  236. package/lib/module/notifications.js +157 -0
  237. package/lib/module/notifications.js.map +1 -0
  238. package/lib/module/package.json +1 -0
  239. package/lib/module/permission/index.js +178 -0
  240. package/lib/module/permission/index.js.map +1 -0
  241. package/lib/module/permission/state.js +83 -0
  242. package/lib/module/permission/state.js.map +1 -0
  243. package/lib/module/push/envelope.js +137 -0
  244. package/lib/module/push/envelope.js.map +1 -0
  245. package/lib/module/push/fcm-provider.js +119 -0
  246. package/lib/module/push/fcm-provider.js.map +1 -0
  247. package/lib/module/push/gate.js +158 -0
  248. package/lib/module/push/gate.js.map +1 -0
  249. package/lib/module/push/index.js +16 -0
  250. package/lib/module/push/index.js.map +1 -0
  251. package/lib/module/push/instructions.js +97 -0
  252. package/lib/module/push/instructions.js.map +1 -0
  253. package/lib/module/push/provider-adapter.js +4 -0
  254. package/lib/module/push/provider-adapter.js.map +1 -0
  255. package/lib/module/push/signout.js +51 -0
  256. package/lib/module/push/signout.js.map +1 -0
  257. package/lib/module/reconcile/chunk.js +43 -0
  258. package/lib/module/reconcile/chunk.js.map +1 -0
  259. package/lib/module/reconcile/diff.js +101 -0
  260. package/lib/module/reconcile/diff.js.map +1 -0
  261. package/lib/module/reconcile/duplicates.js +56 -0
  262. package/lib/module/reconcile/duplicates.js.map +1 -0
  263. package/lib/module/reconcile/index.js +161 -0
  264. package/lib/module/reconcile/index.js.map +1 -0
  265. package/lib/module/reconcile/truncate.js +46 -0
  266. package/lib/module/reconcile/truncate.js.map +1 -0
  267. package/lib/module/recurrence/clock-guard.js +60 -0
  268. package/lib/module/recurrence/clock-guard.js.map +1 -0
  269. package/lib/module/recurrence/expand.js +248 -0
  270. package/lib/module/recurrence/expand.js.map +1 -0
  271. package/lib/module/recurrence/index.js +208 -0
  272. package/lib/module/recurrence/index.js.map +1 -0
  273. package/lib/module/repeat/expiry.js +37 -0
  274. package/lib/module/repeat/expiry.js.map +1 -0
  275. package/lib/module/repeat/index.js +67 -0
  276. package/lib/module/repeat/index.js.map +1 -0
  277. package/lib/module/repeat/marker.js +51 -0
  278. package/lib/module/repeat/marker.js.map +1 -0
  279. package/lib/module/repeat/place.js +79 -0
  280. package/lib/module/repeat/place.js.map +1 -0
  281. package/lib/module/schedule/anchor.js +234 -0
  282. package/lib/module/schedule/anchor.js.map +1 -0
  283. package/lib/module/schedule/index.js +137 -0
  284. package/lib/module/schedule/index.js.map +1 -0
  285. package/lib/module/schedule/partition.js +53 -0
  286. package/lib/module/schedule/partition.js.map +1 -0
  287. package/lib/module/schedule/resolve-moment.js +66 -0
  288. package/lib/module/schedule/resolve-moment.js.map +1 -0
  289. package/lib/module/schedule/validate-content.js +95 -0
  290. package/lib/module/schedule/validate-content.js.map +1 -0
  291. package/lib/module/schedule/validate-identifier.js +119 -0
  292. package/lib/module/schedule/validate-identifier.js.map +1 -0
  293. package/lib/module/schedule/writer.js +40 -0
  294. package/lib/module/schedule/writer.js.map +1 -0
  295. package/lib/module/state/caps.js +96 -0
  296. package/lib/module/state/caps.js.map +1 -0
  297. package/lib/module/state/dedup-ledger.js +34 -0
  298. package/lib/module/state/dedup-ledger.js.map +1 -0
  299. package/lib/module/state/interaction-buffer.js +92 -0
  300. package/lib/module/state/interaction-buffer.js.map +1 -0
  301. package/lib/module/state/mmkv-store.js +71 -0
  302. package/lib/module/state/mmkv-store.js.map +1 -0
  303. package/lib/module/state/permission-history.js +56 -0
  304. package/lib/module/state/permission-history.js.map +1 -0
  305. package/lib/module/state/record.js +264 -0
  306. package/lib/module/state/record.js.map +1 -0
  307. package/lib/module/state/reset.js +32 -0
  308. package/lib/module/state/reset.js.map +1 -0
  309. package/lib/module/state/series-ledger.js +62 -0
  310. package/lib/module/state/series-ledger.js.map +1 -0
  311. package/lib/module/state/store.js +35 -0
  312. package/lib/module/state/store.js.map +1 -0
  313. package/lib/module/testing/conformance/index.js +214 -0
  314. package/lib/module/testing/conformance/index.js.map +1 -0
  315. package/lib/module/testing/fake-engine.js +335 -0
  316. package/lib/module/testing/fake-engine.js.map +1 -0
  317. package/lib/module/testing/fake-provider.js +89 -0
  318. package/lib/module/testing/fake-provider.js.map +1 -0
  319. package/lib/module/testing/faults.js +55 -0
  320. package/lib/module/testing/faults.js.map +1 -0
  321. package/lib/module/testing/index.js +19 -0
  322. package/lib/module/testing/index.js.map +1 -0
  323. package/lib/module/testing/measure.js +294 -0
  324. package/lib/module/testing/measure.js.map +1 -0
  325. package/lib/typescript/commonjs/advanced.d.ts +36 -0
  326. package/lib/typescript/commonjs/advanced.d.ts.map +1 -0
  327. package/lib/typescript/commonjs/channel/migrate.d.ts +38 -0
  328. package/lib/typescript/commonjs/channel/migrate.d.ts.map +1 -0
  329. package/lib/typescript/commonjs/channel/tone-map.d.ts +34 -0
  330. package/lib/typescript/commonjs/channel/tone-map.d.ts.map +1 -0
  331. package/lib/typescript/commonjs/channel/validate-tone.d.ts +23 -0
  332. package/lib/typescript/commonjs/channel/validate-tone.d.ts.map +1 -0
  333. package/lib/typescript/commonjs/contract/channel.d.ts +185 -0
  334. package/lib/typescript/commonjs/contract/channel.d.ts.map +1 -0
  335. package/lib/typescript/commonjs/contract/diagnostics.d.ts +92 -0
  336. package/lib/typescript/commonjs/contract/diagnostics.d.ts.map +1 -0
  337. package/lib/typescript/commonjs/contract/errors.d.ts +91 -0
  338. package/lib/typescript/commonjs/contract/errors.d.ts.map +1 -0
  339. package/lib/typescript/commonjs/contract/hash.d.ts +14 -0
  340. package/lib/typescript/commonjs/contract/hash.d.ts.map +1 -0
  341. package/lib/typescript/commonjs/contract/index.d.ts +10 -0
  342. package/lib/typescript/commonjs/contract/index.d.ts.map +1 -0
  343. package/lib/typescript/commonjs/contract/interaction.d.ts +53 -0
  344. package/lib/typescript/commonjs/contract/interaction.d.ts.map +1 -0
  345. package/lib/typescript/commonjs/contract/notification.d.ts +110 -0
  346. package/lib/typescript/commonjs/contract/notification.d.ts.map +1 -0
  347. package/lib/typescript/commonjs/contract/permission.d.ts +49 -0
  348. package/lib/typescript/commonjs/contract/permission.d.ts.map +1 -0
  349. package/lib/typescript/commonjs/contract/reconcile.d.ts +82 -0
  350. package/lib/typescript/commonjs/contract/reconcile.d.ts.map +1 -0
  351. package/lib/typescript/commonjs/contract/recurrence.d.ts +118 -0
  352. package/lib/typescript/commonjs/contract/recurrence.d.ts.map +1 -0
  353. package/lib/typescript/commonjs/diagnostics/burst.d.ts +39 -0
  354. package/lib/typescript/commonjs/diagnostics/burst.d.ts.map +1 -0
  355. package/lib/typescript/commonjs/diagnostics/events.d.ts +28 -0
  356. package/lib/typescript/commonjs/diagnostics/events.d.ts.map +1 -0
  357. package/lib/typescript/commonjs/diagnostics/redact.d.ts +22 -0
  358. package/lib/typescript/commonjs/diagnostics/redact.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/diagnostics/snapshot.d.ts +40 -0
  360. package/lib/typescript/commonjs/diagnostics/snapshot.d.ts.map +1 -0
  361. package/lib/typescript/commonjs/engine/adapter.d.ts +172 -0
  362. package/lib/typescript/commonjs/engine/adapter.d.ts.map +1 -0
  363. package/lib/typescript/commonjs/engine/codec.d.ts +20 -0
  364. package/lib/typescript/commonjs/engine/codec.d.ts.map +1 -0
  365. package/lib/typescript/commonjs/engine/notify-kit/events.d.ts +37 -0
  366. package/lib/typescript/commonjs/engine/notify-kit/events.d.ts.map +1 -0
  367. package/lib/typescript/commonjs/engine/notify-kit/module.d.ts +103 -0
  368. package/lib/typescript/commonjs/engine/notify-kit/module.d.ts.map +1 -0
  369. package/lib/typescript/commonjs/engine/notify-kit/platform/android.d.ts +3 -0
  370. package/lib/typescript/commonjs/engine/notify-kit/platform/android.d.ts.map +1 -0
  371. package/lib/typescript/commonjs/engine/notify-kit/platform/index.d.ts +12 -0
  372. package/lib/typescript/commonjs/engine/notify-kit/platform/index.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/engine/notify-kit/platform/ios.d.ts +3 -0
  374. package/lib/typescript/commonjs/engine/notify-kit/platform/ios.d.ts.map +1 -0
  375. package/lib/typescript/commonjs/engine/notify-kit/platform/types.d.ts +33 -0
  376. package/lib/typescript/commonjs/engine/notify-kit/platform/types.d.ts.map +1 -0
  377. package/lib/typescript/commonjs/engine/notify-kit-engine.d.ts +25 -0
  378. package/lib/typescript/commonjs/engine/notify-kit-engine.d.ts.map +1 -0
  379. package/lib/typescript/commonjs/index.d.ts +106 -0
  380. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  381. package/lib/typescript/commonjs/initialize.d.ts +74 -0
  382. package/lib/typescript/commonjs/initialize.d.ts.map +1 -0
  383. package/lib/typescript/commonjs/interaction/index.d.ts +53 -0
  384. package/lib/typescript/commonjs/interaction/index.d.ts.map +1 -0
  385. package/lib/typescript/commonjs/maintenance/cycle.d.ts +77 -0
  386. package/lib/typescript/commonjs/maintenance/cycle.d.ts.map +1 -0
  387. package/lib/typescript/commonjs/maintenance/permission-refresh.d.ts +19 -0
  388. package/lib/typescript/commonjs/maintenance/permission-refresh.d.ts.map +1 -0
  389. package/lib/typescript/commonjs/maintenance/reanchor.d.ts +26 -0
  390. package/lib/typescript/commonjs/maintenance/reanchor.d.ts.map +1 -0
  391. package/lib/typescript/commonjs/maintenance/toggle.d.ts +35 -0
  392. package/lib/typescript/commonjs/maintenance/toggle.d.ts.map +1 -0
  393. package/lib/typescript/commonjs/maintenance/verify.d.ts +32 -0
  394. package/lib/typescript/commonjs/maintenance/verify.d.ts.map +1 -0
  395. package/lib/typescript/commonjs/maintenance/window-refresh.d.ts +29 -0
  396. package/lib/typescript/commonjs/maintenance/window-refresh.d.ts.map +1 -0
  397. package/lib/typescript/commonjs/notifications.d.ts +78 -0
  398. package/lib/typescript/commonjs/notifications.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/package.json +1 -0
  400. package/lib/typescript/commonjs/permission/index.d.ts +57 -0
  401. package/lib/typescript/commonjs/permission/index.d.ts.map +1 -0
  402. package/lib/typescript/commonjs/permission/state.d.ts +41 -0
  403. package/lib/typescript/commonjs/permission/state.d.ts.map +1 -0
  404. package/lib/typescript/commonjs/push/envelope.d.ts +33 -0
  405. package/lib/typescript/commonjs/push/envelope.d.ts.map +1 -0
  406. package/lib/typescript/commonjs/push/fcm-provider.d.ts +43 -0
  407. package/lib/typescript/commonjs/push/fcm-provider.d.ts.map +1 -0
  408. package/lib/typescript/commonjs/push/gate.d.ts +57 -0
  409. package/lib/typescript/commonjs/push/gate.d.ts.map +1 -0
  410. package/lib/typescript/commonjs/push/index.d.ts +19 -0
  411. package/lib/typescript/commonjs/push/index.d.ts.map +1 -0
  412. package/lib/typescript/commonjs/push/instructions.d.ts +45 -0
  413. package/lib/typescript/commonjs/push/instructions.d.ts.map +1 -0
  414. package/lib/typescript/commonjs/push/provider-adapter.d.ts +50 -0
  415. package/lib/typescript/commonjs/push/provider-adapter.d.ts.map +1 -0
  416. package/lib/typescript/commonjs/push/signout.d.ts +33 -0
  417. package/lib/typescript/commonjs/push/signout.d.ts.map +1 -0
  418. package/lib/typescript/commonjs/reconcile/chunk.d.ts +24 -0
  419. package/lib/typescript/commonjs/reconcile/chunk.d.ts.map +1 -0
  420. package/lib/typescript/commonjs/reconcile/diff.d.ts +54 -0
  421. package/lib/typescript/commonjs/reconcile/diff.d.ts.map +1 -0
  422. package/lib/typescript/commonjs/reconcile/duplicates.d.ts +32 -0
  423. package/lib/typescript/commonjs/reconcile/duplicates.d.ts.map +1 -0
  424. package/lib/typescript/commonjs/reconcile/index.d.ts +35 -0
  425. package/lib/typescript/commonjs/reconcile/index.d.ts.map +1 -0
  426. package/lib/typescript/commonjs/reconcile/truncate.d.ts +26 -0
  427. package/lib/typescript/commonjs/reconcile/truncate.d.ts.map +1 -0
  428. package/lib/typescript/commonjs/recurrence/clock-guard.d.ts +37 -0
  429. package/lib/typescript/commonjs/recurrence/clock-guard.d.ts.map +1 -0
  430. package/lib/typescript/commonjs/recurrence/expand.d.ts +75 -0
  431. package/lib/typescript/commonjs/recurrence/expand.d.ts.map +1 -0
  432. package/lib/typescript/commonjs/recurrence/index.d.ts +40 -0
  433. package/lib/typescript/commonjs/recurrence/index.d.ts.map +1 -0
  434. package/lib/typescript/commonjs/repeat/expiry.d.ts +23 -0
  435. package/lib/typescript/commonjs/repeat/expiry.d.ts.map +1 -0
  436. package/lib/typescript/commonjs/repeat/index.d.ts +49 -0
  437. package/lib/typescript/commonjs/repeat/index.d.ts.map +1 -0
  438. package/lib/typescript/commonjs/repeat/marker.d.ts +36 -0
  439. package/lib/typescript/commonjs/repeat/marker.d.ts.map +1 -0
  440. package/lib/typescript/commonjs/repeat/place.d.ts +39 -0
  441. package/lib/typescript/commonjs/repeat/place.d.ts.map +1 -0
  442. package/lib/typescript/commonjs/schedule/anchor.d.ts +118 -0
  443. package/lib/typescript/commonjs/schedule/anchor.d.ts.map +1 -0
  444. package/lib/typescript/commonjs/schedule/index.d.ts +40 -0
  445. package/lib/typescript/commonjs/schedule/index.d.ts.map +1 -0
  446. package/lib/typescript/commonjs/schedule/partition.d.ts +29 -0
  447. package/lib/typescript/commonjs/schedule/partition.d.ts.map +1 -0
  448. package/lib/typescript/commonjs/schedule/resolve-moment.d.ts +35 -0
  449. package/lib/typescript/commonjs/schedule/resolve-moment.d.ts.map +1 -0
  450. package/lib/typescript/commonjs/schedule/validate-content.d.ts +42 -0
  451. package/lib/typescript/commonjs/schedule/validate-content.d.ts.map +1 -0
  452. package/lib/typescript/commonjs/schedule/validate-identifier.d.ts +30 -0
  453. package/lib/typescript/commonjs/schedule/validate-identifier.d.ts.map +1 -0
  454. package/lib/typescript/commonjs/schedule/writer.d.ts +36 -0
  455. package/lib/typescript/commonjs/schedule/writer.d.ts.map +1 -0
  456. package/lib/typescript/commonjs/state/caps.d.ts +51 -0
  457. package/lib/typescript/commonjs/state/caps.d.ts.map +1 -0
  458. package/lib/typescript/commonjs/state/dedup-ledger.d.ts +21 -0
  459. package/lib/typescript/commonjs/state/dedup-ledger.d.ts.map +1 -0
  460. package/lib/typescript/commonjs/state/interaction-buffer.d.ts +30 -0
  461. package/lib/typescript/commonjs/state/interaction-buffer.d.ts.map +1 -0
  462. package/lib/typescript/commonjs/state/mmkv-store.d.ts +33 -0
  463. package/lib/typescript/commonjs/state/mmkv-store.d.ts.map +1 -0
  464. package/lib/typescript/commonjs/state/permission-history.d.ts +20 -0
  465. package/lib/typescript/commonjs/state/permission-history.d.ts.map +1 -0
  466. package/lib/typescript/commonjs/state/record.d.ts +134 -0
  467. package/lib/typescript/commonjs/state/record.d.ts.map +1 -0
  468. package/lib/typescript/commonjs/state/reset.d.ts +22 -0
  469. package/lib/typescript/commonjs/state/reset.d.ts.map +1 -0
  470. package/lib/typescript/commonjs/state/series-ledger.d.ts +47 -0
  471. package/lib/typescript/commonjs/state/series-ledger.d.ts.map +1 -0
  472. package/lib/typescript/commonjs/state/store.d.ts +20 -0
  473. package/lib/typescript/commonjs/state/store.d.ts.map +1 -0
  474. package/lib/typescript/commonjs/testing/conformance/index.d.ts +32 -0
  475. package/lib/typescript/commonjs/testing/conformance/index.d.ts.map +1 -0
  476. package/lib/typescript/commonjs/testing/fake-engine.d.ts +91 -0
  477. package/lib/typescript/commonjs/testing/fake-engine.d.ts.map +1 -0
  478. package/lib/typescript/commonjs/testing/fake-provider.d.ts +35 -0
  479. package/lib/typescript/commonjs/testing/fake-provider.d.ts.map +1 -0
  480. package/lib/typescript/commonjs/testing/faults.d.ts +38 -0
  481. package/lib/typescript/commonjs/testing/faults.d.ts.map +1 -0
  482. package/lib/typescript/commonjs/testing/index.d.ts +22 -0
  483. package/lib/typescript/commonjs/testing/index.d.ts.map +1 -0
  484. package/lib/typescript/commonjs/testing/measure.d.ts +59 -0
  485. package/lib/typescript/commonjs/testing/measure.d.ts.map +1 -0
  486. package/lib/typescript/module/advanced.d.ts +36 -0
  487. package/lib/typescript/module/advanced.d.ts.map +1 -0
  488. package/lib/typescript/module/channel/migrate.d.ts +38 -0
  489. package/lib/typescript/module/channel/migrate.d.ts.map +1 -0
  490. package/lib/typescript/module/channel/tone-map.d.ts +34 -0
  491. package/lib/typescript/module/channel/tone-map.d.ts.map +1 -0
  492. package/lib/typescript/module/channel/validate-tone.d.ts +23 -0
  493. package/lib/typescript/module/channel/validate-tone.d.ts.map +1 -0
  494. package/lib/typescript/module/contract/channel.d.ts +185 -0
  495. package/lib/typescript/module/contract/channel.d.ts.map +1 -0
  496. package/lib/typescript/module/contract/diagnostics.d.ts +92 -0
  497. package/lib/typescript/module/contract/diagnostics.d.ts.map +1 -0
  498. package/lib/typescript/module/contract/errors.d.ts +91 -0
  499. package/lib/typescript/module/contract/errors.d.ts.map +1 -0
  500. package/lib/typescript/module/contract/hash.d.ts +14 -0
  501. package/lib/typescript/module/contract/hash.d.ts.map +1 -0
  502. package/lib/typescript/module/contract/index.d.ts +10 -0
  503. package/lib/typescript/module/contract/index.d.ts.map +1 -0
  504. package/lib/typescript/module/contract/interaction.d.ts +53 -0
  505. package/lib/typescript/module/contract/interaction.d.ts.map +1 -0
  506. package/lib/typescript/module/contract/notification.d.ts +110 -0
  507. package/lib/typescript/module/contract/notification.d.ts.map +1 -0
  508. package/lib/typescript/module/contract/permission.d.ts +49 -0
  509. package/lib/typescript/module/contract/permission.d.ts.map +1 -0
  510. package/lib/typescript/module/contract/reconcile.d.ts +82 -0
  511. package/lib/typescript/module/contract/reconcile.d.ts.map +1 -0
  512. package/lib/typescript/module/contract/recurrence.d.ts +118 -0
  513. package/lib/typescript/module/contract/recurrence.d.ts.map +1 -0
  514. package/lib/typescript/module/diagnostics/burst.d.ts +39 -0
  515. package/lib/typescript/module/diagnostics/burst.d.ts.map +1 -0
  516. package/lib/typescript/module/diagnostics/events.d.ts +28 -0
  517. package/lib/typescript/module/diagnostics/events.d.ts.map +1 -0
  518. package/lib/typescript/module/diagnostics/redact.d.ts +22 -0
  519. package/lib/typescript/module/diagnostics/redact.d.ts.map +1 -0
  520. package/lib/typescript/module/diagnostics/snapshot.d.ts +40 -0
  521. package/lib/typescript/module/diagnostics/snapshot.d.ts.map +1 -0
  522. package/lib/typescript/module/engine/adapter.d.ts +172 -0
  523. package/lib/typescript/module/engine/adapter.d.ts.map +1 -0
  524. package/lib/typescript/module/engine/codec.d.ts +20 -0
  525. package/lib/typescript/module/engine/codec.d.ts.map +1 -0
  526. package/lib/typescript/module/engine/notify-kit/events.d.ts +37 -0
  527. package/lib/typescript/module/engine/notify-kit/events.d.ts.map +1 -0
  528. package/lib/typescript/module/engine/notify-kit/module.d.ts +103 -0
  529. package/lib/typescript/module/engine/notify-kit/module.d.ts.map +1 -0
  530. package/lib/typescript/module/engine/notify-kit/platform/android.d.ts +3 -0
  531. package/lib/typescript/module/engine/notify-kit/platform/android.d.ts.map +1 -0
  532. package/lib/typescript/module/engine/notify-kit/platform/index.d.ts +12 -0
  533. package/lib/typescript/module/engine/notify-kit/platform/index.d.ts.map +1 -0
  534. package/lib/typescript/module/engine/notify-kit/platform/ios.d.ts +3 -0
  535. package/lib/typescript/module/engine/notify-kit/platform/ios.d.ts.map +1 -0
  536. package/lib/typescript/module/engine/notify-kit/platform/types.d.ts +33 -0
  537. package/lib/typescript/module/engine/notify-kit/platform/types.d.ts.map +1 -0
  538. package/lib/typescript/module/engine/notify-kit-engine.d.ts +25 -0
  539. package/lib/typescript/module/engine/notify-kit-engine.d.ts.map +1 -0
  540. package/lib/typescript/module/index.d.ts +106 -0
  541. package/lib/typescript/module/index.d.ts.map +1 -0
  542. package/lib/typescript/module/initialize.d.ts +74 -0
  543. package/lib/typescript/module/initialize.d.ts.map +1 -0
  544. package/lib/typescript/module/interaction/index.d.ts +53 -0
  545. package/lib/typescript/module/interaction/index.d.ts.map +1 -0
  546. package/lib/typescript/module/maintenance/cycle.d.ts +77 -0
  547. package/lib/typescript/module/maintenance/cycle.d.ts.map +1 -0
  548. package/lib/typescript/module/maintenance/permission-refresh.d.ts +19 -0
  549. package/lib/typescript/module/maintenance/permission-refresh.d.ts.map +1 -0
  550. package/lib/typescript/module/maintenance/reanchor.d.ts +26 -0
  551. package/lib/typescript/module/maintenance/reanchor.d.ts.map +1 -0
  552. package/lib/typescript/module/maintenance/toggle.d.ts +35 -0
  553. package/lib/typescript/module/maintenance/toggle.d.ts.map +1 -0
  554. package/lib/typescript/module/maintenance/verify.d.ts +32 -0
  555. package/lib/typescript/module/maintenance/verify.d.ts.map +1 -0
  556. package/lib/typescript/module/maintenance/window-refresh.d.ts +29 -0
  557. package/lib/typescript/module/maintenance/window-refresh.d.ts.map +1 -0
  558. package/lib/typescript/module/notifications.d.ts +78 -0
  559. package/lib/typescript/module/notifications.d.ts.map +1 -0
  560. package/lib/typescript/module/package.json +1 -0
  561. package/lib/typescript/module/permission/index.d.ts +57 -0
  562. package/lib/typescript/module/permission/index.d.ts.map +1 -0
  563. package/lib/typescript/module/permission/state.d.ts +41 -0
  564. package/lib/typescript/module/permission/state.d.ts.map +1 -0
  565. package/lib/typescript/module/push/envelope.d.ts +33 -0
  566. package/lib/typescript/module/push/envelope.d.ts.map +1 -0
  567. package/lib/typescript/module/push/fcm-provider.d.ts +43 -0
  568. package/lib/typescript/module/push/fcm-provider.d.ts.map +1 -0
  569. package/lib/typescript/module/push/gate.d.ts +57 -0
  570. package/lib/typescript/module/push/gate.d.ts.map +1 -0
  571. package/lib/typescript/module/push/index.d.ts +19 -0
  572. package/lib/typescript/module/push/index.d.ts.map +1 -0
  573. package/lib/typescript/module/push/instructions.d.ts +45 -0
  574. package/lib/typescript/module/push/instructions.d.ts.map +1 -0
  575. package/lib/typescript/module/push/provider-adapter.d.ts +50 -0
  576. package/lib/typescript/module/push/provider-adapter.d.ts.map +1 -0
  577. package/lib/typescript/module/push/signout.d.ts +33 -0
  578. package/lib/typescript/module/push/signout.d.ts.map +1 -0
  579. package/lib/typescript/module/reconcile/chunk.d.ts +24 -0
  580. package/lib/typescript/module/reconcile/chunk.d.ts.map +1 -0
  581. package/lib/typescript/module/reconcile/diff.d.ts +54 -0
  582. package/lib/typescript/module/reconcile/diff.d.ts.map +1 -0
  583. package/lib/typescript/module/reconcile/duplicates.d.ts +32 -0
  584. package/lib/typescript/module/reconcile/duplicates.d.ts.map +1 -0
  585. package/lib/typescript/module/reconcile/index.d.ts +35 -0
  586. package/lib/typescript/module/reconcile/index.d.ts.map +1 -0
  587. package/lib/typescript/module/reconcile/truncate.d.ts +26 -0
  588. package/lib/typescript/module/reconcile/truncate.d.ts.map +1 -0
  589. package/lib/typescript/module/recurrence/clock-guard.d.ts +37 -0
  590. package/lib/typescript/module/recurrence/clock-guard.d.ts.map +1 -0
  591. package/lib/typescript/module/recurrence/expand.d.ts +75 -0
  592. package/lib/typescript/module/recurrence/expand.d.ts.map +1 -0
  593. package/lib/typescript/module/recurrence/index.d.ts +40 -0
  594. package/lib/typescript/module/recurrence/index.d.ts.map +1 -0
  595. package/lib/typescript/module/repeat/expiry.d.ts +23 -0
  596. package/lib/typescript/module/repeat/expiry.d.ts.map +1 -0
  597. package/lib/typescript/module/repeat/index.d.ts +49 -0
  598. package/lib/typescript/module/repeat/index.d.ts.map +1 -0
  599. package/lib/typescript/module/repeat/marker.d.ts +36 -0
  600. package/lib/typescript/module/repeat/marker.d.ts.map +1 -0
  601. package/lib/typescript/module/repeat/place.d.ts +39 -0
  602. package/lib/typescript/module/repeat/place.d.ts.map +1 -0
  603. package/lib/typescript/module/schedule/anchor.d.ts +118 -0
  604. package/lib/typescript/module/schedule/anchor.d.ts.map +1 -0
  605. package/lib/typescript/module/schedule/index.d.ts +40 -0
  606. package/lib/typescript/module/schedule/index.d.ts.map +1 -0
  607. package/lib/typescript/module/schedule/partition.d.ts +29 -0
  608. package/lib/typescript/module/schedule/partition.d.ts.map +1 -0
  609. package/lib/typescript/module/schedule/resolve-moment.d.ts +35 -0
  610. package/lib/typescript/module/schedule/resolve-moment.d.ts.map +1 -0
  611. package/lib/typescript/module/schedule/validate-content.d.ts +42 -0
  612. package/lib/typescript/module/schedule/validate-content.d.ts.map +1 -0
  613. package/lib/typescript/module/schedule/validate-identifier.d.ts +30 -0
  614. package/lib/typescript/module/schedule/validate-identifier.d.ts.map +1 -0
  615. package/lib/typescript/module/schedule/writer.d.ts +36 -0
  616. package/lib/typescript/module/schedule/writer.d.ts.map +1 -0
  617. package/lib/typescript/module/state/caps.d.ts +51 -0
  618. package/lib/typescript/module/state/caps.d.ts.map +1 -0
  619. package/lib/typescript/module/state/dedup-ledger.d.ts +21 -0
  620. package/lib/typescript/module/state/dedup-ledger.d.ts.map +1 -0
  621. package/lib/typescript/module/state/interaction-buffer.d.ts +30 -0
  622. package/lib/typescript/module/state/interaction-buffer.d.ts.map +1 -0
  623. package/lib/typescript/module/state/mmkv-store.d.ts +33 -0
  624. package/lib/typescript/module/state/mmkv-store.d.ts.map +1 -0
  625. package/lib/typescript/module/state/permission-history.d.ts +20 -0
  626. package/lib/typescript/module/state/permission-history.d.ts.map +1 -0
  627. package/lib/typescript/module/state/record.d.ts +134 -0
  628. package/lib/typescript/module/state/record.d.ts.map +1 -0
  629. package/lib/typescript/module/state/reset.d.ts +22 -0
  630. package/lib/typescript/module/state/reset.d.ts.map +1 -0
  631. package/lib/typescript/module/state/series-ledger.d.ts +47 -0
  632. package/lib/typescript/module/state/series-ledger.d.ts.map +1 -0
  633. package/lib/typescript/module/state/store.d.ts +20 -0
  634. package/lib/typescript/module/state/store.d.ts.map +1 -0
  635. package/lib/typescript/module/testing/conformance/index.d.ts +32 -0
  636. package/lib/typescript/module/testing/conformance/index.d.ts.map +1 -0
  637. package/lib/typescript/module/testing/fake-engine.d.ts +91 -0
  638. package/lib/typescript/module/testing/fake-engine.d.ts.map +1 -0
  639. package/lib/typescript/module/testing/fake-provider.d.ts +35 -0
  640. package/lib/typescript/module/testing/fake-provider.d.ts.map +1 -0
  641. package/lib/typescript/module/testing/faults.d.ts +38 -0
  642. package/lib/typescript/module/testing/faults.d.ts.map +1 -0
  643. package/lib/typescript/module/testing/index.d.ts +22 -0
  644. package/lib/typescript/module/testing/index.d.ts.map +1 -0
  645. package/lib/typescript/module/testing/measure.d.ts +59 -0
  646. package/lib/typescript/module/testing/measure.d.ts.map +1 -0
  647. package/package.json +74 -23
  648. package/skills/sdk-rn-notification/SKILL.md +6 -5
  649. package/src/advanced.ts +35 -0
  650. package/src/channel/migrate.ts +176 -158
  651. package/src/channel/tone-map.ts +2 -10
  652. package/src/contract/errors.ts +7 -0
  653. package/src/contract/hash.ts +26 -0
  654. package/src/engine/adapter.ts +21 -1
  655. package/src/engine/notify-kit/events.ts +155 -0
  656. package/src/engine/notify-kit/module.ts +148 -0
  657. package/src/engine/notify-kit/platform/android.ts +172 -0
  658. package/src/engine/notify-kit/platform/index.ts +55 -0
  659. package/src/engine/notify-kit/platform/ios.ts +54 -0
  660. package/src/engine/notify-kit/platform/types.ts +40 -0
  661. package/src/engine/notify-kit-engine.ts +96 -477
  662. package/src/index.ts +9 -0
  663. package/src/notifications.ts +195 -0
  664. package/src/permission/index.ts +65 -4
  665. package/src/push/fcm-provider.ts +14 -4
  666. package/src/push/gate.ts +27 -5
  667. package/src/reconcile/diff.ts +38 -27
  668. package/src/reconcile/index.ts +13 -4
  669. package/src/recurrence/index.ts +2 -1
  670. package/src/repeat/expiry.ts +2 -6
  671. package/src/repeat/index.ts +45 -1
  672. package/src/repeat/marker.ts +1 -22
  673. package/src/repeat/place.ts +74 -35
  674. package/src/schedule/index.ts +10 -4
  675. package/src/schedule/partition.ts +0 -19
  676. package/src/schedule/validate-identifier.ts +8 -6
  677. package/src/schedule/writer.ts +13 -4
  678. package/src/state/caps.ts +28 -3
  679. package/src/state/permission-history.ts +25 -0
  680. package/src/state/record.ts +110 -20
  681. package/src/testing/fake-engine.ts +17 -1
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PERF_BUDGETS = void 0;
7
+ exports.runMeasurementHarness = runMeasurementHarness;
8
+ var _index = require("../schedule/index.js");
9
+ var _index2 = require("../reconcile/index.js");
10
+ var _index3 = require("../recurrence/index.js");
11
+ var _index4 = require("../permission/index.js");
12
+ var _reanchor = require("../maintenance/reanchor.js");
13
+ var _cycle = require("../maintenance/cycle.js");
14
+ var _record = require("../state/record.js");
15
+ var _store = require("../state/store.js");
16
+ var _anchor = require("../schedule/anchor.js");
17
+ var _dedupLedger = require("../state/dedup-ledger.js");
18
+ /**
19
+ * The PERF-001 measurement harness.
20
+ *
21
+ * Every budget in the specification, measured against the real code paths and
22
+ * reported as pass or fail with the number that produced the verdict. Written
23
+ * as a plain async function rather than a Jest suite so the same harness runs
24
+ * in continuous integration and from the demo app on a physical device — which
25
+ * matters, because PERF-003 forbids emulator numbers standing in as evidence.
26
+ *
27
+ * Five budgets are deliberately absent and reported as such: delivery accuracy,
28
+ * cold-start latency, startup delta and frame rate cannot be measured
29
+ * in-process. The first needs the OS to actually fire an alarm, the second a
30
+ * real process death. Pretending to measure them here would be worse than
31
+ * leaving the gap visible.
32
+ */
33
+
34
+ /** Every budget PERF-001 states, in milliseconds unless the name says otherwise. */
35
+ const PERF_BUDGETS = exports.PERF_BUDGETS = {
36
+ scheduleOne: 50,
37
+ readPending100: 200,
38
+ reconcileNoChange100: 150,
39
+ reconcile500With100Changes: 1_500,
40
+ maintenanceIdleCycle: 300,
41
+ windowRefresh32Series: 500,
42
+ reAnchor100: 1_000,
43
+ reAnchorNoChangeCheck: 20,
44
+ permissionRead: 50,
45
+ dedupCheck: 20,
46
+ interfaceThreadUnit: 16,
47
+ stateFootprintBytes: 1_048_576
48
+ };
49
+ const TONE = {
50
+ toneId: 'perf',
51
+ version: 1,
52
+ android: {
53
+ channelId: 'perf.v1',
54
+ importance: 'default',
55
+ vibration: false,
56
+ badge: false,
57
+ bypassDnd: false,
58
+ name: 'Fixture tone',
59
+ loopSound: false,
60
+ alarmCategory: false
61
+ },
62
+ ios: {
63
+ categoryId: 'perf',
64
+ interruptionLevel: 'active',
65
+ badge: false,
66
+ repeatRefused: false
67
+ }
68
+ };
69
+ async function runMeasurementHarness(engine, options = {}) {
70
+ const clock = options.clock ?? (() => Date.now());
71
+ const prefix = options.prefix ?? 'perf';
72
+ const measurements = [];
73
+ const now = () => Date.now();
74
+ const zone = 'UTC';
75
+ const state = new _record.StateManager({
76
+ store: (0, _store.createMemoryStore)(),
77
+ now
78
+ });
79
+ const resolveTone = () => TONE;
80
+ const record = (name, label, measured, operationCount) => {
81
+ const budget = PERF_BUDGETS[name];
82
+ // A budget that also demands zero operations fails on either count.
83
+ const opsOk = operationCount === undefined || operationCount === 0;
84
+ measurements.push({
85
+ name,
86
+ label,
87
+ measured,
88
+ budget,
89
+ unit: name === 'stateFootprintBytes' ? 'bytes' : 'ms',
90
+ passed: measured <= budget && opsOk,
91
+ operationCount
92
+ });
93
+ };
94
+
95
+ /** Median of three, so one scheduler hiccup does not decide a verdict. */
96
+ const timeOf = async run => {
97
+ const samples = [];
98
+ for (let i = 0; i < 3; i += 1) {
99
+ const started = clock();
100
+ await run();
101
+ samples.push(clock() - started);
102
+ }
103
+ return samples.sort((a, b) => a - b)[1];
104
+ };
105
+ const request = (id, at) => ({
106
+ id: `${prefix}:${id}`,
107
+ content: {
108
+ title: id,
109
+ body: 'Measurement harness entry'
110
+ },
111
+ tone: 'perf',
112
+ moment: {
113
+ at
114
+ },
115
+ groupTag: prefix
116
+ });
117
+ const scheduler = (0, _index.createScheduler)({
118
+ engine,
119
+ resolveTone,
120
+ timeZone: () => zone,
121
+ now,
122
+ canScheduleExactly: () => true
123
+ });
124
+ await engine.cancelAll();
125
+
126
+ // --- Scheduling -----------------------------------------------------------
127
+
128
+ record('scheduleOne', 'Single schedule operation', await timeOf(() => scheduler.schedule(request('single', now() + 3_600_000))));
129
+ for (let i = 0; i < 100; i += 1) {
130
+ await scheduler.schedule(request(`bulk:${i}`, now() + (i + 1) * 60_000));
131
+ }
132
+ record('readPending100', 'Read pending set of 100', await timeOf(() => scheduler.getPending()));
133
+
134
+ // --- Reconciliation -------------------------------------------------------
135
+
136
+ const reconciler = (0, _index2.createReconciler)({
137
+ engine,
138
+ resolveTone,
139
+ timeZone: () => zone,
140
+ now,
141
+ canScheduleExactly: () => true
142
+ });
143
+ const hundred = Array.from({
144
+ length: 100
145
+ }, (_, i) => request(`recon:${i}`, now() + (i + 1) * 60_000));
146
+ await reconciler.reconcile({
147
+ domain: prefix,
148
+ desired: hundred
149
+ });
150
+ let noChangeOps = 0;
151
+ const noChangeMs = await timeOf(async () => {
152
+ const result = await reconciler.reconcile({
153
+ domain: prefix,
154
+ desired: hundred
155
+ });
156
+ noChangeOps = result.operationCount;
157
+ });
158
+ record('reconcileNoChange100', 'No-change reconcile over 100', noChangeMs, noChangeOps);
159
+ const fiveHundred = Array.from({
160
+ length: 500
161
+ }, (_, i) => request(`recon:${i}`, now() + (i + 1) * 60_000));
162
+ await reconciler.reconcile({
163
+ domain: prefix,
164
+ desired: fiveHundred
165
+ });
166
+ const changed = fiveHundred.map((entry, i) => i < 100 ? {
167
+ ...entry,
168
+ content: {
169
+ title: `changed-${i}`,
170
+ body: entry.content.body
171
+ }
172
+ } : entry);
173
+ record('reconcile500With100Changes', '500-entry reconcile with 100 changes', await timeOf(() => reconciler.reconcile({
174
+ domain: prefix,
175
+ desired: changed
176
+ })));
177
+
178
+ // --- Re-anchoring ---------------------------------------------------------
179
+
180
+ const pending = await engine.getPending();
181
+ record('reAnchorNoChangeCheck', 'Re-anchor check with no zone change', await timeOf(async () => (0, _anchor.planReAnchor)(pending, zone)), (0, _anchor.planReAnchor)(pending, zone).rewrites.length);
182
+ const context = {
183
+ trigger: 'foreground',
184
+ now: now(),
185
+ ownedIds: new Set()
186
+ };
187
+ const travelled = (0, _reanchor.createReAnchorStep)({
188
+ engine,
189
+ timeZone: () => 'Asia/Tokyo',
190
+ resolveTone,
191
+ canScheduleExactly: () => true
192
+ });
193
+ record('reAnchor100', 'Re-anchor after a zone change', await timeOf(() => travelled.run(context)));
194
+
195
+ // --- Maintenance ----------------------------------------------------------
196
+
197
+ const registry = new _cycle.MaintenanceRegistry();
198
+ registry.register((0, _reanchor.createReAnchorStep)({
199
+ engine,
200
+ timeZone: () => zone,
201
+ resolveTone,
202
+ canScheduleExactly: () => true
203
+ }));
204
+ let idleOps = 0;
205
+ const idleMs = await timeOf(async () => {
206
+ const result = await registry.run({
207
+ ...context,
208
+ now: now()
209
+ });
210
+ idleOps = result.operationCount;
211
+ });
212
+ record('maintenanceIdleCycle', 'Idle maintenance cycle', idleMs, idleOps);
213
+
214
+ // --- Recurrence -----------------------------------------------------------
215
+
216
+ const recurrence = (0, _index3.createRecurrence)({
217
+ engine,
218
+ state,
219
+ resolveTone,
220
+ timeZone: () => zone,
221
+ now,
222
+ lookahead: {
223
+ days: 60,
224
+ occurrencesPerSeries: 32
225
+ },
226
+ canScheduleExactly: () => true
227
+ });
228
+ const series = Array.from({
229
+ length: 32
230
+ }, (_, i) => ({
231
+ id: `${prefix}:series:${i}`,
232
+ pattern: {
233
+ kind: 'daily',
234
+ hour: i % 24,
235
+ minute: 0
236
+ },
237
+ end: {
238
+ kind: 'count',
239
+ count: 2
240
+ },
241
+ template: {
242
+ content: {
243
+ title: `Series ${i}`,
244
+ body: 'Measurement harness series'
245
+ },
246
+ tone: 'perf',
247
+ groupTag: prefix
248
+ }
249
+ }));
250
+ for (const rule of series) {
251
+ await recurrence.registerSeries(rule);
252
+ }
253
+ record('windowRefresh32Series', 'Window refresh across 32 series', await timeOf(async () => {
254
+ for (const rule of series) {
255
+ await recurrence.refreshSeries(rule);
256
+ }
257
+ }));
258
+
259
+ // --- Permissions ----------------------------------------------------------
260
+
261
+ const permissions = (0, _index4.createPermissions)({
262
+ engine,
263
+ state,
264
+ platform: {
265
+ os: 'android',
266
+ apiLevel: 34
267
+ },
268
+ now
269
+ });
270
+ record('permissionRead', 'Read all permission states', await timeOf(() => permissions.getPermissions()));
271
+
272
+ // --- Deduplication and footprint -----------------------------------------
273
+
274
+ for (let i = 0; i < 400; i += 1) {
275
+ (0, _dedupLedger.recordSeen)(state, `${prefix}:dedup:${i}`, now());
276
+ }
277
+ record('dedupCheck', 'Deduplication ledger check', await timeOf(async () => (0, _dedupLedger.recordSeen)(state, `${prefix}:dedup:probe`, now())));
278
+ record('stateFootprintBytes', 'Persisted state on disk at caps', state.health().approximateBytes);
279
+
280
+ // The interface-thread ceiling is a property of one chunked unit of work, not
281
+ // of a whole pass, so it is measured per entry rather than per reconcile.
282
+ const chunkMs = await timeOf(() => reconciler.reconcile({
283
+ domain: prefix,
284
+ desired: hundred.slice(0, 25)
285
+ }));
286
+ record('interfaceThreadUnit', 'Single chunked unit of reconcile work', chunkMs / 25);
287
+ await engine.cancelAll();
288
+ const passed = measurements.filter(measurement => measurement.passed).length;
289
+ return {
290
+ measurements,
291
+ passed,
292
+ failed: measurements.length - passed,
293
+ // Stated rather than silently omitted — these need real hardware.
294
+ requiresDevice: ['Delivery accuracy, exact mode (60 s) — needs the OS to fire a real alarm', 'Delivery accuracy, approximate mode (15 min) — needs a device under no vendor restriction', 'Cold-start tap to handler (500 ms) — needs a real process death and relaunch', 'App startup delta (100 ms) — needs a real cold start', 'Sustained frame rate during reconcile (55 fps) — needs a rendering device'],
295
+ ranAt: now()
296
+ };
297
+ }
298
+ //# sourceMappingURL=measure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_index","require","_index2","_index3","_index4","_reanchor","_cycle","_record","_store","_anchor","_dedupLedger","PERF_BUDGETS","exports","scheduleOne","readPending100","reconcileNoChange100","reconcile500With100Changes","maintenanceIdleCycle","windowRefresh32Series","reAnchor100","reAnchorNoChangeCheck","permissionRead","dedupCheck","interfaceThreadUnit","stateFootprintBytes","TONE","toneId","version","android","channelId","importance","vibration","badge","bypassDnd","name","loopSound","alarmCategory","ios","categoryId","interruptionLevel","repeatRefused","runMeasurementHarness","engine","options","clock","Date","now","prefix","measurements","zone","state","StateManager","store","createMemoryStore","resolveTone","record","label","measured","operationCount","budget","opsOk","undefined","push","unit","passed","timeOf","run","samples","i","started","sort","a","b","request","id","at","content","title","body","tone","moment","groupTag","scheduler","createScheduler","timeZone","canScheduleExactly","cancelAll","schedule","getPending","reconciler","createReconciler","hundred","Array","from","length","_","reconcile","domain","desired","noChangeOps","noChangeMs","result","fiveHundred","changed","map","entry","pending","planReAnchor","rewrites","context","trigger","ownedIds","Set","travelled","createReAnchorStep","registry","MaintenanceRegistry","register","idleOps","idleMs","recurrence","createRecurrence","lookahead","days","occurrencesPerSeries","series","pattern","kind","hour","minute","end","count","template","rule","registerSeries","refreshSeries","permissions","createPermissions","platform","os","apiLevel","getPermissions","recordSeen","health","approximateBytes","chunkMs","slice","filter","measurement","failed","requiresDevice","ranAt"],"sourceRoot":"../../../src","sources":["testing/measure.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * `@chipmobilesdk/rn-notification/advanced`: the individual factories, for an app
5
+ * that wires the package itself instead of using `createNotifications` (NOT-07).
6
+ *
7
+ * The package root still exports them too, for compatibility; new code that needs
8
+ * them should import from here, where they are documented as the advanced path.
9
+ */
10
+ export { initialize } from "./initialize.js";
11
+ export { createScheduler } from "./schedule/index.js";
12
+ export { createReconciler } from "./reconcile/index.js";
13
+ export { createRecurrence } from "./recurrence/index.js";
14
+ export { createChannels } from "./channel/migrate.js";
15
+ export { createToneResolver } from "./channel/tone-map.js";
16
+ export { createInteractions } from "./interaction/index.js";
17
+ export { createSnapshot } from "./diagnostics/snapshot.js";
18
+ export { createBurstDetector } from "./diagnostics/burst.js";
19
+ export { createPermissions } from "./permission/index.js";
20
+ export { createPermissionRefreshStep } from "./maintenance/permission-refresh.js";
21
+ export { createReAnchorStep } from "./maintenance/reanchor.js";
22
+ export { createVerifyStep } from "./maintenance/verify.js";
23
+ export { createWindowRefreshStep } from "./maintenance/window-refresh.js";
24
+ export { MaintenanceController } from "./maintenance/toggle.js";
25
+ export { MaintenanceRegistry } from "./maintenance/cycle.js";
26
+ export { StateManager } from "./state/record.js";
27
+ export { createMmkvStore } from "./state/mmkv-store.js";
28
+ export { createPlatformTimeZoneReader } from "./schedule/anchor.js";
29
+ //# sourceMappingURL=advanced.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["initialize","createScheduler","createReconciler","createRecurrence","createChannels","createToneResolver","createInteractions","createSnapshot","createBurstDetector","createPermissions","createPermissionRefreshStep","createReAnchorStep","createVerifyStep","createWindowRefreshStep","MaintenanceController","MaintenanceRegistry","StateManager","createMmkvStore","createPlatformTimeZoneReader"],"sourceRoot":"../../src","sources":["advanced.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,iBAAc;AAEzC,SAASC,eAAe,QAAQ,qBAAY;AAE5C,SAASC,gBAAgB,QAAQ,sBAAa;AAE9C,SAASC,gBAAgB,QAAQ,uBAAc;AAE/C,SAASC,cAAc,QAAQ,sBAAmB;AAElD,SAASC,kBAAkB,QAAQ,uBAAoB;AACvD,SAASC,kBAAkB,QAAQ,wBAAe;AAElD,SAASC,cAAc,QAAQ,2BAAwB;AAEvD,SAASC,mBAAmB,QAAQ,wBAAqB;AACzD,SAASC,iBAAiB,QAAQ,uBAAc;AAEhD,SAASC,2BAA2B,QAAQ,qCAAkC;AAC9E,SAASC,kBAAkB,QAAQ,2BAAwB;AAC3D,SAASC,gBAAgB,QAAQ,yBAAsB;AACvD,SAASC,uBAAuB,QAAQ,iCAA8B;AACtE,SAASC,qBAAqB,QAAQ,yBAAsB;AAC5D,SAASC,mBAAmB,QAAQ,wBAAqB;AAEzD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,eAAe,QAAQ,uBAAoB;AACpD,SAASC,4BAA4B,QAAQ,sBAAmB","ignoreList":[]}
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Channel declaration and migration.
5
+ *
6
+ * Android channels are immutable once created: declaring a channel whose id
7
+ * already exists silently keeps the original configuration. That single fact is
8
+ * why changing a tone is a **migration** rather than an assignment, and why
9
+ * this package keeps its own ledger — the platform will not tell you which
10
+ * version of a channel a device already holds.
11
+ *
12
+ * Migration creates the new channel, re-homes notifications still pointing at
13
+ * the old one, and only then retires it. That order matters: retiring first
14
+ * would leave live notifications attached to a channel that no longer exists.
15
+ */
16
+
17
+ import { DIAGNOSTIC_CODES } from "../contract/errors.js";
18
+ import { channelIdFor, resolveTone, toneLabelFingerprint } from "./tone-map.js";
19
+ import { validateToneDeclarations } from "./validate-tone.js";
20
+ import { createScheduleWriter } from "../schedule/writer.js";
21
+ function ledgerFor(state, toneId) {
22
+ return state.read().migrationLedger.find(entry => entry.toneId === toneId && !entry.retired);
23
+ }
24
+ function recordApplied(state, tone, now, retiredChannelId, labelFingerprint) {
25
+ state.update('migrationLedger', current => {
26
+ const withoutTone = current.filter(entry => entry.toneId !== tone.id);
27
+ const retired = retiredChannelId === undefined ? [] : [{
28
+ at: now,
29
+ toneId: tone.id,
30
+ appliedVersion: 0,
31
+ channelId: retiredChannelId,
32
+ retired: true
33
+ }];
34
+ return [...withoutTone, ...retired, {
35
+ at: now,
36
+ toneId: tone.id,
37
+ appliedVersion: tone.version,
38
+ channelId: channelIdFor(tone.id, tone.version),
39
+ retired: false,
40
+ labelFingerprint
41
+ }];
42
+ });
43
+ }
44
+ export function createChannels(deps) {
45
+ const emit = deps.emit ?? (() => {});
46
+ // Re-homing re-writes each notification on the new channel; its stop marker
47
+ // has to follow, or it would retire with the old channel.
48
+ const writer = createScheduleWriter(deps.engine);
49
+ const applyTones = async (tones, groups) => {
50
+ // Validation completes before the first engine call, so a rejected
51
+ // declaration leaves the device exactly as it was — the same order the
52
+ // scheduler has always used.
53
+ validateToneDeclarations(tones);
54
+ const now = deps.now();
55
+ const created = [];
56
+ const migrated = [];
57
+ const labelsRefreshed = [];
58
+ const retired = [];
59
+ const reHomed = [];
60
+ const cancelled = [];
61
+ const bypassUnavailable = [];
62
+ const repeatUnavailable = [];
63
+ const unchanged = [];
64
+ if (groups.length > 0) {
65
+ await deps.engine.declareGroups(groups);
66
+ }
67
+ const capabilities = await deps.engine.getCapabilities();
68
+ for (const tone of tones) {
69
+ const previous = ledgerFor(deps.state, tone.id);
70
+ const resolved = resolveTone(tone);
71
+ const fingerprint = toneLabelFingerprint(tone);
72
+
73
+ // Refusals are reported for every tone that asked, whether or not
74
+ // anything else about it moved. A platform declining an attribute
75
+ // says nothing about whether the channel is new.
76
+ if (tone.bypassDoNotDisturb === true && !capabilities.supportsDoNotDisturbBypass) {
77
+ // Reported honestly rather than silently dropped — a consumer that
78
+ // asked for a bypass deserves to know the platform refused.
79
+ bypassUnavailable.push(tone.id);
80
+ emit(DIAGNOSTIC_CODES.DND_BYPASS_UNAVAILABLE, `Tone "${tone.id}" requested a Do Not Disturb bypass, which this platform does not permit.`, {
81
+ toneId: tone.id
82
+ });
83
+ }
84
+ if (tone.repeatAlert !== undefined) {
85
+ if (!capabilities.supportsRepeatingAlert) {
86
+ repeatUnavailable.push(tone.id);
87
+ emit(DIAGNOSTIC_CODES.REPEAT_ALERT_UNAVAILABLE, `Tone "${tone.id}" requested a repeating alert, which this platform does not offer. The notification still delivers and still sounds once.`, {
88
+ toneId: tone.id
89
+ });
90
+ } else if (!deps.engine.hasBackgroundDeliveryHandler()) {
91
+ // Said out loud at declaration time, because the alternative is a
92
+ // user meeting it as a phone that will not stop ringing.
93
+ emit(DIAGNOSTIC_CODES.REPEAT_STOP_HANDLER_MISSING, `Tone "${tone.id}" declares a repeating alert, but no background notification handler is registered. Its alert will not stop on its own while the app is not running. Call registerBackgroundNotificationHandler at module scope in index.js.`, {
94
+ toneId: tone.id
95
+ });
96
+ }
97
+ }
98
+ const versionMoved = previous !== undefined && previous.appliedVersion !== tone.version;
99
+ if (previous !== undefined && !versionMoved) {
100
+ // The version is the same, so nothing the platform freezes has
101
+ // changed. Only the labels can still be stale — and correcting
102
+ // those must cost the user nothing, so the platform is touched
103
+ // only when the fingerprint actually moved.
104
+ if (previous.labelFingerprint === fingerprint) {
105
+ unchanged.push(tone.id);
106
+ continue;
107
+ }
108
+ const outcome = await deps.engine.declareTone(resolved);
109
+ if (outcome === 'created') {
110
+ // The channel was gone — deleted by the user, or lost with the
111
+ // app's data — so this is a first declaration rather than a
112
+ // refresh, whatever our ledger believed.
113
+ created.push(resolved.android.channelId);
114
+ } else if (outcome === 'labelsRefreshed') {
115
+ labelsRefreshed.push(tone.id);
116
+ emit(DIAGNOSTIC_CODES.TONE_LABELS_REFRESHED, `Tone "${tone.id}" had its name and description updated in place. No channel was recreated, so every setting the user adjusted on it is untouched.`, {
117
+ toneId: tone.id
118
+ });
119
+ } else {
120
+ unchanged.push(tone.id);
121
+ }
122
+ recordApplied(deps.state, tone, now, undefined, fingerprint);
123
+ continue;
124
+ }
125
+ const outcome = await deps.engine.declareTone(resolved);
126
+ if (outcome === 'created') {
127
+ created.push(resolved.android.channelId);
128
+ }
129
+ if (previous === undefined) {
130
+ recordApplied(deps.state, tone, now, undefined, fingerprint);
131
+ continue;
132
+ }
133
+
134
+ // A version moved, so this is a migration rather than a first
135
+ // declaration. Re-home before retiring: the reverse order would leave
136
+ // live notifications attached to a channel that no longer exists.
137
+ emit(DIAGNOSTIC_CODES.CHANNEL_MIGRATION_REQUIRED, `Tone "${tone.id}" moved from version ${previous.appliedVersion} to ${tone.version}. Android channels are immutable, so a new channel was created and the old one is being retired.`, {
138
+ toneId: tone.id,
139
+ from: previous.appliedVersion,
140
+ to: tone.version
141
+ });
142
+ const pending = await deps.engine.getPending();
143
+ const affected = pending.filter(entry => entry.tone === tone.id);
144
+ for (const entry of affected) {
145
+ await writer.write({
146
+ request: {
147
+ id: entry.id,
148
+ content: entry.content,
149
+ tone: entry.tone,
150
+ moment: {
151
+ at: entry.resolvedAt,
152
+ anchoring: entry.anchoring
153
+ },
154
+ routing: entry.routing,
155
+ actions: entry.actions,
156
+ ownerTag: entry.ownerTag,
157
+ groupTag: entry.groupTag
158
+ },
159
+ resolvedAt: entry.resolvedAt,
160
+ tone: resolved,
161
+ // Re-homing changes the channel, not the anchoring — preserve it.
162
+ anchoringGeneration: entry.anchoringGeneration,
163
+ approximate: entry.mayBeDelayed,
164
+ seriesId: entry.seriesId,
165
+ pushCreated: entry.pushCreated
166
+ });
167
+ reHomed.push(entry.id);
168
+ }
169
+ const didRetire = await deps.engine.retireTone(previous.channelId);
170
+ if (didRetire) {
171
+ retired.push(previous.channelId);
172
+ }
173
+
174
+ // A version move outranks a label change: the new channel simply
175
+ // carries the new labels, and reporting it as a refresh would hide a
176
+ // migration the consumer needs to know about.
177
+ migrated.push({
178
+ toneId: tone.id,
179
+ from: previous.appliedVersion,
180
+ to: tone.version
181
+ });
182
+ recordApplied(deps.state, tone, now, previous.channelId, fingerprint);
183
+ }
184
+
185
+ // Anything left on a retired channel would be an orphan — a notification
186
+ // the user can no longer control from system settings.
187
+ const orphans = await findOrphans(deps, tones);
188
+ if (orphans.length > 0) {
189
+ await deps.engine.cancelMany(orphans);
190
+ cancelled.push(...orphans);
191
+ emit(DIAGNOSTIC_CODES.CHANNEL_ORPHANS_FOUND, `${orphans.length} notification(s) remained on a retired channel and were cancelled, rather than left uncontrollable from system settings.`, {
192
+ count: orphans.length
193
+ });
194
+ }
195
+ return {
196
+ created,
197
+ migrated,
198
+ labelsRefreshed,
199
+ retired,
200
+ reHomed,
201
+ cancelled,
202
+ bypassUnavailable,
203
+ repeatUnavailable,
204
+ unchanged
205
+ };
206
+ };
207
+ return {
208
+ /**
209
+ * Applies a tone configuration, migrating any tone whose version moved.
210
+ *
211
+ * Applying an unchanged configuration performs no work at all: no channel
212
+ * is recreated and no migration is triggered.
213
+ */
214
+ apply(tones, groups = []) {
215
+ // The declared channels are read once for the whole apply rather than once
216
+ // per tone, when the engine can hold them (NOT-08).
217
+ const run = () => applyTones(tones, groups);
218
+ return deps.engine.withChannelSnapshot ? deps.engine.withChannelSnapshot(run) : run();
219
+ },
220
+ /** Which version of each tone this device actually holds. */
221
+ appliedVersions() {
222
+ return deps.state.read().migrationLedger.filter(entry => !entry.retired).map(entry => ({
223
+ toneId: entry.toneId,
224
+ appliedVersion: entry.appliedVersion
225
+ }));
226
+ }
227
+ };
228
+ }
229
+
230
+ /** Notifications whose tone is no longer declared at all. */
231
+ async function findOrphans(deps, tones) {
232
+ const declared = new Set(tones.map(tone => tone.id));
233
+ // Only tones this package once applied can leave orphans (NOT-05). An entry
234
+ // with no tone metadata was scheduled by other code through the same engine,
235
+ // and a tone the ledger has never seen is not ours to judge either: cancelling
236
+ // on "not in this call's list" silently deleted other libraries' notifications,
237
+ // and a feature module's own when it applied only its subset of tones.
238
+ const onceApplied = new Set(deps.state.read().migrationLedger.map(entry => entry.toneId));
239
+ const pending = await deps.engine.getPending();
240
+ return pending.filter(entry => entry.tone !== '' && onceApplied.has(entry.tone) && !declared.has(entry.tone)).map(entry => entry.id);
241
+ }
242
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DIAGNOSTIC_CODES","channelIdFor","resolveTone","toneLabelFingerprint","validateToneDeclarations","createScheduleWriter","ledgerFor","state","toneId","read","migrationLedger","find","entry","retired","recordApplied","tone","now","retiredChannelId","labelFingerprint","update","current","withoutTone","filter","id","undefined","at","appliedVersion","channelId","version","createChannels","deps","emit","writer","engine","applyTones","tones","groups","created","migrated","labelsRefreshed","reHomed","cancelled","bypassUnavailable","repeatUnavailable","unchanged","length","declareGroups","capabilities","getCapabilities","previous","resolved","fingerprint","bypassDoNotDisturb","supportsDoNotDisturbBypass","push","DND_BYPASS_UNAVAILABLE","repeatAlert","supportsRepeatingAlert","REPEAT_ALERT_UNAVAILABLE","hasBackgroundDeliveryHandler","REPEAT_STOP_HANDLER_MISSING","versionMoved","outcome","declareTone","android","TONE_LABELS_REFRESHED","CHANNEL_MIGRATION_REQUIRED","from","to","pending","getPending","affected","write","request","content","moment","resolvedAt","anchoring","routing","actions","ownerTag","groupTag","anchoringGeneration","approximate","mayBeDelayed","seriesId","pushCreated","didRetire","retireTone","orphans","findOrphans","cancelMany","CHANNEL_ORPHANS_FOUND","count","apply","run","withChannelSnapshot","appliedVersions","map","declared","Set","onceApplied","has"],"sourceRoot":"../../../src","sources":["channel/migrate.ts"],"mappings":"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","ignoreList":[]}