@dxos/echo 0.8.4-main.5ad4a44 → 0.8.4-main.66e292d
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/dist/lib/browser/{chunk-MWLA34S5.mjs → chunk-7GH6RXJ3.mjs} +2513 -2673
- package/dist/lib/browser/chunk-7GH6RXJ3.mjs.map +7 -0
- package/dist/lib/browser/chunk-E4UTVJNF.mjs +1111 -0
- package/dist/lib/browser/chunk-E4UTVJNF.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +21 -19
- package/dist/lib/browser/internal/index.mjs +55 -45
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +247 -217
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/chunk-JE5RXM2I.mjs +1111 -0
- package/dist/lib/node-esm/chunk-JE5RXM2I.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-YTNLFBIK.mjs → chunk-M4B6BMD2.mjs} +2513 -2673
- package/dist/lib/node-esm/chunk-M4B6BMD2.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +21 -19
- package/dist/lib/node-esm/internal/index.mjs +55 -45
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +247 -217
- 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 +137 -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/Format.d.ts +4 -0
- package/dist/types/src/Format.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 +85 -62
- package/dist/types/src/Obj.d.ts.map +1 -1
- package/dist/types/src/Ref.d.ts +10 -10
- package/dist/types/src/Ref.d.ts.map +1 -1
- package/dist/types/src/Relation.d.ts +14 -11
- package/dist/types/src/Relation.d.ts.map +1 -1
- 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 -49
- package/dist/types/src/Type.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts +14 -18
- package/dist/types/src/errors.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +7 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/internal/annotations/annotations.d.ts +174 -0
- package/dist/types/src/internal/annotations/annotations.d.ts.map +1 -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 +26 -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/{object → entities}/expando.d.ts +3 -1
- 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/format.d.ts +2 -0
- package/dist/types/src/internal/formats/format.d.ts.map +1 -1
- package/dist/types/src/internal/formats/types.d.ts +7 -7
- package/dist/types/src/internal/formats/types.d.ts.map +1 -1
- package/dist/types/src/internal/index.d.ts +6 -10
- package/dist/types/src/internal/index.d.ts.map +1 -1
- 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.map +1 -0
- package/dist/types/src/internal/json-schema/index.d.ts +2 -0
- package/dist/types/src/internal/json-schema/index.d.ts.map +1 -1
- package/dist/types/src/internal/json-schema/json-schema-type.d.ts.map +1 -1
- package/dist/types/src/internal/{json → json-schema}/json-schema.d.ts +2 -5
- 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.map +1 -0
- package/dist/types/src/internal/object/common.d.ts.map +1 -1
- package/dist/types/src/internal/object/{create.d.ts → create-object.d.ts} +9 -10
- 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 +2 -2
- package/dist/types/src/internal/object/deleted.d.ts.map +1 -1
- package/dist/types/src/internal/object/ids.d.ts.map +1 -1
- package/dist/types/src/internal/object/index.d.ts +3 -12
- package/dist/types/src/internal/object/index.d.ts.map +1 -1
- package/dist/types/src/internal/object/json-serializer.d.ts +1 -2
- package/dist/types/src/internal/object/json-serializer.d.ts.map +1 -1
- package/dist/types/src/internal/object/schema-validator.d.ts.map +1 -1
- package/dist/types/src/internal/object/typed-object.d.ts +1 -1
- package/dist/types/src/internal/object/typed-object.d.ts.map +1 -1
- 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/typed-handler.d.ts +1 -1
- package/dist/types/src/internal/proxy/typed-handler.d.ts.map +1 -1
- package/dist/types/src/internal/ref/ref.d.ts +15 -12
- package/dist/types/src/internal/ref/ref.d.ts.map +1 -1
- package/dist/types/src/internal/schema/compose.d.ts.map +1 -0
- package/dist/types/src/internal/schema/compose.test.d.ts.map +1 -0
- package/dist/types/src/internal/schema/echo-schema.d.ts +9 -9
- package/dist/types/src/internal/schema/echo-schema.d.ts.map +1 -1
- package/dist/types/src/internal/schema/index.d.ts +3 -4
- package/dist/types/src/internal/schema/index.d.ts.map +1 -1
- package/dist/types/src/internal/schema/manipulation.d.ts.map +1 -1
- 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/runtime-schema-registry.d.ts +1 -1
- package/dist/types/src/internal/schema/runtime-schema-registry.d.ts.map +1 -1
- 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/{ast/entity-kind.d.ts → types/entity.d.ts} +3 -1
- package/dist/types/src/internal/types/entity.d.ts.map +1 -0
- package/dist/types/src/internal/types/index.d.ts +5 -2
- package/dist/types/src/internal/types/index.d.ts.map +1 -1
- package/dist/types/src/internal/{object → types}/meta.d.ts +20 -11
- 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/{object → types}/version.d.ts +3 -2
- package/dist/types/src/internal/types/version.d.ts.map +1 -0
- package/dist/types/src/query/filter.d.ts +167 -0
- package/dist/types/src/query/filter.d.ts.map +1 -0
- package/dist/types/src/query/index.d.ts +3 -1
- package/dist/types/src/query/index.d.ts.map +1 -1
- package/dist/types/src/query/order.d.ts +12 -0
- package/dist/types/src/query/order.d.ts.map +1 -0
- package/dist/types/src/query/query.d.ts +9 -144
- package/dist/types/src/query/query.d.ts.map +1 -1
- package/dist/types/src/query/testing.d.ts +51 -0
- package/dist/types/src/query/testing.d.ts.map +1 -0
- package/dist/types/src/{internal/query/query.d.ts → query/types.d.ts} +1 -1
- package/dist/types/src/query/types.d.ts.map +1 -0
- package/dist/types/src/query/util.d.ts +8 -0
- package/dist/types/src/query/util.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 -3
- 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 +337 -0
- package/dist/types/src/testing/test-schema.d.ts.map +1 -0
- package/dist/types/src/{internal/testing/utils.d.ts → testing/util.d.ts} +11 -5
- package/dist/types/src/testing/util.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +46 -38
- package/src/Annotation.ts +17 -0
- package/src/Database.ts +189 -0
- package/src/Entity.ts +51 -0
- package/src/Format.ts +11 -0
- package/src/JsonSchema.ts +16 -0
- package/src/Key.ts +3 -0
- package/src/Obj.ts +260 -147
- package/src/Ref.ts +9 -9
- package/src/Relation.ts +58 -44
- package/src/Tag.ts +40 -0
- package/src/Type.ts +96 -83
- package/src/index.ts +10 -4
- package/src/internal/README.md +83 -0
- package/src/internal/{ast → annotations}/annotations.test.ts +13 -15
- package/src/internal/annotations/annotations.ts +463 -0
- package/src/internal/annotations/index.ts +6 -0
- package/src/internal/annotations/util.ts +70 -0
- package/src/internal/entities/entity.ts +109 -0
- package/src/internal/{object → entities}/expando.ts +7 -5
- 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 +1 -1
- package/src/internal/formats/date.ts +5 -5
- package/src/internal/formats/format.test.ts +5 -5
- package/src/internal/formats/format.ts +3 -0
- package/src/internal/formats/number.ts +5 -5
- package/src/internal/formats/object.ts +2 -2
- package/src/internal/formats/string.ts +9 -9
- package/src/internal/formats/types.ts +44 -39
- package/src/internal/index.ts +29 -13
- package/src/internal/{json → json-schema}/annotations.ts +1 -1
- package/src/internal/json-schema/index.ts +2 -0
- package/src/internal/json-schema/json-schema-type.ts +4 -3
- package/src/internal/{json → json-schema}/json-schema.test.ts +230 -97
- package/src/internal/{json → json-schema}/json-schema.ts +67 -87
- package/src/internal/object/common.ts +3 -4
- package/src/internal/object/{create.test.ts → create-object.test.ts} +31 -33
- package/src/internal/object/{create.ts → create-object.ts} +34 -35
- package/src/internal/object/deleted.ts +6 -6
- package/src/internal/object/ids.ts +1 -1
- package/src/internal/object/index.ts +3 -12
- package/src/internal/object/inspect.ts +3 -5
- package/src/internal/object/json-serializer.test.ts +33 -38
- package/src/internal/object/json-serializer.ts +43 -38
- package/src/internal/object/schema-validator.ts +3 -2
- package/src/internal/object/typed-object.test.ts +1 -1
- package/src/internal/object/typed-object.ts +17 -4
- package/src/internal/proxy/handler.test.ts +30 -20
- package/src/internal/proxy/index.ts +6 -0
- package/src/internal/proxy/{reactive-object.ts → make-object.ts} +19 -14
- package/src/internal/proxy/schema.test.ts +5 -4
- package/src/internal/proxy/typed-handler.test.ts +28 -28
- package/src/internal/proxy/typed-handler.ts +11 -6
- package/src/internal/proxy/typed-object.test.ts +17 -12
- package/src/internal/ref/ref.test.ts +9 -8
- package/src/internal/ref/ref.ts +24 -20
- package/src/internal/{projection → schema}/compose.test.ts +5 -6
- package/src/internal/{projection → schema}/compose.ts +2 -1
- package/src/internal/schema/echo-schema.ts +30 -28
- package/src/internal/schema/index.ts +3 -4
- package/src/internal/schema/manipulation.ts +7 -1
- package/src/internal/schema/persistent-schema.ts +28 -0
- package/src/internal/schema/runtime-schema-registry.ts +4 -4
- package/src/internal/types/base.ts +58 -0
- package/src/internal/{ast/entity-kind.ts → types/entity.ts} +8 -0
- package/src/internal/types/index.ts +5 -2
- package/src/internal/{object → types}/meta.ts +32 -18
- package/src/internal/types/typename.ts +45 -0
- package/src/internal/types/version.ts +20 -0
- package/src/query/filter.ts +455 -0
- package/src/query/index.ts +4 -1
- package/src/query/order.ts +34 -0
- package/src/query/query.test.ts +188 -216
- package/src/query/query.ts +24 -505
- package/src/query/testing.ts +64 -0
- package/src/query/util.ts +25 -0
- package/src/testing/api.test.ts +100 -0
- package/src/testing/index.ts +3 -3
- package/src/testing/test-data.ts +130 -0
- package/src/testing/test-schema.ts +213 -0
- package/src/{internal/testing/utils.ts → testing/util.ts} +38 -14
- package/dist/lib/browser/chunk-MWLA34S5.mjs.map +0 -7
- package/dist/lib/browser/chunk-OAZJQHVO.mjs +0 -453
- package/dist/lib/browser/chunk-OAZJQHVO.mjs.map +0 -7
- package/dist/lib/browser/chunk-ORIE2FMS.mjs +0 -514
- package/dist/lib/browser/chunk-ORIE2FMS.mjs.map +0 -7
- package/dist/lib/browser/query/index.mjs +0 -23
- package/dist/lib/browser/query/index.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AXWVDOP7.mjs +0 -453
- package/dist/lib/node-esm/chunk-AXWVDOP7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-L4PBAJDP.mjs +0 -514
- package/dist/lib/node-esm/chunk-L4PBAJDP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YTNLFBIK.mjs.map +0 -7
- package/dist/lib/node-esm/query/index.mjs +0 -23
- package/dist/lib/node-esm/query/index.mjs.map +0 -7
- package/dist/types/src/internal/ast/annotation-helper.d.ts +0 -8
- package/dist/types/src/internal/ast/annotation-helper.d.ts.map +0 -1
- package/dist/types/src/internal/ast/annotations.d.ts +0 -119
- package/dist/types/src/internal/ast/annotations.d.ts.map +0 -1
- package/dist/types/src/internal/ast/annotations.test.d.ts.map +0 -1
- package/dist/types/src/internal/ast/entity-kind.d.ts.map +0 -1
- package/dist/types/src/internal/ast/index.d.ts +0 -5
- package/dist/types/src/internal/ast/index.d.ts.map +0 -1
- package/dist/types/src/internal/ast/types.d.ts +0 -6
- package/dist/types/src/internal/ast/types.d.ts.map +0 -1
- package/dist/types/src/internal/json/annotations.d.ts.map +0 -1
- package/dist/types/src/internal/json/effect-schema.test.d.ts.map +0 -1
- package/dist/types/src/internal/json/index.d.ts +0 -2
- package/dist/types/src/internal/json/index.d.ts.map +0 -1
- package/dist/types/src/internal/json/json-schema.d.ts.map +0 -1
- package/dist/types/src/internal/json/json-schema.test.d.ts.map +0 -1
- package/dist/types/src/internal/object/accessors.d.ts +0 -29
- package/dist/types/src/internal/object/accessors.d.ts.map +0 -1
- package/dist/types/src/internal/object/create.d.ts.map +0 -1
- package/dist/types/src/internal/object/create.test.d.ts +0 -2
- package/dist/types/src/internal/object/create.test.d.ts.map +0 -1
- package/dist/types/src/internal/object/entity.d.ts +0 -22
- package/dist/types/src/internal/object/entity.d.ts.map +0 -1
- package/dist/types/src/internal/object/expando.d.ts.map +0 -1
- package/dist/types/src/internal/object/meta.d.ts.map +0 -1
- package/dist/types/src/internal/object/model.d.ts +0 -117
- package/dist/types/src/internal/object/model.d.ts.map +0 -1
- package/dist/types/src/internal/object/relation.d.ts +0 -17
- package/dist/types/src/internal/object/relation.d.ts.map +0 -1
- package/dist/types/src/internal/object/typed-relation.d.ts +0 -32
- package/dist/types/src/internal/object/typed-relation.d.ts.map +0 -1
- package/dist/types/src/internal/object/typename.d.ts +0 -15
- package/dist/types/src/internal/object/typename.d.ts.map +0 -1
- package/dist/types/src/internal/object/version.d.ts.map +0 -1
- package/dist/types/src/internal/projection/compose.d.ts.map +0 -1
- package/dist/types/src/internal/projection/compose.test.d.ts.map +0 -1
- package/dist/types/src/internal/projection/index.d.ts +0 -2
- package/dist/types/src/internal/projection/index.d.ts.map +0 -1
- package/dist/types/src/internal/proxy/reactive-object.d.ts +0 -15
- package/dist/types/src/internal/proxy/reactive-object.d.ts.map +0 -1
- package/dist/types/src/internal/query/index.d.ts +0 -2
- package/dist/types/src/internal/query/index.d.ts.map +0 -1
- package/dist/types/src/internal/query/query.d.ts.map +0 -1
- package/dist/types/src/internal/schema/stored-schema.d.ts +0 -13
- package/dist/types/src/internal/schema/stored-schema.d.ts.map +0 -1
- package/dist/types/src/internal/testing/index.d.ts +0 -3
- package/dist/types/src/internal/testing/index.d.ts.map +0 -1
- package/dist/types/src/internal/testing/types.d.ts +0 -455
- package/dist/types/src/internal/testing/types.d.ts.map +0 -1
- package/dist/types/src/internal/testing/utils.d.ts.map +0 -1
- package/dist/types/src/internal/types/types.d.ts +0 -79
- package/dist/types/src/internal/types/types.d.ts.map +0 -1
- package/dist/types/src/internal/types/types.test.d.ts +0 -2
- package/dist/types/src/internal/types/types.test.d.ts.map +0 -1
- package/dist/types/src/internal/types/util.d.ts +0 -5
- package/dist/types/src/internal/types/util.d.ts.map +0 -1
- package/dist/types/src/query/tag.d.ts +0 -18
- package/dist/types/src/query/tag.d.ts.map +0 -1
- package/dist/types/src/testing/echo-schema.d.ts +0 -7
- package/dist/types/src/testing/echo-schema.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/internal/ast/annotation-helper.ts +0 -22
- package/src/internal/ast/annotations.ts +0 -212
- package/src/internal/ast/index.ts +0 -8
- package/src/internal/ast/types.ts +0 -17
- package/src/internal/json/index.ts +0 -5
- package/src/internal/object/accessors.ts +0 -115
- package/src/internal/object/entity.ts +0 -204
- package/src/internal/object/model.ts +0 -170
- package/src/internal/object/relation.ts +0 -24
- package/src/internal/object/typed-relation.ts +0 -85
- package/src/internal/object/typename.ts +0 -61
- package/src/internal/object/version.ts +0 -22
- package/src/internal/projection/index.ts +0 -5
- package/src/internal/query/index.ts +0 -5
- package/src/internal/schema/stored-schema.ts +0 -26
- package/src/internal/testing/index.ts +0 -6
- package/src/internal/testing/types.ts +0 -211
- package/src/internal/types/types.test.ts +0 -48
- package/src/internal/types/types.ts +0 -176
- package/src/internal/types/util.ts +0 -9
- package/src/query/tag.ts +0 -35
- package/src/test/api.test.ts +0 -180
- package/src/testing/echo-schema.ts +0 -39
- package/src/testing/types.ts +0 -91
- /package/dist/types/src/internal/{ast → annotations}/annotations.test.d.ts +0 -0
- /package/dist/types/src/internal/{json → json-schema}/annotations.d.ts +0 -0
- /package/dist/types/src/internal/{json → json-schema}/effect-schema.test.d.ts +0 -0
- /package/dist/types/src/internal/{json → json-schema}/json-schema.test.d.ts +0 -0
- /package/dist/types/src/internal/{projection → schema}/compose.d.ts +0 -0
- /package/dist/types/src/internal/{projection → schema}/compose.test.d.ts +0 -0
- /package/dist/types/src/{test → testing}/api.test.d.ts +0 -0
- /package/src/internal/{json → json-schema}/effect-schema.test.ts +0 -0
- /package/src/{internal/query/query.ts → query/types.ts} +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as Schema from 'effect/Schema';
|
|
6
6
|
import * as SchemaAST from 'effect/SchemaAST';
|
|
7
7
|
|
|
8
|
-
import { FormatAnnotation,
|
|
8
|
+
import { FormatAnnotation, TypeFormat } from './types';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Email address (RFC 5321)
|
|
@@ -13,7 +13,7 @@ import { FormatAnnotation, FormatEnum } from './types';
|
|
|
13
13
|
*/
|
|
14
14
|
export const Email = Schema.String.pipe(
|
|
15
15
|
Schema.pattern(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/),
|
|
16
|
-
FormatAnnotation.set(
|
|
16
|
+
FormatAnnotation.set(TypeFormat.Email),
|
|
17
17
|
Schema.annotations({
|
|
18
18
|
title: 'Email',
|
|
19
19
|
description: 'Email address',
|
|
@@ -24,25 +24,25 @@ export const Email = Schema.String.pipe(
|
|
|
24
24
|
*
|
|
25
25
|
*/
|
|
26
26
|
// TODO(burdon): Implement.
|
|
27
|
-
export const Formula = Schema.String.pipe(FormatAnnotation.set(
|
|
27
|
+
export const Formula = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Formula));
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
*
|
|
31
31
|
*/
|
|
32
32
|
// TODO(burdon): Implement.
|
|
33
|
-
export const Hostname = Schema.String.pipe(FormatAnnotation.set(
|
|
33
|
+
export const Hostname = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Hostname));
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
36
|
*
|
|
37
37
|
*/
|
|
38
38
|
// TODO(burdon): Implement.
|
|
39
|
-
export const JSON = Schema.String.pipe(FormatAnnotation.set(
|
|
39
|
+
export const JSON = Schema.String.pipe(FormatAnnotation.set(TypeFormat.JSON));
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
42
|
*
|
|
43
43
|
*/
|
|
44
44
|
// TODO(burdon): Implement.
|
|
45
|
-
export const Markdown = Schema.String.pipe(FormatAnnotation.set(
|
|
45
|
+
export const Markdown = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Markdown));
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
48
|
* Regex
|
|
@@ -50,14 +50,14 @@ export const Markdown = Schema.String.pipe(FormatAnnotation.set(FormatEnum.Markd
|
|
|
50
50
|
* https://ecma-international.org/publications-and-standards/standards/ecma-262
|
|
51
51
|
*/
|
|
52
52
|
// TODO(burdon): Implement.
|
|
53
|
-
export const Regex = Schema.String.pipe(FormatAnnotation.set(
|
|
53
|
+
export const Regex = Schema.String.pipe(FormatAnnotation.set(TypeFormat.Regex));
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
56
|
* https://datatracker.ietf.org/doc/html/rfc3986#section-1.1.3
|
|
57
57
|
*/
|
|
58
58
|
export const URL = Schema.String.pipe(
|
|
59
59
|
Schema.pattern(/^(\w+?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/i),
|
|
60
|
-
FormatAnnotation.set(
|
|
60
|
+
FormatAnnotation.set(TypeFormat.URL),
|
|
61
61
|
Schema.annotations({
|
|
62
62
|
title: 'URL',
|
|
63
63
|
description: 'URL',
|
|
@@ -69,7 +69,7 @@ export const URL = Schema.String.pipe(
|
|
|
69
69
|
* https://datatracker.ietf.org/doc/html/rfc4122
|
|
70
70
|
*/
|
|
71
71
|
export const UUID = Schema.UUID.pipe(
|
|
72
|
-
FormatAnnotation.set(
|
|
72
|
+
FormatAnnotation.set(TypeFormat.UUID),
|
|
73
73
|
Schema.annotations({
|
|
74
74
|
[SchemaAST.ExamplesAnnotationId]: ['3e4666bf-d5e5-4aa7-b8ce-cefe41c7568a'],
|
|
75
75
|
}),
|
|
@@ -7,7 +7,7 @@ import type * as JSONSchema from 'effect/JSONSchema';
|
|
|
7
7
|
import * as Option from 'effect/Option';
|
|
8
8
|
import * as SchemaAST from 'effect/SchemaAST';
|
|
9
9
|
|
|
10
|
-
import { createAnnotationHelper } from '../
|
|
10
|
+
import { createAnnotationHelper } from '../annotations';
|
|
11
11
|
import { type JsonSchemaType } from '../json-schema';
|
|
12
12
|
|
|
13
13
|
// TODO(burdon): Rename PropertyType.
|
|
@@ -53,14 +53,19 @@ export const getTypeEnum = (property: JsonSchemaType): TypeEnum | undefined => {
|
|
|
53
53
|
*/
|
|
54
54
|
export const FormatAnnotationId = Symbol.for('@dxos/schema/annotation/Format');
|
|
55
55
|
|
|
56
|
-
export const FormatAnnotation = createAnnotationHelper<
|
|
56
|
+
export const FormatAnnotation = createAnnotationHelper<TypeFormat>(FormatAnnotationId);
|
|
57
57
|
|
|
58
|
-
export const getFormatAnnotation = (node: SchemaAST.AST):
|
|
59
|
-
Function.pipe(SchemaAST.getAnnotation<
|
|
58
|
+
export const getFormatAnnotation = (node: SchemaAST.AST): TypeFormat | undefined =>
|
|
59
|
+
Function.pipe(SchemaAST.getAnnotation<TypeFormat>(FormatAnnotationId)(node), Option.getOrUndefined);
|
|
60
60
|
|
|
61
|
-
// TODO(burdon): Rename
|
|
62
|
-
export enum
|
|
61
|
+
// TODO(burdon): Rename Format; Change to discriminated union?
|
|
62
|
+
export enum TypeFormat {
|
|
63
63
|
None = 'none',
|
|
64
|
+
|
|
65
|
+
//
|
|
66
|
+
// Scalar
|
|
67
|
+
//
|
|
68
|
+
|
|
64
69
|
String = 'string',
|
|
65
70
|
Number = 'number',
|
|
66
71
|
Boolean = 'boolean',
|
|
@@ -108,60 +113,60 @@ export enum FormatEnum {
|
|
|
108
113
|
GeoPoint = 'lnglat',
|
|
109
114
|
}
|
|
110
115
|
|
|
111
|
-
export const FormatEnums = Object.values(
|
|
116
|
+
export const FormatEnums = Object.values(TypeFormat).sort();
|
|
112
117
|
|
|
113
118
|
export const PropertyKind = {
|
|
114
119
|
type: TypeEnum,
|
|
115
|
-
format:
|
|
120
|
+
format: TypeFormat,
|
|
116
121
|
};
|
|
117
122
|
|
|
118
123
|
/**
|
|
119
124
|
* Default formats
|
|
120
125
|
*/
|
|
121
|
-
export const typeToFormat: Partial<Record<TypeEnum,
|
|
122
|
-
[TypeEnum.String]:
|
|
123
|
-
[TypeEnum.Number]:
|
|
124
|
-
[TypeEnum.Boolean]:
|
|
126
|
+
export const typeToFormat: Partial<Record<TypeEnum, TypeFormat>> = {
|
|
127
|
+
[TypeEnum.String]: TypeFormat.String,
|
|
128
|
+
[TypeEnum.Number]: TypeFormat.Number,
|
|
129
|
+
[TypeEnum.Boolean]: TypeFormat.Boolean,
|
|
125
130
|
};
|
|
126
131
|
|
|
127
132
|
/**
|
|
128
133
|
* Map of format to type.
|
|
129
134
|
*/
|
|
130
|
-
export const formatToType: Record<
|
|
131
|
-
[
|
|
132
|
-
[
|
|
133
|
-
[
|
|
134
|
-
[
|
|
135
|
-
[
|
|
135
|
+
export const formatToType: Record<TypeFormat, TypeEnum> = {
|
|
136
|
+
[TypeFormat.None]: undefined as any,
|
|
137
|
+
[TypeFormat.String]: TypeEnum.String,
|
|
138
|
+
[TypeFormat.Number]: TypeEnum.Number,
|
|
139
|
+
[TypeFormat.Boolean]: TypeEnum.Boolean,
|
|
140
|
+
[TypeFormat.Ref]: TypeEnum.Ref,
|
|
136
141
|
|
|
137
142
|
// Strings
|
|
138
|
-
[
|
|
139
|
-
[
|
|
140
|
-
[
|
|
141
|
-
[
|
|
142
|
-
[
|
|
143
|
-
[
|
|
144
|
-
[
|
|
145
|
-
[
|
|
146
|
-
[
|
|
147
|
-
[
|
|
148
|
-
[
|
|
149
|
-
[
|
|
143
|
+
[TypeFormat.DID]: TypeEnum.String,
|
|
144
|
+
[TypeFormat.DXN]: TypeEnum.String,
|
|
145
|
+
[TypeFormat.Email]: TypeEnum.String,
|
|
146
|
+
[TypeFormat.Formula]: TypeEnum.String,
|
|
147
|
+
[TypeFormat.Hostname]: TypeEnum.String,
|
|
148
|
+
[TypeFormat.JSON]: TypeEnum.String,
|
|
149
|
+
[TypeFormat.Markdown]: TypeEnum.String,
|
|
150
|
+
[TypeFormat.Regex]: TypeEnum.String,
|
|
151
|
+
[TypeFormat.URL]: TypeEnum.String,
|
|
152
|
+
[TypeFormat.UUID]: TypeEnum.String,
|
|
153
|
+
[TypeFormat.SingleSelect]: TypeEnum.String,
|
|
154
|
+
[TypeFormat.MultiSelect]: TypeEnum.Object,
|
|
150
155
|
|
|
151
156
|
// Dates
|
|
152
|
-
[
|
|
153
|
-
[
|
|
154
|
-
[
|
|
155
|
-
[
|
|
157
|
+
[TypeFormat.Date]: TypeEnum.String,
|
|
158
|
+
[TypeFormat.DateTime]: TypeEnum.String,
|
|
159
|
+
[TypeFormat.Duration]: TypeEnum.String,
|
|
160
|
+
[TypeFormat.Time]: TypeEnum.String,
|
|
156
161
|
|
|
157
162
|
// Numbers
|
|
158
|
-
[
|
|
159
|
-
[
|
|
160
|
-
[
|
|
161
|
-
[
|
|
163
|
+
[TypeFormat.Currency]: TypeEnum.Number,
|
|
164
|
+
[TypeFormat.Integer]: TypeEnum.Number,
|
|
165
|
+
[TypeFormat.Percent]: TypeEnum.Number,
|
|
166
|
+
[TypeFormat.Timestamp]: TypeEnum.Number,
|
|
162
167
|
|
|
163
168
|
// Objects
|
|
164
|
-
[
|
|
169
|
+
[TypeFormat.GeoPoint]: TypeEnum.Array,
|
|
165
170
|
};
|
|
166
171
|
|
|
167
172
|
/**
|
package/src/internal/index.ts
CHANGED
|
@@ -2,21 +2,37 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
// TODO(burdon): Import directly (not part of ECHO API).
|
|
6
|
+
export { JsonPath, JsonProp, getValue, setValue, splitJsonPath } from '@dxos/effect';
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
export { ForeignKey } from '@dxos/echo-protocol';
|
|
10
|
-
|
|
11
|
-
export * from './ast';
|
|
8
|
+
export * from './annotations';
|
|
9
|
+
export * from './entities';
|
|
12
10
|
export * from './formats';
|
|
13
|
-
export * from './json';
|
|
14
11
|
export * from './json-schema';
|
|
15
|
-
export * from './object';
|
|
16
|
-
export * from './types';
|
|
17
|
-
export { defineHiddenProperty } from '@dxos/live-object';
|
|
18
12
|
export * from './ref';
|
|
19
|
-
export * from './
|
|
13
|
+
export * from './types';
|
|
14
|
+
|
|
15
|
+
// TODO(wittjosiah): Required to ensure types are portable (need to export all types required for downstream inference).
|
|
16
|
+
export * from './object';
|
|
17
|
+
export * from './proxy';
|
|
20
18
|
export * from './schema';
|
|
21
|
-
|
|
22
|
-
export {
|
|
19
|
+
|
|
20
|
+
// export {
|
|
21
|
+
// createObject,
|
|
22
|
+
// createQueueDXN,
|
|
23
|
+
// isDeleted,
|
|
24
|
+
// objectFromJSON,
|
|
25
|
+
// objectToJSON,
|
|
26
|
+
// setRefResolverOnData,
|
|
27
|
+
// SchemaValidator,
|
|
28
|
+
// TypedObject,
|
|
29
|
+
// } from './object';
|
|
30
|
+
// export { makeObject } from './proxy';
|
|
31
|
+
// export {
|
|
32
|
+
// type BaseSchema,
|
|
33
|
+
// EchoSchema,
|
|
34
|
+
// ImmutableSchema,
|
|
35
|
+
// RuntimeSchemaRegistry,
|
|
36
|
+
// PersistentSchema,
|
|
37
|
+
// isMutable,
|
|
38
|
+
// } from './schema';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import * as SchemaAST from 'effect/SchemaAST';
|
|
6
6
|
|
|
7
|
-
import { GeneratorAnnotationId, LabelAnnotationId, PropertyMetaAnnotationId } from '../
|
|
7
|
+
import { GeneratorAnnotationId, LabelAnnotationId, PropertyMetaAnnotationId } from '../annotations';
|
|
8
8
|
import { CurrencyAnnotationId, FormatAnnotationId } from '../formats';
|
|
9
9
|
import { type JsonSchemaEchoAnnotations, type JsonSchemaType } from '../json-schema';
|
|
10
10
|
|
|
@@ -6,8 +6,8 @@ import * as Schema from 'effect/Schema';
|
|
|
6
6
|
|
|
7
7
|
import { JsonPath, type JsonProp } from '@dxos/effect';
|
|
8
8
|
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { FormatAnnotation, TypeFormat } from '../formats';
|
|
10
|
+
import { EntityKindSchema } from '../types';
|
|
11
11
|
|
|
12
12
|
//
|
|
13
13
|
// JSON Schema
|
|
@@ -206,7 +206,7 @@ const _JsonSchemaType = Schema.Struct({
|
|
|
206
206
|
/**
|
|
207
207
|
* Regex pattern for strings.
|
|
208
208
|
*/
|
|
209
|
-
pattern: Schema.optional(Schema.String.pipe(FormatAnnotation.set(
|
|
209
|
+
pattern: Schema.optional(Schema.String.pipe(FormatAnnotation.set(TypeFormat.Regex))),
|
|
210
210
|
|
|
211
211
|
/**
|
|
212
212
|
* Serialized from {@link FormatAnnotationId}.
|
|
@@ -337,6 +337,7 @@ export const JsonSchemaFields = Object.keys(_JsonSchemaType.fields);
|
|
|
337
337
|
/**
|
|
338
338
|
* https://json-schema.org/draft-07/schema
|
|
339
339
|
*/
|
|
340
|
+
// TODO(burdon): Reconcile with @effect/Schema/JSONSchema
|
|
340
341
|
export interface JsonSchemaType extends Schema.Schema.Type<Schema.mutable<typeof _JsonSchemaType>> {}
|
|
341
342
|
|
|
342
343
|
export const JsonSchemaType: Schema.Schema<JsonSchemaType> = _JsonSchemaType.pipe(Schema.mutable);
|