@econ-v1/domain 6.7.0 → 6.11.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 (286) hide show
  1. package/dist/errors/index.d.ts +96 -25
  2. package/dist/errors/index.d.ts.map +1 -1
  3. package/dist/events/index.d.ts +127 -20
  4. package/dist/events/index.d.ts.map +1 -1
  5. package/dist/index.d.ts +250 -47
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/models/agent.d.ts +25 -4
  8. package/dist/models/agent.d.ts.map +1 -1
  9. package/dist/models/app-data.d.ts +84 -0
  10. package/dist/models/app-data.d.ts.map +1 -0
  11. package/dist/models/conversation.d.ts +12 -2
  12. package/dist/models/conversation.d.ts.map +1 -1
  13. package/dist/models/delegation.d.ts +12 -3
  14. package/dist/models/delegation.d.ts.map +1 -1
  15. package/dist/models/device-boot-state.d.ts +12 -0
  16. package/dist/models/device-boot-state.d.ts.map +1 -0
  17. package/dist/models/device-identity.d.ts +11 -3
  18. package/dist/models/device-identity.d.ts.map +1 -1
  19. package/dist/models/graph.d.ts +26 -3
  20. package/dist/models/graph.d.ts.map +1 -1
  21. package/dist/models/index.d.ts +82 -14
  22. package/dist/models/index.d.ts.map +1 -1
  23. package/dist/models/json.d.ts +5 -5
  24. package/dist/models/json.d.ts.map +1 -1
  25. package/dist/models/l402.d.ts +4 -5
  26. package/dist/models/l402.d.ts.map +1 -1
  27. package/dist/models/live-query-definition.d.ts +15 -16
  28. package/dist/models/live-query-definition.d.ts.map +1 -1
  29. package/dist/models/node-app-memory.d.ts +107 -0
  30. package/dist/models/node-app-memory.d.ts.map +1 -0
  31. package/dist/models/outbox-intent.d.ts +3 -3
  32. package/dist/models/outbox-intent.d.ts.map +1 -1
  33. package/dist/models/outbox.d.ts +67 -15
  34. package/dist/models/outbox.d.ts.map +1 -1
  35. package/dist/models/owner-views.d.ts +28 -28
  36. package/dist/models/owner-views.d.ts.map +1 -1
  37. package/dist/models/payment.d.ts +28 -9
  38. package/dist/models/payment.d.ts.map +1 -1
  39. package/dist/models/query-diff.d.ts +2 -2
  40. package/dist/models/query-diff.d.ts.map +1 -1
  41. package/dist/models/release-manifest.d.ts +32 -47
  42. package/dist/models/release-manifest.d.ts.map +1 -1
  43. package/dist/models/repository-write.d.ts +3 -3
  44. package/dist/models/repository-write.d.ts.map +1 -1
  45. package/dist/models/revisioned-commands.d.ts +66 -13
  46. package/dist/models/revisioned-commands.d.ts.map +1 -1
  47. package/dist/models/revisioned.d.ts +50 -10
  48. package/dist/models/revisioned.d.ts.map +1 -1
  49. package/dist/models/settings.d.ts +2 -2
  50. package/dist/models/settings.d.ts.map +1 -1
  51. package/dist/models/sync.d.ts +18 -18
  52. package/dist/models/sync.d.ts.map +1 -1
  53. package/dist/models/wallet.d.ts +16 -16
  54. package/dist/models/wallet.d.ts.map +1 -1
  55. package/dist/queries/certificate-trust.d.ts +13 -0
  56. package/dist/queries/certificate-trust.d.ts.map +1 -0
  57. package/dist/queries/conversations.d.ts +38 -7
  58. package/dist/queries/conversations.d.ts.map +1 -1
  59. package/dist/queries/discovery.d.ts +10 -10
  60. package/dist/queries/discovery.d.ts.map +1 -1
  61. package/dist/queries/notifications.d.ts +24 -4
  62. package/dist/queries/notifications.d.ts.map +1 -1
  63. package/dist/queries/onboarding-flow.d.ts +25 -0
  64. package/dist/queries/onboarding-flow.d.ts.map +1 -0
  65. package/dist/queries/onboarding-lcd-screen.d.ts +56 -0
  66. package/dist/queries/onboarding-lcd-screen.d.ts.map +1 -0
  67. package/dist/queries/onboarding-status.d.ts +10 -10
  68. package/dist/queries/onboarding-status.d.ts.map +1 -1
  69. package/dist/queries/revisioned.d.ts +47 -13
  70. package/dist/queries/revisioned.d.ts.map +1 -1
  71. package/dist/queries/wallet.d.ts +40 -10
  72. package/dist/queries/wallet.d.ts.map +1 -1
  73. package/dist/services/abort-signal.d.ts +54 -0
  74. package/dist/services/abort-signal.d.ts.map +1 -0
  75. package/dist/services/certificate-trust-service.d.ts +42 -0
  76. package/dist/services/certificate-trust-service.d.ts.map +1 -0
  77. package/dist/services/conversation-service.d.ts +103 -15
  78. package/dist/services/conversation-service.d.ts.map +1 -1
  79. package/dist/services/conversation-sync.d.ts +9 -5
  80. package/dist/services/conversation-sync.d.ts.map +1 -1
  81. package/dist/services/device-boot-state-service.d.ts +17 -0
  82. package/dist/services/device-boot-state-service.d.ts.map +1 -0
  83. package/dist/services/device-cleanup-service.d.ts +47 -0
  84. package/dist/services/device-cleanup-service.d.ts.map +1 -0
  85. package/dist/services/discovery-probe-service.d.ts +37 -46
  86. package/dist/services/discovery-probe-service.d.ts.map +1 -1
  87. package/dist/services/gossip-service.d.ts +28 -13
  88. package/dist/services/gossip-service.d.ts.map +1 -1
  89. package/dist/services/invite-redemption-service.d.ts +43 -0
  90. package/dist/services/invite-redemption-service.d.ts.map +1 -0
  91. package/dist/services/lan-candidate-refresh-service.d.ts +22 -7
  92. package/dist/services/lan-candidate-refresh-service.d.ts.map +1 -1
  93. package/dist/services/lcd-decision-service.d.ts +58 -0
  94. package/dist/services/lcd-decision-service.d.ts.map +1 -0
  95. package/dist/services/onboarding-checkpoint-store.d.ts +54 -0
  96. package/dist/services/onboarding-checkpoint-store.d.ts.map +1 -0
  97. package/dist/services/onboarding-flow-service.d.ts +180 -0
  98. package/dist/services/onboarding-flow-service.d.ts.map +1 -0
  99. package/dist/services/onboarding-status-service.d.ts +21 -38
  100. package/dist/services/onboarding-status-service.d.ts.map +1 -1
  101. package/dist/services/outbox-service.d.ts +105 -29
  102. package/dist/services/outbox-service.d.ts.map +1 -1
  103. package/dist/services/owner-claim-service.d.ts +187 -0
  104. package/dist/services/owner-claim-service.d.ts.map +1 -0
  105. package/dist/services/owner-view-refresh-service.d.ts +40 -0
  106. package/dist/services/owner-view-refresh-service.d.ts.map +1 -0
  107. package/dist/services/owner-view-service.d.ts +49 -4
  108. package/dist/services/owner-view-service.d.ts.map +1 -1
  109. package/dist/services/peer-directory-service.d.ts +53 -17
  110. package/dist/services/peer-directory-service.d.ts.map +1 -1
  111. package/dist/services/release-manifest-verifier.d.ts +18 -20
  112. package/dist/services/release-manifest-verifier.d.ts.map +1 -1
  113. package/dist/services/revisioned-domain-service.d.ts +50 -17
  114. package/dist/services/revisioned-domain-service.d.ts.map +1 -1
  115. package/dist/services/runtime-globals.d.ts +39 -0
  116. package/dist/services/runtime-globals.d.ts.map +1 -0
  117. package/dist/services/session-service.d.ts +23 -3
  118. package/dist/services/session-service.d.ts.map +1 -1
  119. package/dist/services/sync/authoritative-mirror.d.ts +88 -15
  120. package/dist/services/sync/authoritative-mirror.d.ts.map +1 -1
  121. package/dist/services/sync/index.d.ts +17 -5
  122. package/dist/services/sync/index.d.ts.map +1 -1
  123. package/dist/services/sync/log-sync.d.ts +42 -8
  124. package/dist/services/sync/log-sync.d.ts.map +1 -1
  125. package/dist/services/sync/revision-merge.d.ts +80 -13
  126. package/dist/services/sync/revision-merge.d.ts.map +1 -1
  127. package/dist/services/sync/strategy.d.ts +11 -1
  128. package/dist/services/sync/strategy.d.ts.map +1 -1
  129. package/dist/services/transport-manager.d.ts +84 -29
  130. package/dist/services/transport-manager.d.ts.map +1 -1
  131. package/dist/services/wallet-mirror-service.d.ts +81 -18
  132. package/dist/services/wallet-mirror-service.d.ts.map +1 -1
  133. package/dist/services/wifi-provisioning-service.d.ts +146 -0
  134. package/dist/services/wifi-provisioning-service.d.ts.map +1 -0
  135. package/package.json +18 -12
  136. package/src/errors/index.js +126 -0
  137. package/src/events/index.js +124 -0
  138. package/src/index.js +566 -0
  139. package/src/models/agent.js +43 -0
  140. package/src/models/app-data.js +122 -0
  141. package/src/models/conversation.js +36 -0
  142. package/{dist → src}/models/delegation.js +18 -1
  143. package/src/models/device-boot-state.js +3 -0
  144. package/{dist → src}/models/device-identity.js +18 -2
  145. package/{dist → src}/models/graph.js +30 -3
  146. package/src/models/index.js +175 -0
  147. package/src/models/json.js +18 -0
  148. package/src/models/l402.js +9 -0
  149. package/src/models/live-query-definition.js +30 -0
  150. package/src/models/node-app-memory.js +130 -0
  151. package/src/models/outbox-intent.js +12 -0
  152. package/{dist → src}/models/outbox.js +102 -3
  153. package/src/models/owner-views.js +59 -0
  154. package/src/models/payment.js +24 -0
  155. package/src/models/query-diff.js +7 -0
  156. package/src/models/release-manifest.js +160 -0
  157. package/src/models/repository-write.js +10 -0
  158. package/src/models/revisioned-commands.js +92 -0
  159. package/src/models/revisioned.js +41 -0
  160. package/src/models/settings.js +16 -0
  161. package/src/models/sync.js +44 -0
  162. package/src/models/wallet.js +40 -0
  163. package/src/queries/certificate-trust.js +31 -0
  164. package/{dist → src}/queries/conversations.js +54 -3
  165. package/src/queries/discovery.js +34 -0
  166. package/{dist → src}/queries/notifications.js +25 -2
  167. package/src/queries/onboarding-flow.js +48 -0
  168. package/src/queries/onboarding-lcd-screen.js +100 -0
  169. package/src/queries/onboarding-status.js +34 -0
  170. package/src/queries/revisioned.js +128 -0
  171. package/{dist → src}/queries/wallet.js +35 -1
  172. package/src/services/abort-signal.js +69 -0
  173. package/src/services/certificate-trust-service.js +119 -0
  174. package/{dist → src}/services/conversation-service.js +108 -1
  175. package/src/services/conversation-sync.js +28 -0
  176. package/src/services/device-boot-state-service.js +45 -0
  177. package/src/services/device-cleanup-service.js +112 -0
  178. package/src/services/discovery-probe-service.js +196 -0
  179. package/{dist → src}/services/gossip-service.js +54 -4
  180. package/src/services/invite-redemption-service.js +64 -0
  181. package/src/services/lan-candidate-refresh-service.js +164 -0
  182. package/src/services/lcd-decision-service.js +93 -0
  183. package/src/services/onboarding-checkpoint-store.js +155 -0
  184. package/src/services/onboarding-flow-service.js +1096 -0
  185. package/src/services/onboarding-status-service.js +64 -0
  186. package/{dist → src}/services/outbox-service.js +132 -1
  187. package/src/services/owner-claim-service.js +347 -0
  188. package/src/services/owner-view-refresh-service.js +208 -0
  189. package/src/services/owner-view-service.js +87 -0
  190. package/{dist → src}/services/peer-directory-service.js +72 -3
  191. package/src/services/release-manifest-verifier.js +108 -0
  192. package/{dist → src}/services/revisioned-domain-service.js +189 -9
  193. package/src/services/runtime-globals.js +174 -0
  194. package/src/services/session-service.js +50 -0
  195. package/{dist → src}/services/sync/authoritative-mirror.js +90 -1
  196. package/src/services/sync/index.js +67 -0
  197. package/src/services/sync/log-sync.js +60 -0
  198. package/src/services/sync/revision-merge.js +119 -0
  199. package/src/services/sync/strategy.js +44 -0
  200. package/src/services/transport-manager.js +478 -0
  201. package/{dist → src}/services/wallet-mirror-service.js +226 -6
  202. package/src/services/wifi-provisioning-service.js +278 -0
  203. package/dist/errors/index.js +0 -45
  204. package/dist/errors/index.js.map +0 -1
  205. package/dist/events/index.js +0 -17
  206. package/dist/events/index.js.map +0 -1
  207. package/dist/index.js +0 -31
  208. package/dist/index.js.map +0 -1
  209. package/dist/models/agent.js +0 -17
  210. package/dist/models/agent.js.map +0 -1
  211. package/dist/models/conversation.js +0 -2
  212. package/dist/models/conversation.js.map +0 -1
  213. package/dist/models/delegation.js.map +0 -1
  214. package/dist/models/device-identity.js.map +0 -1
  215. package/dist/models/graph.js.map +0 -1
  216. package/dist/models/index.js +0 -8
  217. package/dist/models/index.js.map +0 -1
  218. package/dist/models/json.js +0 -2
  219. package/dist/models/json.js.map +0 -1
  220. package/dist/models/l402.js +0 -2
  221. package/dist/models/l402.js.map +0 -1
  222. package/dist/models/live-query-definition.js +0 -2
  223. package/dist/models/live-query-definition.js.map +0 -1
  224. package/dist/models/outbox-intent.js +0 -2
  225. package/dist/models/outbox-intent.js.map +0 -1
  226. package/dist/models/outbox.js.map +0 -1
  227. package/dist/models/owner-views.js +0 -7
  228. package/dist/models/owner-views.js.map +0 -1
  229. package/dist/models/payment.js +0 -3
  230. package/dist/models/payment.js.map +0 -1
  231. package/dist/models/query-diff.js +0 -2
  232. package/dist/models/query-diff.js.map +0 -1
  233. package/dist/models/release-manifest.js +0 -147
  234. package/dist/models/release-manifest.js.map +0 -1
  235. package/dist/models/repository-write.js +0 -2
  236. package/dist/models/repository-write.js.map +0 -1
  237. package/dist/models/revisioned-commands.js +0 -35
  238. package/dist/models/revisioned-commands.js.map +0 -1
  239. package/dist/models/revisioned.js +0 -2
  240. package/dist/models/revisioned.js.map +0 -1
  241. package/dist/models/settings.js +0 -2
  242. package/dist/models/settings.js.map +0 -1
  243. package/dist/models/sync.js +0 -2
  244. package/dist/models/sync.js.map +0 -1
  245. package/dist/models/wallet.js +0 -2
  246. package/dist/models/wallet.js.map +0 -1
  247. package/dist/queries/conversations.js.map +0 -1
  248. package/dist/queries/discovery.js +0 -27
  249. package/dist/queries/discovery.js.map +0 -1
  250. package/dist/queries/notifications.js.map +0 -1
  251. package/dist/queries/onboarding-status.js +0 -27
  252. package/dist/queries/onboarding-status.js.map +0 -1
  253. package/dist/queries/revisioned.js +0 -58
  254. package/dist/queries/revisioned.js.map +0 -1
  255. package/dist/queries/wallet.js.map +0 -1
  256. package/dist/services/conversation-service.js.map +0 -1
  257. package/dist/services/conversation-sync.js +0 -9
  258. package/dist/services/conversation-sync.js.map +0 -1
  259. package/dist/services/discovery-probe-service.js +0 -129
  260. package/dist/services/discovery-probe-service.js.map +0 -1
  261. package/dist/services/gossip-service.js.map +0 -1
  262. package/dist/services/lan-candidate-refresh-service.js +0 -79
  263. package/dist/services/lan-candidate-refresh-service.js.map +0 -1
  264. package/dist/services/onboarding-status-service.js +0 -32
  265. package/dist/services/onboarding-status-service.js.map +0 -1
  266. package/dist/services/outbox-service.js.map +0 -1
  267. package/dist/services/owner-view-service.js +0 -21
  268. package/dist/services/owner-view-service.js.map +0 -1
  269. package/dist/services/peer-directory-service.js.map +0 -1
  270. package/dist/services/release-manifest-verifier.js +0 -84
  271. package/dist/services/release-manifest-verifier.js.map +0 -1
  272. package/dist/services/revisioned-domain-service.js.map +0 -1
  273. package/dist/services/session-service.js +0 -20
  274. package/dist/services/session-service.js.map +0 -1
  275. package/dist/services/sync/authoritative-mirror.js.map +0 -1
  276. package/dist/services/sync/index.js +0 -4
  277. package/dist/services/sync/index.js.map +0 -1
  278. package/dist/services/sync/log-sync.js +0 -20
  279. package/dist/services/sync/log-sync.js.map +0 -1
  280. package/dist/services/sync/revision-merge.js +0 -46
  281. package/dist/services/sync/revision-merge.js.map +0 -1
  282. package/dist/services/sync/strategy.js +0 -2
  283. package/dist/services/sync/strategy.js.map +0 -1
  284. package/dist/services/transport-manager.js +0 -234
  285. package/dist/services/transport-manager.js.map +0 -1
  286. package/dist/services/wallet-mirror-service.js.map +0 -1
