@velarscript-labs/sqlite 0.2.2 → 0.3.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/dist/index.js CHANGED
@@ -1,3 +1,75 @@
1
+ // velar-standard:velar/text
2
+ var __velarMaxTextCodeUnits = 16 * 1024 * 1024;
3
+ var __velarTextNativeArray = globalThis.Array;
4
+ var __velarTextNativeString = globalThis.String;
5
+ var __velarTextNativeNumber = globalThis.Number;
6
+ var __velarTextNativeMath = globalThis.Math;
7
+ var __velarTextNativeObject = globalThis.Object;
8
+ var __velarTextNativeMap = globalThis.Map;
9
+ var __velarTextNativeTypeError = globalThis.TypeError;
10
+ var __velarTextNativeRangeError = globalThis.RangeError;
11
+ var __velarTextGetOwnPropertyDescriptor = __velarTextNativeObject.getOwnPropertyDescriptor;
12
+ var __velarTextRuntimeGetPrototypeOf = __velarTextGetOwnPropertyDescriptor(__velarTextNativeObject, "getPrototypeOf")?.value;
13
+ var __velarTextReflectApply = __velarTextGetOwnPropertyDescriptor(globalThis.Reflect, "apply")?.value;
14
+ var __velarTextStringPrototype = __velarTextGetOwnPropertyDescriptor(__velarTextNativeString, "prototype")?.value;
15
+ var __velarTextArrayIsArray = __velarTextGetOwnPropertyDescriptor(__velarTextNativeArray, "isArray")?.value;
16
+ var __velarTextNumberIsSafeInteger = __velarTextGetOwnPropertyDescriptor(__velarTextNativeNumber, "isSafeInteger")?.value;
17
+ var __velarTextNumberIsInteger = __velarTextGetOwnPropertyDescriptor(__velarTextNativeNumber, "isInteger")?.value;
18
+ var __velarTextMathFloor = __velarTextGetOwnPropertyDescriptor(__velarTextNativeMath, "floor")?.value;
19
+ var __velarTextMathMax = __velarTextGetOwnPropertyDescriptor(__velarTextNativeMath, "max")?.value;
20
+ var __velarTextMathMin = __velarTextGetOwnPropertyDescriptor(__velarTextNativeMath, "min")?.value;
21
+ var __velarNativeStringIndexOf = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "indexOf")?.value;
22
+ var __velarNativeStringSlice = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "slice")?.value;
23
+ var __velarNativeStringCharCodeAt = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "charCodeAt")?.value;
24
+ var __velarNativeStringTrim = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "trim")?.value;
25
+ var __velarNativeStringUpper = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "toUpperCase")?.value;
26
+ var __velarNativeStringLower = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "toLowerCase")?.value;
27
+ var __velarNativeStringSplit = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "split")?.value;
28
+ var __velarNativeStringReplaceAll = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "replaceAll")?.value;
29
+ var __velarNativeStringRepeat = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "repeat")?.value;
30
+ var __velarTextMapPrototype = typeof __velarTextNativeMap === "function" ? __velarTextGetOwnPropertyDescriptor(__velarTextNativeMap, "prototype")?.value : null;
31
+ var __velarTextMapGet = __velarTextMapPrototype ? __velarTextGetOwnPropertyDescriptor(__velarTextMapPrototype, "get")?.value : null;
32
+ var __velarTextMapSet = __velarTextMapPrototype ? __velarTextGetOwnPropertyDescriptor(__velarTextMapPrototype, "set")?.value : null;
33
+ var __velarTextMapClear = __velarTextMapPrototype ? __velarTextGetOwnPropertyDescriptor(__velarTextMapPrototype, "clear")?.value : null;
34
+ var __velarTextSurrogatePattern = /[\u{10000}-\u{10FFFF}\uD800-\uDFFF]/u;
35
+ var __velarTextRegExpPrototype = typeof __velarTextRuntimeGetPrototypeOf === "function" ? __velarTextRuntimeGetPrototypeOf(__velarTextSurrogatePattern) : null;
36
+ var __velarTextSurrogateExec = __velarTextRegExpPrototype ? __velarTextGetOwnPropertyDescriptor(__velarTextRegExpPrototype, "exec")?.value : null;
37
+ function __velarTextCall(operation, receiver, arguments_) {
38
+ if (typeof operation !== "function" || typeof __velarTextReflectApply !== "function") throw new __velarTextNativeTypeError("The JavaScript text runtime is unavailable");
39
+ return __velarTextReflectApply(operation, receiver, arguments_);
40
+ }
41
+ var __velarTextMeasureCacheUnits = 8 * 1024 * 1024;
42
+ var __velarTextMeasureCache = typeof __velarTextNativeMap === "function" && typeof __velarTextMapGet === "function" && typeof __velarTextMapSet === "function" && typeof __velarTextMapClear === "function" ? new __velarTextNativeMap() : null;
43
+ var __velarUtf8CharCodeAt = Object.getOwnPropertyDescriptor(String.prototype, "charCodeAt")?.value;
44
+ var __velarUtf8ReflectApply = Object.getOwnPropertyDescriptor(Reflect, "apply")?.value;
45
+ var __velarTextGetOwnPropertyNames = __velarTextGetOwnPropertyDescriptor(__velarTextNativeObject, "getOwnPropertyNames")?.value;
46
+ var __velarTextGetOwnPropertySymbols = __velarTextGetOwnPropertyDescriptor(__velarTextNativeObject, "getOwnPropertySymbols")?.value;
47
+ var __velarTextGetPrototypeOf = __velarTextGetOwnPropertyDescriptor(__velarTextNativeObject, "getPrototypeOf")?.value;
48
+ var __velarTextObjectPrototype = __velarTextGetOwnPropertyDescriptor(__velarTextNativeObject, "prototype")?.value;
49
+ var __velarTextObjectCreate = __velarTextGetOwnPropertyDescriptor(__velarTextNativeObject, "create")?.value;
50
+ var __velarTextObjectFreeze = __velarTextGetOwnPropertyDescriptor(__velarTextNativeObject, "freeze")?.value;
51
+ var __velarTextArrayPrototype = __velarTextGetOwnPropertyDescriptor(__velarTextNativeArray, "prototype")?.value;
52
+ var __velarTextArrayJoin = __velarTextGetOwnPropertyDescriptor(__velarTextArrayPrototype, "join")?.value;
53
+ var __velarTextStringTrimStart = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "trimStart")?.value;
54
+ var __velarTextStringTrimEnd = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "trimEnd")?.value;
55
+ var __velarTextStringNormalize = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "normalize")?.value;
56
+ var __velarTextNativeDate = globalThis.Date;
57
+ var __velarTextDateNow = __velarTextGetOwnPropertyDescriptor(__velarTextNativeDate, "now")?.value;
58
+ var nativeRegExpPrototype = __velarTextGetPrototypeOf(/(?:)/u);
59
+ var NativeRegExp = __velarTextGetOwnPropertyDescriptor(nativeRegExpPrototype, "constructor")?.value;
60
+ var nativeRegExpExec = __velarTextGetOwnPropertyDescriptor(nativeRegExpPrototype, "exec")?.value;
61
+ var __velarTextStringCodePointAt = __velarTextGetOwnPropertyDescriptor(__velarTextStringPrototype, "codePointAt")?.value;
62
+ var __velarTextStringFromCodePoint = __velarTextGetOwnPropertyDescriptor(__velarTextNativeString, "fromCodePoint")?.value;
63
+ var __velarTextLatinMarks = new RegExp("(?<=\\p{Script=Latin})\\p{M}+", "gu");
64
+ var __velarTextBaselessMarks = new RegExp("(?<![\\p{L}\\p{N}\\p{M}])\\p{M}+", "gu");
65
+ function fromCodePoint(value) {
66
+ if (!__velarTextCall(__velarTextNumberIsSafeInteger, __velarTextNativeNumber, [value]) || value < 0 || value > 1114111) {
67
+ throw new __velarTextNativeRangeError("fromCodePoint requires a code point from 0 through 1114111");
68
+ }
69
+ if (value >= 55296 && value <= 57343) throw new __velarTextNativeRangeError("fromCodePoint refuses surrogate halves; they are not characters on their own");
70
+ return __velarTextCall(__velarTextStringFromCodePoint, __velarTextNativeString, [value]);
71
+ }
72
+
1
73
  // velar-standard:velar/compiler-runtime-reactive-v1
