@prismicio/types-internal 3.17.0 → 4.0.0-canary.72def6d
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 +41 -25
- package/dist/common/asset.d.ts +22 -0
- package/dist/common/asset.d.ts.map +1 -0
- package/dist/common/asset.js +21 -0
- package/dist/common/asset.js.map +1 -0
- package/dist/common/embed.d.ts +21 -0
- package/dist/common/embed.d.ts.map +1 -0
- package/dist/common/embed.js +20 -0
- package/dist/common/embed.js.map +1 -0
- package/dist/common/hexaColorCode.d.ts +8 -0
- package/dist/common/hexaColorCode.d.ts.map +1 -0
- package/dist/common/hexaColorCode.js +8 -0
- package/dist/common/hexaColorCode.js.map +1 -0
- package/dist/common/nonEmptyString.d.ts +8 -0
- package/dist/common/nonEmptyString.d.ts.map +1 -0
- package/dist/common/nonEmptyString.js +7 -0
- package/dist/common/nonEmptyString.js.map +1 -0
- package/dist/common/widgetKey.d.ts +8 -0
- package/dist/common/widgetKey.d.ts.map +1 -0
- package/dist/common/widgetKey.js +8 -0
- package/dist/common/widgetKey.js.map +1 -0
- package/dist/content/boolean.d.ts +11 -0
- package/dist/content/boolean.d.ts.map +1 -0
- package/dist/content/boolean.js +11 -0
- package/dist/content/boolean.js.map +1 -0
- package/dist/content/codec/boolean.js +31 -0
- package/dist/content/codec/boolean.js.map +1 -0
- package/dist/content/codec/document.js +49 -0
- package/dist/content/codec/document.js.map +1 -0
- package/dist/content/codec/embed.js +42 -0
- package/dist/content/codec/embed.js.map +1 -0
- package/dist/content/codec/empty.js +35 -0
- package/dist/content/codec/empty.js.map +1 -0
- package/dist/content/codec/field.js +41 -0
- package/dist/content/codec/field.js.map +1 -0
- package/dist/content/codec/geopoint.js +32 -0
- package/dist/content/codec/geopoint.js.map +1 -0
- package/dist/content/codec/group.js +127 -0
- package/dist/content/codec/group.js.map +1 -0
- package/dist/content/codec/image.js +44 -0
- package/dist/content/codec/image.js.map +1 -0
- package/dist/content/codec/integrationField.js +31 -0
- package/dist/content/codec/integrationField.js.map +1 -0
- package/dist/content/codec/legacyContentCtx.d.ts +72 -0
- package/dist/content/codec/legacyContentCtx.d.ts.map +1 -0
- package/dist/content/codec/legacyContentCtx.js +76 -0
- package/dist/content/codec/legacyContentCtx.js.map +1 -0
- package/dist/content/codec/link.js +93 -0
- package/dist/content/codec/link.js.map +1 -0
- package/dist/content/codec/nestable.js +91 -0
- package/dist/content/codec/nestable.js.map +1 -0
- package/dist/content/codec/repeatable.js +56 -0
- package/dist/content/codec/repeatable.js.map +1 -0
- package/dist/content/codec/richText.js +87 -0
- package/dist/content/codec/richText.js.map +1 -0
- package/dist/content/codec/separator.js +26 -0
- package/dist/content/codec/separator.js.map +1 -0
- package/dist/content/codec/slice.js +220 -0
- package/dist/content/codec/slice.js.map +1 -0
- package/dist/content/codec/slices.js +106 -0
- package/dist/content/codec/slices.js.map +1 -0
- package/dist/content/codec/table.js +56 -0
- package/dist/content/codec/table.js.map +1 -0
- package/dist/content/codec/uid.js +31 -0
- package/dist/content/codec/uid.js.map +1 -0
- package/dist/content/codec/widget.js +39 -0
- package/dist/content/codec/widget.js.map +1 -0
- package/dist/content/document.d.ts +3026 -0
- package/dist/content/document.d.ts.map +1 -0
- package/dist/content/document.js +9 -0
- package/dist/content/document.js.map +1 -0
- package/dist/content/embed.d.ts +24 -0
- package/dist/content/embed.d.ts.map +1 -0
- package/dist/content/embed.js +12 -0
- package/dist/content/embed.js.map +1 -0
- package/dist/content/empty.d.ts +11 -0
- package/dist/content/empty.d.ts.map +1 -0
- package/dist/content/empty.js +11 -0
- package/dist/content/empty.js.map +1 -0
- package/dist/content/field.d.ts +78 -0
- package/dist/content/field.d.ts.map +1 -0
- package/dist/content/field.js +52 -0
- package/dist/content/field.js.map +1 -0
- package/dist/content/geopoint.d.ts +14 -0
- package/dist/content/geopoint.d.ts.map +1 -0
- package/dist/content/geopoint.js +9 -0
- package/dist/content/geopoint.js.map +1 -0
- package/dist/content/group.d.ts +18 -0
- package/dist/content/group.d.ts.map +1 -0
- package/dist/content/group.js +19 -0
- package/dist/content/group.js.map +1 -0
- package/dist/content/image.d.ts +52 -0
- package/dist/content/image.d.ts.map +1 -0
- package/dist/content/image.js +10 -0
- package/dist/content/image.js.map +1 -0
- package/dist/content/integrationField.d.ts +11 -0
- package/dist/content/integrationField.d.ts.map +1 -0
- package/dist/content/integrationField.js +11 -0
- package/dist/content/integrationField.js.map +1 -0
- package/dist/content/legacy/boolean.js +7 -0
- package/dist/content/legacy/boolean.js.map +1 -0
- package/dist/content/legacy/document.js +15 -0
- package/dist/content/legacy/document.js.map +1 -0
- package/dist/content/legacy/embed.js +23 -0
- package/dist/content/legacy/embed.js.map +1 -0
- package/dist/content/legacy/empty.js +7 -0
- package/dist/content/legacy/empty.js.map +1 -0
- package/dist/content/legacy/field.js +7 -0
- package/dist/content/legacy/field.js.map +1 -0
- package/dist/content/legacy/geopoint.js +10 -0
- package/dist/content/legacy/geopoint.js.map +1 -0
- package/dist/content/legacy/group.js +10 -0
- package/dist/content/legacy/group.js.map +1 -0
- package/dist/content/legacy/image.d.ts +1 -0
- package/dist/content/legacy/image.js +33 -0
- package/dist/content/legacy/image.js.map +1 -0
- package/dist/content/legacy/integrationField.js +7 -0
- package/dist/content/legacy/integrationField.js.map +1 -0
- package/dist/content/legacy/link.js +88 -0
- package/dist/content/legacy/link.js.map +1 -0
- package/dist/content/legacy/nestable.js +32 -0
- package/dist/content/legacy/nestable.js.map +1 -0
- package/dist/content/legacy/repeatable.js +13 -0
- package/dist/content/legacy/repeatable.js.map +1 -0
- package/dist/content/legacy/richText.js +100 -0
- package/dist/content/legacy/richText.js.map +1 -0
- package/dist/content/legacy/separator.js +7 -0
- package/dist/content/legacy/separator.js.map +1 -0
- package/dist/content/legacy/slice.js +23 -0
- package/dist/content/legacy/slice.js.map +1 -0
- package/dist/content/legacy/slices.js +13 -0
- package/dist/content/legacy/slices.js.map +1 -0
- package/dist/content/legacy/table.js +19 -0
- package/dist/content/legacy/table.js.map +1 -0
- package/dist/content/legacy/uid.js +7 -0
- package/dist/content/legacy/uid.js.map +1 -0
- package/dist/content/link.d.ts +188 -0
- package/dist/content/link.d.ts.map +1 -0
- package/dist/content/link.js +50 -0
- package/dist/content/link.js.map +1 -0
- package/dist/content/nestable.d.ts +755 -0
- package/dist/content/nestable.d.ts.map +1 -0
- package/dist/content/nestable.js +38 -0
- package/dist/content/nestable.js.map +1 -0
- package/dist/content/repeatable.d.ts +192 -0
- package/dist/content/repeatable.d.ts.map +1 -0
- package/dist/content/repeatable.js +13 -0
- package/dist/content/repeatable.js.map +1 -0
- package/dist/content/richText.d.ts +141 -0
- package/dist/content/richText.d.ts.map +1 -0
- package/dist/content/richText.js +23 -0
- package/dist/content/richText.js.map +1 -0
- package/dist/content/separator.d.ts +10 -0
- package/dist/content/separator.d.ts.map +1 -0
- package/dist/content/separator.js +8 -0
- package/dist/content/separator.js.map +1 -0
- package/dist/content/slice.d.ts +4527 -0
- package/dist/content/slice.d.ts.map +1 -0
- package/dist/content/slice.js +27 -0
- package/dist/content/slice.js.map +1 -0
- package/dist/content/slices.d.ts +4536 -0
- package/dist/content/slices.d.ts.map +1 -0
- package/dist/content/slices.js +18 -0
- package/dist/content/slices.js.map +1 -0
- package/dist/content/table.d.ts +153 -0
- package/dist/content/table.d.ts.map +1 -0
- package/dist/content/table.js +13 -0
- package/dist/content/table.js.map +1 -0
- package/dist/content/uid.d.ts +11 -0
- package/dist/content/uid.d.ts.map +1 -0
- package/dist/content/uid.js +11 -0
- package/dist/content/uid.js.map +1 -0
- package/dist/content/widget.d.ts +3026 -0
- package/dist/content/widget.d.ts.map +1 -0
- package/dist/content/widget.js +16 -0
- package/dist/content/widget.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.js +2 -0
- package/dist/io-ts.d.ts +68728 -0
- package/dist/io-ts.d.ts.map +1 -0
- package/dist/io-ts.js +215 -0
- package/dist/io-ts.js.map +1 -0
- package/dist/model/boolean.d.ts +16 -0
- package/dist/model/boolean.d.ts.map +1 -0
- package/dist/model/boolean.js +16 -0
- package/dist/model/boolean.js.map +1 -0
- package/dist/model/color.d.ts +15 -0
- package/dist/model/color.d.ts.map +1 -0
- package/dist/model/color.js +15 -0
- package/dist/model/color.js.map +1 -0
- package/dist/model/customType.d.ts +3357 -0
- package/dist/model/customType.d.ts.map +1 -0
- package/dist/model/customType.js +18 -0
- package/dist/model/customType.js.map +1 -0
- package/dist/model/date.d.ts +16 -0
- package/dist/model/date.d.ts.map +1 -0
- package/dist/model/date.js +16 -0
- package/dist/model/date.js.map +1 -0
- package/dist/model/embed.d.ts +16 -0
- package/dist/model/embed.d.ts.map +1 -0
- package/dist/model/embed.js +16 -0
- package/dist/model/embed.js.map +1 -0
- package/dist/model/geopoint.d.ts +14 -0
- package/dist/model/geopoint.d.ts.map +1 -0
- package/dist/model/geopoint.js +12 -0
- package/dist/model/geopoint.js.map +1 -0
- package/dist/model/group.d.ts +568 -0
- package/dist/model/group.d.ts.map +1 -0
- package/dist/model/group.js +23 -0
- package/dist/model/group.js.map +1 -0
- package/dist/model/image.d.ts +24 -0
- package/dist/model/image.d.ts.map +1 -0
- package/dist/model/image.js +41 -0
- package/dist/model/image.js.map +1 -0
- package/dist/model/integrationField.d.ts +16 -0
- package/dist/model/integrationField.d.ts.map +1 -0
- package/dist/model/integrationField.js +16 -0
- package/dist/model/integrationField.js.map +1 -0
- package/dist/model/link.d.ts +48 -0
- package/dist/model/link.d.ts.map +1 -0
- package/dist/model/link.js +94 -0
- package/dist/model/link.js.map +1 -0
- package/dist/model/nestable.d.ts +184 -0
- package/dist/model/nestable.d.ts.map +1 -0
- package/dist/model/nestable.js +40 -0
- package/dist/model/nestable.js.map +1 -0
- package/dist/model/number.d.ts +18 -0
- package/dist/model/number.d.ts.map +1 -0
- package/dist/model/number.js +19 -0
- package/dist/model/number.js.map +1 -0
- package/dist/model/range.d.ts +18 -0
- package/dist/model/range.d.ts.map +1 -0
- package/dist/model/range.js +19 -0
- package/dist/model/range.js.map +1 -0
- package/dist/model/richText.d.ts +28 -0
- package/dist/model/richText.d.ts.map +1 -0
- package/dist/model/richText.js +72 -0
- package/dist/model/richText.js.map +1 -0
- package/dist/model/section.d.ts +3337 -0
- package/dist/model/section.d.ts.map +1 -0
- package/dist/model/section.js +10 -0
- package/dist/model/section.js.map +1 -0
- package/dist/model/select.d.ts +17 -0
- package/dist/model/select.d.ts.map +1 -0
- package/dist/model/select.js +22 -0
- package/dist/model/select.js.map +1 -0
- package/dist/model/separator.d.ts +13 -0
- package/dist/model/separator.d.ts.map +1 -0
- package/dist/model/separator.js +11 -0
- package/dist/model/separator.js.map +1 -0
- package/dist/model/slice.d.ts +3681 -0
- package/dist/model/slice.d.ts.map +1 -0
- package/dist/model/slice.js +54 -0
- package/dist/model/slice.js.map +1 -0
- package/dist/model/slices.d.ts +2225 -0
- package/dist/model/slices.d.ts.map +1 -0
- package/dist/model/slices.js +29 -0
- package/dist/model/slices.js.map +1 -0
- package/dist/model/table.d.ts +13 -0
- package/dist/model/table.d.ts.map +1 -0
- package/dist/model/table.js +17 -0
- package/dist/model/table.js.map +1 -0
- package/dist/model/text.d.ts +16 -0
- package/dist/model/text.d.ts.map +1 -0
- package/dist/model/text.js +16 -0
- package/dist/model/text.js.map +1 -0
- package/dist/model/timestamp.d.ts +16 -0
- package/dist/model/timestamp.d.ts.map +1 -0
- package/dist/model/timestamp.js +16 -0
- package/dist/model/timestamp.js.map +1 -0
- package/dist/model/uid.d.ts +16 -0
- package/dist/model/uid.d.ts.map +1 -0
- package/dist/model/uid.js +16 -0
- package/dist/model/uid.js.map +1 -0
- package/dist/model/widget.d.ts +3360 -0
- package/dist/model/widget.d.ts.map +1 -0
- package/dist/model/widget.js +44 -0
- package/dist/model/widget.js.map +1 -0
- package/dist/zod4.d.ts +33521 -0
- package/dist/zod4.d.ts.map +1 -0
- package/dist/zod4.js +127 -0
- package/dist/zod4.js.map +1 -0
- package/package.json +54 -58
- package/src/common/asset.ts +29 -0
- package/src/common/embed.ts +27 -0
- package/src/common/hexaColorCode.ts +11 -0
- package/src/common/nonEmptyString.ts +9 -0
- package/src/common/widgetKey.ts +11 -0
- package/src/content/boolean.ts +23 -0
- package/src/content/codec/boolean.ts +38 -0
- package/src/content/codec/document.ts +60 -0
- package/src/content/codec/embed.ts +55 -0
- package/src/content/codec/empty.ts +49 -0
- package/src/content/codec/field.ts +96 -0
- package/src/content/codec/geopoint.ts +40 -0
- package/src/content/codec/group.ts +163 -0
- package/src/content/codec/image.ts +50 -0
- package/src/content/codec/integrationField.ts +38 -0
- package/src/content/{LegacyContentCtx.ts → codec/legacyContentCtx.ts} +25 -15
- package/src/content/codec/link.ts +103 -0
- package/src/content/codec/nestable.ts +146 -0
- package/src/content/codec/repeatable.ts +68 -0
- package/src/content/codec/richText.ts +113 -0
- package/src/content/codec/separator.ts +33 -0
- package/src/content/codec/slice.ts +274 -0
- package/src/content/codec/slices.ts +130 -0
- package/src/content/codec/table.ts +65 -0
- package/src/content/codec/uid.ts +36 -0
- package/src/content/codec/widget.ts +58 -0
- package/src/content/document.ts +8 -0
- package/src/content/embed.ts +12 -0
- package/src/content/empty.ts +10 -0
- package/src/content/field.ts +87 -0
- package/src/content/geopoint.ts +11 -0
- package/src/content/group.ts +96 -0
- package/src/content/image.ts +103 -0
- package/src/content/integrationField.ts +10 -0
- package/src/content/legacy/boolean.ts +5 -0
- package/src/content/legacy/document.ts +25 -0
- package/src/content/legacy/embed.ts +23 -0
- package/src/content/legacy/empty.ts +10 -0
- package/src/content/legacy/field.ts +8 -0
- package/src/content/legacy/geopoint.ts +10 -0
- package/src/content/legacy/group.ts +15 -0
- package/src/content/legacy/image.ts +43 -0
- package/src/content/legacy/integrationField.ts +5 -0
- package/src/content/legacy/link.ts +171 -0
- package/src/content/legacy/nestable.ts +31 -0
- package/src/content/legacy/repeatable.ts +20 -0
- package/src/content/legacy/richText.ts +165 -0
- package/src/content/legacy/separator.ts +6 -0
- package/src/content/legacy/slice.ts +37 -0
- package/src/content/legacy/slices.ts +17 -0
- package/src/content/legacy/table.ts +39 -0
- package/src/content/legacy/uid.ts +6 -0
- package/src/content/legacy/widget.ts +15 -0
- package/src/content/link.ts +131 -0
- package/src/content/nestable.ts +64 -0
- package/src/content/repeatable.ts +13 -0
- package/src/content/richText.ts +32 -0
- package/src/content/separator.ts +9 -0
- package/src/content/slice.ts +41 -0
- package/src/content/slices.ts +23 -0
- package/src/content/table.ts +14 -0
- package/src/content/uid.ts +10 -0
- package/src/content/utils.ts +37 -105
- package/src/content/widget.ts +17 -0
- package/src/content/{fields/withDefaultValues.ts → withDefaultValues.ts} +34 -39
- package/src/index.ts +78 -0
- package/src/io-ts.ts +313 -0
- package/src/model/boolean.ts +15 -0
- package/src/model/color.ts +14 -0
- package/src/model/customType.ts +26 -0
- package/src/model/date.ts +15 -0
- package/src/model/diff/index.ts +4 -0
- package/src/{customtypes/diff/SharedSlice.ts → model/diff/sharedSlice.ts} +16 -18
- package/src/model/diff/utils.ts +45 -0
- package/src/model/diff/variation.ts +152 -0
- package/src/model/diff/widgets.ts +15 -0
- package/src/model/embed.ts +15 -0
- package/src/model/geopoint.ts +13 -0
- package/src/model/group.ts +36 -0
- package/src/model/image.ts +54 -0
- package/src/model/integrationField.ts +15 -0
- package/src/model/link.ts +147 -0
- package/src/model/nestable.ts +39 -0
- package/src/model/number.ts +26 -0
- package/src/model/range.ts +26 -0
- package/src/model/richText.ts +106 -0
- package/src/model/section.ts +12 -0
- package/src/model/select.ts +30 -0
- package/src/model/separator.ts +12 -0
- package/src/model/slice.ts +94 -0
- package/src/model/slices.ts +54 -0
- package/src/model/table.ts +20 -0
- package/src/model/text.ts +15 -0
- package/src/model/timestamp.ts +15 -0
- package/src/model/uid.ts +15 -0
- package/src/model/widget.ts +52 -0
- package/src/zod4.ts +153 -0
- package/lib/common/Asset.d.ts +0 -16
- package/lib/common/Asset.js +0 -11
- package/lib/common/Embed.d.ts +0 -15
- package/lib/common/Embed.js +0 -10
- package/lib/common/HexaColorCode.d.ts +0 -4
- package/lib/common/HexaColorCode.js +0 -7
- package/lib/common/UUID.d.ts +0 -6
- package/lib/common/UUID.js +0 -8
- package/lib/common/WidgetKey.d.ts +0 -3
- package/lib/common/WidgetKey.js +0 -8
- package/lib/common/index.d.ts +0 -3
- package/lib/common/index.js +0 -6
- package/lib/content/Document.d.ts +0 -11813
- package/lib/content/Document.js +0 -364
- package/lib/content/LegacyContentCtx.d.ts +0 -64
- package/lib/content/LegacyContentCtx.js +0 -130
- package/lib/content/fields/EmptyContent.d.ts +0 -16
- package/lib/content/fields/EmptyContent.js +0 -30
- package/lib/content/fields/GroupContent.d.ts +0 -53
- package/lib/content/fields/GroupContent.js +0 -307
- package/lib/content/fields/UIDContent.d.ts +0 -16
- package/lib/content/fields/UIDContent.js +0 -25
- package/lib/content/fields/WidgetContent.d.ts +0 -11749
- package/lib/content/fields/WidgetContent.js +0 -57
- package/lib/content/fields/index.d.ts +0 -6
- package/lib/content/fields/index.js +0 -9
- package/lib/content/fields/nestable/BooleanContent.d.ts +0 -18
- package/lib/content/fields/nestable/BooleanContent.js +0 -35
- package/lib/content/fields/nestable/EmbedContent.d.ts +0 -78
- package/lib/content/fields/nestable/EmbedContent.js +0 -56
- package/lib/content/fields/nestable/FieldContent/ColorContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/ColorContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/DateContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/DateContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/NumberContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/NumberContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/RangeContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/RangeContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/SelectContent.d.ts +0 -20
- package/lib/content/fields/nestable/FieldContent/SelectContent.js +0 -46
- package/lib/content/fields/nestable/FieldContent/TextContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/TextContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/TimestampContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/TimestampContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/common.d.ts +0 -1
- package/lib/content/fields/nestable/FieldContent/common.js +0 -4
- package/lib/content/fields/nestable/FieldContent/index.d.ts +0 -49
- package/lib/content/fields/nestable/FieldContent/index.js +0 -38
- package/lib/content/fields/nestable/GeoPointContent.d.ts +0 -33
- package/lib/content/fields/nestable/GeoPointContent.js +0 -31
- package/lib/content/fields/nestable/ImageContent.d.ts +0 -252
- package/lib/content/fields/nestable/ImageContent.js +0 -122
- package/lib/content/fields/nestable/IntegrationFieldContent.d.ts +0 -16
- package/lib/content/fields/nestable/IntegrationFieldContent.js +0 -28
- package/lib/content/fields/nestable/LinkContent.d.ts +0 -919
- package/lib/content/fields/nestable/LinkContent.js +0 -399
- package/lib/content/fields/nestable/NestableContent.d.ts +0 -1953
- package/lib/content/fields/nestable/NestableContent.js +0 -167
- package/lib/content/fields/nestable/RepeatableContent.d.ts +0 -182
- package/lib/content/fields/nestable/RepeatableContent.js +0 -146
- package/lib/content/fields/nestable/RichTextContent/Blocks.d.ts +0 -1261
- package/lib/content/fields/nestable/RichTextContent/Blocks.js +0 -170
- package/lib/content/fields/nestable/RichTextContent/index.d.ts +0 -1004
- package/lib/content/fields/nestable/RichTextContent/index.js +0 -28
- package/lib/content/fields/nestable/SeparatorContent.d.ts +0 -13
- package/lib/content/fields/nestable/SeparatorContent.js +0 -22
- package/lib/content/fields/nestable/TableContent.d.ts +0 -776
- package/lib/content/fields/nestable/TableContent.js +0 -167
- package/lib/content/fields/nestable/index.d.ts +0 -12
- package/lib/content/fields/nestable/index.js +0 -15
- package/lib/content/fields/slices/Slice/CompositeSliceContent.d.ts +0 -3934
- package/lib/content/fields/slices/Slice/CompositeSliceContent.js +0 -195
- package/lib/content/fields/slices/Slice/RepeatableContent.d.ts +0 -774
- package/lib/content/fields/slices/Slice/RepeatableContent.js +0 -21
- package/lib/content/fields/slices/Slice/SharedSliceContent.d.ts +0 -3937
- package/lib/content/fields/slices/Slice/SharedSliceContent.js +0 -215
- package/lib/content/fields/slices/Slice/SimpleSliceContent.d.ts +0 -1962
- package/lib/content/fields/slices/Slice/SimpleSliceContent.js +0 -130
- package/lib/content/fields/slices/Slice/SlicePrimaryContent.d.ts +0 -1952
- package/lib/content/fields/slices/Slice/SlicePrimaryContent.js +0 -30
- package/lib/content/fields/slices/Slice/index.d.ts +0 -6810
- package/lib/content/fields/slices/Slice/index.js +0 -45
- package/lib/content/fields/slices/SliceItem.d.ts +0 -6846
- package/lib/content/fields/slices/SliceItem.js +0 -116
- package/lib/content/fields/slices/SlicesContent.d.ts +0 -9827
- package/lib/content/fields/slices/SlicesContent.js +0 -465
- package/lib/content/fields/slices/index.d.ts +0 -3
- package/lib/content/fields/slices/index.js +0 -6
- package/lib/content/fields/withDefaultValues.d.ts +0 -9
- package/lib/content/fields/withDefaultValues.js +0 -79
- package/lib/content/helpers.d.ts +0 -9
- package/lib/content/helpers.js +0 -22
- package/lib/content/index.d.ts +0 -4
- package/lib/content/index.js +0 -7
- package/lib/content/utils.d.ts +0 -50
- package/lib/content/utils.js +0 -35
- package/lib/customtypes/CustomType.d.ts +0 -3680
- package/lib/customtypes/CustomType.js +0 -184
- package/lib/customtypes/Section.d.ts +0 -3635
- package/lib/customtypes/Section.js +0 -66
- package/lib/customtypes/diff/Changes.d.ts +0 -17
- package/lib/customtypes/diff/Changes.js +0 -9
- package/lib/customtypes/diff/SharedSlice.d.ts +0 -1624
- package/lib/customtypes/diff/SharedSlice.js +0 -55
- package/lib/customtypes/diff/Variation.d.ts +0 -1605
- package/lib/customtypes/diff/Variation.js +0 -113
- package/lib/customtypes/diff/Widgets.d.ts +0 -11
- package/lib/customtypes/diff/Widgets.js +0 -2
- package/lib/customtypes/diff/index.d.ts +0 -4
- package/lib/customtypes/diff/index.js +0 -7
- package/lib/customtypes/index.d.ts +0 -4
- package/lib/customtypes/index.js +0 -7
- package/lib/customtypes/widgets/Group.d.ts +0 -1352
- package/lib/customtypes/widgets/Group.js +0 -92
- package/lib/customtypes/widgets/UID.d.ts +0 -19
- package/lib/customtypes/widgets/UID.js +0 -21
- package/lib/customtypes/widgets/Widget.d.ts +0 -4457
- package/lib/customtypes/widgets/Widget.js +0 -49
- package/lib/customtypes/widgets/index.d.ts +0 -6
- package/lib/customtypes/widgets/index.js +0 -9
- package/lib/customtypes/widgets/nestable/BooleanField.d.ts +0 -20
- package/lib/customtypes/widgets/nestable/BooleanField.js +0 -21
- package/lib/customtypes/widgets/nestable/Color.d.ts +0 -17
- package/lib/customtypes/widgets/nestable/Color.js +0 -20
- package/lib/customtypes/widgets/nestable/Date.d.ts +0 -19
- package/lib/customtypes/widgets/nestable/Date.js +0 -21
- package/lib/customtypes/widgets/nestable/Embed.d.ts +0 -19
- package/lib/customtypes/widgets/nestable/Embed.js +0 -21
- package/lib/customtypes/widgets/nestable/GeoPoint.d.ts +0 -15
- package/lib/customtypes/widgets/nestable/GeoPoint.js +0 -19
- package/lib/customtypes/widgets/nestable/Image.d.ts +0 -44
- package/lib/customtypes/widgets/nestable/Image.js +0 -29
- package/lib/customtypes/widgets/nestable/IntegrationField.d.ts +0 -19
- package/lib/customtypes/widgets/nestable/IntegrationField.js +0 -21
- package/lib/customtypes/widgets/nestable/Link.d.ts +0 -196
- package/lib/customtypes/widgets/nestable/Link.js +0 -167
- package/lib/customtypes/widgets/nestable/NestableWidget.d.ts +0 -217
- package/lib/customtypes/widgets/nestable/NestableWidget.js +0 -39
- package/lib/customtypes/widgets/nestable/Number.d.ts +0 -23
- package/lib/customtypes/widgets/nestable/Number.js +0 -24
- package/lib/customtypes/widgets/nestable/Range.d.ts +0 -23
- package/lib/customtypes/widgets/nestable/Range.js +0 -24
- package/lib/customtypes/widgets/nestable/RichText.d.ts +0 -73
- package/lib/customtypes/widgets/nestable/RichText.js +0 -131
- package/lib/customtypes/widgets/nestable/Select.d.ts +0 -21
- package/lib/customtypes/widgets/nestable/Select.js +0 -22
- package/lib/customtypes/widgets/nestable/Separator.d.ts +0 -14
- package/lib/customtypes/widgets/nestable/Separator.js +0 -18
- package/lib/customtypes/widgets/nestable/Table.d.ts +0 -21
- package/lib/customtypes/widgets/nestable/Table.js +0 -30
- package/lib/customtypes/widgets/nestable/Text.d.ts +0 -19
- package/lib/customtypes/widgets/nestable/Text.js +0 -21
- package/lib/customtypes/widgets/nestable/Timestamp.d.ts +0 -19
- package/lib/customtypes/widgets/nestable/Timestamp.js +0 -21
- package/lib/customtypes/widgets/nestable/index.d.ts +0 -17
- package/lib/customtypes/widgets/nestable/index.js +0 -20
- package/lib/customtypes/widgets/shared/ImageConstraint.d.ts +0 -7
- package/lib/customtypes/widgets/shared/ImageConstraint.js +0 -31
- package/lib/customtypes/widgets/shared/index.d.ts +0 -1
- package/lib/customtypes/widgets/shared/index.js +0 -8
- package/lib/customtypes/widgets/slices/CompositeSlice.d.ts +0 -455
- package/lib/customtypes/widgets/slices/CompositeSlice.js +0 -63
- package/lib/customtypes/widgets/slices/LegacySlice.d.ts +0 -442
- package/lib/customtypes/widgets/slices/LegacySlice.js +0 -12
- package/lib/customtypes/widgets/slices/SharedSlice.d.ts +0 -1807
- package/lib/customtypes/widgets/slices/SharedSlice.js +0 -118
- package/lib/customtypes/widgets/slices/SharedSliceRef.d.ts +0 -5
- package/lib/customtypes/widgets/slices/SharedSliceRef.js +0 -9
- package/lib/customtypes/widgets/slices/Slice.d.ts +0 -6
- package/lib/customtypes/widgets/slices/Slice.js +0 -2
- package/lib/customtypes/widgets/slices/SlicePrimaryWidget.d.ts +0 -1259
- package/lib/customtypes/widgets/slices/SlicePrimaryWidget.js +0 -10
- package/lib/customtypes/widgets/slices/Slices.d.ts +0 -5917
- package/lib/customtypes/widgets/slices/Slices.js +0 -146
- package/lib/customtypes/widgets/slices/SlicesTypes.d.ts +0 -6
- package/lib/customtypes/widgets/slices/SlicesTypes.js +0 -11
- package/lib/customtypes/widgets/slices/index.d.ts +0 -8
- package/lib/customtypes/widgets/slices/index.js +0 -11
- package/lib/utils/Arrays.d.ts +0 -1
- package/lib/utils/Arrays.js +0 -13
- package/lib/utils/DocumentId.d.ts +0 -2
- package/lib/utils/DocumentId.js +0 -7
- package/lib/utils/Fields.d.ts +0 -6
- package/lib/utils/Fields.js +0 -2
- package/lib/utils/Objects.d.ts +0 -8
- package/lib/utils/Objects.js +0 -42
- package/lib/utils/index.d.ts +0 -4
- package/lib/utils/index.js +0 -8
- package/lib/validators/BasicTypes.d.ts +0 -10
- package/lib/validators/BasicTypes.js +0 -25
- package/lib/validators/DateFromString.d.ts +0 -3
- package/lib/validators/DateFromString.js +0 -11
- package/lib/validators/DateFromStringOrNumber.d.ts +0 -3
- package/lib/validators/DateFromStringOrNumber.js +0 -10
- package/lib/validators/DateFromTsMs.d.ts +0 -3
- package/lib/validators/DateFromTsMs.js +0 -10
- package/lib/validators/DefaultOrElse.d.ts +0 -5
- package/lib/validators/DefaultOrElse.js +0 -21
- package/lib/validators/IntFromNumber.d.ts +0 -5
- package/lib/validators/IntFromNumber.js +0 -14
- package/lib/validators/IntFromPixels.d.ts +0 -8
- package/lib/validators/IntFromPixels.js +0 -24
- package/lib/validators/NonEmptyString.d.ts +0 -3
- package/lib/validators/NonEmptyString.js +0 -6
- package/lib/validators/NonEmptyStringOrNull.d.ts +0 -3
- package/lib/validators/NonEmptyStringOrNull.js +0 -15
- package/lib/validators/NumberOrNull.d.ts +0 -3
- package/lib/validators/NumberOrNull.js +0 -6
- package/lib/validators/NumberRange.d.ts +0 -32
- package/lib/validators/NumberRange.js +0 -40
- package/lib/validators/StringFromBoolean.d.ts +0 -5
- package/lib/validators/StringFromBoolean.js +0 -10
- package/lib/validators/StringFromNumber.d.ts +0 -5
- package/lib/validators/StringFromNumber.js +0 -10
- package/lib/validators/StringOrNull.d.ts +0 -3
- package/lib/validators/StringOrNull.js +0 -6
- package/lib/validators/TrimmedString.d.ts +0 -5
- package/lib/validators/TrimmedString.js +0 -23
- package/lib/validators/function.d.ts +0 -34
- package/lib/validators/function.js +0 -100
- package/lib/validators/index.d.ts +0 -15
- package/lib/validators/index.js +0 -31
- package/src/common/Asset.ts +0 -25
- package/src/common/Embed.ts +0 -22
- package/src/common/HexaColorCode.ts +0 -11
- package/src/common/UUID.ts +0 -19
- package/src/common/WidgetKey.ts +0 -13
- package/src/common/index.ts +0 -3
- package/src/content/Document.ts +0 -539
- package/src/content/fields/EmptyContent.ts +0 -45
- package/src/content/fields/GroupContent.ts +0 -466
- package/src/content/fields/UIDContent.ts +0 -42
- package/src/content/fields/WidgetContent.ts +0 -76
- package/src/content/fields/index.ts +0 -6
- package/src/content/fields/nestable/BooleanContent.ts +0 -52
- package/src/content/fields/nestable/EmbedContent.ts +0 -74
- package/src/content/fields/nestable/FieldContent/ColorContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/DateContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/NumberContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/RangeContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/SelectContent.ts +0 -60
- package/src/content/fields/nestable/FieldContent/TextContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/TimestampContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/common.ts +0 -1
- package/src/content/fields/nestable/FieldContent/index.ts +0 -40
- package/src/content/fields/nestable/GeoPointContent.ts +0 -48
- package/src/content/fields/nestable/ImageContent.ts +0 -196
- package/src/content/fields/nestable/IntegrationFieldContent.ts +0 -51
- package/src/content/fields/nestable/LinkContent.ts +0 -651
- package/src/content/fields/nestable/NestableContent.ts +0 -241
- package/src/content/fields/nestable/RepeatableContent.ts +0 -224
- package/src/content/fields/nestable/RichTextContent/Blocks.ts +0 -238
- package/src/content/fields/nestable/RichTextContent/index.ts +0 -42
- package/src/content/fields/nestable/SeparatorContent.ts +0 -34
- package/src/content/fields/nestable/TableContent.ts +0 -234
- package/src/content/fields/nestable/index.ts +0 -12
- package/src/content/fields/slices/Slice/CompositeSliceContent.ts +0 -293
- package/src/content/fields/slices/Slice/RepeatableContent.ts +0 -29
- package/src/content/fields/slices/Slice/SharedSliceContent.ts +0 -305
- package/src/content/fields/slices/Slice/SimpleSliceContent.ts +0 -180
- package/src/content/fields/slices/Slice/SlicePrimaryContent.ts +0 -40
- package/src/content/fields/slices/Slice/index.ts +0 -52
- package/src/content/fields/slices/SliceItem.ts +0 -184
- package/src/content/fields/slices/SlicesContent.ts +0 -677
- package/src/content/fields/slices/index.ts +0 -3
- package/src/content/helpers.ts +0 -25
- package/src/content/index.ts +0 -4
- package/src/customtypes/CustomType.ts +0 -280
- package/src/customtypes/Section.ts +0 -98
- package/src/customtypes/diff/Variation.ts +0 -167
- package/src/customtypes/diff/Widgets.ts +0 -17
- package/src/customtypes/diff/index.ts +0 -4
- package/src/customtypes/index.ts +0 -4
- package/src/customtypes/widgets/Group.ts +0 -120
- package/src/customtypes/widgets/UID.ts +0 -27
- package/src/customtypes/widgets/Widget.ts +0 -83
- package/src/customtypes/widgets/index.ts +0 -6
- package/src/customtypes/widgets/nestable/BooleanField.ts +0 -29
- package/src/customtypes/widgets/nestable/Color.ts +0 -25
- package/src/customtypes/widgets/nestable/Date.ts +0 -27
- package/src/customtypes/widgets/nestable/Embed.ts +0 -27
- package/src/customtypes/widgets/nestable/GeoPoint.ts +0 -25
- package/src/customtypes/widgets/nestable/Image.ts +0 -39
- package/src/customtypes/widgets/nestable/IntegrationField.ts +0 -26
- package/src/customtypes/widgets/nestable/Link.ts +0 -313
- package/src/customtypes/widgets/nestable/NestableWidget.ts +0 -40
- package/src/customtypes/widgets/nestable/Number.ts +0 -30
- package/src/customtypes/widgets/nestable/Range.ts +0 -30
- package/src/customtypes/widgets/nestable/RichText.ts +0 -215
- package/src/customtypes/widgets/nestable/Select.ts +0 -34
- package/src/customtypes/widgets/nestable/Separator.ts +0 -24
- package/src/customtypes/widgets/nestable/Table.ts +0 -38
- package/src/customtypes/widgets/nestable/Text.ts +0 -27
- package/src/customtypes/widgets/nestable/Timestamp.ts +0 -27
- package/src/customtypes/widgets/nestable/index.ts +0 -17
- package/src/customtypes/widgets/shared/ImageConstraint.ts +0 -41
- package/src/customtypes/widgets/shared/index.ts +0 -1
- package/src/customtypes/widgets/slices/CompositeSlice.ts +0 -79
- package/src/customtypes/widgets/slices/LegacySlice.ts +0 -15
- package/src/customtypes/widgets/slices/SharedSlice.ts +0 -152
- package/src/customtypes/widgets/slices/SharedSliceRef.ts +0 -10
- package/src/customtypes/widgets/slices/Slice.ts +0 -7
- package/src/customtypes/widgets/slices/SlicePrimaryWidget.ts +0 -12
- package/src/customtypes/widgets/slices/Slices.ts +0 -184
- package/src/customtypes/widgets/slices/SlicesTypes.ts +0 -11
- package/src/customtypes/widgets/slices/index.ts +0 -8
- package/src/utils/Arrays.ts +0 -12
- package/src/utils/DocumentId.ts +0 -8
- package/src/utils/Fields.ts +0 -4
- package/src/utils/Objects.ts +0 -53
- package/src/utils/index.ts +0 -4
- package/src/validators/BasicTypes.ts +0 -55
- package/src/validators/DateFromString.ts +0 -19
- package/src/validators/DateFromStringOrNumber.ts +0 -17
- package/src/validators/DateFromTsMs.ts +0 -17
- package/src/validators/DefaultOrElse.ts +0 -24
- package/src/validators/IntFromNumber.ts +0 -22
- package/src/validators/IntFromPixels.ts +0 -32
- package/src/validators/NonEmptyString.ts +0 -8
- package/src/validators/NonEmptyStringOrNull.ts +0 -22
- package/src/validators/NumberOrNull.ts +0 -5
- package/src/validators/NumberRange.ts +0 -51
- package/src/validators/StringFromBoolean.ts +0 -19
- package/src/validators/StringFromNumber.ts +0 -19
- package/src/validators/StringOrNull.ts +0 -5
- package/src/validators/TrimmedString.ts +0 -33
- package/src/validators/function.ts +0 -115
- package/src/validators/index.ts +0 -15
- /package/src/{customtypes/diff/Changes.ts → model/diff/changes.ts} +0 -0
package/src/index.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Common
|
|
2
|
+
export type { Asset } from "./common/asset"
|
|
3
|
+
export type { Embed } from "./common/embed"
|
|
4
|
+
export type { HexaColorCode } from "./common/hexaColorCode"
|
|
5
|
+
export type { NonEmptyString } from "./common/nonEmptyString"
|
|
6
|
+
export type { WidgetKey } from "./common/widgetKey"
|
|
7
|
+
|
|
8
|
+
// Content
|
|
9
|
+
export type { BooleanContent } from "./content/boolean"
|
|
10
|
+
export type { DocumentContent } from "./content/document"
|
|
11
|
+
export type { EmbedContent } from "./content/embed"
|
|
12
|
+
export type { EmptyContent } from "./content/empty"
|
|
13
|
+
export type {
|
|
14
|
+
ColorContent,
|
|
15
|
+
DateContent,
|
|
16
|
+
NumberContent,
|
|
17
|
+
RangeContent,
|
|
18
|
+
SelectContent,
|
|
19
|
+
TextContent,
|
|
20
|
+
TimestampContent,
|
|
21
|
+
FieldContent,
|
|
22
|
+
} from "./content/field"
|
|
23
|
+
export type { GeoPointContent } from "./content/geopoint"
|
|
24
|
+
export type { GroupContent, GroupItemContent } from "./content/group"
|
|
25
|
+
export type { ImageContent } from "./content/image"
|
|
26
|
+
export type { IntegrationFieldContent } from "./content/integrationField"
|
|
27
|
+
export type { LinkContent } from "./content/link"
|
|
28
|
+
export type { NestableContent } from "./content/nestable"
|
|
29
|
+
export type { RepeatableContent } from "./content/repeatable"
|
|
30
|
+
export type { RichTextContent } from "./content/richText"
|
|
31
|
+
export type { SeparatorContent } from "./content/separator"
|
|
32
|
+
export type {
|
|
33
|
+
SimpleSliceContent,
|
|
34
|
+
CompositeSliceContent,
|
|
35
|
+
SharedSliceContent,
|
|
36
|
+
SliceContent,
|
|
37
|
+
} from "./content/slice"
|
|
38
|
+
export type { SliceItemContent, SlicesContent } from "./content/slices"
|
|
39
|
+
export type { TableContent } from "./content/table"
|
|
40
|
+
export type { UIDContent } from "./content/uid"
|
|
41
|
+
export type { WidgetContent } from "./content/widget"
|
|
42
|
+
|
|
43
|
+
// Model
|
|
44
|
+
export type { BooleanModel } from "./model/boolean"
|
|
45
|
+
export type { ColorModel } from "./model/color"
|
|
46
|
+
export type { StaticCustomTypeModel, CustomTypeModel } from "./model/customType"
|
|
47
|
+
export type { DateModel } from "./model/date"
|
|
48
|
+
export type { EmbedModel } from "./model/embed"
|
|
49
|
+
export type { GeoPointModel } from "./model/geopoint"
|
|
50
|
+
export type { GroupModel, NestedGroupModel } from "./model/group"
|
|
51
|
+
export type { ImageModel } from "./model/image"
|
|
52
|
+
export type { IntegrationFieldModel } from "./model/integrationField"
|
|
53
|
+
export type { LinkModel } from "./model/link"
|
|
54
|
+
export type { NestableModel } from "./model/nestable"
|
|
55
|
+
export type { NumberModel } from "./model/number"
|
|
56
|
+
export type { RangeModel } from "./model/range"
|
|
57
|
+
export type { RichTextModel } from "./model/richText"
|
|
58
|
+
export type { StaticSectionModel, DynamicSectionModel } from "./model/section"
|
|
59
|
+
export type { SelectModel } from "./model/select"
|
|
60
|
+
export type { SeparatorModel } from "./model/separator"
|
|
61
|
+
export type {
|
|
62
|
+
LegacySliceModel,
|
|
63
|
+
CompositeSliceModel,
|
|
64
|
+
SharedSliceModel,
|
|
65
|
+
SharedSliceRefModel,
|
|
66
|
+
StaticSliceModel,
|
|
67
|
+
DynamicSliceModel,
|
|
68
|
+
SlicesTypesModel,
|
|
69
|
+
} from "./model/slice"
|
|
70
|
+
export type { DynamicSlicesModel, StaticSlicesModel } from "./model/slices"
|
|
71
|
+
export type { TableModel } from "./model/table"
|
|
72
|
+
export type { TextModel } from "./model/text"
|
|
73
|
+
export type { TimestampModel } from "./model/timestamp"
|
|
74
|
+
export type { UIDModel } from "./model/uid"
|
|
75
|
+
export type { StaticWidgetModel, DynamicWidgetModel, FieldType } from "./model/widget"
|
|
76
|
+
|
|
77
|
+
// Legacy
|
|
78
|
+
export { LegacyContentCtx, getFieldCtx, defaultCtx } from "./content/codec/legacyContentCtx"
|
package/src/io-ts.ts
ADDED
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
import * as t from "io-ts"
|
|
2
|
+
import type { ZodMiniType } from "zod/mini"
|
|
3
|
+
|
|
4
|
+
// Common
|
|
5
|
+
import { AssetSchema } from "./common/asset"
|
|
6
|
+
import { EmbedSchema } from "./common/embed"
|
|
7
|
+
import { HexaColorCodeSchema } from "./common/hexaColorCode"
|
|
8
|
+
import { NonEmptyStringSchema } from "./common/nonEmptyString"
|
|
9
|
+
import { WidgetKeySchema } from "./common/widgetKey"
|
|
10
|
+
// Content
|
|
11
|
+
import { BooleanContentSchema } from "./content/boolean"
|
|
12
|
+
import { BooleanLegacyCodec } from "./content/codec/boolean"
|
|
13
|
+
import { DocumentLegacyCodec } from "./content/codec/document"
|
|
14
|
+
import { EmbedLegacyCodec } from "./content/codec/embed"
|
|
15
|
+
import { EmptyLegacyCodec } from "./content/codec/empty"
|
|
16
|
+
import {
|
|
17
|
+
ColorLegacyCodec,
|
|
18
|
+
DateLegacyCodec,
|
|
19
|
+
NumberLegacyCodec,
|
|
20
|
+
RangeLegacyCodec,
|
|
21
|
+
SelectLegacyCodec,
|
|
22
|
+
TextLegacyCodec,
|
|
23
|
+
TimestampLegacyCodec,
|
|
24
|
+
} from "./content/codec/field"
|
|
25
|
+
import { GeoPointLegacyCodec } from "./content/codec/geopoint"
|
|
26
|
+
import { GroupItemLegacyCodec, GroupLegacyCodec } from "./content/codec/group"
|
|
27
|
+
import { ImageLegacyCodec } from "./content/codec/image"
|
|
28
|
+
import { IntegrationFieldLegacyCodec } from "./content/codec/integrationField"
|
|
29
|
+
import type { LegacyCodec } from "./content/codec/legacyContentCtx"
|
|
30
|
+
import { LinkLegacyCodec } from "./content/codec/link"
|
|
31
|
+
import { NestableLegacyCodec } from "./content/codec/nestable"
|
|
32
|
+
import { RepeatableLegacyCodec } from "./content/codec/repeatable"
|
|
33
|
+
import { RichTextLegacyCodec } from "./content/codec/richText"
|
|
34
|
+
import { SeparatorLegacyCodec } from "./content/codec/separator"
|
|
35
|
+
import {
|
|
36
|
+
CompositeSliceLegacyCodec,
|
|
37
|
+
SharedSliceLegacyCodec,
|
|
38
|
+
SimpleSliceLegacyCodec,
|
|
39
|
+
SliceLegacyCodec,
|
|
40
|
+
} from "./content/codec/slice"
|
|
41
|
+
import { SliceItemLegacyCodec, SlicesLegacyCodec } from "./content/codec/slices"
|
|
42
|
+
import { TableLegacyCodec } from "./content/codec/table"
|
|
43
|
+
import { UIDLegacyCodec } from "./content/codec/uid"
|
|
44
|
+
import { WidgetLegacyCodec } from "./content/codec/widget"
|
|
45
|
+
import { DocumentContentSchema } from "./content/document"
|
|
46
|
+
import { EmbedContentSchema } from "./content/embed"
|
|
47
|
+
import { EmptyContentSchema } from "./content/empty"
|
|
48
|
+
import {
|
|
49
|
+
ColorContentSchema,
|
|
50
|
+
DateContentSchema,
|
|
51
|
+
NumberContentSchema,
|
|
52
|
+
RangeContentSchema,
|
|
53
|
+
SelectContentSchema,
|
|
54
|
+
TextContentSchema,
|
|
55
|
+
TimestampContentSchema,
|
|
56
|
+
FieldContentSchema,
|
|
57
|
+
} from "./content/field"
|
|
58
|
+
import { GeoPointContentSchema } from "./content/geopoint"
|
|
59
|
+
import { GroupContentSchema, GroupItemContentSchema } from "./content/group"
|
|
60
|
+
import { ImageContentSchema } from "./content/image"
|
|
61
|
+
import { IntegrationFieldContentSchema } from "./content/integrationField"
|
|
62
|
+
import { LinkContentSchema } from "./content/link"
|
|
63
|
+
import { NestableContentSchema } from "./content/nestable"
|
|
64
|
+
import { RepeatableContentSchema } from "./content/repeatable"
|
|
65
|
+
import { RichTextContentSchema } from "./content/richText"
|
|
66
|
+
import { SeparatorContentSchema } from "./content/separator"
|
|
67
|
+
import {
|
|
68
|
+
SimpleSliceContentSchema,
|
|
69
|
+
CompositeSliceContentSchema,
|
|
70
|
+
SharedSliceContentSchema,
|
|
71
|
+
SliceContentSchema,
|
|
72
|
+
} from "./content/slice"
|
|
73
|
+
import { SliceItemContentSchema, SlicesContentSchema } from "./content/slices"
|
|
74
|
+
import { TableContentSchema } from "./content/table"
|
|
75
|
+
import { UIDContentSchema } from "./content/uid"
|
|
76
|
+
import { WidgetContentSchema } from "./content/widget"
|
|
77
|
+
// Model
|
|
78
|
+
import { BooleanModelSchema } from "./model/boolean"
|
|
79
|
+
import { ColorModelSchema } from "./model/color"
|
|
80
|
+
import { StaticCustomTypeModelSchema, CustomTypeModelSchema } from "./model/customType"
|
|
81
|
+
import { DateModelSchema } from "./model/date"
|
|
82
|
+
import { EmbedModelSchema } from "./model/embed"
|
|
83
|
+
import { GeoPointModelSchema } from "./model/geopoint"
|
|
84
|
+
import { GroupModelSchema, NestedGroupModelSchema } from "./model/group"
|
|
85
|
+
import { ImageModelSchema } from "./model/image"
|
|
86
|
+
import { IntegrationFieldModelSchema } from "./model/integrationField"
|
|
87
|
+
import { LinkModelSchema } from "./model/link"
|
|
88
|
+
import { NestableModelSchema } from "./model/nestable"
|
|
89
|
+
import { NumberModelSchema } from "./model/number"
|
|
90
|
+
import { RangeModelSchema } from "./model/range"
|
|
91
|
+
import { RichTextModelSchema } from "./model/richText"
|
|
92
|
+
import { StaticSectionModelSchema, DynamicSectionModelSchema } from "./model/section"
|
|
93
|
+
import { SelectModelSchema } from "./model/select"
|
|
94
|
+
import { SeparatorModelSchema } from "./model/separator"
|
|
95
|
+
import {
|
|
96
|
+
LegacySliceModelSchema,
|
|
97
|
+
CompositeSliceModelSchema,
|
|
98
|
+
SharedSliceModelSchema,
|
|
99
|
+
SharedSliceRefModelSchema,
|
|
100
|
+
StaticSliceModelSchema,
|
|
101
|
+
DynamicSliceModelSchema,
|
|
102
|
+
} from "./model/slice"
|
|
103
|
+
import { DynamicSlicesModelSchema, StaticSlicesModelSchema } from "./model/slices"
|
|
104
|
+
import { TableModelSchema } from "./model/table"
|
|
105
|
+
import { TextModelSchema } from "./model/text"
|
|
106
|
+
import { TimestampModelSchema } from "./model/timestamp"
|
|
107
|
+
import { UIDModelSchema } from "./model/uid"
|
|
108
|
+
import { StaticWidgetModelSchema, DynamicWidgetModelSchema, FieldTypeSchema } from "./model/widget"
|
|
109
|
+
|
|
110
|
+
// Common
|
|
111
|
+
export const Asset = toIOTS(AssetSchema)
|
|
112
|
+
export const Embed = toIOTS(EmbedSchema)
|
|
113
|
+
export const HexaColorCode = toIOTS(HexaColorCodeSchema)
|
|
114
|
+
export const NonEmptyString = toIOTS(NonEmptyStringSchema)
|
|
115
|
+
export const WidgetKey = toIOTS(WidgetKeySchema)
|
|
116
|
+
|
|
117
|
+
// Content
|
|
118
|
+
export const BooleanContent = toIOTS(BooleanContentSchema)
|
|
119
|
+
export const ColorContent = toIOTS(ColorContentSchema)
|
|
120
|
+
export const DateContent = toIOTS(DateContentSchema)
|
|
121
|
+
export const EmptyContent = toIOTS(EmptyContentSchema)
|
|
122
|
+
export const GeoPointContent = toIOTS(GeoPointContentSchema)
|
|
123
|
+
export const LinkContent = toIOTS(LinkContentSchema)
|
|
124
|
+
export const NumberContent = toIOTS(NumberContentSchema)
|
|
125
|
+
export const RangeContent = toIOTS(RangeContentSchema)
|
|
126
|
+
export const SelectContent = toIOTS(SelectContentSchema)
|
|
127
|
+
export const SeparatorContent = toIOTS(SeparatorContentSchema)
|
|
128
|
+
export const SharedSliceContent = toIOTS(SharedSliceContentSchema)
|
|
129
|
+
export const TextContent = toIOTS(TextContentSchema)
|
|
130
|
+
export const TimestampContent = toIOTS(TimestampContentSchema)
|
|
131
|
+
export const FieldContent = toIOTS(FieldContentSchema)
|
|
132
|
+
export const UIDContent = toIOTS(UIDContentSchema)
|
|
133
|
+
export const IntegrationFieldContent = toIOTS(IntegrationFieldContentSchema)
|
|
134
|
+
export const EmbedContent = toIOTS(EmbedContentSchema)
|
|
135
|
+
export const ImageContent = toIOTS(ImageContentSchema)
|
|
136
|
+
export const RichTextContent = toIOTS(RichTextContentSchema)
|
|
137
|
+
export const TableContent = toIOTS(TableContentSchema)
|
|
138
|
+
export const RepeatableContent = toIOTS(RepeatableContentSchema)
|
|
139
|
+
export const NestableContent = toIOTS(NestableContentSchema)
|
|
140
|
+
export const GroupContent = toIOTS(GroupContentSchema)
|
|
141
|
+
export const GroupItemContent = toIOTS(GroupItemContentSchema)
|
|
142
|
+
export const CompositeSliceContent = toIOTS(CompositeSliceContentSchema)
|
|
143
|
+
export const SimpleSliceContent = toIOTS(SimpleSliceContentSchema)
|
|
144
|
+
export const SliceContent = toIOTS(SliceContentSchema)
|
|
145
|
+
export const SliceItemContent = toIOTS(SliceItemContentSchema)
|
|
146
|
+
export const SlicesContent = toIOTS(SlicesContentSchema)
|
|
147
|
+
export const WidgetContent = toIOTS(WidgetContentSchema)
|
|
148
|
+
export const DocumentContent = toIOTS(DocumentContentSchema)
|
|
149
|
+
|
|
150
|
+
// Content legacy
|
|
151
|
+
export const BooleanLegacy = toIOTSCodec(BooleanLegacyCodec)
|
|
152
|
+
export const EmptyLegacy = toIOTSCodec(EmptyLegacyCodec)
|
|
153
|
+
export const TextLegacy = toIOTSCodec(TextLegacyCodec)
|
|
154
|
+
export const ColorLegacy = toIOTSCodec(ColorLegacyCodec)
|
|
155
|
+
export const DateLegacy = toIOTSCodec(DateLegacyCodec)
|
|
156
|
+
export const TimestampLegacy = toIOTSCodec(TimestampLegacyCodec)
|
|
157
|
+
export const NumberLegacy = toIOTSCodec(NumberLegacyCodec)
|
|
158
|
+
export const RangeLegacy = toIOTSCodec(RangeLegacyCodec)
|
|
159
|
+
export const SelectLegacy = toIOTSCodec(SelectLegacyCodec)
|
|
160
|
+
export const GeoPointLegacy = toIOTSCodec(GeoPointLegacyCodec)
|
|
161
|
+
export const EmbedLegacy = toIOTSCodec(EmbedLegacyCodec)
|
|
162
|
+
export const ImageLegacy = toIOTSCodec(ImageLegacyCodec)
|
|
163
|
+
export const LinkLegacy = toIOTSCodec(LinkLegacyCodec)
|
|
164
|
+
export const RepeatableLegacy = toIOTSCodec(RepeatableLegacyCodec)
|
|
165
|
+
export const RichTextLegacy = toIOTSCodec(RichTextLegacyCodec)
|
|
166
|
+
export const SeparatorLegacy = toIOTSCodec(SeparatorLegacyCodec)
|
|
167
|
+
export const IntegrationFieldLegacy = toIOTSCodec(IntegrationFieldLegacyCodec)
|
|
168
|
+
export const TableLegacy = toIOTSCodec(TableLegacyCodec)
|
|
169
|
+
export const NestableLegacy = toIOTSCodec(NestableLegacyCodec)
|
|
170
|
+
export const UIDLegacy = toIOTSCodec(UIDLegacyCodec)
|
|
171
|
+
export const GroupItemLegacy = toIOTSCodec(GroupItemLegacyCodec)
|
|
172
|
+
export const GroupLegacy = toIOTSCodec(GroupLegacyCodec)
|
|
173
|
+
export const SimpleSliceLegacy = toIOTSCodec(SimpleSliceLegacyCodec)
|
|
174
|
+
export const CompositeSliceLegacy = toIOTSCodec(CompositeSliceLegacyCodec)
|
|
175
|
+
export const SharedSliceLegacy = toIOTSCodec(SharedSliceLegacyCodec)
|
|
176
|
+
export const SliceLegacy = toIOTSCodec(SliceLegacyCodec)
|
|
177
|
+
export const SliceItemLegacy = toIOTSCodec(SliceItemLegacyCodec)
|
|
178
|
+
export const SlicesLegacy = toIOTSCodec(SlicesLegacyCodec)
|
|
179
|
+
export const WidgetLegacy = toIOTSCodec(WidgetLegacyCodec)
|
|
180
|
+
export const DocumentLegacy = toIOTSCodec(DocumentLegacyCodec)
|
|
181
|
+
|
|
182
|
+
// Model
|
|
183
|
+
export const BooleanModel = toIOTS(BooleanModelSchema)
|
|
184
|
+
export const ColorModel = toIOTS(ColorModelSchema)
|
|
185
|
+
export const DateModel = toIOTS(DateModelSchema)
|
|
186
|
+
export const EmbedModel = toIOTS(EmbedModelSchema)
|
|
187
|
+
export const GeoPointModel = toIOTS(GeoPointModelSchema)
|
|
188
|
+
export const ImageModel = toIOTS(ImageModelSchema)
|
|
189
|
+
export const IntegrationFieldModel = toIOTS(IntegrationFieldModelSchema)
|
|
190
|
+
export const LinkModel = toIOTS(LinkModelSchema)
|
|
191
|
+
export const NestableModel = toIOTS(NestableModelSchema)
|
|
192
|
+
export const NumberModel = toIOTS(NumberModelSchema)
|
|
193
|
+
export const RangeModel = toIOTS(RangeModelSchema)
|
|
194
|
+
export const RichTextModel = toIOTS(RichTextModelSchema)
|
|
195
|
+
export const SelectModel = toIOTS(SelectModelSchema)
|
|
196
|
+
export const SeparatorModel = toIOTS(SeparatorModelSchema)
|
|
197
|
+
export const SharedSliceModel = toIOTS(SharedSliceModelSchema)
|
|
198
|
+
export const TableModel = toIOTS(TableModelSchema)
|
|
199
|
+
export const TextModel = toIOTS(TextModelSchema)
|
|
200
|
+
export const TimestampModel = toIOTS(TimestampModelSchema)
|
|
201
|
+
export const UIDModel = toIOTS(UIDModelSchema)
|
|
202
|
+
export const GroupModel = toIOTS(GroupModelSchema)
|
|
203
|
+
export const NestedGroupModel = toIOTS(NestedGroupModelSchema)
|
|
204
|
+
export const SharedSliceRefModel = toIOTS(SharedSliceRefModelSchema)
|
|
205
|
+
export const CompositeSliceModel = toIOTS(CompositeSliceModelSchema)
|
|
206
|
+
export const LegacySliceModel = toIOTS(LegacySliceModelSchema)
|
|
207
|
+
export const DynamicSliceModel = toIOTS(DynamicSliceModelSchema)
|
|
208
|
+
export const StaticSliceModel = toIOTS(StaticSliceModelSchema)
|
|
209
|
+
export const DynamicSlicesModel = toIOTS(DynamicSlicesModelSchema)
|
|
210
|
+
export const StaticSlicesModel = toIOTS(StaticSlicesModelSchema)
|
|
211
|
+
export const StaticWidgetModel = toIOTS(StaticWidgetModelSchema)
|
|
212
|
+
export const DynamicWidgetModel = toIOTS(DynamicWidgetModelSchema)
|
|
213
|
+
export const FieldType = toIOTS(FieldTypeSchema)
|
|
214
|
+
export const StaticSectionModel = toIOTS(StaticSectionModelSchema)
|
|
215
|
+
export const DynamicSectionModel = toIOTS(DynamicSectionModelSchema)
|
|
216
|
+
export const StaticCustomTypeModel = toIOTS(StaticCustomTypeModelSchema)
|
|
217
|
+
export const CustomTypeModel = toIOTS(CustomTypeModelSchema)
|
|
218
|
+
|
|
219
|
+
function toIOTS<T>(type: ZodMiniType<T>): t.Type<T> {
|
|
220
|
+
return new t.Type<T>(
|
|
221
|
+
"Type",
|
|
222
|
+
(input): input is T => type.safeParse(input).success,
|
|
223
|
+
(input, context) => {
|
|
224
|
+
const result = type.safeParse(input)
|
|
225
|
+
return result.success
|
|
226
|
+
? t.success(result.data)
|
|
227
|
+
: t.failure(
|
|
228
|
+
input,
|
|
229
|
+
context,
|
|
230
|
+
result.error.issues.map((issue) => formatIssue(issue, input)).join("\n"),
|
|
231
|
+
)
|
|
232
|
+
},
|
|
233
|
+
t.identity,
|
|
234
|
+
)
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function toIOTSCodec<TArgs extends unknown[], A, LegacyRaw, AllowUndefined extends boolean>(
|
|
238
|
+
codecFactory: (...args: TArgs) => LegacyCodec<A, LegacyRaw, AllowUndefined>,
|
|
239
|
+
): (
|
|
240
|
+
...args: TArgs
|
|
241
|
+
) => t.Type<A, ReturnType<LegacyCodec<A, LegacyRaw, AllowUndefined>["encode"]>, unknown> {
|
|
242
|
+
return (...args: TArgs) => {
|
|
243
|
+
const codec = codecFactory(...args)
|
|
244
|
+
return new t.Type<A, ReturnType<LegacyCodec<A, LegacyRaw, AllowUndefined>["encode"]>, unknown>(
|
|
245
|
+
codec.name,
|
|
246
|
+
codec.is,
|
|
247
|
+
(input, context) => {
|
|
248
|
+
const result = codec.decode(input)
|
|
249
|
+
return result.success
|
|
250
|
+
? t.success(result.data)
|
|
251
|
+
: t.failure(
|
|
252
|
+
input,
|
|
253
|
+
context,
|
|
254
|
+
result.error.issues.map((issue) => formatIssue(issue, input)).join("\n"),
|
|
255
|
+
)
|
|
256
|
+
},
|
|
257
|
+
codec.encode,
|
|
258
|
+
)
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
interface ZodIssue {
|
|
263
|
+
code: string
|
|
264
|
+
message: string
|
|
265
|
+
path?: PropertyKey[]
|
|
266
|
+
expected?: string
|
|
267
|
+
values?: unknown[]
|
|
268
|
+
keys?: string[]
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
function resolveValue(input: unknown, path: PropertyKey[]): unknown {
|
|
272
|
+
let current = input
|
|
273
|
+
for (const key of path) {
|
|
274
|
+
if (current == null || typeof current !== "object") return undefined
|
|
275
|
+
current = (current as Record<PropertyKey, unknown>)[key]
|
|
276
|
+
}
|
|
277
|
+
return current
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
function formatValue(value: unknown): string {
|
|
281
|
+
if (value === null) return "null"
|
|
282
|
+
if (value === undefined) return "undefined"
|
|
283
|
+
if (typeof value === "string") return JSON.stringify(value)
|
|
284
|
+
return String(value)
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
function formatIssue(issue: ZodIssue, input: unknown): string {
|
|
288
|
+
if (issue.code === "custom" && issue.message !== "Invalid input") {
|
|
289
|
+
return issue.message
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
const value = resolveValue(input, issue.path ?? [])
|
|
293
|
+
const pathStr = issue.path?.length ? issue.path.join(".") : undefined
|
|
294
|
+
|
|
295
|
+
if (issue.code === "invalid_value" && issue.values) {
|
|
296
|
+
const expected = issue.values.map(formatValue).join(", ")
|
|
297
|
+
return pathStr
|
|
298
|
+
? `Invalid value ${formatValue(value)} at .${pathStr}: expected ${expected}`
|
|
299
|
+
: `Invalid value ${formatValue(value)}: expected ${expected}`
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
if (issue.code === "invalid_type" && issue.expected) {
|
|
303
|
+
return pathStr
|
|
304
|
+
? `Invalid value ${formatValue(value)} at .${pathStr}: expected ${issue.expected}`
|
|
305
|
+
: `Invalid value ${formatValue(value)}: expected ${issue.expected}`
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
if (issue.code === "unrecognized_keys" && issue.keys) {
|
|
309
|
+
return `Unrecognized key(s): ${issue.keys.join(", ")}`
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
return issue.message
|
|
313
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
const BooleanConfigSchema = z.object({
|
|
4
|
+
label: z.nullish(z.string()),
|
|
5
|
+
default_value: z.optional(z.boolean()),
|
|
6
|
+
placeholder_true: z.optional(z.string()),
|
|
7
|
+
placeholder_false: z.optional(z.string()),
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
export const BooleanModelSchema = z.object({
|
|
11
|
+
type: z.literal("Boolean"),
|
|
12
|
+
config: z.optional(BooleanConfigSchema),
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
export type BooleanModel = z.infer<typeof BooleanModelSchema>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
const ColorConfigSchema = z.object({
|
|
4
|
+
label: z.nullish(z.string()),
|
|
5
|
+
placeholder: z.optional(z.string()),
|
|
6
|
+
})
|
|
7
|
+
|
|
8
|
+
export const ColorModelSchema = z.object({
|
|
9
|
+
type: z.literal("Color"),
|
|
10
|
+
fieldset: z.nullish(z.string()),
|
|
11
|
+
config: z.optional(ColorConfigSchema),
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export type ColorModel = z.infer<typeof ColorModelSchema>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
import { DynamicSectionModelSchema, StaticSectionModelSchema } from "./section"
|
|
4
|
+
|
|
5
|
+
// CustomTypeFormat - "page" | "custom"
|
|
6
|
+
export const CustomTypeFormatSchema = z.enum(["page", "custom"])
|
|
7
|
+
export type CustomTypeFormat = z.infer<typeof CustomTypeFormatSchema>
|
|
8
|
+
|
|
9
|
+
// Factory to create CustomType schema with configurable section type
|
|
10
|
+
const createCustomTypeSchema = <T extends z.ZodMiniType>(sectionSchema: T) =>
|
|
11
|
+
z.object({
|
|
12
|
+
id: z.string(),
|
|
13
|
+
label: z.nullish(z.string()),
|
|
14
|
+
repeatable: z._default(z.boolean(), true),
|
|
15
|
+
json: z.record(z.string(), sectionSchema),
|
|
16
|
+
status: z._default(z.boolean(), true),
|
|
17
|
+
format: z._default(CustomTypeFormatSchema, "custom"),
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
// StaticCustomType - uses StaticSection (with full SharedSlice definitions)
|
|
21
|
+
export const StaticCustomTypeModelSchema = createCustomTypeSchema(StaticSectionModelSchema)
|
|
22
|
+
export type StaticCustomTypeModel = z.infer<typeof StaticCustomTypeModelSchema>
|
|
23
|
+
|
|
24
|
+
// CustomType (dynamic) - uses DynamicSection (with SharedSliceRef references)
|
|
25
|
+
export const CustomTypeModelSchema = createCustomTypeSchema(DynamicSectionModelSchema)
|
|
26
|
+
export type CustomTypeModel = z.infer<typeof CustomTypeModelSchema>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
const DateConfigSchema = z.object({
|
|
4
|
+
label: z.nullish(z.string()),
|
|
5
|
+
placeholder: z.optional(z.string()),
|
|
6
|
+
default: z.optional(z.string()),
|
|
7
|
+
})
|
|
8
|
+
|
|
9
|
+
export const DateModelSchema = z.object({
|
|
10
|
+
type: z.literal("Date"),
|
|
11
|
+
fieldset: z.nullish(z.string()),
|
|
12
|
+
config: z.optional(DateConfigSchema),
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
export type DateModel = z.infer<typeof DateModelSchema>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import type { SharedSliceModel, Variation } from "../slice"
|
|
2
|
+
import { type DiffChange, DiffOperation } from "./changes"
|
|
3
|
+
import { isNotEmpty, toRecord, zipObjects } from "./utils"
|
|
4
|
+
import { type VariationDiff, VariationComparator } from "./variation"
|
|
5
5
|
|
|
6
|
-
export type SliceMetadata = Omit<
|
|
6
|
+
export type SliceMetadata = Omit<SharedSliceModel, "variations">
|
|
7
7
|
export type SliceDiff = DiffChange<
|
|
8
|
-
|
|
8
|
+
SharedSliceModel,
|
|
9
9
|
Partial<
|
|
10
10
|
SliceMetadata & {
|
|
11
11
|
variations?: Partial<Record<string, VariationDiff>>
|
|
@@ -14,13 +14,13 @@ export type SliceDiff = DiffChange<
|
|
|
14
14
|
>
|
|
15
15
|
|
|
16
16
|
function compareSliceMeta(
|
|
17
|
-
sliceA?:
|
|
18
|
-
sliceB?:
|
|
17
|
+
sliceA?: SharedSliceModel,
|
|
18
|
+
sliceB?: SharedSliceModel,
|
|
19
19
|
): Partial<SliceMetadata> {
|
|
20
|
-
const zippedSlices =
|
|
20
|
+
const zippedSlices = zipObjects(sliceA, sliceB)
|
|
21
21
|
|
|
22
22
|
return Object.entries(zippedSlices).reduce((acc, [key, value]) => {
|
|
23
|
-
if (key ===
|
|
23
|
+
if (key === "variations") return acc
|
|
24
24
|
|
|
25
25
|
if (value?.left === value?.right) return acc
|
|
26
26
|
return { ...acc, [key]: value?.right }
|
|
@@ -28,7 +28,7 @@ function compareSliceMeta(
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
export const SliceComparator = {
|
|
31
|
-
compare(sliceA?:
|
|
31
|
+
compare(sliceA?: SharedSliceModel, sliceB?: SharedSliceModel): SliceDiff | undefined {
|
|
32
32
|
if (!sliceA && sliceB)
|
|
33
33
|
return {
|
|
34
34
|
op: DiffOperation.Added,
|
|
@@ -41,9 +41,9 @@ export const SliceComparator = {
|
|
|
41
41
|
|
|
42
42
|
const diffMeta = compareSliceMeta(sliceA, sliceB)
|
|
43
43
|
|
|
44
|
-
const zippedSlices =
|
|
45
|
-
sliceA &&
|
|
46
|
-
sliceB &&
|
|
44
|
+
const zippedSlices = zipObjects<Variation>(
|
|
45
|
+
sliceA && toRecord(sliceA.variations, (v) => v.id),
|
|
46
|
+
sliceB && toRecord(sliceB.variations, (v) => v.id),
|
|
47
47
|
)
|
|
48
48
|
|
|
49
49
|
const diffVariations = Object.entries(zippedSlices).reduce<
|
|
@@ -61,12 +61,10 @@ export const SliceComparator = {
|
|
|
61
61
|
|
|
62
62
|
const diffSlice = {
|
|
63
63
|
...diffMeta,
|
|
64
|
-
...(
|
|
65
|
-
? { variations: diffVariations }
|
|
66
|
-
: {}),
|
|
64
|
+
...(isNotEmpty(diffVariations) ? { variations: diffVariations } : {}),
|
|
67
65
|
}
|
|
68
66
|
|
|
69
|
-
if (
|
|
67
|
+
if (isNotEmpty(diffSlice)) {
|
|
70
68
|
return {
|
|
71
69
|
op: DiffOperation.Updated,
|
|
72
70
|
value: diffSlice,
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zips two objects together by their keys, creating an object with
|
|
3
|
+
* both left and right values for each key.
|
|
4
|
+
*/
|
|
5
|
+
export function zipObjects<A, B = A>(
|
|
6
|
+
objLeft?: Partial<Record<string, A>> | undefined,
|
|
7
|
+
objRight?: Partial<Record<string, B>> | undefined,
|
|
8
|
+
): Partial<Record<string, { left?: A | undefined; right?: B | undefined }>> {
|
|
9
|
+
const allKeys = [...new Set(Object.keys(objLeft || {}).concat(Object.keys(objRight || {})))]
|
|
10
|
+
|
|
11
|
+
return allKeys.reduce<Record<string, { left?: A | undefined; right?: B | undefined }>>(
|
|
12
|
+
(acc, key) => {
|
|
13
|
+
const left = objLeft?.[key]
|
|
14
|
+
const right = objRight?.[key]
|
|
15
|
+
return {
|
|
16
|
+
...acc,
|
|
17
|
+
[key]: { left, right },
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{},
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Returns true if the object has at least one key.
|
|
26
|
+
*/
|
|
27
|
+
export function isNotEmpty<A extends object>(obj: A): boolean {
|
|
28
|
+
return Boolean(Object.keys(obj).length)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Converts an array to a record using the provided key function.
|
|
33
|
+
*/
|
|
34
|
+
export function toRecord<A extends object>(
|
|
35
|
+
arr: ReadonlyArray<A>,
|
|
36
|
+
key: (obj: A) => string,
|
|
37
|
+
): Record<string, A> {
|
|
38
|
+
return arr.reduce<Record<string, A>>((acc, entry) => {
|
|
39
|
+
const k = key(entry)
|
|
40
|
+
return {
|
|
41
|
+
...acc,
|
|
42
|
+
[k]: entry,
|
|
43
|
+
}
|
|
44
|
+
}, {})
|
|
45
|
+
}
|