@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 +1 @@
1
- {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/parameters/values.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAItD,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAElD,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD,eAAO,MAAM,+BAA+B,QAAa,CAAC;AAE1D,eAAO,MAAM,2BAA2B,kHACiE,CAAC;AAE1G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAInD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,OAAO,EAAE,GAAG,SAAS,CA4BhG;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,GAAG,SAAS,EACpC,IAAI,EAAE,cAAc,GAAG,SAAS,GAC/B,OAAO,CAgBT;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3D,GAAG,EAAE,MAAM,GACV,OAAO,CAIT;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEnF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAKnE"}
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/parameters/values.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAItD,eAAO,MAAM,iBAAiB,QAAmB,CAAC;AAElD,eAAO,MAAM,uBAAuB,QAAa,CAAC;AAElD,eAAO,MAAM,+BAA+B,QAAa,CAAC;AAE1D,eAAO,MAAM,2BAA2B,kHACiE,CAAC;AAE1G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAInD;AAED,sGAAsG;AACtG,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,OAAO,EAAE,GAAG,SAAS,CA4BhG;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,GAAG,SAAS,EACpC,IAAI,EAAE,cAAc,GAAG,SAAS,GAC/B,OAAO,CAmBT;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3D,GAAG,EAAE,MAAM,GACV,OAAO,CAIT;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEnF;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAKnE"}
@@ -1,5 +1,6 @@
1
+ import { contourValuesEqual, isContourValue } from "../contours.js";
1
2
  import { isFontSelection } from "../fonts.js";
2
- import { isProfileValue, profileValuesEqual } from "../profiles.js";
3
+ import { isSideProfileValue, sideProfileValuesEqual } from "../side-profiles.js";
3
4
  export const HEX_COLOR_PATTERN = /^#[\da-f]{6}$/i;
4
5
  export const MAX_SVG_PARAMETER_BYTES = 256 * 1024;
5
6
  export const MAX_PROJECT_SVG_PARAMETER_BYTES = 512 * 1024;
@@ -10,6 +11,7 @@ export function svgParameterBytes(value) {
10
11
  export function svgValueFits(value) {
11
12
  return (value.length <= MAX_SVG_PARAMETER_BYTES && svgParameterBytes(value) <= MAX_SVG_PARAMETER_BYTES);
12
13
  }
14
+ /** Copies a bounded array's own data entries into fresh storage, rejecting sparse or extra fields. */
13
15
  export function readDenseArray(value, maxLength) {
14
16
  if (!Array.isArray(value) || value.length > maxLength)
15
17
  return undefined;
@@ -41,8 +43,11 @@ export function readDenseArray(value, maxLength) {
41
43
  export function parameterValueEquals(previous, next) {
42
44
  if (Object.is(previous, next))
43
45
  return true;
44
- if (isProfileValue(previous) && isProfileValue(next)) {
45
- return profileValuesEqual(previous, next);
46
+ if (isContourValue(previous) && isContourValue(next)) {
47
+ return contourValuesEqual(previous, next);
48
+ }
49
+ if (isSideProfileValue(previous) && isSideProfileValue(next)) {
50
+ return sideProfileValuesEqual(previous, next);
46
51
  }
47
52
  if (isFontSelection(previous) && isFontSelection(next)) {
48
53
  return (previous.faceId === next.faceId &&
@@ -1 +1 @@
1
- {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/parameters/values.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/parameters/values.ts"],"names":[],"mappings":"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"}