2
74
  var __velarReactiveStructureKey = null;
3
75
  function __velarReactiveRaw(value) {
@@ -16,6 +88,210 @@ function __velarReactiveCollectionLink() {
16
88
  function __velarReactiveCollectionTrigger() {
17
89
  }
18
90
 
91
+ // velar-standard:velar/compiler-runtime-primitives-v1
92
+ var __velarMaxTextCodeUnits2 = 16 * 1024 * 1024;
93
+ var __velarTextNativeArray2 = globalThis.Array;
94
+ var __velarTextNativeString2 = globalThis.String;
95
+ var __velarTextNativeNumber2 = globalThis.Number;
96
+ var __velarTextNativeMath2 = globalThis.Math;
97
+ var __velarTextNativeObject2 = globalThis.Object;
98
+ var __velarTextNativeMap2 = globalThis.Map;
99
+ var __velarTextNativeTypeError2 = globalThis.TypeError;
100
+ var __velarTextNativeRangeError2 = globalThis.RangeError;
101
+ var __velarTextGetOwnPropertyDescriptor2 = __velarTextNativeObject2.getOwnPropertyDescriptor;
102
+ var __velarTextRuntimeGetPrototypeOf2 = __velarTextGetOwnPropertyDescriptor2(__velarTextNativeObject2, "getPrototypeOf")?.value;
103
+ var __velarTextReflectApply2 = __velarTextGetOwnPropertyDescriptor2(globalThis.Reflect, "apply")?.value;
104
+ var __velarTextStringPrototype2 = __velarTextGetOwnPropertyDescriptor2(__velarTextNativeString2, "prototype")?.value;
105
+ var __velarTextArrayIsArray2 = __velarTextGetOwnPropertyDescriptor2(__velarTextNativeArray2, "isArray")?.value;
106
+ var __velarTextNumberIsSafeInteger2 = __velarTextGetOwnPropertyDescriptor2(__velarTextNativeNumber2, "isSafeInteger")?.value;
107
+ var __velarTextNumberIsInteger2 = __velarTextGetOwnPropertyDescriptor2(__velarTextNativeNumber2, "isInteger")?.value;
108
+ var __velarTextMathFloor2 = __velarTextGetOwnPropertyDescriptor2(__velarTextNativeMath2, "floor")?.value;
109
+ var __velarTextMathMax2 = __velarTextGetOwnPropertyDescriptor2(__velarTextNativeMath2, "max")?.value;
110
+ var __velarTextMathMin2 = __velarTextGetOwnPropertyDescriptor2(__velarTextNativeMath2, "min")?.value;
111
+ var __velarNativeStringIndexOf2 = __velarTextGetOwnPropertyDescriptor2(__velarTextStringPrototype2, "indexOf")?.value;
112
+ var __velarNativeStringSlice2 = __velarTextGetOwnPropertyDescriptor2(__velarTextStringPrototype2, "slice")?.value;
113
+ var __velarNativeStringCharCodeAt2 = __velarTextGetOwnPropertyDescriptor2(__velarTextStringPrototype2, "charCodeAt")?.value;
114
+ var __velarNativeStringTrim2 = __velarTextGetOwnPropertyDescriptor2(__velarTextStringPrototype2, "trim")?.value;
115
+ var __velarNativeStringUpper2 = __velarTextGetOwnPropertyDescriptor2(__velarTextStringPrototype2, "toUpperCase")?.value;
116
+ var __velarNativeStringLower2 = __velarTextGetOwnPropertyDescriptor2(__velarTextStringPrototype2, "toLowerCase")?.value;
117
+ var __velarNativeStringSplit2 = __velarTextGetOwnPropertyDescriptor2(__velarTextStringPrototype2, "split")?.value;
118
+ var __velarNativeStringReplaceAll2 = __velarTextGetOwnPropertyDescriptor2(__velarTextStringPrototype2, "replaceAll")?.value;
119
+ var __velarNativeStringRepeat2 = __velarTextGetOwnPropertyDescriptor2(__velarTextStringPrototype2, "repeat")?.value;
120
+ var __velarTextMapPrototype2 = typeof __velarTextNativeMap2 === "function" ? __velarTextGetOwnPropertyDescriptor2(__velarTextNativeMap2, "prototype")?.value : null;
121
+ var __velarTextMapGet2 = __velarTextMapPrototype2 ? __velarTextGetOwnPropertyDescriptor2(__velarTextMapPrototype2, "get")?.value : null;
122
+ var __velarTextMapSet2 = __velarTextMapPrototype2 ? __velarTextGetOwnPropertyDescriptor2(__velarTextMapPrototype2, "set")?.value : null;
123
+ var __velarTextMapClear2 = __velarTextMapPrototype2 ? __velarTextGetOwnPropertyDescriptor2(__velarTextMapPrototype2, "clear")?.value : null;
124
+ var __velarTextSurrogatePattern2 = /[\u{10000}-\u{10FFFF}\uD800-\uDFFF]/u;
125
+ var __velarTextRegExpPrototype2 = typeof __velarTextRuntimeGetPrototypeOf2 === "function" ? __velarTextRuntimeGetPrototypeOf2(__velarTextSurrogatePattern2) : null;
126
+ var __velarTextSurrogateExec2 = __velarTextRegExpPrototype2 ? __velarTextGetOwnPropertyDescriptor2(__velarTextRegExpPrototype2, "exec")?.value : null;
127
+ function __velarTextCall2(operation, receiver, arguments_) {
128
+ if (typeof operation !== "function" || typeof __velarTextReflectApply2 !== "function") throw new __velarTextNativeTypeError2("The JavaScript text runtime is unavailable");
129
+ return __velarTextReflectApply2(operation, receiver, arguments_);
130
+ }
131
+ function __velarTextValue(value) {
132
+ if (typeof value !== "string") throw new __velarTextNativeTypeError2("String methods require a string receiver");
133
+ if (value.length > __velarMaxTextCodeUnits2) throw new __velarTextNativeRangeError2("Strings cannot exceed 16 MiB");
134
+ return value;
135
+ }
136
+ function __velarTextArgument(value, name) {
137
+ if (typeof value !== "string") throw new __velarTextNativeTypeError2(name + " must be a string");
138
+ if (value.length > __velarMaxTextCodeUnits2) throw new __velarTextNativeRangeError2(name + " cannot exceed 16 MiB");
139
+ return value;
140
+ }
141
+ function __velarTextNextCodePointOffset(value, offset) {
142
+ const first = __velarTextCall2(__velarNativeStringCharCodeAt2, value, [offset]);
143
+ if (first < 55296 || first > 56319 || offset + 1 >= value.length) return offset + 1;
144
+ const second = __velarTextCall2(__velarNativeStringCharCodeAt2, value, [offset + 1]);
145
+ return second >= 56320 && second <= 57343 ? offset + 2 : offset + 1;
146
+ }
147
+ var __velarTextCheckpointStride = 64;
148
+ var __velarTextMeasureMinimumUnits = 64;
149
+ var __velarTextMeasureCacheEntries = 512;
150
+ var __velarTextMeasureCacheUnits2 = 8 * 1024 * 1024;
151
+ var __velarTextMeasureCache2 = typeof __velarTextNativeMap2 === "function" && typeof __velarTextMapGet2 === "function" && typeof __velarTextMapSet2 === "function" && typeof __velarTextMapClear2 === "function" ? new __velarTextNativeMap2() : null;
152
+ var __velarTextMeasureCacheCount = 0;
153
+ var __velarTextMeasureCacheHeld = 0;
154
+ function __velarTextMeasureText(value) {
155
+ if (__velarTextCall2(__velarTextSurrogateExec2, __velarTextSurrogatePattern2, [value]) === null) {
156
+ return { length: value.length, dense: true, checkpoints: null };
157
+ }
158
+ const checkpoints = new __velarTextNativeArray2();
159
+ let length = 0, offset = 0;
160
+ while (offset < value.length) {
161
+ if (length % __velarTextCheckpointStride === 0) checkpoints[length / __velarTextCheckpointStride] = offset;
162
+ offset = __velarTextNextCodePointOffset(value, offset);
163
+ length += 1;
164
+ }
165
+ return { length, dense: length === value.length, checkpoints };
166
+ }
167
+ function __velarTextMeasure(value) {
168
+ if (__velarTextMeasureCache2 === null || value.length < __velarTextMeasureMinimumUnits) return __velarTextMeasureText(value);
169
+ const cached = __velarTextCall2(__velarTextMapGet2, __velarTextMeasureCache2, [value]);
170
+ if (cached !== void 0) return cached;
171
+ const measured = __velarTextMeasureText(value);
172
+ if (__velarTextMeasureCacheCount >= __velarTextMeasureCacheEntries || __velarTextMeasureCacheCount > 0 && __velarTextMeasureCacheHeld + value.length > __velarTextMeasureCacheUnits2) {
173
+ __velarTextCall2(__velarTextMapClear2, __velarTextMeasureCache2, []);
174
+ __velarTextMeasureCacheCount = 0;
175
+ __velarTextMeasureCacheHeld = 0;
176
+ }
177
+ __velarTextCall2(__velarTextMapSet2, __velarTextMeasureCache2, [value, measured]);
178
+ __velarTextMeasureCacheCount += 1;
179
+ __velarTextMeasureCacheHeld += value.length;
180
+ return measured;
181
+ }
182
+ function __velarTextCodePointLength(value) {
183
+ return __velarTextMeasure(value).length;
184
+ }
185
+ function __velarTextIsBoundary(value, offset) {
186
+ if (offset <= 0 || offset >= value.length) return true;
187
+ const lead = __velarTextCall2(__velarNativeStringCharCodeAt2, value, [offset - 1]);
188
+ if (lead < 55296 || lead > 56319) return true;
189
+ const trail = __velarTextCall2(__velarNativeStringCharCodeAt2, value, [offset]);
190
+ return trail < 56320 || trail > 57343;
191
+ }
192
+ function __velarTextNeedsBoundaryCheck(search) {
193
+ const first = __velarTextCall2(__velarNativeStringCharCodeAt2, search, [0]);
194
+ if (first >= 56320 && first <= 57343) return true;
195
+ const last = __velarTextCall2(__velarNativeStringCharCodeAt2, search, [search.length - 1]);
196
+ return last >= 55296 && last <= 56319;
197
+ }
198
+ function __velarTextBoundedIndexOf(value, search, cursor) {
199
+ if (!__velarTextNeedsBoundaryCheck(search)) return __velarTextCall2(__velarNativeStringIndexOf2, value, [search, cursor]);
200
+ while (cursor <= value.length) {
201
+ const found = __velarTextCall2(__velarNativeStringIndexOf2, value, [search, cursor]);
202
+ if (found < 0) return -1;
203
+ if (__velarTextIsBoundary(value, found) && __velarTextIsBoundary(value, found + search.length)) return found;
204
+ cursor = found + 1;
205
+ }
206
+ return -1;
207
+ }
208
+ function __velarTextReplacementOutputUnits(value, search, replacement, all) {
209
+ let matches = 0;
210
+ if (search === "") matches = all ? __velarTextCodePointLength(value) + 1 : 1;
211
+ else {
212
+ let cursor = 0;
213
+ while (true) {
214
+ const index = __velarTextBoundedIndexOf(value, search, cursor);
215
+ if (index < 0) break;
216
+ matches += 1;
217
+ if (!all) break;
218
+ cursor = index + search.length;
219
+ }
220
+ }
221
+ if (replacement.length <= search.length || matches === 0) return value.length;
222
+ const growth = replacement.length - search.length;
223
+ if (matches > __velarTextCall2(__velarTextMathFloor2, __velarTextNativeMath2, [(__velarMaxTextCodeUnits2 - value.length) / growth])) return __velarMaxTextCodeUnits2 + 1;
224
+ return value.length + matches * growth;
225
+ }
226
+ function __velarStringSize(value) {
227
+ return __velarTextCodePointLength(__velarTextValue(value));
228
+ }
229
+ function __velarStringIsBlank(value) {
230
+ return __velarTextCall2(__velarNativeStringTrim2, __velarTextValue(value), []) === "";
231
+ }
232
+ function __velarStringHas(value, text) {
233
+ value = __velarTextValue(value);
234
+ text = __velarTextArgument(text, "String.has text");
235
+ return text === "" || __velarTextBoundedIndexOf(value, text, 0) >= 0;
236
+ }
237
+ function __velarStringReplaceAll(value, from, to) {
238
+ value = __velarTextValue(value);
239
+ from = __velarTextArgument(from, "String.replaceAll from");
240
+ to = __velarTextArgument(to, "String.replaceAll to");
241
+ if (__velarTextReplacementOutputUnits(value, from, to, true) > __velarMaxTextCodeUnits2) throw new __velarTextNativeRangeError2("String.replaceAll output cannot exceed 16 MiB");
242
+ if (from === "") {
243
+ let output2 = to;
244
+ let offset = 0;
245
+ while (offset < value.length) {
246
+ const next = __velarTextNextCodePointOffset(value, offset);
247
+ output2 += __velarTextCall2(__velarNativeStringSlice2, value, [offset, next]) + to;
248
+ offset = next;
249
+ }
250
+ return output2;
251
+ }
252
+ if (!__velarTextNeedsBoundaryCheck(from)) return __velarTextCall2(__velarNativeStringReplaceAll2, value, [from, () => to]);
253
+ let output = "";
254
+ let cursor = 0;
255
+ while (true) {
256
+ const found = __velarTextBoundedIndexOf(value, from, cursor);
257
+ if (found < 0) break;
258
+ output += __velarTextCall2(__velarNativeStringSlice2, value, [cursor, found]) + to;
259
+ cursor = found + from.length;
260
+ }
261
+ return output + __velarTextCall2(__velarNativeStringSlice2, value, [cursor]);
262
+ }
263
+ var __velarNumberNativeMath = globalThis.Math;
264
+ var __velarNumberNativeNumber = globalThis.Number;
265
+ var __velarNumberNativeObject = globalThis.Object;
266
+ var __velarNumberNativeTypeError = globalThis.TypeError;
267
+ var __velarNumberNativeRangeError = globalThis.RangeError;
268
+ var __velarNumberGetOwnPropertyDescriptor = __velarNumberNativeObject.getOwnPropertyDescriptor;
269
+ var __velarNumberReflectApply = __velarNumberGetOwnPropertyDescriptor(globalThis.Reflect, "apply")?.value;
270
+ var __velarNumberPrototype = __velarNumberGetOwnPropertyDescriptor(__velarNumberNativeNumber, "prototype")?.value;
271
+ var __velarNumberMathAbs = __velarNumberGetOwnPropertyDescriptor(__velarNumberNativeMath, "abs")?.value;
272
+ var __velarNumberMathRound = __velarNumberGetOwnPropertyDescriptor(__velarNumberNativeMath, "round")?.value;
273
+ var __velarNumberMathFloor = __velarNumberGetOwnPropertyDescriptor(__velarNumberNativeMath, "floor")?.value;
274
+ var __velarNumberMathCeil = __velarNumberGetOwnPropertyDescriptor(__velarNumberNativeMath, "ceil")?.value;
275
+ var __velarNumberIsSafeInteger = __velarNumberGetOwnPropertyDescriptor(__velarNumberNativeNumber, "isSafeInteger")?.value;
276
+ var __velarNumberNativeIsInteger = __velarNumberGetOwnPropertyDescriptor(__velarNumberNativeNumber, "isInteger")?.value;
277
+ var __velarNumberNativeIsNaN = __velarNumberGetOwnPropertyDescriptor(__velarNumberNativeNumber, "isNaN")?.value;
278
+ var __velarNumberNativeIsFinite = __velarNumberGetOwnPropertyDescriptor(__velarNumberNativeNumber, "isFinite")?.value;
279
+ var __velarNativeNumberToFixed = __velarNumberGetOwnPropertyDescriptor(__velarNumberPrototype, "toFixed")?.value;
280
+ function __velarNumberCall(operation, receiver, arguments_) {
281
+ if (typeof operation !== "function" || typeof __velarNumberReflectApply !== "function") throw new __velarNumberNativeTypeError("The JavaScript Number runtime is unavailable");
282
+ return __velarNumberReflectApply(operation, receiver, arguments_);
283
+ }
284
+ function __velarNumberValue(value) {
285
+ if (typeof value !== "number") throw new __velarNumberNativeTypeError("Number methods require a number receiver");
286
+ return value;
287
+ }
288
+ function __velarNumberIsInteger(value) {
289
+ return __velarNumberCall(__velarNumberNativeIsInteger, __velarNumberNativeNumber, [__velarNumberValue(value)]);
290
+ }
291
+ function __velarNumberIsFinite(value) {
292
+ return __velarNumberCall(__velarNumberNativeIsFinite, __velarNumberNativeNumber, [__velarNumberValue(value)]);
293
+ }
294
+
19
295
  // velar-standard:velar/compiler-runtime-class-fields-v1
20
296
  var __velarClassNativeObject = globalThis.Object;
21
297
  var __velarClassNativeReflect = globalThis.Reflect;
@@ -779,7 +1055,7 @@ function __velarListMap(value, transform) {
779
1055
  }
780
1056
 
781
1057
  // src/src/index.vel
782
- import { DatabaseExecutor } from "@velarscript-labs/database";
1058
+ import { DatabaseExecutor, DatabaseStatement, trustedSql } from "@velarscript-labs/database";
783
1059
 
784
1060
  // velar-embedded:src/index.2ibbmz.embedded-1.js
785
1061
  import { AsyncLocalStorage } from "node:async_hooks";
@@ -818,20 +1094,30 @@ function integer(value, fallback, minimum, maximum, label) {
818
1094
  }
819
1095
  function checkedOptions(value) {
820
1096
  if (value === null || typeof value !== "object" || Array.isArray(value)) throw new TypeError("SQLite options must be a record");
821
- const allowed = /* @__PURE__ */ new Set(["busyTimeoutMilliseconds", "queueCapacity", "maxRows", "maxResultBytes"]);
1097
+ const allowed = /* @__PURE__ */ new Set(["busyTimeoutMilliseconds", "queueCapacity", "maxRows", "maxResultBytes", "statementCacheCapacity", "journalMode", "readOnly"]);
822
1098
  for (const key of Object.keys(value)) if (!allowed.has(key)) throw new TypeError("Unknown SQLite option " + key);
1099
+ const journalModes = /* @__PURE__ */ new Set(["delete", "truncate", "persist", "memory", "wal", "off"]);
1100
+ const journalMode = value.journalMode == null ? null : value.journalMode;
1101
+ if (journalMode !== null && (typeof journalMode !== "string" || !journalModes.has(journalMode))) throw new TypeError("SQLite journalMode must name a supported mode");
1102
+ if (value.readOnly != null && typeof value.readOnly !== "boolean") throw new TypeError("SQLite readOnly must be bool");
1103
+ if (value.readOnly === true && journalMode !== null) throw new TypeError("SQLite readOnly connections cannot change journalMode");
823
1104
  return {
824
1105
  busyTimeoutMilliseconds: integer(value.busyTimeoutMilliseconds, 2e3, 1, 6e4, "SQLite busy timeout"),
825
1106
  queueCapacity: integer(value.queueCapacity, 64, 1, 1024, "SQLite queue capacity"),
826
1107
  maxRows: integer(value.maxRows, 1e4, 1, 1e6, "SQLite row limit"),
827
- maxResultBytes: integer(value.maxResultBytes, 64 * 1024 * 1024, 1, 128 * 1024 * 1024, "SQLite result byte limit")
1108
+ maxResultBytes: integer(value.maxResultBytes, 64 * 1024 * 1024, 1, 128 * 1024 * 1024, "SQLite result byte limit"),
1109
+ statementCacheCapacity: integer(value.statementCacheCapacity, 128, 1, 1024, "SQLite statement cache capacity"),
1110
+ journalMode,
1111
+ readOnly: value.readOnly === true
828
1112
  };
829
1113
  }
830
1114
  function workerMain() {
831
1115
  const { Buffer } = (0, globalThis.require)("node:buffer");
832
1116
  const { parentPort, workerData } = (0, globalThis.require)("node:worker_threads");
833
- const { DatabaseSync } = (0, globalThis.require)("node:sqlite");
1117
+ const { DatabaseSync, constants } = (0, globalThis.require)("node:sqlite");
1118
+ const { parseStmt } = (0, globalThis.require)("sqlite3-parser");
834
1119
  let database = null;
1120
+ let statements = null;
835
1121
  let closed = false;
836
1122
  function failure(message, code, operation, retryable = false) {
837
1123
  const error = new Error(message);
@@ -852,12 +1138,6 @@ function workerMain() {
852
1138
  retryable: error && error.retryable === true || upper.includes("BUSY") || upper.includes("LOCKED")
853
1139
  };
854
1140
  }
855
- function sqlText(value, operation) {
856
- if (typeof value !== "string" || value.length === 0 || value.length > 1024 * 1024 || value.includes("\0")) {
857
- throw failure("SQLite SQL must be non-empty text no longer than 1 MiB", "SQLITE_INPUT", operation);
858
- }
859
- return value;
860
- }
861
1141
  function parameter(value, budget) {
862
1142
  if (value === null) return null;
863
1143
  if (typeof value === "boolean") return value ? 1 : 0;
@@ -884,6 +1164,28 @@ function workerMain() {
884
1164
  if (budget.value > workerData.maxResultBytes) throw failure("SQLite parameters exceed the connection byte limit", "SQLITE_INPUT", "params");
885
1165
  return output;
886
1166
  }
1167
+ function statementParts(rawFragments, rawParameters, operation) {
1168
+ if (!Array.isArray(rawFragments) || rawFragments.length !== rawParameters.length + 1 || rawFragments.length > 1e3) {
1169
+ throw failure("SQLite statements require exactly one more SQL fragment than bound parameters", "SQLITE_INPUT", operation);
1170
+ }
1171
+ let sourceBytes = 0;
1172
+ const fragments = rawFragments.map((fragment) => {
1173
+ if (typeof fragment !== "string" || fragment.includes("\0") || fragment.includes("?")) {
1174
+ throw failure("SQLite SQL fragments must be text without NUL or raw parameter placeholders", "SQLITE_INPUT", operation);
1175
+ }
1176
+ sourceBytes += Buffer.byteLength(fragment, "utf8");
1177
+ return fragment;
1178
+ });
1179
+ if (sourceBytes === 0 || sourceBytes > 1024 * 1024) throw failure("SQLite SQL must be non-empty text no longer than 1 MiB", "SQLITE_INPUT", operation);
1180
+ const bound = parameters(rawParameters);
1181
+ const source = fragments.join("?");
1182
+ const parsed = parseStmt(source);
1183
+ if (parsed.status !== "ok") {
1184
+ const message = parsed.errors.length === 0 ? "invalid statement" : parsed.errors[0].message;
1185
+ throw failure("SQLite requires exactly one valid statement: " + message, "SQLITE_INPUT", operation);
1186
+ }
1187
+ return { fragments, bound };
1188
+ }
887
1189
  function count(value, label) {
888
1190
  const number = typeof value === "bigint" ? Number(value) : value;
889
1191
  if (!Number.isSafeInteger(number) || number < 0) throw failure(label + " is outside VelarScript's safe integer range", "SQLITE_INTEGER_RANGE", "result");
@@ -922,27 +1224,22 @@ function workerMain() {
922
1224
  }
923
1225
  return output;
924
1226
  }
925
- function statement(sql, operation) {
926
- const prepared = database.prepare(sqlText(sql, operation));
927
- if (typeof prepared.setReadBigInts === "function") prepared.setReadBigInts(true);
928
- return prepared;
929
- }
930
1227
  function execute(message) {
931
- const prepared = statement(message.sql, "execute");
932
- const result = prepared.run(...parameters(message.params));
1228
+ const statement = statementParts(message.fragments, message.params, "execute");
1229
+ const result = statements.run(statement.fragments, ...statement.bound);
933
1230
  return count(result.changes, "SQLite affected row count");
934
1231
  }
935
1232
  function one(message) {
936
- const prepared = statement(message.sql, "one");
937
- const row = prepared.get(...parameters(message.params));
1233
+ const statement = statementParts(message.fragments, message.params, "one");
1234
+ const row = statements.get(statement.fragments, ...statement.bound);
938
1235
  if (row === void 0) return null;
939
1236
  return resultRow(row, { value: 0 });
940
1237
  }
941
1238
  function all(message) {
942
- const prepared = statement(message.sql, "all");
1239
+ const statement = statementParts(message.fragments, message.params, "all");
943
1240
  const rows = [];
944
1241
  const budget = { value: 0 };
945
- for (const row of prepared.iterate(...parameters(message.params))) {
1242
+ for (const row of statements.iterate(statement.fragments, ...statement.bound)) {
946
1243
  if (rows.length >= workerData.maxRows) throw failure("SQLite result exceeds the connection row limit", "SQLITE_ROW_LIMIT", "all");
947
1244
  rows.push(resultRow(row, budget));
948
1245
  }
@@ -979,8 +1276,39 @@ function workerMain() {
979
1276
  throw failure("Unknown SQLite operation", "SQLITE_PROTOCOL", String(message.operation));
980
1277
  }
981
1278
  try {
982
- database = new DatabaseSync(workerData.path, { timeout: workerData.busyTimeoutMilliseconds });
983
- database.exec("PRAGMA foreign_keys = ON");
1279
+ database = new DatabaseSync(workerData.path, {
1280
+ timeout: workerData.busyTimeoutMilliseconds,
1281
+ readOnly: workerData.readOnly,
1282
+ enableForeignKeyConstraints: true,
1283
+ enableDoubleQuotedStringLiterals: false,
1284
+ allowExtension: false,
1285
+ readBigInts: true,
1286
+ allowBareNamedParameters: false,
1287
+ allowUnknownNamedParameters: false,
1288
+ defensive: true,
1289
+ limits: {
1290
+ length: workerData.maxResultBytes,
1291
+ sqlLength: 1024 * 1024,
1292
+ column: 2e3,
1293
+ exprDepth: 1e3,
1294
+ compoundSelect: 500,
1295
+ vdbeOp: 25e4,
1296
+ functionArg: 1e3,
1297
+ attach: 0,
1298
+ likePatternLength: 5e4,
1299
+ variableNumber: 999,
1300
+ triggerDepth: 100
1301
+ }
1302
+ });
1303
+ database.enableDefensive(true);
1304
+ database.enableLoadExtension(false);
1305
+ database.setAuthorizer((actionCode, arg1, arg2) => {
1306
+ if (actionCode === constants.SQLITE_ATTACH || actionCode === constants.SQLITE_DETACH) return constants.SQLITE_DENY;
1307
+ if (actionCode === constants.SQLITE_FUNCTION && typeof arg2 === "string" && arg2.toLowerCase() === "load_extension") return constants.SQLITE_DENY;
1308
+ return constants.SQLITE_OK;
1309
+ });
1310
+ statements = database.createTagStore(workerData.statementCacheCapacity);
1311
+ if (workerData.journalMode !== null) database.exec("PRAGMA journal_mode = " + workerData.journalMode.toUpperCase());
984
1312
  parentPort.postMessage({ kind: "ready" });
985
1313
  } catch (error) {
986
1314
  parentPort.postMessage({ kind: "ready", error: errorData(error, "open") });
@@ -1009,13 +1337,13 @@ function failPending(state, error) {
1009
1337
  for (const pending of state.pending.values()) pending.reject(error);
1010
1338
  state.pending.clear();
1011
1339
  }
1012
- function request(state, operation, sql = "", params = []) {
1340
+ function request(state, operation, fragments = [""], params = []) {
1013
1341
  if (state.closed) return Promise.reject(new NativeSqliteError("SQLite connection is closed", "SQLITE_CLOSED", operation));
1014
1342
  const id = state.nextId++;
1015
1343
  return new Promise((resolve, reject) => {
1016
1344
  state.pending.set(id, { resolve, reject });
1017
1345
  try {
1018
- state.worker.postMessage({ id, operation, sql, params });
1346
+ state.worker.postMessage({ id, operation, fragments, params });
1019
1347
  } catch (error) {
1020
1348
  state.pending.delete(id);
1021
1349
  reject(error);
@@ -1032,11 +1360,11 @@ function transactionStateOf(transaction) {
1032
1360
  if (!state || !state.active) throw new NativeSqliteConcurrencyError("SQLite transaction is no longer active");
1033
1361
  return state;
1034
1362
  }
1035
- function transactionRequest(transaction, operation, sql = "", params = []) {
1363
+ function transactionRequest(transaction, operation, fragments = [""], params = []) {
1036
1364
  const state = transactionStateOf(transaction);
1037
1365
  if (state.busy) return Promise.reject(new NativeSqliteConcurrencyError("SQLite transaction operations must be awaited one at a time"));
1038
1366
  state.busy = true;
1039
- return request(state.connection, operation, sql, params).finally(() => {
1367
+ return request(state.connection, operation, fragments, params).finally(() => {
1040
1368
  state.busy = false;
1041
1369
  });
1042
1370
  }
@@ -1056,14 +1384,14 @@ var NativeSqliteTransaction = class {
1056
1384
  if (token !== TOKEN) throw new TypeError("SQLite transactions are created by connection.transaction");
1057
1385
  transactionStates.set(this, state);
1058
1386
  }
1059
- execute(sql, params = []) {
1060
- return transactionRequest(this, "execute", sql, params);
1387
+ execute(fragments, params = []) {
1388
+ return transactionRequest(this, "execute", fragments, params);
1061
1389
  }
1062
- one(sql, params = []) {
1063
- return transactionRequest(this, "one", sql, params);
1390
+ one(fragments, params = []) {
1391
+ return transactionRequest(this, "one", fragments, params);
1064
1392
  }
1065
- all(sql, params = []) {
1066
- return transactionRequest(this, "all", sql, params);
1393
+ all(fragments, params = []) {
1394
+ return transactionRequest(this, "all", fragments, params);
1067
1395
  }
1068
1396
  };
1069
1397
  var NativeSqliteConnection = class {
@@ -1071,17 +1399,17 @@ var NativeSqliteConnection = class {
1071
1399
  if (token !== TOKEN) throw new TypeError("Use openSqlite to create a SQLite connection");
1072
1400
  connectionStates.set(this, state);
1073
1401
  }
1074
- execute(sql, params = []) {
1402
+ execute(fragments, params = []) {
1075
1403
  const state = stateOf(this);
1076
- return enqueue(state, () => request(state, "execute", sql, params));
1404
+ return enqueue(state, () => request(state, "execute", fragments, params));
1077
1405
  }
1078
- one(sql, params = []) {
1406
+ one(fragments, params = []) {
1079
1407
  const state = stateOf(this);
1080
- return enqueue(state, () => request(state, "one", sql, params));
1408
+ return enqueue(state, () => request(state, "one", fragments, params));
1081
1409
  }
1082
- all(sql, params = []) {
1410
+ all(fragments, params = []) {
1083
1411
  const state = stateOf(this);
1084
- return enqueue(state, () => request(state, "all", sql, params));
1412
+ return enqueue(state, () => request(state, "all", fragments, params));
1085
1413
  }
1086
1414
  transaction(operation) {
1087
1415
  if (typeof operation !== "function") return Promise.reject(new TypeError("SQLite transaction requires an async operation"));
@@ -1186,6 +1514,29 @@ async function openNativeSqlite(path, options = {}) {
1186
1514
  }
1187
1515
 
1188
1516
  // src/src/index.vel
1517
+ var SqliteJournalMode = __velarRegisterRuntimeType(__velarValidationFreeze({
1518
+ delete: "delete",
1519
+ truncate: "truncate",
1520
+ persist: "persist",
1521
+ memory: "memory",
1522
+ wal: "wal",
1523
+ off: "off",
1524
+ is(value) {
1525
+ return value === "delete" || value === "truncate" || value === "persist" || value === "memory" || value === "wal" || value === "off";
1526
+ },
1527
+ parse(value) {
1528
+ if (!SqliteJournalMode.is(value)) {
1529
+ throw new __VelarValidationError("Value does not match SqliteJournalMode", { path: "SqliteJournalMode" });
1530
+ }
1531
+ return value;
1532
+ },
1533
+ copy(value) {
1534
+ return value;
1535
+ },
1536
+ values() {
1537
+ return ["delete", "truncate", "persist", "memory", "wal", "off"];
1538
+ }
1539
+ }));
1189
1540
  function __velarTypeExplain_SqliteOptions(value) {
1190
1541
  if (value === null || typeof value !== "object" || __velarValidationIsArray(value) || !__velarValidationIsPlainObject(value)) {
1191
1542
  return { path: "SqliteOptions", field: null, reason: "the value is not a record" };
@@ -1214,6 +1565,24 @@ function __velarTypeExplain_SqliteOptions(value) {
1214
1565
  return { path: "SqliteOptions.maxResultBytes", field: "maxResultBytes", reason: "field 'maxResultBytes' does not match number?" };
1215
1566
  }
1216
1567
  }
1568
+ {
1569
+ const __velarExplainField = __velarValidationOwnDescriptor(value, "statementCacheCapacity");
1570
+ if (__velarExplainField !== void 0 && !(__velarExplainField.enumerable && "value" in __velarExplainField && (__velarExplainField.value == null || typeof __velarExplainField.value === "number"))) {
1571
+ return { path: "SqliteOptions.statementCacheCapacity", field: "statementCacheCapacity", reason: "field 'statementCacheCapacity' does not match number?" };
1572
+ }
1573
+ }
1574
+ {
1575
+ const __velarExplainField = __velarValidationOwnDescriptor(value, "journalMode");
1576
+ if (__velarExplainField !== void 0 && !(__velarExplainField.enumerable && "value" in __velarExplainField && (__velarExplainField.value == null || SqliteJournalMode.is(__velarExplainField.value)))) {
1577
+ return { path: "SqliteOptions.journalMode", field: "journalMode", reason: "field 'journalMode' does not match SqliteJournalMode?" };
1578
+ }
1579
+ }
1580
+ {
1581
+ const __velarExplainField = __velarValidationOwnDescriptor(value, "readOnly");
1582
+ if (__velarExplainField !== void 0 && !(__velarExplainField.enumerable && "value" in __velarExplainField && (__velarExplainField.value == null || typeof __velarExplainField.value === "boolean"))) {
1583
+ return { path: "SqliteOptions.readOnly", field: "readOnly", reason: "field 'readOnly' does not match bool?" };
1584
+ }
1585
+ }
1217
1586
  return { path: "SqliteOptions", field: null, reason: null };
1218
1587
  }
1219
1588
  function __velarTypeCheck_SqliteOptions(value) {
@@ -1222,7 +1591,10 @@ function __velarTypeCheck_SqliteOptions(value) {
1222
1591
  const __velarField1 = __velarValidationOwnDescriptor(value, "queueCapacity");
1223
1592
  const __velarField2 = __velarValidationOwnDescriptor(value, "maxRows");
1224
1593
  const __velarField3 = __velarValidationOwnDescriptor(value, "maxResultBytes");
1225
- return !!((__velarField0 === void 0 || __velarField0?.enumerable && "value" in __velarField0 && (__velarField0.value == null || typeof __velarField0.value === "number")) && (__velarField1 === void 0 || __velarField1?.enumerable && "value" in __velarField1 && (__velarField1.value == null || typeof __velarField1.value === "number")) && (__velarField2 === void 0 || __velarField2?.enumerable && "value" in __velarField2 && (__velarField2.value == null || typeof __velarField2.value === "number")) && (__velarField3 === void 0 || __velarField3?.enumerable && "value" in __velarField3 && (__velarField3.value == null || typeof __velarField3.value === "number")));
1594
+ const __velarField4 = __velarValidationOwnDescriptor(value, "statementCacheCapacity");
1595
+ const __velarField5 = __velarValidationOwnDescriptor(value, "journalMode");
1596
+ const __velarField6 = __velarValidationOwnDescriptor(value, "readOnly");
1597
+ return !!((__velarField0 === void 0 || __velarField0?.enumerable && "value" in __velarField0 && (__velarField0.value == null || typeof __velarField0.value === "number")) && (__velarField1 === void 0 || __velarField1?.enumerable && "value" in __velarField1 && (__velarField1.value == null || typeof __velarField1.value === "number")) && (__velarField2 === void 0 || __velarField2?.enumerable && "value" in __velarField2 && (__velarField2.value == null || typeof __velarField2.value === "number")) && (__velarField3 === void 0 || __velarField3?.enumerable && "value" in __velarField3 && (__velarField3.value == null || typeof __velarField3.value === "number")) && (__velarField4 === void 0 || __velarField4?.enumerable && "value" in __velarField4 && (__velarField4.value == null || typeof __velarField4.value === "number")) && (__velarField5 === void 0 || __velarField5?.enumerable && "value" in __velarField5 && (__velarField5.value == null || SqliteJournalMode.is(__velarField5.value))) && (__velarField6 === void 0 || __velarField6?.enumerable && "value" in __velarField6 && (__velarField6.value == null || typeof __velarField6.value === "boolean")));
1226
1598
  }
1227
1599
  function __velarTypeCopy_SqliteOptions(value, __state, __velarCopyPlan) {
1228
1600
  const __velarCopySeen = __state.copy.seen(__state, value, __velarCopyPlan);
@@ -1244,6 +1616,18 @@ function __velarTypeCopy_SqliteOptions(value, __state, __velarCopyPlan) {
1244
1616
  const __velarCopyField = __velarValidationOwnDescriptor(value, "maxResultBytes");
1245
1617
  if (__velarCopyField !== void 0) __state.copy.field(__velarCopy, "maxResultBytes", __velarCopyField.value);
1246
1618
  }
1619
+ {
1620
+ const __velarCopyField = __velarValidationOwnDescriptor(value, "statementCacheCapacity");
1621
+ if (__velarCopyField !== void 0) __state.copy.field(__velarCopy, "statementCacheCapacity", __velarCopyField.value);
1622
+ }
1623
+ {
1624
+ const __velarCopyField = __velarValidationOwnDescriptor(value, "journalMode");
1625
+ if (__velarCopyField !== void 0) __state.copy.field(__velarCopy, "journalMode", __velarCopyField.value);
1626
+ }
1627
+ {
1628
+ const __velarCopyField = __velarValidationOwnDescriptor(value, "readOnly");
1629
+ if (__velarCopyField !== void 0) __state.copy.field(__velarCopy, "readOnly", __velarCopyField.value);
1630
+ }
1247
1631
  return __velarCopy;
1248
1632
  }
1249
1633
  var SqliteOptions = __velarRegisterRuntimeType(__velarValidationFreeze({
@@ -1287,67 +1671,98 @@ var SqliteConcurrencyError = class extends SqliteError {
1287
1671
  };
1288
1672
  function sqliteFailure(error) {
1289
1673
  if (error instanceof NativeSqliteBackpressureError) {
1290
- return new SqliteBackpressureError(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteBackpressureError), "NativeSqliteBackpressureError", "error", 20523))(error).message);
1674
+ return new SqliteBackpressureError(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteBackpressureError), "NativeSqliteBackpressureError", "error", 24269))(error).message);
1291
1675
  }
1292
1676
  if (error instanceof NativeSqliteConcurrencyError) {
1293
- return new SqliteConcurrencyError(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteConcurrencyError), "NativeSqliteConcurrencyError", "error", 20622))(error).message);
1677
+ return new SqliteConcurrencyError(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteConcurrencyError), "NativeSqliteConcurrencyError", "error", 24368))(error).message);
1294
1678
  }
1295
1679
  if (error instanceof NativeSqliteError) {
1296
- return new SqliteError(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 20699))(error).message, ((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 20714))(error).sqliteCode ?? null, ((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 20732))(error).operation, ((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 20749))(error).retryable);
1680
+ return new SqliteError(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 24445))(error).message, ((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 24460))(error).sqliteCode ?? null, ((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 24478))(error).operation, ((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 24495))(error).retryable);
1297
1681
  }
1298
1682
  return new SqliteError(error.message);
1299
1683
  }
1684
+ function sqliteLiteral(value) {
1685
+ if ((value ?? null) === null) {
1686
+ return trustedSql("NULL");
1687
+ }
1688
+ if (typeof (value ?? null) === "boolean") {
1689
+ return trustedSql(((__velarValue) => __velarNarrow(__velarValue, typeof __velarValue === "boolean", "bool", "value", 24937))(value) ? "1" : "0");
1690
+ }
1691
+ if (typeof (value ?? null) === "string") {
1692
+ return trustedSql("'" + __velarStringReplaceAll(((__velarValue) => __velarNarrow(__velarValue, typeof __velarValue === "string", "string", "value", 25012))(value), "'", "''") + "'");
1693
+ }
1694
+ if (typeof (value ?? null) === "number") {
1695
+ if (!__velarNumberIsFinite(((__velarValue) => __velarNarrow(__velarValue, typeof __velarValue === "number", "number", "value", 25086))(value))) {
1696
+ throw new __VelarAssertionError("SQLite numeric literals must be finite");
1697
+ }
1698
+ if (!(!__velarNumberIsInteger(((__velarValue) => __velarNarrow(__velarValue, typeof __velarValue === "number", "number", "value", 25168))(value)) || ((__velarValue) => __velarNarrow(__velarValue, typeof __velarValue === "number", "number", "value", 25190))(value) >= -9007199254740991 && ((__velarValue) => __velarNarrow(__velarValue, typeof __velarValue === "number", "number", "value", 25221))(value) <= 9007199254740991)) {
1699
+ throw new __VelarAssertionError("SQLite integer literals must be safe integers");
1700
+ }
1701
+ return trustedSql(String(((__velarValue) => __velarNarrow(__velarValue, typeof __velarValue === "number", "number", "value", 25331))(value)));
1702
+ }
1703
+ throw new Error("SQLite literals support only null, bool, string, and finite number");
1704
+ }
1705
+ function sqliteIdentifier(value) {
1706
+ if (!(!__velarStringIsBlank(value) && __velarStringSize(value) <= 255 && !__velarStringHas(value, fromCodePoint(0)))) {
1707
+ throw new __VelarAssertionError("SQLite identifiers must be non-blank text with no NUL and no longer than 255 characters");
1708
+ }
1709
+ return trustedSql('"' + __velarStringReplaceAll(value, '"', '""') + '"');
1710
+ }
1300
1711
  var SqliteTransaction = class {
1301
1712
  #native;
1302
1713
  constructor(native) {
1303
1714
  this.#native = native;
1304
1715
  const self = this;
1305
1716
  }
1306
- async execute(sql, params = __velarAdoptList([])) {
1717
+ async execute(statement) {
1307
1718
  const self = this;
1719
+ const data = statement.data();
1308
1720
  try {
1309
- return await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").execute(sql, params));
1721
+ return await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").execute(data.fragments, data.parameters));
1310
1722
  } catch (error) {
1311
1723
  error = __velarNormalizeError(error);
1312
1724
  if (error instanceof NativeSqliteError) {
1313
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 21160))(error));
1725
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 26288))(error));
1314
1726
  }
1315
1727
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1316
1728
  }
1317
1729
  }
1318
1730
  executor() {
1319
1731
  const self = this;
1320
- async function executeStatement(text, parameters) {
1321
- return await __velarNormalizePromiseValue(self.execute(text, parameters));
1732
+ async function executeStatement(statement) {
1733
+ return await __velarNormalizePromiseValue(self.execute(statement));
1322
1734
  }
1323
- async function oneRow(text, parameters) {
1735
+ async function oneRow(statement) {
1736
+ const data = statement.data();
1324
1737
  try {
1325
- return __velarAsyncResolvedValue(await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").one(text, parameters)));
1738
+ return __velarAsyncResolvedValue(await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").one(data.fragments, data.parameters)));
1326
1739
  } catch (error) {
1327
1740
  error = __velarNormalizeError(error);
1328
1741
  if (error instanceof NativeSqliteError) {
1329
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 21753))(error));
1742
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 26909))(error));
1330
1743
  }
1331
1744
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1332
1745
  }
1333
1746
  }
1334
- async function allRows(text, parameters) {
1747
+ async function allRows(statement) {
1748
+ const data = statement.data();
1335
1749
  try {
1336
- return __velarAsyncResolvedValue(await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").all(text, parameters)));
1750
+ return __velarAsyncResolvedValue(await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").all(data.fragments, data.parameters)));
1337
1751
  } catch (error) {
1338
1752
  error = __velarNormalizeError(error);
1339
1753
  if (error instanceof NativeSqliteError) {
1340
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 22087))(error));
1754
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 27289))(error));
1341
1755
  }
1342
1756
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1343
1757
  }
1344
1758
  }
1345
1759
  return { execute: executeStatement, one: oneRow, all: allRows };
1346
1760
  }
1347
- async one(sql, RowType, params = __velarAdoptList([])) {
1761
+ async one(statement, RowType) {
1348
1762
  const self = this;
1763
+ const data = statement.data();
1349
1764
  try {
1350
- const row = await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").one(sql, params));
1765
+ const row = await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").one(data.fragments, data.parameters));
1351
1766
  if ((row ?? null) === null) {
1352
1767
  return null;
1353
1768
  }
@@ -1355,20 +1770,21 @@ var SqliteTransaction = class {
1355
1770
  } catch (error) {
1356
1771
  error = __velarNormalizeError(error);
1357
1772
  if (error instanceof NativeSqliteError) {
1358
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 22568))(error));
1773
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 27817))(error));
1359
1774
  }
