@iqbspecs/coding-scheme 3.2.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/README.md +76 -0
- package/coding-scheme.interface.d.ts +79 -0
- package/coding-scheme.interface.js +195 -0
- package/coding-scheme.interface.js.map +1 -0
- package/package.json +17 -0
package/README.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
[](http://creativecommons.org/publicdomain/zero/1.0/) [](https://opensource.org/licenses/MIT)
|
|
2
|
+
[](https://www.npmjs.com/package/@iqbspecs/coding-scheme)
|
|
3
|
+
|
|
4
|
+
This package contains of the data specification for coding assessment output.
|
|
5
|
+
|
|
6
|
+
* JSON Schema (see `coding-scheme.schema.json`)
|
|
7
|
+
* Schema documentation based on [AsyncAPI Generator](https://github.com/asyncapi/generator)
|
|
8
|
+
* type definitions for TypeScript (see npm-link above)
|
|
9
|
+
|
|
10
|
+
Read more:
|
|
11
|
+
|
|
12
|
+
* [All specifications of IQB](https://iqb-specifications.github.io/) (German only)
|
|
13
|
+
* [Learn about TBA](https://iqb-berlin.github.io/tba-info/) (German only)
|
|
14
|
+
|
|
15
|
+
# Change log
|
|
16
|
+
|
|
17
|
+
## 3.2
|
|
18
|
+
|
|
19
|
+
* `TAKE_NOT_REACHED_AS_VALUE_CHANGED` neuer Parameter für die Verarbeitung von Quell-Variablen
|
|
20
|
+
* `NUMERIC_FULL_RANGE` Regel >= Wert <= hinzugefügt
|
|
21
|
+
* `BASE_NO_VALUE` source type wird nicht zu den Antworten hinzugefügt
|
|
22
|
+
* Status `INTENDED_INCOMPLETE` und code type `INTENDED_INCOMPLETE` hinzugefügt
|
|
23
|
+
* Setze RuleMethodParameterCount -1 for NUMERIC_MATCH Regel
|
|
24
|
+
|
|
25
|
+
## 3.1
|
|
26
|
+
* neuer Wert für Property `valueArrayPos`: `LENGTH`; Werte Array muss angebene Länge haben
|
|
27
|
+
* neuer Wert für Property `valueArrayPos`: `ANY_OPEN`; dann wird - im Gegensatz zu `ANY` - erlaubt, dass Werte im Array sind, für die der Regelsatz nicht zutrifft
|
|
28
|
+
* Funktionalität für `valueArrayPos` - `ANY_OPEN` und `ANY` hinzugefügt bzw. korrigiert
|
|
29
|
+
* `IGNORE_CASE` führt jetzt zum `i`-Flag bei RegEx
|
|
30
|
+
* ein Werte-Array mit Länge 0 wird jetzt auch als 'leer' klassifiziert
|
|
31
|
+
|
|
32
|
+
## 3.0
|
|
33
|
+
|
|
34
|
+
* neue Property `version`; daher ist das gesamte Coding Scheme nicht mehr ein Array, sondern ein Objekt!
|
|
35
|
+
* neue Werte für code `type`: `RESIDUAL`, `RESIDUAL_AUTO`; ersetzt `ELSE`-Regel
|
|
36
|
+
* `ELSE`-Regel entfernt
|
|
37
|
+
* codingModel ist jetzt beschränkt auf `NONE`, `RULES_ONLY` und `MANUAL_ONLY`
|
|
38
|
+
|
|
39
|
+
## 2.2
|
|
40
|
+
|
|
41
|
+
* Neuer Wert für `codeModel`: `RULES_ONLY` - Ausblenden der Controls für die manuelle Kodierung
|
|
42
|
+
* Variable erhält neben der ID einen `alias`
|
|
43
|
+
* Code erhält einen `type`, um die Dokumentation zu erleichtern und die UI zu vereinfachen. Werte `UNSET`, `FULL_CREDIT`, `PARTIAL_CREDIT`, `NO_CREDIT` - `label` wurde hierfür immer missbraucht
|
|
44
|
+
|
|
45
|
+
## 2.1
|
|
46
|
+
|
|
47
|
+
* Neue Funktion `getVariableDependencyTree()`, um Zirkularbezüge festzustellen und die Reihenfolge der Ableitung bzw. Kodierung zu ermitteln. Außerdem werden hier Orte (page) abgeleiteter Variablen gesetzt.
|
|
48
|
+
|
|
49
|
+
## 2.0
|
|
50
|
+
|
|
51
|
+
* Neue Ableitungsmethoden `UNIQUE_VALUES`, `SOLVER`
|
|
52
|
+
* neue Parameter 'sourceParameters' mit den Eigenschaften 'solverExpression' und 'processing' (mögliche Werte `TO_LOWER_CASE`, `TO_NUMBER`, `REMOVE_ALL_SPACES`, `REMOVE_DISPENSABLE_SPACES`, `TAKE_DISPLAYED_AS_VALUE_CHANGED`, `SORT`, `TAKE_EMPTY_AS_VALID`)
|
|
53
|
+
* Für Ableitungsmethode `CONCAT_CODE` eine Sortierungsoption `SORT` eingeführt
|
|
54
|
+
* processing `REMOVE_WHITE_SPACES` entfernt; stattdessen `IGNORE_ALL_SPACES`, `IGNORE_DISPENSABLE_SPACES`, `SORT_ARRAY`
|
|
55
|
+
* codeModelParameters entfernt
|
|
56
|
+
* Regel `NO_OTHER_MATCHES` entfernt (vorerst keine Unterstützung)
|
|
57
|
+
|
|
58
|
+
## 1.0
|
|
59
|
+
|
|
60
|
+
* id
|
|
61
|
+
* label
|
|
62
|
+
* sourceType `BASE`, `COPY_VALUE`, `CONCAT_CODE`, `SUM_CODE`, `SUM_SCORE`
|
|
63
|
+
* deriveSources
|
|
64
|
+
* processing `IGNORE_CASE`, `REPLAY_REQUIRED`, `ATTACHMENT`, `REMOVE_WHITE_SPACES`
|
|
65
|
+
* fragmenting
|
|
66
|
+
* manualInstruction
|
|
67
|
+
* codeModel `NONE`, `CHOICE`, `VALUE_LIST`, `NUMBER`, `MANUAL`
|
|
68
|
+
* codeModelParameters
|
|
69
|
+
* codes
|
|
70
|
+
+ id String | null
|
|
71
|
+
+ label
|
|
72
|
+
+ score
|
|
73
|
+
+ manualInstruction
|
|
74
|
+
+ ruleSetOperatorAnd
|
|
75
|
+
+ ruleSets
|
|
76
|
+
* page
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export declare const validStatesForDerivingValue: string[];
|
|
2
|
+
export declare const validStatesForDerivingCode: string[];
|
|
3
|
+
export declare const validStatesToStartDeriving: string[];
|
|
4
|
+
export declare const statesToReplaceByDeriveError: string[];
|
|
5
|
+
export declare const deriveMethodsFromValue: string[];
|
|
6
|
+
export type ResponseValueSingleType = null | string | number | boolean;
|
|
7
|
+
export type ResponseValueType = ResponseValueSingleType | ResponseValueSingleType[];
|
|
8
|
+
export type TransformedResponseValueType = ResponseValueType | string[][];
|
|
9
|
+
export type RuleMethod = 'MATCH' | 'MATCH_REGEX' | 'NUMERIC_MATCH' | 'NUMERIC_RANGE' | 'NUMERIC_FULL_RANGE' | 'NUMERIC_LESS_THAN' | 'NUMERIC_MORE_THAN' | 'NUMERIC_MAX' | 'NUMERIC_MIN' | 'IS_EMPTY' | 'IS_NULL' | 'IS_TRUE' | 'IS_FALSE';
|
|
10
|
+
export declare const RuleMethodParameterCount: {
|
|
11
|
+
MATCH: number;
|
|
12
|
+
MATCH_REGEX: number;
|
|
13
|
+
NUMERIC_MATCH: number;
|
|
14
|
+
NUMERIC_RANGE: number;
|
|
15
|
+
NUMERIC_FULL_RANGE: number;
|
|
16
|
+
NUMERIC_LESS_THAN: number;
|
|
17
|
+
NUMERIC_MORE_THAN: number;
|
|
18
|
+
NUMERIC_MAX: number;
|
|
19
|
+
NUMERIC_MIN: number;
|
|
20
|
+
IS_EMPTY: number;
|
|
21
|
+
IS_NULL: number;
|
|
22
|
+
IS_TRUE: number;
|
|
23
|
+
IS_FALSE: number;
|
|
24
|
+
};
|
|
25
|
+
export declare const numericRules: string[];
|
|
26
|
+
export declare const booleanRules: string[];
|
|
27
|
+
export type ProcessingParameterType = 'IGNORE_CASE' | 'IGNORE_ALL_SPACES' | 'IGNORE_DISPENSABLE_SPACES' | 'SORT_ARRAY' | 'REPLAY_REQUIRED' | 'ATTACHMENT';
|
|
28
|
+
export type CodeModelType = 'NONE' | 'RULES_ONLY' | 'MANUAL_ONLY';
|
|
29
|
+
export type CodeType = 'UNSET' | 'FULL_CREDIT' | 'PARTIAL_CREDIT' | 'NO_CREDIT' | 'TO_CHECK' | 'RESIDUAL' | 'RESIDUAL_AUTO' | 'INTENDED_INCOMPLETE';
|
|
30
|
+
export type SourceType = 'BASE' | 'BASE_NO_VALUE' | 'MANUAL' | 'COPY_VALUE' | 'CONCAT_CODE' | 'SUM_CODE' | 'SUM_SCORE' | 'UNIQUE_VALUES' | 'SOLVER';
|
|
31
|
+
export type SourceProcessingType = 'TO_LOWER_CASE' | 'TO_NUMBER' | 'REMOVE_ALL_SPACES' | 'REMOVE_DISPENSABLE_SPACES' | 'TAKE_DISPLAYED_AS_VALUE_CHANGED' | 'TAKE_EMPTY_AS_VALID' | 'SORT' | 'NO_CODING' | 'TAKE_NOT_REACHED_AS_VALUE_CHANGED';
|
|
32
|
+
export declare const DeriveConcatDelimiter = "_";
|
|
33
|
+
export type CodingSchemeProblemType = 'VACANT' | 'SOURCE_MISSING' | 'INVALID_SOURCE' | 'RULE_PARAMETER_COUNT_MISMATCH' | 'MORE_THAN_ONE_SOURCE' | 'ONLY_ONE_SOURCE' | 'VALUE_COPY_NOT_FROM_BASE';
|
|
34
|
+
export interface CodingRule {
|
|
35
|
+
method: RuleMethod;
|
|
36
|
+
parameters?: string[];
|
|
37
|
+
fragment?: number;
|
|
38
|
+
}
|
|
39
|
+
export interface RuleSet {
|
|
40
|
+
ruleOperatorAnd: boolean;
|
|
41
|
+
rules: CodingRule[];
|
|
42
|
+
valueArrayPos?: number | 'ANY' | 'ANY_OPEN' | 'SUM' | 'LENGTH';
|
|
43
|
+
}
|
|
44
|
+
export interface CodeData {
|
|
45
|
+
id: number | 'INVALID' | 'INTENDED_INCOMPLETE';
|
|
46
|
+
type: CodeType;
|
|
47
|
+
label: string;
|
|
48
|
+
score: number;
|
|
49
|
+
ruleSetOperatorAnd: boolean;
|
|
50
|
+
ruleSets: RuleSet[];
|
|
51
|
+
manualInstruction: string;
|
|
52
|
+
}
|
|
53
|
+
export declare const CodingSchemeVersionMajor = 3;
|
|
54
|
+
export declare const CodingSchemeVersionMinor = 0;
|
|
55
|
+
export interface VariableSourceParameters {
|
|
56
|
+
solverExpression?: string;
|
|
57
|
+
processing?: SourceProcessingType[];
|
|
58
|
+
}
|
|
59
|
+
export interface VariableCodingData {
|
|
60
|
+
id: string;
|
|
61
|
+
alias: string;
|
|
62
|
+
label: string;
|
|
63
|
+
sourceType: SourceType;
|
|
64
|
+
sourceParameters: VariableSourceParameters;
|
|
65
|
+
deriveSources: string[];
|
|
66
|
+
processing: ProcessingParameterType[];
|
|
67
|
+
fragmenting?: string;
|
|
68
|
+
manualInstruction: string;
|
|
69
|
+
codeModel?: CodeModelType;
|
|
70
|
+
page?: string;
|
|
71
|
+
codes: CodeData[];
|
|
72
|
+
}
|
|
73
|
+
export declare class CodingScheme {
|
|
74
|
+
variableCodings: VariableCodingData[];
|
|
75
|
+
constructor(givenScheme: any);
|
|
76
|
+
private static getCodeVersionLessThan3;
|
|
77
|
+
static checkVersion(givenScheme: any): 'OK' | 'MAJOR_LESS' | 'MAJOR_GREATER' | 'MINOR_GREATER';
|
|
78
|
+
toString(): string;
|
|
79
|
+
}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CodingScheme = exports.CodingSchemeVersionMinor = exports.CodingSchemeVersionMajor = exports.DeriveConcatDelimiter = exports.booleanRules = exports.numericRules = exports.RuleMethodParameterCount = exports.deriveMethodsFromValue = exports.statesToReplaceByDeriveError = exports.validStatesToStartDeriving = exports.validStatesForDerivingCode = exports.validStatesForDerivingValue = void 0;
|
|
4
|
+
exports.validStatesForDerivingValue = ['VALUE_CHANGED', 'NO_CODING', 'CODING_INCOMPLETE',
|
|
5
|
+
'CODING_ERROR', 'CODING_COMPLETE'];
|
|
6
|
+
exports.validStatesForDerivingCode = ['CODING_COMPLETE'];
|
|
7
|
+
exports.validStatesToStartDeriving = ['UNSET', 'CODING_ERROR', 'CODING_INCOMPLETE'];
|
|
8
|
+
exports.statesToReplaceByDeriveError = ['NO_CODING', 'CODING_INCOMPLETE', 'CODING_ERROR'];
|
|
9
|
+
exports.deriveMethodsFromValue = ['SOLVER', 'COPY_VALUE', 'UNIQUE_VALUES'];
|
|
10
|
+
exports.RuleMethodParameterCount = {
|
|
11
|
+
MATCH: -1,
|
|
12
|
+
MATCH_REGEX: -1,
|
|
13
|
+
NUMERIC_MATCH: -1,
|
|
14
|
+
NUMERIC_RANGE: 2,
|
|
15
|
+
NUMERIC_FULL_RANGE: 2,
|
|
16
|
+
NUMERIC_LESS_THAN: 1,
|
|
17
|
+
NUMERIC_MORE_THAN: 1,
|
|
18
|
+
NUMERIC_MAX: 1,
|
|
19
|
+
NUMERIC_MIN: 1,
|
|
20
|
+
IS_EMPTY: 0,
|
|
21
|
+
IS_NULL: 0,
|
|
22
|
+
IS_TRUE: 0,
|
|
23
|
+
IS_FALSE: 0
|
|
24
|
+
};
|
|
25
|
+
exports.numericRules = ['NUMERIC_MATCH', 'NUMERIC_LESS_THAN', 'NUMERIC_MAX', 'NUMERIC_MORE_THAN',
|
|
26
|
+
'NUMERIC_MIN', 'NUMERIC_RANGE'];
|
|
27
|
+
exports.booleanRules = ['IS_TRUE', 'IS_FALSE'];
|
|
28
|
+
exports.DeriveConcatDelimiter = '_';
|
|
29
|
+
exports.CodingSchemeVersionMajor = 3;
|
|
30
|
+
exports.CodingSchemeVersionMinor = 0;
|
|
31
|
+
class CodingScheme {
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
33
|
+
constructor(givenScheme) {
|
|
34
|
+
this.variableCodings = [];
|
|
35
|
+
const transformedScheme = typeof givenScheme === 'string' ? JSON.parse(givenScheme) : givenScheme;
|
|
36
|
+
let codingSchemeMajorVersion = 0;
|
|
37
|
+
// let codingSchemeMinorVersion = 0;
|
|
38
|
+
if (!Array.isArray(transformedScheme) && transformedScheme.version) {
|
|
39
|
+
const versionMatches = /^(\d+).(\d+)$/.exec(transformedScheme.version);
|
|
40
|
+
if (versionMatches && versionMatches.length > 2) {
|
|
41
|
+
codingSchemeMajorVersion = Number.parseInt(versionMatches[1], 10);
|
|
42
|
+
// codingSchemeMinorVersion = Number.parseInt(versionMatches[2], 10);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const givenCodings = Array.isArray(transformedScheme) ?
|
|
46
|
+
transformedScheme :
|
|
47
|
+
transformedScheme.variableCodings || [];
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
givenCodings.forEach((c) => {
|
|
50
|
+
this.variableCodings.map(vc => vc.codes.map(code => {
|
|
51
|
+
if (code.id === null)
|
|
52
|
+
code.id = 'INVALID';
|
|
53
|
+
return code;
|
|
54
|
+
}));
|
|
55
|
+
if (codingSchemeMajorVersion < 3) {
|
|
56
|
+
this.variableCodings.push(CodingScheme.getCodeVersionLessThan3(c));
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.variableCodings.push(c);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
64
|
+
static getCodeVersionLessThan3(givenCoding) {
|
|
65
|
+
let valueProcessing = givenCoding.processing ||
|
|
66
|
+
givenCoding.preProcessing ||
|
|
67
|
+
givenCoding.valueTransformations ||
|
|
68
|
+
[];
|
|
69
|
+
if (valueProcessing && valueProcessing.includes('REMOVE_WHITE_SPACES')) {
|
|
70
|
+
valueProcessing = valueProcessing.filter(vp => vp !== 'REMOVE_WHITE_SPACES');
|
|
71
|
+
valueProcessing.push('IGNORE_ALL_SPACES');
|
|
72
|
+
}
|
|
73
|
+
const newCoding = {
|
|
74
|
+
id: givenCoding.id,
|
|
75
|
+
alias: givenCoding.alias || givenCoding.id,
|
|
76
|
+
label: givenCoding.label || '',
|
|
77
|
+
sourceType: 'BASE',
|
|
78
|
+
sourceParameters: {
|
|
79
|
+
solverExpression: givenCoding.sourceParameters ?
|
|
80
|
+
givenCoding.sourceParameters.solverExpression || '' :
|
|
81
|
+
'',
|
|
82
|
+
processing: givenCoding.sourceParameters ?
|
|
83
|
+
givenCoding.sourceParameters.processing || [] :
|
|
84
|
+
[]
|
|
85
|
+
},
|
|
86
|
+
deriveSources: givenCoding.deriveSources || [],
|
|
87
|
+
processing: valueProcessing,
|
|
88
|
+
fragmenting: givenCoding.fragmenting || '',
|
|
89
|
+
manualInstruction: givenCoding.manualInstruction || '',
|
|
90
|
+
codeModel: givenCoding.codeModel || 'NONE',
|
|
91
|
+
page: givenCoding.page || '0',
|
|
92
|
+
codes: []
|
|
93
|
+
};
|
|
94
|
+
if (givenCoding.sourceType === 'DERIVE_CONCAT') {
|
|
95
|
+
if (givenCoding.deriveSourceType === 'VALUE') {
|
|
96
|
+
newCoding.sourceType = 'COPY_VALUE';
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// concat score will be changed to concat code
|
|
100
|
+
newCoding.sourceType = 'CONCAT_CODE';
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else if (givenCoding.sourceType === 'DERIVE_SUM') {
|
|
104
|
+
if (givenCoding.deriveSourceType === 'VALUE') {
|
|
105
|
+
// sum of values is invalid
|
|
106
|
+
newCoding.sourceType = 'COPY_VALUE';
|
|
107
|
+
}
|
|
108
|
+
else if (givenCoding.deriveSourceType === 'CODE') {
|
|
109
|
+
newCoding.sourceType = 'SUM_CODE';
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
newCoding.sourceType = 'SUM_SCORE';
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else if (givenCoding.sourceType === 'COPY_FIRST_VALUE') {
|
|
116
|
+
newCoding.sourceType = 'COPY_VALUE';
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
newCoding.sourceType = givenCoding.sourceType;
|
|
120
|
+
}
|
|
121
|
+
if (givenCoding.codeModel !== 'NONE') {
|
|
122
|
+
newCoding.codeModel =
|
|
123
|
+
givenCoding.codeModel === 'MANUAL' ? 'MANUAL_ONLY' : 'NONE';
|
|
124
|
+
}
|
|
125
|
+
if (givenCoding.codes && Array.isArray(givenCoding.codes)) {
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
127
|
+
givenCoding.codes.forEach((code) => {
|
|
128
|
+
if (code.ruleSets) {
|
|
129
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
130
|
+
const elseRule = code.ruleSets.find((rs) => !!rs.rules.find((r) => r.method === 'ELSE'));
|
|
131
|
+
if (elseRule) {
|
|
132
|
+
newCoding.codes.push({
|
|
133
|
+
id: code.id,
|
|
134
|
+
type: 'RESIDUAL_AUTO',
|
|
135
|
+
label: code.label,
|
|
136
|
+
score: 0,
|
|
137
|
+
ruleSetOperatorAnd: false,
|
|
138
|
+
ruleSets: [],
|
|
139
|
+
manualInstruction: code.manualInstruction
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
if (!code.type)
|
|
144
|
+
code.type = 'UNSET';
|
|
145
|
+
newCoding.codes.push(code);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
else if (code.rules && Array.isArray(code.rules)) {
|
|
149
|
+
newCoding.codes.push({
|
|
150
|
+
id: code.id,
|
|
151
|
+
type: 'UNSET',
|
|
152
|
+
label: code.label || '',
|
|
153
|
+
score: code.score || 0,
|
|
154
|
+
ruleSetOperatorAnd: false,
|
|
155
|
+
ruleSets: [
|
|
156
|
+
{
|
|
157
|
+
ruleOperatorAnd: code.ruleOperatorAnd || false,
|
|
158
|
+
rules: code.rules
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
manualInstruction: code.manualInstruction || ''
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
return newCoding;
|
|
167
|
+
}
|
|
168
|
+
static checkVersion(givenScheme) {
|
|
169
|
+
const transformedScheme = typeof givenScheme === 'string' ? JSON.parse(givenScheme) : givenScheme;
|
|
170
|
+
let localCodingSchemeVersionMajor = 0;
|
|
171
|
+
let localCodingSchemeVersionMinor = 0;
|
|
172
|
+
if (!Array.isArray(transformedScheme) && transformedScheme.version) {
|
|
173
|
+
const versionMatches = /^(\d+).(\d+)$/.exec(transformedScheme.version);
|
|
174
|
+
if (versionMatches && versionMatches.length > 2) {
|
|
175
|
+
localCodingSchemeVersionMajor = Number.parseInt(versionMatches[1], 10);
|
|
176
|
+
localCodingSchemeVersionMinor = Number.parseInt(versionMatches[2], 10);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (exports.CodingSchemeVersionMajor < localCodingSchemeVersionMajor)
|
|
180
|
+
return 'MAJOR_GREATER';
|
|
181
|
+
if (exports.CodingSchemeVersionMajor > localCodingSchemeVersionMajor)
|
|
182
|
+
return 'MAJOR_LESS';
|
|
183
|
+
if (exports.CodingSchemeVersionMinor > localCodingSchemeVersionMinor)
|
|
184
|
+
return 'MINOR_GREATER';
|
|
185
|
+
return 'OK';
|
|
186
|
+
}
|
|
187
|
+
toString() {
|
|
188
|
+
return JSON.stringify({
|
|
189
|
+
version: `${exports.CodingSchemeVersionMajor}.${exports.CodingSchemeVersionMinor}`,
|
|
190
|
+
variables: this.variableCodings
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.CodingScheme = CodingScheme;
|
|
195
|
+
//# sourceMappingURL=coding-scheme.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coding-scheme.interface.js","sourceRoot":"","sources":["../coding-scheme.interface.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@iqbspecs/coding-scheme",
|
|
3
|
+
"version": "3.2.0",
|
|
4
|
+
"author": "IQB - Institut zur Qualitätsentwicklung im Bildungswesen",
|
|
5
|
+
"license": "CC0 1.0",
|
|
6
|
+
"description": "Data interface: coding-scheme",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/iqb-specifications/coding-scheme.git"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/iqb-specifications/coding-scheme/issues"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/iqb-specifications/coding-scheme#readme",
|
|
15
|
+
"main": "index.js",
|
|
16
|
+
"types": "index.d.ts"
|
|
17
|
+
}
|