@budibase/backend-core 2.13.51 → 2.13.52

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
@@ -2905,6 +2905,123 @@ var init_newid = __esm({
2905
2905
  }
2906
2906
  });
2907
2907
 
2908
+ // src/db/instrumentation.ts
2909
+ var import_dd_trace, DDInstrumentedDatabase;
2910
+ var init_instrumentation = __esm({
2911
+ "src/db/instrumentation.ts"() {
2912
+ "use strict";
2913
+ import_dd_trace = __toESM(require("dd-trace"));
2914
+ DDInstrumentedDatabase = class {
2915
+ constructor(db) {
2916
+ this.db = db;
2917
+ }
2918
+ get name() {
2919
+ return this.db.name;
2920
+ }
2921
+ exists() {
2922
+ return import_dd_trace.default.trace("db.exists", (span) => {
2923
+ span?.addTags({ db_name: this.name });
2924
+ return this.db.exists();
2925
+ });
2926
+ }
2927
+ checkSetup() {
2928
+ return import_dd_trace.default.trace("db.checkSetup", (span) => {
2929
+ span?.addTags({ db_name: this.name });
2930
+ return this.db.checkSetup();
2931
+ });
2932
+ }
2933
+ get(id) {
2934
+ return import_dd_trace.default.trace("db.get", (span) => {
2935
+ span?.addTags({ db_name: this.name, doc_id: id });
2936
+ return this.db.get(id);
2937
+ });
2938
+ }
2939
+ getMultiple(ids, opts) {
2940
+ return import_dd_trace.default.trace("db.getMultiple", (span) => {
2941
+ span?.addTags({
2942
+ db_name: this.name,
2943
+ num_docs: ids.length,
2944
+ allow_missing: opts?.allowMissing
2945
+ });
2946
+ return this.db.getMultiple(ids, opts);
2947
+ });
2948
+ }
2949
+ remove(id, rev) {
2950
+ return import_dd_trace.default.trace("db.remove", (span) => {
2951
+ span?.addTags({ db_name: this.name, doc_id: id });
2952
+ return this.db.remove(id, rev);
2953
+ });
2954
+ }
2955
+ put(document, opts) {
2956
+ return import_dd_trace.default.trace("db.put", (span) => {
2957
+ span?.addTags({ db_name: this.name, doc_id: document._id });
2958
+ return this.db.put(document, opts);
2959
+ });
2960
+ }
2961
+ bulkDocs(documents) {
2962
+ return import_dd_trace.default.trace("db.bulkDocs", (span) => {
2963
+ span?.addTags({ db_name: this.name, num_docs: documents.length });
2964
+ return this.db.bulkDocs(documents);
2965
+ });
2966
+ }
2967
+ allDocs(params2) {
2968
+ return import_dd_trace.default.trace("db.allDocs", (span) => {
2969
+ span?.addTags({ db_name: this.name });
2970
+ return this.db.allDocs(params2);
2971
+ });
2972
+ }
2973
+ query(viewName, params2) {
2974
+ return import_dd_trace.default.trace("db.query", (span) => {
2975
+ span?.addTags({ db_name: this.name, view_name: viewName });
2976
+ return this.db.query(viewName, params2);
2977
+ });
2978
+ }
2979
+ destroy() {
2980
+ return import_dd_trace.default.trace("db.destroy", (span) => {
2981
+ span?.addTags({ db_name: this.name });
2982
+ return this.db.destroy();
2983
+ });
2984
+ }
2985
+ compact() {
2986
+ return import_dd_trace.default.trace("db.compact", (span) => {
2987
+ span?.addTags({ db_name: this.name });
2988
+ return this.db.compact();
2989
+ });
2990
+ }
2991
+ dump(stream2, opts) {
2992
+ return import_dd_trace.default.trace("db.dump", (span) => {
2993
+ span?.addTags({ db_name: this.name });
2994
+ return this.db.dump(stream2, opts);
2995
+ });
2996
+ }
2997
+ load(...args) {
2998
+ return import_dd_trace.default.trace("db.load", (span) => {
2999
+ span?.addTags({ db_name: this.name });
3000
+ return this.db.load(...args);
3001
+ });
3002
+ }
3003
+ createIndex(...args) {
3004
+ return import_dd_trace.default.trace("db.createIndex", (span) => {
3005
+ span?.addTags({ db_name: this.name });
3006
+ return this.db.createIndex(...args);
3007
+ });
3008
+ }
3009
+ deleteIndex(...args) {
3010
+ return import_dd_trace.default.trace("db.deleteIndex", (span) => {
3011
+ span?.addTags({ db_name: this.name });
3012
+ return this.db.deleteIndex(...args);
3013
+ });
3014
+ }
3015
+ getIndexes(...args) {
3016
+ return import_dd_trace.default.trace("db.getIndexes", (span) => {
3017
+ span?.addTags({ db_name: this.name });
3018
+ return this.db.getIndexes(...args);
3019
+ });
3020
+ }
3021
+ };
3022
+ }
3023
+ });
3024
+
2908
3025
  // src/db/couch/DatabaseImpl.ts