1360
1775
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1361
1776
  }
1362
1777
  }
1363
- async all(sql, RowType, params = __velarAdoptList([])) {
1778
+ async all(statement, RowType) {
1364
1779
  const self = this;
1780
+ const data = statement.data();
1365
1781
  try {
1366
- const rows = await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").all(sql, params));
1782
+ const rows = await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").all(data.fragments, data.parameters));
1367
1783
  return __velarAsyncResolvedValue(__velarListMap(rows, (row) => RowType.parse(row ?? null)));
1368
1784
  } catch (error) {
1369
1785
  error = __velarNormalizeError(error);
1370
1786
  if (error instanceof NativeSqliteError) {
1371
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 22941))(error));
1787
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 28237))(error));
1372
1788
  }
1373
1789
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1374
1790
  }
@@ -1380,51 +1796,55 @@ var SqliteConnection = class {
1380
1796
  this.#native = native;
1381
1797
  const self = this;
1382
1798
  }
1383
- async execute(sql, params = __velarAdoptList([])) {
1799
+ async execute(statement) {
1384
1800
  const self = this;
1801
+ const data = statement.data();
1385
1802
  try {
1386
- return await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").execute(sql, params));
1803
+ return await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").execute(data.fragments, data.parameters));
1387
1804
  } catch (error) {
1388
1805
  error = __velarNormalizeError(error);
1389
1806
  if (error instanceof NativeSqliteError) {
1390
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 23347))(error));
1807
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 28690))(error));
1391
1808
  }
