@dxos/echo 0.8.4-main.3a94e84 → 0.8.4-main.3c1ae3b
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.
- package/README.md +1 -1
- package/dist/lib/browser/Annotation.mjs +31 -0
- package/dist/lib/browser/Annotation.mjs.map +7 -0
- package/dist/lib/browser/Database.mjs +14 -0
- package/dist/lib/browser/Database.mjs.map +7 -0
- package/dist/lib/browser/Entity.mjs +20 -0
- package/dist/lib/browser/Entity.mjs.map +7 -0
- package/dist/lib/browser/Err.mjs +11 -0
- package/dist/lib/browser/Err.mjs.map +7 -0
- package/dist/lib/browser/Filter.mjs +60 -0
- package/dist/lib/browser/Filter.mjs.map +7 -0
- package/dist/lib/browser/Format.mjs +67 -0
- package/dist/lib/browser/Format.mjs.map +7 -0
- package/dist/lib/browser/JsonSchema.mjs +18 -0
- package/dist/lib/browser/JsonSchema.mjs.map +7 -0
- package/dist/lib/browser/Key.mjs +13 -0
- package/dist/lib/browser/Key.mjs.map +7 -0
- package/dist/lib/browser/Obj.mjs +83 -0
- package/dist/lib/browser/Obj.mjs.map +7 -0
- package/dist/lib/browser/Order.mjs +11 -0
- package/dist/lib/browser/Order.mjs.map +7 -0
- package/dist/lib/browser/Query.mjs +25 -0
- package/dist/lib/browser/Query.mjs.map +7 -0
- package/dist/lib/browser/QueryResult.mjs +3 -0
- package/dist/lib/browser/QueryResult.mjs.map +7 -0
- package/dist/lib/browser/Ref.mjs +21 -0
- package/dist/lib/browser/Ref.mjs.map +7 -0
- package/dist/lib/browser/Relation.mjs +33 -0
- package/dist/lib/browser/Relation.mjs.map +7 -0
- package/dist/lib/browser/SchemaRegistry.mjs +3 -0
- package/dist/lib/browser/SchemaRegistry.mjs.map +7 -0
- package/dist/lib/browser/Tag.mjs +25 -0
- package/dist/lib/browser/Tag.mjs.map +7 -0
- package/dist/lib/browser/Type.mjs +38 -0
- package/dist/lib/browser/Type.mjs.map +7 -0
- package/dist/lib/browser/chunk-3B2G6BW4.mjs +74 -0
- package/dist/lib/browser/chunk-3B2G6BW4.mjs.map +7 -0
- package/dist/lib/browser/chunk-5IN7XBIQ.mjs +24 -0
- package/dist/lib/browser/chunk-5IN7XBIQ.mjs.map +7 -0
- package/dist/lib/browser/chunk-6XVZF5VJ.mjs +2924 -0
- package/dist/lib/browser/chunk-6XVZF5VJ.mjs.map +7 -0
- package/dist/lib/browser/chunk-AGOWBKY6.mjs +94 -0
- package/dist/lib/browser/chunk-AGOWBKY6.mjs.map +7 -0
- package/dist/lib/browser/chunk-BD6MRI4M.mjs +113 -0
- package/dist/lib/browser/chunk-BD6MRI4M.mjs.map +7 -0
- package/dist/lib/browser/chunk-CGS2ULMK.mjs +11 -0
- package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +7 -0
- package/dist/lib/browser/chunk-DOPKE2FQ.mjs +32 -0
- package/dist/lib/browser/chunk-DOPKE2FQ.mjs.map +7 -0
- package/dist/lib/browser/chunk-ESLW4N7S.mjs +41 -0
- package/dist/lib/browser/chunk-ESLW4N7S.mjs.map +7 -0
- package/dist/lib/browser/chunk-F4YF6C3O.mjs +363 -0
- package/dist/lib/browser/chunk-F4YF6C3O.mjs.map +7 -0
- package/dist/lib/browser/chunk-FGFQWIZE.mjs +9 -0
- package/dist/lib/browser/chunk-FGFQWIZE.mjs.map +7 -0
- package/dist/lib/browser/chunk-INHXFXY5.mjs +22 -0
- package/dist/lib/browser/chunk-INHXFXY5.mjs.map +7 -0
- package/dist/lib/browser/chunk-JG4GH6LN.mjs +9 -0
- package/dist/lib/browser/chunk-JG4GH6LN.mjs.map +7 -0
- package/dist/lib/browser/chunk-MYCCGG2T.mjs +15 -0
- package/dist/lib/browser/chunk-MYCCGG2T.mjs.map +7 -0
- package/dist/lib/browser/chunk-NFH3POTD.mjs +37 -0
- package/dist/lib/browser/chunk-NFH3POTD.mjs.map +7 -0
- package/dist/lib/browser/chunk-O6FOICWT.mjs +57 -0
- package/dist/lib/browser/chunk-O6FOICWT.mjs.map +7 -0
- package/dist/lib/browser/chunk-P2B4BASR.mjs +288 -0
- package/dist/lib/browser/chunk-P2B4BASR.mjs.map +7 -0
- package/dist/lib/browser/chunk-QHC3ZYNC.mjs +152 -0
- package/dist/lib/browser/chunk-QHC3ZYNC.mjs.map +7 -0
- package/dist/lib/browser/chunk-QU7PWSZD.mjs +62 -0
- package/dist/lib/browser/chunk-QU7PWSZD.mjs.map +7 -0
- package/dist/lib/browser/chunk-RP4JV7FD.mjs +403 -0
- package/dist/lib/browser/chunk-RP4JV7FD.mjs.map +7 -0
- package/dist/lib/browser/chunk-V7TON6BX.mjs +151 -0
- package/dist/lib/browser/chunk-V7TON6BX.mjs.map +7 -0
- package/dist/lib/browser/chunk-WABSVOOX.mjs +303 -0
- package/dist/lib/browser/chunk-WABSVOOX.mjs.map +7 -0
- package/dist/lib/browser/chunk-XRHHSMHJ.mjs +39 -0
- package/dist/lib/browser/chunk-XRHHSMHJ.mjs.map +7 -0
- package/dist/lib/browser/chunk-ZIM3Y4ZK.mjs +38 -0
- package/dist/lib/browser/chunk-ZIM3Y4ZK.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +72 -9
- package/dist/lib/browser/internal/index.mjs +347 -0
- package/dist/lib/browser/internal/index.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +322 -32
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/Annotation.mjs +31 -0
- package/dist/lib/node-esm/Annotation.mjs.map +7 -0
- package/dist/lib/node-esm/Database.mjs +14 -0
- package/dist/lib/node-esm/Database.mjs.map +7 -0
- package/dist/lib/node-esm/Entity.mjs +20 -0
- package/dist/lib/node-esm/Entity.mjs.map +7 -0
- package/dist/lib/node-esm/Err.mjs +11 -0
- package/dist/lib/node-esm/Err.mjs.map +7 -0
- package/dist/lib/node-esm/Filter.mjs +60 -0
- package/dist/lib/node-esm/Filter.mjs.map +7 -0
- package/dist/lib/node-esm/Format.mjs +67 -0
- package/dist/lib/node-esm/Format.mjs.map +7 -0
- package/dist/lib/node-esm/JsonSchema.mjs +18 -0
- package/dist/lib/node-esm/JsonSchema.mjs.map +7 -0
- package/dist/lib/node-esm/Key.mjs +13 -0
- package/dist/lib/node-esm/Key.mjs.map +7 -0
- package/dist/lib/node-esm/Obj.mjs +83 -0
- package/dist/lib/node-esm/Obj.mjs.map +7 -0
- package/dist/lib/node-esm/Order.mjs +11 -0
- package/dist/lib/node-esm/Order.mjs.map +7 -0
- package/dist/lib/node-esm/Query.mjs +25 -0
- package/dist/lib/node-esm/Query.mjs.map +7 -0
- package/dist/lib/node-esm/QueryResult.mjs +3 -0
- package/dist/lib/node-esm/QueryResult.mjs.map +7 -0
- package/dist/lib/node-esm/Ref.mjs +21 -0
- package/dist/lib/node-esm/Ref.mjs.map +7 -0
- package/dist/lib/node-esm/Relation.mjs +33 -0
- package/dist/lib/node-esm/Relation.mjs.map +7 -0
- package/dist/lib/node-esm/SchemaRegistry.mjs +3 -0
- package/dist/lib/node-esm/SchemaRegistry.mjs.map +7 -0
- package/dist/lib/node-esm/Tag.mjs +25 -0
- package/dist/lib/node-esm/Tag.mjs.map +7 -0
- package/dist/lib/node-esm/Type.mjs +38 -0
- package/dist/lib/node-esm/Type.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-5M5P2DCR.mjs +32 -0
- package/dist/lib/node-esm/chunk-5M5P2DCR.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-6OTQZKHX.mjs +303 -0
- package/dist/lib/node-esm/chunk-6OTQZKHX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-76LEDWHO.mjs +152 -0
- package/dist/lib/node-esm/chunk-76LEDWHO.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-AGHZH33D.mjs +9 -0
- package/dist/lib/node-esm/chunk-AGHZH33D.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-AJEMYSIR.mjs +22 -0
- package/dist/lib/node-esm/chunk-AJEMYSIR.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BJACR7QG.mjs +363 -0
- package/dist/lib/node-esm/chunk-BJACR7QG.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-BYL2NPEA.mjs +37 -0
- package/dist/lib/node-esm/chunk-BYL2NPEA.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CCMFPJUT.mjs +74 -0
- package/dist/lib/node-esm/chunk-CCMFPJUT.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-D5BW7KHR.mjs +39 -0
- package/dist/lib/node-esm/chunk-D5BW7KHR.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-DJX53IQ3.mjs +2924 -0
- package/dist/lib/node-esm/chunk-DJX53IQ3.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-FWTPV5QD.mjs +94 -0
- package/dist/lib/node-esm/chunk-FWTPV5QD.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HLUDHPFO.mjs +403 -0
- package/dist/lib/node-esm/chunk-HLUDHPFO.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-JYZSF62S.mjs +113 -0
- package/dist/lib/node-esm/chunk-JYZSF62S.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-KUX5JEL2.mjs +57 -0
- package/dist/lib/node-esm/chunk-KUX5JEL2.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-LDXRA5TC.mjs +288 -0
- package/dist/lib/node-esm/chunk-LDXRA5TC.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-MOWUEW5P.mjs +15 -0
- package/dist/lib/node-esm/chunk-MOWUEW5P.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-NHYOREKX.mjs +62 -0
- package/dist/lib/node-esm/chunk-NHYOREKX.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-QVZZHCDS.mjs +9 -0
- package/dist/lib/node-esm/chunk-QVZZHCDS.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-W3OLV7MG.mjs +41 -0
- package/dist/lib/node-esm/chunk-W3OLV7MG.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-W5AQXKVF.mjs +38 -0
- package/dist/lib/node-esm/chunk-W5AQXKVF.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-YNBFXTDG.mjs +24 -0
- package/dist/lib/node-esm/chunk-YNBFXTDG.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-Z53QIBP2.mjs +151 -0
- package/dist/lib/node-esm/chunk-Z53QIBP2.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +72 -9
- package/dist/lib/node-esm/internal/index.mjs +347 -0
- package/dist/lib/node-esm/internal/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +322 -32
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/types/src/Annotation.d.ts +2 -0
- package/dist/types/src/Annotation.d.ts.map +1 -0
- package/dist/types/src/Database.d.ts +179 -0
- package/dist/types/src/Database.d.ts.map +1 -0
- package/dist/types/src/Entity.d.ts +36 -0
- package/dist/types/src/Entity.d.ts.map +1 -0
- package/dist/types/src/Err.d.ts +68 -0
- package/dist/types/src/Err.d.ts.map +1 -0
- package/dist/types/src/Filter.d.ts +120 -0
- package/dist/types/src/Filter.d.ts.map +1 -0
- package/dist/types/src/Format.d.ts +4 -0
- package/dist/types/src/Format.d.ts.map +1 -0
- package/dist/types/src/Hypergraph.d.ts +60 -0
- package/dist/types/src/Hypergraph.d.ts.map +1 -0
- package/dist/types/src/JsonSchema.d.ts +9 -0
- package/dist/types/src/JsonSchema.d.ts.map +1 -0
- package/dist/types/src/Key.d.ts +1 -0
- package/dist/types/src/Key.d.ts.map +1 -1
- package/dist/types/src/Obj.d.ts +152 -35
- package/dist/types/src/Obj.d.ts.map +1 -1
- package/dist/types/src/Order.d.ts +11 -0
- package/dist/types/src/Order.d.ts.map +1 -0
- package/dist/types/src/Query.d.ts +107 -0
- package/dist/types/src/Query.d.ts.map +1 -0
- package/dist/types/src/Query.test.d.ts +2 -0
- package/dist/types/src/Query.test.d.ts.map +1 -0
- package/dist/types/src/QueryResult.d.ts +84 -0
- package/dist/types/src/QueryResult.d.ts.map +1 -0
- package/dist/types/src/Ref.d.ts +12 -10
- package/dist/types/src/Ref.d.ts.map +1 -1
- package/dist/types/src/Relation.d.ts +20 -14
- package/dist/types/src/Relation.d.ts.map +1 -1
- package/dist/types/src/SchemaRegistry.d.ts +73 -0
- package/dist/types/src/SchemaRegistry.d.ts.map +1 -0
- package/dist/types/src/Tag.d.ts +17 -0
- package/dist/types/src/Tag.d.ts.map +1 -0
- package/dist/types/src/Type.d.ts +39 -50
- package/dist/types/src/Type.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +15 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/internal/annotations/annotations.d.ts +179 -0
- package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -0
- package/dist/types/src/internal/annotations/annotations.test.d.ts +2 -0
- package/dist/types/src/internal/annotations/annotations.test.d.ts.map +1 -0
- package/dist/types/src/internal/annotations/index.d.ts +3 -0
- package/dist/types/src/internal/annotations/index.d.ts.map +1 -0
- package/dist/types/src/internal/annotations/util.d.ts +27 -0
- package/dist/types/src/internal/annotations/util.d.ts.map +1 -0
- package/dist/types/src/internal/entities/entity.d.ts +10 -0
- package/dist/types/src/internal/entities/entity.d.ts.map +1 -0
- package/dist/types/src/internal/entities/expando.d.ts +16 -0
- package/dist/types/src/internal/entities/expando.d.ts.map +1 -0
- package/dist/types/src/internal/entities/index.d.ts +6 -0
- package/dist/types/src/internal/entities/index.d.ts.map +1 -0
- package/dist/types/src/internal/entities/model.d.ts +70 -0
- package/dist/types/src/internal/entities/model.d.ts.map +1 -0
- package/dist/types/src/internal/entities/object.d.ts +11 -0
- package/dist/types/src/internal/entities/object.d.ts.map +1 -0
- package/dist/types/src/internal/entities/relation.d.ts +55 -0
- package/dist/types/src/internal/entities/relation.d.ts.map +1 -0
- package/dist/types/src/internal/entities/util.d.ts +2 -0
- package/dist/types/src/internal/entities/util.d.ts.map +1 -0
- package/dist/types/src/internal/formats/date.d.ts +63 -0
- package/dist/types/src/internal/formats/date.d.ts.map +1 -0
- package/dist/types/src/internal/formats/date.test.d.ts +2 -0
- package/dist/types/src/internal/formats/date.test.d.ts.map +1 -0
- package/dist/types/src/internal/formats/format.d.ts +32 -0
- package/dist/types/src/internal/formats/format.d.ts.map +1 -0
- package/dist/types/src/internal/formats/format.test.d.ts +2 -0
- package/dist/types/src/internal/formats/format.test.d.ts.map +1 -0
- package/dist/types/src/internal/formats/index.d.ts +8 -0
- package/dist/types/src/internal/formats/index.d.ts.map +1 -0
- package/dist/types/src/internal/formats/number.d.ts +31 -0
- package/dist/types/src/internal/formats/number.d.ts.map +1 -0
- package/dist/types/src/internal/formats/object.d.ts +35 -0
- package/dist/types/src/internal/formats/object.d.ts.map +1 -0
- package/dist/types/src/internal/formats/select.d.ts +13 -0
- package/dist/types/src/internal/formats/select.d.ts.map +1 -0
- package/dist/types/src/internal/formats/string.d.ts +42 -0
- package/dist/types/src/internal/formats/string.d.ts.map +1 -0
- package/dist/types/src/internal/formats/types.d.ts +72 -0
- package/dist/types/src/internal/formats/types.d.ts.map +1 -0
- package/dist/types/src/internal/index.d.ts +11 -0
- package/dist/types/src/internal/index.d.ts.map +1 -0
- package/dist/types/src/internal/json-schema/annotations.d.ts +19 -0
- package/dist/types/src/internal/json-schema/annotations.d.ts.map +1 -0
- package/dist/types/src/internal/json-schema/effect-schema.test.d.ts +2 -0
- package/dist/types/src/internal/json-schema/effect-schema.test.d.ts.map +1 -0
- package/dist/types/src/internal/json-schema/index.d.ts +5 -0
- package/dist/types/src/internal/json-schema/index.d.ts.map +1 -0
- package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts +7 -0
- package/dist/types/src/internal/json-schema/json-schema-normalize.d.ts.map +1 -0
- package/dist/types/src/internal/json-schema/json-schema-type.d.ts +250 -0
- package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -0
- package/dist/types/src/internal/json-schema/json-schema.d.ts +29 -0
- package/dist/types/src/internal/json-schema/json-schema.d.ts.map +1 -0
- package/dist/types/src/internal/json-schema/json-schema.test.d.ts +2 -0
- package/dist/types/src/internal/json-schema/json-schema.test.d.ts.map +1 -0
- package/dist/types/src/internal/object/common.d.ts +18 -0
- package/dist/types/src/internal/object/common.d.ts.map +1 -0
- package/dist/types/src/internal/object/create-object.d.ts +39 -0
- package/dist/types/src/internal/object/create-object.d.ts.map +1 -0
- package/dist/types/src/internal/object/create-object.test.d.ts +2 -0
- package/dist/types/src/internal/object/create-object.test.d.ts.map +1 -0
- package/dist/types/src/internal/object/deleted.d.ts +6 -0
- package/dist/types/src/internal/object/deleted.d.ts.map +1 -0
- package/dist/types/src/internal/object/ids.d.ts +6 -0
- package/dist/types/src/internal/object/ids.d.ts.map +1 -0
- package/dist/types/src/internal/object/index.d.ts +8 -0
- package/dist/types/src/internal/object/index.d.ts.map +1 -0
- package/dist/types/src/internal/object/inspect.d.ts +2 -0
- package/dist/types/src/internal/object/inspect.d.ts.map +1 -0
- package/dist/types/src/internal/object/json-serializer.d.ts +31 -0
- package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -0
- package/dist/types/src/internal/object/json-serializer.test.d.ts +2 -0
- package/dist/types/src/internal/object/json-serializer.test.d.ts.map +1 -0
- package/dist/types/src/internal/object/schema-validator.d.ts +15 -0
- package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -0
- package/dist/types/src/internal/object/schema-validator.test.d.ts +2 -0
- package/dist/types/src/internal/object/schema-validator.test.d.ts.map +1 -0
- package/dist/types/src/internal/object/typed-object.d.ts +31 -0
- package/dist/types/src/internal/object/typed-object.d.ts.map +1 -0
- package/dist/types/src/internal/object/typed-object.test.d.ts +2 -0
- package/dist/types/src/internal/object/typed-object.test.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/handler.test.d.ts +2 -0
- package/dist/types/src/internal/proxy/handler.test.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/index.d.ts +3 -0
- package/dist/types/src/internal/proxy/index.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/make-object.d.ts +16 -0
- package/dist/types/src/internal/proxy/make-object.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/schema.test.d.ts +2 -0
- package/dist/types/src/internal/proxy/schema.test.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/typed-handler.d.ts +44 -0
- package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/typed-handler.test.d.ts +2 -0
- package/dist/types/src/internal/proxy/typed-handler.test.d.ts.map +1 -0
- package/dist/types/src/internal/proxy/typed-object.test.d.ts +2 -0
- package/dist/types/src/internal/proxy/typed-object.test.d.ts.map +1 -0
- package/dist/types/src/internal/ref/index.d.ts +3 -0
- package/dist/types/src/internal/ref/index.d.ts.map +1 -0
- package/dist/types/src/internal/ref/ref-array.d.ts +21 -0
- package/dist/types/src/internal/ref/ref-array.d.ts.map +1 -0
- package/dist/types/src/internal/ref/ref.d.ts +209 -0
- package/dist/types/src/internal/ref/ref.d.ts.map +1 -0
- package/dist/types/src/internal/ref/ref.test.d.ts +2 -0
- package/dist/types/src/internal/ref/ref.test.d.ts.map +1 -0
- package/dist/types/src/internal/schema/compose.d.ts +6 -0
- package/dist/types/src/internal/schema/compose.d.ts.map +1 -0
- package/dist/types/src/internal/schema/compose.test.d.ts +2 -0
- package/dist/types/src/internal/schema/compose.test.d.ts.map +1 -0
- package/dist/types/src/internal/schema/echo-schema.d.ts +168 -0
- package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -0
- package/dist/types/src/internal/schema/index.d.ts +5 -0
- package/dist/types/src/internal/schema/index.d.ts.map +1 -0
- package/dist/types/src/internal/schema/manipulation.d.ts +10 -0
- package/dist/types/src/internal/schema/manipulation.d.ts.map +1 -0
- package/dist/types/src/internal/schema/persistent-schema.d.ts +18 -0
- package/dist/types/src/internal/schema/persistent-schema.d.ts.map +1 -0
- package/dist/types/src/internal/schema/snapshot.d.ts +6 -0
- package/dist/types/src/internal/schema/snapshot.d.ts.map +1 -0
- package/dist/types/src/internal/types/base.d.ts +37 -0
- package/dist/types/src/internal/types/base.d.ts.map +1 -0
- package/dist/types/src/internal/types/entity.d.ts +12 -0
- package/dist/types/src/internal/types/entity.d.ts.map +1 -0
- package/dist/types/src/internal/types/index.d.ts +6 -0
- package/dist/types/src/internal/types/index.d.ts.map +1 -0
- package/dist/types/src/internal/types/meta.d.ts +40 -0
- package/dist/types/src/internal/types/meta.d.ts.map +1 -0
- package/dist/types/src/internal/types/typename.d.ts +13 -0
- package/dist/types/src/internal/types/typename.d.ts.map +1 -0
- package/dist/types/src/internal/types/version.d.ts +15 -0
- package/dist/types/src/internal/types/version.d.ts.map +1 -0
- package/dist/types/src/{test → testing}/api.test.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +3 -1
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/test-data.d.ts +18 -0
- package/dist/types/src/testing/test-data.d.ts.map +1 -0
- package/dist/types/src/testing/test-schema.d.ts +407 -0
- package/dist/types/src/testing/test-schema.d.ts.map +1 -0
- package/dist/types/src/testing/util.d.ts +16 -0
- package/dist/types/src/testing/util.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +164 -33
- package/src/Annotation.ts +17 -0
- package/src/Database.ts +308 -0
- package/src/Entity.ts +51 -0
- package/src/Err.ts +18 -0
- package/src/Filter.ts +376 -0
- package/src/Format.ts +9 -0
- package/src/Hypergraph.ts +74 -0
- package/src/JsonSchema.ts +16 -0
- package/src/Key.ts +3 -0
- package/src/Obj.ts +407 -71
- package/src/Order.ts +34 -0
- package/src/Query.test.ts +346 -0
- package/src/Query.ts +279 -0
- package/src/QueryResult.ts +109 -0
- package/src/Ref.ts +25 -9
- package/src/Relation.ts +72 -46
- package/src/SchemaRegistry.ts +92 -0
- package/src/Tag.ts +40 -0
- package/src/Type.ts +98 -84
- package/src/index.ts +17 -4
- package/src/internal/README.md +87 -0
- package/src/internal/annotations/annotations.test.ts +96 -0
- package/src/internal/annotations/annotations.ts +488 -0
- package/src/internal/annotations/index.ts +6 -0
- package/src/internal/annotations/util.ts +72 -0
- package/src/internal/entities/entity.ts +109 -0
- package/src/internal/entities/expando.ts +23 -0
- package/src/internal/entities/index.ts +9 -0
- package/src/internal/entities/model.ts +129 -0
- package/src/internal/entities/object.ts +45 -0
- package/src/internal/entities/relation.ts +155 -0
- package/src/internal/entities/util.ts +33 -0
- package/src/internal/formats/date.test.ts +56 -0
- package/src/internal/formats/date.ts +217 -0
- package/src/internal/formats/format.test.ts +77 -0
- package/src/internal/formats/format.ts +54 -0
- package/src/internal/formats/index.ts +12 -0
- package/src/internal/formats/number.ts +89 -0
- package/src/internal/formats/object.ts +80 -0
- package/src/internal/formats/select.ts +18 -0
- package/src/internal/formats/string.ts +81 -0
- package/src/internal/formats/types.ts +186 -0
- package/src/internal/index.ts +38 -0
- package/src/internal/json-schema/annotations.ts +50 -0
- package/src/internal/json-schema/effect-schema.test.ts +143 -0
- package/src/internal/json-schema/index.ts +8 -0
- package/src/internal/json-schema/json-schema-normalize.ts +109 -0
- package/src/internal/json-schema/json-schema-type.ts +404 -0
- package/src/internal/json-schema/json-schema.test.ts +861 -0
- package/src/internal/json-schema/json-schema.ts +528 -0
- package/src/internal/object/common.ts +75 -0
- package/src/internal/object/create-object.test.ts +116 -0
- package/src/internal/object/create-object.ts +95 -0
- package/src/internal/object/deleted.ts +19 -0
- package/src/internal/object/ids.ts +12 -0
- package/src/internal/object/index.ts +11 -0
- package/src/internal/object/inspect.ts +46 -0
- package/src/internal/object/json-serializer.test.ts +94 -0
- package/src/internal/object/json-serializer.ts +230 -0
- package/src/internal/object/schema-validator.test.ts +186 -0
- package/src/internal/object/schema-validator.ts +244 -0
- package/src/internal/object/typed-object.test.ts +34 -0
- package/src/internal/object/typed-object.ts +94 -0
- package/src/internal/proxy/handler.test.ts +173 -0
- package/src/internal/proxy/index.ts +6 -0
- package/src/internal/proxy/make-object.ts +113 -0
- package/src/internal/proxy/schema.test.ts +137 -0
- package/src/internal/proxy/typed-handler.test.ts +102 -0
- package/src/internal/proxy/typed-handler.ts +233 -0
- package/src/internal/proxy/typed-object.test.ts +105 -0
- package/src/internal/ref/index.ts +6 -0
- package/src/internal/ref/ref-array.ts +39 -0
- package/src/internal/ref/ref.test.ts +101 -0
- package/src/internal/ref/ref.ts +525 -0
- package/src/internal/schema/compose.test.ts +42 -0
- package/src/internal/schema/compose.ts +37 -0
- package/src/internal/schema/echo-schema.ts +385 -0
- package/src/internal/schema/index.ts +8 -0
- package/src/internal/schema/manipulation.ts +92 -0
- package/src/internal/schema/persistent-schema.ts +28 -0
- package/src/internal/schema/snapshot.ts +25 -0
- package/src/internal/types/base.ts +57 -0
- package/src/internal/types/entity.ts +23 -0
- package/src/internal/types/index.ts +9 -0
- package/src/internal/types/meta.ts +76 -0
- package/src/internal/types/typename.ts +45 -0
- package/src/internal/types/version.ts +20 -0
- package/src/testing/api.test.ts +100 -0
- package/src/testing/index.ts +3 -1
- package/src/testing/test-data.ts +130 -0
- package/src/testing/test-schema.ts +224 -0
- package/src/testing/util.ts +78 -0
- package/dist/lib/browser/chunk-EUA7CM23.mjs +0 -619
- package/dist/lib/browser/chunk-EUA7CM23.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-IV6BWGHK.mjs +0 -619
- package/dist/lib/node-esm/chunk-IV6BWGHK.mjs.map +0 -7
- package/dist/types/src/experimental/database.d.ts +0 -8
- package/dist/types/src/experimental/database.d.ts.map +0 -1
- package/dist/types/src/experimental/index.d.ts +0 -1
- package/dist/types/src/experimental/index.d.ts.map +0 -1
- package/dist/types/src/experimental/queue.d.ts +0 -8
- package/dist/types/src/experimental/queue.d.ts.map +0 -1
- package/dist/types/src/experimental/space.d.ts +0 -8
- package/dist/types/src/experimental/space.d.ts.map +0 -1
- package/dist/types/src/query/dsl.d.ts +0 -218
- package/dist/types/src/query/dsl.d.ts.map +0 -1
- package/dist/types/src/query/dsl.test.d.ts +0 -2
- package/dist/types/src/query/dsl.test.d.ts.map +0 -1
- package/dist/types/src/query/index.d.ts +0 -2
- package/dist/types/src/query/index.d.ts.map +0 -1
- package/dist/types/src/testing/types.d.ts +0 -113
- package/dist/types/src/testing/types.d.ts.map +0 -1
- package/src/experimental/database.ts +0 -11
- package/src/experimental/index.ts +0 -7
- package/src/experimental/queue.ts +0 -11
- package/src/experimental/space.ts +0 -11
- package/src/query/dsl.test.ts +0 -323
- package/src/query/dsl.ts +0 -646
- package/src/query/index.ts +0 -5
- package/src/test/api.test.ts +0 -173
- package/src/testing/types.ts +0 -91
- /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import "@dxos/node-std/globals";
|
|
2
|
+
import {
|
|
3
|
+
Any
|
|
4
|
+
} from "./chunk-F4YF6C3O.mjs";
|
|
5
|
+
import {
|
|
6
|
+
Relation
|
|
7
|
+
} from "./chunk-AGOWBKY6.mjs";
|
|
8
|
+
import {
|
|
9
|
+
ATTR_RELATION_SOURCE,
|
|
10
|
+
ATTR_RELATION_TARGET,
|
|
11
|
+
MetaId,
|
|
12
|
+
RelationSourceDXNId,
|
|
13
|
+
RelationSourceId,
|
|
14
|
+
RelationTargetDXNId,
|
|
15
|
+
RelationTargetId,
|
|
16
|
+
getObjectDXN,
|
|
17
|
+
makeObject
|
|
18
|
+
} from "./chunk-6XVZF5VJ.mjs";
|
|
19
|
+
import {
|
|
20
|
+
getTypeAnnotation
|
|
21
|
+
} from "./chunk-WABSVOOX.mjs";
|
|
22
|
+
import {
|
|
23
|
+
EntityKind,
|
|
24
|
+
KindId
|
|
25
|
+
} from "./chunk-QU7PWSZD.mjs";
|
|
26
|
+
import {
|
|
27
|
+
__export
|
|
28
|
+
} from "./chunk-CGS2ULMK.mjs";
|
|
29
|
+
|
|
30
|
+
// src/Relation.ts
|
|
31
|
+
var Relation_exports = {};
|
|
32
|
+
__export(Relation_exports, {
|
|
33
|
+
Any: () => Any2,
|
|
34
|
+
Source: () => Source,
|
|
35
|
+
Target: () => Target,
|
|
36
|
+
getSource: () => getSource,
|
|
37
|
+
getSourceDXN: () => getSourceDXN,
|
|
38
|
+
getTarget: () => getTarget,
|
|
39
|
+
getTargetDXN: () => getTargetDXN,
|
|
40
|
+
isRelation: () => isRelation,
|
|
41
|
+
make: () => make
|
|
42
|
+
});
|
|
43
|
+
import * as Schema from "effect/Schema";
|
|
44
|
+
import { raise } from "@dxos/debug";
|
|
45
|
+
import { assertArgument, invariant } from "@dxos/invariant";
|
|
46
|
+
import { DXN } from "@dxos/keys";
|
|
47
|
+
import { assumeType } from "@dxos/util";
|
|
48
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/core/echo/echo/src/Relation.ts";
|
|
49
|
+
var Any2 = Schema.Struct({}).pipe(Relation({
|
|
50
|
+
typename: "dxos.org/type/Any",
|
|
51
|
+
version: "0.1.0",
|
|
52
|
+
source: Any,
|
|
53
|
+
target: Any
|
|
54
|
+
}));
|
|
55
|
+
var Source = RelationSourceId;
|
|
56
|
+
var Target = RelationTargetId;
|
|
57
|
+
var make = (schema, props, meta) => {
|
|
58
|
+
assertArgument(getTypeAnnotation(schema)?.kind === EntityKind.Relation, "schema", "Expected a relation schema");
|
|
59
|
+
if (props[MetaId] != null) {
|
|
60
|
+
meta = props[MetaId];
|
|
61
|
+
delete props[MetaId];
|
|
62
|
+
}
|
|
63
|
+
const sourceDXN = getObjectDXN(props[Source]) ?? raise(new Error("Unresolved relation source"));
|
|
64
|
+
const targetDXN = getObjectDXN(props[Target]) ?? raise(new Error("Unresolved relation target"));
|
|
65
|
+
props[RelationSourceDXNId] = sourceDXN;
|
|
66
|
+
props[RelationTargetDXNId] = targetDXN;
|
|
67
|
+
return makeObject(schema, props, meta);
|
|
68
|
+
};
|
|
69
|
+
var isRelation = (value) => {
|
|
70
|
+
if (typeof value !== "object" || value === null) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
if (ATTR_RELATION_SOURCE in value || ATTR_RELATION_TARGET in value) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
const kind = value[KindId];
|
|
77
|
+
return kind === EntityKind.Relation;
|
|
78
|
+
};
|
|
79
|
+
var getSourceDXN = (value) => {
|
|
80
|
+
assertArgument(isRelation(value), "Expected a relation");
|
|
81
|
+
assumeType(value);
|
|
82
|
+
const dxn = value[RelationSourceDXNId];
|
|
83
|
+
invariant(dxn instanceof DXN, void 0, {
|
|
84
|
+
F: __dxlog_file,
|
|
85
|
+
L: 124,
|
|
86
|
+
S: void 0,
|
|
87
|
+
A: [
|
|
88
|
+
"dxn instanceof DXN",
|
|
89
|
+
""
|
|
90
|
+
]
|
|
91
|
+
});
|
|
92
|
+
return dxn;
|
|
93
|
+
};
|
|
94
|
+
var getTargetDXN = (value) => {
|
|
95
|
+
assertArgument(isRelation(value), "Expected a relation");
|
|
96
|
+
assumeType(value);
|
|
97
|
+
const dxn = value[RelationTargetDXNId];
|
|
98
|
+
invariant(dxn instanceof DXN, void 0, {
|
|
99
|
+
F: __dxlog_file,
|
|
100
|
+
L: 136,
|
|
101
|
+
S: void 0,
|
|
102
|
+
A: [
|
|
103
|
+
"dxn instanceof DXN",
|
|
104
|
+
""
|
|
105
|
+
]
|
|
106
|
+
});
|
|
107
|
+
return dxn;
|
|
108
|
+
};
|
|
109
|
+
var getSource = (relation) => {
|
|
110
|
+
assertArgument(isRelation(relation), "Expected a relation");
|
|
111
|
+
assumeType(relation);
|
|
112
|
+
const obj = relation[RelationSourceId];
|
|
113
|
+
invariant(obj !== void 0, `Invalid source: ${relation.id}`, {
|
|
114
|
+
F: __dxlog_file,
|
|
115
|
+
L: 148,
|
|
116
|
+
S: void 0,
|
|
117
|
+
A: [
|
|
118
|
+
"obj !== undefined",
|
|
119
|
+
"`Invalid source: ${relation.id}`"
|
|
120
|
+
]
|
|
121
|
+
});
|
|
122
|
+
return obj;
|
|
123
|
+
};
|
|
124
|
+
var getTarget = (relation) => {
|
|
125
|
+
assertArgument(isRelation(relation), "Expected a relation");
|
|
126
|
+
assumeType(relation);
|
|
127
|
+
const obj = relation[RelationTargetId];
|
|
128
|
+
invariant(obj !== void 0, `Invalid target: ${relation.id}`, {
|
|
129
|
+
F: __dxlog_file,
|
|
130
|
+
L: 160,
|
|
131
|
+
S: void 0,
|
|
132
|
+
A: [
|
|
133
|
+
"obj !== undefined",
|
|
134
|
+
"`Invalid target: ${relation.id}`"
|
|
135
|
+
]
|
|
136
|
+
});
|
|
137
|
+
return obj;
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
export {
|
|
141
|
+
Any2 as Any,
|
|
142
|
+
Source,
|
|
143
|
+
Target,
|
|
144
|
+
make,
|
|
145
|
+
isRelation,
|
|
146
|
+
getSourceDXN,
|
|
147
|
+
getTargetDXN,
|
|
148
|
+
getSource,
|
|
149
|
+
getTarget,
|
|
150
|
+
Relation_exports
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=chunk-QHC3ZYNC.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/Relation.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { raise } from '@dxos/debug';\nimport { assertArgument, invariant } from '@dxos/invariant';\nimport { DXN, type ObjectId } from '@dxos/keys';\nimport { type Live } from '@dxos/live-object';\nimport { assumeType } from '@dxos/util';\n\nimport * as Entity from './Entity';\nimport {\n ATTR_RELATION_SOURCE,\n ATTR_RELATION_TARGET,\n type AnyEchoObject,\n EntityKind,\n type InternalObjectProps,\n MetaId,\n type ObjectMeta,\n RelationSourceDXNId,\n RelationSourceId,\n RelationTargetDXNId,\n RelationTargetId,\n getObjectDXN,\n getTypeAnnotation,\n makeObject,\n} from './internal';\nimport * as Obj from './Obj';\nimport * as Type from './Type';\n\n/**\n * Base type for all ECHO relations.\n * @private\n */\ninterface BaseRelation<Source, Target>\n extends AnyEchoObject,\n Type.Relation.Endpoints<Source, Target>,\n Entity.OfKind<EntityKind.Relation> {}\n\n/**\n * Base type for all Relations objects.\n */\nexport interface Any extends BaseRelation<Obj.Any, Obj.Any> {}\n\nexport const Any = Schema.Struct({}).pipe(\n Type.Relation({\n typename: 'dxos.org/type/Any',\n version: '0.1.0',\n source: Obj.Any,\n target: Obj.Any,\n }),\n);\n\n/**\n * Relation type with specific source and target types.\n */\nexport type Relation<Source extends Obj.Any, Target extends Obj.Any, Props> = BaseRelation<Source, Target> & Props;\n\nexport const Source: unique symbol = RelationSourceId as any;\nexport type Source = typeof Source;\n\nexport const Target: unique symbol = RelationTargetId as any;\nexport type Target = typeof Target;\n\ntype MakeProps<T extends Any> = {\n id?: ObjectId;\n [MetaId]?: ObjectMeta;\n [Source]: T[Source];\n [Target]: T[Target];\n} & Type.Properties<T>;\n\n/**\n * Creates new relation.\n * @param schema - Relation schema.\n * @param props - Relation properties. Endpoints are passed as [Relation.Source] and [Relation.Target] keys.\n * @param meta - Relation metadata.\n * @returns\n */\n// NOTE: Writing the definition this way (with generic over schema) makes typescript perfer to infer the type from the first param (this schema) rather than the second param (the props).\n// TODO(dmaretskyi): Move meta into props.\nexport const make = <S extends Type.Relation.Any>(\n schema: S,\n props: NoInfer<MakeProps<Schema.Schema.Type<S>>>,\n meta?: ObjectMeta,\n): Live<Schema.Schema.Type<S> & Entity.OfKind<typeof Entity.Kind.Relation>> => {\n assertArgument(getTypeAnnotation(schema)?.kind === EntityKind.Relation, 'schema', 'Expected a relation schema');\n\n if (props[MetaId] != null) {\n meta = props[MetaId] as any;\n delete props[MetaId];\n }\n\n const sourceDXN = getObjectDXN(props[Source]) ?? raise(new Error('Unresolved relation source'));\n const targetDXN = getObjectDXN(props[Target]) ?? raise(new Error('Unresolved relation target'));\n\n (props as any)[RelationSourceDXNId] = sourceDXN;\n (props as any)[RelationTargetDXNId] = targetDXN;\n\n return makeObject<Schema.Schema.Type<S>>(schema, props as any, meta);\n};\n\nexport const isRelation = (value: unknown): value is Any => {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n if (ATTR_RELATION_SOURCE in value || ATTR_RELATION_TARGET in value) {\n return true;\n }\n\n const kind = (value as any)[Entity.KindId];\n return kind === EntityKind.Relation;\n};\n\n/**\n * @returns Relation source DXN.\n * @throws If the object is not a relation.\n */\nexport const getSourceDXN = (value: Any): DXN => {\n assertArgument(isRelation(value), 'Expected a relation');\n assumeType<InternalObjectProps>(value);\n const dxn = (value as InternalObjectProps)[RelationSourceDXNId];\n invariant(dxn instanceof DXN);\n return dxn;\n};\n\n/**\n * @returns Relation target DXN.\n * @throws If the object is not a relation.\n */\nexport const getTargetDXN = (value: Any): DXN => {\n assertArgument(isRelation(value), 'Expected a relation');\n assumeType<InternalObjectProps>(value);\n const dxn = (value as InternalObjectProps)[RelationTargetDXNId];\n invariant(dxn instanceof DXN);\n return dxn;\n};\n\n/**\n * @returns Relation source.\n * @throws If the object is not a relation.\n */\nexport const getSource = <T extends Any>(relation: T): Type.Relation.Source<T> => {\n assertArgument(isRelation(relation), 'Expected a relation');\n assumeType<InternalObjectProps>(relation);\n const obj = (relation as InternalObjectProps)[RelationSourceId];\n invariant(obj !== undefined, `Invalid source: ${relation.id}`);\n return obj as Type.Relation.Source<T>;\n};\n\n/**\n * @returns Relation target.\n * @throws If the object is not a relation.\n */\nexport const getTarget = <T extends Any>(relation: T): Type.Relation.Target<T> => {\n assertArgument(isRelation(relation), 'Expected a relation');\n assumeType<InternalObjectProps>(relation);\n const obj = (relation as InternalObjectProps)[RelationTargetId];\n invariant(obj !== undefined, `Invalid target: ${relation.id}`);\n return obj as Type.Relation.Target<T>;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;aAAAA;EAAA;;;;;;;;;AAIA,YAAYC,YAAY;AAExB,SAASC,aAAa;AACtB,SAASC,gBAAgBC,iBAAiB;AAC1C,SAASC,WAA0B;AAEnC,SAASC,kBAAkB;;AAoCpB,IAAMC,OAAaC,cAAO,CAAC,CAAA,EAAGC,KAC9BC,SAAS;EACZC,UAAU;EACVC,SAAS;EACTC,QAAYN;EACZO,QAAYP;AACd,CAAA,CAAA;AAQK,IAAMQ,SAAwBC;AAG9B,IAAMC,SAAwBC;AAmB9B,IAAMC,OAAO,CAClBC,QACAC,OACAC,SAAAA;AAEAC,iBAAeC,kBAAkBJ,MAAAA,GAASK,SAASC,WAAWhB,UAAU,UAAU,4BAAA;AAElF,MAAIW,MAAMM,MAAAA,KAAW,MAAM;AACzBL,WAAOD,MAAMM,MAAAA;AACb,WAAON,MAAMM,MAAAA;EACf;AAEA,QAAMC,YAAYC,aAAaR,MAAMN,MAAAA,CAAO,KAAKe,MAAM,IAAIC,MAAM,4BAAA,CAAA;AACjE,QAAMC,YAAYH,aAAaR,MAAMJ,MAAAA,CAAO,KAAKa,MAAM,IAAIC,MAAM,4BAAA,CAAA;AAEhEV,QAAcY,mBAAAA,IAAuBL;AACrCP,QAAca,mBAAAA,IAAuBF;AAEtC,SAAOG,WAAkCf,QAAQC,OAAcC,IAAAA;AACjE;AAEO,IAAMc,aAAa,CAACC,UAAAA;AACzB,MAAI,OAAOA,UAAU,YAAYA,UAAU,MAAM;AAC/C,WAAO;EACT;AACA,MAAIC,wBAAwBD,SAASE,wBAAwBF,OAAO;AAClE,WAAO;EACT;AAEA,QAAMZ,OAAQY,MAAqBG,MAAM;AACzC,SAAOf,SAASC,WAAWhB;AAC7B;AAMO,IAAM+B,eAAe,CAACJ,UAAAA;AAC3Bd,iBAAea,WAAWC,KAAAA,GAAQ,qBAAA;AAClCK,aAAgCL,KAAAA;AAChC,QAAMM,MAAON,MAA8BJ,mBAAAA;AAC3CW,YAAUD,eAAeE,KAAAA,QAAAA;;;;;;;;;AACzB,SAAOF;AACT;AAMO,IAAMG,eAAe,CAACT,UAAAA;AAC3Bd,iBAAea,WAAWC,KAAAA,GAAQ,qBAAA;AAClCK,aAAgCL,KAAAA;AAChC,QAAMM,MAAON,MAA8BH,mBAAAA;AAC3CU,YAAUD,eAAeE,KAAAA,QAAAA;;;;;;;;;AACzB,SAAOF;AACT;AAMO,IAAMI,YAAY,CAAgBC,aAAAA;AACvCzB,iBAAea,WAAWY,QAAAA,GAAW,qBAAA;AACrCN,aAAgCM,QAAAA;AAChC,QAAMC,MAAOD,SAAiChC,gBAAAA;AAC9C4B,YAAUK,QAAQC,QAAW,mBAAmBF,SAASG,EAAE,IAAE;;;;;;;;;AAC7D,SAAOF;AACT;AAMO,IAAMG,YAAY,CAAgBJ,aAAAA;AACvCzB,iBAAea,WAAWY,QAAAA,GAAW,qBAAA;AACrCN,aAAgCM,QAAAA;AAChC,QAAMC,MAAOD,SAAiC9B,gBAAAA;AAC9C0B,YAAUK,QAAQC,QAAW,mBAAmBF,SAASG,EAAE,IAAE;;;;;;;;;AAC7D,SAAOF;AACT;",
|
|
6
|
+
"names": ["Any", "Schema", "raise", "assertArgument", "invariant", "DXN", "assumeType", "Any", "Struct", "pipe", "Relation", "typename", "version", "source", "target", "Source", "RelationSourceId", "Target", "RelationTargetId", "make", "schema", "props", "meta", "assertArgument", "getTypeAnnotation", "kind", "EntityKind", "MetaId", "sourceDXN", "getObjectDXN", "raise", "Error", "targetDXN", "RelationSourceDXNId", "RelationTargetDXNId", "makeObject", "isRelation", "value", "ATTR_RELATION_SOURCE", "ATTR_RELATION_TARGET", "KindId", "getSourceDXN", "assumeType", "dxn", "invariant", "DXN", "getTargetDXN", "getSource", "relation", "obj", "undefined", "id", "getTarget"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import "@dxos/node-std/globals";
|
|
2
|
+
|
|
3
|
+
// src/internal/types/entity.ts
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
var EntityKindId = Symbol.for("@dxos/echo/EntityKind");
|
|
6
|
+
var EntityKind = /* @__PURE__ */ (function(EntityKind2) {
|
|
7
|
+
EntityKind2["Object"] = "object";
|
|
8
|
+
EntityKind2["Relation"] = "relation";
|
|
9
|
+
return EntityKind2;
|
|
10
|
+
})({});
|
|
11
|
+
var EntityKindSchema = Schema.Enums(EntityKind);
|
|
12
|
+
var KindId = EntityKindId;
|
|
13
|
+
|
|
14
|
+
// src/internal/annotations/util.ts
|
|
15
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
16
|
+
import { assertArgument } from "@dxos/invariant";
|
|
17
|
+
import { DXN } from "@dxos/keys";
|
|
18
|
+
var createAnnotationHelper = (id) => {
|
|
19
|
+
return {
|
|
20
|
+
get: (schema) => SchemaAST.getAnnotation(schema.ast, id),
|
|
21
|
+
getFromAst: (ast) => SchemaAST.getAnnotation(ast, id),
|
|
22
|
+
set: (value) => (schema) => schema.annotations({
|
|
23
|
+
[id]: value
|
|
24
|
+
})
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
var unwrapOptional = (property) => {
|
|
28
|
+
if (!property.isOptional || !SchemaAST.isUnion(property.type)) {
|
|
29
|
+
return property;
|
|
30
|
+
}
|
|
31
|
+
return property.type.types[0];
|
|
32
|
+
};
|
|
33
|
+
var makeTypeJsonSchemaAnnotation = (options) => {
|
|
34
|
+
assertArgument(!!options.relationSource === (options.kind === EntityKind.Relation), "relationSource");
|
|
35
|
+
assertArgument(!!options.relationTarget === (options.kind === EntityKind.Relation), "relationTarget");
|
|
36
|
+
const obj = {
|
|
37
|
+
// TODO(dmaretskyi): Should this include the version?
|
|
38
|
+
$id: options.identifier ?? DXN.fromTypename(options.typename).toString(),
|
|
39
|
+
entityKind: options.kind,
|
|
40
|
+
version: options.version,
|
|
41
|
+
typename: options.typename
|
|
42
|
+
};
|
|
43
|
+
if (options.kind === EntityKind.Relation) {
|
|
44
|
+
obj.relationSource = {
|
|
45
|
+
$ref: options.relationSource
|
|
46
|
+
};
|
|
47
|
+
obj.relationTarget = {
|
|
48
|
+
$ref: options.relationTarget
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return obj;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
EntityKind,
|
|
56
|
+
EntityKindSchema,
|
|
57
|
+
KindId,
|
|
58
|
+
createAnnotationHelper,
|
|
59
|
+
unwrapOptional,
|
|
60
|
+
makeTypeJsonSchemaAnnotation
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=chunk-QU7PWSZD.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/types/entity.ts", "../../../src/internal/annotations/util.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\n/**\n * Entity kind.\n */\nconst EntityKindId = Symbol.for('@dxos/echo/EntityKind');\n\n/**\n * Kinds of entities stored in ECHO: objects and relations.\n */\nexport enum EntityKind {\n Object = 'object',\n Relation = 'relation',\n}\n\nexport const EntityKindSchema = Schema.Enums(EntityKind);\n\nexport const KindId: unique symbol = EntityKindId as any;\nexport type KindId = typeof KindId;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport type * as Option from 'effect/Option';\nimport type * as Schema from 'effect/Schema';\nimport * as SchemaAST from 'effect/SchemaAST';\n\nimport { assertArgument } from '@dxos/invariant';\nimport { DXN } from '@dxos/keys';\n\nimport { EntityKind } from '../types';\n\nexport interface AnnotationHelper<T> {\n get: (schema: Schema.Schema.Any) => Option.Option<T>;\n getFromAst: (ast: SchemaAST.AST) => Option.Option<T>;\n set: (value: T) => <S extends Schema.Schema.Any>(schema: S) => S;\n}\n\nexport const createAnnotationHelper = <T>(id: symbol): AnnotationHelper<T> => {\n return {\n get: (schema) => SchemaAST.getAnnotation(schema.ast, id),\n getFromAst: (ast) => SchemaAST.getAnnotation(ast, id),\n set:\n (value) =>\n <S extends Schema.Schema.Any>(schema: S) =>\n schema.annotations({ [id]: value }) as S,\n };\n};\n\n/**\n * If property is optional returns the nested property, otherwise returns the property.\n */\n// TODO(wittjosiah): Is there a way to do this as a generic?\nexport const unwrapOptional = (property: SchemaAST.PropertySignature) => {\n if (!property.isOptional || !SchemaAST.isUnion(property.type)) {\n return property;\n }\n\n return property.type.types[0];\n};\n\n/**\n * @see JSONSchemaAnnotationId\n * @returns JSON-schema annotation so that the schema can be serialized with correct parameters.\n */\n// TODO(burdon): Required type.\nexport const makeTypeJsonSchemaAnnotation = (options: {\n identifier?: string;\n kind: EntityKind;\n typename: string;\n version: string;\n relationSource?: string;\n relationTarget?: string;\n}) => {\n assertArgument(!!options.relationSource === (options.kind === EntityKind.Relation), 'relationSource');\n assertArgument(!!options.relationTarget === (options.kind === EntityKind.Relation), 'relationTarget');\n\n const obj = {\n // TODO(dmaretskyi): Should this include the version?\n $id: options.identifier ?? DXN.fromTypename(options.typename).toString(),\n entityKind: options.kind,\n version: options.version,\n typename: options.typename,\n } as any;\n if (options.kind === EntityKind.Relation) {\n obj.relationSource = { $ref: options.relationSource };\n obj.relationTarget = { $ref: options.relationTarget };\n }\n\n return obj;\n};\n"],
|
|
5
|
+
"mappings": ";;;AAIA,YAAYA,YAAY;AAKxB,IAAMC,eAAeC,OAAOC,IAAI,uBAAA;AAKzB,IAAKC,aAAAA,0BAAAA,aAAAA;;;SAAAA;;AAKL,IAAMC,mBAA0BC,aAAMF,UAAAA;AAEtC,IAAMG,SAAwBN;;;ACfrC,YAAYO,eAAe;AAE3B,SAASC,sBAAsB;AAC/B,SAASC,WAAW;AAUb,IAAMC,yBAAyB,CAAIC,OAAAA;AACxC,SAAO;IACLC,KAAK,CAACC,WAAqBC,wBAAcD,OAAOE,KAAKJ,EAAAA;IACrDK,YAAY,CAACD,QAAkBD,wBAAcC,KAAKJ,EAAAA;IAClDM,KACE,CAACC,UACD,CAA8BL,WAC5BA,OAAOM,YAAY;MAAE,CAACR,EAAAA,GAAKO;IAAM,CAAA;EACvC;AACF;AAMO,IAAME,iBAAiB,CAACC,aAAAA;AAC7B,MAAI,CAACA,SAASC,cAAc,CAAWC,kBAAQF,SAASG,IAAI,GAAG;AAC7D,WAAOH;EACT;AAEA,SAAOA,SAASG,KAAKC,MAAM,CAAA;AAC7B;AAOO,IAAMC,+BAA+B,CAACC,YAAAA;AAQ3CC,iBAAe,CAAC,CAACD,QAAQE,oBAAoBF,QAAQG,SAASC,WAAWC,WAAW,gBAAA;AACpFJ,iBAAe,CAAC,CAACD,QAAQM,oBAAoBN,QAAQG,SAASC,WAAWC,WAAW,gBAAA;AAEpF,QAAME,MAAM;;IAEVC,KAAKR,QAAQS,cAAcC,IAAIC,aAAaX,QAAQY,QAAQ,EAAEC,SAAQ;IACtEC,YAAYd,QAAQG;IACpBY,SAASf,QAAQe;IACjBH,UAAUZ,QAAQY;EACpB;AACA,MAAIZ,QAAQG,SAASC,WAAWC,UAAU;AACxCE,QAAIL,iBAAiB;MAAEc,MAAMhB,QAAQE;IAAe;AACpDK,QAAID,iBAAiB;MAAEU,MAAMhB,QAAQM;IAAe;EACtD;AAEA,SAAOC;AACT;",
|
|
6
|
+
"names": ["Schema", "EntityKindId", "Symbol", "for", "EntityKind", "EntityKindSchema", "Enums", "KindId", "SchemaAST", "assertArgument", "DXN", "createAnnotationHelper", "id", "get", "schema", "getAnnotation", "ast", "getFromAst", "set", "value", "annotations", "unwrapOptional", "property", "isOptional", "isUnion", "type", "types", "makeTypeJsonSchemaAnnotation", "options", "assertArgument", "relationSource", "kind", "EntityKind", "Relation", "relationTarget", "obj", "$id", "identifier", "DXN", "fromTypename", "typename", "toString", "entityKind", "version", "$ref"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
import "@dxos/node-std/globals";
|
|
2
|
+
import {
|
|
3
|
+
createAnnotationHelper
|
|
4
|
+
} from "./chunk-QU7PWSZD.mjs";
|
|
5
|
+
|
|
6
|
+
// src/internal/formats/types.ts
|
|
7
|
+
import * as Function from "effect/Function";
|
|
8
|
+
import * as Option from "effect/Option";
|
|
9
|
+
import * as SchemaAST from "effect/SchemaAST";
|
|
10
|
+
var TypeEnum = /* @__PURE__ */ (function(TypeEnum2) {
|
|
11
|
+
TypeEnum2["Array"] = "array";
|
|
12
|
+
TypeEnum2["Object"] = "object";
|
|
13
|
+
TypeEnum2["String"] = "string";
|
|
14
|
+
TypeEnum2["Number"] = "number";
|
|
15
|
+
TypeEnum2["Boolean"] = "boolean";
|
|
16
|
+
TypeEnum2["Ref"] = "ref";
|
|
17
|
+
return TypeEnum2;
|
|
18
|
+
})({});
|
|
19
|
+
var getTypeEnum = (property) => {
|
|
20
|
+
switch (property.type) {
|
|
21
|
+
case "array":
|
|
22
|
+
return "array";
|
|
23
|
+
case "object":
|
|
24
|
+
return "object";
|
|
25
|
+
case "string":
|
|
26
|
+
return "string";
|
|
27
|
+
case "number":
|
|
28
|
+
return "number";
|
|
29
|
+
case "boolean":
|
|
30
|
+
return "boolean";
|
|
31
|
+
default:
|
|
32
|
+
return void 0;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var FormatAnnotationId = Symbol.for("@dxos/schema/annotation/Format");
|
|
36
|
+
var FormatAnnotation = createAnnotationHelper(FormatAnnotationId);
|
|
37
|
+
var getFormatAnnotation = (node) => Function.pipe(SchemaAST.getAnnotation(FormatAnnotationId)(node), Option.getOrUndefined);
|
|
38
|
+
var TypeFormat = /* @__PURE__ */ (function(TypeFormat2) {
|
|
39
|
+
TypeFormat2["None"] = "none";
|
|
40
|
+
TypeFormat2["String"] = "string";
|
|
41
|
+
TypeFormat2["Number"] = "number";
|
|
42
|
+
TypeFormat2["Boolean"] = "boolean";
|
|
43
|
+
TypeFormat2["Ref"] = "ref";
|
|
44
|
+
TypeFormat2["DID"] = "did";
|
|
45
|
+
TypeFormat2["DXN"] = "dxn";
|
|
46
|
+
TypeFormat2["Email"] = "email";
|
|
47
|
+
TypeFormat2["Formula"] = "formula";
|
|
48
|
+
TypeFormat2["Hostname"] = "hostname";
|
|
49
|
+
TypeFormat2["JSON"] = "json";
|
|
50
|
+
TypeFormat2["Markdown"] = "markdown";
|
|
51
|
+
TypeFormat2["Regex"] = "regex";
|
|
52
|
+
TypeFormat2["SingleSelect"] = "single-select";
|
|
53
|
+
TypeFormat2["Text"] = "text";
|
|
54
|
+
TypeFormat2["MultiSelect"] = "multi-select";
|
|
55
|
+
TypeFormat2["URL"] = "url";
|
|
56
|
+
TypeFormat2["UUID"] = "uuid";
|
|
57
|
+
TypeFormat2["Currency"] = "currency";
|
|
58
|
+
TypeFormat2["Integer"] = "integer";
|
|
59
|
+
TypeFormat2["Percent"] = "percent";
|
|
60
|
+
TypeFormat2["Timestamp"] = "timestamp";
|
|
61
|
+
TypeFormat2["DateTime"] = "date-time";
|
|
62
|
+
TypeFormat2["Date"] = "date";
|
|
63
|
+
TypeFormat2["Time"] = "time";
|
|
64
|
+
TypeFormat2["Duration"] = "duration";
|
|
65
|
+
TypeFormat2["GeoPoint"] = "lnglat";
|
|
66
|
+
return TypeFormat2;
|
|
67
|
+
})({});
|
|
68
|
+
var FormatEnums = Object.values(TypeFormat).sort();
|
|
69
|
+
var PropertyKind = {
|
|
70
|
+
type: TypeEnum,
|
|
71
|
+
format: TypeFormat
|
|
72
|
+
};
|
|
73
|
+
var typeToFormat = {
|
|
74
|
+
["string"]: "string",
|
|
75
|
+
["number"]: "number",
|
|
76
|
+
["boolean"]: "boolean"
|
|
77
|
+
};
|
|
78
|
+
var formatToType = {
|
|
79
|
+
["none"]: void 0,
|
|
80
|
+
["string"]: "string",
|
|
81
|
+
["number"]: "number",
|
|
82
|
+
["boolean"]: "boolean",
|
|
83
|
+
["ref"]: "ref",
|
|
84
|
+
["did"]: "string",
|
|
85
|
+
["dxn"]: "string",
|
|
86
|
+
["email"]: "string",
|
|
87
|
+
["formula"]: "string",
|
|
88
|
+
["hostname"]: "string",
|
|
89
|
+
["json"]: "string",
|
|
90
|
+
["markdown"]: "string",
|
|
91
|
+
["regex"]: "string",
|
|
92
|
+
["url"]: "string",
|
|
93
|
+
["uuid"]: "string",
|
|
94
|
+
["single-select"]: "string",
|
|
95
|
+
["text"]: "string",
|
|
96
|
+
["multi-select"]: "object",
|
|
97
|
+
["date"]: "string",
|
|
98
|
+
["date-time"]: "string",
|
|
99
|
+
["duration"]: "string",
|
|
100
|
+
["time"]: "string",
|
|
101
|
+
["currency"]: "number",
|
|
102
|
+
["integer"]: "number",
|
|
103
|
+
["percent"]: "number",
|
|
104
|
+
["timestamp"]: "number",
|
|
105
|
+
["lnglat"]: "array"
|
|
106
|
+
};
|
|
107
|
+
var OptionsAnnotationId = Symbol.for("@dxos/schema/annotation/Options");
|
|
108
|
+
var OptionsAnnotation = createAnnotationHelper(OptionsAnnotationId);
|
|
109
|
+
var getOptionsAnnotation = (node) => Function.pipe(SchemaAST.getAnnotation(OptionsAnnotationId)(node), Option.getOrUndefined);
|
|
110
|
+
|
|
111
|
+
// src/internal/formats/number.ts
|
|
112
|
+
import * as Schema from "effect/Schema";
|
|
113
|
+
var encodeMultipleOf = (divisor) => 1 / Math.pow(10, divisor);
|
|
114
|
+
var encodeMultiple = (divisor) => (self) => divisor === void 0 || divisor === 0 ? self : self.pipe(Schema.multipleOf(encodeMultipleOf(divisor)));
|
|
115
|
+
var DecimalPrecision = Schema.transform(Schema.Number, Schema.Number, {
|
|
116
|
+
strict: true,
|
|
117
|
+
encode: (value) => encodeMultipleOf(value),
|
|
118
|
+
decode: (value) => Math.log10(1 / value)
|
|
119
|
+
}).annotations({
|
|
120
|
+
title: "Number of digits"
|
|
121
|
+
});
|
|
122
|
+
var CurrencyAnnotationId = Symbol.for("@dxos/schema/annotation/Currency");
|
|
123
|
+
var Currency = ({ decimals, code } = {
|
|
124
|
+
decimals: 2
|
|
125
|
+
}) => Schema.Number.pipe(encodeMultiple(decimals), FormatAnnotation.set(TypeFormat.Currency), Schema.annotations({
|
|
126
|
+
title: "Currency",
|
|
127
|
+
description: "Currency value",
|
|
128
|
+
...code ? {
|
|
129
|
+
[CurrencyAnnotationId]: code.toUpperCase()
|
|
130
|
+
} : {}
|
|
131
|
+
}));
|
|
132
|
+
var Integer = () => Schema.Number.pipe(Schema.int(), FormatAnnotation.set(TypeFormat.Integer), Schema.annotations({
|
|
133
|
+
title: "Integer",
|
|
134
|
+
description: "Integer value"
|
|
135
|
+
}));
|
|
136
|
+
var Percent = ({ decimals } = {
|
|
137
|
+
decimals: 2
|
|
138
|
+
}) => Schema.Number.pipe(encodeMultiple(decimals), FormatAnnotation.set(TypeFormat.Percent), Schema.annotations({
|
|
139
|
+
title: "Percent",
|
|
140
|
+
description: "Percentage value"
|
|
141
|
+
}));
|
|
142
|
+
var Timestamp = Schema.Number.pipe(FormatAnnotation.set(TypeFormat.Timestamp), Schema.annotations({
|
|
143
|
+
title: "Timestamp",
|
|
144
|
+
description: "Unix timestamp"
|
|
145
|
+
}));
|
|
146
|
+
|
|
147
|
+
// src/internal/formats/object.ts
|
|
148
|
+
import * as Schema2 from "effect/Schema";
|
|
149
|
+
import { clamp as clamp2 } from "@dxos/util";
|
|
150
|
+
var GeoPoint = Schema2.Tuple(Schema2.Number.pipe(Schema2.annotations({
|
|
151
|
+
title: "Longitude"
|
|
152
|
+
}), Schema2.clamp(-180, 180), Schema2.multipleOf(1e-6)), Schema2.Number.pipe(Schema2.annotations({
|
|
153
|
+
title: "Latitude"
|
|
154
|
+
}), Schema2.clamp(-90, 90), Schema2.multipleOf(1e-6)), Schema2.optionalElement(Schema2.Number).annotations({
|
|
155
|
+
title: "Height ASL (m)"
|
|
156
|
+
})).pipe(FormatAnnotation.set(TypeFormat.GeoPoint), Schema2.annotations({
|
|
157
|
+
title: "GeoPoint",
|
|
158
|
+
description: "GeoJSON Position"
|
|
159
|
+
}));
|
|
160
|
+
(function(GeoLocation2) {
|
|
161
|
+
GeoLocation2.toGeoPoint = ({ longitude, latitude, height }) => {
|
|
162
|
+
const clampedLongitude = clamp2(longitude, -180, 180);
|
|
163
|
+
const clampedLatitude = clamp2(latitude, -90, 90);
|
|
164
|
+
return height !== void 0 ? [
|
|
165
|
+
clampedLongitude,
|
|
166
|
+
clampedLatitude,
|
|
167
|
+
height
|
|
168
|
+
] : [
|
|
169
|
+
clampedLongitude,
|
|
170
|
+
clampedLatitude
|
|
171
|
+
];
|
|
172
|
+
};
|
|
173
|
+
GeoLocation2.fromGeoPoint = (geoPoint) => {
|
|
174
|
+
if (!geoPoint) {
|
|
175
|
+
return {
|
|
176
|
+
longitude: 0,
|
|
177
|
+
latitude: 0
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
const result = {
|
|
181
|
+
longitude: geoPoint[0],
|
|
182
|
+
latitude: geoPoint[1]
|
|
183
|
+
};
|
|
184
|
+
if (geoPoint[2] !== void 0) {
|
|
185
|
+
result.height = geoPoint[2];
|
|
186
|
+
}
|
|
187
|
+
return result;
|
|
188
|
+
};
|
|
189
|
+
})(GeoLocation || (GeoLocation = {}));
|
|
190
|
+
var GeoLocation;
|
|
191
|
+
|
|
192
|
+
// src/internal/formats/string.ts
|
|
193
|
+
import * as Schema3 from "effect/Schema";
|
|
194
|
+
import * as SchemaAST2 from "effect/SchemaAST";
|
|
195
|
+
var Email = Schema3.String.pipe(Schema3.pattern(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/), FormatAnnotation.set(TypeFormat.Email), Schema3.annotations({
|
|
196
|
+
title: "Email",
|
|
197
|
+
description: "Email address"
|
|
198
|
+
}));
|
|
199
|
+
var Formula = Schema3.String.pipe(FormatAnnotation.set(TypeFormat.Formula));
|
|
200
|
+
var Hostname = Schema3.String.pipe(FormatAnnotation.set(TypeFormat.Hostname));
|
|
201
|
+
var JSON = Schema3.String.pipe(FormatAnnotation.set(TypeFormat.JSON));
|
|
202
|
+
var Markdown = Schema3.String.pipe(FormatAnnotation.set(TypeFormat.Markdown));
|
|
203
|
+
var Regex = Schema3.String.pipe(FormatAnnotation.set(TypeFormat.Regex));
|
|
204
|
+
var Text = Schema3.String.pipe(FormatAnnotation.set(TypeFormat.Text));
|
|
205
|
+
var URL = Schema3.String.pipe(Schema3.pattern(/^(\w+?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/i), FormatAnnotation.set(TypeFormat.URL), Schema3.annotations({
|
|
206
|
+
title: "URL",
|
|
207
|
+
description: "URL"
|
|
208
|
+
}));
|
|
209
|
+
var UUID2 = Schema3.UUID.pipe(FormatAnnotation.set(TypeFormat.UUID), Schema3.annotations({
|
|
210
|
+
[SchemaAST2.ExamplesAnnotationId]: [
|
|
211
|
+
"3e4666bf-d5e5-4aa7-b8ce-cefe41c7568a"
|
|
212
|
+
]
|
|
213
|
+
}));
|
|
214
|
+
|
|
215
|
+
// src/internal/formats/format.ts
|
|
216
|
+
import * as Schema5 from "effect/Schema";
|
|
217
|
+
import * as Keys from "@dxos/keys";
|
|
218
|
+
|
|
219
|
+
// src/internal/formats/date.ts
|
|
220
|
+
import * as Schema4 from "effect/Schema";
|
|
221
|
+
import * as SchemaAST3 from "effect/SchemaAST";
|
|
222
|
+
var SimpleDate = Schema4.Struct({
|
|
223
|
+
year: Schema4.Number.pipe(Schema4.between(1900, 9999)),
|
|
224
|
+
month: Schema4.Number.pipe(Schema4.between(1, 12)),
|
|
225
|
+
day: Schema4.Number.pipe(Schema4.between(1, 31))
|
|
226
|
+
});
|
|
227
|
+
var SimpleTime = Schema4.Struct({
|
|
228
|
+
hours: Schema4.Number.pipe(Schema4.between(0, 23)),
|
|
229
|
+
minutes: Schema4.Number.pipe(Schema4.between(0, 59)),
|
|
230
|
+
seconds: Schema4.Number.pipe(Schema4.between(0, 59))
|
|
231
|
+
});
|
|
232
|
+
var SimpleDateTime = Schema4.extend(SimpleDate, SimpleTime);
|
|
233
|
+
var DateOnly = (
|
|
234
|
+
/* Schema.transformOrFail(Schema.String, SimpleDate, {
|
|
235
|
+
strict: true,
|
|
236
|
+
decode: (str, _, ast) => {
|
|
237
|
+
if (!isValidDateFormat(str)) {
|
|
238
|
+
return ParseResult.fail(new ParseResult.Type(ast, str, 'Expected YYYY-MM-DD format'));
|
|
239
|
+
}
|
|
240
|
+
if (!isValidDate(str)) {
|
|
241
|
+
return ParseResult.fail(new ParseResult.Type(ast, str, 'Invalid date'));
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
const [year, month, day] = str.split('-').map(Number);
|
|
245
|
+
return ParseResult.succeed({ year, month, day });
|
|
246
|
+
},
|
|
247
|
+
encode: (date) => {
|
|
248
|
+
return ParseResult.succeed(
|
|
249
|
+
[
|
|
250
|
+
date.year.toString().padStart(4, '0'),
|
|
251
|
+
date.month.toString().padStart(2, '0'),
|
|
252
|
+
date.day.toString().padStart(2, '0'),
|
|
253
|
+
].join('-'),
|
|
254
|
+
);
|
|
255
|
+
},
|
|
256
|
+
}) */
|
|
257
|
+
Schema4.String.pipe(FormatAnnotation.set(TypeFormat.Date), Schema4.annotations({
|
|
258
|
+
title: "Date",
|
|
259
|
+
description: "Valid date in ISO format"
|
|
260
|
+
}))
|
|
261
|
+
);
|
|
262
|
+
var TimeOnly = (
|
|
263
|
+
/* Schema.transformOrFail(Schema.String, SimpleTime, {
|
|
264
|
+
strict: true,
|
|
265
|
+
decode: (str, _, ast) => {
|
|
266
|
+
if (!isValidTimeFormat(str)) {
|
|
267
|
+
return ParseResult.fail(new ParseResult.Type(ast, str, 'Expected HH:mm:ss format'));
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
const [hours, minutes, seconds] = str.split(':').map(Number);
|
|
271
|
+
return ParseResult.succeed({ hours, minutes, seconds });
|
|
272
|
+
},
|
|
273
|
+
encode: (time) => {
|
|
274
|
+
return ParseResult.succeed(
|
|
275
|
+
[
|
|
276
|
+
time.hours.toString().padStart(2, '0'),
|
|
277
|
+
time.minutes.toString().padStart(2, '0'),
|
|
278
|
+
time.seconds.toString().padStart(2, '0'),
|
|
279
|
+
].join(':'),
|
|
280
|
+
);
|
|
281
|
+
},
|
|
282
|
+
}) */
|
|
283
|
+
Schema4.String.pipe(FormatAnnotation.set(TypeFormat.Time), Schema4.annotations({
|
|
284
|
+
title: "Time",
|
|
285
|
+
description: "Valid time in ISO format"
|
|
286
|
+
}))
|
|
287
|
+
);
|
|
288
|
+
var DateTime = (
|
|
289
|
+
/* Schema.transformOrFail(Schema.String, SimpleDateTime, {
|
|
290
|
+
strict: false,
|
|
291
|
+
decode: (str, _, ast) => {
|
|
292
|
+
const [date, time] = str.split('T');
|
|
293
|
+
if (!isValidDateFormat(date)) {
|
|
294
|
+
return ParseResult.fail(new ParseResult.Type(ast, date, 'Expected YYYY-MM-DD format'));
|
|
295
|
+
}
|
|
296
|
+
if (!isValidDate(date)) {
|
|
297
|
+
return ParseResult.fail(new ParseResult.Type(ast, date, 'Invalid date'));
|
|
298
|
+
}
|
|
299
|
+
if (!isValidTimeFormat(time)) {
|
|
300
|
+
return ParseResult.fail(new ParseResult.Type(ast, str, 'Expected HH:mm:ss format'));
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
const [year, month, day] = date.split('-').map(Number);
|
|
304
|
+
const [hours, minutes, seconds] = time.split(':').map(Number);
|
|
305
|
+
return ParseResult.succeed({ year, month, day, hours, minutes, seconds });
|
|
306
|
+
},
|
|
307
|
+
encode: (datetime) => {
|
|
308
|
+
return ParseResult.succeed(
|
|
309
|
+
[
|
|
310
|
+
[
|
|
311
|
+
datetime.year.toString().padStart(4, '0'),
|
|
312
|
+
datetime.month.toString().padStart(2, '0'),
|
|
313
|
+
datetime.day.toString().padStart(2, '0'),
|
|
314
|
+
].join('-'),
|
|
315
|
+
[
|
|
316
|
+
datetime.hours.toString().padStart(2, '0'),
|
|
317
|
+
datetime.minutes.toString().padStart(2, '0'),
|
|
318
|
+
datetime.seconds.toString().padStart(2, '0'),
|
|
319
|
+
].join(':'),
|
|
320
|
+
].join('T'),
|
|
321
|
+
);
|
|
322
|
+
},
|
|
323
|
+
}) */
|
|
324
|
+
Schema4.String.pipe(FormatAnnotation.set(TypeFormat.DateTime), Schema4.annotations({
|
|
325
|
+
title: "DateTime",
|
|
326
|
+
description: "Valid date and time in ISO format"
|
|
327
|
+
}))
|
|
328
|
+
);
|
|
329
|
+
var Duration = Schema4.String.pipe(FormatAnnotation.set(TypeFormat.Duration), Schema4.annotations({
|
|
330
|
+
title: "Duration",
|
|
331
|
+
description: "Duration in ISO 8601 format",
|
|
332
|
+
[SchemaAST3.ExamplesAnnotationId]: [
|
|
333
|
+
"1h",
|
|
334
|
+
"3D"
|
|
335
|
+
]
|
|
336
|
+
}));
|
|
337
|
+
|
|
338
|
+
// src/internal/formats/format.ts
|
|
339
|
+
(function(Format2) {
|
|
340
|
+
Format2.TypeFormat = TypeFormat;
|
|
341
|
+
Format2.DXN = Keys.DXN.Schema;
|
|
342
|
+
Format2.Email = Email;
|
|
343
|
+
Format2.Formula = Formula;
|
|
344
|
+
Format2.Hostname = Hostname;
|
|
345
|
+
Format2.JSON = JSON;
|
|
346
|
+
Format2.Markdown = Markdown;
|
|
347
|
+
Format2.Regex = Regex;
|
|
348
|
+
Format2.URL = URL;
|
|
349
|
+
Format2.UUID = Schema5.UUID;
|
|
350
|
+
Format2.Currency = Currency;
|
|
351
|
+
Format2.Integer = Integer;
|
|
352
|
+
Format2.Percent = Percent;
|
|
353
|
+
Format2.Timestamp = Timestamp;
|
|
354
|
+
Format2.Date = DateOnly;
|
|
355
|
+
Format2.DateTime = DateTime;
|
|
356
|
+
Format2.Duration = Duration;
|
|
357
|
+
Format2.Time = TimeOnly;
|
|
358
|
+
Format2.GeoPoint = GeoPoint;
|
|
359
|
+
})(Format || (Format = {}));
|
|
360
|
+
var Format;
|
|
361
|
+
|
|
362
|
+
// src/internal/formats/select.ts
|
|
363
|
+
import * as Schema6 from "effect/Schema";
|
|
364
|
+
var SelectOption = Schema6.Struct({
|
|
365
|
+
/** Stable identifier for the option. */
|
|
366
|
+
id: Schema6.NonEmptyString,
|
|
367
|
+
title: Schema6.String,
|
|
368
|
+
/** Color palette used for visual styling. */
|
|
369
|
+
color: Schema6.String
|
|
370
|
+
}).pipe(Schema6.mutable);
|
|
371
|
+
|
|
372
|
+
export {
|
|
373
|
+
TypeEnum,
|
|
374
|
+
getTypeEnum,
|
|
375
|
+
FormatAnnotationId,
|
|
376
|
+
FormatAnnotation,
|
|
377
|
+
getFormatAnnotation,
|
|
378
|
+
TypeFormat,
|
|
379
|
+
FormatEnums,
|
|
380
|
+
PropertyKind,
|
|
381
|
+
typeToFormat,
|
|
382
|
+
formatToType,
|
|
383
|
+
OptionsAnnotationId,
|
|
384
|
+
OptionsAnnotation,
|
|
385
|
+
getOptionsAnnotation,
|
|
386
|
+
DecimalPrecision,
|
|
387
|
+
CurrencyAnnotationId,
|
|
388
|
+
Currency,
|
|
389
|
+
GeoPoint,
|
|
390
|
+
GeoLocation,
|
|
391
|
+
Email,
|
|
392
|
+
Formula,
|
|
393
|
+
Hostname,
|
|
394
|
+
JSON,
|
|
395
|
+
Markdown,
|
|
396
|
+
Regex,
|
|
397
|
+
Text,
|
|
398
|
+
URL,
|
|
399
|
+
UUID2 as UUID,
|
|
400
|
+
Format,
|
|
401
|
+
SelectOption
|
|
402
|
+
};
|
|
403
|
+
//# sourceMappingURL=chunk-RP4JV7FD.mjs.map
|