bingo-stratum 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,7 +16,7 @@ export function createBlock(blockDefinition) {
16
16
  block.produce = (context) => {
17
17
  return produce({
18
18
  ...context,
19
- addons: applyZodDefaults(addonsSchema, context.addons),
19
+ addons: applyZodDefaults(addonsSchema, context.addons, blockDefinition.about?.name),
20
20
  });
21
21
  };
22
22
  return block;
@@ -1 +1 @@
1
- {"version":3,"file":"createBlock.js","sourceRoot":"","sources":["../../src/creators/createBlock.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAWtE,MAAM,UAAU,WAAW,CAI1B,eAEwC;IAExC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,IAAI,cAAc,CAAC;IAE1D,sDAAsD;IACtD,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;IAI5C,4DAA4D;IAC5D,SAAS,KAAK,CAAC,MAAc;QAC5B,OAAO,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAEtC,KAAK,CAAC,OAAO,GAAG,CAAC,OAAgD,EAAE,EAAE;QACpE,OAAO,OAAO,CAAC;YACd,GAAG,OAAO;YACV,MAAM,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC;SACtD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,KAAyC,CAAC;AAClD,CAAC;AAED,SAAS,cAAc;IACtB,OAAO,EAAE,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"createBlock.js","sourceRoot":"","sources":["../../src/creators/createBlock.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAWtE,MAAM,UAAU,WAAW,CAI1B,eAEwC;IAExC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,IAAI,cAAc,CAAC;IAE1D,sDAAsD;IACtD,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;IAI5C,4DAA4D;IAC5D,SAAS,KAAK,CAAC,MAAc;QAC5B,OAAO,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAEtC,KAAK,CAAC,OAAO,GAAG,CAAC,OAAgD,EAAE,EAAE;QACpE,OAAO,OAAO,CAAC;YACd,GAAG,OAAO;YACV,MAAM,EAAE,gBAAgB,CACvB,YAAY,EACZ,OAAO,CAAC,MAAM,EACd,eAAe,CAAC,KAAK,EAAE,IAAI,CAC3B;SACD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,KAAyC,CAAC;AAClD,CAAC;AAED,SAAS,cAAc;IACtB,OAAO,EAAE,CAAC;AACX,CAAC"}
@@ -111,6 +111,29 @@ describe("createBlock", () => {
111
111
  },
112
112
  });
113
113
  });
114
+ it("throws when producing with an unknown Addon and the Block has an about name", () => {
115
+ const block = createBlock({
116
+ about: { name: "Example" },
117
+ addons: {
118
+ names: z.array(z.string()).default([]),
119
+ },
120
+ });
121
+ expect(() => block.produce({
122
+ addons: { names: [], unknown: true },
123
+ options: { name: "abc", preset: "test" },
124
+ })).toThrowErrorMatchingInlineSnapshot(`[Error: Unknown Addon(s) for Block Example: unknown.]`);
125
+ });
126
+ it("throws when producing with an unknown Addon and the Block has no about name", () => {
127
+ const block = createBlock({
128
+ addons: {
129
+ names: z.array(z.string()).default([]),
130
+ },
131
+ });
132
+ expect(() => block.produce({
133
+ addons: { names: [], unknown: true },
134
+ options: { name: "abc", preset: "test" },
135
+ })).toThrowErrorMatchingInlineSnapshot(`[Error: Unknown Addon(s) for Block: unknown.]`);
136
+ });
114
137
  it("produces Addons for another Block", () => {
115
138
  const blockReceiving = createBlock({
116
139
  addons: {
@@ -1 +1 @@
1
- {"version":3,"file":"createBlock.test.js","sourceRoot":"","sources":["../../src/creators/createBlock.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createBlock.test.js","sourceRoot":"","sources":["../../src/creators/createBlock.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { AnyOptionalShape, InferredObject } from "bingo";
2
2
  import { Block } from "../types/blocks.js";
3
- export declare function applyZodDefaults<Shape extends AnyOptionalShape>(shape: Shape, value: InferredObject<Shape> | undefined): InferredObject<Shape>;
3
+ export declare function applyZodDefaults<Shape extends AnyOptionalShape>(shape: Shape, value: InferredObject<Shape> | undefined, blockName?: string): InferredObject<Shape>;
4
4
  export declare function isBlockWithName<Addons extends object | undefined, Options extends object>(block: Block<Addons, Options>): block is Block<Addons, Options> & {
5
5
  about: {
6
6
  name: string;
@@ -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,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"}
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,EACxC,SAAS,CAAC,EAAE,MAAM,GAChB,cAAc,CAAC,KAAK,CAAC,CAgBvB;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"}
@@ -1,6 +1,14 @@
1
1
  import { z } from "zod";
2
- export function applyZodDefaults(shape, value) {
3
- return z.object(shape).parse(value ?? {});
2
+ export function applyZodDefaults(shape, value, blockName) {
3
+ const result = z.strictObject(shape).safeParse(value ?? {});
4
+ if (result.success) {
5
+ return result.data;
6
+ }
7
+ const unrecognized = result.error.issues.find((issue) => issue.code === "unrecognized_keys");
8
+ if (unrecognized) {
9
+ throw new Error(`Unknown Addon(s) for ${blockName ? `Block ${blockName}` : "Block"}: ${unrecognized.keys.join(", ")}.`);
10
+ }
11
+ throw result.error;
4
12
  }
5
13
  export function isBlockWithName(block) {
6
14
  return !!block.about?.name;
@@ -1 +1 @@
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
+ {"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,EACxC,SAAkB;IAElB,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,IAA6B,CAAC;IAC7C,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAC7C,CAAC;IACF,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACd,wBAAwB,SAAS,CAAC,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtG,CAAC;IACH,CAAC;IAED,MAAM,MAAM,CAAC,KAAK,CAAC;AACpB,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"}
package/lib/index.d.ts CHANGED
@@ -8,4 +8,5 @@ export type * from "./types/blocks.js";
8
8
  export type * from "./types/creations.js";
9
9
  export type * from "./types/presets.js";
10
10
  export type * from "./types/refinements.js";
11
+ export type * from "./types/templates.js";
11
12
  //# 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,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,wBAAwB,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,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,mBAAmB,kBAAkB,CAAC;AACtC,mBAAmB,mBAAmB,CAAC;AACvC,mBAAmB,sBAAsB,CAAC;AAC1C,mBAAmB,oBAAoB,CAAC;AACxC,mBAAmB,wBAAwB,CAAC;AAC5C,mBAAmB,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bingo-stratum",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
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": {
@@ -29,14 +29,14 @@
29
29
  "devDependencies": {
30
30
  "@types/node": "24.10.1",
31
31
  "zod": "^4.4.3",
32
- "bingo": "^0.13.0",
32
+ "bingo": "^0.13.1",
33
33
  "bingo-fs": "^0.6.0",
34
34
  "bingo-systems": "^0.7.0"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "zod": "^4.4.3",
38
- "bingo": "^0.13.0",
39
38
  "bingo-fs": "^0.6.0",
39
+ "bingo": "^0.13.1",
40
40
  "bingo-systems": "^0.7.0"
41
41
  },
42
42
  "engines": {