1392
1809
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1393
1810
  }
1394
1811
  }
1395
1812
  executor() {
1396
1813
  const self = this;
1397
- async function executeStatement(text, parameters) {
1398
- return await __velarNormalizePromiseValue(self.execute(text, parameters));
1814
+ async function executeStatement(statement) {
1815
+ return await __velarNormalizePromiseValue(self.execute(statement));
1399
1816
  }
1400
- async function oneRow(text, parameters) {
1817
+ async function oneRow(statement) {
1818
+ const data = statement.data();
1401
1819
  try {
1402
- return __velarAsyncResolvedValue(await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").one(text, parameters)));
1820
+ return __velarAsyncResolvedValue(await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").one(data.fragments, data.parameters)));
1403
1821
  } catch (error) {
1404
1822
  error = __velarNormalizeError(error);
1405
1823
  if (error instanceof NativeSqliteError) {
1406
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 23939))(error));
1824
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 29310))(error));
1407
1825
  }
1408
1826
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1409
1827
  }
1410
1828
  }
1411
- async function allRows(text, parameters) {
1829
+ async function allRows(statement) {
1830
+ const data = statement.data();
1412
1831
  try {
1413
- return __velarAsyncResolvedValue(await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").all(text, parameters)));
1832
+ return __velarAsyncResolvedValue(await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").all(data.fragments, data.parameters)));
1414
1833
  } catch (error) {
1415
1834
  error = __velarNormalizeError(error);
1416
1835
  if (error instanceof NativeSqliteError) {
1417
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 24273))(error));
1836
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 29690))(error));
1418
1837
  }
