@balena/pinejs 20.0.3 → 20.0.4-build-fix-regression--5eac96faefde83ce9d1964b407cf6a490df83920-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/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +55 -22
- package/CHANGELOG.md +5 -0
- package/VERSION +1 -1
- package/out/sbvr-api/abstract-sql.js +13 -9
- package/out/sbvr-api/abstract-sql.js.map +1 -1
- package/package.json +2 -2
- package/src/sbvr-api/abstract-sql.ts +13 -9
@@ -1,3 +1,22 @@
|
|
1
|
+
- commits:
|
2
|
+
- subject: Fix missing required validation on bindings
|
3
|
+
hash: 5eac96faefde83ce9d1964b407cf6a490df83920
|
4
|
+
body: |
|
5
|
+
In previous commit `bdb34d` the code path for `getAndCheckBindValues` was simplified
|
6
|
+
considering the declared type of `{dataType: string}`. That typing is not complete and thus the simplification was wrong.
|
7
|
+
|
8
|
+
The field property may also contain a `required` property which is used for doing oData validation (from sbvr-types)
|
9
|
+
In that simplification we excluded the required information for bound variables: https://github.com/balena-io/pinejs/commit/bdb34d9df39e0d9d00db492cbb1ef6dfc61e8450#diff-abade937407ef92d95cd36b5719e481229475da7d3f8bdc613bebef8971c35d2R107
|
10
|
+
|
11
|
+
This reverts back the code simplification but keeping the necessary changes for List binding type.
|
12
|
+
footer:
|
13
|
+
Change-type: patch
|
14
|
+
change-type: patch
|
15
|
+
author: Otavio Jacobi
|
16
|
+
nested: []
|
17
|
+
version: 20.0.4
|
18
|
+
title: ""
|
19
|
+
date: 2025-02-14T00:29:34.580Z
|
1
20
|
- commits:
|
2
21
|
- subject: Compile in as (= ANY($singleListBinding))
|
3
22
|
hash: bdb34d9df39e0d9d00db492cbb1ef6dfc61e8450
|
@@ -1599,6 +1618,7 @@
|
|
1599
1618
|
hash: be8fc31c3754186dd4c43ca8d4c056b0def7ffbd
|
1600
1619
|
body: >
|
1601
1620
|
|
1621
|
+
|
1602
1622
|
As balena-lint
|
1603
1623
|
rejects `new
|
1604
1624
|
Boolean()`, `new
|
@@ -1620,11 +1640,12 @@
|
|
1620
1640
|
hash: 46a369117c9d1222089498a8794c32d14edef85b
|
1621
1641
|
body: >
|
1622
1642
|
|
1623
|
-
|
1624
|
-
npm is
|
1625
|
-
as part
|
1626
|
-
package.json we
|
1627
|
-
drop this
|
1643
|
+
|
1644
|
+
As engine and npm is
|
1645
|
+
now required as part
|
1646
|
+
of package.json we
|
1647
|
+
can drop this
|
1648
|
+
dependency
|
1628
1649
|
footer:
|
1629
1650
|
Change-type: patch
|
1630
1651
|
change-type: patch
|
@@ -1656,6 +1677,7 @@
|
|
1656
1677
|
hash: 1819ee97811e20da93c6e0f227db6a62ada8c00e
|
1657
1678
|
body: >
|
1658
1679
|
|
1680
|
+
|
1659
1681
|
Ensure that the
|
1660
1682
|
input passed in for
|
1661
1683
|
JSON types is either
|
@@ -1755,9 +1777,9 @@
|
|
1755
1777
|
hash: 19c2760ecf76b4097d7d3045c2eefbf74fd7c2da
|
1756
1778
|
body: >
|
1757
1779
|
|
1758
|
-
|
1759
|
-
deprecates
|
1760
|
-
legacy version
|
1780
|
+
|
1781
|
+
This also deprecates
|
1782
|
+
the legacy version
|
1761
1783
|
footer:
|
1762
1784
|
Change-type: minor
|
1763
1785
|
change-type: minor
|
@@ -1783,10 +1805,11 @@
|
|
1783
1805
|
hash: 1c25d9b8d011791a9e98a5929ad48cdd9f3bab6b
|
1784
1806
|
body: >
|
1785
1807
|
|
1786
|
-
|
1787
|
-
be a
|
1788
|
-
|
1789
|
-
that is
|
1808
|
+
|
1809
|
+
It can in fact be a
|
1810
|
+
lot of different
|
1811
|
+
things and that is
|
1812
|
+
now also
|
1790
1813
|
|
1791
1814
|
reflected in the
|
1792
1815
|
typing
|
@@ -1811,11 +1834,11 @@
|
|
1811
1834
|
hash: 6fcb2c4257f9fc50f6b4b1070dec86ace9f71237
|
1812
1835
|
body: >
|
1813
1836
|
|
1814
|
-
|
1815
|
-
|
1816
|
-
they
|
1817
|
-
explicitly
|
1818
|
-
as
|
1837
|
+
|
1838
|
+
We know what type
|
1839
|
+
they return and they
|
1840
|
+
should be explicitly
|
1841
|
+
accepted as
|
1819
1842
|
|
1820
1843
|
those types instead
|
1821
1844
|
where it is valid to
|
@@ -1845,6 +1868,7 @@
|
|
1845
1868
|
hash: 39058b2dacac51da96158d594b2d72e3238d0cbc
|
1846
1869
|
body: >
|
1847
1870
|
|
1871
|
+
|
1848
1872
|
Update
|
1849
1873
|
@balena/sbvr-types
|
1850
1874
|
from 3.4.18 to 3.5.0
|
@@ -1989,10 +2013,11 @@
|
|
1989
2013
|
hash: d589fb6cd92a3a7570e3b2ebea14acbb84807d8a
|
1990
2014
|
body: >
|
1991
2015
|
|
1992
|
-
|
1993
|
-
deprecates
|
1994
|
-
legacy use of
|
1995
|
-
true/false
|
2016
|
+
|
2017
|
+
This also deprecates
|
2018
|
+
the legacy use of
|
2019
|
+
direct true/false
|
2020
|
+
entries
|
1996
2021
|
footer:
|
1997
2022
|
Change-type: minor
|
1998
2023
|
change-type: minor
|
@@ -2898,7 +2923,7 @@
|
|
2898
2923
|
date: 2025-01-29T15:24:40.161Z
|
2899
2924
|
version: 20.0.3
|
2900
2925
|
title: ""
|
2901
|
-
date: 2025-02-11T16:
|
2926
|
+
date: 2025-02-11T16:46:22.425Z
|
2902
2927
|
- commits:
|
2903
2928
|
- subject: "Migrations.md: Update the rollbackable migrations guide"
|
2904
2929
|
hash: 192216f3f07fa8637bc024bb634227d1b09b26d8
|
@@ -5104,6 +5129,7 @@
|
|
5104
5129
|
|
5105
5130
|
|
5106
5131
|
|
5132
|
+
|
5107
5133
|
|
5108
5134
|
|
5109
5135
|
As balena-lint
|
@@ -5153,6 +5179,7 @@
|
|
5153
5179
|
|
5154
5180
|
|
5155
5181
|
|
5182
|
+
|
5156
5183
|
|
5157
5184
|
|
5158
5185
|
As engine and npm is
|
@@ -5217,6 +5244,7 @@
|
|
5217
5244
|
|
5218
5245
|
|
5219
5246
|
|
5247
|
+
|
5220
5248
|
|
5221
5249
|
|
5222
5250
|
Ensure that the
|
@@ -5344,6 +5372,7 @@
|
|
5344
5372
|
|
5345
5373
|
|
5346
5374
|
|
5375
|
+
|
5347
5376
|
|
5348
5377
|
|
5349
5378
|
This also deprecates
|
@@ -5399,6 +5428,7 @@
|
|
5399
5428
|
|
5400
5429
|
|
5401
5430
|
|
5431
|
+
|
5402
5432
|
|
5403
5433
|
|
5404
5434
|
It can in fact be a
|
@@ -5455,6 +5485,7 @@
|
|
5455
5485
|
|
5456
5486
|
|
5457
5487
|
|
5488
|
+
|
5458
5489
|
|
5459
5490
|
|
5460
5491
|
We know what type
|
@@ -5516,6 +5547,7 @@
|
|
5516
5547
|
|
5517
5548
|
|
5518
5549
|
|
5550
|
+
|
5519
5551
|
|
5520
5552
|
|
5521
5553
|
Update
|
@@ -5688,6 +5720,7 @@
|
|
5688
5720
|
|
5689
5721
|
|
5690
5722
|
|
5723
|
+
|
5691
5724
|
|
5692
5725
|
|
5693
5726
|
This also deprecates
|
package/CHANGELOG.md
CHANGED
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file
|
|
4
4
|
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
6
6
|
|
7
|
+
# v20.0.4
|
8
|
+
## (2025-02-14)
|
9
|
+
|
10
|
+
* Fix missing required validation on bindings [Otavio Jacobi]
|
11
|
+
|
7
12
|
# v20.0.3
|
8
13
|
## (2025-02-11)
|
9
14
|
|
package/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
20.0.
|
1
|
+
20.0.4
|
@@ -46,7 +46,7 @@ export const getAndCheckBindValues = async (request, bindings) => {
|
|
46
46
|
const sqlModelTables = sbvrUtils.getAbstractSqlModel(request).tables;
|
47
47
|
return await Promise.all(bindings.map(async (binding) => {
|
48
48
|
let fieldName = '';
|
49
|
-
let
|
49
|
+
let field;
|
50
50
|
let value;
|
51
51
|
if (binding[0] === 'Bind') {
|
52
52
|
const bindValue = binding[1];
|
@@ -66,42 +66,48 @@ export const getAndCheckBindValues = async (request, bindings) => {
|
|
66
66
|
if (maybeField == null) {
|
67
67
|
throw new Error(`Could not find field '${fieldName}'`);
|
68
68
|
}
|
69
|
-
|
69
|
+
field = maybeField;
|
70
70
|
}
|
71
71
|
else if (Number.isInteger(bindValue)) {
|
72
72
|
if (bindValue >= odataBinds.length) {
|
73
73
|
console.error(`Invalid binding number '${bindValue}' for binds: `, odataBinds);
|
74
74
|
throw new Error('Invalid binding');
|
75
75
|
}
|
76
|
+
let dataType;
|
76
77
|
[dataType, value] = odataBinds[bindValue];
|
78
|
+
field = { dataType };
|
77
79
|
}
|
78
80
|
else if (typeof bindValue === 'string') {
|
79
81
|
if (!Object.hasOwn(odataBinds, bindValue)) {
|
80
82
|
console.error(`Invalid binding '${bindValue}' for binds: `, odataBinds);
|
81
83
|
throw new Error('Invalid binding');
|
82
84
|
}
|
85
|
+
let dataType;
|
83
86
|
[dataType, value] = odataBinds[bindValue];
|
87
|
+
field = { dataType };
|
84
88
|
}
|
85
89
|
else {
|
86
90
|
throw new Error(`Unknown binding: ${binding}`);
|
87
91
|
}
|
88
92
|
}
|
89
93
|
else {
|
94
|
+
let dataType;
|
90
95
|
[dataType, value] = binding;
|
96
|
+
field = { dataType };
|
91
97
|
}
|
92
98
|
if (value === undefined) {
|
93
99
|
throw new Error(`Bind value cannot be undefined: ${binding}`);
|
94
100
|
}
|
95
101
|
try {
|
96
|
-
return await validateBindingType(engine, value,
|
102
|
+
return await validateBindingType(engine, value, field);
|
97
103
|
}
|
98
104
|
catch (err) {
|
99
105
|
throw new BadRequestError(`"${fieldName}" ${err.message}`);
|
100
106
|
}
|
101
107
|
}));
|
102
108
|
};
|
103
|
-
const validateBindingType = async (engine, $value,
|
104
|
-
if (
|
109
|
+
const validateBindingType = async (engine, $value, field) => {
|
110
|
+
if (field.dataType === 'List') {
|
105
111
|
if (!Array.isArray($value)) {
|
106
112
|
throw new Error('List value binding must be an array');
|
107
113
|
}
|
@@ -109,12 +115,10 @@ const validateBindingType = async (engine, $value, $dataType) => {
|
|
109
115
|
if (dataType === 'Null') {
|
110
116
|
return null;
|
111
117
|
}
|
112
|
-
return await validateBindingType(engine, value, dataType);
|
118
|
+
return await validateBindingType(engine, value, { dataType });
|
113
119
|
}));
|
114
120
|
}
|
115
|
-
return await AbstractSQLCompiler[engine].dataTypeValidate($value,
|
116
|
-
dataType: $dataType,
|
117
|
-
});
|
121
|
+
return await AbstractSQLCompiler[engine].dataTypeValidate($value, field);
|
118
122
|
};
|
119
123
|
const checkModifiedFields = (ruleReferencedFields, modifiedFields) => {
|
120
124
|
const refs = ruleReferencedFields[modifiedFields.table];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"abstract-sql.js","sourceRoot":"","sources":["../../src/sbvr-api/abstract-sql.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"abstract-sql.js","sourceRoot":"","sources":["../../src/sbvr-api/abstract-sql.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@balena/pinejs",
|
3
|
-
"version": "20.0.
|
3
|
+
"version": "20.0.4-build-fix-regression--5eac96faefde83ce9d1964b407cf6a490df83920-1",
|
4
4
|
"main": "out/server-glue/module.js",
|
5
5
|
"type": "module",
|
6
6
|
"repository": "git@github.com:balena-io/pinejs.git",
|
@@ -148,6 +148,6 @@
|
|
148
148
|
"recursive": true
|
149
149
|
},
|
150
150
|
"versionist": {
|
151
|
-
"publishedAt": "2025-02-
|
151
|
+
"publishedAt": "2025-02-14T00:29:35.598Z"
|
152
152
|
}
|
153
153
|
}
|
@@ -79,7 +79,7 @@ export const getAndCheckBindValues = async (
|
|
79
79
|
return await Promise.all(
|
80
80
|
bindings.map(async (binding) => {
|
81
81
|
let fieldName = '';
|
82
|
-
let dataType: string;
|
82
|
+
let field: { dataType: string; required?: boolean };
|
83
83
|
let value: any;
|
84
84
|
if (binding[0] === 'Bind') {
|
85
85
|
const bindValue = binding[1];
|
@@ -104,7 +104,7 @@ export const getAndCheckBindValues = async (
|
|
104
104
|
if (maybeField == null) {
|
105
105
|
throw new Error(`Could not find field '${fieldName}'`);
|
106
106
|
}
|
107
|
-
|
107
|
+
field = maybeField;
|
108
108
|
} else if (Number.isInteger(bindValue)) {
|
109
109
|
if (bindValue >= odataBinds.length) {
|
110
110
|
console.error(
|
@@ -113,7 +113,9 @@ export const getAndCheckBindValues = async (
|
|
113
113
|
);
|
114
114
|
throw new Error('Invalid binding');
|
115
115
|
}
|
116
|
+
let dataType;
|
116
117
|
[dataType, value] = odataBinds[bindValue];
|
118
|
+
field = { dataType };
|
117
119
|
} else if (typeof bindValue === 'string') {
|
118
120
|
if (!Object.hasOwn(odataBinds, bindValue)) {
|
119
121
|
console.error(
|
@@ -122,12 +124,16 @@ export const getAndCheckBindValues = async (
|
|
122
124
|
);
|
123
125
|
throw new Error('Invalid binding');
|
124
126
|
}
|
127
|
+
let dataType;
|
125
128
|
[dataType, value] = odataBinds[bindValue as BindKey];
|
129
|
+
field = { dataType };
|
126
130
|
} else {
|
127
131
|
throw new Error(`Unknown binding: ${binding}`);
|
128
132
|
}
|
129
133
|
} else {
|
134
|
+
let dataType;
|
130
135
|
[dataType, value] = binding;
|
136
|
+
field = { dataType };
|
131
137
|
}
|
132
138
|
|
133
139
|
if (value === undefined) {
|
@@ -135,7 +141,7 @@ export const getAndCheckBindValues = async (
|
|
135
141
|
}
|
136
142
|
|
137
143
|
try {
|
138
|
-
return await validateBindingType(engine, value,
|
144
|
+
return await validateBindingType(engine, value, field);
|
139
145
|
} catch (err: any) {
|
140
146
|
throw new BadRequestError(`"${fieldName}" ${err.message}`);
|
141
147
|
}
|
@@ -146,9 +152,9 @@ export const getAndCheckBindValues = async (
|
|
146
152
|
const validateBindingType = async (
|
147
153
|
engine: Engines,
|
148
154
|
$value: any,
|
149
|
-
|
155
|
+
field: { dataType: string; required?: boolean },
|
150
156
|
): Promise<any> => {
|
151
|
-
if (
|
157
|
+
if (field.dataType === 'List') {
|
152
158
|
if (!Array.isArray($value)) {
|
153
159
|
throw new Error('List value binding must be an array');
|
154
160
|
}
|
@@ -158,13 +164,11 @@ const validateBindingType = async (
|
|
158
164
|
if (dataType === 'Null') {
|
159
165
|
return null;
|
160
166
|
}
|
161
|
-
return await validateBindingType(engine, value, dataType);
|
167
|
+
return await validateBindingType(engine, value, { dataType });
|
162
168
|
}),
|
163
169
|
);
|
164
170
|
}
|
165
|
-
return await AbstractSQLCompiler[engine].dataTypeValidate($value,
|
166
|
-
dataType: $dataType,
|
167
|
-
});
|
171
|
+
return await AbstractSQLCompiler[engine].dataTypeValidate($value, field);
|
168
172
|
};
|
169
173
|
|
170
174
|
const checkModifiedFields = (
|