@dxos/client-services 0.1.57-main.c28f37d → 0.1.57-next.9496927

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 (38) hide show
  1. package/dist/lib/browser/{chunk-FSF5P2NZ.mjs → chunk-7CMWJC2B.mjs} +174 -97
  2. package/dist/lib/browser/chunk-7CMWJC2B.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +12 -12
  4. package/dist/lib/browser/index.mjs.map +3 -3
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/packlets/testing/index.mjs +1 -1
  7. package/dist/lib/node/index.cjs +198 -121
  8. package/dist/lib/node/index.cjs.map +3 -3
  9. package/dist/lib/node/meta.json +1 -1
  10. package/dist/lib/node/packlets/testing/index.cjs +186 -109
  11. package/dist/lib/node/packlets/testing/index.cjs.map +3 -3
  12. package/dist/types/src/packlets/devtools/network.d.ts.map +1 -1
  13. package/dist/types/src/packlets/identity/identity-manager.d.ts +1 -1
  14. package/dist/types/src/packlets/identity/identity-manager.d.ts.map +1 -1
  15. package/dist/types/src/packlets/services/service-context.d.ts.map +1 -1
  16. package/dist/types/src/packlets/services/service-host.d.ts.map +1 -1
  17. package/dist/types/src/packlets/spaces/data-space-manager.d.ts.map +1 -1
  18. package/dist/types/src/packlets/spaces/data-space.d.ts +1 -0
  19. package/dist/types/src/packlets/spaces/data-space.d.ts.map +1 -1
  20. package/dist/types/src/packlets/spaces/spaces-service.d.ts.map +1 -1
  21. package/dist/types/src/packlets/vault/worker-runtime.d.ts +2 -2
  22. package/dist/types/src/packlets/vault/worker-runtime.d.ts.map +1 -1
  23. package/dist/types/src/version.d.ts +1 -1
  24. package/package.json +35 -35
  25. package/src/packlets/devtools/network.ts +5 -1
  26. package/src/packlets/identity/identity-manager.test.ts +4 -0
  27. package/src/packlets/identity/identity-manager.ts +5 -3
  28. package/src/packlets/services/service-context.test.ts +2 -2
  29. package/src/packlets/services/service-context.ts +3 -0
  30. package/src/packlets/services/service-host.ts +2 -2
  31. package/src/packlets/spaces/data-space-manager.ts +11 -8
  32. package/src/packlets/spaces/data-space.ts +41 -23
  33. package/src/packlets/spaces/spaces-service.ts +5 -3
  34. package/src/packlets/vault/iframe-host-runtime.ts +2 -2
  35. package/src/packlets/vault/iframe-proxy-runtime.ts +2 -2
  36. package/src/packlets/vault/worker-runtime.ts +9 -9
  37. package/src/version.ts +1 -1
  38. package/dist/lib/browser/chunk-FSF5P2NZ.mjs.map +0 -7
@@ -107,6 +107,7 @@ var subscribeToSignal = ({ signalManager }) => new Stream2(({ next }) => {
107
107
  signalManager.swarmEvent.on(ctx, (swarmEvent) => {
108
108
  next({
109
109
  swarmEvent: swarmEvent.swarmEvent,
110
+ topic: swarmEvent.topic.asUint8Array(),
110
111
  receivedAt: /* @__PURE__ */ new Date()
111
112
  });
112
113
  });
@@ -670,13 +671,12 @@ var IdentityManager = class IdentityManager2 {
670
671
  S: this,
671
672
  C: (f, a) => f(...a)
672
673
  });
673
- await this._metadataStore.load();
674
674
  const identityRecord = this._metadataStore.getIdentityRecord();
675
675
  log3("identity record", {
676
676
  identityRecord
677
677
  }, {
678
678
  F: __dxlog_file3,
679
- L: 77,
679
+ L: 76,
680
680
  S: this,
681
681
  C: (f, a) => f(...a)
682
682
  });
@@ -689,7 +689,7 @@ var IdentityManager = class IdentityManager2 {
689
689
  displayName: this._identity.profileDocument?.displayName
690
690
  }, {
691
691
  F: __dxlog_file3,
692
- L: 82,
692
+ L: 81,
693
693
  S: this,
694
694
  C: (f, a) => f(...a)
695
695
  });
@@ -699,7 +699,7 @@ var IdentityManager = class IdentityManager2 {
699
699
  id: traceId
700
700
  }), {
701
701
  F: __dxlog_file3,
702
- L: 88,
702
+ L: 87,
703
703
  S: this,
704
704
  C: (f, a) => f(...a)
705
705
  });