1419
1838
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1420
1839
  }
1421
1840
  }
1422
1841
  return { execute: executeStatement, one: oneRow, all: allRows };
1423
1842
  }
1424
- async one(sql, RowType, params = __velarAdoptList([])) {
1843
+ async one(statement, RowType) {
1425
1844
  const self = this;
1845
+ const data = statement.data();
1426
1846
  try {
1427
- const row = await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").one(sql, params));
1847
+ const row = await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").one(data.fragments, data.parameters));
1428
1848
  if ((row ?? null) === null) {
1429
1849
  return null;
1430
1850
  }
@@ -1432,20 +1852,21 @@ var SqliteConnection = class {
1432
1852
  } catch (error) {
1433
1853
  error = __velarNormalizeError(error);
1434
1854
  if (error instanceof NativeSqliteError) {
1435
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 24754))(error));
1855
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 30218))(error));
1436
1856
  }
1437
1857
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1438
1858
  }
1439
1859
  }
1440
- async all(sql, RowType, params = __velarAdoptList([])) {
1860
+ async all(statement, RowType) {
1441
1861
  const self = this;
1862
+ const data = statement.data();
1442
1863
  try {
1443
- const rows = await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").all(sql, params));
1864
+ const rows = await __velarNormalizePromiseValue(__velarReadPrivateField(self.#native, "native").all(data.fragments, data.parameters));
1444
1865
  return __velarAsyncResolvedValue(__velarListMap(rows, (row) => RowType.parse(row ?? null)));
1445
1866
  } catch (error) {
1446
1867
  error = __velarNormalizeError(error);
1447
1868
  if (error instanceof NativeSqliteError) {
1448
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 25127))(error));
1869
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 30638))(error));
1449
1870
  }
