@iqbspecs/coding-scheme 3.3.1 → 3.4.1

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 CHANGED
@@ -1,15 +1,107 @@
1
1
  [![License: CC0-1.0](https://img.shields.io/badge/License-CC0_1.0-lightgrey.svg)](http://creativecommons.org/publicdomain/zero/1.0/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
2
2
  [![npm](https://img.shields.io/npm/v/%40iqbspecs%2Fcoding-scheme)](https://www.npmjs.com/package/@iqbspecs/coding-scheme)
3
3
 
4
- This package contains of the data specification for coding assessment output.
4
+ This package contains the data specification for coding assessment output.
5
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)
6
+ It provides:
9
7
 
10
- Read more:
8
+ - **JSON Schema**: `coding-scheme.schema.json`
9
+ - **Schema documentation**: generated into `public/` (based on [AsyncAPI Generator](https://github.com/asyncapi/generator))
10
+ - **TypeScript types** for the schema (`CodingSchemeData`, `VariableCodingData`, `CodeData`, ...)
11
+ - A small helper class **`CodingScheme`** for reading/writing versioned scheme JSON
11
12
 
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
- * [Releases with change notes](https://github.com/iqb-specifications/coding-scheme/releases)
13
+ ## Installation
15
14
 
15
+ ```bash
16
+ npm i @iqbspecs/coding-scheme
17
+ ```
18
+
19
+ ## Usage (TypeScript)
20
+
21
+ Import from the package root:
22
+
23
+ ```ts
24
+ import {
25
+ CodingScheme,
26
+ type CodingSchemeData,
27
+ type VariableCodingData,
28
+ CodingSchemeVersionMajor,
29
+ CodingSchemeVersionMinor,
30
+ } from "@iqbspecs/coding-scheme";
31
+ ```
32
+
33
+ ### Parse a scheme and re-serialize it
34
+
35
+ `CodingScheme` accepts either a JSON string or a parsed object.
36
+
37
+ ```ts
38
+ const raw = '{"version":"3.4","variableCodings":[]}';
39
+ const scheme = new CodingScheme(raw);
40
+
41
+ // normalized, versioned JSON string
42
+ const normalized = scheme.toString();
43
+ ```
44
+
45
+ ### Check compatibility of a scheme version
46
+
47
+ ```ts
48
+ const status = CodingScheme.checkVersion({
49
+ version: "3.4",
50
+ variableCodings: [],
51
+ } satisfies CodingSchemeData);
52
+
53
+ // 'OK' | 'MAJOR_LESS' | 'MAJOR_GREATER' | 'MINOR_GREATER'
54
+ ```
55
+
56
+ The current library version constants are:
57
+
58
+ - **`CodingSchemeVersionMajor`**: `3`
59
+ - **`CodingSchemeVersionMinor`**: `4`
60
+
61
+ ### Types
62
+
63
+ The package exports the schema types from `coding-scheme.interface.ts`, including:
64
+
65
+ - **`CodingSchemeData`**: top-level object with `version` and `variableCodings`
66
+ - **`VariableCodingData`**: per-variable coding configuration
67
+ - **`CodeData`**, **`RuleSet`**, **`CodingRule`**: rule-driven coding definitions
68
+
69
+ ## Public API exports
70
+
71
+ In addition to the TypeScript types, the package exports constants and helpers from `coding-scheme.ts`:
72
+
73
+ - **`CodingScheme`**
74
+ - **State constants**:
75
+ - `validStatesForDerivingValue`
76
+ - `validStatesForDerivingCode`
77
+ - `validStatesToStartDeriving`
78
+ - `statesToReplaceByDeriveError`
79
+ - **Rule constants**:
80
+ - `RuleMethodParameterCount`
81
+ - `numericRules`
82
+ - `booleanRules`
83
+ - **Derive constants**:
84
+ - `deriveMethodsFromValue`
85
+ - `DeriveConcatDelimiter`
86
+
87
+ ## Schema validation and documentation generation (repo)
88
+
89
+ This repository includes scripts to validate and generate documentation.
90
+
91
+ - **Validate schema against test cases**:
92
+
93
+ ```bash
94
+ npm run test_schema
95
+ ```
96
+
97
+ - **Generate HTML docs into `public/`**:
98
+
99
+ ```bash
100
+ npm run generate_docs
101
+ ```
102
+
103
+ ## Read more
104
+
105
+ - [All specifications of IQB](https://iqb-specifications.github.io/) (German only)
106
+ - [Learn about TBA](https://iqb-berlin.github.io/tba-info/) (German only)
107
+ - [Releases with change notes](https://github.com/iqb-specifications/coding-scheme/releases)
@@ -23,11 +23,12 @@ export declare const numericRules: string[];
23
23
  export declare const booleanRules: string[];
24
24
  export declare const DeriveConcatDelimiter = "_";
25
25
  export declare const CodingSchemeVersionMajor = 3;
26
- export declare const CodingSchemeVersionMinor = 3;
26
+ export declare const CodingSchemeVersionMinor = 4;
27
27
  export declare class CodingScheme {
28
28
  variableCodings: VariableCodingData[];
29
29
  constructor(givenScheme: any);
30
30
  private static getCodeVersionLessThan3;
31
+ private static applyLegacyFixes;
31
32
  static checkVersion(givenScheme: any): 'OK' | 'MAJOR_LESS' | 'MAJOR_GREATER' | 'MINOR_GREATER';
32
33
  toString(): string;
33
34
  }
@@ -7,7 +7,7 @@ export type CodeModelType = 'MANUAL_AND_RULES' | 'RULES_ONLY' | 'MANUAL_ONLY';
7
7
  export type CodeType = 'UNSET' | 'FULL_CREDIT' | 'PARTIAL_CREDIT' | 'NO_CREDIT' | 'TO_CHECK' | 'RESIDUAL' | 'RESIDUAL_AUTO' | 'INTENDED_INCOMPLETE';
8
8
  export type SourceType = 'BASE' | 'BASE_NO_VALUE' | 'MANUAL' | 'COPY_VALUE' | 'CONCAT_CODE' | 'SUM_CODE' | 'SUM_SCORE' | 'UNIQUE_VALUES' | 'SOLVER';
9
9
  export type SourceProcessingType = 'TO_LOWER_CASE' | 'TO_NUMBER' | 'REMOVE_ALL_SPACES' | 'REMOVE_DISPENSABLE_SPACES' | 'TAKE_DISPLAYED_AS_VALUE_CHANGED' | 'TAKE_EMPTY_AS_VALID' | 'SORT' | 'TAKE_NOT_REACHED_AS_VALUE_CHANGED';
10
- export type CodingSchemeProblemType = 'VACANT' | 'SOURCE_MISSING' | 'INVALID_SOURCE' | 'RULE_PARAMETER_COUNT_MISMATCH' | 'MORE_THAN_ONE_SOURCE' | 'ONLY_ONE_SOURCE' | 'VALUE_COPY_NOT_FROM_BASE';
10
+ export type CodingSchemeProblemType = 'VACANT' | 'SOURCE_MISSING' | 'INVALID_SOURCE' | 'RULE_PARAMETER_COUNT_MISMATCH' | 'RULE_REGEX_INVALID' | 'RULE_PARAMETER_INVALID' | 'RULE_NUMERIC_RANGE_INVALID' | 'RULESET_VALUE_ARRAY_POS_INVALID' | 'MORE_THAN_ONE_SOURCE' | 'ONLY_ONE_SOURCE' | 'VALUE_COPY_NOT_FROM_BASE';
11
11
  export interface CodingRule {
12
12
  method: RuleMethod;
13
13
  parameters?: string[];
package/coding-scheme.js CHANGED
@@ -46,7 +46,7 @@ exports.numericRules = [
46
46
  exports.booleanRules = ['IS_TRUE', 'IS_FALSE'];
47
47
  exports.DeriveConcatDelimiter = '_';
48
48
  exports.CodingSchemeVersionMajor = 3;
49
- exports.CodingSchemeVersionMinor = 3;
49
+ exports.CodingSchemeVersionMinor = 4;
50
50
  class CodingScheme {
51
51
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
52
  constructor(givenScheme) {
@@ -66,24 +66,29 @@ class CodingScheme {
66
66
  const givenCodings = Array.isArray(transformedScheme) ?
67
67
  transformedScheme :
68
68
  transformedScheme.variableCodings || [];
69
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
70
  givenCodings.forEach((c) => {
70
- this.variableCodings.forEach(vc => {
71
- var _a;
72
- (_a = vc.codes) === null || _a === void 0 ? void 0 : _a.forEach(code => {
73
- if (code.id === null)
74
- code.id = 'INVALID';
75
- });
76
- });
71
+ let vc;
77
72
  if (codingSchemeMajorVersion < 3) {
78
- this.variableCodings.push(CodingScheme.getCodeVersionLessThan3(c));
73
+ vc = CodingScheme.getCodeVersionLessThan3(c);
79
74
  }
80
75
  else {
81
- this.variableCodings.push(c);
76
+ vc = c;
82
77
  }
78
+ CodingScheme.applyLegacyFixes(vc);
79
+ this.variableCodings.push(vc);
80
+ });
81
+ this.variableCodings.forEach(vc => {
82
+ var _a;
83
+ (_a = vc.codes) === null || _a === void 0 ? void 0 : _a.forEach(code => {
84
+ if (code.id === null)
85
+ code.id = 'INVALID';
86
+ });
83
87
  });
84
88
  }
89
+ static getCodeVersionLessThan3(
85
90
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
- static getCodeVersionLessThan3(givenCoding) {
91
+ givenCoding) {
87
92
  const codes = [];
88
93
  let valueProcessing = givenCoding.processing ||
89
94
  givenCoding.preProcessing ||
@@ -150,8 +155,9 @@ class CodingScheme {
150
155
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
151
156
  givenCoding.codes.forEach((code) => {
152
157
  if (code.ruleSets) {
158
+ const elseRule = code.ruleSets.find(
153
159
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
154
- const elseRule = code.ruleSets.find((rs) => !!rs.rules.find((r) => r.method === 'ELSE'));
160
+ (rs) => !!rs.rules.find((r) => r.method === 'ELSE'));
155
161
  if (elseRule) {
156
162
  codes.push({
157
163
  id: code.id,
@@ -189,7 +195,39 @@ class CodingScheme {
189
195
  }
190
196
  return newCoding;
191
197
  }
192
- static checkVersion(givenScheme) {
198
+ static applyLegacyFixes(vc) {
199
+ var _a, _b, _c;
200
+ if (vc.codeModel === 'NONE') {
201
+ const hasRules = (_a = vc.codes) === null || _a === void 0 ? void 0 : _a.some(c => (c.ruleSets && c.ruleSets.length > 0));
202
+ const hasManualInstruction = !!vc.manualInstruction || ((_b = vc.codes) === null || _b === void 0 ? void 0 : _b.some(c => !!c.manualInstruction));
203
+ if (vc.sourceType === 'MANUAL') {
204
+ vc.codeModel = 'MANUAL_ONLY';
205
+ }
206
+ else if (hasRules && hasManualInstruction) {
207
+ vc.codeModel = 'MANUAL_AND_RULES';
208
+ }
209
+ else if (hasRules) {
210
+ vc.codeModel = 'RULES_ONLY';
211
+ }
212
+ else if (hasManualInstruction) {
213
+ vc.codeModel = 'MANUAL_ONLY';
214
+ }
215
+ else {
216
+ vc.codeModel = 'RULES_ONLY';
217
+ }
218
+ }
219
+ (_c = vc.codes) === null || _c === void 0 ? void 0 : _c.forEach(c => {
220
+ if (c.ruleSets && Array.isArray(c.ruleSets)) {
221
+ c.ruleSets.forEach(rs => {
222
+ if (rs.valueArrayPos === -1)
223
+ rs.valueArrayPos = 'ANY';
224
+ });
225
+ }
226
+ });
227
+ }
228
+ static checkVersion(
229
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
230
+ givenScheme) {
193
231
  const transformedScheme = typeof givenScheme === 'string' ?
194
232
  JSON.parse(givenScheme) :
195
233
  givenScheme;
@@ -1 +1 @@
1
- {"version":3,"file":"coding-scheme.js","sourceRoot":"","sources":["../coding-scheme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coding-scheme.js","sourceRoot":"","sources":["../coding-scheme.ts"],"names":[],"mappings":";;;AAOa,QAAA,2BAA2B,GAAG;IACzC,eAAe;IACf,WAAW;IACX,mBAAmB;IACnB,cAAc;IACd,iBAAiB;CAClB,CAAC;AACW,QAAA,0BAA0B,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACjD,QAAA,0BAA0B,GAAG;IACxC,OAAO;IACP,cAAc;IACd,mBAAmB;CACpB,CAAC;AACW,QAAA,4BAA4B,GAAG;IAC1C,WAAW;IACX,mBAAmB;IACnB,cAAc;CACf,CAAC;AACW,QAAA,sBAAsB,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;AAEnE,QAAA,wBAAwB,GAAG;IACtC,KAAK,EAAE,CAAC,CAAC;IACT,WAAW,EAAE,CAAC,CAAC;IACf,aAAa,EAAE,CAAC,CAAC;IACjB,aAAa,EAAE,CAAC;IAChB,kBAAkB,EAAE,CAAC;IACrB,iBAAiB,EAAE,CAAC;IACpB,iBAAiB,EAAE,CAAC;IACpB,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;CACZ,CAAC;AACW,QAAA,YAAY,GAAG;IAC1B,eAAe;IACf,mBAAmB;IACnB,aAAa;IACb,mBAAmB;IACnB,aAAa;IACb,eAAe;CAChB,CAAC;AACW,QAAA,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAEvC,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAE5B,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAC7B,QAAA,wBAAwB,GAAG,CAAC,CAAC;AAE1C,MAAa,YAAY;IAGvB,8DAA8D;IAC9D,YAAY,WAAgB;QAH5B,oBAAe,GAAyB,EAAE,CAAC;QAIzC,MAAM,iBAAiB,GACf,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACzB,WAAW,CAAC;QACtB,IAAI,wBAAwB,GAAG,CAAC,CAAC;QACjC,oCAAoC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACnE,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAC1C,iBAAiB,CAAC,OAAO,CAC1B,CAAC;YACF,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,wBAAwB,GAAG,MAAM,CAAC,QAAQ,CACxC,cAAc,CAAC,CAAC,CAAC,EACjB,EAAE,CACH,CAAC;gBACF,qEAAqE;YACvE,CAAC;QACH,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACrD,iBAAiB,CAAC,CAAC;YACnB,iBAAiB,CAAC,eAAe,IAAI,EAAE,CAAC;QAC1C,8DAA8D;QAC9D,YAAY,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;YAC9B,IAAI,EAAsB,CAAC;YAC3B,IAAI,wBAAwB,GAAG,CAAC,EAAE,CAAC;gBACjC,EAAE,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,CAAC,CAAC;YACT,CAAC;YACD,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;;YAChC,MAAA,EAAE,CAAC,KAAK,0CAAE,OAAO,CAAC,IAAI,CAAC,EAAE;gBACvB,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI;oBAAE,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,uBAAuB;IACpC,8DAA8D;IAC9D,WAAgB;QAEhB,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,IAAI,eAAe,GACX,WAAW,CAAC,UAAU;YACtB,WAAW,CAAC,aAAa;YACzB,WAAW,CAAC,oBAAoB;YAChC,EAAE,CAAC;QACX,IACE,eAAe;YACT,eAAe,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EACrD,CAAC;YACD,eAAe,GAAG,eAAe,CAAC,MAAM,CACtC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,qBAAqB,CACnC,CAAC;YACF,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,SAAS,GAAuB;YACpC,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,EAAE;YAC1C,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;YAC9B,UAAU,EAAE,MAAM;YAClB,gBAAgB,EAAE;gBAChB,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;oBAC9C,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;oBACrD,EAAE;gBACJ,UAAU,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;oBACxC,WAAW,CAAC,gBAAgB,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;oBAC/C,EAAE;aACL;YACD,aAAa,EAAE,WAAW,CAAC,aAAa,IAAI,EAAE;YAC9C,UAAU,EAAE,eAA4C;YACxD,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE;YAC1C,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,IAAI,EAAE;YACtD,SAAS,EAAE,WAAW,CAAC,SAAS,IAAI,kBAAkB;YACtD,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,GAAG;YAC7B,KAAK;SACN,CAAC;QACF,IAAI,WAAW,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;YAC/C,IAAI,WAAW,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;gBAC7C,SAAS,CAAC,UAAU,GAAG,YAAY,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,UAAU,GAAG,aAAa,CAAC;YACvC,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;YACnD,IAAI,WAAW,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;gBAC7C,SAAS,CAAC,UAAU,GAAG,YAAY,CAAC;YACtC,CAAC;iBAAM,IAAI,WAAW,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;gBACnD,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,UAAU,GAAG,WAAW,CAAC;YACrC,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,CAAC,UAAU,KAAK,kBAAkB,EAAE,CAAC;YACzD,SAAS,CAAC,UAAU,GAAG,YAAY,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;QAChD,CAAC;QACD,IAAI,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;YAC9D,SAAS,CAAC,SAAS;gBACT,WAAW,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC;oBAClC,aAAa,CAAC,CAAC;oBACf,kBAAkB,CAAC;QACjC,CAAC;QACD,IAAI,WAAW,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,8DAA8D;YAC9D,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;gBACtC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;oBACjC,8DAA8D;oBAC9D,CAAC,EAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAC9D,CAAC;oBACF,IAAI,QAAQ,EAAE,CAAC;wBACb,KAAK,CAAC,IAAI,CAAW;4BACnB,EAAE,EAAE,IAAI,CAAC,EAAE;4BACX,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,KAAK,EAAE,CAAC;4BACR,kBAAkB,EAAE,KAAK;4BACzB,QAAQ,EAAE,EAAE;4BACZ,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;yBAC1C,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,IAAI,CAAC,IAAI;4BAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;wBACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnD,KAAK,CAAC,IAAI,CAAW;wBACnB,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;wBACvB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;wBACtB,kBAAkB,EAAE,KAAK;wBACzB,QAAQ,EAAE;4BACe;gCACP,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,KAAK;gCAC9C,KAAK,EAAE,IAAI,CAAC,KAAK;6BAClB;yBAChB;wBACD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,EAAE;qBAChD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,EAAsB;;QACpD,IAAK,EAAE,CAAC,SAA+B,KAAK,MAAM,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,KAAK,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5E,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,CAAC,iBAAiB,KAAI,MAAA,EAAE,CAAC,KAAK,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAA,CAAC;YAClG,IAAI,EAAE,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC;YAC/B,CAAC;iBAAM,IAAI,QAAQ,IAAI,oBAAoB,EAAE,CAAC;gBAC5C,EAAE,CAAC,SAAS,GAAG,kBAAkB,CAAC;YACpC,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,EAAE,CAAC,SAAS,GAAG,YAAY,CAAC;YAC9B,CAAC;iBAAM,IAAI,oBAAoB,EAAE,CAAC;gBAChC,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,SAAS,GAAG,YAAY,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,MAAA,EAAE,CAAC,KAAK,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE;YACpB,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACtB,IAAK,EAAE,CAAC,aAAmC,KAAK,CAAC,CAAC;wBAAE,EAAE,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC/E,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,YAAY;IACjB,8DAA8D;IAC9D,WAAgB;QAEhB,MAAM,iBAAiB,GACf,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACzB,WAAW,CAAC;QACtB,IAAI,6BAA6B,GAAG,CAAC,CAAC;QACtC,IAAI,6BAA6B,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACnE,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAC1C,iBAAiB,CAAC,OAAO,CAC1B,CAAC;YACF,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,6BAA6B,GAAG,MAAM,CAAC,QAAQ,CAC7C,cAAc,CAAC,CAAC,CAAC,EACjB,EAAE,CACH,CAAC;gBACF,6BAA6B,GAAG,MAAM,CAAC,QAAQ,CAC7C,cAAc,CAAC,CAAC,CAAC,EACjB,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,gCAAwB,GAAG,6BAA6B;YAAE,OAAO,eAAe,CAAC;QACrF,IAAI,gCAAwB,GAAG,6BAA6B;YAAE,OAAO,YAAY,CAAC;QAClF,IAAI,gCAAwB,GAAG,6BAA6B;YAAE,OAAO,eAAe,CAAC;QACrF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,GAAG,gCAAwB,IAAI,gCAAwB,EAAE;YAClE,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAC;IACL,CAAC;CACF;AAtND,oCAsNC"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "$id": "coding-scheme@iqb-standard@3.3",
2
+ "$id": "coding-scheme@iqb-standard@3.4",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "title": "Coding Scheme",
5
5
  "description": "Data structure to specify all processing steps of response data in order to get coded and scored data for analyses.",
@@ -19,12 +19,12 @@
19
19
  "id": {
20
20
  "type": "string",
21
21
  "description": "Identifier for the variable. In case of a scheme for a base variable, this id is identical with the source variable's id. All ids of a response scheme should be unique.",
22
- "pattern": "^[0-9a-zA-Z_]+$"
22
+ "pattern": "^[0-9a-zA-Z_-]+$"
23
23
  },
24
24
  "alias": {
25
25
  "type": "string",
26
26
  "description": "Alternative identifier for the variable. In case of a scheme for a base variable, this id is identical with the source variable's alternative id. All alternative ids of a response scheme should be unique.",
27
- "pattern": "^[0-9a-zA-Z_]+$"
27
+ "pattern": "^[0-9a-zA-Z_-]+$"
28
28
  },
29
29
  "label": {
30
30
  "type": "string",
@@ -80,7 +80,7 @@
80
80
  "type": "array",
81
81
  "items": {
82
82
  "type": "string",
83
- "pattern": "^[0-9a-zA-Z_]+$"
83
+ "pattern": "^[0-9a-zA-Z_-]+$"
84
84
  }
85
85
  },
86
86
  "processing": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iqbspecs/coding-scheme",
3
- "version": "3.3.1",
3
+ "version": "3.4.1",
4
4
  "author": "IQB - Institut zur Qualitätsentwicklung im Bildungswesen",
5
5
  "license": "CC0 1.0",
6
6
  "description": "Data interface: coding-scheme",