@ama-openapi/core 14.0.0-prerelease.9 → 14.0.0-rc.2

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 (49) hide show
  1. package/package.json +5 -5
  2. package/src/constants.d.mts +2 -2
  3. package/src/constants.d.mts.map +1 -1
  4. package/src/constants.mjs +2 -2
  5. package/src/constants.mjs.map +1 -1
  6. package/src/core/file-system/write-model.d.mts +1 -1
  7. package/src/core/file-system/write-model.d.mts.map +1 -1
  8. package/src/core/file-system/write-model.mjs.map +1 -1
  9. package/src/core/serialization.d.mts +2 -2
  10. package/src/core/serialization.d.mts.map +1 -1
  11. package/src/core/serialization.mjs.map +1 -1
  12. package/src/generate-schemas.d.mts.map +1 -1
  13. package/src/generate-schemas.mjs +4 -2
  14. package/src/generate-schemas.mjs.map +1 -1
  15. package/src/schema/configurations/manifest-model-properties.d.mts +7 -0
  16. package/src/schema/configurations/manifest-model-properties.d.mts.map +1 -0
  17. package/src/schema/configurations/manifest-model-properties.mjs +28 -0
  18. package/src/schema/configurations/manifest-model-properties.mjs.map +1 -0
  19. package/src/schema/configurations/model-definitions.d.mts +43 -0
  20. package/src/schema/configurations/model-definitions.d.mts.map +1 -0
  21. package/src/schema/configurations/model-definitions.mjs +51 -0
  22. package/src/schema/configurations/model-definitions.mjs.map +1 -0
  23. package/src/schema/configurations/transform-definitions.d.mts +23 -0
  24. package/src/schema/configurations/transform-definitions.d.mts.map +1 -0
  25. package/src/schema/configurations/transform-definitions.mjs +36 -0
  26. package/src/schema/configurations/transform-definitions.mjs.map +1 -0
  27. package/src/schema/generate-model-name.d.mts +12 -0
  28. package/src/schema/generate-model-name.d.mts.map +1 -0
  29. package/src/schema/generate-model-name.mjs +23 -0
  30. package/src/schema/generate-model-name.mjs.map +1 -0
  31. package/src/schema/generate-schema.d.mts +42 -31
  32. package/src/schema/generate-schema.d.mts.map +1 -1
  33. package/src/schema/generate-schema.mjs +42 -121
  34. package/src/schema/generate-schema.mjs.map +1 -1
  35. package/src/schema/list-artifacts.d.mts +20 -9
  36. package/src/schema/list-artifacts.d.mts.map +1 -1
  37. package/src/schema/list-artifacts.mjs.map +1 -1
  38. package/src/schema/mask/dependencies-masks.d.mts +30 -0
  39. package/src/schema/mask/dependencies-masks.d.mts.map +1 -0
  40. package/src/schema/mask/dependencies-masks.mjs +41 -0
  41. package/src/schema/mask/dependencies-masks.mjs.map +1 -0
  42. package/src/schema/mask/field-schema.constants.d.mts +20 -0
  43. package/src/schema/mask/field-schema.constants.d.mts.map +1 -0
  44. package/src/schema/mask/field-schema.constants.mjs +15 -0
  45. package/src/schema/mask/field-schema.constants.mjs.map +1 -0
  46. package/src/schema/mask/generate-mask-from-model.d.mts +27 -0
  47. package/src/schema/mask/generate-mask-from-model.d.mts.map +1 -0
  48. package/src/schema/mask/generate-mask-from-model.mjs +122 -0
  49. package/src/schema/mask/generate-mask-from-model.mjs.map +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ama-openapi/core",
3
- "version": "14.0.0-prerelease.9",
3
+ "version": "14.0.0-rc.2",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -63,10 +63,10 @@
63
63
  "@nx/eslint-plugin": "~22.3.3",
64
64
  "@nx/jest": "~22.3.3",
65
65
  "@nx/js": "~22.3.3",
66
- "@o3r/build-helpers": "~14.0.0-prerelease.9",
67
- "@o3r/eslint-plugin": "~14.0.0-prerelease.9",
68
- "@o3r/telemetry": "~14.0.0-prerelease.9",
69
- "@o3r/test-helpers": "~14.0.0-prerelease.9",
66
+ "@o3r/build-helpers": "~14.0.0-rc.2",
67
+ "@o3r/eslint-plugin": "~14.0.0-rc.2",
68
+ "@o3r/telemetry": "~14.0.0-rc.2",
69
+ "@o3r/test-helpers": "~14.0.0-rc.2",
70
70
  "@stylistic/eslint-plugin": "~5.6.0",
71
71
  "@types/jest": "~30.0.0",
72
72
  "@types/js-yaml": "^4.0.5",
@@ -4,11 +4,11 @@ export declare const OUTPUT_DIRECTORY = "models_external";
4
4
  export declare const SUB_MASK_DIRECTORY = "sub-masks";
5
5
  /** Default manifest filenames to look for */
6
6
  export declare const DEFAULT_MANIFEST_FILENAMES: readonly ["ama-openapi.manifest.json", "ama-openapi.manifest.yaml", "ama-openapi.manifest.yml", "openapi.manifest.json", "openapi.manifest.yaml", "openapi.manifest.yml", "package.json"];
7
- /** Default directory where generate the JSON Schemas */
7
+ /** Default directory where to generate the JSON Schemas */
8
8
  export declare const DEFAULT_SCHEMA_OUTPUT_DIRECTORY = "schemas";
9
9
  /** NPM keywords to identify a specification package */
10
10
  export declare const OPENAPI_NPM_KEYWORDS: readonly ["openapi"];
11
- /** Name of the manifest schema file. */
11
+ /** Name of the JSON schema validating the manifest file */
12
12
  export declare const MANIFEST_SCHEMA_FILE = "manifest.schema.json";
13
13
  /** Key to mark masked properties */
14
14
  export declare const MASKED_PROPERTY_KEY = "x-internal-masked";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../src/constants.mts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAE9C,6CAA6C;AAC7C,eAAO,MAAM,0BAA0B,2LAQ7B,CAAC;AAEX,wDAAwD;AACxD,eAAO,MAAM,+BAA+B,YAAY,CAAC;AAEzD,uDAAuD;AACvD,eAAO,MAAM,oBAAoB,sBAAuB,CAAC;AAEzD,wCAAwC;AACxC,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAI3D,oCAAoC;AACpC,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,qCAAqC;AACrC,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,+CAA+C;AAC/C,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAC3E,gDAAgD;AAChD,eAAO,MAAM,0BAA0B,mCAAmC,CAAC"}