1450
1871
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1451
1872
  }
@@ -1466,7 +1887,7 @@ var SqliteConnection = class {
1466
1887
  } catch (error) {
1467
1888
  error = __velarNormalizeError(error);
1468
1889
  if (error instanceof NativeSqliteError) {
1469
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 25714))(error));
1890
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 31225))(error));
1470
1891
  }
1471
1892
  throw error;
1472
1893
  }
@@ -1478,7 +1899,7 @@ var SqliteConnection = class {
1478
1899
  } catch (error) {
1479
1900
  error = __velarNormalizeError(error);
1480
1901
  if (error instanceof NativeSqliteError) {
1481
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 25920))(error));
1902
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 31431))(error));
1482
1903
  }
1483
1904
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1484
1905
  }
@@ -1496,7 +1917,7 @@ async function openSqlite(path, options = {}) {
1496
1917
  } catch (error) {
1497
1918
  error = __velarNormalizeError(error);
1498
1919
  if (error instanceof NativeSqliteError) {
1499
- throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 26275))(error));
1920
+ throw sqliteFailure(((__velarValue) => __velarNarrow(__velarValue, __velarValidationIsInstance(__velarValue, NativeSqliteError), "NativeSqliteError", "error", 31786))(error));
1500
1921
  }
1501
1922
  throw new SqliteError(__velarReadInstanceField(error, "message"));
1502
1923
  }
@@ -1506,7 +1927,10 @@ export {
1506
1927
  SqliteConcurrencyError,
1507
1928
  SqliteConnection,
1508
1929
  SqliteError,
1930
+ SqliteJournalMode,
1509
1931
  SqliteOptions,
1510
1932
  SqliteTransaction,
1511
- openSqlite
1933
+ openSqlite,
1934
+ sqliteIdentifier,
1935
+ sqliteLiteral
1512
1936
  };