@budibase/server 2.6.19-alpha.50 → 2.6.19-alpha.51

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.
@@ -8,7 +8,7 @@
8
8
  <link rel="preconnect" href="https://fonts.gstatic.com" />
9
9
  <link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap"
10
10
  rel="stylesheet" />
11
- <script type="module" crossorigin src="/builder/assets/index.a7585108.js"></script>
11
+ <script type="module" crossorigin src="/builder/assets/index.4f47d591.js"></script>
12
12
  <link rel="stylesheet" href="/builder/assets/index.6ebb99b3.css">
13
13
  </head>
14
14
 
@@ -18587,11 +18587,12 @@ __export(filters_exports, {
18587
18587
  NoEmptyFilterStrings: () => NoEmptyFilterStrings,
18588
18588
  buildLuceneQuery: () => buildLuceneQuery,
18589
18589
  getValidOperatorsForType: () => getValidOperatorsForType,
18590
+ hasFilters: () => hasFilters,
18590
18591
  luceneLimit: () => luceneLimit,
18591
18592
  luceneSort: () => luceneSort,
18592
18593
  runLuceneQuery: () => runLuceneQuery
18593
18594
  });
18594
- var HBS_REGEX, getValidOperatorsForType, NoEmptyFilterStrings, cleanupQuery, removeKeyNumbering2, buildLuceneQuery, runLuceneQuery, luceneSort, luceneLimit;
18595
+ var HBS_REGEX, getValidOperatorsForType, NoEmptyFilterStrings, cleanupQuery, removeKeyNumbering2, buildLuceneQuery, runLuceneQuery, luceneSort, luceneLimit, hasFilters;
18595
18596
  var init_filters = __esm({
18596
18597
  "../shared-core/src/filters.ts"() {
18597
18598
  init_src();
@@ -18857,6 +18858,21 @@ var init_filters = __esm({
18857
18858
  }
18858
18859
  return docs.slice(0, numLimit);
18859
18860
  };
18861
+ hasFilters = (query) => {
18862
+ if (!query) {
18863
+ return false;
18864
+ }
18865
+ const skipped = ["allOr"];
18866
+ for (let [key, value] of Object.entries(query)) {
18867
+ if (skipped.includes(key) || typeof value !== "object") {
18868
+ continue;
18869
+ }
18870
+ if (Object.keys(value).length !== 0) {
18871
+ return true;
18872
+ }
18873
+ }
18874
+ return false;
18875
+ };
18860
18876
  }
18861
18877
  });
18862
18878
 
@@ -24154,21 +24170,37 @@ var init_googlesheets = __esm({
24154
24170
  }
24155
24171
  }
24156
24172
  async read(query) {
24173
+ var _a, _b, _c, _d;
24157
24174
  try {
24158
24175
  await this.connect();
24176
+ const hasFilters2 = filters_exports.hasFilters(query.filters);
24177
+ const limit = ((_a = query.paginate) == null ? void 0 : _a.limit) || 100;
24178
+ const page = typeof ((_b = query.paginate) == null ? void 0 : _b.page) === "number" ? query.paginate.page : parseInt(((_c = query.paginate) == null ? void 0 : _c.page) || "1");
24179
+ const offset = (page - 1) * limit;
24159
24180
  const sheet = this.client.sheetsByTitle[query.sheet];
24160
24181
  let rows2 = [];
24161
- if (query.paginate) {
24162
- const limit = query.paginate.limit || 100;
24163
- let page = typeof query.paginate.page === "number" ? query.paginate.page : parseInt(query.paginate.page || "1");
24182
+ if (query.paginate && !hasFilters2) {
24164
24183
  rows2 = await sheet.getRows({
24165
24184
  limit,
24166
- offset: (page - 1) * limit
24185
+ offset
24167
24186
  });
24168
24187
  } else {
24169
24188
  rows2 = await sheet.getRows();
24170
24189
  }
24171
- const filtered2 = filters_exports.runLuceneQuery(rows2, query.filters);
24190
+ if ((_d = query.filters) == null ? void 0 : _d.equal) {
24191
+ const idFilterKeys = Object.keys(query.filters.equal).filter(
24192
+ (filter2) => filter2.includes(GOOGLE_SHEETS_PRIMARY_KEY)
24193
+ );
24194
+ for (let idFilterKey of idFilterKeys) {
24195
+ const id = query.filters.equal[idFilterKey];
24196
+ delete query.filters.equal[idFilterKey];
24197
+ query.filters.equal[`_${GOOGLE_SHEETS_PRIMARY_KEY}`] = id;
24198
+ }
24199
+ }
24200
+ let filtered2 = filters_exports.runLuceneQuery(rows2, query.filters);
24201
+ if (hasFilters2 && query.paginate) {
24202
+ filtered2 = filtered2.slice(offset, offset + limit);
24203
+ }
24172
24204
  const headerValues = sheet.headerValues;
24173
24205
  let response2 = [];
24174
24206
  for (let row of filtered2) {
@@ -24226,7 +24258,12 @@ var init_googlesheets = __esm({
24226
24258
  const row = rows2[query.rowIndex];
24227
24259
  if (row) {
24228
24260
  await row.delete();
24229
- return [{ deleted: query.rowIndex }];
24261
+ return [
24262
+ {
24263
+ deleted: query.rowIndex,
24264
+ [GOOGLE_SHEETS_PRIMARY_KEY]: query.rowIndex
24265
+ }
24266
+ ];
24230
24267
  } else {
24231
24268
  throw new Error("Row does not exist.");
24232
24269
  }