bingo-handlebars 0.1.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 (215) hide show
  1. package/LICENSE.md +20 -0
  2. package/README.md +13 -0
  3. package/lib/createHandlebars.d.ts +3 -0
  4. package/lib/createHandlebars.d.ts.map +1 -0
  5. package/lib/createHandlebars.js +18 -0
  6. package/lib/createHandlebars.js.map +1 -0
  7. package/lib/creators/assertNoDuplicateBlocks.d.ts +3 -0
  8. package/lib/creators/assertNoDuplicateBlocks.d.ts.map +1 -0
  9. package/lib/creators/assertNoDuplicateBlocks.js +13 -0
  10. package/lib/creators/assertNoDuplicateBlocks.js.map +1 -0
  11. package/lib/creators/assertNoPresetOption.d.ts +4 -0
  12. package/lib/creators/assertNoPresetOption.d.ts.map +1 -0
  13. package/lib/creators/assertNoPresetOption.js +8 -0
  14. package/lib/creators/assertNoPresetOption.js.map +1 -0
  15. package/lib/creators/createBase.d.ts +4 -0
  16. package/lib/creators/createBase.d.ts.map +1 -0
  17. package/lib/creators/createBase.js +63 -0
  18. package/lib/creators/createBase.js.map +1 -0
  19. package/lib/creators/createBase.test.d.ts +2 -0
  20. package/lib/creators/createBase.test.d.ts.map +1 -0
  21. package/lib/creators/createBase.test.js +56 -0
  22. package/lib/creators/createBase.test.js.map +1 -0
  23. package/lib/creators/utils.d.ts +4 -0
  24. package/lib/creators/utils.d.ts.map +1 -0
  25. package/lib/creators/utils.js +8 -0
  26. package/lib/creators/utils.js.map +1 -0
  27. package/lib/executeTemplate.d.ts +2 -0
  28. package/lib/executeTemplate.d.ts.map +1 -0
  29. package/lib/executeTemplate.js +5 -0
  30. package/lib/executeTemplate.js.map +1 -0
  31. package/lib/executeTemplate.test copy.d.ts +2 -0
  32. package/lib/executeTemplate.test copy.d.ts.map +1 -0
  33. package/lib/executeTemplate.test copy.js +22 -0
  34. package/lib/executeTemplate.test copy.js.map +1 -0
  35. package/lib/executeTemplate.test.d.ts +2 -0
  36. package/lib/executeTemplate.test.d.ts.map +1 -0
  37. package/lib/executeTemplate.test.js +11 -0
  38. package/lib/executeTemplate.test.js.map +1 -0
  39. package/lib/executeTemplatesRecursive.d.ts +3 -0
  40. package/lib/executeTemplatesRecursive.d.ts.map +1 -0
  41. package/lib/executeTemplatesRecursive.js +16 -0
  42. package/lib/executeTemplatesRecursive.js.map +1 -0
  43. package/lib/executeTemplatesRecursive.test.d.ts +2 -0
  44. package/lib/executeTemplatesRecursive.test.d.ts.map +1 -0
  45. package/lib/executeTemplatesRecursive.test.js +32 -0
  46. package/lib/executeTemplatesRecursive.test.js.map +1 -0
  47. package/lib/getFileFromPath.d.ts +3 -0
  48. package/lib/getFileFromPath.d.ts.map +1 -0
  49. package/lib/getFileFromPath.js +17 -0
  50. package/lib/getFileFromPath.js.map +1 -0
  51. package/lib/getSourceFromDirectory.d.ts +3 -0
  52. package/lib/getSourceFromDirectory.d.ts.map +1 -0
  53. package/lib/getSourceFromDirectory.js +18 -0
  54. package/lib/getSourceFromDirectory.js.map +1 -0
  55. package/lib/getSourceFromDirectory.test.d.ts +2 -0
  56. package/lib/getSourceFromDirectory.test.d.ts.map +1 -0
  57. package/lib/getSourceFromDirectory.test.js +35 -0
  58. package/lib/getSourceFromDirectory.test.js.map +1 -0
  59. package/lib/getSourceFromPath.d.ts +3 -0
  60. package/lib/getSourceFromPath.d.ts.map +1 -0
  61. package/lib/getSourceFromPath.js +14 -0
  62. package/lib/getSourceFromPath.js.map +1 -0
  63. package/lib/getSourceFromPath.test.d.ts +2 -0
  64. package/lib/getSourceFromPath.test.d.ts.map +1 -0
  65. package/lib/getSourceFromPath.test.js +5 -0
  66. package/lib/getSourceFromPath.test.js.map +1 -0
  67. package/lib/handlebars copy.d.ts +2 -0
  68. package/lib/handlebars copy.d.ts.map +1 -0
  69. package/lib/handlebars copy.js +13 -0
  70. package/lib/handlebars copy.js.map +1 -0
  71. package/lib/handlebars.d.ts +2 -0
  72. package/lib/handlebars.d.ts.map +1 -0
  73. package/lib/handlebars.js +10 -0
  74. package/lib/handlebars.js.map +1 -0
  75. package/lib/handlebars.test.d.ts +2 -0
  76. package/lib/handlebars.test.d.ts.map +1 -0
  77. package/lib/handlebars.test.js +24 -0
  78. package/lib/handlebars.test.js.map +1 -0
  79. package/lib/index.d.ts +3 -0
  80. package/lib/index.d.ts.map +1 -0
  81. package/lib/index.js +3 -0
  82. package/lib/index.js.map +1 -0
  83. package/lib/loadHandlebars.d.ts +2 -0
  84. package/lib/loadHandlebars.d.ts.map +1 -0
  85. package/lib/loadHandlebars.js +20 -0
  86. package/lib/loadHandlebars.js.map +1 -0
  87. package/lib/loadHandlebars.test.d.ts +2 -0
  88. package/lib/loadHandlebars.test.d.ts.map +1 -0
  89. package/lib/loadHandlebars.test.js +30 -0
  90. package/lib/loadHandlebars.test.js.map +1 -0
  91. package/lib/mergers/mergeAddons.d.ts +3 -0
  92. package/lib/mergers/mergeAddons.d.ts.map +1 -0
  93. package/lib/mergers/mergeAddons.js +37 -0
  94. package/lib/mergers/mergeAddons.js.map +1 -0
  95. package/lib/mergers/mergeAddons.test.d.ts +2 -0
  96. package/lib/mergers/mergeAddons.test.d.ts.map +1 -0
  97. package/lib/mergers/mergeAddons.test.js +174 -0
  98. package/lib/mergers/mergeAddons.test.js.map +1 -0
  99. package/lib/mergers/mergeAddonsIfUpdated.d.ts +2 -0
  100. package/lib/mergers/mergeAddonsIfUpdated.d.ts.map +1 -0
  101. package/lib/mergers/mergeAddonsIfUpdated.js +53 -0
  102. package/lib/mergers/mergeAddonsIfUpdated.js.map +1 -0
  103. package/lib/mergers/mergeAddonsIfUpdated.test.d.ts +2 -0
  104. package/lib/mergers/mergeAddonsIfUpdated.test.d.ts.map +1 -0
  105. package/lib/mergers/mergeAddonsIfUpdated.test.js +51 -0
  106. package/lib/mergers/mergeAddonsIfUpdated.test.js.map +1 -0
  107. package/lib/mergers/mergeBlockCreations.d.ts +9 -0
  108. package/lib/mergers/mergeBlockCreations.d.ts.map +1 -0
  109. package/lib/mergers/mergeBlockCreations.js +10 -0
  110. package/lib/mergers/mergeBlockCreations.js.map +1 -0
  111. package/lib/predicates/isBase.d.ts +3 -0
  112. package/lib/predicates/isBase.d.ts.map +1 -0
  113. package/lib/predicates/isBase.js +10 -0
  114. package/lib/predicates/isBase.js.map +1 -0
  115. package/lib/predicates/isBase.test.d.ts +2 -0
  116. package/lib/predicates/isBase.test.d.ts.map +1 -0
  117. package/lib/predicates/isBase.test.js +21 -0
  118. package/lib/predicates/isBase.test.js.map +1 -0
  119. package/lib/predicates/isPreset.d.ts +3 -0
  120. package/lib/predicates/isPreset.d.ts.map +1 -0
  121. package/lib/predicates/isPreset.js +13 -0
  122. package/lib/predicates/isPreset.js.map +1 -0
  123. package/lib/predicates/isPreset.test.d.ts +2 -0
  124. package/lib/predicates/isPreset.test.d.ts.map +1 -0
  125. package/lib/predicates/isPreset.test.js +25 -0
  126. package/lib/predicates/isPreset.test.js.map +1 -0
  127. package/lib/predicates/isPresetAbout.d.ts +3 -0
  128. package/lib/predicates/isPresetAbout.d.ts.map +1 -0
  129. package/lib/predicates/isPresetAbout.js +4 -0
  130. package/lib/predicates/isPresetAbout.js.map +1 -0
  131. package/lib/predicates/isPresetAbout.test.d.ts +2 -0
  132. package/lib/predicates/isPresetAbout.test.d.ts.map +1 -0
  133. package/lib/predicates/isPresetAbout.test.js +16 -0
  134. package/lib/predicates/isPresetAbout.test.js.map +1 -0
  135. package/lib/producers/applyBlockModifications.d.ts +4 -0
  136. package/lib/producers/applyBlockModifications.d.ts.map +1 -0
  137. package/lib/producers/applyBlockModifications.js +14 -0
  138. package/lib/producers/applyBlockModifications.js.map +1 -0
  139. package/lib/producers/applyBlockModifications.test.d.ts +2 -0
  140. package/lib/producers/applyBlockModifications.test.d.ts.map +1 -0
  141. package/lib/producers/applyBlockModifications.test.js +42 -0
  142. package/lib/producers/applyBlockModifications.test.js.map +1 -0
  143. package/lib/producers/getUpdatedBlockAddons.d.ts +9 -0
  144. package/lib/producers/getUpdatedBlockAddons.d.ts.map +1 -0
  145. package/lib/producers/getUpdatedBlockAddons.js +20 -0
  146. package/lib/producers/getUpdatedBlockAddons.js.map +1 -0
  147. package/lib/producers/produceBlock.d.ts +15 -0
  148. package/lib/producers/produceBlock.d.ts.map +1 -0
  149. package/lib/producers/produceBlock.js +14 -0
  150. package/lib/producers/produceBlock.js.map +1 -0
  151. package/lib/producers/produceBlocks.d.ts +11 -0
  152. package/lib/producers/produceBlocks.d.ts.map +1 -0
  153. package/lib/producers/produceBlocks.js +46 -0
  154. package/lib/producers/produceBlocks.js.map +1 -0
  155. package/lib/producers/produceBlocks.test.d.ts +2 -0
  156. package/lib/producers/produceBlocks.test.d.ts.map +1 -0
  157. package/lib/producers/produceBlocks.test.js +145 -0
  158. package/lib/producers/produceBlocks.test.js.map +1 -0
  159. package/lib/producers/producePreset.d.ts +10 -0
  160. package/lib/producers/producePreset.d.ts.map +1 -0
  161. package/lib/producers/producePreset.js +20 -0
  162. package/lib/producers/producePreset.js.map +1 -0
  163. package/lib/producers/producePreset.test.d.ts +2 -0
  164. package/lib/producers/producePreset.test.d.ts.map +1 -0
  165. package/lib/producers/producePreset.test.js +88 -0
  166. package/lib/producers/producePreset.test.js.map +1 -0
  167. package/lib/producers/produceStratumTemplate.d.ts +15 -0
  168. package/lib/producers/produceStratumTemplate.d.ts.map +1 -0
  169. package/lib/producers/produceStratumTemplate.js +17 -0
  170. package/lib/producers/produceStratumTemplate.js.map +1 -0
  171. package/lib/producers/produceStratumTemplate.test.d.ts +2 -0
  172. package/lib/producers/produceStratumTemplate.test.d.ts.map +1 -0
  173. package/lib/producers/produceStratumTemplate.test.js +134 -0
  174. package/lib/producers/produceStratumTemplate.test.js.map +1 -0
  175. package/lib/runners/runBlock.d.ts +17 -0
  176. package/lib/runners/runBlock.d.ts.map +1 -0
  177. package/lib/runners/runBlock.js +11 -0
  178. package/lib/runners/runBlock.js.map +1 -0
  179. package/lib/runners/runBlock.test.d.ts +2 -0
  180. package/lib/runners/runBlock.test.d.ts.map +1 -0
  181. package/lib/runners/runBlock.test.js +136 -0
  182. package/lib/runners/runBlock.test.js.map +1 -0
  183. package/lib/types/bases.d.ts +25 -0
  184. package/lib/types/bases.d.ts.map +1 -0
  185. package/lib/types/bases.js +2 -0
  186. package/lib/types/bases.js.map +1 -0
  187. package/lib/types/blocks.d.ts +51 -0
  188. package/lib/types/blocks.d.ts.map +1 -0
  189. package/lib/types/blocks.js +2 -0
  190. package/lib/types/blocks.js.map +1 -0
  191. package/lib/types/creations.d.ts +10 -0
  192. package/lib/types/creations.d.ts.map +1 -0
  193. package/lib/types/creations.js +2 -0
  194. package/lib/types/creations.js.map +1 -0
  195. package/lib/types/presets.d.ts +16 -0
  196. package/lib/types/presets.d.ts.map +1 -0
  197. package/lib/types/presets.js +2 -0
  198. package/lib/types/presets.js.map +1 -0
  199. package/lib/types/settings.d.ts +9 -0
  200. package/lib/types/settings.d.ts.map +1 -0
  201. package/lib/types/settings.js +2 -0
  202. package/lib/types/settings.js.map +1 -0
  203. package/lib/types/templates.d.ts +31 -0
  204. package/lib/types/templates.d.ts.map +1 -0
  205. package/lib/types/templates.js +2 -0
  206. package/lib/types/templates.js.map +1 -0
  207. package/lib/utils.ts/getPresetByName.d.ts +4 -0
  208. package/lib/utils.ts/getPresetByName.d.ts.map +1 -0
  209. package/lib/utils.ts/getPresetByName.js +7 -0
  210. package/lib/utils.ts/getPresetByName.js.map +1 -0
  211. package/lib/utils.ts/slugifyPresetName.d.ts +2 -0
  212. package/lib/utils.ts/slugifyPresetName.d.ts.map +1 -0
  213. package/lib/utils.ts/slugifyPresetName.js +6 -0
  214. package/lib/utils.ts/slugifyPresetName.js.map +1 -0
  215. package/package.json +38 -0
