@prismicio/types-internal 4.5.0 → 4.5.1-pr.23.3d001b7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/content/codec/link.js +2 -2
- package/dist/content/codec/link.js.map +1 -1
- package/dist/content/codec/richText.js +24 -20
- package/dist/content/codec/richText.js.map +1 -1
- package/dist/content/codec/table.js +8 -0
- package/dist/content/codec/table.js.map +1 -1
- package/dist/content/legacy/link.js +2 -2
- package/dist/content/legacy/link.js.map +1 -1
- package/dist/content/legacy/richText.d.ts.map +1 -1
- package/dist/content/legacy/richText.js.map +1 -1
- package/dist/content/link.js +2 -2
- package/dist/content/link.js.map +1 -1
- package/dist/helpers/traverseContent.d.ts.map +1 -1
- package/dist/helpers/traverseContent.js +1 -0
- package/dist/helpers/traverseContent.js.map +1 -1
- package/dist/helpers/traverseContentWithModel.d.ts.map +1 -1
- package/dist/helpers/traverseContentWithModel.js +1 -0
- package/dist/helpers/traverseContentWithModel.js.map +1 -1
- package/dist/io-ts.d.ts +438 -438
- package/dist/io-ts.d.ts.map +1 -1
- package/dist/model/widget.d.ts +6 -6
- package/package.json +1 -1
- package/src/content/codec/link.ts +2 -2
- package/src/content/codec/richText.ts +29 -27
- package/src/content/codec/table.ts +6 -0
- package/src/content/legacy/link.ts +2 -2
- package/src/content/legacy/richText.ts +2 -0
- package/src/content/link.ts +2 -2
- package/src/helpers/traverseContent.ts +6 -0
- package/src/helpers/traverseContentWithModel.ts +6 -0
|
@@ -49,8 +49,8 @@ function linkLegacyToContent({ key, text, variant, ...legacy }) {
|
|
|
49
49
|
__TYPE__: LinkContentType,
|
|
50
50
|
key,
|
|
51
51
|
value: {
|
|
52
|
-
...text ? { text } : {},
|
|
53
|
-
...variant ? { variant } : {},
|
|
52
|
+
...typeof text === "string" ? { text } : {},
|
|
53
|
+
...typeof variant === "string" ? { variant } : {},
|
|
54
54
|
...linkLegacyToValue(legacy)
|
|
55
55
|
}
|
|
56
56
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","names":[],"sources":["../../../src/content/codec/link.ts"],"sourcesContent":["import type {\n\tEmptyLinkLegacyValue,\n\tFilledLinkLegacyValue,\n\tLinkLegacyValue,\n\tLinkLegacy,\n} from \"../legacy/link\"\nimport { LinkKind, LinkType, LinkLegacySchema } from \"../legacy/link\"\nimport { LinkContentSchema, LinkContentType } from \"../link\"\nimport type {\n\tEmptyLinkContentValue,\n\tFilledLinkContentValue,\n\tLinkContent,\n\tLinkContentValue,\n} from \"../link\"\nimport type { LegacyContentCtx, LegacyCodec } from \"./legacyContentCtx\"\n\n// Also used by content/codec/richText\nexport function linkLegacyToValue(value: FilledLinkLegacyValue): FilledLinkContentValue\nexport function linkLegacyToValue(value: EmptyLinkLegacyValue): EmptyLinkContentValue\nexport function linkLegacyToValue(value: LinkLegacyValue): LinkContentValue\nexport function linkLegacyToValue(\n\tvalue: Omit<LinkLegacy, \"text\" | \"variant\" | \"key\">,\n): Omit<LinkContent[\"value\"], \"text\" | \"variant\"> {\n\tlet content: Omit<LinkContent[\"value\"], \"text\" | \"variant\">\n\tswitch (value.kind) {\n\t\tcase LinkKind.Image:\n\t\t\tcontent = { __TYPE__: LinkType.Image, ...value }\n\t\t\tbreak\n\t\tcase LinkKind.File:\n\t\t\tcontent = { __TYPE__: LinkType.File, ...value }\n\t\t\tbreak\n\t\tcase LinkKind.Document:\n\t\t\tcontent = { __TYPE__: LinkType.Document, ...value }\n\t\t\tbreak\n\t\tcase LinkKind.External:\n\t\t\tcontent = { __TYPE__: LinkType.External, ...value }\n\t\t\tbreak\n\t\tcase LinkKind.Media:\n\t\t\tcontent = { __TYPE__: LinkType.Media, ...value }\n\t\t\tbreak\n\t\tcase LinkKind.Any:\n\t\tdefault:\n\t\t\tcontent = { __TYPE__: LinkType.Any, ...value }\n\t\t\tbreak\n\t}\n\n\treturn content\n}\n\n// Also used by content/codec/repeatable\nexport function linkLegacyToContent({ key, text, variant, ...legacy }: LinkLegacy): LinkContent {\n\treturn {\n\t\t__TYPE__: LinkContentType,\n\t\tkey,\n\t\tvalue: {\n\t\t\t...(text ? { text } : {}),\n\t\t\t...(variant ? { variant } : {}),\n\t\t\t...linkLegacyToValue(legacy),\n\t\t},\n\t}\n}\n\n// Also used by content/codec/richText\nexport function linkValueToLegacy(value: FilledLinkContentValue): FilledLinkLegacyValue\nexport function linkValueToLegacy(value: EmptyLinkContentValue): EmptyLinkLegacyValue\nexport function linkValueToLegacy(value: LinkContentValue): LinkLegacyValue {\n\tconst { __TYPE__, ...legacy } = value\n\treturn legacy\n}\n\nfunction linkContentToLegacy({ key, value }: LinkContent): LinkLegacy {\n\tconst { __TYPE__, ...legacy } = value\n\n\treturn { key, ...legacy }\n}\n\nexport const LinkLegacyCodec = (ctx: LegacyContentCtx): LegacyCodec<LinkContent, LinkLegacy> => ({\n\tname: \"LinkLegacy\",\n\n\tis(input): input is LinkContent {\n\t\treturn LinkContentSchema.safeParse(input).success\n\t},\n\n\ttoContent(input) {\n\t\tconst parsed = LinkLegacySchema.safeParse(input)\n\t\tif (!parsed.success) {\n\t\t\treturn parsed\n\t\t}\n\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tdata: linkLegacyToContent(parsed.data),\n\t\t}\n\t},\n\n\tfromContent(input) {\n\t\treturn {\n\t\t\tcontent: linkContentToLegacy(input),\n\t\t\ttypes: { [ctx.keyOfType]: \"Link\" },\n\t\t\tkeys: {},\n\t\t}\n\t},\n})\n"],"mappings":";;;AAoBA,SAAgB,kBACf,OACiD;CACjD,IAAI;AACJ,SAAQ,MAAM,MAAd;EACC,KAAK,SAAS;AACb,aAAU;IAAE,UAAU,SAAS;IAAO,GAAG;IAAO;AAChD;EACD,KAAK,SAAS;AACb,aAAU;IAAE,UAAU,SAAS;IAAM,GAAG;IAAO;AAC/C;EACD,KAAK,SAAS;AACb,aAAU;IAAE,UAAU,SAAS;IAAU,GAAG;IAAO;AACnD;EACD,KAAK,SAAS;AACb,aAAU;IAAE,UAAU,SAAS;IAAU,GAAG;IAAO;AACnD;EACD,KAAK,SAAS;AACb,aAAU;IAAE,UAAU,SAAS;IAAO,GAAG;IAAO;AAChD;EACD,KAAK,SAAS;EACd;AACC,aAAU;IAAE,UAAU,SAAS;IAAK,GAAG;IAAO;AAC9C;;AAGF,QAAO;;AAIR,SAAgB,oBAAoB,EAAE,KAAK,MAAM,SAAS,GAAG,UAAmC;AAC/F,QAAO;EACN,UAAU;EACV;EACA,OAAO;GACN,GAAI,OAAO,EAAE,MAAM,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"link.js","names":[],"sources":["../../../src/content/codec/link.ts"],"sourcesContent":["import type {\n\tEmptyLinkLegacyValue,\n\tFilledLinkLegacyValue,\n\tLinkLegacyValue,\n\tLinkLegacy,\n} from \"../legacy/link\"\nimport { LinkKind, LinkType, LinkLegacySchema } from \"../legacy/link\"\nimport { LinkContentSchema, LinkContentType } from \"../link\"\nimport type {\n\tEmptyLinkContentValue,\n\tFilledLinkContentValue,\n\tLinkContent,\n\tLinkContentValue,\n} from \"../link\"\nimport type { LegacyContentCtx, LegacyCodec } from \"./legacyContentCtx\"\n\n// Also used by content/codec/richText\nexport function linkLegacyToValue(value: FilledLinkLegacyValue): FilledLinkContentValue\nexport function linkLegacyToValue(value: EmptyLinkLegacyValue): EmptyLinkContentValue\nexport function linkLegacyToValue(value: LinkLegacyValue): LinkContentValue\nexport function linkLegacyToValue(\n\tvalue: Omit<LinkLegacy, \"text\" | \"variant\" | \"key\">,\n): Omit<LinkContent[\"value\"], \"text\" | \"variant\"> {\n\tlet content: Omit<LinkContent[\"value\"], \"text\" | \"variant\">\n\tswitch (value.kind) {\n\t\tcase LinkKind.Image:\n\t\t\tcontent = { __TYPE__: LinkType.Image, ...value }\n\t\t\tbreak\n\t\tcase LinkKind.File:\n\t\t\tcontent = { __TYPE__: LinkType.File, ...value }\n\t\t\tbreak\n\t\tcase LinkKind.Document:\n\t\t\tcontent = { __TYPE__: LinkType.Document, ...value }\n\t\t\tbreak\n\t\tcase LinkKind.External:\n\t\t\tcontent = { __TYPE__: LinkType.External, ...value }\n\t\t\tbreak\n\t\tcase LinkKind.Media:\n\t\t\tcontent = { __TYPE__: LinkType.Media, ...value }\n\t\t\tbreak\n\t\tcase LinkKind.Any:\n\t\tdefault:\n\t\t\tcontent = { __TYPE__: LinkType.Any, ...value }\n\t\t\tbreak\n\t}\n\n\treturn content\n}\n\n// Also used by content/codec/repeatable\nexport function linkLegacyToContent({ key, text, variant, ...legacy }: LinkLegacy): LinkContent {\n\treturn {\n\t\t__TYPE__: LinkContentType,\n\t\tkey,\n\t\tvalue: {\n\t\t\t...(typeof text === \"string\" ? { text } : {}),\n\t\t\t...(typeof variant === \"string\" ? { variant } : {}),\n\t\t\t...linkLegacyToValue(legacy),\n\t\t},\n\t}\n}\n\n// Also used by content/codec/richText\nexport function linkValueToLegacy(value: FilledLinkContentValue): FilledLinkLegacyValue\nexport function linkValueToLegacy(value: EmptyLinkContentValue): EmptyLinkLegacyValue\nexport function linkValueToLegacy(value: LinkContentValue): LinkLegacyValue {\n\tconst { __TYPE__, ...legacy } = value\n\treturn legacy\n}\n\nfunction linkContentToLegacy({ key, value }: LinkContent): LinkLegacy {\n\tconst { __TYPE__, ...legacy } = value\n\n\treturn { key, ...legacy }\n}\n\nexport const LinkLegacyCodec = (ctx: LegacyContentCtx): LegacyCodec<LinkContent, LinkLegacy> => ({\n\tname: \"LinkLegacy\",\n\n\tis(input): input is LinkContent {\n\t\treturn LinkContentSchema.safeParse(input).success\n\t},\n\n\ttoContent(input) {\n\t\tconst parsed = LinkLegacySchema.safeParse(input)\n\t\tif (!parsed.success) {\n\t\t\treturn parsed\n\t\t}\n\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tdata: linkLegacyToContent(parsed.data),\n\t\t}\n\t},\n\n\tfromContent(input) {\n\t\treturn {\n\t\t\tcontent: linkContentToLegacy(input),\n\t\t\ttypes: { [ctx.keyOfType]: \"Link\" },\n\t\t\tkeys: {},\n\t\t}\n\t},\n})\n"],"mappings":";;;AAoBA,SAAgB,kBACf,OACiD;CACjD,IAAI;AACJ,SAAQ,MAAM,MAAd;EACC,KAAK,SAAS;AACb,aAAU;IAAE,UAAU,SAAS;IAAO,GAAG;IAAO;AAChD;EACD,KAAK,SAAS;AACb,aAAU;IAAE,UAAU,SAAS;IAAM,GAAG;IAAO;AAC/C;EACD,KAAK,SAAS;AACb,aAAU;IAAE,UAAU,SAAS;IAAU,GAAG;IAAO;AACnD;EACD,KAAK,SAAS;AACb,aAAU;IAAE,UAAU,SAAS;IAAU,GAAG;IAAO;AACnD;EACD,KAAK,SAAS;AACb,aAAU;IAAE,UAAU,SAAS;IAAO,GAAG;IAAO;AAChD;EACD,KAAK,SAAS;EACd;AACC,aAAU;IAAE,UAAU,SAAS;IAAK,GAAG;IAAO;AAC9C;;AAGF,QAAO;;AAIR,SAAgB,oBAAoB,EAAE,KAAK,MAAM,SAAS,GAAG,UAAmC;AAC/F,QAAO;EACN,UAAU;EACV;EACA,OAAO;GACN,GAAI,OAAO,SAAS,WAAW,EAAE,MAAM,GAAG,EAAE;GAC5C,GAAI,OAAO,YAAY,WAAW,EAAE,SAAS,GAAG,EAAE;GAClD,GAAG,kBAAkB,OAAO;GAC5B;EACD;;AAMF,SAAgB,kBAAkB,OAA0C;CAC3E,MAAM,EAAE,UAAU,GAAG,WAAW;AAChC,QAAO;;AAGR,SAAS,oBAAoB,EAAE,KAAK,SAAkC;CACrE,MAAM,EAAE,UAAU,GAAG,WAAW;AAEhC,QAAO;EAAE;EAAK,GAAG;EAAQ;;AAG1B,MAAa,mBAAmB,SAAiE;CAChG,MAAM;CAEN,GAAG,OAA6B;AAC/B,SAAO,kBAAkB,UAAU,MAAM,CAAC;;CAG3C,UAAU,OAAO;EAChB,MAAM,SAAS,iBAAiB,UAAU,MAAM;AAChD,MAAI,CAAC,OAAO,QACX,QAAO;AAGR,SAAO;GACN,SAAS;GACT,MAAM,oBAAoB,OAAO,KAAK;GACtC;;CAGF,YAAY,OAAO;AAClB,SAAO;GACN,SAAS,oBAAoB,MAAM;GACnC,OAAO,GAAG,IAAI,YAAY,QAAQ;GAClC,MAAM,EAAE;GACR;;CAEF"}
|
|
@@ -16,17 +16,18 @@ function blockLegacyToValue(block) {
|
|
|
16
16
|
...block.data.linkTo ? { linkTo: linkLegacyToValue(block.data.linkTo) } : {}
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
|
+
const spans = [];
|
|
20
|
+
for (const span of block.content.spans ?? []) if (span.type === RichTextNodeType.hyperlink) {
|
|
21
|
+
if (span.data) spans.push({
|
|
22
|
+
...span,
|
|
23
|
+
data: linkLegacyToValue(span.data)
|
|
24
|
+
});
|
|
25
|
+
} else spans.push(span);
|
|
19
26
|
return {
|
|
20
27
|
...block,
|
|
21
28
|
content: {
|
|
22
29
|
...block.content,
|
|
23
|
-
spans
|
|
24
|
-
if (span.type === RichTextNodeType.hyperlink) return {
|
|
25
|
-
...span,
|
|
26
|
-
data: linkLegacyToValue(span.data)
|
|
27
|
-
};
|
|
28
|
-
return span;
|
|
29
|
-
})
|
|
30
|
+
spans
|
|
30
31
|
}
|
|
31
32
|
};
|
|
32
33
|
}
|
|
@@ -42,19 +43,22 @@ function blockValueToLegacy(block) {
|
|
|
42
43
|
...block.data.linkTo ? { linkTo: linkValueToLegacy(block.data.linkTo) } : {}
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
|
-
if ("content" in block)
|
|
46
|
-
|
|
47
|
-
content
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
if ("content" in block) {
|
|
47
|
+
const spans = [];
|
|
48
|
+
for (const span of block.content.spans ?? []) if (span.type === RichTextNodeType.hyperlink) {
|
|
49
|
+
if (span.data) spans.push({
|
|
50
|
+
...span,
|
|
51
|
+
data: linkValueToLegacy(span.data)
|
|
52
|
+
});
|
|
53
|
+
} else spans.push(span);
|
|
54
|
+
return {
|
|
55
|
+
...block,
|
|
56
|
+
content: {
|
|
57
|
+
...block.content,
|
|
58
|
+
spans
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
58
62
|
return RichTextLegacyBlockSchema.parse(block);
|
|
59
63
|
}
|
|
60
64
|
const RichTextLegacyCodec = (ctx) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"richText.js","names":[],"sources":["../../../src/content/codec/richText.ts"],"sourcesContent":["import type { RichTextLegacyBlock,
|
|
1
|
+
{"version":3,"file":"richText.js","names":[],"sources":["../../../src/content/codec/richText.ts"],"sourcesContent":["import type { RichTextLegacy, RichTextLegacyBlock, RichTextLegacySpan } from \"../legacy/richText\"\nimport {\n\tRichTextLegacyBlockSchema,\n\tRichTextLegacySchema,\n\tRichTextNodeType,\n} from \"../legacy/richText\"\nimport type { RichTextContent, RichTextContentBlock, RichTextContentSpan } from \"../richText\"\nimport { RichTextContentSchema, RichTextContentType } from \"../richText\"\nimport { embedContentToLegacy, embedLegacyToContent } from \"./embed\"\nimport { imageLegacyToContent } from \"./image\"\nimport type { LegacyCodec, LegacyContentCtx } from \"./legacyContentCtx\"\nimport { linkLegacyToValue, linkValueToLegacy } from \"./link\"\n\n// Also used by content/codec/table\nexport function blockLegacyToValue(block: RichTextLegacyBlock): RichTextContentBlock {\n\tif (block.type === RichTextNodeType.embed) {\n\t\treturn {\n\t\t\t...block,\n\t\t\tdata: embedLegacyToContent(block.data),\n\t\t}\n\t}\n\n\tif (block.type === RichTextNodeType.image) {\n\t\treturn {\n\t\t\t...block,\n\t\t\tdata: {\n\t\t\t\t...imageLegacyToContent(block.data),\n\t\t\t\t...(block.data.linkTo ? { linkTo: linkLegacyToValue(block.data.linkTo) } : {}),\n\t\t\t},\n\t\t}\n\t}\n\n\tconst spans: RichTextContentSpan[] = []\n\tfor (const span of block.content.spans ?? []) {\n\t\tif (span.type === RichTextNodeType.hyperlink) {\n\t\t\t// Legacy documents can have hyperlink spans with null data. We\n\t\t\t// drop them since a hyperlink without link data is meaningless.\n\t\t\tif (span.data) {\n\t\t\t\tspans.push({ ...span, data: linkLegacyToValue(span.data) })\n\t\t\t}\n\t\t} else {\n\t\t\tspans.push(span)\n\t\t}\n\t}\n\n\treturn { ...block, content: { ...block.content, spans } }\n}\n\n// Also used by content/codec/table\nexport function blockValueToLegacy(block: RichTextContentBlock): RichTextLegacyBlock {\n\tif (block.type === RichTextNodeType.embed) {\n\t\treturn {\n\t\t\t...block,\n\t\t\tdata: embedContentToLegacy(block.data),\n\t\t}\n\t}\n\n\tif (block.type === RichTextNodeType.image) {\n\t\treturn {\n\t\t\t...block,\n\t\t\tdata: {\n\t\t\t\t...block.data,\n\t\t\t\t...(block.data.linkTo ? { linkTo: linkValueToLegacy(block.data.linkTo) } : {}),\n\t\t\t},\n\t\t}\n\t}\n\n\tif (\"content\" in block) {\n\t\tconst spans: RichTextLegacySpan[] = []\n\t\tfor (const span of block.content.spans ?? []) {\n\t\t\tif (span.type === RichTextNodeType.hyperlink) {\n\t\t\t\t// Legacy documents can have hyperlink spans with null data. We\n\t\t\t\t// drop them since a hyperlink without link data is meaningless.\n\t\t\t\tif (span.data) {\n\t\t\t\t\tspans.push({ ...span, data: linkValueToLegacy(span.data) })\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tspans.push(span)\n\t\t\t}\n\t\t}\n\n\t\treturn { ...block, content: { ...block.content, spans } }\n\t}\n\n\treturn RichTextLegacyBlockSchema.parse(block)\n}\n\nexport const RichTextLegacyCodec = (\n\tctx: LegacyContentCtx,\n): LegacyCodec<RichTextContent, RichTextLegacy> => ({\n\tname: \"RichTextLegacy\",\n\n\tis(input): input is RichTextContent {\n\t\treturn RichTextContentSchema.safeParse(input).success\n\t},\n\n\ttoContent(input) {\n\t\tconst parsed = RichTextLegacySchema.safeParse(input)\n\t\tif (!parsed.success) {\n\t\t\treturn parsed\n\t\t}\n\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tdata: {\n\t\t\t\tvalue: parsed.data.map((block) => blockLegacyToValue(block)),\n\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t},\n\t\t}\n\t},\n\n\tfromContent(input) {\n\t\treturn {\n\t\t\tcontent: input.value.map((block) => blockValueToLegacy(block)),\n\t\t\ttypes: { [ctx.keyOfType]: \"StructuredText\" },\n\t\t\tkeys: {},\n\t\t}\n\t},\n})\n"],"mappings":";;;;;;AAcA,SAAgB,mBAAmB,OAAkD;AACpF,KAAI,MAAM,SAAS,iBAAiB,MACnC,QAAO;EACN,GAAG;EACH,MAAM,qBAAqB,MAAM,KAAK;EACtC;AAGF,KAAI,MAAM,SAAS,iBAAiB,MACnC,QAAO;EACN,GAAG;EACH,MAAM;GACL,GAAG,qBAAqB,MAAM,KAAK;GACnC,GAAI,MAAM,KAAK,SAAS,EAAE,QAAQ,kBAAkB,MAAM,KAAK,OAAO,EAAE,GAAG,EAAE;GAC7E;EACD;CAGF,MAAM,QAA+B,EAAE;AACvC,MAAK,MAAM,QAAQ,MAAM,QAAQ,SAAS,EAAE,CAC3C,KAAI,KAAK,SAAS,iBAAiB;MAG9B,KAAK,KACR,OAAM,KAAK;GAAE,GAAG;GAAM,MAAM,kBAAkB,KAAK,KAAK;GAAE,CAAC;OAG5D,OAAM,KAAK,KAAK;AAIlB,QAAO;EAAE,GAAG;EAAO,SAAS;GAAE,GAAG,MAAM;GAAS;GAAO;EAAE;;AAI1D,SAAgB,mBAAmB,OAAkD;AACpF,KAAI,MAAM,SAAS,iBAAiB,MACnC,QAAO;EACN,GAAG;EACH,MAAM,qBAAqB,MAAM,KAAK;EACtC;AAGF,KAAI,MAAM,SAAS,iBAAiB,MACnC,QAAO;EACN,GAAG;EACH,MAAM;GACL,GAAG,MAAM;GACT,GAAI,MAAM,KAAK,SAAS,EAAE,QAAQ,kBAAkB,MAAM,KAAK,OAAO,EAAE,GAAG,EAAE;GAC7E;EACD;AAGF,KAAI,aAAa,OAAO;EACvB,MAAM,QAA8B,EAAE;AACtC,OAAK,MAAM,QAAQ,MAAM,QAAQ,SAAS,EAAE,CAC3C,KAAI,KAAK,SAAS,iBAAiB;OAG9B,KAAK,KACR,OAAM,KAAK;IAAE,GAAG;IAAM,MAAM,kBAAkB,KAAK,KAAK;IAAE,CAAC;QAG5D,OAAM,KAAK,KAAK;AAIlB,SAAO;GAAE,GAAG;GAAO,SAAS;IAAE,GAAG,MAAM;IAAS;IAAO;GAAE;;AAG1D,QAAO,0BAA0B,MAAM,MAAM;;AAG9C,MAAa,uBACZ,SACmD;CACnD,MAAM;CAEN,GAAG,OAAiC;AACnC,SAAO,sBAAsB,UAAU,MAAM,CAAC;;CAG/C,UAAU,OAAO;EAChB,MAAM,SAAS,qBAAqB,UAAU,MAAM;AACpD,MAAI,CAAC,OAAO,QACX,QAAO;AAGR,SAAO;GACN,SAAS;GACT,MAAM;IACL,OAAO,OAAO,KAAK,KAAK,UAAU,mBAAmB,MAAM,CAAC;IAC5D,UAAU;IACV;GACD;;CAGF,YAAY,OAAO;AAClB,SAAO;GACN,SAAS,MAAM,MAAM,KAAK,UAAU,mBAAmB,MAAM,CAAC;GAC9D,OAAO,GAAG,IAAI,YAAY,kBAAkB;GAC5C,MAAM,EAAE;GACR;;CAEF"}
|
|
@@ -35,9 +35,17 @@ const TableLegacyCodec = (ctx) => ({
|
|
|
35
35
|
fromContent(input) {
|
|
36
36
|
return {
|
|
37
37
|
content: { content: input.content.map((row) => {
|
|
38
|
+
if (!Array.isArray(row.content)) return {
|
|
39
|
+
...row,
|
|
40
|
+
content: []
|
|
41
|
+
};
|
|
38
42
|
return {
|
|
39
43
|
...row,
|
|
40
44
|
content: row.content.map((cell) => {
|
|
45
|
+
if (!cell.content?.value) return {
|
|
46
|
+
...cell,
|
|
47
|
+
content: []
|
|
48
|
+
};
|
|
41
49
|
return {
|
|
42
50
|
...cell,
|
|
43
51
|
content: cell.content.value.map((block) => blockValueToLegacy(block))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","names":[],"sources":["../../../src/content/codec/table.ts"],"sourcesContent":["import { TableLegacySchema } from \"../legacy/table\"\nimport type { TableLegacy } from \"../legacy/table\"\nimport { RichTextContentType } from \"../richText\"\nimport { TableContentSchema, TableContentType } from \"../table\"\nimport type { TableContent } from \"../table\"\nimport type { LegacyContentCtx, LegacyCodec } from \"./legacyContentCtx\"\nimport { blockLegacyToValue, blockValueToLegacy } from \"./richText\"\n\nexport const TableLegacyCodec = (\n\tctx: LegacyContentCtx,\n): LegacyCodec<TableContent, TableLegacy> => ({\n\tname: \"TableLegacy\",\n\n\tis(input): input is TableContent {\n\t\treturn TableContentSchema.safeParse(input).success\n\t},\n\n\ttoContent(input) {\n\t\tconst parsed = TableLegacySchema.safeParse(input)\n\t\tif (!parsed.success) {\n\t\t\treturn parsed\n\t\t}\n\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tdata: {\n\t\t\t\t__TYPE__: TableContentType,\n\t\t\t\tcontent: parsed.data.content.map((row) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...row,\n\t\t\t\t\t\tcontent: row.content.map((cell) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...cell,\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\t\t\t\tvalue: cell.content.map((block) => blockLegacyToValue(block)),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t},\n\t\t}\n\t},\n\n\tfromContent(input) {\n\t\treturn {\n\t\t\tcontent: {\n\t\t\t\tcontent: input.content.map((row) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...row,\n\t\t\t\t\t\tcontent: row.content.map((cell) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...cell,\n\t\t\t\t\t\t\t\tcontent: cell.content.value.map((block) => blockValueToLegacy(block)),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t},\n\t\t\ttypes: { [ctx.keyOfType]: \"Table\" },\n\t\t\tkeys: {},\n\t\t}\n\t},\n})\n"],"mappings":";;;;;AAQA,MAAa,oBACZ,SAC6C;CAC7C,MAAM;CAEN,GAAG,OAA8B;AAChC,SAAO,mBAAmB,UAAU,MAAM,CAAC;;CAG5C,UAAU,OAAO;EAChB,MAAM,SAAS,kBAAkB,UAAU,MAAM;AACjD,MAAI,CAAC,OAAO,QACX,QAAO;AAGR,SAAO;GACN,SAAS;GACT,MAAM;IACL,UAAU;IACV,SAAS,OAAO,KAAK,QAAQ,KAAK,QAAQ;AACzC,YAAO;MACN,GAAG;MACH,SAAS,IAAI,QAAQ,KAAK,SAAS;AAClC,cAAO;QACN,GAAG;QACH,SAAS;SACR,UAAU;SACV,OAAO,KAAK,QAAQ,KAAK,UAAU,mBAAmB,MAAM,CAAC;SAC7D;QACD;QACA;MACF;MACA;IACF;GACD;;CAGF,YAAY,OAAO;AAClB,SAAO;GACN,SAAS,EACR,SAAS,MAAM,QAAQ,KAAK,QAAQ;AACnC,WAAO;KACN,GAAG;KACH,SAAS,IAAI,QAAQ,KAAK,SAAS;AAClC,aAAO;OACN,GAAG;OACH,SAAS,KAAK,QAAQ,MAAM,KAAK,UAAU,mBAAmB,MAAM,CAAC;OACrE;OACA;KACF;KACA,EACF;GACD,OAAO,GAAG,IAAI,YAAY,SAAS;GACnC,MAAM,EAAE;GACR;;CAEF"}
|
|
1
|
+
{"version":3,"file":"table.js","names":[],"sources":["../../../src/content/codec/table.ts"],"sourcesContent":["import { TableLegacySchema } from \"../legacy/table\"\nimport type { TableLegacy } from \"../legacy/table\"\nimport { RichTextContentType } from \"../richText\"\nimport { TableContentSchema, TableContentType } from \"../table\"\nimport type { TableContent } from \"../table\"\nimport type { LegacyContentCtx, LegacyCodec } from \"./legacyContentCtx\"\nimport { blockLegacyToValue, blockValueToLegacy } from \"./richText\"\n\nexport const TableLegacyCodec = (\n\tctx: LegacyContentCtx,\n): LegacyCodec<TableContent, TableLegacy> => ({\n\tname: \"TableLegacy\",\n\n\tis(input): input is TableContent {\n\t\treturn TableContentSchema.safeParse(input).success\n\t},\n\n\ttoContent(input) {\n\t\tconst parsed = TableLegacySchema.safeParse(input)\n\t\tif (!parsed.success) {\n\t\t\treturn parsed\n\t\t}\n\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tdata: {\n\t\t\t\t__TYPE__: TableContentType,\n\t\t\t\tcontent: parsed.data.content.map((row) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...row,\n\t\t\t\t\t\tcontent: row.content.map((cell) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...cell,\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\t\t\t\tvalue: cell.content.map((block) => blockLegacyToValue(block)),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t},\n\t\t}\n\t},\n\n\tfromContent(input) {\n\t\treturn {\n\t\t\tcontent: {\n\t\t\t\tcontent: input.content.map((row) => {\n\t\t\t\t\tif (!Array.isArray(row.content)) {\n\t\t\t\t\t\treturn { ...row, content: [] }\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...row,\n\t\t\t\t\t\tcontent: row.content.map((cell) => {\n\t\t\t\t\t\t\tif (!cell.content?.value) {\n\t\t\t\t\t\t\t\treturn { ...cell, content: [] }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...cell,\n\t\t\t\t\t\t\t\tcontent: cell.content.value.map((block) => blockValueToLegacy(block)),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t},\n\t\t\ttypes: { [ctx.keyOfType]: \"Table\" },\n\t\t\tkeys: {},\n\t\t}\n\t},\n})\n"],"mappings":";;;;;AAQA,MAAa,oBACZ,SAC6C;CAC7C,MAAM;CAEN,GAAG,OAA8B;AAChC,SAAO,mBAAmB,UAAU,MAAM,CAAC;;CAG5C,UAAU,OAAO;EAChB,MAAM,SAAS,kBAAkB,UAAU,MAAM;AACjD,MAAI,CAAC,OAAO,QACX,QAAO;AAGR,SAAO;GACN,SAAS;GACT,MAAM;IACL,UAAU;IACV,SAAS,OAAO,KAAK,QAAQ,KAAK,QAAQ;AACzC,YAAO;MACN,GAAG;MACH,SAAS,IAAI,QAAQ,KAAK,SAAS;AAClC,cAAO;QACN,GAAG;QACH,SAAS;SACR,UAAU;SACV,OAAO,KAAK,QAAQ,KAAK,UAAU,mBAAmB,MAAM,CAAC;SAC7D;QACD;QACA;MACF;MACA;IACF;GACD;;CAGF,YAAY,OAAO;AAClB,SAAO;GACN,SAAS,EACR,SAAS,MAAM,QAAQ,KAAK,QAAQ;AACnC,QAAI,CAAC,MAAM,QAAQ,IAAI,QAAQ,CAC9B,QAAO;KAAE,GAAG;KAAK,SAAS,EAAE;KAAE;AAE/B,WAAO;KACN,GAAG;KACH,SAAS,IAAI,QAAQ,KAAK,SAAS;AAClC,UAAI,CAAC,KAAK,SAAS,MAClB,QAAO;OAAE,GAAG;OAAM,SAAS,EAAE;OAAE;AAEhC,aAAO;OACN,GAAG;OACH,SAAS,KAAK,QAAQ,MAAM,KAAK,UAAU,mBAAmB,MAAM,CAAC;OACrE;OACA;KACF;KACA,EACF;GACD,OAAO,GAAG,IAAI,YAAY,SAAS;GACnC,MAAM,EAAE;GACR;;CAEF"}
|
|
@@ -78,8 +78,8 @@ const LinkLegacySchema = z.pipe(z.pipe(z.pipe(z.record(z.string(), z.unknown()),
|
|
|
78
78
|
value: LinkLegacyValueSchema
|
|
79
79
|
})), z.transform(({ key, text, variant, value }) => ({
|
|
80
80
|
key: z.uuidv4().safeParse(key).data ?? crypto.randomUUID(),
|
|
81
|
-
...text ? { text } : {},
|
|
82
|
-
...variant ? { variant } : {},
|
|
81
|
+
...typeof text === "string" ? { text } : {},
|
|
82
|
+
...typeof variant === "string" ? { variant } : {},
|
|
83
83
|
...value
|
|
84
84
|
})));
|
|
85
85
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","names":[],"sources":["../../../src/content/legacy/link.ts"],"sourcesContent":["import { z } from \"zod/mini\"\n\nimport { NonEmptyStringSchema } from \"../../common/nonEmptyString\"\n\nexport const LinkKind = {\n\tImage: \"image\",\n\tFile: \"file\",\n\tMedia: \"media\",\n\tDocument: \"document\",\n\tExternal: \"web\",\n\tAny: \"any\",\n} as const\n\nexport const LinkType = {\n\tImage: \"ImageLink\",\n\tFile: \"FileLink\",\n\tDocument: \"DocumentLink\",\n\tExternal: \"ExternalLink\",\n\tMedia: \"MediaLink\",\n\tAny: \"AnyLink\",\n} as const\n\n// Image\nexport const FilledImageLinkLegacyValueSchema = z.object({\n\t// `kind` was normalized to the literal (legacy behavior)\n\tkind: z.pipe(\n\t\tz.string(),\n\t\tz.transform(() => LinkKind.Image),\n\t),\n\tid: z.string(),\n\turl: z.string(),\n\theight: z.string(),\n\twidth: z.string(),\n\tsize: z.string(),\n\tname: z.string(),\n\tdate: z.nullish(z.string()),\n})\n\nexport const EmptyImageLinkLegacyValueSchema = z.strictObject({\n\tkind: z.literal(LinkKind.Image),\n})\n\n// File\nexport const FilledFileLinkLegacyValueSchema = z.object({\n\t// `kind` was normalized to the literal (legacy behavior)\n\tkind: z.pipe(\n\t\tz.string(),\n\t\tz.transform(() => LinkKind.File),\n\t),\n\tid: z.string(),\n\turl: z.string(),\n\tname: z.string(),\n\tsize: z.transform((value) => (typeof value === \"string\" ? value : \"0\")),\n\tdate: z.nullish(z.string()),\n})\n\nexport const EmptyFileLinkLegacyValueSchema = z.strictObject({\n\tkind: z.literal(LinkKind.File),\n})\n\n// Media\n\n// Media link only represent the empty state as they turn into\n// file or image links when they filled.\nexport const EmptyMediaLinkLegacyValueSchema = z.strictObject({\n\tkind: z.literal(LinkKind.Media),\n})\n\n// Document\nexport const FilledDocumentLinkLegacyValueSchema = z.object({\n\t// `kind` is not part of the filled schema... (legacy behavior)\n\t// We transform it to the literal for consistency.\n\tkind: z.pipe(\n\t\tz.optional(z.literal(LinkKind.Document)),\n\t\tz.transform(() => LinkKind.Document),\n\t),\n\tid: NonEmptyStringSchema,\n})\n\nexport const EmptyDocumentLinkLegacyValueSchema = z.strictObject({\n\tkind: z.literal(LinkKind.Document),\n})\n\n// External\nexport const FilledExternalLinkLegacyValueSchema = z.object({\n\t// It's odd that `kind` is optional here... (legacy behavior)\n\t// We transform it to the literal for consistency.\n\tkind: z.pipe(\n\t\tz.optional(z.literal(LinkKind.External)),\n\t\tz.transform(() => LinkKind.External),\n\t),\n\turl: z.string(),\n\ttarget: z.nullish(z.string()),\n\tpreview: z.nullish(\n\t\tz.strictObject({\n\t\t\ttitle: z.optional(z.string()),\n\t\t}),\n\t),\n})\n\nexport const EmptyExternalLinkLegacyValueSchema = z.strictObject({\n\tkind: z.literal(LinkKind.External),\n})\n\n// Any\nexport const AnyLinkLegacySchema = z.strictObject({\n\tkind: z.transform(() => LinkKind.Any),\n})\n\n// All\n\nexport const FilledLinkLegacyValueSchema: z.ZodMiniType<FilledLinkLegacyValue> = z.union([\n\tFilledImageLinkLegacyValueSchema,\n\tFilledFileLinkLegacyValueSchema,\n\tFilledDocumentLinkLegacyValueSchema,\n\tFilledExternalLinkLegacyValueSchema,\n])\n\ntype FilledImageLinkLegacyValue = z.infer<typeof FilledImageLinkLegacyValueSchema>\ntype FilledFileLinkLegacyValue = z.infer<typeof FilledFileLinkLegacyValueSchema>\ntype FilledDocumentLinkLegacyValue = z.infer<typeof FilledDocumentLinkLegacyValueSchema>\ntype FilledExternalLinkLegacyValue = z.infer<typeof FilledExternalLinkLegacyValueSchema>\nexport type FilledLinkLegacyValue =\n\t| FilledImageLinkLegacyValue\n\t| FilledFileLinkLegacyValue\n\t| FilledDocumentLinkLegacyValue\n\t| FilledExternalLinkLegacyValue\n\nconst EmptyLinkLegacyValueSchema: z.ZodMiniType<EmptyLinkLegacyValue> = z.union([\n\tEmptyImageLinkLegacyValueSchema,\n\tEmptyFileLinkLegacyValueSchema,\n\tEmptyMediaLinkLegacyValueSchema,\n\tEmptyDocumentLinkLegacyValueSchema,\n\tEmptyExternalLinkLegacyValueSchema,\n\tAnyLinkLegacySchema,\n])\n\ntype EmptyImageLinkLegacyValue = z.infer<typeof EmptyImageLinkLegacyValueSchema>\ntype EmptyFileLinkLegacyValue = z.infer<typeof EmptyFileLinkLegacyValueSchema>\ntype EmptyMediaLinkLegacyValue = z.infer<typeof EmptyMediaLinkLegacyValueSchema>\ntype EmptyDocumentLinkLegacyValue = z.infer<typeof EmptyDocumentLinkLegacyValueSchema>\ntype EmptyExternalLinkLegacyValue = z.infer<typeof EmptyExternalLinkLegacyValueSchema>\ntype AnyLinkLegacy = z.infer<typeof AnyLinkLegacySchema>\nexport type EmptyLinkLegacyValue =\n\t| EmptyImageLinkLegacyValue\n\t| EmptyFileLinkLegacyValue\n\t| EmptyMediaLinkLegacyValue\n\t| EmptyDocumentLinkLegacyValue\n\t| EmptyExternalLinkLegacyValue\n\t| AnyLinkLegacy\n\nconst LinkLegacyValueSchema: z.ZodMiniType<LinkLegacyValue> = z.union([\n\tFilledLinkLegacyValueSchema,\n\tEmptyLinkLegacyValueSchema,\n])\n\nexport type LinkLegacyValue = FilledLinkLegacyValue | EmptyLinkLegacyValue\n\n// We cannot use z.extend here because we're working with unions.\n// z.intersection wouldn't work also for the same reason.\nexport const LinkLegacySchema = z.pipe(\n\tz.pipe(\n\t\tz.pipe(\n\t\t\tz.record(z.string(), z.unknown()),\n\t\t\tz.transform(\n\t\t\t\t({\n\t\t\t\t\tkey,\n\t\t\t\t\ttext,\n\t\t\t\t\tvariant,\n\t\t\t\t\t...value\n\t\t\t\t}): {\n\t\t\t\t\tkey?: unknown\n\t\t\t\t\ttext?: unknown\n\t\t\t\t\tvariant?: unknown\n\t\t\t\t\tvalue: Record<string, unknown>\n\t\t\t\t} => ({ key, text, variant, value }),\n\t\t\t),\n\t\t),\n\t\tz.object({\n\t\t\tkey: z.optional(z.string()),\n\t\t\ttext: z.optional(z.string()),\n\t\t\tvariant: z.optional(z.string()),\n\t\t\tvalue: LinkLegacyValueSchema as z.ZodMiniType<LinkLegacyValue, Record<string, unknown>>,\n\t\t}),\n\t),\n\tz.transform(({ key, text, variant, value }) => ({\n\t\tkey: z.uuidv4().safeParse(key).data ?? crypto.randomUUID(),\n\t\t...(text ? { text } : {}),\n\t\t...(variant ? { variant } : {}),\n\t\t...value,\n\t})),\n)\n\nexport type LinkLegacy = z.infer<typeof LinkLegacySchema>\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"link.js","names":[],"sources":["../../../src/content/legacy/link.ts"],"sourcesContent":["import { z } from \"zod/mini\"\n\nimport { NonEmptyStringSchema } from \"../../common/nonEmptyString\"\n\nexport const LinkKind = {\n\tImage: \"image\",\n\tFile: \"file\",\n\tMedia: \"media\",\n\tDocument: \"document\",\n\tExternal: \"web\",\n\tAny: \"any\",\n} as const\n\nexport const LinkType = {\n\tImage: \"ImageLink\",\n\tFile: \"FileLink\",\n\tDocument: \"DocumentLink\",\n\tExternal: \"ExternalLink\",\n\tMedia: \"MediaLink\",\n\tAny: \"AnyLink\",\n} as const\n\n// Image\nexport const FilledImageLinkLegacyValueSchema = z.object({\n\t// `kind` was normalized to the literal (legacy behavior)\n\tkind: z.pipe(\n\t\tz.string(),\n\t\tz.transform(() => LinkKind.Image),\n\t),\n\tid: z.string(),\n\turl: z.string(),\n\theight: z.string(),\n\twidth: z.string(),\n\tsize: z.string(),\n\tname: z.string(),\n\tdate: z.nullish(z.string()),\n})\n\nexport const EmptyImageLinkLegacyValueSchema = z.strictObject({\n\tkind: z.literal(LinkKind.Image),\n})\n\n// File\nexport const FilledFileLinkLegacyValueSchema = z.object({\n\t// `kind` was normalized to the literal (legacy behavior)\n\tkind: z.pipe(\n\t\tz.string(),\n\t\tz.transform(() => LinkKind.File),\n\t),\n\tid: z.string(),\n\turl: z.string(),\n\tname: z.string(),\n\tsize: z.transform((value) => (typeof value === \"string\" ? value : \"0\")),\n\tdate: z.nullish(z.string()),\n})\n\nexport const EmptyFileLinkLegacyValueSchema = z.strictObject({\n\tkind: z.literal(LinkKind.File),\n})\n\n// Media\n\n// Media link only represent the empty state as they turn into\n// file or image links when they filled.\nexport const EmptyMediaLinkLegacyValueSchema = z.strictObject({\n\tkind: z.literal(LinkKind.Media),\n})\n\n// Document\nexport const FilledDocumentLinkLegacyValueSchema = z.object({\n\t// `kind` is not part of the filled schema... (legacy behavior)\n\t// We transform it to the literal for consistency.\n\tkind: z.pipe(\n\t\tz.optional(z.literal(LinkKind.Document)),\n\t\tz.transform(() => LinkKind.Document),\n\t),\n\tid: NonEmptyStringSchema,\n})\n\nexport const EmptyDocumentLinkLegacyValueSchema = z.strictObject({\n\tkind: z.literal(LinkKind.Document),\n})\n\n// External\nexport const FilledExternalLinkLegacyValueSchema = z.object({\n\t// It's odd that `kind` is optional here... (legacy behavior)\n\t// We transform it to the literal for consistency.\n\tkind: z.pipe(\n\t\tz.optional(z.literal(LinkKind.External)),\n\t\tz.transform(() => LinkKind.External),\n\t),\n\turl: z.string(),\n\ttarget: z.nullish(z.string()),\n\tpreview: z.nullish(\n\t\tz.strictObject({\n\t\t\ttitle: z.optional(z.string()),\n\t\t}),\n\t),\n})\n\nexport const EmptyExternalLinkLegacyValueSchema = z.strictObject({\n\tkind: z.literal(LinkKind.External),\n})\n\n// Any\nexport const AnyLinkLegacySchema = z.strictObject({\n\tkind: z.transform(() => LinkKind.Any),\n})\n\n// All\n\nexport const FilledLinkLegacyValueSchema: z.ZodMiniType<FilledLinkLegacyValue> = z.union([\n\tFilledImageLinkLegacyValueSchema,\n\tFilledFileLinkLegacyValueSchema,\n\tFilledDocumentLinkLegacyValueSchema,\n\tFilledExternalLinkLegacyValueSchema,\n])\n\ntype FilledImageLinkLegacyValue = z.infer<typeof FilledImageLinkLegacyValueSchema>\ntype FilledFileLinkLegacyValue = z.infer<typeof FilledFileLinkLegacyValueSchema>\ntype FilledDocumentLinkLegacyValue = z.infer<typeof FilledDocumentLinkLegacyValueSchema>\ntype FilledExternalLinkLegacyValue = z.infer<typeof FilledExternalLinkLegacyValueSchema>\nexport type FilledLinkLegacyValue =\n\t| FilledImageLinkLegacyValue\n\t| FilledFileLinkLegacyValue\n\t| FilledDocumentLinkLegacyValue\n\t| FilledExternalLinkLegacyValue\n\nconst EmptyLinkLegacyValueSchema: z.ZodMiniType<EmptyLinkLegacyValue> = z.union([\n\tEmptyImageLinkLegacyValueSchema,\n\tEmptyFileLinkLegacyValueSchema,\n\tEmptyMediaLinkLegacyValueSchema,\n\tEmptyDocumentLinkLegacyValueSchema,\n\tEmptyExternalLinkLegacyValueSchema,\n\tAnyLinkLegacySchema,\n])\n\ntype EmptyImageLinkLegacyValue = z.infer<typeof EmptyImageLinkLegacyValueSchema>\ntype EmptyFileLinkLegacyValue = z.infer<typeof EmptyFileLinkLegacyValueSchema>\ntype EmptyMediaLinkLegacyValue = z.infer<typeof EmptyMediaLinkLegacyValueSchema>\ntype EmptyDocumentLinkLegacyValue = z.infer<typeof EmptyDocumentLinkLegacyValueSchema>\ntype EmptyExternalLinkLegacyValue = z.infer<typeof EmptyExternalLinkLegacyValueSchema>\ntype AnyLinkLegacy = z.infer<typeof AnyLinkLegacySchema>\nexport type EmptyLinkLegacyValue =\n\t| EmptyImageLinkLegacyValue\n\t| EmptyFileLinkLegacyValue\n\t| EmptyMediaLinkLegacyValue\n\t| EmptyDocumentLinkLegacyValue\n\t| EmptyExternalLinkLegacyValue\n\t| AnyLinkLegacy\n\nconst LinkLegacyValueSchema: z.ZodMiniType<LinkLegacyValue> = z.union([\n\tFilledLinkLegacyValueSchema,\n\tEmptyLinkLegacyValueSchema,\n])\n\nexport type LinkLegacyValue = FilledLinkLegacyValue | EmptyLinkLegacyValue\n\n// We cannot use z.extend here because we're working with unions.\n// z.intersection wouldn't work also for the same reason.\nexport const LinkLegacySchema = z.pipe(\n\tz.pipe(\n\t\tz.pipe(\n\t\t\tz.record(z.string(), z.unknown()),\n\t\t\tz.transform(\n\t\t\t\t({\n\t\t\t\t\tkey,\n\t\t\t\t\ttext,\n\t\t\t\t\tvariant,\n\t\t\t\t\t...value\n\t\t\t\t}): {\n\t\t\t\t\tkey?: unknown\n\t\t\t\t\ttext?: unknown\n\t\t\t\t\tvariant?: unknown\n\t\t\t\t\tvalue: Record<string, unknown>\n\t\t\t\t} => ({ key, text, variant, value }),\n\t\t\t),\n\t\t),\n\t\tz.object({\n\t\t\tkey: z.optional(z.string()),\n\t\t\ttext: z.optional(z.string()),\n\t\t\tvariant: z.optional(z.string()),\n\t\t\tvalue: LinkLegacyValueSchema as z.ZodMiniType<LinkLegacyValue, Record<string, unknown>>,\n\t\t}),\n\t),\n\tz.transform(({ key, text, variant, value }) => ({\n\t\tkey: z.uuidv4().safeParse(key).data ?? crypto.randomUUID(),\n\t\t...(typeof text === \"string\" ? { text } : {}),\n\t\t...(typeof variant === \"string\" ? { variant } : {}),\n\t\t...value,\n\t})),\n)\n\nexport type LinkLegacy = z.infer<typeof LinkLegacySchema>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"richText.d.ts","names":[],"sources":["../../../src/content/legacy/richText.ts"],"mappings":";;;;;cAYa,gBAAA;EAAA;;;;;;;;;;;;;;;;KAkBD,iBAAA,WAA4B,gBAAA,eAA+B,gBAAA;AAAA,KAGlE,aAAA,eAA4B,qBAAA,GAAwB,sBAAA;EACxD,IAAA,SAAa,gBAAA,CAAiB,SAAA;EAC9B,KAAA;EACA,GAAA;EACA,IAAA,EAAM,KAAA;AAAA;AAAA,cAeD,eAAA,EAAe,CAAA,CAAA,aAAA;;;;;;KAShB,SAAA,GAAY,CAAA,CAAE,KAAA,QAAa,eAAA;AAAA,cAE1B,eAAA,EAAe,CAAA,CAAA,aAAA;;;;;KAShB,SAAA,GAAY,CAAA,CAAE,KAAA,QAAa,eAAA;AAAA,KAEpB,IAAA,eAAmB,qBAAA,GAAwB,sBAAA,IACpD,aAAA,CAAc,KAAA,IACd,SAAA,GACA,SAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"richText.d.ts","names":[],"sources":["../../../src/content/legacy/richText.ts"],"mappings":";;;;;cAYa,gBAAA;EAAA;;;;;;;;;;;;;;;;KAkBD,iBAAA,WAA4B,gBAAA,eAA+B,gBAAA;AAAA,KAGlE,aAAA,eAA4B,qBAAA,GAAwB,sBAAA;EACxD,IAAA,SAAa,gBAAA,CAAiB,SAAA;EAC9B,KAAA;EACA,GAAA;EACA,IAAA,EAAM,KAAA;AAAA;AAAA,cAeD,eAAA,EAAe,CAAA,CAAA,aAAA;;;;;;KAShB,SAAA,GAAY,CAAA,CAAE,KAAA,QAAa,eAAA;AAAA,cAE1B,eAAA,EAAe,CAAA,CAAA,aAAA;;;;;KAShB,SAAA,GAAY,CAAA,CAAE,KAAA,QAAa,eAAA;AAAA,KAEpB,IAAA,eAAmB,qBAAA,GAAwB,sBAAA,IACpD,aAAA,CAAc,KAAA,IACd,SAAA,GACA,SAAA;AAAA,cA6DG,qBAAA,EAAqB,CAAA,CAAA,aAAA;;;;;;;;;;;;;;;;;;;;;;;KAEtB,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;AAAA,cAmBhC,sBAAA,EAAsB,CAAA,CAAA,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKvB,gBAAA,GAAmB,CAAA,CAAE,KAAA,QAAa,sBAAA;AAAA,cAgBjC,sBAAA,EAAsB,CAAA,CAAA,aAAA;;;;;;;;;;;;;;;;;;;;KAEvB,gBAAA,GAAmB,CAAA,CAAE,KAAA,QAAa,sBAAA;AAAA,KAQ3B,mBAAA,GAAsB,eAAA,GAAkB,gBAAA,GAAmB,gBAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"richText.js","names":[],"sources":["../../../src/content/legacy/richText.ts"],"sourcesContent":["import { z } from \"zod/mini\"\n\n// It's important to only import the types here to\n// avoid runtime circular dependencies!\nimport type { EmbedContentSchema } from \"../embed\"\nimport type { ImageContentViewSchema } from \"../image\"\nimport type { FilledLinkContentValue, FilledLinkContentValueSchema } from \"../link\"\nimport { EmbedLegacyLooseSchema } from \"./embed\"\nimport { ImageLegacyViewSchema } from \"./image\"\nimport { FilledLinkLegacyValueSchema } from \"./link\"\nimport type { FilledLinkLegacyValue } from \"./link\"\n\nexport const RichTextNodeType = {\n\theading1: \"heading1\",\n\theading2: \"heading2\",\n\theading3: \"heading3\",\n\theading4: \"heading4\",\n\theading5: \"heading5\",\n\theading6: \"heading6\",\n\tparagraph: \"paragraph\",\n\tpreformatted: \"preformatted\",\n\toListItem: \"o-list-item\",\n\tlistItem: \"list-item\",\n\timage: \"image\",\n\tembed: \"embed\",\n\thyperlink: \"hyperlink\",\n\tstrong: \"strong\",\n\tem: \"em\",\n} as const\n\nexport type RichTextNodeTypes = (typeof RichTextNodeType)[keyof typeof RichTextNodeType]\n\n// Spans\ntype HyperlinkSpan<TData extends FilledLinkLegacyValue | FilledLinkContentValue> = {\n\ttype: typeof RichTextNodeType.hyperlink\n\tstart: number\n\tend: number\n\tdata: TData\n}\n\nconst getHyperlinkSpanSchema = <\n\tTData extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,\n>(\n\tdata: TData,\n) =>\n\tz.object({\n\t\ttype: z.literal(RichTextNodeType.hyperlink),\n\t\tstart: z.number(),\n\t\tend: z.number(),\n\t\tdata,\n\t})\n\nconst LabelSpanSchema = z.object({\n\ttype: z.literal(\"label\"),\n\tstart: z.number(),\n\tend: z.number(),\n\tdata: z.pipe(\n\t\tz.unknown(),\n\t\tz.transform((value) => (typeof value === \"string\" && value.length > 0 ? value : \"\")),\n\t),\n})\ntype LabelSpan = z.infer<typeof LabelSpanSchema>\n\nconst BasicSpanSchema = z.object({\n\ttype: z.union([\n\t\tz.literal(RichTextNodeType.strong),\n\t\tz.literal(RichTextNodeType.em),\n\t\tz.literal(\"list-item\"), // legacy case\n\t]),\n\tstart: z.number(),\n\tend: z.number(),\n})\ntype BasicSpan = z.infer<typeof BasicSpanSchema>\n\nexport type Span<TLink extends FilledLinkLegacyValue | FilledLinkContentValue> =\n\t| HyperlinkSpan<TLink>\n\t| LabelSpan\n\t| BasicSpan\n\n// oxlint-disable-next-line explicit-module-boundary-types\nexport const getSpanSchema = <\n\tTLinkSchema extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,\n>(\n\tlinkSchema: TLinkSchema,\n) =>\n\tz.discriminatedUnion(\"type\", [\n\t\tgetHyperlinkSpanSchema(linkSchema),\n\t\tLabelSpanSchema,\n\t\tBasicSpanSchema,\n\t])\n\n// Text blocks\nconst TextBlockTypeSchema = z.union([\n\tz.literal(RichTextNodeType.paragraph),\n\tz.literal(RichTextNodeType.heading1),\n\tz.literal(RichTextNodeType.heading2),\n\tz.literal(RichTextNodeType.heading3),\n\tz.literal(RichTextNodeType.heading4),\n\tz.literal(RichTextNodeType.heading5),\n\tz.literal(RichTextNodeType.heading6),\n\tz.literal(RichTextNodeType.preformatted),\n\tz.literal(RichTextNodeType.oListItem),\n\tz.literal(RichTextNodeType.listItem),\n])\n\n// oxlint-disable-next-line explicit-module-boundary-types\nexport const getTextBlockSchema = <\n\tTLinkSchema extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,\n>(\n\tlinkSchema: TLinkSchema,\n) =>\n\tz.object({\n\t\ttype: TextBlockTypeSchema,\n\t\tcontent: z.object({\n\t\t\ttext: z.string(),\n\t\t\tspans: z.optional(\n\t\t\t\tz.pipe(\n\t\t\t\t\tz.array(z.unknown()),\n\t\t\t\t\tz.transform((spans) => {\n\t\t\t\t\t\tconst spanSchema = getSpanSchema(linkSchema)\n\n\t\t\t\t\t\t// Filter out invalid spans and order them by start position\n\t\t\t\t\t\treturn spans\n\t\t\t\t\t\t\t.flatMap((maybeSpan) => {\n\t\t\t\t\t\t\t\tconst parsed = spanSchema.safeParse(maybeSpan)\n\t\t\t\t\t\t\t\treturn parsed.success ? [parsed.data] : []\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.sort((a, b) => a.start - b.start)\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t),\n\t\t}),\n\t\tlabel: z.optional(z.string()),\n\t\tdirection: z.optional(z.string()),\n\t})\n\nconst TextBlockLegacySchema = getTextBlockSchema(FilledLinkLegacyValueSchema)\n\ntype TextBlockLegacy = z.infer<typeof TextBlockLegacySchema>\n\n// Image block\n\n// oxlint-disable-next-line explicit-module-boundary-types\nexport const getImageBlockSchema = <\n\tTData extends typeof ImageLegacyViewSchema | typeof ImageContentViewSchema,\n\tTLinkTo extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,\n>(\n\tdata: TData,\n\tlinkTo: TLinkTo,\n) =>\n\tz.object({\n\t\ttype: z.literal(RichTextNodeType.image),\n\t\tdata: z.extend(data, { linkTo: z.nullish(linkTo) }),\n\t\tlabel: z.nullish(z.string()),\n\t\tdirection: z.nullish(z.string()),\n\t})\n\nconst ImageBlockLegacySchema = getImageBlockSchema(\n\tImageLegacyViewSchema,\n\tFilledLinkLegacyValueSchema,\n)\n\ntype ImageBlockLegacy = z.infer<typeof ImageBlockLegacySchema>\n\n// Embed block\n// oxlint-disable-next-line explicit-module-boundary-types\nexport const getEmbedBlockSchema = <\n\tTData extends typeof EmbedLegacyLooseSchema | typeof EmbedContentSchema,\n>(\n\tdata: TData,\n) =>\n\tz.object({\n\t\ttype: z.literal(RichTextNodeType.embed),\n\t\tdata,\n\t\tlabel: z.nullish(z.string()),\n\t\tdirection: z.nullish(z.string()),\n\t})\n\nconst EmbedBlockLegacySchema = getEmbedBlockSchema(EmbedLegacyLooseSchema)\n\ntype EmbedBlockLegacy = z.infer<typeof EmbedBlockLegacySchema>\n\n// Blocks\nexport const RichTextLegacyBlockSchema: z.ZodMiniType<RichTextLegacyBlock> = z.discriminatedUnion(\n\t\"type\",\n\t[TextBlockLegacySchema, ImageBlockLegacySchema, EmbedBlockLegacySchema],\n)\n\nexport type RichTextLegacyBlock = TextBlockLegacy | ImageBlockLegacy | EmbedBlockLegacy\n\nexport const RichTextLegacySchema = z.array(RichTextLegacyBlockSchema)\n\nexport type RichTextLegacy = z.infer<typeof RichTextLegacySchema>\n"],"mappings":";;;;;AAYA,MAAa,mBAAmB;CAC/B,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CACV,WAAW;CACX,cAAc;CACd,WAAW;CACX,UAAU;CACV,OAAO;CACP,OAAO;CACP,WAAW;CACX,QAAQ;CACR,IAAI;CACJ;AAYD,MAAM,0BAGL,SAEA,EAAE,OAAO;CACR,MAAM,EAAE,QAAQ,iBAAiB,UAAU;CAC3C,OAAO,EAAE,QAAQ;CACjB,KAAK,EAAE,QAAQ;CACf;CACA,CAAC;AAEH,MAAM,kBAAkB,EAAE,OAAO;CAChC,MAAM,EAAE,QAAQ,QAAQ;CACxB,OAAO,EAAE,QAAQ;CACjB,KAAK,EAAE,QAAQ;CACf,MAAM,EAAE,KACP,EAAE,SAAS,EACX,EAAE,WAAW,UAAW,OAAO,UAAU,YAAY,MAAM,SAAS,IAAI,QAAQ,GAAI,CACpF;CACD,CAAC;AAGF,MAAM,kBAAkB,EAAE,OAAO;CAChC,MAAM,EAAE,MAAM;EACb,EAAE,QAAQ,iBAAiB,OAAO;EAClC,EAAE,QAAQ,iBAAiB,GAAG;EAC9B,EAAE,QAAQ,YAAY;EACtB,CAAC;CACF,OAAO,EAAE,QAAQ;CACjB,KAAK,EAAE,QAAQ;CACf,CAAC;
|
|
1
|
+
{"version":3,"file":"richText.js","names":[],"sources":["../../../src/content/legacy/richText.ts"],"sourcesContent":["import { z } from \"zod/mini\"\n\n// It's important to only import the types here to\n// avoid runtime circular dependencies!\nimport type { EmbedContentSchema } from \"../embed\"\nimport type { ImageContentViewSchema } from \"../image\"\nimport type { FilledLinkContentValue, FilledLinkContentValueSchema } from \"../link\"\nimport { EmbedLegacyLooseSchema } from \"./embed\"\nimport { ImageLegacyViewSchema } from \"./image\"\nimport { FilledLinkLegacyValueSchema } from \"./link\"\nimport type { FilledLinkLegacyValue } from \"./link\"\n\nexport const RichTextNodeType = {\n\theading1: \"heading1\",\n\theading2: \"heading2\",\n\theading3: \"heading3\",\n\theading4: \"heading4\",\n\theading5: \"heading5\",\n\theading6: \"heading6\",\n\tparagraph: \"paragraph\",\n\tpreformatted: \"preformatted\",\n\toListItem: \"o-list-item\",\n\tlistItem: \"list-item\",\n\timage: \"image\",\n\tembed: \"embed\",\n\thyperlink: \"hyperlink\",\n\tstrong: \"strong\",\n\tem: \"em\",\n} as const\n\nexport type RichTextNodeTypes = (typeof RichTextNodeType)[keyof typeof RichTextNodeType]\n\n// Spans\ntype HyperlinkSpan<TData extends FilledLinkLegacyValue | FilledLinkContentValue> = {\n\ttype: typeof RichTextNodeType.hyperlink\n\tstart: number\n\tend: number\n\tdata: TData\n}\n\nconst getHyperlinkSpanSchema = <\n\tTData extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,\n>(\n\tdata: TData,\n) =>\n\tz.object({\n\t\ttype: z.literal(RichTextNodeType.hyperlink),\n\t\tstart: z.number(),\n\t\tend: z.number(),\n\t\tdata,\n\t})\n\nconst LabelSpanSchema = z.object({\n\ttype: z.literal(\"label\"),\n\tstart: z.number(),\n\tend: z.number(),\n\tdata: z.pipe(\n\t\tz.unknown(),\n\t\tz.transform((value) => (typeof value === \"string\" && value.length > 0 ? value : \"\")),\n\t),\n})\ntype LabelSpan = z.infer<typeof LabelSpanSchema>\n\nconst BasicSpanSchema = z.object({\n\ttype: z.union([\n\t\tz.literal(RichTextNodeType.strong),\n\t\tz.literal(RichTextNodeType.em),\n\t\tz.literal(\"list-item\"), // legacy case\n\t]),\n\tstart: z.number(),\n\tend: z.number(),\n})\ntype BasicSpan = z.infer<typeof BasicSpanSchema>\n\nexport type Span<TLink extends FilledLinkLegacyValue | FilledLinkContentValue> =\n\t| HyperlinkSpan<TLink>\n\t| LabelSpan\n\t| BasicSpan\n\nexport type RichTextLegacySpan = Span<FilledLinkLegacyValue>\n\n// oxlint-disable-next-line explicit-module-boundary-types\nexport const getSpanSchema = <\n\tTLinkSchema extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,\n>(\n\tlinkSchema: TLinkSchema,\n) =>\n\tz.discriminatedUnion(\"type\", [\n\t\tgetHyperlinkSpanSchema(linkSchema),\n\t\tLabelSpanSchema,\n\t\tBasicSpanSchema,\n\t])\n\n// Text blocks\nconst TextBlockTypeSchema = z.union([\n\tz.literal(RichTextNodeType.paragraph),\n\tz.literal(RichTextNodeType.heading1),\n\tz.literal(RichTextNodeType.heading2),\n\tz.literal(RichTextNodeType.heading3),\n\tz.literal(RichTextNodeType.heading4),\n\tz.literal(RichTextNodeType.heading5),\n\tz.literal(RichTextNodeType.heading6),\n\tz.literal(RichTextNodeType.preformatted),\n\tz.literal(RichTextNodeType.oListItem),\n\tz.literal(RichTextNodeType.listItem),\n])\n\n// oxlint-disable-next-line explicit-module-boundary-types\nexport const getTextBlockSchema = <\n\tTLinkSchema extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,\n>(\n\tlinkSchema: TLinkSchema,\n) =>\n\tz.object({\n\t\ttype: TextBlockTypeSchema,\n\t\tcontent: z.object({\n\t\t\ttext: z.string(),\n\t\t\tspans: z.optional(\n\t\t\t\tz.pipe(\n\t\t\t\t\tz.array(z.unknown()),\n\t\t\t\t\tz.transform((spans) => {\n\t\t\t\t\t\tconst spanSchema = getSpanSchema(linkSchema)\n\n\t\t\t\t\t\t// Filter out invalid spans and order them by start position\n\t\t\t\t\t\treturn spans\n\t\t\t\t\t\t\t.flatMap((maybeSpan) => {\n\t\t\t\t\t\t\t\tconst parsed = spanSchema.safeParse(maybeSpan)\n\t\t\t\t\t\t\t\treturn parsed.success ? [parsed.data] : []\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t.sort((a, b) => a.start - b.start)\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t),\n\t\t}),\n\t\tlabel: z.optional(z.string()),\n\t\tdirection: z.optional(z.string()),\n\t})\n\nconst TextBlockLegacySchema = getTextBlockSchema(FilledLinkLegacyValueSchema)\n\ntype TextBlockLegacy = z.infer<typeof TextBlockLegacySchema>\n\n// Image block\n\n// oxlint-disable-next-line explicit-module-boundary-types\nexport const getImageBlockSchema = <\n\tTData extends typeof ImageLegacyViewSchema | typeof ImageContentViewSchema,\n\tTLinkTo extends typeof FilledLinkLegacyValueSchema | typeof FilledLinkContentValueSchema,\n>(\n\tdata: TData,\n\tlinkTo: TLinkTo,\n) =>\n\tz.object({\n\t\ttype: z.literal(RichTextNodeType.image),\n\t\tdata: z.extend(data, { linkTo: z.nullish(linkTo) }),\n\t\tlabel: z.nullish(z.string()),\n\t\tdirection: z.nullish(z.string()),\n\t})\n\nconst ImageBlockLegacySchema = getImageBlockSchema(\n\tImageLegacyViewSchema,\n\tFilledLinkLegacyValueSchema,\n)\n\ntype ImageBlockLegacy = z.infer<typeof ImageBlockLegacySchema>\n\n// Embed block\n// oxlint-disable-next-line explicit-module-boundary-types\nexport const getEmbedBlockSchema = <\n\tTData extends typeof EmbedLegacyLooseSchema | typeof EmbedContentSchema,\n>(\n\tdata: TData,\n) =>\n\tz.object({\n\t\ttype: z.literal(RichTextNodeType.embed),\n\t\tdata,\n\t\tlabel: z.nullish(z.string()),\n\t\tdirection: z.nullish(z.string()),\n\t})\n\nconst EmbedBlockLegacySchema = getEmbedBlockSchema(EmbedLegacyLooseSchema)\n\ntype EmbedBlockLegacy = z.infer<typeof EmbedBlockLegacySchema>\n\n// Blocks\nexport const RichTextLegacyBlockSchema: z.ZodMiniType<RichTextLegacyBlock> = z.discriminatedUnion(\n\t\"type\",\n\t[TextBlockLegacySchema, ImageBlockLegacySchema, EmbedBlockLegacySchema],\n)\n\nexport type RichTextLegacyBlock = TextBlockLegacy | ImageBlockLegacy | EmbedBlockLegacy\n\nexport const RichTextLegacySchema = z.array(RichTextLegacyBlockSchema)\n\nexport type RichTextLegacy = z.infer<typeof RichTextLegacySchema>\n"],"mappings":"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"}
|
package/dist/content/link.js
CHANGED
|
@@ -39,8 +39,8 @@ const getLinkContentSchema = (value) => z.object({
|
|
|
39
39
|
variant: z.optional(z.string()),
|
|
40
40
|
value
|
|
41
41
|
})), z.transform(({ text, variant, value }) => ({
|
|
42
|
-
...text ? { text } : {},
|
|
43
|
-
...variant ? { variant } : {},
|
|
42
|
+
...typeof text === "string" ? { text } : {},
|
|
43
|
+
...typeof variant === "string" ? { variant } : {},
|
|
44
44
|
...value
|
|
45
45
|
})))
|
|
46
46
|
});
|
package/dist/content/link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","names":[],"sources":["../../src/content/link.ts"],"sourcesContent":["import { z } from \"zod/mini\"\n\nimport {\n\tEmptyDocumentLinkLegacyValueSchema,\n\tEmptyImageLinkLegacyValueSchema,\n\tFilledDocumentLinkLegacyValueSchema,\n\tFilledFileLinkLegacyValueSchema,\n\tFilledImageLinkLegacyValueSchema,\n\tEmptyMediaLinkLegacyValueSchema,\n\tFilledExternalLinkLegacyValueSchema,\n\tEmptyExternalLinkLegacyValueSchema,\n\tAnyLinkLegacySchema,\n\tLinkType,\n\tEmptyFileLinkLegacyValueSchema,\n} from \"./legacy/link\"\n\n// Image\nconst FilledImageLinkContentValueSchema = z.extend(FilledImageLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.Image),\n})\n\nconst EmptyImageLinkContentValueSchema = z.extend(EmptyImageLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.Image),\n})\n\n// File\nconst FilledFileLinkContentValueSchema = z.extend(FilledFileLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.File),\n})\n\nconst EmptyFileLinkContentValueSchema = z.extend(EmptyFileLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.File),\n})\n\n// Media\nconst EmptyMediaLinkContentValueSchema = z.extend(EmptyMediaLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.Media),\n})\n\n// Document\nconst FilledDocumentLinkContentValueSchema = z.extend(FilledDocumentLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.Document),\n})\n\nconst EmptyDocumentLinkContentValueSchema = z.extend(EmptyDocumentLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.Document),\n})\n\n// External\nconst FilledExternalLinkContentValueSchema = z.extend(FilledExternalLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.External),\n})\n\nconst EmptyExternalLinkContentValueSchema = z.extend(EmptyExternalLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.External),\n})\n\n// Any\nconst AnyLinkContentValueSchema = z.extend(AnyLinkLegacySchema, {\n\t__TYPE__: z.literal(LinkType.Any),\n})\n\n// All\n\n// Used by content/richText\nexport const FilledLinkContentValueSchema: z.ZodMiniType<FilledLinkContentValue> = z.union([\n\tFilledImageLinkContentValueSchema,\n\tFilledFileLinkContentValueSchema,\n\tFilledDocumentLinkContentValueSchema,\n\tFilledExternalLinkContentValueSchema,\n])\n\n// Used by content/legacy/link\ntype FilledImageLinkContentValue = z.infer<typeof FilledImageLinkContentValueSchema>\ntype FilledFileLinkContentValue = z.infer<typeof FilledFileLinkContentValueSchema>\ntype FilledDocumentLinkContentValue = z.infer<typeof FilledDocumentLinkContentValueSchema>\ntype FilledExternalLinkContentValue = z.infer<typeof FilledExternalLinkContentValueSchema>\nexport type FilledLinkContentValue =\n\t| FilledImageLinkContentValue\n\t| FilledFileLinkContentValue\n\t| FilledDocumentLinkContentValue\n\t| FilledExternalLinkContentValue\n\nconst EmptyLinkContentValueSchema: z.ZodMiniType<EmptyLinkContentValue> = z.union([\n\tEmptyImageLinkContentValueSchema,\n\tEmptyFileLinkContentValueSchema,\n\tEmptyMediaLinkContentValueSchema,\n\tEmptyDocumentLinkContentValueSchema,\n\tEmptyExternalLinkContentValueSchema,\n\tAnyLinkContentValueSchema,\n])\n\n// Used by content/codec/link\ntype EmptyImageLinkContentValue = z.infer<typeof EmptyImageLinkContentValueSchema>\ntype EmptyFileLinkContentValue = z.infer<typeof EmptyFileLinkContentValueSchema>\ntype EmptyMediaLinkContentValue = z.infer<typeof EmptyMediaLinkContentValueSchema>\ntype EmptyDocumentLinkContentValue = z.infer<typeof EmptyDocumentLinkContentValueSchema>\ntype EmptyExternalLinkContentValue = z.infer<typeof EmptyExternalLinkContentValueSchema>\ntype AnyLinkContentValue = z.infer<typeof AnyLinkContentValueSchema>\nexport type EmptyLinkContentValue =\n\t| EmptyImageLinkContentValue\n\t| EmptyFileLinkContentValue\n\t| EmptyMediaLinkContentValue\n\t| EmptyDocumentLinkContentValue\n\t| EmptyExternalLinkContentValue\n\t| AnyLinkContentValue\n\nconst LinkContentValueSchema: z.ZodMiniType<LinkContentValue> = z.union([\n\tFilledLinkContentValueSchema,\n\tEmptyLinkContentValueSchema,\n])\n\n// Used by content/codec/link\nexport type LinkContentValue = FilledLinkContentValue | EmptyLinkContentValue\n\n// Content\nexport const LinkContentType = \"LinkContent\" as const\n\nconst getLinkContentSchema = <TValue extends LinkContentValue>(value: z.ZodMiniType<TValue>) =>\n\tz.object({\n\t\t__TYPE__: z.literal(LinkContentType),\n\t\tkey: z.transform((value) => z.uuidv4().safeParse(value).data || crypto.randomUUID()),\n\t\t// We cannot use z.extend here because we're working with unions.\n\t\t// z.intersection wouldn't work also for the same reason.\n\t\tvalue: z.pipe(\n\t\t\tz.pipe(\n\t\t\t\tz.pipe(\n\t\t\t\t\tz.record(z.string(), z.unknown()),\n\t\t\t\t\tz.transform(\n\t\t\t\t\t\t({\n\t\t\t\t\t\t\ttext,\n\t\t\t\t\t\t\tvariant,\n\t\t\t\t\t\t\t...value\n\t\t\t\t\t\t}): {\n\t\t\t\t\t\t\ttext?: unknown\n\t\t\t\t\t\t\tvariant?: unknown\n\t\t\t\t\t\t\tvalue: Record<string, unknown>\n\t\t\t\t\t\t} => ({ text, variant, value }),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\tz.object({\n\t\t\t\t\ttext: z.optional(z.string()),\n\t\t\t\t\tvariant: z.optional(z.string()),\n\t\t\t\t\tvalue: value as z.ZodMiniType<TValue, Record<string, unknown>>,\n\t\t\t\t}),\n\t\t\t),\n\t\t\tz.transform(({ text, variant, value }) => ({\n\t\t\t\t...(text ? { text } : {}),\n\t\t\t\t...(variant ? { variant } : {}),\n\t\t\t\t...value,\n\t\t\t})),\n\t\t),\n\t})\n\nexport const FilledLinkContentSchema = getLinkContentSchema(FilledLinkContentValueSchema)\n\nexport type FilledLinkContent = z.infer<typeof FilledLinkContentSchema>\n\nexport const EmptyLinkContentSchema = getLinkContentSchema(EmptyLinkContentValueSchema)\n\nexport type EmptyLinkContent = z.infer<typeof EmptyLinkContentSchema>\n\nexport const LinkContentSchema = getLinkContentSchema(LinkContentValueSchema)\n\nexport type LinkContent = z.infer<typeof LinkContentSchema>\n"],"mappings":";;;AAiBA,MAAM,oCAAoC,EAAE,OAAO,kCAAkC,EACpF,UAAU,EAAE,QAAQ,SAAS,MAAM,EACnC,CAAC;AAEF,MAAM,mCAAmC,EAAE,OAAO,iCAAiC,EAClF,UAAU,EAAE,QAAQ,SAAS,MAAM,EACnC,CAAC;AAGF,MAAM,mCAAmC,EAAE,OAAO,iCAAiC,EAClF,UAAU,EAAE,QAAQ,SAAS,KAAK,EAClC,CAAC;AAEF,MAAM,kCAAkC,EAAE,OAAO,gCAAgC,EAChF,UAAU,EAAE,QAAQ,SAAS,KAAK,EAClC,CAAC;AAGF,MAAM,mCAAmC,EAAE,OAAO,iCAAiC,EAClF,UAAU,EAAE,QAAQ,SAAS,MAAM,EACnC,CAAC;AAGF,MAAM,uCAAuC,EAAE,OAAO,qCAAqC,EAC1F,UAAU,EAAE,QAAQ,SAAS,SAAS,EACtC,CAAC;AAEF,MAAM,sCAAsC,EAAE,OAAO,oCAAoC,EACxF,UAAU,EAAE,QAAQ,SAAS,SAAS,EACtC,CAAC;AAGF,MAAM,uCAAuC,EAAE,OAAO,qCAAqC,EAC1F,UAAU,EAAE,QAAQ,SAAS,SAAS,EACtC,CAAC;AAEF,MAAM,sCAAsC,EAAE,OAAO,oCAAoC,EACxF,UAAU,EAAE,QAAQ,SAAS,SAAS,EACtC,CAAC;AAGF,MAAM,4BAA4B,EAAE,OAAO,qBAAqB,EAC/D,UAAU,EAAE,QAAQ,SAAS,IAAI,EACjC,CAAC;AAKF,MAAa,+BAAsE,EAAE,MAAM;CAC1F;CACA;CACA;CACA;CACA,CAAC;AAaF,MAAM,8BAAoE,EAAE,MAAM;CACjF;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AAiBF,MAAM,yBAA0D,EAAE,MAAM,CACvE,8BACA,4BACA,CAAC;AAMF,MAAa,kBAAkB;AAE/B,MAAM,wBAAyD,UAC9D,EAAE,OAAO;CACR,UAAU,EAAE,QAAQ,gBAAgB;CACpC,KAAK,EAAE,WAAW,UAAU,EAAE,QAAQ,CAAC,UAAU,MAAM,CAAC,QAAQ,OAAO,YAAY,CAAC;CAGpF,OAAO,EAAE,KACR,EAAE,KACD,EAAE,KACD,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EACjC,EAAE,WACA,EACA,MACA,SACA,GAAG,aAKE;EAAE;EAAM;EAAS;EAAO,EAC9B,CACD,EACD,EAAE,OAAO;EACR,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;EAC5B,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;EACxB;EACP,CAAC,CACF,EACD,EAAE,WAAW,EAAE,MAAM,SAAS,aAAa;EAC1C,GAAI,OAAO,EAAE,MAAM,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"link.js","names":[],"sources":["../../src/content/link.ts"],"sourcesContent":["import { z } from \"zod/mini\"\n\nimport {\n\tEmptyDocumentLinkLegacyValueSchema,\n\tEmptyImageLinkLegacyValueSchema,\n\tFilledDocumentLinkLegacyValueSchema,\n\tFilledFileLinkLegacyValueSchema,\n\tFilledImageLinkLegacyValueSchema,\n\tEmptyMediaLinkLegacyValueSchema,\n\tFilledExternalLinkLegacyValueSchema,\n\tEmptyExternalLinkLegacyValueSchema,\n\tAnyLinkLegacySchema,\n\tLinkType,\n\tEmptyFileLinkLegacyValueSchema,\n} from \"./legacy/link\"\n\n// Image\nconst FilledImageLinkContentValueSchema = z.extend(FilledImageLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.Image),\n})\n\nconst EmptyImageLinkContentValueSchema = z.extend(EmptyImageLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.Image),\n})\n\n// File\nconst FilledFileLinkContentValueSchema = z.extend(FilledFileLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.File),\n})\n\nconst EmptyFileLinkContentValueSchema = z.extend(EmptyFileLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.File),\n})\n\n// Media\nconst EmptyMediaLinkContentValueSchema = z.extend(EmptyMediaLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.Media),\n})\n\n// Document\nconst FilledDocumentLinkContentValueSchema = z.extend(FilledDocumentLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.Document),\n})\n\nconst EmptyDocumentLinkContentValueSchema = z.extend(EmptyDocumentLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.Document),\n})\n\n// External\nconst FilledExternalLinkContentValueSchema = z.extend(FilledExternalLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.External),\n})\n\nconst EmptyExternalLinkContentValueSchema = z.extend(EmptyExternalLinkLegacyValueSchema, {\n\t__TYPE__: z.literal(LinkType.External),\n})\n\n// Any\nconst AnyLinkContentValueSchema = z.extend(AnyLinkLegacySchema, {\n\t__TYPE__: z.literal(LinkType.Any),\n})\n\n// All\n\n// Used by content/richText\nexport const FilledLinkContentValueSchema: z.ZodMiniType<FilledLinkContentValue> = z.union([\n\tFilledImageLinkContentValueSchema,\n\tFilledFileLinkContentValueSchema,\n\tFilledDocumentLinkContentValueSchema,\n\tFilledExternalLinkContentValueSchema,\n])\n\n// Used by content/legacy/link\ntype FilledImageLinkContentValue = z.infer<typeof FilledImageLinkContentValueSchema>\ntype FilledFileLinkContentValue = z.infer<typeof FilledFileLinkContentValueSchema>\ntype FilledDocumentLinkContentValue = z.infer<typeof FilledDocumentLinkContentValueSchema>\ntype FilledExternalLinkContentValue = z.infer<typeof FilledExternalLinkContentValueSchema>\nexport type FilledLinkContentValue =\n\t| FilledImageLinkContentValue\n\t| FilledFileLinkContentValue\n\t| FilledDocumentLinkContentValue\n\t| FilledExternalLinkContentValue\n\nconst EmptyLinkContentValueSchema: z.ZodMiniType<EmptyLinkContentValue> = z.union([\n\tEmptyImageLinkContentValueSchema,\n\tEmptyFileLinkContentValueSchema,\n\tEmptyMediaLinkContentValueSchema,\n\tEmptyDocumentLinkContentValueSchema,\n\tEmptyExternalLinkContentValueSchema,\n\tAnyLinkContentValueSchema,\n])\n\n// Used by content/codec/link\ntype EmptyImageLinkContentValue = z.infer<typeof EmptyImageLinkContentValueSchema>\ntype EmptyFileLinkContentValue = z.infer<typeof EmptyFileLinkContentValueSchema>\ntype EmptyMediaLinkContentValue = z.infer<typeof EmptyMediaLinkContentValueSchema>\ntype EmptyDocumentLinkContentValue = z.infer<typeof EmptyDocumentLinkContentValueSchema>\ntype EmptyExternalLinkContentValue = z.infer<typeof EmptyExternalLinkContentValueSchema>\ntype AnyLinkContentValue = z.infer<typeof AnyLinkContentValueSchema>\nexport type EmptyLinkContentValue =\n\t| EmptyImageLinkContentValue\n\t| EmptyFileLinkContentValue\n\t| EmptyMediaLinkContentValue\n\t| EmptyDocumentLinkContentValue\n\t| EmptyExternalLinkContentValue\n\t| AnyLinkContentValue\n\nconst LinkContentValueSchema: z.ZodMiniType<LinkContentValue> = z.union([\n\tFilledLinkContentValueSchema,\n\tEmptyLinkContentValueSchema,\n])\n\n// Used by content/codec/link\nexport type LinkContentValue = FilledLinkContentValue | EmptyLinkContentValue\n\n// Content\nexport const LinkContentType = \"LinkContent\" as const\n\nconst getLinkContentSchema = <TValue extends LinkContentValue>(value: z.ZodMiniType<TValue>) =>\n\tz.object({\n\t\t__TYPE__: z.literal(LinkContentType),\n\t\tkey: z.transform((value) => z.uuidv4().safeParse(value).data || crypto.randomUUID()),\n\t\t// We cannot use z.extend here because we're working with unions.\n\t\t// z.intersection wouldn't work also for the same reason.\n\t\tvalue: z.pipe(\n\t\t\tz.pipe(\n\t\t\t\tz.pipe(\n\t\t\t\t\tz.record(z.string(), z.unknown()),\n\t\t\t\t\tz.transform(\n\t\t\t\t\t\t({\n\t\t\t\t\t\t\ttext,\n\t\t\t\t\t\t\tvariant,\n\t\t\t\t\t\t\t...value\n\t\t\t\t\t\t}): {\n\t\t\t\t\t\t\ttext?: unknown\n\t\t\t\t\t\t\tvariant?: unknown\n\t\t\t\t\t\t\tvalue: Record<string, unknown>\n\t\t\t\t\t\t} => ({ text, variant, value }),\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\tz.object({\n\t\t\t\t\ttext: z.optional(z.string()),\n\t\t\t\t\tvariant: z.optional(z.string()),\n\t\t\t\t\tvalue: value as z.ZodMiniType<TValue, Record<string, unknown>>,\n\t\t\t\t}),\n\t\t\t),\n\t\t\tz.transform(({ text, variant, value }) => ({\n\t\t\t\t...(typeof text === \"string\" ? { text } : {}),\n\t\t\t\t...(typeof variant === \"string\" ? { variant } : {}),\n\t\t\t\t...value,\n\t\t\t})),\n\t\t),\n\t})\n\nexport const FilledLinkContentSchema = getLinkContentSchema(FilledLinkContentValueSchema)\n\nexport type FilledLinkContent = z.infer<typeof FilledLinkContentSchema>\n\nexport const EmptyLinkContentSchema = getLinkContentSchema(EmptyLinkContentValueSchema)\n\nexport type EmptyLinkContent = z.infer<typeof EmptyLinkContentSchema>\n\nexport const LinkContentSchema = getLinkContentSchema(LinkContentValueSchema)\n\nexport type LinkContent = z.infer<typeof LinkContentSchema>\n"],"mappings":";;;AAiBA,MAAM,oCAAoC,EAAE,OAAO,kCAAkC,EACpF,UAAU,EAAE,QAAQ,SAAS,MAAM,EACnC,CAAC;AAEF,MAAM,mCAAmC,EAAE,OAAO,iCAAiC,EAClF,UAAU,EAAE,QAAQ,SAAS,MAAM,EACnC,CAAC;AAGF,MAAM,mCAAmC,EAAE,OAAO,iCAAiC,EAClF,UAAU,EAAE,QAAQ,SAAS,KAAK,EAClC,CAAC;AAEF,MAAM,kCAAkC,EAAE,OAAO,gCAAgC,EAChF,UAAU,EAAE,QAAQ,SAAS,KAAK,EAClC,CAAC;AAGF,MAAM,mCAAmC,EAAE,OAAO,iCAAiC,EAClF,UAAU,EAAE,QAAQ,SAAS,MAAM,EACnC,CAAC;AAGF,MAAM,uCAAuC,EAAE,OAAO,qCAAqC,EAC1F,UAAU,EAAE,QAAQ,SAAS,SAAS,EACtC,CAAC;AAEF,MAAM,sCAAsC,EAAE,OAAO,oCAAoC,EACxF,UAAU,EAAE,QAAQ,SAAS,SAAS,EACtC,CAAC;AAGF,MAAM,uCAAuC,EAAE,OAAO,qCAAqC,EAC1F,UAAU,EAAE,QAAQ,SAAS,SAAS,EACtC,CAAC;AAEF,MAAM,sCAAsC,EAAE,OAAO,oCAAoC,EACxF,UAAU,EAAE,QAAQ,SAAS,SAAS,EACtC,CAAC;AAGF,MAAM,4BAA4B,EAAE,OAAO,qBAAqB,EAC/D,UAAU,EAAE,QAAQ,SAAS,IAAI,EACjC,CAAC;AAKF,MAAa,+BAAsE,EAAE,MAAM;CAC1F;CACA;CACA;CACA;CACA,CAAC;AAaF,MAAM,8BAAoE,EAAE,MAAM;CACjF;CACA;CACA;CACA;CACA;CACA;CACA,CAAC;AAiBF,MAAM,yBAA0D,EAAE,MAAM,CACvE,8BACA,4BACA,CAAC;AAMF,MAAa,kBAAkB;AAE/B,MAAM,wBAAyD,UAC9D,EAAE,OAAO;CACR,UAAU,EAAE,QAAQ,gBAAgB;CACpC,KAAK,EAAE,WAAW,UAAU,EAAE,QAAQ,CAAC,UAAU,MAAM,CAAC,QAAQ,OAAO,YAAY,CAAC;CAGpF,OAAO,EAAE,KACR,EAAE,KACD,EAAE,KACD,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,EACjC,EAAE,WACA,EACA,MACA,SACA,GAAG,aAKE;EAAE;EAAM;EAAS;EAAO,EAC9B,CACD,EACD,EAAE,OAAO;EACR,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;EAC5B,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;EACxB;EACP,CAAC,CACF,EACD,EAAE,WAAW,EAAE,MAAM,SAAS,aAAa;EAC1C,GAAI,OAAO,SAAS,WAAW,EAAE,MAAM,GAAG,EAAE;EAC5C,GAAI,OAAO,YAAY,WAAW,EAAE,SAAS,GAAG,EAAE;EAClD,GAAG;EACH,EAAE,CACH;CACD,CAAC;AAEH,MAAa,0BAA0B,qBAAqB,6BAA6B;AAIzF,MAAa,yBAAyB,qBAAqB,4BAA4B;AAIvF,MAAa,oBAAoB,qBAAqB,uBAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseContent.d.ts","names":[],"sources":["../../src/helpers/traverseContent.ts"],"mappings":";;;;;;;;;;;;;;;;;KAqCK,6BAAA;EACJ,KAAA,GAAQ,qBAAA;EACR,eAAA,GAAkB,6BAAA;EAClB,cAAA,GAAiB,4BAAA;AAAA;AAAA,iBAGF,uBAAA,CACf,QAAA,EAAU,eAAA,EACV,MAAA,EAAQ,6BAAA,GACN,eAAA;AAAA,KA0BE,2BAAA;EACJ,KAAA,GAAQ,iBAAA;EACR,eAAA,GAAkB,6BAAA;EAClB,cAAA,GAAiB,4BAAA;AAAA;AAAA,iBAGF,qBAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,aAAA,EACT,MAAA,EAAQ,2BAAA,GACN,aAAA;AAAA,KAiHE,gCAAA;EACJ,KAAA,GAAQ,gCAAA;EACR,eAAA,GAAkB,6BAAA;EAClB,cAAA,GAAiB,4BAAA;AAAA;AAAA,iBAGF,0BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,EACT,MAAA,EAAQ,gCAAA,GACN,sBAAA;AAAA,KA0CE,mCAAA;EACJ,KAAA,GAAQ,mBAAA,GAAsB,gCAAA;EAC9B,eAAA,GAAkB,6BAAA;EAClB,cAAA,GAAiB,4BAAA;AAAA;AAAA,iBAGF,6BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,yBAAA,EACT,MAAA,EAAQ,mCAAA,GACN,yBAAA,GAA4B,sBAAA;AAAA,KA2C1B,gCAAA;EACJ,KAAA,GAAQ,gBAAA,GAAmB,gCAAA;EAC3B,eAAA,GAAkB,6BAAA;EAClB,cAAA,GAAiB,4BAAA;AAAA;AAAA,iBAGF,0BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,EACT,MAAA,EAAQ,gCAAA,GACN,sBAAA,GAAyB,sBAAA;AAAA,KA6CvB,0BAAA;EACJ,KAAA,GAAQ,UAAA;EACR,eAAA,EAAiB,6BAAA;AAAA;AAAA,iBAGF,oBAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,YAAA,EACT,MAAA,EAAQ,0BAAA,GACN,YAAA;AAAA,KAiBE,+BAAA;EACJ,KAAA,GAAQ,MAAA,SAAe,gBAAA,GAAmB,aAAA;EAC1C,eAAA,EAAiB,6BAAA;AAAA;AAAA,iBAGF,yBAAA,CACf,IAAA,EAAM,IAAA,EACN,OAAA,EAAS,gBAAA,IACT,MAAA,EAAQ,+BAAA,GACN,gBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"traverseContent.d.ts","names":[],"sources":["../../src/helpers/traverseContent.ts"],"mappings":"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"}
|
|
@@ -243,6 +243,7 @@ function traverseGroupItemsContent(path, content, config) {
|
|
|
243
243
|
const { transformWidget } = config;
|
|
244
244
|
const traversed = [];
|
|
245
245
|
for (const groupItemContent of content) {
|
|
246
|
+
if (!Array.isArray(groupItemContent.value)) continue;
|
|
246
247
|
const groupItemPath = path.concat({
|
|
247
248
|
key: groupItemContent.key,
|
|
248
249
|
type: "GroupItem"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseContent.js","names":["customTypeModel.flatten","contentPath.make","contentPath.append","contentPath.serialize"],"sources":["../../src/helpers/traverseContent.ts"],"sourcesContent":["import type { DocumentContent } from \"../content/document\"\nimport { GroupContentType } from \"../content/group\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { isNestableContent } from \"../content/nestable\"\nimport { isRepeatableContentValue, RepeatableContentType } from \"../content/repeatable\"\nimport type { RepeatableContent } from \"../content/repeatable\"\nimport { RichTextContentType } from \"../content/richText\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { CompositeSliceContent, SharedSliceContent } from \"../content/slice\"\nimport {\n\ttype CompositeSliceItemContent,\n\ttype SharedSliceItemContent,\n\ttype LegacySliceItemContent,\n\ttype SliceItemContent,\n\ttype SlicesContent,\n\tSlicesContentType,\n} from \"../content/slices\"\nimport { TableContentType, type TableContent } from \"../content/table\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel, NestedGroupModel } from \"../model/group\"\nimport type { LinkModel } from \"../model/link\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type {\n\tCompositeSliceModel,\n\tLegacySliceModel,\n\tSharedSliceModel,\n\tSharedSliceVariationContentModel,\n\tSliceContentModel,\n} from \"../model/slice\"\nimport type { StaticSlicesModel } from \"../model/slices\"\nimport { TableCellModel } from \"../model/table\"\nimport type { TableModel } from \"../model/table\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport * as customTypeModel from \"./customTypeModel\"\n\ntype TraverseDocumentContentConfig = {\n\tmodel?: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseDocumentContent(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentConfig,\n): DocumentContent {\n\tconst { model, transformWidget, transformSlice } = config\n\n\t// Remove tabs from custom type model\n\tconst flatModel = model ? customTypeModel.flatten(model) : {}\n\n\tconst traversed: DocumentContent = {}\n\tfor (const [key, content] of Object.entries(document)) {\n\t\tconst path = contentPath.make(\n\t\t\t{ key: config.model?.id, type: \"CustomType\" },\n\t\t\t{ key, type: \"Widget\" },\n\t\t)\n\n\t\tconst traversedContent = traverseWidgetContent(path, key, key, content, {\n\t\t\tmodel: flatModel[key],\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t})\n\t\tif (traversedContent) {\n\t\t\ttraversed[key] = traversedContent\n\t\t}\n\t}\n\n\treturn traversed\n}\n\ntype TraverseSlicesContentConfig = {\n\tmodel?: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSlicesContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent,\n\tconfig: TraverseSlicesContentConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst sliceModel = config.model?.config?.choices?.[sliceItemContent.name]\n\n\t\tlet sliceContentModel: SliceContentModel | undefined\n\n\t\t// Happy path, content and model are both shared slices\n\t\tif (\n\t\t\tsliceItemContent.widget.__TYPE__ === SharedSliceContentType &&\n\t\t\tsliceModel?.type === \"SharedSlice\"\n\t\t) {\n\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\tconst variationModel = sliceModel.variations.find((variation) => variation.id === variationID)\n\t\t\tif (variationModel) {\n\t\t\t\tsliceContentModel = {\n\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\tvariationID: variationModel.id,\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Migrated path, content is composite or legacy, model is shared slice\n\t\tif (!sliceContentModel) {\n\t\t\tconst legacyPath = contentPath.append(contentPath.serialize(path), sliceItemContent.name)\n\n\t\t\t// Find the migrated slice model who's legacy path matches the content path\n\t\t\tconst migratedSliceModel = Object.values(config.model?.config?.choices || {}).find(\n\t\t\t\t(model): model is SharedSliceModel => {\n\t\t\t\t\treturn model.type === \"SharedSlice\" && Boolean(model.legacyPaths?.[legacyPath])\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tif (migratedSliceModel) {\n\t\t\t\t// Find the variation that matches the legacy path\n\t\t\t\tconst variation = migratedSliceModel.variations.find((variation) => {\n\t\t\t\t\treturn variation.id === migratedSliceModel.legacyPaths?.[legacyPath]\n\t\t\t\t})\n\n\t\t\t\tif (variation) {\n\t\t\t\t\tsliceContentModel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: migratedSliceModel.id,\n\t\t\t\t\t\tvariationID: variation.id,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variation.primary || {},\n\t\t\t\t\t\t\titems: variation.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Non-migrated path, content and model are composite or legacy\n\t\tif (!sliceContentModel && sliceModel && sliceModel.type !== \"SharedSlice\") {\n\t\t\tsliceContentModel = sliceModel\n\t\t}\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {\n\t\t\tconst model = sliceContentModel?.type === \"SharedSlice\" ? sliceContentModel : undefined\n\t\t\ttraversedSliceItemContent = traverseSharedSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else if (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {\n\t\t\tconst model =\n\t\t\t\tsliceContentModel?.type === \"Slice\" || sliceContentModel?.type === \"SharedSlice\"\n\t\t\t\t\t? sliceContentModel\n\t\t\t\t\t: undefined\n\t\t\ttraversedSliceItemContent = traverseCompositeSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else {\n\t\t\tconst model = sliceContentModel?.type !== \"Slice\" ? sliceContentModel : undefined\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"LegacySlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as LegacySliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t}\n\n\t\tif (traversedSliceItemContent) {\n\t\t\ttraversed.push(traversedSliceItemContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseSharedSliceContentConfig = {\n\tmodel?: SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSharedSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent,\n\tconfig: TraverseSharedSliceContentConfig,\n): SharedSliceItemContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.primary)) {\n\t\tconst model = config.model?.fields.primary?.[key]\n\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tfieldContent,\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (\n\t\t\ttraversedContent &&\n\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"items\", type: \"items\" }),\n\t\tcontent.widget.items,\n\t\t{ model: config.model?.fields.items, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, primary: traversedPrimary, items: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseCompositeSliceContentConfig = {\n\tmodel?: CompositeSliceModel | SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseCompositeSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent,\n\tconfig: TraverseCompositeSliceContentConfig,\n): CompositeSliceItemContent | SharedSliceItemContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst primaryModel =\n\t\tconfig.model?.type === \"SharedSlice\"\n\t\t\t? config.model?.fields.primary\n\t\t\t: config.model?.[\"non-repeat\"]\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tfieldContent,\n\t\t\t{ model: primaryModel?.[key], transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isNestableContent(traversedContent)) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst itemsModel =\n\t\tconfig.model?.type === \"SharedSlice\" ? config.model?.fields.items : config.model?.repeat\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: itemsModel, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseLegacySliceContentConfig = {\n\tmodel?: LegacySliceModel | SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseLegacySliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent,\n\tconfig: TraverseLegacySliceContentConfig,\n): LegacySliceItemContent | SharedSliceItemContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tlet legacySliceModel: LegacySliceModel | undefined\n\tif (content.widget.__TYPE__ === \"GroupContentType\") {\n\t\tif (model?.type === \"Group\") {\n\t\t\tlegacySliceModel = model\n\t\t} else if (model?.type === \"SharedSlice\") {\n\t\t\tlegacySliceModel = { type: \"Group\", config: { fields: model.fields.items } }\n\t\t}\n\t} else {\n\t\tif (model?.type === \"SharedSlice\") {\n\t\t\tconst primaryModel = model.fields.primary?.[content.name]\n\t\t\tif (primaryModel?.type !== \"Group\") {\n\t\t\t\tlegacySliceModel = primaryModel\n\t\t\t}\n\t\t} else if (model?.type !== \"Group\") {\n\t\t\tlegacySliceModel = model\n\t\t}\n\t}\n\n\tconst traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {\n\t\tmodel: legacySliceModel,\n\t\ttransformWidget,\n\t\ttransformSlice,\n\t})\n\n\tif (\n\t\ttraversedContent &&\n\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t) {\n\t\treturn transformSlice({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent: { ...content, widget: traversedContent },\n\t\t\tmodel,\n\t\t})\n\t}\n}\n\ntype TraverseGroupContentConfig = {\n\tmodel?: GroupModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent,\n\tconfig: TraverseGroupContentConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed = traverseGroupItemsContent(path, content.value, {\n\t\tmodel: model?.config?.fields,\n\t\ttransformWidget,\n\t})\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseGroupItemsContentConfig = {\n\tmodel?: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupItemsContent(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[],\n\tconfig: TraverseGroupItemsContentConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, content] of groupItemContent.value) {\n\t\t\t// In some edge cases v3 handled implicitly, content\n\t\t\t// could be undefined, so we need to skip such cases.\n\t\t\tif (!content) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst model = config.model?.[key]\n\t\t\tconst traversedContent = traverseWidgetContent(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tcontent,\n\t\t\t\t{ model, transformWidget },\n\t\t\t)\n\n\t\t\tif (\n\t\t\t\ttraversedContent &&\n\t\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t\t) {\n\t\t\t\ttraversedValue.push([key, traversedContent])\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...groupItemContent, value: traversedValue })\n\t}\n\n\treturn traversed\n}\n\ntype TraverseRepeatableContentConfig = {\n\tmodel?: LinkModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseRepeatableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent,\n\tconfig: TraverseRepeatableContentConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\tconst nonRepeatModel =\n\t\tmodel?.type === \"Link\" && model.config\n\t\t\t? { ...model, config: { ...model.config, repeat: false } }\n\t\t\t: model\n\n\tconst traversed: RepeatableContent[\"value\"] = []\n\tfor (let index = 0; index < content.value.length; index++) {\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: index.toString(), type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.value[index],\n\t\t\t{ model: nonRepeatModel, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isRepeatableContentValue(traversedContent)) {\n\t\t\ttraversed.push(traversedContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseTableContentConfig = {\n\tmodel?: TableModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseTableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent,\n\tconfig: TraverseTableContentConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed: TableContent[\"content\"] = []\n\tfor (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {\n\t\tconst traversedContent: TableContent[\"content\"][number][\"content\"] = []\n\t\tfor (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {\n\t\t\tconst cellPath = path.concat({ key: [rowIndex, cellIndex].join(\",\"), type: \"Widget\" })\n\t\t\tconst cell = content.content[rowIndex].content[cellIndex]\n\n\t\t\tconst transformed = transformWidget({\n\t\t\t\tpath: cellPath,\n\t\t\t\tkey,\n\t\t\t\tapiID,\n\t\t\t\tcontent: cell.content,\n\t\t\t\tmodel: TableCellModel,\n\t\t\t})\n\n\t\t\tif (transformed && transformed.__TYPE__ === RichTextContentType) {\n\t\t\t\ttraversedContent.push({ ...cell, content: transformed })\n\t\t\t} else {\n\t\t\t\ttraversedContent.push({\n\t\t\t\t\t...cell,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...content.content[rowIndex], content: traversedContent })\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, content: traversed },\n\t\tmodel,\n\t})\n}\n\nexport type TraverseSliceContentFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: SliceContentModel\n}) => TContent | SharedSliceItemContent | undefined\n\nexport type TraverseWidgetContentFunction<\n\tTContentTransformMode extends \"preserve\" | \"widen\" = \"preserve\",\n> = <TContent extends WidgetContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: StaticWidgetModel\n}) => (TContentTransformMode extends \"preserve\" ? TContent : WidgetContent) | undefined\n\n// Internals\ntype TraverseWidgetContentConfig = {\n\tmodel?: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nfunction traverseWidgetContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent,\n\tconfig: TraverseWidgetContentConfig,\n): WidgetContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (content.__TYPE__ === SlicesContentType) {\n\t\tconst model =\n\t\t\tconfig.model?.type === \"Slices\" || config.model?.type === \"Choice\" ? config.model : undefined\n\t\treturn traverseSlicesContent(path, key, apiID, content, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (content.__TYPE__ === GroupContentType) {\n\t\tconst model = config.model?.type === \"Group\" ? config.model : undefined\n\t\treturn traverseGroupContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === RepeatableContentType) {\n\t\tconst model = config.model?.type === \"Link\" ? config.model : undefined\n\t\treturn traverseRepeatableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === TableContentType) {\n\t\tconst model = config.model?.type === \"Table\" ? config.model : undefined\n\t\treturn traverseTableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tconst model =\n\t\tconfig.model?.type !== \"Slices\" &&\n\t\tconfig.model?.type !== \"Choice\" &&\n\t\tconfig.model?.type !== \"Group\" &&\n\t\tconfig.model?.type !== \"Table\"\n\t\t\t? config.model\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content, model })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"traverseContent.js","names":["customTypeModel.flatten","contentPath.make","contentPath.append","contentPath.serialize"],"sources":["../../src/helpers/traverseContent.ts"],"sourcesContent":["import type { DocumentContent } from \"../content/document\"\nimport { GroupContentType } from \"../content/group\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { isNestableContent } from \"../content/nestable\"\nimport { isRepeatableContentValue, RepeatableContentType } from \"../content/repeatable\"\nimport type { RepeatableContent } from \"../content/repeatable\"\nimport { RichTextContentType } from \"../content/richText\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { CompositeSliceContent, SharedSliceContent } from \"../content/slice\"\nimport {\n\ttype CompositeSliceItemContent,\n\ttype SharedSliceItemContent,\n\ttype LegacySliceItemContent,\n\ttype SliceItemContent,\n\ttype SlicesContent,\n\tSlicesContentType,\n} from \"../content/slices\"\nimport { TableContentType, type TableContent } from \"../content/table\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel, NestedGroupModel } from \"../model/group\"\nimport type { LinkModel } from \"../model/link\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type {\n\tCompositeSliceModel,\n\tLegacySliceModel,\n\tSharedSliceModel,\n\tSharedSliceVariationContentModel,\n\tSliceContentModel,\n} from \"../model/slice\"\nimport type { StaticSlicesModel } from \"../model/slices\"\nimport { TableCellModel } from \"../model/table\"\nimport type { TableModel } from \"../model/table\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport * as customTypeModel from \"./customTypeModel\"\n\ntype TraverseDocumentContentConfig = {\n\tmodel?: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseDocumentContent(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentConfig,\n): DocumentContent {\n\tconst { model, transformWidget, transformSlice } = config\n\n\t// Remove tabs from custom type model\n\tconst flatModel = model ? customTypeModel.flatten(model) : {}\n\n\tconst traversed: DocumentContent = {}\n\tfor (const [key, content] of Object.entries(document)) {\n\t\tconst path = contentPath.make(\n\t\t\t{ key: config.model?.id, type: \"CustomType\" },\n\t\t\t{ key, type: \"Widget\" },\n\t\t)\n\n\t\tconst traversedContent = traverseWidgetContent(path, key, key, content, {\n\t\t\tmodel: flatModel[key],\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t})\n\t\tif (traversedContent) {\n\t\t\ttraversed[key] = traversedContent\n\t\t}\n\t}\n\n\treturn traversed\n}\n\ntype TraverseSlicesContentConfig = {\n\tmodel?: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSlicesContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent,\n\tconfig: TraverseSlicesContentConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst sliceModel = config.model?.config?.choices?.[sliceItemContent.name]\n\n\t\tlet sliceContentModel: SliceContentModel | undefined\n\n\t\t// Happy path, content and model are both shared slices\n\t\tif (\n\t\t\tsliceItemContent.widget.__TYPE__ === SharedSliceContentType &&\n\t\t\tsliceModel?.type === \"SharedSlice\"\n\t\t) {\n\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\tconst variationModel = sliceModel.variations.find((variation) => variation.id === variationID)\n\t\t\tif (variationModel) {\n\t\t\t\tsliceContentModel = {\n\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\tvariationID: variationModel.id,\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Migrated path, content is composite or legacy, model is shared slice\n\t\tif (!sliceContentModel) {\n\t\t\tconst legacyPath = contentPath.append(contentPath.serialize(path), sliceItemContent.name)\n\n\t\t\t// Find the migrated slice model who's legacy path matches the content path\n\t\t\tconst migratedSliceModel = Object.values(config.model?.config?.choices || {}).find(\n\t\t\t\t(model): model is SharedSliceModel => {\n\t\t\t\t\treturn model.type === \"SharedSlice\" && Boolean(model.legacyPaths?.[legacyPath])\n\t\t\t\t},\n\t\t\t)\n\n\t\t\tif (migratedSliceModel) {\n\t\t\t\t// Find the variation that matches the legacy path\n\t\t\t\tconst variation = migratedSliceModel.variations.find((variation) => {\n\t\t\t\t\treturn variation.id === migratedSliceModel.legacyPaths?.[legacyPath]\n\t\t\t\t})\n\n\t\t\t\tif (variation) {\n\t\t\t\t\tsliceContentModel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: migratedSliceModel.id,\n\t\t\t\t\t\tvariationID: variation.id,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variation.primary || {},\n\t\t\t\t\t\t\titems: variation.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Non-migrated path, content and model are composite or legacy\n\t\tif (!sliceContentModel && sliceModel && sliceModel.type !== \"SharedSlice\") {\n\t\t\tsliceContentModel = sliceModel\n\t\t}\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {\n\t\t\tconst model = sliceContentModel?.type === \"SharedSlice\" ? sliceContentModel : undefined\n\t\t\ttraversedSliceItemContent = traverseSharedSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else if (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {\n\t\t\tconst model =\n\t\t\t\tsliceContentModel?.type === \"Slice\" || sliceContentModel?.type === \"SharedSlice\"\n\t\t\t\t\t? sliceContentModel\n\t\t\t\t\t: undefined\n\t\t\ttraversedSliceItemContent = traverseCompositeSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else {\n\t\t\tconst model = sliceContentModel?.type !== \"Slice\" ? sliceContentModel : undefined\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"LegacySlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as LegacySliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t}\n\n\t\tif (traversedSliceItemContent) {\n\t\t\ttraversed.push(traversedSliceItemContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseSharedSliceContentConfig = {\n\tmodel?: SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSharedSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent,\n\tconfig: TraverseSharedSliceContentConfig,\n): SharedSliceItemContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.primary)) {\n\t\tconst model = config.model?.fields.primary?.[key]\n\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tfieldContent,\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (\n\t\t\ttraversedContent &&\n\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"items\", type: \"items\" }),\n\t\tcontent.widget.items,\n\t\t{ model: config.model?.fields.items, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, primary: traversedPrimary, items: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseCompositeSliceContentConfig = {\n\tmodel?: CompositeSliceModel | SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseCompositeSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent,\n\tconfig: TraverseCompositeSliceContentConfig,\n): CompositeSliceItemContent | SharedSliceItemContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst primaryModel =\n\t\tconfig.model?.type === \"SharedSlice\"\n\t\t\t? config.model?.fields.primary\n\t\t\t: config.model?.[\"non-repeat\"]\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tfieldContent,\n\t\t\t{ model: primaryModel?.[key], transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isNestableContent(traversedContent)) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst itemsModel =\n\t\tconfig.model?.type === \"SharedSlice\" ? config.model?.fields.items : config.model?.repeat\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: itemsModel, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseLegacySliceContentConfig = {\n\tmodel?: LegacySliceModel | SharedSliceVariationContentModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseLegacySliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent,\n\tconfig: TraverseLegacySliceContentConfig,\n): LegacySliceItemContent | SharedSliceItemContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tlet legacySliceModel: LegacySliceModel | undefined\n\tif (content.widget.__TYPE__ === \"GroupContentType\") {\n\t\tif (model?.type === \"Group\") {\n\t\t\tlegacySliceModel = model\n\t\t} else if (model?.type === \"SharedSlice\") {\n\t\t\tlegacySliceModel = { type: \"Group\", config: { fields: model.fields.items } }\n\t\t}\n\t} else {\n\t\tif (model?.type === \"SharedSlice\") {\n\t\t\tconst primaryModel = model.fields.primary?.[content.name]\n\t\t\tif (primaryModel?.type !== \"Group\") {\n\t\t\t\tlegacySliceModel = primaryModel\n\t\t\t}\n\t\t} else if (model?.type !== \"Group\") {\n\t\t\tlegacySliceModel = model\n\t\t}\n\t}\n\n\tconst traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {\n\t\tmodel: legacySliceModel,\n\t\ttransformWidget,\n\t\ttransformSlice,\n\t})\n\n\tif (\n\t\ttraversedContent &&\n\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t) {\n\t\treturn transformSlice({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent: { ...content, widget: traversedContent },\n\t\t\tmodel,\n\t\t})\n\t}\n}\n\ntype TraverseGroupContentConfig = {\n\tmodel?: GroupModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent,\n\tconfig: TraverseGroupContentConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed = traverseGroupItemsContent(path, content.value, {\n\t\tmodel: model?.config?.fields,\n\t\ttransformWidget,\n\t})\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseGroupItemsContentConfig = {\n\tmodel?: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupItemsContent(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[],\n\tconfig: TraverseGroupItemsContentConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\t// Legacy v3 documents can have .value as a plain object or string\n\t\t// instead of the expected [key, content][] tuples.\n\t\tif (!Array.isArray(groupItemContent.value)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, content] of groupItemContent.value) {\n\t\t\t// In some edge cases v3 handled implicitly, content\n\t\t\t// could be undefined, so we need to skip such cases.\n\t\t\tif (!content) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst model = config.model?.[key]\n\t\t\tconst traversedContent = traverseWidgetContent(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tcontent,\n\t\t\t\t{ model, transformWidget },\n\t\t\t)\n\n\t\t\tif (\n\t\t\t\ttraversedContent &&\n\t\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t\t) {\n\t\t\t\ttraversedValue.push([key, traversedContent])\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...groupItemContent, value: traversedValue })\n\t}\n\n\treturn traversed\n}\n\ntype TraverseRepeatableContentConfig = {\n\tmodel?: LinkModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseRepeatableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent,\n\tconfig: TraverseRepeatableContentConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\tconst nonRepeatModel =\n\t\tmodel?.type === \"Link\" && model.config\n\t\t\t? { ...model, config: { ...model.config, repeat: false } }\n\t\t\t: model\n\n\tconst traversed: RepeatableContent[\"value\"] = []\n\tfor (let index = 0; index < content.value.length; index++) {\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: index.toString(), type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.value[index],\n\t\t\t{ model: nonRepeatModel, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isRepeatableContentValue(traversedContent)) {\n\t\t\ttraversed.push(traversedContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseTableContentConfig = {\n\tmodel?: TableModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseTableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent,\n\tconfig: TraverseTableContentConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed: TableContent[\"content\"] = []\n\tfor (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {\n\t\tconst traversedContent: TableContent[\"content\"][number][\"content\"] = []\n\t\tfor (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {\n\t\t\tconst cellPath = path.concat({ key: [rowIndex, cellIndex].join(\",\"), type: \"Widget\" })\n\t\t\tconst cell = content.content[rowIndex].content[cellIndex]\n\n\t\t\tconst transformed = transformWidget({\n\t\t\t\tpath: cellPath,\n\t\t\t\tkey,\n\t\t\t\tapiID,\n\t\t\t\tcontent: cell.content,\n\t\t\t\tmodel: TableCellModel,\n\t\t\t})\n\n\t\t\tif (transformed && transformed.__TYPE__ === RichTextContentType) {\n\t\t\t\ttraversedContent.push({ ...cell, content: transformed })\n\t\t\t} else {\n\t\t\t\ttraversedContent.push({\n\t\t\t\t\t...cell,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...content.content[rowIndex], content: traversedContent })\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, content: traversed },\n\t\tmodel,\n\t})\n}\n\nexport type TraverseSliceContentFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: SliceContentModel\n}) => TContent | SharedSliceItemContent | undefined\n\nexport type TraverseWidgetContentFunction<\n\tTContentTransformMode extends \"preserve\" | \"widen\" = \"preserve\",\n> = <TContent extends WidgetContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: StaticWidgetModel\n}) => (TContentTransformMode extends \"preserve\" ? TContent : WidgetContent) | undefined\n\n// Internals\ntype TraverseWidgetContentConfig = {\n\tmodel?: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nfunction traverseWidgetContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent,\n\tconfig: TraverseWidgetContentConfig,\n): WidgetContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (content.__TYPE__ === SlicesContentType) {\n\t\tconst model =\n\t\t\tconfig.model?.type === \"Slices\" || config.model?.type === \"Choice\" ? config.model : undefined\n\t\treturn traverseSlicesContent(path, key, apiID, content, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (content.__TYPE__ === GroupContentType) {\n\t\tconst model = config.model?.type === \"Group\" ? config.model : undefined\n\t\treturn traverseGroupContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === RepeatableContentType) {\n\t\tconst model = config.model?.type === \"Link\" ? config.model : undefined\n\t\treturn traverseRepeatableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === TableContentType) {\n\t\tconst model = config.model?.type === \"Table\" ? config.model : undefined\n\t\treturn traverseTableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tconst model =\n\t\tconfig.model?.type !== \"Slices\" &&\n\t\tconfig.model?.type !== \"Choice\" &&\n\t\tconfig.model?.type !== \"Group\" &&\n\t\tconfig.model?.type !== \"Table\"\n\t\t\t? config.model\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content, model })\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseContentWithModel.d.ts","names":[],"sources":["../../src/helpers/traverseContentWithModel.ts"],"mappings":";;;;;;;;;;;;;;;;;KAoCK,sCAAA;EACJ,KAAA,EAAO,qBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,gCAAA,CACf,QAAA,EAAU,eAAA,EACV,MAAA,EAAQ,sCAAA,GACN,eAAA;AAAA,KA0BE,oCAAA;EACJ,KAAA,EAAO,iBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,8BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,aAAA,cACT,MAAA,EAAQ,oCAAA,GACN,aAAA;AAAA,KAyGE,yCAAA;EACJ,KAAA,EAAO,gCAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,mCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,cACT,MAAA,EAAQ,yCAAA,GACN,sBAAA;AAAA,KA4CE,4CAAA;EACJ,KAAA,EAAO,mBAAA,GAAsB,gCAAA;EAC7B,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,sCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,yBAAA,cACT,MAAA,EAAQ,4CAAA,GACN,yBAAA,GAA4B,sBAAA;AAAA,KA+C1B,yCAAA;EACJ,KAAA,EAAO,gBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,mCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,cACT,MAAA,EAAQ,yCAAA,GACN,sBAAA,GAAyB,sBAAA;AAAA,KA+BvB,mCAAA;EACJ,KAAA,EAAO,UAAA;EACP,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,6BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,YAAA,cACT,MAAA,EAAQ,mCAAA,GACN,YAAA;AAAA,KA0BE,wCAAA;EACJ,KAAA,EAAO,MAAA,SAAe,gBAAA,GAAmB,aAAA;EACzC,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,kCAAA,CACf,IAAA,EAAM,IAAA,EACN,OAAA,EAAS,gBAAA,gBACT,MAAA,EAAQ,wCAAA,GACN,gBAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"traverseContentWithModel.d.ts","names":[],"sources":["../../src/helpers/traverseContentWithModel.ts"],"mappings":";;;;;;;;;;;;;;;;;KAoCK,sCAAA;EACJ,KAAA,EAAO,qBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,gCAAA,CACf,QAAA,EAAU,eAAA,EACV,MAAA,EAAQ,sCAAA,GACN,eAAA;AAAA,KA0BE,oCAAA;EACJ,KAAA,EAAO,iBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,8BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,aAAA,cACT,MAAA,EAAQ,oCAAA,GACN,aAAA;AAAA,KAyGE,yCAAA;EACJ,KAAA,EAAO,gCAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,mCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,cACT,MAAA,EAAQ,yCAAA,GACN,sBAAA;AAAA,KA4CE,4CAAA;EACJ,KAAA,EAAO,mBAAA,GAAsB,gCAAA;EAC7B,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,sCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,yBAAA,cACT,MAAA,EAAQ,4CAAA,GACN,yBAAA,GAA4B,sBAAA;AAAA,KA+C1B,yCAAA;EACJ,KAAA,EAAO,gBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,mCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,cACT,MAAA,EAAQ,yCAAA,GACN,sBAAA,GAAyB,sBAAA;AAAA,KA+BvB,mCAAA;EACJ,KAAA,EAAO,UAAA;EACP,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,6BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,YAAA,cACT,MAAA,EAAQ,mCAAA,GACN,YAAA;AAAA,KA0BE,wCAAA;EACJ,KAAA,EAAO,MAAA,SAAe,gBAAA,GAAmB,aAAA;EACzC,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,kCAAA,CACf,IAAA,EAAM,IAAA,EACN,OAAA,EAAS,gBAAA,gBACT,MAAA,EAAQ,wCAAA,GACN,gBAAA;AAAA,KA0CE,wCAAA;EACJ,KAAA,EAAO,SAAA;EACP,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,kCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,iBAAA,cACT,MAAA,EAAQ,wCAAA,GACN,iBAAA;AAAA,KAyCE,mCAAA;EACJ,KAAA,EAAO,UAAA;EACP,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,6BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,YAAA,cACT,MAAA,EAAQ,mCAAA,GACN,YAAA;AAAA,KAoDS,qCAAA,qBAA0D,gBAAA,EAAkB,IAAA;EACvF,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,GAAU,QAAA;EACV,KAAA,EAAO,iBAAA;AAAA,MACF,QAAA,GAAW,sBAAA;AAAA,KAEL,sCAAA,sFAEU,aAAA,EAAe,IAAA;EACpC,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,GAAU,QAAA;EACV,KAAA,EAAO,iBAAA;AAAA,OACD,qBAAA,sBAA2C,QAAA,GAAW,aAAA"}
|
|
@@ -243,6 +243,7 @@ function traverseGroupItemsContentWithModel(path, content, config) {
|
|
|
243
243
|
if (!content) return [];
|
|
244
244
|
const traversed = [];
|
|
245
245
|
for (const groupItemContent of content) {
|
|
246
|
+
if (!Array.isArray(groupItemContent.value)) continue;
|
|
246
247
|
const groupItemPath = path.concat({
|
|
247
248
|
key: groupItemContent.key,
|
|
248
249
|
type: "GroupItem"
|