@dxos/credentials 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef
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/lib/neutral/index.mjs +46 -305
- package/dist/lib/neutral/index.mjs.map +2 -2
- package/dist/lib/neutral/meta.json +1 -1
- package/dist/types/src/credentials/assertions.d.ts.map +1 -1
- package/dist/types/src/credentials/credential-factory.d.ts.map +1 -1
- package/dist/types/src/credentials/credential-generator.d.ts.map +1 -1
- package/dist/types/src/credentials/signing.d.ts.map +1 -1
- package/dist/types/src/credentials/verifier.d.ts.map +1 -1
- package/dist/types/src/did.d.ts.map +1 -1
- package/dist/types/src/graph/credential-graph.d.ts.map +1 -1
- package/dist/types/src/passcode.d.ts.map +1 -1
- package/dist/types/src/presentations/presentation.d.ts.map +1 -1
- package/dist/types/src/presentations/signing.d.ts.map +1 -1
- package/dist/types/src/presentations/verifier.d.ts.map +1 -1
- package/dist/types/src/processor/device-state-machine.d.ts.map +1 -1
- package/dist/types/src/processor/profile-state-machine.d.ts.map +1 -1
- package/dist/types/src/seedphrase.d.ts.map +1 -1
- package/dist/types/src/state-machine/feed-state-machine.d.ts.map +1 -1
- package/dist/types/src/state-machine/invitation-state-machine.d.ts.map +1 -1
- package/dist/types/src/state-machine/member-state-machine.d.ts.map +1 -1
- package/dist/types/src/state-machine/space-state-machine.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -15
- package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
|
@@ -28,15 +28,7 @@ import { invariant } from "@dxos/invariant";
|
|
|
28
28
|
var __dxlog_file = "/__w/dxos/dxos/packages/core/halo/credentials/src/seedphrase.ts";
|
|
29
29
|
var generateSeedPhrase = () => generateMnemonic();
|
|
30
30
|
var keyPairFromSeedPhrase = (seedPhrase) => {
|
|
31
|
-
invariant(seedPhrase, void 0, {
|
|
32
|
-
F: __dxlog_file,
|
|
33
|
-
L: 20,
|
|
34
|
-
S: void 0,
|
|
35
|
-
A: [
|
|
36
|
-
"seedPhrase",
|
|
37
|
-
""
|
|
38
|
-
]
|
|
39
|
-
});
|
|
31
|
+
invariant(seedPhrase, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 13, S: void 0, A: ["seedPhrase", ""] });
|
|
40
32
|
const seed = mnemonicToSeedSync(seedPhrase);
|
|
41
33
|
return createKeyPair(seed);
|
|
42
34
|
};
|
|
@@ -236,35 +228,11 @@ var verifyChain = async (chain, authority, subject) => {
|
|
|
236
228
|
// src/credentials/credential-factory.ts
|
|
237
229
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/core/halo/credentials/src/credentials/credential-factory.ts";
|
|
238
230
|
var createCredential = async ({ signer, issuer, subject, assertion, signingKey, chain, nonce, parentCredentialIds }) => {
|
|
239
|
-
invariant2(assertion["@type"], "Invalid assertion.", {
|
|
240
|
-
|
|
241
|
-
L: 48,
|
|
242
|
-
S: void 0,
|
|
243
|
-
A: [
|
|
244
|
-
"assertion['@type']",
|
|
245
|
-
"'Invalid assertion.'"
|
|
246
|
-
]
|
|
247
|
-
});
|
|
248
|
-
invariant2(!!signingKey === !!chain, "Chain must be provided if and only if the signing key differs from the issuer.", {
|
|
249
|
-
F: __dxlog_file2,
|
|
250
|
-
L: 49,
|
|
251
|
-
S: void 0,
|
|
252
|
-
A: [
|
|
253
|
-
"!!signingKey === !!chain",
|
|
254
|
-
"'Chain must be provided if and only if the signing key differs from the issuer.'"
|
|
255
|
-
]
|
|
256
|
-
});
|
|
231
|
+
invariant2(assertion["@type"], "Invalid assertion.", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 12, S: void 0, A: ["assertion['@type']", "'Invalid assertion.'"] });
|
|
232
|
+
invariant2(!!signingKey === !!chain, "Chain must be provided if and only if the signing key differs from the issuer.", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 13, S: void 0, A: ["!!signingKey === !!chain", "'Chain must be provided if and only if the signing key differs from the issuer.'"] });
|
|
257
233
|
if (chain) {
|
|
258
234
|
const result = await verifyChain(chain, issuer, signingKey);
|
|
259
|
-
invariant2(result.kind === "pass", "Invalid chain.", {
|
|
260
|
-
F: __dxlog_file2,
|
|
261
|
-
L: 52,
|
|
262
|
-
S: void 0,
|
|
263
|
-
A: [
|
|
264
|
-
"result.kind === 'pass'",
|
|
265
|
-
"'Invalid chain.'"
|
|
266
|
-
]
|
|
267
|
-
});
|
|
235
|
+
invariant2(result.kind === "pass", "Invalid chain.", { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 16, S: void 0, A: ["result.kind === 'pass'", "'Invalid chain.'"] });
|
|
268
236
|
}
|
|
269
237
|
const credential = {
|
|
270
238
|
issuer,
|
|
@@ -667,24 +635,8 @@ var FeedStateMachine = class {
|
|
|
667
635
|
*/
|
|
668
636
|
async process(credential, fromFeed) {
|
|
669
637
|
const assertion = getCredentialAssertion(credential);
|
|
670
|
-
invariant3(assertion["@type"] === "dxos.halo.credentials.AdmittedFeed", void 0, {
|
|
671
|
-
|
|
672
|
-
L: 47,
|
|
673
|
-
S: this,
|
|
674
|
-
A: [
|
|
675
|
-
"assertion['@type'] === 'dxos.halo.credentials.AdmittedFeed'",
|
|
676
|
-
""
|
|
677
|
-
]
|
|
678
|
-
});
|
|
679
|
-
invariant3(assertion.spaceKey.equals(this._spaceKey), void 0, {
|
|
680
|
-
F: __dxlog_file3,
|
|
681
|
-
L: 48,
|
|
682
|
-
S: this,
|
|
683
|
-
A: [
|
|
684
|
-
"assertion.spaceKey.equals(this._spaceKey)",
|
|
685
|
-
""
|
|
686
|
-
]
|
|
687
|
-
});
|
|
638
|
+
invariant3(assertion["@type"] === "dxos.halo.credentials.AdmittedFeed", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 28, S: this, A: ["assertion['@type'] === 'dxos.halo.credentials.AdmittedFeed'", ""] });
|
|
639
|
+
invariant3(assertion.spaceKey.equals(this._spaceKey), void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file3, L: 29, S: this, A: ["assertion.spaceKey.equals(this._spaceKey)", ""] });
|
|
688
640
|
const info = {
|
|
689
641
|
key: credential.subject.id,
|
|
690
642
|
credential,
|
|
@@ -847,12 +799,7 @@ var CredentialGraph = class {
|
|
|
847
799
|
log.error("credential skipped because of the unknown parent", {
|
|
848
800
|
credential,
|
|
849
801
|
parentId
|
|
850
|
-
}, {
|
|
851
|
-
F: __dxlog_file4,
|
|
852
|
-
L: 72,
|
|
853
|
-
S: this,
|
|
854
|
-
C: (f, a) => f(...a)
|
|
855
|
-
});
|
|
802
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 70, S: this });
|
|
856
803
|
continue;
|
|
857
804
|
}
|
|
858
805
|
parentVertex.children.push(newVertex);
|
|
@@ -869,29 +816,13 @@ var CredentialGraph = class {
|
|
|
869
816
|
if (sentinelIdx >= 0) {
|
|
870
817
|
vertex.children.splice(sentinelIdx, 1);
|
|
871
818
|
const vertexInSentinelIdx = this._sentinel.parents.indexOf(vertex);
|
|
872
|
-
invariant4(vertexInSentinelIdx >= 0, void 0, {
|
|
873
|
-
F: __dxlog_file4,
|
|
874
|
-
L: 90,
|
|
875
|
-
S: this,
|
|
876
|
-
A: [
|
|
877
|
-
"vertexInSentinelIdx >= 0",
|
|
878
|
-
""
|
|
879
|
-
]
|
|
880
|
-
});
|
|
819
|
+
invariant4(vertexInSentinelIdx >= 0, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 90, S: this, A: ["vertexInSentinelIdx >= 0", ""] });
|
|
881
820
|
this._sentinel.parents.splice(vertexInSentinelIdx, 1);
|
|
882
821
|
}
|
|
883
822
|
}
|
|
884
823
|
async _onVertexInserted(newVertex) {
|
|
885
824
|
const { credential, assertion } = newVertex;
|
|
886
|
-
invariant4(credential, void 0, {
|
|
887
|
-
F: __dxlog_file4,
|
|
888
|
-
L: 97,
|
|
889
|
-
S: this,
|
|
890
|
-
A: [
|
|
891
|
-
"credential",
|
|
892
|
-
""
|
|
893
|
-
]
|
|
894
|
-
});
|
|
825
|
+
invariant4(credential, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 96, S: this, A: ["credential", ""] });
|
|
895
826
|
let changedSubjects = [];
|
|
896
827
|
const isUpdateAppliedOnTopOfThePreviousState = this._sentinel.parents.length === 1;
|
|
897
828
|
if (isUpdateAppliedOnTopOfThePreviousState) {
|
|
@@ -928,21 +859,11 @@ var CredentialGraph = class {
|
|
|
928
859
|
const path = paths.pop();
|
|
929
860
|
log("visit vertex", {
|
|
930
861
|
id: path.head.id
|
|
931
|
-
}, {
|
|
932
|
-
F: __dxlog_file4,
|
|
933
|
-
L: 132,
|
|
934
|
-
S: this,
|
|
935
|
-
C: (f, a) => f(...a)
|
|
936
|
-
});
|
|
862
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 131, S: this });
|
|
937
863
|
this._updatePathState(path);
|
|
938
864
|
const convergedPaths = this._handleMergePoint(paths, pendingPaths, path);
|
|
939
865
|
if (convergedPaths == null) {
|
|
940
|
-
log("waiting for other paths", void 0, {
|
|
941
|
-
F: __dxlog_file4,
|
|
942
|
-
L: 136,
|
|
943
|
-
S: this,
|
|
944
|
-
C: (f, a) => f(...a)
|
|
945
|
-
});
|
|
866
|
+
log("waiting for other paths", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 137, S: this });
|
|
946
867
|
continue;
|
|
947
868
|
}
|
|
948
869
|
const mergeResult = this._mergePaths(convergedPaths);
|
|
@@ -966,12 +887,7 @@ var CredentialGraph = class {
|
|
|
966
887
|
path: toChosenPath(p),
|
|
967
888
|
head: p.head.id
|
|
968
889
|
}))
|
|
969
|
-
}, {
|
|
970
|
-
F: __dxlog_file4,
|
|
971
|
-
L: 155,
|
|
972
|
-
S: this,
|
|
973
|
-
C: (f, a) => f(...a)
|
|
974
|
-
});
|
|
890
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 156, S: this });
|
|
975
891
|
}
|
|
976
892
|
return this._setCurrentState(lastPath);
|
|
977
893
|
}
|
|
@@ -992,12 +908,7 @@ var CredentialGraph = class {
|
|
|
992
908
|
path: toChosenPath(path),
|
|
993
909
|
overrides: path?.stateOverrides?.mapValues((v) => this._stateHandler.toLogString(v.assertion))
|
|
994
910
|
}))
|
|
995
|
-
}), {
|
|
996
|
-
F: __dxlog_file4,
|
|
997
|
-
L: 175,
|
|
998
|
-
S: this,
|
|
999
|
-
C: (f, a) => f(...a)
|
|
1000
|
-
});
|
|
911
|
+
}), { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 175, S: this });
|
|
1001
912
|
const clearedPending = convergedPaths.filter((l) => !mergeResult.replay.includes(l));
|
|
1002
913
|
pendingPaths.set(convergedPaths[0].head.id, clearedPending);
|
|
1003
914
|
}
|
|
@@ -1009,12 +920,7 @@ var CredentialGraph = class {
|
|
|
1009
920
|
return null;
|
|
1010
921
|
}
|
|
1011
922
|
if (path.head.id === this._sentinel.id && paths.length > 0) {
|
|
1012
|
-
log("waiting for all the active paths to converge on the sentinel", void 0, {
|
|
1013
|
-
F: __dxlog_file4,
|
|
1014
|
-
L: 199,
|
|
1015
|
-
S: this,
|
|
1016
|
-
C: (f, a) => f(...a)
|
|
1017
|
-
});
|
|
923
|
+
log("waiting for all the active paths to converge on the sentinel", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 194, S: this });
|
|
1018
924
|
return null;
|
|
1019
925
|
}
|
|
1020
926
|
pendingPaths.delete(path.head.id);
|
|
@@ -1039,12 +945,7 @@ var CredentialGraph = class {
|
|
|
1039
945
|
log("path state updated", () => ({
|
|
1040
946
|
subject: updatedSubject,
|
|
1041
947
|
newState: this._stateHandler.toLogString(path.head.assertion)
|
|
1042
|
-
}), {
|
|
1043
|
-
F: __dxlog_file4,
|
|
1044
|
-
L: 223,
|
|
1045
|
-
S: this,
|
|
1046
|
-
C: (f, a) => f(...a)
|
|
1047
|
-
});
|
|
948
|
+
}), { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 217, S: this });
|
|
1048
949
|
}
|
|
1049
950
|
}
|
|
1050
951
|
_forkTraversal(paths, path) {
|
|
@@ -1054,12 +955,7 @@ var CredentialGraph = class {
|
|
|
1054
955
|
log("edge traversal", {
|
|
1055
956
|
from: path.head.id,
|
|
1056
957
|
to: choice.id
|
|
1057
|
-
}, {
|
|
1058
|
-
F: __dxlog_file4,
|
|
1059
|
-
L: 234,
|
|
1060
|
-
S: this,
|
|
1061
|
-
C: (f, a) => f(...a)
|
|
1062
|
-
});
|
|
958
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 227, S: this });
|
|
1063
959
|
const fork = {
|
|
1064
960
|
forkPoint: path,
|
|
1065
961
|
chosenPath: {
|
|
@@ -1152,15 +1048,7 @@ var CredentialGraph = class {
|
|
|
1152
1048
|
return path;
|
|
1153
1049
|
}
|
|
1154
1050
|
_mergePaths(convergedPaths) {
|
|
1155
|
-
invariant4(convergedPaths.length >= 1, void 0, {
|
|
1156
|
-
F: __dxlog_file4,
|
|
1157
|
-
L: 324,
|
|
1158
|
-
S: this,
|
|
1159
|
-
A: [
|
|
1160
|
-
"convergedPaths.length >= 1",
|
|
1161
|
-
""
|
|
1162
|
-
]
|
|
1163
|
-
});
|
|
1051
|
+
invariant4(convergedPaths.length >= 1, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 320, S: this, A: ["convergedPaths.length >= 1", ""] });
|
|
1164
1052
|
if (convergedPaths.length === 1) {
|
|
1165
1053
|
return {
|
|
1166
1054
|
type: "merged",
|
|
@@ -1172,22 +1060,9 @@ var CredentialGraph = class {
|
|
|
1172
1060
|
forkPointId: forkPoint.head.id,
|
|
1173
1061
|
pathCount: convergedPaths.length,
|
|
1174
1062
|
forkPoints: convergedPaths.map((fp) => fp.forkPoint?.head.id)
|
|
1175
|
-
}), {
|
|
1176
|
-
F: __dxlog_file4,
|
|
1177
|
-
L: 329,
|
|
1178
|
-
S: this,
|
|
1179
|
-
C: (f, a) => f(...a)
|
|
1180
|
-
});
|
|
1063
|
+
}), { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 328, S: this });
|
|
1181
1064
|
const paths = convergedPaths.map((p) => this._moveUpToForkPoint(forkPoint, p));
|
|
1182
|
-
invariant4(forkPoint, void 0, {
|
|
1183
|
-
F: __dxlog_file4,
|
|
1184
|
-
L: 335,
|
|
1185
|
-
S: this,
|
|
1186
|
-
A: [
|
|
1187
|
-
"forkPoint",
|
|
1188
|
-
""
|
|
1189
|
-
]
|
|
1190
|
-
});
|
|
1065
|
+
invariant4(forkPoint, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 334, S: this, A: ["forkPoint", ""] });
|
|
1191
1066
|
const result = {
|
|
1192
1067
|
forkPoint: forkPoint.forkPoint,
|
|
1193
1068
|
chosenPath: {
|
|
@@ -1208,12 +1083,7 @@ var CredentialGraph = class {
|
|
|
1208
1083
|
modified: path.forkChangedSubjects,
|
|
1209
1084
|
forkIssuers: path.forkIssuers,
|
|
1210
1085
|
state: path.state.mapValues((v) => this._stateHandler.toLogString(v.assertion))
|
|
1211
|
-
}), {
|
|
1212
|
-
F: __dxlog_file4,
|
|
1213
|
-
L: 348,
|
|
1214
|
-
S: this,
|
|
1215
|
-
C: (f, a) => f(...a)
|
|
1216
|
-
});
|
|
1086
|
+
}), { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 350, S: this });
|
|
1217
1087
|
path.forkIssuers.forEach((iss) => result.forkIssuers.add(iss));
|
|
1218
1088
|
path.credentials.forEach((cred) => result.credentials.add(cred));
|
|
1219
1089
|
result.chosenPath[forkPoint.head.id].push(...path.chosenPath[forkPoint.head.id] ?? []);
|
|
@@ -1233,12 +1103,7 @@ var CredentialGraph = class {
|
|
|
1233
1103
|
log("set subject state", () => ({
|
|
1234
1104
|
subject,
|
|
1235
1105
|
state: this._stateHandler.toLogString(vertex.assertion)
|
|
1236
|
-
}), {
|
|
1237
|
-
F: __dxlog_file4,
|
|
1238
|
-
L: 370,
|
|
1239
|
-
S: this,
|
|
1240
|
-
C: (f, a) => f(...a)
|
|
1241
|
-
});
|
|
1106
|
+
}), { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 372, S: this });
|
|
1242
1107
|
const otherPaths = paths.filter((p) => p !== branch);
|
|
1243
1108
|
this._stateHandler.getConflictingPaths(otherPaths, vertex).forEach(addReplayPath);
|
|
1244
1109
|
}
|
|
@@ -1277,12 +1142,7 @@ var CredentialGraph = class {
|
|
|
1277
1142
|
if (candidateVertex.id === mergePointId || currentVertex.id === mergePointId) {
|
|
1278
1143
|
log("merge point chosen to break the tie", {
|
|
1279
1144
|
mergePointId: existing.head.id
|
|
1280
|
-
}, {
|
|
1281
|
-
F: __dxlog_file4,
|
|
1282
|
-
L: 408,
|
|
1283
|
-
S: this,
|
|
1284
|
-
C: (f, a) => f(...a)
|
|
1285
|
-
});
|
|
1145
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 412, S: this });
|
|
1286
1146
|
return mergePointId === candidateVertex.id;
|
|
1287
1147
|
}
|
|
1288
1148
|
const candidateCredential = candidateVertex.credential;
|
|
@@ -1291,12 +1151,7 @@ var CredentialGraph = class {
|
|
|
1291
1151
|
log("one of the credentials was overridden in another branch", {
|
|
1292
1152
|
current: currentVertex.id,
|
|
1293
1153
|
candidate: candidateVertex.id
|
|
1294
|
-
}, {
|
|
1295
|
-
F: __dxlog_file4,
|
|
1296
|
-
L: 415,
|
|
1297
|
-
S: this,
|
|
1298
|
-
C: (f, a) => f(...a)
|
|
1299
|
-
});
|
|
1154
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 421, S: this });
|
|
1300
1155
|
return candidate.credentials.has(currentCredential.id);
|
|
1301
1156
|
}
|
|
1302
1157
|
const winningCredential = this._stateHandler.tryPickWinningUpdate(existing, currentCredential, candidate, candidateCredential);
|
|
@@ -1309,20 +1164,10 @@ var CredentialGraph = class {
|
|
|
1309
1164
|
existing.forkIssuers.size,
|
|
1310
1165
|
candidate.forkIssuers.size
|
|
1311
1166
|
]
|
|
1312
|
-
}, {
|
|
1313
|
-
F: __dxlog_file4,
|
|
1314
|
-
L: 432,
|
|
1315
|
-
S: this,
|
|
1316
|
-
C: (f, a) => f(...a)
|
|
1317
|
-
});
|
|
1167
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 433, S: this });
|
|
1318
1168
|
return candidate.forkIssuers.size > existing.forkIssuers.size;
|
|
1319
1169
|
}
|
|
1320
|
-
log("issuance date used to break the tie", void 0, {
|
|
1321
|
-
F: __dxlog_file4,
|
|
1322
|
-
L: 437,
|
|
1323
|
-
S: this,
|
|
1324
|
-
C: (f, a) => f(...a)
|
|
1325
|
-
});
|
|
1170
|
+
log("issuance date used to break the tie", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file4, L: 441, S: this });
|
|
1326
1171
|
return candidateCredential.issuanceDate.getTime() > currentCredential.issuanceDate.getTime();
|
|
1327
1172
|
}
|
|
1328
1173
|
_createRootPath() {
|
|
@@ -1374,15 +1219,7 @@ var MemberStateMachine = class {
|
|
|
1374
1219
|
const assertion = getCredentialAssertion(credential);
|
|
1375
1220
|
switch (assertion["@type"]) {
|
|
1376
1221
|
case "dxos.halo.credentials.SpaceMember": {
|
|
1377
|
-
invariant5(assertion.spaceKey.equals(this._spaceKey), void 0, {
|
|
1378
|
-
F: __dxlog_file5,
|
|
1379
|
-
L: 66,
|
|
1380
|
-
S: this,
|
|
1381
|
-
A: [
|
|
1382
|
-
"assertion.spaceKey.equals(this._spaceKey)",
|
|
1383
|
-
""
|
|
1384
|
-
]
|
|
1385
|
-
});
|
|
1222
|
+
invariant5(assertion.spaceKey.equals(this._spaceKey), void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 43, S: this, A: ["assertion.spaceKey.equals(this._spaceKey)", ""] });
|
|
1386
1223
|
if (this._ownerKey == null && credential.issuer === this._spaceKey) {
|
|
1387
1224
|
this._ownerKey = credential.subject.id;
|
|
1388
1225
|
}
|
|
@@ -1399,12 +1236,7 @@ var MemberStateMachine = class {
|
|
|
1399
1236
|
} else {
|
|
1400
1237
|
log2.warn("Member not found", {
|
|
1401
1238
|
id: credential.subject.id
|
|
1402
|
-
}, {
|
|
1403
|
-
F: __dxlog_file5,
|
|
1404
|
-
L: 81,
|
|
1405
|
-
S: this,
|
|
1406
|
-
C: (f, a) => f(...a)
|
|
1407
|
-
});
|
|
1239
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 59, S: this });
|
|
1408
1240
|
}
|
|
1409
1241
|
this._memberProfiles.set(credential.subject.id, assertion.profile);
|
|
1410
1242
|
break;
|
|
@@ -1449,12 +1281,7 @@ var MemberStateMachine = class {
|
|
|
1449
1281
|
const path1IssuerRole = this._getRole(scope1, update1.issuer);
|
|
1450
1282
|
const path2IssuerRole = this._getRole(scope2, update2.issuer);
|
|
1451
1283
|
if (path2IssuerRole === SpaceMember2.Role.OWNER !== (path1IssuerRole === SpaceMember2.Role.OWNER)) {
|
|
1452
|
-
log2("owner decision used to break the tie", void 0, {
|
|
1453
|
-
F: __dxlog_file5,
|
|
1454
|
-
L: 139,
|
|
1455
|
-
S: this,
|
|
1456
|
-
C: (f, a) => f(...a)
|
|
1457
|
-
});
|
|
1284
|
+
log2("owner decision used to break the tie", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 107, S: this });
|
|
1458
1285
|
return path1IssuerRole === SpaceMember2.Role.OWNER ? update1 : update2;
|
|
1459
1286
|
}
|
|
1460
1287
|
return null;
|
|
@@ -1478,12 +1305,7 @@ var MemberStateMachine = class {
|
|
|
1478
1305
|
headId: scope.head?.id,
|
|
1479
1306
|
roleOverride: this.toLogString(override.assertion),
|
|
1480
1307
|
realRole: this.toLogString(scope.state.get(memberId)?.assertion)
|
|
1481
|
-
}), {
|
|
1482
|
-
F: __dxlog_file5,
|
|
1483
|
-
L: 162,
|
|
1484
|
-
S: this,
|
|
1485
|
-
C: (f, a) => f(...a)
|
|
1486
|
-
});
|
|
1308
|
+
}), { "~LogMeta": "~LogMeta", F: __dxlog_file5, L: 127, S: this });
|
|
1487
1309
|
return override.assertion.role;
|
|
1488
1310
|
}
|
|
1489
1311
|
}
|
|
@@ -1492,13 +1314,13 @@ var MemberStateMachine = class {
|
|
|
1492
1314
|
};
|
|
1493
1315
|
|
|
1494
1316
|
// src/state-machine/space-state-machine.ts
|
|
1317
|
+
var __dxlog_file6 = "/__w/dxos/dxos/packages/core/halo/credentials/src/state-machine/space-state-machine.ts";
|
|
1495
1318
|
function _ts_decorate(decorators, target, key, desc) {
|
|
1496
1319
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1497
1320
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1498
1321
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1499
1322
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1500
1323
|
}
|
|
1501
|
-
var __dxlog_file6 = "/__w/dxos/dxos/packages/core/halo/credentials/src/state-machine/space-state-machine.ts";
|
|
1502
1324
|
var SpaceStateMachine = class {
|
|
1503
1325
|
_spaceKey;
|
|
1504
1326
|
_members;
|
|
@@ -1589,12 +1411,7 @@ var SpaceStateMachine = class {
|
|
|
1589
1411
|
if (!skipVerification) {
|
|
1590
1412
|
const result = await verifyCredential(credential);
|
|
1591
1413
|
if (result.kind !== "pass") {
|
|
1592
|
-
log3.warn(`Invalid credential: ${result.errors.join(", ")}`, void 0, {
|
|
1593
|
-
F: __dxlog_file6,
|
|
1594
|
-
L: 173,
|
|
1595
|
-
S: this,
|
|
1596
|
-
C: (f, a) => f(...a)
|
|
1597
|
-
});
|
|
1414
|
+
log3.warn(`Invalid credential: ${result.errors.join(", ")}`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 116, S: this });
|
|
1598
1415
|
return false;
|
|
1599
1416
|
}
|
|
1600
1417
|
}
|
|
@@ -1602,30 +1419,15 @@ var SpaceStateMachine = class {
|
|
|
1602
1419
|
switch (assertion["@type"]) {
|
|
1603
1420
|
case "dxos.halo.credentials.SpaceGenesis": {
|
|
1604
1421
|
if (this._genesisCredential) {
|
|
1605
|
-
log3.warn("Space already has a genesis credential.", void 0, {
|
|
1606
|
-
F: __dxlog_file6,
|
|
1607
|
-
L: 182,
|
|
1608
|
-
S: this,
|
|
1609
|
-
C: (f, a) => f(...a)
|
|
1610
|
-
});
|
|
1422
|
+
log3.warn("Space already has a genesis credential.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 125, S: this });
|
|
1611
1423
|
return false;
|
|
1612
1424
|
}
|
|
1613
1425
|
if (!credential.issuer.equals(this._spaceKey)) {
|
|
1614
|
-
log3.warn("Space genesis credential must be issued by space.", void 0, {
|
|
1615
|
-
F: __dxlog_file6,
|
|
1616
|
-
L: 186,
|
|
1617
|
-
S: this,
|
|
1618
|
-
C: (f, a) => f(...a)
|
|
1619
|
-
});
|
|
1426
|
+
log3.warn("Space genesis credential must be issued by space.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 129, S: this });
|
|
1620
1427
|
return false;
|
|
1621
1428
|
}
|
|
1622
1429
|
if (!credential.subject.id.equals(this._spaceKey)) {
|
|
1623
|
-
log3.warn("Space genesis credential must be issued to space.", void 0, {
|
|
1624
|
-
F: __dxlog_file6,
|
|
1625
|
-
L: 190,
|
|
1626
|
-
S: this,
|
|
1627
|
-
C: (f, a) => f(...a)
|
|
1628
|
-
});
|
|
1430
|
+
log3.warn("Space genesis credential must be issued to space.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 133, S: this });
|
|
1629
1431
|
return false;
|
|
1630
1432
|
}
|
|
1631
1433
|
this._genesisCredential = credential;
|
|
@@ -1638,21 +1440,11 @@ var SpaceStateMachine = class {
|
|
|
1638
1440
|
break;
|
|
1639
1441
|
}
|
|
1640
1442
|
if (!this._genesisCredential) {
|
|
1641
|
-
log3.warn("Space must have a genesis credential before adding members.", void 0, {
|
|
1642
|
-
F: __dxlog_file6,
|
|
1643
|
-
L: 205,
|
|
1644
|
-
S: this,
|
|
1645
|
-
C: (f, a) => f(...a)
|
|
1646
|
-
});
|
|
1443
|
+
log3.warn("Space must have a genesis credential before adding members.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 147, S: this });
|
|
1647
1444
|
return false;
|
|
1648
1445
|
}
|
|
1649
1446
|
if (!this._canInviteNewMembers(credential.issuer)) {
|
|
1650
|
-
log3.warn(`Space member is not authorized to invite new members: ${credential.issuer}`, void 0, {
|
|
1651
|
-
F: __dxlog_file6,
|
|
1652
|
-
L: 209,
|
|
1653
|
-
S: this,
|
|
1654
|
-
C: (f, a) => f(...a)
|
|
1655
|
-
});
|
|
1447
|
+
log3.warn(`Space member is not authorized to invite new members: ${credential.issuer}`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 151, S: this });
|
|
1656
1448
|
return false;
|
|
1657
1449
|
}
|
|
1658
1450
|
await this._members.process(credential);
|
|
@@ -1661,12 +1453,7 @@ var SpaceStateMachine = class {
|
|
|
1661
1453
|
}
|
|
1662
1454
|
case "dxos.halo.credentials.MemberProfile": {
|
|
1663
1455
|
if (!this._genesisCredential) {
|
|
1664
|
-
log3.warn("Space must have a genesis credential before adding members.", void 0, {
|
|
1665
|
-
F: __dxlog_file6,
|
|
1666
|
-
L: 220,
|
|
1667
|
-
S: this,
|
|
1668
|
-
C: (f, a) => f(...a)
|
|
1669
|
-
});
|
|
1456
|
+
log3.warn("Space must have a genesis credential before adding members.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 161, S: this });
|
|
1670
1457
|
return false;
|
|
1671
1458
|
}
|
|
1672
1459
|
await this._members.process(credential);
|
|
@@ -1674,12 +1461,7 @@ var SpaceStateMachine = class {
|
|
|
1674
1461
|
}
|
|
1675
1462
|
case "dxos.halo.credentials.AdmittedFeed": {
|
|
1676
1463
|
if (!this._genesisCredential) {
|
|
1677
|
-
log3.warn("Space must have a genesis credential before admitting feeds.", void 0, {
|
|
1678
|
-
F: __dxlog_file6,
|
|
1679
|
-
L: 230,
|
|
1680
|
-
S: this,
|
|
1681
|
-
C: (f, a) => f(...a)
|
|
1682
|
-
});
|
|
1464
|
+
log3.warn("Space must have a genesis credential before admitting feeds.", void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 170, S: this });
|
|
1683
1465
|
return false;
|
|
1684
1466
|
}
|
|
1685
1467
|
await this._feeds.process(credential, sourceFeed);
|
|
@@ -1688,12 +1470,7 @@ var SpaceStateMachine = class {
|
|
|
1688
1470
|
case "dxos.halo.invitations.CancelDelegatedInvitation":
|
|
1689
1471
|
case "dxos.halo.invitations.DelegateSpaceInvitation": {
|
|
1690
1472
|
if (!this._canInviteNewMembers(credential.issuer)) {
|
|
1691
|
-
log3.warn(`Invalid invitation, space member is not authorized to invite new members: ${credential.issuer}`, void 0, {
|
|
1692
|
-
F: __dxlog_file6,
|
|
1693
|
-
L: 241,
|
|
1694
|
-
S: this,
|
|
1695
|
-
C: (f, a) => f(...a)
|
|
1696
|
-
});
|
|
1473
|
+
log3.warn(`Invalid invitation, space member is not authorized to invite new members: ${credential.issuer}`, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 181, S: this });
|
|
1697
1474
|
return false;
|
|
1698
1475
|
}
|
|
1699
1476
|
await this._invitations.process(credential);
|
|
@@ -1737,10 +1514,7 @@ var CredentialConsumer = class {
|
|
|
1737
1514
|
processor;
|
|
1738
1515
|
_onOpen;
|
|
1739
1516
|
_onClose;
|
|
1740
|
-
_ctx = new Context(void 0, {
|
|
1741
|
-
F: __dxlog_file6,
|
|
1742
|
-
L: 291
|
|
1743
|
-
});
|
|
1517
|
+
_ctx = new Context(void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file6, L: 229 });
|
|
1744
1518
|
/**
|
|
1745
1519
|
* @internal
|
|
1746
1520
|
* Processor is ready to process live credentials.
|
|
@@ -1794,12 +1568,7 @@ var DeviceStateMachine = class {
|
|
|
1794
1568
|
identityKey: this._params.identityKey,
|
|
1795
1569
|
deviceKey: this._params.deviceKey,
|
|
1796
1570
|
credential
|
|
1797
|
-
}, {
|
|
1798
|
-
F: __dxlog_file7,
|
|
1799
|
-
L: 35,
|
|
1800
|
-
S: this,
|
|
1801
|
-
C: (f, a) => f(...a)
|
|
1802
|
-
});
|
|
1571
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file7, L: 22, S: this });
|
|
1803
1572
|
if (isValidAuthorizedDeviceCredential(credential, this._params.identityKey, this._params.deviceKey)) {
|
|
1804
1573
|
this.deviceCredentialChain = {
|
|
1805
1574
|
credential
|
|
@@ -1814,35 +1583,17 @@ var DeviceStateMachine = class {
|
|
|
1814
1583
|
localDeviceKey: this._params.deviceKey,
|
|
1815
1584
|
deviceKey: assertion.deviceKey,
|
|
1816
1585
|
size: this.authorizedDeviceKeys.size
|
|
1817
|
-
}, {
|
|
1818
|
-
F: __dxlog_file7,
|
|
1819
|
-
L: 55,
|
|
1820
|
-
S: this,
|
|
1821
|
-
C: (f, a) => f(...a)
|
|
1822
|
-
});
|
|
1586
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file7, L: 41, S: this });
|
|
1823
1587
|
this._params.onUpdate?.();
|
|
1824
1588
|
break;
|
|
1825
1589
|
}
|
|
1826
1590
|
case "dxos.halo.credentials.DeviceProfile": {
|
|
1827
|
-
invariant6(this.authorizedDeviceKeys.has(credential.subject.id), "Device not found.", {
|
|
1828
|
-
F: __dxlog_file7,
|
|
1829
|
-
L: 65,
|
|
1830
|
-
S: this,
|
|
1831
|
-
A: [
|
|
1832
|
-
"this.authorizedDeviceKeys.has(credential.subject.id)",
|
|
1833
|
-
"'Device not found.'"
|
|
1834
|
-
]
|
|
1835
|
-
});
|
|
1591
|
+
invariant6(this.authorizedDeviceKeys.has(credential.subject.id), "Device not found.", { "~LogMeta": "~LogMeta", F: __dxlog_file7, L: 51, S: this, A: ["this.authorizedDeviceKeys.has(credential.subject.id)", "'Device not found.'"] });
|
|
1836
1592
|
if (assertion && credential.subject.id.equals(this._params.deviceKey)) {
|
|
1837
1593
|
log4.trace("dxos.halo.device", {
|
|
1838
1594
|
deviceKey: credential.subject.id,
|
|
1839
1595
|
profile: assertion.profile
|
|
1840
|
-
}, {
|
|
1841
|
-
F: __dxlog_file7,
|
|
1842
|
-
L: 68,
|
|
1843
|
-
S: this,
|
|
1844
|
-
C: (f, a) => f(...a)
|
|
1845
|
-
});
|
|
1596
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file7, L: 53, S: this });
|
|
1846
1597
|
}
|
|
1847
1598
|
this.authorizedDeviceKeys.set(credential.subject.id, assertion.profile);
|
|
1848
1599
|
this._params.onUpdate?.();
|
|
@@ -1870,24 +1621,14 @@ var ProfileStateMachine = class {
|
|
|
1870
1621
|
log5.warn("Invalid profile credential", {
|
|
1871
1622
|
expectedIdentity: this._params.identityKey,
|
|
1872
1623
|
credential
|
|
1873
|
-
}, {
|
|
1874
|
-
F: __dxlog_file8,
|
|
1875
|
-
L: 34,
|
|
1876
|
-
S: this,
|
|
1877
|
-
C: (f, a) => f(...a)
|
|
1878
|
-
});
|
|
1624
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file8, L: 21, S: this });
|
|
1879
1625
|
return;
|
|
1880
1626
|
}
|
|
1881
1627
|
this.profile = assertion.profile;
|
|
1882
1628
|
log5("updated profile", {
|
|
1883
1629
|
identityKey: this._params.identityKey,
|
|
1884
1630
|
profile: this.profile
|
|
1885
|
-
}, {
|
|
1886
|
-
F: __dxlog_file8,
|
|
1887
|
-
L: 40,
|
|
1888
|
-
S: this,
|
|
1889
|
-
C: (f, a) => f(...a)
|
|
1890
|
-
});
|
|
1631
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file8, L: 29, S: this });
|
|
1891
1632
|
this._params.onUpdate?.();
|
|
1892
1633
|
break;
|
|
1893
1634
|
}
|