@dxos/echo 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393

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 (217) hide show
  1. package/README.md +2 -2
  2. package/dist/lib/neutral/Annotation.mjs +5 -3
  3. package/dist/lib/neutral/Database.mjs +4 -4
  4. package/dist/lib/neutral/Entity.mjs +14 -14
  5. package/dist/lib/neutral/Err.mjs +1 -1
  6. package/dist/lib/neutral/Extension.mjs +1 -1
  7. package/dist/lib/neutral/Feed.mjs +19 -17
  8. package/dist/lib/neutral/Filter.mjs +11 -11
  9. package/dist/lib/neutral/Format.mjs +3 -3
  10. package/dist/lib/neutral/JsonSchema.mjs +8 -8
  11. package/dist/lib/neutral/Key.mjs +1 -1
  12. package/dist/lib/neutral/Migration.mjs +10 -10
  13. package/dist/lib/neutral/Obj.mjs +14 -14
  14. package/dist/lib/neutral/Order.mjs +1 -1
  15. package/dist/lib/neutral/Query.mjs +17 -17
  16. package/dist/lib/neutral/QueryResult.mjs +1 -1
  17. package/dist/lib/neutral/Ref.mjs +9 -7
  18. package/dist/lib/neutral/Relation.mjs +15 -15
  19. package/dist/lib/neutral/SchemaRegistry.mjs +1 -1
  20. package/dist/lib/neutral/Tag.mjs +14 -14
  21. package/dist/lib/neutral/Type.mjs +10 -10
  22. package/dist/lib/neutral/{chunk-GZQTCRJB.mjs → chunk-44HT3MEC.mjs} +2 -2
  23. package/dist/lib/neutral/{chunk-4P3IXBLT.mjs → chunk-5SL5LDLD.mjs} +4 -2
  24. package/dist/lib/neutral/chunk-5SL5LDLD.mjs.map +7 -0
  25. package/dist/lib/neutral/{chunk-ANHVGJI4.mjs → chunk-7RVZT53K.mjs} +1 -1
  26. package/dist/lib/neutral/{chunk-A2WIDONZ.mjs → chunk-AHWSAJHU.mjs} +6 -22
  27. package/dist/lib/neutral/{chunk-A2WIDONZ.mjs.map → chunk-AHWSAJHU.mjs.map} +2 -2
  28. package/dist/lib/neutral/{chunk-XEU2Q5CI.mjs → chunk-APHSOTIX.mjs} +2 -2
  29. package/dist/lib/neutral/{chunk-BNCCGLJN.mjs → chunk-BICZKPQG.mjs} +1 -1
  30. package/dist/lib/neutral/{chunk-JPWH3QJD.mjs → chunk-BMB7IHGB.mjs} +10 -66
  31. package/dist/lib/neutral/{chunk-JPWH3QJD.mjs.map → chunk-BMB7IHGB.mjs.map} +2 -2
  32. package/dist/lib/neutral/{chunk-EJJFH3XB.mjs → chunk-C6LDQTNO.mjs} +10 -10
  33. package/dist/lib/neutral/chunk-C6LDQTNO.mjs.map +7 -0
  34. package/dist/lib/neutral/{chunk-GMYNDEMT.mjs → chunk-GKBXQFQK.mjs} +11 -27
  35. package/dist/lib/neutral/{chunk-GMYNDEMT.mjs.map → chunk-GKBXQFQK.mjs.map} +3 -3
  36. package/dist/lib/neutral/{chunk-YS6Q3XAD.mjs → chunk-GWFFC34K.mjs} +1 -1
  37. package/dist/lib/neutral/{chunk-YS6Q3XAD.mjs.map → chunk-GWFFC34K.mjs.map} +1 -1
  38. package/dist/lib/neutral/{chunk-PHU22NLC.mjs → chunk-I2DARWPX.mjs} +4 -12
  39. package/dist/lib/neutral/chunk-I2DARWPX.mjs.map +7 -0
  40. package/dist/lib/neutral/{chunk-RP37BQF7.mjs → chunk-KBZ4RAXR.mjs} +20 -16
  41. package/dist/lib/neutral/chunk-KBZ4RAXR.mjs.map +7 -0
  42. package/dist/lib/neutral/{chunk-QW7YUKSA.mjs → chunk-MLS7U7AT.mjs} +12 -65
  43. package/dist/lib/neutral/{chunk-QW7YUKSA.mjs.map → chunk-MLS7U7AT.mjs.map} +2 -2
  44. package/dist/lib/neutral/{chunk-TBKX6JQO.mjs → chunk-N4B7FHQT.mjs} +1 -1
  45. package/dist/lib/neutral/{chunk-H5F7C2UO.mjs → chunk-N7VOEPSV.mjs} +6 -3
  46. package/dist/lib/neutral/{chunk-H5F7C2UO.mjs.map → chunk-N7VOEPSV.mjs.map} +3 -3
  47. package/dist/lib/neutral/{chunk-ZUGFUCUK.mjs → chunk-NWXJZVWD.mjs} +8 -8
  48. package/dist/lib/neutral/{chunk-ZUGFUCUK.mjs.map → chunk-NWXJZVWD.mjs.map} +3 -3
  49. package/dist/lib/neutral/{chunk-JIN4EVUK.mjs → chunk-OMJN6VCR.mjs} +4 -4
  50. package/dist/lib/neutral/{chunk-EULNZHTP.mjs → chunk-PHOHAIEE.mjs} +4 -4
  51. package/dist/lib/neutral/{chunk-7I3YIAT2.mjs → chunk-QRZ2I3ZM.mjs} +2 -2
  52. package/dist/lib/neutral/{chunk-6ASBHRDG.mjs → chunk-SRX3EZY3.mjs} +38 -17
  53. package/dist/lib/neutral/chunk-SRX3EZY3.mjs.map +7 -0
  54. package/dist/lib/neutral/{chunk-WAK4DMFV.mjs → chunk-SUZMWP3Y.mjs} +2 -2
  55. package/dist/lib/neutral/{chunk-2KHZ36F5.mjs → chunk-TNBK56IN.mjs} +10 -21
  56. package/dist/lib/neutral/{chunk-2KHZ36F5.mjs.map → chunk-TNBK56IN.mjs.map} +3 -3
  57. package/dist/lib/neutral/{chunk-DQYLD2RB.mjs → chunk-TRPZU2HV.mjs} +2 -2
  58. package/dist/lib/neutral/{chunk-UI6MWK5W.mjs → chunk-TTCSATUD.mjs} +1 -1
  59. package/dist/lib/neutral/{chunk-OMUPQMLR.mjs → chunk-V72DY6LU.mjs} +1 -1
  60. package/dist/lib/neutral/{chunk-O26EPPBW.mjs → chunk-W7U2XGZ3.mjs} +11 -19
  61. package/dist/lib/neutral/{chunk-O26EPPBW.mjs.map → chunk-W7U2XGZ3.mjs.map} +3 -3
  62. package/dist/lib/neutral/{chunk-UBEZSGXY.mjs → chunk-ZISMEVKD.mjs} +1 -1
  63. package/dist/lib/neutral/{chunk-UBEZSGXY.mjs.map → chunk-ZISMEVKD.mjs.map} +2 -2
  64. package/dist/lib/neutral/{chunk-BQN7EDPH.mjs → chunk-ZVQ26DCR.mjs} +76 -478
  65. package/dist/lib/neutral/{chunk-BQN7EDPH.mjs.map → chunk-ZVQ26DCR.mjs.map} +3 -3
  66. package/dist/lib/neutral/index.mjs +28 -28
  67. package/dist/lib/neutral/internal/index.mjs +11 -9
  68. package/dist/lib/neutral/meta.json +1 -1
  69. package/dist/lib/neutral/testing/index.mjs +183 -129
  70. package/dist/lib/neutral/testing/index.mjs.map +3 -3
  71. package/dist/types/src/Annotation.d.ts +1 -1
  72. package/dist/types/src/Annotation.d.ts.map +1 -1
  73. package/dist/types/src/Collection.d.ts.map +1 -1
  74. package/dist/types/src/Database.d.ts +1 -1
  75. package/dist/types/src/Database.d.ts.map +1 -1
  76. package/dist/types/src/Dataset.d.ts +1 -1
  77. package/dist/types/src/Entity.d.ts +9 -9
  78. package/dist/types/src/Entity.d.ts.map +1 -1
  79. package/dist/types/src/Err.d.ts +18 -18
  80. package/dist/types/src/Err.d.ts.map +1 -1
  81. package/dist/types/src/Extension.d.ts +4 -4
  82. package/dist/types/src/Extension.d.ts.map +1 -1
  83. package/dist/types/src/Feed.d.ts +37 -13
  84. package/dist/types/src/Feed.d.ts.map +1 -1
  85. package/dist/types/src/Filter.d.ts.map +1 -1
  86. package/dist/types/src/Hypergraph.d.ts +3 -3
  87. package/dist/types/src/Hypergraph.d.ts.map +1 -1
  88. package/dist/types/src/Json.d.ts.map +1 -1
  89. package/dist/types/src/JsonSchema.d.ts +1 -1
  90. package/dist/types/src/Migration.d.ts.map +1 -1
  91. package/dist/types/src/Obj.d.ts +19 -19
  92. package/dist/types/src/Obj.d.ts.map +1 -1
  93. package/dist/types/src/Order.d.ts.map +1 -1
  94. package/dist/types/src/Query.d.ts +5 -1
  95. package/dist/types/src/Query.d.ts.map +1 -1
  96. package/dist/types/src/Ref.d.ts +1 -0
  97. package/dist/types/src/Ref.d.ts.map +1 -1
  98. package/dist/types/src/Relation.d.ts +15 -15
  99. package/dist/types/src/Relation.d.ts.map +1 -1
  100. package/dist/types/src/Tag.d.ts +2 -2
  101. package/dist/types/src/Tag.d.ts.map +1 -1
  102. package/dist/types/src/Type.d.ts.map +1 -1
  103. package/dist/types/src/View.d.ts +1 -1
  104. package/dist/types/src/View.d.ts.map +1 -1
  105. package/dist/types/src/exemplars.test.d.ts +2 -0
  106. package/dist/types/src/exemplars.test.d.ts.map +1 -0
  107. package/dist/types/src/internal/Annotation/annotations.d.ts +11 -2
  108. package/dist/types/src/internal/Annotation/annotations.d.ts.map +1 -1
  109. package/dist/types/src/internal/Annotation/sorting.d.ts.map +1 -1
  110. package/dist/types/src/internal/Annotation/util.d.ts +1 -1
  111. package/dist/types/src/internal/Annotation/util.d.ts.map +1 -1
  112. package/dist/types/src/internal/Entity/api.d.ts.map +1 -1
  113. package/dist/types/src/internal/Entity/relation.d.ts.map +1 -1
  114. package/dist/types/src/internal/Entity/version.d.ts.map +1 -1
  115. package/dist/types/src/internal/Format/date.d.ts.map +1 -1
  116. package/dist/types/src/internal/Format/format.d.ts.map +1 -1
  117. package/dist/types/src/internal/Format/number.d.ts.map +1 -1
  118. package/dist/types/src/internal/Format/object.d.ts.map +1 -1
  119. package/dist/types/src/internal/Format/types.d.ts.map +1 -1
  120. package/dist/types/src/internal/JsonSchema/json-schema-normalize.d.ts.map +1 -1
  121. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts +28 -28
  122. package/dist/types/src/internal/JsonSchema/json-schema-type.d.ts.map +1 -1
  123. package/dist/types/src/internal/JsonSchema/json-schema.d.ts +1 -1
  124. package/dist/types/src/internal/JsonSchema/json-schema.d.ts.map +1 -1
  125. package/dist/types/src/internal/Obj/clone.d.ts.map +1 -1
  126. package/dist/types/src/internal/Obj/common.d.ts.map +1 -1
  127. package/dist/types/src/internal/Obj/create-object.d.ts.map +1 -1
  128. package/dist/types/src/internal/Obj/deleted.d.ts.map +1 -1
  129. package/dist/types/src/internal/Obj/ids.d.ts +1 -1
  130. package/dist/types/src/internal/Obj/ids.d.ts.map +1 -1
  131. package/dist/types/src/internal/Obj/json-serializer.d.ts.map +1 -1
  132. package/dist/types/src/internal/Obj/set-value.d.ts +1 -1
  133. package/dist/types/src/internal/Obj/set-value.d.ts.map +1 -1
  134. package/dist/types/src/internal/Obj/snapshot.d.ts.map +1 -1
  135. package/dist/types/src/internal/Query.d.ts.map +1 -1
  136. package/dist/types/src/internal/Ref/ref.d.ts.map +1 -1
  137. package/dist/types/src/internal/Type/compose.d.ts.map +1 -1
  138. package/dist/types/src/internal/Type/echo-schema.d.ts +1 -1
  139. package/dist/types/src/internal/Type/echo-schema.d.ts.map +1 -1
  140. package/dist/types/src/internal/Type/manipulation.d.ts.map +1 -1
  141. package/dist/types/src/internal/common/api/meta.d.ts +3 -3
  142. package/dist/types/src/internal/common/api/meta.d.ts.map +1 -1
  143. package/dist/types/src/internal/common/proxy/change-context.d.ts +1 -1
  144. package/dist/types/src/internal/common/proxy/change-context.d.ts.map +1 -1
  145. package/dist/types/src/internal/common/proxy/define-hidden-property.d.ts.map +1 -1
  146. package/dist/types/src/internal/common/proxy/errors.d.ts +1 -1
  147. package/dist/types/src/internal/common/proxy/errors.d.ts.map +1 -1
  148. package/dist/types/src/internal/common/proxy/event-batch.d.ts.map +1 -1
  149. package/dist/types/src/internal/common/proxy/json-serializer.d.ts.map +1 -1
  150. package/dist/types/src/internal/common/proxy/ownership.d.ts.map +1 -1
  151. package/dist/types/src/internal/common/proxy/proxy-utils.d.ts.map +1 -1
  152. package/dist/types/src/internal/common/proxy/reactive-array.d.ts +1 -1
  153. package/dist/types/src/internal/common/proxy/reactive.d.ts +1 -1
  154. package/dist/types/src/internal/common/proxy/reactive.d.ts.map +1 -1
  155. package/dist/types/src/internal/common/proxy/schema-validator.d.ts.map +1 -1
  156. package/dist/types/src/internal/common/proxy/typed-handler.d.ts.map +1 -1
  157. package/dist/types/src/internal/common/types/base.d.ts.map +1 -1
  158. package/dist/types/src/internal/common/types/entity.d.ts +3 -3
  159. package/dist/types/src/internal/common/types/meta.d.ts.map +1 -1
  160. package/dist/types/src/internal/common/types/version.d.ts +1 -1
  161. package/dist/types/src/testing/test-data.d.ts +8 -8
  162. package/dist/types/src/testing/test-data.d.ts.map +1 -1
  163. package/dist/types/src/testing/test-schema.d.ts +53 -53
  164. package/dist/types/src/testing/test-schema.d.ts.map +1 -1
  165. package/dist/types/src/testing/util.d.ts.map +1 -1
  166. package/dist/types/tsconfig.tsbuildinfo +1 -1
  167. package/package.json +13 -13
  168. package/src/Annotation.ts +1 -0
  169. package/src/Collection.ts +1 -1
  170. package/src/Database.ts +1 -1
  171. package/src/Entity.ts +9 -9
  172. package/src/Extension.ts +3 -3
  173. package/src/Feed.ts +55 -24
  174. package/src/Hypergraph.ts +3 -3
  175. package/src/Obj.test.ts +12 -12
  176. package/src/Obj.ts +19 -19
  177. package/src/Query.test.ts +32 -16
  178. package/src/Query.ts +32 -7
  179. package/src/Ref.ts +2 -0
  180. package/src/Relation.ts +15 -15
  181. package/src/exemplars.test.ts +21 -0
  182. package/src/internal/Annotation/annotations.ts +16 -3
  183. package/src/internal/Obj/ids.ts +1 -1
  184. package/src/internal/Obj/json-serializer.test.ts +1 -1
  185. package/src/internal/Obj/json-serializer.ts +9 -9
  186. package/src/internal/Obj/set-value.test.ts +15 -15
  187. package/src/internal/Obj/set-value.ts +1 -1
  188. package/src/internal/Query.ts +7 -4
  189. package/src/internal/Type/echo-schema.ts +1 -1
  190. package/src/internal/common/README.md +1 -1
  191. package/src/internal/common/api/meta.ts +3 -3
  192. package/src/internal/common/proxy/change-context.ts +1 -1
  193. package/src/internal/common/proxy/change.test.ts +59 -59
  194. package/src/internal/common/proxy/errors.ts +2 -2
  195. package/src/internal/common/proxy/reactive-array.ts +1 -1
  196. package/src/internal/common/proxy/reactive.test.ts +3 -3
  197. package/src/internal/common/proxy/reactive.ts +1 -1
  198. package/src/internal/common/proxy/typed-handler.ts +7 -7
  199. package/src/internal/common/proxy/typed-object.test.ts +1 -1
  200. package/src/testing/test-data.ts +157 -97
  201. package/dist/lib/neutral/chunk-4P3IXBLT.mjs.map +0 -7
  202. package/dist/lib/neutral/chunk-6ASBHRDG.mjs.map +0 -7
  203. package/dist/lib/neutral/chunk-EJJFH3XB.mjs.map +0 -7
  204. package/dist/lib/neutral/chunk-PHU22NLC.mjs.map +0 -7
  205. package/dist/lib/neutral/chunk-RP37BQF7.mjs.map +0 -7
  206. /package/dist/lib/neutral/{chunk-GZQTCRJB.mjs.map → chunk-44HT3MEC.mjs.map} +0 -0
  207. /package/dist/lib/neutral/{chunk-ANHVGJI4.mjs.map → chunk-7RVZT53K.mjs.map} +0 -0
  208. /package/dist/lib/neutral/{chunk-XEU2Q5CI.mjs.map → chunk-APHSOTIX.mjs.map} +0 -0
  209. /package/dist/lib/neutral/{chunk-BNCCGLJN.mjs.map → chunk-BICZKPQG.mjs.map} +0 -0
  210. /package/dist/lib/neutral/{chunk-TBKX6JQO.mjs.map → chunk-N4B7FHQT.mjs.map} +0 -0
  211. /package/dist/lib/neutral/{chunk-JIN4EVUK.mjs.map → chunk-OMJN6VCR.mjs.map} +0 -0
  212. /package/dist/lib/neutral/{chunk-EULNZHTP.mjs.map → chunk-PHOHAIEE.mjs.map} +0 -0
  213. /package/dist/lib/neutral/{chunk-7I3YIAT2.mjs.map → chunk-QRZ2I3ZM.mjs.map} +0 -0
  214. /package/dist/lib/neutral/{chunk-WAK4DMFV.mjs.map → chunk-SUZMWP3Y.mjs.map} +0 -0
  215. /package/dist/lib/neutral/{chunk-DQYLD2RB.mjs.map → chunk-TRPZU2HV.mjs.map} +0 -0
  216. /package/dist/lib/neutral/{chunk-UI6MWK5W.mjs.map → chunk-TTCSATUD.mjs.map} +0 -0
  217. /package/dist/lib/neutral/{chunk-OMUPQMLR.mjs.map → chunk-V72DY6LU.mjs.map} +0 -0
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/JsonSchema/annotations.ts", "../../../src/internal/JsonSchema/json-schema-type.ts", "../../../src/internal/JsonSchema/json-schema.ts"],
4
4
  "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { GeneratorAnnotationId, LabelAnnotationId, PropertyMetaAnnotationId } from '../Annotation';\nimport { CurrencyAnnotationId, FormatAnnotationId } from '../Format';\nimport { type JsonSchemaEchoAnnotations, type JsonSchemaType } from '../JsonSchema';\n\n//\n// This file configures annotations for JSON encoding/decoding.\n//\n\n// Go on the root level.\ntype RootJsonSchemaProperty = keyof JsonSchemaType;\n\n// Go on the namespaced `annotations` property.\ntype NamespacedJsonSchemaProperty = keyof JsonSchemaEchoAnnotations;\n\n/**\n * List of annotations for JSON encoding/decoding.\n * Omits default effect-schema annotations since they are encoded with default serializer.\n */\n// TODO(burdon): Reconcile with `EchoAnnotations`.\nexport const CustomAnnotations: Partial<Record<RootJsonSchemaProperty, symbol>> = {\n format: FormatAnnotationId,\n currency: CurrencyAnnotationId,\n};\n\n/**\n * List of annotations for JSON decoding only.\n * Includes default effect annotations.\n */\nexport const DecodedAnnotations: Partial<Record<RootJsonSchemaProperty, symbol>> = {\n title: SchemaAST.TitleAnnotationId,\n description: SchemaAST.DescriptionAnnotationId,\n};\n\n/**\n * Annotations that go into ECHO namespace in json-schema.\n */\n// TODO(dmaretskyi): Consider removing ECHO namespace and putting them at the top level.\n// TODO(dmaretskyi): Move to format.ts when circular imports are solved\nexport const EchoAnnotations: Partial<Record<NamespacedJsonSchemaProperty, symbol>> = {\n // TODO(dmaretskyi): `FieldLookupAnnotationId` might go here, but lets remove it entirely and use LabelAnnotation instead.\n meta: PropertyMetaAnnotationId,\n generator: GeneratorAnnotationId,\n labelProp: LabelAnnotationId,\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { JsonPath, type JsonProp } from '@dxos/effect';\n\nimport { type Mutable } from '../common/proxy';\nimport { EntityKindSchema } from '../common/types';\nimport { FormatAnnotation, TypeFormat } from '../Format';\n\n//\n// JSON Schema\n//\n\n// TODO(burdon): Reuse/reconcile with ScalarTypeEnum (handle arrays).\nconst SimpleTypes = Schema.Literal('array', 'boolean', 'integer', 'null', 'number', 'object', 'string');\n\nconst NonNegativeInteger = Schema.Number.pipe(Schema.greaterThanOrEqualTo(0));\n\nconst StringArray = Schema.Array(Schema.String);\n\nconst JsonSchemaOrBoolean = Schema.Union(\n Schema.suspend(() => JsonSchemaType),\n Schema.Boolean,\n);\n\n/**\n * Go under the `annotations` property.\n */\nexport const JsonSchemaEchoAnnotations = Schema.Struct({\n /**\n * Label for this schema.\n * Mapped from {@link LabelAnnotationId}.\n */\n labelProp: Schema.optional(Schema.Union(JsonPath, Schema.Array(JsonPath))),\n\n /**\n * Generator function for this schema.\n * Mapped from {@link GeneratorAnnotationId}.\n */\n generator: Schema.optional(Schema.Union(Schema.String, Schema.Tuple(Schema.String, Schema.Number))),\n\n /**\n * {@link PropertyMeta} annotations get serialized here.\n */\n meta: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.Any,\n }),\n ),\n\n /**\n * @deprecated\n */\n // TODO(dmaretskyi): We risk old schema not passing validation due to the extra fields. Remove when we are sure this is safe.\n type: Schema.optional(\n Schema.Struct({\n typename: Schema.String,\n version: Schema.String,\n\n // Not used.\n schemaId: Schema.optional(Schema.String),\n }),\n ),\n\n /**\n * @deprecated Superseded by `meta`.\n */\n annotations: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.Any,\n }),\n ),\n});\nexport type JsonSchemaEchoAnnotations = Schema.Schema.Type<typeof JsonSchemaEchoAnnotations>;\n\n/**\n * Describes a schema for the JSON-schema objects stored in ECHO.\n * Contains extensions for ECHO (e.g., references).\n * Ref: https://json-schema.org/draft-07/schema\n */\n// TODO(burdon): Integrate with Effect Serializable?\n// TODO(dmaretskyi): Update to latest draft: https://json-schema.org/draft/2020-12\nconst _JsonSchemaType = Schema.Struct({\n /**\n * Identifier for this schema.\n * This schema might be referenced by $ref clause in other schemas.\n */\n // TODO(dmaretskyi): Specify how the ids are generated.\n // TODO(dmaretskyi): For type dxns, should this include the version?\n $id: Schema.optional(Schema.String),\n\n /**\n * Schema of this schema.\n * Set to \"https://json-schema.org/draft-07/schema\".\n */\n $schema: Schema.optional(Schema.String),\n\n /**\n * Reference to another schema.\n */\n $ref: Schema.optional(Schema.String),\n\n /**\n * Comments are ignored when interpreting the schema.\n */\n $comment: Schema.optional(Schema.String),\n\n /**\n * Defines whether this schema is an object schema or a relation schema.\n */\n entityKind: Schema.optional(EntityKindSchema),\n\n /**\n * Typename of this schema.\n * Only on schema representing an ECHO object.\n *\n * @example 'com.example.type.my-type'\n */\n typename: Schema.optional(Schema.String),\n\n /**\n * Version of this schema.\n * Custom dialect for ECHO.\n */\n version: Schema.optional(Schema.String),\n\n /**\n * Target of this relation.\n * Only for relation schemas.\n * The referenced schema must be an object schema.\n */\n relationTarget: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n\n /**\n * Source of this relation.\n * Only for relation schemas.\n * The referenced schema must be an object schema.\n */\n relationSource: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n\n /**\n * Title of this schema.\n */\n title: Schema.optional(Schema.String),\n\n /**\n * Description of this schema.\n */\n description: Schema.optional(Schema.String),\n\n /**\n * Whether this schema is read-only.\n */\n readOnly: Schema.optional(Schema.Boolean),\n\n /**\n * Whether this schema is write-only.\n */\n writeOnly: Schema.optional(Schema.Boolean),\n\n /**\n * Examples of instances of this schema.\n */\n examples: Schema.optional(Schema.Array(Schema.Any)),\n\n /**\n * Default value for this schema.\n */\n default: Schema.optional(Schema.Any),\n\n /**\n * This schema only matches values that are equal to this value.\n */\n const: Schema.optional(Schema.Any),\n\n /**\n * This schema only matches one of the values in this array.\n */\n enum: Schema.optional(Schema.Array(Schema.Any)),\n\n /**\n * Base type of the schema.\n */\n type: Schema.optional(Schema.Union(SimpleTypes, Schema.Array(SimpleTypes))),\n\n //\n // Numbers.\n //\n\n multipleOf: Schema.optional(Schema.Number.pipe(Schema.greaterThan(0))),\n maximum: Schema.optional(Schema.Number),\n exclusiveMaximum: Schema.optional(Schema.Number),\n minimum: Schema.optional(Schema.Number),\n exclusiveMinimum: Schema.optional(Schema.Number),\n\n //\n // Strings.\n //\n\n maxLength: Schema.optional(NonNegativeInteger),\n\n /**\n * Regex pattern for strings.\n */\n pattern: Schema.optional(Schema.String.pipe(FormatAnnotation.set(TypeFormat.Regex))),\n\n /**\n * Serialized from {@link FormatAnnotationId}.\n */\n format: Schema.optional(Schema.String),\n\n //\n // Arrays\n //\n\n minLength: Schema.optional(NonNegativeInteger),\n items: Schema.optional(\n Schema.Union(\n Schema.suspend(() => JsonSchemaType),\n Schema.Array(Schema.suspend(() => JsonSchemaType)),\n ),\n ),\n additionalItems: Schema.optional(\n Schema.Union(\n Schema.suspend(() => JsonSchemaType),\n Schema.Boolean,\n ),\n ),\n maxItems: Schema.optional(NonNegativeInteger),\n minItems: Schema.optional(NonNegativeInteger),\n uniqueItems: Schema.optional(Schema.Boolean),\n contains: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n\n //\n // Objects\n //\n\n maxProperties: Schema.optional(NonNegativeInteger),\n minProperties: Schema.optional(NonNegativeInteger),\n required: Schema.optional(StringArray),\n\n /**\n * Non-standard JSON Schema extension.\n * Defines the order of properties in the object.\n * The unmentioned properties are placed at the end.\n *\n * Related: https://github.com/json-schema/json-schema/issues/119\n */\n propertyOrder: Schema.optional(StringArray),\n\n additionalProperties: Schema.optional(JsonSchemaOrBoolean),\n properties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.suspend(() => JsonSchemaType),\n }),\n ),\n patternProperties: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.suspend(() => JsonSchemaType),\n }),\n ),\n propertyNames: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n\n definitions: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.suspend(() => JsonSchemaType),\n }),\n ),\n dependencies: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.suspend(() => Schema.Union(Schema.String, StringArray, JsonSchemaType)).annotations({\n identifier: 'dependency',\n description: 'Dependency',\n }),\n }),\n ),\n\n contentMediaType: Schema.optional(Schema.String),\n contentEncoding: Schema.optional(Schema.String),\n\n if: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n then: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n else: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n allOf: Schema.optional(Schema.Array(Schema.suspend(() => JsonSchemaType))),\n anyOf: Schema.optional(Schema.Array(Schema.suspend(() => JsonSchemaType))),\n oneOf: Schema.optional(Schema.Array(Schema.suspend(() => JsonSchemaType))),\n not: Schema.optional(Schema.suspend(() => JsonSchemaType)),\n $defs: Schema.optional(\n Schema.Record({\n key: Schema.String,\n value: Schema.suspend(() => JsonSchemaType),\n }),\n ),\n\n //\n // ECHO extensions.\n //\n\n currency: Schema.optional(Schema.String),\n\n reference: Schema.optional(\n Schema.Struct({\n schema: Schema.suspend(() => JsonSchemaType),\n schemaVersion: Schema.optional(Schema.String),\n schemaObject: Schema.optional(Schema.String),\n }),\n ),\n\n /**\n * ECHO-specific annotations.\n */\n // TODO(dmaretskyi): Since we are adding a lot of new extensions to the JSON Schema, it is safer to namespace them here.\n annotations: Schema.optional(JsonSchemaEchoAnnotations),\n\n /**\n * @deprecated Use `annotations` instead.\n */\n echo: Schema.optional(JsonSchemaEchoAnnotations),\n}).annotations({ identifier: 'jsonSchema', description: 'JSON Schema' });\n\nexport const JsonSchemaFields = Object.keys(_JsonSchemaType.fields);\n\n/**\n * https://json-schema.org/draft-07/schema\n */\n// TODO(burdon): Reconcile with @effect/Schema/JSONSchema\nexport interface JsonSchemaType extends Schema.Schema.Type<typeof _JsonSchemaType> {}\n\nexport const JsonSchemaType: Schema.Schema<JsonSchemaType> = _JsonSchemaType;\n\n// TODO(burdon): Factor out JSON schema utils.\n\nexport const getSchemaProperty = (schema: JsonSchemaType, property: JsonProp): JsonSchemaType | undefined => {\n return schema.properties?.[property];\n};\n\n// TODO(burdon): Properties should be ordered.\nexport const setSchemaProperty = (\n schema: Mutable<JsonSchemaType>,\n property: JsonProp,\n value: Mutable<JsonSchemaType>,\n) => {\n schema.properties ??= {};\n schema.properties[property] = value;\n return schema;\n};\n\n/**\n * @internal\n */\nexport const ECHO_ANNOTATIONS_NS_DEPRECATED_KEY: keyof JsonSchemaType = 'echo';\n\n/**\n * @internal\n */\nexport const ECHO_ANNOTATIONS_NS_KEY = 'annotations';\n\n/**\n * @internal\n * @returns ECHO annotations namespace object in its normalized form.\n *\n * `meta` holds PropertyMeta annotations.\n * `annotations` holds other annotations.\n */\nexport const getNormalizedEchoAnnotations = (obj: JsonSchemaType): JsonSchemaEchoAnnotations | undefined => {\n if (obj[ECHO_ANNOTATIONS_NS_KEY] != null && obj[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY] != null) {\n return normalizeEchoAnnotations({\n ...obj[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY],\n ...obj[ECHO_ANNOTATIONS_NS_KEY],\n });\n } else if (obj[ECHO_ANNOTATIONS_NS_KEY] != null) {\n return normalizeEchoAnnotations(obj[ECHO_ANNOTATIONS_NS_KEY]!);\n } else if (obj[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY] != null) {\n return normalizeEchoAnnotations(obj[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY]!);\n } else {\n return undefined;\n }\n};\n\nconst normalizeEchoAnnotations = (obj: JsonSchemaEchoAnnotations): JsonSchemaEchoAnnotations => {\n if (!obj.annotations) {\n return obj;\n } else {\n const res = {\n ...obj,\n meta: {\n ...obj.annotations,\n ...(obj.meta ?? {}),\n },\n };\n delete res.annotations;\n return res;\n }\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Array from 'effect/Array';\nimport * as Function from 'effect/Function';\nimport * as JSONSchema from 'effect/JSONSchema';\nimport * as Option from 'effect/Option';\nimport * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\nimport type * as Types from 'effect/Types';\n\nimport { raise } from '@dxos/debug';\nimport { mapAst } from '@dxos/effect';\nimport { assertArgument, invariant } from '@dxos/invariant';\nimport { DXN, ObjectId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { clearUndefined, orderKeys, removeProperties } from '@dxos/util';\n\nimport {\n type TypeAnnotation,\n TypeAnnotationId,\n TypeIdentifierAnnotationId,\n makeTypeJsonSchemaAnnotation,\n} from '../Annotation';\nimport { ANY_OBJECT_TYPENAME, ANY_OBJECT_VERSION, EntityKind, EntityKindSchema } from '../common/types';\nimport { type JsonSchemaReferenceInfo, createEchoReferenceSchema } from '../Ref';\nimport { CustomAnnotations, DecodedAnnotations, EchoAnnotations } from './annotations';\nimport {\n ECHO_ANNOTATIONS_NS_DEPRECATED_KEY,\n ECHO_ANNOTATIONS_NS_KEY,\n type JsonSchemaEchoAnnotations,\n type JsonSchemaType,\n getNormalizedEchoAnnotations,\n} from './json-schema-type';\n\n// TODO(burdon): Are these values stored (can they be changed?)\nexport enum PropType {\n NONE = 0,\n STRING = 1, // TODO(burdon): vs TEXT?\n NUMBER = 2,\n BOOLEAN = 3,\n DATE = 4,\n REF = 5,\n RECORD = 6,\n ENUM = 7,\n}\n\n// TODO(burdon): Reconcile with @dxos/schema.\nexport const toPropType = (type?: PropType): string => {\n switch (type) {\n case PropType.STRING:\n return 'string';\n case PropType.NUMBER:\n return 'number';\n case PropType.BOOLEAN:\n return 'boolean';\n case PropType.DATE:\n return 'date';\n case PropType.REF:\n return 'ref';\n case PropType.RECORD:\n return 'object';\n default:\n throw new Error(`Invalid type: ${type}`);\n }\n};\n\nconst JSON_SCHEMA_URL = 'http://json-schema.org/draft-07/schema#';\n\nexport type JsonSchemaOptions = {\n strict?: boolean;\n};\n\n/**\n * Convert effect schema to JSON Schema.\n * NOTE: This handles custom annotations.\n * @param schema\n */\n// TODO(burdon): Reconcile with possibly extending @effect/Schema/JSONSchema\n// We add additional propertyOrder (but the object properties ARE ordered); and type \"string\" for literals.\n// TODO(wittjosiah): This is mutable because its a pojo, perhaps should be left as readonly at type level though?\nexport const toJsonSchema = (\n schema: Schema.Schema.All,\n options: JsonSchemaOptions = {},\n): Types.DeepMutable<JsonSchemaType> => {\n assertArgument(Schema.isSchema(schema), 'schema');\n let jsonSchema = _toJsonSchemaAST(schema.ast);\n if (options.strict) {\n // TOOD(burdon): Workaround to ensure JSON schema is valid (for agv parsing).\n jsonSchema = removeProperties(jsonSchema, (key, value) => {\n if (key === '$id' && value === '/schemas/any') {\n return true;\n }\n if (key === '$ref' && value === '#/$defs/dependency') {\n return true;\n }\n if (key === '$ref' && value === '#/$defs/jsonSchema') {\n return true;\n }\n\n return false;\n });\n }\n\n return jsonSchema;\n};\n\nconst _toJsonSchemaAST = (ast: SchemaAST.AST): Types.DeepMutable<JsonSchemaType> => {\n const withRefinements = withEchoRefinements(ast, '#');\n const jsonSchema = JSONSchema.fromAST(withRefinements, {\n definitions: {},\n }) as Types.DeepMutable<JsonSchemaType>;\n\n return normalizeJsonSchema(jsonSchema);\n};\n\nconst withEchoRefinements = (\n ast: SchemaAST.AST,\n path: string | undefined,\n suspendCache = new Map<SchemaAST.AST, string>(),\n): SchemaAST.AST => {\n if (path) {\n suspendCache.set(ast, path);\n }\n\n let recursiveResult: SchemaAST.AST;\n if (SchemaAST.isSuspend(ast)) {\n // Precompute JSON schema for suspended AST since effect serializer does not support it.\n const suspendedAst = ast.f();\n const cachedPath = suspendCache.get(suspendedAst);\n if (cachedPath) {\n recursiveResult = new SchemaAST.Suspend(() => withEchoRefinements(suspendedAst, path, suspendCache), {\n [SchemaAST.JSONSchemaAnnotationId]: {\n $ref: cachedPath,\n },\n });\n } else {\n const jsonSchema = _toJsonSchemaAST(suspendedAst);\n recursiveResult = new SchemaAST.Suspend(() => withEchoRefinements(suspendedAst, path, suspendCache), {\n [SchemaAST.JSONSchemaAnnotationId]: jsonSchema,\n });\n }\n } else if (SchemaAST.isTypeLiteral(ast)) {\n // Add property order annotations\n recursiveResult = mapAst(ast, (ast, key) =>\n withEchoRefinements(ast, path && typeof key === 'string' ? `${path}/${key}` : undefined, suspendCache),\n );\n recursiveResult = addJsonSchemaFields(recursiveResult, {\n propertyOrder: [...ast.propertySignatures.map((p) => p.name)] as string[],\n });\n } else if (SchemaAST.isUndefinedKeyword(ast)) {\n // Ignore undefined keyword that appears in the optional fields.\n return ast;\n } else {\n recursiveResult = mapAst(ast, (ast, key) =>\n withEchoRefinements(\n ast,\n path && (typeof key === 'string' || typeof key === 'number') ? `${path}/${key}` : undefined,\n suspendCache,\n ),\n );\n }\n\n const annotationFields = annotations_toJsonSchemaFields(ast.annotations);\n if (Object.keys(annotationFields).length === 0) {\n return recursiveResult;\n } else {\n return addJsonSchemaFields(recursiveResult, annotationFields);\n }\n};\n\n/**\n * Convert JSON schema to effect schema.\n * @param root\n * @param definitions\n */\nexport const toEffectSchema = (root: JsonSchemaType, _defs?: JsonSchemaType['$defs']): Schema.Schema.AnyNoContext => {\n const defs = root.$defs ? { ..._defs, ...root.$defs } : (_defs ?? {});\n if ('type' in root && root.type === 'object') {\n return objectToEffectSchema(root, defs);\n }\n\n let result: Schema.Schema.AnyNoContext = Schema.Unknown;\n if ('$ref' in root) {\n switch (root.$ref) {\n case '/schemas/echo/ref': {\n result = refToEffectSchema(root);\n break;\n }\n }\n } else if ('$id' in root) {\n switch (root.$id as string) {\n case '/schemas/any': {\n result = anyToEffectSchema(root as JSONSchema.JsonSchema7Any);\n break;\n }\n case '/schemas/unknown': {\n result = Schema.Unknown;\n break;\n }\n case '/schemas/{}':\n case '/schemas/object': {\n result = Schema.Object;\n break;\n }\n // Custom ECHO object reference.\n case '/schemas/echo/ref': {\n result = refToEffectSchema(root);\n break;\n }\n }\n } else if ('enum' in root) {\n result = Schema.Union(...root.enum!.map((e) => Schema.Literal(e)));\n } else if ('oneOf' in root) {\n result = Schema.Union(...root.oneOf!.map((v) => toEffectSchema(v, defs)));\n } else if ('anyOf' in root) {\n result = Schema.Union(...root.anyOf!.map((v) => toEffectSchema(v, defs)));\n } else if ('allOf' in root) {\n if (root.allOf!.length === 1) {\n result = toEffectSchema(root.allOf![0], defs);\n } else {\n log.warn('allOf with multiple schemas is not supported');\n result = Schema.Unknown;\n }\n } else if ('type' in root) {\n switch (root.type) {\n case 'string': {\n result = Schema.String;\n if (root.pattern) {\n result = result.pipe(Schema.pattern(new RegExp(root.pattern)));\n }\n break;\n }\n case 'number': {\n result = Schema.Number;\n break;\n }\n case 'integer': {\n result = Schema.Number.pipe(Schema.int());\n break;\n }\n case 'boolean': {\n result = Schema.Boolean;\n break;\n }\n case 'array': {\n if (Array.isArray(root.items)) {\n const [required, optional] = Function.pipe(\n root.items,\n Array.map((v) => toEffectSchema(v as JsonSchemaType, defs)),\n Array.splitAt(root.minItems ?? root.items.length),\n );\n result = Schema.Tuple(...required, ...optional.map(Schema.optionalElement));\n } else {\n invariant(root.items);\n const items = root.items;\n result = Array.isArray(items)\n ? Schema.Tuple(...items.map((v) => toEffectSchema(v as JsonSchemaType, defs)))\n : Schema.Array(toEffectSchema(items as JsonSchemaType, defs));\n }\n break;\n }\n case 'null': {\n result = Schema.Null;\n break;\n }\n }\n } else if ('$ref' in root) {\n const refSegments = root.$ref!.split('/');\n const jsonSchema = defs[refSegments[refSegments.length - 1]];\n invariant(jsonSchema, `missing definition for ${root.$ref}`);\n result = toEffectSchema(jsonSchema, defs).pipe(\n Schema.annotations({ identifier: refSegments[refSegments.length - 1] }),\n );\n }\n\n const annotations = jsonSchemaFieldsToAnnotations(root);\n\n // log.info('toEffectSchema', { root, annotations });\n result = result.annotations(annotations);\n\n return result;\n};\n\nconst objectToEffectSchema = (root: JsonSchemaType, defs: JsonSchemaType['$defs']): Schema.Schema.AnyNoContext => {\n invariant('type' in root && root.type === 'object', `not an object: ${root}`);\n\n const echoRefinement: JsonSchemaEchoAnnotations = (root as any)[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY];\n const isEchoObject =\n echoRefinement != null || ('$id' in root && typeof root.$id === 'string' && root.$id.startsWith('dxn:'));\n\n let fields: Schema.Struct.Fields = {};\n const propertyList = Object.entries(root.properties ?? {});\n let immutableIdField: Schema.Schema.AnyNoContext | undefined;\n for (const [key, value] of propertyList) {\n if (isEchoObject && key === 'id') {\n immutableIdField = toEffectSchema(value, defs);\n } else {\n // TODO(burdon): Mutable cast.\n (fields as any)[key] = root.required?.includes(key)\n ? toEffectSchema(value, defs)\n : Schema.optional(toEffectSchema(value, defs));\n }\n }\n\n if (root.propertyOrder) {\n fields = orderKeys(fields, root.propertyOrder as any);\n }\n\n let schema: Schema.Schema<any, any, unknown>;\n if (root.patternProperties) {\n invariant(propertyList.length === 0, 'pattern properties mixed with regular properties are not supported');\n invariant(\n Object.keys(root.patternProperties).length === 1 && Object.keys(root.patternProperties)[0] === '',\n 'only one pattern property is supported',\n );\n\n schema = Schema.Record({ key: Schema.String, value: toEffectSchema(root.patternProperties[''], defs) });\n } else if (typeof root.additionalProperties !== 'object') {\n schema = Schema.Struct(fields);\n } else {\n const indexValue = toEffectSchema(root.additionalProperties, defs);\n if (propertyList.length > 0) {\n schema = Schema.Struct(fields, { key: Schema.String, value: indexValue });\n } else {\n schema = Schema.Record({ key: Schema.String, value: indexValue });\n }\n }\n\n if (immutableIdField) {\n schema = Schema.extend(schema, Schema.Struct({ id: immutableIdField }));\n }\n\n const annotations = jsonSchemaFieldsToAnnotations(root);\n return schema.annotations(annotations) as any;\n};\n\nconst anyToEffectSchema = (root: JSONSchema.JsonSchema7Any): Schema.Schema.AnyNoContext => {\n const echoRefinement: JsonSchemaEchoAnnotations = (root as any)[ECHO_ANNOTATIONS_NS_DEPRECATED_KEY];\n // TODO(dmaretskyi): Is this branch still taken?\n if ((echoRefinement as any)?.reference != null) {\n const echoId = root.$id.startsWith('dxn:echo:') ? root.$id : undefined;\n return createEchoReferenceSchema(\n echoId,\n (echoRefinement as any).reference.typename,\n (echoRefinement as any).reference.version,\n );\n }\n\n return Schema.Any;\n};\n\n// TODO(dmaretskyi): Types.\nconst refToEffectSchema = (root: any): Schema.Schema.AnyNoContext => {\n if (!('reference' in root)) {\n // Fallback to generic object ref when no reference info is provided.\n return createEchoReferenceSchema(undefined, ANY_OBJECT_TYPENAME, ANY_OBJECT_VERSION);\n }\n\n const reference: JsonSchemaReferenceInfo = root.reference;\n if (typeof reference !== 'object') {\n throw new Error('Invalid reference field in ref schema');\n }\n\n const targetSchemaDXN = DXN.parse(reference.schema.$ref);\n invariant(targetSchemaDXN.kind === DXN.kind.TYPE);\n\n return createEchoReferenceSchema(\n targetSchemaDXN.toString(),\n targetSchemaDXN.kind === DXN.kind.TYPE ? targetSchemaDXN.parts[0] : undefined,\n reference.schemaVersion,\n );\n};\n\n//\n// Annotations\n//\n\nconst annotations_toJsonSchemaFields = (annotations: SchemaAST.Annotations): Record<symbol, any> => {\n const schemaFields: Record<string, any> = {};\n\n const echoAnnotations: Types.Mutable<JsonSchemaEchoAnnotations> = {};\n for (const [key, annotationId] of Object.entries(EchoAnnotations)) {\n if (annotations[annotationId] != null) {\n echoAnnotations[key as keyof JsonSchemaEchoAnnotations] = annotations[annotationId] as any;\n }\n }\n if (Object.keys(echoAnnotations).length > 0) {\n // TODO(dmaretskyi): use new namespace.\n schemaFields[ECHO_ANNOTATIONS_NS_KEY] = echoAnnotations;\n }\n\n const echoIdentifier = annotations[TypeIdentifierAnnotationId];\n if (echoIdentifier) {\n schemaFields[ECHO_ANNOTATIONS_NS_KEY] ??= {};\n schemaFields[ECHO_ANNOTATIONS_NS_KEY].schemaId = echoIdentifier;\n }\n\n // Custom (at end).\n for (const [key, annotationId] of Object.entries(CustomAnnotations)) {\n const value = annotations[annotationId];\n if (value != null) {\n schemaFields[key] = value;\n }\n }\n\n return schemaFields;\n};\n\nconst decodeTypeIdentifierAnnotation = (schema: JsonSchemaType): string | undefined => {\n // Limit to dxn:echo: URIs.\n if (schema.$id && schema.$id.startsWith('dxn:echo:')) {\n return schema.$id;\n } else if (schema.$id && schema.$id.startsWith('dxn:type:') && schema?.echo?.type?.schemaId) {\n const id = schema?.echo?.type?.schemaId;\n if (ObjectId.isValid(id)) {\n return DXN.fromLocalObjectId(id).toString();\n }\n }\n return undefined;\n};\n\nconst decodeTypeAnnotation = (schema: JsonSchemaType): TypeAnnotation | undefined => {\n if (schema.typename) {\n const annotation: Types.Mutable<TypeAnnotation> = {\n // TODO(dmaretskyi): Decoding default.\n kind: schema.entityKind ? Schema.decodeSync(EntityKindSchema)(schema.entityKind) : EntityKind.Object,\n typename: schema.typename,\n version: schema.version ?? '0.1.0',\n };\n\n if (annotation.kind === EntityKind.Relation) {\n const source = schema.relationSource?.$ref ?? raise(new Error('Relation source not set'));\n const target = schema.relationTarget?.$ref ?? raise(new Error('Relation target not set'));\n annotation.sourceSchema = DXN.parse(source).toString();\n annotation.targetSchema = DXN.parse(target).toString();\n }\n\n return annotation;\n }\n\n // Decode legacy schema.\n if (!schema.typename && schema?.echo?.type) {\n return {\n kind: EntityKind.Object,\n typename: schema.echo.type.typename,\n version: schema.echo.type.version,\n };\n }\n\n return undefined;\n};\n\nconst jsonSchemaFieldsToAnnotations = (schema: JsonSchemaType): SchemaAST.Annotations => {\n const annotations: Types.Mutable<Schema.Annotations.Schema<any>> = {};\n\n const echoAnnotations: JsonSchemaEchoAnnotations = getNormalizedEchoAnnotations(schema) ?? {};\n if (echoAnnotations) {\n for (const [key, annotationId] of Object.entries(EchoAnnotations)) {\n if (echoAnnotations[key as keyof JsonSchemaEchoAnnotations]) {\n annotations[annotationId] = echoAnnotations[key as keyof JsonSchemaEchoAnnotations];\n }\n }\n }\n\n const typeIdentifier = decodeTypeIdentifierAnnotation(schema);\n annotations[TypeIdentifierAnnotationId] = typeIdentifier;\n const typeAnnotation = decodeTypeAnnotation(schema);\n if (typeAnnotation) {\n annotations[TypeAnnotationId] = typeAnnotation;\n annotations[SchemaAST.JSONSchemaAnnotationId] = makeTypeJsonSchemaAnnotation({\n identifier: typeIdentifier,\n kind: typeAnnotation.kind,\n typename: typeAnnotation.typename,\n version: typeAnnotation.version,\n relationSource: typeAnnotation.sourceSchema,\n relationTarget: typeAnnotation.targetSchema,\n });\n }\n\n // Custom (at end).\n for (const [key, annotationId] of Object.entries({ ...CustomAnnotations, ...DecodedAnnotations })) {\n if (key in schema) {\n annotations[annotationId] = (schema as any)[key];\n }\n }\n\n return clearUndefined(annotations);\n};\n\nconst makeAnnotatedRefinement = (ast: SchemaAST.AST, annotations: SchemaAST.Annotations): SchemaAST.Refinement => {\n return new SchemaAST.Refinement(ast, () => Option.none(), annotations);\n};\n\nconst addJsonSchemaFields = (ast: SchemaAST.AST, schema: JsonSchemaType): SchemaAST.AST =>\n makeAnnotatedRefinement(ast, { [SchemaAST.JSONSchemaAnnotationId]: schema });\n\n/**\n * Fixes field order.\n * Sets `$schema` prop.\n */\nconst normalizeJsonSchema = (jsonSchema: Types.DeepMutable<JsonSchemaType>): Types.DeepMutable<JsonSchemaType> => {\n if (jsonSchema.properties && 'id' in jsonSchema.properties) {\n jsonSchema.properties = orderKeys(jsonSchema.properties, ['id']); // Put id first.\n }\n\n // TODO(dmaretskyi): Makes sure undefined is not left on optional fields for the resulting object.\n jsonSchema.$schema = JSON_SCHEMA_URL;\n jsonSchema = orderKeys(jsonSchema, [\n '$schema',\n '$id',\n\n 'entityKind',\n 'typename',\n 'version',\n 'relationTarget',\n 'relationSource',\n\n 'type',\n 'enum',\n\n 'properties',\n 'required',\n 'propertyOrder', // Custom.\n 'items',\n 'additionalProperties',\n\n 'anyOf',\n 'oneOf',\n ]);\n return jsonSchema;\n};\n"],
