@metamesh/generator-sdk 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +46 -277
  3. package/dist/contours.d.ts +36 -0
  4. package/dist/contours.d.ts.map +1 -0
  5. package/dist/contours.js +150 -0
  6. package/dist/contours.js.map +1 -0
  7. package/dist/contracts.d.ts +15 -8
  8. package/dist/contracts.d.ts.map +1 -1
  9. package/dist/curve-data.d.ts +11 -0
  10. package/dist/curve-data.d.ts.map +1 -0
  11. package/dist/curve-data.js +53 -0
  12. package/dist/curve-data.js.map +1 -0
  13. package/dist/generator-package/constants.d.ts +2 -2
  14. package/dist/generator-package/constants.js +2 -2
  15. package/dist/generator-package/errors.d.ts +19 -1
  16. package/dist/generator-package/errors.d.ts.map +1 -1
  17. package/dist/generator-package/errors.js +58 -11
  18. package/dist/generator-package/errors.js.map +1 -1
  19. package/dist/generator-package/index.d.ts +7 -2
  20. package/dist/generator-package/index.d.ts.map +1 -1
  21. package/dist/generator-package/index.js +52 -9
  22. package/dist/generator-package/index.js.map +1 -1
  23. package/dist/generator-package/portable-data.d.ts +12 -0
  24. package/dist/generator-package/portable-data.d.ts.map +1 -0
  25. package/dist/generator-package/portable-data.js +102 -0
  26. package/dist/generator-package/portable-data.js.map +1 -0
  27. package/dist/generator-package/schemas/common.schema.d.ts.map +1 -1
  28. package/dist/generator-package/schemas/common.schema.js +4 -2
  29. package/dist/generator-package/schemas/common.schema.js.map +1 -1
  30. package/dist/generator-package/schemas/definition.schema.d.ts +456 -45
  31. package/dist/generator-package/schemas/definition.schema.d.ts.map +1 -1
  32. package/dist/generator-package/schemas/definition.schema.js +5 -2
  33. package/dist/generator-package/schemas/definition.schema.js.map +1 -1
  34. package/dist/generator-package/schemas/manifest.schema.d.ts +183 -50
  35. package/dist/generator-package/schemas/manifest.schema.d.ts.map +1 -1
  36. package/dist/generator-package/schemas/manifest.schema.js.map +1 -1
  37. package/dist/generator-package/schemas/parameter-document-json-schema.d.ts +4 -0
  38. package/dist/generator-package/schemas/parameter-document-json-schema.d.ts.map +1 -0
  39. package/dist/generator-package/schemas/parameter-document-json-schema.js +17 -0
  40. package/dist/generator-package/schemas/parameter-document-json-schema.js.map +1 -0
  41. package/dist/generator-package/schemas/parameter.schema.d.ts +178 -242
  42. package/dist/generator-package/schemas/parameter.schema.d.ts.map +1 -1
  43. package/dist/generator-package/schemas/parameter.schema.js +171 -70
  44. package/dist/generator-package/schemas/parameter.schema.js.map +1 -1
  45. package/dist/generator-package/schemas/preset.schema.d.ts.map +1 -1
  46. package/dist/generator-package/schemas/preset.schema.js +4 -2
  47. package/dist/generator-package/schemas/preset.schema.js.map +1 -1
  48. package/dist/generator-package/validate-definition.d.ts +4 -7
  49. package/dist/generator-package/validate-definition.d.ts.map +1 -1
  50. package/dist/generator-package/validate-definition.js +210 -263
  51. package/dist/generator-package/validate-definition.js.map +1 -1
  52. package/dist/generator-package/validate-manifest.d.ts.map +1 -1
  53. package/dist/generator-package/validate-manifest.js +5 -5
  54. package/dist/generator-package/validate-manifest.js.map +1 -1
  55. package/dist/index.d.ts +5 -3
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +2 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/parameter-contracts.d.ts +63 -31
  60. package/dist/parameter-contracts.d.ts.map +1 -1
  61. package/dist/parameters/issues.d.ts.map +1 -1
  62. package/dist/parameters/issues.js +17 -11
  63. package/dist/parameters/issues.js.map +1 -1
  64. package/dist/parameters/recovery.d.ts.map +1 -1
  65. package/dist/parameters/recovery.js +12 -8
  66. package/dist/parameters/recovery.js.map +1 -1
  67. package/dist/parameters/strict.d.ts.map +1 -1
  68. package/dist/parameters/strict.js +8 -7
  69. package/dist/parameters/strict.js.map +1 -1
  70. package/dist/parameters/values.d.ts +1 -0
  71. package/dist/parameters/values.d.ts.map +1 -1
  72. package/dist/parameters/values.js +8 -3
  73. package/dist/parameters/values.js.map +1 -1
  74. package/dist/parameters.schema.json +1757 -0
  75. package/dist/parse-generator-module.d.ts +1 -1
  76. package/dist/parse-generator-module.js +1 -1
  77. package/dist/side-profiles.d.ts +36 -0
  78. package/dist/side-profiles.d.ts.map +1 -0
  79. package/dist/{profiles.js → side-profiles.js} +21 -66
  80. package/dist/side-profiles.js.map +1 -0
  81. package/package.json +4 -3
  82. package/dist/profiles.d.ts +0 -41
  83. package/dist/profiles.d.ts.map +0 -1
  84. package/dist/profiles.js.map +0 -1
