@prismicio/types-internal 4.0.0-pr.6.7b0b0be → 4.0.0-pr.6.e3136c3

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.
@@ -33,7 +33,7 @@ function fromLegacy(legacy) {
33
33
  const parsed = z.uuidv4().safeParse(value);
34
34
  if (parsed.success) keys.set(key.substring(0, key.length - 4), parsed.data);
35
35
  } else if (!key.endsWith("_POSITION")) widgets[key] = value;
36
- const result = DocumentLegacyCodec(defaultCtx("", types, keys)).toContent(widgets);
36
+ const result = DocumentLegacyCodec(defaultCtx("", types, keys)).toContent(parsed.data);
37
37
  if (!result.success) return;
38
38
  return result.data;
39
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"documentContent.js","names":["contentPath.serialize"],"sources":["../../src/helpers/documentContent.ts"],"sourcesContent":["import { z } from \"zod/mini\"\n\nimport { DocumentLegacyCodec } from \"../content/codec/document\"\nimport { defaultCtx } from \"../content/codec/legacyContentCtx\"\nimport type { DocumentContent } from \"../content/document\"\nimport type { DocumentLegacy } from \"../content/legacy/document\"\nimport { DocumentLegacySchema } from \"../content/legacy/document\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { FieldOrSliceType } from \"../model/widget\"\nimport { FieldOrSliceTypeSchema } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport { traverseDocumentContent } from \"./traverseContent\"\n\nexport function collectWidgets<TWidgetContent extends WidgetContent>(\n\tdocument: DocumentContent,\n\ttest: (args: {\n\t\tpath: contentPath.Path\n\t\tkey: string\n\t\tapiID: string\n\t\tcontent: WidgetContent\n\t}) => args is {\n\t\tpath: contentPath.Path\n\t\tkey: string\n\t\tapiID: string\n\t\tcontent: TWidgetContent\n\t},\n): Record<string, TWidgetContent> {\n\tconst collected: Record<string, TWidgetContent> = {}\n\n\ttraverseDocumentContent(document, {\n\t\ttransformWidget: (args) => {\n\t\t\tif (test(args)) {\n\t\t\t\tcollected[contentPath.serialize(args.path)] = args.content\n\t\t\t}\n\n\t\t\treturn args.content\n\t\t},\n\t})\n\n\treturn collected\n}\n\nexport function fromLegacy(legacy: DocumentLegacy): DocumentContent | undefined {\n\tconst parsed = DocumentLegacySchema.safeParse(legacy)\n\tif (!parsed.success) {\n\t\treturn\n\t}\n\n\tconst types = new Map<string, FieldOrSliceType>()\n\tconst keys = new Map<string, string>()\n\tconst widgets: DocumentLegacy = {}\n\tfor (const [key, value] of Object.entries(parsed.data)) {\n\t\tif (key.endsWith(\"_TYPE\")) {\n\t\t\tconst parsed = FieldOrSliceTypeSchema.safeParse(value)\n\t\t\tif (parsed.success) {\n\t\t\t\ttypes.set(key.substring(0, key.length - 5), parsed.data)\n\t\t\t}\n\t\t} else if (key.endsWith(\"_KEY\")) {\n\t\t\tconst parsed = z.uuidv4().safeParse(value)\n\t\t\tif (parsed.success) {\n\t\t\t\tkeys.set(key.substring(0, key.length - 4), parsed.data)\n\t\t\t}\n\t\t} else if (!key.endsWith(\"_POSITION\")) {\n\t\t\twidgets[key] = value\n\t\t}\n\t}\n\n\tconst result = DocumentLegacyCodec(defaultCtx(\"\", types, keys)).toContent(widgets)\n\tif (!result.success) {\n\t\treturn\n\t}\n\n\treturn result.data\n}\n\nexport function toLegacy(document: DocumentContent): DocumentLegacy {\n\tconst { content, types, keys } = DocumentLegacyCodec(defaultCtx(\"\")).fromContent(document)\n\n\treturn { ...content, ...types, ...keys }\n}\n"],"mappings":";;;;;;;;;;;;;;AAaA,SAAgB,eACf,UACA,MAWiC;CACjC,MAAM,YAA4C,EAAE;AAEpD,yBAAwB,UAAU,EACjC,kBAAkB,SAAS;AAC1B,MAAI,KAAK,KAAK,CACb,WAAUA,UAAsB,KAAK,KAAK,IAAI,KAAK;AAGpD,SAAO,KAAK;IAEb,CAAC;AAEF,QAAO;;AAGR,SAAgB,WAAW,QAAqD;CAC/E,MAAM,SAAS,qBAAqB,UAAU,OAAO;AACrD,KAAI,CAAC,OAAO,QACX;CAGD,MAAM,wBAAQ,IAAI,KAA+B;CACjD,MAAM,uBAAO,IAAI,KAAqB;CACtC,MAAM,UAA0B,EAAE;AAClC,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,KAAK,CACrD,KAAI,IAAI,SAAS,QAAQ,EAAE;EAC1B,MAAM,SAAS,uBAAuB,UAAU,MAAM;AACtD,MAAI,OAAO,QACV,OAAM,IAAI,IAAI,UAAU,GAAG,IAAI,SAAS,EAAE,EAAE,OAAO,KAAK;YAE/C,IAAI,SAAS,OAAO,EAAE;EAChC,MAAM,SAAS,EAAE,QAAQ,CAAC,UAAU,MAAM;AAC1C,MAAI,OAAO,QACV,MAAK,IAAI,IAAI,UAAU,GAAG,IAAI,SAAS,EAAE,EAAE,OAAO,KAAK;YAE9C,CAAC,IAAI,SAAS,YAAY,CACpC,SAAQ,OAAO;CAIjB,MAAM,SAAS,oBAAoB,WAAW,IAAI,OAAO,KAAK,CAAC,CAAC,UAAU,QAAQ;AAClF,KAAI,CAAC,OAAO,QACX;AAGD,QAAO,OAAO;;AAGf,SAAgB,SAAS,UAA2C;CACnE,MAAM,EAAE,SAAS,OAAO,SAAS,oBAAoB,WAAW,GAAG,CAAC,CAAC,YAAY,SAAS;AAE1F,QAAO;EAAE,GAAG;EAAS,GAAG;EAAO,GAAG;EAAM"}
1
+ {"version":3,"file":"documentContent.js","names":["contentPath.serialize"],"sources":["../../src/helpers/documentContent.ts"],"sourcesContent":["import { z } from \"zod/mini\"\n\nimport { DocumentLegacyCodec } from \"../content/codec/document\"\nimport { defaultCtx } from \"../content/codec/legacyContentCtx\"\nimport type { DocumentContent } from \"../content/document\"\nimport type { DocumentLegacy } from \"../content/legacy/document\"\nimport { DocumentLegacySchema } from \"../content/legacy/document\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { FieldOrSliceType } from \"../model/widget\"\nimport { FieldOrSliceTypeSchema } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport { traverseDocumentContent } from \"./traverseContent\"\n\nexport function collectWidgets<TWidgetContent extends WidgetContent>(\n\tdocument: DocumentContent,\n\ttest: (args: {\n\t\tpath: contentPath.Path\n\t\tkey: string\n\t\tapiID: string\n\t\tcontent: WidgetContent\n\t}) => args is {\n\t\tpath: contentPath.Path\n\t\tkey: string\n\t\tapiID: string\n\t\tcontent: TWidgetContent\n\t},\n): Record<string, TWidgetContent> {\n\tconst collected: Record<string, TWidgetContent> = {}\n\n\ttraverseDocumentContent(document, {\n\t\ttransformWidget: (args) => {\n\t\t\tif (test(args)) {\n\t\t\t\tcollected[contentPath.serialize(args.path)] = args.content\n\t\t\t}\n\n\t\t\treturn args.content\n\t\t},\n\t})\n\n\treturn collected\n}\n\nexport function fromLegacy(legacy: DocumentLegacy): DocumentContent | undefined {\n\tconst parsed = DocumentLegacySchema.safeParse(legacy)\n\tif (!parsed.success) {\n\t\treturn\n\t}\n\n\tconst types = new Map<string, FieldOrSliceType>()\n\tconst keys = new Map<string, string>()\n\tconst widgets: DocumentLegacy = {}\n\tfor (const [key, value] of Object.entries(parsed.data)) {\n\t\tif (key.endsWith(\"_TYPE\")) {\n\t\t\tconst parsed = FieldOrSliceTypeSchema.safeParse(value)\n\t\t\tif (parsed.success) {\n\t\t\t\ttypes.set(key.substring(0, key.length - 5), parsed.data)\n\t\t\t}\n\t\t} else if (key.endsWith(\"_KEY\")) {\n\t\t\tconst parsed = z.uuidv4().safeParse(value)\n\t\t\tif (parsed.success) {\n\t\t\t\tkeys.set(key.substring(0, key.length - 4), parsed.data)\n\t\t\t}\n\t\t} else if (!key.endsWith(\"_POSITION\")) {\n\t\t\twidgets[key] = value\n\t\t}\n\t}\n\n\tconst result = DocumentLegacyCodec(defaultCtx(\"\", types, keys)).toContent(parsed.data)\n\tif (!result.success) {\n\t\treturn\n\t}\n\n\treturn result.data\n}\n\nexport function toLegacy(document: DocumentContent): DocumentLegacy {\n\tconst { content, types, keys } = DocumentLegacyCodec(defaultCtx(\"\")).fromContent(document)\n\n\treturn { ...content, ...types, ...keys }\n}\n"],"mappings":";;;;;;;;;;;;;;AAaA,SAAgB,eACf,UACA,MAWiC;CACjC,MAAM,YAA4C,EAAE;AAEpD,yBAAwB,UAAU,EACjC,kBAAkB,SAAS;AAC1B,MAAI,KAAK,KAAK,CACb,WAAUA,UAAsB,KAAK,KAAK,IAAI,KAAK;AAGpD,SAAO,KAAK;IAEb,CAAC;AAEF,QAAO;;AAGR,SAAgB,WAAW,QAAqD;CAC/E,MAAM,SAAS,qBAAqB,UAAU,OAAO;AACrD,KAAI,CAAC,OAAO,QACX;CAGD,MAAM,wBAAQ,IAAI,KAA+B;CACjD,MAAM,uBAAO,IAAI,KAAqB;CACtC,MAAM,UAA0B,EAAE;AAClC,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,KAAK,CACrD,KAAI,IAAI,SAAS,QAAQ,EAAE;EAC1B,MAAM,SAAS,uBAAuB,UAAU,MAAM;AACtD,MAAI,OAAO,QACV,OAAM,IAAI,IAAI,UAAU,GAAG,IAAI,SAAS,EAAE,EAAE,OAAO,KAAK;YAE/C,IAAI,SAAS,OAAO,EAAE;EAChC,MAAM,SAAS,EAAE,QAAQ,CAAC,UAAU,MAAM;AAC1C,MAAI,OAAO,QACV,MAAK,IAAI,IAAI,UAAU,GAAG,IAAI,SAAS,EAAE,EAAE,OAAO,KAAK;YAE9C,CAAC,IAAI,SAAS,YAAY,CACpC,SAAQ,OAAO;CAIjB,MAAM,SAAS,oBAAoB,WAAW,IAAI,OAAO,KAAK,CAAC,CAAC,UAAU,OAAO,KAAK;AACtF,KAAI,CAAC,OAAO,QACX;AAGD,QAAO,OAAO;;AAGf,SAAgB,SAAS,UAA2C;CACnE,MAAM,EAAE,SAAS,OAAO,SAAS,oBAAoB,WAAW,GAAG,CAAC,CAAC,YAAY,SAAS;AAE1F,QAAO;EAAE,GAAG;EAAS,GAAG;EAAO,GAAG;EAAM"}
@@ -29,20 +29,20 @@ type TraverseSlicesContentConfig = {
29
29
  declare function traverseSlicesContent(path: Path, key: string, apiID: string, content: SlicesContent, config: TraverseSlicesContentConfig): SlicesContent | undefined;
30
30
  type TraverseSharedSliceContentConfig = {
31
31
  model?: SharedSliceVariationModel;
32
- transformWidget?: TraverseWidgetContentFunction;
33
- transformSlice?: TraverseSliceContentFunction;
32
+ transformWidget: TraverseWidgetContentFunction;
33
+ transformSlice: TraverseSliceContentFunction;
34
34
  };
35
35
  declare function traverseSharedSliceContent(path: Path, key: string, apiID: string, content: SharedSliceItemContent, config: TraverseSharedSliceContentConfig): SharedSliceItemContent | undefined;
36
36
  type TraverseCompositeSliceContentConfig = {
37
37
  model?: CompositeSliceModel;
38
- transformWidget?: TraverseWidgetContentFunction;
39
- transformSlice?: TraverseSliceContentFunction;
38
+ transformWidget: TraverseWidgetContentFunction;
39
+ transformSlice: TraverseSliceContentFunction;
40
40
  };
41
41
  declare function traverseCompositeSliceContent(path: Path, key: string, apiID: string, content: CompositeSliceItemContent, config: TraverseCompositeSliceContentConfig): CompositeSliceItemContent | undefined;
42
42
  type TraverseLegacySliceContentConfig = {
43
43
  model?: LegacySliceModel;
44
- transformWidget?: TraverseWidgetContentFunction;
45
- transformSlice?: TraverseSliceContentFunction;
44
+ transformWidget: TraverseWidgetContentFunction;
45
+ transformSlice: TraverseSliceContentFunction;
46
46
  };
47
47
  declare function traverseLegacySliceContent(path: Path, key: string, apiID: string, content: LegacySliceItemContent, config: TraverseLegacySliceContentConfig): LegacySliceItemContent | undefined;
48
48
  type TraverseGroupContentConfig = {
@@ -1 +1 @@
1
- {"version":3,"file":"traverseContent.d.ts","names":[],"sources":["../../src/helpers/traverseContent.ts"],"mappings":";;;;;;;;;;;;;;;;;KAmCK,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,KAyEE,gCAAA;EACJ,KAAA,GAAQ,yBAAA;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,KA4CE,mCAAA;EACJ,KAAA,GAAQ,mBAAA;EACR,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;AAAA,KAyCE,gCAAA;EACJ,KAAA,GAAQ,gBAAA;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,KA2BE,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,KAgCE,+BAAA;EACJ,KAAA,GAAQ,SAAA;EACR,eAAA,EAAiB,6BAAA;AAAA;AAAA,iBAGF,yBAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,iBAAA,EACT,MAAA,EAAQ,+BAAA,GACN,iBAAA;AAAA,KA+BE,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,KA2CS,4BAAA,qBAAiD,gBAAA,EAAkB,IAAA;EAC9E,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,EAAS,QAAA;EACT,KAAA,GAAQ,UAAA;AAAA,MACH,QAAA;AAAA,KAEM,6BAAA,sFAEU,aAAA,EAAe,IAAA;EACpC,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,EAAS,QAAA;EACT,KAAA,GAAQ,iBAAA;AAAA,OACF,qBAAA,sBAA2C,QAAA,GAAW,aAAA;AAAA,KAGxD,UAAA,GAAa,yBAAA,GAA4B,mBAAA,GAAsB,gBAAA"}
1
+ {"version":3,"file":"traverseContent.d.ts","names":[],"sources":["../../src/helpers/traverseContent.ts"],"mappings":";;;;;;;;;;;;;;;;;KAmCK,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,KAuEE,gCAAA;EACJ,KAAA,GAAQ,yBAAA;EACR,eAAA,EAAiB,6BAAA;EACjB,cAAA,EAAgB,4BAAA;AAAA;AAAA,iBAGD,0BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,EACT,MAAA,EAAQ,gCAAA,GACN,sBAAA;AAAA,KAyCE,mCAAA;EACJ,KAAA,GAAQ,mBAAA;EACR,eAAA,EAAiB,6BAAA;EACjB,cAAA,EAAgB,4BAAA;AAAA;AAAA,iBAGD,6BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,yBAAA,EACT,MAAA,EAAQ,mCAAA,GACN,yBAAA;AAAA,KAsCE,gCAAA;EACJ,KAAA,GAAQ,gBAAA;EACR,eAAA,EAAiB,6BAAA;EACjB,cAAA,EAAgB,4BAAA;AAAA;AAAA,iBAGD,0BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,EACT,MAAA,EAAQ,gCAAA,GACN,sBAAA;AAAA,KAuBE,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,KAgCE,+BAAA;EACJ,KAAA,GAAQ,SAAA;EACR,eAAA,EAAiB,6BAAA;AAAA;AAAA,iBAGF,yBAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,iBAAA,EACT,MAAA,EAAQ,+BAAA,GACN,iBAAA;AAAA,KA+BE,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,KA2CS,4BAAA,qBAAiD,gBAAA,EAAkB,IAAA;EAC9E,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,EAAS,QAAA;EACT,KAAA,GAAQ,UAAA;AAAA,MACH,QAAA;AAAA,KAEM,6BAAA,sFAEU,aAAA,EAAe,IAAA;EACpC,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,EAAS,QAAA;EACT,KAAA,GAAQ,iBAAA;AAAA,OACF,qBAAA,sBAA2C,QAAA,GAAW,aAAA;AAAA,KAGxD,UAAA,GAAa,yBAAA,GAA4B,mBAAA,GAAsB,gBAAA"}
@@ -93,7 +93,7 @@ function traverseSlicesContent(path, key, apiID, content, config) {
93
93
  });
94
94
  }
