@prismicio/types-internal 0.1.0
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/LICENSE +202 -0
- package/README.md +110 -0
- package/dist/customtypes/index.cjs +864 -0
- package/dist/customtypes/index.cjs.map +1 -0
- package/dist/customtypes/index.d.ts +18433 -0
- package/dist/customtypes/index.d.ts.map +1 -0
- package/dist/customtypes/index.js +864 -0
- package/dist/customtypes/index.js.map +1 -0
- package/dist/customtypes/widgets/index.cjs +735 -0
- package/dist/customtypes/widgets/index.cjs.map +1 -0
- package/dist/customtypes/widgets/index.d.ts +11697 -0
- package/dist/customtypes/widgets/index.d.ts.map +1 -0
- package/dist/customtypes/widgets/index.js +735 -0
- package/dist/customtypes/widgets/index.js.map +1 -0
- package/dist/customtypes/widgets/slices/index.cjs +671 -0
- package/dist/customtypes/widgets/slices/index.cjs.map +1 -0
- package/dist/customtypes/widgets/slices/index.d.ts +7079 -0
- package/dist/customtypes/widgets/slices/index.d.ts.map +1 -0
- package/dist/customtypes/widgets/slices/index.js +671 -0
- package/dist/customtypes/widgets/slices/index.js.map +1 -0
- package/dist/index.cjs +870 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +18455 -0
- package/dist/index.js +844 -0
- package/dist/index.js.map +1 -0
- package/package.json +84 -0
- package/src/customtypes/CustomType.ts +142 -0
- package/src/customtypes/Format.ts +4 -0
- package/src/customtypes/Section.ts +25 -0
- package/src/customtypes/index.ts +4 -0
- package/src/customtypes/widgets/Group.ts +30 -0
- package/src/customtypes/widgets/UID.ts +27 -0
- package/src/customtypes/widgets/Widget.ts +33 -0
- package/src/customtypes/widgets/WidgetTypes.ts +24 -0
- package/src/customtypes/widgets/index.ts +7 -0
- package/src/customtypes/widgets/nestable/BooleanField.ts +30 -0
- package/src/customtypes/widgets/nestable/Color.ts +26 -0
- package/src/customtypes/widgets/nestable/Date.ts +27 -0
- package/src/customtypes/widgets/nestable/Embed.ts +27 -0
- package/src/customtypes/widgets/nestable/GeoPoint.ts +25 -0
- package/src/customtypes/widgets/nestable/Image.ts +40 -0
- package/src/customtypes/widgets/nestable/IntegrationField.ts +27 -0
- package/src/customtypes/widgets/nestable/Link.ts +85 -0
- package/src/customtypes/widgets/nestable/NestableWidget.ts +39 -0
- package/src/customtypes/widgets/nestable/Number.ts +30 -0
- package/src/customtypes/widgets/nestable/Range.ts +30 -0
- package/src/customtypes/widgets/nestable/RichText.ts +160 -0
- package/src/customtypes/widgets/nestable/Select.ts +32 -0
- package/src/customtypes/widgets/nestable/Separator.ts +24 -0
- package/src/customtypes/widgets/nestable/Text.ts +27 -0
- package/src/customtypes/widgets/nestable/Timestamp.ts +27 -0
- package/src/customtypes/widgets/nestable/index.ts +15 -0
- package/src/customtypes/widgets/shared/ImageConstraint.ts +39 -0
- package/src/customtypes/widgets/shared/index.ts +1 -0
- package/src/customtypes/widgets/slices/CompositeSlice.ts +32 -0
- package/src/customtypes/widgets/slices/LegacySlice.ts +15 -0
- package/src/customtypes/widgets/slices/SharedSlice.ts +44 -0
- package/src/customtypes/widgets/slices/SharedSliceRef.ts +12 -0
- package/src/customtypes/widgets/slices/Slice.ts +7 -0
- package/src/customtypes/widgets/slices/Slices.ts +100 -0
- package/src/customtypes/widgets/slices/SlicesTypes.ts +6 -0
- package/src/customtypes/widgets/slices/index.ts +7 -0
- package/src/index.ts +1 -0
- package/src/validators/IntFromNumber.ts +24 -0
- package/src/validators/IntFromPixels.ts +31 -0
- package/src/validators/StringFromBoolean.ts +21 -0
- package/src/validators/StringFromNumber.ts +21 -0
- package/src/validators/StringOrNull.ts +3 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/customtypes/Format.ts","../../src/validators/StringOrNull.ts","../../src/customtypes/widgets/WidgetTypes.ts","../../src/customtypes/widgets/UID.ts","../../src/customtypes/widgets/nestable/Color.ts","../../src/customtypes/widgets/nestable/BooleanField.ts","../../src/customtypes/widgets/nestable/Date.ts","../../src/customtypes/widgets/nestable/Embed.ts","../../src/customtypes/widgets/nestable/GeoPoint.ts","../../src/customtypes/widgets/nestable/Number.ts","../../src/customtypes/widgets/nestable/Range.ts","../../src/validators/IntFromNumber.ts","../../src/validators/IntFromPixels.ts","../../src/customtypes/widgets/shared/ImageConstraint.ts","../../src/customtypes/widgets/nestable/RichText.ts","../../src/validators/StringFromBoolean.ts","../../src/validators/StringFromNumber.ts","../../src/customtypes/widgets/nestable/Select.ts","../../src/customtypes/widgets/nestable/Separator.ts","../../src/customtypes/widgets/nestable/Text.ts","../../src/customtypes/widgets/nestable/Timestamp.ts","../../src/customtypes/widgets/nestable/Link.ts","../../src/customtypes/widgets/nestable/Image.ts","../../src/customtypes/widgets/nestable/IntegrationField.ts","../../src/customtypes/widgets/nestable/NestableWidget.ts","../../src/customtypes/widgets/Group.ts","../../src/customtypes/widgets/slices/LegacySlice.ts","../../src/customtypes/widgets/slices/SlicesTypes.ts","../../src/customtypes/widgets/slices/CompositeSlice.ts","../../src/customtypes/widgets/slices/SharedSliceRef.ts","../../src/customtypes/widgets/slices/SharedSlice.ts","../../src/customtypes/widgets/slices/Slices.ts","../../src/customtypes/widgets/Widget.ts","../../src/customtypes/Section.ts","../../src/customtypes/CustomType.ts"],"sourcesContent":["export enum Format {\n Static = 'static',\n Dynamic = 'dynamic'\n}","import * as t from 'io-ts'\n\nexport const StringOrNull = t.union([ t.string, t.null, t.undefined ])","enum WidgetTypes {\n Text = 'Text',\n RichText = 'StructuredText',\n Color = 'Color',\n Image = 'Image',\n Date = 'Date',\n Timestamp = 'Timestamp',\n Number = 'Number',\n Range = 'Range',\n Select = 'Select',\n Link = 'Link',\n Embed = 'Embed',\n GeoPoint = 'GeoPoint',\n Separator = 'Separator',\n UID = 'UID',\n BooleanField = 'Boolean',\n IntegrationField = 'IntegrationFields',\n Group = 'Group',\n Slices = 'Slices',\n // Legacy type for slices\n LegacySlices = 'Choice'\n}\n\nexport default WidgetTypes","import * as t from 'io-ts'\nimport { StringOrNull } from '../../validators/StringOrNull'\nimport WidgetTypes from './WidgetTypes'\n\nconst UIDConfig = t.exact(\n t.partial({\n label: StringOrNull,\n useAsTitle: t.boolean,\n placeholder: t.string\n })\n)\ntype UIDConfig = t.TypeOf<typeof UIDConfig>\n\nconst UID = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.UID)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: UIDConfig\n })\n ])\n)\ntype UID = t.TypeOf<typeof UID>\n\nexport default UID\n","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\n\nconst ColorConfig = t.exact(\n t.partial({\n label: StringOrNull,\n placeholder: t.string,\n })\n)\ntype ColorConfig = t.TypeOf<typeof ColorConfig>\n\nconst Color = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Color)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: ColorConfig\n })\n ])\n)\ntype Color = t.TypeOf<typeof Color>\n\nexport default Color\n","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\n\nconst BooleanConfig = t.exact(\n t.partial({\n label: StringOrNull,\n default_value: t.boolean,\n placeholder_true: t.string,\n placeholder_false: t.string\n })\n)\n\ntype BooleanConfig = t.TypeOf<typeof BooleanConfig>\n\nconst BooleanField = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.BooleanField)\n }),\n t.partial({\n config: BooleanConfig\n })\n ])\n)\n\ntype BooleanField = t.TypeOf<typeof BooleanField>\n\n\nexport default BooleanField","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\n\nconst DateConfig = t.exact(\n t.partial({\n label: StringOrNull,\n placeholder: t.string,\n default: t.string\n })\n)\ntype DateConfig = t.TypeOf<typeof DateConfig>\n\nconst Date = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Date)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: DateConfig\n })\n ])\n)\ntype Date = t.TypeOf<typeof Date>\n\nexport default Date","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\n\nconst EmbedConfig = t.exact(\n t.partial({\n label: StringOrNull,\n placeholder: t.string,\n useAsTitle: t.boolean\n })\n)\ntype EmbedConfig = t.TypeOf<typeof EmbedConfig>\n\nconst Embed = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Embed)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: EmbedConfig\n })\n ])\n)\ntype Embed = t.TypeOf<typeof Embed>\n\nexport default Embed","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\n\nconst GeoPointConfig = t.exact(\n t.partial({\n label: StringOrNull\n })\n)\ntype GeoPointConfig = t.TypeOf<typeof GeoPointConfig>\n\nconst GeoPoint = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.GeoPoint)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: GeoPointConfig\n })\n ])\n)\ntype GeoPoint = t.TypeOf<typeof GeoPoint>\n\nexport default GeoPoint","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\nimport { NumberFromString } from 'io-ts-types/lib/NumberFromString'\n\nconst NumberConfig = t.exact(\n t.partial({\n label: StringOrNull,\n placeholder: t.string,\n min: t.union([t.number, NumberFromString]),\n max: t.union([t.number, NumberFromString]),\n step: t.union([t.number, NumberFromString])\n })\n)\ntype NumberConfig = t.TypeOf<typeof NumberConfig>\n\nconst Number = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Number)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: NumberConfig\n })\n ])\n)\ntype Number = t.TypeOf<typeof Number>\n\nexport default Number","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\nimport { NumberFromString } from 'io-ts-types/lib/NumberFromString'\n\nconst RangeConfig = t.exact(\n t.partial({\n label: StringOrNull,\n placeholder: t.string,\n min: t.union([t.number, NumberFromString]),\n max: t.union([t.number, NumberFromString]),\n step: t.union([t.number, NumberFromString]),\n })\n)\ntype RangeConfig = t.TypeOf<typeof RangeConfig>\n\nconst Range = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Range)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: RangeConfig\n })\n ])\n)\ntype Range = t.TypeOf<typeof Range>\n\nexport default Range"," import * as t from 'io-ts'\n import { pipe } from 'fp-ts/lib/pipeable'\n import { chain } from 'fp-ts/lib/Either'\n \n export interface IntFromNumberC extends t.Type<t.Int, number, unknown> {}\n \n /**\n * A codec that succeeds if a number can be parsed to an integer\n */\n export const IntFromNumber: IntFromNumberC = new t.Type<t.Int, number, unknown>(\n 'IntFromNumber',\n t.Int.is,\n (u, c) =>\n pipe(\n t.number.validate(u, c),\n chain(n => {\n if(t.Int.is(n)) return t.success(n)\n else {\n return t.success(Math.round(n) as t.Int)\n }\n })\n ),\n t.Int.encode\n )","import * as t from 'io-ts'\nimport { pipe } from 'fp-ts/lib/pipeable'\nimport { chain } from 'fp-ts/lib/Either'\n\nexport interface IntFromPixelsC extends t.Type<t.Int, string, unknown> {}\n\nconst PixelsRegex = /^([0-9]+)px$/\n/**\n * A codec that succeeds if a string representing pixels (eg: \"200px\") can be parsed to an integer\n */\nexport const IntFromPixels: IntFromPixelsC = new t.Type<t.Int, string, unknown>(\n 'IntFromPixels',\n t.Int.is,\n (u, c) =>\n pipe(\n t.string.validate(u, c),\n chain(strPixels => {\n try {\n const matched = strPixels.match(PixelsRegex)\n if(!matched) return t.failure(u, c)\n else {\n const parsed = parseInt(matched[1]) as t.Int\n return t.success(parsed)\n }\n } catch {\n return t.failure(u, c)\n }\n })\n ),\n String\n)","import * as t from 'io-ts'\nimport { either } from 'fp-ts/lib/Either'\nimport { IntFromString } from 'io-ts-types/lib/IntFromString'\n\nimport { IntFromNumber } from '../../../validators/IntFromNumber'\nimport { IntFromPixels } from '../../../validators/IntFromPixels'\n\nconst SideConstraint = new t.Type<number | null, any, unknown>(\n 'SideConstraints',\n (u: unknown): u is any => {\n return !u || typeof u === 'number'\n },\n (u: unknown, context: t.Context) => {\n return either.chain(\n t.union([\n t.literal('auto'),\n t.literal(''),\n t.Int,\n IntFromString,\n IntFromNumber,\n IntFromPixels,\n t.null\n ]).validate(u, context), (constraint) => {\n if(constraint === 'auto' || constraint === '') return t.success(null)\n return t.success(constraint)\n }\n )\n },\n res => res\n)\n\nconst ImageConstraint = t.partial({\n width: SideConstraint,\n height: SideConstraint\n})\n\ntype ImageConstraint = t.TypeOf<typeof ImageConstraint>\n\nexport default ImageConstraint\n","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport { either } from 'fp-ts/lib/Either'\nimport WidgetTypes from '../WidgetTypes'\nimport ImageConstraint from '../shared/ImageConstraint'\n\nconst DEFAULT_OPTION = 'paragraph'\nconst options = [\n 'heading1',\n 'heading2',\n 'heading3',\n 'heading4',\n 'heading5',\n 'heading6',\n 'paragraph',\n 'strong',\n 'em',\n 'preformatted',\n 'hyperlink',\n 'image',\n 'embed',\n 'list-item',\n 'o-list-item',\n 'rtl'\n];\n\nconst RichTextOptions = new t.Type<string, string, unknown>(\n 'RichTextOptions',\n (u: unknown): u is string => typeof u === 'string',\n (u: unknown, context: t.Context) => {\n return either.chain(\n t.union([\n t.string,\n t.null\n ]).validate(u as unknown, context), (s: string | null) => {\n if(!s) return t.success(DEFAULT_OPTION)\n const entries = s.split(',').map((e: string) => e.trim())\n const filtered = entries.filter(entry => options.includes(entry))\n if(!filtered.length) return t.success(DEFAULT_OPTION)\n \n return t.success(filtered.join(','))\n }\n );\n },\n a => a\n)\n\n\nconst NoLabels = (labels: string | string[] | {\n [x: string]: {\n name: string;\n }[];\n} | null) => {\n if(!labels) return t.success([])\n}\n\nconst LabelsAsObject = (labels: string | string[] | {\n [x: string]: {\n name: string;\n }[];\n} | null) => {\n if(labels instanceof Object) {\n const labelsObj = labels as { [x: string]: { name: string }[] }\n \n // empty labels\n if(!Object.entries(labelsObj).length) return t.success([])\n \n // weird case labels with empty key as parent\n if(labelsObj['']) {\n return t.success(labelsObj[''].map(l => l.name))\n }\n\n const convertedObjectToArray = Object.entries(labelsObj)\n .reduce<ReadonlyArray<string>>((acc, [, labelsEntries]) => {\n return acc.concat(labelsEntries.map(l => l.name))\n }, [])\n .filter(Boolean)\n\n return t.success(convertedObjectToArray)\n }\n}\n\nconst LabelsAsArray = (labels: string | string[] | {\n [x: string]: {\n name: string;\n }[];\n} | null) => {\n if(labels instanceof Array) {\n const isValidLabels = labels.reduce((acc, l) => acc && typeof l === 'string', true) \n if(isValidLabels) return t.success(labels)\n }\n}\n\nconst LabelsAsString = (labels: string | string[] | {\n [x: string]: {\n name: string;\n }[];\n} | null) => {\n if(typeof labels === 'string') {\n return t.success([labels])\n }\n}\n\nconst RichTextLabels = new t.Type<Array<string>, object, unknown>(\n 'RichTextLabels',\n (u: unknown): u is any => {\n return u instanceof Array\n },\n (u: unknown, context: t.Context) => {\n const legacyValidator = t.record(t.string, t.array(t.record(t.literal(\"name\"), t.string)))\n const validator = t.array(t.string)\n\n return either.chain(\n t.union([\n legacyValidator,\n validator,\n t.string,\n t.null,\n ]).validate(u, context), (labels) => {\n return (\n NoLabels(labels) ||\n LabelsAsArray(labels) ||\n LabelsAsObject(labels) ||\n LabelsAsString(labels) ||\n t.failure(u, context)\n )\n }\n )\n },\n res => res\n)\n\nconst RichTextConfig = t.exact(\n t.partial({\n label: StringOrNull,\n placeholder: t.string,\n useAsTitle: t.boolean,\n single: RichTextOptions,\n multi: RichTextOptions,\n imageConstraint: ImageConstraint,\n labels: RichTextLabels,\n allowTargetBlank: t.boolean\n })\n)\ntype RichTextConfig = t.TypeOf<typeof RichTextConfig>\n\nconst RichText = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.RichText)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: RichTextConfig\n })\n ])\n)\ntype RichText = t.TypeOf<typeof RichText>\n\nexport default RichText\n","import * as t from 'io-ts'\nimport { pipe } from 'fp-ts/lib/pipeable'\nimport { chain } from 'fp-ts/lib/Either'\n\nexport interface StringFromBooleanC extends t.Type<string, string, unknown> {}\n\n/**\n * A codec that validates a Boolean and convert it as a string\n */\nexport const StringFromBoolean: StringFromBooleanC = new t.Type<string, string, unknown>(\n 'StringFromInt',\n t.string.is,\n (u, c) =>\n pipe(\n t.boolean.validate(u, c),\n chain(i => {\n return t.success(i.toString())\n })\n ),\n i => i\n)","import * as t from 'io-ts'\nimport { pipe } from 'fp-ts/lib/pipeable'\nimport { chain } from 'fp-ts/lib/Either'\n\nexport interface StringFromNumberC extends t.Type<string, string, unknown> {}\n\n/**\n * A codec that validates a number and convert it as a string\n */\nexport const StringFromNumber: StringFromNumberC = new t.Type<string, string, unknown>(\n 'StringFromInt',\n t.string.is,\n (u, c) =>\n pipe(\n t.number.validate(u, c),\n chain(i => {\n return t.success(i.toString())\n })\n ),\n i => i\n)","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport { StringFromBoolean } from '../../../validators/StringFromBoolean'\nimport WidgetTypes from '../WidgetTypes'\n\nimport { StringFromNumber } from '../../../validators/StringFromNumber'\n\nconst SelectConfig = t.exact(\n t.partial({\n label: StringOrNull,\n placeholder: t.string,\n default_value: t.string,\n options: t.array(t.union([t.string, StringFromNumber, StringFromBoolean]))\n })\n)\ntype SelectConfig = t.TypeOf<typeof SelectConfig>\n\nconst Select = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Select)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: SelectConfig\n })\n ])\n)\ntype Select = t.TypeOf<typeof Select>\n\nexport default Select\n\n","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\n\nconst SeparatorConfig = t.exact(\n t.partial({\n label: StringOrNull\n })\n)\ntype SeparatorConfig = t.TypeOf<typeof SeparatorConfig>\n\nconst Separator = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Separator)\n }),\n t.partial({\n config: SeparatorConfig\n })\n ])\n)\ntype Separator = t.TypeOf<typeof Separator>\n\nexport default Separator\n","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\n\nconst TextConfig = t.exact(\n t.partial({\n label: StringOrNull,\n useAsTitle: t.boolean,\n placeholder: t.string\n })\n)\ntype TextConfig = t.TypeOf<typeof TextConfig>\n\nconst Text = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Text)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: TextConfig\n })\n ])\n)\ntype Text = t.TypeOf<typeof Text>\n\nexport default Text\n","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\n\nconst TimestampConfig = t.exact(\n t.partial({\n label: StringOrNull,\n placeholder: t.string,\n default: t.string\n })\n)\ntype TimestampConfig = t.TypeOf<typeof TimestampConfig>\n\nconst Timestamp = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Timestamp)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: TimestampConfig\n })\n ])\n)\ntype Timestamp = t.TypeOf<typeof Timestamp>\n\nexport default Timestamp","import * as t from 'io-ts'\nimport { withFallback } from 'io-ts-types/lib/withFallback'\nimport { either } from 'fp-ts/lib/Either'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\n\nconst arrayString = (entries: string | string[] | {\n [x: string]: {\n name: string;\n }[];\n} | null) => {\n if(entries instanceof Array) {\n const isValidEntries = entries.reduce((acc, l) => acc && typeof l === 'string', true) \n if(isValidEntries) return t.success(entries)\n }\n}\n\nconst plainString = (entries: string | string[] | {\n [x: string]: {\n name: string;\n }[];\n} | null) => {\n if(typeof entries === 'string') {\n return t.success([entries])\n }\n}\n\nconst MasksArrayString = new t.Type<Array<string>, object, unknown>(\n 'MasksArrayString',\n (u: unknown): u is any => {\n return u instanceof Array\n },\n (u: unknown, context: t.Context) => {\n return either.chain(\n t.union([\n t.array(t.string),\n t.string,\n ]).validate(u, context), (masks) => {\n return (\n arrayString(masks) ||\n plainString(masks) ||\n t.failure(u, context)\n )\n }\n )\n },\n res => res\n)\n\nconst LinkConfig = t.exact(\n t.partial({\n label: StringOrNull,\n useAsTitle: t.boolean,\n placeholder: t.string,\n select: withFallback(\n t.union([\n t.literal('media'),\n t.literal('document'),\n t.literal('web'),\n t.null\n ]),\n null\n ),\n customtypes: t.array(t.string), // `customtypes` and `masks` are alternatives\n masks: MasksArrayString,\n tags: MasksArrayString,\n allowTargetBlank: t.boolean\n })\n)\ntype LinkConfig = t.TypeOf<typeof LinkConfig>\n\nconst Link = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Link)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: LinkConfig\n })\n ])\n)\ntype Link = t.TypeOf<typeof Link>\n\nexport default Link\n","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\nimport ImageConstraint from '../shared/ImageConstraint'\n\nconst Thumbnail = t.exact(\n t.intersection([\n t.type({\n name: t.string\n }),\n ImageConstraint\n ])\n)\ntype Thumbnail = t.TypeOf<typeof Thumbnail>\n\nconst ImageConfig = t.exact(\n t.partial({\n label: StringOrNull,\n placeholder: t.string,\n constraint: ImageConstraint,\n thumbnails: t.array(Thumbnail)\n })\n)\ntype ImageConfig = t.TypeOf<typeof ImageConfig>\n\n\nconst Image = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Image)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: ImageConfig\n })\n ])\n)\ntype Image = t.TypeOf<typeof Image>\n\nexport default Image\n","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\n\nconst IntegrationFieldConfig = t.exact(\n t.partial({\n label: StringOrNull,\n placeholder: t.string,\n catalog: t.string\n })\n)\ntype IntegrationFieldConfig = t.TypeOf<typeof IntegrationFieldConfig>\n\nconst IntegrationField = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.IntegrationField)\n }),\n t.partial({\n fieldset: StringOrNull,\n config: IntegrationFieldConfig\n })\n ])\n)\ntype IntegrationField = t.TypeOf<typeof IntegrationField>\n\nexport default IntegrationField\n","import * as t from 'io-ts'\n\nimport Color from './Color'\nimport BooleanField from './BooleanField'\nimport Date from './Date'\nimport Embed from './Embed'\nimport GeoPoint from './GeoPoint'\nimport Number from './Number'\nimport Range from './Range'\nimport RichText from './RichText'\nimport Select from './Select'\nimport Separator from './Separator'\nimport Text from './Text'\nimport Timestamp from './Timestamp'\nimport Link from './Link'\nimport Image from './Image'\nimport IntegrationField from './IntegrationField'\n\nconst NestableWidget = t.union([\n Color,\n BooleanField,\n Embed,\n GeoPoint,\n Date,\n Number,\n Range,\n RichText,\n Select,\n Separator,\n Text,\n Timestamp,\n Link,\n Image,\n IntegrationField\n])\n\ntype NestableWidget = t.TypeOf<typeof NestableWidget>\n\nexport default NestableWidget","import * as t from 'io-ts'\nimport { StringOrNull } from '../../validators/StringOrNull'\nimport WidgetTypes from './WidgetTypes'\nimport NestableWidget from './nestable/NestableWidget'\n\nconst GroupConfig = t.exact(\n t.partial({\n label: StringOrNull,\n repeat: t.boolean,\n fields: t.record(t.string, NestableWidget)\n })\n)\ntype GroupConfig = t.TypeOf<typeof GroupConfig>\n\nconst Group = t.exact(\n t.intersection([\n t.type({\n type: t.literal(WidgetTypes.Group)\n }),\n t.partial({\n fieldset: StringOrNull,\n icon: t.string,\n description: t.string,\n config: GroupConfig\n })\n ])\n)\ntype Group = t.TypeOf<typeof Group>\n\nexport default Group\n","import * as t from 'io-ts'\n\nimport UID from '../UID'\nimport NestableWidget from '../nestable/NestableWidget'\nimport Group from '../Group'\n\nconst LegacySlice = t.union([\n UID,\n NestableWidget,\n Group\n])\n\ntype LegacySlice = t.TypeOf<typeof LegacySlice>\n\nexport default LegacySlice","enum SlicesTypes {\n Slice = 'Slice',\n SharedSlice = 'SharedSlice'\n}\n\nexport default SlicesTypes","import * as t from 'io-ts'\n\nimport SlicesTypes from './SlicesTypes'\nimport NestableWidget from \"../nestable/NestableWidget\"\nimport { StringOrNull } from '../../../validators/StringOrNull'\n\nconst CompositeSliceConfig = t.exact(\n t.partial({\n label: StringOrNull\n })\n)\ntype CompositeSliceConfig = t.TypeOf<typeof CompositeSliceConfig>\n\nconst CompositeSlice = t.exact(\n t.intersection([\n t.type({\n type: t.literal(SlicesTypes.Slice)\n }),\n t.partial({\n fieldset: StringOrNull,\n description: t.string,\n icon: t.string,\n display: t.string,\n 'non-repeat': t.record(t.string, NestableWidget),\n repeat: t.record(t.string, NestableWidget),\n config: CompositeSliceConfig\n })\n ])\n)\ntype CompositeSlice = t.TypeOf<typeof CompositeSlice>\n\nexport default CompositeSlice","import * as t from 'io-ts'\n\nimport SlicesTypes from './SlicesTypes'\n\nconst SharedSliceRef = t.exact(\n t.type({\n type: t.literal(SlicesTypes.SharedSlice)\n })\n)\ntype SharedSliceRef = t.TypeOf<typeof SharedSliceRef>\n\nexport default SharedSliceRef","import * as t from 'io-ts'\nimport { withFallback } from 'io-ts-types/lib/withFallback'\nimport NestableWidget from '../nestable/NestableWidget'\nimport SlicesTypes from './SlicesTypes'\n\nconst IMAGE_PLACEHOLDER_URL = 'https://images.prismic.io/slice-machine/621a5ec4-0387-4bc5-9860-2dd46cbc07cd_default_ss.png?auto=compress,format'\n\nconst Variation = t.exact(\n t.intersection([\n t.type({\n id: t.string,\n name: t.string,\n description: t.string,\n imageUrl: withFallback(t.string, IMAGE_PLACEHOLDER_URL),\n docURL: t.string,\n version: t.string\n }),\n t.partial({\n display: t.string,\n primary: t.record(t.string, NestableWidget),\n items: t.record(t.string, NestableWidget)\n })\n ])\n)\n\ntype Variation = t.TypeOf<typeof Variation>\n\nconst SharedSlice = t.exact(\n t.intersection([\n t.type({\n id: t.string,\n type: t.literal(SlicesTypes.SharedSlice),\n name: t.string,\n variations: t.array(Variation)\n }),\n t.partial({\n description: t.string\n })\n ])\n)\n\ntype SharedSlice = t.TypeOf<typeof SharedSlice>\n\nexport default SharedSlice\n","import * as t from 'io-ts'\nimport { StringOrNull } from '../../../validators/StringOrNull'\nimport WidgetTypes from '../WidgetTypes'\nimport { Format } from '../../Format'\nimport LegacySlice from './LegacySlice'\nimport CompositeSlice from './CompositeSlice'\nimport SharedSliceRef from './SharedSliceRef'\nimport SharedSlice from './SharedSlice'\nimport SlicesTypes from './SlicesTypes'\n\nconst SlicesLabels = t.union([\n t.record(\n t.string,\n t.array(\n t.exact(\n t.intersection([\n t.type({\n name: t.string\n }),\n t.partial({\n display: t.string\n })\n ])\n )\n )\n ),\n t.null\n])\ntype SlicesLabels = t.TypeOf<typeof SlicesLabels>\n\nexport function slicesConfigReader<F extends Format>(format: F) {\n return t.exact(\n t.partial({\n label: StringOrNull,\n labels: SlicesLabels,\n choices: t.record(t.string, t.union([\n LegacySlice,\n CompositeSlice,\n (() => {\n switch(format) {\n case Format.Static: return SharedSlice\n case Format.Dynamic: return SharedSliceRef\n default: throw new Error(`Invalid Format Exception: ${format} doesn't exist`)\n }\n })()\n ]))\n })\n )\n}\nexport const StaticSlicesConfig = slicesConfigReader(Format.Static)\nexport type StaticSlicesConfig = t.TypeOf<typeof StaticSlicesConfig>\n\nexport const DynamicSlicesConfig = slicesConfigReader(Format.Dynamic)\nexport type DynamicSlicesConfig = t.TypeOf<typeof DynamicSlicesConfig>\n\nconst SlicesConfig = {\n toStatic(config: DynamicSlicesConfig, sharedSlices: Map<string, SharedSlice>): StaticSlicesConfig {\n const choices: {[key: string]: LegacySlice | CompositeSlice | SharedSlice } = Object.entries(config.choices || {})\n .reduce((acc, [ref, slice]) => {\n if(slice.type === SlicesTypes.SharedSlice) {\n const sharedSlice = sharedSlices.get(ref)\n if(sharedSlice) return { ...acc, [ref]: sharedSlice }\n else return acc\n } else {\n return { ...acc, [ref]: slice }\n }\n }, {})\n \n return { ...config, choices } as StaticSlicesConfig\n }\n}\n\nexport function slicesReader<F extends Format>(format: F) {\n return t.exact(\n t.intersection([\n t.type({\n type: t.union([t.literal(WidgetTypes.Slices), t.literal(WidgetTypes.LegacySlices)])\n }),\n t.partial({\n fieldset: StringOrNull,\n config: slicesConfigReader(format)\n })\n ])\n )\n}\n\nexport const StaticSlices = slicesReader(Format.Static)\nexport type StaticSlices = t.TypeOf<typeof StaticSlices>\n\nexport const DynamicSlices = slicesReader(Format.Dynamic)\nexport type DynamicSlices = t.TypeOf<typeof DynamicSlices>\n\nexport const Slices = {\n toStatic(slices: DynamicSlices, sharedSlices: Map<string, SharedSlice>): StaticSlices {\n if(!slices.config) return slices as StaticSlices\n else {\n return { ...slices, config: SlicesConfig.toStatic(slices.config, sharedSlices) }\n }\n }\n}\n","import * as t from 'io-ts'\n\nimport UID from './UID'\nimport NestableWidget from './nestable/NestableWidget'\nimport { slicesReader, Slices } from './slices/Slices'\nimport SharedSlice from './slices/SharedSlice'\nimport { Format } from '../Format'\nimport Group from './Group'\nimport WidgetTypes from './WidgetTypes'\n\nexport function widgetReader<F extends Format>(format: F){\n return t.union([\n UID,\n NestableWidget,\n Group,\n slicesReader(format)\n ])\n}\nexport const StaticWidget = widgetReader(Format.Static)\nexport type StaticWidget = t.TypeOf<typeof StaticWidget>\n\nexport const DynamicWidget = widgetReader(Format.Dynamic)\nexport type DynamicWidget = t.TypeOf<typeof DynamicWidget>\n\n\nexport const Widgets = {\n toStatic(widget: DynamicWidget, sharedSlices: Map<string, SharedSlice>): StaticWidget {\n switch(widget.type) {\n case WidgetTypes.Slices: return Slices.toStatic(widget, sharedSlices)\n default: return widget as StaticWidget\n }\n }\n}","import * as t from 'io-ts'\n\nimport { Format } from './Format'\nimport { widgetReader, StaticWidget, DynamicWidget, Widgets } from './widgets/Widget'\nimport SharedSlice from './widgets/slices/SharedSlice'\n\nexport function sectionReader<F extends Format>(format: F) {\n return t.record(t.string, widgetReader(format))\n}\n\nexport const StaticSection = sectionReader(Format.Static)\nexport type StaticSection = t.TypeOf<typeof StaticSection>\n\nexport const DynamicSection = sectionReader(Format.Dynamic)\nexport type DynamicSection = t.TypeOf<typeof DynamicSection>\n\nexport const Sections = {\n toStatic(dynamic: DynamicSection, sharedSlices: Map<string, SharedSlice>): StaticSection {\n const section = Object.entries(dynamic)\n .reduce((acc: { [key: string]: StaticWidget }, [widgetKey, widget]: [string, DynamicWidget]) => {\n return {...acc, [widgetKey]: Widgets.toStatic(widget, sharedSlices)}\n }, {})\n return section as StaticSection\n }\n}","import * as t from 'io-ts'\nimport { StringOrNull } from '../validators/StringOrNull'\nimport { Either, right, left } from 'fp-ts/lib/Either'\nimport { withFallback } from 'io-ts-types/lib/withFallback'\n\nimport { Format } from './Format'\nimport { DynamicWidget } from './widgets/Widget'\nimport SharedSlice from './widgets/slices/SharedSlice'\nimport { DynamicSlice } from './widgets/slices/Slice'\nimport { DynamicSlices } from './widgets/slices/Slices'\nimport WidgetTypes from './widgets/WidgetTypes'\nimport SlicesTypes from './widgets/slices/SlicesTypes'\n\nimport { StaticSection, DynamicSection, sectionReader, Sections } from './Section'\n\nclass CustomTypeSlicesError extends Error {\n slices: Array<string>\n message: string\n\n constructor(slices: Array<string>) {\n super()\n this.slices = slices\n this.message = this._formatError(slices)\n }\n\n _formatError(slicesRefs: Array<string>) {\n const slicesMsg = slicesRefs.map(ref => `\\t - ${ref}`);\n return (\n`The following slices doesn't exists in your Prismic repository:\n${slicesMsg.join('\\n')}\n`\n )\n }\n}\n\nfunction customTypeReader<F extends Format>(format: F) {\n return t.exact(\n t.intersection([\n t.type({\n id: t.string,\n label: StringOrNull,\n repeatable: withFallback(t.boolean, true),\n json: t.record(t.string, sectionReader(format)),\n status: withFallback(t.boolean, true)\n }),\n t.partial({\n hash: t.string\n })\n ])\n )\n}\n\nexport const StaticCustomType = customTypeReader(Format.Static)\nexport type StaticCustomType = t.TypeOf<typeof StaticCustomType>\n\nexport const CustomType = customTypeReader(Format.Dynamic)\nexport type CustomType = t.TypeOf<typeof CustomType>\n\nfunction _retrieveSharedSlicesRef(customType: CustomType): Array<string> {\n const flattenWidgets: Array<[string, DynamicWidget]> = Object.entries(customType.json)\n .reduce((acc: Array<[string, DynamicWidget]>, [, section]: [string, DynamicSection]) => {\n const sectionWidgets: Array<[string, DynamicWidget]> = Object.entries(section)\n return acc.concat(sectionWidgets);\n }, [])\n\n const slicezones = flattenWidgets.filter(([, widget]: [string, DynamicWidget]) => widget.type === WidgetTypes.Slices) as Array<[string, DynamicSlices]>\n\n const allSharedRefs = slicezones.reduce((acc: Array<string>, [, slicezone]) => {\n const sharedRefs = Object.entries(slicezone.config && slicezone.config.choices ? slicezone.config.choices : {})\n .filter(([, slice]: [string, DynamicSlice]) => slice.type === SlicesTypes.SharedSlice)\n .map(([key]) => key)\n return acc.concat(sharedRefs);\n }, []);\n\n return allSharedRefs\n}\n\nfunction _mapSharedSlicesRefs<A>(customType: CustomType): (mapFn: (ref: string) => A) => Array<A> {\n const refs = _retrieveSharedSlicesRef(customType)\n\n return function(mapFn: (ref: string) => A): Array<A> {\n return refs.map(mapFn)\n }\n}\n\nexport function toStatic(customType: CustomType, sharedSlices: Map<string, SharedSlice>): StaticCustomType {\n const json = Object.entries(customType.json)\n .reduce((acc: { [key: string]: StaticSection }, [sectionKey, dynSection]: [string, DynamicSection]) => {\n return { ...acc, [sectionKey]: Sections.toStatic(dynSection, sharedSlices) };\n }, {})\n\n return { ...customType, json } as StaticCustomType;\n}\n\nexport function validateSlices(customType: CustomType, sharedSlices: Map<string, SharedSlice>): Either<CustomTypeSlicesError, CustomType> {\n const missingSlices = _mapSharedSlicesRefs<string | undefined>(customType)((ref: string) => {\n const slice: SharedSlice | undefined = sharedSlices.get(ref)\n const isMissing = !Boolean(slice)\n if(isMissing) return ref\n }).filter(Boolean) as Array<string>\n\n if(missingSlices.length > 0) return left(new CustomTypeSlicesError(missingSlices))\n else return right(customType)\n}\n\nexport function collectWidgets(customType: CustomType, f:((ref: string, widget: DynamicWidget) => DynamicWidget|undefined)): CustomType {\n const json = Object.entries(customType.json)\n .reduce((acc, [sectionId, section]: [string, DynamicSection]) => {\n const updatedSection = Object\n .entries(section)\n .reduce((acc, [ref, widget]) => {\n const updatedWidget = f(ref, widget)\n if (!!updatedWidget) {\n return {...acc, [ref]: updatedWidget}\n }\n return acc;\n }, {});\n return {...acc, [sectionId]: updatedSection};\n }, {});\n\n return { ...customType, json };\n}\n\nexport function filterMissingSharedSlices(customType: CustomType, sharedSlices: Map<string, SharedSlice>): CustomType {\n return collectWidgets(customType, (_widgetId, widget) => {\n if (widget.type === WidgetTypes.Slices) {\n if(!widget.config || !widget.config.choices) return widget\n\n const choices = Object.entries(widget.config.choices)\n .reduce((acc, [ sliceId, sliceValue ]: [string, DynamicSlice]) => {\n if (sliceValue.type === SlicesTypes.SharedSlice && !sharedSlices.get(sliceId)) return acc\n return { ...acc, [sliceId]: sliceValue }\n }, {})\n\n const config = { ...widget.config, choices }\n\n return {...widget, config }\n }\n\n return widget\n })\n}"],"names":["Format","t","WidgetTypes","NumberFromString","pipe","chain","either","IntFromString","withFallback","SlicesTypes","left","right"],"mappings":"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"}
|