@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.
Files changed (42) hide show
  1. package/.swc/plugins/v7_linux_x86_64_13.0.0/c614d7475354583212fbd7669acbae95b9832c305bf51bdaabe2e6de05abb6bf +0 -0
  2. package/dist/lib/browser/index.mjs +94 -28
  3. package/dist/lib/browser/index.mjs.map +3 -3
  4. package/dist/lib/browser/meta.json +1 -1
  5. package/dist/lib/node-esm/index.mjs +94 -28
  6. package/dist/lib/node-esm/index.mjs.map +3 -3
  7. package/dist/lib/node-esm/meta.json +1 -1
  8. package/dist/types/src/credentials/assertions.d.ts +1 -1
  9. package/dist/types/src/credentials/assertions.d.ts.map +1 -1
  10. package/dist/types/src/credentials/credential-generator.d.ts.map +1 -1
  11. package/dist/types/src/did.d.ts +1 -1
  12. package/dist/types/src/did.d.ts.map +1 -1
  13. package/dist/types/src/presentations/presentation.d.ts.map +1 -1
  14. package/dist/types/src/presentations/verifier.d.ts.map +1 -1
  15. package/dist/types/src/processor/device-state-machine.d.ts.map +1 -1
  16. package/dist/types/src/processor/index.d.ts +1 -1
  17. package/dist/types/src/processor/index.d.ts.map +1 -1
  18. package/dist/types/src/processor/profile-state-machine.d.ts.map +1 -1
  19. package/dist/types/src/state-machine/member-state-machine.d.ts +1 -1
  20. package/dist/types/src/state-machine/member-state-machine.d.ts.map +1 -1
  21. package/dist/types/src/state-machine/space-state-machine.d.ts +1 -1
  22. package/dist/types/src/state-machine/space-state-machine.d.ts.map +1 -1
  23. package/dist/types/tsconfig.tsbuildinfo +1 -1
  24. package/package.json +13 -12
  25. package/src/credentials/assertions.ts +1 -1
  26. package/src/credentials/credential-factory.ts +1 -1
  27. package/src/credentials/credential-generator.ts +1 -1
  28. package/src/did.ts +2 -2
  29. package/src/presentations/json-encoding.test.ts +3 -1
  30. package/src/presentations/presentation.ts +2 -1
  31. package/src/presentations/verifier.test.ts +2 -1
  32. package/src/presentations/verifier.ts +2 -1
  33. package/src/processor/device-state-machine.ts +2 -1
  34. package/src/processor/index.ts +1 -1
  35. package/src/processor/profile-state-machine.ts +2 -1
  36. package/src/state-machine/invitation-state-machine.test.ts +3 -2
  37. package/src/state-machine/member-state-machine.test.ts +2 -1
  38. package/src/state-machine/member-state-machine.ts +1 -1
  39. package/src/state-machine/space-state-machine.test.ts +2 -1
  40. package/src/state-machine/space-state-machine.ts +14 -8
  41. package/.eslintrc.cjs +0 -7
  42. package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
@@ -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 { PublicKey, IdentityDid } from "@dxos/keys";
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
- constructor() {
690
- this._invitations = new ComplexMap3(PublicKey5.hash);
691
- this._redeemedInvitationCredentialIds = new ComplexSet(PublicKey5.hash);
692
- this._cancelledInvitationCredentialIds = new ComplexSet(PublicKey5.hash);
693
- this.onDelegatedInvitation = new Callback2();
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: 156,
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: 165,
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: 169,
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: 173,
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: 186,
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: 190,
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: 201,
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: 211,
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: 222,
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: 267
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: 35,
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: 55,
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: 65,
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: 68,
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: 34,
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: 40,
1888
+ L: 41,
1823
1889
  S: this,
1824
1890
  C: (f, a) => f(...a)
1825
1891
  });