95
95
  function traverseSharedSliceContent(path, key, apiID, content, config) {
96
- const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } = config;
96
+ const { transformWidget, transformSlice } = config;
97
97
  const traversedPrimary = {};
98
98
  for (const [key, fieldContent] of Object.entries(content.widget.primary)) {
99
99
  const model = config.model?.fields.primary?.[key];
@@ -132,7 +132,7 @@ function traverseSharedSliceContent(path, key, apiID, content, config) {
132
132
  });
133
133
  }
134
134
  function traverseCompositeSliceContent(path, key, apiID, content, config) {
135
- const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } = config;
135
+ const { transformWidget, transformSlice } = config;
136
136
  const traversedPrimary = {};
137
137
  for (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {
138
138
  const model = config.model?.["non-repeat"]?.[key];
@@ -171,7 +171,7 @@ function traverseCompositeSliceContent(path, key, apiID, content, config) {
171
171
  });
172
172
  }
173
173
  function traverseLegacySliceContent(path, key, apiID, content, config) {
174
- const { model, transformWidget = (args) => args.content, transformSlice = (args) => args.content } = config;
174
+ const { model, transformWidget, transformSlice } = config;
175
175
  const traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {
176
176
  model,
177
177
  transformWidget,
@@ -1 +1 @@
1
- {"version":3,"file":"traverseContent.js","names":["customTypeModel.flatten","contentPath.make"],"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\tSharedSliceVariationModel,\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 {\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\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 traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {\n\t\t\tlet model: SharedSliceVariationModel | undefined\n\t\t\tif (sliceModel?.type === \"SharedSlice\") {\n\t\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\t\tconst variationModel = sliceModel.variations.find(\n\t\t\t\t\t(variation) => variation.id === variationID,\n\t\t\t\t)\n\t\t\t\tif (variationModel) {\n\t\t\t\t\tmodel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\t\tvariationID,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\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 = sliceModel?.type === \"Slice\" ? sliceModel : 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 =\n\t\t\t\tsliceModel?.type !== \"SharedSlice\" && sliceModel?.type !== \"Slice\" ? sliceModel : 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?: SharedSliceVariationModel\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 {\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\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\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 | undefined {\n\tconst {\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {\n\t\tconst model = config.model?.[\"non-repeat\"]?.[key]\n\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, 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 traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: config.model?.repeat, 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\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 | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {\n\t\tmodel,\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\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?: SliceModel\n}) => TContent | 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 SliceModel = SharedSliceVariationModel | CompositeSliceModel | LegacySliceModel\n\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"],"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\tSharedSliceVariationModel,\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 traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {\n\t\t\tlet model: SharedSliceVariationModel | undefined\n\t\t\tif (sliceModel?.type === \"SharedSlice\") {\n\t\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\t\tconst variationModel = sliceModel.variations.find(\n\t\t\t\t\t(variation) => variation.id === variationID,\n\t\t\t\t)\n\t\t\t\tif (variationModel) {\n\t\t\t\t\tmodel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\t\tvariationID,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\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 = sliceModel?.type === \"Slice\" ? sliceModel : 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 =\n\t\t\t\tsliceModel?.type !== \"SharedSlice\" && sliceModel?.type !== \"Slice\" ? sliceModel : 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?: SharedSliceVariationModel\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, transformSlice } = config\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\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 | undefined {\n\tconst { transformWidget, transformSlice } = config\n\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {\n\t\tconst model = config.model?.[\"non-repeat\"]?.[key]\n\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, 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 traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: config.model?.repeat, 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\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 | undefined {\n\tconst { model, transformWidget, transformSlice } = config\n\n\tconst traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {\n\t\tmodel,\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\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?: SliceModel\n}) => TContent | 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 SliceModel = SharedSliceVariationModel | CompositeSliceModel | LegacySliceModel\n\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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"}
@@ -29,20 +29,20 @@ type TraverseSlicesContentWithModelConfig = {
29
29
  declare function traverseSlicesContentWithModel(path: Path, key: string, apiID: string, content: SlicesContent | undefined, config: TraverseSlicesContentWithModelConfig): SlicesContent | undefined;
30
30
  type TraverseSharedSliceContentWithModelConfig = {
31
31
  model: SharedSliceVariationModel;
32
- transformWidget?: TraverseWidgetContentWithModelFunction;
33
- transformSlice?: TraverseSliceContentWithModelFunction;
32
+ transformWidget: TraverseWidgetContentWithModelFunction;
33
+ transformSlice: TraverseSliceContentWithModelFunction;
34
34
  };
35
35
  declare function traverseSharedSliceContentWithModel(path: Path, key: string, apiID: string, content: SharedSliceItemContent | undefined, config: TraverseSharedSliceContentWithModelConfig): SharedSliceItemContent | undefined;
36
36
  type TraverseCompositeSliceContentWithModelConfig = {
37
37
  model: CompositeSliceModel;
38
- transformWidget?: TraverseWidgetContentWithModelFunction;
39
- transformSlice?: TraverseSliceContentWithModelFunction;
38
+ transformWidget: TraverseWidgetContentWithModelFunction;
39
+ transformSlice: TraverseSliceContentWithModelFunction;
40
40
  };
41
41
  declare function traverseCompositeSliceContentWithModel(path: Path, key: string, apiID: string, content: CompositeSliceItemContent | undefined, config: TraverseCompositeSliceContentWithModelConfig): CompositeSliceItemContent | undefined;
42
42
  type TraverseLegacySliceContentWithModelConfig = {
43
43
  model: LegacySliceModel;
44
- transformWidget?: TraverseWidgetContentWithModelFunction;
45
- transformSlice?: TraverseSliceContentWithModelFunction;
44
+ transformWidget: TraverseWidgetContentWithModelFunction;
45
+ transformSlice: TraverseSliceContentWithModelFunction;
46
46
  };
47
47
  declare function traverseLegacySliceContentWithModel(path: Path, key: string, apiID: string, content: LegacySliceItemContent | undefined, config: TraverseLegacySliceContentWithModelConfig): LegacySliceItemContent | undefined;
48
48
  type TraverseGroupContentWithModelConfig = {
@@ -1 +1 @@
1
- {"version":3,"file":"traverseContentWithModel.d.ts","names":[],"sources":["../../src/helpers/traverseContentWithModel.ts"],"mappings":";;;;;;;;;;;;;;;;;KAmCK,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,KAoFE,yCAAA;EACJ,KAAA,EAAO,yBAAA;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,KA8CE,4CAAA;EACJ,KAAA,EAAO,mBAAA;EACP,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;AAAA,KA2CE,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;AAAA,KA+BE,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,KAoCE,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,KAqDE,UAAA,GAAa,yBAAA,GAA4B,mBAAA,GAAsB,gBAAA;AAAA,KAExD,qCAAA,qBAA0D,gBAAA,EAAkB,IAAA;EACvF,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,GAAU,QAAA;EACV,KAAA,EAAO,UAAA;AAAA,MACF,QAAA;AAAA,KAEM,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"}
1
+ {"version":3,"file":"traverseContentWithModel.d.ts","names":[],"sources":["../../src/helpers/traverseContentWithModel.ts"],"mappings":";;;;;;;;;;;;;;;;;KAmCK,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,KAoFE,yCAAA;EACJ,KAAA,EAAO,yBAAA;EACP,eAAA,EAAiB,sCAAA;EACjB,cAAA,EAAgB,qCAAA;AAAA;AAAA,iBAGD,mCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,cACT,MAAA,EAAQ,yCAAA,GACN,sBAAA;AAAA,KA2CE,4CAAA;EACJ,KAAA,EAAO,mBAAA;EACP,eAAA,EAAiB,sCAAA;EACjB,cAAA,EAAgB,qCAAA;AAAA;AAAA,iBAGD,sCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,yBAAA,cACT,MAAA,EAAQ,4CAAA,GACN,yBAAA;AAAA,KAwCE,yCAAA;EACJ,KAAA,EAAO,gBAAA;EACP,eAAA,EAAiB,sCAAA;EACjB,cAAA,EAAgB,qCAAA;AAAA;AAAA,iBAGD,mCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,cACT,MAAA,EAAQ,yCAAA,GACN,sBAAA;AAAA,KA2BE,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,KAoCE,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,KAqDE,UAAA,GAAa,yBAAA,GAA4B,mBAAA,GAAsB,gBAAA;AAAA,KAExD,qCAAA,qBAA0D,gBAAA,EAAkB,IAAA;EACvF,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,GAAU,QAAA;EACV,KAAA,EAAO,UAAA;AAAA,MACF,QAAA;AAAA,KAEM,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"}
@@ -93,8 +93,8 @@ function traverseSlicesContentWithModel(path, key, apiID, content, config) {
93
93
  });
94
94
  }
95
95
  function traverseSharedSliceContentWithModel(path, key, apiID, content, config) {
96
+ const { transformWidget, transformSlice } = config;
96
97
  if (!content) return;
97
- const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } = config;
98
98
  const traversedPrimary = {};
99
99
  for (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {
100
100
  const traversedContent = traverseWidgetContentWithModel(path.concat({
@@ -132,8 +132,8 @@ function traverseSharedSliceContentWithModel(path, key, apiID, content, config)
132
132
  });
133
133
  }
134
134
  function traverseCompositeSliceContentWithModel(path, key, apiID, content, config) {
135
+ const { transformWidget, transformSlice } = config;
135
136
  if (!content) return;
136
- const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } = config;
137
137
  const traversedPrimary = {};
138
138
  for (const [key, model] of Object.entries(config.model?.["non-repeat"] ?? {})) {
139
139
  const traversedContent = traverseWidgetContentWithModel(path.concat({
@@ -171,8 +171,8 @@ function traverseCompositeSliceContentWithModel(path, key, apiID, content, confi
171
171
  });
172
172
  }
173
173
  function traverseLegacySliceContentWithModel(path, key, apiID, content, config) {
174
+ const { model, transformWidget, transformSlice } = config;
174
175
  if (!content) return;
175
- const { model, transformWidget = (args) => args.content, transformSlice = (args) => args.content } = config;
176
176
  const traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {
177
177
  model,
178
178
  transformWidget,
@@ -1 +1 @@
1
- {"version":3,"file":"traverseContentWithModel.js","names":["customTypeModel.flatten","contentPath.make"],"sources":["../../src/helpers/traverseContentWithModel.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\tSharedSliceVariationModel,\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 TraverseDocumentContentWithModelConfig = {\n\tmodel: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseDocumentContentWithModel(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentWithModelConfig,\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, model] of Object.entries(flatModel)) {\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 = traverseWidgetContentWithModel(path, key, key, document[key], {\n\t\t\tmodel,\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 TraverseSlicesContentWithModelConfig = {\n\tmodel: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSlicesContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent | undefined,\n\tconfig: TraverseSlicesContentWithModelConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel: config.model,\n\t\t})\n\t}\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst model = config.model.config?.choices?.[sliceItemContent.name]\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (\n\t\t\tmodel?.type === \"SharedSlice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ === SharedSliceContentType\n\t\t) {\n\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\tconst variationModel = model.variations.find((variation) => variation.id === variationID)\n\t\t\tif (variationModel) {\n\t\t\t\tconst sharedSliceVariationModel: SharedSliceVariationModel = {\n\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\tsliceName: model.id,\n\t\t\t\t\tvariationID,\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\n\t\t\t\ttraversedSliceItemContent = traverseSharedSliceContentWithModel(\n\t\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\t\tsliceItemContent.key,\n\t\t\t\t\tsliceItemContent.name,\n\t\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t\t{ model: sharedSliceVariationModel, transformWidget, transformSlice },\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (\n\t\t\tmodel?.type === \"Slice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ === CompositeSliceContentType\n\t\t) {\n\t\t\ttraversedSliceItemContent = traverseCompositeSliceContentWithModel(\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 if (\n\t\t\tmodel &&\n\t\t\tmodel?.type !== \"SharedSlice\" &&\n\t\t\tmodel?.type !== \"Slice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== SharedSliceContentType &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== CompositeSliceContentType\n\t\t) {\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContentWithModel(\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 TraverseSharedSliceContentWithModelConfig = {\n\tmodel: SharedSliceVariationModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSharedSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent | undefined,\n\tconfig: TraverseSharedSliceContentWithModelConfig,\n): SharedSliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst {\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tcontent.widget.primary[key],\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 = traverseGroupItemsContentWithModel(\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 TraverseCompositeSliceContentWithModelConfig = {\n\tmodel: CompositeSliceModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseCompositeSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent | undefined,\n\tconfig: TraverseCompositeSliceContentWithModelConfig,\n): CompositeSliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst {\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, model] of Object.entries(config.model?.[\"non-repeat\"] ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.widget.nonRepeat[key],\n\t\t\t{ model, 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 traversedItems = traverseGroupItemsContentWithModel(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: config.model.repeat ?? {}, 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 TraverseLegacySliceContentWithModelConfig = {\n\tmodel: LegacySliceModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseLegacySliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent | undefined,\n\tconfig: TraverseLegacySliceContentWithModelConfig,\n): LegacySliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {\n\t\tmodel,\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 TraverseGroupContentWithModelConfig = {\n\tmodel: GroupModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent | undefined,\n\tconfig: TraverseGroupContentWithModelConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst traversed = traverseGroupItemsContentWithModel(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 TraverseGroupItemsContentWithModelConfig = {\n\tmodel: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupItemsContentWithModel(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[] | undefined,\n\tconfig: TraverseGroupItemsContentWithModelConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tif (!content) {\n\t\treturn []\n\t}\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\t\tconst groupItemContentValue = Object.fromEntries(groupItemContent.value)\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, model] of Object.entries(config.model)) {\n\t\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tgroupItemContentValue[key],\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 TraverseRepeatableContentWithModelConfig = {\n\tmodel: LinkModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseRepeatableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent | undefined,\n\tconfig: TraverseRepeatableContentWithModelConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\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 = traverseWidgetContentWithModel(\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 TraverseTableContentWithModelConfig = {\n\tmodel: TableModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseTableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent | undefined,\n\tconfig: TraverseTableContentWithModelConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\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\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\n// Internals\n\ntype SliceModel = SharedSliceVariationModel | CompositeSliceModel | LegacySliceModel\n\nexport type TraverseSliceContentWithModelFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent?: TContent\n\tmodel: SliceModel\n}) => TContent | undefined\n\nexport type TraverseWidgetContentWithModelFunction<\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\ntype TraverseWidgetContentWithModelConfig = {\n\tmodel: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nfunction traverseWidgetContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent | undefined,\n\tconfig: TraverseWidgetContentWithModelConfig,\n): WidgetContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tif (model.type === \"Slices\" || model.type === \"Choice\") {\n\t\tconst slices = content?.__TYPE__ === SlicesContentType ? content : undefined\n\t\treturn traverseSlicesContentWithModel(path, key, apiID, slices, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Group\") {\n\t\tconst group = content?.__TYPE__ === GroupContentType ? content : undefined\n\t\treturn traverseGroupContentWithModel(path, key, apiID, group, { transformWidget, model })\n\t}\n\n\tif (model.type === \"Link\" && model.config?.repeat) {\n\t\tconst repeatable = content?.__TYPE__ === RepeatableContentType ? content : undefined\n\t\treturn traverseRepeatableContentWithModel(path, key, apiID, repeatable, {\n\t\t\ttransformWidget,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Table\") {\n\t\tconst table = content?.__TYPE__ === TableContentType ? content : undefined\n\t\treturn traverseTableContentWithModel(path, key, apiID, table, { transformWidget, model })\n\t}\n\n\tconst nestable =\n\t\tcontent?.__TYPE__ !== SlicesContentType &&\n\t\tcontent?.__TYPE__ !== GroupContentType &&\n\t\tcontent?.__TYPE__ !== RepeatableContentType &&\n\t\tcontent?.__TYPE__ !== TableContentType\n\t\t\t? content\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content: nestable, model })\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"traverseContentWithModel.js","names":["customTypeModel.flatten","contentPath.make"],"sources":["../../src/helpers/traverseContentWithModel.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\tSharedSliceVariationModel,\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 TraverseDocumentContentWithModelConfig = {\n\tmodel: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseDocumentContentWithModel(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentWithModelConfig,\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, model] of Object.entries(flatModel)) {\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 = traverseWidgetContentWithModel(path, key, key, document[key], {\n\t\t\tmodel,\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 TraverseSlicesContentWithModelConfig = {\n\tmodel: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSlicesContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent | undefined,\n\tconfig: TraverseSlicesContentWithModelConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel: config.model,\n\t\t})\n\t}\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst model = config.model.config?.choices?.[sliceItemContent.name]\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (\n\t\t\tmodel?.type === \"SharedSlice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ === SharedSliceContentType\n\t\t) {\n\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\tconst variationModel = model.variations.find((variation) => variation.id === variationID)\n\t\t\tif (variationModel) {\n\t\t\t\tconst sharedSliceVariationModel: SharedSliceVariationModel = {\n\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\tsliceName: model.id,\n\t\t\t\t\tvariationID,\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\n\t\t\t\ttraversedSliceItemContent = traverseSharedSliceContentWithModel(\n\t\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\t\tsliceItemContent.key,\n\t\t\t\t\tsliceItemContent.name,\n\t\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t\t{ model: sharedSliceVariationModel, transformWidget, transformSlice },\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (\n\t\t\tmodel?.type === \"Slice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ === CompositeSliceContentType\n\t\t) {\n\t\t\ttraversedSliceItemContent = traverseCompositeSliceContentWithModel(\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 if (\n\t\t\tmodel &&\n\t\t\tmodel?.type !== \"SharedSlice\" &&\n\t\t\tmodel?.type !== \"Slice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== SharedSliceContentType &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== CompositeSliceContentType\n\t\t) {\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContentWithModel(\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 TraverseSharedSliceContentWithModelConfig = {\n\tmodel: SharedSliceVariationModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n\ttransformSlice: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSharedSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent | undefined,\n\tconfig: TraverseSharedSliceContentWithModelConfig,\n): SharedSliceItemContent | undefined {\n\tconst { transformWidget, transformSlice } = config\n\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tcontent.widget.primary[key],\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 = traverseGroupItemsContentWithModel(\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 TraverseCompositeSliceContentWithModelConfig = {\n\tmodel: CompositeSliceModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n\ttransformSlice: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseCompositeSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent | undefined,\n\tconfig: TraverseCompositeSliceContentWithModelConfig,\n): CompositeSliceItemContent | undefined {\n\tconst { transformWidget, transformSlice } = config\n\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, model] of Object.entries(config.model?.[\"non-repeat\"] ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.widget.nonRepeat[key],\n\t\t\t{ model, 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 traversedItems = traverseGroupItemsContentWithModel(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: config.model.repeat ?? {}, 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 TraverseLegacySliceContentWithModelConfig = {\n\tmodel: LegacySliceModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n\ttransformSlice: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseLegacySliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent | undefined,\n\tconfig: TraverseLegacySliceContentWithModelConfig,\n): LegacySliceItemContent | undefined {\n\tconst { model, transformWidget, transformSlice } = config\n\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {\n\t\tmodel,\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 TraverseGroupContentWithModelConfig = {\n\tmodel: GroupModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent | undefined,\n\tconfig: TraverseGroupContentWithModelConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst traversed = traverseGroupItemsContentWithModel(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 TraverseGroupItemsContentWithModelConfig = {\n\tmodel: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupItemsContentWithModel(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[] | undefined,\n\tconfig: TraverseGroupItemsContentWithModelConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tif (!content) {\n\t\treturn []\n\t}\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\t\tconst groupItemContentValue = Object.fromEntries(groupItemContent.value)\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, model] of Object.entries(config.model)) {\n\t\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tgroupItemContentValue[key],\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 TraverseRepeatableContentWithModelConfig = {\n\tmodel: LinkModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseRepeatableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent | undefined,\n\tconfig: TraverseRepeatableContentWithModelConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\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 = traverseWidgetContentWithModel(\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 TraverseTableContentWithModelConfig = {\n\tmodel: TableModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseTableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent | undefined,\n\tconfig: TraverseTableContentWithModelConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\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\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\n// Internals\n\ntype SliceModel = SharedSliceVariationModel | CompositeSliceModel | LegacySliceModel\n\nexport type TraverseSliceContentWithModelFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent?: TContent\n\tmodel: SliceModel\n}) => TContent | undefined\n\nexport type TraverseWidgetContentWithModelFunction<\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\ntype TraverseWidgetContentWithModelConfig = {\n\tmodel: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nfunction traverseWidgetContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent | undefined,\n\tconfig: TraverseWidgetContentWithModelConfig,\n): WidgetContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tif (model.type === \"Slices\" || model.type === \"Choice\") {\n\t\tconst slices = content?.__TYPE__ === SlicesContentType ? content : undefined\n\t\treturn traverseSlicesContentWithModel(path, key, apiID, slices, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Group\") {\n\t\tconst group = content?.__TYPE__ === GroupContentType ? content : undefined\n\t\treturn traverseGroupContentWithModel(path, key, apiID, group, { transformWidget, model })\n\t}\n\n\tif (model.type === \"Link\" && model.config?.repeat) {\n\t\tconst repeatable = content?.__TYPE__ === RepeatableContentType ? content : undefined\n\t\treturn traverseRepeatableContentWithModel(path, key, apiID, repeatable, {\n\t\t\ttransformWidget,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Table\") {\n\t\tconst table = content?.__TYPE__ === TableContentType ? content : undefined\n\t\treturn traverseTableContentWithModel(path, key, apiID, table, { transformWidget, model })\n\t}\n\n\tconst nestable =\n\t\tcontent?.__TYPE__ !== SlicesContentType &&\n\t\tcontent?.__TYPE__ !== GroupContentType &&\n\t\tcontent?.__TYPE__ !== RepeatableContentType &&\n\t\tcontent?.__TYPE__ !== TableContentType\n\t\t\t? content\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content: nestable, model })\n}\n"],"mappings":";;;;;;;;;;;AAyCA,SAAgB,iCACf,UACA,QACkB;CAClB,MAAM,EAAE,OAAO,iBAAiB,mBAAmB;CAGnD,MAAM,YAAY,QAAQA,QAAwB,MAAM,GAAG,EAAE;CAE7D,MAAM,YAA6B,EAAE;AACrC,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,UAAU,EAAE;EAMrD,MAAM,mBAAmB,+BALZC,KACZ;GAAE,KAAK,OAAO,MAAM;GAAI,MAAM;GAAc,EAC5C;GAAE;GAAK,MAAM;GAAU,CACvB,EAE6D,KAAK,KAAK,SAAS,MAAM;GACtF;GACA;GACA;GACA,CAAC;AACF,MAAI,iBACH,WAAU,OAAO;;AAInB,QAAO;;AASR,SAAgB,+BACf,MACA,KACA,OACA,SACA,QAC4B;CAC5B,MAAM,EAAE,mBAAmB,SAAS,KAAK,SAAS,kBAAkB,SAAS,KAAK,YACjF;AAED,KAAI,CAAC,QACJ,QAAO,gBAAgB;EACtB;EACA;EACA;EACA,OAAO,OAAO;EACd,CAAC;CAGH,MAAM,YAAoC,EAAE;AAC5C,MAAK,MAAM,oBAAoB,QAAQ,OAAO;EAC7C,MAAM,QAAQ,OAAO,MAAM,QAAQ,UAAU,iBAAiB;EAE9D,IAAI;AACJ,MACC,OAAO,SAAS,iBAChB,iBAAiB,OAAO,aAAA,sBACvB;GACD,MAAM,cAAc,iBAAiB,OAAO;GAC5C,MAAM,iBAAiB,MAAM,WAAW,MAAM,cAAc,UAAU,OAAO,YAAY;AACzF,OAAI,gBAAgB;IACnB,MAAM,4BAAuD;KAC5D,MAAM;KACN,WAAW,MAAM;KACjB;KACA,QAAQ;MACP,SAAS,eAAe,WAAW,EAAE;MACrC,OAAO,eAAe,SAAS,EAAE;MACjC;KACD;AAED,gCAA4B,oCAC3B,KAAK,OAAO;KAAE,KAAK,iBAAiB;KAAK,MAAM;KAAe,CAAC,EAC/D,iBAAiB,KACjB,iBAAiB,MACjB,kBACA;KAAE,OAAO;KAA2B;KAAiB;KAAgB,CACrE;;aAGF,OAAO,SAAS,WAChB,iBAAiB,OAAO,aAAA,wBAExB,6BAA4B,uCAC3B,KAAK,OAAO;GAAE,KAAK,iBAAiB;GAAK,MAAM;GAAS,CAAC,EACzD,iBAAiB,KACjB,iBAAiB,MACjB,kBACA;GAAE;GAAO;GAAiB;GAAgB,CAC1C;WAED,SACA,OAAO,SAAS,iBAChB,OAAO,SAAS,WAChB,iBAAiB,OAAO,aAAA,wBACxB,iBAAiB,OAAO,aAAA,wBAExB,6BAA4B,oCAC3B,KAAK,OAAO;GAAE,KAAK,iBAAiB;GAAK,MAAM;GAAe,CAAC,EAC/D,iBAAiB,KACjB,iBAAiB,MACjB,kBACA;GAAE;GAAO;GAAiB;GAAgB,CAC1C;AAGF,MAAI,0BACH,WAAU,KAAK,0BAA0B;;AAI3C,QAAO,gBAAgB;EACtB;EACA;EACA;EACA,SAAS;GAAE,GAAG;GAAS,OAAO;GAAW;EACzC,OAAO,OAAO;EACd,CAAC;;AASH,SAAgB,oCACf,MACA,KACA,OACA,SACA,QACqC;CACrC,MAAM,EAAE,iBAAiB,mBAAmB;AAE5C,KAAI,CAAC,QACJ;CAGD,MAAM,mBAAkD,EAAE;AAC1D,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,MAAM,OAAO,WAAW,EAAE,CAAC,EAAE;EAC7E,MAAM,mBAAmB,+BACxB,KAAK,OAAO;GAAE,KAAK;GAAW,MAAM;GAAW,EAAE;GAAE;GAAK,MAAM;GAAU,CAAC,EACzE,KACA,KACA,QAAQ,OAAO,QAAQ,MACvB;GAAE;GAAO;GAAiB,CAC1B;AAED,MACC,qBACC,kBAAkB,iBAAiB,IAAI,iBAAiB,aAAA,oBAEzD,kBAAiB,OAAO;;CAI1B,MAAM,iBAAiB,mCACtB,KAAK,OAAO;EAAE,KAAK;EAAS,MAAM;EAAS,CAAC,EAC5C,QAAQ,OAAO,OACf;EAAE,OAAO,OAAO,MAAM,OAAO,SAAS,EAAE;EAAE;EAAiB,CAC3D;AAED,QAAO,eAAe;EACrB;EACA;EACA;EACA,SAAS;GACR,GAAG;GACH,QAAQ;IAAE,GAAG,QAAQ;IAAQ,SAAS;IAAkB,OAAO;IAAgB;GAC/E;EACD,OAAO,OAAO;EACd,CAAC;;AASH,SAAgB,uCACf,MACA,KACA,OACA,SACA,QACwC;CACxC,MAAM,EAAE,iBAAiB,mBAAmB;AAE5C,KAAI,CAAC,QACJ;CAGD,MAAM,mBAAuD,EAAE;AAC/D,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,QAAQ,iBAAiB,EAAE,CAAC,EAAE;EAC9E,MAAM,mBAAmB,+BACxB,KAAK,OAAO;GAAE,KAAK;GAAc,MAAM;GAAW,EAAE;GAAE;GAAK,MAAM;GAAU,CAAC,EAC5E,KACA,OACA,QAAQ,OAAO,UAAU,MACzB;GAAE;GAAO;GAAiB,CAC1B;AAED,MAAI,oBAAoB,kBAAkB,iBAAiB,CAC1D,kBAAiB,OAAO;;CAI1B,MAAM,iBAAiB,mCACtB,KAAK,OAAO;EAAE,KAAK;EAAU,MAAM;EAAS,CAAC,EAC7C,QAAQ,OAAO,QACf;EAAE,OAAO,OAAO,MAAM,UAAU,EAAE;EAAE;EAAiB,CACrD;AAED,QAAO,eAAe;EACrB;EACA;EACA;EACA,SAAS;GACR,GAAG;GACH,QAAQ;IAAE,GAAG,QAAQ;IAAQ,WAAW;IAAkB,QAAQ;IAAgB;GAClF;EACD,OAAO,OAAO;EACd,CAAC;;AASH,SAAgB,oCACf,MACA,KACA,OACA,SACA,QACqC;CACrC,MAAM,EAAE,OAAO,iBAAiB,mBAAmB;AAEnD,KAAI,CAAC,QACJ;CAGD,MAAM,mBAAmB,+BAA+B,MAAM,KAAK,OAAO,QAAQ,QAAQ;EACzF;EACA;EACA;EACA,CAAC;AAEF,KACC,qBACC,kBAAkB,iBAAiB,IAAI,iBAAiB,aAAA,oBAEzD,QAAO,eAAe;EACrB;EACA;EACA;EACA,SAAS;GAAE,GAAG;GAAS,QAAQ;GAAkB;EACjD;EACA,CAAC;;AASJ,SAAgB,8BACf,MACA,KACA,OACA,SACA,QAC2B;CAC3B,MAAM,EAAE,OAAO,oBAAoB;AAEnC,KAAI,CAAC,QACJ,QAAO,gBAAgB;EACtB;EACA;EACA;EACA;EACA,CAAC;CAGH,MAAM,YAAY,mCAAmC,MAAM,QAAQ,OAAO;EACzE,OAAO,MAAM,QAAQ,UAAU,EAAE;EACjC;EACA,CAAC;AAEF,QAAO,gBAAgB;EACtB;EACA;EACA;EACA,SAAS;GAAE,GAAG;GAAS,OAAO;GAAW;EACzC;EACA,CAAC;;AAQH,SAAgB,mCACf,MACA,SACA,QACqB;CACrB,MAAM,EAAE,oBAAoB;AAE5B,KAAI,CAAC,QACJ,QAAO,EAAE;CAGV,MAAM,YAAgC,EAAE;AACxC,MAAK,MAAM,oBAAoB,SAAS;EACvC,MAAM,gBAAgB,KAAK,OAAO;GAAE,KAAK,iBAAiB;GAAK,MAAM;GAAa,CAAC;EACnF,MAAM,wBAAwB,OAAO,YAAY,iBAAiB,MAAM;EAExE,MAAM,iBAA4C,EAAE;AACpD,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,MAAM,EAAE;GACxD,MAAM,mBAAmB,+BACxB,cAAc,OAAO;IAAE;IAAK,MAAM;IAAU,CAAC,EAC7C,KACA,KACA,sBAAsB,MACtB;IAAE;IAAO;IAAiB,CAC1B;AAED,OACC,qBACC,kBAAkB,iBAAiB,IAAI,iBAAiB,aAAA,oBAEzD,gBAAe,KAAK,CAAC,KAAK,iBAAiB,CAAC;;AAI9C,YAAU,KAAK;GAAE,GAAG;GAAkB,OAAO;GAAgB,CAAC;;AAG/D,QAAO;;AAQR,SAAgB,mCACf,MACA,KACA,OACA,SACA,QACgC;CAChC,MAAM,EAAE,OAAO,oBAAoB;AAEnC,KAAI,CAAC,QACJ,QAAO,gBAAgB;EACtB;EACA;EACA;EACA;EACA,CAAC;CAGH,MAAM,iBACL,MAAM,SAAS,UAAU,MAAM,SAC5B;EAAE,GAAG;EAAO,QAAQ;GAAE,GAAG,MAAM;GAAQ,QAAQ;GAAO;EAAE,GACxD;CAEJ,MAAM,YAAwC,EAAE;AAChD,MAAK,IAAI,QAAQ,GAAG,QAAQ,QAAQ,MAAM,QAAQ,SAAS;EAC1D,MAAM,mBAAmB,+BACxB,KAAK,OAAO;GAAE,KAAK,MAAM,UAAU;GAAE,MAAM;GAAU,CAAC,EACtD,KACA,OACA,QAAQ,MAAM,QACd;GAAE,OAAO;GAAgB;GAAiB,CAC1C;AAED,MAAI,oBAAoB,yBAAyB,iBAAiB,CACjE,WAAU,KAAK,iBAAiB;;AAIlC,QAAO,gBAAgB;EACtB;EACA;EACA;EACA,SAAS;GAAE,GAAG;GAAS,OAAO;GAAW;EACzC;EACA,CAAC;;AAQH,SAAgB,8BACf,MACA,KACA,OACA,SACA,QAC2B;CAC3B,MAAM,EAAE,OAAO,oBAAoB;AAEnC,KAAI,CAAC,QACJ,QAAO,gBAAgB;EACtB;EACA;EACA;EACA;EACA,CAAC;CAGH,MAAM,YAAqC,EAAE;AAC7C,MAAK,IAAI,WAAW,GAAG,WAAW,QAAQ,QAAQ,QAAQ,YAAY;EACrE,MAAM,mBAA+D,EAAE;AACvE,OAAK,IAAI,YAAY,GAAG,YAAY,QAAQ,QAAQ,UAAU,QAAQ,QAAQ,aAAa;GAC1F,MAAM,WAAW,KAAK,OAAO;IAAE,KAAK,CAAC,UAAU,UAAU,CAAC,KAAK,IAAI;IAAE,MAAM;IAAU,CAAC;GACtF,MAAM,OAAO,QAAQ,QAAQ,UAAU,QAAQ;GAE/C,MAAM,cAAc,gBAAgB;IACnC,MAAM;IACN;IACA;IACA,SAAS,KAAK;IACd,OAAO;IACP,CAAC;AAEF,OAAI,eAAe,YAAY,aAAA,wBAC9B,kBAAiB,KAAK;IAAE,GAAG;IAAM,SAAS;IAAa,CAAC;OAExD,kBAAiB,KAAK;IACrB,GAAG;IACH,SAAS;KACR,UAAU;KACV,OAAO,EAAE;KACT;IACD,CAAC;;AAGJ,YAAU,KAAK;GAAE,GAAG,QAAQ,QAAQ;GAAW,SAAS;GAAkB,CAAC;;AAG5E,QAAO,gBAAgB;EACtB;EACA;EACA;EACA,SAAS;GAAE,GAAG;GAAS,SAAS;GAAW;EAC3C;EACA,CAAC;;AA+BH,SAAS,+BACR,MACA,KACA,OACA,SACA,QAC4B;CAC5B,MAAM,EACL,OACA,mBAAmB,SAAS,KAAK,SACjC,kBAAkB,SAAS,KAAK,YAC7B;AAEJ,KAAI,MAAM,SAAS,YAAY,MAAM,SAAS,SAE7C,QAAO,+BAA+B,MAAM,KAAK,OADlC,SAAS,aAAA,qBAAiC,UAAU,KAAA,GACH;EAC/D;EACA;EACA;EACA,CAAC;AAGH,KAAI,MAAM,SAAS,QAElB,QAAO,8BAA8B,MAAM,KAAK,OADlC,SAAS,aAAA,qBAAgC,UAAU,KAAA,GACH;EAAE;EAAiB;EAAO,CAAC;AAG1F,KAAI,MAAM,SAAS,UAAU,MAAM,QAAQ,OAE1C,QAAO,mCAAmC,MAAM,KAAK,OADlC,SAAS,aAAA,sBAAqC,UAAU,KAAA,GACH;EACvE;EACA;EACA,CAAC;AAGH,KAAI,MAAM,SAAS,QAElB,QAAO,8BAA8B,MAAM,KAAK,OADlC,SAAS,aAAA,iBAAgC,UAAU,KAAA,GACH;EAAE;EAAiB;EAAO,CAAC;AAU1F,QAAO,gBAAgB;EAAE;EAAM;EAAK;EAAO,SAN1C,SAAS,aAAA,sBACT,SAAS,aAAA,sBACT,SAAS,aAAA,uBACT,SAAS,aAAA,iBACN,UACA,KAAA;EAC0D;EAAO,CAAC"}
package/dist/io-ts.d.ts CHANGED
@@ -44466,8 +44466,6 @@ declare const DynamicSliceModel: t.Type<{
44466
44466
  } | undefined;
44467
44467
  }> | undefined;
44468
44468
  } | undefined;
44469
- } | {
44470
- type: "SharedSlice";
44471
44469
  } | {
44472
44470
  type: "Slice";
44473
44471
  fieldset?: string | null | undefined;
@@ -44823,6 +44821,8 @@ declare const DynamicSliceModel: t.Type<{
44823
44821
  config?: {
44824
44822
  label?: string | null | undefined;
44825
44823
  } | undefined;
44824
+ } | {
44825
+ type: "SharedSlice";
44826
44826
  }, {
44827
44827
  type: "Boolean";
44828
44828
  config?: {
@@ -45177,8 +45177,6 @@ declare const DynamicSliceModel: t.Type<{
45177
45177
  } | undefined;
45178
45178
  }> | undefined;
45179
45179
  } | undefined;
45180
- } | {
45181
- type: "SharedSlice";
45182
45180
  } | {
45183
45181
  type: "Slice";
45184
45182
  fieldset?: string | null | undefined;
@@ -45534,6 +45532,8 @@ declare const DynamicSliceModel: t.Type<{
45534
45532
  config?: {
45535
45533
  label?: string | null | undefined;
45536
45534
  } | undefined;
45535
+ } | {
45536
+ type: "SharedSlice";
45537
45537
  }, unknown>;
45538
45538
  declare const StaticSliceModel: t.Type<{
45539
45539
  type: "Boolean";
@@ -48749,8 +48749,6 @@ declare const DynamicSlicesModel: t.Type<{
48749
48749
  } | undefined;
48750
48750
  }> | undefined;
48751
48751
  } | undefined;
48752
- } | {
48753
- type: "SharedSlice";
48754
48752
  } | {
48755
48753
  type: "Slice";
48756
48754
  fieldset?: string | null | undefined;
@@ -49106,6 +49104,8 @@ declare const DynamicSlicesModel: t.Type<{
49106
49104
  config?: {
49107
49105
  label?: string | null | undefined;
49108
49106
  } | undefined;
49107
+ } | {
49108
+ type: "SharedSlice";
49109
49109
  }> | undefined;
49110
49110
  } | undefined;
49111
49111
  }, {
@@ -49471,8 +49471,6 @@ declare const DynamicSlicesModel: t.Type<{
49471
49471
  } | undefined;
49472
49472
  }> | undefined;
49473
49473
  } | undefined;
49474
- } | {
49475
- type: "SharedSlice";
49476
49474
  } | {
49477
49475
  type: "Slice";
49478
49476
  fieldset?: string | null | undefined;
@@ -49828,6 +49826,8 @@ declare const DynamicSlicesModel: t.Type<{
49828
49826
  config?: {
49829
49827
  label?: string | null | undefined;
49830
49828
  } | undefined;
49829
+ } | {
49830
+ type: "SharedSlice";
49831
49831
  }> | undefined;
49832
49832
  } | undefined;
49833
49833
  }, unknown>;
@@ -57488,8 +57488,6 @@ declare const DynamicWidgetModel: t.Type<{
57488
57488
  } | undefined;
57489
57489
  }> | undefined;
