gemcap-be-common 1.4.162 → 1.4.164

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.
@@ -33,6 +33,15 @@ export interface IScoringRule {
33
33
  gte?: number;
34
34
  between?: [number, number];
35
35
  }
36
+ export type TScorecardVersionCriterionTypes = typeof SCORECARD_CRITERION_TYPES[number];
37
+ export declare const SCORECARD_CRITERION_TYPES: readonly ["boolean", "enum", "number", "range", "rating"];
38
+ export declare const SCORECARD_CRITERION_TYPE: {
39
+ readonly BOOLEAN: "boolean";
40
+ readonly ENUM: "enum";
41
+ readonly NUMBER: "number";
42
+ readonly RANGE: "range";
43
+ readonly RATING: "rating";
44
+ };
36
45
  export interface IScorecardDefinition {
37
46
  sections: {
38
47
  key: string;
@@ -42,7 +51,7 @@ export interface IScorecardDefinition {
42
51
  criteria: {
43
52
  key: string;
44
53
  label: string;
45
- type: 'boolean' | 'enum' | 'number' | 'range' | 'rating';
54
+ type: TScorecardVersionCriterionTypes;
46
55
  options?: string[];
47
56
  min?: number;
48
57
  max?: number;
@@ -50,10 +59,17 @@ export interface IScorecardDefinition {
50
59
  }[];
51
60
  }[];
52
61
  }
62
+ export type TScorecardVersionStatus = typeof SCORECARD_VERSION_STATUSES[number];
63
+ export declare const SCORECARD_VERSION_STATUSES: readonly ["draft", "active", "archived"];
64
+ export declare const SCORECARD_VERSION_STATUS: {
65
+ readonly DRAFT: "draft";
66
+ readonly ACTIVE: "active";
67
+ readonly ARCHIVED: "archived";
68
+ };
53
69
  export interface IScorecardVersion {
54
70
  scorecardId: mongoose.Types.ObjectId;
55
71
  version: string;
56
- status: 'draft' | 'active' | 'archived';
72
+ status: TScorecardVersionStatus;
57
73
  validFrom: Date;
58
74
  validTo?: Date;
59
75
  definition: IScorecardDefinition;
@@ -72,7 +88,6 @@ export interface IScorecardVersionPlain extends IScorecardVersion {
72
88
  _id: string;
73
89
  }
74
90
  export type TScorecardVersionModel = Model<IScorecardVersion>;
75
- export declare const CRITERION_TYPES: readonly ["boolean", "enum", "number", "range", "rating"];
76
91
  export declare const ScorecardDefinitionJoiSchema: Joi.ObjectSchema<any>;
77
92
  export declare const ScorecardVersionSchema: mongoose.Schema<IScorecardVersion, TScorecardVersionModel, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, IScorecardVersion, mongoose.Document<unknown, {}, mongoose.FlatRecord<IScorecardVersion>> & mongoose.FlatRecord<IScorecardVersion> & {
78
93
  _id: mongoose.Types.ObjectId;
@@ -3,17 +3,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ScorecardVersion = exports.ScorecardVersionSchema = exports.ScorecardDefinitionJoiSchema = exports.CRITERION_TYPES = void 0;
6
+ exports.ScorecardVersion = exports.ScorecardVersionSchema = exports.ScorecardDefinitionJoiSchema = exports.SCORECARD_VERSION_STATUS = exports.SCORECARD_VERSION_STATUSES = exports.SCORECARD_CRITERION_TYPE = exports.SCORECARD_CRITERION_TYPES = void 0;
7
7
  const joi_1 = __importDefault(require("joi"));
8
8
  const mongoose_1 = __importDefault(require("mongoose"));
9
9
  const _models_1 = require("./_models");
10
- exports.CRITERION_TYPES = [
10
+ exports.SCORECARD_CRITERION_TYPES = [
11
11
  'boolean',
12
12
  'enum',
13
13
  'number',
14
14
  'range',
15
15
  'rating',
16
16
  ];
17
+ exports.SCORECARD_CRITERION_TYPE = {
18
+ BOOLEAN: 'boolean',
19
+ ENUM: 'enum',
20
+ NUMBER: 'number',
21
+ RANGE: 'range',
22
+ RATING: 'rating',
23
+ };
24
+ exports.SCORECARD_VERSION_STATUSES = [
25
+ 'draft',
26
+ 'active',
27
+ 'archived',
28
+ ];
29
+ exports.SCORECARD_VERSION_STATUS = {
30
+ DRAFT: 'draft',
31
+ ACTIVE: 'active',
32
+ ARCHIVED: 'archived',
33
+ };
17
34
  const scoringRuleSchema = joi_1.default.object({
18
35
  score: joi_1.default.number().required(),
19
36
  // mutually exclusive conditions
@@ -32,7 +49,7 @@ const criterionSchema = joi_1.default.object({
32
49
  .required(),
33
50
  label: joi_1.default.string().required(),
34
51
  type: joi_1.default.string()
35
- .valid(...exports.CRITERION_TYPES)
52
+ .valid(...exports.SCORECARD_CRITERION_TYPES)
36
53
  .required(),
37
54
  options: joi_1.default.when('type', {
38
55
  is: 'enum',
@@ -91,7 +108,7 @@ exports.ScorecardVersionSchema = new mongoose_1.default.Schema({
91
108
  },
92
109
  status: {
93
110
  type: String,
94
- enum: ['draft', 'active', 'archived'],
111
+ enum: exports.SCORECARD_VERSION_STATUSES,
95
112
  required: true,
96
113
  index: true,
97
114
  },
@@ -13,6 +13,24 @@ export interface IScoringRule {
13
13
  between?: [number, number];
14
14
  }
15
15
 
16
+ export type TScorecardVersionCriterionTypes = typeof SCORECARD_CRITERION_TYPES[number];
17
+
18
+ export const SCORECARD_CRITERION_TYPES = [
19
+ 'boolean',
20
+ 'enum',
21
+ 'number',
22
+ 'range',
23
+ 'rating',
24
+ ] as const;
25
+
26
+ export const SCORECARD_CRITERION_TYPE = {
27
+ BOOLEAN: 'boolean',
28
+ ENUM: 'enum',
29
+ NUMBER: 'number',
30
+ RANGE: 'range',
31
+ RATING: 'rating',
32
+ } as const satisfies Record<Uppercase<TScorecardVersionCriterionTypes>, TScorecardVersionCriterionTypes>;
33
+
16
34
  export interface IScorecardDefinition {
17
35
  sections: {
18
36
  key: string;
@@ -22,7 +40,7 @@ export interface IScorecardDefinition {
22
40
  criteria: {
23
41
  key: string;
24
42
  label: string;
25
- type: 'boolean' | 'enum' | 'number' | 'range' | 'rating';
43
+ type: TScorecardVersionCriterionTypes;
26
44
  options?: string[];
27
45
  min?: number;
28
46
  max?: number;
@@ -31,11 +49,24 @@ export interface IScorecardDefinition {
31
49
  }[];
32
50
  }
33
51
 
52
+ export type TScorecardVersionStatus = typeof SCORECARD_VERSION_STATUSES[number];
53
+
54
+ export const SCORECARD_VERSION_STATUSES = [
55
+ 'draft',
56
+ 'active',
57
+ 'archived',
58
+ ] as const;
59
+
60
+ export const SCORECARD_VERSION_STATUS = {
61
+ DRAFT: 'draft',
62
+ ACTIVE: 'active',
63
+ ARCHIVED: 'archived',
64
+ } as const satisfies Record<Uppercase<TScorecardVersionStatus>, TScorecardVersionStatus>;
34
65
 
35
66
  export interface IScorecardVersion {
36
67
  scorecardId: mongoose.Types.ObjectId;
37
68
  version: string;
38
- status: 'draft' | 'active' | 'archived';
69
+ status: TScorecardVersionStatus;
39
70
  validFrom: Date;
40
71
  validTo?: Date;
41
72
  definition: IScorecardDefinition;
@@ -59,13 +90,6 @@ export interface IScorecardVersionPlain extends IScorecardVersion {
59
90
 
60
91
  export type TScorecardVersionModel = Model<IScorecardVersion>;
61
92
 
62
- export const CRITERION_TYPES = [
63
- 'boolean',
64
- 'enum',
65
- 'number',
66
- 'range',
67
- 'rating',
68
- ] as const;
69
93
 
70
94
  const scoringRuleSchema = Joi.object({
71
95
  score: Joi.number().required(),
@@ -89,7 +113,7 @@ const criterionSchema = Joi.object({
89
113
  label: Joi.string().required(),
90
114
 
91
115
  type: Joi.string()
92
- .valid(...CRITERION_TYPES)
116
+ .valid(...SCORECARD_CRITERION_TYPES)
93
117
  .required(),
94
118
 
95
119
  options: Joi.when('type', {
@@ -160,7 +184,7 @@ export const ScorecardVersionSchema = new mongoose.Schema<IScorecardVersion, TSc
160
184
  },
161
185
  status: {
162
186
  type: String,
163
- enum: ['draft', 'active', 'archived'],
187
+ enum: SCORECARD_VERSION_STATUSES,
164
188
  required: true,
165
189
  index: true,
166
190
  },
@@ -184,7 +208,7 @@ ScorecardVersionSchema.index(
184
208
 
185
209
  ScorecardVersionSchema.index(
186
210
  { scorecardId: 1, status: 1 },
187
- { unique: true, partialFilterExpression: { status: 'active' } }
211
+ { unique: true, partialFilterExpression: { status: 'active' } },
188
212
  );
189
213
 
190
214
  ScorecardVersionSchema.pre('save', function(next) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemcap-be-common",
3
- "version": "1.4.162",
3
+ "version": "1.4.164",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {