@econ-v1/domain 6.7.0 → 6.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/errors/index.d.ts +96 -25
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/events/index.d.ts +127 -20
- package/dist/events/index.d.ts.map +1 -1
- package/dist/index.d.ts +250 -47
- package/dist/index.d.ts.map +1 -1
- package/dist/models/agent.d.ts +25 -4
- package/dist/models/agent.d.ts.map +1 -1
- package/dist/models/app-data.d.ts +84 -0
- package/dist/models/app-data.d.ts.map +1 -0
- package/dist/models/conversation.d.ts +12 -2
- package/dist/models/conversation.d.ts.map +1 -1
- package/dist/models/delegation.d.ts +12 -3
- package/dist/models/delegation.d.ts.map +1 -1
- package/dist/models/device-boot-state.d.ts +12 -0
- package/dist/models/device-boot-state.d.ts.map +1 -0
- package/dist/models/device-identity.d.ts +11 -3
- package/dist/models/device-identity.d.ts.map +1 -1
- package/dist/models/graph.d.ts +26 -3
- package/dist/models/graph.d.ts.map +1 -1
- package/dist/models/index.d.ts +82 -14
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/json.d.ts +5 -5
- package/dist/models/json.d.ts.map +1 -1
- package/dist/models/l402.d.ts +4 -5
- package/dist/models/l402.d.ts.map +1 -1
- package/dist/models/live-query-definition.d.ts +15 -16
- package/dist/models/live-query-definition.d.ts.map +1 -1
- package/dist/models/node-app-memory.d.ts +107 -0
- package/dist/models/node-app-memory.d.ts.map +1 -0
- package/dist/models/outbox-intent.d.ts +3 -3
- package/dist/models/outbox-intent.d.ts.map +1 -1
- package/dist/models/outbox.d.ts +67 -15
- package/dist/models/outbox.d.ts.map +1 -1
- package/dist/models/owner-views.d.ts +28 -28
- package/dist/models/owner-views.d.ts.map +1 -1
- package/dist/models/payment.d.ts +28 -9
- package/dist/models/payment.d.ts.map +1 -1
- package/dist/models/query-diff.d.ts +2 -2
- package/dist/models/query-diff.d.ts.map +1 -1
- package/dist/models/release-manifest.d.ts +32 -47
- package/dist/models/release-manifest.d.ts.map +1 -1
- package/dist/models/repository-write.d.ts +3 -3
- package/dist/models/repository-write.d.ts.map +1 -1
- package/dist/models/revisioned-commands.d.ts +66 -13
- package/dist/models/revisioned-commands.d.ts.map +1 -1
- package/dist/models/revisioned.d.ts +50 -10
- package/dist/models/revisioned.d.ts.map +1 -1
- package/dist/models/settings.d.ts +2 -2
- package/dist/models/settings.d.ts.map +1 -1
- package/dist/models/sync.d.ts +18 -18
- package/dist/models/sync.d.ts.map +1 -1
- package/dist/models/wallet.d.ts +16 -16
- package/dist/models/wallet.d.ts.map +1 -1
- package/dist/queries/certificate-trust.d.ts +13 -0
- package/dist/queries/certificate-trust.d.ts.map +1 -0
- package/dist/queries/conversations.d.ts +38 -7
- package/dist/queries/conversations.d.ts.map +1 -1
- package/dist/queries/discovery.d.ts +10 -10
- package/dist/queries/discovery.d.ts.map +1 -1
- package/dist/queries/notifications.d.ts +24 -4
- package/dist/queries/notifications.d.ts.map +1 -1
- package/dist/queries/onboarding-flow.d.ts +25 -0
- package/dist/queries/onboarding-flow.d.ts.map +1 -0
- package/dist/queries/onboarding-lcd-screen.d.ts +56 -0
- package/dist/queries/onboarding-lcd-screen.d.ts.map +1 -0
- package/dist/queries/onboarding-status.d.ts +10 -10
- package/dist/queries/onboarding-status.d.ts.map +1 -1
- package/dist/queries/revisioned.d.ts +47 -13
- package/dist/queries/revisioned.d.ts.map +1 -1
- package/dist/queries/wallet.d.ts +40 -10
- package/dist/queries/wallet.d.ts.map +1 -1
- package/dist/services/abort-signal.d.ts +54 -0
- package/dist/services/abort-signal.d.ts.map +1 -0
- package/dist/services/certificate-trust-service.d.ts +42 -0
- package/dist/services/certificate-trust-service.d.ts.map +1 -0
- package/dist/services/conversation-service.d.ts +103 -15
- package/dist/services/conversation-service.d.ts.map +1 -1
- package/dist/services/conversation-sync.d.ts +9 -5
- package/dist/services/conversation-sync.d.ts.map +1 -1
- package/dist/services/device-boot-state-service.d.ts +17 -0
- package/dist/services/device-boot-state-service.d.ts.map +1 -0
- package/dist/services/device-cleanup-service.d.ts +47 -0
- package/dist/services/device-cleanup-service.d.ts.map +1 -0
- package/dist/services/discovery-probe-service.d.ts +37 -46
- package/dist/services/discovery-probe-service.d.ts.map +1 -1
- package/dist/services/gossip-service.d.ts +28 -13
- package/dist/services/gossip-service.d.ts.map +1 -1
- package/dist/services/invite-redemption-service.d.ts +43 -0
- package/dist/services/invite-redemption-service.d.ts.map +1 -0
- package/dist/services/lan-candidate-refresh-service.d.ts +22 -7
- package/dist/services/lan-candidate-refresh-service.d.ts.map +1 -1
- package/dist/services/lcd-decision-service.d.ts +58 -0
- package/dist/services/lcd-decision-service.d.ts.map +1 -0
- package/dist/services/onboarding-checkpoint-store.d.ts +54 -0
- package/dist/services/onboarding-checkpoint-store.d.ts.map +1 -0
- package/dist/services/onboarding-flow-service.d.ts +180 -0
- package/dist/services/onboarding-flow-service.d.ts.map +1 -0
- package/dist/services/onboarding-status-service.d.ts +21 -38
- package/dist/services/onboarding-status-service.d.ts.map +1 -1
- package/dist/services/outbox-service.d.ts +105 -29
- package/dist/services/outbox-service.d.ts.map +1 -1
- package/dist/services/owner-claim-service.d.ts +187 -0
- package/dist/services/owner-claim-service.d.ts.map +1 -0
- package/dist/services/owner-view-refresh-service.d.ts +40 -0
- package/dist/services/owner-view-refresh-service.d.ts.map +1 -0
- package/dist/services/owner-view-service.d.ts +49 -4
- package/dist/services/owner-view-service.d.ts.map +1 -1
- package/dist/services/peer-directory-service.d.ts +53 -17
- package/dist/services/peer-directory-service.d.ts.map +1 -1
- package/dist/services/release-manifest-verifier.d.ts +18 -20
- package/dist/services/release-manifest-verifier.d.ts.map +1 -1
- package/dist/services/revisioned-domain-service.d.ts +50 -17
- package/dist/services/revisioned-domain-service.d.ts.map +1 -1
- package/dist/services/runtime-globals.d.ts +39 -0
- package/dist/services/runtime-globals.d.ts.map +1 -0
- package/dist/services/session-service.d.ts +23 -3
- package/dist/services/session-service.d.ts.map +1 -1
- package/dist/services/sync/authoritative-mirror.d.ts +88 -15
- package/dist/services/sync/authoritative-mirror.d.ts.map +1 -1
- package/dist/services/sync/index.d.ts +17 -5
- package/dist/services/sync/index.d.ts.map +1 -1
- package/dist/services/sync/log-sync.d.ts +42 -8
- package/dist/services/sync/log-sync.d.ts.map +1 -1
- package/dist/services/sync/revision-merge.d.ts +80 -13
- package/dist/services/sync/revision-merge.d.ts.map +1 -1
- package/dist/services/sync/strategy.d.ts +11 -1
- package/dist/services/sync/strategy.d.ts.map +1 -1
- package/dist/services/transport-manager.d.ts +84 -29
- package/dist/services/transport-manager.d.ts.map +1 -1
- package/dist/services/wallet-mirror-service.d.ts +81 -18
- package/dist/services/wallet-mirror-service.d.ts.map +1 -1
- package/dist/services/wifi-provisioning-service.d.ts +146 -0
- package/dist/services/wifi-provisioning-service.d.ts.map +1 -0
- package/package.json +18 -12
- package/src/errors/index.js +126 -0
- package/src/events/index.js +124 -0
- package/src/index.js +566 -0
- package/src/models/agent.js +43 -0
- package/src/models/app-data.js +122 -0
- package/src/models/conversation.js +36 -0
- package/{dist → src}/models/delegation.js +18 -1
- package/src/models/device-boot-state.js +3 -0
- package/{dist → src}/models/device-identity.js +18 -2
- package/{dist → src}/models/graph.js +30 -3
- package/src/models/index.js +175 -0
- package/src/models/json.js +18 -0
- package/src/models/l402.js +9 -0
- package/src/models/live-query-definition.js +30 -0
- package/src/models/node-app-memory.js +130 -0
- package/src/models/outbox-intent.js +12 -0
- package/{dist → src}/models/outbox.js +102 -3
- package/src/models/owner-views.js +59 -0
- package/src/models/payment.js +24 -0
- package/src/models/query-diff.js +7 -0
- package/src/models/release-manifest.js +160 -0
- package/src/models/repository-write.js +10 -0
- package/src/models/revisioned-commands.js +92 -0
- package/src/models/revisioned.js +41 -0
- package/src/models/settings.js +16 -0
- package/src/models/sync.js +44 -0
- package/src/models/wallet.js +40 -0
- package/src/queries/certificate-trust.js +31 -0
- package/{dist → src}/queries/conversations.js +54 -3
- package/src/queries/discovery.js +34 -0
- package/{dist → src}/queries/notifications.js +25 -2
- package/src/queries/onboarding-flow.js +48 -0
- package/src/queries/onboarding-lcd-screen.js +100 -0
- package/src/queries/onboarding-status.js +34 -0
- package/src/queries/revisioned.js +128 -0
- package/{dist → src}/queries/wallet.js +35 -1
- package/src/services/abort-signal.js +69 -0
- package/src/services/certificate-trust-service.js +119 -0
- package/{dist → src}/services/conversation-service.js +108 -1
- package/src/services/conversation-sync.js +28 -0
- package/src/services/device-boot-state-service.js +45 -0
- package/src/services/device-cleanup-service.js +112 -0
- package/src/services/discovery-probe-service.js +196 -0
- package/{dist → src}/services/gossip-service.js +54 -4
- package/src/services/invite-redemption-service.js +64 -0
- package/src/services/lan-candidate-refresh-service.js +164 -0
- package/src/services/lcd-decision-service.js +93 -0
- package/src/services/onboarding-checkpoint-store.js +155 -0
- package/src/services/onboarding-flow-service.js +1096 -0
- package/src/services/onboarding-status-service.js +64 -0
- package/{dist → src}/services/outbox-service.js +132 -1
- package/src/services/owner-claim-service.js +347 -0
- package/src/services/owner-view-refresh-service.js +208 -0
- package/src/services/owner-view-service.js +87 -0
- package/{dist → src}/services/peer-directory-service.js +72 -3
- package/src/services/release-manifest-verifier.js +108 -0
- package/{dist → src}/services/revisioned-domain-service.js +189 -9
- package/src/services/runtime-globals.js +174 -0
- package/src/services/session-service.js +50 -0
- package/{dist → src}/services/sync/authoritative-mirror.js +90 -1
- package/src/services/sync/index.js +67 -0
- package/src/services/sync/log-sync.js +60 -0
- package/src/services/sync/revision-merge.js +119 -0
- package/src/services/sync/strategy.js +44 -0
- package/src/services/transport-manager.js +478 -0
- package/{dist → src}/services/wallet-mirror-service.js +226 -6
- package/src/services/wifi-provisioning-service.js +278 -0
- package/dist/errors/index.js +0 -45
- package/dist/errors/index.js.map +0 -1
- package/dist/events/index.js +0 -17
- package/dist/events/index.js.map +0 -1
- package/dist/index.js +0 -31
- package/dist/index.js.map +0 -1
- package/dist/models/agent.js +0 -17
- package/dist/models/agent.js.map +0 -1
- package/dist/models/conversation.js +0 -2
- package/dist/models/conversation.js.map +0 -1
- package/dist/models/delegation.js.map +0 -1
- package/dist/models/device-identity.js.map +0 -1
- package/dist/models/graph.js.map +0 -1
- package/dist/models/index.js +0 -8
- package/dist/models/index.js.map +0 -1
- package/dist/models/json.js +0 -2
- package/dist/models/json.js.map +0 -1
- package/dist/models/l402.js +0 -2
- package/dist/models/l402.js.map +0 -1
- package/dist/models/live-query-definition.js +0 -2
- package/dist/models/live-query-definition.js.map +0 -1
- package/dist/models/outbox-intent.js +0 -2
- package/dist/models/outbox-intent.js.map +0 -1
- package/dist/models/outbox.js.map +0 -1
- package/dist/models/owner-views.js +0 -7
- package/dist/models/owner-views.js.map +0 -1
- package/dist/models/payment.js +0 -3
- package/dist/models/payment.js.map +0 -1
- package/dist/models/query-diff.js +0 -2
- package/dist/models/query-diff.js.map +0 -1
- package/dist/models/release-manifest.js +0 -147
- package/dist/models/release-manifest.js.map +0 -1
- package/dist/models/repository-write.js +0 -2
- package/dist/models/repository-write.js.map +0 -1
- package/dist/models/revisioned-commands.js +0 -35
- package/dist/models/revisioned-commands.js.map +0 -1
- package/dist/models/revisioned.js +0 -2
- package/dist/models/revisioned.js.map +0 -1
- package/dist/models/settings.js +0 -2
- package/dist/models/settings.js.map +0 -1
- package/dist/models/sync.js +0 -2
- package/dist/models/sync.js.map +0 -1
- package/dist/models/wallet.js +0 -2
- package/dist/models/wallet.js.map +0 -1
- package/dist/queries/conversations.js.map +0 -1
- package/dist/queries/discovery.js +0 -27
- package/dist/queries/discovery.js.map +0 -1
- package/dist/queries/notifications.js.map +0 -1
- package/dist/queries/onboarding-status.js +0 -27
- package/dist/queries/onboarding-status.js.map +0 -1
- package/dist/queries/revisioned.js +0 -58
- package/dist/queries/revisioned.js.map +0 -1
- package/dist/queries/wallet.js.map +0 -1
- package/dist/services/conversation-service.js.map +0 -1
- package/dist/services/conversation-sync.js +0 -9
- package/dist/services/conversation-sync.js.map +0 -1
- package/dist/services/discovery-probe-service.js +0 -129
- package/dist/services/discovery-probe-service.js.map +0 -1
- package/dist/services/gossip-service.js.map +0 -1
- package/dist/services/lan-candidate-refresh-service.js +0 -79
- package/dist/services/lan-candidate-refresh-service.js.map +0 -1
- package/dist/services/onboarding-status-service.js +0 -32
- package/dist/services/onboarding-status-service.js.map +0 -1
- package/dist/services/outbox-service.js.map +0 -1
- package/dist/services/owner-view-service.js +0 -21
- package/dist/services/owner-view-service.js.map +0 -1
- package/dist/services/peer-directory-service.js.map +0 -1
- package/dist/services/release-manifest-verifier.js +0 -84
- package/dist/services/release-manifest-verifier.js.map +0 -1
- package/dist/services/revisioned-domain-service.js.map +0 -1
- package/dist/services/session-service.js +0 -20
- package/dist/services/session-service.js.map +0 -1
- package/dist/services/sync/authoritative-mirror.js.map +0 -1
- package/dist/services/sync/index.js +0 -4
- package/dist/services/sync/index.js.map +0 -1
- package/dist/services/sync/log-sync.js +0 -20
- package/dist/services/sync/log-sync.js.map +0 -1
- package/dist/services/sync/revision-merge.js +0 -46
- package/dist/services/sync/revision-merge.js.map +0 -1
- package/dist/services/sync/strategy.js +0 -2
- package/dist/services/sync/strategy.js.map +0 -1
- package/dist/services/transport-manager.js +0 -234
- package/dist/services/transport-manager.js.map +0 -1
- 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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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.
|
|
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
|
-
|
|
2
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
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
|
|
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
|
|
22
|
+
export type ReleaseManifestTrustedKey = {
|
|
27
23
|
readonly keyId: string;
|
|
28
24
|
readonly publicKey: Uint8Array;
|
|
29
|
-
}
|
|
30
|
-
export
|
|
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
|
|
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.
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
|
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
|
|
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.
|
|
1
|
+
{"version":3,"file":"revisioned-domain-service.d.ts","sourceRoot":"","sources":["../../src/services/revisioned-domain-service.js"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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.
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
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.
|
|
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
|
|
7
|
-
export type
|
|
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
|