@dxos/echo-pipeline 0.8.4-main.937b3ca → 0.8.4-main.9be5663bfe

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 (123) hide show
  1. package/dist/lib/{browser/chunk-FJPXA75J.mjs → neutral/chunk-76DA36YG.mjs} +14 -2
  2. package/dist/lib/neutral/chunk-76DA36YG.mjs.map +7 -0
  3. package/dist/lib/{browser/chunk-WIQUYO7H.mjs → neutral/chunk-IZLLEN4C.mjs} +65 -71
  4. package/dist/lib/neutral/chunk-IZLLEN4C.mjs.map +7 -0
  5. package/dist/lib/{browser → neutral}/filter/index.mjs +1 -1
  6. package/dist/lib/{browser → neutral}/index.mjs +1560 -1307
  7. package/dist/lib/neutral/index.mjs.map +7 -0
  8. package/dist/lib/neutral/meta.json +1 -0
  9. package/dist/lib/{browser → neutral}/testing/index.mjs +5 -5
  10. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  11. package/dist/types/src/automerge/automerge-host.d.ts +9 -12
  12. package/dist/types/src/automerge/automerge-host.d.ts.map +1 -1
  13. package/dist/types/src/automerge/echo-network-adapter.d.ts +7 -6
  14. package/dist/types/src/automerge/echo-network-adapter.d.ts.map +1 -1
  15. package/dist/types/src/automerge/echo-replicator.d.ts +11 -10
  16. package/dist/types/src/automerge/echo-replicator.d.ts.map +1 -1
  17. package/dist/types/src/automerge/heads-store.d.ts.map +1 -1
  18. package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts +2 -2
  19. package/dist/types/src/automerge/mesh-echo-replicator-connection.d.ts.map +1 -1
  20. package/dist/types/src/automerge/mesh-echo-replicator.d.ts +6 -5
  21. package/dist/types/src/automerge/mesh-echo-replicator.d.ts.map +1 -1
  22. package/dist/types/src/db-host/automerge-data-source.d.ts +2 -1
  23. package/dist/types/src/db-host/automerge-data-source.d.ts.map +1 -1
  24. package/dist/types/src/db-host/data-service.d.ts.map +1 -1
  25. package/dist/types/src/db-host/documents-synchronizer.d.ts +2 -2
  26. package/dist/types/src/db-host/documents-synchronizer.d.ts.map +1 -1
  27. package/dist/types/src/db-host/echo-host.d.ts +33 -35
  28. package/dist/types/src/db-host/echo-host.d.ts.map +1 -1
  29. package/dist/types/src/db-host/local-queue-service.d.ts +5 -2
  30. package/dist/types/src/db-host/local-queue-service.d.ts.map +1 -1
  31. package/dist/types/src/db-host/query-service.d.ts +8 -8
  32. package/dist/types/src/db-host/query-service.d.ts.map +1 -1
  33. package/dist/types/src/db-host/queue-data-source.d.ts +11 -1
  34. package/dist/types/src/db-host/queue-data-source.d.ts.map +1 -1
  35. package/dist/types/src/db-host/stub.d.ts +2 -1
  36. package/dist/types/src/db-host/stub.d.ts.map +1 -1
  37. package/dist/types/src/edge/echo-edge-replicator.d.ts +5 -4
  38. package/dist/types/src/edge/echo-edge-replicator.d.ts.map +1 -1
  39. package/dist/types/src/filter/filter-match.d.ts +1 -1
  40. package/dist/types/src/filter/filter-match.d.ts.map +1 -1
  41. package/dist/types/src/pipeline/pipeline.d.ts.map +1 -1
  42. package/dist/types/src/query/plan.d.ts +30 -13
  43. package/dist/types/src/query/plan.d.ts.map +1 -1
  44. package/dist/types/src/query/query-executor.d.ts +21 -15
  45. package/dist/types/src/query/query-executor.d.ts.map +1 -1
  46. package/dist/types/src/query/query-planner.d.ts +4 -1
  47. package/dist/types/src/query/query-planner.d.ts.map +1 -1
  48. package/dist/types/src/space/control-pipeline.d.ts +2 -1
  49. package/dist/types/src/space/control-pipeline.d.ts.map +1 -1
  50. package/dist/types/src/space/space-manager.d.ts +2 -1
  51. package/dist/types/src/space/space-manager.d.ts.map +1 -1
  52. package/dist/types/src/space/space-protocol.d.ts +3 -2
  53. package/dist/types/src/space/space-protocol.d.ts.map +1 -1
  54. package/dist/types/src/space/space.d.ts +2 -2
  55. package/dist/types/src/space/space.d.ts.map +1 -1
  56. package/dist/types/src/testing/test-agent-builder.d.ts.map +1 -1
  57. package/dist/types/src/testing/test-replicator.d.ts +8 -8
  58. package/dist/types/src/testing/test-replicator.d.ts.map +1 -1
  59. package/dist/types/tsconfig.tsbuildinfo +1 -1
  60. package/package.json +44 -49
  61. package/src/automerge/automerge-host.test.ts +8 -11
  62. package/src/automerge/automerge-host.ts +25 -42
  63. package/src/automerge/automerge-repo.test.ts +2 -2
  64. package/src/automerge/echo-network-adapter.test.ts +2 -1
  65. package/src/automerge/echo-network-adapter.ts +17 -18
  66. package/src/automerge/echo-replicator.ts +11 -10
  67. package/src/automerge/heads-store.ts +28 -1
  68. package/src/automerge/mesh-echo-replicator-connection.ts +2 -2
  69. package/src/automerge/mesh-echo-replicator.ts +13 -10
  70. package/src/db-host/automerge-data-source.test.ts +31 -26
  71. package/src/db-host/automerge-data-source.ts +49 -6
  72. package/src/db-host/data-service.ts +4 -4
  73. package/src/db-host/documents-synchronizer.test.ts +71 -6
  74. package/src/db-host/documents-synchronizer.ts +5 -3
  75. package/src/db-host/echo-host.ts +128 -142
  76. package/src/db-host/local-queue-service.ts +45 -46
  77. package/src/db-host/query-service.ts +21 -110
  78. package/src/db-host/queue-data-source.ts +50 -23
  79. package/src/db-host/queue-service.test.ts +16 -12
  80. package/src/db-host/space-state-manager.ts +1 -1
  81. package/src/db-host/stub.ts +5 -0
  82. package/src/edge/echo-edge-replicator.test.ts +9 -9
  83. package/src/edge/echo-edge-replicator.ts +27 -23
  84. package/src/filter/filter-match.test.ts +11 -1
  85. package/src/filter/filter-match.ts +22 -6
  86. package/src/metadata/metadata-store.ts +3 -3
  87. package/src/pipeline/pipeline-stress.test.ts +1 -3
  88. package/src/pipeline/pipeline.test.ts +0 -1
  89. package/src/pipeline/pipeline.ts +0 -1
  90. package/src/query/plan.ts +35 -17
  91. package/src/query/query-executor.ts +622 -379
  92. package/src/query/query-planner.test.ts +458 -164
  93. package/src/query/query-planner.ts +251 -55
  94. package/src/space/control-pipeline.test.ts +2 -2
  95. package/src/space/control-pipeline.ts +2 -3
  96. package/src/space/space-manager.ts +7 -4
  97. package/src/space/space-protocol.browser.test.ts +13 -12
  98. package/src/space/space-protocol.test.ts +13 -13
  99. package/src/space/space-protocol.ts +5 -4
  100. package/src/space/space.test.ts +2 -2
  101. package/src/space/space.ts +5 -6
  102. package/src/testing/test-agent-builder.ts +0 -1
  103. package/src/testing/test-replicator.ts +11 -11
  104. package/dist/lib/browser/chunk-FJPXA75J.mjs.map +0 -7
  105. package/dist/lib/browser/chunk-WIQUYO7H.mjs.map +0 -7
  106. package/dist/lib/browser/index.mjs.map +0 -7
  107. package/dist/lib/browser/meta.json +0 -1
  108. package/dist/lib/browser/testing/index.mjs.map +0 -7
  109. package/dist/lib/node-esm/chunk-7PL6UK4B.mjs +0 -2154
  110. package/dist/lib/node-esm/chunk-7PL6UK4B.mjs.map +0 -7
  111. package/dist/lib/node-esm/chunk-S5KGVQFZ.mjs +0 -235
  112. package/dist/lib/node-esm/chunk-S5KGVQFZ.mjs.map +0 -7
  113. package/dist/lib/node-esm/filter/index.mjs +0 -12
  114. package/dist/lib/node-esm/filter/index.mjs.map +0 -7
  115. package/dist/lib/node-esm/index.mjs +0 -6805
  116. package/dist/lib/node-esm/index.mjs.map +0 -7
  117. package/dist/lib/node-esm/meta.json +0 -1
  118. package/dist/lib/node-esm/testing/index.mjs +0 -591
  119. package/dist/lib/node-esm/testing/index.mjs.map +0 -7
  120. package/dist/types/src/db-host/documents-iterator.d.ts +0 -7
  121. package/dist/types/src/db-host/documents-iterator.d.ts.map +0 -1
  122. package/src/db-host/documents-iterator.ts +0 -76
  123. /package/dist/lib/{browser → neutral}/filter/index.mjs.map +0 -0
