bingo-stratum 0.5.2 → 0.5.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 (88) hide show
  1. package/lib/creators/createBase.d.ts +5 -0
  2. package/lib/creators/createBase.d.ts.map +1 -1
  3. package/lib/creators/createBase.js +5 -0
  4. package/lib/creators/createBase.js.map +1 -1
  5. package/lib/creators/createStratumTemplate.d.ts.map +1 -1
  6. package/lib/creators/createStratumTemplate.js +29 -8
  7. package/lib/creators/createStratumTemplate.js.map +1 -1
  8. package/lib/creators/createStratumTemplate.test.js +45 -10
  9. package/lib/creators/createStratumTemplate.test.js.map +1 -1
  10. package/lib/creators/inferPreset.d.ts +1 -1
  11. package/lib/creators/inferPreset.d.ts.map +1 -1
  12. package/lib/creators/inferPreset.js +2 -2
  13. package/lib/creators/inferPreset.js.map +1 -1
  14. package/lib/index.d.ts +1 -1
  15. package/lib/index.d.ts.map +1 -1
  16. package/lib/predicates/isBlock.d.ts +3 -0
  17. package/lib/predicates/isBlock.d.ts.map +1 -0
  18. package/lib/predicates/isBlock.js +7 -0
  19. package/lib/predicates/isBlock.js.map +1 -0
  20. package/lib/producers/applyBlockModifications.d.ts +2 -2
  21. package/lib/producers/applyBlockModifications.d.ts.map +1 -1
  22. package/lib/producers/applyBlockModifications.js.map +1 -1
  23. package/lib/producers/applyBlockRefinements.d.ts +4 -0
  24. package/lib/producers/applyBlockRefinements.d.ts.map +1 -0
  25. package/lib/producers/applyBlockRefinements.js +19 -0
  26. package/lib/producers/applyBlockRefinements.js.map +1 -0
  27. package/lib/producers/applyBlockRefinements.test.d.ts +2 -0
  28. package/lib/producers/applyBlockRefinements.test.d.ts.map +1 -0
  29. package/lib/producers/applyBlockRefinements.test.js +58 -0
  30. package/lib/producers/applyBlockRefinements.test.js.map +1 -0
  31. package/lib/producers/produceBlock.d.ts +28 -0
  32. package/lib/producers/produceBlock.d.ts.map +1 -1
  33. package/lib/producers/produceBlock.js +6 -0
  34. package/lib/producers/produceBlock.js.map +1 -1
  35. package/lib/producers/producePreset.d.ts +19 -6
  36. package/lib/producers/producePreset.d.ts.map +1 -1
  37. package/lib/producers/producePreset.js +9 -4
  38. package/lib/producers/producePreset.js.map +1 -1
  39. package/lib/producers/produceStratumTemplate.d.ts +3 -5
  40. package/lib/producers/produceStratumTemplate.d.ts.map +1 -1
  41. package/lib/producers/produceStratumTemplate.js +5 -5
  42. package/lib/producers/produceStratumTemplate.js.map +1 -1
  43. package/lib/types/bases.d.ts +39 -2
  44. package/lib/types/bases.d.ts.map +1 -1
  45. package/lib/types/customizations..d.ts +9 -0
  46. package/lib/types/customizations..d.ts.map +1 -0
  47. package/lib/types/customizations..js +2 -0
  48. package/lib/types/customizations..js.map +1 -0
  49. package/lib/types/customizations.d.ts +22 -0
  50. package/lib/types/customizations.d.ts.map +1 -0
  51. package/lib/types/customizations.js +2 -0
  52. package/lib/types/customizations.js.map +1 -0
  53. package/lib/types/refinements.d.ts +27 -0
  54. package/lib/types/refinements.d.ts.map +1 -0
  55. package/lib/types/refinements.js +2 -0
  56. package/lib/types/refinements.js.map +1 -0
  57. package/lib/types/settings.d.ts +1 -1
  58. package/lib/types/settings.d.ts.map +1 -1
  59. package/lib/types/templates.d.ts +7 -13
  60. package/lib/types/templates.d.ts.map +1 -1
  61. package/lib/utils/createBlockExclusionOption.d.ts +2 -0
  62. package/lib/utils/createBlockExclusionOption.d.ts.map +1 -0
  63. package/lib/utils/createBlockExclusionOption.js +5 -0
  64. package/lib/utils/createBlockExclusionOption.js.map +1 -0
  65. package/lib/utils/getPresetByName.d.ts +4 -0
  66. package/lib/utils/getPresetByName.d.ts.map +1 -0
  67. package/lib/utils/getPresetByName.js +7 -0
  68. package/lib/utils/getPresetByName.js.map +1 -0
  69. package/lib/utils/slugifyName.d.ts +2 -0
  70. package/lib/utils/slugifyName.d.ts.map +1 -0
  71. package/lib/utils/slugifyName.js +6 -0
  72. package/lib/utils/slugifyName.js.map +1 -0
  73. package/lib/utils.ts/createBlockExclusionOption.d.ts +2 -0
  74. package/lib/utils.ts/createBlockExclusionOption.d.ts.map +1 -0
  75. package/lib/utils.ts/createBlockExclusionOption.js +5 -0
  76. package/lib/utils.ts/createBlockExclusionOption.js.map +1 -0
  77. package/lib/utils.ts/getPresetByName.d.ts +1 -1
  78. package/lib/utils.ts/getPresetByName.js +3 -3
  79. package/lib/utils.ts/getPresetByName.js.map +1 -1
  80. package/lib/utils.ts/slugifyName.d.ts +2 -0
  81. package/lib/utils.ts/slugifyName.d.ts.map +1 -0
  82. package/lib/utils.ts/slugifyName.js +6 -0
  83. package/lib/utils.ts/slugifyName.js.map +1 -0
  84. package/lib/utils.ts/slugifyPresetName.d.ts +1 -1
  85. package/lib/utils.ts/slugifyPresetName.d.ts.map +1 -1
  86. package/lib/utils.ts/slugifyPresetName.js +1 -1
  87. package/lib/utils.ts/slugifyPresetName.js.map +1 -1
  88. package/package.json +5 -5
@@ -1,4 +1,9 @@
1
1
  import { AnyShape } from "bingo";
2
2
  import { Base, BaseDefinition } from "../types/bases.js";
3
+ /**
4
+ * Creates a Stratum {@link Base}.
5
+ * @template OptionsShape Schemas of options the Base's Blocks take in.
6
+ * @see {@link https://www.create.bingo/engines/stratum/apis/create-base}
7
+ */
3
8
  export declare function createBase<OptionsShape extends AnyShape>(baseDefinition: BaseDefinition<OptionsShape>): Base<OptionsShape>;
4
9
  //# sourceMappingURL=createBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createBase.d.ts","sourceRoot":"","sources":["../../src/creators/createBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEnE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAazD,wBAAgB,UAAU,CAAC,YAAY,SAAS,QAAQ,EACvD,cAAc,EAAE,cAAc,CAAC,YAAY,CAAC,GAC1C,IAAI,CAAC,YAAY,CAAC,CAoDpB"}
