@aerokit/sdk 12.44.0 → 12.46.0
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/dist/cjs/db/database.js +2 -3
- package/dist/cjs/db/query.js +66 -11
- package/dist/cjs/db/store.js +82 -10
- package/dist/cjs/db/update.js +42 -8
- package/dist/dts/db/query.d.ts +9 -8
- package/dist/dts/db/store.d.ts +6 -5
- package/dist/dts/db/update.d.ts +15 -6
- package/dist/esm/db/database.mjs +2 -3
- package/dist/esm/db/query.mjs +66 -11
- package/dist/esm/db/store.mjs +82 -10
- package/dist/esm/db/update.mjs +42 -8
- package/package.json +1 -1
package/dist/cjs/db/store.js
CHANGED
|
@@ -121,24 +121,96 @@ class Store {
|
|
|
121
121
|
return JSON.parse(result);
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
124
|
-
* Queries all entries for a given
|
|
125
|
-
* @param
|
|
124
|
+
* Queries all entries for a given script with pagination.
|
|
125
|
+
* @param query The query script.
|
|
126
126
|
* @param limit Maximum number of results to return.
|
|
127
127
|
* @param offset Number of results to skip.
|
|
128
128
|
* @returns An array of JavaScript objects.
|
|
129
129
|
*/
|
|
130
|
-
static query(
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
static query(query, parameters, limit = 100, offset = 0) {
|
|
131
|
+
let arr = [];
|
|
132
|
+
if (parameters == null) {
|
|
133
|
+
arr = [];
|
|
134
|
+
} else if (typeof parameters === "string") {
|
|
135
|
+
try {
|
|
136
|
+
const parsed = JSON.parse(parameters);
|
|
137
|
+
if (!Array.isArray(parsed)) {
|
|
138
|
+
throw new Error("Input parameter string must represent a JSON array");
|
|
139
|
+
}
|
|
140
|
+
arr = parsed;
|
|
141
|
+
} catch (e) {
|
|
142
|
+
throw new Error("Invalid JSON parameters: " + e);
|
|
143
|
+
}
|
|
144
|
+
} else if (Array.isArray(parameters)) {
|
|
145
|
+
arr = parameters;
|
|
146
|
+
} else {
|
|
147
|
+
throw new Error("Parameters must be either an array or a JSON string");
|
|
148
|
+
}
|
|
149
|
+
if (arr.length === 0) {
|
|
150
|
+
const result = DataStoreFacade.query(query, null, limit, offset);
|
|
151
|
+
return JSON.parse(result);
|
|
152
|
+
}
|
|
153
|
+
const first = arr[0];
|
|
154
|
+
if (first && typeof first === "object" && "name" in first && "type" in first) {
|
|
155
|
+
const result = DataStoreFacade.queryNamed(query, JSON.stringify(arr), limit, offset);
|
|
156
|
+
return JSON.parse(result);
|
|
157
|
+
}
|
|
158
|
+
if (first && typeof first === "object" && "type" in first && !("name" in first)) {
|
|
159
|
+
const result = DataStoreFacade.query(query, JSON.stringify(arr), limit, offset);
|
|
160
|
+
return JSON.parse(result);
|
|
161
|
+
}
|
|
162
|
+
if (arr.every(
|
|
163
|
+
(v) => typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v instanceof Date
|
|
164
|
+
)) {
|
|
165
|
+
const result = DataStoreFacade.query(query, JSON.stringify(arr), limit, offset);
|
|
166
|
+
return JSON.parse(result);
|
|
167
|
+
}
|
|
168
|
+
throw new Error("Unsupported parameter format: " + JSON.stringify(parameters));
|
|
133
169
|
}
|
|
134
170
|
/**
|
|
135
171
|
* Queries all entries for a given entity name without pagination.
|
|
136
|
-
* @param
|
|
172
|
+
* @param query The entity/table name.
|
|
137
173
|
* @returns An array of all JavaScript objects.
|
|
138
174
|
*/
|
|
139
|
-
static queryNative(
|
|
140
|
-
|
|
141
|
-
|
|
175
|
+
static queryNative(query, parameters, limit = 100, offset = 0) {
|
|
176
|
+
let arr = [];
|
|
177
|
+
if (parameters == null) {
|
|
178
|
+
arr = [];
|
|
179
|
+
} else if (typeof parameters === "string") {
|
|
180
|
+
try {
|
|
181
|
+
const parsed = JSON.parse(parameters);
|
|
182
|
+
if (!Array.isArray(parsed)) {
|
|
183
|
+
throw new Error("Input parameter string must represent a JSON array");
|
|
184
|
+
}
|
|
185
|
+
arr = parsed;
|
|
186
|
+
} catch (e) {
|
|
187
|
+
throw new Error("Invalid JSON parameters: " + e);
|
|
188
|
+
}
|
|
189
|
+
} else if (Array.isArray(parameters)) {
|
|
190
|
+
arr = parameters;
|
|
191
|
+
} else {
|
|
192
|
+
throw new Error("Parameters must be either an array or a JSON string");
|
|
193
|
+
}
|
|
194
|
+
if (arr.length === 0) {
|
|
195
|
+
const result = DataStoreFacade.queryNative(query, null, limit, offset);
|
|
196
|
+
return JSON.parse(result);
|
|
197
|
+
}
|
|
198
|
+
const first = arr[0];
|
|
199
|
+
if (first && typeof first === "object" && "name" in first && "type" in first) {
|
|
200
|
+
const result = DataStoreFacade.queryNativeNamed(query, JSON.stringify(arr), limit, offset);
|
|
201
|
+
return JSON.parse(result);
|
|
202
|
+
}
|
|
203
|
+
if (first && typeof first === "object" && "type" in first && !("name" in first)) {
|
|
204
|
+
const result = DataStoreFacade.queryNative(query, JSON.stringify(arr), limit, offset);
|
|
205
|
+
return JSON.parse(result);
|
|
206
|
+
}
|
|
207
|
+
if (arr.every(
|
|
208
|
+
(v) => typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v instanceof Date
|
|
209
|
+
)) {
|
|
210
|
+
const result = DataStoreFacade.queryNative(query, JSON.stringify(arr), limit, offset);
|
|
211
|
+
return JSON.parse(result);
|
|
212
|
+
}
|
|
213
|
+
throw new Error("Unsupported parameter format: " + JSON.stringify(parameters));
|
|
142
214
|
}
|
|
143
215
|
// --- Metadata Getters ---
|
|
144
216
|
/**
|
|
@@ -169,4 +241,4 @@ class Store {
|
|
|
169
241
|
if (typeof module !== "undefined") {
|
|
170
242
|
module.exports = Store;
|
|
171
243
|
}
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3N0b3JlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBEYXRhU3RvcmVGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZGIuRGF0YVN0b3JlRmFjYWRlXCIpO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGF2YWlsYWJsZSBjb21wYXJpc29uIG9wZXJhdG9ycyBmb3IgcXVlcnkgY29uZGl0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xuXHRFUSA9IFwiPVwiLCAvLyBFcXVhbHNcblx0TkUgPSBcIjw+XCIsIC8vIE5vdCBFcXVhbHNcblx0R1QgPSBcIj5cIiwgLy8gR3JlYXRlciBUaGFuXG5cdExUID0gXCI8XCIsIC8vIExlc3MgVGhhblxuXHRHRSA9IFwiPj1cIiwgLy8gR3JlYXRlciBUaGFuIG9yIEVxdWFsc1xuXHRMRSA9IFwiPD1cIiwgLy8gTGVzcyBUaGFuIG9yIEVxdWFsc1xuXHRMSUtFID0gXCJMSUtFXCIsIC8vIFNRTCBMSUtFIG9wZXJhdG9yXG5cdEJFVFdFRU4gPSBcIkJFVFdFRU5cIiwgLy8gU1FMIEJFVFdFRU4gb3BlcmF0b3IgKHJlcXVpcmVzIHR3byB2YWx1ZXMpXG5cdElOID0gXCJJTlwiIC8vIFNRTCBJTiBvcGVyYXRvciAocmVxdWlyZXMgYSBMaXN0IG9yIEFycmF5IG9mIHZhbHVlcylcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBkaXJlY3Rpb24gZm9yIHNvcnRpbmcuXG4gKi9cbmV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XG5cdEFTQyA9IFwiQVNDXCIsIC8vIEFzY2VuZGluZ1xuXHRERVNDID0gXCJERVNDXCIgLy8gRGVzY2VuZGluZ1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY29uZGl0aW9uIGZvciBmaWx0ZXJpbmcgZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb24ge1xuXHRwcm9wZXJ0eU5hbWU6IHN0cmluZyxcblx0b3BlcmF0b3I6IE9wZXJhdG9yLFxuXHR2YWx1ZTogYW55IHwgYW55W11cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIHNvcnRpbmcgaW5zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU29ydCB7XG5cdHByb3BlcnR5TmFtZTogc3RyaW5nLFxuXHRkaXJlY3Rpb246IERpcmVjdGlvblxufVxuXG4vKipcbiAqIERlZmluZXMgb3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgbGlzdCBhbmQgY291bnQgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcblx0Y29uZGl0aW9ucz86IENvbmRpdGlvbltdLFxuXHRzb3J0cz86IFNvcnRbXSxcblx0bGltaXQ/OiBudW1iZXIsXG5cdG9mZnNldD86IG51bWJlcixcblx0bGFuZ3VhZ2U/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBGYWNhZGUgY2xhc3MgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIHVuZGVybHlpbmcgRGlyaWdpYmxlIERhdGEgU3RvcmUuXG4gKiBBbGwgbWV0aG9kcyBzZXJpYWxpemUvZGVzZXJpYWxpemUgSmF2YVNjcmlwdCBvYmplY3RzIHRvL2Zyb20gSlNPTiBzdHJpbmdzXG4gKiBiZWZvcmUgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgbmF0aXZlIEphdmEgZmFjYWRlLlxuICovXG5leHBvcnQgY2xhc3MgU3RvcmUge1xuXG5cdC8qKlxuXHQgKiBTYXZlcyBhIG5ldyBlbnRyeSB0byB0aGUgZGF0YSBzdG9yZS5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gZW50cnkgVGhlIEphdmFTY3JpcHQgb2JqZWN0IHRvIHNhdmUuXG5cdCAqIEByZXR1cm5zIFRoZSBJRCBvZiB0aGUgbmV3bHkgY3JlYXRlZCBlbnRyeSAoc3RyaW5nIG9yIG51bWJlcikuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHNhdmUobmFtZTogc3RyaW5nLCBlbnRyeTogYW55KTogc3RyaW5nIHwgbnVtYmVyIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLnNhdmUobmFtZSwgSlNPTi5zdHJpbmdpZnkoZW50cnkpKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIEluc2VydHMgYSBuZXcgZW50cnkgb3IgdXBkYXRlcyBhbiBleGlzdGluZyBvbmUgaWYgdGhlIElEIGlzIHByZXNlbnQuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGVudHJ5IFRoZSBKYXZhU2NyaXB0IG9iamVjdCB0byBpbnNlcnQvdXBkYXRlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyB1cHNlcnQobmFtZTogc3RyaW5nLCBlbnRyeTogYW55KTogdm9pZCB7XG5cdFx0RGF0YVN0b3JlRmFjYWRlLnVwc2VydChuYW1lLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogVXBkYXRlcyBhbiBleGlzdGluZyBlbnRyeS5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gZW50cnkgVGhlIEphdmFTY3JpcHQgb2JqZWN0IHdpdGggdGhlIElEIGFuZCB1cGRhdGVkIGRhdGEuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHVwZGF0ZShuYW1lOiBzdHJpbmcsIGVudHJ5OiBhbnkpOiB2b2lkIHtcblx0XHREYXRhU3RvcmVGYWNhZGUudXBkYXRlKG5hbWUsIEpTT04uc3RyaW5naWZ5KGVudHJ5KSk7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBMaXN0cyBlbnRyaWVzIGJhc2VkIG9uIG9wdGlvbmFsIGZpbHRlcmluZywgc29ydGluZywgYW5kIHBhZ2luYXRpb24gb3B0aW9ucy5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCB7QGxpbmsgT3B0aW9uc30gZm9yIHF1ZXJ5IGV4ZWN1dGlvbi5cblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2YgSmF2YVNjcmlwdCBvYmplY3RzLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBsaXN0KG5hbWU6IHN0cmluZywgb3B0aW9ucz86IE9wdGlvbnMpOiBhbnlbXSB7XG5cdFx0Y29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLmxpc3QobmFtZSwgb3B0aW9ucyA/IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpIDogbnVsbCk7XG5cdFx0cmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIENvdW50cyB0aGUgbnVtYmVyIG9mIGVudHJpZXMgYmFzZWQgb24gb3B0aW9uYWwgZmlsdGVyaW5nIG9wdGlvbnMuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIG9wdGlvbnMgT3B0aW9uYWwge0BsaW5rIE9wdGlvbnN9IGZvciBxdWVyeSBleGVjdXRpb24uXG5cdCAqIEByZXR1cm5zIFRoZSBjb3VudCBvZiBtYXRjaGluZyBlbnRyaWVzLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBjb3VudChuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKTogbnVtYmVyIHtcblx0XHRjb25zdCBvcHRpb25zU3RyaW5nID0gb3B0aW9ucyA/IEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpIDogbnVsbDtcblx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUuY291bnQobmFtZSwgb3B0aW9uc1N0cmluZyk7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgYSBzaW5nbGUgZW50cnkgYnkgaXRzIElELlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBpZCBUaGUgSUQgb2YgdGhlIGVudHJ5LlxuXHQgKiBAcmV0dXJucyBUaGUgZW50cnkgb2JqZWN0LCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXQobmFtZTogc3RyaW5nLCBpZDogYW55KTogYW55IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUuZ2V0KG5hbWUsIGlkKTtcblx0XHQvLyBBc3N1bWluZyB0aGUgbmF0aXZlIEFQSSByZXR1cm5zIG51bGwvdW5kZWZpbmVkIG9yIGFuIGVtcHR5IEpTT04gc3RyaW5nIGlmIG5vdCBmb3VuZCwgXG5cdFx0Ly8gb3RoZXJ3aXNlIEpTT04ucGFyc2UgaGFuZGxlcyB0aGUgY29udmVyc2lvbi5cblx0XHRpZiAocmVzdWx0ID09PSBudWxsIHx8IHJlc3VsdCA9PT0gdW5kZWZpbmVkIHx8IHJlc3VsdCA9PT0gXCJcIikge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0cmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0fTtcblxuXHQvKipcblx0ICogRGVsZXRlcyBhbiBlbnRyeSBieSBpdHMgSUQuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGlkIFRoZSBJRCBvZiB0aGUgZW50cnkgdG8gcmVtb3ZlLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyByZW1vdmUobmFtZTogc3RyaW5nLCBpZDogYW55KTogdm9pZCB7XG5cdFx0RGF0YVN0b3JlRmFjYWRlLmRlbGV0ZUVudHJ5KG5hbWUsIGlkKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIEZpbmRzIGVudHJpZXMgbWF0Y2hpbmcgYW4gZXhhbXBsZSBvYmplY3QgKHF1ZXJ5LWJ5LWV4YW1wbGUpLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBleGFtcGxlIEFuIG9iamVjdCBjb250YWluaW5nIHByb3BlcnRpZXMgdG8gbWF0Y2guXG5cdCAqIEBwYXJhbSBsaW1pdCBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybi5cblx0ICogQHBhcmFtIG9mZnNldCBOdW1iZXIgb2YgcmVzdWx0cyB0byBza2lwLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBtYXRjaGluZyBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGZpbmQobmFtZTogc3RyaW5nLCBleGFtcGxlOiBhbnksIGxpbWl0OiBudW1iZXIgPSAxMDAsIG9mZnNldDogbnVtYmVyID0gMCk6IGFueVtdIHtcblx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUuZmluZChuYW1lLCBKU09OLnN0cmluZ2lmeShleGFtcGxlKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0cmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIFF1ZXJpZXMgYWxsIGVudHJpZXMgZm9yIGEgZ2l2ZW4gZW50aXR5IG5hbWUgd2l0aCBwYWdpbmF0aW9uLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBsaW1pdCBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybi5cblx0ICogQHBhcmFtIG9mZnNldCBOdW1iZXIgb2YgcmVzdWx0cyB0byBza2lwLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHF1ZXJ5KG5hbWU6IHN0cmluZywgbGltaXQ6IG51bWJlciA9IDEwMCwgb2Zmc2V0OiBudW1iZXIgPSAwKTogYW55W10ge1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeShuYW1lLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogUXVlcmllcyBhbGwgZW50cmllcyBmb3IgYSBnaXZlbiBlbnRpdHkgbmFtZSB3aXRob3V0IHBhZ2luYXRpb24uXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2YgYWxsIEphdmFTY3JpcHQgb2JqZWN0cy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgcXVlcnlOYXRpdmUobmFtZTogc3RyaW5nKTogYW55W10ge1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeU5hdGl2ZShuYW1lKTtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9XG5cdFxuXHQvLyAtLS0gTWV0YWRhdGEgR2V0dGVycyAtLS1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgbmFtZSBvZiB0aGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RvcmUgbmFtZS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0RW50aXR5TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiBEYXRhU3RvcmVGYWNhZGUuZ2V0RW50aXR5TmFtZShuYW1lKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIEdldHMgdGhlIHVuZGVybHlpbmcgZGF0YWJhc2UgdGFibGUgbmFtZSBmb3IgdGhlIGVudGl0eS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0VGFibGVOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIERhdGFTdG9yZUZhY2FkZS5nZXRUYWJsZU5hbWUobmFtZSk7XG5cdH1cblx0XHRcblx0LyoqXG5cdCAqIEdldHMgdGhlIHByb3BlcnR5IG5hbWUgdXNlZCBhcyB0aGUgSUQgZmllbGQgaW4gdGhlIGVudGl0eSBvYmplY3QuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldElkTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiBEYXRhU3RvcmVGYWNhZGUuZ2V0SWROYW1lKG5hbWUpO1xuXHR9XG5cdFx0XHRcblx0LyoqXG5cdCAqIEdldHMgdGhlIHVuZGVybHlpbmcgZGF0YWJhc2UgY29sdW1uIG5hbWUgdXNlZCBmb3IgdGhlIElEIGZpZWxkLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXRJZENvbHVtbihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiBEYXRhU3RvcmVGYWNhZGUuZ2V0SWRDb2x1bW4obmFtZSk7XG5cdH1cblxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRtb2R1bGUuZXhwb3J0cyA9IFN0b3JlO1xufSJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUFNLGtCQUFrQixLQUFLLEtBQUsseURBQXlEO0FBS3BGLElBQUssV0FBTCxrQkFBS0EsY0FBTDtBQUNOLEVBQUFBLFVBQUEsUUFBSztBQUNMLEVBQUFBLFVBQUEsUUFBSztBQUNMLEVBQUFBLFVBQUEsUUFBSztBQUNMLEVBQUFBLFVBQUEsUUFBSztBQUNMLEVBQUFBLFVBQUEsUUFBSztBQUNMLEVBQUFBLFVBQUEsUUFBSztBQUNMLEVBQUFBLFVBQUEsVUFBTztBQUNQLEVBQUFBLFVBQUEsYUFBVTtBQUNWLEVBQUFBLFVBQUEsUUFBSztBQVRNLFNBQUFBO0FBQUEsR0FBQTtBQWVMLElBQUssWUFBTCxrQkFBS0MsZUFBTDtBQUNOLEVBQUFBLFdBQUEsU0FBTTtBQUNOLEVBQUFBLFdBQUEsVUFBTztBQUZJLFNBQUFBO0FBQUEsR0FBQTtBQXNDTCxNQUFNLE1BQU07QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFsQixPQUFjLEtBQUssTUFBYyxPQUE2QjtBQUM3RCxXQUFPLGdCQUFnQixLQUFLLE1BQU0sS0FBSyxVQUFVLEtBQUssQ0FBQztBQUFBLEVBQ3hEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsT0FBYyxPQUFPLE1BQWMsT0FBa0I7QUFDcEQsb0JBQWdCLE9BQU8sTUFBTSxLQUFLLFVBQVUs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
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3N0b3JlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBEYXRhU3RvcmVGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZGIuRGF0YVN0b3JlRmFjYWRlXCIpO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIGF2YWlsYWJsZSBjb21wYXJpc29uIG9wZXJhdG9ycyBmb3IgcXVlcnkgY29uZGl0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xuXHRFUSA9IFwiPVwiLCAvLyBFcXVhbHNcblx0TkUgPSBcIjw+XCIsIC8vIE5vdCBFcXVhbHNcblx0R1QgPSBcIj5cIiwgLy8gR3JlYXRlciBUaGFuXG5cdExUID0gXCI8XCIsIC8vIExlc3MgVGhhblxuXHRHRSA9IFwiPj1cIiwgLy8gR3JlYXRlciBUaGFuIG9yIEVxdWFsc1xuXHRMRSA9IFwiPD1cIiwgLy8gTGVzcyBUaGFuIG9yIEVxdWFsc1xuXHRMSUtFID0gXCJMSUtFXCIsIC8vIFNRTCBMSUtFIG9wZXJhdG9yXG5cdEJFVFdFRU4gPSBcIkJFVFdFRU5cIiwgLy8gU1FMIEJFVFdFRU4gb3BlcmF0b3IgKHJlcXVpcmVzIHR3byB2YWx1ZXMpXG5cdElOID0gXCJJTlwiIC8vIFNRTCBJTiBvcGVyYXRvciAocmVxdWlyZXMgYSBMaXN0IG9yIEFycmF5IG9mIHZhbHVlcylcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBkaXJlY3Rpb24gZm9yIHNvcnRpbmcuXG4gKi9cbmV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XG5cdEFTQyA9IFwiQVNDXCIsIC8vIEFzY2VuZGluZ1xuXHRERVNDID0gXCJERVNDXCIgLy8gRGVzY2VuZGluZ1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY29uZGl0aW9uIGZvciBmaWx0ZXJpbmcgZGF0YS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb24ge1xuXHRwcm9wZXJ0eU5hbWU6IHN0cmluZyxcblx0b3BlcmF0b3I6IE9wZXJhdG9yLFxuXHR2YWx1ZTogYW55IHwgYW55W11cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2luZ2xlIHNvcnRpbmcgaW5zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU29ydCB7XG5cdHByb3BlcnR5TmFtZTogc3RyaW5nLFxuXHRkaXJlY3Rpb246IERpcmVjdGlvblxufVxuXG4vKipcbiAqIERlZmluZXMgb3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgbGlzdCBhbmQgY291bnQgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcblx0Y29uZGl0aW9ucz86IENvbmRpdGlvbltdLFxuXHRzb3J0cz86IFNvcnRbXSxcblx0bGltaXQ/OiBudW1iZXIsXG5cdG9mZnNldD86IG51bWJlcixcblx0bGFuZ3VhZ2U/OiBzdHJpbmdcbn1cblxuaW1wb3J0IHsgVHlwZWRRdWVyeVBhcmFtZXRlciwgTmFtZWRRdWVyeVBhcmFtZXRlciB9IGZyb20gJy4vcXVlcnknO1xuXG4vKipcbiAqIEZhY2FkZSBjbGFzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgdW5kZXJseWluZyBEaXJpZ2libGUgRGF0YSBTdG9yZS5cbiAqIEFsbCBtZXRob2RzIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZSBKYXZhU2NyaXB0IG9iamVjdHMgdG8vZnJvbSBKU09OIHN0cmluZ3NcbiAqIGJlZm9yZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBuYXRpdmUgSmF2YSBmYWNhZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdG9yZSB7XG5cblx0LyoqXG5cdCAqIFNhdmVzIGEgbmV3IGVudHJ5IHRvIHRoZSBkYXRhIHN0b3JlLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBlbnRyeSBUaGUgSmF2YVNjcmlwdCBvYmplY3QgdG8gc2F2ZS5cblx0ICogQHJldHVybnMgVGhlIElEIG9mIHRoZSBuZXdseSBjcmVhdGVkIGVudHJ5IChzdHJpbmcgb3IgbnVtYmVyKS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgc2F2ZShuYW1lOiBzdHJpbmcsIGVudHJ5OiBhbnkpOiBzdHJpbmcgfCBudW1iZXIge1xuXHRcdHJldHVybiBEYXRhU3RvcmVGYWNhZGUuc2F2ZShuYW1lLCBKU09OLnN0cmluZ2lmeShlbnRyeSkpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogSW5zZXJ0cyBhIG5ldyBlbnRyeSBvciB1cGRhdGVzIGFuIGV4aXN0aW5nIG9uZSBpZiB0aGUgSUQgaXMgcHJlc2VudC5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gZW50cnkgVGhlIEphdmFTY3JpcHQgb2JqZWN0IHRvIGluc2VydC91cGRhdGUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHVwc2VydChuYW1lOiBzdHJpbmcsIGVudHJ5OiBhbnkpOiB2b2lkIHtcblx0XHREYXRhU3RvcmVGYWNhZGUudXBzZXJ0KG5hbWUsIEpTT04uc3RyaW5naWZ5KGVudHJ5KSk7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGVudHJ5LlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBlbnRyeSBUaGUgSmF2YVNjcmlwdCBvYmplY3Qgd2l0aCB0aGUgSUQgYW5kIHVwZGF0ZWQgZGF0YS5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgdXBkYXRlKG5hbWU6IHN0cmluZywgZW50cnk6IGFueSk6IHZvaWQge1xuXHRcdERhdGFTdG9yZUZhY2FkZS51cGRhdGUobmFtZSwgSlNPTi5zdHJpbmdpZnkoZW50cnkpKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIExpc3RzIGVudHJpZXMgYmFzZWQgb24gb3B0aW9uYWwgZmlsdGVyaW5nLCBzb3J0aW5nLCBhbmQgcGFnaW5hdGlvbiBvcHRpb25zLlxuXHQgKiBAcGFyYW0gbmFtZSBUaGUgZW50aXR5L3RhYmxlIG5hbWUuXG5cdCAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbmFsIHtAbGluayBPcHRpb25zfSBmb3IgcXVlcnkgZXhlY3V0aW9uLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBKYXZhU2NyaXB0IG9iamVjdHMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGxpc3QobmFtZTogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucyk6IGFueVtdIHtcblx0XHRjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUubGlzdChuYW1lLCBvcHRpb25zID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgOiBudWxsKTtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogQ291bnRzIHRoZSBudW1iZXIgb2YgZW50cmllcyBiYXNlZCBvbiBvcHRpb25hbCBmaWx0ZXJpbmcgb3B0aW9ucy5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25hbCB7QGxpbmsgT3B0aW9uc30gZm9yIHF1ZXJ5IGV4ZWN1dGlvbi5cblx0ICogQHJldHVybnMgVGhlIGNvdW50IG9mIG1hdGNoaW5nIGVudHJpZXMuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGNvdW50KG5hbWU6IHN0cmluZywgb3B0aW9ucz86IE9wdGlvbnMpOiBudW1iZXIge1xuXHRcdGNvbnN0IG9wdGlvbnNTdHJpbmcgPSBvcHRpb25zID8gSlNPTi5zdHJpbmdpZnkob3B0aW9ucykgOiBudWxsO1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5jb3VudChuYW1lLCBvcHRpb25zU3RyaW5nKTtcblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyBhIHNpbmdsZSBlbnRyeSBieSBpdHMgSUQuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGlkIFRoZSBJRCBvZiB0aGUgZW50cnkuXG5cdCAqIEByZXR1cm5zIFRoZSBlbnRyeSBvYmplY3QsIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmQuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldChuYW1lOiBzdHJpbmcsIGlkOiBhbnkpOiBhbnkgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5nZXQobmFtZSwgaWQpO1xuXHRcdC8vIEFzc3VtaW5nIHRoZSBuYXRpdmUgQVBJIHJldHVybnMgbnVsbC91bmRlZmluZWQgb3IgYW4gZW1wdHkgSlNPTiBzdHJpbmcgaWYgbm90IGZvdW5kLCBcblx0XHQvLyBvdGhlcndpc2UgSlNPTi5wYXJzZSBoYW5kbGVzIHRoZSBjb252ZXJzaW9uLlxuXHRcdGlmIChyZXN1bHQgPT09IG51bGwgfHwgcmVzdWx0ID09PSB1bmRlZmluZWQgfHwgcmVzdWx0ID09PSBcIlwiKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBEZWxldGVzIGFuIGVudHJ5IGJ5IGl0cyBJRC5cblx0ICogQHBhcmFtIG5hbWUgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBlbnRyeSB0byByZW1vdmUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIHJlbW92ZShuYW1lOiBzdHJpbmcsIGlkOiBhbnkpOiB2b2lkIHtcblx0XHREYXRhU3RvcmVGYWNhZGUuZGVsZXRlRW50cnkobmFtZSwgaWQpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogRmluZHMgZW50cmllcyBtYXRjaGluZyBhbiBleGFtcGxlIG9iamVjdCAocXVlcnktYnktZXhhbXBsZSkuXG5cdCAqIEBwYXJhbSBuYW1lIFRoZSBlbnRpdHkvdGFibGUgbmFtZS5cblx0ICogQHBhcmFtIGV4YW1wbGUgQW4gb2JqZWN0IGNvbnRhaW5pbmcgcHJvcGVydGllcyB0byBtYXRjaC5cblx0ICogQHBhcmFtIGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuXHQgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG1hdGNoaW5nIEphdmFTY3JpcHQgb2JqZWN0cy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZmluZChuYW1lOiBzdHJpbmcsIGV4YW1wbGU6IGFueSwgbGltaXQ6IG51bWJlciA9IDEwMCwgb2Zmc2V0OiBudW1iZXIgPSAwKTogYW55W10ge1xuXHRcdGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5maW5kKG5hbWUsIEpTT04uc3RyaW5naWZ5KGV4YW1wbGUpLCBsaW1pdCwgb2Zmc2V0KTtcblx0XHRyZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHR9XG5cdFxuXHQvKipcblx0ICogUXVlcmllcyBhbGwgZW50cmllcyBmb3IgYSBnaXZlbiBzY3JpcHQgd2l0aCBwYWdpbmF0aW9uLlxuXHQgKiBAcGFyYW0gcXVlcnkgVGhlIHF1ZXJ5IHNjcmlwdC5cblx0ICogQHBhcmFtIGxpbWl0IE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuLlxuXHQgKiBAcGFyYW0gb2Zmc2V0IE51bWJlciBvZiByZXN1bHRzIHRvIHNraXAuXG5cdCAqIEByZXR1cm5zIEFuIGFycmF5IG9mIEphdmFTY3JpcHQgb2JqZWN0cy5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgcXVlcnkocXVlcnk6IHN0cmluZywgcGFyYW1ldGVycz86IChzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSB8IFR5cGVkUXVlcnlQYXJhbWV0ZXIgfCBOYW1lZFF1ZXJ5UGFyYW1ldGVyKVtdLCBsaW1pdDogbnVtYmVyID0gMTAwLCBvZmZzZXQ6IG51bWJlciA9IDApOiBhbnlbXSB7XG5cdFx0bGV0IGFycjogYW55W10gPSBbXTtcblx0ICAgIGlmIChwYXJhbWV0ZXJzID09IG51bGwpIHtcblx0ICAgICAgYXJyID0gW107XG5cdCAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXJhbWV0ZXJzID09PSBcInN0cmluZ1wiKSB7XG5cdCAgICAgIHRyeSB7XG5cdCAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShwYXJhbWV0ZXJzKTtcblx0ICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuXHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgcGFyYW1ldGVyIHN0cmluZyBtdXN0IHJlcHJlc2VudCBhIEpTT04gYXJyYXlcIik7XG5cdCAgICAgICAgfVxuXHQgICAgICAgIGFyciA9IHBhcnNlZDtcblx0ICAgICAgfSBjYXRjaCAoZSkge1xuXHQgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgSlNPTiBwYXJhbWV0ZXJzOiBcIiArIGUpO1xuXHQgICAgICB9XG5cdCAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocGFyYW1ldGVycykpIHtcblx0ICAgICAgYXJyID0gcGFyYW1ldGVycztcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcmFtZXRlcnMgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYSBKU09OIHN0cmluZ1wiKTtcblx0ICAgIH1cblxuXHQgICAgaWYgKGFyci5sZW5ndGggPT09IDApIHtcblx0XHQgIGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeShxdWVyeSwgbnVsbCwgbGltaXQsIG9mZnNldCk7XG5cdFx0ICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHQgICAgfVxuXG5cdCAgICBjb25zdCBmaXJzdCA9IGFyclswXTtcblxuXHQgICAgLy8gTmFtZWRRdWVyeVBhcmFtZXRlciAoaGFzIG5hbWUgKyB0eXBlKVxuXHQgICAgaWYgKGZpcnN0ICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJvYmplY3RcIiAmJiBcIm5hbWVcIiBpbiBmaXJzdCAmJiBcInR5cGVcIiBpbiBmaXJzdCkge1xuXHRcdCAgY29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmFtZWQocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdCAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0ICAgIH1cblxuXHQgICAgLy8gVHlwZWRRdWVyeVBhcmFtZXRlciAoaGFzIHR5cGUsIG5vIG5hbWUpXG5cdCAgICBpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwidHlwZVwiIGluIGZpcnN0ICYmICEoXCJuYW1lXCIgaW4gZmlyc3QpKSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnkocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdCAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0ICAgIH1cblxuXHQgICAgLy8gUHJpbWl0aXZlIGFycmF5XG5cdCAgICBpZiAoXG5cdCAgICAgIGFyci5ldmVyeShcblx0ICAgICAgICAodikgPT5cblx0ICAgICAgICAgIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiIHx8XG5cdCAgICAgICAgICB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiB8fFxuXHQgICAgICAgICAgdHlwZW9mIHYgPT09IFwiYm9vbGVhblwiIHx8XG5cdCAgICAgICAgICB2IGluc3RhbmNlb2YgRGF0ZVxuXHQgICAgICApXG5cdCAgICApIHtcblx0XHQgIGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeShxdWVyeSwgSlNPTi5zdHJpbmdpZnkoYXJyKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0ICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHQgICAgfVxuXG5cdCAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBwYXJhbWV0ZXIgZm9ybWF0OiBcIiArIEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMpKTtcblx0fVxuXHRcblx0LyoqXG5cdCAqIFF1ZXJpZXMgYWxsIGVudHJpZXMgZm9yIGEgZ2l2ZW4gZW50aXR5IG5hbWUgd2l0aG91dCBwYWdpbmF0aW9uLlxuXHQgKiBAcGFyYW0gcXVlcnkgVGhlIGVudGl0eS90YWJsZSBuYW1lLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBhbGwgSmF2YVNjcmlwdCBvYmplY3RzLlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBxdWVyeU5hdGl2ZShxdWVyeTogc3RyaW5nLCBwYXJhbWV0ZXJzPzogKHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBEYXRlIHwgVHlwZWRRdWVyeVBhcmFtZXRlciB8IE5hbWVkUXVlcnlQYXJhbWV0ZXIpW10sIGxpbWl0OiBudW1iZXIgPSAxMDAsIG9mZnNldDogbnVtYmVyID0gMCk6IGFueVtdIHtcblx0XHRsZXQgYXJyOiBhbnlbXSA9IFtdO1xuXHRcdGlmIChwYXJhbWV0ZXJzID09IG51bGwpIHtcblx0ICAgICAgYXJyID0gW107XG5cdCAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXJhbWV0ZXJzID09PSBcInN0cmluZ1wiKSB7XG5cdCAgICAgIHRyeSB7XG5cdCAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShwYXJhbWV0ZXJzKTtcblx0ICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuXHQgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW5wdXQgcGFyYW1ldGVyIHN0cmluZyBtdXN0IHJlcHJlc2VudCBhIEpTT04gYXJyYXlcIik7XG5cdCAgICAgICAgfVxuXHQgICAgICAgIGFyciA9IHBhcnNlZDtcblx0ICAgICAgfSBjYXRjaCAoZSkge1xuXHQgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgSlNPTiBwYXJhbWV0ZXJzOiBcIiArIGUpO1xuXHQgICAgICB9XG5cdCAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocGFyYW1ldGVycykpIHtcblx0ICAgICAgYXJyID0gcGFyYW1ldGVycztcblx0ICAgIH0gZWxzZSB7XG5cdCAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhcmFtZXRlcnMgbXVzdCBiZSBlaXRoZXIgYW4gYXJyYXkgb3IgYSBKU09OIHN0cmluZ1wiKTtcblx0ICAgIH1cblxuXHQgICAgaWYgKGFyci5sZW5ndGggPT09IDApIHtcblx0XHQgIGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeU5hdGl2ZShxdWVyeSwgbnVsbCwgbGltaXQsIG9mZnNldCk7XG5cdFx0ICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHQgICAgfVxuXG5cdCAgICBjb25zdCBmaXJzdCA9IGFyclswXTtcblxuXHQgICAgLy8gTmFtZWRRdWVyeVBhcmFtZXRlciAoaGFzIG5hbWUgKyB0eXBlKVxuXHQgICAgaWYgKGZpcnN0ICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJvYmplY3RcIiAmJiBcIm5hbWVcIiBpbiBmaXJzdCAmJiBcInR5cGVcIiBpbiBmaXJzdCkge1xuXHRcdCAgY29uc3QgcmVzdWx0ID0gRGF0YVN0b3JlRmFjYWRlLnF1ZXJ5TmF0aXZlTmFtZWQocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdCAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0ICAgIH1cblxuXHQgICAgLy8gVHlwZWRRdWVyeVBhcmFtZXRlciAoaGFzIHR5cGUsIG5vIG5hbWUpXG5cdCAgICBpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwidHlwZVwiIGluIGZpcnN0ICYmICEoXCJuYW1lXCIgaW4gZmlyc3QpKSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhU3RvcmVGYWNhZGUucXVlcnlOYXRpdmUocXVlcnksIEpTT04uc3RyaW5naWZ5KGFyciksIGxpbWl0LCBvZmZzZXQpO1xuXHRcdCAgcmV0dXJuIEpTT04ucGFyc2UocmVzdWx0KTtcblx0ICAgIH1cblxuXHQgICAgLy8gUHJpbWl0aXZlIGFycmF5XG5cdCAgICBpZiAoXG5cdCAgICAgIGFyci5ldmVyeShcblx0ICAgICAgICAodikgPT5cblx0ICAgICAgICAgIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiIHx8XG5cdCAgICAgICAgICB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiB8fFxuXHQgICAgICAgICAgdHlwZW9mIHYgPT09IFwiYm9vbGVhblwiIHx8XG5cdCAgICAgICAgICB2IGluc3RhbmNlb2YgRGF0ZVxuXHQgICAgICApXG5cdCAgICApIHtcblx0XHQgIGNvbnN0IHJlc3VsdCA9IERhdGFTdG9yZUZhY2FkZS5xdWVyeU5hdGl2ZShxdWVyeSwgSlNPTi5zdHJpbmdpZnkoYXJyKSwgbGltaXQsIG9mZnNldCk7XG5cdFx0ICByZXR1cm4gSlNPTi5wYXJzZShyZXN1bHQpO1xuXHQgICAgfVxuXG5cdCAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBwYXJhbWV0ZXIgZm9ybWF0OiBcIiArIEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMpKTtcblx0fVxuXHRcblx0Ly8gLS0tIE1ldGFkYXRhIEdldHRlcnMgLS0tXG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIHN0b3JlIG5hbWUuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldEVudGl0eU5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldEVudGl0eU5hbWUobmFtZSk7XG5cdH1cblx0XG5cdC8qKlxuXHQgKiBHZXRzIHRoZSB1bmRlcmx5aW5nIGRhdGFiYXNlIHRhYmxlIG5hbWUgZm9yIHRoZSBlbnRpdHkuXG5cdCAqL1xuXHRwdWJsaWMgc3RhdGljIGdldFRhYmxlTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiBEYXRhU3RvcmVGYWNhZGUuZ2V0VGFibGVOYW1lKG5hbWUpO1xuXHR9XG5cdFx0XG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBwcm9wZXJ0eSBuYW1lIHVzZWQgYXMgdGhlIElEIGZpZWxkIGluIHRoZSBlbnRpdHkgb2JqZWN0LlxuXHQgKi9cblx0cHVibGljIHN0YXRpYyBnZXRJZE5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldElkTmFtZShuYW1lKTtcblx0fVxuXHRcdFx0XG5cdC8qKlxuXHQgKiBHZXRzIHRoZSB1bmRlcmx5aW5nIGRhdGFiYXNlIGNvbHVtbiBuYW1lIHVzZWQgZm9yIHRoZSBJRCBmaWVsZC5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZ2V0SWRDb2x1bW4obmFtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gRGF0YVN0b3JlRmFjYWRlLmdldElkQ29sdW1uKG5hbWUpO1xuXHR9XG5cbn1cblxuLy8gQHRzLWlnbm9yZVxuaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSB7XG5cdC8vIEB0cy1pZ25vcmVcblx0bW9kdWxlLmV4cG9ydHMgPSBTdG9yZTtcbn0iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFBTSxrQkFBa0IsS0FBSyxLQUFLLHlEQUF5RDtBQUtwRixJQUFLLFdBQUwsa0JBQUtBLGNBQUw7QUFDTixFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFFBQUs7QUFDTCxFQUFBQSxVQUFBLFVBQU87QUFDUCxFQUFBQSxVQUFBLGFBQVU7QUFDVixFQUFBQSxVQUFBLFFBQUs7QUFUTSxTQUFBQTtBQUFBLEdBQUE7QUFlTCxJQUFLLFlBQUwsa0JBQUtDLGVBQUw7QUFDTixFQUFBQSxXQUFBLFNBQU07QUFDTixFQUFBQSxXQUFBLFVBQU87QUFGSSxT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QUEsSUFDRixXQUFXLE1BQU0sUUFBUSxVQUFVLEdBQUc7QUFDcEMsWUFBTTtBQUFBLElBQ1IsT0FBTztBQUNMLFlBQU0sSUFBSSxNQUFNLHFEQUFxRDtBQUFBLElBQ3ZFO0FBRUEsUUFBSSxJQUFJLFdBQVcsR0FBRztBQUN2QixZQUFNLFNBQVMsZ0JBQWdCLFlBQVksT0FBTyxNQUFNLE9BQU8sTUFBTTtBQUNyRSxhQUFPLEtBQUssTUFBTSxNQUFNO0FBQUEsSUFDdkI7QUFFQSxVQUFNLFFBQVEsSUFBSSxDQUFDO0FBR25CLFFBQUksU0FBUyxPQUFPLFVBQVUsWUFBWSxVQUFVLFNBQVMsVUFBVSxPQUFPO0FBQy9FLFlBQU0sU0FBUyxnQkFBZ0IsaUJBQWlCLE9BQU8sS0FBSyxVQUFVLEdBQUcsR0FBRyxPQUFPLE1BQU07QUFDekYsYUFBTyxLQUFLLE1BQU0sTUFBTTtBQUFBLElBQ3ZCO0FBR0EsUUFBSSxTQUFTLE9BQU8sVUFBVSxZQUFZLFVBQVUsU0FBUyxFQUFFLFVBQVUsUUFBUTtBQUNsRixZQUFNLFNBQVMsZ0JBQWdCLFlBQVksT0FBTyxLQUFLLFVBQVUsR0FBRyxHQUFHLE9BQU8sTUFBTTtBQUNwRixhQUFPLEtBQUssTUFBTSxNQUFNO0FBQUEsSUFDdkI7QUFHQSxRQUNFLElBQUk7QUFBQSxNQUNGLENBQUMsTUFDQyxPQUFPLE1BQU0sWUFDYixPQUFPLE1BQU0sWUFDYixPQUFPLE1BQU0sYUFDYixhQUFhO0FBQUEsSUFDakIsR0FDQTtBQUNILFlBQU0sU0FBUyxnQkFBZ0IsWUFBWSxPQUFPLEtBQUssVUFBVSxHQUFHLEdBQUcsT0FBTyxNQUFNO0FBQ3BGLGFBQU8sS0FBSyxNQUFNLE1BQU07QUFBQSxJQUN2QjtBQUVBLFVBQU0sSUFBSSxNQUFNLG1DQUFtQyxLQUFLLFVBQVUsVUFBVSxDQUFDO0FBQUEsRUFDakY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBT0EsT0FBYyxjQUFjLE1BQXNCO0FBQ2pELFdBQU8sZ0JBQWdCLGNBQWMsSUFBSTtBQUFBLEVBQzFDO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxPQUFjLGFBQWEsTUFBc0I7QUFDaEQsV0FBTyxnQkFBZ0IsYUFBYSxJQUFJO0FBQUEsRUFDekM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUtBLE9BQWMsVUFBVSxNQUFzQjtBQUM3QyxXQUFPLGdCQUFnQixVQUFVLElBQUk7QUFBQSxFQUN0QztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsT0FBYyxZQUFZLE1BQXNCO0FBQy9DLFdBQU8sZ0JBQWdCLFlBQVksSUFBSTtBQUFBLEVBQ3hDO0FBRUQ7QUFHQSxJQUFJLE9BQU8sV0FBVyxhQUFhO0FBRWxDLFNBQU8sVUFBVTtBQUNsQjsiLAogICJuYW1lcyI6IFsiT3BlcmF0b3IiLCAiRGlyZWN0aW9uIl0KfQo=
|
package/dist/cjs/db/update.js
CHANGED
|
@@ -25,19 +25,53 @@ class Update {
|
|
|
25
25
|
/**
|
|
26
26
|
* Executes a parameterized SQL update statement (INSERT, UPDATE, or DELETE).
|
|
27
27
|
*
|
|
28
|
-
* @param sql The SQL
|
|
29
|
-
* @param parameters
|
|
30
|
-
*
|
|
31
|
-
* @param datasourceName Optional name of the data source to use. Defaults to the primary data source.
|
|
28
|
+
* @param sql The SQL query to execute.
|
|
29
|
+
* @param parameters An optional array of values (primitives, TypedQueryParameter or NamedQueryParameter objects) to replace '?' or :paramName placeholders.
|
|
30
|
+
* @param datasourceName The name of the database connection to use (optional).
|
|
32
31
|
* @returns The number of rows affected by the statement.
|
|
33
32
|
*/
|
|
34
33
|
static execute(sql, parameters, datasourceName) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
let arr = [];
|
|
35
|
+
if (parameters == null) {
|
|
36
|
+
arr = [];
|
|
37
|
+
} else if (typeof parameters === "string") {
|
|
38
|
+
try {
|
|
39
|
+
const parsed = JSON.parse(parameters);
|
|
40
|
+
if (!Array.isArray(parsed)) {
|
|
41
|
+
throw new Error("Input parameter string must represent a JSON array");
|
|
42
|
+
}
|
|
43
|
+
arr = parsed;
|
|
44
|
+
} catch (e) {
|
|
45
|
+
throw new Error("Invalid JSON parameters: " + e);
|
|
46
|
+
}
|
|
47
|
+
} else if (Array.isArray(parameters)) {
|
|
48
|
+
arr = parameters;
|
|
49
|
+
} else {
|
|
50
|
+
throw new Error("Parameters must be either an array or a JSON string");
|
|
51
|
+
}
|
|
52
|
+
if (arr.length === 0) {
|
|
53
|
+
const result = DatabaseFacade.update(sql, null, datasourceName);
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
const first = arr[0];
|
|
57
|
+
if (first && typeof first === "object" && "name" in first && "type" in first) {
|
|
58
|
+
const result = DatabaseFacade.updateNamed(sql, JSON.stringify(arr), datasourceName);
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
if (first && typeof first === "object" && "type" in first && !("name" in first)) {
|
|
62
|
+
const result = DatabaseFacade.update(sql, JSON.stringify(arr), datasourceName);
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
if (arr.every(
|
|
66
|
+
(v) => typeof v === "string" || typeof v === "number" || typeof v === "boolean" || v instanceof Date
|
|
67
|
+
)) {
|
|
68
|
+
const result = DatabaseFacade.update(sql, JSON.stringify(arr), datasourceName);
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
throw new Error("Unsupported parameter format: " + JSON.stringify(parameters));
|
|
38
72
|
}
|
|
39
73
|
}
|
|
40
74
|
if (typeof module !== "undefined") {
|
|
41
75
|
module.exports = Update;
|
|
42
76
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RiL3VwZGF0ZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc3QgRGF0YWJhc2VGYWNhZGUgPSBKYXZhLnR5cGUoXCJvcmcuZWNsaXBzZS5kaXJpZ2libGUuY29tcG9uZW50cy5hcGkuZGIuRGF0YWJhc2VGYWNhZGVcIik7XG5cbi8qKlxuICogSW50ZXJmYWNlIHVzZWQgZm9yIGNvbXBsZXggcGFyYW1ldGVyIHR5cGVzIGlmIG5lZWRlZCwgb3RoZXJ3aXNlIHByaW1pdGl2ZSB0eXBlcyBhcmUgdXNlZCBkaXJlY3RseS5cbiAqL1xuZXhwb3J0IHR5cGUgVHlwZWRVcGRhdGVQYXJhbWV0ZXIgPSB7XG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgdmFsdWU6IHVua25vd247XG59O1xuXG4vKipcbiAqIEludGVyZmFjZSBkZWZpbmluZyBhIHBhcmFtZXRlciBmb3IgYSBuYW1lZCB1cGRhdGUgcXVlcnkgKHVzaW5nIHBsYWNlaG9sZGVycyBsaWtlIDpwYXJhbU5hbWUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVkVXBkYXRlUGFyYW1ldGVyIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbHVlOiBhbnk7XG59XG5cblxuLyoqXG4gKiBGYWNhZGUgY2xhc3MgZm9yIGV4ZWN1dGluZyBTUUwgVVBEQVRFLCBJTlNFUlQsIGFuZCBERUxFVEUgc3RhdGVtZW50cy5cbiAqIFBhcmFtZXRlcnMgYXJyYXkgc3VwcG9ydHMgcHJpbWl0aXZlcyBlLmcuIGBbMSwgJ0pvaG4nLCAzNC41Nl1gIG9yIG9iamVjdHMgaW4gZm9ybWF0IGVpdGhlciBgeyd0eXBlJzonW0RBVEFfVFlQRV0nLCAndmFsdWUnOltWQUxVRV19YCBvciBgeyduYW1lJzonW3N0cmluZ10nLCAndHlwZSc6J1tEQVRBX1RZUEVdJywgJ3ZhbHVlJzpbVkFMVUVdfWAgZS5nLiBgW3sndHlwZSc6J0NIQVInLCAndmFsdWUnOidJU0JOMTkyMDIzMjMzMjInfV1gIG9yIGBbeyduYW1lJzogJ29yZGVyX251bWJlcicsICd0eXBlJzonQ0hBUicsICd2YWx1ZSc6J0lTQk4xOTIwMjMyMzMyMid9XWBcbiAqL1xuZXhwb3J0IGNsYXNzIFVwZGF0ZSB7XG5cblx0LyoqXG5cdCAqIEV4ZWN1dGVzIGEgcGFyYW1ldGVyaXplZCBTUUwgdXBkYXRlIHN0YXRlbWVudCAoSU5TRVJULCBVUERBVEUsIG9yIERFTEVURSkuXG5cdCAqXG5cdCAqIEBwYXJhbSBzcWwgVGhlIFNRTCBxdWVyeSB0byBleGVjdXRlLlxuXHQgKiBAcGFyYW0gcGFyYW1ldGVycyBBbiBvcHRpb25hbCBhcnJheSBvZiB2YWx1ZXMgKHByaW1pdGl2ZXMsIFR5cGVkUXVlcnlQYXJhbWV0ZXIgb3IgTmFtZWRRdWVyeVBhcmFtZXRlciBvYmplY3RzKSB0byByZXBsYWNlICc/JyBvciA6cGFyYW1OYW1lIHBsYWNlaG9sZGVycy5cblx0ICogQHBhcmFtIGRhdGFzb3VyY2VOYW1lIFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uIHRvIHVzZSAob3B0aW9uYWwpLlxuXHQgKiBAcmV0dXJucyBUaGUgbnVtYmVyIG9mIHJvd3MgYWZmZWN0ZWQgYnkgdGhlIHN0YXRlbWVudC5cblx0ICovXG5cdHB1YmxpYyBzdGF0aWMgZXhlY3V0ZShzcWw6IHN0cmluZywgcGFyYW1ldGVycz86IChzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSB8IFR5cGVkVXBkYXRlUGFyYW1ldGVyIHwgTmFtZWRVcGRhdGVQYXJhbWV0ZXIpW10sIGRhdGFzb3VyY2VOYW1lPzogc3RyaW5nKTogbnVtYmVyIHtcblx0XHRsZXQgYXJyOiBhbnlbXSA9IFtdO1xuXG5cdCAgICBpZiAocGFyYW1ldGVycyA9PSBudWxsKSB7XG5cdCAgICAgIGFyciA9IFtdO1xuXHQgICAgfSBlbHNlIGlmICh0eXBlb2YgcGFyYW1ldGVycyA9PT0gXCJzdHJpbmdcIikge1xuXHQgICAgICB0cnkge1xuXHQgICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocGFyYW1ldGVycyk7XG5cdCAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHBhcnNlZCkpIHtcblx0ICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIklucHV0IHBhcmFtZXRlciBzdHJpbmcgbXVzdCByZXByZXNlbnQgYSBKU09OIGFycmF5XCIpO1xuXHQgICAgICAgIH1cblx0ICAgICAgICBhcnIgPSBwYXJzZWQ7XG5cdCAgICAgIH0gY2F0Y2ggKGUpIHtcblx0ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIEpTT04gcGFyYW1ldGVyczogXCIgKyBlKTtcblx0ICAgICAgfVxuXHQgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHBhcmFtZXRlcnMpKSB7XG5cdCAgICAgIGFyciA9IHBhcmFtZXRlcnM7XG5cdCAgICB9IGVsc2Uge1xuXHQgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXJhbWV0ZXJzIG11c3QgYmUgZWl0aGVyIGFuIGFycmF5IG9yIGEgSlNPTiBzdHJpbmdcIik7XG5cdCAgICB9XG5cblx0ICAgIGlmIChhcnIubGVuZ3RoID09PSAwKSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhYmFzZUZhY2FkZS51cGRhdGUoc3FsLCBudWxsLCBkYXRhc291cmNlTmFtZSk7XG5cdCAgICAgIHJldHVybiByZXN1bHQ7XG5cdCAgICB9XG5cblx0ICAgIGNvbnN0IGZpcnN0ID0gYXJyWzBdO1xuXG5cdCAgICAvLyBOYW1lZFVwZGF0ZVBhcmFtZXRlciAoaGFzIG5hbWUgKyB0eXBlKVxuXHQgICAgaWYgKGZpcnN0ICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJvYmplY3RcIiAmJiBcIm5hbWVcIiBpbiBmaXJzdCAmJiBcInR5cGVcIiBpbiBmaXJzdCkge1xuXHRcdCAgY29uc3QgcmVzdWx0ID0gRGF0YWJhc2VGYWNhZGUudXBkYXRlTmFtZWQoc3FsLCBKU09OLnN0cmluZ2lmeShhcnIpLCBkYXRhc291cmNlTmFtZSk7XG5cdFx0ICByZXR1cm4gcmVzdWx0O1xuXHQgICAgfVxuXG5cdCAgICAvLyBUeXBlZFVwZGF0ZVBhcmFtZXRlciAoaGFzIHR5cGUsIG5vIG5hbWUpXG5cdCAgICBpZiAoZmlyc3QgJiYgdHlwZW9mIGZpcnN0ID09PSBcIm9iamVjdFwiICYmIFwidHlwZVwiIGluIGZpcnN0ICYmICEoXCJuYW1lXCIgaW4gZmlyc3QpKSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhYmFzZUZhY2FkZS51cGRhdGUoc3FsLCBKU09OLnN0cmluZ2lmeShhcnIpLCBkYXRhc291cmNlTmFtZSk7XG5cdCAgICAgIHJldHVybiByZXN1bHQ7XG5cdCAgICB9XG5cblx0ICAgIC8vIFByaW1pdGl2ZSBhcnJheVxuXHQgICAgaWYgKFxuXHQgICAgICBhcnIuZXZlcnkoXG5cdCAgICAgICAgKHYpID0+XG5cdCAgICAgICAgICB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiB8fFxuXHQgICAgICAgICAgdHlwZW9mIHYgPT09IFwibnVtYmVyXCIgfHxcblx0ICAgICAgICAgIHR5cGVvZiB2ID09PSBcImJvb2xlYW5cIiB8fFxuXHQgICAgICAgICAgdiBpbnN0YW5jZW9mIERhdGVcblx0ICAgICAgKVxuXHQgICAgKSB7XG5cdFx0ICBjb25zdCByZXN1bHQgPSBEYXRhYmFzZUZhY2FkZS51cGRhdGUoc3FsLCBKU09OLnN0cmluZ2lmeShhcnIpLCBkYXRhc291cmNlTmFtZSk7XG5cdFx0ICByZXR1cm4gcmVzdWx0O1xuXHQgICAgfVxuXG5cdCAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBwYXJhbWV0ZXIgZm9ybWF0OiBcIiArIEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMpKTtcblx0fVxufVxuXG4vLyBAdHMtaWdub3JlXG5pZiAodHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcblx0Ly8gQHRzLWlnbm9yZVxuXHRtb2R1bGUuZXhwb3J0cyA9IFVwZGF0ZTtcbn0iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxNQUFNLGlCQUFpQixLQUFLLEtBQUssd0RBQXdEO0FBd0JsRixNQUFNLE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFVbkIsT0FBYyxRQUFRLEtBQWEsWUFBaUcsZ0JBQWlDO0FBQ3BLLFFBQUksTUFBYSxDQUFDO0FBRWYsUUFBSSxjQUFjLE1BQU07QUFDdEIsWUFBTSxDQUFDO0FBQUEsSUFDVCxXQUFXLE9BQU8sZUFBZSxVQUFVO0FBQ3pDLFVBQUk7QUFDRixjQUFNLFNBQVMsS0FBSyxNQUFNLFVBQVU7QUFDcEMsWUFBSSxDQUFDLE1BQU0sUUFBUSxNQUFNLEdBQUc7QUFDMUIsZ0JBQU0sSUFBSSxNQUFNLG9EQUFvRDtBQUFBLFFBQ3RFO0FBQ0EsY0FBTTtBQUFBLE1BQ1IsU0FBUyxHQUFHO0FBQ1YsY0FBTSxJQUFJLE1BQU0sOEJBQThCLENBQUM7QUFBQSxNQUNqRDtBQUFBLElBQ0YsV0FBVyxNQUFNLFFBQVEsVUFBVSxHQUFHO0FBQ3BDLFlBQU07QUFBQSxJQUNSLE9BQU87QUFDTCxZQUFNLElBQUksTUFBTSxxREFBcUQ7QUFBQSxJQUN2RTtBQUVBLFFBQUksSUFBSSxXQUFXLEdBQUc7QUFDdkIsWUFBTSxTQUFTLGVBQWUsT0FBTyxLQUFLLE1BQU0sY0FBYztBQUMzRCxhQUFPO0FBQUEsSUFDVDtBQUVBLFVBQU0sUUFBUSxJQUFJLENBQUM7QUFHbkIsUUFBSSxTQUFTLE9BQU8sVUFBVSxZQUFZLFVBQVUsU0FBUyxVQUFVLE9BQU87QUFDL0UsWUFBTSxTQUFTLGVBQWUsWUFBWSxLQUFLLEtBQUssVUFBVSxHQUFHLEdBQUcsY0FBYztBQUNsRixhQUFPO0FBQUEsSUFDTjtBQUdBLFFBQUksU0FBUyxPQUFPLFVBQVUsWUFBWSxVQUFVLFNBQVMsRUFBRSxVQUFVLFFBQVE7QUFDbEYsWUFBTSxTQUFTLGVBQWUsT0FBTyxLQUFLLEtBQUssVUFBVSxHQUFHLEdBQUcsY0FBYztBQUMxRSxhQUFPO0FBQUEsSUFDVDtBQUdBLFFBQ0UsSUFBSTtBQUFBLE1BQ0YsQ0FBQyxNQUNDLE9BQU8sTUFBTSxZQUNiLE9BQU8sTUFBTSxZQUNiLE9BQU8sTUFBTSxhQUNiLGFBQWE7QUFBQSxJQUNqQixHQUNBO0FBQ0gsWUFBTSxTQUFTLGVBQWUsT0FBTyxLQUFLLEtBQUssVUFBVSxHQUFHLEdBQUcsY0FBYztBQUM3RSxhQUFPO0FBQUEsSUFDTjtBQUVBLFVBQU0sSUFBSSxNQUFNLG1DQUFtQyxLQUFLLFVBQVUsVUFBVSxDQUFDO0FBQUEsRUFDakY7QUFDRDtBQUdBLElBQUksT0FBTyxXQUFXLGFBQWE7QUFFbEMsU0FBTyxVQUFVO0FBQ2xCOyIsCiAgIm5hbWVzIjogW10KfQo=
|
package/dist/dts/db/query.d.ts
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Interface used to wrap complex or specific values for non-named queries.
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
9
|
-
readonly
|
|
10
|
-
|
|
8
|
+
export type TypedQueryParameter = {
|
|
9
|
+
readonly type: string;
|
|
10
|
+
readonly value: unknown;
|
|
11
|
+
};
|
|
11
12
|
/**
|
|
12
13
|
* Interface defining a parameter for a named query (using placeholders like :paramName).
|
|
13
14
|
*/
|
|
@@ -19,7 +20,7 @@ export interface NamedQueryParameter {
|
|
|
19
20
|
/**
|
|
20
21
|
* Interface to specify formatting options for the query result set.
|
|
21
22
|
*/
|
|
22
|
-
export interface
|
|
23
|
+
export interface FormattingParameter {
|
|
23
24
|
readonly dateFormat: string;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
@@ -27,15 +28,15 @@ export interface ResultParameter {
|
|
|
27
28
|
*/
|
|
28
29
|
export declare class Query {
|
|
29
30
|
/**
|
|
30
|
-
* Executes a standard SQL query with positional parameters
|
|
31
|
+
* Executes a standard SQL query with positional parameters. Parameters array supports primitives e.g. `[1, 'John', 34.56]` or objects in format either `{'type':'[DATA_TYPE]', 'value':[VALUE]}` or `{'name':'[string]', 'type':'[DATA_TYPE]', 'value':[VALUE]}` e.g. `[{'type':'CHAR', 'value':'ISBN19202323322'}]` or `[{'name': 'order_number', 'type':'CHAR', 'value':'ISBN19202323322'}]`
|
|
31
32
|
*
|
|
32
33
|
* @param sql The SQL query to execute.
|
|
33
|
-
* @param parameters An optional array of values (primitives or
|
|
34
|
+
* @param parameters An optional array of values (primitives, TypedQueryParameter or NamedQueryParameter objects) to replace '?' or :paramName placeholders.
|
|
34
35
|
* @param datasourceName The name of the database connection to use (optional).
|
|
35
|
-
* @param
|
|
36
|
+
* @param formatting Optional formatting parameters for the result set (e.g., date format).
|
|
36
37
|
* @returns An array of records representing the query results.
|
|
37
38
|
*/
|
|
38
|
-
static execute(sql: string, parameters?: (string | number | boolean | Date |
|
|
39
|
+
static execute(sql: string, parameters?: (string | number | boolean | Date | TypedQueryParameter | NamedQueryParameter)[] | string, datasourceName?: string, formatting?: FormattingParameter): any[];
|
|
39
40
|
/**
|
|
40
41
|
* Executes a SQL query with named parameters (e.g., ":name", ":id").
|
|
41
42
|
*
|
package/dist/dts/db/store.d.ts
CHANGED
|
@@ -44,6 +44,7 @@ export interface Options {
|
|
|
44
44
|
offset?: number;
|
|
45
45
|
language?: string;
|
|
46
46
|
}
|
|
47
|
+
import { TypedQueryParameter, NamedQueryParameter } from './query';
|
|
47
48
|
/**
|
|
48
49
|
* Facade class for interacting with the underlying Dirigible Data Store.
|
|
49
50
|
* All methods serialize/deserialize JavaScript objects to/from JSON strings
|
|
@@ -106,19 +107,19 @@ export declare class Store {
|
|
|
106
107
|
*/
|
|
107
108
|
static find(name: string, example: any, limit?: number, offset?: number): any[];
|
|
108
109
|
/**
|
|
109
|
-
* Queries all entries for a given
|
|
110
|
-
* @param
|
|
110
|
+
* Queries all entries for a given script with pagination.
|
|
111
|
+
* @param query The query script.
|
|
111
112
|
* @param limit Maximum number of results to return.
|
|
112
113
|
* @param offset Number of results to skip.
|
|
113
114
|
* @returns An array of JavaScript objects.
|
|
114
115
|
*/
|
|
115
|
-
static query(
|
|
116
|
+
static query(query: string, parameters?: (string | number | boolean | Date | TypedQueryParameter | NamedQueryParameter)[], limit?: number, offset?: number): any[];
|
|
116
117
|
/**
|
|
117
118
|
* Queries all entries for a given entity name without pagination.
|
|
118
|
-
* @param
|
|
119
|
+
* @param query The entity/table name.
|
|
119
120
|
* @returns An array of all JavaScript objects.
|
|
120
121
|
*/
|
|
121
|
-
static queryNative(
|
|
122
|
+
static queryNative(query: string, parameters?: (string | number | boolean | Date | TypedQueryParameter | NamedQueryParameter)[], limit?: number, offset?: number): any[];
|
|
122
123
|
/**
|
|
123
124
|
* Gets the name of the entity associated with the store name.
|
|
124
125
|
*/
|
package/dist/dts/db/update.d.ts
CHANGED
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Interface used for complex parameter types if needed, otherwise primitive types are used directly.
|
|
3
3
|
*/
|
|
4
|
-
export
|
|
4
|
+
export type TypedUpdateParameter = {
|
|
5
|
+
readonly type: string;
|
|
6
|
+
readonly value: unknown;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Interface defining a parameter for a named update query (using placeholders like :paramName).
|
|
10
|
+
*/
|
|
11
|
+
export interface NamedUpdateParameter {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly type: string;
|
|
5
14
|
readonly value: any;
|
|
6
15
|
}
|
|
7
16
|
/**
|
|
8
17
|
* Facade class for executing SQL UPDATE, INSERT, and DELETE statements.
|
|
18
|
+
* Parameters array supports primitives e.g. `[1, 'John', 34.56]` or objects in format either `{'type':'[DATA_TYPE]', 'value':[VALUE]}` or `{'name':'[string]', 'type':'[DATA_TYPE]', 'value':[VALUE]}` e.g. `[{'type':'CHAR', 'value':'ISBN19202323322'}]` or `[{'name': 'order_number', 'type':'CHAR', 'value':'ISBN19202323322'}]`
|
|
9
19
|
*/
|
|
10
20
|
export declare class Update {
|
|
11
21
|
/**
|
|
12
22
|
* Executes a parameterized SQL update statement (INSERT, UPDATE, or DELETE).
|
|
13
23
|
*
|
|
14
|
-
* @param sql The SQL
|
|
15
|
-
* @param parameters
|
|
16
|
-
*
|
|
17
|
-
* @param datasourceName Optional name of the data source to use. Defaults to the primary data source.
|
|
24
|
+
* @param sql The SQL query to execute.
|
|
25
|
+
* @param parameters An optional array of values (primitives, TypedQueryParameter or NamedQueryParameter objects) to replace '?' or :paramName placeholders.
|
|
26
|
+
* @param datasourceName The name of the database connection to use (optional).
|
|
18
27
|
* @returns The number of rows affected by the statement.
|
|
19
28
|
*/
|
|
20
|
-
static execute(sql: string, parameters?: (string | number | boolean | Date |
|
|
29
|
+
static execute(sql: string, parameters?: (string | number | boolean | Date | TypedUpdateParameter | NamedUpdateParameter)[], datasourceName?: string): number;
|
|
21
30
|
}
|