57490
57490
  } | undefined;
57491
- } | {
57492
- type: "SharedSlice";
57493
57491
  } | {
57494
57492
  type: "Slice";
57495
57493
  fieldset?: string | null | undefined;
@@ -57845,6 +57843,8 @@ declare const DynamicWidgetModel: t.Type<{
57845
57843
  config?: {
57846
57844
  label?: string | null | undefined;
57847
57845
  } | undefined;
57846
+ } | {
57847
+ type: "SharedSlice";
57848
57848
  }> | undefined;
57849
57849
  } | undefined;
57850
57850
  }, {
@@ -58754,8 +58754,6 @@ declare const DynamicWidgetModel: t.Type<{
58754
58754
  } | undefined;
58755
58755
  }> | undefined;
58756
58756
  } | undefined;
58757
- } | {
58758
- type: "SharedSlice";
58759
58757
  } | {
58760
58758
  type: "Slice";
58761
58759
  fieldset?: string | null | undefined;
@@ -59111,6 +59109,8 @@ declare const DynamicWidgetModel: t.Type<{
59111
59109
  config?: {
59112
59110
  label?: string | null | undefined;
59113
59111
  } | undefined;
59112
+ } | {
59113
+ type: "SharedSlice";
59114
59114
  }> | undefined;
59115
59115
  } | undefined;