@@ -1,8 +1,8 @@
1
1
  import "@dxos/node-std/globals";
2
2
 
3
3
  // src/filter/filter-match.ts
4
- import { ATTR_META } from "@dxos/echo/internal";
5
4
  import { EncodedReference, ObjectStructure, isEncodedReference } from "@dxos/echo-protocol";
5
+ import { ATTR_META } from "@dxos/echo/internal";
6
6
  import { DXN } from "@dxos/keys";
7
7
  var filterMatchObject = (filter, obj) => {
8
8
  switch (filter.type) {
@@ -44,6 +44,12 @@ var filterMatchObject = (filter, obj) => {
44
44
  case "text-search": {
45
45
  return false;
46
46
  }
47
+ case "timestamp": {
48
+ throw new Error("Timestamp filters must be handled at the index level, not in-memory matching.");
49
+ }
50
+ case "child-of": {
51
+ throw new Error("child-of filters must be handled at the executor level, not in-memory matching.");
52
+ }
47
53
  case "not": {
48
54
  return !filterMatchObject(filter.filter, obj);
49
55
  }
@@ -101,6 +107,12 @@ var filterMatchObjectJSON = (filter, obj) => {
101
107
  case "text-search": {
102
108
  return false;
103
109
  }
110
+ case "timestamp": {
111
+ throw new Error("Timestamp filters must be handled at the index level, not in-memory matching.");
112
+ }
113
+ case "child-of": {
114
+ throw new Error("child-of filters must be handled at the executor level, not in-memory matching.");
115
+ }
104
116
  case "not": {
105
117
  return !filterMatchObjectJSON(filter.filter, obj);
106
118
  }
@@ -232,4 +244,4 @@ export {
232
244
  filterMatchObjectJSON,
233
245
  filterMatchValue
234
246
  };
235
- //# sourceMappingURL=chunk-FJPXA75J.mjs.map
247
+ //# sourceMappingURL=chunk-76DA36YG.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/filter/filter-match.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { EncodedReference, ObjectStructure, type QueryAST, isEncodedReference } from '@dxos/echo-protocol';\nimport { ATTR_META, type ObjectJSON } from '@dxos/echo/internal';\nimport { DXN, type ObjectId, type SpaceId } from '@dxos/keys';\n\nexport type MatchedObject = {\n id: ObjectId;\n spaceId: SpaceId;\n doc: ObjectStructure;\n};\n\n/**\n * Matches an object against a filter AST.\n * @param obj object structure as stored in automerge.\n */\nexport const filterMatchObject = (filter: QueryAST.Filter, obj: MatchedObject): boolean => {\n switch (filter.type) {\n case 'object': {\n // Check typename if specified.\n if (filter.typename !== null) {\n // TODO(dmaretskyi): `system` is missing in some cases.\n if (!obj.doc.system?.type?.['/']) {\n // Objects with no type are deprecated.\n return false;\n } else {\n const actualDXN = DXN.parse(obj.doc.system.type['/']);\n const expectedDXN = DXN.parse(filter.typename);\n if (!compareTypename(expectedDXN, actualDXN)) {\n return false;\n }\n }\n }\n\n // Check IDs if specified.\n if (filter.id && filter.id.length > 0 && !filter.id.includes(obj.id)) {\n return false;\n }\n\n // Check properties.\n if (filter.props) {\n for (const [key, valueFilter] of Object.entries(filter.props)) {\n const value = obj.doc.data[key];\n if (!filterMatchValue(valueFilter, value)) {\n return false;\n }\n }\n }\n\n // Check foreign keys if specified.\n if (filter.foreignKeys && filter.foreignKeys.length > 0) {\n const hasMatchingKey = filter.foreignKeys.some((filterKey) =>\n obj.doc.meta.keys.some((objKey) => objKey.source === filterKey.source && objKey.id === filterKey.id),\n );\n if (!hasMatchingKey) {\n return false;\n }\n }\n\n return true;\n }\n\n case 'tag': {\n const tags = ObjectStructure.getTags(obj.doc);\n return tags.some((tag) => tag === filter.tag);\n }\n\n case 'text-search': {\n // TODO(???): Implement text search.\n return false;\n }\n\n case 'timestamp': {\n throw new Error('Timestamp filters must be handled at the index level, not in-memory matching.');\n }\n\n case 'child-of': {\n throw new Error('child-of filters must be handled at the executor level, not in-memory matching.');\n }\n\n case 'not': {\n return !filterMatchObject(filter.filter, obj);\n }\n\n case 'and': {\n return filter.filters.every((f) => filterMatchObject(f, obj));\n }\n\n case 'or': {\n return filter.filters.some((f) => filterMatchObject(f, obj));\n }\n\n default:\n return false;\n }\n};\n\n// TODO(burdon): Reconcile with filterMatchObject.\nexport const filterMatchObjectJSON = (filter: QueryAST.Filter, obj: ObjectJSON): boolean => {\n switch (filter.type) {\n case 'object': {\n // Check typename if specified\n if (filter.typename !== null) {\n // TODO(dmaretskyi): `system` is missing in some cases.\n if (!obj['@type']) {\n // Objects with no type are deprecated.\n return false;\n } else {\n const actualDXN = DXN.parse(obj['@type']);\n const expectedDXN = DXN.parse(filter.typename);\n if (!compareTypename(expectedDXN, actualDXN)) {\n return false;\n }\n }\n }\n\n // Check IDs if specified\n if (filter.id && filter.id.length > 0 && !filter.id.includes(obj.id)) {\n return false;\n }\n\n // Check properties\n if (filter.props) {\n for (const [key, valueFilter] of Object.entries(filter.props)) {\n if (key.startsWith('@')) {\n // ignore meta properties\n continue;\n }\n const value = (obj as any)[key];\n if (!filterMatchValue(valueFilter, value)) {\n return false;\n }\n }\n }\n\n // Check foreign keys if specified\n if (filter.foreignKeys && filter.foreignKeys.length > 0) {\n const hasMatchingKey = filter.foreignKeys.some((filterKey) =>\n obj['@meta']?.keys?.some((objKey) => objKey.source === filterKey.source && objKey.id === filterKey.id),\n );\n if (!hasMatchingKey) {\n return false;\n }\n }\n\n return true;\n }\n\n case 'tag': {\n const tags = obj[ATTR_META]?.tags ?? [];\n return tags.some((tag) => tag === filter.tag);\n }\n\n // TODO: Implement text search.\n case 'text-search': {\n return false;\n }\n\n case 'timestamp': {\n throw new Error('Timestamp filters must be handled at the index level, not in-memory matching.');\n }\n\n case 'child-of': {\n throw new Error('child-of filters must be handled at the executor level, not in-memory matching.');\n }\n\n case 'not': {\n return !filterMatchObjectJSON(filter.filter, obj);\n }\n\n case 'and': {\n return filter.filters.every((f) => filterMatchObjectJSON(f, obj));\n }\n\n case 'or': {\n return filter.filters.some((f) => filterMatchObjectJSON(f, obj));\n }\n\n default:\n return false;\n }\n};\n\n/**\n * Performs structural matching between a filter object and a target object.\n * This handles nested object comparison for array matching scenarios.\n */\n// TODO(wittjosiah): Add ast support for non-strict matching.\nconst structuralMatch = (filterObj: any, targetObj: any, strict = true): boolean => {\n if (typeof filterObj !== 'object' || filterObj === null) {\n return filterObj === targetObj;\n }\n\n if (typeof targetObj !== 'object' || targetObj === null) {\n return false;\n }\n\n // Prohibit extra keys in targetObj.\n const filterKeys = Object.keys(filterObj);\n const targetKeys = Object.keys(targetObj);\n if (strict && filterKeys.length !== targetKeys.length) {\n return false;\n }\n\n return filterKeys.every((key) => {\n if (!(key in targetObj)) {\n return false;\n }\n const filterValue = filterObj[key];\n const targetValue = targetObj[key];\n\n if (typeof filterValue === 'object' && filterValue !== null) {\n return structuralMatch(filterValue, targetValue);\n }\n\n return filterValue === targetValue;\n });\n};\n\nexport const filterMatchValue = (filter: QueryAST.Filter, value: unknown): boolean => {\n switch (filter.type) {\n case 'compare': {\n const compareValue = filter.value as any;\n switch (filter.operator) {\n case 'eq':\n if (isEncodedReference(compareValue)) {\n if (!isEncodedReference(value)) {\n return false;\n }\n return DXN.equals(EncodedReference.toDXN(value), EncodedReference.toDXN(compareValue));\n }\n return value === compareValue;\n case 'neq':\n return value !== compareValue;\n case 'gt':\n return (value as any) > compareValue;\n case 'gte':\n return (value as any) >= compareValue;\n case 'lt':\n return (value as any) < compareValue;\n case 'lte':\n return (value as any) <= compareValue;\n default:\n return false;\n }\n }\n case 'object': {\n // Handle nested object filters for property matching\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n\n // Check properties\n if (filter.props) {\n for (const [key, valueFilter] of Object.entries(filter.props)) {\n const nestedValue = (value as any)[key];\n if (!filterMatchValue(valueFilter, nestedValue)) {\n return false;\n }\n }\n }\n\n return true;\n }\n case 'in': {\n return filter.values.includes(value);\n }\n case 'contains': {\n if (!Array.isArray(value)) {\n return false;\n }\n\n return value.some((element) => {\n if (typeof filter.value === 'object' && filter.value !== null && !Array.isArray(filter.value)) {\n return structuralMatch(filter.value, element);\n }\n\n return element === filter.value;\n });\n }\n case 'range': {\n return (value as any) >= filter.from && (value as any) <= filter.to;\n }\n case 'not': {\n return !filterMatchValue(filter.filter, value);\n }\n case 'and': {\n return filter.filters.every((f) => filterMatchValue(f, value));\n }\n case 'or': {\n return filter.filters.some((f) => filterMatchValue(f, value));\n }\n default:\n return false;\n }\n};\n\n/**\n * Compares typename DXNs.\n * @returns true if they match\n *\n * Compares typename string.\n * Missing version (on either actual or expected) matches any version.\n * non `type` DXNs are compared exactly.\n *\n * Examples: (expected) (actual)\n *\n * dxn:type:com.example.type.task !== dxn:type:com.example.type.contact\n * dxn:type:com.example.type.task === dxn:type:com.example.type.task\n * dxn:type:com.example.type.task:0.1.0 !== dxn:type:com.example.type.task:0.2.0\n * dxn:type:com.example.type.task === dxn:type:com.example.type.task:0.1.0\n * dxn:type:com.example.type.task:0.1.0 === dxn:type:com.example.type.task\n *\n */\nconst compareTypename = (expectedDXN: DXN, actualDXN: DXN): boolean => {\n const expectedTypeDXN = expectedDXN.asTypeDXN();\n if (expectedTypeDXN) {\n const actualTypeDXN = actualDXN.asTypeDXN();\n if (!actualTypeDXN) {\n return false;\n }\n if (\n actualTypeDXN.type !== expectedTypeDXN.type ||\n (expectedTypeDXN.version !== undefined &&\n actualTypeDXN.version !== undefined &&\n actualTypeDXN.version !== expectedTypeDXN.version)\n ) {\n return false;\n }\n } else {\n if (!DXN.equals(actualDXN, expectedDXN)) {\n return false;\n }\n }\n return true;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["EncodedReference", "ObjectStructure", "isEncodedReference", "ATTR_META", "DXN", "filterMatchObject", "filter", "obj", "type", "typename", "doc", "system", "actualDXN", "DXN", "parse", "expectedDXN", "compareTypename", "id", "length", "includes", "props", "key", "valueFilter", "Object", "entries", "value", "data", "filterMatchValue", "foreignKeys", "hasMatchingKey", "some", "filterKey", "meta", "keys", "objKey", "source", "tags", "ObjectStructure", "getTags", "tag", "Error", "filters", "every", "f", "filterMatchObjectJSON", "startsWith", "ATTR_META", "structuralMatch", "filterObj", "targetObj", "strict", "filterKeys", "targetKeys", "filterValue", "targetValue", "compareValue", "operator", "isEncodedReference", "equals", "EncodedReference", "toDXN", "nestedValue", "values", "Array", "isArray", "element", "from", "to", "expectedTypeDXN", "asTypeDXN", "actualTypeDXN", "version", "undefined"]
7
+ }
@@ -565,7 +565,7 @@ var PipelineState = class {
565
565
  */
566
566
  _ctx = new Context2(void 0, {
567
567
  F: __dxlog_file5,
568
- L: 42
568
+ L: 41
569
569
  });
570
570
  // TODO(dmaretskyi): Remove?. Avoid accessing `_timeframeClock` before constructor initialization.
571
571
  get timeframeUpdate() {
@@ -636,7 +636,7 @@ var PipelineState = class {
636
636
  */
637
637
  async waitUntilReachedTargetTimeframe({ ctx = new Context2(void 0, {
638
638
  F: __dxlog_file5,
639
- L: 132
639
+ L: 131
640
640
  }), timeout, breakOnStall = true } = {}) {
641
641
  log4("waitUntilReachedTargetTimeframe", {
642
642
  timeout,
@@ -644,7 +644,7 @@ var PipelineState = class {
644
644
  target: this.targetTimeframe
645
645
  }, {
646
646
  F: __dxlog_file5,
647
- L: 136,
647
+ L: 135,
648
648
  S: this,
649
649
  C: (f, a) => f(...a)
650
650
  });
@@ -676,7 +676,7 @@ var PipelineState = class {
676
676
  dependencies: Timeframe2.dependencies(this.targetTimeframe, this.timeframe)
677
677
  }, {
678
678
  F: __dxlog_file5,
679
- L: 164,
679
+ L: 163,
680
680
  S: this,
681
681
  C: (f, a) => f(...a)
682
682
  });
@@ -711,7 +711,7 @@ var Pipeline = class {
711
711
  get writer() {
712
712
  invariant4(this._writer, "Writer not set.", {
713
713
  F: __dxlog_file5,
714
- L: 246,
714
+ L: 245,
715
715
  S: this,
716
716
  A: [
717
717
  "this._writer",
@@ -740,7 +740,7 @@ var Pipeline = class {
740
740
  setWriteFeed(feed) {
741
741
  invariant4(!this._writer, "Writer already set.", {
742
742
  F: __dxlog_file5,
743
- L: 273,
743
+ L: 272,
744
744
  S: this,
745
745
  A: [
746
746
  "!this._writer",
@@ -749,7 +749,7 @@ var Pipeline = class {
749
749
  });
750
750
  invariant4(feed.properties.writable, "Feed must be writable.", {
751
751
  F: __dxlog_file5,
752
- L: 274,
752
+ L: 273,
753
753
  S: this,
754
754
  A: [
755
755
  "feed.properties.writable",
@@ -764,7 +764,7 @@ var Pipeline = class {
764
764
  async start() {
765
765
  invariant4(!this._isStarted, "Pipeline is already started.", {
766
766
  F: __dxlog_file5,
767
- L: 287,
767
+ L: 286,
768
768
  S: this,
769
769
  A: [
770
770
  "!this._isStarted",
@@ -773,7 +773,7 @@ var Pipeline = class {
773
773
  });
774
774
  log4("starting...", void 0, {
775
775
  F: __dxlog_file5,
776
- L: 288,
776
+ L: 287,
777
777
  S: this,
778
778
  C: (f, a) => f(...a)
779
779
  });
@@ -782,7 +782,7 @@ var Pipeline = class {
782
782
  this._isStarted = true;
783
783
  log4("started", void 0, {
784
784
  F: __dxlog_file5,
785
- L: 292,
785
+ L: 291,
786
786
  S: this,
787
787
  C: (f, a) => f(...a)
788
788
  });
@@ -795,7 +795,7 @@ var Pipeline = class {
795
795
  async stop() {
796
796
  log4("stopping...", void 0, {
797
797
  F: __dxlog_file5,
798
- L: 303,
798
+ L: 302,
799
799
  S: this,
800
800
  C: (f, a) => f(...a)
801
801
  });
@@ -809,14 +809,14 @@ var Pipeline = class {
809
809
  await this._state._ctx.dispose();
810
810
  this._state._ctx = new Context2(void 0, {
811
811
  F: __dxlog_file5,
812
- L: 312
812
+ L: 311
813
813
  });
814
814
  this._state._reachedTargetPromise = void 0;
815
815
  this._state._reachedTarget = false;
816
816
  this._isStarted = false;
817
817
  log4("stopped", void 0, {
818
818
  F: __dxlog_file5,
819
- L: 316,
819
+ L: 315,
820
820
  S: this,
821
821
  C: (f, a) => f(...a)
822
822
  });
@@ -828,7 +828,7 @@ var Pipeline = class {
828
828
  async setCursor(timeframe) {
829
829
  invariant4(!this._isStarted || this._isPaused, "Invalid state.", {
830
830
  F: __dxlog_file5,
831
- L: 325,
831
+ L: 324,
832
832
  S: this,
833
833
  A: [
834
834
  "!this._isStarted || this._isPaused",
@@ -857,7 +857,7 @@ var Pipeline = class {
857
857
  async unpause() {
858
858
  invariant4(this._isPaused, "Pipeline is not paused.", {
859
859
  F: __dxlog_file5,
860
- L: 354,
860
+ L: 353,
861
861
  S: this,
862
862
  A: [
863
863
  "this._isPaused",
@@ -877,7 +877,7 @@ var Pipeline = class {
877
877
  async *consume() {
878
878
  invariant4(!this._isBeingConsumed, "Pipeline is already being consumed.", {
879
879
  F: __dxlog_file5,
880
- L: 369,
880
+ L: 368,
881
881
  S: this,
882
882
  A: [
883
883
  "!this._isBeingConsumed",
@@ -887,7 +887,7 @@ var Pipeline = class {
887
887
  this._isBeingConsumed = true;
888
888
  invariant4(this._feedSetIterator, "Iterator not initialized.", {
889
889
  F: __dxlog_file5,
890
- L: 372,
890
+ L: 371,
891
891
  S: this,
892
892
  A: [
893
893
  "this._feedSetIterator",
@@ -901,7 +901,7 @@ var Pipeline = class {
901
901
  if (lastFeedSetIterator !== this._feedSetIterator) {
902
902
  invariant4(this._feedSetIterator, "Iterator not initialized.", {
903
903
  F: __dxlog_file5,
904
- L: 381,
904
+ L: 380,
905
905
  S: this,
906
906
  A: [
907
907
  "this._feedSetIterator",
@@ -936,7 +936,7 @@ var Pipeline = class {
936
936
  length: feed.length
937
937
  }, {
938
938
  F: __dxlog_file5,
939
- L: 410,
939
+ L: 409,
940
940
  S: this,
941
941
  C: (f, a) => f(...a)
942
942
  });
@@ -950,7 +950,7 @@ var Pipeline = class {
950
950
  data
951
951
  }, {
952
952
  F: __dxlog_file5,
953
- L: 415,
953
+ L: 414,
954
954
  S: this,
955
955
  C: (f, a) => f(...a)
956
956
  });
@@ -969,7 +969,7 @@ var Pipeline = class {
969
969
  targetTimeframe: this._state.targetTimeframe
970
970
  }, {
971
971
  F: __dxlog_file5,
972
- L: 429,
972
+ L: 428,
973
973
  S: this,
974
974
  C: (f, a) => f(...a)
975
975
  });
@@ -1209,7 +1209,7 @@ var ControlPipeline = class {
1209
1209
  await this._pipeline.addFeed(feed);
1210
1210
  this._pipeline.setWriteFeed(feed);
1211
1211
  }
1212
- async start() {
1212
+ async start(ctx) {
1213
1213
  const snapshot = this._metadata.getSpaceControlPipelineSnapshot(this._spaceKey);
1214
1214
  log6("load snapshot", {
1215
1215
  key: this._spaceKey,
@@ -1231,10 +1231,7 @@ var ControlPipeline = class {
1231
1231
  C: (f, a) => f(...a)
1232
1232
  });
1233
1233
  setTimeout(async () => {
1234
- void this._consumePipeline(new Context4(void 0, {
1235
- F: __dxlog_file7,
1236
- L: 133
1237
- }));
1234
+ void this._consumePipeline(ctx);
1238
1235
  });
1239
1236
  await this._pipeline.start();
1240
1237
  log6("started", void 0, {
@@ -1293,7 +1290,7 @@ var ControlPipeline = class {
1293
1290
  } catch (err) {
1294
1291
  log6.catch(err, void 0, {
1295
1292
  F: __dxlog_file7,
1296
- L: 179,
1293
+ L: 178,
1297
1294
  S: this,
1298
1295
  C: (f, a) => f(...a)
1299
1296
  });
@@ -1307,7 +1304,7 @@ var ControlPipeline = class {
1307
1304
  seq: msg.seq
1308
1305
  }, {
1309
1306
  F: __dxlog_file7,
1310
- L: 188,
1307
+ L: 187,
1311
1308
  S: this,
1312
1309
  C: (f, a) => f(...a)
1313
1310
  });
@@ -1322,7 +1319,7 @@ var ControlPipeline = class {
1322
1319
  msg
1323
1320
  }, {
1324
1321
  F: __dxlog_file7,
1325
- L: 197,
1322
+ L: 196,
1326
1323
  S: this,
1327
1324
  C: (f, a) => f(...a)
1328
1325
  });
@@ -1341,7 +1338,7 @@ var ControlPipeline = class {
1341
1338
  async stop() {
1342
1339
  log6("stopping...", void 0, {
1343
1340
  F: __dxlog_file7,
1344
- L: 217,
1341
+ L: 216,
1345
1342
  S: this,
1346
1343
  C: (f, a) => f(...a)
1347
1344
  });
@@ -1350,7 +1347,7 @@ var ControlPipeline = class {
1350
1347
  await this._saveTargetTimeframe(this._pipeline.state.timeframe);
1351
1348
  log6("stopped", void 0, {
1352
1349
  F: __dxlog_file7,
1353
- L: 221,
1350
+ L: 220,
1354
1351
  S: this,
1355
1352
  C: (f, a) => f(...a)
1356
1353
  });
@@ -1363,7 +1360,7 @@ var ControlPipeline = class {
1363
1360
  } catch (err) {
1364
1361
  log6(err, void 0, {
1365
1362
  F: __dxlog_file7,
1366
- L: 230,
1363
+ L: 229,
1367
1364
  S: this,
1368
1365
  C: (f, a) => f(...a)
1369
1366
  });
@@ -1381,9 +1378,6 @@ _ts_decorate4([
1381
1378
  showInBrowserTimeline: true
1382
1379
  })
1383
1380
  ], ControlPipeline.prototype, "start", null);
1384
- _ts_decorate4([
1385
- trace.span()
1386
- ], ControlPipeline.prototype, "_consumePipeline", null);
1387
1381
  _ts_decorate4([
1388
1382
  trace.span()
1389
1383
  ], ControlPipeline.prototype, "_processMessage", null);
@@ -1427,7 +1421,7 @@ var Space = class extends Resource {
1427
1421
  super();
1428
1422
  invariant6(params.spaceKey && params.feedProvider, void 0, {
1429
1423
  F: __dxlog_file8,
1430
- L: 73,
1424
+ L: 72,
1431
1425
  S: this,
1432
1426
  A: [
1433
1427
  "params.spaceKey && params.feedProvider",
@@ -1460,7 +1454,7 @@ var Space = class extends Resource {
1460
1454
  credential
1461
1455
  }, {
1462
1456
  F: __dxlog_file8,
1463
- L: 100,
1457
+ L: 99,
1464
1458
  S: this,
1465
1459
  C: (f, a) => f(...a)
1466
1460
  });
@@ -1471,7 +1465,7 @@ var Space = class extends Resource {
1471
1465
  invitation
1472
1466
  }, {
1473
1467
  F: __dxlog_file8,
1474
- L: 104,
1468
+ L: 103,
1475
1469
  S: this,
1476
1470
  C: (f, a) => f(...a)
1477
1471
  });
@@ -1482,7 +1476,7 @@ var Space = class extends Resource {
1482
1476
  invitation
1483
1477
  }, {
1484
1478
  F: __dxlog_file8,
1485
- L: 108,
1479
+ L: 107,
1486
1480
  S: this,
1487
1481
  C: (f, a) => f(...a)
1488
1482
  });
@@ -1496,7 +1490,7 @@ var Space = class extends Resource {
1496
1490
  ])
1497
1491
  }), {
1498
1492
  F: __dxlog_file8,
1499
- L: 112,
1493
+ L: 111,
1500
1494
  S: this,
1501
1495
  C: (f, a) => f(...a)
1502
1496
  });
@@ -1531,7 +1525,7 @@ var Space = class extends Resource {
1531
1525
  async setControlFeed(feed) {
1532
1526
  invariant6(!this._controlFeed, "Control feed already set.", {
1533
1527
  F: __dxlog_file8,
1534
- L: 156,
1528
+ L: 155,
1535
1529
  S: this,
1536
1530
  A: [
1537
1531
  "!this._controlFeed",
@@ -1545,7 +1539,7 @@ var Space = class extends Resource {
1545
1539
  async setDataFeed(feed) {
1546
1540
  invariant6(!this._dataFeed, "Data feed already set.", {
1547
1541
  F: __dxlog_file8,
1548
- L: 163,
1542
+ L: 162,
1549
1543
  S: this,
1550
1544
  A: [
1551
1545
  "!this._dataFeed",
@@ -1564,45 +1558,45 @@ var Space = class extends Resource {
1564
1558
  async _open(ctx) {
1565
1559
  log7("opening...", void 0, {
1566
1560
  F: __dxlog_file8,
1567
- L: 177,
1561
+ L: 176,
1568
1562
  S: this,
1569
1563
  C: (f, a) => f(...a)
1570
1564
  });
1571
- await this._controlPipeline.start();
1565
+ await this._controlPipeline.start(ctx);
1572
1566
  log7("opened", void 0, {
1573
1567
  F: __dxlog_file8,
1574
- L: 182,
1568
+ L: 181,
1575
1569
  S: this,
1576
1570
  C: (f, a) => f(...a)
1577
1571
  });
1578
1572
  }
1579
- async startProtocol() {
1573
+ async startProtocol(ctx) {
1580
1574
  invariant6(this.isOpen, void 0, {
1581
1575
  F: __dxlog_file8,
1582
- L: 187,
1576
+ L: 186,
1583
1577
  S: this,
1584
1578
  A: [
1585
1579
  "this.isOpen",
1586
1580
  ""
1587
1581
  ]
1588
1582
  });
1589
- await this.protocol.start();
1583
+ await this.protocol.start(ctx);
1590
1584
  await this.protocol.addFeed(await this._feedProvider(this._genesisFeedKey));
1591
1585
  }
1592
- async _close() {
1586
+ async _close(ctx) {
1593
1587
  log7("closing...", {
1594
1588
  key: this._key
1595
1589
  }, {
1596
1590
  F: __dxlog_file8,
1597
- L: 194,
1591
+ L: 193,
1598
1592
  S: this,
1599
1593
  C: (f, a) => f(...a)
1600
1594
  });
1601
- await this.protocol.stop();
1595
+ await this.protocol.stop(ctx);
1602
1596
  await this._controlPipeline.stop();
1603
1597
  log7("closed", void 0, {
1604
1598
  F: __dxlog_file8,
1605
- L: 200,
1599
+ L: 199,
1606
1600
  S: this,
1607
1601
  C: (f, a) => f(...a)
1608
1602
  });
@@ -1774,7 +1768,7 @@ var SpaceProtocol = class {
1774
1768
  key: feed.key
1775
1769
  }, {
1776
1770
  F: __dxlog_file10,
1777
- L: 131,
1771
+ L: 132,
1778
1772
  S: this,
1779
1773
  C: (f, a) => f(...a)
1780
1774
  });
@@ -1785,7 +1779,7 @@ var SpaceProtocol = class {
1785
1779
  await this.feedAdded.callSerial(feed);
1786
1780
  }
1787
1781
  // TODO(burdon): Rename open? Common open/close interfaces for all services?
1788
- async start() {
1782
+ async start(ctx) {
1789
1783
  if (this._connection) {
1790
1784
  return;
1791
1785
  }
@@ -1793,12 +1787,12 @@ var SpaceProtocol = class {
1793
1787
  await this.blobSync.open();
1794
1788
  log8("starting...", void 0, {
1795
1789
  F: __dxlog_file10,
1796
- L: 152,
1790
+ L: 153,
1797
1791
  S: this,
1798
1792
  C: (f, a) => f(...a)
1799
1793
  });
1800
1794
  const topic = await this._topic;
1801
- this._connection = await this._networkManager.joinSwarm({
1795
+ this._connection = await this._networkManager.joinSwarm(ctx, {
1802
1796
  protocolProvider: this._createProtocolProvider(credentials),
1803
1797
  topic,
1804
1798
  topology: this._topology,
@@ -1806,7 +1800,7 @@ var SpaceProtocol = class {
1806
1800
  });
1807
1801
  log8("started", void 0, {
1808
1802
  F: __dxlog_file10,
1809
- L: 161,
1803
+ L: 162,
1810
1804
  S: this,
1811
1805
  C: (f, a) => f(...a)
1812
1806
  });
@@ -1814,19 +1808,19 @@ var SpaceProtocol = class {
1814
1808
  updateTopology() {
1815
1809
  this._topology.forceUpdate();
1816
1810
  }
1817
- async stop() {
1811
+ async stop(ctx) {
1818
1812
  await this.blobSync.close();
1819
1813
  if (this._connection) {
1820
1814
  log8("stopping...", void 0, {
1821
1815
  F: __dxlog_file10,
1822
- L: 172,
1816
+ L: 173,
1823
1817
  S: this,
1824
1818
  C: (f, a) => f(...a)
1825
1819
  });
1826
- await this._connection.close();
1820
+ await this._connection.close(ctx);
1827
1821
  log8("stopped", void 0, {
1828
1822
  F: __dxlog_file10,
1829
- L: 174,
1823
+ L: 175,
1830
1824
  S: this,
1831
1825
  C: (f, a) => f(...a)
1832
1826
  });
@@ -1909,7 +1903,7 @@ var SpaceProtocolSession = class {
1909
1903
  onAuthSuccess: () => {
1910
1904
  log8("Peer authenticated", void 0, {
1911
1905
  F: __dxlog_file10,
1912
- L: 285,
1906
+ L: 286,
1913
1907
  S: this,
1914
1908
  C: (f, a) => f(...a)
1915
1909
  });
@@ -1929,7 +1923,7 @@ var SpaceProtocolSession = class {
1929
1923
  async close() {
1930
1924
  log8("close", void 0, {
1931
1925
  F: __dxlog_file10,
1932
- L: 304,
1926
+ L: 305,
1933
1927
  S: this,
1934
1928
  C: (f, a) => f(...a)
1935
1929
  });
@@ -2039,13 +2033,13 @@ var SpaceManager = class {
2039
2033
  });
2040
2034
  return space;
2041
2035
  }
2042
- async requestSpaceAdmissionCredential(params) {
2036
+ async requestSpaceAdmissionCredential(ctx, params) {
2043
2037
  const traceKey = "dxos.echo.space-manager.request-space-admission";
2044
2038
  log9.trace(traceKey, trace4.begin({
2045
2039
  id: this._instanceId
2046
2040
  }), {
2047
2041
  F: __dxlog_file11,
2048
- L: 140,
2042
+ L: 143,
2049
2043
  S: this,
2050
2044
  C: (f, a) => f(...a)
2051
2045
  });
@@ -2053,7 +2047,7 @@ var SpaceManager = class {
2053
2047
  spaceKey: params.spaceKey
2054
2048
  }, {
2055
2049
  F: __dxlog_file11,
2056
- L: 141,
2050
+ L: 144,
2057
2051
  S: this,
2058
2052
  C: (f, a) => f(...a)
2059
2053
  });
@@ -2073,7 +2067,7 @@ var SpaceManager = class {
2073
2067
  disableP2pReplication: this._disableP2pReplication
2074
2068
  });
2075
2069
  try {
2076
- await protocol.start();
2070
+ await protocol.start(ctx);
2077
2071
  const credential = await onCredentialResolved.wait({
2078
2072
  timeout: params.timeout
2079
2073
  });
@@ -2081,7 +2075,7 @@ var SpaceManager = class {
2081
2075
  id: this._instanceId
2082
2076
  }), {
2083
2077
  F: __dxlog_file11,
2084
- L: 165,
2078
+ L: 168,
2085
2079
  S: this,
2086
2080
  C: (f, a) => f(...a)
2087
2081
  });
@@ -2092,13 +2086,13 @@ var SpaceManager = class {
2092
2086
  error: err
2093
2087
  }), {
2094
2088
  F: __dxlog_file11,
2095
- L: 168,
2089
+ L: 171,
2096
2090
  S: this,
2097
2091
  C: (f, a) => f(...a)
2098
2092
  });
2099
2093
  throw err;
2100
2094
  } finally {
2101
- await protocol.stop();
2095
+ await protocol.stop(ctx);
2102
2096
  }
2103
2097
  }
2104
2098
  findSpaceByRootDocumentId(documentId) {
@@ -2151,4 +2145,4 @@ export {
2151
2145
  SpaceProtocolSession,
2152
2146
  SpaceManager
2153
2147
  };
2154
- //# sourceMappingURL=chunk-WIQUYO7H.mjs.map
2148
+ //# sourceMappingURL=chunk-IZLLEN4C.mjs.map