1
+ {"version":3,"file":"createBase.d.ts","sourceRoot":"","sources":["../../src/creators/createBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEnE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAazD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,YAAY,SAAS,QAAQ,EACvD,cAAc,EAAE,cAAc,CAAC,YAAY,CAAC,GAC1C,IAAI,CAAC,YAAY,CAAC,CAoDpB"}
@@ -2,6 +2,11 @@ import { assertNoPresetOption } from "./assertNoPresetOption.js";
2
2
  import { createPreset } from "./createPreset.js";
3
3
  import { createStratumTemplate } from "./createStratumTemplate.js";
4
4
  import { applyZodDefaults, isDefinitionWithAddons } from "./utils.js";
5
+ /**
6
+ * Creates a Stratum {@link Base}.
7
+ * @template OptionsShape Schemas of options the Base's Blocks take in.
8
+ * @see {@link https://www.create.bingo/engines/stratum/apis/create-base}
9
+ */
5
10
  export function createBase(baseDefinition) {
6
11
  assertNoPresetOption(baseDefinition);
7
12
  function createBlock(blockDefinition) {
@@ -1 +1 @@
1
- {"version":3,"file":"createBase.js","sourceRoot":"","sources":["../../src/creators/createBase.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,UAAU,UAAU,CACzB,cAA4C;IAI5C,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAQrC,SAAS,WAAW,CACnB,eAEwC;QAExC,sDAAsD;QACtD,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9C,OAAO,eAAe,CAAC;QACxB,CAAC;QAED,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;QAI5C,4DAA4D;QAC5D,SAAS,KAAK,CAAC,MAAc;YAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC1B,CAAC;QAED,0DAA0D;QAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAEtC,KAAK,CAAC,OAAO,GAAG,CAAC,OAAgD,EAAE,EAAE;YACpE,OAAO,eAAe,CAAC,OAAO,CAAC;gBAC9B,GAAG,OAAO;gBACV,MAAM,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;aACtD,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,KAAyC,CAAC;IAClD,CAAC;IAED,MAAM,IAAI,GAAuB;QAChC,GAAG,cAAc;QACjB,WAAW;QACX,YAAY,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC;QACxE,qBAAqB,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAC7C,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,CAAC;KAChD,CAAC;IAEF,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"createBase.js","sourceRoot":"","sources":["../../src/creators/createBase.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEtE;;;;GAIG;AACH,MAAM,UAAU,UAAU,CACzB,cAA4C;IAI5C,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAQrC,SAAS,WAAW,CACnB,eAEwC;QAExC,sDAAsD;QACtD,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9C,OAAO,eAAe,CAAC;QACxB,CAAC;QAED,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;QAI5C,4DAA4D;QAC5D,SAAS,KAAK,CAAC,MAAc;YAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC1B,CAAC;QAED,0DAA0D;QAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAEtC,KAAK,CAAC,OAAO,GAAG,CAAC,OAAgD,EAAE,EAAE;YACpE,OAAO,eAAe,CAAC,OAAO,CAAC;gBAC9B,GAAG,OAAO;gBACV,MAAM,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;aACtD,CAAC,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO,KAAyC,CAAC;IAClD,CAAC;IAED,MAAM,IAAI,GAAuB;QAChC,GAAG,cAAc;QACjB,WAAW;QACX,YAAY,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,gBAAgB,CAAC;QACxE,qBAAqB,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAC7C,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,CAAC;KAChD,CAAC;IAEF,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuC,MAAM,OAAO,CAAC;AAKtE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EACN,eAAe,EACf,yBAAyB,EAEzB,MAAM,uBAAuB,CAAC;AAI/B,wBAAgB,qBAAqB,CAAC,YAAY,SAAS,QAAQ,EAClE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EACxB,kBAAkB,EAAE,yBAAyB,CAAC,YAAY,CAAC,GACzD,eAAe,CAAC,YAAY,CAAC,CA+C/B"}
1
+ {"version":3,"file":"createStratumTemplate.d.ts","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuC,MAAM,OAAO,CAAC;AAQtE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EACN,eAAe,EACf,yBAAyB,EAEzB,MAAM,uBAAuB,CAAC;AAK/B,wBAAgB,qBAAqB,CAAC,YAAY,SAAS,QAAQ,EAClE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,EACxB,kBAAkB,EAAE,yBAAyB,CAAC,YAAY,CAAC,GACzD,eAAe,CAAC,YAAY,CAAC,CAgF/B"}
@@ -1,19 +1,38 @@
1
1
  import chalk from "chalk";
2
2
  import { z } from "zod";
3
- import { produceStratumTemplate } from "../producers/produceStratumTemplate.js";
4
- import { slugifyPresetName } from "../utils.ts/slugifyPresetName.js";
3
+ import { produceStratumTemplate, } from "../producers/produceStratumTemplate.js";
4
+ import { createBlockExclusionOption } from "../utils/createBlockExclusionOption.js";
5
+ import { slugifyName } from "../utils/slugifyName.js";
5
6
  import { inferPreset } from "./inferPreset.js";
6
7
  export function createStratumTemplate(base, templateDefinition) {
7
- const presetOption = z
8
- .union(templateDefinition.presets.map((preset) => z.literal(slugifyPresetName(preset.about.name))))
9
- .describe("starting set of tooling to use");
10
8
  const template = {
11
9
  ...templateDefinition,
12
10
  base,
11
+ createConfig: (config) => ({ ...config, template }),
13
12
  options: {
14
13
  ...base.options,
15
- preset: presetOption.default(slugifyPresetName((templateDefinition.suggested ?? templateDefinition.presets[0]).about
16
- .name)), // TODO: why don't the types allow a ZodDefault here?
14
+ preset: z
15
+ .union(templateDefinition.presets.map((preset) => z.literal(slugifyName(preset.about.name))))
16
+ .describe("starting set of tooling to use")
17
+ .default(slugifyName((templateDefinition.suggested ?? templateDefinition.presets[0])
18
+ .about.name)),
19
+ // Exclusion options are not present in the types, because:
20
+ // * It'd be a lot of types plumbing to know the full list of Blocks.
21
+ // * We want to discourage using them in config files: it's better to
22
+ // instead use imported Blocks in `refinements.blocks.exclude`.
23
+ //
24
+ // TODO: It would be nice to have labeled groups of options.
25
+ // That way these don't get logged alongside the more normal options...
26
+ ...Object.fromEntries(Array.from(new Set(templateDefinition.presets.flatMap((preset) => preset.blocks.map((block) => block.about?.name))))
27
+ .filter((blockName) => typeof blockName === "string")
28
+ .map((blockName) => [
29
+ createBlockExclusionOption(blockName),
30
+ z
31
+ .boolean()
32
+ .describe(`whether to exclude the ${blockName} block`)
33
+ .optional(),
34
+ ])
35
+ .sort(([a], [b]) => a.localeCompare(b))),
17
36
  },
18
37
  prepare(context) {
19
38
  return {
@@ -30,7 +49,9 @@ export function createStratumTemplate(base, templateDefinition) {
30
49
  }; // TODO: Why is this type assertion necessary?
31
50
  },
32
51
  produce(context) {
33
- return produceStratumTemplate(template, context);
52
+ return produceStratumTemplate(template,
53
+ // TODO: Why is this type assertion necessary?
54
+ context);
34
55
  },
35
56
  };
36
57
  return template;
@@ -1 +1 @@
1
- {"version":3,"file":"createStratumTemplate.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAOhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,qBAAqB,CACpC,IAAwB,EACxB,kBAA2D;IAI3D,MAAM,YAAY,GAAG,CAAC;SACpB,KAAK,CACL,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACtB,CAC1B;SACA,QAAQ,CAAC,gCAAgC,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAkC;QAC/C,GAAG,kBAAkB;QACrB,IAAI;QACJ,OAAO,EAAE;YACR,GAAG,IAAI,CAAC,OAAO;YACf,MAAM,EAAE,YAAY,CAAC,OAAO,CAC3B,iBAAiB,CAChB,CAAC,kBAAkB,CAAC,SAAS,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;iBACnE,IAAI,CACN,CAC+C,EAAE,qDAAqD;SACxG;QACD,OAAO,CAAC,OAAO;YACd,OAAO;gBACN,MAAM,EAAE,GAAG,EAAE;oBACZ,sFAAsF;oBACtF,MAAM;oBACN,MAAM,MAAM,GACX,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBAEnE,IAAI,MAAM,EAAE,CAAC;wBACZ,OAAO,CAAC,GAAG,CACV,YAAY,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC,+BAA+B,CAC3E,CAAC;oBACH,CAAC;oBAED,OAAO,MAAM,CAAC;gBACf,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aACO,CAAC,CAAC,8CAA8C;QAC3F,CAAC;QACD,OAAO,CAAC,OAAO;YACd,OAAO,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;KACD,CAAC;IAEF,OAAO,QAAQ,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"createStratumTemplate.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"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"}
@@ -16,26 +16,58 @@ const preset = base.createPreset({
16
16
  about: { name: "Example" },
17
17
  blocks: [],
18
18
  });
19
- const template = base.createStratumTemplate({
20
- presets: [preset],
21
- });
22
19
  const mockLog = vi.fn();
23
20
  const mockOptions = { name: "Test Name" };
24
21
  describe("createStratumTemplate", () => {
25
22
  describe("options", () => {
23
+ it("does not add block exclusion options when no blocks are named", () => {
24
+ const template = base.createStratumTemplate({
25
+ presets: [
26
+ base.createPreset({
27
+ about: { name: "Example" },
28
+ blocks: [base.createBlock({ produce: vi.fn() })],
29
+ }),
30
+ ],
31
+ });
32
+ expect(Object.keys(template.options)).toEqual(["name", "preset"]);
33
+ });
34
+ it("adds a block exclusion option when a block is named", () => {
35
+ const template = base.createStratumTemplate({
36
+ presets: [
37
+ base.createPreset({
38
+ about: { name: "Example Preset" },
39
+ blocks: [
40
+ base.createBlock({
41
+ about: { name: "Example Block" },
42
+ produce: vi.fn(),
43
+ }),
44
+ ],
45
+ }),
46
+ ],
47
+ });
48
+ expect(Object.keys(template.options)).toEqual([
49
+ "name",
50
+ "preset",
51
+ "exclude-example-block",
52
+ ]);
53
+ });
26
54
  describe("--preset", () => {
55
+ const templateWithPreset = base.createStratumTemplate({
56
+ presets: [preset],
57
+ });
27
58
  it("does not call inferPreset when context.files is not provided", async () => {
28
- const lazyOptions = template.prepare({
59
+ const lazyOptions = templateWithPreset.prepare({
29
60
  log: mockLog,
30
61
  options: mockOptions,
31
62
  take: vi.fn(),
32
63
  });
33
- await awaitLazyProperties(lazyOptions);
64
+ const options = await awaitLazyProperties(lazyOptions);
34
65
  expect(mockInferPreset).not.toHaveBeenCalled();
66
+ expect(options).toEqual({});
35
67
  });
36
68
  it("does not display a log when inferPreset returns undefined", async () => {
37
69
  mockInferPreset.mockReturnValueOnce(undefined);
38
- const lazyOptions = template.prepare({
70
+ const lazyOptions = templateWithPreset.prepare({
39
71
  files: {
40
72
  "README.md": "...",
41
73
  },
@@ -43,12 +75,14 @@ describe("createStratumTemplate", () => {
43
75
  options: mockOptions,
44
76
  take: vi.fn(),
45
77
  });
46
- await awaitLazyProperties(lazyOptions);
78
+ const options = await awaitLazyProperties(lazyOptions);
47
79
  expect(mockLog).not.toHaveBeenCalled();
80
+ expect(options).toEqual({});
48
81
  });
49
82
  it("displays a log when inferPreset returns a preset", async () => {
50
- mockInferPreset.mockReturnValueOnce("example");
51
- const lazyOptions = template.prepare({
83
+ const presetName = "example";
84
+ mockInferPreset.mockReturnValueOnce(presetName);
85
+ const lazyOptions = templateWithPreset.prepare({
52
86
  files: {
53
87
  "README.md": "...",
54
88
  },
@@ -56,8 +90,9 @@ describe("createStratumTemplate", () => {
56
90
  options: mockOptions,
57
91
  take: vi.fn(),
58
92
  });
59
- await awaitLazyProperties(lazyOptions);
93
+ const options = await awaitLazyProperties(lazyOptions);
60
94
  expect(mockLog).toHaveBeenCalledWith(`Detected ${chalk.blue(`--preset example`)} from existing files on disk.`);
95
+ expect(options).toEqual({ preset: presetName });
61
96
  });
62
97
  });
63
98
  });
@@ -1 +1 @@
1
- {"version":3,"file":"createStratumTemplate.test.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createStratumTemplate.test.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { AnyShape, InferredObject, TemplatePrepareContext } from "bingo";
2
2
  import { Preset } from "../types/presets.js";
3
- export declare function inferPreset<OptionsShape extends AnyShape>(context: Pick<TemplatePrepareContext<Partial<InferredObject<OptionsShape>>>, "files" | "options">, presets: Preset<OptionsShape>[]): string | undefined;
3
+ export declare function inferPreset<OptionsShape extends AnyShape, Refinements>(context: Pick<TemplatePrepareContext<Partial<InferredObject<OptionsShape>>, Refinements>, "files" | "options">, presets: Preset<OptionsShape>[]): string | undefined;
4
4
  //# sourceMappingURL=inferPreset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inferPreset.d.ts","sourceRoot":"","sources":["../../src/creators/inferPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EAEd,sBAAsB,EACtB,MAAM,OAAO,CAAC;AASf,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,wBAAgB,WAAW,CAAC,YAAY,SAAS,QAAQ,EACxD,OAAO,EAAE,IAAI,CACZ,sBAAsB,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAC7D,OAAO,GAAG,SAAS,CACnB,EACD,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,sBAyC/B"}
1
+ {"version":3,"file":"inferPreset.d.ts","sourceRoot":"","sources":["../../src/creators/inferPreset.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EAEd,sBAAsB,EACtB,MAAM,OAAO,CAAC;AASf,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,wBAAgB,WAAW,CAAC,YAAY,SAAS,QAAQ,EAAE,WAAW,EACrE,OAAO,EAAE,IAAI,CACZ,sBAAsB,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,EAC1E,OAAO,GAAG,SAAS,CACnB,EACD,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,sBAyC/B"}
@@ -1,6 +1,6 @@
1
1
  import { mergeCreations, } from "bingo";
2
2
  import { produceBlock, } from "../producers/produceBlock.js";
3
- import { slugifyPresetName } from "../utils.ts/slugifyPresetName.js";
3
+ import { slugifyName } from "../utils/slugifyName.js";
4
4
  export function inferPreset(context, presets) {
5
5
  const blockSettings = {
6
6
  ...context,
@@ -34,7 +34,7 @@ export function inferPreset(context, presets) {
34
34
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
35
35
  record.percentage >= 0.35
36
36
  ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
37
- slugifyPresetName(record.preset.about.name)
37
+ slugifyName(record.preset.about.name)
38
38
  : undefined);
39
39
  }
40
40
  function countMatchedFilePaths(created, produced) {
@@ -1 +1 @@
1
- {"version":3,"file":"inferPreset.js","sourceRoot":"","sources":["../../src/creators/inferPreset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inferPreset.js","sourceRoot":"","sources":["../../src/creators/inferPreset.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -5,5 +5,5 @@ export type * from "./types/bases.js";
5
5
  export type * from "./types/blocks.js";
6
6
  export type * from "./types/creations.js";
7
7
  export type * from "./types/presets.js";
8
- export type * from "./types/settings.js";
8
+ export type * from "./types/refinements.js";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Block } from "../types/blocks.js";
2
+ export declare function isBlock(value: unknown): value is Block;
3
+ //# sourceMappingURL=isBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBlock.d.ts","sourceRoot":"","sources":["../../src/predicates/isBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAOtD"}
@@ -0,0 +1,7 @@
1
+ export function isBlock(value) {
2
+ return (!!value &&
3
+ typeof value === "object" &&
4
+ "produce" in value &&
5
+ typeof value.produce === "function");
6
+ }
7
+ //# sourceMappingURL=isBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isBlock.js","sourceRoot":"","sources":["../../src/predicates/isBlock.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CAAC,KAAc;IACrC,OAAO,CACN,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,KAAK,QAAQ;QACzB,SAAS,IAAI,KAAK;QAClB,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,CACnC,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
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>[];
2
+ import { BlockRefinements } from "../types/refinements.js";
3
+ export declare function applyBlockModifications<Options extends object>(initial: Block<object | undefined, Options>[], { add, exclude }?: BlockRefinements<Options>): Block<object | undefined, Options>[];
4
4
  //# sourceMappingURL=applyBlockModifications.d.ts.map
@@ -1 +1 @@
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
+ {"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,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,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,gBAAgB,CAAC,OAAO,CAAM,wCAiB1D"}
@@ -1 +1 @@
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
+ {"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,KAAgC,EAAE;IAE1D,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"}
@@ -0,0 +1,4 @@
1
+ import { Block } from "../types/blocks.js";
2
+ import { BlockRefinements } from "../types/refinements.js";
3
+ export declare function applyBlockRefinements<Options extends object>(blocksInitial: Block<object | undefined, Options>[], options: Options, { add, exclude }?: BlockRefinements<Options>): Block<object | undefined, Options>[];
4
+ //# sourceMappingURL=applyBlockRefinements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyBlockRefinements.d.ts","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,wBAAgB,qBAAqB,CAAC,OAAO,SAAS,MAAM,EAC3D,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,EACnD,OAAO,EAAE,OAAO,EAChB,EAAE,GAAQ,EAAE,OAAY,EAAE,GAAE,gBAAgB,CAAC,OAAO,CAAM,wCA6B1D"}
@@ -0,0 +1,19 @@
1
+ import { createBlockExclusionOption } from "../utils/createBlockExclusionOption.js";
2
+ export function applyBlockRefinements(blocksInitial, options, { add = [], exclude = [] } = {}) {
3
+ const exclusionOptions = new Set(Object.entries(options)
4
+ .filter(([key, value]) => key.startsWith("exclude-") && !!value)
5
+ .map(([key]) => key));
6
+ if (!add.length && !exclude.length && !exclusionOptions.size) {
7
+ return blocksInitial;
8
+ }
9
+ const blocksRefined = new Set(blocksInitial.filter((block) => block.about?.name &&
10
+ !exclusionOptions.has(createBlockExclusionOption(block.about.name))));
11
+ for (const added of add) {
12
+ blocksRefined.add(added);
13
+ }
14
+ for (const excluded of exclude) {
15
+ blocksRefined.delete(excluded);
16
+ }
17
+ return Array.from(blocksRefined);
18
+ }
19
+ //# sourceMappingURL=applyBlockRefinements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyBlockRefinements.js","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,UAAU,qBAAqB,CACpC,aAAmD,EACnD,OAAgB,EAChB,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,KAAgC,EAAE;IAE1D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC/B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;SACrB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;SAC/D,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CACrB,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC9D,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAC5B,aAAa,CAAC,MAAM,CACnB,CAAC,KAAK,EAAE,EAAE,CACT,KAAK,CAAC,KAAK,EAAE,IAAI;QACjB,CAAC,gBAAgB,CAAC,GAAG,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACpE,CACD,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACzB,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAChC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=applyBlockRefinements.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyBlockRefinements.test.d.ts","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { z } from "zod";
3
+ import { createBase } from "../creators/createBase.js";
4
+ import { applyBlockRefinements } from "./applyBlockRefinements.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("applyBlockRefinements", () => {
23
+ it("returns the initial blocks when no exclusion options or refinements are provided", () => {
24
+ const initial = [blockA, blockB];
25
+ const actual = applyBlockRefinements(initial, { value: "" });
26
+ expect(actual).toBe(initial);
27
+ });
28
+ it("returns the initial blocks when no exclusion options are provided and refinements are empty", () => {
29
+ const initial = [blockA, blockB];
30
+ const actual = applyBlockRefinements(initial, { value: "" }, { add: [], exclude: [] });
31
+ expect(actual).toBe(initial);
32
+ });
33
+ it("returns modified blocks when only exclusion options are provided", () => {
34
+ const initial = [blockA, blockB];
35
+ const actual = applyBlockRefinements(initial, { "exclude-a": true, value: "" }, {
36
+ add: [],
37
+ exclude: [],
38
+ });
39
+ expect(actual).toEqual([blockB]);
40
+ });
41
+ it("returns modified blocks when only refinements are provided", () => {
42
+ const initial = [blockA, blockB];
43
+ const actual = applyBlockRefinements(initial, { value: "" }, {
44
+ add: [blockC],
45
+ exclude: [blockB],
46
+ });
47
+ expect(actual).toEqual([blockA, blockC]);
48
+ });
49
+ it("returns modified blocks when both exclusion options and refinements are provided", () => {
50
+ const initial = [blockA, blockB, blockC];
51
+ const actual = applyBlockRefinements(initial, { "exclude-a": true, value: "" }, {
52
+ add: [],
53
+ exclude: [blockB],
54
+ });
55
+ expect(actual).toEqual([blockC]);
56
+ });
57
+ });
58
+ //# sourceMappingURL=applyBlockRefinements.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyBlockRefinements.test.js","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,43 @@
1
1
  import { ProductionMode } from "bingo";
2
2
  import { BlockWithAddons, BlockWithoutAddons } from "../types/blocks.js";
3
3
  import { BlockCreation } from "../types/creations.js";
4
+ /**
5
+ * Settings to run a Block with {@link produceBlock} that might have addons.
6
+ * @template Addons Schema of Block-specific args defined by the Block, if defined.
7
+ * @template Options Options values as described by the Block's Base's options schema.
8
+ * @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
9
+ */
4
10
  export type ProduceBlockSettings<Addons extends object | undefined, Options extends object> = Addons extends object ? ProduceBlockSettingsWithAddons<Addons, Options> : ProduceBlockSettingsWithoutAddons<Options>;
11
+ /**
12
+ * Settings to run a Block with {@link produceBlock} that defines addons.
13
+ * @template Addons Schema of Block-specific args defined by the Block.
14
+ * @template Options Options values as described by the Block's Base's options schema.
15
+ * @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
16
+ */
5
17
  export interface ProduceBlockSettingsWithAddons<Addons extends object, Options extends object> extends ProduceBlockSettingsWithoutAddons<Options> {
6
18
  addons?: Addons;
7
19
  }
20
+ /**
21
+ * Settings to run a Block with {@link produceBlock} that does not define addons.
22
+ * @template Options Options values as described by the Block's Base's options schema.
23
+ * @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
24
+ */
8
25
  export interface ProduceBlockSettingsWithoutAddons<Options extends object> {
9
26
  mode?: ProductionMode;
10
27
  offline?: boolean;
11
28
  options: Options;
12
29
  }
30
+ /**
31
+ * Produces a single Block that defines addons.
32
+ * @template Addons Schema of Block-specific args defined by the Block, if defined.
33
+ * @template Options Options values as described by the Block's Base's options schema.
34
+ * @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
35
+ */
13
36
  export declare function produceBlock<Addons extends object, Options extends object>(block: BlockWithAddons<Addons, Options>, settings: ProduceBlockSettingsWithAddons<Addons, Options>): Partial<BlockCreation<Options>>;
37
+ /**
38
+ * Produces a single Block that does not define addons.
39
+ * @template Options Options values as described by the Block's Base's options schema.
40
+ * @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
41
+ */
14
42
  export declare function produceBlock<Options extends object>(block: BlockWithoutAddons<Options>, settings: ProduceBlockSettingsWithoutAddons<Options>): Partial<BlockCreation<Options>>;
15
43
  //# sourceMappingURL=produceBlock.d.ts.map
@@ -1 +1 @@
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
+ {"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;;;;;GAKG;AACH,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;;;;;GAKG;AACH,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;;;;GAIG;AACH,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;;;;;GAKG;AACH,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;;;;GAIG;AACH,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,4 +1,10 @@
1
1
  import { mergeBlockCreations } from "../mergers/mergeBlockCreations.js";
2
+ /**
3
+ * Produces a single Block.
4
+ * @template Addons Schema of Block-specific args defined by the Block, if defined.
5
+ * @template Options Options values as described by the Block's Base's options schema.
6
+ * @see {@link https://www.create.bingo/engines/stratum/apis/producers#produceblock}
7
+ */
2
8
  export function produceBlock(block, settings) {
3
9
  let creation = block.produce(settings);
4
10
  const augment = settings.mode && block[settings.mode];
@@ -1 +1 @@
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
+ {"version":3,"file":"produceBlock.js","sourceRoot":"","sources":["../../src/producers/produceBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AA4DxE;;;;;GAKG;AACH,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,10 +1,23 @@
1
1
  import { AnyShape, InferredObject, ProduceTemplateSettings } from "bingo";
2
- import { BlockCreation, CreatedBlockAddons } from "../types/creations.js";
2
+ import { BlockCreation } from "../types/creations.js";
3
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>>;
4
+ import { StratumRefinements } from "../types/refinements.js";
5
+ /**
6
+ * Settings to run a Preset with {@link producePreset}.
7
+ * @template OptionsShape Schemas of options defined by the Preset's Base.
8
+ * @see {@link https://www.create.bingo/engines/stratum/apis/producers#producetemplate}
9
+ */
10
+ export interface ProducePresetSettings<OptionsShape extends AnyShape> extends ProduceTemplateSettings<OptionsShape, StratumRefinements<InferredObject<OptionsShape>>> {
11
+ /**
12
+ * Any optional Stratum customizations.
13
+ * @see {@link https://create.bingo/engines/stratum/details/configurations#refinements}
14
+ */
15
+ refinements?: StratumRefinements<InferredObject<OptionsShape>>;
8
16
  }
9
- export declare function producePreset<OptionsShape extends AnyShape>(preset: Preset<OptionsShape>, { addons, blocks: blockModifications, mode, offline, options, }: ProducePresetSettings<OptionsShape>): BlockCreation<InferredObject<OptionsShape>>;
17
+ /**
18
+ * Produces the Blocks in a Preset, merging the results into a single creation.
19
+ * @template OptionsShape Schemas of options defined by the Preset's Base.
20
+ * @see {@link https://www.create.bingo/engines/stratum/apis/producers#producetemplate}
21
+ */
22
+ export declare function producePreset<OptionsShape extends AnyShape>(preset: Preset<OptionsShape>, { mode, offline, options, refinements, }: ProducePresetSettings<OptionsShape>): BlockCreation<InferredObject<OptionsShape>>;
10
23
  //# sourceMappingURL=producePreset.d.ts.map
@@ -1 +1 @@
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
+ {"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,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;;;GAIG;AACH,MAAM,WAAW,qBAAqB,CAAC,YAAY,SAAS,QAAQ,CACnE,SAAQ,uBAAuB,CAC9B,YAAY,EACZ,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD;IACD;;;OAGG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;CAC/D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,YAAY,SAAS,QAAQ,EAC1D,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,EAC5B,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAgB,GAChB,EAAE,qBAAqB,CAAC,YAAY,CAAC,GACpC,aAAa,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAsB7C"}
@@ -1,9 +1,14 @@
1
- import { applyBlockModifications } from "./applyBlockModifications.js";
1
+ import { applyBlockRefinements } from "./applyBlockRefinements.js";
2
2
  import { produceBlocks } from "./produceBlocks.js";
3
- export function producePreset(preset, { addons, blocks: blockModifications, mode, offline, options, }) {
4
- const blocks = applyBlockModifications(preset.blocks, blockModifications);
3
+ /**
4
+ * Produces the Blocks in a Preset, merging the results into a single creation.
5
+ * @template OptionsShape Schemas of options defined by the Preset's Base.
6
+ * @see {@link https://www.create.bingo/engines/stratum/apis/producers#producetemplate}
7
+ */
8
+ export function producePreset(preset, { mode, offline, options, refinements = {}, }) {
9
+ const blocks = applyBlockRefinements(preset.blocks, options, refinements.blocks);
5
10
  const creation = produceBlocks(blocks, {
6
- addons,
11
+ addons: refinements.addons,
7
12
  mode,
8
13
  offline,
9
14
  options,
@@ -1 +1 @@
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
+ {"version":3,"file":"producePreset.js","sourceRoot":"","sources":["../../src/producers/producePreset.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAmBnD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC5B,MAA4B,EAC5B,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,GAAG,EAAE,GACqB;IAEtC,MAAM,MAAM,GAAG,qBAAqB,CACnC,MAAM,CAAC,MAAM,EACb,OAAO,EACP,WAAW,CAAC,MAAM,CAClB,CAAC;IAEF,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE;QACtC,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,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,15 +1,13 @@
1
1
  import { AnyShape, InferredObject, ProductionMode } from "bingo";
2
- import { CreatedBlockAddons } from "../types/creations.js";
3
- import { BlockModifications } from "../types/settings.js";
2
+ import { StratumRefinements } from "../types/refinements.js";
4
3
  import { StratumTemplate } from "../types/templates.js";
5
4
  export interface ProduceStratumTemplateSettings<OptionsShape extends AnyShape> {
6
- addons?: CreatedBlockAddons<any, InferredObject<OptionsShape>>[];
7
- blocks?: BlockModifications<InferredObject<OptionsShape>>;
8
5
  mode?: ProductionMode;
9
6
  offline?: boolean;
10
7
  options: InferredObject<OptionsShape> & {
11
8
  preset: string;
12
9
  };
10
+ refinements?: StratumRefinements<InferredObject<OptionsShape>>;
13
11
  }
14
- export declare function produceStratumTemplate<OptionsShape extends AnyShape = AnyShape>(template: StratumTemplate<OptionsShape>, { addons, blocks: blockModifications, mode, offline, options, }: ProduceStratumTemplateSettings<OptionsShape>): {};
12
+ export declare function produceStratumTemplate<OptionsShape extends AnyShape = AnyShape>(template: StratumTemplate<OptionsShape>, { mode, offline, options, refinements, }: ProduceStratumTemplateSettings<OptionsShape>): {};
15
13
  //# sourceMappingURL=produceStratumTemplate.d.ts.map
@@ -1 +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"}
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,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,MAAM,WAAW,8BAA8B,CAAC,YAAY,SAAS,QAAQ;IAC5E,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;IAC3D,WAAW,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;CAC/D;AAED,wBAAgB,sBAAsB,CACrC,YAAY,SAAS,QAAQ,GAAG,QAAQ,EAExC,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,EACvC,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAgB,GAChB,EAAE,8BAA8B,CAAC,YAAY,CAAC,MAmB/C"}
@@ -1,14 +1,14 @@
1
- import { getPresetByName } from "../utils.ts/getPresetByName.js";
2
- import { applyBlockModifications } from "./applyBlockModifications.js";
1
+ import { getPresetByName } from "../utils/getPresetByName.js";
2
+ import { applyBlockRefinements } from "./applyBlockRefinements.js";
3
3
  import { produceBlocks } from "./produceBlocks.js";
4
- export function produceStratumTemplate(template, { addons, blocks: blockModifications, mode, offline, options, }) {
4
+ export function produceStratumTemplate(template, { mode, offline, options, refinements = {}, }) {
5
5
  const preset = getPresetByName(template.presets, options.preset);
6
6
  if (preset instanceof Error) {
7
7
  throw preset;
8
8
  }
9
- const blocks = applyBlockModifications(preset.blocks, blockModifications);
9
+ const blocks = applyBlockRefinements(preset.blocks, options, refinements.blocks);
10
10
  return produceBlocks(blocks, {
11
- addons,
11
+ addons: refinements.addons,
12
12
  mode,
13
13
  offline,
14
14
  options,
@@ -1 +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"}
1
+ {"version":3,"file":"produceStratumTemplate.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASnD,MAAM,UAAU,sBAAsB,CAGrC,QAAuC,EACvC,EACC,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,GAAG,EAAE,GAC8B;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,qBAAqB,CACnC,MAAM,CAAC,MAAM,EACb,OAAO,EACP,WAAW,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,EAAE;QAC5B,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,IAAI;QACJ,OAAO;QACP,OAAO;KACP,CAAC,CAAC;AACJ,CAAC"}
@@ -1,25 +1,62 @@
1
1
  import { AnyOptionalShape, AnyShape, InferredObject, TemplatePrepare } from "bingo";
2
2
  import { BlockDefinitionWithAddons, BlockDefinitionWithoutAddons, BlockWithAddons, BlockWithoutAddons } from "./blocks.js";
3
3
  import { Preset, PresetDefinition } from "./presets.js";
4
+ import { StratumRefinements } from "./refinements.js";
4
5
  import { StratumTemplate, StratumTemplateDefinition } from "./templates.js";
6
+ /**
7
+ * Shared options and creator APIs to create a Template from Blocks and Presets.
8
+ * @template OptionsShape Schemas of options the Base's Blocks take in.
9
+ * @see {@link https://www.create.bingo/engines/stratum/concepts/bases}
10
+ */
5
11
  export interface Base<OptionsShape extends AnyShape = AnyShape> {
6
12
  createBlock: CreateBlock<InferredObject<OptionsShape>>;
7
13
  createPreset: CreatePreset<OptionsShape>;
8
14
  createStratumTemplate: CreateStratumTemplate<OptionsShape>;
9
15
  options: OptionsShape;
10
- prepare?: TemplatePrepare<InferredObject<OptionsShape>>;
16
+ prepare?: TemplatePrepare<InferredObject<OptionsShape>, StratumRefinements<InferredObject<OptionsShape>>>;
11
17
  }
18
+ /**
19
+ * Definition for creating a new Stratum {@link Base}.
20
+ * @template OptionsShape Schemas of options the Base's Blocks take in.
21
+ * @see {@link https://www.create.bingo/engines/stratum/apis/create-base}
22
+ */
12
23
  export interface BaseDefinition<OptionsShape extends AnyShape = AnyShape> {
13
24
  options: OptionsShape;
14
- prepare?: TemplatePrepare<InferredObject<OptionsShape>>;
25
+ prepare?: TemplatePrepare<InferredObject<OptionsShape>, StratumRefinements<InferredObject<OptionsShape>>>;
15
26
  }
27
+ /**
28
+ * Utility type to retrieve the inferred options shape from a Base's schema type.
29
+ * @example
30
+ * ```ts
31
+ * import { createBase } from "bingo-stratum";
32
+ * import { z } from "zod";
33
+ *
34
+ * export const base = createBase({ options: { value: z.number() }});
35
+ *
36
+ * // { value: number }
37
+ * export type BaseOptions = BaseOptionsFor<typeof base>;
38
+ * ```
39
+ */
16
40
  export type BaseOptionsFor<TypeOfBase> = TypeOfBase extends {
17
41
  options: infer OptionsShape extends AnyShape;
18
42
  } ? InferredObject<OptionsShape> : never;
43
+ /**
44
+ * Factory function to create Blocks.
45
+ * @template Options Options values as described by the Base's options schema.
46
+ * @see {@link https://www.create.bingo/engines/stratum/concepts/blocks}
47
+ */
19
48
  export interface CreateBlock<Options extends object> {
20
49
  <AddonsShape extends AnyOptionalShape>(blockDefinition: BlockDefinitionWithAddons<AddonsShape, Options>): BlockWithAddons<InferredObject<AddonsShape>, Options>;
21
50
  (blockDefinition: BlockDefinitionWithoutAddons<Options>): BlockWithoutAddons<Options>;
22
51
  }
52
+ /**
53
+ * Factory function to create Blocks.
54
+ * @template OptionsShape Schemas of options defined by the parent Base.
55
+ */
23
56
  export type CreatePreset<OptionsShape extends AnyShape> = (presetDefinition: PresetDefinition<InferredObject<OptionsShape>>) => Preset<OptionsShape>;
57
+ /**
58
+ * Factory function to create Templates.
59
+ * @template OptionsShape Schemas of options defined by the parent Base.
60
+ */
24
61
  export type CreateStratumTemplate<OptionsShape extends AnyShape> = (templateDefinition: StratumTemplateDefinition<OptionsShape>) => StratumTemplate<OptionsShape>;
25
62
  //# sourceMappingURL=bases.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"bases.d.ts","sourceRoot":"","sources":["../../src/types/bases.ts"],"names":[],"mappings":"AAEA,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,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;;GAIG;AACH,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,CACxB,cAAc,CAAC,YAAY,CAAC,EAC5B,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc,CAAC,YAAY,SAAS,QAAQ,GAAG,QAAQ;IACvE,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,eAAe,CACxB,cAAc,CAAC,YAAY,CAAC,EAC5B,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;CACF;AAED;;;;;;;;;;;;GAYG;AACH,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;;;;GAIG;AACH,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;;;GAGG;AACH,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;;;GAGG;AACH,MAAM,MAAM,qBAAqB,CAAC,YAAY,SAAS,QAAQ,IAAI,CAClE,kBAAkB,EAAE,yBAAyB,CAAC,YAAY,CAAC,KACvD,eAAe,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Block } from "../types/blocks.js";
2
+ export interface BlockModifications<Options extends object = object> {
3
+ add?: Block<object | undefined, Options>[];
4
+ exclude?: Block<object | undefined, Options>[];
5
+ }
6
+ export interface StratumCustomizations<Options extends object = object> {
7
+ blocks?: BlockModifications<Options>;
8
+ }
9
+ //# sourceMappingURL=customizations..d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customizations..d.ts","sourceRoot":"","sources":["../../src/types/customizations..ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACrE,MAAM,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACrC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=customizations..js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customizations..js","sourceRoot":"","sources":["../../src/types/customizations..ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { Block } from "./blocks.js";
2
+ /**
3
+ * Blocks to add and/or exclude from production.
4
+ * @template Options Options values as described by the template's options schema.
5
+ * @see {@link https://www.create.bingo/engines/stratum/details/configurations#blocks}
6
+ */
7
+ export interface BlockRefinements<Options extends object = object> {
8
+ add?: Block<object | undefined, Options>[];
9
+ exclude?: Block<object | undefined, Options>[];
10
+ }
11
+ /**
12
+ * Customizations that all Stratum templates may apply in a config file.
13
+ * @template Options Options values as described by the template's options schema.
14
+ * @see {@link https://www.create.bingo/engines/stratum/details/configurations#settings}
15
+ */
16
+ export interface StratumRefinements<Options extends object = object> {
17
+ /**
18
+ * Blocks to add and/or exclude from production.
19
+ */
20
+ blocks?: BlockRefinements<Options>;
21
+ }
22
+ //# sourceMappingURL=customizations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customizations.d.ts","sourceRoot":"","sources":["../../src/types/customizations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAChE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE;;OAEG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=customizations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customizations.js","sourceRoot":"","sources":["../../src/types/customizations.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { Block } from "./blocks.js";
2
+ import { CreatedBlockAddons } from "./creations.js";
3
+ /**
4
+ * Blocks to add and/or exclude from production.
5
+ * @template Options Options values as described by the template's options schema.
6
+ * @see {@link https://www.create.bingo/engines/stratum/details/configurations#blocks}
7
+ */
8
+ export interface BlockRefinements<Options extends object = object> {
9
+ add?: Block<object | undefined, Options>[];
10
+ exclude?: Block<object | undefined, Options>[];
11
+ }
12
+ /**
13
+ * Customizations that all Stratum templates may apply in a config file.
14
+ * @template Options Options values as described by the template's options schema.
15
+ * @see {@link https://www.create.bingo/engines/stratum/details/configurations#settings}
16
+ */
17
+ export interface StratumRefinements<Options extends object = object> {
18
+ /**
19
+ * Any extra addon values to merge in and pass to blocks.
20
+ */
21
+ addons?: CreatedBlockAddons<any, Options>[];
22
+ /**
23
+ * Blocks to add and/or exclude from production.
24
+ */
25
+ blocks?: BlockRefinements<Options>;
26
+ }
27
+ //# sourceMappingURL=refinements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refinements.d.ts","sourceRoot":"","sources":["../../src/types/refinements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAChE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE;;OAEG;IAGH,MAAM,CAAC,EAAE,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=refinements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refinements.js","sourceRoot":"","sources":["../../src/types/refinements.ts"],"names":[],"mappings":""}
@@ -3,7 +3,7 @@ export interface BlockModifications<Options extends object = object> {
3
3
  add?: Block<object | undefined, Options>[];
4
4
  exclude?: Block<object | undefined, Options>[];
5
5
  }
6
- export interface StratumSettings<Options extends object = object> {
6
+ export interface StratumCustomizations<Options extends object = object> {
7
7
  blocks?: BlockModifications<Options>;
8
8
  }
9
9
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAC/D,MAAM,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACrC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/types/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAClE,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;IAC3C,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,qBAAqB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACrE,MAAM,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACrC"}
@@ -1,28 +1,22 @@
1
- import { AnyShape, InferredObject, TemplateAbout, TemplateContext, TemplatePrepare } from "bingo";
1
+ import { AnyShape, InferredObject, Template, TemplateAbout, TemplatePrepare } from "bingo";
2
2
  import { z } from "zod";
3
3
  import { Base } from "./bases.js";
4
- import { BlockCreation } from "./creations.js";
5
4
  import { Preset } from "./presets.js";
6
- export interface StratumTemplate<OptionsShape extends AnyShape = AnyShape> {
7
- about?: TemplateAbout;
5
+ import { StratumRefinements } from "./refinements.js";
6
+ export interface StratumTemplate<OptionsShape extends AnyShape> extends Template<OptionsShape & StratumTemplateOptionsShape, StratumRefinements<InferredObject<OptionsShape>>> {
8
7
  base: Base<OptionsShape>;
9
- options: OptionsShape & StratumTemplateOptionsShape;
10
- prepare: TemplatePrepare<InferredObject<OptionsShape>>;
8
+ prepare: TemplatePrepare<InferredObject<OptionsShape>, StratumRefinements<InferredObject<OptionsShape>>>;
11
9
  presets: Preset<OptionsShape>[];
12
- produce: StratumTemplateProduce<InferredObject<OptionsShape>>;
13
10
  }
14
- export interface StratumTemplateDefinition<OptionsShape extends AnyShape = AnyShape> {
11
+ export interface StratumTemplateDefinition<OptionsShape extends AnyShape> {
15
12
  about?: TemplateAbout;
16
- prepare?: TemplatePrepare<InferredObject<OptionsShape>>;
13
+ prepare?: TemplatePrepare<InferredObject<OptionsShape>, StratumRefinements<InferredObject<OptionsShape>>>;
17
14
  presets: Preset<OptionsShape>[];
18
15
  suggested?: Preset<OptionsShape>;
19
16
  }
20
17
  export interface StratumTemplateOptionsShape {
21
- preset: z.ZodUnion<ZodPresetNameLiterals>;
18
+ preset: z.ZodDefault<z.ZodUnion<ZodPresetNameLiterals>>;
22
19
  }
23
- export type StratumTemplateProduce<Options extends object> = (context: TemplateContext<Options & {
24
- preset: string;
25
- }>) => Partial<BlockCreation<Options>>;
26
20
  export type ZodPresetNameLiterals = [
27
21
  z.ZodLiteral<string>,
28
22
  z.ZodLiteral<string>,
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/types/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EACd,aAAa,EACb,eAAe,EACf,eAAe,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,WAAW,eAAe,CAAC,YAAY,SAAS,QAAQ,GAAG,QAAQ;IACxE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,OAAO,EAAE,YAAY,GAAG,2BAA2B,CAAC;IACpD,OAAO,EAAE,eAAe,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;IAChC,OAAO,EAAE,sBAAsB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,yBAAyB,CACzC,YAAY,SAAS,QAAQ,GAAG,QAAQ;IAExC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC3C,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CAC1C;AAED,MAAM,MAAM,sBAAsB,CAAC,OAAO,SAAS,MAAM,IAAI,CAC5D,OAAO,EAAE,eAAe,CAAC,OAAO,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,KAClD,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAErC,MAAM,MAAM,qBAAqB,GAAG;IACnC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACpB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACpB,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;CACzB,CAAC"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/types/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,eAAe,CAAC,YAAY,SAAS,QAAQ,CAC7D,SAAQ,QAAQ,CACf,YAAY,GAAG,2BAA2B,EAC1C,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD;IACD,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,OAAO,EAAE,eAAe,CACvB,cAAc,CAAC,YAAY,CAAC,EAC5B,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,yBAAyB,CAAC,YAAY,SAAS,QAAQ;IACvE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,eAAe,CACxB,cAAc,CAAC,YAAY,CAAC,EAC5B,kBAAkB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAChD,CAAC;IACF,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC3C,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;CACxD;AAED,MAAM,MAAM,qBAAqB,GAAG;IACnC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACpB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACpB,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;CACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function createBlockExclusionOption(blockName: string): string;
2
+ //# sourceMappingURL=createBlockExclusionOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBlockExclusionOption.d.ts","sourceRoot":"","sources":["../../src/utils/createBlockExclusionOption.ts"],"names":[],"mappings":"AAEA,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,UAE3D"}
@@ -0,0 +1,5 @@
1
+ import { slugifyName } from "./slugifyName.js";
2
+ export function createBlockExclusionOption(blockName) {
3
+ return `exclude-${slugifyName(blockName)}`;
4
+ }
5
+ //# sourceMappingURL=createBlockExclusionOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBlockExclusionOption.js","sourceRoot":"","sources":["../../src/utils/createBlockExclusionOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC3D,OAAO,WAAW,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { AnyShape } from "bingo";
2
+ import { Preset } from "../types/presets.js";
3
+ export declare function getPresetByName<OptionsShape extends AnyShape>(presets: Preset<OptionsShape>[], requested: string): Preset<OptionsShape> | Error;
4
+ //# sourceMappingURL=getPresetByName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPresetByName.d.ts","sourceRoot":"","sources":["../../src/utils/getPresetByName.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,wBAAgB,eAAe,CAAC,YAAY,SAAS,QAAQ,EAC5D,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,EAC/B,SAAS,EAAE,MAAM,gCAcjB"}
@@ -0,0 +1,7 @@
1
+ import { slugifyName } from "./slugifyName.js";
2
+ export function getPresetByName(presets, requested) {
3
+ const presetsByName = new Map(Array.from(presets.map((preset) => [slugifyName(preset.about.name), preset])));
4
+ return (presetsByName.get(slugifyName(requested)) ??
5
+ new Error(`${requested} is not one of: ${Array.from(presetsByName.keys()).join(", ")}`));
6
+ }
7
+ //# sourceMappingURL=getPresetByName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPresetByName.js","sourceRoot":"","sources":["../../src/utils/getPresetByName.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,eAAe,CAC9B,OAA+B,EAC/B,SAAiB;IAEjB,MAAM,aAAa,GAAG,IAAI,GAAG,CAC5B,KAAK,CAAC,IAAI,CACT,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CACjE,CACD,CAAC;IAEF,OAAO,CACN,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,KAAK,CACR,GAAG,SAAS,mBAAmB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function slugifyName(original: string): string;
2
+ //# sourceMappingURL=slugifyName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slugifyName.d.ts","sourceRoot":"","sources":["../../src/utils/slugifyName.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAEE,MAAM,CACnD"}
@@ -0,0 +1,6 @@
1
+ import slugify from "slugify";
2
+ export function slugifyName(original) {
3
+ // @ts-expect-error -- https://github.com/simov/slugify/issues/196
4
+ return slugify(original, { lower: true });
5
+ }
6
+ //# sourceMappingURL=slugifyName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slugifyName.js","sourceRoot":"","sources":["../../src/utils/slugifyName.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC3C,kEAAkE;IAClE,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAW,CAAC;AACrD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function createBlockExclusionOption(blockName: string): string;
2
+ //# sourceMappingURL=createBlockExclusionOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBlockExclusionOption.d.ts","sourceRoot":"","sources":["../../src/utils.ts/createBlockExclusionOption.ts"],"names":[],"mappings":"AAEA,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,UAE3D"}
@@ -0,0 +1,5 @@
1
+ import { slugifyName } from "./slugifyName.js";
2
+ export function createBlockExclusionOption(blockName) {
3
+ return `exclude-${slugifyName(blockName)}`;
4
+ }
5
+ //# sourceMappingURL=createBlockExclusionOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createBlockExclusionOption.js","sourceRoot":"","sources":["../../src/utils.ts/createBlockExclusionOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC3D,OAAO,WAAW,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5C,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { AnyShape } from "bingo";
2
2
  import { Preset } from "../types/presets.js";
3
- export declare function getPresetByName<OptionsShape extends AnyShape>(presets: Preset<OptionsShape>[], requested: string): Error | Preset<OptionsShape>;
3
+ export declare function getPresetByName<OptionsShape extends AnyShape>(presets: Preset<OptionsShape>[], requested: string): Preset<OptionsShape> | Error;
4
4
  //# sourceMappingURL=getPresetByName.d.ts.map
@@ -1,7 +1,7 @@
1
- import { slugifyPresetName } from "./slugifyPresetName.js";
1
+ import { slugifyName } from "./slugifyName.js";
2
2
  export function getPresetByName(presets, requested) {
3
- const presetsByName = new Map(Array.from(presets.map((preset) => [slugifyPresetName(preset.about.name), preset])));
4
- return (presetsByName.get(slugifyPresetName(requested)) ??
3
+ const presetsByName = new Map(Array.from(presets.map((preset) => [slugifyName(preset.about.name), preset])));
4
+ return (presetsByName.get(slugifyName(requested)) ??
5
5
  new Error(`${requested} is not one of: ${Array.from(presetsByName.keys()).join(", ")}`));
6
6
  }
7
7
  //# sourceMappingURL=getPresetByName.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getPresetByName.js","sourceRoot":"","sources":["../../src/utils.ts/getPresetByName.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,UAAU,eAAe,CAC9B,OAA+B,EAC/B,SAAiB;IAEjB,MAAM,aAAa,GAAG,IAAI,GAAG,CAC5B,KAAK,CAAC,IAAI,CACT,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CACvE,CACD,CAAC;IAEF,OAAO,CACN,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,KAAK,CACR,GAAG,SAAS,mBAAmB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getPresetByName.js","sourceRoot":"","sources":["../../src/utils.ts/getPresetByName.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,eAAe,CAC9B,OAA+B,EAC/B,SAAiB;IAEjB,MAAM,aAAa,GAAG,IAAI,GAAG,CAC5B,KAAK,CAAC,IAAI,CACT,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CACjE,CACD,CAAC;IAEF,OAAO,CACN,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,KAAK,CACR,GAAG,SAAS,mBAAmB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5E,CACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function slugifyName(original: string): string;
2
+ //# sourceMappingURL=slugifyName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slugifyName.d.ts","sourceRoot":"","sources":["../../src/utils.ts/slugifyName.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAEE,MAAM,CACnD"}
@@ -0,0 +1,6 @@
1
+ import slugify from "slugify";
2
+ export function slugifyName(original) {
3
+ // @ts-expect-error -- https://github.com/simov/slugify/issues/196
4
+ return slugify(original, { lower: true });
5
+ }
6
+ //# sourceMappingURL=slugifyName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slugifyName.js","sourceRoot":"","sources":["../../src/utils.ts/slugifyName.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC3C,kEAAkE;IAClE,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAW,CAAC;AACrD,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare function slugifyPresetName(original: string): string;
1
+ export declare function slugifyName(original: string): string;
2
2
  //# sourceMappingURL=slugifyPresetName.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"slugifyPresetName.d.ts","sourceRoot":"","sources":["../../src/utils.ts/slugifyPresetName.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAEJ,MAAM,CACnD"}
1
+ {"version":3,"file":"slugifyPresetName.d.ts","sourceRoot":"","sources":["../../src/utils.ts/slugifyPresetName.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAEE,MAAM,CACnD"}
@@ -1,5 +1,5 @@
1
1
  import slugify from "slugify";
2
- export function slugifyPresetName(original) {
2
+ export function slugifyName(original) {
3
3
  // @ts-expect-error -- https://github.com/simov/slugify/issues/196
4
4
  return slugify(original, { lower: true });
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"slugifyPresetName.js","sourceRoot":"","sources":["../../src/utils.ts/slugifyPresetName.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IACjD,kEAAkE;IAClE,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAW,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"slugifyPresetName.js","sourceRoot":"","sources":["../../src/utils.ts/slugifyPresetName.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC3C,kEAAkE;IAClE,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAW,CAAC;AACrD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bingo-stratum",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "description": "Highly composable, customizable templating engine for Bingo. 🏭",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,13 +29,13 @@
29
29
  },
30
30
  "devDependencies": {
31
31
  "@types/node": "22.13.4",
32
- "bingo": "^0.5.2"
32
+ "bingo": "^0.5.3"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "zod": "^3.24.2",
36
- "bingo": "^0.5.2",
37
- "bingo-fs": "^0.5.2",
38
- "bingo-systems": "^0.5.2"
36
+ "bingo": "^0.5.3",
37
+ "bingo-fs": "^0.5.3",
38
+ "bingo-systems": "^0.5.3"
39
39
  },
40
40
  "engines": {
41
41
  "node": ">=18"