@dxos/credentials 0.8.4-main.f9ba587 → 0.8.4-main.fd6878d
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/.swc/plugins/v7_linux_x86_64_13.0.0/c614d7475354583212fbd7669acbae95b9832c305bf51bdaabe2e6de05abb6bf +0 -0
- package/dist/lib/browser/index.mjs +94 -28
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/node-esm/index.mjs +94 -28
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/types/src/credentials/assertions.d.ts +1 -1
- package/dist/types/src/credentials/assertions.d.ts.map +1 -1
- package/dist/types/src/credentials/credential-generator.d.ts.map +1 -1
- package/dist/types/src/did.d.ts +1 -1
- package/dist/types/src/did.d.ts.map +1 -1
- package/dist/types/src/presentations/presentation.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/index.d.ts +1 -1
- package/dist/types/src/processor/index.d.ts.map +1 -1
- package/dist/types/src/processor/profile-state-machine.d.ts.map +1 -1
- package/dist/types/src/state-machine/member-state-machine.d.ts +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 +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 +13 -12
- package/src/credentials/assertions.ts +1 -1
- package/src/credentials/credential-factory.ts +1 -1
- package/src/credentials/credential-generator.ts +1 -1
- package/src/did.ts +2 -2
- package/src/presentations/json-encoding.test.ts +3 -1
- package/src/presentations/presentation.ts +2 -1
- package/src/presentations/verifier.test.ts +2 -1
- package/src/presentations/verifier.ts +2 -1
- package/src/processor/device-state-machine.ts +2 -1
- package/src/processor/index.ts +1 -1
- package/src/processor/profile-state-machine.ts +2 -1
- package/src/state-machine/invitation-state-machine.test.ts +3 -2
- package/src/state-machine/member-state-machine.test.ts +2 -1
- package/src/state-machine/member-state-machine.ts +1 -1
- package/src/state-machine/space-state-machine.test.ts +2 -1
- package/src/state-machine/space-state-machine.ts +14 -8
- package/.eslintrc.cjs +0 -7
- package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
|
Binary file
|
|
@@ -2,7 +2,7 @@ import "@dxos/node-std/globals";
|
|
|
2
2
|
|
|
3
3
|
// src/did.ts
|
|
4
4
|
import { subtleCrypto } from "@dxos/crypto";
|
|
5
|
-
import {
|
|
5
|
+
import { IdentityDid, PublicKey } from "@dxos/keys";
|
|
6
6
|
import { ComplexMap } from "@dxos/util";
|
|
7
7
|
var IDENTITY_DIDS_CACHE = new ComplexMap(PublicKey.hash);
|
|
8
8
|
var createDidFromIdentityKey = async (identityKey) => {
|
|
@@ -317,6 +317,9 @@ var createCredentialSignerWithChain = (signer, chain, signingKey) => ({
|
|
|
317
317
|
import { AdmittedFeed, SpaceMember } from "@dxos/protocols/proto/dxos/halo/credentials";
|
|
318
318
|
import { Timeframe as Timeframe2 } from "@dxos/timeframe";
|
|
319
319
|
var CredentialGenerator = class {
|
|
320
|
+
_signer;
|
|
321
|
+
_identityKey;
|
|
322
|
+
_deviceKey;
|
|
320
323
|
constructor(_signer, _identityKey, _deviceKey) {
|
|
321
324
|
this._signer = _signer;
|
|
322
325
|
this._identityKey = _identityKey;
|
|
@@ -637,6 +640,9 @@ import { PublicKey as PublicKey4 } from "@dxos/keys";
|
|
|
637
640
|
import { Callback, ComplexMap as ComplexMap2 } from "@dxos/util";
|
|
638
641
|
var __dxlog_file3 = "/__w/dxos/dxos/packages/core/halo/credentials/src/state-machine/feed-state-machine.ts";
|
|
639
642
|
var FeedStateMachine = class {
|
|
643
|
+
_spaceKey;
|
|
644
|
+
_feeds;
|
|
645
|
+
onFeedAdmitted;
|
|
640
646
|
constructor(_spaceKey) {
|
|
641
647
|
this._spaceKey = _spaceKey;
|
|
642
648
|
this._feeds = new ComplexMap2(PublicKey4.hash);
|
|
@@ -686,13 +692,11 @@ var FeedStateMachine = class {
|
|
|
686
692
|
import { PublicKey as PublicKey5 } from "@dxos/keys";
|
|
687
693
|
import { Callback as Callback2, ComplexMap as ComplexMap3, ComplexSet } from "@dxos/util";
|
|
688
694
|
var InvitationStateMachine = class {
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
this.onDelegatedInvitationRemoved = new Callback2();
|
|
695
|
-
}
|
|
695
|
+
_invitations = new ComplexMap3(PublicKey5.hash);
|
|
696
|
+
_redeemedInvitationCredentialIds = new ComplexSet(PublicKey5.hash);
|
|
697
|
+
_cancelledInvitationCredentialIds = new ComplexSet(PublicKey5.hash);
|
|
698
|
+
onDelegatedInvitation = new Callback2();
|
|
699
|
+
onDelegatedInvitationRemoved = new Callback2();
|
|
696
700
|
get invitations() {
|
|
697
701
|
return this._invitations;
|
|
698
702
|
}
|
|
@@ -766,6 +770,30 @@ import { log } from "@dxos/log";
|
|
|
766
770
|
import { Callback as Callback3, ComplexMap as ComplexMap4, ComplexSet as ComplexSet2 } from "@dxos/util";
|
|
767
771
|
var __dxlog_file4 = "/__w/dxos/dxos/packages/core/halo/credentials/src/graph/credential-graph.ts";
|
|
768
772
|
var CredentialGraph = class {
|
|
773
|
+
_stateHandler;
|
|
774
|
+
/**
|
|
775
|
+
* Local ids are used during traversals.
|
|
776
|
+
*/
|
|
777
|
+
_vertexIdGenerator;
|
|
778
|
+
/**
|
|
779
|
+
* All credentials without parent references are connected to the root.
|
|
780
|
+
*/
|
|
781
|
+
_root;
|
|
782
|
+
/**
|
|
783
|
+
* A credential which is not a parent of any other credential has the sentinel as a child.
|
|
784
|
+
* Sentinel is a virtual merge-point of all credentials.
|
|
785
|
+
*/
|
|
786
|
+
_sentinel;
|
|
787
|
+
/**
|
|
788
|
+
* Vertex references are used for fast credential inserts into the graph.
|
|
789
|
+
*/
|
|
790
|
+
_vertexByCredentialId;
|
|
791
|
+
/**
|
|
792
|
+
* The current state of the graph.
|
|
793
|
+
*/
|
|
794
|
+
_subjectToVertex;
|
|
795
|
+
_subjectToState;
|
|
796
|
+
onSubjectStateChanged;
|
|
769
797
|
constructor(_stateHandler) {
|
|
770
798
|
this._stateHandler = _stateHandler;
|
|
771
799
|
this._vertexIdGenerator = 1;
|
|
@@ -1317,6 +1345,11 @@ var toChosenPath = (path) => {
|
|
|
1317
1345
|
// src/state-machine/member-state-machine.ts
|
|
1318
1346
|
var __dxlog_file5 = "/__w/dxos/dxos/packages/core/halo/credentials/src/state-machine/member-state-machine.ts";
|
|
1319
1347
|
var MemberStateMachine = class {
|
|
1348
|
+
_spaceKey;
|
|
1349
|
+
_ownerKey;
|
|
1350
|
+
_memberProfiles;
|
|
1351
|
+
_hashgraph;
|
|
1352
|
+
onMemberRoleChanged;
|
|
1320
1353
|
constructor(_spaceKey) {
|
|
1321
1354
|
this._spaceKey = _spaceKey;
|
|
1322
1355
|
this._memberProfiles = new ComplexMap5(PublicKey7.hash);
|
|
@@ -1469,20 +1502,34 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
1469
1502
|
}
|
|
1470
1503
|
var __dxlog_file6 = "/__w/dxos/dxos/packages/core/halo/credentials/src/state-machine/space-state-machine.ts";
|
|
1471
1504
|
var SpaceStateMachine = class {
|
|
1505
|
+
_spaceKey;
|
|
1506
|
+
_members;
|
|
1507
|
+
_feeds;
|
|
1508
|
+
_invitations;
|
|
1509
|
+
_credentials;
|
|
1510
|
+
_credentialsById;
|
|
1511
|
+
_processedCredentials;
|
|
1512
|
+
_genesisCredential;
|
|
1513
|
+
_credentialProcessors;
|
|
1514
|
+
onCredentialProcessed;
|
|
1515
|
+
onMemberRoleChanged;
|
|
1516
|
+
onFeedAdmitted;
|
|
1517
|
+
onDelegatedInvitation;
|
|
1518
|
+
onDelegatedInvitationRemoved;
|
|
1472
1519
|
constructor(_spaceKey) {
|
|
1473
1520
|
this._spaceKey = _spaceKey;
|
|
1474
|
-
this._members = new MemberStateMachine(this._spaceKey);
|
|
1475
|
-
this._feeds = new FeedStateMachine(this._spaceKey);
|
|
1476
1521
|
this._invitations = new InvitationStateMachine();
|
|
1477
1522
|
this._credentials = [];
|
|
1478
1523
|
this._credentialsById = new ComplexMap6(PublicKey8.hash);
|
|
1479
1524
|
this._processedCredentials = new ComplexSet3(PublicKey8.hash);
|
|
1480
1525
|
this._credentialProcessors = [];
|
|
1481
1526
|
this.onCredentialProcessed = new Callback4();
|
|
1482
|
-
this.onMemberRoleChanged = this._members.onMemberRoleChanged;
|
|
1483
|
-
this.onFeedAdmitted = this._feeds.onFeedAdmitted;
|
|
1484
1527
|
this.onDelegatedInvitation = this._invitations.onDelegatedInvitation;
|
|
1485
1528
|
this.onDelegatedInvitationRemoved = this._invitations.onDelegatedInvitationRemoved;
|
|
1529
|
+
this._members = new MemberStateMachine(this._spaceKey);
|
|
1530
|
+
this._feeds = new FeedStateMachine(this._spaceKey);
|
|
1531
|
+
this.onMemberRoleChanged = this._members.onMemberRoleChanged;
|
|
1532
|
+
this.onFeedAdmitted = this._feeds.onFeedAdmitted;
|
|
1486
1533
|
}
|
|
1487
1534
|
get creator() {
|
|
1488
1535
|
return this._members.creator;
|
|
@@ -1546,7 +1593,7 @@ var SpaceStateMachine = class {
|
|
|
1546
1593
|
if (result.kind !== "pass") {
|
|
1547
1594
|
log3.warn(`Invalid credential: ${result.errors.join(", ")}`, void 0, {
|
|
1548
1595
|
F: __dxlog_file6,
|
|
1549
|
-
L:
|
|
1596
|
+
L: 162,
|
|
1550
1597
|
S: this,
|
|
1551
1598
|
C: (f, a) => f(...a)
|
|
1552
1599
|
});
|
|
@@ -1559,7 +1606,7 @@ var SpaceStateMachine = class {
|
|
|
1559
1606
|
if (this._genesisCredential) {
|
|
1560
1607
|
log3.warn("Space already has a genesis credential.", void 0, {
|
|
1561
1608
|
F: __dxlog_file6,
|
|
1562
|
-
L:
|
|
1609
|
+
L: 171,
|
|
1563
1610
|
S: this,
|
|
1564
1611
|
C: (f, a) => f(...a)
|
|
1565
1612
|
});
|
|
@@ -1568,7 +1615,7 @@ var SpaceStateMachine = class {
|
|
|
1568
1615
|
if (!credential.issuer.equals(this._spaceKey)) {
|
|
1569
1616
|
log3.warn("Space genesis credential must be issued by space.", void 0, {
|
|
1570
1617
|
F: __dxlog_file6,
|
|
1571
|
-
L:
|
|
1618
|
+
L: 175,
|
|
1572
1619
|
S: this,
|
|
1573
1620
|
C: (f, a) => f(...a)
|
|
1574
1621
|
});
|
|
@@ -1577,7 +1624,7 @@ var SpaceStateMachine = class {
|
|
|
1577
1624
|
if (!credential.subject.id.equals(this._spaceKey)) {
|
|
1578
1625
|
log3.warn("Space genesis credential must be issued to space.", void 0, {
|
|
1579
1626
|
F: __dxlog_file6,
|
|
1580
|
-
L:
|
|
1627
|
+
L: 179,
|
|
1581
1628
|
S: this,
|
|
1582
1629
|
C: (f, a) => f(...a)
|
|
1583
1630
|
});
|
|
@@ -1593,7 +1640,7 @@ var SpaceStateMachine = class {
|
|
|
1593
1640
|
if (!this._genesisCredential) {
|
|
1594
1641
|
log3.warn("Space must have a genesis credential before adding members.", void 0, {
|
|
1595
1642
|
F: __dxlog_file6,
|
|
1596
|
-
L:
|
|
1643
|
+
L: 192,
|
|
1597
1644
|
S: this,
|
|
1598
1645
|
C: (f, a) => f(...a)
|
|
1599
1646
|
});
|
|
@@ -1602,7 +1649,7 @@ var SpaceStateMachine = class {
|
|
|
1602
1649
|
if (!this._canInviteNewMembers(credential.issuer)) {
|
|
1603
1650
|
log3.warn(`Space member is not authorized to invite new members: ${credential.issuer}`, void 0, {
|
|
1604
1651
|
F: __dxlog_file6,
|
|
1605
|
-
L:
|
|
1652
|
+
L: 196,
|
|
1606
1653
|
S: this,
|
|
1607
1654
|
C: (f, a) => f(...a)
|
|
1608
1655
|
});
|
|
@@ -1616,7 +1663,7 @@ var SpaceStateMachine = class {
|
|
|
1616
1663
|
if (!this._genesisCredential) {
|
|
1617
1664
|
log3.warn("Space must have a genesis credential before adding members.", void 0, {
|
|
1618
1665
|
F: __dxlog_file6,
|
|
1619
|
-
L:
|
|
1666
|
+
L: 207,
|
|
1620
1667
|
S: this,
|
|
1621
1668
|
C: (f, a) => f(...a)
|
|
1622
1669
|
});
|
|
@@ -1629,7 +1676,7 @@ var SpaceStateMachine = class {
|
|
|
1629
1676
|
if (!this._genesisCredential) {
|
|
1630
1677
|
log3.warn("Space must have a genesis credential before admitting feeds.", void 0, {
|
|
1631
1678
|
F: __dxlog_file6,
|
|
1632
|
-
L:
|
|
1679
|
+
L: 217,
|
|
1633
1680
|
S: this,
|
|
1634
1681
|
C: (f, a) => f(...a)
|
|
1635
1682
|
});
|
|
@@ -1643,7 +1690,7 @@ var SpaceStateMachine = class {
|
|
|
1643
1690
|
if (!this._canInviteNewMembers(credential.issuer)) {
|
|
1644
1691
|
log3.warn(`Invalid invitation, space member is not authorized to invite new members: ${credential.issuer}`, void 0, {
|
|
1645
1692
|
F: __dxlog_file6,
|
|
1646
|
-
L:
|
|
1693
|
+
L: 228,
|
|
1647
1694
|
S: this,
|
|
1648
1695
|
C: (f, a) => f(...a)
|
|
1649
1696
|
});
|
|
@@ -1684,13 +1731,24 @@ _ts_decorate([
|
|
|
1684
1731
|
synchronized
|
|
1685
1732
|
], SpaceStateMachine.prototype, "process", null);
|
|
1686
1733
|
var CredentialConsumer = class {
|
|
1734
|
+
processor;
|
|
1735
|
+
_onOpen;
|
|
1736
|
+
_onClose;
|
|
1737
|
+
_ctx;
|
|
1738
|
+
/**
|
|
1739
|
+
* @internal
|
|
1740
|
+
* Processor is ready to process live credentials.
|
|
1741
|
+
* NOTE: Setting this flag before all existing credentials are processed will cause them to be processed out of order.
|
|
1742
|
+
* Set externally.
|
|
1743
|
+
*/
|
|
1744
|
+
_isReadyForLiveCredentials;
|
|
1687
1745
|
constructor(processor, _onOpen, _onClose) {
|
|
1688
1746
|
this.processor = processor;
|
|
1689
1747
|
this._onOpen = _onOpen;
|
|
1690
1748
|
this._onClose = _onClose;
|
|
1691
1749
|
this._ctx = new Context(void 0, {
|
|
1692
1750
|
F: __dxlog_file6,
|
|
1693
|
-
L:
|
|
1751
|
+
L: 273
|
|
1694
1752
|
});
|
|
1695
1753
|
this._isReadyForLiveCredentials = false;
|
|
1696
1754
|
}
|
|
@@ -1722,6 +1780,11 @@ import { log as log4 } from "@dxos/log";
|
|
|
1722
1780
|
import { ComplexMap as ComplexMap7 } from "@dxos/util";
|
|
1723
1781
|
var __dxlog_file7 = "/__w/dxos/dxos/packages/core/halo/credentials/src/processor/device-state-machine.ts";
|
|
1724
1782
|
var DeviceStateMachine = class {
|
|
1783
|
+
_params;
|
|
1784
|
+
// TODO(burdon): Return values via getter.
|
|
1785
|
+
authorizedDeviceKeys;
|
|
1786
|
+
deviceChainReady;
|
|
1787
|
+
deviceCredentialChain;
|
|
1725
1788
|
constructor(_params) {
|
|
1726
1789
|
this._params = _params;
|
|
1727
1790
|
this.authorizedDeviceKeys = new ComplexMap7(PublicKey9.hash);
|
|
@@ -1734,7 +1797,7 @@ var DeviceStateMachine = class {
|
|
|
1734
1797
|
credential
|
|
1735
1798
|
}, {
|
|
1736
1799
|
F: __dxlog_file7,
|
|
1737
|
-
L:
|
|
1800
|
+
L: 36,
|
|
1738
1801
|
S: this,
|
|
1739
1802
|
C: (f, a) => f(...a)
|
|
1740
1803
|
});
|
|
@@ -1754,7 +1817,7 @@ var DeviceStateMachine = class {
|
|
|
1754
1817
|
size: this.authorizedDeviceKeys.size
|
|
1755
1818
|
}, {
|
|
1756
1819
|
F: __dxlog_file7,
|
|
1757
|
-
L:
|
|
1820
|
+
L: 56,
|
|
1758
1821
|
S: this,
|
|
1759
1822
|
C: (f, a) => f(...a)
|
|
1760
1823
|
});
|
|
@@ -1764,7 +1827,7 @@ var DeviceStateMachine = class {
|
|
|
1764
1827
|
case "dxos.halo.credentials.DeviceProfile": {
|
|
1765
1828
|
invariant6(this.authorizedDeviceKeys.has(credential.subject.id), "Device not found.", {
|
|
1766
1829
|
F: __dxlog_file7,
|
|
1767
|
-
L:
|
|
1830
|
+
L: 66,
|
|
1768
1831
|
S: this,
|
|
1769
1832
|
A: [
|
|
1770
1833
|
"this.authorizedDeviceKeys.has(credential.subject.id)",
|
|
@@ -1777,7 +1840,7 @@ var DeviceStateMachine = class {
|
|
|
1777
1840
|
profile: assertion.profile
|
|
1778
1841
|
}, {
|
|
1779
1842
|
F: __dxlog_file7,
|
|
1780
|
-
L:
|
|
1843
|
+
L: 69,
|
|
1781
1844
|
S: this,
|
|
1782
1845
|
C: (f, a) => f(...a)
|
|
1783
1846
|
});
|
|
@@ -1794,6 +1857,9 @@ var DeviceStateMachine = class {
|
|
|
1794
1857
|
import { log as log5 } from "@dxos/log";
|
|
1795
1858
|
var __dxlog_file8 = "/__w/dxos/dxos/packages/core/halo/credentials/src/processor/profile-state-machine.ts";
|
|
1796
1859
|
var ProfileStateMachine = class {
|
|
1860
|
+
_params;
|
|
1861
|
+
// TODO(burdon): Return values via getter.
|
|
1862
|
+
profile;
|
|
1797
1863
|
constructor(_params) {
|
|
1798
1864
|
this._params = _params;
|
|
1799
1865
|
}
|
|
@@ -1807,7 +1873,7 @@ var ProfileStateMachine = class {
|
|
|
1807
1873
|
credential
|
|
1808
1874
|
}, {
|
|
1809
1875
|
F: __dxlog_file8,
|
|
1810
|
-
L:
|
|
1876
|
+
L: 35,
|
|
1811
1877
|
S: this,
|
|
1812
1878
|
C: (f, a) => f(...a)
|
|
1813
1879
|
});
|
|
@@ -1819,7 +1885,7 @@ var ProfileStateMachine = class {
|
|
|
1819
1885
|
profile: this.profile
|
|
1820
1886
|
}, {
|
|
1821
1887
|
F: __dxlog_file8,
|
|
1822
|
-
L:
|
|
1888
|
+
L: 41,
|
|
1823
1889
|
S: this,
|
|
1824
1890
|
C: (f, a) => f(...a)
|
|
1825
1891
|
});
|