@budibase/backend-core 2.30.2 → 2.30.4

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.
Files changed (66) hide show
  1. package/dist/index.js +371 -169
  2. package/dist/index.js.map +3 -3
  3. package/dist/index.js.meta.json +1 -1
  4. package/dist/package.json +5 -5
  5. package/dist/plugins.js +1 -0
  6. package/dist/plugins.js.map +2 -2
  7. package/dist/plugins.js.meta.json +1 -1
  8. package/dist/src/context/mainContext.d.ts +2 -0
  9. package/dist/src/context/mainContext.js +19 -0
  10. package/dist/src/context/mainContext.js.map +1 -1
  11. package/dist/src/context/types.d.ts +3 -0
  12. package/dist/src/environment.d.ts +4 -0
  13. package/dist/src/environment.js +27 -1
  14. package/dist/src/environment.js.map +1 -1
  15. package/dist/src/events/processors/posthog/PosthogProcessor.d.ts +1 -1
  16. package/dist/src/events/processors/posthog/PosthogProcessor.js +2 -2
  17. package/dist/src/events/processors/posthog/PosthogProcessor.js.map +1 -1
  18. package/dist/src/features/index.d.ts +30 -28
  19. package/dist/src/features/index.js +200 -79
  20. package/dist/src/features/index.js.map +1 -1
  21. package/dist/src/index.d.ts +3 -1
  22. package/dist/src/index.js +3 -1
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/redis/redis.d.ts +1 -0
  25. package/dist/src/redis/redis.js +4 -0
  26. package/dist/src/redis/redis.js.map +1 -1
  27. package/dist/src/security/auth.js +1 -1
  28. package/dist/src/security/auth.js.map +1 -1
  29. package/dist/src/sql/sqlTable.js +23 -8
  30. package/dist/src/sql/sqlTable.js.map +1 -1
  31. package/dist/tests/core/utilities/mocks/index.d.ts +0 -2
  32. package/dist/tests/core/utilities/mocks/index.js +1 -7
  33. package/dist/tests/core/utilities/mocks/index.js.map +1 -1
  34. package/dist/tests/core/utilities/structures/users.js +1 -1
  35. package/dist/tests/core/utilities/structures/users.js.map +1 -1
  36. package/dist/tests/jestSetup.js +7 -2
  37. package/dist/tests/jestSetup.js.map +1 -1
  38. package/package.json +5 -5
  39. package/src/context/mainContext.ts +19 -0
  40. package/src/context/tests/index.spec.ts +1 -1
  41. package/src/context/types.ts +3 -0
  42. package/src/environment.ts +29 -0
  43. package/src/events/processors/posthog/PosthogProcessor.ts +1 -1
  44. package/src/events/processors/posthog/tests/PosthogProcessor.spec.ts +16 -22
  45. package/src/features/index.ts +242 -80
  46. package/src/features/tests/features.spec.ts +209 -63
  47. package/src/index.ts +1 -1
  48. package/src/middleware/passport/sso/tests/oidc.spec.ts +4 -12
  49. package/src/middleware/passport/sso/tests/sso.spec.ts +10 -12
  50. package/src/plugin/tests/validation.spec.ts +168 -42
  51. package/src/redis/redis.ts +4 -0
  52. package/src/redis/tests/redis.spec.ts +6 -3
  53. package/src/security/auth.ts +1 -1
  54. package/src/security/tests/auth.spec.ts +2 -2
  55. package/src/sql/sqlTable.ts +21 -7
  56. package/tests/core/utilities/mocks/index.ts +0 -2
  57. package/tests/core/utilities/structures/users.ts +1 -1
  58. package/tests/jestSetup.ts +10 -3
  59. package/dist/tests/core/utilities/mocks/fetch.d.ts +0 -32
  60. package/dist/tests/core/utilities/mocks/fetch.js +0 -15
  61. package/dist/tests/core/utilities/mocks/fetch.js.map +0 -1
  62. package/dist/tests/core/utilities/mocks/posthog.d.ts +0 -0
  63. package/dist/tests/core/utilities/mocks/posthog.js +0 -9
  64. package/dist/tests/core/utilities/mocks/posthog.js.map +0 -1
  65. package/tests/core/utilities/mocks/fetch.ts +0 -17
  66. package/tests/core/utilities/mocks/posthog.ts +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"PosthogProcessor.js","sourceRoot":"","sources":["../../../../../src/events/processors/posthog/PosthogProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PosthogProcessor.js","sourceRoot":"","sources":["../../../../../src/events/processors/posthog/PosthogProcessor.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,35 @@
1
- declare class Flag<T> {
1
+ import { PostHogOptions } from "posthog-node";
2
+ import { UserCtx } from "@budibase/types";
3
+ export declare function init(opts?: PostHogOptions): void;
4
+ export declare function shutdown(): void;
5
+ export declare abstract class Flag<T> {
2
6
  defaultValue: T;
3
- static withDefault<T>(value: T): Flag<T>;
4
- private constructor();
7
+ static boolean(defaultValue: boolean): Flag<boolean>;
8
+ static string(defaultValue: string): Flag<string>;
9
+ static number(defaultValue: number): Flag<number>;
10
+ protected constructor(defaultValue: T);
11
+ abstract parse(value: any): T;
5
12
  }
6
- declare const FLAGS: {
7
- LICENSING: Flag<boolean>;
8
- GOOGLE_SHEETS: Flag<boolean>;
9
- USER_GROUPS: Flag<boolean>;
10
- ONBOARDING_TOUR: Flag<boolean>;
11
- };
12
13
  type UnwrapFlag<F> = F extends Flag<infer U> ? U : never;
13
- export type Flags = {
14
- [K in keyof typeof FLAGS]: UnwrapFlag<(typeof FLAGS)[K]>;
14
+ export type FlagValues<T> = {
15
+ [K in keyof T]: UnwrapFlag<T[K]>;
15
16
  };
16
- export declare function defaultFlags(): Flags;
17
- /**
18
- * Reads the TENANT_FEATURE_FLAGS environment variable and returns a Flags object
19
- * populated with the flags for the current tenant, filling in the default values
20
- * if the flag is not set.
21
- *
22
- * Check the tests for examples of how TENANT_FEATURE_FLAGS should be formatted.
23
- *
24
- * In future we plan to add more ways of setting feature flags, e.g. PostHog, and
25
- * they will be accessed through this function as well.
26
- */
27
- export declare function fetch(): Promise<Flags>;
28
- export declare function get<K extends keyof Flags>(name: K): Promise<Flags[K]>;
29
- type BooleanFlags = {
30
- [K in keyof typeof FLAGS]: (typeof FLAGS)[K] extends Flag<boolean> ? K : never;
31
- }[keyof typeof FLAGS];
32
- export declare function isEnabled<K extends BooleanFlags>(name: K): Promise<boolean>;
17
+ type KeysOfType<T, U> = {
18
+ [K in keyof T]: T[K] extends Flag<U> ? K : never;
19
+ }[keyof T];
20
+ export declare class FlagSet<V extends Flag<any>, T extends {
21
+ [key: string]: V;
22
+ }> {
23
+ private readonly flagSchema;
24
+ private readonly setId;
25
+ constructor(flagSchema: T);
26
+ defaults(): FlagValues<T>;
27
+ isFlagName(name: string | number | symbol): name is keyof T;
28
+ get<K extends keyof T>(key: K, ctx?: UserCtx): Promise<FlagValues<T>[K]>;
29
+ isEnabled<K extends KeysOfType<T, boolean>>(key: K, ctx?: UserCtx): Promise<boolean>;
30
+ fetch(ctx?: UserCtx): Promise<FlagValues<T>>;
31
+ }
32
+ export declare const flags: FlagSet<Flag<any>, {
33
+ DEFAULT_VALUES: Flag<boolean>;
34
+ }>;
33
35
  export {};
@@ -35,98 +35,219 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.defaultFlags = defaultFlags;
39
- exports.fetch = fetch;
40
- exports.get = get;
41
- exports.isEnabled = isEnabled;
38
+ exports.flags = exports.FlagSet = exports.Flag = void 0;
39
+ exports.init = init;
40
+ exports.shutdown = shutdown;
42
41
  const environment_1 = __importDefault(require("../environment"));
43
42
  const context = __importStar(require("../context"));
44
- const lodash_1 = require("lodash");
43
+ const posthog_node_1 = require("posthog-node");
44
+ const types_1 = require("@budibase/types");
45
+ const dd_trace_1 = __importDefault(require("dd-trace"));
46
+ let posthog;
47
+ function init(opts) {
48
+ if (environment_1.default.POSTHOG_TOKEN && environment_1.default.POSTHOG_API_HOST) {
49
+ console.log("initializing posthog client...");
50
+ posthog = new posthog_node_1.PostHog(environment_1.default.POSTHOG_TOKEN, Object.assign({ host: environment_1.default.POSTHOG_API_HOST, personalApiKey: environment_1.default.POSTHOG_PERSONAL_TOKEN }, opts));
51
+ }
52
+ else {
53
+ console.log("posthog disabled");
54
+ }
55
+ }
56
+ function shutdown() {
57
+ posthog === null || posthog === void 0 ? void 0 : posthog.shutdown();
58
+ }
45
59
  class Flag {
46
- static withDefault(value) {
47
- return new Flag(value);
60
+ static boolean(defaultValue) {
61
+ return new BooleanFlag(defaultValue);
62
+ }
63
+ static string(defaultValue) {
64
+ return new StringFlag(defaultValue);
65
+ }
66
+ static number(defaultValue) {
67
+ return new NumberFlag(defaultValue);
48
68
  }
49
69
  constructor(defaultValue) {
50
70
  this.defaultValue = defaultValue;
51
71
  }
52
72
  }
53
- // This is the primary source of truth for feature flags. If you want to add a
54
- // new flag, add it here and use the `fetch` and `get` functions to access it.
55
- // All of the machinery in this file is to make sure that flags have their
56
- // default values set correctly and their types flow through the system.
57
- const FLAGS = {
58
- LICENSING: Flag.withDefault(false),
59
- GOOGLE_SHEETS: Flag.withDefault(false),
60
- USER_GROUPS: Flag.withDefault(false),
61
- ONBOARDING_TOUR: Flag.withDefault(false),
62
- };
63
- const DEFAULTS = Object.keys(FLAGS).reduce((acc, key) => {
64
- const typedKey = key;
65
- // @ts-ignore
66
- acc[typedKey] = FLAGS[typedKey].defaultValue;
67
- return acc;
68
- }, {});
69
- // Exported for use in tests, should not be used outside of this file.
70
- function defaultFlags() {
71
- return (0, lodash_1.cloneDeep)(DEFAULTS);
73
+ exports.Flag = Flag;
74
+ class BooleanFlag extends Flag {
75
+ parse(value) {
76
+ if (typeof value === "string") {
77
+ return ["true", "t", "1"].includes(value.toLowerCase());
78
+ }
79
+ if (typeof value === "boolean") {
80
+ return value;
81
+ }
82
+ throw new Error(`could not parse value "${value}" as boolean`);
83
+ }
72
84
  }
73
- function isFlagName(name) {
74
- return FLAGS[name] !== undefined;
85
+ class StringFlag extends Flag {
86
+ parse(value) {
87
+ if (typeof value === "string") {
88
+ return value;
89
+ }
90
+ throw new Error(`could not parse value "${value}" as string`);
91
+ }
75
92
  }
76
- /**
77
- * Reads the TENANT_FEATURE_FLAGS environment variable and returns a Flags object
78
- * populated with the flags for the current tenant, filling in the default values
79
- * if the flag is not set.
80
- *
81
- * Check the tests for examples of how TENANT_FEATURE_FLAGS should be formatted.
82
- *
83
- * In future we plan to add more ways of setting feature flags, e.g. PostHog, and
84
- * they will be accessed through this function as well.
85
- */
86
- function fetch() {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- const currentTenantId = context.getTenantId();
89
- const flags = defaultFlags();
90
- const split = (environment_1.default.TENANT_FEATURE_FLAGS || "")
91
- .split(",")
92
- .map(x => x.split(":"));
93
- for (const [tenantId, ...features] of split) {
94
- if (!tenantId || (tenantId !== "*" && tenantId !== currentTenantId)) {
95
- continue;
93
+ class NumberFlag extends Flag {
94
+ parse(value) {
95
+ if (typeof value === "number") {
96
+ return value;
97
+ }
98
+ if (typeof value === "string") {
99
+ const parsed = parseFloat(value);
100
+ if (!isNaN(parsed)) {
101
+ return parsed;
96
102
  }
97
- for (let feature of features) {
98
- let value = true;
99
- if (feature.startsWith("!")) {
100
- feature = feature.slice(1);
101
- value = false;
103
+ }
104
+ throw new Error(`could not parse value "${value}" as number`);
105
+ }
106
+ }
107
+ class FlagSet {
108
+ constructor(flagSchema) {
109
+ this.flagSchema = flagSchema;
110
+ this.setId = crypto.randomUUID();
111
+ }
112
+ defaults() {
113
+ return Object.keys(this.flagSchema).reduce((acc, key) => {
114
+ const typedKey = key;
115
+ acc[typedKey] = this.flagSchema[key].defaultValue;
116
+ return acc;
117
+ }, {});
118
+ }
119
+ isFlagName(name) {
120
+ return this.flagSchema[name] !== undefined;
121
+ }
122
+ get(key, ctx) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const flags = yield this.fetch(ctx);
125
+ return flags[key];
126
+ });
127
+ }
128
+ isEnabled(key, ctx) {
129
+ return __awaiter(this, void 0, void 0, function* () {
130
+ const flags = yield this.fetch(ctx);
131
+ return flags[key];
132
+ });
133
+ }
134
+ fetch(ctx) {
135
+ return __awaiter(this, void 0, void 0, function* () {
136
+ return yield dd_trace_1.default.trace("features.fetch", (span) => __awaiter(this, void 0, void 0, function* () {
137
+ var _a, _b;
138
+ const cachedFlags = context.getFeatureFlags(this.setId);
139
+ if (cachedFlags) {
140
+ span === null || span === void 0 ? void 0 : span.addTags({ fromCache: true });
141
+ return cachedFlags;
102
142
  }
103
- if (!isFlagName(feature)) {
104
- throw new Error(`Feature: ${feature} is not an allowed option`);
143
+ const tags = {};
144
+ const flagValues = this.defaults();
145
+ const currentTenantId = context.getTenantId();
146
+ const specificallySetFalse = new Set();
147
+ const split = (environment_1.default.TENANT_FEATURE_FLAGS || "")
148
+ .split(",")
149
+ .map(x => x.split(":"));
150
+ for (const [tenantId, ...features] of split) {
151
+ if (!tenantId || (tenantId !== "*" && tenantId !== currentTenantId)) {
152
+ continue;
153
+ }
154
+ tags[`readFromEnvironmentVars`] = true;
155
+ for (let feature of features) {
156
+ let value = true;
157
+ if (feature.startsWith("!")) {
158
+ feature = feature.slice(1);
159
+ value = false;
160
+ specificallySetFalse.add(feature);
161
+ }
162
+ // ignore unknown flags
163
+ if (!this.isFlagName(feature)) {
164
+ continue;
165
+ }
166
+ if (typeof flagValues[feature] !== "boolean") {
167
+ throw new Error(`Feature: ${feature} is not a boolean`);
168
+ }
169
+ // @ts-expect-error - TS does not like you writing into a generic type,
170
+ // but we know that it's okay in this case because it's just an object.
171
+ flagValues[feature] = value;
172
+ tags[`flags.${feature}.source`] = "environment";
173
+ }
105
174
  }
106
- if (typeof flags[feature] !== "boolean") {
107
- throw new Error(`Feature: ${feature} is not a boolean`);
175
+ const license = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.user) === null || _a === void 0 ? void 0 : _a.license;
176
+ if (license) {
177
+ tags[`readFromLicense`] = true;
178
+ for (const feature of license.features) {
179
+ if (!this.isFlagName(feature)) {
180
+ continue;
181
+ }
182
+ if (flagValues[feature] === true ||
183
+ specificallySetFalse.has(feature)) {
184
+ // If the flag is already set to through environment variables, we
185
+ // don't want to override it back to false here.
186
+ continue;
187
+ }
188
+ // @ts-expect-error - TS does not like you writing into a generic type,
189
+ // but we know that it's okay in this case because it's just an object.
190
+ flagValues[feature] = true;
191
+ tags[`flags.${feature}.source`] = "license";
192
+ }
108
193
  }
109
- // @ts-ignore
110
- flags[feature] = value;
111
- }
112
- }
113
- return flags;
114
- });
115
- }
116
- // Gets a single feature flag value. This is a convenience function for
117
- // `fetch().then(flags => flags[name])`.
118
- function get(name) {
119
- return __awaiter(this, void 0, void 0, function* () {
120
- const flags = yield fetch();
121
- return flags[name];
122
- });
123
- }
124
- // Convenience function for boolean flag values. This makes callsites more
125
- // readable for boolean flags.
126
- function isEnabled(name) {
127
- return __awaiter(this, void 0, void 0, function* () {
128
- const flags = yield fetch();
129
- return flags[name];
130
- });
194
+ const identity = context.getIdentity();
195
+ tags[`identity.type`] = identity === null || identity === void 0 ? void 0 : identity.type;
196
+ tags[`identity.tenantId`] = identity === null || identity === void 0 ? void 0 : identity.tenantId;
197
+ tags[`identity._id`] = identity === null || identity === void 0 ? void 0 : identity._id;
198
+ if (posthog && (identity === null || identity === void 0 ? void 0 : identity.type) === types_1.IdentityType.USER) {
199
+ tags[`readFromPostHog`] = true;
200
+ const personProperties = {};
201
+ if (identity.tenantId) {
202
+ personProperties.tenantId = identity.tenantId;
203
+ }
204
+ const posthogFlags = yield posthog.getAllFlagsAndPayloads(identity._id, {
205
+ personProperties,
206
+ });
207
+ for (const [name, value] of Object.entries(posthogFlags.featureFlags)) {
208
+ if (!this.isFlagName(name)) {
209
+ // We don't want an unexpected PostHog flag to break the app, so we
210
+ // just log it and continue.
211
+ console.warn(`Unexpected posthog flag "${name}": ${value}`);
212
+ continue;
213
+ }
214
+ if (flagValues[name] === true || specificallySetFalse.has(name)) {
215
+ // If the flag is already set to through environment variables, we
216
+ // don't want to override it back to false here.
217
+ continue;
218
+ }
219
+ const payload = (_b = posthogFlags.featureFlagPayloads) === null || _b === void 0 ? void 0 : _b[name];
220
+ const flag = this.flagSchema[name];
221
+ try {
222
+ // @ts-expect-error - TS does not like you writing into a generic
223
+ // type, but we know that it's okay in this case because it's just
224
+ // an object.
225
+ flagValues[name] = flag.parse(payload || value);
226
+ tags[`flags.${name}.source`] = "posthog";
227
+ }
228
+ catch (err) {
229
+ // We don't want an invalid PostHog flag to break the app, so we just
230
+ // log it and continue.
231
+ console.warn(`Error parsing posthog flag "${name}": ${value}`, err);
232
+ }
233
+ }
234
+ }
235
+ context.setFeatureFlags(this.setId, flagValues);
236
+ for (const [key, value] of Object.entries(flagValues)) {
237
+ tags[`flags.${key}.value`] = value;
238
+ }
239
+ span === null || span === void 0 ? void 0 : span.addTags(tags);
240
+ return flagValues;
241
+ }));
242
+ });
243
+ }
131
244
  }
245
+ exports.FlagSet = FlagSet;
246
+ // This is the primary source of truth for feature flags. If you want to add a
247
+ // new flag, add it here and use the `fetch` and `get` functions to access it.
248
+ // All of the machinery in this file is to make sure that flags have their
249
+ // default values set correctly and their types flow through the system.
250
+ exports.flags = new FlagSet({
251
+ DEFAULT_VALUES: Flag.boolean(false),
252
+ });
132
253
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/index.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export * as locks from "./redis/redlockImpl";
27
27
  export * as utils from "./utils";
28
28
  export * as errors from "./errors";
29
29
  export * as timers from "./timers";
30
- export { default as env } from "./environment";
30
+ export { default as env, withEnv, setEnv } from "./environment";
31
31
  export * as blacklist from "./blacklist";
32
32
  export * as docUpdates from "./docUpdates";
33
33
  export * from "./utils/Duration";
@@ -72,6 +72,8 @@ export declare const tenancy: {
72
72
  getDevAppDB(opts?: any): import("@budibase/types").Database;
73
73
  isScim(): boolean;
74
74
  getCurrentContext(): import("./context/types").ContextMap | undefined;
75
+ getFeatureFlags<T extends Record<string, any>>(key: string): T | undefined;
76
+ setFeatureFlags(key: string, value: Record<string, any>): void;
75
77
  getProdAppId: () => string;
76
78
  getTenantDB(tenantId: string): import("@budibase/types").Database;
77
79
  saveTenantInfo(tenantInfo: import("@budibase/types").TenantInfo): Promise<import("@budibase/nano").DocumentInsertResponse>;
package/dist/src/index.js CHANGED
@@ -29,7 +29,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
29
29
  return (mod && mod.__esModule) ? mod : { "default": mod };
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.init = exports.tenancy = exports.sql = exports.security = exports.docIds = exports.docUpdates = exports.blacklist = exports.env = exports.timers = exports.errors = exports.utils = exports.locks = exports.RedisClient = exports.redis = exports.objectStore = exports.cache = exports.context = exports.db = exports.queue = exports.encryption = exports.plugins = exports.middleware = exports.logging = exports.constants = exports.auth = exports.platform = exports.sessions = exports.features = exports.installation = exports.accounts = exports.permissions = exports.roles = exports.userUtils = exports.users = exports.migrations = exports.events = exports.configs = void 0;
32
+ exports.init = exports.tenancy = exports.sql = exports.security = exports.docIds = exports.docUpdates = exports.blacklist = exports.setEnv = exports.withEnv = exports.env = exports.timers = exports.errors = exports.utils = exports.locks = exports.RedisClient = exports.redis = exports.objectStore = exports.cache = exports.context = exports.db = exports.queue = exports.encryption = exports.plugins = exports.middleware = exports.logging = exports.constants = exports.auth = exports.platform = exports.sessions = exports.features = exports.installation = exports.accounts = exports.permissions = exports.roles = exports.userUtils = exports.users = exports.migrations = exports.events = exports.configs = void 0;
33
33
  exports.configs = __importStar(require("./configs"));
34
34
  exports.events = __importStar(require("./events"));
35
35
  exports.migrations = __importStar(require("./migrations"));
@@ -62,6 +62,8 @@ exports.errors = __importStar(require("./errors"));
62
62
  exports.timers = __importStar(require("./timers"));
63
63
  var environment_1 = require("./environment");
64
64
  Object.defineProperty(exports, "env", { enumerable: true, get: function () { return __importDefault(environment_1).default; } });
65
+ Object.defineProperty(exports, "withEnv", { enumerable: true, get: function () { return environment_1.withEnv; } });
66
+ Object.defineProperty(exports, "setEnv", { enumerable: true, get: function () { return environment_1.setEnv; } });
65
67
  exports.blacklist = __importStar(require("./blacklist"));
66
68
  exports.docUpdates = __importStar(require("./docUpdates"));
67
69
  __exportStar(require("./utils/Duration"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAoC;AACpC,mDAAkC;AAClC,2DAA0C;AAC1C,iDAAgC;AAChC,2DAA0C;AAC1C,0DAAyC;AACzC,sEAAqD;AACrD,uDAAsC;AACtC,+DAA8C;AAC9C,uDAAsC;AACtC,gEAA+C;AAC/C,uDAAsC;AACtC,+CAA8B;AAC9B,yDAAwC;AACxC,qDAAoC;AACpC,2DAA0C;AAC1C,oDAAmC;AACnC,oEAAmD;AACnD,iDAAgC;AAChC,2CAA0B;AAC1B,qDAAoC;AACpC,iDAAgC;AAChC,6DAA4C;AAC5C,iDAAgC;AAChC,iCAA+C;AAAtC,oGAAA,MAAM,OAAe;AAC9B,6DAA4C;AAC5C,iDAAgC;AAChC,mDAAkC;AAClC,mDAAkC;AAClC,6CAA8C;AAArC,mHAAA,OAAO,OAAO;AACvB,yDAAwC;AACxC,2DAA0C;AAC1C,mDAAgC;AAChC,mDAAkC;AAClC,uDAAsC;AACtC,6CAA4B;AAC5B,qDAAqD;AACrD,uDAAuD;AACvD,wBAAwB;AACxB,mDAAoC;AACpC,oDAAqC;AAExB,QAAA,OAAO,mCACf,QAAQ,GACR,OAAO,EACX;AAED,gCAAgC;AAChC,2CAAwB;AAExB,4BAA4B;AAC5B,8CAA2B;AAE3B,+BAA+B;AAC/B,yCAA0B;AAEnB,MAAM,IAAI,GAAG,CAAC,OAAY,EAAE,EAAE,EAAE;IACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClB,CAAC,CAAA;AAFY,QAAA,IAAI,QAEhB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAoC;AACpC,mDAAkC;AAClC,2DAA0C;AAC1C,iDAAgC;AAChC,2DAA0C;AAC1C,0DAAyC;AACzC,sEAAqD;AACrD,uDAAsC;AACtC,+DAA8C;AAC9C,uDAAsC;AACtC,gEAA+C;AAC/C,uDAAsC;AACtC,+CAA8B;AAC9B,yDAAwC;AACxC,qDAAoC;AACpC,2DAA0C;AAC1C,oDAAmC;AACnC,oEAAmD;AACnD,iDAAgC;AAChC,2CAA0B;AAC1B,qDAAoC;AACpC,iDAAgC;AAChC,6DAA4C;AAC5C,iDAAgC;AAChC,iCAA+C;AAAtC,oGAAA,MAAM,OAAe;AAC9B,6DAA4C;AAC5C,iDAAgC;AAChC,mDAAkC;AAClC,mDAAkC;AAClC,6CAA+D;AAAtD,mHAAA,OAAO,OAAO;AAAE,sGAAA,OAAO,OAAA;AAAE,qGAAA,MAAM,OAAA;AACxC,yDAAwC;AACxC,2DAA0C;AAC1C,mDAAgC;AAChC,mDAAkC;AAClC,uDAAsC;AACtC,6CAA4B;AAC5B,qDAAqD;AACrD,uDAAuD;AACvD,wBAAwB;AACxB,mDAAoC;AACpC,oDAAqC;AAExB,QAAA,OAAO,mCACf,QAAQ,GACR,OAAO,EACX;AAED,gCAAgC;AAChC,2CAAwB;AAExB,4BAA4B;AAC5B,8CAA2B;AAE3B,+BAA+B;AAC/B,yCAA0B;AAEnB,MAAM,IAAI,GAAG,CAAC,OAAY,EAAE,EAAE,EAAE;IACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClB,CAAC,CAAA;AAFY,QAAA,IAAI,QAEhB"}
@@ -1,4 +1,5 @@
1
1
  import Redis from "ioredis";
2
+ export declare function closeAll(): void;
2
3
  declare class RedisWrapper {
3
4
  _db: string;
4
5
  _select: number;
@@ -35,6 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.closeAll = closeAll;
38
39
  const environment_1 = __importDefault(require("../environment"));
39
40
  const ioredis_1 = __importDefault(require("ioredis"));
40
41
  // mock-redis doesn't have any typing
@@ -134,6 +135,9 @@ function init(selectDb = DEFAULT_SELECT_DB) {
134
135
  });
135
136
  CLIENTS[selectDb] = client;
136
137
  }
138
+ function closeAll() {
139
+ Object.values(CLIENTS).forEach(client => client.disconnect());
140
+ }
137
141
  function waitForConnection(selectDb = DEFAULT_SELECT_DB) {
138
142
  return new Promise(resolve => {
139
143
  if (pickClient(selectDb) == null) {
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/redis/redis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/redis/redis.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiHA,4BAEC;AAnHD,iEAAgC;AAChC,sDAAwC;AACxC,qCAAqC;AACrC,IAAI,SAA0B,CAAA;AAC9B,IAAI,qBAAG,CAAC,UAAU,EAAE,CAAC;IACnB,IAAI,CAAC;QACH,gCAAgC;QAChC,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACvC,CAAC;AACH,CAAC;AACD,mCAOgB;AAChB,wCAAqC;AACrC,kDAAmC;AAEnC,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAC/B,MAAM,SAAS,GAAG,qBAAG,CAAC,eAAe,CAAA;AACrC,MAAM,iBAAiB,GAAG,0BAAkB,CAAC,OAAO,CAAA;AAEpD,4CAA4C;AAC5C,IAAI,MAAM,GAAG,KAAK,CAAA;AAClB,MAAM,OAAO,GAA0B,EAAE,CAAA;AACzC,IAAI,SAAS,GAAG,KAAK,CAAA;AAErB,8BAA8B;AAC9B,IAAI,qBAAG,CAAC,UAAU,EAAE,CAAC;IACnB,SAAS,GAAG,IAAI,CAAA;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB;IAClC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,OAAuB,EAAE,GAAmB;IACnE,oCAAoC;IACpC,IAAI,MAAM,EAAE,CAAC;QACX,OAAM;IACR,CAAC;IACD,MAAM,GAAG,IAAI,CAAA;IACb,6BAA6B;IAC7B,YAAY,CAAC,OAAO,CAAC,CAAA;IACrB,SAAS,GAAG,KAAK,CAAA;IACjB,IAAA,kBAAQ,EAAC,yBAAyB,EAAE,GAAG,CAAC,CAAA;IACxC,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,EAAE,CAAA;IACR,CAAC,EAAE,eAAe,CAAC,CAAA;AACrB,CAAC;AAED;;;GAGG;AACH,SAAS,IAAI,CAAC,QAAQ,GAAG,iBAAiB;IACxC,MAAM,SAAS,GAAG,qBAAG,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAK,CAAA;IACjE,IAAI,OAAuB,CAAA;IAC3B,MAAM,GAAG,KAAK,CAAA;IACd,IAAI,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjC,4BAA4B;IAC5B,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;QACxB,OAAM;IACR,CAAC;IACD,yCAAyC;IACzC,IAAI,qBAAG,CAAC,UAAU,EAAE,CAAC;QACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,SAAS,CAAC,IAAA,uBAAe,GAAE,CAAC,CAAA;IACtD,CAAC;IACD,sDAAsD;IACtD,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,eAAe,CAAC,OAAO,EAAE,yCAAyC,CAAC,CAAA;QACrE,CAAC;IACH,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAEtB,kCAAkC;IAClC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,UAAU,EAAE,CAAA;IACrB,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,iCAAyB,GAAE,CAAA;IAClD,MAAM,IAAI,GAAG,IAAA,uBAAe,GAAE,CAAA;IAE9B,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IACD,kBAAkB;IAClB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAU,EAAE,EAAE;QAC9B,IAAI,qBAAG,CAAC,MAAM,EAAE,EAAE,CAAC;YACjB,sCAAsC;YACtC,4BAA4B;YAC5B,OAAM;QACR,CAAC;QACD,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;QAChC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAA;QACjD,YAAY,CAAC,OAAO,CAAC,CAAA;QACrB,SAAS,GAAG,IAAI,CAAA;IAClB,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;AAC5B,CAAC;AAED,SAAgB,QAAQ;IACtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAmB,iBAAiB;IAC7D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YACjC,IAAI,EAAE,CAAA;QACR,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,EAAE,CAAC,CAAA;YACX,OAAM;QACR,CAAC;QACD,mCAAmC;QACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;YAC/B,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACtB,OAAO,CAAC,EAAE,CAAC,CAAA;YACb,CAAC;QACH,CAAC,EAAE,GAAG,CAAC,CAAA;IACT,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,MAAW,EAAE,MAAoB;IACxD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;QAC5B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAc,EAAE,EAAE;YACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACjB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACrB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YAChC,MAAM,CAAC,GAAG,CAAC,CAAA;QACb,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAS,EAAE;YAC1B,MAAM,SAAS,GAAa,KAAK,CAAC,IAAI,CAAC,UAAU,CAAa,CAAA;YAC9D,IAAI,CAAC;gBACH,IAAI,WAAW,GAAG,EAAE,CAAA;gBACpB,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;oBAC1B,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;gBACnC,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBAChD,OAAO,CACL,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACpB,GAAG,EAAE,IAAA,sBAAc,EAAC,GAAG,CAAC;oBACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;iBACrC,CAAC,CAAC,CACJ,CAAA;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,CAAC;QACH,CAAC,CAAA,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,YAAY;IAIhB,YAAY,EAAU,EAAE,WAA0B,IAAI;QACpD,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QACb,IAAI,CAAC,OAAO,GAAG,QAAQ,IAAI,iBAAiB,CAAA;IAC9C,CAAC;IAED,SAAS;QACP,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAEK,IAAI;;YACR,MAAM,GAAG,KAAK,CAAA;YACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAClB,MAAM,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACrC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,qBAAG,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACvC,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;KAAA;IAEK,MAAM;;YACV,MAAM,GAAG,IAAI,CAAA;YACb,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,EAAE,CAAA;QAC/B,CAAC;KAAA;IAEK,IAAI;6DAAC,GAAG,GAAG,EAAE;YACjB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,GAAG,GAAG,GAAG,EAAE,GAAG,iBAAS,GAAG,GAAG,EAAE,CAAA;YAC/B,IAAI,MAAM,CAAA;YACV,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,IAAI,GAAI,IAAI,CAAC,SAAS,EAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBACjE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YAC/D,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAI,IAAI,CAAC,SAAS,EAAY,CAAC,UAAU,CAAC;oBAC9C,KAAK,EAAE,GAAG,GAAG,GAAG;oBAChB,KAAK,EAAE,GAAG;iBACX,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAS,CAAC,CAAA;QACzD,CAAC;KAAA;IAEK,IAAI,CAAC,OAAe;;YACxB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QACxD,CAAC;KAAA;IAEK,MAAM,CAAC,GAAW;;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,OAAO,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAA,mBAAW,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;QAC5D,CAAC;KAAA;IAEK,GAAG,CAAC,GAAW;;YACnB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;YACjE,6BAA6B;YAC7B,aAAa;YACb,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACrC,aAAa;gBACb,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAA;YACpB,CAAC;YACD,gDAAgD;YAChD,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAS,CAAC,CAAA;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAA;YACjB,CAAC;QACH,CAAC;KAAA;IAEK,OAAO,CAAI,IAAc;;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,EAAE,CAAA;YACX,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,mBAAW,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;YAC1D,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;YACxD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,IAAI,KAAK,GAAsB,EAAE,CAAA;gBACjC,IAAI,KAAK,GAAG,CAAC,CAAA;gBACb,KAAK,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;oBAC5B,IAAI,MAAM,EAAE,CAAC;wBACX,IAAI,MAAM,CAAA;wBACV,IAAI,CAAC;4BACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;wBAC7B,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,MAAM,GAAG,MAAM,CAAA;wBACjB,CAAC;wBACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAA;oBAC7B,CAAC;oBACD,KAAK,EAAE,CAAA;gBACT,CAAC;gBACD,OAAO,KAAK,CAAA;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;KAAA;IAEK,KAAK;6DAAC,GAAW,EAAE,KAAU,EAAE,gBAA+B,IAAI;YACtE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAC/B,CAAC;YACD,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YACxC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;YAC9C,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;YAC3D,CAAC;QACH,CAAC;KAAA;IAEK,SAAS;6DACb,IAAyB,EACzB,gBAA+B,IAAI;YAEnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAE/B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACpE,GAAG,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC7B,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;gBAC3D,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAyB,CAAC,CAAA;YAE7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;YAClC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YAE1B,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;gBAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC3C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;gBACrC,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACvB,CAAC;KAAA;IAEK,MAAM,CAAC,GAAW;;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YACxC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QAC1C,CAAC;KAAA;IAEK,SAAS,CAAC,GAAW,EAAE,aAAqB;;YAChD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YACxC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;QAC3D,CAAC;KAAA;IAEK,MAAM,CAAC,GAAW;;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAA,mBAAW,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;QAClD,CAAC;KAAA;IAEK,UAAU,CAAC,IAAc;;YAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAA;YACnB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,mBAAW,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;QACnE,CAAC;KAAA;IAEK,KAAK;;YACT,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YAC7B,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAClE,CAAC;KAAA;IAEK,SAAS,CAAC,GAAW;;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;YACtE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,4BAA4B,CAAC,CAAA;YAC3D,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;KAAA;IAEK,aAAa,CAAC,GAAW,EAAE,KAAU;;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAE/B,MAAM,SAAS,GAAG;;;;OAIf,CAAA;YAEH,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAA,mBAAW,EAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACpE,CAAC;KAAA;CACF;AAED,kBAAe,YAAY,CAAA"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.PASSWORD_MAX_LENGTH = exports.PASSWORD_MIN_LENGTH = void 0;
7
7
  exports.validatePassword = validatePassword;
8
8
  const environment_1 = __importDefault(require("../environment"));
9
- exports.PASSWORD_MIN_LENGTH = +(environment_1.default.PASSWORD_MIN_LENGTH || 8);
9
+ exports.PASSWORD_MIN_LENGTH = +(environment_1.default.PASSWORD_MIN_LENGTH || 12);
10
10
  exports.PASSWORD_MAX_LENGTH = +(environment_1.default.PASSWORD_MAX_LENGTH || 512);
11
11
  function validatePassword(password) {
12
12
  if (!password || password.length < exports.PASSWORD_MIN_LENGTH) {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/security/auth.ts"],"names":[],"mappings":";;;;;;AAKA,4CAkBC;AAvBD,iEAAgC;AAEnB,QAAA,mBAAmB,GAAG,CAAC,CAAC,qBAAG,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAA;AACrD,QAAA,mBAAmB,GAAG,CAAC,CAAC,qBAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,CAAA;AAEpE,SAAgB,gBAAgB,CAC9B,QAAgB;IAEhB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,2BAAmB,EAAE,CAAC;QACvD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,6BAA6B,2BAAmB,cAAc;SACtE,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,2BAAmB,EAAE,CAAC;QAC1C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,6BAA6B,2BAAmB,cAAc;SACtE,CAAA;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/security/auth.ts"],"names":[],"mappings":";;;;;;AAKA,4CAkBC;AAvBD,iEAAgC;AAEnB,QAAA,mBAAmB,GAAG,CAAC,CAAC,qBAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAA;AACtD,QAAA,mBAAmB,GAAG,CAAC,CAAC,qBAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,CAAA;AAEpE,SAAgB,gBAAgB,CAC9B,QAAgB;IAEhB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,2BAAmB,EAAE,CAAC;QACvD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,6BAA6B,2BAAmB,cAAc;SACtE,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,2BAAmB,EAAE,CAAC;QAC1C,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,6BAA6B,2BAAmB,cAAc;SACtE,CAAA;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC"}
@@ -9,17 +9,26 @@ function isIgnoredType(type) {
9
9
  return ignored.indexOf(type) !== -1;
10
10
  }
11
11
  function generateSchema(schema, table, tables, oldTable = null, renamed) {
12
- let primaryKey = table && table.primary ? table.primary[0] : null;
12
+ let primaryKeys = table && table.primary ? table.primary : [];
13
13
  const columns = Object.values(table.schema);
14
14
  // all columns in a junction table will be meta
15
15
  let metaCols = columns.filter(col => col.meta);
16
16
  let isJunction = metaCols.length === columns.length;
17
+ let columnTypeSet = [];
17
18
  // can't change primary once its set for now
18
- if (primaryKey && !oldTable && !isJunction) {
19
- schema.increments(primaryKey).primary();
20
- }
21
- else if (!oldTable && isJunction) {
22
- schema.primary(metaCols.map(col => col.name));
19
+ if (!oldTable) {
20
+ // junction tables are special - we have an expected format
21
+ if (isJunction) {
22
+ schema.primary(metaCols.map(col => col.name));
23
+ }
24
+ else if (primaryKeys.length === 1) {
25
+ schema.increments(primaryKeys[0]).primary();
26
+ // note that we've set its type
27
+ columnTypeSet.push(primaryKeys[0]);
28
+ }
29
+ else {
30
+ schema.primary(primaryKeys);
31
+ }
23
32
  }
24
33
  // check if any columns need added
25
34
  const foreignKeys = Object.values(table.schema).map(col => col.foreignKey);
@@ -27,7 +36,7 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
27
36
  // skip things that are already correct
28
37
  const oldColumn = oldTable ? oldTable.schema[key] : null;
29
38
  if ((oldColumn && oldColumn.type) ||
30
- (primaryKey === key && !isJunction) ||
39
+ columnTypeSet.includes(key) ||
31
40
  (renamed === null || renamed === void 0 ? void 0 : renamed.updated) === key) {
32
41
  continue;
33
42
  }
@@ -38,7 +47,13 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
38
47
  case types_1.FieldType.LONGFORM:
39
48
  case types_1.FieldType.BARCODEQR:
40
49
  case types_1.FieldType.BB_REFERENCE_SINGLE:
41
- schema.text(key);
50
+ // primary key strings have to have a length in some DBs
51
+ if (primaryKeys.includes(key)) {
52
+ schema.string(key, 255);
53
+ }
54
+ else {
55
+ schema.text(key);
56
+ }
42
57
  break;
43
58
  case types_1.FieldType.NUMBER:
44
59
  // if meta is specified then this is a junction table entry