@@ -0,0 +1,40 @@
1
+ export class OwnerViewRefreshService {
2
+ /** @param {OwnerViewRefreshServiceOptions} options */
3
+ constructor(options: OwnerViewRefreshServiceOptions);
4
+ /** @returns {Promise<void>} */
5
+ refreshAll(): Promise<void>;
6
+ /** @returns {Promise<void>} */
7
+ refreshHome(): Promise<void>;
8
+ /** @returns {Promise<void>} */
9
+ refreshPeers(): Promise<void>;
10
+ /** @returns {Promise<void>} */
11
+ refreshFeed(): Promise<void>;
12
+ /** @returns {Promise<void>} */
13
+ refreshOperational(): Promise<void>;
14
+ #private;
15
+ }
16
+ export type RepositoryJsonValue = import("@econ-v1/ports").RepositoryJsonValue;
17
+ export type DomainEvent = import("../events/index.js").DomainEvent;
18
+ export type FeedItem = import("../models/owner-views.js").FeedItem;
19
+ export type HomeSummary = import("../models/owner-views.js").HomeSummary;
20
+ export type OperationalSummary = import("../models/owner-views.js").OperationalSummary;
21
+ export type OwnerViewRepository = import("../models/owner-views.js").OwnerViewRepository;
22
+ export type PeerDirectoryEntry = import("../models/owner-views.js").PeerDirectoryEntry;
23
+ export type OwnerViewProjectionStore = {
24
+ read(key: string): Promise<{
25
+ readonly cachedAt: string;
26
+ readonly payload: RepositoryJsonValue;
27
+ } | undefined>;
28
+ writeBatch(batch: readonly {
29
+ readonly key: string;
30
+ readonly payload: RepositoryJsonValue;
31
+ }[], cachedAt: string): Promise<void>;
32
+ };
33
+ export type OwnerViewRefreshServiceOptions = {
34
+ readonly network: OwnerViewRepository;
35
+ readonly now?: () => string;
36
+ readonly projections: OwnerViewProjectionStore;
37
+ readonly publish?: (event: DomainEvent) => void;
38
+ readonly validatePersistence?: () => Promise<void>;
39
+ };
40
+ //# sourceMappingURL=owner-view-refresh-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-view-refresh-service.d.ts","sourceRoot":"","sources":["../../src/services/owner-view-refresh-service.js"],"names":[],"mappings":"AAiBA;IAYI,sDAAsD;IACtD,qBADY,8BAA8B,EAOzC;IAED,+BAA+B;IAC/B,cADc,OAAO,CAAC,IAAI,CAAC,CAe1B;IAED,+BAA+B;IAC/B,eADc,OAAO,CAAC,IAAI,CAAC,CAO1B;IAED,+BAA+B;IAC/B,gBADc,OAAO,CAAC,IAAI,CAAC,CAO1B;IAED,+BAA+B;IAC/B,eADc,OAAO,CAAC,IAAI,CAAC,CAO1B;IAED,+BAA+B;IAC/B,sBADc,OAAO,CAAC,IAAI,CAAC,CAO1B;;CAeJ;kCAtGa,OAAO,gBAAgB,EAAE,mBAAmB;0BAC5C,OAAO,oBAAoB,EAAE,WAAW;uBACxC,OAAO,0BAA0B,EAAE,QAAQ;0BAC3C,OAAO,0BAA0B,EAAE,WAAW;iCAC9C,OAAO,0BAA0B,EAAE,kBAAkB;kCACrD,OAAO,0BAA0B,EAAE,mBAAmB;iCACtD,OAAO,0BAA0B,EAAE,kBAAkB;uCAsMrD;IAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IAAC,UAAU,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAA;KAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE;6CAChP;IAAE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,wBAAwB,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE"}
@@ -1,10 +1,55 @@
1
- import type { FeedItem, FeedQuery, HomeSummary, OperationalSummary, OwnerViewRepository, PeerDirectoryEntry, PeerDirectoryQuery } from "../models/owner-views.js";
2
- export declare class OwnerViewService {
3
- #private;
4
- constructor(repository: OwnerViewRepository);
1
+ /**
2
+ * @typedef {import("../models/owner-views.js").FeedItem} FeedItem
3
+ */
4
+ /**
5
+ * @typedef {import("../models/owner-views.js").FeedQuery} FeedQuery
6
+ */
7
+ /**
8
+ * @typedef {import("../models/owner-views.js").HomeSummary} HomeSummary
9
+ */
10
+ /**
11
+ * @typedef {import("../models/owner-views.js").OperationalSummary} OperationalSummary
12
+ */
13
+ /**
14
+ * @typedef {import("../models/owner-views.js").OwnerViewRepository} OwnerViewRepository
15
+ */
16
+ /**
17
+ * @typedef {import("../models/owner-views.js").PeerDirectoryEntry} PeerDirectoryEntry
18
+ */
19
+ /**
20
+ * @typedef {import("../models/owner-views.js").PeerDirectoryQuery} PeerDirectoryQuery
21
+ */
22
+ export class OwnerViewService {
23
+ /**
24
+ * @param {OwnerViewRepository} repository Local repository for declared default projections.
25
+ * @param {OwnerViewRepository} [onlineRepository=repository] Online repository for undeclared filtered queries.
26
+ */
27
+ constructor(repository: OwnerViewRepository, onlineRepository?: OwnerViewRepository);
28
+ /**
29
+ * @returns {Promise<readonly HomeSummary[]>}
30
+ */
5
31
  readHome(): Promise<readonly HomeSummary[]>;
32
+ /**
33
+ * @param {PeerDirectoryQuery} params
34
+ * @returns {Promise<readonly PeerDirectoryEntry[]>}
35
+ */
6
36
  listPeers(params: PeerDirectoryQuery): Promise<readonly PeerDirectoryEntry[]>;
37
+ /**
38
+ * @param {FeedQuery} params
39
+ * @returns {Promise<readonly FeedItem[]>}
40
+ */
7
41
  listFeed(params: FeedQuery): Promise<readonly FeedItem[]>;
42
+ /**
43
+ * @returns {Promise<readonly OperationalSummary[]>}
44
+ */
8
45
  readOperational(): Promise<readonly OperationalSummary[]>;
46
+ #private;
9
47
  }
48
+ export type FeedItem = import("../models/owner-views.js").FeedItem;
49
+ export type FeedQuery = import("../models/owner-views.js").FeedQuery;
50
+ export type HomeSummary = import("../models/owner-views.js").HomeSummary;
51
+ export type OperationalSummary = import("../models/owner-views.js").OperationalSummary;
52
+ export type OwnerViewRepository = import("../models/owner-views.js").OwnerViewRepository;
53
+ export type PeerDirectoryEntry = import("../models/owner-views.js").PeerDirectoryEntry;
54
+ export type PeerDirectoryQuery = import("../models/owner-views.js").PeerDirectoryQuery;
10
55
  //# sourceMappingURL=owner-view-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"owner-view-service.d.ts","sourceRoot":"","sources":["../../src/services/owner-view-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,qBAAa,gBAAgB;;gBAGf,UAAU,EAAE,mBAAmB;IAIrC,QAAQ,IAAI,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC;IAK3C,SAAS,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC;IAI7E,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC;IAIzD,eAAe,IAAI,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC;CAIhE"}
1
+ {"version":3,"file":"owner-view-service.d.ts","sourceRoot":"","sources":["../../src/services/owner-view-service.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;;GAEG;AACH;;GAEG;AACH;;GAEG;AACH;;GAEG;AACH;;GAEG;AACH;;GAEG;AACH;IAQI;;;KAGC;IACD,wBAHS,mBAAmB,qBACnB,mBAAmB,EAK3B;IACD;;KAEC;IACD,YAFW,OAAO,CAAC,SAAS,WAAW,EAAE,CAAC,CAKzC;IACD;;;KAGC;IACD,kBAHS,kBAAkB,GAChB,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAMhD;IACD;;;KAGC;IACD,iBAHS,SAAS,GACP,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAMtC;IACD;;KAEC;IACD,mBAFW,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAKhD;;CACJ;uBApEY,OAAO,0BAA0B,EAAE,QAAQ;wBAG3C,OAAO,0BAA0B,EAAE,SAAS;0BAG5C,OAAO,0BAA0B,EAAE,WAAW;iCAG9C,OAAO,0BAA0B,EAAE,kBAAkB;kCAGrD,OAAO,0BAA0B,EAAE,mBAAmB;iCAGtD,OAAO,0BAA0B,EAAE,kBAAkB;iCAGrD,OAAO,0BAA0B,EAAE,kBAAkB"}
@@ -1,26 +1,62 @@
1
- import type { HomeNodeCandidate, HomeNodeClient } from "@econ-v1/ports";
2
- export interface PeerAdvertisement {
1
+ /**
2
+ * @param {PeerAdvertisement} advertisement
3
+ * @returns {PeerAdvertisement}
4
+ */
5
+ export function normalizeAdvertisement(advertisement: PeerAdvertisement): PeerAdvertisement;
6
+ /**
7
+ * @param {NodeMetadataWire} metadata
8
+ * @returns {readonly HomeNodeCandidate[]}
9
+ */
10
+ export function nodeMetadataCandidates(metadata: NodeMetadataWire): readonly HomeNodeCandidate[];
11
+ /**
12
+ * @param {readonly string[]} addresses
13
+ * @returns {readonly string[]}
14
+ */
15
+ export function uniqueAddresses(addresses: readonly string[]): readonly string[];
16
+ /**
17
+ * @param {readonly string[]} addresses
18
+ * @returns {readonly string[]}
19
+ */
20
+ export function secureAddresses(addresses: readonly string[]): readonly string[];
21
+ export class PeerDirectoryService {
22
+ /**
23
+ * @param {PeerAdvertisement} advertisement
24
+ * @returns {boolean}
25
+ */
26
+ upsert(advertisement: PeerAdvertisement): boolean;
27
+ /**
28
+ * @param {string} irohNodeId
29
+ * @returns {boolean}
30
+ */
31
+ remove(irohNodeId: string): boolean;
32
+ /**
33
+ * @param {string} irohNodeId
34
+ * @returns {PeerAdvertisement | undefined}
35
+ */
36
+ get(irohNodeId: string): PeerAdvertisement | undefined;
37
+ /**
38
+ * @returns {readonly PeerAdvertisement[]}
39
+ */
40
+ list(): readonly PeerAdvertisement[];
41
+ /**
42
+ * @param {HomeNodeClient} home
43
+ * @returns {Promise<readonly HomeNodeCandidate[]>}
44
+ */
45
+ refreshLanCandidates(home: HomeNodeClient): Promise<readonly HomeNodeCandidate[]>;
46
+ #private;
47
+ }
48
+ export type HomeNodeCandidate = import("@econ-v1/ports").HomeNodeCandidate;
49
+ export type HomeNodeClient = import("@econ-v1/ports").HomeNodeClient;
50
+ export type PeerAdvertisement = {
3
51
  readonly directAddresses: readonly string[];
4
52
  readonly did: string;
5
53
  readonly irohNodeId: string;
6
54
  readonly observedAt: string;
7
- }
8
- export interface NodeMetadataWire {
55
+ };
56
+ export type NodeMetadataWire = {
9
57
  readonly iroh_direct_addresses?: unknown;
10
58
  readonly iroh_endpoint_id?: unknown;
11
59
  readonly listening_addresses?: unknown;
12
60
  readonly node_id?: unknown;
13
- }
14
- export declare class PeerDirectoryService {
15
- #private;
16
- upsert(advertisement: PeerAdvertisement): boolean;
17
- remove(irohNodeId: string): boolean;
18
- get(irohNodeId: string): PeerAdvertisement | undefined;
19
- list(): readonly PeerAdvertisement[];
20
- refreshLanCandidates(home: HomeNodeClient): Promise<readonly HomeNodeCandidate[]>;
21
- }
22
- export declare function normalizeAdvertisement(advertisement: PeerAdvertisement): PeerAdvertisement;
23
- export declare function nodeMetadataCandidates(metadata: NodeMetadataWire): readonly HomeNodeCandidate[];
24
- export declare function uniqueAddresses(addresses: readonly string[]): readonly string[];
25
- export declare function secureAddresses(addresses: readonly string[]): readonly string[];
61
+ };
26
62
  //# sourceMappingURL=peer-directory-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"peer-directory-service.d.ts","sourceRoot":"","sources":["../../src/services/peer-directory-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID,qBAAa,oBAAoB;;IAG/B,MAAM,CAAC,aAAa,EAAE,iBAAiB,GAAG,OAAO;IAQjD,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAInC,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAItD,IAAI,IAAI,SAAS,iBAAiB,EAAE;IAI9B,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;CAOxF;AAED,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,iBAAiB,GAAG,iBAAiB,CAU1F;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,iBAAiB,EAAE,CAQ/F;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAE/E;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAK/E"}
1
+ {"version":3,"file":"peer-directory-service.d.ts","sourceRoot":"","sources":["../../src/services/peer-directory-service.js"],"names":[],"mappings":"AA6DA;;;GAGG;AACH,sDAHW,iBAAiB,GACf,iBAAiB,CAY7B;AACD;;;GAGG;AACH,iDAHW,gBAAgB,GACd,SAAS,iBAAiB,EAAE,CAWxC;AACD;;;GAGG;AACH,2CAHW,SAAS,MAAM,EAAE,GACf,SAAS,MAAM,EAAE,CAI7B;AACD;;;GAGG;AACH,2CAHW,SAAS,MAAM,EAAE,GACf,SAAS,MAAM,EAAE,CAS7B;AA7FD;IAEI;;;KAGC;IACD,sBAHS,iBAAiB,GACf,OAAO,CASjB;IACD;;;KAGC;IACD,mBAHS,MAAM,GACJ,OAAO,CAIjB;IACD;;;KAGC;IACD,gBAHS,MAAM,GACJ,iBAAiB,GAAG,SAAS,CAIvC;IACD;;KAEC;IACD,QAFW,SAAS,iBAAiB,EAAE,CAItC;IACD;;;KAGC;IACD,2BAHS,cAAc,GACZ,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAQ/C;;CACJ;gCAzDY,OAAO,gBAAgB,EAAE,iBAAiB;6BAG1C,OAAO,gBAAgB,EAAE,cAAc;gCAGvC;IAAE,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAAE;+BAGhI;IAAE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAAE"}
@@ -1,20 +1,16 @@
1
- import type { CryptoPort } from "@econ-v1/ports";
2
- import { type SignedReleaseManifest } from "../models/release-manifest.js";
1
+ /** @typedef {(typeof RELEASE_MANIFEST_REJECTION_REASONS)[number]} ReleaseManifestRejectionReason */
2
+ /** @typedef {{ readonly manifest: SignedReleaseManifest, readonly ok: true } | { readonly ok: false, readonly reason: ReleaseManifestRejectionReason }} ReleaseManifestVerification */
3
+ /** @typedef {{ readonly keyId: string, readonly publicKey: Uint8Array }} ReleaseManifestTrustedKey */
4
+ /** @typedef {{ readonly allowedChannels: readonly string[], readonly cryptoPort: Pick<CryptoPort, "digestSha256" | "verifyEd25519">, readonly currentProtocolVersion: number, readonly currentStorageSchemaVersion: number }} ReleaseManifestVerifyOptions */
3
5
  /**
4
- * The #1815 Phase 1 release-manifest verifier (gap-audit §3 "Phase 1"; lifecycle spec §9).
5
- * Pure with respect to the manifest's *content* — the only injected capability is the
6
- * `CryptoPort` subset it needs (`digestSha256`, `verifyEd25519`), so this runs identically
7
- * in a unit test (fake crypto) and in the browser service worker (real WebCrypto, see
8
- * `client/adapters-web/src/identity/webcrypto-crypto-port.ts`). Never throws: every failure
9
- * path resolves to one of the six stable reason codes below so a caller can log/telemetry it
10
- * without risking a raw error message (and its potential detail) leaking anywhere.
11
- *
12
- * Check order is deliberate: structural validity first (so nothing downstream ever reads an
13
- * un-typechecked field), then signature (nothing about an unauthenticated manifest's content
14
- * is trusted for the policy checks that follow), then the manifest's own internal
15
- * self-consistency, then policy (channel/protocol/schema).
6
+ * @param {unknown} candidate
7
+ * @param {readonly ReleaseManifestTrustedKey[]} trustedPublicKeys
8
+ * @param {ReleaseManifestVerifyOptions} options
9
+ * @returns {Promise<ReleaseManifestVerification>}
16
10
  */
17
- export declare const RELEASE_MANIFEST_REJECTION_REASONS: readonly ["malformed", "bad-signature", "hash-mismatch", "incompatible-protocol", "incompatible-schema", "channel-not-allowed"];
11
+ export function verifyReleaseManifest(candidate: unknown, trustedPublicKeys: readonly ReleaseManifestTrustedKey[], options: ReleaseManifestVerifyOptions): Promise<ReleaseManifestVerification>;
12
+ /** @type {readonly ["malformed", "bad-signature", "hash-mismatch", "incompatible-protocol", "incompatible-schema", "channel-not-allowed"]} */
13
+ export const RELEASE_MANIFEST_REJECTION_REASONS: readonly ["malformed", "bad-signature", "hash-mismatch", "incompatible-protocol", "incompatible-schema", "channel-not-allowed"];
18
14
  export type ReleaseManifestRejectionReason = (typeof RELEASE_MANIFEST_REJECTION_REASONS)[number];
19
15
  export type ReleaseManifestVerification = {
20
16
  readonly manifest: SignedReleaseManifest;
@@ -23,15 +19,17 @@ export type ReleaseManifestVerification = {
23
19
  readonly ok: false;
24
20
  readonly reason: ReleaseManifestRejectionReason;
25
21
  };
26
- export interface ReleaseManifestTrustedKey {
22
+ export type ReleaseManifestTrustedKey = {
27
23
  readonly keyId: string;
28
24
  readonly publicKey: Uint8Array;
29
- }
30
- export interface ReleaseManifestVerifyOptions {
25
+ };
26
+ export type ReleaseManifestVerifyOptions = {
31
27
  readonly allowedChannels: readonly string[];
32
28
  readonly cryptoPort: Pick<CryptoPort, "digestSha256" | "verifyEd25519">;
33
29
  readonly currentProtocolVersion: number;
34
30
  readonly currentStorageSchemaVersion: number;
35
- }
36
- export declare function verifyReleaseManifest(candidate: unknown, trustedPublicKeys: readonly ReleaseManifestTrustedKey[], options: ReleaseManifestVerifyOptions): Promise<ReleaseManifestVerification>;
31
+ };
32
+ export type CryptoPort = import("@econ-v1/ports").CryptoPort;
33
+ export type ReleaseManifestAsset = import("../models/release-manifest.js").ReleaseManifestAsset;
34
+ export type SignedReleaseManifest = import("../models/release-manifest.js").SignedReleaseManifest;
37
35
  //# sourceMappingURL=release-manifest-verifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"release-manifest-verifier.d.ts","sourceRoot":"","sources":["../../src/services/release-manifest-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AAEvC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kCAAkC,iIAOrC,CAAC;AAEX,MAAM,MAAM,8BAA8B,GAAG,CAAC,OAAO,kCAAkC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjG,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAC/D;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAA;CAAE,CAAC;AAE5E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,eAAe,CAAC,CAAC;IACxE,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;CAC9C;AAED,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,OAAO,EAClB,iBAAiB,EAAE,SAAS,yBAAyB,EAAE,EACvD,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,2BAA2B,CAAC,CAmCtC"}
1
+ {"version":3,"file":"release-manifest-verifier.d.ts","sourceRoot":"","sources":["../../src/services/release-manifest-verifier.js"],"names":[],"mappings":"AAuBA,oGAAoG;AACpG,uLAAuL;AACvL,sGAAsG;AACtG,8PAA8P;AAE9P;;;;;GAKG;AACH,iDALW,OAAO,qBACP,SAAS,yBAAyB,EAAE,WACpC,4BAA4B,GAC1B,OAAO,CAAC,2BAA2B,CAAC,CAsChD;AAzDD,8IAA8I;AAC9I,iDADW,SAAS,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAQxI;6CAEY,CAAC,OAAO,kCAAkC,EAAE,MAAM,CAAC;0CACnD;IAAE,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAA;CAAE;wCACzI;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAA;CAAE;2CAC1D;IAAE,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,eAAe,CAAC,CAAC;IAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAA;CAAE;yBAxB/M,OAAO,gBAAgB,EAAE,UAAU;mCACnC,OAAO,+BAA+B,EAAE,oBAAoB;oCAC5D,OAAO,+BAA+B,EAAE,qBAAqB"}
@@ -1,17 +1,58 @@
1
- import type { OutboxRepository } from "@econ-v1/ports";
2
- import { type RevisionCommand, type RevisionCommandResult, type RevisionConflictRecord, type RevisionEntity, type RevisionResolution, type RevisionedDomain } from "../models/revisioned.js";
3
- import type { JsonValue } from "../models/json.js";
4
- export interface RevisionedDomainRepository<TValue extends JsonValue> {
1
+ /**
2
+ * @template {JsonValue} TValue
3
+ * @param {unknown} value
4
+ * @param {RevisionedDomain} [expectedDomain]
5
+ * @returns {RevisionConflictRecord<TValue>}
6
+ */
7
+ export function parseRevisionConflictRecord<TValue extends JsonValue>(value: unknown, expectedDomain?: RevisionedDomain): RevisionConflictRecord<TValue>;
8
+ /**
9
+ * @template {JsonValue} TValue
10
+ */
11
+ export class RevisionedDomainService<TValue extends JsonValue> {
12
+ /**
13
+ * @param {RevisionedDomainServiceOptions<TValue>} options
14
+ */
15
+ constructor(options: RevisionedDomainServiceOptions<TValue>);
16
+ /**
17
+ * @param {RevisionedWriteInput<TValue>} input
18
+ * @returns {Promise<RevisionedWriteResult<TValue>>}
19
+ */
20
+ update(input: RevisionedWriteInput<TValue>): Promise<RevisionedWriteResult<TValue>>;
21
+ /**
22
+ * @returns {Promise<readonly RevisionConflictRecord<TValue>[]>}
23
+ */
24
+ listConflicts(): Promise<readonly RevisionConflictRecord<TValue>[]>;
25
+ /**
26
+ * @param {string} conflictIdValue
27
+ * @param {RevisionResolution} resolution
28
+ * @returns {Promise<RevisionResolutionResult<TValue>>}
29
+ */
30
+ resolveConflict(conflictIdValue: string, resolution: RevisionResolution): Promise<RevisionResolutionResult<TValue>>;
31
+ #private;
32
+ }
33
+ export type OutboxRecord = import("@econ-v1/ports").OutboxRecord;
34
+ export type OutboxRepository = import("@econ-v1/ports").OutboxRepository;
35
+ export type RepositoryJsonValue = import("@econ-v1/ports").RepositoryJsonValue;
36
+ export type RevisionCommand<TValue extends JsonValue> = import("../models/revisioned.js").RevisionCommand<TValue>;
37
+ export type RevisionCommandResult<TValue> = import("../models/revisioned.js").RevisionCommandResult<TValue>;
38
+ export type RevisionConflict<TValue> = import("../models/revisioned.js").RevisionConflict<TValue>;
39
+ export type RevisionConflictRecord<TValue extends JsonValue> = import("../models/revisioned.js").RevisionConflictRecord<TValue>;
40
+ export type RevisionConflictPayload<TValue extends JsonValue> = import("../models/revisioned.js").RevisionConflictPayload<TValue>;
41
+ export type RevisionEntity<TValue> = import("../models/revisioned.js").RevisionEntity<TValue>;
42
+ export type RevisionResolution = import("../models/revisioned.js").RevisionResolution;
43
+ export type RevisionedDomain = import("../models/revisioned.js").RevisionedDomain;
44
+ export type JsonValue = import("../models/json.js").JsonValue;
45
+ export type RevisionedDomainRepository<TValue extends JsonValue> = {
5
46
  apply(entity: RevisionEntity<TValue>): Promise<void>;
6
47
  command(input: RevisionCommand<TValue>): Promise<RevisionCommandResult<TValue>>;
7
48
  read(id: string): Promise<RevisionEntity<TValue> | undefined>;
8
- }
9
- export interface RevisionedDomainServiceOptions<TValue extends JsonValue> {
49
+ };
50
+ export type RevisionedDomainServiceOptions<TValue extends JsonValue> = {
10
51
  readonly domain: RevisionedDomain;
11
52
  readonly now?: () => string;
12
53
  readonly outbox: OutboxRepository;
13
54
  readonly repository: RevisionedDomainRepository<TValue>;
14
- }
55
+ };
15
56
  export type RevisionedWriteResult<TValue extends JsonValue> = {
16
57
  readonly entity: RevisionEntity<TValue>;
17
58
  readonly status: "accepted";
@@ -29,18 +70,10 @@ export type RevisionResolutionResult<TValue extends JsonValue> = {
29
70
  readonly conflict: RevisionConflictRecord<TValue>;
30
71
  readonly status: "conflict";
31
72
  };
32
- export interface RevisionedWriteInput<TValue extends JsonValue> {
73
+ export type RevisionedWriteInput<TValue extends JsonValue> = {
33
74
  readonly baseRev?: number;
34
75
  readonly id: string;
35
76
  readonly idempotencyKey: string;
36
77
  readonly value: TValue;
37
- }
38
- export declare class RevisionedDomainService<TValue extends JsonValue> {
39
- #private;
40
- constructor(options: RevisionedDomainServiceOptions<TValue>);
41
- update(input: RevisionedWriteInput<TValue>): Promise<RevisionedWriteResult<TValue>>;
42
- listConflicts(): Promise<readonly RevisionConflictRecord<TValue>[]>;
43
- resolveConflict(conflictIdValue: string, resolution: RevisionResolution): Promise<RevisionResolutionResult<TValue>>;
44
- }
45
- export declare function parseRevisionConflictRecord<TValue extends JsonValue>(value: unknown, expectedDomain?: RevisionedDomain): RevisionConflictRecord<TValue>;
78
+ };
46
79
  //# sourceMappingURL=revisioned-domain-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"revisioned-domain-service.d.ts","sourceRoot":"","sources":["../../src/services/revisioned-domain-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,gBAAgB,EAEjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAE3B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,MAAM,WAAW,0BAA0B,CAAC,MAAM,SAAS,SAAS;IAClE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,8BAA8B,CAAC,MAAM,SAAS,SAAS;IACtE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC,MAAM,CAAC,CAAC;CACzD;AAED,MAAM,MAAM,qBAAqB,CAAC,MAAM,SAAS,SAAS,IACtD;IAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEvF,MAAM,MAAM,wBAAwB,CAAC,MAAM,SAAS,SAAS,IACzD;IAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACzE;IAAE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEvF,MAAM,WAAW,oBAAoB,CAAC,MAAM,SAAS,SAAS;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,uBAAuB,CAAC,MAAM,SAAS,SAAS;;gBAM/C,OAAO,EAAE,8BAA8B,CAAC,MAAM,CAAC;IAOrD,MAAM,CAAC,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAgBnF,aAAa,IAAI,OAAO,CAAC,SAAS,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;IAKnE,eAAe,CACnB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;CAkF7C;AAED,wBAAgB,2BAA2B,CAAC,MAAM,SAAS,SAAS,EAClE,KAAK,EAAE,OAAO,EACd,cAAc,CAAC,EAAE,gBAAgB,GAChC,sBAAsB,CAAC,MAAM,CAAC,CAsBhC"}
1
+ {"version":3,"file":"revisioned-domain-service.d.ts","sourceRoot":"","sources":["../../src/services/revisioned-domain-service.js"],"names":[],"mappings":"AA+OA;;;;;GAKG;AACH,4CALyB,MAAM,SAAjB,SAAU,SACb,OAAO,mBACP,gBAAgB,GACd,sBAAsB,CAAC,MAAM,CAAC,CAyB1C;AAxMD;;GAEG;AACH,qCAFyB,MAAM,SAAjB,SAAU;IAuBpB;;KAEC;IACD,qBAFS,8BAA8B,CAAC,MAAM,CAAC,EAO9C;IACD;;;KAGC;IACD,cAHS,oBAAoB,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAgBhD;IACD;;KAEC;IACD,iBAFW,OAAO,CAAC,SAAS,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAQ5D;IACD;;;;KAIC;IACD,iCAJS,MAAM,cACN,kBAAkB,GAChB,OAAO,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAqCnD;;CAoEJ;2BA3OY,OAAO,gBAAgB,EAAE,YAAY;+BAGrC,OAAO,gBAAgB,EAAE,gBAAgB;kCAGzC,OAAO,gBAAgB,EAAE,mBAAmB;4BAGhC,MAAM,SAAjB,SAAU,IACX,OAAO,yBAAyB,EAAE,eAAe,CAAC,MAAM,CAAC;kCAGzD,MAAM,IACN,OAAO,yBAAyB,EAAE,qBAAqB,CAAC,MAAM,CAAC;6BAG/D,MAAM,IACN,OAAO,yBAAyB,EAAE,gBAAgB,CAAC,MAAM,CAAC;mCAG9C,MAAM,SAAjB,SAAU,IACX,OAAO,yBAAyB,EAAE,sBAAsB,CAAC,MAAM,CAAC;oCAGpD,MAAM,SAAjB,SAAU,IACX,OAAO,yBAAyB,EAAE,uBAAuB,CAAC,MAAM,CAAC;2BAGjE,MAAM,IACN,OAAO,yBAAyB,EAAE,cAAc,CAAC,MAAM,CAAC;iCAGxD,OAAO,yBAAyB,EAAE,kBAAkB;+BAGpD,OAAO,yBAAyB,EAAE,gBAAgB;wBAGlD,OAAO,mBAAmB,EAAE,SAAS;uCAGzB,MAAM,SAAjB,SAAU,IACX;IAAE,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;CAAE;2CAG7L,MAAM,SAAjB,SAAU,IACX;IAAE,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC,MAAM,CAAC,CAAC;CAAE;kCAGnJ,MAAM,SAAjB,SAAU,IACT;IAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE;qCAGnJ,MAAM,SAAjB,SAAU,IACT;IAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE;iCAG/N,MAAM,SAAjB,SAAU,IACX;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAAE"}
@@ -0,0 +1,39 @@
1
+ /** @typedef {import("./abort-signal.js").AbortSignalPort} AbortSignalPort */
2
+ /** @typedef {{ abort(): void, readonly signal: AbortSignalPort }} RuntimeAbortController */
3
+ /** @typedef {{ readonly hostname: string, readonly origin: string, readonly password: string, readonly protocol: string, readonly username: string }} RuntimeUrl */
4
+ /** @typedef {new () => unknown} NoArgumentConstructor */
5
+ /** @typedef {new (input: string) => unknown} StringArgumentConstructor */
6
+ /**
7
+ * @returns {RuntimeAbortController}
8
+ */
9
+ export function createRuntimeAbortController(): RuntimeAbortController;
10
+ /**
11
+ * @param {string} value
12
+ * @returns {RuntimeUrl}
13
+ */
14
+ export function parseRuntimeUrl(value: string): RuntimeUrl;
15
+ /**
16
+ * @param {string} value
17
+ * @returns {Uint8Array}
18
+ */
19
+ export function encodeUtf8(value: string): Uint8Array;
20
+ /**
21
+ * @param {Uint8Array} value
22
+ * @returns {string}
23
+ */
24
+ export function decodeUtf8(value: Uint8Array): string;
25
+ export type AbortSignalPort = import("./abort-signal.js").AbortSignalPort;
26
+ export type RuntimeAbortController = {
27
+ abort(): void;
28
+ readonly signal: AbortSignalPort;
29
+ };
30
+ export type RuntimeUrl = {
31
+ readonly hostname: string;
32
+ readonly origin: string;
33
+ readonly password: string;
34
+ readonly protocol: string;
35
+ readonly username: string;
36
+ };
37
+ export type NoArgumentConstructor = new () => unknown;
38
+ export type StringArgumentConstructor = new (input: string) => unknown;
39
+ //# sourceMappingURL=runtime-globals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-globals.d.ts","sourceRoot":"","sources":["../../src/services/runtime-globals.js"],"names":[],"mappings":"AAEA,6EAA6E;AAE7E,4FAA4F;AAC5F,oKAAoK;AACpK,yDAAyD;AACzD,0EAA0E;AAE1E;;GAEG;AACH,gDAFa,sBAAsB,CAYlC;AAED;;;GAGG;AACH,uCAHW,MAAM,GACJ,UAAU,CAYtB;AAED;;;GAGG;AACH,kCAHW,MAAM,GACJ,UAAU,CAYtB;AAED;;;GAGG;AACH,kCAHW,UAAU,GACR,MAAM,CAYlB;8BApEa,OAAO,mBAAmB,EAAE,eAAe;qCAE3C;IAAE,KAAK,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CAAE;yBACnD;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;oCACvI,UAAU,OAAO;wCACjB,KAAK,KAAK,EAAE,MAAM,KAAK,OAAO"}
@@ -1,10 +1,30 @@
1
- import type { DeviceDelegation, DeviceIdentity, IdentityDiagnostics, IdentityPort } from "@econ-v1/ports";
2
- export declare class SessionService {
3
- private readonly identity;
1
+ export class SessionService {
2
+ /**
3
+ * @param {IdentityPort} identity
4
+ */
4
5
  constructor(identity: IdentityPort);
6
+ /** @readonly @type {IdentityPort} */
7
+ readonly identity: IdentityPort;
8
+ /**
9
+ * @returns {Promise<DeviceIdentity>}
10
+ */
5
11
  initialize(): Promise<DeviceIdentity>;
12
+ /**
13
+ * @param {DeviceDelegation} delegation
14
+ * @returns {Promise<void>}
15
+ */
6
16
  acceptDelegation(delegation: DeviceDelegation): Promise<void>;
17
+ /**
18
+ * @returns {Promise<void>}
19
+ */
7
20
  revoke(): Promise<void>;
21
+ /**
22
+ * @returns {Promise<IdentityDiagnostics>}
23
+ */
8
24
  diagnostics(): Promise<IdentityDiagnostics>;
9
25
  }
26
+ export type DeviceDelegation = import("@econ-v1/ports").DeviceDelegation;
27
+ export type DeviceIdentity = import("@econ-v1/ports").DeviceIdentity;
28
+ export type IdentityDiagnostics = import("@econ-v1/ports").IdentityDiagnostics;
29
+ export type IdentityPort = import("@econ-v1/ports").IdentityPort;
10
30
  //# sourceMappingURL=session-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-service.d.ts","sourceRoot":"","sources":["../../src/services/session-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAIxB,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,YAAY;IAE7C,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC;IAIrC,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,WAAW,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAGlD"}
1
+ {"version":3,"file":"session-service.d.ts","sourceRoot":"","sources":["../../src/services/session-service.js"],"names":[],"mappings":"AAeA;IAGI;;KAEC;IACD,sBAFS,YAAY,EAIpB;IAPD,qCAAqC;IACrC,mBADqB,YAAY,CACxB;IAOT;;KAEC;IACD,cAFW,OAAO,CAAC,cAAc,CAAC,CAIjC;IACD;;;KAGC;IACD,6BAHS,gBAAgB,GACd,OAAO,CAAC,IAAI,CAAC,CAIvB;IACD;;KAEC;IACD,UAFW,OAAO,CAAC,IAAI,CAAC,CAIvB;IACD;;KAEC;IACD,eAFW,OAAO,CAAC,mBAAmB,CAAC,CAItC;CACJ;+BA9CY,OAAO,gBAAgB,EAAE,gBAAgB;6BAGzC,OAAO,gBAAgB,EAAE,cAAc;kCAGvC,OAAO,gBAAgB,EAAE,mBAAmB;2BAG5C,OAAO,gBAAgB,EAAE,YAAY"}
@@ -1,24 +1,97 @@
1
- import type { AuthoritativeCommand, AuthoritativeSnapshot, SyncApplyResult, SyncDelta, SyncDeltaContext, SyncStrategy } from "../../models/sync.js";
2
- export declare class AuthoritativeRevalidationRequiredError extends Error {
3
- readonly idempotencyKey: string;
1
+ /**
2
+ * @template TPayload
3
+ * @typedef {import("../../models/sync.js").AuthoritativeCommand<TPayload>} AuthoritativeCommand
4
+ */
5
+ /**
6
+ * @template TValue
7
+ * @typedef {import("../../models/sync.js").AuthoritativeSnapshot<TValue>} AuthoritativeSnapshot
8
+ */
9
+ /**
10
+ * @typedef {import("../../models/sync.js").SyncApplyResult} SyncApplyResult
11
+ */
12
+ /**
13
+ * @template TPayload
14
+ * @typedef {import("../../models/sync.js").SyncDelta<TPayload>} SyncDelta
15
+ */
16
+ /**
17
+ * @typedef {import("../../models/sync.js").SyncDeltaContext} SyncDeltaContext
18
+ */
19
+ /**
20
+ * @template TPayload
21
+ * @typedef {import("../../models/sync.js").SyncStrategy<TPayload>} SyncStrategy
22
+ */
23
+ /**
24
+ * @template TValue
25
+ * @template TCommand
26
+ * @template TResult
27
+ * @typedef {{ readonly apply: (snapshot: AuthoritativeSnapshot<TValue>, delta: SyncDelta<TValue>) => Promise<void>; readonly execute: (command: AuthoritativeCommand<TCommand>) => Promise<TResult>; readonly staleAfterMs: number; }} AuthoritativeMirrorOptions
28
+ */
29
+ /**
30
+ * @typedef {{ readonly now: string; readonly revalidate?: () => Promise<boolean>; }} AuthoritativeCommandOptions
31
+ */
32
+ /**
33
+ * @extends {Error}
34
+ */
35
+ export class AuthoritativeRevalidationRequiredError extends Error {
36
+ /**
37
+ * @param {string} idempotencyKey
38
+ */
4
39
  constructor(idempotencyKey: string);
40
+ /**
41
+ * @readonly
42
+ * @type {string}
43
+ */
44
+ readonly idempotencyKey: string;
5
45
  }
6
- export interface AuthoritativeMirrorOptions<TValue, TCommand, TResult> {
7
- readonly apply: (snapshot: AuthoritativeSnapshot<TValue>, delta: SyncDelta<TValue>) => Promise<void>;
8
- readonly execute: (command: AuthoritativeCommand<TCommand>) => Promise<TResult>;
9
- readonly staleAfterMs: number;
10
- }
11
- export interface AuthoritativeCommandOptions {
12
- readonly now: string;
13
- readonly revalidate?: () => Promise<boolean>;
14
- }
15
- export declare class AuthoritativeMirror<TValue, TCommand, TResult> implements SyncStrategy<TValue> {
16
- #private;
17
- readonly kind: "authoritative-mirror";
46
+ /**
47
+ * @template TValue
48
+ * @template TCommand
49
+ * @template TResult
50
+ * @implements {SyncStrategy<TValue>}
51
+ */
52
+ export class AuthoritativeMirror<TValue, TCommand, TResult> implements SyncStrategy<TValue> {
53
+ /**
54
+ * @param {AuthoritativeMirrorOptions<TValue, TCommand, TResult>} options
55
+ */
18
56
  constructor(options: AuthoritativeMirrorOptions<TValue, TCommand, TResult>);
57
+ /** @readonly @type {"authoritative-mirror"} */
58
+ readonly kind: "authoritative-mirror";
59
+ /**
60
+ * @param {SyncDelta<TValue>} delta
61
+ * @param {SyncDeltaContext} context
62
+ * @returns {Promise<SyncApplyResult>}
63
+ */
19
64
  applyDelta(delta: SyncDelta<TValue>, context: SyncDeltaContext): Promise<SyncApplyResult>;
65
+ /**
66
+ * @returns {AuthoritativeSnapshot<TValue> | undefined}
67
+ */
20
68
  snapshot(): AuthoritativeSnapshot<TValue> | undefined;
69
+ /**
70
+ * @param {string} now
71
+ * @returns {boolean}
72
+ */
21
73
  isStale(now: string): boolean;
74
+ /**
75
+ * @param {AuthoritativeCommand<TCommand>} command
76
+ * @param {AuthoritativeCommandOptions} options
77
+ * @returns {Promise<TResult>}
78
+ */
22
79
  runCommand(command: AuthoritativeCommand<TCommand>, options: AuthoritativeCommandOptions): Promise<TResult>;
80
+ #private;
23
81
  }
82
+ export type AuthoritativeCommand<TPayload> = import("../../models/sync.js").AuthoritativeCommand<TPayload>;
83
+ export type AuthoritativeSnapshot<TValue> = import("../../models/sync.js").AuthoritativeSnapshot<TValue>;
84
+ export type SyncApplyResult = import("../../models/sync.js").SyncApplyResult;
85
+ export type SyncDelta<TPayload> = import("../../models/sync.js").SyncDelta<TPayload>;
86
+ export type SyncDeltaContext = import("../../models/sync.js").SyncDeltaContext;
87
+ export type SyncStrategy<TPayload> = import("../../models/sync.js").SyncStrategy<TPayload>;
88
+ export type AuthoritativeMirrorOptions<TValue, TCommand, TResult> = {
89
+ readonly apply: (snapshot: AuthoritativeSnapshot<TValue>, delta: SyncDelta<TValue>) => Promise<void>;
90
+ readonly execute: (command: AuthoritativeCommand<TCommand>) => Promise<TResult>;
91
+ readonly staleAfterMs: number;
92
+ };
93
+ export type AuthoritativeCommandOptions = {
94
+ readonly now: string;
95
+ readonly revalidate?: () => Promise<boolean>;
96
+ };
24
97
  //# sourceMappingURL=authoritative-mirror.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authoritative-mirror.d.ts","sourceRoot":"","sources":["../../../src/services/sync/authoritative-mirror.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,sCAAuC,SAAQ,KAAK;IAC/D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;gBAEpB,cAAc,EAAE,MAAM;CAKnC;AAED,MAAM,WAAW,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;IACnE,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAED,qBAAa,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CACxD,YAAW,YAAY,CAAC,MAAM,CAAC;;IAC/B,QAAQ,CAAC,IAAI,EAAG,sBAAsB,CAAU;gBAQpC,OAAO,EAAE,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;IASpE,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAc/F,QAAQ,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,SAAS;IAIrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvB,UAAU,CACd,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EACvC,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,OAAO,CAAC;CAgBpB"}
1
+ {"version":3,"file":"authoritative-mirror.d.ts","sourceRoot":"","sources":["../../../src/services/sync/authoritative-mirror.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH;;;GAGG;AACH;;GAEG;AACH;;;GAGG;AACH;;GAEG;AACH;;;GAGG;AACH;;;;;GAKG;AACH;;GAEG;AACH;;GAEG;AACH;IAMI;;KAEC;IACD,4BAFS,MAAM,EAMd;IAZD;;;KAGC;IACD,yBAFQ,MAAM,CAEC;CASlB;AACD;;;;;GAKG;AACH,iCALa,MAAM,EACN,QAAQ,EACR,OAAO,aACJ,YAAY,CAAC,MAAM;IA0B/B;;KAEC;IACD,qBAFS,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAS7D;IAjCD,+CAA+C;IAC/C,eADqB,sBAAsB,CACb;IAiC9B;;;;KAIC;IACD,kBAJS,SAAS,CAAC,MAAM,CAAC,WACjB,gBAAgB,GACd,OAAO,CAAC,eAAe,CAAC,CAelC;IACD;;KAEC;IACD,YAFW,qBAAqB,CAAC,MAAM,CAAC,GAAG,SAAS,CAInD;IACD;;;KAGC;IACD,aAHS,MAAM,GACJ,OAAO,CAIjB;IACD;;;;KAIC;IACD,oBAJS,oBAAoB,CAAC,QAAQ,CAAC,WAC9B,2BAA2B,GACzB,OAAO,CAAC,OAAO,CAAC,CAoB1B;;CACJ;iCAjJY,QAAQ,IACR,OAAO,sBAAsB,EAAE,oBAAoB,CAAC,QAAQ,CAAC;kCAG7D,MAAM,IACN,OAAO,sBAAsB,EAAE,qBAAqB,CAAC,MAAM,CAAC;8BAG5D,OAAO,sBAAsB,EAAE,eAAe;sBAG9C,QAAQ,IACR,OAAO,sBAAsB,EAAE,SAAS,CAAC,QAAQ,CAAC;+BAGlD,OAAO,sBAAsB,EAAE,gBAAgB;yBAG/C,QAAQ,IACR,OAAO,sBAAsB,EAAE,YAAY,CAAC,QAAQ,CAAC;uCAGrD,MAAM,EACN,QAAQ,EACR,OAAO,IACP;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAAE;0CAGzN;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAAE"}
@@ -1,8 +1,20 @@
1
- export { AuthoritativeMirror, AuthoritativeRevalidationRequiredError } from "./authoritative-mirror.js";
2
- export type { AuthoritativeCommandOptions, AuthoritativeMirrorOptions, } from "./authoritative-mirror.js";
3
1
  export { LogSync } from "./log-sync.js";
4
- export type { LogSyncOptions } from "./log-sync.js";
5
2
  export { RevisionMerge } from "./revision-merge.js";
6
- export type { RevisionMergeOptions, RevisionWriteInput } from "./revision-merge.js";
7
- export type { AuthoritativeCommand, AuthoritativeSnapshot, RevisionCommandResult, RevisionConflict, RevisionEntity, RevisionIntent, SyncApplyResult, SyncDelta, SyncDeltaContext, SyncStrategy, SyncStrategyKind, } from "./strategy.js";
3
+ export type AuthoritativeCommandOptions = import("./authoritative-mirror.js").AuthoritativeCommandOptions;
4
+ export type AuthoritativeMirrorOptions<TValue, TCommand, TResult> = import("./authoritative-mirror.js").AuthoritativeMirrorOptions<TValue, TCommand, TResult>;
5
+ export type LogSyncOptions<TPayload> = import("./log-sync.js").LogSyncOptions<TPayload>;
6
+ export type RevisionMergeOptions<TValue> = import("./revision-merge.js").RevisionMergeOptions<TValue>;
7
+ export type RevisionWriteInput<TValue> = import("./revision-merge.js").RevisionWriteInput<TValue>;
8
+ export type AuthoritativeCommand<TPayload> = import("./strategy.js").AuthoritativeCommand<TPayload>;
9
+ export type AuthoritativeSnapshot<TValue> = import("./strategy.js").AuthoritativeSnapshot<TValue>;
10
+ export type RevisionCommandResult<TValue> = import("./strategy.js").RevisionCommandResult<TValue>;
11
+ export type RevisionConflict<TValue> = import("./strategy.js").RevisionConflict<TValue>;
12
+ export type RevisionEntity<TValue> = import("./strategy.js").RevisionEntity<TValue>;
13
+ export type RevisionIntent<TValue> = import("./strategy.js").RevisionIntent<TValue>;
14
+ export type SyncApplyResult = import("./strategy.js").SyncApplyResult;
15
+ export type SyncDelta<TPayload> = import("./strategy.js").SyncDelta<TPayload>;
16
+ export type SyncDeltaContext = import("./strategy.js").SyncDeltaContext;
17
+ export type SyncStrategy<TPayload> = import("./strategy.js").SyncStrategy<TPayload>;
18
+ export type SyncStrategyKind = import("./strategy.js").SyncStrategyKind;
19
+ export { AuthoritativeMirror, AuthoritativeRevalidationRequiredError } from "./authoritative-mirror.js";
8
20
  //# sourceMappingURL=index.d.ts.map