@slicemachine/adapter-next 0.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/lib/pascalCase.ts","../src/lib/buildSliceLibraryIndexFileContents.ts","../src/lib/getJSOrTSXFileExtension.ts","../src/hooks/slice-create.ts","../src/hooks/slice-update.ts","../src/hooks/slice-delete.ts","../src/lib/readJSONFile.ts","../src/hooks/slice-read.ts","../node_modules/@prismicio/types/dist/index.js","../src/hooks/slice-library-read.ts","../src/hooks/customType-create.ts","../src/hooks/customType-update.ts","../src/hooks/customType-delete.ts","../src/hooks/customType-read.ts","../src/hooks/customType-library-read.ts","../src/hooks/snippet-read.ts","../src/hooks/sliceSimulator-setup-read.ts","../src/plugin.ts","../src/SliceSimulator.tsx"],"sourcesContent":["import { pascalCase as basePascalCase } from \"pascal-case\";\n\n/**\n * Converts a string to a Pascal cased string.\n *\n * @param input - String to convert into a Pascal cased string.\n *\n * @returns Pascal cased string version of `input`.\n */\nexport const pascalCase = (...input: (string | undefined)[]): string => {\n\treturn basePascalCase(input.filter(Boolean).join(\" \"));\n};\n","import { SliceMachineContext } from \"@slicemachine/plugin-kit\";\nimport { stripIndent } from \"common-tags\";\n\nimport { PluginOptions } from \"../types\";\n\nimport { pascalCase } from \"./pascalCase\";\n\ntype BuildSliceLibraryIndexFileContentsArgs = {\n\tlibraryID: string;\n} & SliceMachineContext<PluginOptions>;\n\nexport const buildSliceLibraryIndexFileContents = async (\n\targs: BuildSliceLibraryIndexFileContentsArgs,\n): Promise<{ filePath: string; contents: string }> => {\n\tconst filePath = args.helpers.joinPathFromRoot(\n\t\targs.libraryID,\n\t\targs.options.typescript ? \"index.ts\" : \"index.js\",\n\t);\n\tconst sliceLibrary = await args.actions.readSliceLibrary({\n\t\tlibraryID: args.libraryID,\n\t});\n\n\tlet contents = stripIndent`\n\t\timport dynamic from 'next/dynamic'\n\n\t\texport const components = {\n\t\t\t${sliceLibrary.sliceIDs.map(\n\t\t\t\t(id) => `${id}: dynamic(() => import('./${pascalCase(id)}')),`,\n\t\t\t)}\n\t\t}\n\t`;\n\n\tif (args.options.format) {\n\t\tcontents = await args.helpers.format(contents, filePath);\n\t}\n\n\treturn { filePath, contents };\n};\n","import type { PluginOptions } from \"../types\";\n\nexport const getJSOrTSXFileExtension = (\n\tpluginOptions: PluginOptions,\n): string => {\n\tif (pluginOptions.typescript) {\n\t\treturn \"tsx\";\n\t} else if (pluginOptions.jsxExtension) {\n\t\treturn \"jsx\";\n\t} else {\n\t\treturn \"js\";\n\t}\n};\n","import type {\n\tSliceCreateHook,\n\tSliceCreateHookData,\n\tSliceMachineContext,\n} from \"@slicemachine/plugin-kit\";\nimport { generateTypes } from \"prismic-ts-codegen\";\nimport { stripIndent } from \"common-tags\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { buildSliceLibraryIndexFileContents } from \"../lib/buildSliceLibraryIndexFileContents\";\nimport { getJSOrTSXFileExtension } from \"../lib/getJSOrTSXFileExtension\";\nimport { pascalCase } from \"../lib/pascalCase\";\n\nimport type { PluginOptions } from \"../types\";\n\ntype Args = {\n\tdir: string;\n\tdata: SliceCreateHookData;\n} & SliceMachineContext<PluginOptions>;\n\nconst createModelFile = async ({ dir, data, helpers, options }: Args) => {\n\tconst filePath = path.join(dir, \"model.json\");\n\n\tlet contents = JSON.stringify(data.model);\n\n\tif (options.format) {\n\t\tcontents = await helpers.format(contents, filePath);\n\t}\n\n\tawait fs.writeFile(filePath, contents);\n};\n\nconst createComponentFile = async ({ dir, data, helpers, options }: Args) => {\n\tconst filePath = path.join(dir, `index.${getJSOrTSXFileExtension(options)}`);\n\tconst model = data.model;\n\tconst pascalID = pascalCase(model.id);\n\n\tlet contents: string;\n\n\tif (options.typescript) {\n\t\tcontents = stripIndent`\n\t\t\timport { SliceComponentProps } from \"@prismicio/react\";\n\t\t\timport { ${pascalID}Slice } from \"./types\";\n\n\t\t\t/**\n\t\t\t * Props for \\`${pascalID}\\`.\n\t\t\t */\n\t\t\texport type ${pascalID}Props = SliceComponentProps<${pascalID}Slice>;\n\n\t\t\t/**\n\t\t\t * Component for \"${model.name}\" Slices.\n\t\t\t */\n\t\t\tconst ${pascalID} = ({ slice }: ${pascalID}Props): React.Element => {\n\t\t\t\treturn (\n\t\t\t\t\t<section\n\t\t\t\t\t\tdata-slice-type={slice.slice_type}\n\t\t\t\t\t\tdata-slice-variation={slice.variation}\n\t\t\t\t\t>\n\t\t\t\t\t\tPlaceholder component for ${model.id} (variation: {slice.variation}) Slices\n\t\t\t\t\t</section>\n\t\t\t\t);\n\t\t\t};\n\n\t\t\texport default ${pascalID}\n\t\t`;\n\t} else {\n\t\tcontents = stripIndent`\n\t\t\t/**\n\t\t\t * @typedef {import(\"./types\").${pascalID}Slice} ${pascalID}Slice\n\t\t\t * @typedef {import(\"@prismicio/react\").SliceComponentProps<${pascalID}Slice>} ${pascalID}Props\n\t\t\t * @param {${pascalID}Props}\n\t\t\t */\n\t\t\tconst ${pascalID} = ({ slice }) => {\n\t\t\t\treturn (\n\t\t\t\t\t<section\n\t\t\t\t\t\tdata-slice-type={slice.slice_type}\n\t\t\t\t\t\tdata-slice-variation={slice.variation}\n\t\t\t\t\t>\n\t\t\t\t\t\tPlaceholder component for ${model.id} (variation: {slice.variation}) Slices\n\t\t\t\t\t</section>\n\t\t\t\t);\n\t\t\t};\n\n\t\t\texport default ${pascalID};\n\t\t`;\n\t}\n\n\tif (options.format) {\n\t\tcontents = await helpers.format(contents, filePath);\n\t}\n\n\tawait fs.writeFile(filePath, contents);\n};\n\nconst createTypesFile = async ({ dir, data, helpers, options }: Args) => {\n\tconst filePath = path.join(dir, \"types.ts\");\n\n\tlet contents = generateTypes({\n\t\tsharedSliceModels: [data.model],\n\t});\n\n\tif (options.format) {\n\t\tcontents = await helpers.format(contents, filePath);\n\t}\n\n\tawait fs.writeFile(filePath, contents);\n};\n\nconst upsertSliceLibraryIndexFile = async ({\n\tdata,\n\tactions,\n\thelpers,\n\tproject,\n\toptions,\n}: Omit<Args, \"dir\">) => {\n\tconst { filePath, contents } = await buildSliceLibraryIndexFileContents({\n\t\tlibraryID: data.libraryID,\n\t\tactions,\n\t\thelpers,\n\t\tproject,\n\t\toptions,\n\t});\n\n\tawait fs.writeFile(filePath, contents);\n};\n\nexport const sliceCreate: SliceCreateHook<PluginOptions> = async (\n\tdata,\n\tcontext,\n) => {\n\tconst dir = context.helpers.joinPathFromRoot(\n\t\tdata.libraryID,\n\t\tpascalCase(data.model.id),\n\t);\n\n\tawait fs.mkdir(dir, { recursive: true });\n\n\tawait Promise.allSettled([\n\t\tcreateModelFile({ dir, data, ...context }),\n\t\tcreateComponentFile({ dir, data, ...context }),\n\t\tcreateTypesFile({ dir, data, ...context }),\n\t]);\n\n\tawait upsertSliceLibraryIndexFile({ data, ...context });\n};\n","import type {\n\tSliceMachineContext,\n\tSliceUpdateHook,\n\tSliceUpdateHookData,\n} from \"@slicemachine/plugin-kit\";\nimport { generateTypes } from \"prismic-ts-codegen\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { pascalCase } from \"../lib/pascalCase\";\n\nimport type { PluginOptions } from \"../types\";\n\ntype Args = {\n\tdir: string;\n\tdata: SliceUpdateHookData;\n} & SliceMachineContext<PluginOptions>;\n\nconst updateModelFile = async ({ dir, data, helpers, options }: Args) => {\n\tconst filePath = path.join(dir, \"model.json\");\n\n\tlet contents = JSON.stringify(data.model);\n\n\tif (options.format) {\n\t\tcontents = await helpers.format(contents, filePath);\n\t}\n\n\tawait fs.writeFile(filePath, contents);\n};\n\nconst updateTypesFile = async ({ dir, data, helpers, options }: Args) => {\n\tconst filePath = path.join(dir, \"types.ts\");\n\n\tlet contents = generateTypes({\n\t\tsharedSliceModels: [data.model],\n\t});\n\n\tif (options.format) {\n\t\tcontents = await helpers.format(contents, filePath);\n\t}\n\n\tawait fs.writeFile(filePath, contents);\n};\n\nexport const sliceUpdate: SliceUpdateHook<PluginOptions> = async (\n\tdata,\n\tcontext,\n) => {\n\tconst dir = context.helpers.joinPathFromRoot(\n\t\tdata.libraryID,\n\t\tpascalCase(data.model.id),\n\t);\n\n\tawait Promise.allSettled([\n\t\tupdateModelFile({ dir, data, ...context }),\n\t\tupdateTypesFile({ dir, data, ...context }),\n\t]);\n};\n","import type {\n\tSliceDeleteHook,\n\tSliceDeleteHookData,\n\tSliceMachineContext,\n} from \"@slicemachine/plugin-kit\";\nimport * as fs from \"node:fs/promises\";\n\nimport { buildSliceLibraryIndexFileContents } from \"../lib/buildSliceLibraryIndexFileContents\";\nimport { pascalCase } from \"../lib/pascalCase\";\n\nimport type { PluginOptions } from \"../types\";\n\ntype Args = {\n\tdata: SliceDeleteHookData;\n} & SliceMachineContext<PluginOptions>;\n\nconst deleteSliceDir = async ({ data, helpers }: Args) => {\n\tconst dir = helpers.joinPathFromRoot(\n\t\tdata.libraryID,\n\t\tpascalCase(data.model.id),\n\t);\n\n\tawait fs.rm(dir, { recursive: true });\n};\n\nconst updateSliceLibraryIndexFile = async ({\n\tdata,\n\tactions,\n\thelpers,\n\tproject,\n\toptions,\n}: Args) => {\n\tconst { filePath, contents } = await buildSliceLibraryIndexFileContents({\n\t\tlibraryID: data.libraryID,\n\t\tactions,\n\t\thelpers,\n\t\tproject,\n\t\toptions,\n\t});\n\n\tawait fs.writeFile(filePath, contents);\n};\n\nexport const sliceDelete: SliceDeleteHook<PluginOptions> = async (\n\tdata,\n\tcontext,\n) => {\n\tawait deleteSliceDir({ data, ...context });\n\tawait updateSliceLibraryIndexFile({ data, ...context });\n};\n","import * as fs from \"node:fs/promises\";\n\nexport const readJSONFile = async <T = unknown>(path: string): Promise<T> => {\n\tconst contents = await fs.readFile(path, \"utf8\");\n\n\treturn JSON.parse(contents);\n};\n","import type { SliceReadHook } from \"@slicemachine/plugin-kit\";\nimport * as prismicT from \"@prismicio/types\";\n\nimport { readJSONFile } from \"../lib/readJSONFile\";\nimport { pascalCase } from \"../lib/pascalCase\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const sliceRead: SliceReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst filePath = helpers.joinPathFromRoot(\n\t\tdata.libraryID,\n\t\tpascalCase(data.sliceID),\n\t\t\"model.json\",\n\t);\n\n\treturn await readJSONFile<prismicT.SharedSliceModel>(filePath);\n};\n","const RichTextNodeType = {\n heading1: \"heading1\",\n heading2: \"heading2\",\n heading3: \"heading3\",\n heading4: \"heading4\",\n heading5: \"heading5\",\n heading6: \"heading6\",\n paragraph: \"paragraph\",\n preformatted: \"preformatted\",\n strong: \"strong\",\n em: \"em\",\n listItem: \"list-item\",\n oListItem: \"o-list-item\",\n list: \"group-list-item\",\n oList: \"group-o-list-item\",\n image: \"image\",\n embed: \"embed\",\n hyperlink: \"hyperlink\",\n label: \"label\",\n span: \"span\"\n};\nconst LinkType = {\n Any: \"Any\",\n Document: \"Document\",\n Media: \"Media\",\n Web: \"Web\"\n};\nconst OEmbedType = {\n Photo: \"photo\",\n Video: \"video\",\n Link: \"link\",\n Rich: \"rich\"\n};\n\nconst CustomTypeModelFieldType = {\n Boolean: \"Boolean\",\n Color: \"Color\",\n Date: \"Date\",\n Embed: \"Embed\",\n GeoPoint: \"GeoPoint\",\n Group: \"Group\",\n Image: \"Image\",\n IntegrationFields: \"IntegrationFields\",\n Link: \"Link\",\n Number: \"Number\",\n Select: \"Select\",\n Slices: \"Slices\",\n StructuredText: \"StructuredText\",\n Text: \"Text\",\n Timestamp: \"Timestamp\",\n UID: \"UID\",\n Range: \"Range\",\n Separator: \"Separator\",\n LegacySlices: \"Choice\"\n};\nconst CustomTypeModelLinkSelectType = {\n Document: \"document\",\n Media: \"media\",\n Web: \"web\"\n};\nconst CustomTypeModelSliceDisplay = {\n List: \"list\",\n Grid: \"grid\"\n};\nconst CustomTypeModelSliceType = {\n Slice: \"Slice\",\n SharedSlice: \"SharedSlice\"\n};\n\nconst WebhookType = {\n APIUpdate: \"api-update\",\n TestTrigger: \"test-trigger\"\n};\n\nconst EmbedType = OEmbedType;\n\nexport { CustomTypeModelFieldType, CustomTypeModelLinkSelectType, CustomTypeModelSliceDisplay, CustomTypeModelSliceType, EmbedType, LinkType, OEmbedType, RichTextNodeType, WebhookType };\n//# sourceMappingURL=index.js.map\n","import type { SliceLibraryReadHook } from \"@slicemachine/plugin-kit\";\nimport * as prismicT from \"@prismicio/types\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { readJSONFile } from \"../lib/readJSONFile\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst isSharedSliceModel = (\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tinput: any,\n): input is prismicT.SharedSliceModel => {\n\treturn (\n\t\ttypeof input === \"object\" &&\n\t\tinput !== null &&\n\t\t\"type\" in input &&\n\t\tinput.type === prismicT.CustomTypeModelSliceType.SharedSlice\n\t);\n};\n\nexport const sliceLibraryRead: SliceLibraryReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst dirPath = helpers.joinPathFromRoot(data.libraryID);\n\n\tconst childDirs = await fs.readdir(dirPath);\n\n\tconst sliceIDs: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tconst modelPath = path.join(dirPath, childDir, \"model.json\");\n\n\t\t\ttry {\n\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\tif (isSharedSliceModel(modelContents)) {\n\t\t\t\t\tsliceIDs.push(modelContents.id);\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// noop\n\t\t\t}\n\t\t}),\n\t);\n\n\treturn {\n\t\tid: data.libraryID,\n\t\tsliceIDs: sliceIDs.sort(),\n\t};\n};\n","import type {\n\tCustomTypeCreateHook,\n\tCustomTypeCreateHookData,\n\tSliceMachineContext,\n} from \"@slicemachine/plugin-kit\";\nimport { generateTypes } from \"prismic-ts-codegen\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport type { PluginOptions } from \"../types\";\n\ntype Args = {\n\tdir: string;\n\tdata: CustomTypeCreateHookData;\n} & SliceMachineContext<PluginOptions>;\n\nconst createModelFile = async ({ dir, data, helpers, options }: Args) => {\n\tconst filePath = path.join(dir, \"index.json\");\n\n\tlet contents = JSON.stringify(data.model);\n\n\tif (options.format) {\n\t\tcontents = await helpers.format(contents, filePath);\n\t}\n\n\tawait fs.writeFile(filePath, contents);\n};\n\nconst createTypesFile = async ({ dir, data, helpers, options }: Args) => {\n\tconst filePath = path.join(dir, \"types.ts\");\n\n\t// TODO: Figure out how to import Shared Slice types\n\tlet contents = generateTypes({\n\t\tcustomTypeModels: [data.model],\n\t});\n\n\tif (options.format) {\n\t\tcontents = await helpers.format(contents, filePath);\n\t}\n\n\tawait fs.writeFile(filePath, contents);\n};\n\nexport const customTypeCreate: CustomTypeCreateHook<PluginOptions> = async (\n\tdata,\n\tcontext,\n) => {\n\tconst dir = context.helpers.joinPathFromRoot(\"customtypes\", data.model.id);\n\n\tawait fs.mkdir(dir, { recursive: true });\n\n\tawait Promise.allSettled([\n\t\tcreateModelFile({ dir, data, ...context }),\n\t\tcreateTypesFile({ dir, data, ...context }),\n\t]);\n};\n","import { customTypeCreate } from \"./customType-create\";\n\nexport const customTypeUpdate = customTypeCreate;\n","import type { CustomTypeDeleteHook } from \"@slicemachine/plugin-kit\";\nimport * as fs from \"node:fs/promises\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const customTypeDelete: CustomTypeDeleteHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst dir = helpers.joinPathFromRoot(\"customtypes\", data.model.id);\n\n\tawait fs.rm(dir, { recursive: true });\n};\n","import type { CustomTypeReadHook } from \"@slicemachine/plugin-kit\";\nimport * as prismicT from \"@prismicio/types\";\n\nimport { readJSONFile } from \"../lib/readJSONFile\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const customTypeRead: CustomTypeReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst filePath = helpers.joinPathFromRoot(\n\t\t\"customtypes\",\n\t\tdata.id,\n\t\t\"index.json\",\n\t);\n\n\treturn await readJSONFile<prismicT.CustomTypeModel>(filePath);\n};\n","import type { CustomTypeLibraryReadHook } from \"@slicemachine/plugin-kit\";\nimport * as prismicT from \"@prismicio/types\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { readJSONFile } from \"../lib/readJSONFile\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst isCustomTypeModel = (\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tinput: any,\n): input is prismicT.CustomTypeModel => {\n\treturn typeof input === \"object\" && input !== null && \"json\" in input;\n};\n\nexport const customTypeLibraryRead: CustomTypeLibraryReadHook<\n\tPluginOptions\n> = async (_data, { helpers }) => {\n\tconst dirPath = helpers.joinPathFromRoot(\"customtypes\");\n\n\tconst childDirs = await fs.readdir(dirPath);\n\n\tconst ids: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tconst modelPath = path.join(dirPath, childDir, \"index.json\");\n\n\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\tif (isCustomTypeModel(modelContents)) {\n\t\t\t\tids.push(modelContents.id);\n\t\t\t}\n\t\t}),\n\t);\n\n\treturn {\n\t\tids: ids.sort(),\n\t};\n};\n","import type { SnippetReadHook } from \"@slicemachine/plugin-kit\";\nimport * as prismicT from \"@prismicio/types\";\nimport { stripIndent } from \"common-tags\";\nimport type { Config as PrettierConfig } from \"prettier\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst prettierOptions: PrettierConfig = { parser: \"typescript\" };\n\nconst dotPath = (segments: string[]): string => {\n\treturn segments.join(\".\");\n};\n\nexport const snippetRead: SnippetReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst { fieldPath } = data;\n\n\tconst label = \"React\";\n\n\tswitch (data.model.type) {\n\t\tcase prismicT.CustomTypeModelFieldType.Link: {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await helpers.format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t<PrismicLink field={${dotPath(fieldPath)}}>Link</PrismicLink>\n\t\t\t\t\t`,\n\t\t\t\t\tundefined,\n\t\t\t\t\t{ prettier: prettierOptions },\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Image: {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: `${label} (next/image)`,\n\t\t\t\t\tlanguage: \"tsx\",\n\t\t\t\t\tcode: await helpers.format(\n\t\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicNextImage field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{ prettier: prettierOptions },\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel,\n\t\t\t\t\tlanguage: \"tsx\",\n\t\t\t\t\tcode: await helpers.format(\n\t\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicImage field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{ prettier: prettierOptions },\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Group: {\n\t\t\tconst code = await helpers.format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<>{${dotPath(fieldPath)}.map(item => (\n\t\t\t\t\t <>{/* Render content for item */}</>\n\t\t\t\t\t))}</>\n\t\t\t\t`,\n\t\t\t\tundefined,\n\t\t\t\t{ prettier: prettierOptions },\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase prismicT.CustomTypeModelFieldType.Slices: {\n\t\t\tconst code = await helpers.format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<SliceZone\n\t\t\t\t\t slices={${dotPath(fieldPath)}}\n\t\t\t\t\t components={components}\n\t\t\t\t\t/>\n\t\t\t\t`,\n\t\t\t\tundefined,\n\t\t\t\t{ prettier: prettierOptions },\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await helpers.format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t<>{${dotPath(fieldPath)}}</>\n\t\t\t\t\t`,\n\t\t\t\t\tundefined,\n\t\t\t\t\t{ prettier: prettierOptions },\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t}\n};\n","import type {\n\tSliceMachineContext,\n\tSliceSimulatorSetupReadHook,\n\tSliceSimulatorSetupStep,\n} from \"@slicemachine/plugin-kit\";\nimport { SliceSimulatorSetupStepValidationMessageType } from \"@slicemachine/plugin-kit\";\nimport { stripIndent } from \"common-tags\";\nimport { createRequire } from \"node:module\";\nimport * as http from \"node:http\";\n\nimport { getJSOrTSXFileExtension } from \"../lib/getJSOrTSXFileExtension\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst REQUIRED_DEPENDENCIES = [\n\t\"@prismicio/react\",\n\t\"@prismicio/slice-simulator-react\",\n\t\"@prismicio/client@latest\",\n\t\"@prismicio/helpers\",\n];\n\ntype Args = SliceMachineContext<PluginOptions>;\n\nconst createStep1 = async ({\n\tproject,\n}: Args): Promise<SliceSimulatorSetupStep> => {\n\tconst require = createRequire(project.root);\n\n\treturn {\n\t\ttitle: \"Install packages\",\n\t\tbody: stripIndent`\n\t\t\tThe simulator requires extra dependencies. Run the following command to install them.\n\n\t\t\t~~~sh\n\t\t\tnpm install --save @prismicio/react @prismicio/slice-simulator-react @prismicio/client@latest @prismicio/helpers\n\t\t\t~~~\n\t\t`,\n\t\tvalidate: async () => {\n\t\t\tconst missingDependencies: string[] = [];\n\n\t\t\tfor (const dependency of REQUIRED_DEPENDENCIES) {\n\t\t\t\ttry {\n\t\t\t\t\t// `require.resolve()` is preferred\n\t\t\t\t\t// over `import()` because we don't\n\t\t\t\t\t// want to load the module. Loading a\n\t\t\t\t\t// module could introduce side-effects.\n\t\t\t\t\trequire.resolve(dependency);\n\t\t\t\t} catch {\n\t\t\t\t\tmissingDependencies.push(dependency);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (missingDependencies.length >= REQUIRED_DEPENDENCIES.length) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: SliceSimulatorSetupStepValidationMessageType.Error,\n\t\t\t\t\ttitle: \"Missing all dependencies\",\n\t\t\t\t\tmessage: stripIndent`\n\t\t\t\t\t\tInstall the required dependencies to continue.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (missingDependencies.length > 0) {\n\t\t\t\tconst formattedMissingDependencies = missingDependencies\n\t\t\t\t\t.map((missingDependency) => `\\`${missingDependency}\\``)\n\t\t\t\t\t.join(\", \");\n\n\t\t\t\treturn {\n\t\t\t\t\ttype: SliceSimulatorSetupStepValidationMessageType.Warning,\n\t\t\t\t\ttitle: \"Missing some dependencies\",\n\t\t\t\t\tmessage: stripIndent`\n\t\t\t\t\t\tThe following dependencies are missing: ${formattedMissingDependencies}\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t};\n};\n\nconst createStep2 = async ({\n\thelpers,\n\toptions,\n}: Args): Promise<SliceSimulatorSetupStep> => {\n\tconst fileName = `slice-simulator.${getJSOrTSXFileExtension}`;\n\tconst filePath = helpers.joinPathFromRoot(\"pages\", fileName);\n\n\tlet fileContents: string;\n\n\tif (options.typescript) {\n\t\tfileContents = stripIndent`\n\t\t\timport { GetStaticProps } from \"next/types\";\n\t\t\timport { SliceSimulator } from \"@prismicio/slice-simulator-react\";\n\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\timport state from \"../.slicemachine/libraries-state.json\";\n\t\t\timport { components } from \"../slices\";\n\n\t\t\tconst SliceSimulatorPage = () => {\n\t\t\t\treturn (\n\t\t\t\t\t<SliceSimulator\n\t\t\t\t\t\tsliceZone={(props) => <SliceZone {...props} components={components} />}\n\t\t\t\t\t\tstate={state}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t};\n\n\t\t\texport default SliceSimulatorPage;\n\n\t\t\texport const getStaticProps: GetStaticProps = () => {\n\t\t\t\treturn {\n\t\t\t\t\t// Exclude this page from production builds.\n\t\t\t\t\tnotFound: process.env.NODE_ENV === \"production\",\n\t\t\t\t};\n\t\t\t};\n\t\t`;\n\t} else {\n\t\tfileContents = stripIndent`\n\t\t\timport { SliceSimulator } from \"@prismicio/slice-simulator-react\";\n\t\t\timport { SliceZone } from \"@prismicio/react\";\n\n\t\t\timport state from \"../.slicemachine/libraries-state.json\";\n\t\t\timport { components } from \"../slices\";\n\n\t\t\tconst SliceSimulatorPage = () => {\n\t\t\t\treturn (\n\t\t\t\t\t<SliceSimulator\n\t\t\t\t\t\tsliceZone={(props) => <SliceZone {...props} components={components} />}\n\t\t\t\t\t\tstate={state}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t};\n\n\t\t\texport default SliceSimulatorPage;\n\n\t\t\texport const getStaticProps= () => {\n\t\t\t\treturn {\n\t\t\t\t\t// Exclude this page from production builds.\n\t\t\t\t\tnotFound: process.env.NODE_ENV === \"production\",\n\t\t\t\t};\n\t\t\t};\n\t\t`;\n\t}\n\n\tfileContents = await helpers.format(fileContents, filePath);\n\n\treturn {\n\t\ttitle: \"Create a page for the simulator\",\n\t\tbody: stripIndent`\n\t\t\tIn your \\`pages\\` directory, create a file called \\`${fileName}\\` and add the following code. This route will be used to simulate and develop your components.\n\n\t\t\t~~~tsx\n\t\t\t${fileContents}\n\t\t\t~~~\n\t\t`,\n\t};\n};\n\nconst createStep3 = async ({\n\thelpers,\n}: Args): Promise<SliceSimulatorSetupStep> => {\n\tconst filePath = helpers.joinPathFromRoot(\"sm.json\");\n\tconst fileContents = await helpers.format(\n\t\t`\n\t\t\t{\n\t\t\t\t\"localSliceSimulatorURL\": \"http://localhost:3000/slice-simulator\"\n\t\t\t}\n\t\t`,\n\t\tfilePath,\n\t);\n\n\treturn {\n\t\ttitle: \"Update `sm.json`\",\n\t\tbody: stripIndent`\n\t\t\tUpdate your \\`sm.json\\` file with a \\`localSliceSimulatorURL\\` property pointing to your \\`slice-simulator\\` page.\n\n\t\t\t~~~json\n\t\t\t${fileContents}\n\t\t\t~~~\n\t\t`,\n\t\tvalidate: async () => {\n\t\t\tconst project = await helpers.getProject();\n\n\t\t\tif (!(\"localSliceSimulatorURL\" in project.config)) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: SliceSimulatorSetupStepValidationMessageType.Error,\n\t\t\t\t\ttitle: \"Missing `localSliceSimulatorURL` property\",\n\t\t\t\t\tmessage: stripIndent`\n\t\t\t\t\t\tA \\`localSliceSimulatorURL\\` property was not found in your \\`sm.json\\` file.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Test if the URL is valid.\n\t\t\ttry {\n\t\t\t\tif (project.config.localSliceSimulatorURL) {\n\t\t\t\t\tnew URL(project.config.localSliceSimulatorURL);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\"Undefined Slice Simulator URL\");\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\treturn {\n\t\t\t\t\ttype: SliceSimulatorSetupStepValidationMessageType.Warning,\n\t\t\t\t\ttitle: \"An invalid URL was provided\",\n\t\t\t\t\tmessage: stripIndent`\n\t\t\t\t\t\tThe \\`localSliceSimulatorURL\\` property should be of the shape \\`http://localhost:PORT/PATH\\`. See the codeblock for an example.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Check if the URL is accessible.\n\t\t\tconst ok = await new Promise<boolean>((resolve) => {\n\t\t\t\tif (project.config.localSliceSimulatorURL) {\n\t\t\t\t\thttp.get(project.config.localSliceSimulatorURL, (res) => {\n\t\t\t\t\t\tif (res.statusCode) {\n\t\t\t\t\t\t\tresolve(res.statusCode >= 200 && res.statusCode < 300);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tresolve(false);\n\t\t\t});\n\n\t\t\tif (!ok) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: SliceSimulatorSetupStepValidationMessageType.Warning,\n\t\t\t\t\ttitle: \"Unable to connect to simulator page\",\n\t\t\t\t\tmessage: stripIndent`\n\t\t\t\t\t\tCheck that the \\`localSliceSimulatorURL\\` property in \\`sm.json\\` is correct and try again. See the [troubleshooting page](https://prismic.io/docs/technologies/setup-slice-simulator-nextjs) for more details.\n\t\t\t\t\t`,\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t};\n};\n\nexport const sliceSimulatorSetupRead: SliceSimulatorSetupReadHook<\n\tPluginOptions\n> = async (_data, context) => {\n\treturn Promise.all([\n\t\tcreateStep1(context),\n\t\tcreateStep2(context),\n\t\tcreateStep3(context),\n\t]);\n};\n","import { defineSliceMachinePlugin } from \"@slicemachine/plugin-kit\";\n\nimport { name as pkgName } from \"../package.json\";\nimport { PluginOptions } from \"./types\";\n\nimport { sliceCreate } from \"./hooks/slice-create\";\nimport { sliceUpdate } from \"./hooks/slice-update\";\nimport { sliceDelete } from \"./hooks/slice-delete\";\nimport { sliceRead } from \"./hooks/slice-read\";\nimport { sliceLibraryRead } from \"./hooks/slice-library-read\";\nimport { customTypeCreate } from \"./hooks/customType-create\";\nimport { customTypeUpdate } from \"./hooks/customType-update\";\nimport { customTypeDelete } from \"./hooks/customType-delete\";\nimport { customTypeRead } from \"./hooks/customType-read\";\nimport { customTypeLibraryRead } from \"./hooks/customType-library-read\";\nimport { snippetRead } from \"./hooks/snippet-read\";\nimport { sliceSimulatorSetupRead } from \"./hooks/sliceSimulator-setup-read\";\n\nexport const plugin = defineSliceMachinePlugin<PluginOptions>({\n\tmeta: {\n\t\tname: pkgName,\n\t},\n\tdefaultOptions: {\n\t\tformat: true,\n\t},\n\tsetup({ hook }) {\n\t\thook(\"slice:create\", sliceCreate);\n\t\thook(\"slice:update\", sliceUpdate);\n\t\thook(\"slice:delete\", sliceDelete);\n\t\thook(\"slice:read\", sliceRead);\n\t\thook(\"slice-library:read\", sliceLibraryRead);\n\n\t\thook(\"custom-type:create\", customTypeCreate);\n\t\thook(\"custom-type:update\", customTypeUpdate);\n\t\thook(\"custom-type:delete\", customTypeDelete);\n\t\thook(\"custom-type:read\", customTypeRead);\n\t\thook(\"custom-type-library:read\", customTypeLibraryRead);\n\n\t\thook(\"snippet:read\", snippetRead);\n\n\t\thook(\"slice-simulator:setup:read\", sliceSimulatorSetupRead);\n\t},\n});\n","import * as React from \"react\";\nimport {\n\tCoreManager,\n\tSliceSimulatorProps as BaseSliceSimulatorProps,\n\tSliceSimulatorState,\n\tStateManagerEventType,\n\tStateManagerStatus,\n\tdisableEventHandler,\n\tgetDefaultManagedState,\n\tgetDefaultMessage,\n\tgetDefaultProps,\n\tgetDefaultSlices,\n\tonClickHandler,\n\tsimulatorClass,\n\tsimulatorRootClass,\n} from \"@prismicio/slice-simulator-core\";\n\nconst coreManager = new CoreManager();\n\nexport type SliceSimulatorSliceZoneProps = {\n\tslices: SliceSimulatorState[\"slices\"];\n};\n\nexport type SliceSimulatorProps = {\n\t/**\n\t * React component to render simulated Slices.\n\t *\n\t * @example\n\t *\n\t * ```tsx\n\t * import { SliceSimulator } from \"@slicemachine/adapter-next\";\n\t * import { SliceZone } from \"@prismicio/react\";\n\t *\n\t * import { components } from \"../slices\";\n\t * import state from \"../.slicemachine/libraries-state.json\";\n\t *\n\t * <SliceSimulator\n\t * \tsliceZone={({ slices }) => (\n\t * \t\t<SliceZone slices={slices} components={components} />\n\t * \t)}\n\t * \tstate={state}\n\t * />;\n\t * ```\n\t */\n\tsliceZone: (props: SliceSimulatorSliceZoneProps) => JSX.Element;\n\tclassName?: string;\n} & BaseSliceSimulatorProps;\n\nexport const SliceSimulator = ({\n\tsliceZone: SliceZoneComp,\n\tstate,\n\tbackground,\n\tzIndex,\n\tclassName,\n}: SliceSimulatorProps): JSX.Element => {\n\tconst defaultProps = getDefaultProps();\n\n\tconst [managedState, setManagedState] = React.useState(() =>\n\t\tgetDefaultManagedState(),\n\t);\n\tconst [slices, setSlices] = React.useState(() => getDefaultSlices());\n\tconst [message, setMessage] = React.useState(() => getDefaultMessage());\n\n\tReact.useEffect(() => {\n\t\tcoreManager.stateManager.on(\n\t\t\tStateManagerEventType.ManagedState,\n\t\t\t(_managedState) => {\n\t\t\t\tsetManagedState(_managedState);\n\t\t\t},\n\t\t\t\"simulator-managed-state\",\n\t\t);\n\t\tcoreManager.stateManager.on(\n\t\t\tStateManagerEventType.Slices,\n\t\t\t(_slices) => {\n\t\t\t\tsetSlices(_slices);\n\t\t\t},\n\t\t\t\"simulator-slices\",\n\t\t);\n\t\tcoreManager.stateManager.on(\n\t\t\tStateManagerEventType.Message,\n\t\t\t(_message) => {\n\t\t\t\tsetMessage(_message);\n\t\t\t},\n\t\t\t\"simulator-message\",\n\t\t);\n\n\t\tcoreManager.init(state);\n\n\t\treturn () => {\n\t\t\tcoreManager.stateManager.off(\n\t\t\t\tStateManagerEventType.ManagedState,\n\t\t\t\t\"simulator-managed-state\",\n\t\t\t);\n\n\t\t\tcoreManager.stateManager.off(\n\t\t\t\tStateManagerEventType.Slices,\n\t\t\t\t\"simulator-slices\",\n\t\t\t);\n\n\t\t\tcoreManager.stateManager.off(\n\t\t\t\tStateManagerEventType.Message,\n\t\t\t\t\"simulator-message\",\n\t\t\t);\n\t\t};\n\t}, []);\n\n\t// Update state on HMR\n\tconst didMount = React.useRef(false);\n\tReact.useEffect(() => {\n\t\tif (didMount.current) {\n\t\t\tcoreManager.stateManager.reload(state);\n\t\t} else {\n\t\t\tdidMount.current = true;\n\t\t}\n\t}, [state]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={[simulatorClass, className].filter(Boolean).join(\" \")}\n\t\t\tstyle={{\n\t\t\t\tzIndex:\n\t\t\t\t\ttypeof zIndex === \"undefined\"\n\t\t\t\t\t\t? defaultProps.zIndex\n\t\t\t\t\t\t: zIndex ?? undefined,\n\t\t\t\tposition: \"fixed\",\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t\twidth: \"100%\",\n\t\t\t\theight: \"100vh\",\n\t\t\t\toverflow: \"auto\",\n\t\t\t\tbackground:\n\t\t\t\t\ttypeof background === \"undefined\"\n\t\t\t\t\t\t? defaultProps.background\n\t\t\t\t\t\t: background ?? undefined,\n\t\t\t}}\n\t\t>\n\t\t\t{message ? (\n\t\t\t\t<article dangerouslySetInnerHTML={{ __html: message }} />\n\t\t\t) : slices.length ? (\n\t\t\t\t<div\n\t\t\t\t\tid=\"root\"\n\t\t\t\t\tclassName={simulatorRootClass}\n\t\t\t\t\tstyle={\n\t\t\t\t\t\tmanagedState.status !== StateManagerStatus.Loaded\n\t\t\t\t\t\t\t? { display: \"none\" }\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tonClickCapture={onClickHandler as unknown as React.MouseEventHandler}\n\t\t\t\t\tonSubmitCapture={\n\t\t\t\t\t\tdisableEventHandler as unknown as React.FormEventHandler\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<SliceZoneComp slices={slices} />\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t</div>\n\t);\n};\n"],"names":["basePascalCase","stripIndent","createModelFile","path","fs","createTypesFile","generateTypes","prismicT.CustomTypeModelSliceType","prismicT.CustomTypeModelFieldType","createRequire","SliceSimulatorSetupStepValidationMessageType","http","defineSliceMachinePlugin","pkgName","CoreManager","getDefaultProps","React","getDefaultManagedState","getDefaultSlices","getDefaultMessage","StateManagerEventType","simulatorClass","simulatorRootClass","StateManagerStatus","onClickHandler","disableEventHandler"],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import * as _slicemachine_plugin_kit from '@slicemachine/plugin-kit';
2
+ import { SliceSimulatorState, SliceSimulatorProps as SliceSimulatorProps$1 } from '@prismicio/slice-simulator-core';
3
+
4
+ declare type PluginOptions = {
5
+ format?: boolean;
6
+ } & ({
7
+ typescript?: false;
8
+ jsxExtension?: boolean;
9
+ } | {
10
+ typescript: true;
11
+ jsxExtension?: never;
12
+ });
13
+
14
+ declare const plugin: _slicemachine_plugin_kit.SliceMachinePlugin<PluginOptions>;
15
+
16
+ declare type SliceSimulatorSliceZoneProps = {
17
+ slices: SliceSimulatorState["slices"];
18
+ };
19
+ declare type SliceSimulatorProps = {
20
+ /**
21
+ * React component to render simulated Slices.
22
+ *
23
+ * @example
24
+ *
25
+ * ```tsx
26
+ * import { SliceSimulator } from "@slicemachine/adapter-next";
27
+ * import { SliceZone } from "@prismicio/react";
28
+ *
29
+ * import { components } from "../slices";
30
+ * import state from "../.slicemachine/libraries-state.json";
31
+ *
32
+ * <SliceSimulator
33
+ * sliceZone={({ slices }) => (
34
+ * <SliceZone slices={slices} components={components} />
35
+ * )}
36
+ * state={state}
37
+ * />;
38
+ * ```
39
+ */
40
+ sliceZone: (props: SliceSimulatorSliceZoneProps) => JSX.Element;
41
+ className?: string;
42
+ } & SliceSimulatorProps$1;
43
+ declare const SliceSimulator: ({ sliceZone: SliceZoneComp, state, background, zIndex, className, }: SliceSimulatorProps) => JSX.Element;
44
+
45
+ export { PluginOptions, SliceSimulator, SliceSimulatorProps, SliceSimulatorSliceZoneProps, plugin as default };