@@ -1,20 +1,23 @@
1
+ import type { ContourValue } from "./contours.js";
1
2
  import type { FontSelection } from "./fonts.js";
2
3
  import type { GeneratorDefinition, ParameterDefinition } from "./parameter-contracts.js";
3
- import type { ProfileValue } from "./profiles.js";
4
- export type { ArrayParameterDefinition, BaseParameterDefinition, GeneratorDefinition, FontParameterDefinition, BooleanParameterDefinition, ChoiceSetParameterDefinition, ColorParameterDefinition, NumberArrayItemDefinition, NumberArrayParameterDefinition, NumberParameterDefinition, NumericParameterDefinition, ParameterDefinition, ParameterGroup, ProfileParameterDefinition, ProfileScaleReference, SelectOption, SelectParameterDefinition, StringArrayItemDefinition, StringArrayParameterDefinition, SvgParameterDefinition, SliderParameterDefinition, TextParameterDefinition, } from "./parameter-contracts.js";
4
+ import type { SideProfileValue } from "./side-profiles.js";
5
+ export type { ArrayParameterDefinition, BaseParameterDefinition, GeneratorDefinition, FontParameterDefinition, BooleanParameterDefinition, ChoiceSetParameterDefinition, ColorParameterDefinition, ContourParameterDefinition, ParameterScaleReference, NumberArrayItemDefinition, NumberArrayParameterDefinition, NumberParameterDefinition, ParameterDefinition, ParameterDefinitionDocument, ParameterUi, RowParameterUi, NumberParameterUi, SideProfileParameterUi, ContourParameterUi, ParameterGroup, SideProfileParameterDefinition, ChoiceOption, ChoiceParameterDefinition, StringArrayItemDefinition, StringArrayParameterDefinition, SvgParameterDefinition, TextParameterDefinition, } from "./parameter-contracts.js";
5
6
  export type ScalarParameterValue = number | boolean | string;
6
- export type ParameterValue = ScalarParameterValue | readonly number[] | readonly string[] | FontSelection | ProfileValue;
7
+ export type ParameterValue = ScalarParameterValue | readonly number[] | readonly string[] | FontSelection | SideProfileValue | ContourValue;
7
8
  export type ParameterValues = Readonly<Record<string, ParameterValue>>;