2909
3026
  function buildNano(couchInfo) {
2910
3027
  return (0, import_nano.default)({
@@ -2918,7 +3035,8 @@ function buildNano(couchInfo) {
2918
3035
  });
2919
3036
  }
2920
3037
  function DatabaseWithConnection(dbName, connection, opts) {
2921
- return new DatabaseImpl(dbName, opts, connection);
3038
+ const db = new DatabaseImpl(dbName, opts, connection);
3039
+ return new DDInstrumentedDatabase(db);
2922
3040
  }
2923
3041
  var import_nano, DatabaseImpl;
2924
3042
  var init_DatabaseImpl = __esm({
@@ -2930,6 +3048,7 @@ var init_DatabaseImpl = __esm({
2930
3048
  init_utils2();
2931
3049
  init_pouchDB();
2932
3050
  init_newid();
3051
+ init_instrumentation();
2933
3052
  DatabaseImpl = class _DatabaseImpl {
2934
3053
  constructor(dbName, opts, connection) {
2935
3054
  this.couchInfo = getCouchInfo();
@@ -3146,7 +3265,7 @@ var init_couch = __esm({
3146
3265
 
3147
3266
  // src/db/db.ts
3148
3267
  function getDB(dbName, opts) {
3149
- return new DatabaseImpl(dbName, opts);
3268
+ return new DDInstrumentedDatabase(new DatabaseImpl(dbName, opts));
3150
3269
  }
3151
3270
  async function doWithDB(dbName, cb, opts) {
3152
3271
  const db = getDB(dbName, opts);
@@ -3167,6 +3286,7 @@ var init_db3 = __esm({
3167
3286
  "src/db/db.ts"() {
3168
3287
  "use strict";
3169
3288
  init_couch();
3289
+ init_instrumentation();
3170
3290
  }
3171
3291
  });
3172
3292
 
@@ -5731,7 +5851,7 @@ var init_system2 = __esm({
5731
5851
  });
5732
5852
 
5733
5853
  // src/logging/pino/logger.ts
5734
- var import_pino, import_pino_pretty, pinoInstance, isPlainObject2, isError2, isMessage2, getLogParams3, logger;
5854
+ var import_pino, import_pino_pretty, import_dd_trace2, import_ext, pinoInstance, isPlainObject2, isError2, isMessage2, getLogParams3, logger;
5735
5855
  var init_logger = __esm({
5736
5856
  "src/logging/pino/logger.ts"() {
5737
5857
  "use strict";
@@ -5740,6 +5860,8 @@ var init_logger = __esm({
5740
5860
  init_environment2();
5741
5861
  init_context2();
5742
5862
  init_correlation2();
5863
+ import_dd_trace2 = __toESM(require("dd-trace"));
5864
+ import_ext = require("dd-trace/ext");
5743
5865
  init_system2();
5744
5866
  if (!environment_default.DISABLE_PINO_LOGGER) {
5745
5867
  let isPlainObject = function(obj) {
@@ -5773,6 +5895,10 @@ var init_logger = __esm({
5773
5895
  identityType: identity?.type,
5774
5896
  correlationId: getId()
5775
5897
  };
5898
+ const span = import_dd_trace2.default.scope().active();
5899
+ if (span) {
5900
+ import_dd_trace2.default.inject(span.context(), import_ext.formats.LOG, contextObject);
5901
+ }
5776
5902
  const mergingObject = {
5777
5903
  err: error,
5778
5904
  pid: process.pid,
@@ -6598,15 +6724,12 @@ var TTL = /* @__PURE__ */ ((TTL2) => {
6598
6724
  TTL2[TTL2["ONE_DAY"] = 86400] = "ONE_DAY";
6599
6725
  return TTL2;
6600
6726
  })(TTL || {});
6601
- function performExport(funcName) {
6602
- return (...args) => GENERIC[funcName](...args);
6603
- }
6604
- var keys = performExport("keys");
6605
- var get2 = performExport("get");
6606
- var store = performExport("store");
6607
- var destroy = performExport("delete");
6608
- var withCache = performExport("withCache");
6609
- var bustCache = performExport("bustCache");
6727
+ var keys = (...args) => GENERIC.keys(...args);
6728
+ var get2 = (...args) => GENERIC.get(...args);
6729
+ var store = (...args) => GENERIC.store(...args);
6730
+ var destroy = (...args) => GENERIC.delete(...args);
6731
+ var withCache = (...args) => GENERIC.withCache(...args);
6732
+ var bustCache = (...args) => GENERIC.bustCache(...args);
6610
6733
 
6611
6734
  // src/cache/user.ts
6612
6735
  var user_exports = {};
@@ -7065,13 +7188,13 @@ function validEmail(value) {
7065
7188
  }
7066
7189
 
7067
7190
  // src/utils/Duration.ts
7068
- var DurationType = /* @__PURE__ */ ((DurationType4) => {
7069
- DurationType4["MILLISECONDS"] = "milliseconds";
7070
- DurationType4["SECONDS"] = "seconds";
7071
- DurationType4["MINUTES"] = "minutes";
7072
- DurationType4["HOURS"] = "hours";
7073
- DurationType4["DAYS"] = "days";
7074
- return DurationType4;
7191
+ var DurationType = /* @__PURE__ */ ((DurationType3) => {
7192
+ DurationType3["MILLISECONDS"] = "milliseconds";
7193
+ DurationType3["SECONDS"] = "seconds";
7194
+ DurationType3["MINUTES"] = "minutes";
7195
+ DurationType3["HOURS"] = "hours";
7196
+ DurationType3["DAYS"] = "days";
7197
+ return DurationType3;
7075
7198
  })(DurationType || {});
7076
7199
  var conversion = {
7077
7200
  milliseconds: 1,
@@ -11210,7 +11333,8 @@ var Writethrough = class {
11210
11333
  var passwordReset_exports = {};
11211
11334
  __export(passwordReset_exports, {
11212
11335
  createCode: () => createCode2,
11213
- getCode: () => getCode2
11336
+ getCode: () => getCode2,
11337
+ invalidateCode: () => invalidateCode
11214
11338
  });
11215
11339
  init_init();
11216
11340
  var TTL_SECONDS2 = Duration.fromHours(1).toSeconds();
@@ -11224,10 +11348,16 @@ async function getCode2(code) {
11224
11348
  const client = await getPasswordResetClient();
11225
11349
  const value = await client.get(code);
11226
11350
  if (!value) {
11227
- throw "Provided information is not valid, cannot reset password - please try again.";
11351
+ throw new Error(
11352
+ "Provided information is not valid, cannot reset password - please try again."
11353
+ );
11228
11354
  }
11229
11355
  return value;
11230
11356
  }
11357
+ async function invalidateCode(code) {
11358
+ const client = await getPasswordResetClient();
11359
+ await client.delete(code);
11360
+ }
11231
11361
 
11232
11362
  // src/configs/configs.ts
11233
11363
  init_context2();