@serve.zone/interfaces 31.8.0 → 32.0.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/.smartconfig.json +1 -0
- package/changelog.md +512 -0
- package/dist_ts/00_commitinfo_data.js +3 -3
- package/dist_ts/appstore/types.d.ts +4 -6
- package/dist_ts/appstore/types.js +5 -5
- package/dist_ts/data/backup.d.ts +3 -26
- package/dist_ts/data/cluster.d.ts +36 -11
- package/dist_ts/data/cluster.js +33 -22
- package/dist_ts/data/clusteringress.d.ts +8 -0
- package/dist_ts/data/clusteringress.js +13 -8
- package/dist_ts/data/clusternode.d.ts +121 -74
- package/dist_ts/data/clusternode.js +109 -132
- package/dist_ts/data/clusterruntime.d.ts +39 -0
- package/dist_ts/data/clusterruntime.js +11 -0
- package/dist_ts/data/coremail.d.ts +3 -7
- package/dist_ts/data/coremail.js +2 -2
- package/dist_ts/data/coremail.runtime.d.ts +0 -1
- package/dist_ts/data/coremail.runtime.js +5 -22
- package/dist_ts/data/deploymentadoption.d.ts +0 -2
- package/dist_ts/data/deploymentadoption.js +40 -6
- package/dist_ts/data/deploymentoperation.js +16 -3
- package/dist_ts/data/deploymentpreflight.d.ts +0 -2
- package/dist_ts/data/deploymentpreflight.js +1 -1
- package/dist_ts/data/immutableimage.d.ts +38 -21
- package/dist_ts/data/immutableimage.js +45 -5
- package/dist_ts/data/index.d.ts +5 -1
- package/dist_ts/data/index.js +5 -1
- package/dist_ts/data/isolatedrestore.d.ts +139 -21
- package/dist_ts/data/isolatedrestore.golden.d.ts +0 -1
- package/dist_ts/data/isolatedrestore.golden.js +6 -9
- package/dist_ts/data/isolatedrestore.js +176 -40
- package/dist_ts/data/mail.d.ts +1 -1
- package/dist_ts/data/networkaddressplan.d.ts +78 -0
- package/dist_ts/data/networkaddressplan.js +114 -0
- package/dist_ts/data/networkauthority.d.ts +20 -22
- package/dist_ts/data/networkauthority.js +29 -43
- package/dist_ts/data/networkcredential.d.ts +10 -10
- package/dist_ts/data/networkcredential.js +16 -16
- package/dist_ts/data/networkdelivery.d.ts +18 -18
- package/dist_ts/data/networkdelivery.js +16 -16
- package/dist_ts/data/networklease.d.ts +18 -7
- package/dist_ts/data/networklease.js +29 -7
- package/dist_ts/data/networknode.d.ts +37 -0
- package/dist_ts/data/networknode.js +6 -0
- package/dist_ts/data/networkprojection.d.ts +59 -60
- package/dist_ts/data/networkprojection.js +53 -57
- package/dist_ts/data/networkprotection.d.ts +27 -28
- package/dist_ts/data/networkprotection.js +36 -36
- package/dist_ts/data/networkrouter.d.ts +11 -11
- package/dist_ts/data/networkrouter.js +1 -1
- package/dist_ts/data/networksigning.d.ts +16 -18
- package/dist_ts/data/networksigning.js +20 -21
- package/dist_ts/data/nodecredential.d.ts +4 -6
- package/dist_ts/data/nodeenrollment.d.ts +35 -40
- package/dist_ts/data/nodeenrollment.js +57 -72
- package/dist_ts/data/privatenetwork.d.ts +21 -24
- package/dist_ts/data/privatenetwork.js +39 -54
- package/dist_ts/data/runtimeassignment.d.ts +50 -34
- package/dist_ts/data/runtimeassignment.js +79 -45
- package/dist_ts/data/runtimeconfig.d.ts +21 -22
- package/dist_ts/data/runtimeconfig.js +37 -100
- package/dist_ts/data/runtimesession.d.ts +100 -62
- package/dist_ts/data/runtimesession.js +98 -79
- package/dist_ts/data/runtimeterminalreceipt.d.ts +28 -29
- package/dist_ts/data/runtimeterminalreceipt.js +42 -42
- package/dist_ts/data/secret.d.ts +18 -25
- package/dist_ts/data/secret.js +12 -52
- package/dist_ts/data/servicecredential.d.ts +14 -16
- package/dist_ts/data/servicecredential.js +17 -28
- package/dist_ts/data/serviceruntime.d.ts +128 -0
- package/dist_ts/data/serviceruntime.js +92 -0
- package/dist_ts/data/sparknodereport.d.ts +27 -14
- package/dist_ts/data/sparknodereport.js +35 -28
- package/dist_ts/data/webpush.d.ts +0 -1
- package/dist_ts/index.d.ts +2 -1
- package/dist_ts/index.js +3 -2
- package/dist_ts/platform/objectstorageretention.d.ts +21 -24
- package/dist_ts/platform/objectstorageretention.js +6 -18
- package/dist_ts/platform/storage.d.ts +1 -3
- package/dist_ts/platform/storagemigration.d.ts +0 -7
- package/dist_ts/platform/storagemigration.golden.d.ts +0 -1
- package/dist_ts/platform/storagemigration.golden.js +8 -12
- package/dist_ts/platform/storagemigration.js +6 -51
- package/dist_ts/platform/types.d.ts +2 -2
- package/dist_ts/private/canonicaljson.d.ts +9 -1
- package/dist_ts/private/canonicaljson.js +14 -2
- package/dist_ts/private/dataproperties.d.ts +62 -0
- package/dist_ts/private/dataproperties.js +117 -0
- package/dist_ts/private/networkcontract.d.ts +14 -10
- package/dist_ts/private/networkcontract.js +15 -1
- package/dist_ts/private/producercontract.d.ts +11 -0
- package/dist_ts/private/producercontract.js +21 -0
- package/dist_ts/private/releaseversion.d.ts +37 -0
- package/dist_ts/private/releaseversion.js +48 -0
- package/dist_ts/private/runtimepolicy.d.ts +31 -0
- package/dist_ts/private/runtimepolicy.js +90 -0
- package/dist_ts/private/tokenlist.d.ts +9 -0
- package/dist_ts/private/tokenlist.js +23 -0
- package/dist_ts/protocol.d.ts +137 -0
- package/dist_ts/protocol.js +255 -0
- package/dist_ts/requests/admin.d.ts +8 -8
- package/dist_ts/requests/backup.d.ts +102 -112
- package/dist_ts/requests/cluster.d.ts +47 -10
- package/dist_ts/requests/cluster.js +1 -1
- package/dist_ts/requests/clusteringress.d.ts +9 -0
- package/dist_ts/requests/clusteringress.js +1 -1
- package/dist_ts/requests/config.d.ts +3 -3
- package/dist_ts/requests/corestore.d.ts +0 -3
- package/dist_ts/requests/corestore.js +5 -9
- package/dist_ts/requests/network.d.ts +87 -31
- package/dist_ts/requests/node.d.ts +15 -28
- package/dist_ts/requests/pallet.d.ts +13 -13
- package/dist_ts/requests/runtimesession.d.ts +53 -41
- package/dist_ts/requests/secret.d.ts +4 -5
- package/dist_ts/requests/secret.js +1 -5
- package/dist_ts/requests/service.d.ts +60 -0
- package/dist_ts/runtime.corestore.d.ts +56 -74
- package/dist_ts/runtime.corestore.databaseexportpackage.d.ts +30 -36
- package/dist_ts/runtime.corestore.databaseexportpackage.golden.d.ts +11 -12
- package/dist_ts/runtime.corestore.databaseexportpackage.golden.js +54 -71
- package/dist_ts/runtime.corestore.databaseexportpackage.js +9 -25
- package/dist_ts/runtime.corestore.js +35 -135
- package/dist_ts/runtime.corestore.relay.js +2 -7
- package/dist_ts/runtime.d.ts +38 -48
- package/dist_ts/runtime.js +20 -77
- package/dist_ts/runtime.networkprojection.d.ts +4 -4
- package/dist_ts/runtime.networkprojection.js +18 -18
- package/dist_ts/runtime.workloadinit.d.ts +23 -24
- package/dist_ts/runtime.workloadinit.js +6 -13
- package/package.json +2 -2
- package/readme.md +540 -269
- package/ts/00_commitinfo_data.ts +3 -3
- package/ts/appstore/types.ts +4 -6
- package/ts/data/backup.ts +3 -38
- package/ts/data/cluster.ts +51 -34
- package/ts/data/clusteringress.ts +12 -12
- package/ts/data/clusternode.ts +204 -232
- package/ts/data/clusterruntime.ts +45 -0
- package/ts/data/coremail.runtime.ts +4 -21
- package/ts/data/coremail.ts +3 -7
- package/ts/data/deploymentadoption.ts +46 -4
- package/ts/data/deploymentoperation.ts +16 -1
- package/ts/data/deploymentpreflight.ts +0 -2
- package/ts/data/immutableimage.ts +71 -24
- package/ts/data/index.ts +5 -1
- package/ts/data/isolatedrestore.golden.ts +5 -9
- package/ts/data/isolatedrestore.ts +339 -54
- package/ts/data/mail.ts +1 -1
- package/ts/data/networkaddressplan.ts +175 -0
- package/ts/data/networkauthority.ts +45 -61
- package/ts/data/networkcredential.ts +24 -24
- package/ts/data/networkdelivery.ts +27 -27
- package/ts/data/networklease.ts +40 -13
- package/ts/data/networknode.ts +37 -0
- package/ts/data/networkprojection.ts +119 -124
- package/ts/data/networkprotection.ts +54 -55
- package/ts/data/networkrouter.ts +14 -14
- package/ts/data/networksigning.ts +29 -32
- package/ts/data/nodecredential.ts +4 -6
- package/ts/data/nodeenrollment.ts +96 -114
- package/ts/data/privatenetwork.ts +58 -74
- package/ts/data/runtimeassignment.ts +143 -94
- package/ts/data/runtimeconfig.ts +62 -122
- package/ts/data/runtimesession.ts +185 -138
- package/ts/data/runtimeterminalreceipt.ts +72 -73
- package/ts/data/secret.ts +28 -76
- package/ts/data/servicecredential.ts +33 -43
- package/ts/data/serviceruntime.ts +208 -0
- package/ts/data/sparknodereport.ts +48 -36
- package/ts/data/webpush.ts +0 -1
- package/ts/index.ts +2 -0
- package/ts/platform/objectstorageretention.ts +36 -55
- package/ts/platform/storage.ts +1 -3
- package/ts/platform/storagemigration.golden.ts +7 -11
- package/ts/platform/storagemigration.ts +5 -55
- package/ts/platform/types.ts +2 -2
- package/ts/private/canonicaljson.ts +13 -1
- package/ts/private/dataproperties.ts +139 -0
- package/ts/private/networkcontract.ts +23 -9
- package/ts/private/producercontract.ts +19 -0
- package/ts/private/releaseversion.ts +70 -0
- package/ts/private/runtimepolicy.ts +105 -0
- package/ts/private/tokenlist.ts +30 -0
- package/ts/protocol.ts +364 -0
- package/ts/requests/admin.ts +11 -11
- package/ts/requests/backup.ts +112 -117
- package/ts/requests/cluster.ts +58 -13
- package/ts/requests/clusteringress.ts +9 -0
- package/ts/requests/config.ts +3 -3
- package/ts/requests/corestore.ts +4 -16
- package/ts/requests/network.ts +90 -41
- package/ts/requests/node.ts +21 -38
- package/ts/requests/pallet.ts +17 -17
- package/ts/requests/runtimesession.ts +63 -51
- package/ts/requests/secret.ts +5 -10
- package/ts/requests/service.ts +81 -0
- package/ts/runtime.corestore.databaseexportpackage.golden.ts +77 -95
- package/ts/runtime.corestore.databaseexportpackage.ts +51 -73
- package/ts/runtime.corestore.relay.ts +1 -10
- package/ts/runtime.corestore.ts +118 -268
- package/ts/runtime.networkprojection.ts +30 -30
- package/ts/runtime.ts +83 -158
- package/ts/runtime.workloadinit.ts +36 -48
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.d.ts +0 -902
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.golden.d.ts +0 -35
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.golden.js +0 -315
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.js +0 -3315
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.d.ts +0 -291
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.d.ts +0 -30
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.js +0 -408
- package/dist_ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.js +0 -1126
- package/ts/runtime.cloudlylegacydeploymentsettlement.golden.ts +0 -421
- package/ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.golden.ts +0 -510
- package/ts/runtime.cloudlylegacydeploymentsettlement.offlineexport.ts +0 -2470
- package/ts/runtime.cloudlylegacydeploymentsettlement.ts +0 -6630
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { snapshotRuntimeSessionBinding } from './runtimesession.js';
|
|
2
|
+
import { validateRuntimeNetworkProjection } from './networkprojection.js';
|
|
3
3
|
import { snapshotRuntimeNetworkDnsLeaseRenewal, validateRuntimeNetworkDnsLeaseRenewal } from './networklease.js';
|
|
4
4
|
import { captureNetwork, failNetwork, networkCounter, networkEffectiveDnsWindow, networkEqual, networkId, networkIpv4, networkRecord, networkReference, networkReferenceOf, networkSafe, networkSameScope, requireNetwork } from '../private/networkcontract.js';
|
|
5
5
|
/** Canonical 32-byte key encoding only. Cryptographic key agreement and pair
|
|
@@ -10,16 +10,16 @@ const key = (value) => {
|
|
|
10
10
|
requireNetwork(decoded.length === 32 && btoa(decoded) === value && [...decoded].some(byte => byte.charCodeAt(0) !== 0));
|
|
11
11
|
return value;
|
|
12
12
|
};
|
|
13
|
-
export const
|
|
13
|
+
export const snapshotGetRuntimeManagedVpnCredentialRequest = (value) => networkSafe(() => {
|
|
14
14
|
const item = networkRecord(captureNetwork(value), ['session', 'projection']);
|
|
15
|
-
return { session:
|
|
15
|
+
return { session: snapshotRuntimeSessionBinding(item.session), projection: networkReference(item.projection) };
|
|
16
16
|
});
|
|
17
|
-
export const
|
|
17
|
+
export const snapshotGetRuntimeManagedVpnCredentialResponse = (value) => networkSafe(() => {
|
|
18
18
|
const item = networkRecord(captureNetwork(value), ['session', 'projection', 'transport', 'relay', 'authorityId',
|
|
19
19
|
'serverPublicKey', 'clientPublicKey', 'clientPrivateKey', 'expiresAt']);
|
|
20
20
|
const relay = networkRecord(item.relay, ['id', 'address', 'port']);
|
|
21
21
|
requireNetwork(item.transport === 'quic');
|
|
22
|
-
return { session:
|
|
22
|
+
return { session: snapshotRuntimeSessionBinding(item.session), projection: networkReference(item.projection), transport: 'quic',
|
|
23
23
|
relay: { id: networkId(relay.id), address: networkIpv4(relay.address), port: networkCounter(relay.port, 65535) },
|
|
24
24
|
authorityId: networkId(item.authorityId), serverPublicKey: key(item.serverPublicKey), clientPublicKey: key(item.clientPublicKey),
|
|
25
25
|
clientPrivateKey: key(item.clientPrivateKey), expiresAt: networkCounter(item.expiresAt) };
|
|
@@ -30,11 +30,11 @@ const bindRequest = (request, projection, trusted) => {
|
|
|
30
30
|
};
|
|
31
31
|
/** Content binding only. The caller must resolve the exact current projection
|
|
32
32
|
* and authenticate/fence the current physical peer before and after native work. */
|
|
33
|
-
export const
|
|
33
|
+
export const bindGetRuntimeManagedVpnCredentialRequest = async (value, projectionValue, trustedSessionValue) => {
|
|
34
34
|
try {
|
|
35
|
-
const request =
|
|
36
|
-
const trusted =
|
|
37
|
-
const projection = await
|
|
35
|
+
const request = snapshotGetRuntimeManagedVpnCredentialRequest(value);
|
|
36
|
+
const trusted = snapshotRuntimeSessionBinding(trustedSessionValue);
|
|
37
|
+
const projection = await validateRuntimeNetworkProjection(projectionValue);
|
|
38
38
|
bindRequest(request, projection, trusted);
|
|
39
39
|
return request;
|
|
40
40
|
}
|
|
@@ -48,13 +48,13 @@ export const bindGetRuntimeManagedVpnCredentialRequestV1 = async (value, project
|
|
|
48
48
|
* projection, or null; this helper verifies no signature. Time is caller-qualified;
|
|
49
49
|
* this helper does not sample a clock, authenticate a transport, admit policy or
|
|
50
50
|
* prove a running managed connection. */
|
|
51
|
-
export const
|
|
51
|
+
export const bindGetRuntimeManagedVpnCredentialResponse = async (value, requestValue, projectionValue, trustedSessionValue, nowValue, renewalValue = null) => {
|
|
52
52
|
try {
|
|
53
|
-
const response =
|
|
54
|
-
const request =
|
|
55
|
-
const trusted =
|
|
53
|
+
const response = snapshotGetRuntimeManagedVpnCredentialResponse(value);
|
|
54
|
+
const request = snapshotGetRuntimeManagedVpnCredentialRequest(requestValue);
|
|
55
|
+
const trusted = snapshotRuntimeSessionBinding(trustedSessionValue), now = networkCounter(nowValue);
|
|
56
56
|
const renewalInput = renewalValue === null ? null : snapshotRuntimeNetworkDnsLeaseRenewal(renewalValue);
|
|
57
|
-
const projection = await
|
|
57
|
+
const projection = await validateRuntimeNetworkProjection(projectionValue);
|
|
58
58
|
const renewal = renewalInput === null ? null : await validateRuntimeNetworkDnsLeaseRenewal(renewalInput);
|
|
59
59
|
const window = networkEffectiveDnsWindow(projection, renewal);
|
|
60
60
|
bindRequest(request, projection, trusted);
|
|
@@ -69,4 +69,4 @@ export const bindGetRuntimeManagedVpnCredentialResponseV1 = async (value, reques
|
|
|
69
69
|
return failNetwork();
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya2NyZWRlbnRpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kYXRhL25ldHdvcmtjcmVkZW50aWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSw2QkFBNkIsRUFBK0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQWtDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUcsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakgsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLHlCQUF5QixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUNuSCxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBd0I1STtpRkFDaUY7QUFDakYsTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFjLEVBQVUsRUFBRTtJQUNyQyxjQUFjLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hILE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNkNBQTZDLEdBQUcsQ0FBQyxL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
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
1
|
+
import type { IRuntimeAuthorityReference } from './runtimeassignment.js';
|
|
2
|
+
import type { IRuntimeSessionBinding } from './runtimesession.js';
|
|
3
|
+
import type { IRuntimeNetworkSigningAuthority, ISignedRuntimeNetworkProjection } from './networksigning.js';
|
|
4
4
|
import type { IRuntimeNetworkDnsLeaseRenewalReference, ISignedRuntimeNetworkDnsLeaseRenewal } from './networklease.js';
|
|
5
|
-
export interface
|
|
6
|
-
session:
|
|
7
|
-
authority:
|
|
5
|
+
export interface IApplyRuntimeNetworkSigningAuthorityRequest {
|
|
6
|
+
session: IRuntimeSessionBinding;
|
|
7
|
+
authority: IRuntimeNetworkSigningAuthority;
|
|
8
8
|
}
|
|
9
|
-
export interface
|
|
10
|
-
session:
|
|
11
|
-
signed:
|
|
9
|
+
export interface IApplyRuntimeNetworkProjectionRequest {
|
|
10
|
+
session: IRuntimeSessionBinding;
|
|
11
|
+
signed: ISignedRuntimeNetworkProjection;
|
|
12
12
|
}
|
|
13
13
|
/** Durable admission only. No packet, DNS, pool-activation, fencing or readiness assertion. */
|
|
14
|
-
export interface
|
|
14
|
+
export interface IApplyRuntimeNetworkAuthorityResponse {
|
|
15
15
|
status: 'accepted' | 'replay';
|
|
16
|
-
authority:
|
|
16
|
+
authority: IRuntimeAuthorityReference;
|
|
17
17
|
}
|
|
18
18
|
export interface IApplyRuntimeNetworkDnsLeaseRenewalRequest {
|
|
19
|
-
session:
|
|
19
|
+
session: IRuntimeSessionBinding;
|
|
20
20
|
signed: ISignedRuntimeNetworkDnsLeaseRenewal;
|
|
21
21
|
}
|
|
22
22
|
/** Durable admission only. It does not assert that the node converted the window or serves DNS. */
|
|
@@ -24,17 +24,17 @@ export interface IApplyRuntimeNetworkDnsLeaseRenewalResponse {
|
|
|
24
24
|
status: 'accepted' | 'replay';
|
|
25
25
|
renewal: IRuntimeNetworkDnsLeaseRenewalReference;
|
|
26
26
|
}
|
|
27
|
-
export declare const
|
|
28
|
-
export declare const
|
|
29
|
-
export declare const
|
|
27
|
+
export declare const snapshotApplyRuntimeNetworkSigningAuthorityRequest: (value: unknown) => IApplyRuntimeNetworkSigningAuthorityRequest;
|
|
28
|
+
export declare const snapshotApplyRuntimeNetworkProjectionRequest: (value: unknown) => IApplyRuntimeNetworkProjectionRequest;
|
|
29
|
+
export declare const snapshotApplyRuntimeNetworkAuthorityResponse: (value: unknown) => IApplyRuntimeNetworkAuthorityResponse;
|
|
30
30
|
export declare const snapshotApplyRuntimeNetworkDnsLeaseRenewalRequest: (value: unknown) => IApplyRuntimeNetworkDnsLeaseRenewalRequest;
|
|
31
31
|
export declare const snapshotApplyRuntimeNetworkDnsLeaseRenewalResponse: (value: unknown) => IApplyRuntimeNetworkDnsLeaseRenewalResponse;
|
|
32
32
|
/** trustedSessionValue must come from the receiving CURRENT physical connection. */
|
|
33
|
-
export declare const
|
|
33
|
+
export declare const bindApplyRuntimeNetworkSigningAuthorityRequest: (value: unknown, trustedSessionValue: unknown) => IApplyRuntimeNetworkSigningAuthorityRequest;
|
|
34
34
|
/** Content binding only. Verify signature with stored trust and atomically fence admission. */
|
|
35
|
-
export declare const
|
|
35
|
+
export declare const bindApplyRuntimeNetworkProjectionRequest: (value: unknown, trustedSessionValue: unknown) => IApplyRuntimeNetworkProjectionRequest;
|
|
36
36
|
/** Compare ACK with the exact SENT key or projection reference, never with a response-derived value. */
|
|
37
|
-
export declare const
|
|
37
|
+
export declare const bindApplyRuntimeNetworkAuthorityResponse: (value: unknown, sentReferenceValue: unknown) => IApplyRuntimeNetworkAuthorityResponse;
|
|
38
38
|
/**
|
|
39
39
|
* Content binding only; trustedSessionValue must come from the receiving CURRENT physical
|
|
40
40
|
* connection. A relay pushes a held renewal under the binding the node obtained itself, so this
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { snapshotRuntimeSessionBinding } from './runtimesession.js';
|
|
2
|
+
import { snapshotRuntimeNetworkSigningAuthority, snapshotSignedRuntimeNetworkProjection } from './networksigning.js';
|
|
3
3
|
import { getRuntimeNetworkDnsLeaseRenewalReference, snapshotRuntimeNetworkDnsLeaseRenewal, snapshotRuntimeNetworkDnsLeaseRenewalReference, snapshotSignedRuntimeNetworkDnsLeaseRenewal } from './networklease.js';
|
|
4
4
|
import { captureNetwork, networkEqual, networkRecord, networkReference, networkReferenceOf, networkSafe, networkSameScope, requireNetwork } from '../private/networkcontract.js';
|
|
5
5
|
const admissionStatus = (value) => {
|
|
6
6
|
requireNetwork(value === 'accepted' || value === 'replay');
|
|
7
7
|
return value;
|
|
8
8
|
};
|
|
9
|
-
export const
|
|
9
|
+
export const snapshotApplyRuntimeNetworkSigningAuthorityRequest = (value) => networkSafe(() => {
|
|
10
10
|
const item = networkRecord(captureNetwork(value), ['session', 'authority']);
|
|
11
|
-
return { session:
|
|
11
|
+
return { session: snapshotRuntimeSessionBinding(item.session), authority: snapshotRuntimeNetworkSigningAuthority(item.authority) };
|
|
12
12
|
});
|
|
13
|
-
export const
|
|
13
|
+
export const snapshotApplyRuntimeNetworkProjectionRequest = (value) => networkSafe(() => {
|
|
14
14
|
const item = networkRecord(captureNetwork(value), ['session', 'signed']);
|
|
15
|
-
return { session:
|
|
15
|
+
return { session: snapshotRuntimeSessionBinding(item.session), signed: snapshotSignedRuntimeNetworkProjection(item.signed) };
|
|
16
16
|
});
|
|
17
|
-
export const
|
|
17
|
+
export const snapshotApplyRuntimeNetworkAuthorityResponse = (value) => networkSafe(() => {
|
|
18
18
|
const item = networkRecord(captureNetwork(value), ['status', 'authority']);
|
|
19
19
|
return { status: admissionStatus(item.status), authority: networkReference(item.authority) };
|
|
20
20
|
});
|
|
21
21
|
export const snapshotApplyRuntimeNetworkDnsLeaseRenewalRequest = (value) => networkSafe(() => {
|
|
22
22
|
const item = networkRecord(captureNetwork(value), ['session', 'signed']);
|
|
23
|
-
return { session:
|
|
23
|
+
return { session: snapshotRuntimeSessionBinding(item.session), signed: snapshotSignedRuntimeNetworkDnsLeaseRenewal(item.signed) };
|
|
24
24
|
});
|
|
25
25
|
export const snapshotApplyRuntimeNetworkDnsLeaseRenewalResponse = (value) => networkSafe(() => {
|
|
26
26
|
const item = networkRecord(captureNetwork(value), ['status', 'renewal']);
|
|
27
27
|
return { status: admissionStatus(item.status), renewal: snapshotRuntimeNetworkDnsLeaseRenewalReference(item.renewal) };
|
|
28
28
|
});
|
|
29
29
|
/** trustedSessionValue must come from the receiving CURRENT physical connection. */
|
|
30
|
-
export const
|
|
31
|
-
const request =
|
|
30
|
+
export const bindApplyRuntimeNetworkSigningAuthorityRequest = (value, trustedSessionValue) => networkSafe(() => {
|
|
31
|
+
const request = snapshotApplyRuntimeNetworkSigningAuthorityRequest(value), session = snapshotRuntimeSessionBinding(trustedSessionValue);
|
|
32
32
|
requireNetwork(networkEqual(request.session, session) && networkEqual(request.authority.controller, session.controller));
|
|
33
33
|
return request;
|
|
34
34
|
});
|
|
35
35
|
/** Content binding only. Verify signature with stored trust and atomically fence admission. */
|
|
36
|
-
export const
|
|
37
|
-
const request =
|
|
36
|
+
export const bindApplyRuntimeNetworkProjectionRequest = (value, trustedSessionValue) => networkSafe(() => {
|
|
37
|
+
const request = snapshotApplyRuntimeNetworkProjectionRequest(value), session = snapshotRuntimeSessionBinding(trustedSessionValue);
|
|
38
38
|
requireNetwork(networkEqual(request.session, session) && networkSameScope(request.signed.projection, session));
|
|
39
39
|
return request;
|
|
40
40
|
});
|
|
41
41
|
/** Compare ACK with the exact SENT key or projection reference, never with a response-derived value. */
|
|
42
|
-
export const
|
|
43
|
-
const response =
|
|
42
|
+
export const bindApplyRuntimeNetworkAuthorityResponse = (value, sentReferenceValue) => networkSafe(() => {
|
|
43
|
+
const response = snapshotApplyRuntimeNetworkAuthorityResponse(value);
|
|
44
44
|
const expected = networkReference(captureNetwork(sentReferenceValue));
|
|
45
45
|
requireNetwork(networkEqual(response.authority, networkReferenceOf(expected)));
|
|
46
46
|
return response;
|
|
@@ -52,7 +52,7 @@ export const bindApplyRuntimeNetworkAuthorityResponseV1 = (value, sentReferenceV
|
|
|
52
52
|
* stored trust, then admit and fence atomically.
|
|
53
53
|
*/
|
|
54
54
|
export const bindApplyRuntimeNetworkDnsLeaseRenewalRequest = (value, trustedSessionValue) => networkSafe(() => {
|
|
55
|
-
const request = snapshotApplyRuntimeNetworkDnsLeaseRenewalRequest(value), session =
|
|
55
|
+
const request = snapshotApplyRuntimeNetworkDnsLeaseRenewalRequest(value), session = snapshotRuntimeSessionBinding(trustedSessionValue);
|
|
56
56
|
requireNetwork(networkEqual(request.session, session) && networkSameScope(request.signed.renewal, session));
|
|
57
57
|
return request;
|
|
58
58
|
});
|
|
@@ -63,4 +63,4 @@ export const bindApplyRuntimeNetworkDnsLeaseRenewalResponse = (value, sentRenewa
|
|
|
63
63
|
requireNetwork(networkEqual(response.renewal, sent));
|
|
64
64
|
return response;
|
|
65
65
|
});
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya2RlbGl2ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9uZXR3b3JrZGVsaXZlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckgsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLHFDQUFxQyxFQUN2Riw4Q0FBOEMsRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pILE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQ3ZILGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBeUJ4RCxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWMsRUFBeUIsRUFBRTtJQUNoRSxjQUFjLENBQUMsS0FBSyxLQUFLLFVBQVUsSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUM7SUFBQyxPQUFPLEtBQUssQ0FBQztBQUMzRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrREFBa0QsR0FBRyxDQUFDLEtBQWMsRUFBK0MsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7SUFDbEosTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsNkJBQTZCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxzQ0FBc0MsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUNySSxDQUFDLENBQUMsQ0FBQztBQUNILE1BQU0sQ0FBQyxNQUFNLDRDQUE0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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TSha256Digest } from './immutableimage.js';
|
|
2
|
-
import type {
|
|
3
|
-
import type { IRuntimeNetworkDnsWindow,
|
|
2
|
+
import type { IRuntimeAuthorityReference } from './runtimeassignment.js';
|
|
3
|
+
import type { IRuntimeNetworkDnsWindow, IRuntimeNetworkNodeScope } from './networkprojection.js';
|
|
4
4
|
/**
|
|
5
5
|
* A fresh DNS window for one exact admitted projection, and nothing else.
|
|
6
6
|
*
|
|
@@ -10,8 +10,8 @@ import type { IRuntimeNetworkDnsWindow, IRuntimeNetworkNodeScopeV1 } from './net
|
|
|
10
10
|
* projection by exact reference, so it never joins the projection chain and stops being
|
|
11
11
|
* admissible the moment a successor projection is admitted.
|
|
12
12
|
*/
|
|
13
|
-
export interface IRuntimeNetworkDnsLeaseRenewal extends
|
|
14
|
-
projection:
|
|
13
|
+
export interface IRuntimeNetworkDnsLeaseRenewal extends IRuntimeNetworkNodeScope {
|
|
14
|
+
projection: IRuntimeAuthorityReference;
|
|
15
15
|
/** Orders the renewals of one projection. A receiver may skip sequences, never go back. */
|
|
16
16
|
sequence: number;
|
|
17
17
|
/**
|
|
@@ -23,13 +23,13 @@ export interface IRuntimeNetworkDnsLeaseRenewal extends IRuntimeNetworkNodeScope
|
|
|
23
23
|
}
|
|
24
24
|
/** Names one renewal without its window: what a receiver records and what an ACK repeats. */
|
|
25
25
|
export interface IRuntimeNetworkDnsLeaseRenewalReference {
|
|
26
|
-
projection:
|
|
26
|
+
projection: IRuntimeAuthorityReference;
|
|
27
27
|
sequence: number;
|
|
28
28
|
digest: TSha256Digest;
|
|
29
29
|
}
|
|
30
30
|
export interface ISignedRuntimeNetworkDnsLeaseRenewal {
|
|
31
31
|
/** The signing authority revision that also signs this controller's projections. */
|
|
32
|
-
authority:
|
|
32
|
+
authority: IRuntimeAuthorityReference;
|
|
33
33
|
renewal: IRuntimeNetworkDnsLeaseRenewal;
|
|
34
34
|
/** Ed25519 signature of the complete domain-separated envelope, lowercase hex. */
|
|
35
35
|
signature: string;
|
|
@@ -43,7 +43,7 @@ export interface ISignedRuntimeNetworkDnsLeaseRenewal {
|
|
|
43
43
|
export interface IHoldRuntimeNetworkDnsLeaseRenewalsRequest {
|
|
44
44
|
/** The relay's own socket names the cluster; one relay carries every node of it, so the node is named here. */
|
|
45
45
|
nodeId: string;
|
|
46
|
-
projection:
|
|
46
|
+
projection: IRuntimeAuthorityReference;
|
|
47
47
|
/** Ascending by sequence. Empty holds nothing for this node. */
|
|
48
48
|
renewals: ISignedRuntimeNetworkDnsLeaseRenewal[];
|
|
49
49
|
}
|
|
@@ -64,6 +64,17 @@ export declare const runtimeNetworkDnsLeaseRenewalContract: Readonly<{
|
|
|
64
64
|
readonly escrowRelease: "only-the-current-window-and-only-while-the-holder-has-no-controller-session";
|
|
65
65
|
readonly revocationLatency: "a-detached-cluster-keeps-dns-authority-until-its-last-held-window-ends";
|
|
66
66
|
}>;
|
|
67
|
+
/**
|
|
68
|
+
* Every reason a relay refuses to hold a run, in the words the refusal leads with.
|
|
69
|
+
*
|
|
70
|
+
* A hold is the one call whose outcome a controller cannot read back from its own records: the
|
|
71
|
+
* run lives in the relay's memory, so the refusal is the only statement about whether that node's
|
|
72
|
+
* windows are carried. The relay writes `<name>: <reason>` and the controller matches the name,
|
|
73
|
+
* which is why the names are stated here instead of being spelled out on both sides.
|
|
74
|
+
*/
|
|
75
|
+
export declare const holdRuntimeNetworkDnsLeaseRenewalsRefusals: readonly ["escrow-run-invalid", "escrow-node-not-carried", "escrow-run-foreign-session", "escrow-run-stale", "escrow-run-unordered", "escrow-cloudly-only"];
|
|
76
|
+
/** One of the reasons a relay answers instead of holding a run. */
|
|
77
|
+
export type THoldRuntimeNetworkDnsLeaseRenewalsRefusal = typeof holdRuntimeNetworkDnsLeaseRenewalsRefusals[number];
|
|
67
78
|
export declare const snapshotRuntimeNetworkDnsLeaseRenewal: (value: unknown) => IRuntimeNetworkDnsLeaseRenewal;
|
|
68
79
|
export declare const snapshotRuntimeNetworkDnsLeaseRenewalReference: (value: unknown) => IRuntimeNetworkDnsLeaseRenewalReference;
|
|
69
80
|
export declare const getRuntimeNetworkDnsLeaseRenewalReference: (value: IRuntimeNetworkDnsLeaseRenewal) => IRuntimeNetworkDnsLeaseRenewalReference;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { snapshotRuntimeNetworkNodeScope, snapshotRuntimeNetworkProjection, validateRuntimeNetworkProjection } from './networkprojection.js';
|
|
2
2
|
import { captureNetwork, failNetwork, networkCounter, networkDigest, networkDnsWindow, networkEffectiveDnsWindow, networkEqual, networkHash, networkId, networkList, networkMaximumDnsLeaseMs, networkRecord, networkReference, networkReferenceOf, networkRenewsProjection, networkSafe, networkSameScope, networkScope, networkSignature, requireNetwork } from '../private/networkcontract.js';
|
|
3
3
|
export const runtimeNetworkDnsLeaseRenewalContract = Object.freeze({
|
|
4
4
|
renewalDigestDomain: 'serve.zone/runtime-network-dns-lease-renewal',
|
|
@@ -14,6 +14,28 @@ export const runtimeNetworkDnsLeaseRenewalContract = Object.freeze({
|
|
|
14
14
|
escrowRelease: 'only-the-current-window-and-only-while-the-holder-has-no-controller-session',
|
|
15
15
|
revocationLatency: 'a-detached-cluster-keeps-dns-authority-until-its-last-held-window-ends',
|
|
16
16
|
});
|
|
17
|
+
/**
|
|
18
|
+
* Every reason a relay refuses to hold a run, in the words the refusal leads with.
|
|
19
|
+
*
|
|
20
|
+
* A hold is the one call whose outcome a controller cannot read back from its own records: the
|
|
21
|
+
* run lives in the relay's memory, so the refusal is the only statement about whether that node's
|
|
22
|
+
* windows are carried. The relay writes `<name>: <reason>` and the controller matches the name,
|
|
23
|
+
* which is why the names are stated here instead of being spelled out on both sides.
|
|
24
|
+
*/
|
|
25
|
+
export const holdRuntimeNetworkDnsLeaseRenewalsRefusals = Object.freeze([
|
|
26
|
+
/** The run itself is not a valid one, so nothing of it was held. */
|
|
27
|
+
'escrow-run-invalid',
|
|
28
|
+
/** This relay carries no session for that node; its renewals were not held. */
|
|
29
|
+
'escrow-node-not-carried',
|
|
30
|
+
/** The node's session changed while the run waited, so the run is for a session that is gone. */
|
|
31
|
+
'escrow-run-foreign-session',
|
|
32
|
+
/** The relay already holds a run that is provably newer for the same projection. */
|
|
33
|
+
'escrow-run-stale',
|
|
34
|
+
/** The run renews a projection that cannot be ordered against the held one. */
|
|
35
|
+
'escrow-run-unordered',
|
|
36
|
+
/** A node reached this method: a run is held only for the controller, over the relay's session. */
|
|
37
|
+
'escrow-cloudly-only',
|
|
38
|
+
]);
|
|
17
39
|
export const snapshotRuntimeNetworkDnsLeaseRenewal = (value) => networkSafe(() => {
|
|
18
40
|
const item = networkRecord(captureNetwork(value), ['controller', 'nodeId', 'runtimeNamespace', 'projection', 'sequence', 'dns', 'digest']);
|
|
19
41
|
return { ...networkScope(item), projection: networkReference(item.projection), sequence: networkCounter(item.sequence),
|
|
@@ -58,9 +80,9 @@ const isCurrentWindow = (window, now) => window.notBefore <= now && now < window
|
|
|
58
80
|
*/
|
|
59
81
|
export const getRuntimeNetworkEffectiveDnsWindow = async (projectionValue, renewalValue) => {
|
|
60
82
|
try {
|
|
61
|
-
const projectionInput =
|
|
83
|
+
const projectionInput = snapshotRuntimeNetworkProjection(projectionValue);
|
|
62
84
|
const renewalInput = renewalValue === null ? null : snapshotRuntimeNetworkDnsLeaseRenewal(renewalValue);
|
|
63
|
-
const projection = await
|
|
85
|
+
const projection = await validateRuntimeNetworkProjection(projectionInput);
|
|
64
86
|
const renewal = renewalInput === null ? null : await validateRuntimeNetworkDnsLeaseRenewal(renewalInput);
|
|
65
87
|
return networkEffectiveDnsWindow(projection, renewal);
|
|
66
88
|
}
|
|
@@ -86,12 +108,12 @@ export const admitRuntimeNetworkDnsLeaseRenewal = async (value, currentProjectio
|
|
|
86
108
|
try {
|
|
87
109
|
// Snapshot ALL caller-owned inputs before the first asynchronous operation.
|
|
88
110
|
const incoming = snapshotRuntimeNetworkDnsLeaseRenewal(value);
|
|
89
|
-
const projectionInput =
|
|
111
|
+
const projectionInput = snapshotRuntimeNetworkProjection(currentProjectionValue);
|
|
90
112
|
const previousInput = previousValue === null ? null : snapshotRuntimeNetworkDnsLeaseRenewal(previousValue);
|
|
91
|
-
const trusted =
|
|
113
|
+
const trusted = snapshotRuntimeNetworkNodeScope(trustedScopeValue);
|
|
92
114
|
const now = networkCounter(nowValue);
|
|
93
115
|
const renewal = await validateRuntimeNetworkDnsLeaseRenewal(incoming);
|
|
94
|
-
const projection = await
|
|
116
|
+
const projection = await validateRuntimeNetworkProjection(projectionInput);
|
|
95
117
|
requireNetwork(networkSameScope(projection, trusted) && networkRenewsProjection(renewal, projection));
|
|
96
118
|
const previous = previousInput === null ? null : await validateRuntimeNetworkDnsLeaseRenewal(previousInput);
|
|
97
119
|
if (previous !== null) {
|
|
@@ -156,4 +178,4 @@ export const bindHoldRuntimeNetworkDnsLeaseRenewalsResponse = (value, sentReques
|
|
|
156
178
|
requireNetwork(response.held === snapshotHoldRuntimeNetworkDnsLeaseRenewalsRequest(sentRequestValue).renewals.length);
|
|
157
179
|
return response;
|
|
158
180
|
});
|
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya2xlYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9uZXR3b3JrbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLGtDQUFrQyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkosT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxZQUFZLEVBQzVILFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFDbEgsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQXdEaEosTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNqRSxtQkFBbUIsRUFBRSw4Q0FBOEM7SUFDbkUsZUFBZSxFQUFFLHdEQUF3RDtJQUN6RSxpQkFBaUIsRUFBRSx3QkFBd0I7SUFDM0MsdUJBQXVCLEVBQUUsRUFBRTtJQUMzQiw2RUFBNkU7SUFDN0Usc0JBQXNCLEVBQUUsVUFBVTtJQUNsQyxPQUFPLEVBQUUsNEJBQTRCO0lBQ3JDLFlBQVksRUFBRSxpRUFBaUU7SUFDL0UsUUFBUSxFQUFFLHFEQUFxRDtJQUMvRCxNQUFNLEVBQUUsNkNBQTZDO0lBQ3JELGFBQWEsRUFBRSw2RUFBNkU7SUFDNUYsaUJBQWlCLEVBQUUsd0VBQXdFO0NBQ25GLENBQUMsQ0FBQztBQUVaLE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHLENBQUMsS0FBYyxFQUFrQyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtJQUN4SCxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFD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
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya2xlYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9uZXR3b3JrbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLCtCQUErQixFQUFFLGdDQUFnQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0ksT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxZQUFZLEVBQzVILFdBQVcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLHdCQUF3QixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFDbEgsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQXdEaEosTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNqRSxtQkFBbUIsRUFBRSw4Q0FBOEM7SUFDbkUsZUFBZSxFQUFFLHdEQUF3RDtJQUN6RSxpQkFBaUIsRUFBRSx3QkFBd0I7SUFDM0MsdUJBQXVCLEVBQUUsRUFBRTtJQUMzQiw2RUFBNkU7SUFDN0Usc0JBQXNCLEVBQUUsVUFBVTtJQUNsQyxPQUFPLEVBQUUsNEJBQTRCO0lBQ3JDLFlBQVksRUFBRSxpRUFBaUU7SUFDL0UsUUFBUSxFQUFFLHFEQUFxRDtJQUMvRCxNQUFNLEVBQUUsNkNBQTZDO0lBQ3JELGFBQWEsRUFBRSw2RUFBNkU7SUFDNUYsaUJBQWlCLEVBQUUsd0VBQXdFO0NBQ25GLENBQUMsQ0FBQztBQUVaOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSwwQ0FBMEMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3RFLG9FQUFvRTtJQUNwRSxvQkFBb0I7SUFDcEIsK0VBQStFO0lBQy9FLHlCQUF5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
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { IRuntimeNetworkProtectedAuthority } from './networkauthority.js';
|
|
2
|
+
type TEgressOwner = IRuntimeNetworkProtectedAuthority['egressAuthorities'][number];
|
|
3
|
+
/**
|
|
4
|
+
* One unmet condition of a node's runtime network readiness, in the order the node producer meets
|
|
5
|
+
* them: the node joins the protected authority's egress, every egress owner reports current
|
|
6
|
+
* protection, a handoff is reserved, the router selection carries it, the node's acknowledged
|
|
7
|
+
* projection carries it, and the node is a managed VPN member. `protection-receipts-pending` names
|
|
8
|
+
* the egress owners whose current receipts are still missing.
|
|
9
|
+
*/
|
|
10
|
+
export type TRuntimeNetworkNodeReadinessGap = {
|
|
11
|
+
condition: 'egress-pending' | 'handoff-pending' | 'selection-pending' | 'projection-pending' | 'vpn-member-pending';
|
|
12
|
+
} | {
|
|
13
|
+
condition: 'protection-receipts-pending';
|
|
14
|
+
owners: [TEgressOwner, ...TEgressOwner[]];
|
|
15
|
+
};
|
|
16
|
+
/** A node is ready exactly when nothing is missing. */
|
|
17
|
+
export type IRuntimeNetworkNodeReadiness = {
|
|
18
|
+
nodeId: string;
|
|
19
|
+
} & ({
|
|
20
|
+
ready: true;
|
|
21
|
+
missing: [];
|
|
22
|
+
} | {
|
|
23
|
+
ready: false;
|
|
24
|
+
missing: [TRuntimeNetworkNodeReadinessGap, ...TRuntimeNetworkNodeReadinessGap[]];
|
|
25
|
+
});
|
|
26
|
+
/**
|
|
27
|
+
* The router incarnation of one node. A handoff's id and router incarnation id derive from it, so
|
|
28
|
+
* advancing it is the only way to give a node's router a fresh handoff.
|
|
29
|
+
*/
|
|
30
|
+
export interface IRuntimeRouterIncarnation {
|
|
31
|
+
/** The node id. */
|
|
32
|
+
id: string;
|
|
33
|
+
/** Starts at 1 with the node's first handoff; every reincarnation advances it by one. */
|
|
34
|
+
incarnation: number;
|
|
35
|
+
}
|
|
36
|
+
export declare const snapshotRuntimeRouterIncarnation: (value: unknown) => IRuntimeRouterIncarnation;
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { captureNetwork, networkCounter, networkId, networkRecord, networkSafe } from '../private/networkcontract.js';
|
|
2
|
+
export const snapshotRuntimeRouterIncarnation = (value) => networkSafe(() => {
|
|
3
|
+
const item = networkRecord(captureNetwork(value), ['id', 'incarnation']);
|
|
4
|
+
return { id: networkId(item.id), incarnation: networkCounter(item.incarnation) };
|
|
5
|
+
});
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29ya25vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kYXRhL25ldHdvcmtub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFnQ3RILE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsS0FBYyxFQUE2QixFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtJQUM5RyxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDekUsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7QUFDbkYsQ0FBQyxDQUFDLENBQUMifQ==
|