59116
59116
  }, unknown>;
@@ -63940,8 +63940,6 @@ declare const DynamicSectionModel: t.Type<Record<string, {
63940
63940
  } | undefined;
63941
63941
  }> | undefined;
63942
63942
  } | undefined;
63943
- } | {
63944
- type: "SharedSlice";
63945
63943
  } | {
63946
63944
  type: "Slice";
63947
63945
  fieldset?: string | null | undefined;
@@ -64297,6 +64295,8 @@ declare const DynamicSectionModel: t.Type<Record<string, {
64297
64295
  config?: {
64298
64296
  label?: string | null | undefined;
64299
64297
  } | undefined;
64298
+ } | {
64299
+ type: "SharedSlice";
64300
64300
  }> | undefined;
64301
64301
  } | undefined;
64302
64302
  }>, Record<string, {
@@ -65206,8 +65206,6 @@ declare const DynamicSectionModel: t.Type<Record<string, {
65206
65206
  } | undefined;
65207
65207
  }> | undefined;
65208
65208
  } | undefined;
65209
- } | {
65210
- type: "SharedSlice";
65211
65209
  } | {
65212
65210
  type: "Slice";
65213
65211
  fieldset?: string | null | undefined;
@@ -65563,6 +65561,8 @@ declare const DynamicSectionModel: t.Type<Record<string, {
65563
65561
  config?: {
65564
65562
  label?: string | null | undefined;
65565
65563
  } | undefined;
65564
+ } | {
65565
+ type: "SharedSlice";
65566
65566
  }> | undefined;
65567
65567
  } | undefined;
