bingo-handlebars 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +3 -3
  2. package/lib/executeTemplatesRecursive.d.ts +3 -1
  3. package/lib/executeTemplatesRecursive.d.ts.map +1 -1
  4. package/lib/executeTemplatesRecursive.js +7 -3
  5. package/lib/executeTemplatesRecursive.js.map +1 -1
  6. package/lib/executeTemplatesRecursive.test.js +11 -3
  7. package/lib/executeTemplatesRecursive.test.js.map +1 -1
  8. package/lib/handlebars.js +1 -1
  9. package/lib/handlebars.js.map +1 -1
  10. package/lib/handlebars.test.js +1 -1
  11. package/lib/handlebars.test.js.map +1 -1
  12. package/lib/handlebarsDirectory.d.ts +2 -0
  13. package/lib/handlebarsDirectory.d.ts.map +1 -0
  14. package/lib/handlebarsDirectory.js +13 -0
  15. package/lib/handlebarsDirectory.js.map +1 -0
  16. package/lib/handlebarsDirectory.test.d.ts +2 -0
  17. package/lib/handlebarsDirectory.test.d.ts.map +1 -0
  18. package/lib/handlebarsDirectory.test.js +33 -0
  19. package/lib/handlebarsDirectory.test.js.map +1 -0
  20. package/lib/handlebarsFile.d.ts +2 -0
  21. package/lib/handlebarsFile.d.ts.map +1 -0
  22. package/lib/handlebarsFile.js +13 -0
  23. package/lib/handlebarsFile.js.map +1 -0
  24. package/lib/handlebarsFile.test.d.ts +2 -0
  25. package/lib/handlebarsFile.test.d.ts.map +1 -0
  26. package/lib/handlebarsFile.test.js +29 -0
  27. package/lib/handlebarsFile.test.js.map +1 -0
  28. package/lib/loadHandlebars.test.js +1 -1
  29. package/lib/loadHandlebars.test.js.map +1 -1
  30. package/package.json +8 -10
  31. package/lib/createHandlebars.d.ts +0 -3
  32. package/lib/createHandlebars.d.ts.map +0 -1
  33. package/lib/createHandlebars.js +0 -18
  34. package/lib/createHandlebars.js.map +0 -1
  35. package/lib/creators/assertNoDuplicateBlocks.d.ts +0 -3
  36. package/lib/creators/assertNoDuplicateBlocks.d.ts.map +0 -1
  37. package/lib/creators/assertNoDuplicateBlocks.js +0 -13
  38. package/lib/creators/assertNoDuplicateBlocks.js.map +0 -1
  39. package/lib/creators/assertNoPresetOption.d.ts +0 -4
  40. package/lib/creators/assertNoPresetOption.d.ts.map +0 -1
  41. package/lib/creators/assertNoPresetOption.js +0 -8
  42. package/lib/creators/assertNoPresetOption.js.map +0 -1
  43. package/lib/creators/createBase.d.ts +0 -4
  44. package/lib/creators/createBase.d.ts.map +0 -1
  45. package/lib/creators/createBase.js +0 -63
  46. package/lib/creators/createBase.js.map +0 -1
  47. package/lib/creators/createBase.test.d.ts +0 -2
  48. package/lib/creators/createBase.test.d.ts.map +0 -1
  49. package/lib/creators/createBase.test.js +0 -56
  50. package/lib/creators/createBase.test.js.map +0 -1
  51. package/lib/creators/utils.d.ts +0 -4
  52. package/lib/creators/utils.d.ts.map +0 -1
  53. package/lib/creators/utils.js +0 -8
  54. package/lib/creators/utils.js.map +0 -1
  55. package/lib/executeTemplate.test copy.d.ts +0 -2
  56. package/lib/executeTemplate.test copy.d.ts.map +0 -1
  57. package/lib/executeTemplate.test copy.js +0 -22
  58. package/lib/executeTemplate.test copy.js.map +0 -1
  59. package/lib/getFileFromPath.d.ts +0 -3
  60. package/lib/getFileFromPath.d.ts.map +0 -1
  61. package/lib/getFileFromPath.js +0 -17
  62. package/lib/getFileFromPath.js.map +0 -1
  63. package/lib/getSourceFromPath.d.ts +0 -3
  64. package/lib/getSourceFromPath.d.ts.map +0 -1
  65. package/lib/getSourceFromPath.js +0 -14
  66. package/lib/getSourceFromPath.js.map +0 -1
  67. package/lib/getSourceFromPath.test.d.ts +0 -2
  68. package/lib/getSourceFromPath.test.d.ts.map +0 -1
  69. package/lib/getSourceFromPath.test.js +0 -5
  70. package/lib/getSourceFromPath.test.js.map +0 -1
  71. package/lib/handlebars copy.d.ts +0 -2
  72. package/lib/handlebars copy.d.ts.map +0 -1
  73. package/lib/handlebars copy.js +0 -13
  74. package/lib/handlebars copy.js.map +0 -1
  75. package/lib/mergers/mergeAddons.d.ts +0 -3
  76. package/lib/mergers/mergeAddons.d.ts.map +0 -1
  77. package/lib/mergers/mergeAddons.js +0 -37
  78. package/lib/mergers/mergeAddons.js.map +0 -1
  79. package/lib/mergers/mergeAddons.test.d.ts +0 -2
  80. package/lib/mergers/mergeAddons.test.d.ts.map +0 -1
  81. package/lib/mergers/mergeAddons.test.js +0 -174
  82. package/lib/mergers/mergeAddons.test.js.map +0 -1
  83. package/lib/mergers/mergeAddonsIfUpdated.d.ts +0 -2
  84. package/lib/mergers/mergeAddonsIfUpdated.d.ts.map +0 -1
  85. package/lib/mergers/mergeAddonsIfUpdated.js +0 -53
  86. package/lib/mergers/mergeAddonsIfUpdated.js.map +0 -1
  87. package/lib/mergers/mergeAddonsIfUpdated.test.d.ts +0 -2
  88. package/lib/mergers/mergeAddonsIfUpdated.test.d.ts.map +0 -1
  89. package/lib/mergers/mergeAddonsIfUpdated.test.js +0 -51
  90. package/lib/mergers/mergeAddonsIfUpdated.test.js.map +0 -1
  91. package/lib/mergers/mergeBlockCreations.d.ts +0 -9
  92. package/lib/mergers/mergeBlockCreations.d.ts.map +0 -1
  93. package/lib/mergers/mergeBlockCreations.js +0 -10
  94. package/lib/mergers/mergeBlockCreations.js.map +0 -1
  95. package/lib/predicates/isBase.d.ts +0 -3
  96. package/lib/predicates/isBase.d.ts.map +0 -1
  97. package/lib/predicates/isBase.js +0 -10
  98. package/lib/predicates/isBase.js.map +0 -1
  99. package/lib/predicates/isBase.test.d.ts +0 -2
  100. package/lib/predicates/isBase.test.d.ts.map +0 -1
  101. package/lib/predicates/isBase.test.js +0 -21
  102. package/lib/predicates/isBase.test.js.map +0 -1
  103. package/lib/predicates/isPreset.d.ts +0 -3
  104. package/lib/predicates/isPreset.d.ts.map +0 -1
  105. package/lib/predicates/isPreset.js +0 -13
  106. package/lib/predicates/isPreset.js.map +0 -1
  107. package/lib/predicates/isPreset.test.d.ts +0 -2
  108. package/lib/predicates/isPreset.test.d.ts.map +0 -1
  109. package/lib/predicates/isPreset.test.js +0 -25
  110. package/lib/predicates/isPreset.test.js.map +0 -1
  111. package/lib/predicates/isPresetAbout.d.ts +0 -3
  112. package/lib/predicates/isPresetAbout.d.ts.map +0 -1
  113. package/lib/predicates/isPresetAbout.js +0 -4
  114. package/lib/predicates/isPresetAbout.js.map +0 -1
  115. package/lib/predicates/isPresetAbout.test.d.ts +0 -2
  116. package/lib/predicates/isPresetAbout.test.d.ts.map +0 -1
  117. package/lib/predicates/isPresetAbout.test.js +0 -16
  118. package/lib/predicates/isPresetAbout.test.js.map +0 -1
  119. package/lib/producers/applyBlockModifications.d.ts +0 -4
  120. package/lib/producers/applyBlockModifications.d.ts.map +0 -1
  121. package/lib/producers/applyBlockModifications.js +0 -14
  122. package/lib/producers/applyBlockModifications.js.map +0 -1
  123. package/lib/producers/applyBlockModifications.test.d.ts +0 -2
  124. package/lib/producers/applyBlockModifications.test.d.ts.map +0 -1
  125. package/lib/producers/applyBlockModifications.test.js +0 -42
  126. package/lib/producers/applyBlockModifications.test.js.map +0 -1
  127. package/lib/producers/getUpdatedBlockAddons.d.ts +0 -9
  128. package/lib/producers/getUpdatedBlockAddons.d.ts.map +0 -1
  129. package/lib/producers/getUpdatedBlockAddons.js +0 -20
  130. package/lib/producers/getUpdatedBlockAddons.js.map +0 -1
  131. package/lib/producers/produceBlock.d.ts +0 -15
  132. package/lib/producers/produceBlock.d.ts.map +0 -1
  133. package/lib/producers/produceBlock.js +0 -14
  134. package/lib/producers/produceBlock.js.map +0 -1
  135. package/lib/producers/produceBlocks.d.ts +0 -11
  136. package/lib/producers/produceBlocks.d.ts.map +0 -1
  137. package/lib/producers/produceBlocks.js +0 -46
  138. package/lib/producers/produceBlocks.js.map +0 -1
  139. package/lib/producers/produceBlocks.test.d.ts +0 -2
  140. package/lib/producers/produceBlocks.test.d.ts.map +0 -1
  141. package/lib/producers/produceBlocks.test.js +0 -145
  142. package/lib/producers/produceBlocks.test.js.map +0 -1
  143. package/lib/producers/producePreset.d.ts +0 -10
  144. package/lib/producers/producePreset.d.ts.map +0 -1
  145. package/lib/producers/producePreset.js +0 -20
  146. package/lib/producers/producePreset.js.map +0 -1
  147. package/lib/producers/producePreset.test.d.ts +0 -2
  148. package/lib/producers/producePreset.test.d.ts.map +0 -1
  149. package/lib/producers/producePreset.test.js +0 -88
  150. package/lib/producers/producePreset.test.js.map +0 -1
  151. package/lib/producers/produceStratumTemplate.d.ts +0 -15
  152. package/lib/producers/produceStratumTemplate.d.ts.map +0 -1
  153. package/lib/producers/produceStratumTemplate.js +0 -17
  154. package/lib/producers/produceStratumTemplate.js.map +0 -1
  155. package/lib/producers/produceStratumTemplate.test.d.ts +0 -2
  156. package/lib/producers/produceStratumTemplate.test.d.ts.map +0 -1
  157. package/lib/producers/produceStratumTemplate.test.js +0 -134
  158. package/lib/producers/produceStratumTemplate.test.js.map +0 -1
  159. package/lib/runners/runBlock.d.ts +0 -17
  160. package/lib/runners/runBlock.d.ts.map +0 -1
  161. package/lib/runners/runBlock.js +0 -11
  162. package/lib/runners/runBlock.js.map +0 -1
  163. package/lib/runners/runBlock.test.d.ts +0 -2
  164. package/lib/runners/runBlock.test.d.ts.map +0 -1
  165. package/lib/runners/runBlock.test.js +0 -136
  166. package/lib/runners/runBlock.test.js.map +0 -1
  167. package/lib/types/bases.d.ts +0 -25
  168. package/lib/types/bases.d.ts.map +0 -1
  169. package/lib/types/bases.js +0 -2
  170. package/lib/types/bases.js.map +0 -1
  171. package/lib/types/blocks.d.ts +0 -51
  172. package/lib/types/blocks.d.ts.map +0 -1
  173. package/lib/types/blocks.js +0 -2
  174. package/lib/types/blocks.js.map +0 -1
  175. package/lib/types/creations.d.ts +0 -10
  176. package/lib/types/creations.d.ts.map +0 -1
  177. package/lib/types/creations.js +0 -2
  178. package/lib/types/creations.js.map +0 -1
  179. package/lib/types/presets.d.ts +0 -16
  180. package/lib/types/presets.d.ts.map +0 -1
  181. package/lib/types/presets.js +0 -2
  182. package/lib/types/presets.js.map +0 -1
  183. package/lib/types/settings.d.ts +0 -9
  184. package/lib/types/settings.d.ts.map +0 -1
  185. package/lib/types/settings.js +0 -2
  186. package/lib/types/settings.js.map +0 -1
  187. package/lib/types/templates.d.ts +0 -31
  188. package/lib/types/templates.d.ts.map +0 -1
  189. package/lib/types/templates.js +0 -2
  190. package/lib/types/templates.js.map +0 -1
  191. package/lib/utils.ts/getPresetByName.d.ts +0 -4
  192. package/lib/utils.ts/getPresetByName.d.ts.map +0 -1
  193. package/lib/utils.ts/getPresetByName.js +0 -7
  194. package/lib/utils.ts/getPresetByName.js.map +0 -1
  195. package/lib/utils.ts/slugifyPresetName.d.ts +0 -2
  196. package/lib/utils.ts/slugifyPresetName.d.ts.map +0 -1
  197. package/lib/utils.ts/slugifyPresetName.js +0 -6
  198. package/lib/utils.ts/slugifyPresetName.js.map +0 -1
