@slicemachine/adapter-next 0.0.2 → 0.0.4

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.
Files changed (242) hide show
  1. package/dist/SliceSimulator.cjs +14 -41
  2. package/dist/SliceSimulator.cjs.map +1 -1
  3. package/dist/SliceSimulator.d.ts +2 -2
  4. package/dist/SliceSimulator.js +11 -36
  5. package/dist/SliceSimulator.js.map +1 -1
  6. package/dist/_virtual/_commonjsHelpers.cjs +5 -0
  7. package/dist/_virtual/_commonjsHelpers.cjs.map +1 -0
  8. package/dist/_virtual/_commonjsHelpers.js +5 -0
  9. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  10. package/dist/_virtual/ponyfill.es2018.cjs +5 -0
  11. package/dist/_virtual/ponyfill.es2018.cjs.map +1 -0
  12. package/dist/_virtual/ponyfill.es2018.js +5 -0
  13. package/dist/_virtual/ponyfill.es2018.js.map +1 -0
  14. package/dist/constants.cjs +5 -0
  15. package/dist/constants.cjs.map +1 -0
  16. package/dist/constants.d.ts +4 -0
  17. package/dist/constants.js +5 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/hooks/customType-asset-delete.cjs +3 -5
  20. package/dist/hooks/customType-asset-delete.cjs.map +1 -1
  21. package/dist/hooks/customType-asset-delete.js.map +1 -1
  22. package/dist/hooks/customType-asset-read.cjs +3 -5
  23. package/dist/hooks/customType-asset-read.cjs.map +1 -1
  24. package/dist/hooks/customType-asset-read.js.map +1 -1
  25. package/dist/hooks/customType-asset-update.cjs +4 -6
  26. package/dist/hooks/customType-asset-update.cjs.map +1 -1
  27. package/dist/hooks/customType-asset-update.js.map +1 -1
  28. package/dist/hooks/customType-create.cjs +4 -6
  29. package/dist/hooks/customType-create.cjs.map +1 -1
  30. package/dist/hooks/customType-create.js.map +1 -1
  31. package/dist/hooks/customType-delete.cjs +3 -5
  32. package/dist/hooks/customType-delete.cjs.map +1 -1
  33. package/dist/hooks/customType-delete.js.map +1 -1
  34. package/dist/hooks/customType-read.cjs +1 -1
  35. package/dist/hooks/customType-read.cjs.map +1 -1
  36. package/dist/hooks/customType-read.js.map +1 -1
  37. package/dist/hooks/customType-rename.cjs +6 -0
  38. package/dist/hooks/customType-rename.cjs.map +1 -0
  39. package/dist/hooks/customType-rename.d.ts +1 -0
  40. package/dist/hooks/customType-rename.js +6 -0
  41. package/dist/hooks/customType-rename.js.map +1 -0
  42. package/dist/hooks/customType-update.cjs +1 -1
  43. package/dist/hooks/customType-update.cjs.map +1 -1
  44. package/dist/hooks/customType-update.js.map +1 -1
  45. package/dist/hooks/customTypeLibrary-read.cjs +16 -10
  46. package/dist/hooks/customTypeLibrary-read.cjs.map +1 -1
  47. package/dist/hooks/customTypeLibrary-read.js +12 -4
  48. package/dist/hooks/customTypeLibrary-read.js.map +1 -1
  49. package/dist/hooks/slice-asset-delete.cjs +3 -5
  50. package/dist/hooks/slice-asset-delete.cjs.map +1 -1
  51. package/dist/hooks/slice-asset-delete.js.map +1 -1
  52. package/dist/hooks/slice-asset-read.cjs +3 -5
  53. package/dist/hooks/slice-asset-read.cjs.map +1 -1
  54. package/dist/hooks/slice-asset-read.js.map +1 -1
  55. package/dist/hooks/slice-asset-update.cjs +4 -6
  56. package/dist/hooks/slice-asset-update.cjs.map +1 -1
  57. package/dist/hooks/slice-asset-update.js.map +1 -1
  58. package/dist/hooks/slice-create.cjs +18 -30
  59. package/dist/hooks/slice-create.cjs.map +1 -1
  60. package/dist/hooks/slice-create.js +14 -24
  61. package/dist/hooks/slice-create.js.map +1 -1
  62. package/dist/hooks/slice-delete.cjs +6 -18
  63. package/dist/hooks/slice-delete.cjs.map +1 -1
  64. package/dist/hooks/slice-delete.js +3 -13
  65. package/dist/hooks/slice-delete.js.map +1 -1
  66. package/dist/hooks/slice-read.cjs +41 -7
  67. package/dist/hooks/slice-read.cjs.map +1 -1
  68. package/dist/hooks/slice-read.js +22 -6
  69. package/dist/hooks/slice-read.js.map +1 -1
  70. package/dist/hooks/slice-rename.cjs +43 -0
  71. package/dist/hooks/slice-rename.cjs.map +1 -0
  72. package/dist/hooks/slice-rename.d.ts +3 -0
  73. package/dist/hooks/slice-rename.js +26 -0
  74. package/dist/hooks/slice-rename.js.map +1 -0
  75. package/dist/hooks/slice-update.cjs +7 -34
  76. package/dist/hooks/slice-update.cjs.map +1 -1
  77. package/dist/hooks/slice-update.js +6 -13
  78. package/dist/hooks/slice-update.js.map +1 -1
  79. package/dist/hooks/sliceLibrary-read.cjs +16 -20
  80. package/dist/hooks/sliceLibrary-read.cjs.map +1 -1
  81. package/dist/hooks/sliceLibrary-read.js +12 -13
  82. package/dist/hooks/sliceLibrary-read.js.map +1 -1
  83. package/dist/hooks/sliceSimulator-setup-read.cjs +31 -94
  84. package/dist/hooks/sliceSimulator-setup-read.cjs.map +1 -1
  85. package/dist/hooks/sliceSimulator-setup-read.js +31 -75
  86. package/dist/hooks/sliceSimulator-setup-read.js.map +1 -1
  87. package/dist/hooks/snippet-read.cjs +33 -18
  88. package/dist/hooks/snippet-read.cjs.map +1 -1
  89. package/dist/hooks/snippet-read.js +30 -13
  90. package/dist/hooks/snippet-read.js.map +1 -1
  91. package/dist/index.cjs +0 -2
  92. package/dist/index.cjs.map +1 -1
  93. package/dist/index.d.ts +0 -2
  94. package/dist/index.js +0 -2
  95. package/dist/index.js.map +1 -1
  96. package/dist/lib/getJSOrTSXFileExtension.cjs +1 -1
  97. package/dist/lib/getJSOrTSXFileExtension.cjs.map +1 -1
  98. package/dist/lib/getJSOrTSXFileExtension.js.map +1 -1
  99. package/dist/lib/isSharedSliceModel.cjs +25 -0
  100. package/dist/lib/isSharedSliceModel.cjs.map +1 -0
  101. package/dist/lib/isSharedSliceModel.d.ts +2 -0
  102. package/dist/lib/isSharedSliceModel.js +8 -0
  103. package/dist/lib/isSharedSliceModel.js.map +1 -0
  104. package/dist/lib/pascalCase.cjs +1 -1
  105. package/dist/lib/pascalCase.cjs.map +1 -1
  106. package/dist/lib/pascalCase.js.map +1 -1
  107. package/dist/lib/readJSONFile.cjs +3 -5
  108. package/dist/lib/readJSONFile.cjs.map +1 -1
  109. package/dist/lib/readJSONFile.js.map +1 -1
  110. package/dist/lib/rejectIfNecessary.cjs +1 -1
  111. package/dist/lib/rejectIfNecessary.cjs.map +1 -1
  112. package/dist/lib/rejectIfNecessary.js.map +1 -1
  113. package/dist/lib/updateSliceModelFile.cjs +31 -0
  114. package/dist/lib/updateSliceModelFile.cjs.map +1 -0
  115. package/dist/lib/updateSliceModelFile.d.ts +9 -0
  116. package/dist/lib/updateSliceModelFile.js +14 -0
  117. package/dist/lib/updateSliceModelFile.js.map +1 -0
  118. package/dist/lib/upsertGlobalContentTypes.cjs +8 -6
  119. package/dist/lib/upsertGlobalContentTypes.cjs.map +1 -1
  120. package/dist/lib/upsertGlobalContentTypes.d.ts +1 -1
  121. package/dist/lib/upsertGlobalContentTypes.js +4 -0
  122. package/dist/lib/upsertGlobalContentTypes.js.map +1 -1
  123. package/dist/lib/upsertSliceLibraryIndexFile.cjs +48 -0
  124. package/dist/lib/upsertSliceLibraryIndexFile.cjs.map +1 -0
  125. package/dist/lib/upsertSliceLibraryIndexFile.d.ts +7 -0
  126. package/dist/lib/upsertSliceLibraryIndexFile.js +31 -0
  127. package/dist/lib/upsertSliceLibraryIndexFile.js.map +1 -0
  128. package/dist/node_modules/data-uri-to-buffer/dist/index.cjs +41 -0
  129. package/dist/node_modules/data-uri-to-buffer/dist/index.cjs.map +1 -0
  130. package/dist/node_modules/data-uri-to-buffer/dist/index.js +41 -0
  131. package/dist/node_modules/data-uri-to-buffer/dist/index.js.map +1 -0
  132. package/dist/node_modules/fetch-blob/file.cjs +55 -0
  133. package/dist/node_modules/fetch-blob/file.cjs.map +1 -0
  134. package/dist/node_modules/fetch-blob/file.js +55 -0
  135. package/dist/node_modules/fetch-blob/file.js.map +1 -0
  136. package/dist/node_modules/fetch-blob/index.cjs +176 -0
  137. package/dist/node_modules/fetch-blob/index.cjs.map +1 -0
  138. package/dist/node_modules/fetch-blob/index.js +176 -0
  139. package/dist/node_modules/fetch-blob/index.js.map +1 -0
  140. package/dist/node_modules/fetch-blob/streams.cjs +43 -0
  141. package/dist/node_modules/fetch-blob/streams.cjs.map +1 -0
  142. package/dist/node_modules/fetch-blob/streams.js +42 -0
  143. package/dist/node_modules/fetch-blob/streams.js.map +1 -0
  144. package/dist/node_modules/formdata-polyfill/esm.min.cjs +115 -0
  145. package/dist/node_modules/formdata-polyfill/esm.min.cjs.map +1 -0
  146. package/dist/node_modules/formdata-polyfill/esm.min.js +115 -0
  147. package/dist/node_modules/formdata-polyfill/esm.min.js.map +1 -0
  148. package/dist/node_modules/node-domexception/index.cjs +10 -0
  149. package/dist/node_modules/node-domexception/index.cjs.map +1 -0
  150. package/dist/node_modules/node-domexception/index.js +9 -0
  151. package/dist/node_modules/node-domexception/index.js.map +1 -0
  152. package/dist/node_modules/node-fetch/src/body.cjs +237 -0
  153. package/dist/node_modules/node-fetch/src/body.cjs.map +1 -0
  154. package/dist/node_modules/node-fetch/src/body.js +237 -0
  155. package/dist/node_modules/node-fetch/src/body.js.map +1 -0
  156. package/dist/node_modules/node-fetch/src/errors/abort-error.cjs +10 -0
  157. package/dist/node_modules/node-fetch/src/errors/abort-error.cjs.map +1 -0
  158. package/dist/node_modules/node-fetch/src/errors/abort-error.js +10 -0
  159. package/dist/node_modules/node-fetch/src/errors/abort-error.js.map +1 -0
  160. package/dist/node_modules/node-fetch/src/errors/base.cjs +17 -0
  161. package/dist/node_modules/node-fetch/src/errors/base.cjs.map +1 -0
  162. package/dist/node_modules/node-fetch/src/errors/base.js +17 -0
  163. package/dist/node_modules/node-fetch/src/errors/base.js.map +1 -0
  164. package/dist/node_modules/node-fetch/src/errors/fetch-error.cjs +14 -0
  165. package/dist/node_modules/node-fetch/src/errors/fetch-error.cjs.map +1 -0
  166. package/dist/node_modules/node-fetch/src/errors/fetch-error.js +14 -0
  167. package/dist/node_modules/node-fetch/src/errors/fetch-error.js.map +1 -0
  168. package/dist/node_modules/node-fetch/src/headers.cjs +173 -0
  169. package/dist/node_modules/node-fetch/src/headers.cjs.map +1 -0
  170. package/dist/node_modules/node-fetch/src/headers.js +173 -0
  171. package/dist/node_modules/node-fetch/src/headers.js.map +1 -0
  172. package/dist/node_modules/node-fetch/src/index.cjs +292 -0
  173. package/dist/node_modules/node-fetch/src/index.cjs.map +1 -0
  174. package/dist/node_modules/node-fetch/src/index.js +298 -0
  175. package/dist/node_modules/node-fetch/src/index.js.map +1 -0
  176. package/dist/node_modules/node-fetch/src/request.cjs +193 -0
  177. package/dist/node_modules/node-fetch/src/request.cjs.map +1 -0
  178. package/dist/node_modules/node-fetch/src/request.js +193 -0
  179. package/dist/node_modules/node-fetch/src/request.js.map +1 -0
  180. package/dist/node_modules/node-fetch/src/response.cjs +110 -0
  181. package/dist/node_modules/node-fetch/src/response.cjs.map +1 -0
  182. package/dist/node_modules/node-fetch/src/response.js +110 -0
  183. package/dist/node_modules/node-fetch/src/response.js.map +1 -0
  184. package/dist/node_modules/node-fetch/src/utils/get-search.cjs +12 -0
  185. package/dist/node_modules/node-fetch/src/utils/get-search.cjs.map +1 -0
  186. package/dist/node_modules/node-fetch/src/utils/get-search.js +12 -0
  187. package/dist/node_modules/node-fetch/src/utils/get-search.js.map +1 -0
  188. package/dist/node_modules/node-fetch/src/utils/is-redirect.cjs +8 -0
  189. package/dist/node_modules/node-fetch/src/utils/is-redirect.cjs.map +1 -0
  190. package/dist/node_modules/node-fetch/src/utils/is-redirect.js +8 -0
  191. package/dist/node_modules/node-fetch/src/utils/is-redirect.js.map +1 -0
  192. package/dist/node_modules/node-fetch/src/utils/is.cjs +28 -0
  193. package/dist/node_modules/node-fetch/src/utils/is.cjs.map +1 -0
  194. package/dist/node_modules/node-fetch/src/utils/is.js +28 -0
  195. package/dist/node_modules/node-fetch/src/utils/is.js.map +1 -0
  196. package/dist/node_modules/node-fetch/src/utils/multipart-parser.cjs +350 -0
  197. package/dist/node_modules/node-fetch/src/utils/multipart-parser.cjs.map +1 -0
  198. package/dist/node_modules/node-fetch/src/utils/multipart-parser.js +350 -0
  199. package/dist/node_modules/node-fetch/src/utils/multipart-parser.js.map +1 -0
  200. package/dist/node_modules/node-fetch/src/utils/referrer.cjs +149 -0
  201. package/dist/node_modules/node-fetch/src/utils/referrer.cjs.map +1 -0
  202. package/dist/node_modules/node-fetch/src/utils/referrer.js +149 -0
  203. package/dist/node_modules/node-fetch/src/utils/referrer.js.map +1 -0
  204. package/dist/node_modules/web-streams-polyfill/dist/ponyfill.es2018.cjs +3599 -0
  205. package/dist/node_modules/web-streams-polyfill/dist/ponyfill.es2018.cjs.map +1 -0
  206. package/dist/node_modules/web-streams-polyfill/dist/ponyfill.es2018.js +3599 -0
  207. package/dist/node_modules/web-streams-polyfill/dist/ponyfill.es2018.js.map +1 -0
  208. package/dist/package.json.cjs +5 -0
  209. package/dist/package.json.cjs.map +1 -0
  210. package/dist/{package.js → package.json.js} +1 -1
  211. package/dist/package.json.js.map +1 -0
  212. package/dist/plugin.cjs +6 -2
  213. package/dist/plugin.cjs.map +1 -1
  214. package/dist/plugin.js +5 -1
  215. package/dist/plugin.js.map +1 -1
  216. package/dist/types.d.ts +1 -1
  217. package/package.json +32 -15
  218. package/src/constants.ts +5 -0
  219. package/src/hooks/customType-rename.ts +3 -0
  220. package/src/hooks/customTypeLibrary-read.ts +13 -4
  221. package/src/hooks/slice-create.ts +14 -32
  222. package/src/hooks/slice-delete.ts +3 -21
  223. package/src/hooks/slice-read.ts +37 -11
  224. package/src/hooks/slice-rename.ts +44 -0
  225. package/src/hooks/slice-update.ts +7 -31
  226. package/src/hooks/sliceLibrary-read.ts +13 -23
  227. package/src/hooks/sliceSimulator-setup-read.ts +37 -76
  228. package/src/hooks/snippet-read.ts +42 -22
  229. package/src/index.ts +0 -6
  230. package/src/lib/isSharedSliceModel.ts +14 -0
  231. package/src/lib/updateSliceModelFile.ts +32 -0
  232. package/src/lib/upsertGlobalContentTypes.ts +3 -0
  233. package/src/lib/{buildSliceLibraryIndexFileContents.ts → upsertSliceLibraryIndexFile.ts} +19 -9
  234. package/src/plugin.ts +4 -0
  235. package/dist/lib/buildSliceLibraryIndexFileContents.cjs +0 -23
  236. package/dist/lib/buildSliceLibraryIndexFileContents.cjs.map +0 -1
  237. package/dist/lib/buildSliceLibraryIndexFileContents.d.ts +0 -10
  238. package/dist/lib/buildSliceLibraryIndexFileContents.js +0 -23
  239. package/dist/lib/buildSliceLibraryIndexFileContents.js.map +0 -1
  240. package/dist/package.cjs +0 -5
  241. package/dist/package.cjs.map +0 -1
  242. package/dist/package.js.map +0 -1
