@openframe-org/criteria-set-protocol 2.0.15 → 2.0.16

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 (51) hide show
  1. package/dist/index.js +7 -17
  2. package/dist/services/i-versioned.service.d.ts +16 -0
  3. package/dist/services/i-versioned.service.js +2 -0
  4. package/dist/services/index.d.ts +2 -0
  5. package/dist/services/index.js +18 -0
  6. package/dist/services/versions.service.d.ts +38 -0
  7. package/dist/services/versions.service.js +49 -0
  8. package/dist/types.d.ts +2 -0
  9. package/dist/types.js +2 -0
  10. package/dist/v1/schemas/certification.d.ts +8 -8
  11. package/dist/v1/schemas/common.d.ts +2 -2
  12. package/dist/v1/schemas/criteria-set-id-param-schema.d.ts +11 -0
  13. package/dist/v1/schemas/criteria-set-id-param-schema.js +11 -0
  14. package/dist/v1/schemas/criteria-set.d.ts +8 -0
  15. package/dist/v1/schemas/criteria-set.js +7 -0
  16. package/dist/v1/schemas/criteria-tree.d.ts +118 -118
  17. package/dist/v1/schemas/criterion.d.ts +20 -20
  18. package/dist/v1/schemas/download-matrix-body-schema.d.ts +15 -0
  19. package/dist/v1/schemas/download-matrix-body-schema.js +36 -0
  20. package/dist/v1/schemas/index.d.ts +1 -0
  21. package/dist/v1/schemas/index.js +1 -0
  22. package/dist/v1/schemas/matrix-body-schema.d.ts +20 -0
  23. package/dist/v1/schemas/matrix-body-schema.js +14 -0
  24. package/dist/v1/schemas/metadata.d.ts +2 -2
  25. package/dist/v1/schemas/quality.d.ts +498 -181
  26. package/dist/v1/schemas/quality.js +2 -2
  27. package/dist/v1/schemas/response.d.ts +2 -2
  28. package/dist/v1/schemas/task-group.d.ts +12 -12
  29. package/dist/v1/schemas/task-item.d.ts +2 -2
  30. package/dist/v1/schemas/task.d.ts +6 -6
  31. package/dist/v1/schemas/theme.d.ts +30 -30
  32. package/dist/v1/schemas/tree-and-data-body-schema.d.ts +17 -0
  33. package/dist/v1/schemas/tree-and-data-body-schema.js +13 -0
  34. package/dist/v1/schemas/tree-and-matrix-body-schema.d.ts +19 -0
  35. package/dist/v1/schemas/tree-and-matrix-body-schema.js +38 -0
  36. package/dist/v1/schemas/tree-body-schema.d.ts +17 -0
  37. package/dist/v1/schemas/tree-body-schema.js +37 -0
  38. package/dist/v1/schemas/utils.d.ts +4 -1
  39. package/dist/v1/schemas/utils.js +7 -1
  40. package/dist/v1/schemas/version-param-schema.d.ts +11 -0
  41. package/dist/v1/schemas/version-param-schema.js +11 -0
  42. package/dist/v1/services/i-protocol-v1.service.d.ts +26 -0
  43. package/dist/v1/services/i-protocol-v1.service.js +2 -0
  44. package/dist/v1/types/criteria.d.ts +2 -1
  45. package/dist/v1/types/express.d.ts +1 -0
  46. package/dist/v1/utils/color.d.ts +2 -0
  47. package/dist/v1/utils/color.js +10 -0
  48. package/dist/v1/utils/index.d.ts +7 -0
  49. package/dist/v1/utils/index.js +15 -0
  50. package/dist/v1/utils.d.ts +761 -6
  51. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -15,23 +15,13 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
35
25
  Object.defineProperty(exports, "__esModule", { value: true });
36
26
  exports.v1 = void 0;
37
27
  exports.v1 = __importStar(require("./v1"));