65568
65568
  }>, unknown>;
@@ -70341,8 +70341,6 @@ declare const CustomTypeModel: t.Type<{
70341
70341
  } | undefined;
70342
70342
  }> | undefined;
70343
70343
  } | undefined;
70344
- } | {
70345
- type: "SharedSlice";
70346
70344
  } | {
70347
70345
  type: "Slice";
70348
70346
  fieldset?: string | null | undefined;
@@ -70698,6 +70696,8 @@ declare const CustomTypeModel: t.Type<{
70698
70696
  config?: {
70699
70697
  label?: string | null | undefined;
70700
70698
  } | undefined;
70699
+ } | {
70700
+ type: "SharedSlice";
70701
70701
  }> | undefined;
70702
70702
  } | undefined;
70703
70703
  }>>;
@@ -71608,8 +71608,6 @@ declare const CustomTypeModel: t.Type<{
71608
71608
  } | undefined;
71609
71609
  }> | undefined;
71610
71610
  } | undefined;
71611
- } | {
71612
- type: "SharedSlice";
71613
71611
  } | {
71614
71612
  type: "Slice";
71615
71613
  fieldset?: string | null | undefined;
@@ -71965,6 +71963,8 @@ declare const CustomTypeModel: t.Type<{
71965
71963
  config?: {
71966
71964
  label?: string | null | undefined;
71967
71965
  } | undefined;
71966
+ } | {
71967
+ type: "SharedSlice";
71968
71968
  }> | undefined;
71969
71969
  } | undefined;