@@ -1,13 +0,0 @@
1
- import { isBase } from "./isBase.js";
2
- import { isPresetAbout } from "./isPresetAbout.js";
3
- export function isPreset(value) {
4
- return (!!value &&
5
- typeof value === "object" &&
6
- "about" in value &&
7
- isPresetAbout(value.about) &&
8
- "base" in value &&
9
- isBase(value.base) &&
10
- "blocks" in value &&
11
- Array.isArray(value.blocks));
12
- }
13
- //# sourceMappingURL=isPreset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPreset.js","sourceRoot":"","sources":["../../src/predicates/isPreset.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,QAAQ,CAAC,KAAc;IACtC,OAAO,CACN,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,IAAI,KAAK;QAChB,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,IAAI,KAAK;QACf,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAClB,QAAQ,IAAI,KAAK;QACjB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAC3B,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=isPreset.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPreset.test.d.ts","sourceRoot":"","sources":["../../src/predicates/isPreset.test.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- import { describe, expect, test } from "vitest";
2
- import { createBase } from "../creators/createBase.js";
3
- import { isPreset } from "./isPreset.js";
4
- const base = createBase({
5
- options: {},
6
- });
7
- const preset = base.createPreset({
8
- about: { name: "Test Preset" },
9
- blocks: [],
10
- });
11
- describe("isPreset", () => {
12
- test.each([
13
- [null, false],
14
- [undefined, false],
15
- [123, false],
16
- ["abc", false],
17
- [{}, false],
18
- [{ about: {}, base: {}, blocks: [] }, false],
19
- [preset, true],
20
- ])("%j", (input, expected) => {
21
- const actual = isPreset(input);
22
- expect(actual).toBe(expected);
23
- });
24
- });
25
- //# sourceMappingURL=isPreset.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPreset.test.js","sourceRoot":"","sources":["../../src/predicates/isPreset.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE,EAAE;CACX,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;IAC9B,MAAM,EAAE,EAAE;CACV,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACzB,IAAI,CAAC,IAAI,CAAC;QACT,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,SAAS,EAAE,KAAK,CAAC;QAClB,CAAC,GAAG,EAAE,KAAK,CAAC;QACZ,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,EAAE,EAAE,KAAK,CAAC;QACX,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC;QAC5C,CAAC,MAAM,EAAE,IAAI,CAAC;KACd,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE/B,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import { PresetAbout } from "../types/presets.js";
2
- export declare function isPresetAbout(value: unknown): value is PresetAbout;
3
- //# sourceMappingURL=isPresetAbout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPresetAbout.d.ts","sourceRoot":"","sources":["../../src/predicates/isPresetAbout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE"}
@@ -1,4 +0,0 @@
1
- export function isPresetAbout(value) {
2
- return !!value && typeof value === "object" && "name" in value;
3
- }
4
- //# sourceMappingURL=isPresetAbout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPresetAbout.js","sourceRoot":"","sources":["../../src/predicates/isPresetAbout.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,KAAc;IAC3C,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC;AAChE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=isPresetAbout.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPresetAbout.test.d.ts","sourceRoot":"","sources":["../../src/predicates/isPresetAbout.test.ts"],"names":[],"mappings":""}
@@ -1,16 +0,0 @@
1
- import { describe, expect, test } from "vitest";
2
- import { isPresetAbout } from "./isPresetAbout.js";
3
- describe("isPresetAbout", () => {
4
- test.each([
5
- [null, false],
6
- [undefined, false],
7
- [123, false],
8
- ["abc", false],
9
- [{}, false],
10
- [{ name: "" }, true],
11
- ])("%j", (input, expected) => {
12
- const actual = isPresetAbout(input);
13
- expect(actual).toBe(expected);
14
- });
15
- });
16
- //# sourceMappingURL=isPresetAbout.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPresetAbout.test.js","sourceRoot":"","sources":["../../src/predicates/isPresetAbout.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC9B,IAAI,CAAC,IAAI,CAAC;QACT,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,SAAS,EAAE,KAAK,CAAC;QAClB,CAAC,GAAG,EAAE,KAAK,CAAC;QACZ,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,EAAE,EAAE,KAAK,CAAC;QACX,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;KACpB,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Block } from "../types/blocks.js";
2
- import { BlockModifications } from "../types/settings.js";
3
- export declare function applyBlockModifications<Options extends object>(initial: Block<object | undefined, Options>[], { add, exclude }?: BlockModifications<Options>): Block<object | undefined, Options>[];
4
- //# sourceMappingURL=applyBlockModifications.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"applyBlockModifications.d.ts","sourceRoot":"","sources":["../../src/producers/applyBlockModifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,MAAM,EAC7D,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,EAC7C,EAAE,GAAQ,EAAE,OAAY,EAAE,GAAE,kBAAkB,CAAC,OAAO,CAAM,wCAiB5D"}
@@ -1,14 +0,0 @@
1
- export function applyBlockModifications(initial, { add = [], exclude = [] } = {}) {
2
- if (!add.length && !exclude.length) {
3
- return initial;
4
- }
5
- const blocks = new Set(initial);
6
- for (const added of add) {
7
- blocks.add(added);
8
- }
9
- for (const excluded of exclude) {
10
- blocks.delete(excluded);
11
- }
12
- return Array.from(blocks);
13
- }
14
- //# sourceMappingURL=applyBlockModifications.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"applyBlockModifications.js","sourceRoot":"","sources":["../../src/producers/applyBlockModifications.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CACtC,OAA6C,EAC7C,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,KAAkC,EAAE;IAE5D,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAEhC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=applyBlockModifications.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"applyBlockModifications.test.d.ts","sourceRoot":"","sources":["../../src/producers/applyBlockModifications.test.ts"],"names":[],"mappings":""}
@@ -1,42 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest";
2
- import { z } from "zod";
3
- import { createBase } from "../creators/createBase.js";
4
- import { applyBlockModifications } from "./applyBlockModifications.js";
5
- const base = createBase({
6
- options: {
7
- value: z.string(),
8
- },
9
- });
10
- const blockA = base.createBlock({
11
- about: { name: "A" },
12
- produce: vi.fn(),
13
- });
14
- const blockB = base.createBlock({
15
- about: { name: "B" },
16
- produce: vi.fn(),
17
- });
18
- const blockC = base.createBlock({
19
- about: { name: "C" },
20
- produce: vi.fn(),
21
- });
22
- describe("applyBlockModifications", () => {
23
- it("returns the initial blocks when no modifications are provided", () => {
24
- const initial = [blockA, blockB];
25
- const actual = applyBlockModifications(initial);
26
- expect(actual).toBe(initial);
27
- });
28
- it("returns the initial blocks when modifications are empty", () => {
29
- const initial = [blockA, blockB];
30
- const actual = applyBlockModifications(initial, { add: [], exclude: [] });
31
- expect(actual).toBe(initial);
32
- });
33
- it("applies modifications when they exist", () => {
34
- const initial = [blockA, blockB];
35
- const actual = applyBlockModifications(initial, {
36
- add: [blockC],
37
- exclude: [blockB],
38
- });
39
- expect(actual).toEqual([blockA, blockC]);
40
- });
41
- });
42
- //# sourceMappingURL=applyBlockModifications.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"applyBlockModifications.test.js","sourceRoot":"","sources":["../../src/producers/applyBlockModifications.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB;CACD,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACpB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;CAChB,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACxE,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QAClE,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1E,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAChD,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjC,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE;YAC/C,GAAG,EAAE,CAAC,MAAM,CAAC;YACb,OAAO,EAAE,CAAC,MAAM,CAAC;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- import { Creation } from "bingo";
2
- import { Block, BlockWithAddons } from "../types/blocks.js";
3
- import { CreatedBlockAddons } from "../types/creations.js";
4
- export interface BlockProduction<Addons extends object | undefined> {
5
- addons: Addons;
6
- creation?: Partial<Creation>;
7
- }
8
- export declare function getUpdatedBlockAddons<Options extends object>(allowedBlocks: Set<Block<object | undefined, Options>>, blockProductions: Map<Block<object | undefined, Options>, BlockProduction<object>>, newBlockAddons?: CreatedBlockAddons<object, Options>[]): [BlockWithAddons<object, Options>, object][];
9
- //# sourceMappingURL=getUpdatedBlockAddons.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getUpdatedBlockAddons.d.ts","sourceRoot":"","sources":["../../src/producers/getUpdatedBlockAddons.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,MAAM,WAAW,eAAe,CAAC,MAAM,SAAS,MAAM,GAAG,SAAS;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC7B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,SAAS,MAAM,EAC3D,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,EACtD,gBAAgB,EAAE,GAAG,CACpB,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAClC,eAAe,CAAC,MAAM,CAAC,CACvB,EACD,cAAc,GAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAO,gDAyB1D"}
@@ -1,20 +0,0 @@
1
- import { mergeAddonsIfUpdated } from "../mergers/mergeAddonsIfUpdated.js";
2
- export function getUpdatedBlockAddons(allowedBlocks, blockProductions, newBlockAddons = []) {
3
- const updated = [];
4
- for (const newAddons of newBlockAddons) {
5
- if (!allowedBlocks.has(newAddons.block)) {
6
- continue;
7
- }
8
- const existingProduction = blockProductions.get(newAddons.block);
9
- if (!existingProduction) {
10
- updated.push([newAddons.block, newAddons.addons]);
11
- continue;
12
- }
13
- const updatedAddons = mergeAddonsIfUpdated(existingProduction.addons, newAddons.addons);
14
- if (updatedAddons) {
15
- updated.push([newAddons.block, updatedAddons]);
16
- }
17
- }
18
- return updated;
19
- }
20
- //# sourceMappingURL=getUpdatedBlockAddons.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getUpdatedBlockAddons.js","sourceRoot":"","sources":["../../src/producers/getUpdatedBlockAddons.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAS1E,MAAM,UAAU,qBAAqB,CACpC,aAAsD,EACtD,gBAGC,EACD,iBAAwD,EAAE;IAE1D,MAAM,OAAO,GAAiD,EAAE,CAAC;IAEjE,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,SAAS;QACV,CAAC;QAED,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjE,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,SAAS;QACV,CAAC;QAED,MAAM,aAAa,GAAG,oBAAoB,CACzC,kBAAkB,CAAC,MAAM,EACzB,SAAS,CAAC,MAAM,CAChB,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -1,15 +0,0 @@
1
- import { ProductionMode } from "bingo";
2
- import { BlockWithAddons, BlockWithoutAddons } from "../types/blocks.js";
3
- import { BlockCreation } from "../types/creations.js";
4
- export type ProduceBlockSettings<Addons extends object | undefined, Options extends object> = Addons extends object ? ProduceBlockSettingsWithAddons<Addons, Options> : ProduceBlockSettingsWithoutAddons<Options>;
5
- export interface ProduceBlockSettingsWithAddons<Addons extends object, Options extends object> extends ProduceBlockSettingsWithoutAddons<Options> {
6
- addons?: Addons;
7
- }
8
- export interface ProduceBlockSettingsWithoutAddons<Options extends object> {
9
- mode?: ProductionMode;
10
- offline?: boolean;
11
- options: Options;
12
- }
13
- export declare function produceBlock<Addons extends object, Options extends object>(block: BlockWithAddons<Addons, Options>, settings: ProduceBlockSettingsWithAddons<Addons, Options>): Partial<BlockCreation<Options>>;
14
- export declare function produceBlock<Options extends object>(block: BlockWithoutAddons<Options>, settings: ProduceBlockSettingsWithoutAddons<Options>): Partial<BlockCreation<Options>>;
15
- //# sourceMappingURL=produceBlock.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"produceBlock.d.ts","sourceRoot":"","sources":["../../src/producers/produceBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,MAAM,oBAAoB,CAC/B,MAAM,SAAS,MAAM,GAAG,SAAS,EACjC,OAAO,SAAS,MAAM,IACnB,MAAM,SAAS,MAAM,GACtB,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,iCAAiC,CAAC,OAAO,CAAC,CAAC;AAE9C,MAAM,WAAW,8BAA8B,CAC9C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CACrB,SAAQ,iCAAiC,CAAC,OAAO,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC,CAAC,OAAO,SAAS,MAAM;IACxE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EACzE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,EAAE,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,GACvD,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AACnC,wBAAgB,YAAY,CAAC,OAAO,SAAS,MAAM,EAClD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAClC,QAAQ,EAAE,iCAAiC,CAAC,OAAO,CAAC,GAClD,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -1,14 +0,0 @@
1
- import { mergeBlockCreations } from "../mergers/mergeBlockCreations.js";
2
- export function produceBlock(block, settings) {
3
- let creation = block.produce(settings);
4
- const augment = settings.mode && block[settings.mode];
5
- if (augment) {
6
- const augmented = augment({
7
- addons: {},
8
- ...settings,
9
- });
10
- creation = mergeBlockCreations(creation, augmented);
11
- }
12
- return creation;
13
- }
14
- //# sourceMappingURL=produceBlock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"produceBlock.js","sourceRoot":"","sources":["../../src/producers/produceBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAgCxE,MAAM,UAAU,YAAY,CAC3B,KAAqE,EACrE,QAA+C;IAE/C,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,OAAO,CAAC;YACzB,MAAM,EAAE,EAAY;YACpB,GAAG,QAAQ;SACX,CAAC,CAAC;QACH,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC"}
@@ -1,11 +0,0 @@
1
- import { ProductionMode } from "bingo";
2
- import { Block } from "../types/blocks.js";
3
- import { CreatedBlockAddons } from "../types/creations.js";
4
- export interface ProduceBlocksSettings<Options extends object> {
5
- addons?: CreatedBlockAddons<object, Options>[];
6
- mode?: ProductionMode;
7
- offline?: boolean;
8
- options: Options;
9
- }
10
- export declare function produceBlocks<Options extends object>(blocks: Block<object | undefined, Options>[], { addons, mode, offline, options }: ProduceBlocksSettings<Options>): {};
11
- //# sourceMappingURL=produceBlocks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"produceBlocks.d.ts","sourceRoot":"","sources":["../../src/producers/produceBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAE,KAAK,EAAmB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAO3D,MAAM,WAAW,qBAAqB,CAAC,OAAO,SAAS,MAAM;IAC5D,MAAM,CAAC,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC/C,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAS,MAAM,EACnD,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,EAC5C,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAiElE"}
@@ -1,46 +0,0 @@
1
- import { mergeBlockCreations } from "../mergers/mergeBlockCreations.js";
2
- import { getUpdatedBlockAddons, } from "./getUpdatedBlockAddons.js";
3
- import { produceBlock } from "./produceBlock.js";
4
- export function produceBlocks(blocks, { addons, mode, offline, options }) {
5
- // From Templating Engines > Stratum > Details > Execution:
6
- // This engine continuously re-runs Blocks until no new Addons are provided.
7
- const blockProductions = new Map(addons?.map((addon) => [addon.block, { addons: addon.addons }]));
8
- // 1. Create a queue of Blocks to be run, starting with all defined in the Preset
9
- const allowedBlocks = new Set(blocks);
10
- const blocksToBeRun = new Set(blocks);
11
- // 2. For each Block in the queue:
12
- while (blocksToBeRun.size) {
13
- for (const currentBlock of blocksToBeRun) {
14
- blocksToBeRun.delete(currentBlock);
15
- // 2.1. Get the Creation from the Block, passing any current known Addons
16
- // 2.2. If a mode is specified, additionally generate the appropriate Block Creations
17
- const previousProduction = blockProductions.get(currentBlock);
18
- const previousAddons = previousProduction?.addons ?? {};
19
- const blockCreation = produceBlock(currentBlock, {
20
- addons: previousAddons,
21
- mode,
22
- offline,
23
- options,
24
- });
25
- // 2.3. Store that Block's Creation
26
- blockProductions.set(currentBlock, {
27
- addons: previousAddons,
28
- creation: blockCreation,
29
- });
30
- // 2.4. If the Block specified new addons for any defined Blocks:
31
- const updatedBlockAddons = getUpdatedBlockAddons(allowedBlocks, blockProductions, blockCreation.addons);
32
- // 2.4.1: Add those Blocks to the queue to re-run
33
- for (const [updatedBlock, updatedAddons] of updatedBlockAddons) {
34
- const addedBlockPreviousProduction = blockProductions.get(updatedBlock);
35
- blockProductions.set(updatedBlock, {
36
- ...addedBlockPreviousProduction,
37
- addons: updatedAddons,
38
- });
39
- blocksToBeRun.add(updatedBlock);
40
- }
41
- }
42
- }
43
- // 3. Merge all Block Creations together
44
- return Array.from(blockProductions.values()).reduce((created, next) => mergeBlockCreations(created, next.creation ?? {}), {});
45
- }
46
- //# sourceMappingURL=produceBlocks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"produceBlocks.js","sourceRoot":"","sources":["../../src/producers/produceBlocks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAEN,qBAAqB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AASjD,MAAM,UAAU,aAAa,CAC5B,MAA4C,EAC5C,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAkC;IAElE,2DAA2D;IAC3D,4EAA4E;IAE5E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAG9B,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnE,iFAAiF;IACjF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtC,kCAAkC;IAClC,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;QAC3B,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YAC1C,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAEnC,yEAAyE;YACzE,qFAAqF;YACrF,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC9D,MAAM,cAAc,GAAG,kBAAkB,EAAE,MAAM,IAAI,EAAE,CAAC;YACxD,MAAM,aAAa,GAAG,YAAY,CACjC,YAAgD,EAChD;gBACC,MAAM,EAAE,cAAc;gBACtB,IAAI;gBACJ,OAAO;gBACP,OAAO;aACP,CACD,CAAC;YAEF,mCAAmC;YACnC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE;gBAClC,MAAM,EAAE,cAAc;gBACtB,QAAQ,EAAE,aAAa;aACvB,CAAC,CAAC;YAEH,iEAAiE;YACjE,MAAM,kBAAkB,GAAG,qBAAqB,CAC/C,aAAa,EACb,gBAAgB,EAChB,aAAa,CAAC,MAAM,CACpB,CAAC;YAEF,iDAAiD;YACjD,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,kBAAkB,EAAE,CAAC;gBAChE,MAAM,4BAA4B,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBACxE,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE;oBAClC,GAAG,4BAA4B;oBAC/B,MAAM,EAAE,aAAa;iBACrB,CAAC,CAAC;gBACH,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;IACF,CAAC;IAED,wCAAwC;IACxC,OACC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CACpC,CAAC,MAAM,CACP,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,EACpE,EAAE,CACF,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=produceBlocks.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"produceBlocks.test.d.ts","sourceRoot":"","sources":["../../src/producers/produceBlocks.test.ts"],"names":[],"mappings":""}
@@ -1,145 +0,0 @@
1
- import { describe, expect, it, test, vi } from "vitest";
2
- import { z } from "zod";
3
- import { createBase } from "../creators/createBase.js";
4
- import { produceBlocks } from "./produceBlocks.js";
5
- const base = createBase({
6
- options: {
7
- value: z.string(),
8
- },
9
- });
10
- describe("produceBlocks", () => {
11
- test("files from one block", () => {
12
- const block = base.createBlock({
13
- about: {
14
- name: "Example Block",
15
- },
16
- produce({ options }) {
17
- return {
18
- files: { "README.md": options.value },
19
- };
20
- },
21
- });
22
- const result = produceBlocks([block], {
23
- options: { value: "Hello, world!" },
24
- });
25
- expect(result).toEqual({
26
- files: {
27
- "README.md": "Hello, world!",
28
- },
29
- });
30
- });
31
- it("adds addons when provided", () => {
32
- const block = base.createBlock({
33
- about: {
34
- name: "Example Block",
35
- },
36
- addons: {
37
- extra: z.string().optional(),
38
- },
39
- produce({ addons, options }) {
40
- return {
41
- files: { "README.md": [options.value, addons.extra].join("\n") },
42
- };
43
- },
44
- });
45
- const result = produceBlocks([block], {
46
- addons: [block({ extra: "line" })],
47
- options: { value: "Hello, world!" },
48
- });
49
- expect(result).toEqual({
50
- files: {
51
- "README.md": "Hello, world!\nline",
52
- },
53
- });
54
- });
55
- it("doesn't include addons to blocks that aren't defined", () => {
56
- const blockKnown = base.createBlock({
57
- about: {
58
- name: "Known Block",
59
- },
60
- produce({ options }) {
61
- return {
62
- addons: [blockUnknown({ extra: "line" })],
63
- files: { "README.md": options.value },
64
- };
65
- },
66
- });
67
- const blockUnknown = base.createBlock({
68
- about: {
69
- name: "Unknown Block",
70
- },
71
- addons: {
72
- extra: z.string().optional(),
73
- },
74
- produce: vi.fn(),
75
- });
76
- const result = produceBlocks([blockKnown], {
77
- options: { value: "Hello, world!" },
78
- });
79
- expect(result).toEqual({
80
- addons: [blockUnknown({ extra: "line" })],
81
- files: {
82
- "README.md": "Hello, world!",
83
- },
84
- });
85
- });
86
- describe("modes", () => {
87
- const block = base.createBlock({
88
- about: {
89
- name: "Example Block",
90
- },
91
- produce({ options }) {
92
- return {
93
- files: { "README.md": options.value },
94
- };
95
- },
96
- setup({ options }) {
97
- return {
98
- files: {
99
- "data.txt": options.value,
100
- },
101
- };
102
- },
103
- transition() {
104
- return {
105
- scripts: ["rm old.txt"],
106
- };
107
- },
108
- });
109
- it("does not augment creations with a Block's setup() or transition() when mode is undefined", () => {
110
- const result = produceBlocks([block], {
111
- options: { value: "Hello, world!" },
112
- });
113
- expect(result).toEqual({
114
- files: {
115
- "README.md": "Hello, world!",
116
- },
117
- });
118
- });
119
- it("augments creations with a Block's setup() when mode is 'setup'", () => {
120
- const result = produceBlocks([block], {
121
- mode: "setup",
122
- options: { value: "Hello, world!" },
123
- });
124
- expect(result).toEqual({
125
- files: {
126
- "data.txt": "Hello, world!",
127
- "README.md": "Hello, world!",
128
- },
129
- });
130
- });
131
- it("augments creations with a Block's transition() when mode is 'transition'", () => {
132
- const result = produceBlocks([block], {
133
- mode: "transition",
134
- options: { value: "Hello, world!" },
135
- });
136
- expect(result).toEqual({
137
- files: {
138
- "README.md": "Hello, world!",
139
- },
140
- scripts: ["rm old.txt"],
141
- });
142
- });
143
- });
144
- });
145
- //# sourceMappingURL=produceBlocks.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"produceBlocks.test.js","sourceRoot":"","sources":["../../src/producers/produceBlocks.test.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { AnyShape, InferredObject, ProduceTemplateSettings } from "bingo";
2
- import { BlockCreation, CreatedBlockAddons } from "../types/creations.js";
3
- import { Preset } from "../types/presets.js";
4
- import { BlockModifications } from "../types/settings.js";
5
- export interface ProducePresetSettings<OptionsShape extends AnyShape> extends ProduceTemplateSettings<OptionsShape> {
6
- addons?: CreatedBlockAddons<any, InferredObject<OptionsShape>>[];
7
- blocks?: BlockModifications<InferredObject<OptionsShape>>;
8
- }
9
- export declare function producePreset<OptionsShape extends AnyShape>(preset: Preset<OptionsShape>, { addons, blocks: blockModifications, mode, offline, options, }: ProducePresetSettings<OptionsShape>): BlockCreation<InferredObject<OptionsShape>>;
10
- //# sourceMappingURL=producePreset.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"producePreset.d.ts","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,MAAM,WAAW,qBAAqB,CAAC,YAAY,SAAS,QAAQ,CACnE,SAAQ,uBAAuB,CAAC,YAAY,CAAC;IAG7C,MAAM,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;CAC1D;AAED,wBAAgB,aAAa,CAAC,YAAY,SAAS,QAAQ,EAC1D,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,EAC5B,EACC,MAAM,EACN,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EACJ,OAAO,EACP,OAAO,GACP,EAAE,qBAAqB,CAAC,YAAY,CAAC,GACpC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAkB7C"}
@@ -1,20 +0,0 @@
1
- import { applyBlockModifications } from "./applyBlockModifications.js";
2
- import { produceBlocks } from "./produceBlocks.js";
3
- export function producePreset(preset, { addons, blocks: blockModifications, mode, offline, options, }) {
4
- const blocks = applyBlockModifications(preset.blocks, blockModifications);
5
- const creation = produceBlocks(blocks, {
6
- addons,
7
- mode,
8
- offline,
9
- options,
10
- });
11
- return {
12
- addons: [],
13
- files: {},
14
- requests: [],
15
- scripts: [],
16
- suggestions: [],
17
- ...creation,
18
- };
19
- }
20
- //# sourceMappingURL=producePreset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"producePreset.js","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUnD,MAAM,UAAU,aAAa,CAC5B,MAA4B,EAC5B,EACC,MAAM,EACN,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EACJ,OAAO,EACP,OAAO,GAC8B;IAEtC,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE;QACtC,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;KACP,CAAC,CAAC;IAEH,OAAO;QACN,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;QACf,GAAG,QAAQ;KACX,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=producePreset.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"producePreset.test.d.ts","sourceRoot":"","sources":["../../src/producers/producePreset.test.ts"],"names":[],"mappings":""}