5
- "mappings": "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",
6
- "names": ["SchemaAST", "CustomAnnotations", "format", "FormatAnnotationId", "currency", "CurrencyAnnotationId", "DecodedAnnotations", "title", "TitleAnnotationId", "description", "DescriptionAnnotationId", "EchoAnnotations", "meta", "PropertyMetaAnnotationId", "generator", "GeneratorAnnotationId", "labelProp", "LabelAnnotationId", "Schema", "JsonPath", "SimpleTypes", "Literal", "NonNegativeInteger", "Number", "pipe", "greaterThanOrEqualTo", "StringArray", "Array", "String", "JsonSchemaOrBoolean", "Union", "suspend", "JsonSchemaType", "Boolean", "JsonSchemaEchoAnnotations", "Struct", "labelProp", "optional", "JsonPath", "generator", "Tuple", "meta", "Record", "key", "value", "Any", "type", "typename", "version", "schemaId", "annotations", "_JsonSchemaType", "$id", "$schema", "$ref", "$comment", "entityKind", "EntityKindSchema", "relationTarget", "relationSource", "title", "description", "readOnly", "writeOnly", "examples", "default", "const", "enum", "multipleOf", "greaterThan", "maximum", "exclusiveMaximum", "minimum", "exclusiveMinimum", "maxLength", "pattern", "FormatAnnotation", "set", "TypeFormat", "Regex", "format", "minLength", "items", "additionalItems", "maxItems", "minItems", "uniqueItems", "contains", "maxProperties", "minProperties", "required", "propertyOrder", "additionalProperties", "properties", "patternProperties", "propertyNames", "definitions", "dependencies", "identifier", "contentMediaType", "contentEncoding", "if", "then", "else", "allOf", "anyOf", "oneOf", "not", "$defs", "currency", "reference", "schema", "schemaVersion", "schemaObject", "echo", "JsonSchemaFields", "Object", "keys", "fields", "getSchemaProperty", "property", "setSchemaProperty", "ECHO_ANNOTATIONS_NS_DEPRECATED_KEY", "ECHO_ANNOTATIONS_NS_KEY", "getNormalizedEchoAnnotations", "obj", "normalizeEchoAnnotations", "undefined", "res", "Array", "Function", "JSONSchema", "Option", "Schema", "SchemaAST", "raise", "mapAst", "assertArgument", "invariant", "DXN", "ObjectId", "log", "clearUndefined", "orderKeys", "removeProperties", "PropType", "toPropType", "type", "Error", "JSON_SCHEMA_URL", "toJsonSchema", "schema", "options", "assertArgument", "isSchema", "jsonSchema", "_toJsonSchemaAST", "ast", "strict", "removeProperties", "key", "value", "withRefinements", "withEchoRefinements", "fromAST", "definitions", "normalizeJsonSchema", "path", "suspendCache", "Map", "set", "recursiveResult", "isSuspend", "suspendedAst", "f", "cachedPath", "get", "Suspend", "JSONSchemaAnnotationId", "$ref", "isTypeLiteral", "mapAst", "undefined", "addJsonSchemaFields", "propertyOrder", "propertySignatures", "map", "p", "name", "isUndefinedKeyword", "annotationFields", "annotations_toJsonSchemaFields", "annotations", "Object", "keys", "length", "toEffectSchema", "root", "_defs", "defs", "$defs", "objectToEffectSchema", "result", "Unknown", "refToEffectSchema", "$id", "anyToEffectSchema", "Union", "enum", "e", "Literal", "oneOf", "v", "anyOf", "allOf", "log", "warn", "String", "pattern", "pipe", "RegExp", "Number", "int", "Boolean", "isArray", "items", "required", "optional", "splitAt", "minItems", "Tuple", "optionalElement", "invariant", "Array", "Null", "refSegments", "split", "identifier", "jsonSchemaFieldsToAnnotations", "echoRefinement", "ECHO_ANNOTATIONS_NS_DEPRECATED_KEY", "isEchoObject", "startsWith", "fields", "propertyList", "entries", "properties", "immutableIdField", "includes", "orderKeys", "patternProperties", "Record", "additionalProperties", "Struct", "indexValue", "extend", "id", "reference", "echoId", "createEchoReferenceSchema", "typename", "version", "Any", "ANY_OBJECT_TYPENAME", "ANY_OBJECT_VERSION", "targetSchemaDXN", "DXN", "parse", "kind", "TYPE", "toString", "parts", "schemaVersion", "schemaFields", "echoAnnotations", "annotationId", "EchoAnnotations", "ECHO_ANNOTATIONS_NS_KEY", "echoIdentifier", "TypeIdentifierAnnotationId", "schemaId", "CustomAnnotations", "decodeTypeIdentifierAnnotation", "echo", "ObjectId", "isValid", "fromLocalObjectId", "decodeTypeAnnotation", "annotation", "entityKind", "decodeSync", "EntityKindSchema", "EntityKind", "Relation", "source", "relationSource", "raise", "target", "relationTarget", "sourceSchema", "targetSchema", "getNormalizedEchoAnnotations", "typeIdentifier", "typeAnnotation", "TypeAnnotationId", "makeTypeJsonSchemaAnnotation", "DecodedAnnotations", "clearUndefined", "makeAnnotatedRefinement", "Refinement", "none", "$schema"]
5
+ "mappings": "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",
6
+ "names": ["SchemaAST", "CustomAnnotations", "format", "FormatAnnotationId", "currency", "CurrencyAnnotationId", "DecodedAnnotations", "title", "TitleAnnotationId", "description", "DescriptionAnnotationId", "EchoAnnotations", "meta", "PropertyMetaAnnotationId", "generator", "GeneratorAnnotationId", "labelProp", "LabelAnnotationId", "Schema", "JsonPath", "SimpleTypes", "Literal", "NonNegativeInteger", "Number", "pipe", "greaterThanOrEqualTo", "StringArray", "Array", "String", "JsonSchemaOrBoolean", "Union", "suspend", "JsonSchemaType", "Boolean", "JsonSchemaEchoAnnotations", "Struct", "labelProp", "optional", "JsonPath", "generator", "Tuple", "meta", "Record", "key", "value", "Any", "type", "typename", "version", "schemaId", "annotations", "_JsonSchemaType", "$id", "$schema", "$ref", "$comment", "entityKind", "EntityKindSchema", "relationTarget", "relationSource", "title", "description", "readOnly", "writeOnly", "examples", "default", "const", "enum", "multipleOf", "greaterThan", "maximum", "exclusiveMaximum", "minimum", "exclusiveMinimum", "maxLength", "pattern", "FormatAnnotation", "set", "TypeFormat", "Regex", "format", "minLength", "items", "additionalItems", "maxItems", "minItems", "uniqueItems", "contains", "maxProperties", "minProperties", "required", "propertyOrder", "additionalProperties", "properties", "patternProperties", "propertyNames", "definitions", "dependencies", "identifier", "contentMediaType", "contentEncoding", "if", "then", "else", "allOf", "anyOf", "oneOf", "not", "$defs", "currency", "reference", "schema", "schemaVersion", "schemaObject", "echo", "JsonSchemaFields", "Object", "keys", "fields", "getSchemaProperty", "property", "setSchemaProperty", "ECHO_ANNOTATIONS_NS_DEPRECATED_KEY", "ECHO_ANNOTATIONS_NS_KEY", "getNormalizedEchoAnnotations", "obj", "normalizeEchoAnnotations", "undefined", "res", "Array", "Function", "JSONSchema", "Option", "Schema", "SchemaAST", "raise", "mapAst", "assertArgument", "invariant", "DXN", "ObjectId", "log", "clearUndefined", "orderKeys", "removeProperties", "PropType", "jsonSchema", "_toJsonSchemaAST", "ast", "removeProperties", "key", "JSONSchema", "definitions", "normalizeJsonSchema", "withEchoRefinements", "suspendCache", "path", "recursiveResult", "suspendedAst", "cachedPath", "SchemaAST", "Suspend", "JSONSchemaAnnotationId", "propertyOrder", "propertySignatures", "annotationFields", "annotations_toJsonSchemaFields", "annotations", "addJsonSchemaFields", "_defs", "$defs", "objectToEffectSchema", "result", "root", "Union", "oneOf", "toEffectSchema", "v", "anyOf", "map", "defs", "length", "log", "Schema", "Tuple", "required", "optional", "invariant", "items", "Array", "isArray", "identifier", "refSegments", "ECHO_ANNOTATIONS_NS_DEPRECATED_KEY", "isEchoObject", "echoRefinement", "$id", "fields", "propertyList", "Object", "properties", "immutableIdField", "value", "schema", "String", "additionalProperties", "indexValue", "anyToEffectSchema", "reference", "createEchoReferenceSchema", "echoId", "Error", "targetSchemaDXN", "toString", "annotationId", "echoAnnotations", "schemaFields", "ECHO_ANNOTATIONS_NS_KEY", "echoIdentifier", "TypeIdentifierAnnotationId", "decodeTypeIdentifierAnnotation", "startsWith", "id", "ObjectId", "isValid", "DXN", "fromLocalObjectId", "decodeTypeAnnotation", "kind", "entityKind", "version", "annotation", "EntityKind", "target", "relationTarget", "$ref", "sourceSchema", "source", "targetSchema", "typename", "echo", "jsonSchemaFieldsToAnnotations", "getNormalizedEchoAnnotations", "EchoAnnotations", "typeAnnotation", "TypeAnnotationId", "typeIdentifier", "relationSource", "DecodedAnnotations", "makeAnnotatedRefinement", "orderKeys"]
7
7
  }
