@budibase/server 2.7.6 → 2.7.7-alpha.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/query.js CHANGED
@@ -2747,23 +2747,23 @@ function init2(selectDb = DEFAULT_SELECT_DB) {
2747
2747
  CLIENTS[selectDb] = client3;
2748
2748
  }
2749
2749
  function waitForConnection(selectDb = DEFAULT_SELECT_DB) {
2750
- return new Promise((resolve2) => {
2750
+ return new Promise((resolve3) => {
2751
2751
  if (pickClient(selectDb) == null) {
2752
2752
  init2();
2753
2753
  } else if (CONNECTED) {
2754
- resolve2("");
2754
+ resolve3("");
2755
2755
  return;
2756
2756
  }
2757
2757
  const interval = set(() => {
2758
2758
  if (CONNECTED) {
2759
2759
  clear(interval);
2760
- resolve2("");
2760
+ resolve3("");
2761
2761
  }
2762
2762
  }, 500);
2763
2763
  });
2764
2764
  }
2765
2765
  function promisifyStream(stream3, client3) {
2766
- return new Promise((resolve2, reject) => {
2766
+ return new Promise((resolve3, reject) => {
2767
2767
  const outputKeys = /* @__PURE__ */ new Set();
2768
2768
  stream3.on("data", (keys2) => {
2769
2769
  keys2.forEach((key) => {
@@ -2781,7 +2781,7 @@ function promisifyStream(stream3, client3) {
2781
2781
  getPromises.push(client3.get(key));
2782
2782
  }
2783
2783
  const jsonArray = await Promise.all(getPromises);
2784
- resolve2(
2784
+ resolve3(
2785
2785
  keysArray.map((key) => ({
2786
2786
  key: removeDbPrefix(key),
2787
2787
  value: JSON.parse(jsonArray.shift())
@@ -5624,7 +5624,7 @@ var environment = {
5624
5624
  isInThread: () => {
5625
5625
  return process.env.FORKED_PROCESS;
5626
5626
  },
5627
- TOP_LEVEL_PATH: process.env.TOP_LEVEL_PATH
5627
+ TOP_LEVEL_PATH: process.env.TOP_LEVEL_PATH || process.env.SERVER_TOP_LEVEL_PATH
5628
5628
  };
5629
5629
  if (isDev() && environment.DISABLE_THREADING == null) {
5630
5630
  environment._set("DISABLE_THREADING", "1");
@@ -6741,11 +6741,11 @@ var Replication = class {
6741
6741
  return Promise.all([closePouchDB(this.source), closePouchDB(this.target)]);
6742
6742
  }
6743
6743
  promisify(operation, opts = {}) {
6744
- return new Promise((resolve2) => {
6744
+ return new Promise((resolve3) => {
6745
6745
  operation(this.target, opts).on("denied", function(err) {
6746
6746
  throw new Error(`Denied: Document failed to replicate ${err}`);
6747
6747
  }).on("complete", function(info) {
6748
- return resolve2(info);
6748
+ return resolve3(info);
6749
6749
  }).on("error", function(err) {
6750
6750
  throw new Error(`Replication Error: ${err}`);
6751
6751
  });
@@ -8204,7 +8204,7 @@ function isClient(ctx) {
8204
8204
  return ctx.headers["x-budibase-type" /* TYPE */] === "client";
8205
8205
  }
8206
8206
  function timeout(timeMs) {
8207
- return new Promise((resolve2) => setTimeout(resolve2, timeMs));
8207
+ return new Promise((resolve3) => setTimeout(resolve3, timeMs));
8208
8208
  }
8209
8209
  function isAudited(event) {
8210
8210
  return !!AuditedEventFriendlyName[event];
@@ -11478,8 +11478,8 @@ async function preAuth(passport2, ctx, next) {
11478
11478
  callbackUrl,
11479
11479
  ssoSaveUserNoOp
11480
11480
  );
11481
- if (!ctx.query.appId || !ctx.query.datasourceId) {
11482
- ctx.throw(400, "appId and datasourceId query params not present.");
11481
+ if (!ctx.query.appId) {
11482
+ ctx.throw(400, "appId query param not present.");
11483
11483
  }
11484
11484
  return passport2.authenticate(strategy, {
11485
11485
  scope: ["profile", "email", "https://www.googleapis.com/auth/spreadsheets"],
@@ -11499,7 +11499,7 @@ async function postAuth(passport2, ctx, next) {
11499
11499
  clientSecret: config.clientSecret,
11500
11500
  callbackURL: callbackUrl
11501
11501
  },
11502
- (accessToken, refreshToken, profile, done) => {
11502
+ (accessToken, refreshToken, _profile, done) => {
11503
11503
  clearCookie(ctx, "budibase:datasourceauth" /* DatasourceAuth */);
11504
11504
  done(null, { accessToken, refreshToken });
11505
11505
  }
@@ -11507,22 +11507,14 @@ async function postAuth(passport2, ctx, next) {
11507
11507
  { successRedirect: "/", failureRedirect: "/error" },
11508
11508
  async (err, tokens) => {
11509
11509
  const baseUrl = `/builder/app/${authStateCookie.appId}/data`;
11510
- await doWithDB(authStateCookie.appId, async (db) => {
11511
- let datasource2;
11512
- try {
11513
- datasource2 = await db.get(authStateCookie.datasourceId);
11514
- } catch (err2) {
11515
- if (err2.status === 404) {
11516
- ctx.redirect(baseUrl);
11517
- }
11518
- }
11519
- if (!datasource2.config) {
11520
- datasource2.config = {};
11510
+ const id = utils_exports2.newid();
11511
+ await cache_exports.store(
11512
+ `datasource:creation:${authStateCookie.appId}:google:${id}`,
11513
+ {
11514
+ tokens
11521
11515
  }
11522
- datasource2.config.auth = { type: "google", ...tokens };
11523
- await db.put(datasource2);
11524
- ctx.redirect(`${baseUrl}/datasource/${authStateCookie.datasourceId}`);
11525
- });
11516
+ );
11517
+ ctx.redirect(`${baseUrl}/new?continue_google_setup=${id}`);
11526
11518
  }
11527
11519
  )(ctx, next);
11528
11520
  }
@@ -12118,12 +12110,12 @@ async function refreshOIDCAccessToken(chosenConfig, refreshToken) {
12118
12110
  return strategy._getOAuth2Client(enrichedConfig);
12119
12111
  }
12120
12112
  });
12121
- return new Promise((resolve2) => {
12113
+ return new Promise((resolve3) => {
12122
12114
  refresh.requestNewAccessToken(
12123
12115
  "oidc" /* OIDC */,
12124
12116
  refreshToken,
12125
12117
  (err, accessToken, refreshToken2, params2) => {
12126
- resolve2({ err, accessToken, refreshToken: refreshToken2, params: params2 });
12118
+ resolve3({ err, accessToken, refreshToken: refreshToken2, params: params2 });
12127
12119
  }
12128
12120
  );
12129
12121
  });
@@ -12144,12 +12136,12 @@ async function refreshGoogleAccessToken(config, refreshToken) {
12144
12136
  );
12145
12137
  }
12146
12138
  refresh.use(strategy);
12147
- return new Promise((resolve2) => {
12139
+ return new Promise((resolve3) => {
12148
12140
  refresh.requestNewAccessToken(
12149
12141
  "google" /* GOOGLE */,
12150
12142
  refreshToken,
12151
12143
  (err, accessToken, refreshToken2, params2) => {
12152
- resolve2({ err, accessToken, refreshToken: refreshToken2, params: params2 });
12144
+ resolve3({ err, accessToken, refreshToken: refreshToken2, params: params2 });
12153
12145
  }
12154
12146
  );
12155
12147
  });
@@ -14246,13 +14238,13 @@ var PostgresIntegration = class extends sql_default {
14246
14238
  }
14247
14239
  closeConnection() {
14248
14240
  const pg = this;
14249
- return new Promise((resolve2, reject) => {
14241
+ return new Promise((resolve3, reject) => {
14250
14242
  this.client.end((err) => {
14251
14243
  pg.open = false;
14252
14244
  if (err) {
14253
14245
  reject(err);
14254
14246
  } else {
14255
- resolve2();
14247
+ resolve3();
14256
14248
  }
14257
14249
  });
14258
14250
  });
@@ -15964,7 +15956,7 @@ var S3Integration = class {
15964
15956
  Key: query.key
15965
15957
  }).createReadStream();
15966
15958
  let csvError = false;
15967
- return new Promise((resolve2, reject) => {
15959
+ return new Promise((resolve3, reject) => {
15968
15960
  stream3.on("error", (err) => {
15969
15961
  reject(err);
15970
15962
  });
@@ -15972,7 +15964,7 @@ var S3Integration = class {
15972
15964
  csvError = true;
15973
15965
  });
15974
15966
  stream3.on("finish", () => {
15975
- resolve2(response);
15967
+ resolve3(response);
15976
15968
  });
15977
15969
  }).catch((err) => {
15978
15970
  if (csvError) {
@@ -17260,7 +17252,7 @@ var SCHEMA12 = {
17260
17252
  },
17261
17253
  datasource: {
17262
17254
  spreadsheetId: {
17263
- display: "Google Sheet URL",
17255
+ display: "Spreadsheet URL",
17264
17256
  type: "string" /* STRING */,
17265
17257
  required: true
17266
17258
  }
@@ -17330,6 +17322,7 @@ var GoogleSheetsIntegration = class {
17330
17322
  }
17331
17323
  async testConnection() {
17332
17324
  try {
17325
+ await setupCreationAuth(this.config);
17333
17326
  await this.connect();
17334
17327
  return { connected: true };
17335
17328
  } catch (e) {
@@ -17691,6 +17684,16 @@ var GoogleSheetsIntegration = class {
17691
17684
  }
17692
17685
  }
17693
17686
  };
17687
+ async function setupCreationAuth(datasouce) {
17688
+ if (datasouce.continueSetupId) {
17689
+ const appId = context_exports.getAppId();
17690
+ const tokens = await cache_exports.get(
17691
+ `datasource:creation:${appId}:google:${datasouce.continueSetupId}`
17692
+ );
17693
+ datasouce.auth = tokens.tokens;
17694
+ delete datasouce.continueSetupId;
17695
+ }
17696
+ }
17694
17697
  var googlesheets_default = {
17695
17698
  schema: SCHEMA12,
17696
17699
  integration: GoogleSheetsIntegration
@@ -18476,7 +18479,7 @@ var import_fs4 = __toESM(require("fs"));
18476
18479
  var import_path4 = require("path");
18477
18480
  var import_tar = __toESM(require("tar"));
18478
18481
  var uuid2 = require("uuid/v4");
18479
- var TOP_LEVEL_PATH = environment_default.TOP_LEVEL_PATH || (0, import_path4.join)(__dirname, "..", "..", "..");
18482
+ var TOP_LEVEL_PATH = environment_default.TOP_LEVEL_PATH || (0, import_path4.resolve)((0, import_path4.join)(__dirname, "..", "..", ".."));
18480
18483
  var streamFile = (path2) => {
18481
18484
  return import_fs4.default.createReadStream(path2);
18482
18485
  };