@@ -0,0 +1,16 @@
1
+ import { ProtocolVersionServiceMap } from '../types';
2
+ /**
3
+ * Interface for versioned services
4
+ *
5
+ * Services that implement this interface can be managed by the VersionsService
6
+ */
7
+ export interface IVersionedService {
8
+ /**
9
+ * The SemVer version of the service
10
+ */
11
+ version: string;
12
+ /**
13
+ * Whether the service supports the given protocol version
14
+ */
15
+ supportsProtocol: <ProtocolVersion extends number>(protocolVersion: ProtocolVersion) => this is ProtocolVersionServiceMap<ProtocolVersion>;
16
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export * from './i-versioned.service';
2
+ export * from './versions.service';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./i-versioned.service"), exports);
18
+ __exportStar(require("./versions.service"), exports);
@@ -0,0 +1,38 @@
1
+ import { IVersionedService } from './i-versioned.service';
2
+ import { ProtocolVersionServiceMap } from '../types';
3
+ /**
4
+ * Service for managing versions of services
5
+ *
6
+ * The VersionsService class is a utility class for services which implement different versions of the protocol, and different versions of their
7
+ * own service. For example, say you have a v1service, v11service, v2service and v21service with versions 1.0, 1.1, 2.0 and 2.1 respectively.
8
+ * The VersionsService class can be used to manage these services:
9
+ *
10
+ * const versionsService = new VersionsService([v1service, v11service, v2service, v21service]);
11
+ * versionsService.getLatestVersion(); // v21service
12
+ * versionsService.getServiceVersions(1); // [v1service, v11service]
13
+ * versionsService.getServiceVersions(2); // [v2service, v21service]
14
+ * versionsService.get('1.1'); // v11service
15
+ */
16
+ export declare class VersionsService {
17
+ protected versions: IVersionedService[];
18
+ /**
19
+ * @param versions An array of services implementing IVersionedService
20
+ */
21
+ constructor(versions: IVersionedService[]);
22
+ /**
23
+ * Get all services
24
+ */
25
+ getAll(): IVersionedService[];
26
+ /**
27
+ * Retrieve the services which are compatible with the requested protocol version
28
+ */
29
+ getServiceVersions<ProtocolVersion extends number, ProtocolImplementingService = ProtocolVersionServiceMap<ProtocolVersion>>(protocolVersion: ProtocolVersion): ProtocolImplementingService[];
30
+ /**
31
+ * Retrieve a service by version
32
+ */
33
+ get(version: string): IVersionedService | undefined;
34
+ /**
35
+ * Retrieve the latest service
36
+ */
37
+ getLatestVersion(): IVersionedService;
38
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VersionsService = void 0;
4
+ /**
5
+ * Service for managing versions of services
6
+ *
7
+ * The VersionsService class is a utility class for services which implement different versions of the protocol, and different versions of their
8
+ * own service. For example, say you have a v1service, v11service, v2service and v21service with versions 1.0, 1.1, 2.0 and 2.1 respectively.
9
+ * The VersionsService class can be used to manage these services:
10
+ *
11
+ * const versionsService = new VersionsService([v1service, v11service, v2service, v21service]);
12
+ * versionsService.getLatestVersion(); // v21service
13
+ * versionsService.getServiceVersions(1); // [v1service, v11service]
14
+ * versionsService.getServiceVersions(2); // [v2service, v21service]
15
+ * versionsService.get('1.1'); // v11service
16
+ */
17
+ class VersionsService {
18
+ /**
19
+ * @param versions An array of services implementing IVersionedService
20
+ */
21
+ constructor(versions) {
22
+ this.versions = versions;
23
+ }
24
+ /**
25
+ * Get all services
26
+ */
27
+ getAll() {
28
+ return this.versions;
29
+ }
30
+ /**
31
+ * Retrieve the services which are compatible with the requested protocol version
32
+ */
33
+ getServiceVersions(protocolVersion) {
34
+ return this.versions.filter((service) => service.supportsProtocol(protocolVersion));
35
+ }
36
+ /**
37
+ * Retrieve a service by version
38
+ */
39
+ get(version) {
40
+ return this.versions.find((service) => service.version === version);
41
+ }
42
+ /**
43
+ * Retrieve the latest service
44
+ */
45
+ getLatestVersion() {
46
+ return this.versions[this.versions.length - 1];
47
+ }
48
+ }
49
+ exports.VersionsService = VersionsService;
@@ -0,0 +1,2 @@
1
+ import { IProtocolV1Service } from './v1/services/i-protocol-v1.service';
2
+ export type ProtocolVersionServiceMap<Version extends number> = Version extends 1 ? IProtocolV1Service : unknown;
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -58,9 +58,9 @@ export declare const numberBasedCertificationDefinitionSchema: z.ZodObject<z.obj
58
58
  exclusiveMinimum?: number | undefined;
59
59
  }>;
60
60
  }>, "strip", z.ZodTypeAny, {
61
+ type: "number";
61
62
  code: string;
62
63
  name: string;
63
- type: "number";
64
64
  rulesText: string;
65
65
  rules: {
66
66
  minimum?: number | undefined;
@@ -71,9 +71,9 @@ export declare const numberBasedCertificationDefinitionSchema: z.ZodObject<z.obj
71
71
  description?: string | undefined;
72
72
  icon?: string | undefined;
73
73
  }, {
74
+ type: "number";
74
75
  code: string;
75
76
  name: string;
76
- type: "number";
77
77
  rulesText: string;
78
78
  rules: {
79
79
  minimum?: number | undefined;
@@ -110,9 +110,9 @@ export declare const percentageBasedCertificationDefinitionSchema: z.ZodObject<z
110
110
  exclusiveMinimum?: number | undefined;
111
111
  }>;
112
112
  }>, "strip", z.ZodTypeAny, {
113
+ type: "percentage";
113
114
  code: string;
114
115
  name: string;
115
- type: "percentage";
116
116
  rulesText: string;
117
117
  rules: {
118
118
  minimum?: number | undefined;
@@ -123,9 +123,9 @@ export declare const percentageBasedCertificationDefinitionSchema: z.ZodObject<z
123
123
  description?: string | undefined;
124
124
  icon?: string | undefined;
125
125
  }, {
126
+ type: "percentage";
126
127
  code: string;
127
128
  name: string;
128
- type: "percentage";
129
129
  rulesText: string;
130
130
  rules: {
131
131
  minimum?: number | undefined;
@@ -162,9 +162,9 @@ export declare const certificationDefinitionSchema: z.ZodDiscriminatedUnion<"typ
162
162
  exclusiveMinimum?: number | undefined;
163
163
  }>;
164
164
  }>, "strip", z.ZodTypeAny, {
165
+ type: "number";
165
166
  code: string;
166
167
  name: string;
167
- type: "number";
168
168
  rulesText: string;
169
169
  rules: {
170
170
  minimum?: number | undefined;
@@ -175,9 +175,9 @@ export declare const certificationDefinitionSchema: z.ZodDiscriminatedUnion<"typ
175
175
  description?: string | undefined;
176
176
  icon?: string | undefined;
177
177
  }, {
178
+ type: "number";
178
179
  code: string;
179
180
  name: string;
180
- type: "number";
181
181
  rulesText: string;
182
182
  rules: {
183
183
  minimum?: number | undefined;
@@ -213,9 +213,9 @@ export declare const certificationDefinitionSchema: z.ZodDiscriminatedUnion<"typ
213
213
  exclusiveMinimum?: number | undefined;
214
214
  }>;
215
215
  }>, "strip", z.ZodTypeAny, {
216
+ type: "percentage";
216
217
  code: string;
217
218
  name: string;
218
- type: "percentage";
219
219
  rulesText: string;
220
220
  rules: {
221
221
  minimum?: number | undefined;
@@ -226,9 +226,9 @@ export declare const certificationDefinitionSchema: z.ZodDiscriminatedUnion<"typ
226
226
  description?: string | undefined;
227
227
  icon?: string | undefined;
228
228
  }, {
229
+ type: "percentage";
229
230
  code: string;
230
231
  name: string;
231
- type: "percentage";
232
232
  rulesText: string;
233
233
  rules: {
234
234
  minimum?: number | undefined;
@@ -140,8 +140,8 @@ export declare const abstractElementSchema: z.ZodObject<{
140
140
  }>>;
141
141
  sortOrder: z.ZodOptional<z.ZodNumber>;
142
142
  }, "strip", z.ZodTypeAny, {
143
- code: string;
144
143
  type: "theme" | "criterion" | "task-group" | "task" | "task-item";
144
+ code: string;
145
145
  title: string;
146
146
  data?: {
147
147
  type?: "number" | "percentage" | undefined;
@@ -174,8 +174,8 @@ export declare const abstractElementSchema: z.ZodObject<{
174
174
  })[] | undefined;
175
175
  sortOrder?: number | undefined;
176
176
  }, {
177
- code: string;
178
177
  type: "theme" | "criterion" | "task-group" | "task" | "task-item";
178
+ code: string;
179
179
  title: string;
180
180
  data?: {
181
181
  type?: "number" | "percentage" | undefined;
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Validates the criteriaSetId parameter for endpoints which use it
4
+ */
5
+ export declare const criteriaSetIdParamSchema: z.ZodObject<{
6
+ criteriaSetId: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ criteriaSetId: string;
9
+ }, {
10
+ criteriaSetId: string;
11
+ }>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.criteriaSetIdParamSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * Validates the criteriaSetId parameter for endpoints which use it
7
+ */
8
+ exports.criteriaSetIdParamSchema = zod_1.z.object({
9
+ criteriaSetId: zod_1.z.string()
10
+ .regex(/^[a-zA-Z0-9.\-_]+$/, 'Criteria set ID must contain only full stops, alphanumeric characters, dashes and underscores')
11
+ });
@@ -0,0 +1,8 @@
1
+ import { z } from "zod";
2
+ export declare const criteriaSetOptionsSchema: z.ZodObject<{
3
+ renderDetailedViewInDashboard: z.ZodOptional<z.ZodBoolean>;
4
+ }, "strip", z.ZodTypeAny, {
5
+ renderDetailedViewInDashboard?: boolean | undefined;
6
+ }, {
7
+ renderDetailedViewInDashboard?: boolean | undefined;
8
+ }>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.criteriaSetOptionsSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.criteriaSetOptionsSchema = zod_1.z.object({
6
+ renderDetailedViewInDashboard: zod_1.z.boolean().optional(),
7
+ });