@chipmobilesdk/rn-notification 0.6.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 (647) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/README.md +8 -6
  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 +72 -26
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * The Firebase Cloud Messaging provider.
5
+ *
6
+ * Every `@react-native-firebase/messaging` import is confined to this file, so
7
+ * the rest of the package — and every consuming app — stays free of provider
8
+ * types. Substituting a provider is an adapter swap, not a rewrite.
9
+ *
10
+ * The module is required **lazily**. That matters more here than for the
11
+ * engine: messaging is an *optional* peer dependency, and an app that never
12
+ * enables push must not fail at import time for a package it deliberately did
13
+ * not install.
14
+ */
15
+
16
+ import { lazyPeer } from '@chipmobilesdk/rn-core';
17
+
18
+ /** Minimal shape used from the SDK, so its full surface never leaks into typing. */
19
+
20
+ const messagingPeer = lazyPeer('@react-native-firebase/messaging', () => {
21
+ // Inside `try`, so Metro bundles an app that leaves this optional peer out.
22
+ try {
23
+ return require('@react-native-firebase/messaging');
24
+ } catch (cause) {
25
+ throw cause;
26
+ }
27
+ });
28
+ function loadMessaging() {
29
+ // Absent optional peer, or missing native module: reported as unavailability
30
+ // through the normal path rather than thrown at import.
31
+ const result = messagingPeer.get();
32
+ return result.ok ? result.module.default : undefined;
33
+ }
34
+ export function createFcmProvider(options = {}) {
35
+ let cached = options.module;
36
+ let resolved = options.module !== undefined;
37
+ const messaging = () => {
38
+ if (!resolved) {
39
+ cached = loadMessaging();
40
+ resolved = true;
41
+ }
42
+ return cached?.();
43
+ };
44
+ if (options.onBackgroundMessage !== undefined) {
45
+ messaging()?.setBackgroundMessageHandler(options.onBackgroundMessage);
46
+ }
47
+ return {
48
+ name: '@react-native-firebase/messaging',
49
+ async getAvailability() {
50
+ const instance = messaging();
51
+
52
+ // A device without Google Play Services, or an app that never installed
53
+ // the optional peer. Either way the local path is unaffected.
54
+ if (instance === undefined) return 'unavailable';
55
+
56
+ // Asked without registering: fetching a token here would create an FCM
57
+ // registration (and an APNs one on iOS) just to answer a yes-or-no
58
+ // question, before the app asked for permission (NOT-24).
59
+ try {
60
+ if (instance.isDeviceRegisteredForRemoteMessages === true) {
61
+ return 'available';
62
+ }
63
+ if (instance.hasPermission !== undefined) {
64
+ // Messaging is present; whether it may deliver is the permission's
65
+ // question, and that is answered without registering anything.
66
+ await instance.hasPermission();
67
+ return 'available';
68
+ }
69
+ return 'unknown';
70
+ } catch {
71
+ // The SDK does not say why, so `unknown` rather than a guess.
72
+ return 'unknown';
73
+ }
74
+ },
75
+ async getToken() {
76
+ const instance = messaging();
77
+ if (instance === undefined) {
78
+ throw new Error('Push provider is unavailable on this device.');
79
+ }
80
+ // Resolves only once a genuine token exists; the gate never presents an
81
+ // empty value as if it were one.
82
+ return instance.getToken();
83
+ },
84
+ onTokenChange(handler) {
85
+ const instance = messaging();
86
+ if (instance === undefined) return () => undefined;
87
+ return instance.onTokenRefresh(handler);
88
+ },
89
+ async invalidateToken() {
90
+ const instance = messaging();
91
+ if (instance === undefined) return false;
92
+ try {
93
+ await instance.deleteToken();
94
+ return true;
95
+ } catch {
96
+ // Reported as a failed invalidation rather than assumed successful —
97
+ // the device may keep receiving the previous account's messages.
98
+ return false;
99
+ }
100
+ },
101
+ subscribeToMessages(handler) {
102
+ const instance = messaging();
103
+ if (instance === undefined) return () => undefined;
104
+
105
+ // Foreground only. Background delivery arrives through the handler the
106
+ // consumer registers at module scope, which the README documents.
107
+ return instance.onMessage(message => {
108
+ handler(message);
109
+ });
110
+ },
111
+ async takeInitialMessage() {
112
+ const instance = messaging();
113
+ if (instance === undefined) return undefined;
114
+ const message = await instance.getInitialNotification();
115
+ return message ?? undefined;
116
+ }
117
+ };
118
+ }
119
+ //# sourceMappingURL=fcm-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["lazyPeer","messagingPeer","require","cause","loadMessaging","result","get","ok","module","default","undefined","createFcmProvider","options","cached","resolved","messaging","onBackgroundMessage","setBackgroundMessageHandler","name","getAvailability","instance","isDeviceRegisteredForRemoteMessages","hasPermission","getToken","Error","onTokenChange","handler","onTokenRefresh","invalidateToken","deleteToken","subscribeToMessages","onMessage","message","takeInitialMessage","getInitialNotification"],"sourceRoot":"../../../src","sources":["push/fcm-provider.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * The push gate.
5
+ *
6
+ * Everything a consumer sees about push comes through here, in one normalized
7
+ * shape with zero provider types. Substituting a provider is therefore an
8
+ * adapter swap rather than a consumer rewrite.
9
+ *
10
+ * Two behaviours are deliberate and easy to get wrong. A push arriving in the
11
+ * **foreground is never auto-displayed** — presentation is the app's decision,
12
+ * and a library that decided for it would fight every consumer's design. And a
13
+ * malformed payload is **dropped safely**, because a broken message from a
14
+ * server must not be able to crash an installed app.
15
+ */
16
+
17
+ import { DIAGNOSTIC_CODES, isNotificationError } from "../contract/errors.js";
18
+ import { normalizeEnvelope, IMPLEMENTED_PAYLOAD_VERSION } from "./envelope.js";
19
+ import { recordSeen } from "../state/dedup-ledger.js";
20
+ export function createPushGate(deps) {
21
+ const emit = deps.emit ?? (() => {});
22
+ let handlers = [];
23
+ let subscription;
24
+ /** Every token subscription, so a second one does not leak the first (NOT-24). */
25
+ const tokenSubscriptions = new Set();
26
+ let deliveryChain = Promise.resolve();
27
+ const dispatch = envelope => {
28
+ deliveryChain = deliveryChain.then(async () => {
29
+ for (const handler of handlers) {
30
+ try {
31
+ await handler(envelope);
32
+ } catch {
33
+ // A consumer's handler failing must not stop the next payload.
34
+ }
35
+ }
36
+ });
37
+ };
38
+ const receive = raw => {
39
+ let normalized;
40
+ try {
41
+ normalized = normalizeEnvelope(raw, deps.now());
42
+ } catch (error) {
43
+ // Dropped safely and recorded. A broken message must never crash the app
44
+ // or corrupt the local schedule.
45
+ emit(DIAGNOSTIC_CODES.PAYLOAD_MALFORMED, isNotificationError(error) ? error.message : 'Push payload could not be interpreted and was discarded.', isNotificationError(error) ? error.context : undefined);
46
+ return undefined;
47
+ }
48
+ const {
49
+ envelope,
50
+ versionSkew
51
+ } = normalized;
52
+ if (versionSkew) {
53
+ emit(DIAGNOSTIC_CODES.PAYLOAD_VERSION_SKEW, `Push payload declares contract version ${envelope.version}; this build implements ${IMPLEMENTED_PAYLOAD_VERSION}. Processed best-effort — known fields honoured, unknown fields ignored.`, {
54
+ received: envelope.version,
55
+ implemented: IMPLEMENTED_PAYLOAD_VERSION
56
+ });
57
+ }
58
+
59
+ // Deduplication survives process death, which is the case that matters:
60
+ // a redelivery usually arrives in a fresh process.
61
+ if (recordSeen(deps.state, envelope.dedupId, deps.now(), envelope.ownerTag)) {
62
+ emit(DIAGNOSTIC_CODES.PAYLOAD_DUPLICATE, 'Push payload was already handled and was suppressed.', {
63
+ dedupId: envelope.dedupId
64
+ });
65
+ return undefined;
66
+ }
67
+ dispatch(envelope);
68
+ return envelope;
69
+ };
70
+ return {
71
+ /** Reports whether platform push services exist, so degradation is controlled. */
72
+ async getAvailability() {
73
+ const availability = await deps.provider.getAvailability();
74
+ if (availability === 'unavailable') {
75
+ emit(DIAGNOSTIC_CODES.PUSH_UNAVAILABLE, 'Platform push services are unavailable on this device. The push path is disabled; the entire local notification path is unaffected.');
76
+ }
77
+ return availability;
78
+ },
79
+ /** Waits for a genuine token. Never returns a placeholder presented as one. */
80
+ async getToken() {
81
+ const token = await deps.provider.getToken();
82
+ if (typeof token !== 'string' || token.length === 0) {
83
+ emit(DIAGNOSTIC_CODES.TOKEN_UNAVAILABLE, 'The provider has no registration token yet. An empty value is never returned as if it were one.');
84
+ throw new Error('Push token is not yet available.');
85
+ }
86
+ // The token value itself is never logged.
87
+ return token;
88
+ },
89
+ onTokenChange(handler) {
90
+ const unsubscribe = deps.provider.onTokenChange(handler);
91
+ tokenSubscriptions.add(unsubscribe);
92
+ return () => {
93
+ if (tokenSubscriptions.delete(unsubscribe)) {
94
+ unsubscribe();
95
+ }
96
+ };
97
+ },
98
+ async invalidateToken() {
99
+ const ok = await deps.provider.invalidateToken();
100
+ if (!ok) {
101
+ emit(DIAGNOSTIC_CODES.TOKEN_INVALIDATION_FAILED, 'Token invalidation did not succeed. The device may keep receiving messages for the previous account.');
102
+ }
103
+ return ok;
104
+ },
105
+ /**
106
+ * Subscribes to inbound payloads.
107
+ *
108
+ * Nothing is displayed automatically — the consumer decides whether and how
109
+ * to present a foreground push.
110
+ */
111
+ onPushReceived(handler) {
112
+ handlers.push(handler);
113
+ subscription ??= deps.provider.subscribeToMessages(receive);
114
+ return () => {
115
+ handlers = handlers.filter(h => h !== handler);
116
+ };
117
+ },
118
+ /**
119
+ * Processes a payload delivered while the app was in the background, from
120
+ * the module-scope handler `setBackgroundMessageHandler` requires (NOT-24).
121
+ *
122
+ * The same normalization and the same persisted deduplication as a
123
+ * foreground payload, so a redelivery after the process restarted is
124
+ * suppressed rather than handled twice. Resolves once every handler has run.
125
+ */
126
+ async handleBackground(raw) {
127
+ const envelope = receive(raw);
128
+ await deliveryChain;
129
+ return envelope;
130
+ },
131
+ /** Processes the payload that launched the app, if any. */
132
+ async collectInitial() {
133
+ const raw = await deps.provider.takeInitialMessage();
134
+ return raw === undefined ? undefined : receive(raw);
135
+ },
136
+ /** Reports a specific cause rather than leaving a non-delivery unexplained. */
137
+ reportUndeliverable(cause, context) {
138
+ emit(DIAGNOSTIC_CODES.PUSH_UNDELIVERABLE, `A push could not be delivered or displayed: ${cause}.`, {
139
+ cause,
140
+ ...context
141
+ });
142
+ },
143
+ /** Exposed for tests and orderly shutdown. */
144
+ async flush() {
145
+ await deliveryChain;
146
+ },
147
+ dispose() {
148
+ subscription?.();
149
+ subscription = undefined;
150
+ for (const unsubscribe of tokenSubscriptions) {
151
+ unsubscribe();
152
+ }
153
+ tokenSubscriptions.clear();
154
+ handlers = [];
155
+ }
156
+ };
157
+ }
158
+ //# sourceMappingURL=gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DIAGNOSTIC_CODES","isNotificationError","normalizeEnvelope","IMPLEMENTED_PAYLOAD_VERSION","recordSeen","createPushGate","deps","emit","handlers","subscription","tokenSubscriptions","Set","deliveryChain","Promise","resolve","dispatch","envelope","then","handler","receive","raw","normalized","now","error","PAYLOAD_MALFORMED","message","context","undefined","versionSkew","PAYLOAD_VERSION_SKEW","version","received","implemented","state","dedupId","ownerTag","PAYLOAD_DUPLICATE","getAvailability","availability","provider","PUSH_UNAVAILABLE","getToken","token","length","TOKEN_UNAVAILABLE","Error","onTokenChange","unsubscribe","add","delete","invalidateToken","ok","TOKEN_INVALIDATION_FAILED","onPushReceived","push","subscribeToMessages","filter","h","handleBackground","collectInitial","takeInitialMessage","reportUndeliverable","cause","PUSH_UNDELIVERABLE","flush","dispose","clear"],"sourceRoot":"../../../src","sources":["push/gate.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Push surface: `@chipmobilesdk/rn-notification/push`
5
+ *
6
+ * Separate from the default entrypoint so an app that never imports this ships
7
+ * zero provider code, zero push permissions, and zero entitlements — and takes
8
+ * on none of the provider's data-collection declarations.
9
+ */
10
+
11
+ export { createPushGate } from "./gate.js";
12
+ export { createFcmProvider } from "./fcm-provider.js";
13
+ export { createSignOut } from "./signout.js";
14
+ export { createInstructionHandler } from "./instructions.js";
15
+ export { normalizeEnvelope, IMPLEMENTED_PAYLOAD_VERSION } from "./envelope.js";
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPushGate","createFcmProvider","createSignOut","createInstructionHandler","normalizeEnvelope","IMPLEMENTED_PAYLOAD_VERSION"],"sourceRoot":"../../../src","sources":["push/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,cAAc,QAAQ,WAAQ;AAGvC,SAASC,iBAAiB,QAAQ,mBAAgB;AAGlD,SAASC,aAAa,QAAQ,cAAW;AAGzC,SAASC,wBAAwB,QAAQ,mBAAgB;AAOzD,SAASC,iBAAiB,EAAEC,2BAA2B,QAAQ,eAAY","ignoreList":[]}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Push-driven local scheduling.
5
+ *
6
+ * Where the two paths meet. A server can schedule or cancel a local
7
+ * notification, and it gets **no privileged path**: an instruction arriving by
8
+ * push passes exactly the same identifier validation, moment validation, tone
9
+ * resolution, and permission rules as a request from app code.
10
+ *
11
+ * That symmetry is the point. A server that could bypass validation would be
12
+ * able to put the device into a state the app itself could not produce, and no
13
+ * amount of local correctness would survive it.
14
+ */
15
+
16
+ import { DIAGNOSTIC_CODES, isNotificationError } from "../contract/errors.js";
17
+ export function createInstructionHandler(deps) {
18
+ const emit = deps.emit ?? (() => {});
19
+
20
+ /**
21
+ * Whether a local schedule already covers this event.
22
+ *
23
+ * Local wins: it is the entry the device can present at the right moment with
24
+ * no network. A server that genuinely wants to override sends an explicit
25
+ * cancel followed by a schedule, which is unambiguous in a way "last write
26
+ * wins" is not.
27
+ */
28
+ const localAlreadyCovers = async id => {
29
+ const pending = await deps.engine.getPending();
30
+ const existing = pending.find(entry => entry.id === id);
31
+ return existing !== undefined && !existing.pushCreated;
32
+ };
33
+ return {
34
+ async handle(envelope) {
35
+ if (envelope.kind !== 'schedule' && envelope.kind !== 'cancel') {
36
+ return {
37
+ kind: 'ignored',
38
+ id: envelope.id
39
+ };
40
+ }
41
+ try {
42
+ if (envelope.kind === 'cancel') {
43
+ await deps.scheduler.cancel(envelope.id);
44
+ return {
45
+ kind: 'cancelled',
46
+ id: envelope.id
47
+ };
48
+ }
49
+ if (envelope.moment === undefined || envelope.content === undefined) {
50
+ throw Object.assign(new Error('A schedule instruction must carry both a moment and content.'), {
51
+ code: DIAGNOSTIC_CODES.PAYLOAD_MALFORMED
52
+ });
53
+ }
54
+ if (await localAlreadyCovers(envelope.id)) {
55
+ emit(DIAGNOSTIC_CODES.PAYLOAD_DUPLICATE, 'A local schedule already covers this event; the push instruction was suppressed so the user sees exactly one notification.', {
56
+ id: envelope.id
57
+ });
58
+ return {
59
+ kind: 'suppressed',
60
+ id: envelope.id,
61
+ reason: 'A local schedule already covers this event.'
62
+ };
63
+ }
64
+ const result = await deps.scheduler.schedule({
65
+ id: envelope.id,
66
+ content: envelope.content,
67
+ tone: envelope.tone ?? '',
68
+ moment: envelope.moment,
69
+ routing: envelope.routing,
70
+ ownerTag: envelope.ownerTag
71
+ }, {
72
+ pushCreated: true
73
+ });
74
+ return {
75
+ kind: 'scheduled',
76
+ id: envelope.id,
77
+ replaced: result.replaced
78
+ };
79
+ } catch (error) {
80
+ // Rejected under exactly the rules an app-initiated request would face,
81
+ // and recorded rather than swallowed.
82
+ const code = isNotificationError(error) ? error.code : error.code ?? 'UNKNOWN';
83
+ const reason = error instanceof Error ? error.message : String(error);
84
+ emit(code, `Push instruction rejected: ${reason}`, {
85
+ id: envelope.id
86
+ });
87
+ return {
88
+ kind: 'rejected',
89
+ id: envelope.id,
90
+ code,
91
+ reason
92
+ };
93
+ }
94
+ }
95
+ };
96
+ }
97
+ //# sourceMappingURL=instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DIAGNOSTIC_CODES","isNotificationError","createInstructionHandler","deps","emit","localAlreadyCovers","id","pending","engine","getPending","existing","find","entry","undefined","pushCreated","handle","envelope","kind","scheduler","cancel","moment","content","Object","assign","Error","code","PAYLOAD_MALFORMED","PAYLOAD_DUPLICATE","reason","result","schedule","tone","routing","ownerTag","replaced","error","message","String"],"sourceRoot":"../../../src","sources":["push/instructions.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=provider-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["push/provider-adapter.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Sign-out cleanup.
5
+ *
6
+ * Three things must happen together, and the order matters: invalidate the
7
+ * token first so no further messages arrive for the account being left, then
8
+ * cancel its notifications, then clear its persisted state.
9
+ *
10
+ * Deliberately **scoped to one owner tag**. On a shared device, signing one
11
+ * account out must not clear another's deduplication history or cancel their
12
+ * reminders — and must not discard the channel migration ledger, which
13
+ * describes the device rather than any account.
14
+ */
15
+
16
+ import { clearOwner } from "../state/reset.js";
17
+ export function createSignOut(deps) {
18
+ return {
19
+ async signOut(ownerTag) {
20
+ // Token first: stop the inbound flow before removing what would have
21
+ // handled it, so nothing arrives for an account that is already gone.
22
+ let tokenInvalidated = false;
23
+ if (deps.push !== undefined) {
24
+ try {
25
+ tokenInvalidated = await deps.push.invalidateToken();
26
+ } catch {
27
+ // A failed invalidation must not prevent local cleanup — leaving a
28
+ // signed-out account's notifications on the device is the worse of
29
+ // the two outcomes.
30
+ tokenInvalidated = false;
31
+ }
32
+ }
33
+ const cancelledIds = await deps.scheduler.cancelByOwner(ownerTag);
34
+ const {
35
+ clearedCollections
36
+ } = clearOwner(deps.state, ownerTag);
37
+ deps.emit?.('SIGN_OUT', `Signed out ${ownerTag}: token ${tokenInvalidated ? 'invalidated' : 'not invalidated'}, ${cancelledIds.length} notification(s) cancelled, per-owner state cleared.`, {
38
+ ownerTag,
39
+ tokenInvalidated,
40
+ cancelled: cancelledIds.length
41
+ });
42
+ return {
43
+ ownerTag,
44
+ tokenInvalidated,
45
+ cancelledIds,
46
+ clearedCollections
47
+ };
48
+ }
49
+ };
50
+ }
51
+ //# sourceMappingURL=signout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["clearOwner","createSignOut","deps","signOut","ownerTag","tokenInvalidated","push","undefined","invalidateToken","cancelledIds","scheduler","cancelByOwner","clearedCollections","state","emit","length","cancelled"],"sourceRoot":"../../../src","sources":["push/signout.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,SAASA,UAAU,QAAQ,mBAAgB;AAiB3C,OAAO,SAASC,aAAaA,CAACC,IAAyB,EAAE;EACxD,OAAO;IACN,MAAMC,OAAOA,CAACC,QAAgB,EAA0B;MACvD;MACA;MACA,IAAIC,gBAAgB,GAAG,KAAK;MAC5B,IAAIH,IAAI,CAACI,IAAI,KAAKC,SAAS,EAAE;QAC5B,IAAI;UACHF,gBAAgB,GAAG,MAAMH,IAAI,CAACI,IAAI,CAACE,eAAe,CAAC,CAAC;QACrD,CAAC,CAAC,MAAM;UACP;UACA;UACA;UACAH,gBAAgB,GAAG,KAAK;QACzB;MACD;MAEA,MAAMI,YAAY,GAAG,MAAMP,IAAI,CAACQ,SAAS,CAACC,aAAa,CAACP,QAAQ,CAAC;MACjE,MAAM;QAAEQ;MAAmB,CAAC,GAAGZ,UAAU,CAACE,IAAI,CAACW,KAAK,EAAET,QAAQ,CAAC;MAE/DF,IAAI,CAACY,IAAI,GACR,UAAU,EACV,cAAcV,QAAQ,WAAWC,gBAAgB,GAAG,aAAa,GAAG,iBAAiB,KAAKI,YAAY,CAACM,MAAM,sDAAsD,EACnK;QAAEX,QAAQ;QAAEC,gBAAgB;QAAEW,SAAS,EAAEP,YAAY,CAACM;MAAO,CAC9D,CAAC;MAED,OAAO;QAAEX,QAAQ;QAAEC,gBAAgB;QAAEI,YAAY;QAAEG;MAAmB,CAAC;IACxE;EACD,CAAC;AACF","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Chunked application.
5
+ *
6
+ * A 500-entry reconciliation must not drop frames on a list screen, so work is
7
+ * applied in slices with a yield between them. No single slice may occupy the
8
+ * interface thread for more than 16 ms, which is what holds 60 fps while
9
+ * reconciliation is in flight.
10
+ */
11
+
12
+ export const DEFAULT_CHUNK_SIZE = 25;
13
+
14
+ /** Yields to the event loop so the interface thread can render between slices. */
15
+ export function yieldToEventLoop() {
16
+ return new Promise(resolve => setTimeout(resolve, 0));
17
+ }
18
+ /**
19
+ * Applies `work` to every item, yielding between chunks.
20
+ *
21
+ * Sequential within a chunk rather than parallel: these calls bridge to native,
22
+ * and a burst of concurrent scheduling is where duplicate-delivery races come
23
+ * from.
24
+ */
25
+ export async function applyInChunks(items, work, options = {}) {
26
+ const size = Math.max(1, options.size ?? DEFAULT_CHUNK_SIZE);
27
+ const yieldFn = options.onYield ?? yieldToEventLoop;
28
+ let applied = 0;
29
+ for (let start = 0; start < items.length; start += size) {
30
+ const chunk = items.slice(start, start + size);
31
+ for (const item of chunk) {
32
+ await work(item);
33
+ applied += 1;
34
+ }
35
+
36
+ // No yield after the final chunk — the caller is about to resume anyway.
37
+ if (start + size < items.length) {
38
+ await yieldFn();
39
+ }
40
+ }
41
+ return applied;
42
+ }
43
+ //# sourceMappingURL=chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_CHUNK_SIZE","yieldToEventLoop","Promise","resolve","setTimeout","applyInChunks","items","work","options","size","Math","max","yieldFn","onYield","applied","start","length","chunk","slice","item"],"sourceRoot":"../../../src","sources":["reconcile/chunk.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,kBAAkB,GAAG,EAAE;;AAEpC;AACA,OAAO,SAASC,gBAAgBA,CAAA,EAAkB;EACjD,OAAO,IAAIC,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAE,CAAC,CAAC,CAAC;AACtD;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeE,aAAaA,CAClCC,KAAmB,EACnBC,IAAgC,EAChCC,OAAqB,GAAG,CAAC,CAAC,EACR;EAClB,MAAMC,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,OAAO,CAACC,IAAI,IAAIT,kBAAkB,CAAC;EAC5D,MAAMY,OAAO,GAAGJ,OAAO,CAACK,OAAO,IAAIZ,gBAAgB;EACnD,IAAIa,OAAO,GAAG,CAAC;EAEf,KAAK,IAAIC,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGT,KAAK,CAACU,MAAM,EAAED,KAAK,IAAIN,IAAI,EAAE;IACxD,MAAMQ,KAAK,GAAGX,KAAK,CAACY,KAAK,CAACH,KAAK,EAAEA,KAAK,GAAGN,IAAI,CAAC;IAE9C,KAAK,MAAMU,IAAI,IAAIF,KAAK,EAAE;MACzB,MAAMV,IAAI,CAACY,IAAI,CAAC;MAChBL,OAAO,IAAI,CAAC;IACb;;IAEA;IACA,IAAIC,KAAK,GAAGN,IAAI,GAAGH,KAAK,CAACU,MAAM,EAAE;MAChC,MAAMJ,OAAO,CAAC,CAAC;IAChB;EACD;EAEA,OAAOE,OAAO;AACf","ignoreList":[]}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Desired-versus-device diffing.
5
+ *
6
+ * The package's central promise lives here: reconciling twice with unchanged
7
+ * input must produce **zero** platform operations on the second run. That is
8
+ * only true if "unchanged" is decided by comparing everything that would make
9
+ * the delivered notification different — miss a field and the second run
10
+ * rewrites entries needlessly; include a volatile one and it never settles.
11
+ *
12
+ * Anchoring mode is part of the comparison key deliberately. A mode change on
13
+ * the same identifier must force a replacement rather than read as unchanged,
14
+ * because the two modes resolve to different instants the moment a zone
15
+ * changes.
16
+ */
17
+
18
+ /** The fields that make one delivered notification different from another. */
19
+
20
+ /**
21
+ * Stable serialization of those fields. One function for what the app wants and
22
+ * what the device holds, so the two cannot drift into comparing different
23
+ * things (NOT-19).
24
+ */
25
+ function fingerprintFields(fields) {
26
+ return JSON.stringify([fields.resolvedAt, fields.anchoring, fields.content.title, fields.content.body, fields.content.subtitle ?? null, fields.tone, fields.ownerTag ?? null, fields.groupTag ?? null,
27
+ // Key order is not stable across constructions, so sort before comparing —
28
+ // otherwise two structurally identical payloads could compare unequal and
29
+ // the second pass would rewrite every entry carrying routing data.
30
+ fields.routing === undefined ? null : stableStringify(fields.routing), fields.actions === undefined ? null : fields.actions.map(a => [a.id, a.title, a.mode, a.input?.placeholder ?? null])]);
31
+ }
32
+ function fingerprint(request, resolvedAt) {
33
+ return fingerprintFields({
34
+ ...request,
35
+ resolvedAt,
36
+ anchoring: request.moment.anchoring ?? 'wallClock'
37
+ });
38
+ }
39
+ function entryFingerprint(entry) {
40
+ return fingerprintFields(entry);
41
+ }
42
+
43
+ /** Key-order-independent JSON, so structurally equal payloads compare equal. */
44
+ function stableStringify(value) {
45
+ if (value === null || typeof value !== 'object') return JSON.stringify(value) ?? 'null';
46
+ if (Array.isArray(value)) return `[${value.map(stableStringify).join(',')}]`;
47
+ const entries = Object.entries(value).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
48
+ return `{${entries.map(([k, v]) => `${JSON.stringify(k)}:${stableStringify(v)}`).join(',')}}`;
49
+ }
50
+ /**
51
+ * Computes the minimal operation set.
52
+ *
53
+ * Cancels are emitted before creates so an interrupted pass leaves a
54
+ * recoverable gap rather than a duplicate: a missing notification is fixed by
55
+ * the next reconcile, whereas two notifications for one subject is a defect the
56
+ * user sees.
57
+ */
58
+ export function diff(input) {
59
+ const deviceById = new Map(input.device.map(entry => [entry.id, entry]));
60
+ const desiredIds = new Set(input.desired.map(request => request.id));
61
+ const cancels = [];
62
+ const writes = [];
63
+ const unchanged = [];
64
+ const protectedIds = input.protectedIds ?? new Set();
65
+ for (const entry of input.device) {
66
+ if (!desiredIds.has(entry.id) && !protectedIds.has(entry.id)) {
67
+ cancels.push({
68
+ kind: 'cancel',
69
+ id: entry.id
70
+ });
71
+ }
72
+ }
73
+ for (const request of input.desired) {
74
+ const resolvedAt = input.resolvedAt.get(request.id) ?? request.moment.at;
75
+ const existing = deviceById.get(request.id);
76
+ if (existing === undefined) {
77
+ writes.push({
78
+ kind: 'create',
79
+ id: request.id,
80
+ request,
81
+ resolvedAt
82
+ });
83
+ continue;
84
+ }
85
+ if (fingerprint(request, resolvedAt) === entryFingerprint(existing)) {
86
+ unchanged.push(request.id);
87
+ continue;
88
+ }
89
+ writes.push({
90
+ kind: 'replace',
91
+ id: request.id,
92
+ request,
93
+ resolvedAt
94
+ });
95
+ }
96
+ return {
97
+ operations: [...cancels, ...writes],
98
+ unchanged
99
+ };
100
+ }
101
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fingerprintFields","fields","JSON","stringify","resolvedAt","anchoring","content","title","body","subtitle","tone","ownerTag","groupTag","routing","undefined","stableStringify","actions","map","a","id","mode","input","placeholder","fingerprint","request","moment","entryFingerprint","entry","value","Array","isArray","join","entries","Object","sort","b","k","v","diff","deviceById","Map","device","desiredIds","Set","desired","cancels","writes","unchanged","protectedIds","has","push","kind","get","at","existing","operations"],"sourceRoot":"../../../src","sources":["reconcile/diff.ts"],"mappings":"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","ignoreList":[]}