@@ -1,13 +1,47 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const fs = require("node:fs/promises");
4
+ const path = require("node:path");
5
+ const isSharedSliceModel = require("../lib/isSharedSliceModel.cjs");
3
6
  const readJSONFile = require("../lib/readJSONFile.cjs");
4
- const pascalCase = require("../lib/pascalCase.cjs");
7
+ function _interopNamespaceDefault(e) {
8
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
9
+ if (e) {
10
+ for (const k in e) {
11
+ if (k !== "default") {
12
+ const d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: () => e[k]
16
+ });
17
+ }
18
+ }
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+ const fs__namespace = /* @__PURE__ */ _interopNamespaceDefault(fs);
24
+ const path__namespace = /* @__PURE__ */ _interopNamespaceDefault(path);
5
25
  const sliceRead = async (data, { helpers }) => {
6
- const filePath = helpers.joinPathFromRoot(data.libraryID, pascalCase.pascalCase(data.sliceID), "model.json");
7
- const model = await readJSONFile.readJSONFile(filePath);
8
- return {
9
- model
10
- };
26
+ const libraryDir = helpers.joinPathFromRoot(data.libraryID);
27
+ await fs__namespace.mkdir(libraryDir, { recursive: true });
28
+ const childDirs = await fs__namespace.readdir(libraryDir, { withFileTypes: true });
29
+ const [model] = (await Promise.all(childDirs.map(async (childDir) => {
30
+ if (childDir.isDirectory()) {
31
+ const modelPath = path__namespace.join(libraryDir, childDir.name, "model.json");
32
+ const modelContents = await readJSONFile.readJSONFile(modelPath);
33
+ if (isSharedSliceModel.isSharedSliceModel(modelContents) && modelContents.id === data.sliceID) {
34
+ return modelContents;
35
+ }
36
+ }
37
+ }))).filter((model2) => Boolean(model2));
38
+ if (model) {
39
+ return {
40
+ model
41
+ };
42
+ } else {
43
+ throw new Error(`Did not find a Slice model with ID "${data.sliceID}" in the "${data.libraryID}" Slice Library.`);
44
+ }
11
45
  };