@@ -64,4 +64,4 @@ export {
64
64
  unwrapOptional,
65
65
  makeTypeJsonSchemaAnnotation
66
66
  };
67
- //# sourceMappingURL=chunk-TBKX6JQO.mjs.map
67
+ //# sourceMappingURL=chunk-N4B7FHQT.mjs.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  RefArray
3
- } from "./chunk-XEU2Q5CI.mjs";
3
+ } from "./chunk-APHSOTIX.mjs";
4
4
  import {
5
5
  Ref,
6
6
  getSchemaReference
7
- } from "./chunk-JPWH3QJD.mjs";
7
+ } from "./chunk-BMB7IHGB.mjs";
8
8
  import {
9
9
  __export
10
10
  } from "./chunk-J5LGTIGS.mjs";
@@ -15,6 +15,7 @@ __export(Ref_exports, {
15
15
  Array: () => Array,
16
16
  Ref: () => Ref2,
17
17
  fromDXN: () => fromDXN,
18
+ hasObjectId: () => hasObjectId,
18
19
  isRef: () => isRef,
19
20
  isRefType: () => isRefType,
20
21
  make: () => make
@@ -26,6 +27,7 @@ var Array = RefArray;
26
27
  var isRef = Ref.isRef;
27
28
  var make = Ref.make;
28
29
  var fromDXN = Ref.fromDXN;
30
+ var hasObjectId = Ref.hasObjectId;
29
31
  var isRefType = (ast) => {
30
32
  return SchemaAST.getAnnotation(ast, SchemaAST.JSONSchemaAnnotationId).pipe(Option.flatMap((jsonSchema) => "$id" in jsonSchema ? Option.some(jsonSchema) : Option.none()), Option.flatMap((jsonSchema) => {
31
33
  const { typename } = getSchemaReference(jsonSchema) ?? {};
@@ -39,7 +41,8 @@ export {
39
41
  isRef,
40
42
  make,
41
43
  fromDXN,
44
+ hasObjectId,
42
45
  isRefType,
43
46
  Ref_exports
44
47
  };
45
- //# sourceMappingURL=chunk-H5F7C2UO.mjs.map
48
+ //# sourceMappingURL=chunk-N7VOEPSV.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/Ref.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport type * as Entity from './Entity';\nimport * as refInternal from './internal/Ref';\nimport type * as JsonSchema from './JsonSchema';\nimport type * as Obj from './Obj';\n\n/**\n * Instance type for a reference.\n *\n * Reference can point to any object or relation.\n * References are lazy loaded.\n *\n * `ref.dxn` is the DXN of the referenced object.\n *\n * @example\n * ```ts\n * const taskRef: Ref<Task> = Ref.make(task);\n *\n * await taskRef.load(); // Returns Promise<Task>\n * yield* Database.load(taskRef); // Effectful version.\n *\n * database.makeRef(dxn); // Create a ref from a DXN.\n * ```\n */\nexport type Ref<T> = refInternal.Ref<T>;\nexport type Unknown = refInternal.Ref<Obj.Unknown>;\n\n/**\n * Factory function to create a Ref schema for the given target schema.\n * Use this in schema definitions to declare reference fields.\n *\n * @example\n * ```ts\n * const Task = Schema.Struct({\n * assignee: Ref.Ref(Person), // Creates a Ref schema\n * }).pipe(Type.object({ typename: 'Task', version: '0.1.0' }));\n * ```\n */\nexport const Ref: <S extends Schema.Schema.Any>(schema: S) => RefSchema<Schema.Schema.Type<S>> = refInternal.Ref;\n\nexport const Array = refInternal.RefArray;\n\n/**\n * TypeScript type for a Ref schema.\n * This is the type of the SCHEMA itself, not the runtime ref instance.\n * For the instance type, use `Ref.Ref<T>` from the Ref module.\n *\n * @example\n * ```ts\n * // Schema type annotation (rarely needed, usually inferred):\n * const refSchema: Ref.RefSchema<typeof Task> = Ref.Ref(Task);\n *\n * // Instance type annotation (use Ref.Ref instead):\n * const refInstance: Ref.Ref<Task> = Ref.make(task);\n * ```\n */\n// TODO(dmaretskyi): Investigate if we can remove this type.\n// Post DX-836 it will become just `Schema.Schema<Ref.Ref<T>>`.\n// NOTE: This could be Type.Ref<T> instead, but since it going to be removed, it's better to keep it here, self-contained.\nexport interface RefSchema<T extends Entity.Unknown> extends refInternal.RefSchema<T> {}\n\n/**\n * Extract reference target.\n */\nexport type Target<R extends Unknown> = R extends refInternal.Ref<infer T> ? T : never;\n\n/**\n * Reference resolver.\n */\nexport type Resolver = refInternal.RefResolver;\n\nexport const isRef: (value: unknown) => value is Unknown = refInternal.Ref.isRef;\n\nexport const make = refInternal.Ref.make;\n\n// TODO(dmaretskyi): Consider just allowing `make` to accept DXN.\nexport const fromDXN = refInternal.Ref.fromDXN;\n\n// TODO(wittjosiah): Factor out?\nexport const isRefType = (ast: SchemaAST.AST): boolean => {\n return SchemaAST.getAnnotation<JsonSchema.JsonSchema>(ast, SchemaAST.JSONSchemaAnnotationId).pipe(\n Option.flatMap((jsonSchema) => ('$id' in jsonSchema ? Option.some(jsonSchema) : Option.none())),\n Option.flatMap((jsonSchema) => {\n const { typename } = refInternal.getSchemaReference(jsonSchema) ?? {};\n return typename ? Option.some(true) : Option.some(false);\n }),\n Option.getOrElse(() => false),\n );\n};\n"],
5
- "mappings": ";;;;;;;;;;;;AAAA;;;aAAAA;EAAA;;;;;AAMA,YAAYC,YAAY;AAExB,YAAYC,eAAe;AAuCpB,IAAMC,OAAgGA;AAEtG,IAAMC,QAAoBC;AA+B1B,IAAMC,QAA0DH,IAAIG;AAEpE,IAAMC,OAAmBJ,IAAII;AAG7B,IAAMC,UAAsBL,IAAIK;AAGhC,IAAMC,YAAY,CAACC,QAAAA;AACxB,SAAiBC,wBAAqCD,KAAeE,gCAAsB,EAAEC,KACpFC,eAAQ,CAACC,eAAgB,SAASA,aAAoBC,YAAKD,UAAAA,IAAqBE,YAAI,CAAA,GACpFH,eAAQ,CAACC,eAAAA;AACd,UAAM,EAAEG,SAAQ,IAAiBC,mBAAmBJ,UAAAA,KAAe,CAAC;AACpE,WAAOG,WAAkBF,YAAK,IAAA,IAAeA,YAAK,KAAA;EACpD,CAAA,GACOI,iBAAU,MAAM,KAAA,CAAA;AAE3B;",
6
- "names": ["Ref", "Option", "SchemaAST", "Ref", "Array", "RefArray", "isRef", "make", "fromDXN", "isRefType", "ast", "getAnnotation", "JSONSchemaAnnotationId", "pipe", "flatMap", "jsonSchema", "some", "none", "typename", "getSchemaReference", "getOrElse"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport type * as Entity from './Entity';\nimport * as refInternal from './internal/Ref';\nimport type * as JsonSchema from './JsonSchema';\nimport type * as Obj from './Obj';\n\n/**\n * Instance type for a reference.\n *\n * Reference can point to any object or relation.\n * References are lazy loaded.\n *\n * `ref.dxn` is the DXN of the referenced object.\n *\n * @example\n * ```ts\n * const taskRef: Ref<Task> = Ref.make(task);\n *\n * await taskRef.load(); // Returns Promise<Task>\n * yield* Database.load(taskRef); // Effectful version.\n *\n * database.makeRef(dxn); // Create a ref from a DXN.\n * ```\n */\nexport type Ref<T> = refInternal.Ref<T>;\nexport type Unknown = refInternal.Ref<Obj.Unknown>;\n\n/**\n * Factory function to create a Ref schema for the given target schema.\n * Use this in schema definitions to declare reference fields.\n *\n * @example\n * ```ts\n * const Task = Schema.Struct({\n * assignee: Ref.Ref(Person), // Creates a Ref schema\n * }).pipe(Type.object({ typename: 'Task', version: '0.1.0' }));\n * ```\n */\nexport const Ref: <S extends Schema.Schema.Any>(schema: S) => RefSchema<Schema.Schema.Type<S>> = refInternal.Ref;\n\nexport const Array = refInternal.RefArray;\n\n/**\n * TypeScript type for a Ref schema.\n * This is the type of the SCHEMA itself, not the runtime ref instance.\n * For the instance type, use `Ref.Ref<T>` from the Ref module.\n *\n * @example\n * ```ts\n * // Schema type annotation (rarely needed, usually inferred):\n * const refSchema: Ref.RefSchema<typeof Task> = Ref.Ref(Task);\n *\n * // Instance type annotation (use Ref.Ref instead):\n * const refInstance: Ref.Ref<Task> = Ref.make(task);\n * ```\n */\n// TODO(dmaretskyi): Investigate if we can remove this type.\n// Post DX-836 it will become just `Schema.Schema<Ref.Ref<T>>`.\n// NOTE: This could be Type.Ref<T> instead, but since it going to be removed, it's better to keep it here, self-contained.\nexport interface RefSchema<T extends Entity.Unknown> extends refInternal.RefSchema<T> {}\n\n/**\n * Extract reference target.\n */\nexport type Target<R extends Unknown> = R extends refInternal.Ref<infer T> ? T : never;\n\n/**\n * Reference resolver.\n */\nexport type Resolver = refInternal.RefResolver;\n\nexport const isRef: (value: unknown) => value is Unknown = refInternal.Ref.isRef;\n\nexport const make = refInternal.Ref.make;\n\n// TODO(dmaretskyi): Consider just allowing `make` to accept DXN.\nexport const fromDXN = refInternal.Ref.fromDXN;\n\nexport const hasObjectId = refInternal.Ref.hasObjectId;\n\n// TODO(wittjosiah): Factor out?\nexport const isRefType = (ast: SchemaAST.AST): boolean => {\n return SchemaAST.getAnnotation<JsonSchema.JsonSchema>(ast, SchemaAST.JSONSchemaAnnotationId).pipe(\n Option.flatMap((jsonSchema) => ('$id' in jsonSchema ? Option.some(jsonSchema) : Option.none())),\n Option.flatMap((jsonSchema) => {\n const { typename } = refInternal.getSchemaReference(jsonSchema) ?? {};\n return typename ? Option.some(true) : Option.some(false);\n }),\n Option.getOrElse(() => false),\n );\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;AAAA;;;aAAAA;EAAA;;;;;;AAMA,YAAYC,YAAY;AAExB,YAAYC,eAAe;AAuCpB,IAAMC,OAAgGA;AAEtG,IAAMC,QAAoBC;AA+B1B,IAAMC,QAA0DH,IAAIG;AAEpE,IAAMC,OAAmBJ,IAAII;AAG7B,IAAMC,UAAsBL,IAAIK;AAEhC,IAAMC,cAA0BN,IAAIM;AAGpC,IAAMC,YAAY,CAACC,QAAAA;AACxB,SAAiBC,wBAAqCD,KAAeE,gCAAsB,EAAEC,KACpFC,eAAQ,CAACC,eAAgB,SAASA,aAAoBC,YAAKD,UAAAA,IAAqBE,YAAI,CAAA,GACpFH,eAAQ,CAACC,eAAAA;AACd,UAAM,EAAEG,SAAQ,IAAiBC,mBAAmBJ,UAAAA,KAAe,CAAC;AACpE,WAAOG,WAAkBF,YAAK,IAAA,IAAeA,YAAK,KAAA;EACpD,CAAA,GACOI,iBAAU,MAAM,KAAA,CAAA;AAE3B;",
6
+ "names": ["Ref", "Option", "SchemaAST", "Ref", "Array", "RefArray", "isRef", "make", "fromDXN", "hasObjectId", "isRefType", "ast", "getAnnotation", "JSONSchemaAnnotationId", "pipe", "flatMap", "jsonSchema", "some", "none", "typename", "getSchemaReference", "getOrElse"]
7
7
  }
@@ -10,7 +10,7 @@ import {
10
10
  objectToJSON,
11
11
  removeTag,
12
12
  subscribe
13
- } from "./chunk-BQN7EDPH.mjs";
13
+ } from "./chunk-ZVQ26DCR.mjs";
14
14
  import {
15
15
  getDescription,
16
16
  getEntityKind,
@@ -18,13 +18,13 @@ import {
18
18
  getSchema,
19
19
  getTypeDXN,
20
20
  getTypename
21
- } from "./chunk-2KHZ36F5.mjs";
21
+ } from "./chunk-TNBK56IN.mjs";
22
22
  import {
23
23
  EntityKind,
24
24
  EntityKindSchema,
25
25
  KindId,
26
26
  SnapshotKindId
27
- } from "./chunk-TBKX6JQO.mjs";
27
+ } from "./chunk-N4B7FHQT.mjs";
28
28
  import {
29
29
  __export
30
30
  } from "./chunk-J5LGTIGS.mjs";
@@ -38,7 +38,6 @@ __export(Entity_exports, {
38
38
  Meta: () => Meta,
39
39
  SnapshotKindId: () => SnapshotKindId2,
40
40
  addTag: () => addTag2,
41
- change: () => change2,
42
41
  getDXN: () => getDXN2,
43
42
  getDatabase: () => getDatabase2,
44
43
  getDescription: () => getDescription2,
@@ -54,7 +53,8 @@ __export(Entity_exports, {
54
53
  isSnapshot: () => isSnapshot,
55
54
  removeTag: () => removeTag2,
56
55
  subscribe: () => subscribe2,
57
- toJSON: () => toJSON
56
+ toJSON: () => toJSON,
57
+ update: () => update
58
58
  });
59
59
  var KindId2 = KindId;
60
60
  var SnapshotKindId2 = SnapshotKindId;
@@ -90,7 +90,7 @@ var toJSON = (entity) => objectToJSON(entity);
90
90
  var subscribe2 = (entity, callback) => {
91
91
  return subscribe(entity, callback);
92
92
  };
93
- var change2 = (entity, callback) => {
93
+ var update = (entity, callback) => {
94
94
  change(entity, callback);
95
95
  };
96
96
  var addTag2 = (entity, tag) => addTag(entity, tag);
@@ -117,9 +117,9 @@ export {
117
117
  getDescription2 as getDescription,
118
118
  toJSON,
119
119
  subscribe2 as subscribe,
120
- change2 as change,
120
+ update,
121
121
  addTag2 as addTag,
122
122
  removeTag2 as removeTag,
123
123
  Entity_exports
124
124
  };
125
- //# sourceMappingURL=chunk-ZUGFUCUK.mjs.map
125
+ //# sourceMappingURL=chunk-NWXJZVWD.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/Entity.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport type { ForeignKey } from '@dxos/echo-protocol';\nimport type { DXN, ObjectId } from '@dxos/keys';\n\nimport * as internal from './internal';\nimport type * as Relation from './Relation';\nimport type * as Type from './Type';\n\n// Re-export KindId and SnapshotKindId from internal.\nexport const KindId = internal.KindId;\nexport type KindId = typeof internal.KindId;\nexport const SnapshotKindId = internal.SnapshotKindId;\nexport type SnapshotKindId = typeof internal.SnapshotKindId;\n\n// NOTE: Relation does not extend Obj so that, for example, we can prevent Relations from being used as source and target objects.\n// However, we generally refer to Obj and Relation instances as \"objects\",\n// and many API methods accept both Obj.Unknown and Relation.Unknown (i.e., Entity.Unknown) instances.\n\nexport const Kind = internal.EntityKind;\nexport type Kind = internal.EntityKind;\nexport const KindSchema = internal.EntityKindSchema;\n\n/**\n * Assigns a kind to an Object or Relation instance.\n * NOTE: Needed to make `isRelation` and `isObject` checks work.\n */\nexport interface OfKind<K extends Kind> {\n readonly [KindId]: K;\n readonly id: ObjectId;\n}\n\n/**\n * Assigns a snapshot kind to an Object or Relation snapshot.\n */\nexport interface SnapshotOfKind<K extends Kind> {\n readonly [SnapshotKindId]: K;\n readonly id: ObjectId;\n}\n\n/**\n * Obj or Relation with a specific set of properties.\n */\nexport type Entity<Props> = OfKind<Kind> & Props;\n\n/**\n * Unknown Obj or Relation (reactive).\n */\nexport interface Unknown extends OfKind<Kind> {}\n\n/**\n * Snapshot of an Obj or Relation.\n * Branded with SnapshotKindId instead of KindId.\n */\nexport interface Snapshot extends SnapshotOfKind<Kind> {}\n\n/**\n * Object with arbitrary properties.\n *\n * NOTE: Due to how typescript works, this type is not assignable to a specific schema type.\n * In that case, use `Obj.instanceOf` to check if an object is of a specific type.\n *\n * This type is very permissive and allows accessing any property on the object.\n * We should move to Obj.Unknown that is not permissive and requires explicit instanceof checks..\n */\nexport interface Any extends OfKind<Kind> {\n [key: string]: unknown;\n}\n\n/**\n * Returns all properties of an object or relation except for the id and kind.\n */\nexport type Properties<T> = Omit<T, 'id' | KindId | Relation.Source | Relation.Target>;\n\n/**\n * Check if a value is an ECHO entity (object or relation).\n * Returns `false` for snapshots.\n */\nexport const isEntity = (value: unknown): value is Unknown => {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n return (value as any)[KindId] !== undefined;\n};\n\n/**\n * Check if a value is an ECHO entity snapshot.\n * Returns `false` for entities.\n */\nexport const isSnapshot = (value: unknown): value is Snapshot => {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n return (value as any)[SnapshotKindId] !== undefined;\n};\n\n// TODO(dmaretskyi): Type introspection -- move to kind.\nexport const getKind = internal.getEntityKind;\n\n/**\n * Property that accesses metadata for an entity.\n */\nexport const Meta: unique symbol = internal.MetaId as any;\n\n/**\n * Property that accesses metadata for an entity.\n */\nexport type Meta = typeof Meta;\n\n//\n// Entity-level functions that work on any entity (object or relation).\n// Use these when you don't know or care about the specific entity kind.\n// For kind-specific functions, use Obj.* or Relation.*.\n//\n\n/**\n * JSON representation of an entity.\n */\nexport type JSON = internal.ObjectJSON;\n\n/**\n * Get the DXN of an entity (object or relation).\n */\nexport const getDXN = (entity: Unknown | Snapshot): DXN => internal.getDXN(entity);\n\n/**\n * Get the DXN of an entity's type.\n */\nexport const getTypeDXN = internal.getTypeDXN;\n\n/**\n * Get the schema of an entity.\n * Returns the branded ECHO schema used to create the entity.\n */\nexport const getSchema: (entity: Unknown | Snapshot) => Type.AnyEntity | undefined = internal.getSchema as any;\n\n/**\n * Get the typename of an entity's type.\n */\nexport const getTypename = (entity: Unknown | Snapshot): string | undefined => internal.getTypename(entity);\n\n/**\n * Get the database an entity belongs to.\n */\nexport const getDatabase = (entity: Unknown | Snapshot): any | undefined => internal.getDatabase(entity);\n\n/**\n * Get the metadata for an entity.\n * Returns mutable meta when passed a mutable entity (inside change callback).\n * Returns read-only meta when passed a regular entity or snapshot.\n */\n// TODO(wittjosiah): When passed a Snapshot, should return a snapshot of meta, not the live meta proxy.\nexport function getMeta(entity: Mutable<Unknown>): internal.ObjectMeta;\nexport function getMeta(entity: Unknown | Snapshot): internal.ReadonlyMeta;\nexport function getMeta(entity: Unknown | Snapshot | Mutable<Unknown>): internal.ObjectMeta | internal.ReadonlyMeta {\n return internal.getMetaChecked(entity);\n}\n\n/**\n * Get foreign keys for an entity from the specified source.\n */\nexport const getKeys = (entity: Unknown | Snapshot, source: string): ForeignKey[] => internal.getKeys(entity, source);\n\n/**\n * Check if an entity is deleted.\n */\nexport const isDeleted = (entity: Unknown | Snapshot): boolean => internal.isDeleted(entity);\n\n/**\n * Get the label of an entity.\n */\nexport const getLabel = (entity: Unknown | Snapshot): string | undefined => internal.getLabel(entity);\n\n/**\n * Get the description of an entity.\n */\nexport const getDescription = (entity: Unknown | Snapshot): string | undefined => internal.getDescription(entity);\n\n/**\n * Convert an entity to its JSON representation.\n */\nexport const toJSON = (entity: Unknown | Snapshot): JSON => internal.objectToJSON(entity);\n\n/**\n * Subscribe to changes on an entity (object or relation).\n * @returns Unsubscribe function.\n */\nexport const subscribe = (entity: Unknown, callback: () => void): (() => void) => {\n return internal.subscribe(entity, callback);\n};\n\n//\n// Change\n//\n\n/**\n * Used to provide a mutable view of an entity within `Entity.change`.\n */\nexport type Mutable<T> = internal.Mutable<T>;\n\n/**\n * Perform mutations on an entity (object or relation) within a change context.\n *\n * Entities are read-only by default. Mutations are batched and notifications fire\n * when the callback completes. Direct mutations outside of `Entity.change` will throw\n * at runtime.\n *\n * @param entity - The echo entity (object or relation) to mutate.\n * @param callback - Receives a mutable view of the entity. All mutations must occur here.\n *\n * @example\n * ```typescript\n * // Mutate within Entity.change\n * Entity.change(entity, (obj) => {\n * obj.name = 'Updated';\n * obj.count = 42;\n * });\n *\n * // Direct mutation throws\n * entity.name = 'Bob'; // Error: Cannot modify outside Entity.change()\n * ```\n *\n * Note: For type-specific operations, prefer `Obj.change` or `Relation.change`.\n */\nexport const change = <T extends Unknown>(entity: T, callback: internal.ChangeCallback<T>): void => {\n internal.change(entity, callback);\n};\n\n/**\n * Add a tag to an entity.\n * Must be called within an `Entity.change`, `Obj.change`, or `Relation.change` callback.\n */\nexport const addTag = (entity: Mutable<Unknown>, tag: string): void => internal.addTag(entity, tag);\n\n/**\n * Remove a tag from an entity.\n * Must be called within an `Entity.change`, `Obj.change`, or `Relation.change` callback.\n */\nexport const removeTag = (entity: Mutable<Unknown>, tag: string): void => internal.removeTag(entity, tag);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;gBAAAA;EAAA;;wBAAAC;EAAA,cAAAC;EAAA,cAAAC;EAAA,cAAAC;EAAA,mBAAAC;EAAA,sBAAAC;EAAA,eAAAC;EAAA;kBAAAC;EAAA;mBAAAC;EAAA,kBAAAC;EAAA,mBAAAC;EAAA,iBAAAC;EAAA;;mBAAAC;EAAA,iBAAAC;EAAA;;AAcO,IAAMC,UAAkBA;AAExB,IAAMC,kBAA0BA;AAOhC,IAAMC,OAAgBC;AAEtB,IAAMC,aAAsBC;AAyD5B,IAAMC,WAAW,CAACC,UAAAA;AACvB,MAAI,OAAOA,UAAU,YAAYA,UAAU,MAAM;AAC/C,WAAO;EACT;AACA,SAAQA,MAAcP,OAAAA,MAAYQ;AACpC;AAMO,IAAMC,aAAa,CAACF,UAAAA;AACzB,MAAI,OAAOA,UAAU,YAAYA,UAAU,MAAM;AAC/C,WAAO;EACT;AACA,SAAQA,MAAcN,eAAAA,MAAoBO;AAC5C;AAGO,IAAME,UAAmBC;AAKzB,IAAMC,OAA+BC;AAqBrC,IAAMC,UAAS,CAACC,WAA6CD,OAAOC,MAAAA;AAKpE,IAAMC,cAAsBA;AAM5B,IAAMC,aAAiFA;AAKvF,IAAMC,eAAc,CAACH,WAA4DG,YAAYH,MAAAA;AAK7F,IAAMI,eAAc,CAACJ,WAAyDI,YAAYJ,MAAAA;AAU1F,SAASK,QAAQL,QAA6C;AACnE,SAAgBM,eAAeN,MAAAA;AACjC;AAKO,IAAMO,WAAU,CAACP,QAA4BQ,WAA0CD,QAAQP,QAAQQ,MAAAA;AAKvG,IAAMC,aAAY,CAACT,WAAiDS,UAAUT,MAAAA;AAK9E,IAAMU,YAAW,CAACV,WAA4DU,SAASV,MAAAA;AAKvF,IAAMW,kBAAiB,CAACX,WAA4DW,eAAeX,MAAAA;AAKnG,IAAMY,SAAS,CAACZ,WAA8Ca,aAAab,MAAAA;AAM3E,IAAMc,aAAY,CAACd,QAAiBe,aAAAA;AACzC,SAAgBD,UAAUd,QAAQe,QAAAA;AACpC;AAmCO,IAAMC,UAAS,CAAoBhB,QAAWe,aAAAA;AACnDE,EAASD,OAAOhB,QAAQe,QAAAA;AAC1B;AAMO,IAAMG,UAAS,CAAClB,QAA0BmB,QAA+BD,OAAOlB,QAAQmB,GAAAA;AAMxF,IAAMC,aAAY,CAACpB,QAA0BmB,QAA+BC,UAAUpB,QAAQmB,GAAAA;",
6
- "names": ["KindId", "SnapshotKindId", "addTag", "change", "getDXN", "getDatabase", "getDescription", "getKeys", "getLabel", "getSchema", "getTypeDXN", "getTypename", "isDeleted", "removeTag", "subscribe", "KindId", "SnapshotKindId", "Kind", "EntityKind", "KindSchema", "EntityKindSchema", "isEntity", "value", "undefined", "isSnapshot", "getKind", "getEntityKind", "Meta", "MetaId", "getDXN", "entity", "getTypeDXN", "getSchema", "getTypename", "getDatabase", "getMeta", "getMetaChecked", "getKeys", "source", "isDeleted", "getLabel", "getDescription", "toJSON", "objectToJSON", "subscribe", "callback", "change", "internal", "addTag", "tag", "removeTag"]
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport type { ForeignKey } from '@dxos/echo-protocol';\nimport type { DXN, ObjectId } from '@dxos/keys';\n\nimport * as internal from './internal';\nimport type * as Relation from './Relation';\nimport type * as Type from './Type';\n\n// Re-export KindId and SnapshotKindId from internal.\nexport const KindId = internal.KindId;\nexport type KindId = typeof internal.KindId;\nexport const SnapshotKindId = internal.SnapshotKindId;\nexport type SnapshotKindId = typeof internal.SnapshotKindId;\n\n// NOTE: Relation does not extend Obj so that, for example, we can prevent Relations from being used as source and target objects.\n// However, we generally refer to Obj and Relation instances as \"objects\",\n// and many API methods accept both Obj.Unknown and Relation.Unknown (i.e., Entity.Unknown) instances.\n\nexport const Kind = internal.EntityKind;\nexport type Kind = internal.EntityKind;\nexport const KindSchema = internal.EntityKindSchema;\n\n/**\n * Assigns a kind to an Object or Relation instance.\n * NOTE: Needed to make `isRelation` and `isObject` checks work.\n */\nexport interface OfKind<K extends Kind> {\n readonly [KindId]: K;\n readonly id: ObjectId;\n}\n\n/**\n * Assigns a snapshot kind to an Object or Relation snapshot.\n */\nexport interface SnapshotOfKind<K extends Kind> {\n readonly [SnapshotKindId]: K;\n readonly id: ObjectId;\n}\n\n/**\n * Obj or Relation with a specific set of properties.\n */\nexport type Entity<Props> = OfKind<Kind> & Props;\n\n/**\n * Unknown Obj or Relation (reactive).\n */\nexport interface Unknown extends OfKind<Kind> {}\n\n/**\n * Snapshot of an Obj or Relation.\n * Branded with SnapshotKindId instead of KindId.\n */\nexport interface Snapshot extends SnapshotOfKind<Kind> {}\n\n/**\n * Object with arbitrary properties.\n *\n * NOTE: Due to how typescript works, this type is not assignable to a specific schema type.\n * In that case, use `Obj.instanceOf` to check if an object is of a specific type.\n *\n * This type is very permissive and allows accessing any property on the object.\n * We should move to Obj.Unknown that is not permissive and requires explicit instanceof checks..\n */\nexport interface Any extends OfKind<Kind> {\n [key: string]: unknown;\n}\n\n/**\n * Returns all properties of an object or relation except for the id and kind.\n */\nexport type Properties<T> = Omit<T, 'id' | KindId | Relation.Source | Relation.Target>;\n\n/**\n * Check if a value is an ECHO entity (object or relation).\n * Returns `false` for snapshots.\n */\nexport const isEntity = (value: unknown): value is Unknown => {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n return (value as any)[KindId] !== undefined;\n};\n\n/**\n * Check if a value is an ECHO entity snapshot.\n * Returns `false` for entities.\n */\nexport const isSnapshot = (value: unknown): value is Snapshot => {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n return (value as any)[SnapshotKindId] !== undefined;\n};\n\n// TODO(dmaretskyi): Type introspection -- move to kind.\nexport const getKind = internal.getEntityKind;\n\n/**\n * Property that accesses metadata for an entity.\n */\nexport const Meta: unique symbol = internal.MetaId as any;\n\n/**\n * Property that accesses metadata for an entity.\n */\nexport type Meta = typeof Meta;\n\n//\n// Entity-level functions that work on any entity (object or relation).\n// Use these when you don't know or care about the specific entity kind.\n// For kind-specific functions, use Obj.* or Relation.*.\n//\n\n/**\n * JSON representation of an entity.\n */\nexport type JSON = internal.ObjectJSON;\n\n/**\n * Get the DXN of an entity (object or relation).\n */\nexport const getDXN = (entity: Unknown | Snapshot): DXN => internal.getDXN(entity);\n\n/**\n * Get the DXN of an entity's type.\n */\nexport const getTypeDXN = internal.getTypeDXN;\n\n/**\n * Get the schema of an entity.\n * Returns the branded ECHO schema used to create the entity.\n */\nexport const getSchema: (entity: Unknown | Snapshot) => Type.AnyEntity | undefined = internal.getSchema as any;\n\n/**\n * Get the typename of an entity's type.\n */\nexport const getTypename = (entity: Unknown | Snapshot): string | undefined => internal.getTypename(entity);\n\n/**\n * Get the database an entity belongs to.\n */\nexport const getDatabase = (entity: Unknown | Snapshot): any | undefined => internal.getDatabase(entity);\n\n/**\n * Get the metadata for an entity.\n * Returns mutable meta when passed a mutable entity (inside change callback).\n * Returns read-only meta when passed a regular entity or snapshot.\n */\n// TODO(wittjosiah): When passed a Snapshot, should return a snapshot of meta, not the live meta proxy.\nexport function getMeta(entity: Mutable<Unknown>): internal.ObjectMeta;\nexport function getMeta(entity: Unknown | Snapshot): internal.ReadonlyMeta;\nexport function getMeta(entity: Unknown | Snapshot | Mutable<Unknown>): internal.ObjectMeta | internal.ReadonlyMeta {\n return internal.getMetaChecked(entity);\n}\n\n/**\n * Get foreign keys for an entity from the specified source.\n */\nexport const getKeys = (entity: Unknown | Snapshot, source: string): ForeignKey[] => internal.getKeys(entity, source);\n\n/**\n * Check if an entity is deleted.\n */\nexport const isDeleted = (entity: Unknown | Snapshot): boolean => internal.isDeleted(entity);\n\n/**\n * Get the label of an entity.\n */\nexport const getLabel = (entity: Unknown | Snapshot): string | undefined => internal.getLabel(entity);\n\n/**\n * Get the description of an entity.\n */\nexport const getDescription = (entity: Unknown | Snapshot): string | undefined => internal.getDescription(entity);\n\n/**\n * Convert an entity to its JSON representation.\n */\nexport const toJSON = (entity: Unknown | Snapshot): JSON => internal.objectToJSON(entity);\n\n/**\n * Subscribe to changes on an entity (object or relation).\n * @returns Unsubscribe function.\n */\nexport const subscribe = (entity: Unknown, callback: () => void): (() => void) => {\n return internal.subscribe(entity, callback);\n};\n\n//\n// Change\n//\n\n/**\n * Used to provide a mutable view of an entity within `Entity.update`.\n */\nexport type Mutable<T> = internal.Mutable<T>;\n\n/**\n * Perform mutations on an entity (object or relation) within a change context.\n *\n * Entities are read-only by default. Mutations are batched and notifications fire\n * when the callback completes. Direct mutations outside of `Entity.update` will throw\n * at runtime.\n *\n * @param entity - The echo entity (object or relation) to mutate.\n * @param callback - Receives a mutable view of the entity. All mutations must occur here.\n *\n * @example\n * ```typescript\n * // Mutate within Entity.update\n * Entity.update(entity, (obj) => {\n * obj.name = 'Updated';\n * obj.count = 42;\n * });\n *\n * // Direct mutation throws\n * entity.name = 'Bob'; // Error: Cannot modify outside Entity.update()\n * ```\n *\n * Note: For type-specific operations, prefer `Obj.update` or `Relation.update`.\n */\nexport const update = <T extends Unknown>(entity: T, callback: internal.ChangeCallback<T>): void => {\n internal.change(entity, callback);\n};\n\n/**\n * Add a tag to an entity.\n * Must be called within an `Entity.update`, `Obj.update`, or `Relation.update` callback.\n */\nexport const addTag = (entity: Mutable<Unknown>, tag: string): void => internal.addTag(entity, tag);\n\n/**\n * Remove a tag from an entity.\n * Must be called within an `Entity.update`, `Obj.update`, or `Relation.update` callback.\n */\nexport const removeTag = (entity: Mutable<Unknown>, tag: string): void => internal.removeTag(entity, tag);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;gBAAAA;EAAA;;wBAAAC;EAAA,cAAAC;EAAA,cAAAC;EAAA,mBAAAC;EAAA,sBAAAC;EAAA,eAAAC;EAAA;kBAAAC;EAAA;mBAAAC;EAAA,kBAAAC;EAAA,mBAAAC;EAAA,iBAAAC;EAAA;;mBAAAC;EAAA,iBAAAC;EAAA;;;AAcO,IAAMC,UAAkBA;AAExB,IAAMC,kBAA0BA;AAOhC,IAAMC,OAAgBC;AAEtB,IAAMC,aAAsBC;AAyD5B,IAAMC,WAAW,CAACC,UAAAA;AACvB,MAAI,OAAOA,UAAU,YAAYA,UAAU,MAAM;AAC/C,WAAO;EACT;AACA,SAAQA,MAAcP,OAAAA,MAAYQ;AACpC;AAMO,IAAMC,aAAa,CAACF,UAAAA;AACzB,MAAI,OAAOA,UAAU,YAAYA,UAAU,MAAM;AAC/C,WAAO;EACT;AACA,SAAQA,MAAcN,eAAAA,MAAoBO;AAC5C;AAGO,IAAME,UAAmBC;AAKzB,IAAMC,OAA+BC;AAqBrC,IAAMC,UAAS,CAACC,WAA6CD,OAAOC,MAAAA;AAKpE,IAAMC,cAAsBA;AAM5B,IAAMC,aAAiFA;AAKvF,IAAMC,eAAc,CAACH,WAA4DG,YAAYH,MAAAA;AAK7F,IAAMI,eAAc,CAACJ,WAAyDI,YAAYJ,MAAAA;AAU1F,SAASK,QAAQL,QAA6C;AACnE,SAAgBM,eAAeN,MAAAA;AACjC;AAKO,IAAMO,WAAU,CAACP,QAA4BQ,WAA0CD,QAAQP,QAAQQ,MAAAA;AAKvG,IAAMC,aAAY,CAACT,WAAiDS,UAAUT,MAAAA;AAK9E,IAAMU,YAAW,CAACV,WAA4DU,SAASV,MAAAA;AAKvF,IAAMW,kBAAiB,CAACX,WAA4DW,eAAeX,MAAAA;AAKnG,IAAMY,SAAS,CAACZ,WAA8Ca,aAAab,MAAAA;AAM3E,IAAMc,aAAY,CAACd,QAAiBe,aAAAA;AACzC,SAAgBD,UAAUd,QAAQe,QAAAA;AACpC;AAmCO,IAAMC,SAAS,CAAoBhB,QAAWe,aAAAA;AACnDE,EAASC,OAAOlB,QAAQe,QAAAA;AAC1B;AAMO,IAAMI,UAAS,CAACnB,QAA0BoB,QAA+BD,OAAOnB,QAAQoB,GAAAA;AAMxF,IAAMC,aAAY,CAACrB,QAA0BoB,QAA+BC,UAAUrB,QAAQoB,GAAAA;",
6
+ "names": ["KindId", "SnapshotKindId", "addTag", "getDXN", "getDatabase", "getDescription", "getKeys", "getLabel", "getSchema", "getTypeDXN", "getTypename", "isDeleted", "removeTag", "subscribe", "KindId", "SnapshotKindId", "Kind", "EntityKind", "KindSchema", "EntityKindSchema", "isEntity", "value", "undefined", "isSnapshot", "getKind", "getEntityKind", "Meta", "MetaId", "getDXN", "entity", "getTypeDXN", "getSchema", "getTypename", "getDatabase", "getMeta", "getMetaChecked", "getKeys", "source", "isDeleted", "getLabel", "getDescription", "toJSON", "objectToJSON", "subscribe", "callback", "update", "internal", "change", "addTag", "tag", "removeTag"]
7
7
  }
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  object
3
- } from "./chunk-A2WIDONZ.mjs";
3
+ } from "./chunk-AHWSAJHU.mjs";
4
4
  import {
5
5
  make
6
- } from "./chunk-O26EPPBW.mjs";
6
+ } from "./chunk-W7U2XGZ3.mjs";
7
7
  import {
8
8
  LabelAnnotation,
9
9
  SystemTypeAnnotation
10
- } from "./chunk-2KHZ36F5.mjs";
10
+ } from "./chunk-TNBK56IN.mjs";
11
11
  import {
12
12
  __export
13
13
  } from "./chunk-J5LGTIGS.mjs";
@@ -53,4 +53,4 @@ export {
53
53
  findTagByLabel,
54
54
  Tag_exports
55
55
  };
56
- //# sourceMappingURL=chunk-JIN4EVUK.mjs.map
56
+ //# sourceMappingURL=chunk-OMJN6VCR.mjs.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  isRef
3
- } from "./chunk-H5F7C2UO.mjs";
3
+ } from "./chunk-N7VOEPSV.mjs";
4
4
  import {
5
5
  getDXN,
6
6
  prettyFilter
7
- } from "./chunk-BQN7EDPH.mjs";
7
+ } from "./chunk-ZVQ26DCR.mjs";
8
8
  import {
9
9
  getTypeDXNFromSpecifier
10
- } from "./chunk-2KHZ36F5.mjs";
10
+ } from "./chunk-TNBK56IN.mjs";
11
11
  import {
12
12
  __export
13
13
  } from "./chunk-J5LGTIGS.mjs";