71970
71970
  }>>;
@@ -3344,16 +3344,16 @@ declare const FieldModelTypeSchema: z.ZodMiniEnum<{
3344
3344
  Boolean: "Boolean";
3345
3345
  Embed: "Embed";
3346
3346
  GeoPoint: "GeoPoint";
3347
+ Image: "Image";
3348
+ IntegrationFields: "IntegrationFields";
3347
3349
  StructuredText: "StructuredText";
3348
3350
  Separator: "Separator";
3349
3351
  Table: "Table";
3350
- "Repeatable.Link": "Repeatable.Link";
3351
- Image: "Image";
3352
- IntegrationFields: "IntegrationFields";
3353
- UID: "UID";
3354
3352
  Group: "Group";
3353
+ UID: "UID";
3355
3354
  Slices: "Slices";
3356
3355
  Choice: "Choice";
3356
+ "Repeatable.Link": "Repeatable.Link";
3357
3357
  }>;
3358
3358
  type FieldModelType = z.infer<typeof FieldModelTypeSchema>;
3359
3359
  declare const FieldOrSliceTypeSchema: z.ZodMiniUnion<readonly [z.ZodMiniEnum<{
@@ -3368,16 +3368,16 @@ declare const FieldOrSliceTypeSchema: z.ZodMiniUnion<readonly [z.ZodMiniEnum<{
3368
3368
  Boolean: "Boolean";
3369
3369
  Embed: "Embed";
3370
3370
  GeoPoint: "GeoPoint";
3371
+ Image: "Image";
3372
+ IntegrationFields: "IntegrationFields";
3371
3373
  StructuredText: "StructuredText";
3372
3374
  Separator: "Separator";
3373
3375
  Table: "Table";
3374
- "Repeatable.Link": "Repeatable.Link";
3375
- Image: "Image";
3376
- IntegrationFields: "IntegrationFields";
3377
- UID: "UID";
3378
3376
  Group: "Group";
3377
+ UID: "UID";
3379
3378
  Slices: "Slices";
3380
3379
  Choice: "Choice";
3380
+ "Repeatable.Link": "Repeatable.Link";
3381
3381
  }>, z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"Slice">, z.ZodMiniLiteral<"SharedSlice">]>]>;
3382
3382
  type FieldOrSliceType = z.infer<typeof FieldOrSliceTypeSchema>;
3383
3383
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prismicio/types-internal",
3
- "version": "4.0.0-pr.6.7b0b0be",
3
+ "version": "4.0.0-pr.6.e3136c3",
4
4
  "description": "TypeScript types and runtime parsers for Prismic data",
5
5
  "keywords": [
6
6
  "prismic",
@@ -65,7 +65,7 @@ export function fromLegacy(legacy: DocumentLegacy): DocumentContent | undefined
65
65
  }
66
66
  }