12
46
  exports.sliceRead = sliceRead;
13
47
  //# sourceMappingURL=slice-read.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"slice-read.cjs","sources":["../../src/hooks/slice-read.ts"],"sourcesContent":["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\tconst model = await readJSONFile<prismicT.SharedSliceModel>(filePath);\n\n\treturn {\n\t\tmodel,\n\t};\n};\n"],"names":["pascalCase","readJSONFile"],"mappings":";;;;AAQO,MAAM,YAA0C,OACtD,MACA,EAAE,cACC;AACG,QAAA,WAAW,QAAQ,iBACxB,KAAK,WACLA,WAAW,WAAA,KAAK,OAAO,GACvB,YAAY;AAGP,QAAA,QAAQ,MAAMC,0BAAwC,QAAQ;AAE7D,SAAA;AAAA,IACN;AAAA,EAAA;AAEF;;"}
1
+ {"version":3,"file":"slice-read.cjs","sources":["../../../src/hooks/slice-read.ts"],"sourcesContent":["import type { SliceReadHook } from \"@slicemachine/plugin-kit\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { isSharedSliceModel } from \"../lib/isSharedSliceModel\";\nimport { readJSONFile } from \"../lib/readJSONFile\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const sliceRead: SliceReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst libraryDir = helpers.joinPathFromRoot(data.libraryID);\n\n\t// Ensure the directory exists.\n\tawait fs.mkdir(libraryDir, { recursive: true });\n\n\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t// Find the first matching model.\n\tconst [model] = (\n\t\tawait Promise.all(\n\t\t\tchildDirs.map(async (childDir) => {\n\t\t\t\tif (childDir.isDirectory()) {\n\t\t\t\t\tconst modelPath = path.join(libraryDir, childDir.name, \"model.json\");\n\n\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tisSharedSliceModel(modelContents) &&\n\t\t\t\t\t\tmodelContents.id === data.sliceID\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn modelContents;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t).filter((model): model is NonNullable<typeof model> => Boolean(model));\n\n\tif (model) {\n\t\treturn {\n\t\t\tmodel,\n\t\t};\n\t} else {\n\t\tthrow new Error(\n\t\t\t`Did not find a Slice model with ID \"${data.sliceID}\" in the \"${data.libraryID}\" Slice Library.`,\n\t\t);\n\t}\n};\n"],"names":["fs","path","readJSONFile","isSharedSliceModel","model"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASO,MAAM,YAA0C,OACtD,MACA,EAAE,cACC;AACH,QAAM,aAAa,QAAQ,iBAAiB,KAAK,SAAS;AAG1D,QAAMA,cAAG,MAAM,YAAY,EAAE,WAAW,MAAM;AAExC,QAAA,YAAY,MAAMA,cAAG,QAAQ,YAAY,EAAE,eAAe,MAAM;AAGhE,QAAA,CAAC,KAAK,KACX,MAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AAC3B,YAAM,YAAYC,gBAAK,KAAK,YAAY,SAAS,MAAM,YAAY;AAE7D,YAAA,gBAAgB,MAAMC,0BAAa,SAAS;AAElD,UACCC,mBAAAA,mBAAmB,aAAa,KAChC,cAAc,OAAO,KAAK,SACzB;AACM,eAAA;AAAA,MACP;AAAA,IACD;AAAA,EAAA,CACD,CAAC,GAEF,OAAO,CAACC,WAA8C,QAAQA,MAAK,CAAC;AAEtE,MAAI,OAAO;AACH,WAAA;AAAA,MACN;AAAA,IAAA;AAAA,SAEK;AACN,UAAM,IAAI,MACT,uCAAuC,KAAK,oBAAoB,KAAK,2BAA2B;AAAA,EAEjG;AACF;;"}
@@ -1,11 +1,27 @@
1
+ import * as fs from "node:fs/promises";
2
+ import * as path from "node:path";
3
+ import { isSharedSliceModel } from "../lib/isSharedSliceModel.js";
1
4
  import { readJSONFile } from "../lib/readJSONFile.js";
2
- import { pascalCase } from "../lib/pascalCase.js";
3
5
  const sliceRead = async (data, { helpers }) => {
4
- const filePath = helpers.joinPathFromRoot(data.libraryID, pascalCase(data.sliceID), "model.json");
5
- const model = await readJSONFile(filePath);
6
- return {
7
- model
8
- };
6
+ const libraryDir = helpers.joinPathFromRoot(data.libraryID);
7
+ await fs.mkdir(libraryDir, { recursive: true });
8
+ const childDirs = await fs.readdir(libraryDir, { withFileTypes: true });
9
+ const [model] = (await Promise.all(childDirs.map(async (childDir) => {
10
+ if (childDir.isDirectory()) {
11
+ const modelPath = path.join(libraryDir, childDir.name, "model.json");
12
+ const modelContents = await readJSONFile(modelPath);
13
+ if (isSharedSliceModel(modelContents) && modelContents.id === data.sliceID) {
14
+ return modelContents;
15
+ }
16
+ }
17
+ }))).filter((model2) => Boolean(model2));
18
+ if (model) {
19
+ return {
20
+ model
21
+ };
22
+ } else {
23
+ throw new Error(`Did not find a Slice model with ID "${data.sliceID}" in the "${data.libraryID}" Slice Library.`);
24
+ }
9
25
  };
10
26
  export {
11
27
  sliceRead
@@ -1 +1 @@
1
- {"version":3,"file":"slice-read.js","sources":["../../src/hooks/slice-read.ts"],"sourcesContent":["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\tconst model = await readJSONFile<prismicT.SharedSliceModel>(filePath);\n\n\treturn {\n\t\tmodel,\n\t};\n};\n"],"names":[],"mappings":";;AAQO,MAAM,YAA0C,OACtD,MACA,EAAE,cACC;AACG,QAAA,WAAW,QAAQ,iBACxB,KAAK,WACL,WAAW,KAAK,OAAO,GACvB,YAAY;AAGP,QAAA,QAAQ,MAAM,aAAwC,QAAQ;AAE7D,SAAA;AAAA,IACN;AAAA,EAAA;AAEF;"}
1
+ {"version":3,"file":"slice-read.js","sources":["../../../src/hooks/slice-read.ts"],"sourcesContent":["import type { SliceReadHook } from \"@slicemachine/plugin-kit\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { isSharedSliceModel } from \"../lib/isSharedSliceModel\";\nimport { readJSONFile } from \"../lib/readJSONFile\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const sliceRead: SliceReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst libraryDir = helpers.joinPathFromRoot(data.libraryID);\n\n\t// Ensure the directory exists.\n\tawait fs.mkdir(libraryDir, { recursive: true });\n\n\tconst childDirs = await fs.readdir(libraryDir, { withFileTypes: true });\n\n\t// Find the first matching model.\n\tconst [model] = (\n\t\tawait Promise.all(\n\t\t\tchildDirs.map(async (childDir) => {\n\t\t\t\tif (childDir.isDirectory()) {\n\t\t\t\t\tconst modelPath = path.join(libraryDir, childDir.name, \"model.json\");\n\n\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tisSharedSliceModel(modelContents) &&\n\t\t\t\t\t\tmodelContents.id === data.sliceID\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn modelContents;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}),\n\t\t)\n\t).filter((model): model is NonNullable<typeof model> => Boolean(model));\n\n\tif (model) {\n\t\treturn {\n\t\t\tmodel,\n\t\t};\n\t} else {\n\t\tthrow new Error(\n\t\t\t`Did not find a Slice model with ID \"${data.sliceID}\" in the \"${data.libraryID}\" Slice Library.`,\n\t\t);\n\t}\n};\n"],"names":["model"],"mappings":";;;;AASO,MAAM,YAA0C,OACtD,MACA,EAAE,cACC;AACH,QAAM,aAAa,QAAQ,iBAAiB,KAAK,SAAS;AAG1D,QAAM,GAAG,MAAM,YAAY,EAAE,WAAW,MAAM;AAExC,QAAA,YAAY,MAAM,GAAG,QAAQ,YAAY,EAAE,eAAe,MAAM;AAGhE,QAAA,CAAC,KAAK,KACX,MAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AAC3B,YAAM,YAAY,KAAK,KAAK,YAAY,SAAS,MAAM,YAAY;AAE7D,YAAA,gBAAgB,MAAM,aAAa,SAAS;AAElD,UACC,mBAAmB,aAAa,KAChC,cAAc,OAAO,KAAK,SACzB;AACM,eAAA;AAAA,MACP;AAAA,IACD;AAAA,EAAA,CACD,CAAC,GAEF,OAAO,CAACA,WAA8C,QAAQA,MAAK,CAAC;AAEtE,MAAI,OAAO;AACH,WAAA;AAAA,MACN;AAAA,IAAA;AAAA,SAEK;AACN,UAAM,IAAI,MACT,uCAAuC,KAAK,oBAAoB,KAAK,2BAA2B;AAAA,EAEjG;AACF;"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const fse = require("fs-extra");
4
+ const pascalCase = require("../lib/pascalCase.cjs");
5
+ const rejectIfNecessary = require("../lib/rejectIfNecessary.cjs");
6
+ const updateSliceModelFile = require("../lib/updateSliceModelFile.cjs");
7
+ const upsertGlobalContentTypes = require("../lib/upsertGlobalContentTypes.cjs");
8
+ const upsertSliceLibraryIndexFile = require("../lib/upsertSliceLibraryIndexFile.cjs");
9
+ function _interopNamespaceDefault(e) {
10
+ const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
11
+ if (e) {
12
+ for (const k in e) {
13
+ if (k !== "default") {
14
+ const d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: () => e[k]
18
+ });
19
+ }
20
+ }
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
24
+ }
25
+ const fse__namespace = /* @__PURE__ */ _interopNamespaceDefault(fse);
26
+ const sliceRename = async (data, context) => {
27
+ const { model: currentModel } = await context.actions.readSliceModel({
28
+ libraryID: data.libraryID,
29
+ sliceID: data.model.id
30
+ });
31
+ await fse__namespace.move(context.helpers.joinPathFromRoot(data.libraryID, pascalCase.pascalCase(currentModel.name)), context.helpers.joinPathFromRoot(data.libraryID, pascalCase.pascalCase(data.model.name)));
32
+ await updateSliceModelFile.updateSliceModelFile({
33
+ libraryID: data.libraryID,
34
+ model: data.model,
35
+ ...context
36
+ });
37
+ rejectIfNecessary.rejectIfNecessary(await Promise.allSettled([
38
+ upsertGlobalContentTypes.upsertGlobalContentTypes(context),
39
+ upsertSliceLibraryIndexFile.upsertSliceLibraryIndexFile({ libraryID: data.libraryID, ...context })
40
+ ]));
41
+ };
42
+ exports.sliceRename = sliceRename;
43
+ //# sourceMappingURL=slice-rename.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice-rename.cjs","sources":["../../../src/hooks/slice-rename.ts"],"sourcesContent":["import type { SliceRenameHook } from \"@slicemachine/plugin-kit\";\nimport * as fse from \"fs-extra\";\n\nimport { pascalCase } from \"../lib/pascalCase\";\nimport { rejectIfNecessary } from \"../lib/rejectIfNecessary\";\nimport { updateSliceModelFile } from \"../lib/updateSliceModelFile\";\nimport { upsertGlobalContentTypes } from \"../lib/upsertGlobalContentTypes\";\nimport { upsertSliceLibraryIndexFile } from \"../lib/upsertSliceLibraryIndexFile\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const sliceRename: SliceRenameHook<PluginOptions> = async (\n\tdata,\n\tcontext,\n) => {\n\tconst { model: currentModel } = await context.actions.readSliceModel({\n\t\tlibraryID: data.libraryID,\n\t\tsliceID: data.model.id,\n\t});\n\n\tawait fse.move(\n\t\tcontext.helpers.joinPathFromRoot(\n\t\t\tdata.libraryID,\n\t\t\tpascalCase(currentModel.name),\n\t\t),\n\t\tcontext.helpers.joinPathFromRoot(\n\t\t\tdata.libraryID,\n\t\t\tpascalCase(data.model.name),\n\t\t),\n\t);\n\n\tawait updateSliceModelFile({\n\t\tlibraryID: data.libraryID,\n\t\tmodel: data.model,\n\t\t...context,\n\t});\n\n\trejectIfNecessary(\n\t\tawait Promise.allSettled([\n\t\t\tupsertGlobalContentTypes(context),\n\t\t\tupsertSliceLibraryIndexFile({ libraryID: data.libraryID, ...context }),\n\t\t]),\n\t);\n};\n"],"names":["fse","pascalCase","updateSliceModelFile","rejectIfNecessary","upsertGlobalContentTypes","upsertSliceLibraryIndexFile"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWa,MAAA,cAA8C,OAC1D,MACA,YACG;AACH,QAAM,EAAE,OAAO,aAAA,IAAiB,MAAM,QAAQ,QAAQ,eAAe;AAAA,IACpE,WAAW,KAAK;AAAA,IAChB,SAAS,KAAK,MAAM;AAAA,EAAA,CACpB;AAEK,QAAAA,eAAI,KACT,QAAQ,QAAQ,iBACf,KAAK,WACLC,sBAAW,aAAa,IAAI,CAAC,GAE9B,QAAQ,QAAQ,iBACf,KAAK,WACLA,sBAAW,KAAK,MAAM,IAAI,CAAC,CAC3B;AAGF,QAAMC,0CAAqB;AAAA,IAC1B,WAAW,KAAK;AAAA,IAChB,OAAO,KAAK;AAAA,IACZ,GAAG;AAAA,EAAA,CACH;AAGAC,sCAAA,MAAM,QAAQ,WAAW;AAAA,IACxBC,yBAAAA,yBAAyB,OAAO;AAAA,IAChCC,wDAA4B,EAAE,WAAW,KAAK,WAAW,GAAG,SAAS;AAAA,EACrE,CAAA,CAAC;AAEJ;;"}
@@ -0,0 +1,3 @@
1
+ import type { SliceRenameHook } from "@slicemachine/plugin-kit";
2
+ import type { PluginOptions } from "../types";
3
+ export declare const sliceRename: SliceRenameHook<PluginOptions>;
@@ -0,0 +1,26 @@
1
+ import * as fse from "fs-extra";
2
+ import { pascalCase } from "../lib/pascalCase.js";
3
+ import { rejectIfNecessary } from "../lib/rejectIfNecessary.js";
4
+ import { updateSliceModelFile } from "../lib/updateSliceModelFile.js";
5
+ import { upsertGlobalContentTypes } from "../lib/upsertGlobalContentTypes.js";
6
+ import { upsertSliceLibraryIndexFile } from "../lib/upsertSliceLibraryIndexFile.js";
7
+ const sliceRename = async (data, context) => {
8
+ const { model: currentModel } = await context.actions.readSliceModel({
9
+ libraryID: data.libraryID,
10
+ sliceID: data.model.id
11
+ });
12
+ await fse.move(context.helpers.joinPathFromRoot(data.libraryID, pascalCase(currentModel.name)), context.helpers.joinPathFromRoot(data.libraryID, pascalCase(data.model.name)));
13
+ await updateSliceModelFile({
14
+ libraryID: data.libraryID,
15
+ model: data.model,
16
+ ...context
17
+ });
18
+ rejectIfNecessary(await Promise.allSettled([
19
+ upsertGlobalContentTypes(context),
20
+ upsertSliceLibraryIndexFile({ libraryID: data.libraryID, ...context })
21
+ ]));
22
+ };
23
+ export {
24
+ sliceRename
25
+ };
26
+ //# sourceMappingURL=slice-rename.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slice-rename.js","sources":["../../../src/hooks/slice-rename.ts"],"sourcesContent":["import type { SliceRenameHook } from \"@slicemachine/plugin-kit\";\nimport * as fse from \"fs-extra\";\n\nimport { pascalCase } from \"../lib/pascalCase\";\nimport { rejectIfNecessary } from \"../lib/rejectIfNecessary\";\nimport { updateSliceModelFile } from \"../lib/updateSliceModelFile\";\nimport { upsertGlobalContentTypes } from \"../lib/upsertGlobalContentTypes\";\nimport { upsertSliceLibraryIndexFile } from \"../lib/upsertSliceLibraryIndexFile\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const sliceRename: SliceRenameHook<PluginOptions> = async (\n\tdata,\n\tcontext,\n) => {\n\tconst { model: currentModel } = await context.actions.readSliceModel({\n\t\tlibraryID: data.libraryID,\n\t\tsliceID: data.model.id,\n\t});\n\n\tawait fse.move(\n\t\tcontext.helpers.joinPathFromRoot(\n\t\t\tdata.libraryID,\n\t\t\tpascalCase(currentModel.name),\n\t\t),\n\t\tcontext.helpers.joinPathFromRoot(\n\t\t\tdata.libraryID,\n\t\t\tpascalCase(data.model.name),\n\t\t),\n\t);\n\n\tawait updateSliceModelFile({\n\t\tlibraryID: data.libraryID,\n\t\tmodel: data.model,\n\t\t...context,\n\t});\n\n\trejectIfNecessary(\n\t\tawait Promise.allSettled([\n\t\t\tupsertGlobalContentTypes(context),\n\t\t\tupsertSliceLibraryIndexFile({ libraryID: data.libraryID, ...context }),\n\t\t]),\n\t);\n};\n"],"names":[],"mappings":";;;;;;AAWa,MAAA,cAA8C,OAC1D,MACA,YACG;AACH,QAAM,EAAE,OAAO,aAAA,IAAiB,MAAM,QAAQ,QAAQ,eAAe;AAAA,IACpE,WAAW,KAAK;AAAA,IAChB,SAAS,KAAK,MAAM;AAAA,EAAA,CACpB;AAEK,QAAA,IAAI,KACT,QAAQ,QAAQ,iBACf,KAAK,WACL,WAAW,aAAa,IAAI,CAAC,GAE9B,QAAQ,QAAQ,iBACf,KAAK,WACL,WAAW,KAAK,MAAM,IAAI,CAAC,CAC3B;AAGF,QAAM,qBAAqB;AAAA,IAC1B,WAAW,KAAK;AAAA,IAChB,OAAO,KAAK;AAAA,IACZ,GAAG;AAAA,EAAA,CACH;AAGA,oBAAA,MAAM,QAAQ,WAAW;AAAA,IACxB,yBAAyB,OAAO;AAAA,IAChC,4BAA4B,EAAE,WAAW,KAAK,WAAW,GAAG,SAAS;AAAA,EACrE,CAAA,CAAC;AAEJ;"}
@@ -1,40 +1,13 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const fs = require("node:fs/promises");
4
- const path = require("node:path");
5
- const pascalCase = require("../lib/pascalCase.cjs");
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const updateSliceModelFile = require("../lib/updateSliceModelFile.cjs");
6
4
  const upsertGlobalContentTypes = require("../lib/upsertGlobalContentTypes.cjs");
7
- function _interopNamespace(e) {
8
- if (e && e.__esModule)
9
- return e;
10
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
11
- if (e) {
12
- for (const k in e) {
13
- if (k !== "default") {
14
- const d = Object.getOwnPropertyDescriptor(e, k);
15
- Object.defineProperty(n, k, d.get ? d : {
16
- enumerable: true,
17
- get: () => e[k]
18
- });
19
- }
20
- }
21
- }
22
- n.default = e;
23
- return Object.freeze(n);
24
- }
25
- const fs__namespace = /* @__PURE__ */ _interopNamespace(fs);
26
- const path__namespace = /* @__PURE__ */ _interopNamespace(path);
27
- const updateModelFile = async ({ dir, data, helpers, options }) => {
28
- const filePath = path__namespace.join(dir, "model.json");
29
- let contents = JSON.stringify(data.model);
30
- if (options.format) {
31
- contents = await helpers.format(contents, filePath);
32
- }
33
- await fs__namespace.writeFile(filePath, contents);
34
- };
35
5
  const sliceUpdate = async (data, context) => {
36
- const dir = context.helpers.joinPathFromRoot(data.libraryID, pascalCase.pascalCase(data.model.id));
37
- await updateModelFile({ dir, data, ...context });
6
+ await updateSliceModelFile.updateSliceModelFile({
7
+ libraryID: data.libraryID,
8
+ model: data.model,
9
+ ...context
10
+ });
38
11
  await upsertGlobalContentTypes.upsertGlobalContentTypes(context);
39
12
  };
40
13
  exports.sliceUpdate = sliceUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"slice-update.cjs","sources":["../../src/hooks/slice-update.ts"],"sourcesContent":["import type {\n\tSliceMachineContext,\n\tSliceUpdateHook,\n\tSliceUpdateHookData,\n} from \"@slicemachine/plugin-kit\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { pascalCase } from \"../lib/pascalCase\";\nimport { upsertGlobalContentTypes } from \"../lib/upsertGlobalContentTypes\";\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\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 updateModelFile({ dir, data, ...context });\n\n\tawait upsertGlobalContentTypes(context);\n};\n"],"names":["path","fs","pascalCase","upsertGlobalContentTypes"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,kBAAkB,OAAO,EAAE,KAAK,MAAM,SAAS,cAAmB;AACvE,QAAM,WAAWA,gBAAK,KAAK,KAAK,YAAY;AAE5C,MAAI,WAAW,KAAK,UAAU,KAAK,KAAK;AAExC,MAAI,QAAQ,QAAQ;AACnB,eAAW,MAAM,QAAQ,OAAO,UAAU,QAAQ;AAAA,EAClD;AAEK,QAAAC,cAAG,UAAU,UAAU,QAAQ;AACtC;AAEa,MAAA,cAA8C,OAC1D,MACA,YACG;AACG,QAAA,MAAM,QAAQ,QAAQ,iBAC3B,KAAK,WACLC,WAAAA,WAAW,KAAK,MAAM,EAAE,CAAC;AAG1B,QAAM,gBAAgB,EAAE,KAAK,MAAM,GAAG,QAAS,CAAA;AAE/C,QAAMC,yBAAAA,yBAAyB,OAAO;AACvC;;"}
1
+ {"version":3,"file":"slice-update.cjs","sources":["../../../src/hooks/slice-update.ts"],"sourcesContent":["import type { SliceUpdateHook } from \"@slicemachine/plugin-kit\";\n\nimport { updateSliceModelFile } from \"../lib/updateSliceModelFile\";\nimport { upsertGlobalContentTypes } from \"../lib/upsertGlobalContentTypes\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const sliceUpdate: SliceUpdateHook<PluginOptions> = async (\n\tdata,\n\tcontext,\n) => {\n\tawait updateSliceModelFile({\n\t\tlibraryID: data.libraryID,\n\t\tmodel: data.model,\n\t\t...context,\n\t});\n\n\tawait upsertGlobalContentTypes(context);\n};\n"],"names":["updateSliceModelFile","upsertGlobalContentTypes"],"mappings":";;;;AAOa,MAAA,cAA8C,OAC1D,MACA,YACG;AACH,QAAMA,0CAAqB;AAAA,IAC1B,WAAW,KAAK;AAAA,IAChB,OAAO,KAAK;AAAA,IACZ,GAAG;AAAA,EAAA,CACH;AAED,QAAMC,yBAAAA,yBAAyB,OAAO;AACvC;;"}
@@ -1,18 +1,11 @@
1
- import * as fs from "node:fs/promises";
2
- import * as path from "node:path";
3
- import { pascalCase } from "../lib/pascalCase.js";
1
+ import { updateSliceModelFile } from "../lib/updateSliceModelFile.js";
4
2
  import { upsertGlobalContentTypes } from "../lib/upsertGlobalContentTypes.js";
5
- const updateModelFile = async ({ dir, data, helpers, options }) => {
6
- const filePath = path.join(dir, "model.json");
7
- let contents = JSON.stringify(data.model);
8
- if (options.format) {
9
- contents = await helpers.format(contents, filePath);
10
- }
11
- await fs.writeFile(filePath, contents);
12
- };
13
3
  const sliceUpdate = async (data, context) => {
14
- const dir = context.helpers.joinPathFromRoot(data.libraryID, pascalCase(data.model.id));
15
- await updateModelFile({ dir, data, ...context });
4
+ await updateSliceModelFile({
5
+ libraryID: data.libraryID,
6
+ model: data.model,
7
+ ...context
8
+ });
16
9
  await upsertGlobalContentTypes(context);
17
10
  };
18
11
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"slice-update.js","sources":["../../src/hooks/slice-update.ts"],"sourcesContent":["import type {\n\tSliceMachineContext,\n\tSliceUpdateHook,\n\tSliceUpdateHookData,\n} from \"@slicemachine/plugin-kit\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { pascalCase } from \"../lib/pascalCase\";\nimport { upsertGlobalContentTypes } from \"../lib/upsertGlobalContentTypes\";\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\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 updateModelFile({ dir, data, ...context });\n\n\tawait upsertGlobalContentTypes(context);\n};\n"],"names":[],"mappings":";;;;AAkBA,MAAM,kBAAkB,OAAO,EAAE,KAAK,MAAM,SAAS,cAAmB;AACvE,QAAM,WAAW,KAAK,KAAK,KAAK,YAAY;AAE5C,MAAI,WAAW,KAAK,UAAU,KAAK,KAAK;AAExC,MAAI,QAAQ,QAAQ;AACnB,eAAW,MAAM,QAAQ,OAAO,UAAU,QAAQ;AAAA,EAClD;AAEK,QAAA,GAAG,UAAU,UAAU,QAAQ;AACtC;AAEa,MAAA,cAA8C,OAC1D,MACA,YACG;AACG,QAAA,MAAM,QAAQ,QAAQ,iBAC3B,KAAK,WACL,WAAW,KAAK,MAAM,EAAE,CAAC;AAG1B,QAAM,gBAAgB,EAAE,KAAK,MAAM,GAAG,QAAS,CAAA;AAE/C,QAAM,yBAAyB,OAAO;AACvC;"}
1
+ {"version":3,"file":"slice-update.js","sources":["../../../src/hooks/slice-update.ts"],"sourcesContent":["import type { SliceUpdateHook } from \"@slicemachine/plugin-kit\";\n\nimport { updateSliceModelFile } from \"../lib/updateSliceModelFile\";\nimport { upsertGlobalContentTypes } from \"../lib/upsertGlobalContentTypes\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const sliceUpdate: SliceUpdateHook<PluginOptions> = async (\n\tdata,\n\tcontext,\n) => {\n\tawait updateSliceModelFile({\n\t\tlibraryID: data.libraryID,\n\t\tmodel: data.model,\n\t\t...context,\n\t});\n\n\tawait upsertGlobalContentTypes(context);\n};\n"],"names":[],"mappings":";;AAOa,MAAA,cAA8C,OAC1D,MACA,YACG;AACH,QAAM,qBAAqB;AAAA,IAC1B,WAAW,KAAK;AAAA,IAChB,OAAO,KAAK;AAAA,IACZ,GAAG;AAAA,EAAA,CACH;AAED,QAAM,yBAAyB,OAAO;AACvC;"}
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const prismicT = require("@prismicio/types");
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
3
  const fs = require("node:fs/promises");
5
4
  const path = require("node:path");
5
+ const isSharedSliceModel = require("../lib/isSharedSliceModel.cjs");
6
6
  const readJSONFile = require("../lib/readJSONFile.cjs");
7
- function _interopNamespace(e) {
8
- if (e && e.__esModule)
9
- return e;
7
+ function _interopNamespaceDefault(e) {
10
8
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
11
9
  if (e) {
12
10
  for (const k in e) {
@@ -22,25 +20,23 @@ function _interopNamespace(e) {
22
20
  n.default = e;
23
21
  return Object.freeze(n);
24
22
  }
25
- const prismicT__namespace = /* @__PURE__ */ _interopNamespace(prismicT);
26
- const fs__namespace = /* @__PURE__ */ _interopNamespace(fs);
27
- const path__namespace = /* @__PURE__ */ _interopNamespace(path);
28
- const isSharedSliceModel = (input) => {
29
- return typeof input === "object" && input !== null && "type" in input && input.type === prismicT__namespace.CustomTypeModelSliceType.SharedSlice;
30
- };
23
+ const fs__namespace = /* @__PURE__ */ _interopNamespaceDefault(fs);
24
+ const path__namespace = /* @__PURE__ */ _interopNamespaceDefault(path);
31
25
  const sliceLibraryRead = async (data, { helpers }) => {
32
- const dirPath = helpers.joinPathFromRoot(data.libraryID);
33
- await fs__namespace.mkdir(dirPath, { recursive: true });
34
- const childDirs = await fs__namespace.readdir(dirPath);
26
+ const dir = helpers.joinPathFromRoot(data.libraryID);
27
+ await fs__namespace.mkdir(dir, { recursive: true });
28
+ const childDirs = await fs__namespace.readdir(dir, { withFileTypes: true });
35
29
  const sliceIDs = [];
36
30
  await Promise.all(childDirs.map(async (childDir) => {
37
- const modelPath = path__namespace.join(dirPath, childDir, "model.json");
38
- try {
39
- const modelContents = await readJSONFile.readJSONFile(modelPath);
40
- if (isSharedSliceModel(modelContents)) {
41
- sliceIDs.push(modelContents.id);
31
+ if (childDir.isDirectory()) {
32
+ const modelPath = path__namespace.join(dir, childDir.name, "model.json");
33
+ try {
34
+ const modelContents = await readJSONFile.readJSONFile(modelPath);
35
+ if (isSharedSliceModel.isSharedSliceModel(modelContents)) {
36
+ sliceIDs.push(modelContents.id);
37
+ }
38
+ } catch {
42
39
  }
43
- } catch {
44
40
  }
45
41
  }));
46
42
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"sliceLibrary-read.cjs","sources":["../../src/hooks/sliceLibrary-read.ts"],"sourcesContent":["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\t// Ensure the directory exists.\n\tawait fs.mkdir(dirPath, { recursive: true });\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"],"names":["prismicT","fs","path","readJSONFile"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,qBAAqB,CAE1B,UACuC;AAEtC,SAAA,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,MAAM,SAASA,oBAAS,yBAAyB;AAEnD;AAEO,MAAM,mBAAwD,OACpE,MACA,EAAE,cACC;AACH,QAAM,UAAU,QAAQ,iBAAiB,KAAK,SAAS;AAGvD,QAAMC,cAAG,MAAM,SAAS,EAAE,WAAW,MAAM;AAE3C,QAAM,YAAY,MAAMA,cAAG,QAAQ,OAAO;AAE1C,QAAM,WAAqB,CAAA;AAC3B,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAChC,UAAM,YAAYC,gBAAK,KAAK,SAAS,UAAU,YAAY;AAEvD,QAAA;AACG,YAAA,gBAAgB,MAAMC,0BAAa,SAAS;AAE9C,UAAA,mBAAmB,aAAa,GAAG;AAC7B,iBAAA,KAAK,cAAc,EAAE;AAAA,MAC9B;AAAA,IAAA,QACA;AAAA,IAED;AAAA,EACD,CAAA,CAAC;AAGI,SAAA;AAAA,IACN,IAAI,KAAK;AAAA,IACT,UAAU,SAAS,KAAM;AAAA,EAAA;AAE3B;;"}
1
+ {"version":3,"file":"sliceLibrary-read.cjs","sources":["../../../src/hooks/sliceLibrary-read.ts"],"sourcesContent":["import type { SliceLibraryReadHook } from \"@slicemachine/plugin-kit\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { isSharedSliceModel } from \"../lib/isSharedSliceModel\";\nimport { readJSONFile } from \"../lib/readJSONFile\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const sliceLibraryRead: SliceLibraryReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst dir = helpers.joinPathFromRoot(data.libraryID);\n\n\t// Ensure the directory exists.\n\tawait fs.mkdir(dir, { recursive: true });\n\n\tconst childDirs = await fs.readdir(dir, { withFileTypes: true });\n\n\tconst sliceIDs: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tif (childDir.isDirectory()) {\n\t\t\t\tconst modelPath = path.join(dir, childDir.name, \"model.json\");\n\n\t\t\t\ttry {\n\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\tif (isSharedSliceModel(modelContents)) {\n\t\t\t\t\t\tsliceIDs.push(modelContents.id);\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// noop\n\t\t\t\t}\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"],"names":["fs","path","readJSONFile","isSharedSliceModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASO,MAAM,mBAAwD,OACpE,MACA,EAAE,cACC;AACH,QAAM,MAAM,QAAQ,iBAAiB,KAAK,SAAS;AAGnD,QAAMA,cAAG,MAAM,KAAK,EAAE,WAAW,MAAM;AAEjC,QAAA,YAAY,MAAMA,cAAG,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE/D,QAAM,WAAqB,CAAA;AAC3B,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AAC3B,YAAM,YAAYC,gBAAK,KAAK,KAAK,SAAS,MAAM,YAAY;AAExD,UAAA;AACG,cAAA,gBAAgB,MAAMC,0BAAa,SAAS;AAE9C,YAAAC,mBAAAA,mBAAmB,aAAa,GAAG;AAC7B,mBAAA,KAAK,cAAc,EAAE;AAAA,QAC9B;AAAA,MAAA,QACA;AAAA,MAED;AAAA,IACD;AAAA,EACD,CAAA,CAAC;AAGI,SAAA;AAAA,IACN,IAAI,KAAK;AAAA,IACT,UAAU,SAAS,KAAM;AAAA,EAAA;AAE3B;;"}
@@ -1,23 +1,22 @@
1
- import * as prismicT from "@prismicio/types";
2
1
  import * as fs from "node:fs/promises";
3
2
  import * as path from "node:path";
3
+ import { isSharedSliceModel } from "../lib/isSharedSliceModel.js";
4
4
  import { readJSONFile } from "../lib/readJSONFile.js";
5
- const isSharedSliceModel = (input) => {
6
- return typeof input === "object" && input !== null && "type" in input && input.type === prismicT.CustomTypeModelSliceType.SharedSlice;
7
- };
8
5
  const sliceLibraryRead = async (data, { helpers }) => {
9
- const dirPath = helpers.joinPathFromRoot(data.libraryID);
10
- await fs.mkdir(dirPath, { recursive: true });
11
- const childDirs = await fs.readdir(dirPath);
6
+ const dir = helpers.joinPathFromRoot(data.libraryID);
7
+ await fs.mkdir(dir, { recursive: true });
8
+ const childDirs = await fs.readdir(dir, { withFileTypes: true });
12
9
  const sliceIDs = [];
13
10
  await Promise.all(childDirs.map(async (childDir) => {
14
- const modelPath = path.join(dirPath, childDir, "model.json");
15
- try {
16
- const modelContents = await readJSONFile(modelPath);
17
- if (isSharedSliceModel(modelContents)) {
18
- sliceIDs.push(modelContents.id);
11
+ if (childDir.isDirectory()) {
12
+ const modelPath = path.join(dir, childDir.name, "model.json");
13
+ try {
14
+ const modelContents = await readJSONFile(modelPath);
15
+ if (isSharedSliceModel(modelContents)) {
16
+ sliceIDs.push(modelContents.id);
17
+ }
18
+ } catch {
19
19
  }
20
- } catch {
21
20
  }
22
21
  }));
23
22
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"sliceLibrary-read.js","sources":["../../src/hooks/sliceLibrary-read.ts"],"sourcesContent":["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\t// Ensure the directory exists.\n\tawait fs.mkdir(dirPath, { recursive: true });\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"],"names":[],"mappings":";;;;AASA,MAAM,qBAAqB,CAE1B,UACuC;AAEtC,SAAA,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACV,MAAM,SAAS,SAAS,yBAAyB;AAEnD;AAEO,MAAM,mBAAwD,OACpE,MACA,EAAE,cACC;AACH,QAAM,UAAU,QAAQ,iBAAiB,KAAK,SAAS;AAGvD,QAAM,GAAG,MAAM,SAAS,EAAE,WAAW,MAAM;AAE3C,QAAM,YAAY,MAAM,GAAG,QAAQ,OAAO;AAE1C,QAAM,WAAqB,CAAA;AAC3B,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAChC,UAAM,YAAY,KAAK,KAAK,SAAS,UAAU,YAAY;AAEvD,QAAA;AACG,YAAA,gBAAgB,MAAM,aAAa,SAAS;AAE9C,UAAA,mBAAmB,aAAa,GAAG;AAC7B,iBAAA,KAAK,cAAc,EAAE;AAAA,MAC9B;AAAA,IAAA,QACA;AAAA,IAED;AAAA,EACD,CAAA,CAAC;AAGI,SAAA;AAAA,IACN,IAAI,KAAK;AAAA,IACT,UAAU,SAAS,KAAM;AAAA,EAAA;AAE3B;"}
1
+ {"version":3,"file":"sliceLibrary-read.js","sources":["../../../src/hooks/sliceLibrary-read.ts"],"sourcesContent":["import type { SliceLibraryReadHook } from \"@slicemachine/plugin-kit\";\nimport * as fs from \"node:fs/promises\";\nimport * as path from \"node:path\";\n\nimport { isSharedSliceModel } from \"../lib/isSharedSliceModel\";\nimport { readJSONFile } from \"../lib/readJSONFile\";\n\nimport type { PluginOptions } from \"../types\";\n\nexport const sliceLibraryRead: SliceLibraryReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst dir = helpers.joinPathFromRoot(data.libraryID);\n\n\t// Ensure the directory exists.\n\tawait fs.mkdir(dir, { recursive: true });\n\n\tconst childDirs = await fs.readdir(dir, { withFileTypes: true });\n\n\tconst sliceIDs: string[] = [];\n\tawait Promise.all(\n\t\tchildDirs.map(async (childDir) => {\n\t\t\tif (childDir.isDirectory()) {\n\t\t\t\tconst modelPath = path.join(dir, childDir.name, \"model.json\");\n\n\t\t\t\ttry {\n\t\t\t\t\tconst modelContents = await readJSONFile(modelPath);\n\n\t\t\t\t\tif (isSharedSliceModel(modelContents)) {\n\t\t\t\t\t\tsliceIDs.push(modelContents.id);\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// noop\n\t\t\t\t}\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"],"names":[],"mappings":";;;;AASO,MAAM,mBAAwD,OACpE,MACA,EAAE,cACC;AACH,QAAM,MAAM,QAAQ,iBAAiB,KAAK,SAAS;AAGnD,QAAM,GAAG,MAAM,KAAK,EAAE,WAAW,MAAM;AAEjC,QAAA,YAAY,MAAM,GAAG,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE/D,QAAM,WAAqB,CAAA;AAC3B,QAAM,QAAQ,IACb,UAAU,IAAI,OAAO,aAAY;AAC5B,QAAA,SAAS,eAAe;AAC3B,YAAM,YAAY,KAAK,KAAK,KAAK,SAAS,MAAM,YAAY;AAExD,UAAA;AACG,cAAA,gBAAgB,MAAM,aAAa,SAAS;AAE9C,YAAA,mBAAmB,aAAa,GAAG;AAC7B,mBAAA,KAAK,cAAc,EAAE;AAAA,QAC9B;AAAA,MAAA,QACA;AAAA,MAED;AAAA,IACD;AAAA,EACD,CAAA,CAAC;AAGI,SAAA;AAAA,IACN,IAAI,KAAK;AAAA,IACT,UAAU,SAAS,KAAM;AAAA,EAAA;AAE3B;"}