@@ -351,4 +351,4 @@ export {
351
351
  pretty,
352
352
  Filter_exports
353
353
  };
354
- //# sourceMappingURL=chunk-EULNZHTP.mjs.map
354
+ //# sourceMappingURL=chunk-PHOHAIEE.mjs.map
@@ -2,7 +2,7 @@ import {
2
2
  JsonSchemaType,
3
3
  toEffectSchema,
4
4
  toJsonSchema
5
- } from "./chunk-QW7YUKSA.mjs";
5
+ } from "./chunk-MLS7U7AT.mjs";
6
6
  import {
7
7
  __export
8
8
  } from "./chunk-J5LGTIGS.mjs";
@@ -24,4 +24,4 @@ export {
24
24
  JsonSchema,
25
25
  JsonSchema_exports
26
26
  };
27
- //# sourceMappingURL=chunk-7I3YIAT2.mjs.map
27
+ //# sourceMappingURL=chunk-QRZ2I3ZM.mjs.map
@@ -1,26 +1,27 @@
1
1
  import {
2
2
  Feed,
3
3
  getQueueDxn
4
- } from "./chunk-RP37BQF7.mjs";
4
+ } from "./chunk-KBZ4RAXR.mjs";
5
5
  import {
6
6
  everything,
7
7
  is,
8
8
  props,
9
9
  type
10
- } from "./chunk-EULNZHTP.mjs";
10
+ } from "./chunk-PHOHAIEE.mjs";
11
11
  import {
12
+ getDXN,
12
13
  getTypename,
13
14
  instanceOf
14
- } from "./chunk-O26EPPBW.mjs";
15
+ } from "./chunk-W7U2XGZ3.mjs";
15
16
  import {
16
17
  prettyQuery
17
- } from "./chunk-BQN7EDPH.mjs";
18
+ } from "./chunk-ZVQ26DCR.mjs";
18
19
  import {
19
20
  isDatabase
20
- } from "./chunk-PHU22NLC.mjs";
21
+ } from "./chunk-I2DARWPX.mjs";
21
22
  import {
22
23
  getTypeDXNFromSpecifier
23
- } from "./chunk-2KHZ36F5.mjs";
24
+ } from "./chunk-TNBK56IN.mjs";
24
25
  import {
25
26
  __export
26
27
  } from "./chunk-J5LGTIGS.mjs";