@@ -0,0 +1,88 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { z } from "zod";
3
+ import { createBase } from "../creators/createBase.js";
4
+ import { producePreset } from "./producePreset.js";
5
+ const emptyCreation = {
6
+ addons: [],
7
+ files: {},
8
+ requests: [],
9
+ scripts: [],
10
+ suggestions: [],
11
+ };
12
+ const system = {
13
+ fetchers: {
14
+ fetch: vi.fn(),
15
+ octokit: {},
16
+ },
17
+ fs: {
18
+ readDirectory: vi.fn(),
19
+ readFile: vi.fn(),
20
+ writeDirectory: vi.fn(),
21
+ writeFile: vi.fn(),
22
+ },
23
+ runner: vi.fn(),
24
+ };
25
+ describe("producePreset", () => {
26
+ it("passes options to the preset when provided via options", () => {
27
+ const baseWithOption = createBase({
28
+ options: {
29
+ value: z.string(),
30
+ },
31
+ });
32
+ const blockUsingOption = baseWithOption.createBlock({
33
+ produce({ options }) {
34
+ return {
35
+ files: {
36
+ "value.txt": options.value,
37
+ },
38
+ };
39
+ },
40
+ });
41
+ const preset = baseWithOption.createPreset({
42
+ about: { name: "Test" },
43
+ blocks: [blockUsingOption],
44
+ });
45
+ const actual = producePreset(preset, {
46
+ ...system,
47
+ options: {
48
+ value: "abc",
49
+ },
50
+ });
51
+ expect(actual).toEqual({
52
+ ...emptyCreation,
53
+ files: {
54
+ "value.txt": "abc",
55
+ },
56
+ });
57
+ });
58
+ it("passes offline to the preset when provided", () => {
59
+ const baseWithoutOption = createBase({
60
+ options: {},
61
+ });
62
+ const blockWithoutOption = baseWithoutOption.createBlock({
63
+ produce({ offline }) {
64
+ return {
65
+ files: {
66
+ "offline.txt": String(offline),
67
+ },
68
+ };
69
+ },
70
+ });
71
+ const preset = baseWithoutOption.createPreset({
72
+ about: { name: "Test" },
73
+ blocks: [blockWithoutOption],
74
+ });
75
+ const actual = producePreset(preset, {
76
+ ...system,
77
+ offline: true,
78
+ options: {},
79
+ });
80
+ expect(actual).toEqual({
81
+ ...emptyCreation,
82
+ files: {
83
+ "offline.txt": "true",
84
+ },
85
+ });
86
+ });
87
+ });
88
+ //# sourceMappingURL=producePreset.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"producePreset.test.js","sourceRoot":"","sources":["../../src/producers/producePreset.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { AnyShape, InferredObject, ProductionMode } from "bingo";
2
+ import { CreatedBlockAddons } from "../types/creations.js";
3
+ import { BlockModifications } from "../types/settings.js";
4
+ import { StratumTemplate } from "../types/templates.js";
5
+ export interface ProduceStratumTemplateSettings<OptionsShape extends AnyShape> {
6
+ addons?: CreatedBlockAddons<any, InferredObject<OptionsShape>>[];
7
+ blocks?: BlockModifications<InferredObject<OptionsShape>>;
8
+ mode?: ProductionMode;
9
+ offline?: boolean;
10
+ options: InferredObject<OptionsShape> & {
11
+ preset: string;
12
+ };
13
+ }
14
+ export declare function produceStratumTemplate<OptionsShape extends AnyShape = AnyShape>(template: StratumTemplate<OptionsShape>, { addons, blocks: blockModifications, mode, offline, options, }: ProduceStratumTemplateSettings<OptionsShape>): {};
15
+ //# sourceMappingURL=produceStratumTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"produceStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,MAAM,WAAW,8BAA8B,CAAC,YAAY,SAAS,QAAQ;IAG5E,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;IAC1D,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D;AAED,wBAAgB,sBAAsB,CACrC,YAAY,SAAS,QAAQ,GAAG,QAAQ,EAExC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,EACvC,EACC,MAAM,EACN,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EACJ,OAAO,EACP,OAAO,GACP,EAAE,8BAA8B,CAAC,YAAY,CAAC,MAe/C"}
@@ -0,0 +1,17 @@
1
+ import { getPresetByName } from "../utils.ts/getPresetByName.js";
2
+ import { applyBlockModifications } from "./applyBlockModifications.js";
3
+ import { produceBlocks } from "./produceBlocks.js";
4
+ export function produceStratumTemplate(template, { addons, blocks: blockModifications, mode, offline, options, }) {
5
+ const preset = getPresetByName(template.presets, options.preset);
6
+ if (preset instanceof Error) {
7
+ throw preset;
8
+ }
9
+ const blocks = applyBlockModifications(preset.blocks, blockModifications);
10
+ return produceBlocks(blocks, {
11
+ addons,
12
+ mode,
13
+ offline,
14
+ options,
15
+ });
16
+ }
17
+ //# sourceMappingURL=produceStratumTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"produceStratumTemplate.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAYnD,MAAM,UAAU,sBAAsB,CAGrC,QAAuC,EACvC,EACC,MAAM,EACN,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EACJ,OAAO,EACP,OAAO,GACuC;IAE/C,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,YAAY,KAAK,EAAE,CAAC;QAC7B,MAAM,MAAM,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAE1E,OAAO,aAAa,CAAC,MAAM,EAAE;QAC5B,MAAM;QACN,IAAI;QACJ,OAAO;QACP,OAAO;KACP,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=produceStratumTemplate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"produceStratumTemplate.test.d.ts","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,134 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { z } from "zod";
3
+ import { createBase } from "../creators/createBase.js";
4
+ import { produceStratumTemplate } from "./produceStratumTemplate.js";
5
+ describe("produceStratumTemplate", () => {
6
+ it("passes addons to the preset when provided", () => {
7
+ const baseWithOption = createBase({
8
+ options: {
9
+ value: z.string(),
10
+ },
11
+ });
12
+ const blockUsingOption = baseWithOption.createBlock({
13
+ produce({ options }) {
14
+ return {
15
+ files: {
16
+ "value.txt": options.value,
17
+ },
18
+ };
19
+ },
20
+ });
21
+ const presetUsingOption = baseWithOption.createPreset({
22
+ about: { name: "Test" },
23
+ blocks: [blockUsingOption],
24
+ });
25
+ const template = baseWithOption.createStratumTemplate({
26
+ presets: [presetUsingOption],
27
+ });
28
+ const actual = produceStratumTemplate(template, {
29
+ options: {
30
+ preset: "test",
31
+ value: "abc",
32
+ },
33
+ });
34
+ expect(actual).toEqual({
35
+ files: {
36
+ "value.txt": "abc",
37
+ },
38
+ });
39
+ });
40
+ it("passes options to the preset when provided", () => {
41
+ const baseWithOption = createBase({
42
+ options: {
43
+ value: z.string(),
44
+ },
45
+ });
46
+ const blockUsingOption = baseWithOption.createBlock({
47
+ produce({ options }) {
48
+ return {
49
+ files: {
50
+ "value.txt": options.value,
51
+ },
52
+ };
53
+ },
54
+ });
55
+ const presetUsingOption = baseWithOption.createPreset({
56
+ about: { name: "Test" },
57
+ blocks: [blockUsingOption],
58
+ });
59
+ const template = baseWithOption.createStratumTemplate({
60
+ presets: [presetUsingOption],
61
+ });
62
+ const actual = produceStratumTemplate(template, {
63
+ options: {
64
+ preset: "test",
65
+ value: "abc",
66
+ },
67
+ });
68
+ expect(actual).toEqual({
69
+ files: {
70
+ "value.txt": "abc",
71
+ },
72
+ });
73
+ });
74
+ it("passes offline to the preset when provided", () => {
75
+ const baseWithoutOption = createBase({
76
+ options: {},
77
+ });
78
+ const blockWithoutOption = baseWithoutOption.createBlock({
79
+ produce({ offline }) {
80
+ return {
81
+ files: {
82
+ "offline.txt": String(offline),
83
+ },
84
+ };
85
+ },
86
+ });
87
+ const presetWithoutOption = baseWithoutOption.createPreset({
88
+ about: { name: "Test Without Option" },
89
+ blocks: [blockWithoutOption],
90
+ });
91
+ const template = baseWithoutOption.createStratumTemplate({
92
+ presets: [presetWithoutOption],
93
+ });
94
+ const actual = produceStratumTemplate(template, {
95
+ offline: true,
96
+ options: {
97
+ preset: "test-without-option",
98
+ },
99
+ });
100
+ expect(actual).toEqual({
101
+ files: {
102
+ "offline.txt": "true",
103
+ },
104
+ });
105
+ });
106
+ it("throws an error when a preset string cannot be matched to its name", () => {
107
+ const base = createBase({
108
+ options: {},
109
+ });
110
+ const blockUsingOption = base.createBlock({
111
+ produce() {
112
+ return {
113
+ files: {
114
+ "value.txt": "abc",
115
+ },
116
+ };
117
+ },
118
+ });
119
+ const presetUsingOption = base.createPreset({
120
+ about: { name: "Test" },
121
+ blocks: [blockUsingOption],
122
+ });
123
+ const template = base.createStratumTemplate({
124
+ presets: [presetUsingOption],
125
+ });
126
+ const act = () => produceStratumTemplate(template, {
127
+ options: {
128
+ preset: "other",
129
+ },
130
+ });
131
+ expect(act).toThrow("other is not one of: test");
132
+ });
133
+ });
134
+ //# sourceMappingURL=produceStratumTemplate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"produceStratumTemplate.test.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { BingoSystem } from "bingo-systems";
2
+ import { BlockWithAddons, BlockWithoutAddons } from "../types/blocks.js";
3
+ export type RunBlockSettings<Addons extends object | undefined, Options extends object> = Addons extends object ? RunBlockSettingsWithOptionalAddons<Addons, Options> : RunBlockSettingsWithoutAddons<Options>;
4
+ export interface RunBlockSettingsWithOptionalAddons<Addons extends object, Options extends object> extends RunBlockSettingsWithoutAddons<Options> {
5
+ addons?: Addons;
6
+ }
7
+ export interface RunBlockSettingsWithoutAddons<Options extends object> extends Partial<BingoSystem> {
8
+ directory?: string;
9
+ offline?: boolean;
10
+ options: Options;
11
+ }
12
+ export interface RunBlockSettingsWithRequiredAddons<Addons extends object, Options extends object> extends RunBlockSettingsWithoutAddons<Options> {
13
+ addons: Addons;
14
+ }
15
+ export declare function runBlock<Addons extends object, Options extends object>(block: BlockWithAddons<Addons, Options>, settings: RunBlockSettingsWithOptionalAddons<Addons, Options>): Promise<void>;
16
+ export declare function runBlock<Options extends object>(block: BlockWithoutAddons<Options>, settings: RunBlockSettingsWithoutAddons<Options>): Promise<void>;
17
+ //# sourceMappingURL=runBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runBlock.d.ts","sourceRoot":"","sources":["../../src/runners/runBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEzE,MAAM,MAAM,gBAAgB,CAC3B,MAAM,SAAS,MAAM,GAAG,SAAS,EACjC,OAAO,SAAS,MAAM,IACnB,MAAM,SAAS,MAAM,GACtB,kCAAkC,CAAC,MAAM,EAAE,OAAO,CAAC,GACnD,6BAA6B,CAAC,OAAO,CAAC,CAAC;AAE1C,MAAM,WAAW,kCAAkC,CAClD,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CACrB,SAAQ,6BAA6B,CAAC,OAAO,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,6BAA6B,CAAC,OAAO,SAAS,MAAM,CACpE,SAAQ,OAAO,CAAC,WAAW,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kCAAkC,CAClD,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CACrB,SAAQ,6BAA6B,CAAC,OAAO,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,QAAQ,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,SAAS,MAAM,EAC3E,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,QAAQ,EAAE,kCAAkC,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;AACjB,wBAAsB,QAAQ,CAAC,OAAO,SAAS,MAAM,EACpD,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAClC,QAAQ,EAAE,6BAA6B,CAAC,OAAO,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { createSystemContextWithAuth, runCreation } from "bingo";
2
+ import { produceBlock } from "../producers/produceBlock.js";
3
+ export async function runBlock(block, settings) {
4
+ const { directory = ".", offline } = settings;
5
+ const system = await createSystemContextWithAuth({ directory, ...settings });
6
+ const creation = produceBlock(
7
+ // TODO: Why are these assertions necessary?
8
+ block, settings);
9
+ await runCreation(creation, { offline, system });
10
+ }
11
+ //# sourceMappingURL=runBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runBlock.js","sourceRoot":"","sources":["../../src/runners/runBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAuC5D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,KAAqE,EACrE,QAA2C;IAE3C,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IAE7E,MAAM,QAAQ,GAAG,YAAY;IAC5B,4CAA4C;IAC5C,KAAyC,EACzC,QAA+D,CAC/D,CAAC;IAEF,MAAM,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runBlock.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runBlock.test.d.ts","sourceRoot":"","sources":["../../src/runners/runBlock.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,136 @@
1
+ import { describe, expect, test, vi } from "vitest";
2
+ import { z } from "zod";
3
+ import { createBase } from "../creators/createBase.js";
4
+ import { runBlock } from "./runBlock.js";
5
+ const base = createBase({
6
+ options: {
7
+ title: z.string(),
8
+ },
9
+ });
10
+ function createSystem() {
11
+ return {
12
+ fetchers: {
13
+ fetch: noop("fetch"),
14
+ octokit: {},
15
+ },
16
+ fs: {
17
+ readDirectory: noop("readDirectory"),
18
+ readFile: noop("readFile"),
19
+ writeDirectory: vi.fn(),
20
+ writeFile: vi.fn(),
21
+ },
22
+ runner: noop("runner"),
23
+ };
24
+ }
25
+ function noop(label) {
26
+ return vi.fn().mockReturnValue(`Not implemented: ${label}`);
27
+ }
28
+ describe("runBlock", () => {
29
+ test("Block without Addons", async () => {
30
+ const block = base.createBlock({
31
+ produce({ options }) {
32
+ return {
33
+ files: {
34
+ "README.md": `# ${options.title}`,
35
+ },
36
+ };
37
+ },
38
+ });
39
+ const system = createSystem();
40
+ await runBlock(block, {
41
+ options: { title: "abc" },
42
+ ...system,
43
+ });
44
+ expect({
45
+ writeDirectory: system.fs.writeDirectory.mock.calls,
46
+ writeFile: system.fs.writeFile.mock.calls,
47
+ }).toMatchInlineSnapshot(`
48
+ {
49
+ "writeDirectory": [
50
+ [
51
+ ".",
52
+ ],
53
+ ],
54
+ "writeFile": [
55
+ [
56
+ "README.md",
57
+ "# abc
58
+ ",
59
+ ],
60
+ ],
61
+ }
62
+ `);
63
+ });
64
+ describe("Block with Addons", () => {
65
+ const block = base.createBlock({
66
+ addons: {
67
+ descriptions: z.array(z.string()).default([]),
68
+ },
69
+ produce({ addons, options }) {
70
+ return {
71
+ files: {
72
+ "README.md": `# ${options.title}\n${addons.descriptions.join("\n")}`,
73
+ },
74
+ };
75
+ },
76
+ });
77
+ test("default Addon value", async () => {
78
+ const system = createSystem();
79
+ await runBlock(block, {
80
+ options: { title: "abc" },
81
+ ...system,
82
+ });
83
+ expect({
84
+ writeDirectory: system.fs.writeDirectory.mock.calls,
85
+ writeFile: system.fs.writeFile.mock.calls,
86
+ }).toMatchInlineSnapshot(`
87
+ {
88
+ "writeDirectory": [
89
+ [
90
+ ".",
91
+ ],
92
+ ],
93
+ "writeFile": [
94
+ [
95
+ "README.md",
96
+ "# abc
97
+ ",
98
+ ],
99
+ ],
100
+ }
101
+ `);
102
+ });
103
+ test("provided Addon value", async () => {
104
+ const system = createSystem();
105
+ await runBlock(block, {
106
+ addons: {
107
+ descriptions: ["def"],
108
+ },
109
+ options: { title: "abc" },
110
+ ...system,
111
+ });
112
+ expect({
113
+ writeDirectory: system.fs.writeDirectory.mock.calls,
114
+ writeFile: system.fs.writeFile.mock.calls,
115
+ }).toMatchInlineSnapshot(`
116
+ {
117
+ "writeDirectory": [
118
+ [
119
+ ".",
120
+ ],
121
+ ],
122
+ "writeFile": [
123
+ [
124
+ "README.md",
125
+ "# abc
126
+
127
+ def
128
+ ",
129
+ ],
130
+ ],
131
+ }
132
+ `);
133
+ });
134
+ });
135
+ });
136
+ //# sourceMappingURL=runBlock.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runBlock.test.js","sourceRoot":"","sources":["../../src/runners/runBlock.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { AnyOptionalShape, AnyShape, InferredObject, TemplatePrepare } from "bingo";
2
+ import { BlockDefinitionWithAddons, BlockDefinitionWithoutAddons, BlockWithAddons, BlockWithoutAddons } from "./blocks.js";
3
+ import { Preset, PresetDefinition } from "./presets.js";
4
+ import { StratumTemplate, StratumTemplateDefinition } from "./templates.js";
5
+ export interface Base<OptionsShape extends AnyShape = AnyShape> {
6
+ createBlock: CreateBlock<InferredObject<OptionsShape>>;
7
+ createPreset: CreatePreset<OptionsShape>;
8
+ createStratumTemplate: CreateStratumTemplate<OptionsShape>;
9
+ options: OptionsShape;
10
+ prepare?: TemplatePrepare<InferredObject<OptionsShape>>;
11
+ }
12
+ export interface BaseDefinition<OptionsShape extends AnyShape = AnyShape> {
13
+ options: OptionsShape;
14
+ prepare?: TemplatePrepare<InferredObject<OptionsShape>>;
15
+ }
16
+ export type BaseOptionsFor<TypeOfBase> = TypeOfBase extends {
17
+ options: infer OptionsShape extends AnyShape;
18
+ } ? InferredObject<OptionsShape> : never;
19
+ export interface CreateBlock<Options extends object> {
20
+ <AddonsShape extends AnyOptionalShape>(blockDefinition: BlockDefinitionWithAddons<AddonsShape, Options>): BlockWithAddons<InferredObject<AddonsShape>, Options>;
21
+ (blockDefinition: BlockDefinitionWithoutAddons<Options>): BlockWithoutAddons<Options>;
22
+ }
23
+ export type CreatePreset<OptionsShape extends AnyShape> = (presetDefinition: PresetDefinition<InferredObject<OptionsShape>>) => Preset<OptionsShape>;
24
+ export type CreateStratumTemplate<OptionsShape extends AnyShape> = (templateDefinition: StratumTemplateDefinition<OptionsShape>) => StratumTemplate<OptionsShape>;
25
+ //# sourceMappingURL=bases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bases.d.ts","sourceRoot":"","sources":["../../src/types/bases.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,eAAe,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EACN,yBAAyB,EACzB,4BAA4B,EAC5B,eAAe,EACf,kBAAkB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,WAAW,IAAI,CAAC,YAAY,SAAS,QAAQ,GAAG,QAAQ;IAC7D,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACzC,qBAAqB,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC3D,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,cAAc,CAAC,YAAY,SAAS,QAAQ,GAAG,QAAQ;IACvE,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;CACxD;AAED,MAAM,MAAM,cAAc,CAAC,UAAU,IAAI,UAAU,SAAS;IAC3D,OAAO,EAAE,MAAM,YAAY,SAAS,QAAQ,CAAC;CAC7C,GACE,cAAc,CAAC,YAAY,CAAC,GAC5B,KAAK,CAAC;AAET,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,MAAM;IAClD,CAAC,WAAW,SAAS,gBAAgB,EACpC,eAAe,EAAE,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,GAC9D,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;IAEzD,CACC,eAAe,EAAE,4BAA4B,CAAC,OAAO,CAAC,GACpD,kBAAkB,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,YAAY,CAAC,YAAY,SAAS,QAAQ,IAAI,CACzD,gBAAgB,EAAE,gBAAgB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,KAC5D,MAAM,CAAC,YAAY,CAAC,CAAC;AAE1B,MAAM,MAAM,qBAAqB,CAAC,YAAY,SAAS,QAAQ,IAAI,CAClE,kBAAkB,EAAE,yBAAyB,CAAC,YAAY,CAAC,KACvD,eAAe,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bases.js","sourceRoot":"","sources":["../../src/types/bases.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ import { AboutBase, AnyOptionalShape, InferredObject } from "bingo";
2
+ import { BlockCreation, CreatedBlockAddons } from "./creations.js";
3
+ export type Block<Addons extends object | undefined = object | undefined, Options extends object = object> = Addons extends object ? BlockWithAddons<Addons, Options> : BlockWithoutAddons<Options>;
4
+ export type BlockAugmentWithAddons<Addons extends object, Options extends object> = (context: BlockContextWithAddons<Addons, Options>) => Partial<BlockCreation<Options>>;
5
+ export type BlockAugmentWithoutAddons<Options extends object> = (context: BlockContextWithoutAddons<Options>) => Partial<BlockCreation<Options>>;
6
+ export interface BlockBase {
7
+ about?: AboutBase;
8
+ }
9
+ export interface BlockContextWithAddons<Addons extends object, Options extends object> extends BlockContextWithoutAddons<Options> {
10
+ addons: Addons;
11
+ options: Options;
12
+ }
13
+ export interface BlockContextWithOptionalAddons<Addons extends object, Options extends object> extends BlockContextWithoutAddons<Options> {
14
+ addons?: Addons;
15
+ options: Options;
16
+ }
17
+ export interface BlockContextWithoutAddons<Options extends object> {
18
+ offline?: boolean;
19
+ options: Options;
20
+ }
21
+ export type BlockDefinition<AddonsShape extends AnyOptionalShape | undefined, Options extends object> = AddonsShape extends object ? BlockDefinitionWithAddons<AddonsShape, Options> : BlockDefinitionWithoutAddons<Options>;
22
+ export interface BlockDefinitionBase {
23
+ about?: AboutBase;
24
+ }
25
+ export type BlockDefinitionProducerWithAddons<Addons extends object, Options extends object> = (context: BlockContextWithAddons<Addons, Options>) => Partial<BlockCreation<Options>>;
26
+ export type BlockDefinitionProducerWithoutAddons<Options extends object> = (context: BlockContextWithoutAddons<Options>) => Partial<BlockCreation<Options>>;
27
+ export interface BlockDefinitionWithAddons<AddonsShape extends AnyOptionalShape, Options extends object> extends BlockDefinitionBase {
28
+ addons: AddonsShape;
29
+ produce: BlockDefinitionProducerWithAddons<InferredObject<AddonsShape>, Options>;
30
+ setup?: BlockAugmentWithAddons<InferredObject<AddonsShape>, Options>;
31
+ transition?: BlockAugmentWithAddons<InferredObject<AddonsShape>, Options>;
32
+ }
33
+ export interface BlockDefinitionWithoutAddons<Options extends object> extends BlockDefinitionBase {
34
+ produce: BlockDefinitionProducerWithoutAddons<Options>;
35
+ setup?: BlockAugmentWithoutAddons<Options>;
36
+ transition?: BlockAugmentWithoutAddons<Options>;
37
+ }
38
+ export type BlockProducerWithAddons<Addons extends object, Options extends object> = (context: BlockContextWithOptionalAddons<Addons, Options>) => Partial<BlockCreation<Options>>;
39
+ export type BlockProducerWithoutAddons<Options extends object> = (context: BlockContextWithoutAddons<Options>) => Partial<BlockCreation<Options>>;
40
+ export interface BlockWithAddons<Addons extends object, Options extends object> extends BlockBase {
41
+ produce: BlockProducerWithAddons<Addons, Options>;
42
+ setup?: BlockAugmentWithAddons<Addons, Options>;
43
+ transition?: BlockAugmentWithAddons<Addons, Options>;
44
+ (addons: Partial<Addons>): CreatedBlockAddons<Addons, Options>;
45
+ }
46
+ export interface BlockWithoutAddons<Options extends object> extends BlockBase {
47
+ produce: BlockProducerWithoutAddons<Options>;
48
+ setup?: BlockAugmentWithoutAddons<Options>;
49
+ transition?: BlockAugmentWithoutAddons<Options>;
50
+ }
51
+ //# sourceMappingURL=blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../src/types/blocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=blocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/types/blocks.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import { Creation } from "bingo";
2
+ import { BlockWithAddons } from "./blocks.js";
3
+ export interface BlockCreation<Options extends object> extends Creation {
4
+ addons: CreatedBlockAddons<any, Options>[];
5
+ }
6
+ export interface CreatedBlockAddons<Addons extends object = object, Options extends object = object> {
7
+ addons: Addons;
8
+ block: BlockWithAddons<Addons, Options>;
9
+ }
10
+ //# sourceMappingURL=creations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creations.d.ts","sourceRoot":"","sources":["../../src/types/creations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,aAAa,CAAC,OAAO,SAAS,MAAM,CAAE,SAAQ,QAAQ;IAItE,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;CAC3C;AACD,MAAM,WAAW,kBAAkB,CAClC,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,SAAS,MAAM,GAAG,MAAM;IAE/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=creations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creations.js","sourceRoot":"","sources":["../../src/types/creations.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { AboutBase, AnyShape, InferredObject } from "bingo";
2
+ import { Base } from "./bases.js";
3
+ import { Block, BlockWithAddons, BlockWithoutAddons } from "./blocks.js";
4
+ export interface Preset<OptionsShape extends AnyShape = AnyShape> {
5
+ about: PresetAbout;
6
+ base: Base<OptionsShape>;
7
+ blocks: Block<object | undefined, InferredObject<OptionsShape>>[];
8
+ }
9
+ export interface PresetAbout extends AboutBase {
10
+ name: string;
11
+ }
12
+ export interface PresetDefinition<Options extends object = object> {
13
+ about: PresetAbout;
14
+ blocks: (BlockWithAddons<any, Options> | BlockWithoutAddons<Options>)[];
15
+ }
16
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/types/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,WAAW,MAAM,CAAC,YAAY,SAAS,QAAQ,GAAG,QAAQ;IAC/D,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;CAClE;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC7C,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAChE,KAAK,EAAE,WAAW,CAAC;IAInB,MAAM,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;CACxE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/types/presets.ts"],"names":[],"mappings":""}