@iqb/validate-md-profile 0.2.0 → 0.3.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.
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from "./validate-md-profile";
2
+ export * from "./md-profile-schema.classes";
package/dist/index.js CHANGED
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./validate-md-profile"), exports);
18
+ __exportStar(require("./md-profile-schema.classes"), exports);
18
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,8DAA4C"}
@@ -0,0 +1,52 @@
1
+ {
2
+ "$id": "https://w3id.org/iqb/vocabs/md-profile-config.schema.json",
3
+ "$schema": "http://json-schema.org/draft-07/schema#",
4
+ "title": "Metadata Profile Store Config",
5
+ "description": "Configuration file to validate a metadata profile store",
6
+ "type": "object",
7
+ "properties": {
8
+ "id": {
9
+ "type": "string",
10
+ "pattern": "^[0-9a-zA-Z_]+$",
11
+ "description": "Identifier for the metadata profile store as part of the uri"
12
+ },
13
+ "creator": {
14
+ "type": "string",
15
+ "description": "Creator as person or institution"
16
+ },
17
+ "title": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "object",
21
+ "properties": {
22
+ "lang": {
23
+ "type": "string",
24
+ "pattern": "^[a-z]+$",
25
+ "description": "Language of the value"
26
+ },
27
+ "value": {
28
+ "type": "string",
29
+ "description": "Language of the value"
30
+ }
31
+ },
32
+ "required": ["lang", "value"]
33
+ },
34
+ "minItems": 1
35
+ },
36
+ "mdOutDir": {
37
+ "type": "string",
38
+ "description": "Folder where the markdown output is written to.",
39
+ "default": "./docs"
40
+ },
41
+ "profiles": {
42
+ "type": "array",
43
+ "items": {
44
+ "type": "string",
45
+ "minLength": 1,
46
+ "description": "Name of the profile json files"
47
+ },
48
+ "minItems": 1
49
+ }
50
+ },
51
+ "required": ["id", "title", "creator", "profiles"]
52
+ }
@@ -0,0 +1,52 @@
1
+ export interface TextWithLanguage {
2
+ "lang": string;
3
+ "value": string;
4
+ }
5
+ export declare class ProfileEntryParametersVocabulary {
6
+ readonly url: string;
7
+ readonly allowMultipleValues: boolean;
8
+ readonly maxLevel: number;
9
+ readonly hideNumbering: boolean;
10
+ readonly hideTitle: boolean;
11
+ readonly hideDescription: boolean;
12
+ readonly addTextLanguages: string[];
13
+ constructor(profileEntryParameters: any);
14
+ }
15
+ export declare class ProfileEntryParametersText {
16
+ readonly format: string;
17
+ readonly textLanguages: string[];
18
+ readonly pattern: string;
19
+ constructor(profileEntryParameters: any);
20
+ }
21
+ export declare class ProfileEntryParametersNumber {
22
+ readonly digits: number;
23
+ readonly minValue: number | null;
24
+ readonly maxValue: number | null;
25
+ readonly isPeriodSeconds: boolean;
26
+ constructor(profileEntryParameters: any);
27
+ }
28
+ export declare class ProfileEntryParametersBoolean {
29
+ readonly trueLabel: string;
30
+ readonly falseLabel: string;
31
+ constructor(profileEntryParameters: any);
32
+ }
33
+ export declare class MDProfileEntry {
34
+ readonly id: string;
35
+ readonly label: string;
36
+ readonly type: string;
37
+ readonly parameters: ProfileEntryParametersNumber | ProfileEntryParametersBoolean | ProfileEntryParametersText | ProfileEntryParametersVocabulary | null;
38
+ constructor(entryData: any);
39
+ }
40
+ export declare class MDProfileGroup {
41
+ readonly label: string;
42
+ readonly entries: MDProfileEntry[];
43
+ constructor(groupData: any);
44
+ }
45
+ export declare class MDProfile {
46
+ static lang: string;
47
+ readonly id: string;
48
+ readonly label: string;
49
+ readonly groups: MDProfileGroup[];
50
+ constructor(profileData: any);
51
+ static getTextFromTextWithLanguage(langArray: any | null): string;
52
+ }
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MDProfile = exports.MDProfileGroup = exports.MDProfileEntry = exports.ProfileEntryParametersBoolean = exports.ProfileEntryParametersNumber = exports.ProfileEntryParametersText = exports.ProfileEntryParametersVocabulary = void 0;
4
+ var ProfileEntryParametersVocabulary = /** @class */ (function () {
5
+ function ProfileEntryParametersVocabulary(profileEntryParameters) {
6
+ this.url = profileEntryParameters['url'] || '?url';
7
+ this.allowMultipleValues = profileEntryParameters['allowMultipleValues'] || false;
8
+ this.maxLevel = profileEntryParameters['maxLevel'] || 0;
9
+ this.hideNumbering = profileEntryParameters['hideNumbering'] || false;
10
+ this.hideTitle = profileEntryParameters['hideTitle'] || false;
11
+ this.hideDescription = profileEntryParameters['hideDescription'] || false;
12
+ this.addTextLanguages = profileEntryParameters['addTextLanguages'] || [];
13
+ }
14
+ return ProfileEntryParametersVocabulary;
15
+ }());
16
+ exports.ProfileEntryParametersVocabulary = ProfileEntryParametersVocabulary;
17
+ var ProfileEntryParametersText = /** @class */ (function () {
18
+ function ProfileEntryParametersText(profileEntryParameters) {
19
+ this.format = profileEntryParameters['format'] || '';
20
+ this.pattern = profileEntryParameters['pattern'] || '';
21
+ this.textLanguages = profileEntryParameters['textLanguages'] || [];
22
+ }
23
+ return ProfileEntryParametersText;
24
+ }());
25
+ exports.ProfileEntryParametersText = ProfileEntryParametersText;
26
+ var ProfileEntryParametersNumber = /** @class */ (function () {
27
+ function ProfileEntryParametersNumber(profileEntryParameters) {
28
+ this.digits = profileEntryParameters['digits'] || 0;
29
+ if (profileEntryParameters['minValue'] === null) {
30
+ this.minValue = null;
31
+ }
32
+ else {
33
+ this.minValue = profileEntryParameters['minValue'];
34
+ }
35
+ if (profileEntryParameters['maxValue'] === null) {
36
+ this.maxValue = null;
37
+ }
38
+ else {
39
+ this.maxValue = profileEntryParameters['maxValue'];
40
+ }
41
+ this.isPeriodSeconds = profileEntryParameters['isPeriodSeconds'] || false;
42
+ }
43
+ return ProfileEntryParametersNumber;
44
+ }());
45
+ exports.ProfileEntryParametersNumber = ProfileEntryParametersNumber;
46
+ var ProfileEntryParametersBoolean = /** @class */ (function () {
47
+ function ProfileEntryParametersBoolean(profileEntryParameters) {
48
+ this.trueLabel = MDProfile.getTextFromTextWithLanguage(profileEntryParameters['trueLabel']);
49
+ this.falseLabel = MDProfile.getTextFromTextWithLanguage(profileEntryParameters['falseLabel']);
50
+ }
51
+ return ProfileEntryParametersBoolean;
52
+ }());
53
+ exports.ProfileEntryParametersBoolean = ProfileEntryParametersBoolean;
54
+ var MDProfileEntry = /** @class */ (function () {
55
+ function MDProfileEntry(entryData) {
56
+ this.id = entryData['id'] || '';
57
+ this.label = MDProfile.getTextFromTextWithLanguage(entryData['label']);
58
+ this.type = entryData['type'] || '';
59
+ this.parameters = null;
60
+ if (entryData['parameters']) {
61
+ if (this.type === 'number') {
62
+ this.parameters = new ProfileEntryParametersNumber(entryData['parameters']);
63
+ }
64
+ else if (this.type === 'text') {
65
+ this.parameters = new ProfileEntryParametersText(entryData['parameters']);
66
+ }
67
+ else if (this.type === 'boolean') {
68
+ this.parameters = new ProfileEntryParametersBoolean(entryData['parameters']);
69
+ }
70
+ else if (this.type === 'vocabulary') {
71
+ this.parameters = new ProfileEntryParametersVocabulary(entryData['parameters']);
72
+ }
73
+ }
74
+ }
75
+ return MDProfileEntry;
76
+ }());
77
+ exports.MDProfileEntry = MDProfileEntry;
78
+ var MDProfileGroup = /** @class */ (function () {
79
+ function MDProfileGroup(groupData) {
80
+ var _this = this;
81
+ this.label = MDProfile.getTextFromTextWithLanguage(groupData['label']);
82
+ this.entries = [];
83
+ if (groupData['entries']) {
84
+ var entryArray = groupData['entries'];
85
+ entryArray.forEach(function (e) {
86
+ _this.entries.push(new MDProfileEntry(e));
87
+ });
88
+ }
89
+ }
90
+ return MDProfileGroup;
91
+ }());
92
+ exports.MDProfileGroup = MDProfileGroup;
93
+ var MDProfile = /** @class */ (function () {
94
+ function MDProfile(profileData) {
95
+ var _this = this;
96
+ this.id = profileData['id'] || null;
97
+ this.label = MDProfile.getTextFromTextWithLanguage(profileData['label']);
98
+ this.groups = [];
99
+ if (profileData['groups']) {
100
+ var groupArray = profileData['groups'];
101
+ groupArray.forEach(function (g) {
102
+ _this.groups.push(new MDProfileGroup(g));
103
+ });
104
+ }
105
+ }
106
+ MDProfile.getTextFromTextWithLanguage = function (langArray) {
107
+ if (langArray) {
108
+ var langArrayTyped = langArray;
109
+ var textEntry = langArrayTyped.find(function (t) { return t.lang === MDProfile.lang; });
110
+ if (textEntry)
111
+ return textEntry['value'] || '';
112
+ if (langArrayTyped.length > 0) {
113
+ return langArrayTyped[0]['value'] || '';
114
+ }
115
+ }
116
+ return '';
117
+ };
118
+ MDProfile.lang = "de";
119
+ return MDProfile;
120
+ }());
121
+ exports.MDProfile = MDProfile;
122
+ //# sourceMappingURL=md-profile-schema.classes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"md-profile-schema.classes.js","sourceRoot":"","sources":["../src/md-profile-schema.classes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { MDProfile } from "./md-profile-schema.classes";
2
+ export interface ConfigData {
3
+ id: string;
4
+ title: {
5
+ lang: string;
6
+ value: string;
7
+ }[];
8
+ mdOutDir: string;
9
+ creator: any;
10
+ profiles: string[];
11
+ }
12
+ export declare abstract class SchemaValidateFactory {
13
+ static validateProfile(sourceFilename: string, schemaFilename: string): MDProfile | null;
14
+ static validateConfig(sourceFilename: string, schemaFilename: string): ConfigData | null;
15
+ }
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SchemaValidateFactory = void 0;
4
+ var ajv_1 = require("ajv");
5
+ var md_profile_schema_classes_1 = require("./md-profile-schema.classes");
6
+ var SchemaValidateFactory = /** @class */ (function () {
7
+ function SchemaValidateFactory() {
8
+ }
9
+ SchemaValidateFactory.validateProfile = function (sourceFilename, schemaFilename) {
10
+ var schema;
11
+ var mdProfile = null;
12
+ var fs = require('fs');
13
+ if (fs.existsSync(schemaFilename)) {
14
+ try {
15
+ schema = fs.readFileSync(schemaFilename, 'utf8');
16
+ }
17
+ catch (err) {
18
+ console.log("\u001B[0;31mERROR\u001B[0m reading schema '".concat(schemaFilename, "':"));
19
+ console.error(err);
20
+ process.exitCode = 1;
21
+ schema = null;
22
+ }
23
+ if (schema) {
24
+ var compiledSchema = void 0;
25
+ var ajv = new ajv_1.default(); // options can be passed, e.g. {allErrors: true}
26
+ try {
27
+ compiledSchema = ajv.compile(JSON.parse(schema));
28
+ }
29
+ catch (err) {
30
+ console.log("\u001B[0;31mERROR\u001B[0m parsing schema '".concat(schemaFilename, "':"));
31
+ console.error(err);
32
+ process.exitCode = 1;
33
+ compiledSchema = null;
34
+ }
35
+ if (compiledSchema) {
36
+ if (fs.existsSync(sourceFilename)) {
37
+ var profileData = void 0;
38
+ try {
39
+ var profile_data_raw = fs.readFileSync(sourceFilename, 'utf8');
40
+ profileData = JSON.parse(profile_data_raw);
41
+ }
42
+ catch (err) {
43
+ console.log("\u001B[0;31mERROR\u001B[0m reading and parsing profile file '".concat(sourceFilename, "':"));
44
+ console.error(err);
45
+ profileData = null;
46
+ process.exitCode = 1;
47
+ }
48
+ if (profileData) {
49
+ try {
50
+ var valid = compiledSchema ? compiledSchema(profileData) : null;
51
+ if (!valid) {
52
+ console.log("\u001B[0;31mERROR\u001B[0m invalid profile file '".concat(sourceFilename, "':"));
53
+ console.error(compiledSchema ? compiledSchema.errors : 'error unknown');
54
+ profileData = null;
55
+ process.exitCode = 1;
56
+ }
57
+ }
58
+ catch (err) {
59
+ console.log("\u001B[0;31mERROR\u001B[0m invalid profile file '".concat(sourceFilename, "':"));
60
+ console.error(err);
61
+ profileData = null;
62
+ process.exitCode = 1;
63
+ }
64
+ if (profileData) {
65
+ try {
66
+ mdProfile = new md_profile_schema_classes_1.MDProfile(profileData);
67
+ }
68
+ catch (err) {
69
+ console.log("\u001B[0;31mERROR\u001B[0m parsing profile file '".concat(sourceFilename, "':"));
70
+ console.error(err);
71
+ mdProfile = null;
72
+ process.exitCode = 1;
73
+ }
74
+ if (mdProfile) {
75
+ var doubleIds_1 = [];
76
+ var allEntryIds_1 = [];
77
+ mdProfile.groups.forEach(function (g) {
78
+ g.entries.forEach(function (e) {
79
+ if (allEntryIds_1.includes(e.id)) {
80
+ doubleIds_1.push(e.id);
81
+ }
82
+ else {
83
+ allEntryIds_1.push(e.id);
84
+ }
85
+ });
86
+ });
87
+ if (doubleIds_1.length > 0) {
88
+ console.log("\u001B[0;31mERROR\u001B[0m in profile file '".concat(sourceFilename, "': double ids ").concat(doubleIds_1.join(', ')));
89
+ mdProfile = null;
90
+ process.exitCode = 1;
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ else {
97
+ console.log("\u001B[0;31mERROR\u001B[0m profile file '".concat(sourceFilename, "' not found"));
98
+ process.exitCode = 1;
99
+ }
100
+ }
101
+ }
102
+ }
103
+ else {
104
+ console.log("\u001B[0;31mERROR\u001B[0m profile file '".concat(sourceFilename, "' not found"));
105
+ process.exitCode = 1;
106
+ }
107
+ return mdProfile;
108
+ };
109
+ SchemaValidateFactory.validateConfig = function (sourceFilename, schemaFilename) {
110
+ var schema;
111
+ var mdConfig = null;
112
+ var fs = require('fs');
113
+ if (fs.existsSync(schemaFilename)) {
114
+ try {
115
+ schema = fs.readFileSync(schemaFilename, 'utf8');
116
+ }
117
+ catch (err) {
118
+ console.log("\u001B[0;31mERROR\u001B[0m reading schema '".concat(schemaFilename, "':"));
119
+ console.error(err);
120
+ process.exitCode = 1;
121
+ schema = null;
122
+ }
123
+ if (schema) {
124
+ var compiledSchema = void 0;
125
+ var ajv = new ajv_1.default(); // options can be passed, e.g. {allErrors: true}
126
+ try {
127
+ compiledSchema = ajv.compile(JSON.parse(schema));
128
+ }
129
+ catch (err) {
130
+ console.log("\u001B[0;31mERROR\u001B[0m parsing schema '".concat(schemaFilename, "':"));
131
+ console.error(err);
132
+ process.exitCode = 1;
133
+ compiledSchema = null;
134
+ }
135
+ if (compiledSchema) {
136
+ if (fs.existsSync(sourceFilename)) {
137
+ try {
138
+ var config_data_raw = fs.readFileSync(sourceFilename, 'utf8');
139
+ mdConfig = JSON.parse(config_data_raw);
140
+ }
141
+ catch (err) {
142
+ console.log("\u001B[0;31mERROR\u001B[0m reading and parsing config file '".concat(sourceFilename, "':"));
143
+ console.error(err);
144
+ mdConfig = null;
145
+ process.exitCode = 1;
146
+ }
147
+ if (mdConfig) {
148
+ try {
149
+ var valid = compiledSchema ? compiledSchema(mdConfig) : null;
150
+ if (!valid) {
151
+ console.log("\u001B[0;31mERROR\u001B[0m invalid config file '".concat(sourceFilename, "':"));
152
+ console.error(compiledSchema ? compiledSchema.errors : 'error unknown');
153
+ mdConfig = null;
154
+ process.exitCode = 1;
155
+ }
156
+ }
157
+ catch (err) {
158
+ console.log("\u001B[0;31mERROR\u001B[0m invalid config file '".concat(sourceFilename, "':"));
159
+ console.error(err);
160
+ mdConfig = null;
161
+ process.exitCode = 1;
162
+ }
163
+ }
164
+ }
165
+ else {
166
+ console.log("\u001B[0;31mERROR\u001B[0m config file '".concat(sourceFilename, "' not found"));
167
+ process.exitCode = 1;
168
+ }
169
+ }
170
+ }
171
+ }
172
+ else {
173
+ console.log("\u001B[0;31mERROR\u001B[0m config file '".concat(sourceFilename, "' not found"));
174
+ process.exitCode = 1;
175
+ }
176
+ return mdConfig;
177
+ };
178
+ return SchemaValidateFactory;
179
+ }());
180
+ exports.SchemaValidateFactory = SchemaValidateFactory;
181
+ //# sourceMappingURL=schema-validate.factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-validate.factory.js","sourceRoot":"","sources":["../src/schema-validate.factory.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
+ #!/usr/bin/env node
1
2
  export {};
@@ -1,82 +1,29 @@
1
+ #!/usr/bin/env node
1
2
  "use strict";
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var ajv_1 = require("ajv");
4
- var fs = require('fs');
5
- var schemaFilename = 'md-profile.schema.json';
6
- var fileToCheckName = './profile.json';
7
- var schema = null;
4
+ var schema_validate_factory_1 = require("./schema-validate.factory");
5
+ var configFileName = './profile-config.json';
8
6
  if (process.argv[2]) {
9
- fileToCheckName = "./".concat(process.argv[2]);
10
- }
11
- if (!fs.existsSync(fileToCheckName)) {
12
- console.log("\u001B[0;31mERROR\u001B[0m profile file '".concat(fileToCheckName, "' not found"));
13
- process.exitCode = 1;
7
+ configFileName = "./".concat(process.argv[2]);
14
8
  }
15
- else {
16
- var schemaFullFilename = "".concat(__dirname, "/").concat(schemaFilename);
17
- if (!fs.existsSync(schemaFullFilename)) {
18
- schemaFullFilename = "./json_schema/md-profile/".concat(schemaFilename);
19
- }
20
- if (!fs.existsSync(schemaFullFilename)) {
21
- console.log("\u001B[0;31mERROR\u001B[0m profile file '".concat(schemaFilename, "' not found"));
22
- process.exitCode = 1;
23
- }
24
- else {
25
- try {
26
- schema = fs.readFileSync(schemaFullFilename, 'utf8');
27
- }
28
- catch (err) {
29
- console.log("\u001B[0;31mERROR\u001B[0m reading schema '".concat(schemaFilename, "':"));
30
- console.error(err);
31
- process.exitCode = 1;
32
- schema = null;
33
- }
34
- }
9
+ var fs = require('fs');
10
+ var configSchemaFilename = 'md-profile-config.schema.json';
11
+ var configSchemaFullFilename = "".concat(__dirname, "/").concat(configSchemaFilename);
12
+ if (!fs.existsSync(configSchemaFullFilename)) {
13
+ configSchemaFullFilename = "./json_schema/md-profile-config/".concat(configSchemaFilename);
35
14
  }
36
- if (schema) {
37
- var compiledSchema = void 0;
38
- var ajv = new ajv_1.default(); // options can be passed, e.g. {allErrors: true}
39
- try {
40
- compiledSchema = ajv.compile(JSON.parse(schema));
41
- }
42
- catch (err) {
43
- console.log("\u001B[0;31mERROR\u001B[0m parsing schema '".concat(schemaFilename, "':"));
44
- console.error(err);
45
- process.exitCode = 1;
46
- compiledSchema = null;
47
- }
48
- if (compiledSchema) {
49
- var profileData = void 0;
50
- try {
51
- var profile_data_raw = fs.readFileSync(fileToCheckName, 'utf8');
52
- profileData = JSON.parse(profile_data_raw);
53
- }
54
- catch (err) {
55
- console.log("\u001B[0;31mERROR\u001B[0m reading and parsing config file '".concat(fileToCheckName, "':"));
56
- console.error(err);
57
- profileData = null;
58
- process.exitCode = 1;
59
- }
60
- if (profileData) {
61
- try {
62
- var valid = compiledSchema ? compiledSchema(profileData) : null;
63
- if (valid) {
64
- console.log("'".concat(fileToCheckName, "' is valid"));
65
- }
66
- else {
67
- console.log("\u001B[0;31mERROR\u001B[0m invalid profile file '".concat(fileToCheckName, "':"));
68
- console.error(compiledSchema ? compiledSchema.errors : 'error unknown');
69
- profileData = null;
70
- process.exitCode = 1;
71
- }
72
- }
73
- catch (err) {
74
- console.log("\u001B[0;31mERROR\u001B[0m invalid profile file '".concat(fileToCheckName, "':"));
75
- console.error(err);
76
- profileData = null;
77
- process.exitCode = 1;
78
- }
79
- }
15
+ var mdConfig = schema_validate_factory_1.SchemaValidateFactory.validateConfig(configFileName, configSchemaFullFilename);
16
+ if (mdConfig) {
17
+ console.log("config file '".concat(configFileName, "' is valid."));
18
+ var profileSchemaFilename = 'md-profile.schema.json';
19
+ var profileSchemaFullFilename_1 = "".concat(__dirname, "/").concat(profileSchemaFilename);
20
+ if (!fs.existsSync(profileSchemaFullFilename_1)) {
21
+ profileSchemaFullFilename_1 = "./json_schema/md-profile/".concat(profileSchemaFilename);
80
22
  }
23
+ mdConfig.profiles.forEach(function (p) {
24
+ var myMDProfile = schema_validate_factory_1.SchemaValidateFactory.validateProfile(p, profileSchemaFullFilename_1);
25
+ if (myMDProfile)
26
+ console.log("".concat(myMDProfile.groups.length, " groups found in '").concat(p, "'."));
27
+ });
81
28
  }
82
29
  //# sourceMappingURL=validate-md-profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-md-profile.js","sourceRoot":"","sources":["../src/validate-md-profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate-md-profile.js","sourceRoot":"","sources":["../src/validate-md-profile.ts"],"names":[],"mappings":";;;AACA,qEAAgE;AAEhE,IAAI,cAAc,GAAG,uBAAuB,CAAC;AAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;IACjB,cAAc,GAAG,YAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC;CAC3C;AAED,IAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,IAAM,oBAAoB,GAAG,+BAA+B,CAAC;AAC7D,IAAI,wBAAwB,GAAG,UAAG,SAAS,cAAI,oBAAoB,CAAE,CAAC;AACtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE;IAC1C,wBAAwB,GAAG,0CAAmC,oBAAoB,CAAE,CAAC;CACxF;AAED,IAAM,QAAQ,GAAG,+CAAqB,CAAC,cAAc,CAAC,cAAc,EAAE,wBAAwB,CAAC,CAAC;AAChG,IAAI,QAAQ,EAAE;IACV,OAAO,CAAC,GAAG,CAAC,uBAAgB,cAAc,gBAAa,CAAC,CAAC;IACzD,IAAM,qBAAqB,GAAG,wBAAwB,CAAC;IACvD,IAAI,2BAAyB,GAAG,UAAG,SAAS,cAAI,qBAAqB,CAAE,CAAC;IACxE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,2BAAyB,CAAC,EAAE;QAC3C,2BAAyB,GAAG,mCAA4B,qBAAqB,CAAE,CAAC;KACnF;IACD,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAA,CAAC;QACvB,IAAM,WAAW,GAAG,+CAAqB,CAAC,eAAe,CAAC,CAAC,EAAE,2BAAyB,CAAC,CAAC;QACxF,IAAI,WAAW;YAAE,OAAO,CAAC,GAAG,CAAC,UAAG,WAAW,CAAC,MAAM,CAAC,MAAM,+BAAqB,CAAC,OAAI,CAAC,CAAC;IACzF,CAAC,CAAC,CAAA;CACL"}
package/package.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "@iqb/validate-md-profile",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "author": "IQB - Institut zur Qualitätsentwicklung im Bildungswesen",
5
5
  "license": "MIT",
6
6
  "description": "Data interfaces for metadata profiling and values",
7
7
  "scripts": {
8
8
  "test_profile": "ts-node ./test.ts md-profile",
9
9
  "test_value": "ts-node ./test.ts md-values",
10
- "validate_profile": "ts-node src/validate-md-profile.ts json_schema/md-profile/test_valid/sample_1.json",
10
+ "test_profile_config": "ts-node ./test.ts md-profile-config",
11
+ "validate_profile": "ts-node src/validate-md-profile.ts json_schema/md-profile-config/test_valid/test1.json",
11
12
  "generate_docs": "asyncapi generate fromTemplate json_schema/asyncapi.yaml @asyncapi/html-template -o ./public --force-write && cat json_schema/add.css >> ./public/css/global.min.css",
12
- "prepare_publish": "rm -rf dist/* && tsc && cp ./json_schema/md-profile/md-profile.schema.json ./dist",
13
+ "prepare_publish": "rm -rf dist/* && tsc && cp ./json_schema/md-profile/md-profile.schema.json ./dist && cp ./json_schema/md-profile-config/md-profile-config.schema.json ./dist",
13
14
  "npm_publish": "npm publish --access public"
14
15
  },
15
16
  "repository": {