@peerbit/indexer-sqlite3 1.1.2 → 1.1.3-4d7d8ba

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.
@@ -7429,8 +7429,8 @@ var BigUnsignedIntegerValue = class BigUnsignedIntegerValue2 extends IntegerValu
7429
7429
  number;
7430
7430
  constructor(number) {
7431
7431
  super();
7432
- if (number > 18446744073709551615n || number < 0) {
7433
- throw new Error("Number is not u32");
7432
+ if (number > 18446744073709551615n || number < 0n) {
7433
+ throw new Error("Number is not u64");
7434
7434
  }
7435
7435
  this.number = number;
7436
7436
  }
@@ -7524,7 +7524,7 @@ var toId = (obj) => {
7524
7524
  return new IntegerKey(obj);
7525
7525
  }
7526
7526
  if (typeof obj === "bigint") {
7527
- if (obj <= Number.MAX_SAFE_INTEGER && obj >= 0) {
7527
+ if (obj <= Number.MAX_SAFE_INTEGER && obj >= 0n) {
7528
7528
  return new IntegerKey(Number(obj));
7529
7529
  }
7530
7530
  throw new Error("BigInt is not less than 2^53. Max value is 9007199254740991");
@@ -7961,11 +7961,10 @@ var SQLConversionMap = {
7961
7961
  };
7962
7962
  var WRAPPED_SIMPLE_VALUE_VARIANT = "wrapped";
7963
7963
  var convertToSQLType = (value, type) => {
7964
- if (type === "bool") {
7965
- if (value != null) {
7964
+ if (value != null) {
7965
+ if (type === "bool") {
7966
7966
  return value ? 1 : 0;
7967
7967
  }
7968
- return null;
7969
7968
  }
7970
7969
  return value;
7971
7970
  };
@@ -8028,6 +8027,7 @@ var getSQLTable = (ctor, path, primary, inline, addJoinField, fromOptionalField
8028
8027
  ctor: ctor2,
8029
8028
  parentPath: path,
8030
8029
  path: newPath,
8030
+ primaryField: fields.find((x) => x.isPrimary),
8031
8031
  primary,
8032
8032
  primaryIndex: fields.findIndex((x) => x.isPrimary),
8033
8033
  children: dependencies,
@@ -8664,8 +8664,14 @@ var convertDeleteRequestToQuery = (request, tables, table) => {
8664
8664
  };
8665
8665
  var convertSumRequestToQuery = (request, tables, table) => {
8666
8666
  const { query, bindable } = convertRequestToQuery("sum", request, tables, table);
8667
+ const inlineName = getInlineTableFieldName(request.key);
8668
+ const field2 = table.fields.find((x) => x.name === inlineName);
8669
+ if (unwrapNestedType(field2.from.type) === "u64") {
8670
+ throw new Error("Summing is not supported for u64 fields");
8671
+ }
8672
+ const column = `${table.name}.${getInlineTableFieldName(request.key)}`;
8667
8673
  return {
8668
- sql: `SELECT SUM(${table.name}.${getInlineTableFieldName(request.key)}) as sum FROM ${table.name} ${query}`,
8674
+ sql: `SELECT SUM(${column}) as sum FROM ${table.name} ${query}`,
8669
8675
  bindable
8670
8676
  };
8671
8677
  };
@@ -8676,18 +8682,20 @@ var convertCountRequestToQuery = (request, tables, table) => {
8676
8682
  bindable
8677
8683
  };
8678
8684
  };
8679
- var convertSearchRequestToQuery = (request, tables, rootTables, shape) => {
8685
+ var convertSearchRequestToQuery = (request, tables, rootTables, options) => {
8680
8686
  let unionBuilder = "";
8681
8687
  let orderByClause = "";
8682
8688
  let matchedOnce = false;
8683
8689
  let lastError = void 0;
8684
- const selectsPerTable = selectAllFieldsFromTables(rootTables, shape);
8690
+ const selectsPerTable = selectAllFieldsFromTables(rootTables, options?.shape);
8685
8691
  let bindableBuilder = [];
8686
8692
  for (const [i, table] of rootTables.entries()) {
8687
8693
  const { selects, joins: joinFromSelect } = selectsPerTable[i];
8688
8694
  const selectQuery = generateSelectQuery(table, selects);
8689
8695
  try {
8690
- const { orderBy, query, bindable } = convertRequestToQuery("iterate", request, tables, table, joinFromSelect);
8696
+ const { orderBy, query, bindable } = convertRequestToQuery("iterate", request, tables, table, joinFromSelect, [], {
8697
+ stable: options?.stable
8698
+ });
8691
8699
  unionBuilder += `${unionBuilder.length > 0 ? " UNION ALL " : ""} ${selectQuery} ${query}`;
8692
8700
  orderByClause = orderBy?.length > 0 ? orderByClause.length > 0 ? orderByClause + ", " + orderBy : orderBy : orderByClause;
8693
8701
  matchedOnce = true;
@@ -8711,7 +8719,7 @@ var convertSearchRequestToQuery = (request, tables, rootTables, shape) => {
8711
8719
  function isIterateRequest(request, type) {
8712
8720
  return type === "iterate";
8713
8721
  }
8714
- var convertRequestToQuery = (type, request, tables, table, extraJoin, path = []) => {
8722
+ var convertRequestToQuery = (type, request, tables, table, extraJoin, path = [], options) => {
8715
8723
  let whereBuilder = "";
8716
8724
  let bindableBuilder = [];
8717
8725
  let orderByBuilder = void 0;
@@ -8727,19 +8735,23 @@ var convertRequestToQuery = (type, request, tables, table, extraJoin, path = [])
8727
8735
  bindableBuilder.push(...bindable);
8728
8736
  }
8729
8737
  if (isIterateRequest(request, type)) {
8730
- if (request?.sort) {
8731
- let sortArr = Array.isArray(request.sort) ? request.sort : [request.sort];
8738
+ let sort = request?.sort;
8739
+ if (!sort && options?.stable) {
8740
+ sort = table.primary && path.length === 0 ? [{ key: [table.primary], direction: SortDirection.ASC }] : void 0;
8741
+ }
8742
+ if (sort) {
8743
+ let sortArr = Array.isArray(sort) ? sort : [sort];
8732
8744
  if (sortArr.length > 0) {
8733
8745
  orderByBuilder = "";
8734
8746
  let once = false;
8735
- for (const sort of sortArr) {
8736
- const { foreignTables, queryKey } = resolveTableToQuery(table, tables, joinBuilder, [...path, ...sort.key], void 0, true);
8747
+ for (const sort2 of sortArr) {
8748
+ const { foreignTables, queryKey } = resolveTableToQuery(table, tables, joinBuilder, [...path, ...sort2.key], void 0, true);
8737
8749
  for (const table2 of foreignTables) {
8738
8750
  if (once) {
8739
8751
  orderByBuilder += ", ";
8740
8752
  }
8741
8753
  once = true;
8742
- orderByBuilder += `${table2.as}.${queryKey} ${sort.direction === SortDirection.ASC ? "ASC" : "DESC"}`;
8754
+ orderByBuilder += `${table2.as}.${queryKey} ${sort2.direction === SortDirection.ASC ? "ASC" : "DESC"}`;
8743
8755
  }
8744
8756
  }
8745
8757
  }
@@ -8963,7 +8975,11 @@ var convertStateFieldQuery = (query, tables, table, join, path, tableAlias = voi
8963
8975
  } else {
8964
8976
  throw new Error(`Unsupported compare type: ${query.compare}`);
8965
8977
  }
8966
- bindable.push(query.value.value);
8978
+ if (unwrapNestedType(tableField.from.type) === "u64") {
8979
+ bindable.push(query.value.value);
8980
+ } else {
8981
+ bindable.push(query.value.value);
8982
+ }
8967
8983
  }
8968
8984
  } else if (query instanceof IsNull) {
8969
8985
  where = `${keyWithTable} IS NULL`;
@@ -9115,9 +9131,11 @@ var SQLLiteIndex = class {
9115
9131
  async get(id, options) {
9116
9132
  for (const table of this._rootTables) {
9117
9133
  const { join: joinMap, selects } = selectAllFieldsFromTable(table, options?.shape);
9118
- const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? `;
9134
+ const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? limit 1`;
9119
9135
  const stmt = await this.properties.db.prepare(sql, sql);
9120
- const rows = await stmt.get([id.key]);
9136
+ const rows = await stmt.get([
9137
+ table.primaryField?.from?.type ? convertToSQLType(id.key, table.primaryField.from.type) : id.key
9138
+ ]);
9121
9139
  if (!rows) {
9122
9140
  continue;
9123
9141
  }
@@ -9151,37 +9169,44 @@ var SQLLiteIndex = class {
9151
9169
  });
9152
9170
  }
9153
9171
  iterate(request, options) {
9154
- let { sql: sqlFetch, bindable } = convertSearchRequestToQuery(request, this.tables, this._rootTables, options?.shape);
9155
9172
  let offset = 0;
9156
9173
  let once = false;
9157
9174
  let requestId = v4_default();
9158
9175
  let hasMore = true;
9159
9176
  let stmt;
9160
9177
  let kept = void 0;
9178
+ let bindable = [];
9179
+ let sqlFetch = void 0;
9161
9180
  const fetch2 = async (amount) => {
9162
9181
  kept = void 0;
9163
9182
  if (!once) {
9183
+ let { sql, bindable: toBind } = convertSearchRequestToQuery(request, this.tables, this._rootTables, {
9184
+ shape: options?.shape,
9185
+ stable: typeof amount === "number"
9186
+ // if we are to fetch all, we dont need stable sorting
9187
+ });
9188
+ sqlFetch = sql;
9189
+ bindable = toBind;
9164
9190
  stmt = await this.properties.db.prepare(sqlFetch, sqlFetch);
9165
9191
  clearTimeout(iterator.timeout);
9166
9192
  iterator.timeout = setTimeout(() => this.clearupIterator(requestId), this.iteratorTimeout);
9167
9193
  }
9168
9194
  once = true;
9169
- const offsetStart = offset;
9170
9195
  const allResults = await stmt.all([
9171
9196
  ...bindable,
9172
- amount,
9173
- offsetStart
9197
+ amount === "all" ? Number.MAX_SAFE_INTEGER : amount,
9198
+ offset
9174
9199
  ]);
9175
9200
  let results = await Promise.all(allResults.map(async (row) => {
9176
9201
  let selectedTable = this._rootTables.find((table) => row[getTablePrefixedField(table, this.primaryKeyString)] != null);
9177
9202
  const value = await resolveInstanceFromValue(row, this.tables, selectedTable, this.resolveDependencies.bind(this), true, options?.shape);
9178
9203
  return {
9179
9204
  value,
9180
- id: toId(row[getTablePrefixedField(selectedTable, this.primaryKeyString)])
9205
+ id: toId(convertFromSQLType(row[getTablePrefixedField(selectedTable, this.primaryKeyString)], selectedTable.primaryField.from.type))
9181
9206
  };
9182
9207
  }));
9183
9208
  offset += results.length;
9184
- if (results.length < amount) {
9209
+ if (amount === "all" || results.length < amount) {
9185
9210
  hasMore = false;
9186
9211
  await this.clearupIterator(requestId);
9187
9212
  clearTimeout(iterator.timeout);
@@ -9283,10 +9308,11 @@ var SQLLiteIndex = class {
9283
9308
  const stmt = await this.properties.db.prepare(sql, sql);
9284
9309
  const result = await stmt.get(bindable);
9285
9310
  if (result != null) {
9311
+ const value = result.sum;
9286
9312
  if (ret == null) {
9287
- ret = result.sum;
9313
+ ret = value;
9288
9314
  } else {
9289
- ret += result.sum;
9315
+ ret += value;
9290
9316
  }
9291
9317
  once = true;
9292
9318
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { getSchema } from "@dao-xyz/borsh";
2
2
  import * as types from "@peerbit/indexer-interface";
3
3
  import { v4 as uuid } from "uuid";
4
- import { MissingFieldError, buildJoin, convertCountRequestToQuery, convertDeleteRequestToQuery, convertSearchRequestToQuery,
4
+ import { MissingFieldError, buildJoin, convertCountRequestToQuery, convertDeleteRequestToQuery, convertFromSQLType, convertSearchRequestToQuery,
5
5
  /* getTableName, */
6
- convertSumRequestToQuery, escapeColumnName, generateSelectQuery, getInlineTableFieldName, getSQLTable, getTablePrefixedField, insert, resolveInstanceFromValue, resolveTable, selectAllFieldsFromTable, selectChildren, } from "./schema.js";
6
+ convertSumRequestToQuery, convertToSQLType, escapeColumnName, generateSelectQuery, getInlineTableFieldName, getSQLTable, getTablePrefixedField, insert, resolveInstanceFromValue, resolveTable, selectAllFieldsFromTable, selectChildren, } from "./schema.js";
7
7
  const escapePathToSQLName = (path) => {
8
8
  return path.map((x) => x.replace(/[^a-zA-Z0-9]/g, "_"));
9
9
  };
@@ -147,9 +147,13 @@ export class SQLLiteIndex {
147
147
  async get(id, options) {
148
148
  for (const table of this._rootTables) {
149
149
  const { join: joinMap, selects } = selectAllFieldsFromTable(table, options?.shape);
150
- const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? `;
150
+ const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? limit 1`;
151
151
  const stmt = await this.properties.db.prepare(sql, sql);
152
- const rows = await stmt.get([id.key]);
152
+ const rows = await stmt.get([
153
+ table.primaryField?.from?.type
154
+ ? convertToSQLType(id.key, table.primaryField.from.type)
155
+ : id.key,
156
+ ]);
153
157
  if (!rows) {
154
158
  continue;
155
159
  }
@@ -187,7 +191,6 @@ export class SQLLiteIndex {
187
191
  iterate(request, options) {
188
192
  // create a sql statement where the offset and the limit id dynamic and can be updated
189
193
  // TODO don't use offset but sort and limit 'next' calls by the last value of the sort
190
- let { sql: sqlFetch, bindable } = convertSearchRequestToQuery(request, this.tables, this._rootTables, options?.shape);
191
194
  /* const totalCountKey = "count"; */
192
195
  /* const sqlTotalCount = convertCountRequestToQuery(new types.CountRequest({ query: request.query }), this.tables, this.tables.get(this.rootTableName)!)
193
196
  const countStmt = await this.properties.db.prepare(sqlTotalCount); */
@@ -197,10 +200,18 @@ export class SQLLiteIndex {
197
200
  let hasMore = true;
198
201
  let stmt;
199
202
  let kept = undefined;
203
+ let bindable = [];
204
+ let sqlFetch = undefined;
200
205
  /* let totalCount: undefined | number = undefined; */
201
206
  const fetch = async (amount) => {
202
207
  kept = undefined;
203
208
  if (!once) {
209
+ let { sql, bindable: toBind } = convertSearchRequestToQuery(request, this.tables, this._rootTables, {
210
+ shape: options?.shape,
211
+ stable: typeof amount === "number", // if we are to fetch all, we dont need stable sorting
212
+ });
213
+ sqlFetch = sql;
214
+ bindable = toBind;
204
215
  stmt = await this.properties.db.prepare(sqlFetch, sqlFetch);
205
216
  // stmt.reset?.(); // TODO dont invoke reset if not needed
206
217
  /* countStmt.reset?.(); */
@@ -209,11 +220,10 @@ export class SQLLiteIndex {
209
220
  iterator.timeout = setTimeout(() => this.clearupIterator(requestId), this.iteratorTimeout);
210
221
  }
211
222
  once = true;
212
- const offsetStart = offset;
213
223
  const allResults = await stmt.all([
214
224
  ...bindable,
215
- amount,
216
- offsetStart,
225
+ amount === "all" ? Number.MAX_SAFE_INTEGER : amount,
226
+ offset,
217
227
  ]);
218
228
  let results = await Promise.all(allResults.map(async (row) => {
219
229
  let selectedTable = this._rootTables.find((table /* row["table_name"] === table.name, */) => row[getTablePrefixedField(table, this.primaryKeyString)] !=
@@ -221,7 +231,7 @@ export class SQLLiteIndex {
221
231
  const value = await resolveInstanceFromValue(row, this.tables, selectedTable, this.resolveDependencies.bind(this), true, options?.shape);
222
232
  return {
223
233
  value,
224
- id: types.toId(row[getTablePrefixedField(selectedTable, this.primaryKeyString)]),
234
+ id: types.toId(convertFromSQLType(row[getTablePrefixedField(selectedTable, this.primaryKeyString)], selectedTable.primaryField.from.type)),
225
235
  };
226
236
  }));
227
237
  offset += results.length;
@@ -235,7 +245,7 @@ export class SQLLiteIndex {
235
245
  } else {
236
246
  iterator.kept = 0;
237
247
  } */
238
- if (results.length < amount) {
248
+ if (amount === "all" || results.length < amount) {
239
249
  hasMore = false;
240
250
  await this.clearupIterator(requestId);
241
251
  clearTimeout(iterator.timeout);
@@ -347,11 +357,12 @@ export class SQLLiteIndex {
347
357
  const stmt = await this.properties.db.prepare(sql, sql);
348
358
  const result = await stmt.get(bindable);
349
359
  if (result != null) {
360
+ const value = result.sum;
350
361
  if (ret == null) {
351
- ret = result.sum;
362
+ ret = value;
352
363
  }
353
364
  else {
354
- ret += result.sum;
365
+ ret += value;
355
366
  }
356
367
  once = true;
357
368
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAOhF,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EACN,iBAAiB,EAEjB,SAAS,EACT,0BAA0B,EAC1B,2BAA2B,EAC3B,2BAA2B;AAC3B,mBAAmB;AACnB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,MAAM,EACN,wBAAwB,EACxB,YAAY,EACZ,wBAAwB,EACxB,cAAc,GACd,MAAM,aAAa,CAAC;AAGrB,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAE,EAAE;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;AAC9D,MAAM,mBAAmB,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;AACxE,MAAM,wBAAwB,GAAG,CAAC,KAAY,EAAE,EAAE,CACjD,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC;AAElC,MAAM,OAAO,YAAY;IAsBd;IAnBV,aAAa,CAAY;IACzB,gBAAgB,CAAU;IAClB,WAAW,CAAU;IACrB,WAAW,CAAW;IACtB,OAAO,CAAsB;IAC7B,OAAO,CAOb,CAAC,2BAA2B;IAE9B,eAAe,CAAS;IACxB,MAAM,GAAY,IAAI,CAAC;IAEvB,EAAE,CAAS;IACX,YACU,UAMR,EACD,OAAsC;QAP7B,eAAU,GAAV,UAAU,CAMlB;QAGD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,WAAW;YACf,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAC1B,CAAC,CAAC,GAAG,GAAG,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACvD,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,IAAI,CAAC;IACzD,CAAC;IAED,IAAI,MAAM;QACT,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAI,UAAU;QACb,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,IAAI,MAAM;QACT,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,UAA6C;QACjD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBACrD,CAAC,CAAC,UAAU,CAAC,OAAO;gBACpB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAEvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CACd,6EAA6E,CAC7E,CAAC;YACH,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC3B,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;QAEhC,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,WAAW,CACzB,IAAI,CAAC,UAAU,CAAC,MAAO,EACvB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAC1C,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,iCAAiC;QAC9E,KAAK,EACL,SAAS,EACT,KAAK,CAEL,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;QAE1D,MAAM,SAAS,GAAG,MAAM,CAAC;QAEzB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEpC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,yDAAyD;gBACzD,uCAAuC;gBACvC,SAAS;YACV,CAAC;YAED,MAAM,cAAc,GAAG,8BAA8B,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1J,MAAM,cAAc,GAAG,8BAA8B,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAEnK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAExC,wBAAwB;YACxB,IAAI,MAAM,GAAG,eAAe,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,OAAO,GAAG,CAAC;YAErM,4CAA4C;YAC5C,IAAI,UAAU,GAAG,0BAA0B,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAExL,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;YACjE,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAC/B,cAAc,CAAC,KAAK,CAAC,EACrB,wBAAwB,CAAC,KAAK,CAAC,CAC/B,CAAC;YACH,CAAC;QACF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,eAAe;QAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC;YACtD,oGAAoG;YACpG,OAAO;QACR,CAAC;IACF,CAAC;IAED,KAAK,CAAC,IAAI;QACT,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IAED,KAAK,CAAC,IAAI;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,8BAA8B;QAC9B,kDAAkD;QAClD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErB,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAChC,QAAa,EACb,KAAY;QAEZ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAC7C,wBAAwB,CAAC,KAAK,CAAC,CAC9B,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,GAAG,CACR,EAAe,EACf,OAA0B;QAE1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,wBAAwB,CAC1D,KAAK,EACL,OAAO,EAAE,KAAK,CACd,CAAC;YACF,MAAM,GAAG,GAAG,GAAG,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,gBAAgB,OAAO,CAAC;YACrH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,SAAS;YACV,CAAC;YACD,OAAO;gBACN,KAAK,EAAE,CAAC,MAAM,wBAAwB,CACrC,IAAI,EACJ,IAAI,CAAC,MAAM,EACX,KAAK,EACL,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,IAAI,EACJ,OAAO,EAAE,KAAK,CACd,CAAiB;gBAClB,EAAE;aACF,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAQ,EAAE,GAAS;QAC5B,MAAM,YAAY,GAAG,KAAK,CAAC,WAA6B,CAAC;QACzD,OAAO,MAAM,CACZ,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAEzC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAClD,mBAAmB,CAAC,KAAK,CAAC,CACzB,CAAC;gBACH,MAAM,SAAS,CAAC,GAAG,CAClB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAC;gBACF,MAAM,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACd,CAAC;iBAAM,CAAC;gBACP,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAClD,eAAe,CAAC,KAAK,CAAC,CACrB,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,CAC9B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC7D,CAAC;gBACF,MAAM,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;gBAE1B,aAAa;gBACb,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBACjB,OAAO,SAAS,CAAC;gBAClB,CAAC;gBACD,OAAO,GAAG,CAAC,KAAK,CAAC,OAAiB,CAAC,CAAC;YACrC,CAAC;QACF,CAAC,EACD,KAAK,EACL,IAAI,CAAC,MAAM,EACX,YAAY,CACX,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,EAC1C,IAAI,CAAC,MAAM,EACX,YAAY,EACZ,IAAI,CACJ,EACD,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,EAC9B,CAAC,GAAG,EAAE,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC,CACD,CAAC;IACH,CAAC;IAED,OAAO,CACN,OAA8B,EAC9B,OAA4C;QAE5C,sFAAsF;QACtF,sFAAsF;QACtF,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,2BAA2B,CAC5D,OAAO,EACP,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,EAChB,OAAO,EAAE,KAAK,CACd,CAAC;QAEF,qCAAqC;QACrC;6EACqE;QAErE,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,IAAI,IAAe,CAAC;QACpB,IAAI,IAAI,GAAuB,SAAS,CAAC;QAEzC,qDAAqD;QACrD,MAAM,KAAK,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;YACtC,IAAI,GAAG,SAAS,CAAC;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAC5D,0DAA0D;gBAC1D,0BAA0B;gBAE1B,qBAAqB;gBACrB,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAC/B,QAAQ,CAAC,OAAO,GAAG,UAAU,CAC5B,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EACrC,IAAI,CAAC,eAAe,CACpB,CAAC;YACH,CAAC;YAED,IAAI,GAAG,IAAI,CAAC;YACZ,MAAM,WAAW,GAAG,MAAM,CAAC;YAE3B,MAAM,UAAU,GAA0B,MAAM,IAAI,CAAC,GAAG,CAAC;gBACxD,GAAG,QAAQ;gBACX,MAAM;gBACN,WAAW;aACX,CAAC,CAAC;YAEH,IAAI,OAAO,GACV,MAAM,OAAO,CAAC,GAAG,CAChB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAQ,EAAE,EAAE;gBACjC,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CACxC,CAAC,KAAK,CAAC,uCAAuC,EAAE,EAAE,CACjD,GAAG,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBACxD,IAAI,CACJ,CAAC;gBAEH,MAAM,KAAK,GAAG,MAAM,wBAAwB,CAC3C,GAAG,EACH,IAAI,CAAC,MAAM,EACX,aAAa,EACb,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,IAAI,EACJ,OAAO,EAAE,KAAK,CACd,CAAC;gBAEF,OAAO;oBACN,KAAK;oBACL,EAAE,EAAE,KAAK,CAAC,IAAI,CACb,GAAG,CACF,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAC3D,CACD;iBACD,CAAC;YACH,CAAC,CAAC,CACF,CAAC;YAEH,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;YAEzB;;;;;;;;;gBASI;YAEJ,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;gBAC7B,OAAO,GAAG,KAAK,CAAC;gBAChB,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBACtC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;YACD,OAAO,OAAO,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG;YAChB,KAAK;YACL,gCAAgC;YAChC,OAAO,EAAE,UAAU,CAClB,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EACrC,IAAI,CAAC,eAAe,CACpB;SACD,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrC,IAAI,UAAU,GAAuB,SAAS,CAAC;QAC/C,qCAAqC;QACrC,OAAO;YACN,GAAG,EAAE,KAAK,IAAI,EAAE;gBACf,MAAM,OAAO,GAAqD,EAAE,CAAC;gBACrE,OAAO,IAAI,EAAE,CAAC;oBACb,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;oBACrB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACtB,MAAM;oBACP,CAAC;gBACF,CAAC;gBACD,OAAO,OAAO,CAAC;YAChB,CAAC;YACD,KAAK,EAAE,GAAG,EAAE;gBACX,OAAO,GAAG,KAAK,CAAC;gBAChB,IAAI,GAAG,CAAC,CAAC;gBACT,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;YACvC,OAAO,EAAE,KAAK,IAAI,EAAE;gBACnB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO,CAAC,CAAC;gBACV,CAAC;gBACD,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;oBAClB,OAAO,IAAI,CAAC;gBACb,CAAC;gBACD,UAAU,GAAG,UAAU,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEvD,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;gBAC3B,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC;gBACnB,OAAO,IAAI,CAAC;YACb,CAAC;YACD,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;SACzC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,EAAU;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,kBAAkB;QAC3B,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,wCAAwC;QACxC,4CAA4C;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC;QACV,CAAC;QAED;;;wCAGgC;QAChC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAA0B;QACnC,IAAI,GAAG,GAAkB,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,SAAS,GAAsB,SAAS,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC;gBACJ,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,2BAA2B,CACpD,KAAK,EACL,IAAI,CAAC,MAAM,EACX,KAAK,CACL,CAAC;gBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAU,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAEhD,aAAa;gBACb,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC9B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAiB,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC;YACb,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;oBACxC,SAAS,GAAG,KAAK,CAAC;oBAClB,SAAS;gBACV,CAAC;gBAED,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,SAAU,CAAC;QAClB,CAAC;QAED,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAuB;QAChC,IAAI,GAAG,GAAgC,SAAS,CAAC;QACjD,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,SAAS,GAAsB,SAAS,CAAC;QAE7C,IAAI,WAAW,GAAG,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC;gBACJ,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC9D,SAAS,GAAG,IAAI,iBAAiB,CAChC,iBAAiB;wBAChB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAC/D,CAAC;oBACF,SAAS;gBACV,CAAC;gBAED,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,wBAAwB,CACjD,KAAK,EACL,IAAI,CAAC,MAAM,EACX,KAAK,CACL,CAAC;gBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACpB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChB,GAAW,GAAG,MAAM,CAAC,GAAa,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACN,GAAW,IAAI,MAAM,CAAC,GAAa,CAAC;oBACtC,CAAC;oBACD,IAAI,GAAG,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;oBACxC,SAAS,GAAG,KAAK,CAAC;oBAClB,SAAS;gBACV,CAAC;gBACD,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,SAAU,CAAC;QAClB,CAAC;QAED,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAA4B;QACvC,IAAI,GAAG,GAAW,CAAC,CAAC;QACpB,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAI,SAAS,GAAsB,SAAS,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC;gBACJ,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,0BAA0B,CACnD,OAAO,EACP,IAAI,CAAC,MAAM,EACX,KAAK,CACL,CAAC;gBACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;oBACpB,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5B,IAAI,GAAG,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;oBACxC,SAAS,GAAG,KAAK,CAAC;oBAClB,SAAS;gBACV,CAAC;gBAED,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,SAAU,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC;CACD;AAED,MAAM,OAAO,aAAa;IAOf;IANF,MAAM,CAAW;IACjB,MAAM,CAA6B;IACnC,OAAO,CAA4C;IACnD,MAAM,GAAG,IAAI,CAAC;IAEtB,YACU,UAIR;QAJQ,eAAU,GAAV,UAAU,CAIlB;QAED,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CACT,UAAoD;QAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,QAAQ,CAAC,KAAK,CAAC;QACvB,CAAC;QAED,MAAM,KAAK,GAAwB,IAAI,YAAY,CAAC;YACnD,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;YACtB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,KAAK,EAAE,IAAI,CAAC,MAAM;SAClB,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC;gBAC/B,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;gBAC7B,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;gBACtB,MAAM,EAAE,IAAI;aACZ,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,6FAA6F;QAE9H,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;IACF,CAAC;IAED,KAAK,CAAC,IAAI;QACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,IAAI;QACT,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACD"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/engine.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export interface Table {
28
28
  ctor: Constructor<any>;
29
29
  primary: string | false;
30
30
  primaryIndex: number;
31
+ primaryField?: SQLField;
31
32
  path: string[];
32
33
  parentPath: string[] | undefined;
33
34
  fields: SQLField[];
@@ -86,7 +87,10 @@ export declare const convertCountRequestToQuery: (request: types.CountOptions |
86
87
  sql: string;
87
88
  bindable: any[];
88
89
  };
89
- export declare const convertSearchRequestToQuery: (request: types.IterateOptions | undefined, tables: Map<string, Table>, rootTables: Table[], shape: types.Shape | undefined) => {
90
+ export declare const convertSearchRequestToQuery: (request: types.IterateOptions | undefined, tables: Map<string, Table>, rootTables: Table[], options?: {
91
+ shape?: types.Shape | undefined;
92
+ stable?: boolean;
93
+ }) => {
90
94
  sql: string;
91
95
  bindable: any[];
92
96
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
@@ -29,11 +29,10 @@ const SQLConversionMap = {
29
29
  const WRAPPED_SIMPLE_VALUE_VARIANT = "wrapped";
30
30
  export const convertToSQLType = (value, type) => {
31
31
  // add bigint when https://github.com/TryGhost/node-sqlite3/pull/1501 fixed
32
- if (type === "bool") {
33
- if (value != null) {
32
+ if (value != null) {
33
+ if (type === "bool") {
34
34
  return value ? 1 : 0;
35
35
  }
36
- return null;
37
36
  }
38
37
  return value;
39
38
  };
@@ -108,6 +107,7 @@ export const getSQLTable = (ctor, path, primary, inline, addJoinField, fromOptio
108
107
  ctor,
109
108
  parentPath: path,
110
109
  path: newPath,
110
+ primaryField: fields.find((x) => x.isPrimary),
111
111
  primary,
112
112
  primaryIndex: fields.findIndex((x) => x.isPrimary),
113
113
  children: dependencies,
@@ -853,8 +853,14 @@ export const convertDeleteRequestToQuery = (request, tables, table) => {
853
853
  };
854
854
  export const convertSumRequestToQuery = (request, tables, table) => {
855
855
  const { query, bindable } = convertRequestToQuery("sum", request, tables, table);
856
+ const inlineName = getInlineTableFieldName(request.key);
857
+ const field = table.fields.find((x) => x.name === inlineName);
858
+ if (unwrapNestedType(field.from.type) === "u64") {
859
+ throw new Error("Summing is not supported for u64 fields");
860
+ }
861
+ const column = `${table.name}.${getInlineTableFieldName(request.key)}`;
856
862
  return {
857
- sql: `SELECT SUM(${table.name}.${getInlineTableFieldName(request.key)}) as sum FROM ${table.name} ${query}`,
863
+ sql: `SELECT SUM(${column}) as sum FROM ${table.name} ${query}`,
858
864
  bindable,
859
865
  };
860
866
  };
@@ -865,18 +871,20 @@ export const convertCountRequestToQuery = (request, tables, table) => {
865
871
  bindable,
866
872
  };
867
873
  };
868
- export const convertSearchRequestToQuery = (request, tables, rootTables, shape) => {
874
+ export const convertSearchRequestToQuery = (request, tables, rootTables, options) => {
869
875
  let unionBuilder = "";
870
876
  let orderByClause = "";
871
877
  let matchedOnce = false;
872
878
  let lastError = undefined;
873
- const selectsPerTable = selectAllFieldsFromTables(rootTables, shape);
879
+ const selectsPerTable = selectAllFieldsFromTables(rootTables, options?.shape);
874
880
  let bindableBuilder = [];
875
881
  for (const [i, table] of rootTables.entries()) {
876
882
  const { selects, joins: joinFromSelect } = selectsPerTable[i];
877
883
  const selectQuery = generateSelectQuery(table, selects);
878
884
  try {
879
- const { orderBy, query, bindable } = convertRequestToQuery("iterate", request, tables, table, joinFromSelect);
885
+ const { orderBy, query, bindable } = convertRequestToQuery("iterate", request, tables, table, joinFromSelect, [], {
886
+ stable: options?.stable,
887
+ });
880
888
  unionBuilder += `${unionBuilder.length > 0 ? " UNION ALL " : ""} ${selectQuery} ${query}`;
881
889
  orderByClause =
882
890
  orderBy?.length > 0
@@ -906,7 +914,7 @@ export const convertSearchRequestToQuery = (request, tables, rootTables, shape)
906
914
  function isIterateRequest(request, type) {
907
915
  return type === "iterate";
908
916
  }
909
- const convertRequestToQuery = (type, request, tables, table, extraJoin, path = []) => {
917
+ const convertRequestToQuery = (type, request, tables, table, extraJoin, path = [], options) => {
910
918
  let whereBuilder = "";
911
919
  let bindableBuilder = [];
912
920
  let orderByBuilder = undefined;
@@ -924,8 +932,15 @@ const convertRequestToQuery = (type, request, tables, table, extraJoin, path = [
924
932
  bindableBuilder.push(...bindable);
925
933
  }
926
934
  if (isIterateRequest(request, type)) {
927
- if (request?.sort) {
928
- let sortArr = Array.isArray(request.sort) ? request.sort : [request.sort];
935
+ let sort = request?.sort;
936
+ if (!sort && options?.stable) {
937
+ sort =
938
+ table.primary && path.length === 0
939
+ ? [{ key: [table.primary], direction: types.SortDirection.ASC }]
940
+ : undefined;
941
+ }
942
+ if (sort) {
943
+ let sortArr = Array.isArray(sort) ? sort : [sort];
929
944
  if (sortArr.length > 0) {
930
945
  orderByBuilder = "";
931
946
  let once = false;
@@ -1206,7 +1221,13 @@ const convertStateFieldQuery = (query, tables, table, join, path, tableAlias = u
1206
1221
  else {
1207
1222
  throw new Error(`Unsupported compare type: ${query.compare}`);
1208
1223
  }
1209
- bindable.push(query.value.value);
1224
+ if (unwrapNestedType(tableField.from.type) === "u64") {
1225
+ // shift left because that is how we insert the value
1226
+ bindable.push(query.value.value);
1227
+ }
1228
+ else {
1229
+ bindable.push(query.value.value);
1230
+ }
1210
1231
  }
1211
1232
  }
1212
1233
  else if (query instanceof types.IsNull) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite3.d.ts","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,IAAI,SAAS,EAErB,MAAM,YAAY,CAAC;AAEpB,QAAA,IAAI,MAAM,eAAsB,MAAM,uBAkErC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"sqlite3.d.ts","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,QAAQ,IAAI,SAAS,EAErB,MAAM,YAAY,CAAC;AAEpB,QAAA,IAAI,MAAM,eAAsB,MAAM,uBAmErC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -32,7 +32,8 @@ let create = async (directory) => {
32
32
  fileMustExist: false,
33
33
  readonly: false /* , verbose: (message) => console.log(message) */,
34
34
  });
35
- /* db.pragma('journal_mode = WAL'); */
35
+ // TODO this test makes things faster, but for benchmarking it might yield wierd results where some runs are faster than others
36
+ db.pragma("journal_mode = WAL");
36
37
  db.pragma("foreign_keys = on");
37
38
  db.defaultSafeIntegers(true);
38
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite3.js","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,CAAC;AAMpB,IAAI,MAAM,GAAG,KAAK,EAAE,SAAkB,EAAE,EAAE;IACzC,IAAI,EAAE,GAA4B,SAAS,CAAC;IAC5C,IAAI,UAAU,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEpD,IAAI,KAAK,GAAG,GAAG,EAAE;QAChB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnB,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,EAAE,EAAE,CAAC;YACR,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,GAAG,SAAS,CAAC;QAChB,CAAC;IACF,CAAC,CAAC;IACF,IAAI,IAAI,GAAG,GAAG,EAAE;QACf,IAAI,EAAE,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,UAAkB,CAAC;QACvB,IAAI,SAAS,EAAE,CAAC;YACf,uEAAuE;YACvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,UAAU,GAAG,GAAG,SAAS,YAAY,CAAC;QACvC,CAAC;aAAM,CAAC;YACP,UAAU,GAAG,UAAU,CAAC;QACzB,CAAC;QAED,EAAE,GAAG,IAAI,EAAE,CAAC,UAAU,EAAE;YACvB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,KAAK,CAAC,mDAAmD;SACnE,CAAC,CAAC;QACH,sCAAsC;QACtC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC/B,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO;QACN,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACrB,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,EAAW;YACrC,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC9C,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBAChB,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE9B,IAAI,IAAI,EAAE,CAAC;oBACV,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;oBACrB,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YACD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAsB,CAAC,CAAC,aAAa;YAChE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBAChB,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QACD,UAAU;QACV,KAAK;QACL,IAAI;QACJ,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;KACzB,CAAC,CAAC,gBAAgB;AACjC,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"sqlite3.js","sourceRoot":"","sources":["../../src/sqlite3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,CAAC;AAMpB,IAAI,MAAM,GAAG,KAAK,EAAE,SAAkB,EAAE,EAAE;IACzC,IAAI,EAAE,GAA4B,SAAS,CAAC;IAC5C,IAAI,UAAU,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEpD,IAAI,KAAK,GAAG,GAAG,EAAE;QAChB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnB,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,EAAE,EAAE,CAAC;YACR,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,GAAG,SAAS,CAAC;QAChB,CAAC;IACF,CAAC,CAAC;IACF,IAAI,IAAI,GAAG,GAAG,EAAE;QACf,IAAI,EAAE,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,UAAkB,CAAC;QACvB,IAAI,SAAS,EAAE,CAAC;YACf,uEAAuE;YACvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,UAAU,GAAG,GAAG,SAAS,YAAY,CAAC;QACvC,CAAC;aAAM,CAAC;YACP,UAAU,GAAG,UAAU,CAAC;QACzB,CAAC;QAED,EAAE,GAAG,IAAI,EAAE,CAAC,UAAU,EAAE;YACvB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,KAAK,CAAC,mDAAmD;SACnE,CAAC,CAAC;QACH,+HAA+H;QAC/H,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC/B,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO;QACN,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACrB,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,EAAW;YACrC,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC9C,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBAChB,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAE9B,IAAI,IAAI,EAAE,CAAC;oBACV,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;oBACrB,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;YACD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAsB,CAAC,CAAC,aAAa;YAChE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;gBAChB,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QACD,UAAU;QACV,KAAK;QACL,IAAI;QACJ,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;KACzB,CAAC,CAAC,gBAAgB;AACjC,CAAC,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,80 +1,80 @@
1
1
  {
2
- "name": "@peerbit/indexer-sqlite3",
3
- "version": "1.1.2",
4
- "description": "SQLite index for document store",
5
- "type": "module",
6
- "sideEffects": false,
7
- "types": "./dist/src/index.d.ts",
8
- "typesVersions": {
9
- "*": {
10
- "*": [
11
- "*",
12
- "dist/*",
13
- "dist/src/*",
14
- "dist/src/*/index"
15
- ],
16
- "src/*": [
17
- "*",
18
- "dist/*",
19
- "dist/src/*",
20
- "dist/src/*/index"
21
- ]
22
- }
23
- },
24
- "files": [
25
- "src",
26
- "dist",
27
- "!dist/e2e",
28
- "!dist/test",
29
- "!**/*.tsbuildinfo"
30
- ],
31
- "exports": {
32
- ".": {
33
- "types": "./dist/src/index.d.ts",
34
- "import": "./dist/src/index.js"
35
- },
36
- "./sqlite.org": {
37
- "types": "./dist/peerbit/sqlite.org/sqlite3.d.ts",
38
- "import": "./dist/peerbit/sqlite.org/sqlite3.js"
39
- }
40
- },
41
- "browser": {
42
- "./dist/src/sqlite3.js": "./dist/src/sqlite3.browser.js"
43
- },
44
- "eslintConfig": {
45
- "extends": "peerbit",
46
- "parserOptions": {
47
- "project": true,
48
- "sourceType": "module"
49
- },
50
- "ignorePatterns": [
51
- "!.aegir.js",
52
- "test/ts-use",
53
- "*.d.ts"
54
- ]
55
- },
56
- "publishConfig": {
57
- "access": "public"
58
- },
59
- "scripts": {
60
- "clean": "aegir clean",
61
- "copy-sqlite-wasm": "mkdir -p ./dist/peerbit/ && cp -r ../../../../node_modules/@sqlite.org/sqlite-wasm/sqlite-wasm/jswasm/. ./dist/peerbit/",
62
- "build-worker": "node ../../../../node_modules/esbuild/bin/esbuild --bundle ./src/sqlite3.worker.ts --format=esm --outfile=./dist/peerbit/sqlite3.worker.min.js",
63
- "build": "aegir build && npm run build-worker && npm run copy-sqlite-wasm",
64
- "test": "aegir test",
65
- "test:browser": "aegir clean && aegir test -t browser",
66
- "test:node": "aegir clean && aegir test -t node",
67
- "lint": "aegir lint"
68
- },
69
- "author": "dao.xyz",
70
- "license": "MIT",
71
- "dependencies": {
72
- "better-sqlite3": "^11.5.0",
73
- "@peerbit/indexer-interface": "^1.1.1",
74
- "@sqlite.org/sqlite-wasm": "^3.47.0-build1"
75
- },
76
- "devDependencies": {
77
- "@types/better-sqlite3": "^7.6.11",
78
- "@peerbit/indexer-tests": "^1.1.1"
79
- }
2
+ "name": "@peerbit/indexer-sqlite3",
3
+ "version": "1.1.3-4d7d8ba",
4
+ "description": "SQLite index for document store",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "types": "./dist/src/index.d.ts",
8
+ "typesVersions": {
9
+ "*": {
10
+ "*": [
11
+ "*",
12
+ "dist/*",
13
+ "dist/src/*",
14
+ "dist/src/*/index"
15
+ ],
16
+ "src/*": [
17
+ "*",
18
+ "dist/*",
19
+ "dist/src/*",
20
+ "dist/src/*/index"
21
+ ]
22
+ }
23
+ },
24
+ "files": [
25
+ "src",
26
+ "dist",
27
+ "!dist/e2e",
28
+ "!dist/test",
29
+ "!**/*.tsbuildinfo"
30
+ ],
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/src/index.d.ts",
34
+ "import": "./dist/src/index.js"
35
+ },
36
+ "./sqlite.org": {
37
+ "types": "./dist/peerbit/sqlite.org/sqlite3.d.ts",
38
+ "import": "./dist/peerbit/sqlite.org/sqlite3.js"
39
+ }
40
+ },
41
+ "browser": {
42
+ "./dist/src/sqlite3.js": "./dist/src/sqlite3.browser.js"
43
+ },
44
+ "eslintConfig": {
45
+ "extends": "peerbit",
46
+ "parserOptions": {
47
+ "project": true,
48
+ "sourceType": "module"
49
+ },
50
+ "ignorePatterns": [
51
+ "!.aegir.js",
52
+ "test/ts-use",
53
+ "*.d.ts"
54
+ ]
55
+ },
56
+ "publishConfig": {
57
+ "access": "public"
58
+ },
59
+ "scripts": {
60
+ "clean": "aegir clean",
61
+ "copy-sqlite-wasm": "mkdir -p ./dist/peerbit/ && cp -r ../../../../node_modules/@sqlite.org/sqlite-wasm/sqlite-wasm/jswasm/. ./dist/peerbit/",
62
+ "build-worker": "node ../../../../node_modules/esbuild/bin/esbuild --bundle ./src/sqlite3.worker.ts --format=esm --outfile=./dist/peerbit/sqlite3.worker.min.js",
63
+ "build": "aegir build && npm run build-worker && npm run copy-sqlite-wasm",
64
+ "test": "aegir test",
65
+ "test:browser": "aegir clean && aegir test -t browser",
66
+ "test:node": "aegir clean && aegir test -t node",
67
+ "lint": "aegir lint"
68
+ },
69
+ "author": "dao.xyz",
70
+ "license": "MIT",
71
+ "dependencies": {
72
+ "better-sqlite3": "^11.5.0",
73
+ "@peerbit/indexer-interface": "2.0.0-4d7d8ba",
74
+ "@sqlite.org/sqlite-wasm": "^3.47.0-build1"
75
+ },
76
+ "devDependencies": {
77
+ "@types/better-sqlite3": "^7.6.11",
78
+ "@peerbit/indexer-tests": "1.1.2-4d7d8ba"
79
+ }
80
80
  }
package/src/engine.ts CHANGED
@@ -13,9 +13,11 @@ import {
13
13
  buildJoin,
14
14
  convertCountRequestToQuery,
15
15
  convertDeleteRequestToQuery,
16
+ convertFromSQLType,
16
17
  convertSearchRequestToQuery,
17
18
  /* getTableName, */
18
19
  convertSumRequestToQuery,
20
+ convertToSQLType,
19
21
  escapeColumnName,
20
22
  generateSelectQuery,
21
23
  getInlineTableFieldName,
@@ -251,9 +253,13 @@ export class SQLLiteIndex<T extends Record<string, any>>
251
253
  table,
252
254
  options?.shape,
253
255
  );
254
- const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? `;
256
+ const sql = `${generateSelectQuery(table, selects)} ${buildJoin(joinMap, true)} where ${this.primaryKeyString} = ? limit 1`;
255
257
  const stmt = await this.properties.db.prepare(sql, sql);
256
- const rows = await stmt.get([id.key]);
258
+ const rows = await stmt.get([
259
+ table.primaryField?.from?.type
260
+ ? convertToSQLType(id.key, table.primaryField.from.type)
261
+ : id.key,
262
+ ]);
257
263
  if (!rows) {
258
264
  continue;
259
265
  }
@@ -324,12 +330,6 @@ export class SQLLiteIndex<T extends Record<string, any>>
324
330
  ): types.IndexIterator<T, S> {
325
331
  // create a sql statement where the offset and the limit id dynamic and can be updated
326
332
  // TODO don't use offset but sort and limit 'next' calls by the last value of the sort
327
- let { sql: sqlFetch, bindable } = convertSearchRequestToQuery(
328
- request,
329
- this.tables,
330
- this._rootTables,
331
- options?.shape,
332
- );
333
333
 
334
334
  /* const totalCountKey = "count"; */
335
335
  /* const sqlTotalCount = convertCountRequestToQuery(new types.CountRequest({ query: request.query }), this.tables, this.tables.get(this.rootTableName)!)
@@ -342,11 +342,25 @@ export class SQLLiteIndex<T extends Record<string, any>>
342
342
 
343
343
  let stmt: Statement;
344
344
  let kept: number | undefined = undefined;
345
+ let bindable: any[] = [];
346
+ let sqlFetch: string | undefined = undefined;
345
347
 
346
348
  /* let totalCount: undefined | number = undefined; */
347
- const fetch = async (amount: number) => {
349
+ const fetch = async (amount: number | "all") => {
348
350
  kept = undefined;
349
351
  if (!once) {
352
+ let { sql, bindable: toBind } = convertSearchRequestToQuery(
353
+ request,
354
+ this.tables,
355
+ this._rootTables,
356
+ {
357
+ shape: options?.shape,
358
+ stable: typeof amount === "number", // if we are to fetch all, we dont need stable sorting
359
+ },
360
+ );
361
+ sqlFetch = sql;
362
+ bindable = toBind;
363
+
350
364
  stmt = await this.properties.db.prepare(sqlFetch, sqlFetch);
351
365
  // stmt.reset?.(); // TODO dont invoke reset if not needed
352
366
  /* countStmt.reset?.(); */
@@ -360,12 +374,11 @@ export class SQLLiteIndex<T extends Record<string, any>>
360
374
  }
361
375
 
362
376
  once = true;
363
- const offsetStart = offset;
364
377
 
365
378
  const allResults: Record<string, any>[] = await stmt.all([
366
379
  ...bindable,
367
- amount,
368
- offsetStart,
380
+ amount === "all" ? Number.MAX_SAFE_INTEGER : amount,
381
+ offset,
369
382
  ]);
370
383
 
371
384
  let results: IndexedResult<types.ReturnTypeFromShape<T, S>>[] =
@@ -389,9 +402,12 @@ export class SQLLiteIndex<T extends Record<string, any>>
389
402
  return {
390
403
  value,
391
404
  id: types.toId(
392
- row[
393
- getTablePrefixedField(selectedTable, this.primaryKeyString)
394
- ],
405
+ convertFromSQLType(
406
+ row[
407
+ getTablePrefixedField(selectedTable, this.primaryKeyString)
408
+ ],
409
+ selectedTable.primaryField!.from!.type,
410
+ ),
395
411
  ),
396
412
  };
397
413
  }),
@@ -410,7 +426,7 @@ export class SQLLiteIndex<T extends Record<string, any>>
410
426
  iterator.kept = 0;
411
427
  } */
412
428
 
413
- if (results.length < amount) {
429
+ if (amount === "all" || results.length < amount) {
414
430
  hasMore = false;
415
431
  await this.clearupIterator(requestId);
416
432
  clearTimeout(iterator.timeout);
@@ -548,10 +564,12 @@ export class SQLLiteIndex<T extends Record<string, any>>
548
564
  const stmt = await this.properties.db.prepare(sql, sql);
549
565
  const result = await stmt.get(bindable);
550
566
  if (result != null) {
567
+ const value = result.sum as number;
568
+
551
569
  if (ret == null) {
552
- (ret as any) = result.sum as number;
570
+ ret = value;
553
571
  } else {
554
- (ret as any) += result.sum as number;
572
+ ret += value;
555
573
  }
556
574
  once = true;
557
575
  }
package/src/schema.ts CHANGED
@@ -60,11 +60,10 @@ export const convertToSQLType = (
60
60
  ): BindableValue => {
61
61
  // add bigint when https://github.com/TryGhost/node-sqlite3/pull/1501 fixed
62
62
 
63
- if (type === "bool") {
64
- if (value != null) {
63
+ if (value != null) {
64
+ if (type === "bool") {
65
65
  return value ? 1 : 0;
66
66
  }
67
- return null;
68
67
  }
69
68
  return value as BindableValue;
70
69
  };
@@ -145,7 +144,8 @@ export interface Table {
145
144
  name: string;
146
145
  ctor: Constructor<any>;
147
146
  primary: string | false;
148
- primaryIndex: number;
147
+ primaryIndex: number; // can be -1 for nested tables TODO make it more clear
148
+ primaryField?: SQLField; // can be undefined for nested tables TODO make it required
149
149
  path: string[];
150
150
  parentPath: string[] | undefined; // field path of the parent where this table originates from
151
151
  fields: SQLField[];
@@ -195,6 +195,7 @@ export const getSQLTable = (
195
195
  ctor,
196
196
  parentPath: path,
197
197
  path: newPath,
198
+ primaryField: fields.find((x) => x.isPrimary)!,
198
199
  primary,
199
200
  primaryIndex: fields.findIndex((x) => x.isPrimary),
200
201
  children: dependencies,
@@ -1254,8 +1255,16 @@ export const convertSumRequestToQuery = (
1254
1255
  tables,
1255
1256
  table,
1256
1257
  );
1258
+
1259
+ const inlineName = getInlineTableFieldName(request.key);
1260
+ const field = table.fields.find((x) => x.name === inlineName);
1261
+ if (unwrapNestedType(field!.from!.type) === "u64") {
1262
+ throw new Error("Summing is not supported for u64 fields");
1263
+ }
1264
+ const column = `${table.name}.${getInlineTableFieldName(request.key)}`;
1265
+
1257
1266
  return {
1258
- sql: `SELECT SUM(${table.name}.${getInlineTableFieldName(request.key)}) as sum FROM ${table.name} ${query}`,
1267
+ sql: `SELECT SUM(${column}) as sum FROM ${table.name} ${query}`,
1259
1268
  bindable,
1260
1269
  };
1261
1270
  };
@@ -1281,7 +1290,10 @@ export const convertSearchRequestToQuery = (
1281
1290
  request: types.IterateOptions | undefined,
1282
1291
  tables: Map<string, Table>,
1283
1292
  rootTables: Table[],
1284
- shape: types.Shape | undefined,
1293
+ options?: {
1294
+ shape?: types.Shape | undefined;
1295
+ stable?: boolean;
1296
+ },
1285
1297
  ): { sql: string; bindable: any[] } => {
1286
1298
  let unionBuilder = "";
1287
1299
  let orderByClause: string = "";
@@ -1289,7 +1301,7 @@ export const convertSearchRequestToQuery = (
1289
1301
  let matchedOnce = false;
1290
1302
  let lastError: Error | undefined = undefined;
1291
1303
 
1292
- const selectsPerTable = selectAllFieldsFromTables(rootTables, shape);
1304
+ const selectsPerTable = selectAllFieldsFromTables(rootTables, options?.shape);
1293
1305
  let bindableBuilder: any[] = [];
1294
1306
  for (const [i, table] of rootTables.entries()) {
1295
1307
  const { selects, joins: joinFromSelect } = selectsPerTable[i];
@@ -1301,6 +1313,10 @@ export const convertSearchRequestToQuery = (
1301
1313
  tables,
1302
1314
  table,
1303
1315
  joinFromSelect,
1316
+ [],
1317
+ {
1318
+ stable: options?.stable,
1319
+ },
1304
1320
  );
1305
1321
  unionBuilder += `${unionBuilder.length > 0 ? " UNION ALL " : ""} ${selectQuery} ${query}`;
1306
1322
  orderByClause =
@@ -1358,6 +1374,9 @@ const convertRequestToQuery = <
1358
1374
  table: Table,
1359
1375
  extraJoin?: Map<string, JoinTable>,
1360
1376
  path: string[] = [],
1377
+ options?: {
1378
+ stable?: boolean;
1379
+ },
1361
1380
  ): R => {
1362
1381
  let whereBuilder = "";
1363
1382
  let bindableBuilder: any[] = [];
@@ -1388,8 +1407,16 @@ const convertRequestToQuery = <
1388
1407
  }
1389
1408
 
1390
1409
  if (isIterateRequest(request, type)) {
1391
- if (request?.sort) {
1392
- let sortArr = Array.isArray(request.sort) ? request.sort : [request.sort];
1410
+ let sort = request?.sort;
1411
+ if (!sort && options?.stable) {
1412
+ sort =
1413
+ table.primary && path.length === 0
1414
+ ? [{ key: [table.primary], direction: types.SortDirection.ASC }]
1415
+ : undefined;
1416
+ }
1417
+
1418
+ if (sort) {
1419
+ let sortArr = Array.isArray(sort) ? sort : [sort];
1393
1420
  if (sortArr.length > 0) {
1394
1421
  orderByBuilder = "";
1395
1422
  let once = false;
@@ -1793,7 +1820,13 @@ const convertStateFieldQuery = (
1793
1820
  } else {
1794
1821
  throw new Error(`Unsupported compare type: ${query.compare}`);
1795
1822
  }
1796
- bindable.push(query.value.value);
1823
+
1824
+ if (unwrapNestedType(tableField.from!.type) === "u64") {
1825
+ // shift left because that is how we insert the value
1826
+ bindable.push(query.value.value);
1827
+ } else {
1828
+ bindable.push(query.value.value);
1829
+ }
1797
1830
  }
1798
1831
  } else if (query instanceof types.IsNull) {
1799
1832
  where = `${keyWithTable} IS NULL`;
package/src/sqlite3.ts CHANGED
@@ -40,7 +40,8 @@ let create = async (directory?: string) => {
40
40
  fileMustExist: false,
41
41
  readonly: false /* , verbose: (message) => console.log(message) */,
42
42
  });
43
- /* db.pragma('journal_mode = WAL'); */
43
+ // TODO this test makes things faster, but for benchmarking it might yield wierd results where some runs are faster than others
44
+ db.pragma("journal_mode = WAL");
44
45
  db.pragma("foreign_keys = on");
45
46
  db.defaultSafeIntegers(true);
46
47
  };