bingo-stratum 0.5.9 → 0.5.10

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.
@@ -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;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,CA0G/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;AAM/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+H/B"}
@@ -3,7 +3,8 @@ import { z } from "zod";
3
3
  import { produceStratumTemplate, } from "../producers/produceStratumTemplate.js";
4
4
  import { createBlockRefinementOption } from "../utils/createBlockRefinementOption.js";
5
5
  import { slugifyName } from "../utils/slugifyName.js";
6
- import { inferPreset } from "./inferPreset.js";
6
+ import { inferExistingBlocks } from "./inferExistingBlocks.js";
7
+ import { isBlockWithName } from "./utils.js";
7
8
  export function createStratumTemplate(base, templateDefinition) {
8
9
  const namedBlocks = Array.from(new Set(templateDefinition.presets
9
10
  .flatMap((preset) => preset.blocks.map((block) => block.about?.name))
@@ -50,22 +51,33 @@ export function createStratumTemplate(base, templateDefinition) {
50
51
  .sort(([a], [b]) => a.localeCompare(b))),
51
52
  },
52
53
  prepare(context) {
53
- // TODO: Why are these type assertions necessary?
54
- // https://github.com/JoshuaKGoldberg/bingo/issues/287
54
+ const fromBase = base.prepare?.(context) ??
55
+ // TODO: Why is this type assertion necessary?
56
+ // https://github.com/JoshuaKGoldberg/bingo/issues/287
57
+ {};
58
+ // TODO: It would be better to run the base.prepare first to generate option defaults.
59
+ // https://github.com/JoshuaKGoldberg/bingo/issues/289
60
+ const existing = context.files && inferExistingBlocks(context, template);
61
+ if (!existing) {
62
+ return fromBase;
63
+ }
64
+ // Enable --add-* options for any inferred existing Block not matched with an explicit --exclude-*
65
+ const blockAdds = (existing.blocks ?? [])
66
+ .filter(isBlockWithName)
67
+ .filter((block) => !context.options[createBlockRefinementOption("exclude", block.about.name)])
68
+ .map((block) => createBlockRefinementOption("add", block.about.name));
69
+ if (blockAdds.length) {
70
+ context.log(`Detected ${blockAdds.map((add) => `--${chalk.blue(add)}`).join(" ")} from existing files on disk.`);
71
+ }
55
72
  return {
73
+ ...fromBase,
74
+ ...Object.fromEntries(blockAdds.map((add) => [add, true])),
56
75
  preset: () => {
57
- if (context.options.preset) {
58
- return context.options.preset;
76
+ if (existing.preset) {
77
+ context.log(`Detected ${chalk.blue(`--preset ${existing.preset}`)} from existing files on disk.`);
59
78
  }
60
- // TODO: It would be better to run the base.prepare first to generate option defaults.
61
- // https://github.com/JoshuaKGoldberg/bingo/issues/289
62
- const preset = context.files && inferPreset(context, templateDefinition.presets);
63
- if (preset) {
64
- context.log(`Detected ${chalk.blue(`--preset ${preset}`)} from existing files on disk.`);
65
- }
66
- return preset;
79
+ return existing.preset;
67
80
  },
68
- ...(base.prepare?.(context) ?? {}),
69
81
  };
70
82
  },
71
83
  produce(context) {
@@ -1 +1 @@
1
- {"version":3,"file":"createStratumTemplate.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createStratumTemplate.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ import chalk from "chalk";
3
3
  import { describe, expect, it, vi } from "vitest";
4
4
  import { z } from "zod";
5
5
  import { createBase } from "./createBase.js";
6
- const mockInferPreset = vi.fn();
7
- vi.mock("./inferPreset.js", () => ({
8
- get inferPreset() {
9
- return mockInferPreset;
6
+ const mockInferExistingBlocks = vi.fn();
7
+ vi.mock("./inferExistingBlocks.js", () => ({
8
+ get inferExistingBlocks() {
9
+ return mockInferExistingBlocks;
10
10
  },
11
11
  }));
12
12
  const base = createBase({
@@ -74,50 +74,112 @@ describe("createStratumTemplate", () => {
74
74
  "exclude-example-block",
75
75
  ]);
76
76
  });
77
- describe("--preset", () => {
77
+ describe("inference", () => {
78
78
  const templateWithPreset = base.createStratumTemplate({
79
79
  presets: [preset],
80
80
  });
81
- it("does not call inferPreset when context.files is not provided", async () => {
81
+ it("does not call inferExistingBlocks when context.files is not provided", async () => {
82
82
  const lazyOptions = templateWithPreset.prepare({
83
83
  log: mockLog,
84
84
  options: mockOptions,
85
85
  take: vi.fn(),
86
86
  });
87
87
  const options = await allPropertiesLazy(lazyOptions);
88
- expect(mockInferPreset).not.toHaveBeenCalled();
88
+ expect(mockInferExistingBlocks).not.toHaveBeenCalled();
89
89
  expect(options).toEqual({});
90
90
  });
91
- it("does not call inferPreset when a preset option is manually provided", async () => {
92
- const preset = "example";
91
+ it("does not display a log when inferExistingBlocks returns no blocks or preset", async () => {
92
+ mockInferExistingBlocks.mockReturnValueOnce({
93
+ blocks: [],
94
+ preset: undefined,
95
+ });
93
96
  const lazyOptions = templateWithPreset.prepare({
97
+ files: {
98
+ "README.md": "...",
99
+ },
94
100
  log: mockLog,
95
- // TODO: why is this type assertion necessary?
96
- // https://github.com/JoshuaKGoldberg/bingo/issues/287
97
- options: { ...mockOptions, preset },
101
+ options: mockOptions,
98
102
  take: vi.fn(),
99
103
  });
100
104
  const options = await allPropertiesLazy(lazyOptions);
101
- expect(mockInferPreset).not.toHaveBeenCalled();
102
- expect(options).toEqual({ preset });
105
+ expect(mockLog).not.toHaveBeenCalled();
106
+ expect(options).toEqual({});
103
107
  });
104
- it("does not display a log when inferPreset returns undefined", async () => {
105
- mockInferPreset.mockReturnValueOnce(undefined);
108
+ it("does not display a log when inferExistingBlocks infers a block that was explicitly excluded", async () => {
109
+ mockInferExistingBlocks.mockReturnValueOnce({
110
+ blocks: [],
111
+ preset: undefined,
112
+ });
106
113
  const lazyOptions = templateWithPreset.prepare({
107
114
  files: {
108
115
  "README.md": "...",
109
116
  },
110
117
  log: mockLog,
111
- options: mockOptions,
118
+ options: {
119
+ ...mockOptions,
120
+ "exclude-a": true,
121
+ },
112
122
  take: vi.fn(),
113
123
  });
114
124
  const options = await allPropertiesLazy(lazyOptions);
115
125
  expect(mockLog).not.toHaveBeenCalled();
116
126
  expect(options).toEqual({});
117
127
  });
118
- it("displays a log when inferPreset returns a preset", async () => {
128
+ it("displays a log when inferExistingBlocks infers one block", async () => {
129
+ const blockA = base.createBlock({
130
+ about: { name: "A" },
131
+ produce: vi.fn(),
132
+ });
133
+ mockInferExistingBlocks.mockReturnValueOnce({
134
+ blocks: [blockA],
135
+ preset: undefined,
136
+ });
137
+ const lazyOptions = templateWithPreset.prepare({
138
+ files: {
139
+ "README.md": "...",
140
+ },
141
+ log: mockLog,
142
+ options: mockOptions,
143
+ take: vi.fn(),
144
+ });
145
+ const options = await allPropertiesLazy(lazyOptions);
146
+ expect(mockLog).toHaveBeenCalledWith(`Detected ${chalk.blue(`--add-a`)} from existing files on disk.`);
147
+ expect(options).toEqual({ "add-a": true });
148
+ });
149
+ it("displays a log when inferExistingBlocks infers two blocks", async () => {
150
+ const blockA = base.createBlock({
151
+ about: { name: "A" },
152
+ produce: vi.fn(),
153
+ });
154
+ const blockB = base.createBlock({
155
+ about: { name: "B" },
156
+ produce: vi.fn(),
157
+ });
158
+ mockInferExistingBlocks.mockReturnValueOnce({
159
+ blocks: [blockA, blockB],
160
+ preset: undefined,
161
+ });
162
+ const lazyOptions = templateWithPreset.prepare({
163
+ files: {
164
+ "README.md": "...",
165
+ },
166
+ log: mockLog,
167
+ options: mockOptions,
168
+ take: vi.fn(),
169
+ });
170
+ const options = await allPropertiesLazy(lazyOptions);
171
+ expect(mockLog).toHaveBeenCalledWith(`Detected ${chalk.blue(`--add-a`)} ${chalk.blue(`--add-b`)} from existing files on disk.`);
172
+ expect(options).toEqual({
173
+ "add-a": true,
174
+ "add-b": true,
175
+ });
176
+ });
177
+ it("displays a log when inferExistingBlocks infers a preset", async () => {
119
178
  const presetName = "example";
120
- mockInferPreset.mockReturnValueOnce(presetName);
179
+ mockInferExistingBlocks.mockReturnValueOnce({
180
+ blocks: [],
181
+ preset: presetName,
182
+ });
121
183
  const lazyOptions = templateWithPreset.prepare({
122
184
  files: {
123
185
  "README.md": "...",
@@ -1 +1 @@
1
- {"version":3,"file":"createStratumTemplate.test.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAEhC,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,IAAI,WAAW;QACd,OAAO,eAAe,CAAC;IACxB,CAAC;CACD,CAAC,CAAC,CAAC;AAEJ,MAAM,IAAI,GAAG,UAAU,CAAC;IACvB,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IAChC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,MAAM,EAAE,EAAE;CACV,CAAC,CAAC;AACH,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAExB,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAE1C,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,2FAA2F,EAAE,GAAG,EAAE;YACpG,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;gBACpC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;aAChB,CAAC,CAAC;YACH,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;gBAC3C,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;gBACvC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;aAChB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAC3C,MAAM,EAAE,CAAC,kBAAkB,CAAC;gBAC5B,OAAO,EAAE;oBACR,IAAI,CAAC,YAAY,CAAC;wBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;wBACjC,MAAM,EAAE,CAAC,iBAAiB,CAAC;qBAC3B,CAAC;iBACF;aACD,CAAC,CAAC;YAEH,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAC3C,OAAO,EAAE;oBACR,IAAI,CAAC,YAAY,CAAC;wBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC1B,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;qBAChD,CAAC;iBACF;aACD,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAC3C,OAAO,EAAE;oBACR,IAAI,CAAC,YAAY,CAAC;wBACjB,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;wBACjC,MAAM,EAAE;4BACP,IAAI,CAAC,WAAW,CAAC;gCAChB,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;gCAChC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;6BAChB,CAAC;yBACF;qBACD,CAAC;iBACF;aACD,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC7C,MAAM;gBACN,QAAQ;gBACR,mBAAmB;gBACnB,uBAAuB;aACvB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YACzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBACrD,OAAO,EAAE,CAAC,MAAM,CAAC;aACjB,CAAC,CAAC;YAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;gBAC7E,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC;oBAC9C,GAAG,EAAE,OAAO;oBACZ,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;iBACb,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAErD,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;gBACpF,MAAM,MAAM,GAAG,SAAS,CAAC;gBACzB,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC;oBAC9C,GAAG,EAAE,OAAO;oBACZ,8CAA8C;oBAC9C,sDAAsD;oBACtD,OAAO,EAAE,EAAE,GAAG,WAAW,EAAE,MAAM,EAAiC;oBAClE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;iBACb,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAErD,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBAC1E,eAAe,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBAE/C,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC;oBAC9C,KAAK,EAAE;wBACN,WAAW,EAAE,KAAK;qBAClB;oBACD,GAAG,EAAE,OAAO;oBACZ,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;iBACb,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAErD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACvC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBACjE,MAAM,UAAU,GAAG,SAAS,CAAC;gBAC7B,eAAe,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBAEhD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC;oBAC9C,KAAK,EAAE;wBACN,WAAW,EAAE,KAAK;qBAClB;oBACD,GAAG,EAAE,OAAO;oBACZ,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;iBACb,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBAErD,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CACnC,YAAY,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,+BAA+B,CACzE,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"createStratumTemplate.test.js","sourceRoot":"","sources":["../../src/creators/createStratumTemplate.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { AnyShape, InferredObject, TemplatePrepareContext } from "bingo";
2
+ import { Block } from "../types/blocks.js";
3
+ import { StratumTemplate } from "../types/templates.js";
4
+ export declare function inferExistingBlocks<OptionsShape extends AnyShape, Refinements>(context: Pick<TemplatePrepareContext<Partial<InferredObject<OptionsShape>>, Refinements>, "files" | "options">, template: StratumTemplate<OptionsShape>): {
5
+ blocks?: undefined;
6
+ preset?: undefined;
7
+ } | {
8
+ blocks: Block<object | undefined, InferredObject<OptionsShape>>[];
9
+ preset: string;
10
+ };
11
+ //# sourceMappingURL=inferExistingBlocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferExistingBlocks.d.ts","sourceRoot":"","sources":["../../src/creators/inferExistingBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EAEd,sBAAsB,EACtB,MAAM,OAAO,CAAC;AAQf,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,wBAAgB,mBAAmB,CAAC,YAAY,SAAS,QAAQ,EAAE,WAAW,EAC7E,OAAO,EAAE,IAAI,CACZ,sBAAsB,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,EAC1E,OAAO,GAAG,SAAS,CACnB,EACD,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC;;;;;;EAkEvC"}
@@ -0,0 +1,95 @@
1
+ import { mergeCreations, } from "bingo";
2
+ import { produceBlock, } from "../producers/produceBlock.js";
3
+ import { slugifyName } from "../utils/slugifyName.js";
4
+ export function inferExistingBlocks(context, template) {
5
+ const blockSettings = {
6
+ ...context,
7
+ // TODO: It would be better to run the base.prepare first to generate option defaults.
8
+ // https://github.com/JoshuaKGoldberg/bingo/issues/289
9
+ options: context.options,
10
+ };
11
+ let record;
12
+ const existingProductions = new Map(template.blocks.map((block) => {
13
+ try {
14
+ return [
15
+ block,
16
+ produceBlock(block, blockSettings),
17
+ ];
18
+ }
19
+ catch {
20
+ return [block, {}];
21
+ }
22
+ }));
23
+ for (const preset of template.presets) {
24
+ const existingPresetProduction = preset.blocks
25
+ .map((block) => existingProductions.get(block))
26
+ .filter((x) => !!x)
27
+ .reduce(mergeCreations, {});
28
+ const counted = countMatchedFilePaths(context.files, existingPresetProduction.files);
29
+ const percentage = counted.matched / counted.created;
30
+ if (record) {
31
+ if (percentage > record.percentage) {
32
+ record = { percentage, preset };
33
+ }
34
+ }
35
+ else {
36
+ record = { percentage, preset };
37
+ }
38
+ }
39
+ const existingPreset = record && record.percentage >= 0.35 ? record.preset : undefined;
40
+ if (!existingPreset) {
41
+ return {};
42
+ }
43
+ const existingBlocks = Array.from(existingProductions)
44
+ .filter(([, production]) => {
45
+ const counted = countMatchedFilePaths(context.files, production.files);
46
+ return !!counted.matched && !counted.missed;
47
+ })
48
+ .map(([block]) => block);
49
+ const blocksInPreset = new Set(existingPreset.blocks);
50
+ return {
51
+ blocks: existingBlocks.filter((block) => !blocksInPreset.has(block)),
52
+ preset: slugifyName(existingPreset.about.name),
53
+ };
54
+ }
55
+ function countMatchedFilePaths(created, produced) {
56
+ const found = {
57
+ created: 0,
58
+ matched: 0,
59
+ missed: 0,
60
+ };
61
+ const queue = [
62
+ [created, produced],
63
+ ];
64
+ while (queue.length) {
65
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
66
+ const [currentCreated, currentProduced] = queue.pop();
67
+ if (isCreatedFile(currentCreated)) {
68
+ found.created += 1;
69
+ if (isCreatedFile(currentProduced)) {
70
+ found.matched += 1;
71
+ }
72
+ continue;
73
+ }
74
+ else if (isCreatedFile(currentProduced)) {
75
+ found.missed += 1;
76
+ }
77
+ if (isCreatedDirectory(currentCreated) &&
78
+ isCreatedDirectory(currentProduced)) {
79
+ for (const key of new Set([
80
+ ...Object.keys(currentCreated),
81
+ ...Object.keys(currentProduced),
82
+ ])) {
83
+ queue.push([currentCreated[key], currentProduced[key]]);
84
+ }
85
+ }
86
+ }
87
+ return found;
88
+ }
89
+ function isCreatedDirectory(entry) {
90
+ return !!entry && typeof entry === "object" && !Array.isArray(entry);
91
+ }
92
+ function isCreatedFile(entry) {
93
+ return typeof entry === "string" || Array.isArray(entry);
94
+ }
95
+ //# sourceMappingURL=inferExistingBlocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferExistingBlocks.js","sourceRoot":"","sources":["../../src/creators/inferExistingBlocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=inferExistingBlocks.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferExistingBlocks.test.d.ts","sourceRoot":"","sources":["../../src/creators/inferExistingBlocks.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,183 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { z } from "zod";
3
+ import { createBase } from "./createBase.js";
4
+ import { inferExistingBlocks } from "./inferExistingBlocks.js";
5
+ const base = createBase({
6
+ options: { name: z.string() },
7
+ });
8
+ const blockA = base.createBlock({
9
+ about: { name: "A" },
10
+ produce() {
11
+ return {
12
+ files: {
13
+ a: "...",
14
+ },
15
+ };
16
+ },
17
+ });
18
+ const blockB = base.createBlock({
19
+ about: { name: "B" },
20
+ produce() {
21
+ return {
22
+ files: {
23
+ b: "...",
24
+ },
25
+ };
26
+ },
27
+ });
28
+ const blockAB = base.createBlock({
29
+ produce() {
30
+ return {
31
+ files: {
32
+ a: "...",
33
+ b: "...",
34
+ },
35
+ };
36
+ },
37
+ });
38
+ describe("inferPreset", () => {
39
+ describe("blocks", () => {
40
+ it("returns no blocks when no blocks match and a preset is inferred", () => {
41
+ const presetAB = base.createPreset({
42
+ about: { name: "AB" },
43
+ blocks: [blockA, blockB],
44
+ });
45
+ const context = {
46
+ files: {
47
+ b: "...",
48
+ },
49
+ options: {
50
+ name: "...",
51
+ },
52
+ };
53
+ const template = base.createStratumTemplate({
54
+ presets: [presetAB],
55
+ });
56
+ const actual = inferExistingBlocks(context, template);
57
+ expect(actual.blocks).toEqual([]);
58
+ });
59
+ it("returns no blocks when a block only partially matches and a preset is inferred", () => {
60
+ const presetAB = base.createPreset({
61
+ about: { name: "AB" },
62
+ blocks: [blockAB],
63
+ });
64
+ const context = {
65
+ files: {
66
+ a: "...",
67
+ },
68
+ options: {
69
+ name: "...",
70
+ },
71
+ };
72
+ const template = base.createStratumTemplate({
73
+ presets: [presetAB],
74
+ });
75
+ const actual = inferExistingBlocks(context, template);
76
+ expect(actual.blocks).toEqual([]);
77
+ });
78
+ it("returns no blocks when one block in the inferred preset matches", () => {
79
+ const presetA = base.createPreset({
80
+ about: { name: "A" },
81
+ blocks: [blockA],
82
+ });
83
+ const context = {
84
+ files: {
85
+ a: "...",
86
+ },
87
+ options: {
88
+ name: "...",
89
+ },
90
+ };
91
+ const template = base.createStratumTemplate({
92
+ blocks: [blockB],
93
+ presets: [presetA],
94
+ });
95
+ const actual = inferExistingBlocks(context, template);
96
+ expect(actual.blocks).toEqual([]);
97
+ });
98
+ it("returns only inferred blocks not in the preset when blocks in and out of the inferred preset match", () => {
99
+ const presetA = base.createPreset({
100
+ about: { name: "A" },
101
+ blocks: [blockA],
102
+ });
103
+ const context = {
104
+ files: {
105
+ a: "...",
106
+ b: "...",
107
+ },
108
+ options: {
109
+ name: "...",
110
+ },
111
+ };
112
+ const template = base.createStratumTemplate({
113
+ blocks: [blockB],
114
+ presets: [presetA],
115
+ });
116
+ const actual = inferExistingBlocks(context, template);
117
+ expect(actual.blocks).toEqual([blockB]);
118
+ });
119
+ });
120
+ describe("preset", () => {
121
+ const files = {
122
+ a: "...",
123
+ b: "...",
124
+ c: "...",
125
+ d: "...",
126
+ e: "...",
127
+ };
128
+ const context = {
129
+ files,
130
+ options: {
131
+ name: "...",
132
+ },
133
+ };
134
+ const presetErrors = base.createPreset({
135
+ about: { name: "Errors" },
136
+ blocks: [
137
+ base.createBlock({
138
+ produce() {
139
+ throw new Error("Oh no!");
140
+ },
141
+ }),
142
+ ],
143
+ });
144
+ const presetLowPercentageA = base.createPreset({
145
+ about: { name: "Low Percentage A" },
146
+ blocks: [blockA],
147
+ });
148
+ const presetLowPercentageB = base.createPreset({
149
+ about: { name: "Low Percentage B" },
150
+ blocks: [blockB],
151
+ });
152
+ const presetHighPercentage = base.createPreset({
153
+ about: { name: "High Percentage" },
154
+ blocks: [blockAB],
155
+ });
156
+ it("infers no preset without erroring when a block throws an error", () => {
157
+ const template = base.createStratumTemplate({
158
+ presets: [presetErrors],
159
+ });
160
+ const actual = inferExistingBlocks(context, template);
161
+ expect(actual.preset).toBeUndefined();
162
+ });
163
+ it("infers no preset when no preset has a 35% match", () => {
164
+ const template = base.createStratumTemplate({
165
+ presets: [presetLowPercentageA, presetLowPercentageB],
166
+ });
167
+ const actual = inferExistingBlocks(context, template);
168
+ expect(actual.preset).toBeUndefined();
169
+ });
170
+ it("infers the matching preset when a preset has a 35% match", () => {
171
+ const template = base.createStratumTemplate({
172
+ presets: [
173
+ presetLowPercentageA,
174
+ presetLowPercentageB,
175
+ presetHighPercentage,
176
+ ],
177
+ });
178
+ const actual = inferExistingBlocks(context, template);
179
+ expect(actual.preset).toBe("high-percentage");
180
+ });
181
+ });
182
+ });
183
+ //# sourceMappingURL=inferExistingBlocks.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inferExistingBlocks.test.js","sourceRoot":"","sources":["../../src/creators/inferExistingBlocks.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,10 @@
1
1
  import { AnyOptionalShape, InferredObject } from "bingo";
2
+ import { Block } from "../types/blocks.js";
2
3
  export declare function applyZodDefaults<Shape extends AnyOptionalShape>(shape: Shape, value: InferredObject<Shape> | undefined): InferredObject<Shape>;
4
+ export declare function isBlockWithName<Addons extends object | undefined, Options extends object>(block: Block<Addons, Options>): block is Block<Addons, Options> & {
5
+ about: {
6
+ name: string;
7
+ };
8
+ };
3
9
  export declare function isDefinitionWithAddons(definition: object): definition is object & Record<"addons", unknown>;
4
10
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/creators/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGzD,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,gBAAgB,EAC9D,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,SAAS,GACtC,cAAc,CAAC,KAAK,CAAC,CAEvB;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,oDAExD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/creators/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,gBAAgB,EAC9D,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,SAAS,GACtC,cAAc,CAAC,KAAK,CAAC,CAEvB;AAED,wBAAgB,eAAe,CAC9B,MAAM,SAAS,MAAM,GAAG,SAAS,EACjC,OAAO,SAAS,MAAM,EAEtB,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAE/D;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,oDAExD"}
@@ -2,6 +2,9 @@ import { z } from "zod";
2
2
  export function applyZodDefaults(shape, value) {
3
3
  return z.object(shape).parse(value ?? {});
4
4
  }
5
+ export function isBlockWithName(block) {
6
+ return !!block.about?.name;
7
+ }
5
8
  export function isDefinitionWithAddons(definition) {
6
9
  return "addons" in definition;
7
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/creators/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,gBAAgB,CAC/B,KAAY,EACZ,KAAwC;IAExC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAA0B,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACxD,OAAO,QAAQ,IAAI,UAAU,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/creators/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,gBAAgB,CAC/B,KAAY,EACZ,KAAwC;IAExC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAA0B,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,eAAe,CAI9B,KAA6B;IAE7B,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACxD,OAAO,QAAQ,IAAI,UAAU,CAAC;AAC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"applyBlockRefinements.d.ts","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAU3D,wBAAgB,qBAAqB,CAAC,OAAO,SAAS,MAAM,EAC3D,eAAe,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,EACrD,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,wCAoE1D"}
1
+ {"version":3,"file":"applyBlockRefinements.d.ts","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAQ3D,wBAAgB,qBAAqB,CAAC,OAAO,SAAS,MAAM,EAC3D,eAAe,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,EACrD,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,wCAoE1D"}
@@ -1,11 +1,12 @@
1
1
  import { CachedFactory } from "cached-factory";
2
+ import { isBlockWithName } from "../creators/utils.js";
2
3
  import { slugifyName } from "../utils/slugifyName.js";
3
4
  export function applyBlockRefinements(blocksAvailable, blocksInitial, options, { add = [], exclude = [] } = {}) {
4
5
  const allOptions = new Set(Object.entries(options)
5
6
  .filter(([, value]) => !!value)
6
7
  .map(([key]) => key));
7
8
  const allBlocksByName = new Map(blocksAvailable
8
- .filter((block) => !!block.about?.name)
9
+ .filter(isBlockWithName)
9
10
  .map((block) => [slugifyName(block.about.name), block]));
10
11
  const refinementsByBlock = new CachedFactory(() => ({}));
11
12
  let hadBlockRefinement = false;
@@ -1 +1 @@
1
- {"version":3,"file":"applyBlockRefinements.js","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"applyBlockRefinements.js","sourceRoot":"","sources":["../../src/producers/applyBlockRefinements.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,9 @@ import { IntakeDirectory } from "bingo-fs";
3
3
  import { StratumRefinements } from "../types/refinements.js";
4
4
  import { StratumTemplate } from "../types/templates.js";
5
5
  export interface ProduceStratumTemplateSettings<OptionsShape extends AnyShape> {
6
+ /**
7
+ * Existing file creations to be used for Blocks that can intake Addons.
8
+ */
6
9
  files?: IntakeDirectory;
7
10
  mode?: ProductionMode;
8
11
  offline?: boolean;
@@ -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;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,MAAM,WAAW,8BAA8B,CAAC,YAAY,SAAS,QAAQ;IAC5E,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,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,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAgB,GAChB,EAAE,8BAA8B,CAAC,YAAY,CAAC,MAqB/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;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAKxD,MAAM,WAAW,8BAA8B,CAAC,YAAY,SAAS,QAAQ;IAC5E;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,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,KAAK,EACL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAgB,GAChB,EAAE,8BAA8B,CAAC,YAAY,CAAC,MAqB/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"produceStratumTemplate.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUnD,MAAM,UAAU,sBAAsB,CAGrC,QAAuC,EACvC,EACC,KAAK,EACL,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,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,MAAM,EACb,OAAO,EACP,WAAW,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,EAAE;QAC5B,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;KACP,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"produceStratumTemplate.js","sourceRoot":"","sources":["../../src/producers/produceStratumTemplate.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAanD,MAAM,UAAU,sBAAsB,CAGrC,QAAuC,EACvC,EACC,KAAK,EACL,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,QAAQ,CAAC,MAAM,EACf,MAAM,CAAC,MAAM,EACb,OAAO,EACP,WAAW,CAAC,MAAM,CAClB,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,EAAE;QAC5B,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,KAAK;QACL,IAAI;QACJ,OAAO;QACP,OAAO;KACP,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bingo-stratum",
3
- "version": "0.5.9",
3
+ "version": "0.5.10",
4
4
  "description": "Highly composable, customizable templating engine for Bingo. 🏭",
5
5
  "homepage": "https://www.create.bingo/engines/stratum/packages/bingo-stratum",
6
6
  "repository": {
@@ -32,12 +32,12 @@
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "22.13.9",
35
- "bingo": "^0.5.11"
35
+ "bingo": "^0.5.13"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "zod": "^3.24.2",
39
- "bingo": "^0.5.11",
40
- "bingo-fs": "^0.5.4",
39
+ "bingo": "^0.5.13",
40
+ "bingo-fs": "^0.5.5",
41
41
  "bingo-systems": "^0.5.4"
42
42
  },
43
43
  "engines": {