@balena/pinejs 20.0.1-build-compile-in-as-eq-any-ea01cb61393cdd9adfe8bea633235cfd81435554-1 → 20.0.1-build-compile-in-as-eq-any-2c4db28aa7723a603269ca5d44c9e94a45320467-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.
@@ -1,6 +1,6 @@
|
|
1
1
|
- commits:
|
2
2
|
- subject: Compile in as (= ANY($singleListBinding))
|
3
|
-
hash:
|
3
|
+
hash: 2c4db28aa7723a603269ca5d44c9e94a45320467
|
4
4
|
body: ""
|
5
5
|
footer:
|
6
6
|
Change-type: patch
|
@@ -9,7 +9,7 @@
|
|
9
9
|
nested: []
|
10
10
|
version: 20.0.1
|
11
11
|
title: ""
|
12
|
-
date: 2025-01-
|
12
|
+
date: 2025-01-21T11:26:59.769Z
|
13
13
|
- commits:
|
14
14
|
- subject: Update node engines entry to clarify we don't actively support 21.x
|
15
15
|
hash: bb75825da9bf23f38f1c0fe2bae301d171d84de6
|
package/CHANGELOG.md
CHANGED
@@ -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 dataType;
|
50
50
|
let value;
|
51
51
|
if (binding[0] === 'Bind') {
|
52
52
|
const bindValue = binding[1];
|
@@ -66,56 +66,52 @@ 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
|
+
dataType = maybeField.dataType;
|
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;
|
77
76
|
[dataType, value] = odataBinds[bindValue];
|
78
|
-
field = { dataType };
|
79
77
|
}
|
80
78
|
else if (typeof bindValue === 'string') {
|
81
79
|
if (!Object.hasOwn(odataBinds, bindValue)) {
|
82
80
|
console.error(`Invalid binding '${bindValue}' for binds: `, odataBinds);
|
83
81
|
throw new Error('Invalid binding');
|
84
82
|
}
|
85
|
-
let dataType;
|
86
83
|
[dataType, value] = odataBinds[bindValue];
|
87
|
-
field = { dataType };
|
88
84
|
}
|
89
85
|
else {
|
90
86
|
throw new Error(`Unknown binding: ${binding}`);
|
91
87
|
}
|
92
88
|
}
|
93
89
|
else {
|
94
|
-
let dataType;
|
95
90
|
[dataType, value] = binding;
|
96
|
-
field = { dataType };
|
97
91
|
}
|
98
92
|
if (value === undefined) {
|
99
93
|
throw new Error(`Bind value cannot be undefined: ${binding}`);
|
100
94
|
}
|
101
95
|
try {
|
102
|
-
return await validateBindingType(engine, value,
|
96
|
+
return await validateBindingType(engine, value, dataType);
|
103
97
|
}
|
104
98
|
catch (err) {
|
105
99
|
throw new BadRequestError(`"${fieldName}" ${err.message}`);
|
106
100
|
}
|
107
101
|
}));
|
108
102
|
};
|
109
|
-
const validateBindingType = async (engine, $value,
|
110
|
-
if (
|
103
|
+
const validateBindingType = async (engine, $value, $dataType) => {
|
104
|
+
if ($dataType === 'List') {
|
111
105
|
if (!Array.isArray($value)) {
|
112
106
|
throw new Error('List value binding must be an array');
|
113
107
|
}
|
114
108
|
return await Promise.all($value.map(async ([dataType, value]) => {
|
115
|
-
return await validateBindingType(engine, value,
|
109
|
+
return await validateBindingType(engine, value, dataType);
|
116
110
|
}));
|
117
111
|
}
|
118
|
-
return await AbstractSQLCompiler[engine].dataTypeValidate($value,
|
112
|
+
return await AbstractSQLCompiler[engine].dataTypeValidate($value, {
|
113
|
+
dataType: $dataType,
|
114
|
+
});
|
119
115
|
};
|
120
116
|
const checkModifiedFields = (ruleReferencedFields, modifiedFields) => {
|
121
117
|
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.1-build-compile-in-as-eq-any-
|
3
|
+
"version": "20.0.1-build-compile-in-as-eq-any-2c4db28aa7723a603269ca5d44c9e94a45320467-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-01-
|
151
|
+
"publishedAt": "2025-01-21T11:27:00.825Z"
|
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
|
82
|
+
let dataType: string;
|
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
|
+
dataType = maybeField.dataType;
|
108
108
|
} else if (Number.isInteger(bindValue)) {
|
109
109
|
if (bindValue >= odataBinds.length) {
|
110
110
|
console.error(
|
@@ -113,9 +113,7 @@ export const getAndCheckBindValues = async (
|
|
113
113
|
);
|
114
114
|
throw new Error('Invalid binding');
|
115
115
|
}
|
116
|
-
let dataType;
|
117
116
|
[dataType, value] = odataBinds[bindValue];
|
118
|
-
field = { dataType };
|
119
117
|
} else if (typeof bindValue === 'string') {
|
120
118
|
if (!Object.hasOwn(odataBinds, bindValue)) {
|
121
119
|
console.error(
|
@@ -124,16 +122,12 @@ export const getAndCheckBindValues = async (
|
|
124
122
|
);
|
125
123
|
throw new Error('Invalid binding');
|
126
124
|
}
|
127
|
-
let dataType;
|
128
125
|
[dataType, value] = odataBinds[bindValue as BindKey];
|
129
|
-
field = { dataType };
|
130
126
|
} else {
|
131
127
|
throw new Error(`Unknown binding: ${binding}`);
|
132
128
|
}
|
133
129
|
} else {
|
134
|
-
let dataType;
|
135
130
|
[dataType, value] = binding;
|
136
|
-
field = { dataType };
|
137
131
|
}
|
138
132
|
|
139
133
|
if (value === undefined) {
|
@@ -141,7 +135,7 @@ export const getAndCheckBindValues = async (
|
|
141
135
|
}
|
142
136
|
|
143
137
|
try {
|
144
|
-
return await validateBindingType(engine, value,
|
138
|
+
return await validateBindingType(engine, value, dataType);
|
145
139
|
} catch (err: any) {
|
146
140
|
throw new BadRequestError(`"${fieldName}" ${err.message}`);
|
147
141
|
}
|
@@ -152,19 +146,21 @@ export const getAndCheckBindValues = async (
|
|
152
146
|
const validateBindingType = async (
|
153
147
|
engine: Engines,
|
154
148
|
$value: any,
|
155
|
-
|
149
|
+
$dataType: string,
|
156
150
|
): Promise<any> => {
|
157
|
-
if (
|
151
|
+
if ($dataType === 'List') {
|
158
152
|
if (!Array.isArray($value)) {
|
159
153
|
throw new Error('List value binding must be an array');
|
160
154
|
}
|
161
155
|
return await Promise.all(
|
162
156
|
$value.map(async ([dataType, value]: [string, any]) => {
|
163
|
-
return await validateBindingType(engine, value,
|
157
|
+
return await validateBindingType(engine, value, dataType);
|
164
158
|
}),
|
165
159
|
);
|
166
160
|
}
|
167
|
-
return await AbstractSQLCompiler[engine].dataTypeValidate($value,
|
161
|
+
return await AbstractSQLCompiler[engine].dataTypeValidate($value, {
|
162
|
+
dataType: $dataType,
|
163
|
+
});
|
168
164
|
};
|
169
165
|
|
170
166
|
const checkModifiedFields = (
|