@dxos/credentials 0.8.4-main.b97322e → 0.8.4-main.bcb3aa67d6

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 (49) hide show
  1. package/.swc/plugins/linux_x86_64_19.0.0/727453fb3a62f7f1d952a41e051ca8a6f88cadc45cee43c6a4d1aa45f9b75665.wasmer-v7 +0 -0
  2. package/dist/lib/{browser → neutral}/index.mjs +129 -64
  3. package/dist/lib/neutral/index.mjs.map +7 -0
  4. package/dist/lib/{browser → neutral}/meta.json +1 -1
  5. package/dist/types/src/credentials/assertions.d.ts +1 -1
  6. package/dist/types/src/credentials/assertions.d.ts.map +1 -1
  7. package/dist/types/src/credentials/credential-factory.d.ts +4 -4
  8. package/dist/types/src/credentials/credential-factory.d.ts.map +1 -1
  9. package/dist/types/src/credentials/credential-generator.d.ts +3 -3
  10. package/dist/types/src/credentials/credential-generator.d.ts.map +1 -1
  11. package/dist/types/src/credentials/signing.d.ts.map +1 -1
  12. package/dist/types/src/did.d.ts +1 -1
  13. package/dist/types/src/did.d.ts.map +1 -1
  14. package/dist/types/src/presentations/presentation.d.ts.map +1 -1
  15. package/dist/types/src/presentations/verifier.d.ts.map +1 -1
  16. package/dist/types/src/processor/device-state-machine.d.ts +2 -2
  17. package/dist/types/src/processor/device-state-machine.d.ts.map +1 -1
  18. package/dist/types/src/processor/profile-state-machine.d.ts +2 -2
  19. package/dist/types/src/processor/profile-state-machine.d.ts.map +1 -1
  20. package/dist/types/src/state-machine/member-state-machine.d.ts +1 -1
  21. package/dist/types/src/state-machine/member-state-machine.d.ts.map +1 -1
  22. package/dist/types/src/state-machine/space-state-machine.d.ts +8 -2
  23. package/dist/types/src/state-machine/space-state-machine.d.ts.map +1 -1
  24. package/dist/types/tsconfig.tsbuildinfo +1 -1
  25. package/docs/README.md +17 -17
  26. package/moon.yml +2 -1
  27. package/package.json +20 -20
  28. package/src/credentials/assertions.ts +1 -1
  29. package/src/credentials/credential-factory.ts +5 -5
  30. package/src/credentials/credential-generator.ts +6 -1
  31. package/src/credentials/signing.ts +12 -0
  32. package/src/did.ts +2 -2
  33. package/src/presentations/json-encoding.test.ts +3 -1
  34. package/src/presentations/presentation.ts +2 -1
  35. package/src/presentations/verifier.test.ts +2 -1
  36. package/src/presentations/verifier.ts +2 -1
  37. package/src/processor/device-state-machine.ts +4 -3
  38. package/src/processor/profile-state-machine.ts +4 -3
  39. package/src/state-machine/invitation-state-machine.test.ts +3 -2
  40. package/src/state-machine/member-state-machine.test.ts +2 -1
  41. package/src/state-machine/member-state-machine.ts +1 -1
  42. package/src/state-machine/space-state-machine.test.ts +245 -2
  43. package/src/state-machine/space-state-machine.ts +34 -9
  44. package/vitest.config.ts +7 -6
  45. package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
  46. package/dist/lib/browser/index.mjs.map +0 -7
  47. package/dist/lib/node-esm/index.mjs +0 -1870
  48. package/dist/lib/node-esm/index.mjs.map +0 -7
  49. package/dist/lib/node-esm/meta.json +0 -1
@@ -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) => {
@@ -68,6 +68,14 @@ var getCredentialProofPayload = (credential) => {
68
68
  delete copy.parentCredentialIds;
69
69
  }
70
70
  delete copy.id;
71
+ const assertion = copy.subject?.assertion;
72
+ if (assertion) {
73
+ for (const key of Object.keys(assertion)) {
74
+ if (Array.isArray(assertion[key]) && assertion[key].length === 0) {
75
+ delete assertion[key];
76
+ }
77
+ }
78
+ }
71
79
  return Buffer.from(canonicalStringify(copy));
72
80
  };
73
81
  var canonicalStringify = (obj) => stableStringify(obj, {
@@ -314,9 +322,12 @@ var createCredentialSignerWithChain = (signer, chain, signingKey) => ({
314
322
  });
315
323
 
316
324
  // src/credentials/credential-generator.ts
317
- import { AdmittedFeed, SpaceMember } from "@dxos/protocols/proto/dxos/halo/credentials";
325
+ import { AdmittedFeed, MembershipPolicy, SpaceMember } from "@dxos/protocols/proto/dxos/halo/credentials";
318
326
  import { Timeframe as Timeframe2 } from "@dxos/timeframe";
319
327
  var CredentialGenerator = class {
328
+ _signer;
329
+ _identityKey;
330
+ _deviceKey;
320
331
  constructor(_signer, _identityKey, _deviceKey) {
321
332
  this._signer = _signer;
322
333
  this._identityKey = _identityKey;
@@ -325,7 +336,7 @@ var CredentialGenerator = class {
325
336
  /**
326
337
  * Create genesis messages for new Space.
327
338
  */
328
- async createSpaceGenesis(spaceKey, controlKey, creatorProfile) {
339
+ async createSpaceGenesis(spaceKey, controlKey, creatorProfile, membershipPolicy = MembershipPolicy.INVITE) {
329
340
  return [
330
341
  await createCredential({
331
342
  signer: this._signer,
@@ -333,7 +344,8 @@ var CredentialGenerator = class {
333
344
  subject: spaceKey,
334
345
  assertion: {
335
346
  "@type": "dxos.halo.credentials.SpaceGenesis",
336
- spaceKey
347
+ spaceKey,
348
+ membershipPolicy
337
349
  }
338
350
  }),
339
351
  await createCredential({
@@ -460,7 +472,7 @@ var createDeviceAuthorization = async (signer, identityKey, deviceKey) => {
460
472
  credential
461
473
  }));
462
474
  };
463
- var createAdmissionCredentials = async (signer, identityKey, spaceKey, genesisFeedKey, role = SpaceMember.Role.ADMIN, membershipChainHeads = [], profile, invitationCredentialId) => {
475
+ var createAdmissionCredentials = async (signer, identityKey, spaceKey, genesisFeedKey, role = SpaceMember.Role.ADMIN, membershipChainHeads = [], profile, invitationCredentialId, tags) => {
464
476
  const credentials = await Promise.all([
465
477
  await signer.createCredential({
466
478
  subject: identityKey,
@@ -471,7 +483,8 @@ var createAdmissionCredentials = async (signer, identityKey, spaceKey, genesisFe
471
483
  role,
472
484
  profile,
473
485
  genesisFeedKey,
474
- invitationCredentialId
486
+ invitationCredentialId,
487
+ tags: tags ?? []
475
488
  }
476
489
  })
477
490
  ]);
@@ -628,7 +641,7 @@ import { runInContextAsync, synchronized } from "@dxos/async";
628
641
  import { Context } from "@dxos/context";
629
642
  import { PublicKey as PublicKey8 } from "@dxos/keys";
630
643
  import { log as log3 } from "@dxos/log";
631
- import { SpaceMember as SpaceMember3 } from "@dxos/protocols/proto/dxos/halo/credentials";
644
+ import { MembershipPolicy as MembershipPolicy2, SpaceMember as SpaceMember3 } from "@dxos/protocols/proto/dxos/halo/credentials";
632
645
  import { Callback as Callback4, ComplexMap as ComplexMap6, ComplexSet as ComplexSet3 } from "@dxos/util";
633
646
 
634
647
  // src/state-machine/feed-state-machine.ts
@@ -637,10 +650,11 @@ import { PublicKey as PublicKey4 } from "@dxos/keys";
637
650
  import { Callback, ComplexMap as ComplexMap2 } from "@dxos/util";
638
651
  var __dxlog_file3 = "/__w/dxos/dxos/packages/core/halo/credentials/src/state-machine/feed-state-machine.ts";
639
652
  var FeedStateMachine = class {
653
+ _spaceKey;
654
+ _feeds = new ComplexMap2(PublicKey4.hash);
655
+ onFeedAdmitted = new Callback();
640
656
  constructor(_spaceKey) {
641
657
  this._spaceKey = _spaceKey;
642
- this._feeds = new ComplexMap2(PublicKey4.hash);
643
- this.onFeedAdmitted = new Callback();
644
658
  }
645
659
  get feeds() {
646
660
  return this._feeds;
@@ -686,13 +700,11 @@ var FeedStateMachine = class {
686
700
  import { PublicKey as PublicKey5 } from "@dxos/keys";
687
701
  import { Callback as Callback2, ComplexMap as ComplexMap3, ComplexSet } from "@dxos/util";
688
702
  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
- }
703
+ _invitations = new ComplexMap3(PublicKey5.hash);
704
+ _redeemedInvitationCredentialIds = new ComplexSet(PublicKey5.hash);
705
+ _cancelledInvitationCredentialIds = new ComplexSet(PublicKey5.hash);
706
+ onDelegatedInvitation = new Callback2();
707
+ onDelegatedInvitationRemoved = new Callback2();
696
708
  get invitations() {
697
709
  return this._invitations;
698
710
  }
@@ -766,23 +778,40 @@ import { log } from "@dxos/log";
766
778
  import { Callback as Callback3, ComplexMap as ComplexMap4, ComplexSet as ComplexSet2 } from "@dxos/util";
767
779
  var __dxlog_file4 = "/__w/dxos/dxos/packages/core/halo/credentials/src/graph/credential-graph.ts";
768
780
  var CredentialGraph = class {
781
+ _stateHandler;
782
+ /**
783
+ * Local ids are used during traversals.
784
+ */
785
+ _vertexIdGenerator = 1;
786
+ /**
787
+ * All credentials without parent references are connected to the root.
788
+ */
789
+ _root = {
790
+ id: -1,
791
+ parents: [],
792
+ children: []
793
+ };
794
+ /**
795
+ * A credential which is not a parent of any other credential has the sentinel as a child.
796
+ * Sentinel is a virtual merge-point of all credentials.
797
+ */
798
+ _sentinel = {
799
+ id: -2,
800
+ parents: [],
801
+ children: []
802
+ };
803
+ /**
804
+ * Vertex references are used for fast credential inserts into the graph.
805
+ */
806
+ _vertexByCredentialId = new ComplexMap4(PublicKey6.hash);
807
+ /**
808
+ * The current state of the graph.
809
+ */
810
+ _subjectToVertex = new ComplexMap4(PublicKey6.hash);
811
+ _subjectToState = new ComplexMap4(PublicKey6.hash);
812
+ onSubjectStateChanged = new Callback3();
769
813
  constructor(_stateHandler) {
770
814
  this._stateHandler = _stateHandler;
771
- this._vertexIdGenerator = 1;
772
- this._root = {
773
- id: -1,
774
- parents: [],
775
- children: []
776
- };
777
- this._sentinel = {
778
- id: -2,
779
- parents: [],
780
- children: []
781
- };
782
- this._vertexByCredentialId = new ComplexMap4(PublicKey6.hash);
783
- this._subjectToVertex = new ComplexMap4(PublicKey6.hash);
784
- this._subjectToState = new ComplexMap4(PublicKey6.hash);
785
- this.onSubjectStateChanged = new Callback3();
786
815
  }
787
816
  getSubjectState(subjectId) {
788
817
  return this._subjectToState.get(subjectId);
@@ -1317,11 +1346,13 @@ var toChosenPath = (path) => {
1317
1346
  // src/state-machine/member-state-machine.ts
1318
1347
  var __dxlog_file5 = "/__w/dxos/dxos/packages/core/halo/credentials/src/state-machine/member-state-machine.ts";
1319
1348
  var MemberStateMachine = class {
1349
+ _spaceKey;
1350
+ _ownerKey;
1351
+ _memberProfiles = new ComplexMap5(PublicKey7.hash);
1352
+ _hashgraph = new CredentialGraph(this);
1353
+ onMemberRoleChanged = this._hashgraph.onSubjectStateChanged;
1320
1354
  constructor(_spaceKey) {
1321
1355
  this._spaceKey = _spaceKey;
1322
- this._memberProfiles = new ComplexMap5(PublicKey7.hash);
1323
- this._hashgraph = new CredentialGraph(this);
1324
- this.onMemberRoleChanged = this._hashgraph.onSubjectStateChanged;
1325
1356
  }
1326
1357
  get creator() {
1327
1358
  return this._ownerKey && this._hashgraph.getSubjectState(this._ownerKey);
@@ -1469,20 +1500,28 @@ function _ts_decorate(decorators, target, key, desc) {
1469
1500
  }
1470
1501
  var __dxlog_file6 = "/__w/dxos/dxos/packages/core/halo/credentials/src/state-machine/space-state-machine.ts";
1471
1502
  var SpaceStateMachine = class {
1503
+ _spaceKey;
1504
+ _members;
1505
+ _feeds;
1506
+ _invitations = new InvitationStateMachine();
1507
+ _credentials = [];
1508
+ _credentialsById = new ComplexMap6(PublicKey8.hash);
1509
+ _processedCredentials = new ComplexSet3(PublicKey8.hash);
1510
+ _genesisCredential;
1511
+ _tags = [];
1512
+ _membershipPolicy = MembershipPolicy2.INVITE;
1513
+ _credentialProcessors = [];
1514
+ onCredentialProcessed = new Callback4();
1515
+ onMemberRoleChanged;
1516
+ onFeedAdmitted;
1517
+ onDelegatedInvitation = this._invitations.onDelegatedInvitation;
1518
+ onDelegatedInvitationRemoved = this._invitations.onDelegatedInvitationRemoved;
1472
1519
  constructor(_spaceKey) {
1473
1520
  this._spaceKey = _spaceKey;
1474
1521
  this._members = new MemberStateMachine(this._spaceKey);
1475
1522
  this._feeds = new FeedStateMachine(this._spaceKey);
1476
- this._invitations = new InvitationStateMachine();
1477
- this._credentials = [];
1478
- this._credentialsById = new ComplexMap6(PublicKey8.hash);
1479
- this._processedCredentials = new ComplexSet3(PublicKey8.hash);
1480
- this._credentialProcessors = [];
1481
- this.onCredentialProcessed = new Callback4();
1482
1523
  this.onMemberRoleChanged = this._members.onMemberRoleChanged;
1483
1524
  this.onFeedAdmitted = this._feeds.onFeedAdmitted;
1484
- this.onDelegatedInvitation = this._invitations.onDelegatedInvitation;
1485
- this.onDelegatedInvitationRemoved = this._invitations.onDelegatedInvitationRemoved;
1486
1525
  }
1487
1526
  get creator() {
1488
1527
  return this._members.creator;
@@ -1505,6 +1544,12 @@ var SpaceStateMachine = class {
1505
1544
  get genesisCredential() {
1506
1545
  return this._genesisCredential;
1507
1546
  }
1547
+ get tags() {
1548
+ return this._tags;
1549
+ }
1550
+ get membershipPolicy() {
1551
+ return this._membershipPolicy;
1552
+ }
1508
1553
  get invitations() {
1509
1554
  return this._invitations.invitations;
1510
1555
  }
@@ -1546,7 +1591,7 @@ var SpaceStateMachine = class {
1546
1591
  if (result.kind !== "pass") {
1547
1592
  log3.warn(`Invalid credential: ${result.errors.join(", ")}`, void 0, {
1548
1593
  F: __dxlog_file6,
1549
- L: 156,
1594
+ L: 174,
1550
1595
  S: this,
1551
1596
  C: (f, a) => f(...a)
1552
1597
  });
@@ -1559,7 +1604,7 @@ var SpaceStateMachine = class {
1559
1604
  if (this._genesisCredential) {
1560
1605
  log3.warn("Space already has a genesis credential.", void 0, {
1561
1606
  F: __dxlog_file6,
1562
- L: 165,
1607
+ L: 183,
1563
1608
  S: this,
1564
1609
  C: (f, a) => f(...a)
1565
1610
  });
@@ -1568,7 +1613,7 @@ var SpaceStateMachine = class {
1568
1613
  if (!credential.issuer.equals(this._spaceKey)) {
1569
1614
  log3.warn("Space genesis credential must be issued by space.", void 0, {
1570
1615
  F: __dxlog_file6,
1571
- L: 169,
1616
+ L: 187,
1572
1617
  S: this,
1573
1618
  C: (f, a) => f(...a)
1574
1619
  });
@@ -1577,13 +1622,15 @@ var SpaceStateMachine = class {
1577
1622
  if (!credential.subject.id.equals(this._spaceKey)) {
1578
1623
  log3.warn("Space genesis credential must be issued to space.", void 0, {
1579
1624
  F: __dxlog_file6,
1580
- L: 173,
1625
+ L: 191,
1581
1626
  S: this,
1582
1627
  C: (f, a) => f(...a)
1583
1628
  });
1584
1629
  return false;
1585
1630
  }
1586
1631
  this._genesisCredential = credential;
1632
+ this._tags = assertion.tags ?? [];
1633
+ this._membershipPolicy = assertion.membershipPolicy ?? MembershipPolicy2.INVITE;
1587
1634
  break;
1588
1635
  }
1589
1636
  case "dxos.halo.credentials.SpaceMember": {
@@ -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: 206,
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: 210,
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: 221,
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: 231,
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: 242,
1647
1694
  S: this,
1648
1695
  C: (f, a) => f(...a)
1649
1696
  });
@@ -1677,6 +1724,9 @@ var SpaceStateMachine = class {
1677
1724
  return this._canInviteNewMembers(memberKey);
1678
1725
  }
1679
1726
  _canInviteNewMembers(key) {
1727
+ if (this._membershipPolicy === MembershipPolicy2.LOCKED) {
1728
+ return key.equals(this._spaceKey) && this._members.members.size === 0;
1729
+ }
1680
1730
  return key.equals(this._spaceKey) || this._members.getRole(key) === SpaceMember3.Role.ADMIN || this._members.getRole(key) === SpaceMember3.Role.OWNER;
1681
1731
  }
1682
1732
  };
@@ -1684,15 +1734,24 @@ _ts_decorate([
1684
1734
  synchronized
1685
1735
  ], SpaceStateMachine.prototype, "process", null);
1686
1736
  var CredentialConsumer = class {
1737
+ processor;
1738
+ _onOpen;
1739
+ _onClose;
1740
+ _ctx = new Context(void 0, {
1741
+ F: __dxlog_file6,
1742
+ L: 292
1743
+ });
1744
+ /**
1745
+ * @internal
1746
+ * Processor is ready to process live credentials.
1747
+ * NOTE: Setting this flag before all existing credentials are processed will cause them to be processed out of order.
1748
+ * Set externally.
1749
+ */
1750
+ _isReadyForLiveCredentials = false;
1687
1751
  constructor(processor, _onOpen, _onClose) {
1688
1752
  this.processor = processor;
1689
1753
  this._onOpen = _onOpen;
1690
1754
  this._onClose = _onClose;
1691
- this._ctx = new Context(void 0, {
1692
- F: __dxlog_file6,
1693
- L: 267
1694
- });
1695
- this._isReadyForLiveCredentials = false;
1696
1755
  }
1697
1756
  /**
1698
1757
  * @internal
@@ -1722,10 +1781,13 @@ import { log as log4 } from "@dxos/log";
1722
1781
  import { ComplexMap as ComplexMap7 } from "@dxos/util";
1723
1782
  var __dxlog_file7 = "/__w/dxos/dxos/packages/core/halo/credentials/src/processor/device-state-machine.ts";
1724
1783
  var DeviceStateMachine = class {
1784
+ _params;
1785
+ // TODO(burdon): Return values via getter.
1786
+ authorizedDeviceKeys = new ComplexMap7(PublicKey9.hash);
1787
+ deviceChainReady = new Trigger();
1788
+ deviceCredentialChain;
1725
1789
  constructor(_params) {
1726
1790
  this._params = _params;
1727
- this.authorizedDeviceKeys = new ComplexMap7(PublicKey9.hash);
1728
- this.deviceChainReady = new Trigger();
1729
1791
  }
1730
1792
  async processCredential(credential) {
1731
1793
  log4("processing credential...", {
@@ -1734,7 +1796,7 @@ var DeviceStateMachine = class {
1734
1796
  credential
1735
1797
  }, {
1736
1798
  F: __dxlog_file7,
1737
- L: 35,
1799
+ L: 36,
1738
1800
  S: this,
1739
1801
  C: (f, a) => f(...a)
1740
1802
  });
@@ -1754,7 +1816,7 @@ var DeviceStateMachine = class {
1754
1816
  size: this.authorizedDeviceKeys.size
1755
1817
  }, {
1756
1818
  F: __dxlog_file7,
1757
- L: 55,
1819
+ L: 56,
1758
1820
  S: this,
1759
1821
  C: (f, a) => f(...a)
1760
1822
  });
@@ -1764,7 +1826,7 @@ var DeviceStateMachine = class {
1764
1826
  case "dxos.halo.credentials.DeviceProfile": {
1765
1827
  invariant6(this.authorizedDeviceKeys.has(credential.subject.id), "Device not found.", {
1766
1828
  F: __dxlog_file7,
1767
- L: 65,
1829
+ L: 66,
1768
1830
  S: this,
1769
1831
  A: [
1770
1832
  "this.authorizedDeviceKeys.has(credential.subject.id)",
@@ -1777,7 +1839,7 @@ var DeviceStateMachine = class {
1777
1839
  profile: assertion.profile
1778
1840
  }, {
1779
1841
  F: __dxlog_file7,
1780
- L: 68,
1842
+ L: 69,
1781
1843
  S: this,
1782
1844
  C: (f, a) => f(...a)
1783
1845
  });
@@ -1794,6 +1856,9 @@ var DeviceStateMachine = class {
1794
1856
  import { log as log5 } from "@dxos/log";
1795
1857
  var __dxlog_file8 = "/__w/dxos/dxos/packages/core/halo/credentials/src/processor/profile-state-machine.ts";
1796
1858
  var ProfileStateMachine = class {
1859
+ _params;
1860
+ // TODO(burdon): Return values via getter.
1861
+ profile;
1797
1862
  constructor(_params) {
1798
1863
  this._params = _params;
1799
1864
  }
@@ -1807,7 +1872,7 @@ var ProfileStateMachine = class {
1807
1872
  credential
1808
1873
  }, {
1809
1874
  F: __dxlog_file8,
1810
- L: 34,
1875
+ L: 35,
1811
1876
  S: this,
1812
1877
  C: (f, a) => f(...a)
1813
1878
  });
@@ -1819,7 +1884,7 @@ var ProfileStateMachine = class {
1819
1884
  profile: this.profile
1820
1885
  }, {
1821
1886
  F: __dxlog_file8,
1822
- L: 40,
1887
+ L: 41,
1823
1888
  S: this,
1824
1889
  C: (f, a) => f(...a)
1825
1890
  });