@kravc/schema 2.8.0 → 2.8.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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(npm version:*)"
5
+ ]
6
+ }
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"createSchemasMap.d.ts","sourceRoot":"","sources":["../../src/helpers/createSchemasMap.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,WAAW,CAAC;AAK/B,wEAAwE;AACxE,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,WAUxC,CAAC;AAoBF,qGAAqG;AACrG,QAAA,MAAM,gBAAgB,GAAI,aAAa,MAAM,EAAE,SAAS,OAAO,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAYxF,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"createSchemasMap.d.ts","sourceRoot":"","sources":["../../src/helpers/createSchemasMap.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,WAAW,CAAC;AAK/B,wEAAwE;AACxE,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,WAUxC,CAAC;AAoBF,qGAAqG;AACrG,QAAA,MAAM,gBAAgB,GAAI,aAAa,MAAM,EAAE,SAAS,OAAO,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAcxF,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -31,6 +31,8 @@ const readSchemasSync = (servicePath) => listFilesSync(servicePath)
31
31
  .map((schemaPath) => (0, exports.loadSync)(schemaPath));
32
32
  /** Creates a map of schemas by ID, loading from YAML files and merging with programmatic schemas. */
33
33
  const createSchemasMap = (servicePath, modules) => {
34
+ if (!(0, fs_1.existsSync)(servicePath))
35
+ return {};
34
36
  const yamlSchemas = readSchemasSync(servicePath);
35
37
  const schemasMap = (0, lodash_1.keyBy)(yamlSchemas, 'id');
36
38
  const schemas = modules
@@ -1 +1 @@
1
- {"version":3,"file":"createSchemasMap.js","sourceRoot":"","sources":["../../src/helpers/createSchemasMap.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,uDAA+B;AAC/B,qCAA+B;AAC/B,mCAA+B;AAC/B,2BAAyD;AAEzD,wEAAwE;AACjE,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC3C,MAAM,QAAQ,GAAG,QAAQ;SACtB,KAAK,CAAC,GAAG,CAAC;SACV,OAAO,EAAE,CAAC,CAAC,CAAC;SACZ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAErB,MAAM,IAAI,GAAG,IAAA,iBAAY,EAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAkC,CAAC;IAEtE,OAAO,IAAI,gBAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAVW,QAAA,QAAQ,YAUnB;AAEF,yEAAyE;AACzE,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAY,EAAE,CACtD,IAAA,gBAAW,EAAC,WAAW,CAAC;KACrB,MAAM,CACL,CAAC,SAAmB,EAAE,QAAgB,EAAE,EAAE,CACxC,IAAA,aAAQ,EACN,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,SAAS,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CACpD,EACH,EAAE,CAAC,CAAC;AAEV,iFAAiF;AACjF,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,EAAE,CAC9C,aAAa,CAAC,WAAW,CAAC;KACvB,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACxD,GAAG,CAAC,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,UAAU,CAAC,CAAC,CAAC;AAEvD,qGAAqG;AACrG,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAE,OAAkB,EAA0B,EAAE;IAC3F,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,IAAA,cAAK,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,OAAO;SACpB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,YAAY,gBAAM,CAAC,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;IACjC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"createSchemasMap.js","sourceRoot":"","sources":["../../src/helpers/createSchemasMap.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,uDAA+B;AAC/B,qCAA+B;AAC/B,mCAA+B;AAC/B,2BAAqE;AAErE,wEAAwE;AACjE,MAAM,QAAQ,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC3C,MAAM,QAAQ,GAAG,QAAQ;SACtB,KAAK,CAAC,GAAG,CAAC;SACV,OAAO,EAAE,CAAC,CAAC,CAAC;SACZ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAErB,MAAM,IAAI,GAAG,IAAA,iBAAY,EAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAkC,CAAC;IAEtE,OAAO,IAAI,gBAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAVW,QAAA,QAAQ,YAUnB;AAEF,yEAAyE;AACzE,MAAM,aAAa,GAAG,CAAC,WAAmB,EAAY,EAAE,CACtD,IAAA,gBAAW,EAAC,WAAW,CAAC;KACrB,MAAM,CACL,CAAC,SAAmB,EAAE,QAAgB,EAAE,EAAE,CACxC,IAAA,aAAQ,EACN,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,SAAS,CAAC,MAAM,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CACpD,EACH,EAAE,CAAC,CAAC;AAEV,iFAAiF;AACjF,MAAM,eAAe,GAAG,CAAC,WAAmB,EAAE,EAAE,CAC9C,aAAa,CAAC,WAAW,CAAC;KACvB,MAAM,CAAC,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACxD,GAAG,CAAC,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,UAAU,CAAC,CAAC,CAAC;AAEvD,qGAAqG;AACrG,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAE,OAAkB,EAA0B,EAAE;IAC3F,IAAI,CAAC,IAAA,eAAU,EAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,IAAA,cAAK,EAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,OAAO;SACpB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,YAAY,gBAAM,CAAC,CAAC;IAE9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;IACjC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kravc/schema",
3
- "version": "2.8.0",
3
+ "version": "2.8.2",
4
4
  "description": "Advanced JSON schema manipulation and validation library.",
5
5
  "keywords": [
6
6
  "JSON",
@@ -35,6 +35,7 @@
35
35
  "lodash": "^4.17.23",
36
36
  "security-context": "^4.0.0",
37
37
  "validator": "^13.15.26",
38
+ "js-yaml": "^4.1.1",
38
39
  "z-schema": "^12.0.0"
39
40
  },
40
41
  "devDependencies": {
@@ -48,7 +49,6 @@
48
49
  "eslint-plugin-jsdoc": "^62.7.1",
49
50
  "globals": "^17.1.0",
50
51
  "jest": "^30.2.0",
51
- "js-yaml": "^4.1.1",
52
52
  "jsonld": "^9.0.0",
53
53
  "rimraf": "^6.1.2",
54
54
  "ts-jest": "^29.4.6",
@@ -150,6 +150,13 @@ describe('createSchemasMap', () => {
150
150
  });
151
151
 
152
152
  describe('edge cases', () => {
153
+ it('should return empty map if servicePath does not exist', () => {
154
+ const nonExistentPath = path.join(__dirname, '../../../non-existent-src');
155
+ const schemasMap = createSchemasMap(nonExistentPath, []);
156
+
157
+ expect(schemasMap).toEqual({});
158
+ });
159
+
153
160
  it('should handle empty directory gracefully', () => {
154
161
  const emptyDir = path.join(__dirname, '../../../examples');
155
162
  // This directory might have subdirectories but no YAML files directly
@@ -2,7 +2,7 @@ import path from 'path';
2
2
  import Schema from '../Schema';
3
3
  import { load } from 'js-yaml';
4
4
  import { keyBy } from 'lodash';
5
- import { readFileSync, readdirSync, statSync } from 'fs';
5
+ import { existsSync, readFileSync, readdirSync, statSync } from 'fs';
6
6
 
7
7
  /** Reads schema source from YAML file and returns a Schema instance. */
8
8
  export const loadSync = (yamlPath: string) => {
@@ -37,6 +37,8 @@ const readSchemasSync = (servicePath: string) =>
37
37
 
38
38
  /** Creates a map of schemas by ID, loading from YAML files and merging with programmatic schemas. */
39
39
  const createSchemasMap = (servicePath: string, modules: unknown[]): Record<string, Schema> => {
40
+ if (!existsSync(servicePath)) return {};
41
+
40
42
  const yamlSchemas = readSchemasSync(servicePath);
41
43
  const schemasMap = keyBy(yamlSchemas, 'id');
42
44