1
+ {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../src/constants.mts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAElD,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAE9C,6CAA6C;AAC7C,eAAO,MAAM,0BAA0B,2LAQ7B,CAAC;AAEX,2DAA2D;AAC3D,eAAO,MAAM,+BAA+B,YAAY,CAAC;AAEzD,uDAAuD;AACvD,eAAO,MAAM,oBAAoB,sBAAuB,CAAC;AAEzD,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAI3D,oCAAoC;AACpC,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,qCAAqC;AACrC,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,+CAA+C;AAC/C,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAC3E,gDAAgD;AAChD,eAAO,MAAM,0BAA0B,mCAAmC,CAAC"}
package/src/constants.mjs CHANGED
@@ -12,11 +12,11 @@ export const DEFAULT_MANIFEST_FILENAMES = [
12
12
  'openapi.manifest.yml',
13
13
  'package.json'
14
14
  ];
15
- /** Default directory where generate the JSON Schemas */
15
+ /** Default directory where to generate the JSON Schemas */
16
16
  export const DEFAULT_SCHEMA_OUTPUT_DIRECTORY = 'schemas';
17
17
  /** NPM keywords to identify a specification package */
18
18
  export const OPENAPI_NPM_KEYWORDS = ['openapi'];
19
- /** Name of the manifest schema file. */
19
+ /** Name of the JSON schema validating the manifest file */
20
20
  export const MANIFEST_SCHEMA_FILE = 'manifest.schema.json';
21
21
  // Internal property keys :
22
22
  /** Key to mark masked properties */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../../src/constants.mts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAElD,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE9C,6CAA6C;AAC7C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,2BAA2B;IAC3B,2BAA2B;IAC3B,0BAA0B;IAC1B,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,cAAc;CACN,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,+BAA+B,GAAG,SAAS,CAAC;AAEzD,uDAAuD;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAS,CAAU,CAAC;AAEzD,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D,2BAA2B;AAE3B,oCAAoC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AACvD,qCAAqC;AACrC,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AACzD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AACvD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AACzD,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,gCAAgC,CAAC;AAC3E,gDAAgD;AAChD,MAAM,CAAC,MAAM,0BAA0B,GAAG,gCAAgC,CAAC"}
1
+ {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../../src/constants.mts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAElD,sFAAsF;AACtF,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE9C,6CAA6C;AAC7C,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,2BAA2B;IAC3B,2BAA2B;IAC3B,0BAA0B;IAC1B,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,cAAc;CACN,CAAC;AAEX,2DAA2D;AAC3D,MAAM,CAAC,MAAM,+BAA+B,GAAG,SAAS,CAAC;AAEzD,uDAAuD;AACvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAS,CAAU,CAAC;AAEzD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D,2BAA2B;AAE3B,oCAAoC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AACvD,qCAAqC;AACrC,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AACzD,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AACvD,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AACzD,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,gCAAgC,CAAC;AAC3E,gDAAgD;AAChD,MAAM,CAAC,MAAM,0BAA0B,GAAG,gCAAgC,CAAC"}
@@ -5,5 +5,5 @@ import type { RetrievedDependencyModel } from '../manifest/extract-dependency-mo
5
5
  * @param retrievedModel
6
6
  * @param context
7
7
  */
8
- export declare const writeModelFile: (retrievedModel: RetrievedDependencyModel, context: Context) => Promise<void>;
8
+ export declare const writeModelFile: (retrievedModel: Pick<RetrievedDependencyModel, "outputFilePath" | "content">, context: Context) => Promise<void>;
9
9
  //# sourceMappingURL=write-model.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"write-model.d.mts","sourceRoot":"","sources":["../../../../src/core/file-system/write-model.mts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,gBAAgB,wBAAwB,EAAE,SAAS,OAAO,kBAiB9F,CAAC"}
1
+ {"version":3,"file":"write-model.d.mts","sourceRoot":"","sources":["../../../../src/core/file-system/write-model.mts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,gBAAgB,IAAI,CAAC,wBAAwB,EAAE,gBAAgB,GAAG,SAAS,CAAC,EAAE,SAAS,OAAO,kBAiBlI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"write-model.mjs","sourceRoot":"","sources":["../../../../src/core/file-system/write-model.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,QAAQ,IAAI,EAAE,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,GAAG,GACJ,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,OAAO,GACR,MAAM,WAAW,CAAC;AAQnB;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,cAAwC,EAAE,OAAgB,EAAE,EAAE;IACjG,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAC;QACrE,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,EAAE,KAAK,EAAE,CAAC,aAAa,SAAS,mCAAmC,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,cAAc,sCAAsC;cACzE,GAAG,GAAG,sHAAsH,CAAC,CAAC;IACpI,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC"}
1
+ {"version":3,"file":"write-model.mjs","sourceRoot":"","sources":["../../../../src/core/file-system/write-model.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,QAAQ,IAAI,EAAE,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,GAAG,GACJ,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,OAAO,GACR,MAAM,WAAW,CAAC;AAQnB;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,cAA4E,EAAE,OAAgB,EAAE,EAAE;IACrI,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAC;QACrE,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,EAAE,KAAK,EAAE,CAAC,aAAa,SAAS,mCAAmC,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,IAAI,CAAC,YAAY,cAAc,sCAAsC;cACzE,GAAG,GAAG,sHAAsH,CAAC,CAAC;IACpI,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACpE,CAAC,CAAC"}
@@ -4,11 +4,11 @@ import type { RetrievedDependencyModel } from './manifest/extract-dependency-mod
4
4
  * @param specification
5
5
  * @param model
6
6
  */
7
- export declare const deserialize: (specification: string, model: RetrievedDependencyModel) => any;
7
+ export declare const deserialize: (specification: string, model: Pick<RetrievedDependencyModel, "isInputJson">) => any;
8
8
  /**
9
9
  * Serialize an object into a model file content
10
10
  * @param specification
11
11
  * @param model
12
12
  */
13
- export declare const serialize: (specification: any, model: RetrievedDependencyModel) => string;
13
+ export declare const serialize: (specification: any, model: Pick<RetrievedDependencyModel, "isOutputJson">) => string;
14
14
  //# sourceMappingURL=serialization.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.d.mts","sourceRoot":"","sources":["../../../src/core/serialization.mts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,0CAA0C,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,eAAe,MAAM,EAAE,OAAO,wBAAwB,KAAG,GAKpF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,eAAe,GAAG,EAAE,OAAO,wBAAwB,KAAG,MAK/E,CAAC"}
1
+ {"version":3,"file":"serialization.d.mts","sourceRoot":"","sources":["../../../src/core/serialization.mts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,0CAA0C,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,eAAe,MAAM,EAAE,OAAO,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,KAAG,GAKzG,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,eAAe,GAAG,EAAE,OAAO,IAAI,CAAC,wBAAwB,EAAE,cAAc,CAAC,KAAG,MAKrG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.mjs","sourceRoot":"","sources":["../../../src/core/serialization.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,IAAI,GACL,MAAM,SAAS,CAAC;AAKjB;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,aAAqB,EAAE,KAA+B,EAAO,EAAE;IACzF,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,aAAkB,EAAE,KAA+B,EAAU,EAAE;IACvF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC"}
1
+ {"version":3,"file":"serialization.mjs","sourceRoot":"","sources":["../../../src/core/serialization.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,IAAI,GACL,MAAM,SAAS,CAAC;AAKjB;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,aAAqB,EAAE,KAAoD,EAAO,EAAE;IAC9G,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,aAAkB,EAAE,KAAqD,EAAU,EAAE;IAC7G,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schemas.d.mts","sourceRoot":"","sources":["../../src/generate-schemas.mts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,MAAM,EACP,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,KAAK,oCAAoC,EAC1C,MAAM,8BAA8B,CAAC;AAEtC,8CAA8C;AAC9C,MAAM,WAAW,gCAAiC,SAAQ,oCAAoC;IAC5F,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAU,YAAmB,EAAE,UAAU,gCAAgC,kBAalH,CAAC"}
1
+ {"version":3,"file":"generate-schemas.d.mts","sourceRoot":"","sources":["../../src/generate-schemas.mts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,MAAM,EACP,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,KAAK,oCAAoC,EAC1C,MAAM,8BAA8B,CAAC;AAEtC,8CAA8C;AAC9C,MAAM,WAAW,gCAAiC,SAAQ,oCAAoC;IAC5F,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAU,YAAmB,EAAE,UAAU,gCAAgC,kBAiBlH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { existsSync, promises as fs, } from 'node:fs';
2
- import { resolve, } from 'node:path';
2
+ import { dirname, resolve, } from 'node:path';
3
3
  import * as process from 'node:process';
4
4
  import { DEFAULT_SCHEMA_OUTPUT_DIRECTORY, MANIFEST_SCHEMA_FILE, } from './constants.mjs';
5
5
  import { generateOpenApiManifestSchema, } from './schema/generate-schema.mjs';
@@ -19,6 +19,8 @@ export const generateValidationSchemaFiles = async (cwd = process.cwd(), options
19
19
  if (!existsSync(directory)) {
20
20
  await fs.mkdir(directory, { recursive: true });
21
21
  }
22
- await fs.writeFile(resolve(outputDirectory, MANIFEST_SCHEMA_FILE), JSON.stringify(manifestSchemaObj), { encoding: 'utf8' });
22
+ await fs.writeFile(resolve(outputDirectory, MANIFEST_SCHEMA_FILE), JSON.stringify(manifestSchemaObj.manifest), { encoding: 'utf8' });
23
+ await Promise.all(manifestSchemaObj.masks
24
+ .map(({ mask, fileName }) => fs.writeFile(resolve(outputDirectory, dirname(MANIFEST_SCHEMA_FILE), fileName), JSON.stringify(mask), { encoding: 'utf8' })));
23
25
  };
24
26
  //# sourceMappingURL=generate-schemas.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schemas.mjs","sourceRoot":"","sources":["../../src/generate-schemas.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,QAAQ,IAAI,EAAE,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EACL,6BAA6B,GAE9B,MAAM,8BAA8B,CAAC;AAUtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,OAA0C,EAAE,EAAE;IACrH,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,+BAA+B,CAAC;IACpF,MAAM,IAAI,GAAG;QACX,GAAG,OAAO;QACV,GAAG;KACuB,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,MAAM,6BAA6B,CAAC,IAAI,CAAC,CAAC;IAEpE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,oBAAoB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9H,CAAC,CAAC"}
1
+ {"version":3,"file":"generate-schemas.mjs","sourceRoot":"","sources":["../../src/generate-schemas.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,QAAQ,IAAI,EAAE,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,OAAO,EACP,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EACL,6BAA6B,GAE9B,MAAM,8BAA8B,CAAC;AAUtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,OAA0C,EAAE,EAAE;IACrH,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,+BAA+B,CAAC;IACpF,MAAM,IAAI,GAAG;QACX,GAAG,OAAO;QACV,GAAG;KACuB,CAAC;IAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAChD,MAAM,iBAAiB,GAAG,MAAM,6BAA6B,CAAC,IAAI,CAAC,CAAC;IAEpE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,oBAAoB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACrI,MAAM,OAAO,CAAC,GAAG,CACf,iBAAiB,CAAC,KAAK;SACpB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAC5J,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { SpecificationArtifact } from '../list-artifacts.mjs';
2
+ /**
3
+ * Generate manifest models properties for the given artifacts
4
+ * @param artifacts
5
+ */
6
+ export declare const getManifestModelsProperties: (artifacts: SpecificationArtifact[]) => any;
7
+ //# sourceMappingURL=manifest-model-properties.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-model-properties.d.mts","sourceRoot":"","sources":["../../../../src/schema/configurations/manifest-model-properties.mts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,eAAO,MAAM,2BAA2B,GAAI,WAAW,qBAAqB,EAAE,QAsB7E,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { basename, } from 'node:path/posix';
2
+ import { generateModelNameRef, } from '../generate-model-name.mjs';
3
+ /**
4
+ * Generate manifest models properties for the given artifacts
5
+ * @param artifacts
6
+ */
7
+ export const getManifestModelsProperties = (artifacts) => {
8
+ return Object.fromEntries(artifacts.map(({ packageManifest, models, baseDirectory }) => {
9
+ const packageManifestName = packageManifest.name || basename(baseDirectory);
10
+ const refModels = models
11
+ .filter((modelObj) => !!modelObj)
12
+ .map(({ model }) => `model-${generateModelNameRef(packageManifestName, model)}`);
13
+ if (refModels.length === 0) {
14
+ return [];
15
+ }
16
+ return [
17
+ packageManifestName,
18
+ {
19
+ oneOf: [
20
+ ...refModels.map((modelName) => ({ $ref: `#/definitions/${modelName}` })),
21
+ { type: 'array', items: { oneOf: refModels.map((modelName) => ({ $ref: `#/definitions/${modelName}` })) } }
22
+ ]
23
+ }
24
+ ];
25
+ })
26
+ .filter(([key]) => key !== undefined));
27
+ };
28
+ //# sourceMappingURL=manifest-model-properties.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-model-properties.mjs","sourceRoot":"","sources":["../../../../src/schema/configurations/manifest-model-properties.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAKpC;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,SAAkC,EAAE,EAAE;IAChF,OAAO,MAAM,CAAC,WAAW,CACvB,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;QAC3D,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,MAAM;aACrB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aAChC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,SAAS,oBAAoB,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO;YACL,mBAAmB;YACnB;gBACE,KAAK,EAAE;oBACL,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,SAAS,EAAE,EAAE,CAAC,CAAC;oBACzE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;iBAC5G;aACF;SACF,CAAC;IACJ,CAAC,CAAC;SACC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CACxC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { SpecificationArtifact } from '../list-artifacts.mjs';
2
+ /**
3
+ * Generate model definitions for the given artifacts
4
+ * @param artifacts
5
+ */
6
+ export declare const getModelDefinitions: (artifacts: SpecificationArtifact[]) => {
7
+ [k: string]: {
8
+ oneOf: ({
9
+ type: string;
10
+ default: boolean;
11
+ description: string;
12
+ const?: undefined;
13
+ properties?: undefined;
14
+ required?: undefined;
15
+ additionalProperties?: undefined;
16
+ } | {
17
+ const: string;
18
+ type?: undefined;
19
+ default?: undefined;
20
+ description?: undefined;
21
+ properties?: undefined;
22
+ required?: undefined;
23
+ additionalProperties?: undefined;
24
+ } | {
25
+ type: string;
26
+ description: string;
27
+ properties: {
28
+ path: {
29
+ const: string;
30
+ description: string;
31
+ };
32
+ transform: {
33
+ $ref: string;
34
+ };
35
+ };
36
+ required: string[];
37
+ additionalProperties: boolean;
38
+ default?: undefined;
39
+ const?: undefined;
40
+ })[];
41
+ };
42
+ };
43
+ //# sourceMappingURL=model-definitions.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-definitions.d.mts","sourceRoot":"","sources":["../../../../src/schema/configurations/model-definitions.mts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,WAAW,qBAAqB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CrE,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { basename, } from 'node:path';
2
+ import { generateModelNameRef, } from '../generate-model-name.mjs';
3
+ /**
4
+ * Generate model definitions for the given artifacts
5
+ * @param artifacts
6
+ */
7
+ export const getModelDefinitions = (artifacts) => {
8
+ return Object.fromEntries(artifacts.flatMap(({ packageManifest, models, baseDirectory }) => {
9
+ const packageManifestName = packageManifest.name || basename(baseDirectory);
10
+ return models
11
+ .filter((modelObj) => !!modelObj)
12
+ .map(({ model }) => {
13
+ const modelRef = generateModelNameRef(packageManifestName, model);
14
+ return [
15
+ `model-${modelRef}`,
16
+ {
17
+ oneOf: [
18
+ ...packageManifest.main
19
+ ? [{
20
+ type: 'boolean',
21
+ default: true,
22
+ description: 'Include the default model exposed by the artifact'
23
+ }]
24
+ : [],
25
+ {
26
+ const: model
27
+ },
28
+ {
29
+ type: 'object',
30
+ description: 'Detailed model inclusion with optional transformations to apply',
31
+ properties: {
32
+ path: {
33
+ const: model,
34
+ description: "Path to the specific model to include as is. The path is relative to the artifact root (e.g., 'models/ExampleModel.v1.yaml')"
35
+ },
36
+ transform: {
37
+ $ref: `#/definitions/transform-${modelRef}`
38
+ }
39
+ },
40
+ required: [
41
+ 'path'
42
+ ],
43
+ additionalProperties: false
44
+ }
45
+ ]
46
+ }
47
+ ];
48
+ });
49
+ }));
50
+ };
51
+ //# sourceMappingURL=model-definitions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-definitions.mjs","sourceRoot":"","sources":["../../../../src/schema/configurations/model-definitions.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAKpC;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAkC,EAAE,EAAE;IACxE,OAAO,MAAM,CAAC,WAAW,CACvB,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;QAC/D,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC5E,OAAO,MAAM;aACV,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aAChC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACjB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO;gBACL,SAAS,QAAQ,EAAE;gBACnB;oBACE,KAAK,EAAE;wBACL,GAAG,eAAe,CAAC,IAAI;4BACrB,CAAC,CAAC,CAAC;oCACD,IAAI,EAAE,SAAS;oCACf,OAAO,EAAE,IAAI;oCACb,WAAW,EAAE,mDAAmD;iCACjE,CAAC;4BACF,CAAC,CAAC,EAAE;wBACN;4BACE,KAAK,EAAE,KAAK;yBACb;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iEAAiE;4BAC9E,UAAU,EAAE;gCACV,IAAI,EAAE;oCACJ,KAAK,EAAE,KAAK;oCACZ,WAAW,EAAE,8HAA8H;iCAC5I;gCACD,SAAS,EAAE;oCACT,IAAI,EAAE,2BAA2B,QAAQ,EAAE;iCAC5C;6BACF;4BACD,QAAQ,EAAE;gCACR,MAAM;6BACP;4BACD,oBAAoB,EAAE,KAAK;yBAC5B;qBACF;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { SpecificationArtifact } from '../list-artifacts.mjs';
2
+ /**
3
+ * Generate transform definitions for the given artifacts
4
+ * @param artifacts
5
+ */
6
+ export declare const getTransformDefinitions: (artifacts: SpecificationArtifact[]) => {
7
+ [k: string]: {
8
+ allOf: ({
9
+ $ref: string;
10
+ type?: undefined;
11
+ properties?: undefined;
12
+ } | {
13
+ type: string;
14
+ properties: {
15
+ mask: {
16
+ $ref: string;
17
+ };
18
+ };
19
+ $ref?: undefined;
20
+ })[];
21
+ };
22
+ };
23
+ //# sourceMappingURL=transform-definitions.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-definitions.d.mts","sourceRoot":"","sources":["../../../../src/schema/configurations/transform-definitions.mts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,eAAO,MAAM,uBAAuB,GAAI,WAAW,qBAAqB,EAAE;;;;;;;;;;;;;;;;CA8BzE,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { basename, } from 'node:path';
2
+ import { generateModelNameRef, getMaskFileName, } from '../generate-model-name.mjs';
3
+ /**
4
+ * Generate transform definitions for the given artifacts
5
+ * @param artifacts
6
+ */
7
+ export const getTransformDefinitions = (artifacts) => {
8
+ return Object.fromEntries(artifacts.flatMap(({ packageManifest, models, baseDirectory }) => {
9
+ return models
10
+ .filter((modelObj) => !!modelObj)
11
+ .map(({ model }) => {
12
+ const packageManifestName = packageManifest.name || basename(baseDirectory);
13
+ const modelRef = generateModelNameRef(packageManifestName, model);
14
+ const maskSchemaFileName = getMaskFileName(modelRef);
15
+ return [
16
+ `transform-${modelRef}`,
17
+ {
18
+ allOf: [
19
+ {
20
+ $ref: '#/definitions/baseTransform'
21
+ },
22
+ {
23
+ type: 'object',
24
+ properties: {
25
+ mask: {
26
+ $ref: `./${maskSchemaFileName}`
27
+ }
28
+ }
29
+ }
30
+ ]
31
+ }
32
+ ];
33
+ });
34
+ }));
35
+ };
36
+ //# sourceMappingURL=transform-definitions.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-definitions.mjs","sourceRoot":"","sources":["../../../../src/schema/configurations/transform-definitions.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAKpC;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,SAAkC,EAAE,EAAE;IAC5E,OAAO,MAAM,CAAC,WAAW,CACvB,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;QAC/D,OAAO,MAAM;aACV,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;aAChC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACjB,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,kBAAkB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACrD,OAAO;gBACL,aAAa,QAAQ,EAAE;gBACvB;oBACE,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,6BAA6B;yBACpC;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,IAAI,EAAE;oCACJ,IAAI,EAAE,KAAK,kBAAkB,EAAE;iCAChC;6BACF;yBACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Generate a reference name from a model definition
3
+ * @param artifactName
4
+ * @param modelPath
5
+ */
6
+ export declare const generateModelNameRef: (artifactName: string, modelPath: string) => string;
7
+ /**
8
+ * Generate a mask schema file name from a model definition
9
+ * @param modelNameRef
10
+ */
11
+ export declare const getMaskFileName: (modelNameRef: string) => string;
12
+ //# sourceMappingURL=generate-model-name.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-model-name.d.mts","sourceRoot":"","sources":["../../../src/schema/generate-model-name.mts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM,EAAE,WAAW,MAAM,KAAG,MAQ9E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc,MAAM,WAEnD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { sanitizePackagePath, } from '../core/manifest/extract-dependency-models.mjs';
2
+ /**
3
+ * Generate a reference name from a model definition
4
+ * @param artifactName
5
+ * @param modelPath
6
+ */
7
+ export const generateModelNameRef = (artifactName, modelPath) => {
8
+ const sanitizedArtifactName = sanitizePackagePath(artifactName);
9
+ const [filePath, innerPath] = modelPath.split('#/');
10
+ const modelName = (filePath.replace(/\.(json|ya?ml)$/, '') + (innerPath ?? ''))
11
+ .replace(/^\.+\//, '')
12
+ .replace(/-/g, '_')
13
+ .replace(/\//g, '-');
14
+ return `${sanitizedArtifactName}-${modelName}`;
15
+ };
16
+ /**
17
+ * Generate a mask schema file name from a model definition
18
+ * @param modelNameRef
19
+ */
20
+ export const getMaskFileName = (modelNameRef) => {
21
+ return `mask-${modelNameRef}.json`;
22
+ };
23
+ //# sourceMappingURL=generate-model-name.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-model-name.mjs","sourceRoot":"","sources":["../../../src/schema/generate-model-name.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GACpB,MAAM,gDAAgD,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAE,SAAiB,EAAU,EAAE;IACtF,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;SAC5E,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvB,OAAO,GAAG,qBAAqB,IAAI,SAAS,EAAE,CAAC;AACjD,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAAoB,EAAE,EAAE;IACtD,OAAO,QAAQ,YAAY,OAAO,CAAC;AACrC,CAAC,CAAC"}
@@ -4,46 +4,57 @@ import { type ListDependenciesOptions } from './list-artifacts.mjs';
4
4
  export interface GenerateOpenApiManifestSchemaOptions extends ListDependenciesOptions {
5
5
  }
6
6
  /**
7
- * Generate Ama-openapi Manifest schema to provide autocompletion and structure validation
7
+ * Generate Ama-openapi Manifest schema to provide autocompletion and structure validation for the Specification manifest files
8
8
  * @param options
9
9
  */
10
10
  export declare const generateOpenApiManifestSchema: (options: GenerateOpenApiManifestSchemaOptions & Context) => Promise<{
11
- $schema: string;
12
- title: string;
13
- $id: string;
14
- type: string;
15
- properties: {
16
- models: {
17
- type: string;
18
- description: string;
19
- properties: {
20
- [k: string]: {
11
+ masks: {
12
+ mask: {
13
+ definitions: {
14
+ baseMaskField: {
21
15
  oneOf: ({
22
- $ref: string;
23
- } | {
24
16
  type: string;
25
- items: {
26
- oneOf: {
27
- $ref: string;
28
- }[];
29
- };
17
+ const?: undefined;
18
+ } | {
19
+ const: {};
20
+ type?: undefined;
21
+ } | {
22
+ const: null;
23
+ type?: undefined;
30
24
  })[];
31
25
  };
32
26
  };
27
+ $schema: string;
28
+ title: string;
29
+ $id: string;
33
30
  };
34
- };
35
- additionalProperties: boolean;
36
- definitions: {
37
- baseTransform: {
38
- type: string;
39
- examples: {
40
- rename: string;
41
- }[];
42
- properties: {
43
- rename: {
44
- type: string;
45
- description: string;
46
- examples: string[];
31
+ fileName: string;
32
+ }[];
33
+ manifest: {
34
+ $schema: string;
35
+ title: string;
36
+ $id: string;
37
+ type: string;
38
+ properties: {
39
+ models: {
40
+ type: string;
41
+ description: string;
42
+ properties: any;
43
+ };
44
+ };
45
+ additionalProperties: boolean;
46
+ definitions: {
47
+ baseTransform: {
48
+ type: string;
49
+ examples: {
50
+ rename: string;
51
+ }[];
52
+ properties: {
53
+ rename: {
54
+ type: string;
55
+ description: string;
56
+ examples: string[];
57
+ };
47
58
  };
48
59
  };
49
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schema.d.mts","sourceRoot":"","sources":["../../../src/schema/generate-schema.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,sBAAsB,CAAC;AAE9B,4DAA4D;AAC5D,MAAM,WAAW,oCAAqC,SAAQ,uBAAuB;CACpF;AAYD;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GAAU,SAAS,oCAAoC,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgI1G,CAAC"}
1
+ {"version":3,"file":"generate-schema.d.mts","sourceRoot":"","sources":["../../../src/schema/generate-schema.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,gBAAgB,CAAC;AAUxB,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,sBAAsB,CAAC;AAK9B,4DAA4D;AAC5D,MAAM,WAAW,oCAAqC,SAAQ,uBAAuB;CACpF;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GAAU,SAAS,oCAAoC,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+C1G,CAAC"}
@@ -1,134 +1,55 @@
1
- import { sanitizePackagePath, } from '../core/manifest/extract-dependency-models.mjs';
1
+ import { getManifestModelsProperties, } from './configurations/manifest-model-properties.mjs';
2
+ import { getModelDefinitions, } from './configurations/model-definitions.mjs';
3
+ import { getTransformDefinitions, } from './configurations/transform-definitions.mjs';
2
4
  import { listSpecificationArtifacts, } from './list-artifacts.mjs';
3
- const generateModelNameRef = (artifactName, modelPath) => {
4
- const sanitizedArtifactName = sanitizePackagePath(artifactName);
5
- const modelName = modelPath
6
- .replace(/\.(json|ya?ml)$/, '')
7
- .replace(/^\.+\//, '')
8
- .replace(/\//g, '-')
9
- .replace(/-/g, '_');
10
- return `${sanitizedArtifactName}-${modelName}`;
11
- };
5
+ import { getDependencyModelMasks, } from './mask/dependencies-masks.mjs';
12
6
  /**
13
- * Generate Ama-openapi Manifest schema to provide autocompletion and structure validation
7
+ * Generate Ama-openapi Manifest schema to provide autocompletion and structure validation for the Specification manifest files
14
8
  * @param options
15
9
  */
16
10
  export const generateOpenApiManifestSchema = async (options) => {
17
11
  const artifacts = await listSpecificationArtifacts(options);
18
- const modelsProperties = Object.fromEntries(artifacts.map(({ packageManifest, models }) => {
19
- const refModels = models
20
- .filter((modelObj) => !!modelObj)
21
- .map(({ model }) => `model-${generateModelNameRef(packageManifest.name, model)}`);
22
- return [
23
- packageManifest.name,
24
- {
25
- oneOf: [
26
- ...refModels.map((modelName) => ({ $ref: `#/definitions/${modelName}` })),
27
- { type: 'array', items: { oneOf: refModels.map((modelName) => ({ $ref: `#/definitions/${modelName}` })) } }
28
- ]
29
- }
30
- ];
31
- }));
32
- const modelDefinitions = Object.fromEntries(artifacts.flatMap(({ packageManifest, models }) => {
33
- return models
34
- .filter((modelObj) => !!modelObj)
35
- .map(({ model }) => {
36
- const modelRef = generateModelNameRef(packageManifest.name, model);
37
- return [
38
- `model-${modelRef}`,
39
- {
40
- oneOf: [
41
- ...packageManifest.main
42
- ? [{
43
- type: 'boolean',
44
- default: true,
45
- description: 'Include the default model exposed by the artifact'
46
- }]
47
- : [],
48
- {
49
- type: 'string',
50
- const: model
51
- },
52
- {
53
- type: 'object',
54
- description: 'Detailed model inclusion with optional transformations to apply',
55
- properties: {
56
- path: {
57
- type: 'string',
58
- const: model,
59
- description: "Path to the specific model to include as is. The path is relative to the artifact root (e.g., 'models/ExampleModel.v1.yaml')"
60
- },
61
- transform: {
62
- $ref: `#/definitions/transform-${modelRef}`
63
- }
64
- },
65
- required: [
66
- 'path'
67
- ],
68
- additionalProperties: false
69
- }
70
- ]
12
+ const manifestModelsProperties = getManifestModelsProperties(artifacts);
13
+ const modelDefinitions = getModelDefinitions(artifacts);
14
+ const transformDefinitions = getTransformDefinitions(artifacts);
15
+ const masks = await getDependencyModelMasks(artifacts, options);
16
+ return {
17
+ masks,
18
+ manifest: {
19
+ $schema: 'http://json-schema.org/draft-07/schema#',
20
+ title: 'OpenApi specification package manifest',
21
+ $id: '@ama-openapi/core/schemas/manifest.schema.json',
22
+ type: 'object',
23
+ properties: {
24
+ models: {
25
+ type: 'object',
26
+ description: 'Dependency package containing the specification to include',
27
+ properties: manifestModelsProperties
71
28
  }
72
- ];
73
- });
74
- }));
75
- const transformDefinitions = Object.fromEntries(artifacts.flatMap(({ packageManifest, models }) => {
76
- return models
77
- .filter((modelObj) => !!modelObj)
78
- .map(({ model }) => {
79
- const modelRef = generateModelNameRef(packageManifest.name, model);
80
- return [
81
- `transform-${modelRef}`,
82
- {
83
- allOf: [
84
- {
85
- $ref: '#/definitions/baseTransform'
86
- },
29
+ },
30
+ additionalProperties: true,
31
+ definitions: {
32
+ baseTransform: {
33
+ type: 'object',
34
+ examples: [
87
35
  {
88
- mask: {
89
- type: 'object',
90
- description: 'Mask to apply'
91
- }
36
+ rename: 'MyPrefix_$1'
37
+ }
38
+ ],
39
+ properties: {
40
+ rename: {
41
+ type: 'string',
42
+ description: 'Rename the outputted file. The keyword `$1` can be used to refer to the original name (ex: a prefix would be `my-prefix-$1`)',
43
+ examples: [
44
+ 'my-prefix-$1',
45
+ 'myModel.v1.yaml'
46
+ ]
92
47
  }
93
- ]
94
- }
95
- ];
96
- });
97
- }));
98
- return {
99
- $schema: 'http://json-schema.org/draft-07/schema#',
100
- title: 'OpenApi specification package manifest',
101
- $id: '@ama-openapi/core/schemas/manifest.schema.json',
102
- type: 'object',
103
- properties: {
104
- models: {
105
- type: 'object',
106
- description: 'Dependency package containing the specification to include',
107
- properties: modelsProperties
108
- }
109
- },
110
- additionalProperties: true,
111
- definitions: {
112
- baseTransform: {
113
- type: 'object',
114
- examples: [
115
- {
116
- rename: 'MyPrefix_$1'
117
- }
118
- ],
119
- properties: {
120
- rename: {
121
- type: 'string',
122
- description: 'Rename the outputted file. The keyword `$1` can be used to refer to the original name (ex: a prefix would be `my-prefix-$1`)',
123
- examples: [
124
- 'my-prefix-$1',
125
- 'myModel.v1.yaml'
126
- ]
127
48
  }
128
- }
129
- },
130
- ...modelDefinitions,
131
- ...transformDefinitions
49
+ },
50
+ ...modelDefinitions,
51
+ ...transformDefinitions
52
+ }
132
53
  }
133
54
  };
134
55
  };
@@ -1 +1 @@
1
- {"version":3,"file":"generate-schema.mjs","sourceRoot":"","sources":["../../../src/schema/generate-schema.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-schema.mjs","sourceRoot":"","sources":["../../../src/schema/generate-schema.mts"],"names":[],"mappings":"AAGA,OAAO,EACL,2BAA2B,GAC5B,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACL,mBAAmB,GACpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,uBAAuB,GACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAEL,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,uBAAuB,GACxB,MAAM,+BAA+B,CAAC;AAMvC;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAAE,OAAuD,EAAE,EAAE;IAC7G,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAE5D,MAAM,wBAAwB,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEhE,OAAO;QACL,KAAK;QACL,QAAQ,EAAE;YACR,OAAO,EAAE,yCAAyC;YAClD,KAAK,EAAE,wCAAwC;YAC/C,GAAG,EAAE,gDAAgD;YACrD,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4DAA4D;oBACzE,UAAU,EAAE,wBAAwB;iBACrC;aACF;YACD,oBAAoB,EAAE,IAAI;YAC1B,WAAW,EAAE;gBACX,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE;wBACR;4BACE,MAAM,EAAE,aAAa;yBACtB;qBACF;oBACD,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,8HAA8H;4BAC3I,QAAQ,EAAE;gCACR,cAAc;gCACd,iBAAiB;6BAClB;yBACF;qBACF;iBACF;gBACD,GAAG,gBAAgB;gBACnB,GAAG,oBAAoB;aACxB;SACF;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -4,7 +4,11 @@ import type { Context } from '../context.mjs';
4
4
  * Options controlling how dependencies are listed for a package or project.
5
5
  */
6
6
  export interface ListDependenciesOptions {
7
- /** Keyword of the whitelisted packages */
7
+ /**
8
+ * List of NPM Keywords to use when searching for packages exposing OpenAPI specifications
9
+ * The whitelisted packages should includes at least one of the listed keywords
10
+ * @default [OPENAPI_NPM_KEYWORDS]
11
+ */
8
12
  keywordsWhitelist?: string[];
9
13
  /**
10
14
  * List of ignored models file which will not be part of the suggestion
@@ -17,16 +21,23 @@ export interface ListDependenciesOptions {
17
21
  */
18
22
  moduleResolve?: NodeJS.RequireResolve;
19
23
  }
20
- /**
21
- * List the artifacts and their exposed models for the declared dependencies
22
- * @param options
23
- */
24
- export declare const listSpecificationArtifacts: (options: ListDependenciesOptions & Context) => Promise<{
24
+ /** Specification Artifact representing a package and its exposed models */
25
+ export interface SpecificationArtifact {
26
+ /** Package manifest */
25
27
  packageManifest: PackageJson;
28
+ /** Base directory of the package */
26
29
  baseDirectory: string;
27
- models: ({
30
+ /** List of exposed models */
31
+ models: {
32
+ /** Model path */
28
33
  model: string;
34
+ /** Resolved model path */
29
35
  modelPath: string;
30
- } | undefined)[];
31
- }[]>;
36
+ }[];
37
+ }
38
+ /**
39
+ * List the artifacts and their exposed models for the declared dependencies
40
+ * @param options
41
+ */
42
+ export declare const listSpecificationArtifacts: (options: ListDependenciesOptions & Context) => Promise<SpecificationArtifact[]>;
32
43
  //# sourceMappingURL=list-artifacts.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-artifacts.d.mts","sourceRoot":"","sources":["../../../src/schema/list-artifacts.mts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,WAAW,EACZ,MAAM,WAAW,CAAC;AAInB,OAAO,KAAK,EACV,OAAO,EACR,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CACvC;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GAAU,SAAS,uBAAuB,GAAG,OAAO;;;;;;;IAyD1F,CAAC"}
1
+ {"version":3,"file":"list-artifacts.d.mts","sourceRoot":"","sources":["../../../src/schema/list-artifacts.mts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EACV,WAAW,EACZ,MAAM,WAAW,CAAC;AAInB,OAAO,KAAK,EACV,OAAO,EACR,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;CACvC;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,uBAAuB;IACvB,eAAe,EAAE,WAAW,CAAC;IAC7B,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,MAAM,EAAE;QACN,iBAAiB;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,0BAA0B;QAC1B,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACL;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GAAU,SAAS,uBAAuB,GAAG,OAAO,KAAG,OAAO,CAAC,qBAAqB,EAAE,CAyD5H,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-artifacts.mjs","sourceRoot":"","sources":["../../../src/schema/list-artifacts.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-artifacts.mjs","sourceRoot":"","sources":["../../../src/schema/list-artifacts.mts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { Context } from '../../context.mjs';
2
+ import type { SpecificationArtifact } from '../list-artifacts.mjs';
3
+ /**
4
+ * Generate masks schema for the dependency models from the given artifacts
5
+ * @param artifacts List of specification artifacts
6
+ * @param options
7
+ */
8
+ export declare const getDependencyModelMasks: (artifacts: SpecificationArtifact[], options: Context) => Promise<{
9
+ mask: {
10
+ definitions: {
11
+ baseMaskField: {
12
+ oneOf: ({
13
+ type: string;
14
+ const?: undefined;
15
+ } | {
16
+ const: {};
17
+ type?: undefined;
18
+ } | {
19
+ const: null;
20
+ type?: undefined;
21
+ })[];
22
+ };
23
+ };
24
+ $schema: string;
25
+ title: string;
26
+ $id: string;
27
+ };
28
+ fileName: string;
29
+ }[]>;
30
+ //# sourceMappingURL=dependencies-masks.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies-masks.d.mts","sourceRoot":"","sources":["../../../../src/schema/mask/dependencies-masks.mts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAQ/B;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAAU,WAAW,qBAAqB,EAAE,EAAE,SAAS,OAAO;;;;;;;;;;;;;;;;;;;;;IAiCjG,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { basename, } from 'node:path/posix';
2
+ import { generateModelNameRef, getMaskFileName, } from '../generate-model-name.mjs';
3
+ import { FIELD_SCHEMA_DEFINITION, } from './field-schema.constants.mjs';
4
+ import { generateMaskSchemaModelAt, } from './generate-mask-from-model.mjs';
5
+ /**
6
+ * Generate masks schema for the dependency models from the given artifacts
7
+ * @param artifacts List of specification artifacts
8
+ * @param options
9
+ */
10
+ export const getDependencyModelMasks = async (artifacts, options) => {
11
+ const maskModelList = await Promise.all(artifacts.map(({ packageManifest, models, baseDirectory }) => {
12
+ const filteredModels = models
13
+ .filter((modelObj) => !!modelObj);
14
+ const modelPaths = Object.fromEntries(filteredModels.map((m) => ([m.modelPath, m.model])));
15
+ return Promise.all(filteredModels
16
+ .map(async ({ model, modelPath }) => {
17
+ const packageManifestName = packageManifest.name || basename(baseDirectory);
18
+ const modelRef = generateModelNameRef(packageManifestName, model);
19
+ const fileName = getMaskFileName(modelRef);
20
+ const ctx = {
21
+ ...options,
22
+ modelPaths,
23
+ packageName: packageManifestName
24
+ };
25
+ return {
26
+ mask: {
27
+ $schema: 'http://json-schema.org/draft-07/schema#',
28
+ title: `OpenApi specification mask ${modelRef}`,
29
+ $id: `@ama-openapi/core/schemas/${fileName}`,
30
+ ...await generateMaskSchemaModelAt(modelPath, ctx),
31
+ definitions: {
32
+ ...FIELD_SCHEMA_DEFINITION
33
+ }
34
+ },
35
+ fileName
36
+ };
37
+ }));
38
+ }));
39
+ return maskModelList.flat();
40
+ };
41
+ //# sourceMappingURL=dependencies-masks.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencies-masks.mjs","sourceRoot":"","sources":["../../../../src/schema/mask/dependencies-masks.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EACL,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AAExC;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAAE,SAAkC,EAAE,OAAgB,EAAE,EAAE;IACpG,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE;QAC3D,MAAM,cAAc,GAAG,MAAM;aAC1B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3F,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc;aAC9B,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;YAClC,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,GAAG,GAAG;gBACV,GAAG,OAAO;gBACV,UAAU;gBACV,WAAW,EAAE,mBAAmB;aACjC,CAAC;YACF,OAAO;gBACL,IAAI,EAAE;oBACJ,OAAO,EAAE,yCAAyC;oBAClD,KAAK,EAAE,8BAA8B,QAAQ,EAAE;oBAC/C,GAAG,EAAE,6BAA6B,QAAQ,EAAE;oBAC5C,GAAG,MAAM,yBAAyB,CAAC,SAAS,EAAE,GAAG,CAAC;oBAClD,WAAW,EAAE;wBACX,GAAG,uBAAuB;qBAC3B;iBACF;gBACD,QAAQ;aACT,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACF,OAAO,aAAa,CAAC,IAAI,EAAE,CAAC;AAC9B,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** Name of the schema for a mask applied to a specification field */
2
+ export declare const FIELD_SCHEMA_NAME = "baseMaskField";
3
+ /** Inner path of the schema for a mask applied to a specification field */
4
+ export declare const FIELD_SCHEMA_REF = "#/definitions/baseMaskField";
5
+ /** Basic mask which can be applied to a specification field */
6
+ export declare const FIELD_SCHEMA_DEFINITION: {
7
+ baseMaskField: {
8
+ oneOf: ({
9
+ type: string;
10
+ const?: undefined;
11
+ } | {
12
+ const: {};
13
+ type?: undefined;
14
+ } | {
15
+ const: null;
16
+ type?: undefined;
17
+ })[];
18
+ };
19
+ };
20
+ //# sourceMappingURL=field-schema.constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-schema.constants.d.mts","sourceRoot":"","sources":["../../../../src/schema/mask/field-schema.constants.mts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,2EAA2E;AAC3E,eAAO,MAAM,gBAAgB,gCAAuC,CAAC;AAErE,+DAA+D;AAC/D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;CAQnC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /** Name of the schema for a mask applied to a specification field */
2
+ export const FIELD_SCHEMA_NAME = 'baseMaskField';
3
+ /** Inner path of the schema for a mask applied to a specification field */
4
+ export const FIELD_SCHEMA_REF = `#/definitions/${FIELD_SCHEMA_NAME}`;
5
+ /** Basic mask which can be applied to a specification field */
6
+ export const FIELD_SCHEMA_DEFINITION = {
7
+ [FIELD_SCHEMA_NAME]: {
8
+ oneOf: [
9
+ { type: 'boolean' },
10
+ { const: {} },
11
+ { const: null }
12
+ ]
13
+ }
14
+ };
15
+ //# sourceMappingURL=field-schema.constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-schema.constants.mjs","sourceRoot":"","sources":["../../../../src/schema/mask/field-schema.constants.mts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,iBAAiB,EAAE,CAAC;AAErE,+DAA+D;AAC/D,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,CAAC,iBAAiB,CAAC,EAAE;QACnB,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,SAAS,EAAE;YACnB,EAAE,KAAK,EAAE,EAAE,EAAE;YACb,EAAE,KAAK,EAAE,IAAI,EAAE;SAChB;KACF;CACF,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { Context } from '../../context.mjs';
2
+ /** Mask context */
3
+ export interface MaskContext extends Context {
4
+ /** Path to the current file being parsed */
5
+ filePath?: string;
6
+ /** List of files already parsed */
7
+ parsedFiles?: string[];
8
+ /** List of model paths to be resolved for the current package */
9
+ modelPaths: Record<string, string>;
10
+ /** Package name */
11
+ packageName: string;
12
+ }
13
+ /**
14
+ * Generate a JSON Schema of a mask which can be applied to the provided model path
15
+ * @param modelPath Path to the model
16
+ * @param ctx Mask context
17
+ */
18
+ export declare const generateMaskSchemaModelAt: (modelPath: string, ctx: MaskContext) => Promise<Record<string, any>>;
19
+ /**
20
+ * Recursive function to generate a JSON Schema of a mask which can be applied to the provided model object and its children
21
+ * Note: this function is recursive and exported only for testing purposes
22
+ * @access private
23
+ * @param model Model object
24
+ * @param ctx Mask context
25
+ */
26
+ export declare const generateMaskSchemaFromModel: (model: any, ctx: MaskContext) => Promise<Record<string, any>>;
27
+ //# sourceMappingURL=generate-mask-from-model.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-mask-from-model.d.mts","sourceRoot":"","sources":["../../../../src/schema/mask/generate-mask-from-model.mts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,OAAO,EACR,MAAM,mBAAmB,CAAC;AAY3B,mBAAmB;AACnB,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GAAU,WAAW,MAAM,EAAE,KAAK,WAAW,iCAyDlF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,GAAU,OAAO,GAAG,EAAE,KAAK,WAAW,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAmE3G,CAAC"}
@@ -0,0 +1,122 @@
1
+ import { dirname, posix, sep, } from 'node:path';
2
+ import { parseFile, } from '../../core/file-system/parse-file.mjs';
3
+ import { generateModelNameRef, getMaskFileName, } from '../generate-model-name.mjs';
4
+ import { FIELD_SCHEMA_REF, } from './field-schema.constants.mjs';
5
+ /**
6
+ * Generate a JSON Schema of a mask which can be applied to the provided model path
7
+ * @param modelPath Path to the model
8
+ * @param ctx Mask context
9
+ */
10
+ export const generateMaskSchemaModelAt = async (modelPath, ctx) => {
11
+ const { logger } = ctx;
12
+ modelPath = modelPath.replaceAll(sep, '/');
13
+ if (ctx.filePath) {
14
+ modelPath = posix.resolve(dirname(ctx.filePath).replaceAll(sep, '/'), modelPath);
15
+ }
16
+ if (ctx.parsedFiles?.includes(modelPath)) {
17
+ logger?.warn(`The reference ${modelPath} is circular, it will be resolve to "any"`);
18
+ return {};
19
+ }
20
+ const [filePath, innerPath] = modelPath.split('#/');
21
+ let model = await parseFile(filePath);
22
+ if (ctx.filePath && ctx.modelPaths[filePath]) {
23
+ const schemaInnerPath = innerPath?.replaceAll('/', '/properties/');
24
+ return {
25
+ description: model.description,
26
+ oneOf: [
27
+ {
28
+ $ref: FIELD_SCHEMA_REF
29
+ },
30
+ {
31
+ $ref: `./${getMaskFileName(generateModelNameRef(ctx.packageName, ctx.modelPaths[filePath]))}${schemaInnerPath ? `#/${schemaInnerPath}` : ''}`
32
+ }
33
+ ]
34
+ };
35
+ }
36
+ // Convert model inner path to properties in the generated Mask schema
37
+ if (!filePath && innerPath) {
38
+ const schemaInnerPath = innerPath?.replaceAll('/', '/properties/');
39
+ return {
40
+ description: model.description,
41
+ oneOf: [
42
+ {
43
+ $ref: FIELD_SCHEMA_REF
44
+ },
45
+ {
46
+ $ref: schemaInnerPath ? `#/${schemaInnerPath}` : ''
47
+ }
48
+ ]
49
+ };
50
+ }
51
+ if (innerPath) {
52
+ model = innerPath.split('/').reduce((acc, pathItem) => acc?.[pathItem], model);
53
+ }
54
+ return generateMaskSchemaFromModel(model, {
55
+ ...ctx,
56
+ filePath,
57
+ parsedFiles: [...(ctx.parsedFiles ?? []), modelPath]
58
+ });
59
+ };
60
+ /**
61
+ * Recursive function to generate a JSON Schema of a mask which can be applied to the provided model object and its children
62
+ * Note: this function is recursive and exported only for testing purposes
63
+ * @access private
64
+ * @param model Model object
65
+ * @param ctx Mask context
66
+ */
67
+ export const generateMaskSchemaFromModel = async (model, ctx) => {
68
+ // Primitive types
69
+ if (typeof model !== 'object' || !model) {
70
+ return {
71
+ default: model,
72
+ oneOf: [
73
+ { $ref: FIELD_SCHEMA_REF },
74
+ ...(typeof model === 'object' ? [] : [{ type: typeof model }])
75
+ ]
76
+ };
77
+ }
78
+ // Arrays
79
+ if (Array.isArray(model)) {
80
+ return {
81
+ type: 'array',
82
+ prefixItems: await Promise.all(model.map((item) => generateMaskSchemaFromModel(item, ctx)))
83
+ };
84
+ }
85
+ // Is referencing another model
86
+ if (model.$ref) {
87
+ return generateMaskSchemaModelAt(model.$ref, ctx);
88
+ // Objects
89
+ }
90
+ else if (model.type === 'object') {
91
+ return {
92
+ type: 'object',
93
+ ...(model.description === undefined ? {} : { description: model.description }),
94
+ default: model.properties ? { properties: Object.fromEntries(Object.keys(model.properties).map((key) => [key, true])) } : {},
95
+ properties: {
96
+ ...model.properties
97
+ ? {
98
+ properties: {
99
+ type: 'object',
100
+ properties: Object.fromEntries(await Promise.all(Object.entries(model.properties).map(async ([key, value]) => ([key, await generateMaskSchemaFromModel(value, ctx)]))))
101
+ }
102
+ }
103
+ : {},
104
+ ...Object.fromEntries(await Promise.all(Object.entries(model)
105
+ .filter(([key]) => !['properties', 'type', '$ref'].includes(key))
106
+ .map(async ([key, value]) => ([key, await generateMaskSchemaFromModel(value, ctx)]))))
107
+ }
108
+ };
109
+ }
110
+ return {
111
+ description: model.description,
112
+ oneOf: [
113
+ {
114
+ $ref: FIELD_SCHEMA_REF
115
+ },
116
+ {
117
+ type: model.type
118
+ }
119
+ ]
120
+ };
121
+ };
122
+ //# sourceMappingURL=generate-mask-from-model.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-mask-from-model.mjs","sourceRoot":"","sources":["../../../../src/schema/mask/generate-mask-from-model.mts"],"names":[],"mappings":"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"}