@budibase/backend-core 2.28.7 → 2.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -60035,6 +60035,7 @@ __export(tenancy_exports, {
60035
60035
  addTenantToUrl: () => addTenantToUrl,
60036
60036
  getTenantDB: () => getTenantDB,
60037
60037
  getTenantIDFromCtx: () => getTenantIDFromCtx,
60038
+ getTenantInfo: () => getTenantInfo,
60038
60039
  isUserInAppTenant: () => isUserInAppTenant,
60039
60040
  saveTenantInfo: () => saveTenantInfo
60040
60041
  });
@@ -60045,11 +60046,15 @@ function getTenantDB(tenantId) {
60045
60046
  }
60046
60047
  async function saveTenantInfo(tenantInfo) {
60047
60048
  const db = getTenantDB(tenantInfo.tenantId);
60048
- return await db.put({
60049
+ return db.put({
60049
60050
  _id: "tenant_info",
60050
60051
  ...tenantInfo
60051
60052
  });
60052
60053
  }
60054
+ async function getTenantInfo(tenantId) {
60055
+ const db = getTenantDB(tenantId);
60056
+ return db.get("tenant_info");
60057
+ }
60053
60058
 
60054
60059
  // src/tenancy/tenancy.ts
60055
60060
  function addTenantToUrl(url) {
@@ -67860,6 +67865,24 @@ var InternalBuilder = class {
67860
67865
  const parsedBody = body2.map((row) => parseBody(row));
67861
67866
  return query.insert(parsedBody);
67862
67867
  }
67868
+ bulkUpsert(knex3, json) {
67869
+ const { endpoint, body: body2 } = json;
67870
+ let query = this.knexWithAlias(knex3, endpoint);
67871
+ if (!Array.isArray(body2)) {
67872
+ return query;
67873
+ }
67874
+ const parsedBody = body2.map((row) => parseBody(row));
67875
+ if (this.client === "pg" /* POSTGRES */ || this.client === "sqlite3" /* SQL_LITE */ || this.client === "mysql2" /* MY_SQL */) {
67876
+ const primary = json.meta.table.primary;
67877
+ if (!primary) {
67878
+ throw new Error("Primary key is required for upsert");
67879
+ }
67880
+ return query.insert(parsedBody).onConflict(primary).merge();
67881
+ } else if (this.client === "mssql" /* MS_SQL */) {
67882
+ return query.insert(parsedBody);
67883
+ }
67884
+ return query.upsert(parsedBody);
67885
+ }
67863
67886
  read(knex3, json, limit2) {
67864
67887
  let { endpoint, resource, filters, paginate, relationships, tableAliases } = json;
67865
67888
  const tableName = endpoint.entityId;
@@ -67877,6 +67900,9 @@ var InternalBuilder = class {
67877
67900
  const offset = page * paginate.limit;
67878
67901
  foundLimit = paginate.limit;
67879
67902
  foundOffset = offset;
67903
+ } else if (paginate && paginate.offset && paginate.limit) {
67904
+ foundLimit = paginate.limit;
67905
+ foundOffset = paginate.offset;
67880
67906
  } else if (paginate && paginate.limit) {
67881
67907
  foundLimit = paginate.limit;
67882
67908
  }
@@ -67973,6 +67999,9 @@ var SqlQueryBuilder = class extends sqlTable_default {
67973
67999
  case "BULK_CREATE" /* BULK_CREATE */:
67974
68000
  query = builder.bulkCreate(client, json);
67975
68001
  break;
68002
+ case "BULK_UPSERT" /* BULK_UPSERT */:
68003
+ query = builder.bulkUpsert(client, json);
68004
+ break;
67976
68005
  case "CREATE_TABLE" /* CREATE_TABLE */:
67977
68006
  case "UPDATE_TABLE" /* UPDATE_TABLE */:
67978
68007
  case "DELETE_TABLE" /* DELETE_TABLE */: