@quatrain/core 1.2.10 → 1.2.12

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.
@@ -30,7 +30,7 @@ class CollectionProperty extends BaseProperty_1.BaseProperty {
30
30
  return items.reduce((acc, item) => {
31
31
  const val = typeof item.val === 'function' ? item.val(property) : item[property];
32
32
  const num = Number(val);
33
- return acc + (isNaN(num) ? 0 : num);
33
+ return acc + (Number.isNaN(num) ? 0 : num);
34
34
  }, 0);
35
35
  }
36
36
  average(property, items = this._value || []) {
@@ -55,7 +55,7 @@ class CollectionProperty extends BaseProperty_1.BaseProperty {
55
55
  items.forEach((item) => {
56
56
  const val = typeof item.val === 'function' ? item.val(property) : item[property];
57
57
  const num = Number(val);
58
- if (!isNaN(num)) {
58
+ if (!Number.isNaN(num)) {
59
59
  if (minVal === undefined || num < minVal) {
60
60
  minVal = num;
61
61
  }
@@ -70,7 +70,7 @@ class CollectionProperty extends BaseProperty_1.BaseProperty {
70
70
  items.forEach((item) => {
71
71
  const val = typeof item.val === 'function' ? item.val(property) : item[property];
72
72
  const num = Number(val);
73
- if (!isNaN(num)) {
73
+ if (!Number.isNaN(num)) {
74
74
  if (maxVal === undefined || num > maxVal) {
75
75
  maxVal = num;
76
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionProperty.js","sourceRoot":"","sources":["../../src/properties/CollectionProperty.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CollectionProperty.js","sourceRoot":"","sources":["../../src/properties/CollectionProperty.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"HashProperty.d.ts","sourceRoot":"","sources":["../../src/properties/HashProperty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrE,MAAM,MAAM,iBAAiB,GACxB,OAAO,YAAY,CAAC,aAAa,GACjC,OAAO,YAAY,CAAC,cAAc,GAClC,OAAO,YAAY,CAAC,gBAAgB,GACpC,OAAO,YAAY,CAAC,gBAAgB,CAAA;AAYzC,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IACzD,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;CACpB;AAoBD,qBAAa,YAAa,SAAQ,cAAc;IAE7C,MAAM,CAAC,IAAI,SAAS;IAEpB,MAAM,CAAC,aAAa,SAAQ;IAE5B,MAAM,CAAC,cAAc,SAAS;IAE9B,MAAM,CAAC,gBAAgB,SAAW;IAElC,MAAM,CAAC,gBAAgB,SAAW;IAElC,SAAS,CAAC,UAAU,EAAE,iBAAiB,CAAA;IACvC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAK;IAC5B,SAAS,CAAC,SAAS,UAAQ;gBAEf,MAAM,EAAE,gBAAgB;IAepC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA2C5B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,UAAO;IAWpC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGjC"}
1
+ {"version":3,"file":"HashProperty.d.ts","sourceRoot":"","sources":["../../src/properties/HashProperty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrE,MAAM,MAAM,iBAAiB,GACxB,OAAO,YAAY,CAAC,aAAa,GACjC,OAAO,YAAY,CAAC,cAAc,GAClC,OAAO,YAAY,CAAC,gBAAgB,GACpC,OAAO,YAAY,CAAC,gBAAgB,CAAA;AAYzC,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IACzD,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;CACpB;AAoBD,qBAAa,YAAa,SAAQ,cAAc;IAE7C,MAAM,CAAC,IAAI,SAAS;IAEpB,MAAM,CAAC,aAAa,SAAQ;IAE5B,MAAM,CAAC,cAAc,SAAS;IAE9B,MAAM,CAAC,gBAAgB,SAAW;IAElC,MAAM,CAAC,gBAAgB,SAAW;IAElC,SAAS,CAAC,UAAU,EAAE,iBAAiB,CAAA;IACvC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAK;IAC5B,SAAS,CAAC,SAAS,UAAQ;gBAEf,MAAM,EAAE,gBAAgB;IA8BpC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA2C5B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,UAAO;IAWpC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGjC"}
@@ -15,9 +15,18 @@ class HashProperty extends StringProperty_1.StringProperty {
15
15
  _prefixed = false;
16
16
  constructor(config) {
17
17
  super(config);
18
- this._algorithm = config.algorithm || HashProperty.ALGORITHM_MD5;
18
+ this._algorithm = config.algorithm || HashProperty.ALGORITHM_SHA256;
19
19
  this._salt = config.salt || '';
20
20
  this._prefixed = config.prefixed || false;
21
+ if (this._algorithm === HashProperty.ALGORITHM_MD5 ||
22
+ this._algorithm === HashProperty.ALGORITHM_SHA1) {
23
+ const sensitiveTerms = ['password', 'pwd', 'secret', 'token', 'credential'];
24
+ const nameLower = this._name.toLowerCase();
25
+ const isSensitive = sensitiveTerms.some((term) => nameLower.includes(term));
26
+ if (isSensitive) {
27
+ throw new Error(`SecurityError: Insecure hashing algorithm "${this._algorithm}" cannot be used for sensitive property "${this._name}". Please use SHA256 or another secure algorithm.`);
28
+ }
29
+ }
21
30
  }
22
31
  _hash(value) {
23
32
  let algo;
@@ -1 +1 @@
1
- {"version":3,"file":"HashProperty.js","sourceRoot":"","sources":["../../src/properties/HashProperty.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AACxC,qDAAqE;AACrE,kCAA8B;AA0C9B,MAAa,YAAa,SAAQ,+BAAc;IAE7C,MAAM,CAAC,IAAI,GAAG,MAAM,CAAA;IAEpB,MAAM,CAAC,aAAa,GAAG,KAAK,CAAA;IAE5B,MAAM,CAAC,cAAc,GAAG,MAAM,CAAA;IAE9B,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAA;IAElC,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAA;IAExB,UAAU,CAAmB;IAC7B,KAAK,GAAW,EAAE,CAAA;IAClB,SAAS,GAAG,KAAK,CAAA;IAE3B,YAAY,MAAwB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,aAAa,CAAA;QAChE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAA;IAC5C,CAAC;IAUD,KAAK,CAAC,KAAa;QAChB,IAAI,IAAI,CAAA;QACR,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACvB,KAAK,YAAY,CAAC,aAAa;gBAC5B,IAAI,GAAG,IAAA,wBAAU,EAAC,KAAK,CAAC,CAAA;gBACxB,WAAI,CAAC,IAAI,CACN,sDAAsD,CACxD,CAAA;gBACD,MAAK;YAER,KAAK,YAAY,CAAC,cAAc;gBAC7B,IAAI,GAAG,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAA;gBACzB,WAAI,CAAC,IAAI,CACN,uDAAuD,CACzD,CAAA;gBACD,MAAK;YAER,KAAK,YAAY,CAAC,gBAAgB;gBAC/B,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAA;gBAC3B,MAAK;YAER;gBACG,MAAM,IAAI,KAAK,CACZ,0CAA0C,IAAI,CAAC,UAAU,EAAE,CAC7D,CAAA;QACP,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACtD,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAE1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QAEtB,OAAO,IAAI,CAAA;IACd,CAAC;IAUD,GAAG,CAAC,KAAa,EAAE,UAAU,GAAG,IAAI;QACjC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAA;IAClD,CAAC;IASD,OAAO,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,CAAA;IAC3C,CAAC;;AAvFJ,oCAwFC"}
1
+ {"version":3,"file":"HashProperty.js","sourceRoot":"","sources":["../../src/properties/HashProperty.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AACxC,qDAAqE;AACrE,kCAA8B;AA0C9B,MAAa,YAAa,SAAQ,+BAAc;IAE7C,MAAM,CAAC,IAAI,GAAG,MAAM,CAAA;IAEpB,MAAM,CAAC,aAAa,GAAG,KAAK,CAAA;IAE5B,MAAM,CAAC,cAAc,GAAG,MAAM,CAAA;IAE9B,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAA;IAElC,MAAM,CAAC,gBAAgB,GAAG,QAAQ,CAAA;IAExB,UAAU,CAAmB;IAC7B,KAAK,GAAW,EAAE,CAAA;IAClB,SAAS,GAAG,KAAK,CAAA;IAE3B,YAAY,MAAwB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,gBAAgB,CAAA;QACnE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAA;QAGzC,IACG,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,aAAa;YAC9C,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,cAAc,EAChD,CAAC;YACA,MAAM,cAAc,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;YAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;YAC1C,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;YAC3E,IAAI,WAAW,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACZ,8CAA8C,IAAI,CAAC,UAAU,4CAA4C,IAAI,CAAC,KAAK,mDAAmD,CACxK,CAAA;YACJ,CAAC;QACJ,CAAC;IACJ,CAAC;IAUD,KAAK,CAAC,KAAa;QAChB,IAAI,IAAI,CAAA;QACR,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACvB,KAAK,YAAY,CAAC,aAAa;gBAC5B,IAAI,GAAG,IAAA,wBAAU,EAAC,KAAK,CAAC,CAAA;gBACxB,WAAI,CAAC,IAAI,CACN,sDAAsD,CACxD,CAAA;gBACD,MAAK;YAER,KAAK,YAAY,CAAC,cAAc;gBAC7B,IAAI,GAAG,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAA;gBACzB,WAAI,CAAC,IAAI,CACN,uDAAuD,CACzD,CAAA;gBACD,MAAK;YAER,KAAK,YAAY,CAAC,gBAAgB;gBAC/B,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAA;gBAC3B,MAAK;YAER;gBACG,MAAM,IAAI,KAAK,CACZ,0CAA0C,IAAI,CAAC,UAAU,EAAE,CAC7D,CAAA;QACP,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACtD,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAE1D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QAEtB,OAAO,IAAI,CAAA;IACd,CAAC;IAUD,GAAG,CAAC,KAAa,EAAE,UAAU,GAAG,IAAI;QACjC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAA;IAClD,CAAC;IASD,OAAO,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,CAAA;IAC3C,CAAC;;AAtGJ,oCAuGC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quatrain/core",
3
- "version": "1.2.10",
3
+ "version": "1.2.12",
4
4
  "description": "Core objects for business apps",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -96,7 +96,7 @@ export class CollectionProperty extends BaseProperty {
96
96
  return items.reduce((acc, item) => {
97
97
  const val = typeof item.val === 'function' ? item.val(property) : item[property]
98
98
  const num = Number(val)
99
- return acc + (isNaN(num) ? 0 : num)
99
+ return acc + (Number.isNaN(num) ? 0 : num)
100
100
  }, 0)
101
101
  }
102
102
 
@@ -146,7 +146,7 @@ export class CollectionProperty extends BaseProperty {
146
146
  items.forEach((item) => {
147
147
  const val = typeof item.val === 'function' ? item.val(property) : item[property]
148
148
  const num = Number(val)
149
- if (!isNaN(num)) {
149
+ if (!Number.isNaN(num)) {
150
150
  if (minVal === undefined || num < minVal) {
151
151
  minVal = num
152
152
  }
@@ -169,7 +169,7 @@ export class CollectionProperty extends BaseProperty {
169
169
  items.forEach((item) => {
170
170
  const val = typeof item.val === 'function' ? item.val(property) : item[property]
171
171
  const num = Number(val)
172
- if (!isNaN(num)) {
172
+ if (!Number.isNaN(num)) {
173
173
  if (maxVal === undefined || num > maxVal) {
174
174
  maxVal = num
175
175
  }
@@ -106,3 +106,49 @@ describe('Hash Property allows comparison of string and hash value', () => {
106
106
  expect(prop.set('azertyuiop').compare('qwertz')).toBe(false)
107
107
  })
108
108
  })
109
+
110
+ describe('Hash Property Security Policies', () => {
111
+ test('defaults to SHA256 when no algorithm is provided', () => {
112
+ const prop = new HashProperty({
113
+ name: 'my_hash',
114
+ })
115
+ expect(prop.set('azertyuiop').get()).toBe(
116
+ 'aa3d2fe4f6d301dbd6b8fb2d2fddfb7aeebf3bec53ffff4b39a0967afa88c609'
117
+ )
118
+ })
119
+
120
+ test('throws error if MD5 is used for sensitive property names', () => {
121
+ expect(() => {
122
+ new HashProperty({
123
+ name: 'userPassword',
124
+ algorithm: HashProperty.ALGORITHM_MD5,
125
+ })
126
+ }).toThrow('SecurityError: Insecure hashing algorithm')
127
+
128
+ expect(() => {
129
+ new HashProperty({
130
+ name: 'client_pwd',
131
+ algorithm: HashProperty.ALGORITHM_MD5,
132
+ })
133
+ }).toThrow('SecurityError: Insecure hashing algorithm')
134
+ })
135
+
136
+ test('throws error if SHA1 is used for sensitive property names', () => {
137
+ expect(() => {
138
+ new HashProperty({
139
+ name: 'secretToken',
140
+ algorithm: HashProperty.ALGORITHM_SHA1,
141
+ })
142
+ }).toThrow('SecurityError: Insecure hashing algorithm')
143
+ })
144
+
145
+ test('allows SHA256 for sensitive property names', () => {
146
+ const prop = new HashProperty({
147
+ name: 'password',
148
+ algorithm: HashProperty.ALGORITHM_SHA256,
149
+ })
150
+ expect(prop.set('azertyuiop').get()).toBe(
151
+ 'aa3d2fe4f6d301dbd6b8fb2d2fddfb7aeebf3bec53ffff4b39a0967afa88c609'
152
+ )
153
+ })
154
+ })
@@ -14,7 +14,7 @@ export type HashPropertyAlgos =
14
14
  *
15
15
  * | Parameter | Type | Description | Default |
16
16
  * | :--- | :--- | :--- | :--- |
17
- * | `algorithm` | HashPropertyAlgos | The cryptographic hashing algorithm to use. | `ALGORITHM_MD5` |
17
+ * | `algorithm` | HashPropertyAlgos | The cryptographic hashing algorithm to use. | `ALGORITHM_SHA256` |
18
18
  * | `salt` | string | An optional salt string appended to the value before hashing. | `""` |
19
19
  * | `prefixed` | boolean | If true, prepends the algorithm name to the output (e.g. `md5-abc...`). | `false` |
20
20
  */
@@ -60,9 +60,24 @@ export class HashProperty extends StringProperty {
60
60
 
61
61
  constructor(config: HashPropertyType) {
62
62
  super(config)
63
- this._algorithm = config.algorithm || HashProperty.ALGORITHM_MD5
63
+ this._algorithm = config.algorithm || HashProperty.ALGORITHM_SHA256
64
64
  this._salt = config.salt || ''
65
65
  this._prefixed = config.prefixed || false
66
+
67
+ // Prevent legacy/insecure algorithms (MD5, SHA1) on sensitive properties
68
+ if (
69
+ this._algorithm === HashProperty.ALGORITHM_MD5 ||
70
+ this._algorithm === HashProperty.ALGORITHM_SHA1
71
+ ) {
72
+ const sensitiveTerms = ['password', 'pwd', 'secret', 'token', 'credential']
73
+ const nameLower = this._name.toLowerCase()
74
+ const isSensitive = sensitiveTerms.some((term) => nameLower.includes(term))
75
+ if (isSensitive) {
76
+ throw new Error(
77
+ `SecurityError: Insecure hashing algorithm "${this._algorithm}" cannot be used for sensitive property "${this._name}". Please use SHA256 or another secure algorithm.`
78
+ )
79
+ }
80
+ }
66
81
  }
67
82
 
68
83
  /**