@@ -710,7 +710,7 @@ var IdentityManager = class IdentityManager2 {
710
710
  async createIdentity({ displayName } = {}) {
711
711
  invariant2(!this._identity, "Identity already exists.", {
712
712
  F: __dxlog_file3,
713
- L: 96,
713
+ L: 95,
714
714
  S: this,
715
715
  A: [
716
716
  "!this._identity",
@@ -719,7 +719,7 @@ var IdentityManager = class IdentityManager2 {
719
719
  });
720
720
  log3("creating identity...", void 0, {
721
721
  F: __dxlog_file3,
722
- L: 97,
722
+ L: 96,
723
723
  S: this,
724
724
  C: (f, a) => f(...a)
725
725
  });
@@ -740,7 +740,7 @@ var IdentityManager = class IdentityManager2 {
740
740
  const generator = new CredentialGenerator(this._keyring, identityRecord.identityKey, identityRecord.deviceKey);
741
741
  invariant2(identityRecord.haloSpace.genesisFeedKey, "Genesis feed key is required.", {
742
742
  F: __dxlog_file3,
743
- L: 116,
743
+ L: 115,
744
744
  S: this,
745
745
  A: [
746
746
  "identityRecord.haloSpace.genesisFeedKey",
@@ -749,7 +749,7 @@ var IdentityManager = class IdentityManager2 {
749
749
  });
750
750
  invariant2(identityRecord.haloSpace.dataFeedKey, "Data feed key is required.", {
751
751
  F: __dxlog_file3,
752
- L: 117,
752
+ L: 116,
753
753
  S: this,
754
754
  A: [
755
755
  "identityRecord.haloSpace.dataFeedKey",
@@ -784,7 +784,7 @@ var IdentityManager = class IdentityManager2 {
784
784
  displayName: this._identity.profileDocument?.displayName
785
785
  }, {
786
786
  F: __dxlog_file3,
787
- L: 152,
787
+ L: 151,
788
788
  S: this,
789
789
  C: (f, a) => f(...a)
790
790
  });
@@ -794,7 +794,7 @@ var IdentityManager = class IdentityManager2 {
794
794
  deviceKey: identity.deviceKey
795
795
  }, {
796
796
  F: __dxlog_file3,
797
- L: 158,
797
+ L: 157,
798
798
  S: this,
799
799
  C: (f, a) => f(...a)
800
800
  });
@@ -808,13 +808,13 @@ var IdentityManager = class IdentityManager2 {
808
808
  params
809
809
  }, {
810
810
  F: __dxlog_file3,
811
- L: 166,
811
+ L: 165,
812
812
  S: this,
813
813
  C: (f, a) => f(...a)
814
814
  });
815
815
  invariant2(!this._identity, "Identity already exists.", {
816
816
  F: __dxlog_file3,
817
- L: 167,
817
+ L: 166,
818
818
  S: this,
819
819
  A: [
820
820
  "!this._identity",
@@ -842,7 +842,7 @@ var IdentityManager = class IdentityManager2 {
842
842
  displayName: this._identity.profileDocument?.displayName
843
843
  }, {
844
844
  F: __dxlog_file3,
845
- L: 186,
845
+ L: 185,
846
846
  S: this,
847
847
  C: (f, a) => f(...a)
848
848
  });
@@ -852,7 +852,7 @@ var IdentityManager = class IdentityManager2 {
852
852
  deviceKey: identity.deviceKey
853
853
  }, {
854
854
  F: __dxlog_file3,
855
- L: 192,
855
+ L: 191,
856
856
  S: this,
857
857
  C: (f, a) => f(...a)
858
858
  });
@@ -864,7 +864,7 @@ var IdentityManager = class IdentityManager2 {
864
864
  async updateProfile(profile) {
865
865
  invariant2(this._identity, "Identity not initialized.", {
866
866
  F: __dxlog_file3,
867
- L: 200,
867
+ L: 199,
868
868
  S: this,
869
869
  A: [
870
870
  "this._identity",
@@ -889,11 +889,13 @@ var IdentityManager = class IdentityManager2 {
889
889
  receipt.seq
890
890
  ]
891
891
  ]));
892
+ this.stateUpdate.emit();
893
+ return profile;
892
894
  }
893
895
  async _constructIdentity(identityRecord) {
894
896
  invariant2(!this._identity, void 0, {
895
897
  F: __dxlog_file3,
896
- L: 214,
898
+ L: 216,
897
899
  S: this,
898
900
  A: [
899
901
  "!this._identity",
@@ -904,13 +906,13 @@ var IdentityManager = class IdentityManager2 {
904
906
  identityRecord
905
907
  }, {
906
908
  F: __dxlog_file3,
907
- L: 215,
909
+ L: 217,
908
910
  S: this,
909
911
  C: (f, a) => f(...a)
910
912
  });
911
913
  invariant2(identityRecord.haloSpace.controlFeedKey, void 0, {
912
914
  F: __dxlog_file3,
913
- L: 218,
915
+ L: 220,
914
916
  S: this,
915
917
  A: [
916
918
  "identityRecord.haloSpace.controlFeedKey",
@@ -922,7 +924,7 @@ var IdentityManager = class IdentityManager2 {
922
924
  });
923
925
  invariant2(identityRecord.haloSpace.dataFeedKey, void 0, {
924
926
  F: __dxlog_file3,
925
- L: 222,
927
+ L: 224,
926
928
  S: this,
927
929
  A: [
928
930
  "identityRecord.haloSpace.dataFeedKey",
@@ -954,7 +956,7 @@ var IdentityManager = class IdentityManager2 {
954
956
  identityKey: identityRecord.identityKey
955
957
  }, {
956
958
  F: __dxlog_file3,
957
- L: 246,
959
+ L: 248,
958
960
  S: this,
959
961
  C: (f, a) => f(...a)
960
962
  });
@@ -975,7 +977,7 @@ var IdentityManager = class IdentityManager2 {
975
977
  onAuthFailure: () => {
976
978
  log3.warn("auth failure", void 0, {
977
979
  F: __dxlog_file3,
978
- L: 265,
980
+ L: 267,
979
981
  S: this,
980
982
  C: (f, a) => f(...a)
981
983
  });
@@ -985,7 +987,9 @@ var IdentityManager = class IdentityManager2 {
985
987
  }
986
988
  };
987
989
  _ts_decorate2([
988
- Trace.span()
990
+ Trace.span({
991
+ showInBrowserTimeline: true
992
+ })
989
993
  ], IdentityManager.prototype, "open", null);
990
994
  IdentityManager = _ts_decorate2([
991
995
  Trace.resource()
@@ -2463,7 +2467,7 @@ import { STORAGE_VERSION } from "@dxos/protocols";
2463
2467
  import { SpaceMember } from "@dxos/protocols/proto/dxos/client/services";
2464
2468
 
2465
2469
  // packages/sdk/client-services/src/version.ts
2466
- var DXOS_VERSION = "0.1.57-main.c28f37d";
2470
+ var DXOS_VERSION = "0.1.57-next.9496927";
2467
2471
 
2468
2472
  // packages/sdk/client-services/src/packlets/services/platform.ts
2469
2473
  var getPlatform = () => {
@@ -2612,7 +2616,7 @@ var getSpaceStats = async (space) => {
2612
2616
  };
2613
2617
 
2614
2618
  // packages/sdk/client-services/src/packlets/spaces/data-space.ts
2615
- import { Event as Event5, scheduleTask as scheduleTask4, synchronized, trackLeaks } from "@dxos/async";
2619
+ import { Event as Event5, scheduleTask as scheduleTask4, sleep as sleep2, synchronized, trackLeaks } from "@dxos/async";
2616
2620
  import { AUTH_TIMEOUT as AUTH_TIMEOUT2 } from "@dxos/client-protocol";
2617
2621
  import { cancelWithContext as cancelWithContext2, Context as Context7 } from "@dxos/context";
2618
2622
  import { timed } from "@dxos/debug";
@@ -2623,6 +2627,7 @@ import { log as log10 } from "@dxos/log";
2623
2627
  import { SpaceState } from "@dxos/protocols/proto/dxos/client/services";
2624
2628
  import { AdmittedFeed as AdmittedFeed3 } from "@dxos/protocols/proto/dxos/halo/credentials";
2625
2629
  import { Timeframe as Timeframe2 } from "@dxos/timeframe";
2630
+ import { trace as trace5 } from "@dxos/tracing";
2626
2631
  import { ComplexSet as ComplexSet2 } from "@dxos/util";
2627
2632
 
2628
2633
  // packages/sdk/client-services/src/packlets/spaces/notarization-plugin.ts
@@ -2933,6 +2938,14 @@ var DataSpace = class DataSpace2 {
2933
2938
  });
2934
2939
  this._cache = params.cache;
2935
2940
  this._state = params.initialState;
2941
+ log10("new state", {
2942
+ state: SpaceState[this._state]
2943
+ }, {
2944
+ F: __dxlog_file12,
2945
+ L: 112,
2946
+ S: this,
2947
+ C: (f, a) => f(...a)
2948
+ });
2936
2949
  }
2937
2950
  get key() {
2938
2951
  return this._inner.key;
@@ -2967,6 +2980,14 @@ var DataSpace = class DataSpace2 {
2967
2980
  await this._inner.spaceState.addCredentialProcessor(this._notarizationPlugin);
2968
2981
  await this._inner.open(new Context7());
2969
2982
  this._state = SpaceState.CONTROL_ONLY;
2983
+ log10("new state", {
2984
+ state: SpaceState[this._state]
2985
+ }, {
2986
+ F: __dxlog_file12,
2987
+ L: 158,
2988
+ S: this,
2989
+ C: (f, a) => f(...a)
2990
+ });
2970
2991
  this.stateUpdate.emit();
2971
2992
  this.metrics = {};
2972
2993
  this.metrics.open = /* @__PURE__ */ new Date();
@@ -2977,6 +2998,14 @@ var DataSpace = class DataSpace2 {
2977
2998
  async _close() {
2978
2999
  await this._callbacks.beforeClose?.();
2979
3000
  this._state = SpaceState.CLOSED;
3001
+ log10("new state", {
3002
+ state: SpaceState[this._state]
3003
+ }, {
3004
+ F: __dxlog_file12,
3005
+ L: 172,
3006
+ S: this,
3007
+ C: (f, a) => f(...a)
3008
+ });
2980
3009
  await this._ctx.dispose();
2981
3010
  this._ctx = new Context7();
2982
3011
  await this.authVerifier.close();
@@ -3003,7 +3032,7 @@ var DataSpace = class DataSpace2 {
3003
3032
  if (err instanceof CancelledError) {
3004
3033
  log10("data pipeline initialization cancelled", err, {
3005
3034
  F: __dxlog_file12,
3006
- L: 199,
3035
+ L: 203,
3007
3036
  S: this,
3008
3037
  C: (f, a) => f(...a)
3009
3038
  });
@@ -3011,11 +3040,19 @@ var DataSpace = class DataSpace2 {
3011
3040
  }
3012
3041
  log10.error("Error initializing data pipeline", err, {
3013
3042
  F: __dxlog_file12,
3014
- L: 203,
3043
+ L: 207,
3015
3044
  S: this,
3016
3045
  C: (f, a) => f(...a)
3017
3046
  });
3018
3047
  this._state = SpaceState.ERROR;
3048
+ log10("new state", {
3049
+ state: SpaceState[this._state]
3050
+ }, {
3051
+ F: __dxlog_file12,
3052
+ L: 209,
3053
+ S: this,
3054
+ C: (f, a) => f(...a)
3055
+ });
3019
3056
  this.error = err;
3020
3057
  this.stateUpdate.emit();
3021
3058
  } finally {
@@ -3028,32 +3065,22 @@ var DataSpace = class DataSpace2 {
3028
3065
  throw new SystemError("Invalid operation");
3029
3066
  }
3030
3067
  this._state = SpaceState.INITIALIZING;
3031
- await this._inner.controlPipeline.state.waitUntilReachedTargetTimeframe({
3032
- ctx: this._ctx,
3033
- breakOnStall: false
3034
- });
3035
- this.metrics.controlPipelineReady = /* @__PURE__ */ new Date();
3036
- await this._createWritableFeeds();
3037
- log10("writable feeds created", void 0, {
3068
+ log10("new state", {
3069
+ state: SpaceState[this._state]
3070
+ }, {
3038
3071
  F: __dxlog_file12,
3039
- L: 227,
3072
+ L: 225,
3040
3073
  S: this,
3041
3074
  C: (f, a) => f(...a)
3042
3075
  });
3043
- this.stateUpdate.emit();
3044
- if (!this.notarizationPlugin.hasWriter) {
3045
- this.notarizationPlugin.setWriter(createMappedFeedWriter((credential) => ({
3046
- credential: {
3047
- credential
3048
- }
3049
- }), this._inner.controlPipeline.writer));
3050
- }
3076
+ await this._initializeAndReadControlPipeline();
3077
+ await sleep2(1);
3051
3078
  await this._inner.initializeDataPipeline();
3052
3079
  this.metrics.dataPipelineOpen = /* @__PURE__ */ new Date();
3053
3080
  await cancelWithContext2(this._ctx, this._inner.dataPipeline.ensureEpochInitialized());
3054
3081
  log10("waiting for data pipeline to reach target timeframe", void 0, {
3055
3082
  F: __dxlog_file12,
3056
- L: 248,
3083
+ L: 239,
3057
3084
  S: this,
3058
3085
  C: (f, a) => f(...a)
3059
3086
  });
@@ -3064,15 +3091,45 @@ var DataSpace = class DataSpace2 {
3064
3091
  this.metrics.dataPipelineReady = /* @__PURE__ */ new Date();
3065
3092
  log10("data pipeline ready", void 0, {
3066
3093
  F: __dxlog_file12,
3067
- L: 257,
3094
+ L: 248,
3068
3095
  S: this,
3069
3096
  C: (f, a) => f(...a)
3070
3097
  });
3071
3098
  await this._callbacks.beforeReady?.();
3072
3099
  this._state = SpaceState.READY;
3100
+ log10("new state", {
3101
+ state: SpaceState[this._state]
3102
+ }, {
3103
+ F: __dxlog_file12,
3104
+ L: 252,
3105
+ S: this,
3106
+ C: (f, a) => f(...a)
3107
+ });
3073
3108
  this.stateUpdate.emit();
3074
3109
  await this._callbacks.afterReady?.();
3075
3110
  }
3111
+ async _initializeAndReadControlPipeline() {
3112
+ await this._inner.controlPipeline.state.waitUntilReachedTargetTimeframe({
3113
+ ctx: this._ctx,
3114
+ breakOnStall: false
3115
+ });
3116
+ this.metrics.controlPipelineReady = /* @__PURE__ */ new Date();
3117
+ await this._createWritableFeeds();
3118
+ log10("writable feeds created", void 0, {
3119
+ F: __dxlog_file12,
3120
+ L: 268,
3121
+ S: this,
3122
+ C: (f, a) => f(...a)
3123
+ });
3124
+ this.stateUpdate.emit();
3125
+ if (!this.notarizationPlugin.hasWriter) {
3126
+ this.notarizationPlugin.setWriter(createMappedFeedWriter((credential) => ({
3127
+ credential: {
3128
+ credential
3129
+ }
3130
+ }), this._inner.controlPipeline.writer));
3131
+ }
3132
+ }
3076
3133
  async _createWritableFeeds() {
3077
3134
  const credentials = [];
3078
3135
  if (!this.inner.controlFeedKey) {
@@ -3114,8 +3171,8 @@ var DataSpace = class DataSpace2 {
3114
3171
  credentials,
3115
3172
  timeout: 0
3116
3173
  });
3174
+ await this._metadataStore.setWritableFeedKeys(this.key, this.inner.controlFeedKey, this.inner.dataFeedKey);
3117
3175
  }
3118
- await this._metadataStore.setWritableFeedKeys(this.key, this.inner.controlFeedKey, this.inner.dataFeedKey);
3119
3176
  }
3120
3177
  async createEpoch() {
3121
3178
  const epoch = await this.dataPipeline.createEpoch();
@@ -3161,6 +3218,14 @@ var DataSpace = class DataSpace2 {
3161
3218
  await this._metadataStore.setSpaceState(this.key, SpaceState.INACTIVE);
3162
3219
  await this._close();
3163
3220
  this._state = SpaceState.INACTIVE;
3221
+ log10("new state", {
3222
+ state: SpaceState[this._state]
3223
+ }, {
3224
+ F: __dxlog_file12,
3225
+ L: 384,
3226
+ S: this,
3227
+ C: (f, a) => f(...a)
3228
+ });
3164
3229
  this.stateUpdate.emit();
3165
3230
  }
3166
3231
  };
@@ -3170,6 +3235,16 @@ _ts_decorate3([
3170
3235
  _ts_decorate3([
3171
3236
  synchronized
3172
3237
  ], DataSpace.prototype, "close", null);
3238
+ _ts_decorate3([
3239
+ trace5.span({
3240
+ showInBrowserTimeline: true
3241
+ })
3242
+ ], DataSpace.prototype, "initializeDataPipeline", null);
3243
+ _ts_decorate3([
3244
+ trace5.span({
3245
+ showInBrowserTimeline: true
3246
+ })
3247
+ ], DataSpace.prototype, "_initializeAndReadControlPipeline", null);
3173
3248
  _ts_decorate3([
3174
3249
  timed(1e4)
3175
3250
  ], DataSpace.prototype, "_createWritableFeeds", null);
@@ -3190,10 +3265,10 @@ import { getCredentialAssertion as getCredentialAssertion2 } from "@dxos/credent
3190
3265
  import { invariant as invariant11 } from "@dxos/invariant";
3191
3266
  import { PublicKey as PublicKey8 } from "@dxos/keys";
3192
3267
  import { log as log11 } from "@dxos/log";
3193
- import { trace as trace5 } from "@dxos/protocols";
3268
+ import { trace as trace6 } from "@dxos/protocols";
3194
3269
  import { SpaceState as SpaceState2 } from "@dxos/protocols/proto/dxos/client/services";
3195
3270
  import { Gossip, Presence } from "@dxos/teleport-extension-gossip";
3196
- import { ComplexMap as ComplexMap3, deferFunction as deferFunction2 } from "@dxos/util";
3271
+ import { ComplexMap as ComplexMap3, deferFunction as deferFunction2, forEachAsync } from "@dxos/util";
3197
3272
 
3198
3273
  // packages/sdk/client-services/src/packlets/spaces/genesis.ts
3199
3274
  import { createCredential } from "@dxos/credentials";
@@ -3301,7 +3376,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3301
3376
  S: this,
3302
3377
  C: (f, a) => f(...a)
3303
3378
  });
3304
- log11.trace("dxos.echo.data-space-manager.open", trace5.begin({
3379
+ log11.trace("dxos.echo.data-space-manager.open", trace6.begin({
3305
3380
  id: this._instanceId
3306
3381
  }), {
3307
3382
  F: __dxlog_file13,
@@ -3309,48 +3384,49 @@ var DataSpaceManager = class DataSpaceManager2 {
3309
3384
  S: this,
3310
3385
  C: (f, a) => f(...a)
3311
3386
  });
3312
- await this._metadataStore.load();
3313
3387
  log11("metadata loaded", {
3314
3388
  spaces: this._metadataStore.spaces.length
3315
3389
  }, {
3316
3390
  F: __dxlog_file13,
3317
- L: 82,
3391
+ L: 81,
3318
3392
  S: this,
3319
3393
  C: (f, a) => f(...a)
3320
3394
  });
3321
- for (const spaceMetadata of this._metadataStore.spaces) {
3395
+ await forEachAsync(this._metadataStore.spaces, async (spaceMetadata) => {
3322
3396
  try {
3323
3397
  log11("load space", {
3324
3398
  spaceMetadata
3325
3399
  }, {
3326
3400
  F: __dxlog_file13,
3327
- L: 86,
3401
+ L: 85,
3328
3402
  S: this,
3329
3403
  C: (f, a) => f(...a)
3330
3404
  });
3331
- const space = await this._constructSpace(spaceMetadata);
3332
- if (spaceMetadata.state !== SpaceState2.INACTIVE) {
3333
- space.initializeDataPipelineAsync();
3334
- }
3405
+ await this._constructSpace(spaceMetadata);
3335
3406
  } catch (err) {
3336
3407
  log11.error("Error loading space", {
3337
3408
  spaceMetadata,
3338
3409
  err
3339
3410
  }, {
3340
3411
  F: __dxlog_file13,
3341
- L: 92,
3412
+ L: 88,
3342
3413
  S: this,
3343
3414
  C: (f, a) => f(...a)
3344
3415
  });
3345
3416
  }
3346
- }
3417
+ });
3347
3418
  this._isOpen = true;
3348
3419
  this.updated.emit();
3349
- log11.trace("dxos.echo.data-space-manager.open", trace5.end({
3420
+ for (const space of this._spaces.values()) {
3421
+ if (space.state !== SpaceState2.INACTIVE) {
3422
+ space.initializeDataPipelineAsync();
3423
+ }
3424
+ }
3425
+ log11.trace("dxos.echo.data-space-manager.open", trace6.end({
3350
3426
  id: this._instanceId
3351
3427
  }), {
3352
3428
  F: __dxlog_file13,
3353
- L: 98,
3429
+ L: 101,
3354
3430
  S: this,
3355
3431
  C: (f, a) => f(...a)
3356
3432
  });
@@ -3358,7 +3434,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3358
3434
  async close() {
3359
3435
  log11("close", void 0, {
3360
3436
  F: __dxlog_file13,
3361
- L: 103,
3437
+ L: 106,
3362
3438
  S: this,
3363
3439
  C: (f, a) => f(...a)
3364
3440
  });
@@ -3374,7 +3450,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3374
3450
  async createSpace() {
3375
3451
  invariant11(this._isOpen, "Not open.", {
3376
3452
  F: __dxlog_file13,
3377
- L: 116,
3453
+ L: 119,
3378
3454
  S: this,
3379
3455
  A: [
3380
3456
  "this._isOpen",
@@ -3395,7 +3471,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3395
3471
  spaceKey
3396
3472
  }, {
3397
3473
  F: __dxlog_file13,
3398
- L: 128,
3474
+ L: 131,
3399
3475
  S: this,
3400
3476
  C: (f, a) => f(...a)
3401
3477
  });
@@ -3405,7 +3481,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3405
3481
  const memberCredential = credentials[1];
3406
3482
  invariant11(getCredentialAssertion2(memberCredential)["@type"] === "dxos.halo.credentials.SpaceMember", void 0, {
3407
3483
  F: __dxlog_file13,
3408
- L: 135,
3484
+ L: 138,
3409
3485
  S: this,
3410
3486
  A: [
3411
3487
  "getCredentialAssertion(memberCredential)['@type'] === 'dxos.halo.credentials.SpaceMember'",
@@ -3423,13 +3499,13 @@ var DataSpaceManager = class DataSpaceManager2 {
3423
3499
  opts
3424
3500
  }, {
3425
3501
  F: __dxlog_file13,
3426
- L: 147,
3502
+ L: 150,
3427
3503
  S: this,
3428
3504
  C: (f, a) => f(...a)
3429
3505
  });
3430
3506
  invariant11(this._isOpen, "Not open.", {
3431
3507
  F: __dxlog_file13,
3432
- L: 148,
3508
+ L: 151,
3433
3509
  S: this,
3434
3510
  A: [
3435
3511
  "this._isOpen",
@@ -3438,7 +3514,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3438
3514
  });
3439
3515
  invariant11(!this._spaces.has(opts.spaceKey), "Space already exists.", {
3440
3516
  F: __dxlog_file13,
3441
- L: 149,
3517
+ L: 152,
3442
3518
  S: this,
3443
3519
  A: [
3444
3520
  "!this._spaces.has(opts.spaceKey)",
@@ -3473,7 +3549,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3473
3549
  metadata
3474
3550
  }, {
3475
3551
  F: __dxlog_file13,
3476
- L: 182,
3552
+ L: 185,
3477
3553
  S: this,
3478
3554
  C: (f, a) => f(...a)
3479
3555
  });
@@ -3509,7 +3585,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3509
3585
  onAuthFailure: () => {
3510
3586
  log11.warn("auth failure", void 0, {
3511
3587
  F: __dxlog_file13,
3512
- L: 217,
3588
+ L: 220,
3513
3589
  S: this,
3514
3590
  C: (f, a) => f(...a)
3515
3591
  });
@@ -3533,7 +3609,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3533
3609
  space: space.key
3534
3610
  }, {
3535
3611
  F: __dxlog_file13,
3536
- L: 235,
3612
+ L: 238,
3537
3613
  S: this,
3538
3614
  C: (f, a) => f(...a)
3539
3615
  });
@@ -3545,7 +3621,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3545
3621
  open: this._isOpen
3546
3622
  }, {
3547
3623
  F: __dxlog_file13,
3548
- L: 242,
3624
+ L: 245,
3549
3625
  S: this,
3550
3626
  C: (f, a) => f(...a)
3551
3627
  });
@@ -3558,7 +3634,7 @@ var DataSpaceManager = class DataSpaceManager2 {
3558
3634
  space: space.key
3559
3635
  }, {
3560
3636
  F: __dxlog_file13,
3561
- L: 248,
3637
+ L: 251,
3562
3638
  S: this,
3563
3639
  C: (f, a) => f(...a)
3564
3640
  });
@@ -3605,7 +3681,6 @@ import { ApiError } from "@dxos/errors";
3605
3681
  import { log as log12 } from "@dxos/log";
3606
3682
  import { encodeError } from "@dxos/protocols";
3607
3683
  import { SpaceMember as SpaceMember3, SpaceState as SpaceState3 } from "@dxos/protocols/proto/dxos/client/services";
3608
- import { humanize } from "@dxos/util";
3609
3684
  var __dxlog_file14 = "/home/runner/work/dxos/dxos/packages/sdk/client-services/src/packlets/spaces/spaces-service.ts";
3610
3685
  var SpacesServiceImpl = class {
3611
3686
  constructor(_identityManager, _spaceManager, _dataServiceSubscriptions, _getDataSpaceManager) {
@@ -3664,7 +3739,7 @@ var SpacesServiceImpl = class {
3664
3739
  const subscribeSpaces = () => {
3665
3740
  subscriptions.clear();
3666
3741
  for (const space of dataSpaceManager.spaces.values()) {
3667
- subscriptions.add(space.stateUpdate.on(ctx, () => scheduler.trigger()));
3742
+ subscriptions.add(space.stateUpdate.on(ctx, () => scheduler.forceTrigger()));
3668
3743
  subscriptions.add(space.presence.updated.on(ctx, () => scheduler.trigger()));
3669
3744
  subscriptions.add(space.dataPipeline.onNewEpoch.on(ctx, () => scheduler.trigger()));
3670
3745
  space.inner.controlPipeline.state.timeframeUpdate.on(ctx, () => scheduler.trigger());
@@ -3759,7 +3834,7 @@ var SpacesServiceImpl = class {
3759
3834
  identity: {
3760
3835
  identityKey: member.key,
3761
3836
  profile: {
3762
- displayName: member.assertion.profile?.displayName ?? humanize(member.key)
3837
+ displayName: member.assertion.profile?.displayName
3763
3838
  }
3764
3839
  },
3765
3840
  presence: isMe || peers.length > 0 ? SpaceMember3.PresenceState.ONLINE : SpaceMember3.PresenceState.OFFLINE,
@@ -3785,7 +3860,7 @@ import { invariant as invariant12 } from "@dxos/invariant";
3785
3860
  import { Keyring } from "@dxos/keyring";
3786
3861
  import { PublicKey as PublicKey9 } from "@dxos/keys";
3787
3862
  import { log as log13 } from "@dxos/log";
3788
- import { STORAGE_VERSION as STORAGE_VERSION2, trace as trace6 } from "@dxos/protocols";
3863
+ import { STORAGE_VERSION as STORAGE_VERSION2, trace as trace7 } from "@dxos/protocols";
3789
3864
  import { Invitation as Invitation5 } from "@dxos/protocols/proto/dxos/client/services";
3790
3865
  import { BlobStore } from "@dxos/teleport-extension-object-sync";
3791
3866
  import { trace as Trace2 } from "@dxos/tracing";
@@ -3846,7 +3921,7 @@ var ServiceContext = class ServiceContext2 {
3846
3921
  S: this,
3847
3922
  C: (f, a) => f(...a)
3848
3923
  });
3849
- log13.trace("dxos.sdk.service-context.open", trace6.begin({
3924
+ log13.trace("dxos.sdk.service-context.open", trace7.begin({
3850
3925
  id: this._instanceId
3851
3926
  }), {
3852
3927
  F: __dxlog_file15,
@@ -3856,22 +3931,23 @@ var ServiceContext = class ServiceContext2 {
3856
3931
  });
3857
3932
  await this.signalManager.open();
3858
3933
  await this.networkManager.open();
3934
+ await this.metadataStore.load();
3859
3935
  await this.spaceManager.open();
3860
3936
  await this.identityManager.open(ctx);
3861
3937
  if (this.identityManager.identity) {
3862
3938
  await this._initialize(ctx);
3863
3939
  }
3864
- log13.trace("dxos.sdk.service-context.open", trace6.end({
3940
+ log13.trace("dxos.sdk.service-context.open", trace7.end({
3865
3941
  id: this._instanceId
3866
3942
  }), {
3867
3943
  F: __dxlog_file15,
3868
- L: 144,
3944
+ L: 146,
3869
3945
  S: this,
3870
3946
  C: (f, a) => f(...a)
3871
3947
  });
3872
3948
  log13("opened", void 0, {
3873
3949
  F: __dxlog_file15,
3874
- L: 145,
3950
+ L: 147,
3875
3951
  S: this,
3876
3952
  C: (f, a) => f(...a)
3877
3953
  });
@@ -3879,7 +3955,7 @@ var ServiceContext = class ServiceContext2 {
3879
3955
  async close() {
3880
3956
  log13("closing...", void 0, {
3881
3957
  F: __dxlog_file15,
3882
- L: 149,
3958
+ L: 151,
3883
3959
  S: this,
3884
3960
  C: (f, a) => f(...a)
3885
3961
  });
@@ -3893,9 +3969,10 @@ var ServiceContext = class ServiceContext2 {
3893
3969
  await this.networkManager.close();
3894
3970
  await this.signalManager.close();
3895
3971
  this.dataServiceSubscriptions.clear();
3972
+ await this.metadataStore.close();
3896
3973
  log13("closed", void 0, {
3897
3974
  F: __dxlog_file15,
3898
- L: 160,
3975
+ L: 163,
3899
3976
  S: this,
3900
3977
  C: (f, a) => f(...a)
3901
3978
  });
@@ -3909,7 +3986,7 @@ var ServiceContext = class ServiceContext2 {
3909
3986
  const factory = this._handlerFactories.get(invitation.kind);
3910
3987
  invariant12(factory, `Unknown invitation kind: ${invitation.kind}`, {
3911
3988
  F: __dxlog_file15,
3912
- L: 171,
3989
+ L: 174,
3913
3990
  S: this,
3914
3991
  A: [
3915
3992
  "factory",
@@ -3933,7 +4010,7 @@ var ServiceContext = class ServiceContext2 {
3933
4010
  async _initialize(ctx) {
3934
4011
  log13("initializing spaces...", void 0, {
3935
4012
  F: __dxlog_file15,
3936
- L: 192,
4013
+ L: 195,
3937
4014
  S: this,
3938
4015
  C: (f, a) => f(...a)
3939
4016
  });
@@ -3956,7 +4033,7 @@ var ServiceContext = class ServiceContext2 {
3956
4033
  this._handlerFactories.set(Invitation5.Kind.SPACE, (invitation) => {
3957
4034
  invariant12(this.dataSpaceManager, "dataSpaceManager not initialized yet", {
3958
4035
  F: __dxlog_file15,
3959
- L: 215,
4036
+ L: 218,
3960
4037
  S: this,
3961
4038
  A: [
3962
4039
  "this.dataSpaceManager",
@@ -3980,7 +4057,7 @@ var ServiceContext = class ServiceContext2 {
3980
4057
  details: assertion
3981
4058
  }, {
3982
4059
  F: __dxlog_file15,
3983
- L: 231,
4060
+ L: 234,
3984
4061
  S: this,
3985
4062
  C: (f, a) => f(...a)
3986
4063
  });
@@ -3991,7 +4068,7 @@ var ServiceContext = class ServiceContext2 {
3991
4068
  details: assertion
3992
4069
  }, {
3993
4070
  F: __dxlog_file15,
3994
- L: 235,
4071
+ L: 238,
3995
4072
  S: this,
3996
4073
  C: (f, a) => f(...a)
3997
4074
  });
@@ -4002,7 +4079,7 @@ var ServiceContext = class ServiceContext2 {
4002
4079
  details: assertion
4003
4080
  }, {
4004
4081
  F: __dxlog_file15,
4005
- L: 240,
4082
+ L: 243,
4006
4083
  S: this,
4007
4084
  C: (f, a) => f(...a)
4008
4085
  });
@@ -4013,7 +4090,7 @@ var ServiceContext = class ServiceContext2 {
4013
4090
  } catch (err) {
4014
4091
  log13.catch(err, void 0, {
4015
4092
  F: __dxlog_file15,
4016
- L: 246,
4093
+ L: 249,
4017
4094
  S: this,
4018
4095
  C: (f, a) => f(...a)
4019
4096
  });
@@ -4242,8 +4319,8 @@ import { PublicKey as PublicKey10 } from "@dxos/keys";
4242
4319
  import { log as log16 } from "@dxos/log";
4243
4320
  import { WebsocketSignalManager } from "@dxos/messaging";
4244
4321
  import { ModelFactory } from "@dxos/model-factory";
4245
- import { createWebRTCTransportFactory, NetworkManager } from "@dxos/network-manager";
4246
- import { trace as trace7 } from "@dxos/protocols";
4322
+ import { createSimplePeerTransportFactory, NetworkManager } from "@dxos/network-manager";
4323
+ import { trace as trace8 } from "@dxos/protocols";
4247
4324
  import { SystemStatus } from "@dxos/protocols/proto/dxos/client/services";
4248
4325
  import { TextModel } from "@dxos/text-model";
4249
4326
  import { TRACE_PROCESSOR, trace as Trace3 } from "@dxos/tracing";
@@ -4624,7 +4701,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4624
4701
  this._storage = createStorageObjects(config.get("runtime.client.storage", {})).storage;
4625
4702
  }
4626
4703
  }
4627
- const { connectionLog = true, transportFactory = createWebRTCTransportFactory({
4704
+ const { connectionLog = true, transportFactory = createSimplePeerTransportFactory({
4628
4705
  iceServers: this._config?.get("runtime.services.ice")
4629
4706
  }), signalManager = new WebsocketSignalManager(this._config?.get("runtime.services.signaling") ?? []) } = options;
4630
4707
  this._signalManager = signalManager;
@@ -4654,7 +4731,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4654
4731
  return;
4655
4732
  }
4656
4733
  const traceId = PublicKey10.random().toHex();
4657
- log16.trace("dxos.client-services.host.open", trace7.begin({
4734
+ log16.trace("dxos.client-services.host.open", trace8.begin({
4658
4735
  id: traceId
4659
4736
  }), {
4660
4737
  F: __dxlog_file17,
@@ -4753,7 +4830,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4753
4830
  S: this,
4754
4831
  C: (f, a) => f(...a)
4755
4832
  });
4756
- log16.trace("dxos.client-services.host.open", trace7.end({
4833
+ log16.trace("dxos.client-services.host.open", trace8.end({
4757
4834
  id: traceId
4758
4835
  }), {
4759
4836
  F: __dxlog_file17,
@@ -4794,7 +4871,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4794
4871
  }
4795
4872
  async reset() {
4796
4873
  const traceId = PublicKey10.random().toHex();
4797
- log16.trace("dxos.sdk.client-services-host.reset", trace7.begin({
4874
+ log16.trace("dxos.sdk.client-services-host.reset", trace8.begin({
4798
4875
  id: traceId
4799
4876
  }), {
4800
4877
  F: __dxlog_file17,
@@ -4816,7 +4893,7 @@ var ClientServicesHost = class ClientServicesHost2 {
4816
4893
  S: this,
4817
4894
  C: (f, a) => f(...a)
4818
4895
  });
4819
- log16.trace("dxos.sdk.client-services-host.reset", trace7.end({
4896
+ log16.trace("dxos.sdk.client-services-host.reset", trace8.end({
4820
4897
  id: traceId
4821
4898
  }), {
4822
4899
  F: __dxlog_file17,
@@ -4878,4 +4955,4 @@ export {
4878
4955
  createDefaultModelFactory,
4879
4956
  ClientServicesHost
4880
4957
  };
4881
- //# sourceMappingURL=chunk-FSF5P2NZ.mjs.map
4958
+ //# sourceMappingURL=chunk-7CMWJC2B.mjs.map