67
67
 
68
- const result = DocumentLegacyCodec(defaultCtx("", types, keys)).toContent(widgets)
68
+ const result = DocumentLegacyCodec(defaultCtx("", types, keys)).toContent(parsed.data)
69
69
  if (!result.success) {
70
70
  return
71
71
  }
@@ -81,10 +81,8 @@ export function traverseSlicesContent(
81
81
  content: SlicesContent,
82
82
  config: TraverseSlicesContentConfig,
83
83
  ): SlicesContent | undefined {
84
- const {
85
- transformWidget = (args) => args.content,
86
- transformSlice = (args) => args.content
87
- } = config
84
+ const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =
85
+ config
88
86
 
89
87
  const traversed: SlicesContent["value"] = []
90
88
  for (const sliceItemContent of content.value) {
@@ -155,8 +153,8 @@ export function traverseSlicesContent(
155
153
 
156
154
  type TraverseSharedSliceContentConfig = {
157
155
  model?: SharedSliceVariationModel
158
- transformWidget?: TraverseWidgetContentFunction
159
- transformSlice?: TraverseSliceContentFunction
156
+ transformWidget: TraverseWidgetContentFunction
157
+ transformSlice: TraverseSliceContentFunction
160
158
  }
161
159
 
162
160
  export function traverseSharedSliceContent(
@@ -166,10 +164,7 @@ export function traverseSharedSliceContent(
166
164
  content: SharedSliceItemContent,
167
165
  config: TraverseSharedSliceContentConfig,
168
166
  ): SharedSliceItemContent | undefined {
169
- const {
170
- transformWidget = (args) => args.content,
171
- transformSlice = (args) => args.content
172
- } = config
167
+ const { transformWidget, transformSlice } = config
173
168
 
174
169
  const traversedPrimary: SharedSliceContent["primary"] = {}
175
170
  for (const [key, fieldContent] of Object.entries(content.widget.primary)) {
@@ -211,8 +206,8 @@ export function traverseSharedSliceContent(
211
206
 
212
207
  type TraverseCompositeSliceContentConfig = {
213
208
  model?: CompositeSliceModel
214
- transformWidget?: TraverseWidgetContentFunction
215
- transformSlice?: TraverseSliceContentFunction
209
+ transformWidget: TraverseWidgetContentFunction
210
+ transformSlice: TraverseSliceContentFunction
216
211
  }
217
212
 
218
213
  export function traverseCompositeSliceContent(
@@ -222,10 +217,7 @@ export function traverseCompositeSliceContent(
222
217
  content: CompositeSliceItemContent,
223
218
  config: TraverseCompositeSliceContentConfig,
224
219
  ): CompositeSliceItemContent | undefined {
225
- const {
226
- transformWidget = (args) => args.content,
227
- transformSlice = (args) => args.content
228
- } = config
220
+ const { transformWidget, transformSlice } = config
229
221
 
230
222
  const traversedPrimary: CompositeSliceContent["nonRepeat"] = {}
231
223
  for (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {
@@ -264,8 +256,8 @@ export function traverseCompositeSliceContent(
264
256
 
265
257
  type TraverseLegacySliceContentConfig = {
266
258
  model?: LegacySliceModel
267
- transformWidget?: TraverseWidgetContentFunction
268
- transformSlice?: TraverseSliceContentFunction
259
+ transformWidget: TraverseWidgetContentFunction
260
+ transformSlice: TraverseSliceContentFunction
269
261
  }
270
262
 
271
263
  export function traverseLegacySliceContent(
@@ -275,11 +267,7 @@ export function traverseLegacySliceContent(
275
267
  content: LegacySliceItemContent,
276
268
  config: TraverseLegacySliceContentConfig,
277
269
  ): LegacySliceItemContent | undefined {
278
- const {
279
- model,
280
- transformWidget = (args) => args.content,
281
- transformSlice = (args) => args.content
282
- } = config
270
+ const { model, transformWidget, transformSlice } = config
283
271
 
284
272
  const traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {
285
273
  model,
@@ -166,8 +166,8 @@ export function traverseSlicesContentWithModel(
166
166
 
167
167
  type TraverseSharedSliceContentWithModelConfig = {
168
168
  model: SharedSliceVariationModel
169
- transformWidget?: TraverseWidgetContentWithModelFunction
170
- transformSlice?: TraverseSliceContentWithModelFunction
169
+ transformWidget: TraverseWidgetContentWithModelFunction
170
+ transformSlice: TraverseSliceContentWithModelFunction
171
171
  }
172
172
 
173
173
  export function traverseSharedSliceContentWithModel(
@@ -177,15 +177,12 @@ export function traverseSharedSliceContentWithModel(
177
177
  content: SharedSliceItemContent | undefined,
178
178
  config: TraverseSharedSliceContentWithModelConfig,
179
179
  ): SharedSliceItemContent | undefined {
180
+ const { transformWidget, transformSlice } = config
181
+
180
182
  if (!content) {
181
183
  return
182
184
  }
183
185
 
184
- const {
185
- transformWidget = (args) => args.content,
186
- transformSlice = (args) => args.content
187
- } = config
188
-
189
186
  const traversedPrimary: SharedSliceContent["primary"] = {}
190
187
  for (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {
191
188
  const traversedContent = traverseWidgetContentWithModel(
@@ -224,8 +221,8 @@ export function traverseSharedSliceContentWithModel(
224
221
 
225
222
  type TraverseCompositeSliceContentWithModelConfig = {
226
223
  model: CompositeSliceModel
227
- transformWidget?: TraverseWidgetContentWithModelFunction
228
- transformSlice?: TraverseSliceContentWithModelFunction
224
+ transformWidget: TraverseWidgetContentWithModelFunction
225
+ transformSlice: TraverseSliceContentWithModelFunction
229
226
  }
230
227
 
231
228
  export function traverseCompositeSliceContentWithModel(
@@ -235,15 +232,12 @@ export function traverseCompositeSliceContentWithModel(
235
232
  content: CompositeSliceItemContent | undefined,
236
233
  config: TraverseCompositeSliceContentWithModelConfig,
237
234
  ): CompositeSliceItemContent | undefined {
235
+ const { transformWidget, transformSlice } = config
236
+
238
237
  if (!content) {
239
238
  return
240
239
  }
241
240
 
242
- const {
243
- transformWidget = (args) => args.content,
244
- transformSlice = (args) => args.content
245
- } = config
246
-
247
241
  const traversedPrimary: CompositeSliceContent["nonRepeat"] = {}
248
242
  for (const [key, model] of Object.entries(config.model?.["non-repeat"] ?? {})) {
249
243
  const traversedContent = traverseWidgetContentWithModel(
@@ -279,8 +273,8 @@ export function traverseCompositeSliceContentWithModel(
279
273
 
280
274
  type TraverseLegacySliceContentWithModelConfig = {
281
275
  model: LegacySliceModel
282
- transformWidget?: TraverseWidgetContentWithModelFunction
283
- transformSlice?: TraverseSliceContentWithModelFunction
276
+ transformWidget: TraverseWidgetContentWithModelFunction
277
+ transformSlice: TraverseSliceContentWithModelFunction
284
278
  }
285
279
 
286
280
  export function traverseLegacySliceContentWithModel(
@@ -290,16 +284,12 @@ export function traverseLegacySliceContentWithModel(
290
284
  content: LegacySliceItemContent | undefined,
291
285
  config: TraverseLegacySliceContentWithModelConfig,
292
286
  ): LegacySliceItemContent | undefined {
287
+ const { model, transformWidget, transformSlice } = config
288
+
293
289
  if (!content) {
294
290
  return
295
291
  }
296
292
 
297
- const {
298
- model,
299
- transformWidget = (args) => args.content,
300
- transformSlice = (args) => args.content
301
- } = config
302
-
303
293
  const traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {
304
294
  model,
305
295
  transformWidget,