@@ -155,7 +156,7 @@ var QueryClass = class _QueryClass {
155
156
  _tag: "scope",
156
157
  scope: {
157
158
  ...options?.includeFeeds ? {
158
- allQueuesFromSpaces: true
159
+ allFeedsFromSpaces: true
159
160
  } : {}
160
161
  }
161
162
  }
@@ -184,7 +185,7 @@ var QueryClass = class _QueryClass {
184
185
  scope: {
185
186
  spaceIds: databases.map((db) => db.spaceId),
186
187
  ...options?.includeFeeds ? {
187
- allQueuesFromSpaces: true
188
+ allFeedsFromSpaces: true
188
189
  } : {}
189
190
  }
190
191
  }
@@ -204,12 +205,13 @@ var QueryClass = class _QueryClass {
204
205
  }
205
206
  }
206
207
  }
207
- const feeds = items;
208
- const queueDxns = feeds.flatMap((feed) => {
208
+ const feedItems = items;
209
+ const feedDXNs = feedItems.map((feed) => {
209
210
  const dxn = getQueueDxn(feed);
210
- return dxn ? [
211
- dxn.toString()
212
- ] : [];
211
+ if (!dxn) {
212
+ throw new TypeError(`Query.from() expects persisted Feed objects with a queue DXN; got feed without a space (id=${getDXN(feed).toString()}).`);
213
+ }
214
+ return dxn.toString();
213
215
  });
214
216
  return new _QueryClass({
215
217
  type: "from",
@@ -217,7 +219,7 @@ var QueryClass = class _QueryClass {
217
219
  from: {
218
220
  _tag: "scope",
219
221
  scope: {
220
- queues: queueDxns
222
+ feeds: feedDXNs
221
223
  }
222
224
  }
223
225
  });
@@ -229,6 +231,25 @@ var QueryClass = class _QueryClass {
229
231
  options
230
232
  });
231
233
  }
234
+ debugLabel(label) {
235
+ if (this.ast.type === "options") {
236
+ return new _QueryClass({
237
+ type: "options",
238
+ query: this.ast.query,
239
+ options: {
240
+ ...this.ast.options,
241
+ debugLabel: label
242
+ }
243
+ });
244
+ }
245
+ return new _QueryClass({
246
+ type: "options",
247
+ query: this.ast,
248
+ options: {
249
+ debugLabel: label
250
+ }
251
+ });
252
+ }
232
253
  };
233
254
  var is2 = (value) => {
234
255
  return typeof value === "object" && value !== null && "~Query" in value;
@@ -274,8 +295,8 @@ var from = (source, options) => {
274
295
  };
275
296
  var SCOPE_KEYS = /* @__PURE__ */ new Set([
276
297
  "spaceIds",
277
- "queues",
278
- "allQueuesFromSpaces"
298
+ "feeds",
299
+ "allFeedsFromSpaces"
279
300
  ]);
280
301
  var _isScope = (value) => {
281
302
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
@@ -296,4 +317,4 @@ export {
296
317
  pretty,
297
318
  Query_exports
298
319
  };
299
- //# sourceMappingURL=chunk-6ASBHRDG.mjs.map
320
+ //# sourceMappingURL=chunk-SRX3EZY3.mjs.map