8
9
  type ParameterValueFor<Parameter extends ParameterDefinition> = Parameter extends {
9
10
  readonly type: "font";
10
11
  } ? FontSelection : Parameter extends {
11
- readonly type: "profile";
12
- } ? ProfileValue : Parameter extends {
13
- readonly type: "number" | "slider";
12
+ readonly type: "side-profile";
13
+ } ? SideProfileValue : Parameter extends {
14
+ readonly type: "contour";
15
+ } ? ContourValue : Parameter extends {
16
+ readonly type: "number";
14
17
  } ? number : Parameter extends {
15
18
  readonly type: "boolean";
16
19
  } ? boolean : Parameter extends {
17
- readonly type: "select";
20
+ readonly type: "choice";
18
21
  readonly options: readonly {
19
22
  readonly value: infer Value extends string;
20
23
  }[];
@@ -86,7 +89,11 @@ export interface ModelTimings {
86
89
  readonly transferMs?: number | undefined;
87
90
  /** Viewport geometry and initially enabled inspection preparation, before rendering. */
88
91
  readonly viewportPrepareMs?: number | undefined;
89
- /** Elapsed time from preparation completion through every part's first draw submission. */
92
+ /**
93
+ * Elapsed time from viewport preparation completion through every part's first draw submission,
94
+ * including render scheduling and buffer upload. Does not measure GPU completion; absent until
95
+ * the host records first-draw completion.
96
+ */
90
97
  readonly firstDrawMs?: number | undefined;
91
98
  readonly totalMs: number;
92
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ParameterIssueCode } from "./contracts.js";
2
+ export interface CurveValueProblem {
3
+ readonly code: ParameterIssueCode;
4
+ readonly path: readonly (number | string)[];
5
+ }
6
+ export type ReportCurveProblem = (path: readonly (number | string)[], code: ParameterIssueCode) => undefined;
7
+ /** Reads only own enumerable data properties. The caller translates hostile proxy traps. */
8
+ export declare function curveDataObject(value: unknown, expectedKeys: readonly string[], path: readonly (number | string)[], fail: ReportCurveProblem): Readonly<Record<string, unknown>> | undefined;
9
+ /** Checks segment cardinality and dense own keys without reading indexed values or getters. */
10
+ export declare function curveSegmentCount(segments: readonly unknown[], minimum: number, maximum: number, fail: ReportCurveProblem): number | undefined;
11
+ //# sourceMappingURL=curve-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curve-data.d.ts","sourceRoot":"","sources":["../src/curve-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC7C;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAClC,IAAI,EAAE,kBAAkB,KACrB,SAAS,CAAC;AAEf,4FAA4F;AAC5F,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAClC,IAAI,EAAE,kBAAkB,GACvB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAwB/C;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,GACvB,MAAM,GAAG,SAAS,CAmCpB"}
@@ -0,0 +1,53 @@
1
+ /** Reads only own enumerable data properties. The caller translates hostile proxy traps. */
2
+ export function curveDataObject(value, expectedKeys, path, fail) {
3
+ if (typeof value !== "object" || value === null || Array.isArray(value))
4
+ return fail(path, "type");
5
+ const prototype = Object.getPrototypeOf(value);
6
+ if (prototype !== Object.prototype && prototype !== null)
7
+ return fail(path, "structure");
8
+ const keys = Reflect.ownKeys(value);
9
+ const unknown = keys.find((key) => typeof key !== "string" || !expectedKeys.includes(key));
10
+ if (unknown !== undefined) {
11
+ return fail(typeof unknown === "string" && unknown.length > 0 && unknown.length <= 120
12
+ ? [...path, unknown]
13
+ : path, "unknown");
14
+ }
15
+ const entries = [];
16
+ for (const key of expectedKeys) {
17
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
18
+ if (descriptor === undefined)
19
+ return fail([...path, key], "missing");
20
+ if (!("value" in descriptor) || !descriptor.enumerable)
21
+ return fail([...path, key], "structure");
22
+ entries.push([key, descriptor.value]);
23
+ }
24
+ return Object.fromEntries(entries);
25
+ }
26
+ /** Checks segment cardinality and dense own keys without reading indexed values or getters. */
27
+ export function curveSegmentCount(segments, minimum, maximum, fail) {
28
+ if (Object.getPrototypeOf(segments) !== Array.prototype)
29
+ return fail(["segments"], "structure");
30
+ const lengthDescriptor = Object.getOwnPropertyDescriptor(segments, "length");
31
+ if (lengthDescriptor === undefined || !("value" in lengthDescriptor))
32
+ return fail(["segments"], "structure");
33
+ const length = lengthDescriptor.value;
34
+ if (typeof length !== "number" ||
35
+ !Number.isInteger(length) ||
36
+ length < minimum ||
37
+ length > maximum)
38
+ return fail(["segments"], "length");
39
+ const keys = Reflect.ownKeys(segments);
40
+ if (keys.length !== length + 1 ||
41
+ !keys.every((key) => key === "length"
42
+ ? true
43
+ : typeof key === "string" &&
44
+ Number.isSafeInteger(Number(key)) &&
45
+ Number(key) >= 0 &&
46
+ Number(key) < length &&
47
+ String(Number(key)) === key)) {
48
+ const missingIndex = Array.from({ length }, (_, index) => index).find((index) => !Object.hasOwn(segments, String(index)));
49
+ return fail(missingIndex === undefined ? ["segments"] : ["segments", missingIndex], missingIndex === undefined ? "structure" : "missing");
50
+ }
51
+ return length;
52
+ }
53
+ //# sourceMappingURL=curve-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curve-data.js","sourceRoot":"","sources":["../src/curve-data.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- export declare const METAMESH_RUNTIME_VERSION = "2.1.0";
2
- export declare const GENERATOR_PACKAGE_FORMAT_VERSION = 2;
1
+ export declare const METAMESH_RUNTIME_VERSION = "3.0.0";
2
+ export declare const GENERATOR_PACKAGE_FORMAT_VERSION = 3;
3
3
  export declare const MAX_GENERATOR_PACKAGE_BYTES: number;
4
4
  /** Portable metadata limits enforced before package content reaches Studio. */
5
5
  export declare const MAX_GENERATOR_ID_LENGTH = 120;
@@ -1,5 +1,5 @@
1
- export const METAMESH_RUNTIME_VERSION = "2.1.0";
2
- export const GENERATOR_PACKAGE_FORMAT_VERSION = 2;
1
+ export const METAMESH_RUNTIME_VERSION = "3.0.0";
2
+ export const GENERATOR_PACKAGE_FORMAT_VERSION = 3;
3
3
  export const MAX_GENERATOR_PACKAGE_BYTES = 5 * 1024 * 1024;
4
4
  /** Portable metadata limits enforced before package content reaches Studio. */
5
5
  export const MAX_GENERATOR_ID_LENGTH = 120;
@@ -1,6 +1,24 @@
1
1
  import type { ZodError } from "zod";
2
+ import type { ParameterIssueCode } from "../contracts.js";
3
+ export interface GeneratorDefinitionIssue {
4
+ readonly kind: "structural" | "semantic";
5
+ readonly path: readonly (string | number)[];
6
+ readonly code: ParameterIssueCode;
7
+ readonly message: string;
8
+ }
9
+ export type GeneratorDefinitionParseResult<T> = {
10
+ readonly success: true;
11
+ readonly data: T;
12
+ } | {
13
+ readonly success: false;
14
+ readonly issues: readonly GeneratorDefinitionIssue[];
15
+ };
2
16
  export declare class GeneratorPackageValidationError extends Error {
3
- constructor(message: string);
17
+ readonly issues: readonly GeneratorDefinitionIssue[];
18
+ constructor(message: string, issues?: readonly GeneratorDefinitionIssue[]);
4
19
  }
20
+ /** Custom refinements need SDK markers because JSON Schema cannot represent them. */
21
+ export declare function definitionIssuesFromZod(error: ZodError): readonly GeneratorDefinitionIssue[];
22
+ export declare function validationErrorFromIssues(context: string, issues: readonly GeneratorDefinitionIssue[]): GeneratorPackageValidationError;
5
23
  export declare function validationErrorFromZod(context: string, error: ZodError): GeneratorPackageValidationError;
6
24
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/generator-package/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,KAAK,CAAC;AAE9C,qBAAa,+BAAgC,SAAQ,KAAK;gBAC5C,OAAO,EAAE,MAAM;CAI5B;AAUD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,GACd,+BAA+B,CAOjC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/generator-package/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,KAAK,CAAC;AAE9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,8BAA8B,CAAC,CAAC,IACxC;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAA;CAAE,CAAC;AAEtF,qBAAa,+BAAgC,SAAQ,KAAK;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;gBACzC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,SAAS,wBAAwB,EAAO;CAK9E;AAiCD,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,wBAAwB,EAAE,CAwB5F;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,wBAAwB,EAAE,GAC1C,+BAA+B,CASjC;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,GACd,+BAA+B,CAEjC"}
@@ -1,22 +1,69 @@
1
+ import { MAX_PARAMETER_ISSUES } from "../parameters/issues.js";
1
2
  export class GeneratorPackageValidationError extends Error {
2
- constructor(message) {
3
+ issues;
4
+ constructor(message, issues = []) {
3
5
  super(message);
4
6
  this.name = "GeneratorPackageValidationError";
7
+ this.issues = issues;
5
8
  }
6
9
  }
7
10
  function formatPath(path) {
8
- return path.reduce((result, segment) => {
9
- if (typeof segment === "number")
10
- return `${result}[${segment}]`;
11
- const key = String(segment);
12
- return result === "" ? key : `${result}.${key}`;
13
- }, "");
11
+ return path.reduce((result, segment) => typeof segment === "number"
12
+ ? `${result}[${segment}]`
13
+ : result === ""
14
+ ? segment
15
+ : `${result}.${segment}`, "");
14
16
  }
15
- export function validationErrorFromZod(context, error) {
16
- const issue = error.issues[0];
17
+ function issueCode(issue) {
18
+ switch (issue.code) {
19
+ case "invalid_type":
20
+ return "type";
21
+ case "unrecognized_keys":
22
+ return "unknown";
23
+ case "invalid_value":
24
+ return "choice";
25
+ case "too_small":
26
+ return "minimum";
27
+ case "too_big":
28
+ return "maximum";
29
+ case "invalid_union":
30
+ return "structure";
31
+ default:
32
+ return "invalid";
33
+ }
34
+ }
35
+ /** Custom refinements need SDK markers because JSON Schema cannot represent them. */
36
+ export function definitionIssuesFromZod(error) {
37
+ return error.issues
38
+ .slice(0, MAX_PARAMETER_ISSUES)
39
+ .flatMap((issue) => {
40
+ const path = issue.path.map((segment) => typeof segment === "number" ? segment : String(segment));
41
+ if (issue.code === "unrecognized_keys")
42
+ return issue.keys.map((key) => ({
43
+ kind: "structural",
44
+ path: [...path, key],
45
+ code: "unknown",
46
+ message: `Unrecognized key: "${key}"`,
47
+ }));
48
+ return [
49
+ {
50
+ kind: issue.code === "custom" ? "semantic" : "structural",
51
+ path,
52
+ code: issueCode(issue),
53
+ message: issue.message,
54
+ },
55
+ ];
56
+ })
57
+ .slice(0, MAX_PARAMETER_ISSUES);
58
+ }
59
+ export function validationErrorFromIssues(context, issues) {
60
+ const issue = issues[0];
17
61
  if (issue === undefined)
18
- return new GeneratorPackageValidationError(`${context} is invalid.`);
62
+ return new GeneratorPackageValidationError(`${context} is invalid.`, issues);
19
63
  const path = formatPath(issue.path);
20
- return new GeneratorPackageValidationError(`${context}${path === "" ? "" : `${path.startsWith("[") ? "" : "."}${path}`}: ${issue.message}`);
64
+ return new GeneratorPackageValidationError(`${context}${path === "" ? "" : `${path.startsWith("[") ? "" : "."}${path}`}: ${issue.message}`, issues);
65
+ }
66
+ export function validationErrorFromZod(context, error) {
67
+ return validationErrorFromIssues(context, definitionIssuesFromZod(error));
21
68
  }
22
69
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/generator-package/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IACxD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AAED,SAAS,UAAU,CAAC,IAAsB;IACxC,OAAO,IAAI,CAAC,MAAM,CAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC;IAClD,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,KAAe;IAEf,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,+BAA+B,CAAC,GAAG,OAAO,cAAc,CAAC,CAAC;IAC9F,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,IAAI,+BAA+B,CACxC,GAAG,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAChG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/generator-package/errors.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { type GeneratorDefinition } from "./schemas/definition.schema.js";
1
+ import { type GeneratorDefinitionParseResult } from "./errors.js";
2
+ import { type GeneratorDefinition, type ParameterDefinitionDocument } from "./schemas/definition.schema.js";
2
3
  import { type GeneratorDescriptor } from "./schemas/descriptor.schema.js";
3
4
  import { type GeneratorPackageManifest } from "./schemas/manifest.schema.js";
4
5
  export * from "./constants.js";
@@ -22,7 +23,11 @@ export type GeneratorRuntimeReference = {
22
23
  readonly kind: "installed";
23
24
  readonly version: string;
24
25
  };
25
- /** Parses untrusted generator metadata and enforces its semantic invariants. */
26
+ /** Validates the editable groups/parameters document; issue paths are relative to its root. */
27
+ export declare function safeParseParameterDefinitionDocument(value: unknown): GeneratorDefinitionParseResult<ParameterDefinitionDocument>;
28
+ export declare function parseParameterDefinitionDocument(value: unknown): ParameterDefinitionDocument;
29
+ /** Validates untrusted Generator metadata, collecting independent semantic issues. */
30
+ export declare function safeParseGeneratorDefinition(value: unknown): GeneratorDefinitionParseResult<GeneratorDefinition>;
26
31
  export declare function parseGeneratorDefinition(value: unknown): GeneratorDefinition;
27
32
  export declare function parseGeneratorPackageManifest(value: unknown): GeneratorPackageManifest;
28
33
  export declare function parseGeneratorDescriptor(value: unknown): GeneratorDescriptor;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator-package/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AAItC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAW7D,gFAAgF;AAChF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAI5E;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAetF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAE5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator-package/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAKL,KAAK,8BAA8B,EACpC,MAAM,aAAa,CAAC;AAErB,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,2BAA2B,EACjC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AAItC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,yBAAyB,GACjC;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAoC7D,+FAA+F;AAC/F,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,GACb,8BAA8B,CAAC,2BAA2B,CAAC,CAE7D;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,2BAA2B,CAI5F;AAED,sFAAsF;AACtF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,OAAO,GACb,8BAA8B,CAAC,mBAAmB,CAAC,CAErD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAI5E;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAkBtF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAE5E"}
@@ -1,10 +1,13 @@
1
1
  import { z } from "zod";
2
+ import { cloneContourValue } from "../contours.js";
3
+ import { cloneSideProfileValue } from "../side-profiles.js";
2
4
  import { GENERATOR_PACKAGE_FORMAT_VERSION } from "./constants.js";
3
- import { GeneratorPackageValidationError, validationErrorFromZod } from "./errors.js";
4
- import { generatorDefinitionSchema, } from "./schemas/definition.schema.js";
5
+ import { definitionIssuesFromZod, GeneratorPackageValidationError, validationErrorFromIssues, validationErrorFromZod, } from "./errors.js";
6
+ import { capturePortableData } from "./portable-data.js";
7
+ import { generatorDefinitionSchema, parameterDefinitionDocumentSchema, } from "./schemas/definition.schema.js";
5
8
  import { generatorDescriptorSchema, } from "./schemas/descriptor.schema.js";
6
9
  import { generatorPackageManifestSchema, } from "./schemas/manifest.schema.js";
7
- import { validateDefinition } from "./validate-definition.js";
10
+ import { collectDefinitionIssues } from "./validate-definition.js";
8
11
  import { validateManifestIdentity } from "./validate-manifest.js";
9
12
  export * from "./constants.js";
10
13
  export * from "./errors.js";
@@ -20,13 +23,53 @@ function parseWithPublicError(context, schema, value) {
20
23
  throw error;
21
24
  }
22
25
  }
23
- /** Parses untrusted generator metadata and enforces its semantic invariants. */
26
+ function safeParseDefinition(schema, value) {
27
+ const captured = capturePortableData(value);
28
+ if (!captured.success)
29
+ return captured;
30
+ const parsed = schema.safeParse(captured.data);
31
+ if (!parsed.success)
32
+ return { success: false, issues: definitionIssuesFromZod(parsed.error) };
33
+ const issues = collectDefinitionIssues(parsed.data);
34
+ if (issues.length > 0)
35
+ return { success: false, issues };
36
+ return {
37
+ success: true,
38
+ data: {
39
+ ...parsed.data,
40
+ parameters: parsed.data.parameters.map((parameter) => parameter.type === "side-profile"
41
+ ? { ...parameter, default: cloneSideProfileValue(parameter.default) }
42
+ : parameter.type === "contour"
43
+ ? { ...parameter, default: cloneContourValue(parameter.default) }
44
+ : parameter),
45
+ },
46
+ };
47
+ }
48
+ /** Validates the editable groups/parameters document; issue paths are relative to its root. */
49
+ export function safeParseParameterDefinitionDocument(value) {
50
+ return safeParseDefinition(parameterDefinitionDocumentSchema, value);
51
+ }
52
+ export function parseParameterDefinitionDocument(value) {
53
+ const result = safeParseParameterDefinitionDocument(value);
54
+ if (!result.success)
55
+ throw validationErrorFromIssues("parameters document", result.issues);
56
+ return result.data;
57
+ }
58
+ /** Validates untrusted Generator metadata, collecting independent semantic issues. */
59
+ export function safeParseGeneratorDefinition(value) {
60
+ return safeParseDefinition(generatorDefinitionSchema, value);
61
+ }
24
62
  export function parseGeneratorDefinition(value) {
25
- const definition = parseWithPublicError("definition", generatorDefinitionSchema, value);
26
- validateDefinition(definition);
27
- return definition;
63
+ const result = safeParseGeneratorDefinition(value);
64
+ if (!result.success)
65
+ throw validationErrorFromIssues("definition", result.issues);
66
+ return result.data;
28
67
  }
29
68
  export function parseGeneratorPackageManifest(value) {
69
+ const captured = capturePortableData(value);
70
+ if (!captured.success)
71
+ throw validationErrorFromIssues("manifest", captured.issues);
72
+ value = captured.data;
30
73
  if (typeof value === "object" &&
31
74
  value !== null &&
32
75
  !Array.isArray(value) &&
@@ -34,9 +77,9 @@ export function parseGeneratorPackageManifest(value) {
34
77
  throw new GeneratorPackageValidationError(`Unsupported generator package format "${String(value.formatVersion)}".`);
35
78
  }
36
79
  const manifest = parseWithPublicError("manifest", generatorPackageManifestSchema, value);
37
- validateDefinition(manifest.definition);
80
+ const definition = parseGeneratorDefinition(manifest.definition);
38
81
  validateManifestIdentity(manifest);
39
- return manifest;
82
+ return { ...manifest, definition };
40
83
  }
41
84
  export function parseGeneratorDescriptor(value) {
42
85
  return parseWithPublicError("descriptor", generatorDescriptorSchema, value);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator-package/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EACL,yBAAyB,GAE1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,yBAAyB,GAE1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,8BAA8B,GAE/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAQ9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAclE,SAAS,oBAAoB,CAAI,OAAe,EAAE,MAAoB,EAAE,KAAc;IACpF,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,CAAC,CAAC,QAAQ;YAAE,MAAM,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9E,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,UAAU,GAAG,oBAAoB,CAAC,YAAY,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACxF,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAc;IAC1D,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,KAAqC,CAAC,aAAa,KAAK,gCAAgC,EACzF,CAAC;QACD,MAAM,IAAI,+BAA+B,CACvC,yCAAyC,MAAM,CAAE,KAAqC,CAAC,aAAa,CAAC,IAAI,CAC1G,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,EAAE,8BAA8B,EAAE,KAAK,CAAC,CAAC;IACzF,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACxC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,OAAO,oBAAoB,CAAC,YAAY,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator-package/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { GeneratorDefinitionIssue } from "./errors.js";
2
+ type PortableDataResult = {
3
+ readonly success: true;
4
+ readonly data: unknown;
5
+ } | {
6
+ readonly success: false;
7
+ readonly issues: readonly GeneratorDefinitionIssue[];
8
+ };
9
+ /** Captures own data before Zod reads it; shape and value validation remain with the schemas. */
10
+ export declare function capturePortableData(value: unknown): PortableDataResult;
11
+ export {};
12
+ //# sourceMappingURL=portable-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portable-data.d.ts","sourceRoot":"","sources":["../../src/generator-package/portable-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAG5D,KAAK,kBAAkB,GACnB;IAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAA;CAAE,CAAC;AAqCtF,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAsEtE"}
@@ -0,0 +1,102 @@
1
+ function isNativePrototype(value, constructor) {
2
+ const descriptor = Object.getOwnPropertyDescriptor(value, "constructor");
3
+ const candidate = descriptor !== undefined && "value" in descriptor ? descriptor.value : undefined;
4
+ if (typeof candidate !== "function")
5
+ return false;
6
+ return (Function.prototype.toString.call(candidate) === Function.prototype.toString.call(constructor) &&
7
+ Object.getOwnPropertyDescriptor(candidate, "prototype")?.value === value);
8
+ }
9
+ function isPlainObjectPrototype(value) {
10
+ return (value === null ||
11
+ value === Object.prototype ||
12
+ (typeof value === "object" &&
13
+ Object.getPrototypeOf(value) === null &&
14
+ isNativePrototype(value, Object)));
15
+ }
16
+ function hasPlainPrototype(value, array) {
17
+ const prototype = Object.getPrototypeOf(value);
18
+ return array
19
+ ? prototype === Array.prototype ||
20
+ (prototype !== null &&
21
+ Array.isArray(prototype) &&
22
+ isNativePrototype(prototype, Array) &&
23
+ isPlainObjectPrototype(Object.getPrototypeOf(prototype)))
24
+ : isPlainObjectPrototype(prototype);
25
+ }
26
+ /** Captures own data before Zod reads it; shape and value validation remain with the schemas. */
27
+ export function capturePortableData(value) {
28
+ const ancestors = new Set();
29
+ const snapshots = new Map();
30
+ let inspecting = [];
31
+ let failure;
32
+ const fail = (path, message) => {
33
+ failure = { kind: "structural", path, code: "structure", message };
34
+ throw new Error(message);
35
+ };
36
+ const capture = (entry, path) => {
37
+ inspecting = path;
38
+ if (typeof entry !== "object" || entry === null)
39
+ return entry;
40
+ if (path.length > 64 || ancestors.has(entry))
41
+ return fail(path, "must be bounded, acyclic portable data");
42
+ const previous = snapshots.get(entry);
43
+ if (previous !== undefined)
44
+ return previous;
45
+ const array = Array.isArray(entry);
46
+ if (!hasPlainPrototype(entry, array))
47
+ return fail(path, "must use a plain data object or array");
48
+ ancestors.add(entry);
49
+ const keys = Reflect.ownKeys(entry);
50
+ const captured = [];
51
+ for (const key of keys) {
52
+ if (array && key === "length")
53
+ continue;
54
+ if (typeof key !== "string")
55
+ return fail(path, "must not contain symbol properties");
56
+ const segment = array ? Number(key) : key;
57
+ const fieldPath = [...path, segment];
58
+ inspecting = fieldPath;
59
+ if (array &&
60
+ (!Number.isSafeInteger(segment) || Number(segment) < 0 || String(segment) !== key))
61
+ return fail(path, "arrays must contain only indexed data properties");
62
+ const descriptor = Object.getOwnPropertyDescriptor(entry, key);
63
+ if (descriptor === undefined || !("value" in descriptor) || !descriptor.enumerable)
64
+ return fail(fieldPath, "must be an own enumerable data property");
65
+ captured.push([key, capture(descriptor.value, fieldPath)]);
66
+ }
67
+ inspecting = path;
68
+ ancestors.delete(entry);
69
+ if (!array) {
70
+ const result = Object.fromEntries(captured);
71
+ snapshots.set(entry, result);
72
+ return result;
73
+ }
74
+ const length = Object.getOwnPropertyDescriptor(entry, "length")?.value;
75
+ if (typeof length !== "number" || captured.length !== length)
76
+ return fail(path, "arrays must contain a value at every index");
77
+ const result = [];
78
+ for (const [key, item] of captured)
79
+ result[Number(key)] = item;
80
+ snapshots.set(entry, result);
81
+ return result;
82
+ };
83
+ try {
84
+ return { success: true, data: capture(value, []) };
85
+ }
86
+ catch {
87
+ return {
88
+ success: false,
89
+ issues: [
90
+ failure !== undefined
91
+ ? failure
92
+ : {
93
+ kind: "structural",
94
+ path: inspecting,
95
+ code: "structure",
96
+ message: "must be readable portable data",
97
+ },
98
+ ],
99
+ };
100
+ }
101
+ }
102
+ //# sourceMappingURL=portable-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portable-data.js","sourceRoot":"","sources":["../../src/generator-package/portable-data.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.schema.d.ts","sourceRoot":"","sources":["../../../src/generator-package/schemas/common.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,mBAAmB,aAA2C,CAAC;AAC5E,eAAO,MAAM,yBAAyB,aAA4C,CAAC;AACnF,eAAO,MAAM,oBAAoB,aAAoC,CAAC;AACtE,eAAO,MAAM,YAAY,aAM2D,CAAC;AACrF,eAAO,MAAM,YAAY,aAG8C,CAAC;AACxE,eAAO,MAAM,kBAAkB,aAAsB,CAAC;AACtD,eAAO,MAAM,cAAc,wDAGiB,CAAC;AAC7C,eAAO,MAAM,wBAAwB,aAAiC,CAAC;AACvE,eAAO,MAAM,eAAe,aAAgD,CAAC;AAC7E,eAAO,MAAM,iBAAiB,aAAsD,CAAC;AACrF,eAAO,MAAM,aAAa,wDAI4B,CAAC"}
1
+ {"version":3,"file":"common.schema.d.ts","sourceRoot":"","sources":["../../../src/generator-package/schemas/common.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAcxB,eAAO,MAAM,mBAAmB,aAA2C,CAAC;AAC5E,eAAO,MAAM,yBAAyB,aAA4C,CAAC;AACnF,eAAO,MAAM,oBAAoB,aAGwB,CAAC;AAC1D,eAAO,MAAM,YAAY,aAK2D,CAAC;AACrF,eAAO,MAAM,YAAY,aAG8C,CAAC;AACxE,eAAO,MAAM,kBAAkB,aAAsB,CAAC;AACtD,eAAO,MAAM,cAAc,wDAGiB,CAAC;AAC7C,eAAO,MAAM,wBAAwB,aAAiC,CAAC;AACvE,eAAO,MAAM,eAAe,aAAgD,CAAC;AAC7E,eAAO,MAAM,iBAAiB,aAAsD,CAAC;AACrF,eAAO,MAAM,aAAa,wDAI4B,CAAC"}
@@ -5,10 +5,12 @@ const SAFE_ID_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._/-]*$/;
5
5
  const RESERVED_RECORD_KEYS = new Set(["__proto__", "constructor", "prototype"]);
6
6
  export const boundedStringSchema = z.string().max(MAX_METADATA_TEXT_LENGTH);
7
7
  export const textParameterStringSchema = z.string().max(MAX_TEXT_PARAMETER_LENGTH);
8
- export const nonEmptyStringSchema = boundedStringSchema.trim().min(1);
8
+ export const nonEmptyStringSchema = boundedStringSchema
9
+ .trim()
10
+ .min(1)
11
+ .regex(/\S/, "must contain a non-whitespace character");
9
12
  export const safeIdSchema = z
10
13
  .string()
11
- .trim()
12
14
  .min(1)
13
15
  .max(MAX_GENERATOR_ID_LENGTH)
14
16
  .regex(SAFE_ID_PATTERN, "must use letters, numbers, '.', '_', '/', or '-'")
@@ -1 +1 @@
1
- {"version":3,"file":"common.schema.js","sourceRoot":"","sources":["../../../src/generator-package/schemas/common.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,eAAe,GAAG,+BAA+B,CAAC;AACxD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,uBAAuB,CAAC;KAC5B,KAAK,CAAC,eAAe,EAAE,kDAAkD,CAAC;KAC1E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,4BAA4B,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,sBAAsB,EAAE,qCAAqC,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,KAAK,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;KACxD,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,GAAG,CAAC,EAAE,CAAC;KACP,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAC1B,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"common.schema.js","sourceRoot":"","sources":["../../../src/generator-package/schemas/common.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,eAAe,GAAG,+BAA+B,CAAC;AACxD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAC5E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACnF,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB;KACpD,IAAI,EAAE;KACN,GAAG,CAAC,CAAC,CAAC;KACN,KAAK,CAAC,IAAI,EAAE,yCAAyC,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,uBAAuB,CAAC;KAC5B,KAAK,CAAC,eAAe,EAAE,kDAAkD,CAAC;KAC1E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,4BAA4B,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,sBAAsB,EAAE,qCAAqC,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,KAAK,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;KACxD,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,GAAG,CAAC,EAAE,CAAC;KACP,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAC1B,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC"}