@budibase/backend-core 2.13.11 → 2.13.13
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 +5 -4
- package/dist/index.js.map +2 -2
- package/dist/index.js.meta.json +1 -1
- package/dist/package.json +4 -4
- package/dist/src/redis/redlockImpl.js +2 -3
- package/dist/src/redis/redlockImpl.js.map +1 -1
- package/dist/src/redis/utils.js +3 -1
- package/dist/src/redis/utils.js.map +1 -1
- package/package.json +4 -4
- package/src/db/tests/index.spec.js +0 -1
- package/src/redis/redlockImpl.ts +2 -3
- package/src/redis/utils.ts +3 -1
- package/tests/core/users/users.spec.js +9 -10
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/backend-core",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.13",
|
|
4
4
|
"description": "Budibase backend core libraries used in server and worker",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@budibase/nano": "10.1.3",
|
|
25
25
|
"@budibase/pouchdb-replication-stream": "1.2.10",
|
|
26
|
-
"@budibase/shared-core": "2.13.
|
|
27
|
-
"@budibase/types": "2.13.
|
|
26
|
+
"@budibase/shared-core": "2.13.13",
|
|
27
|
+
"@budibase/types": "2.13.13",
|
|
28
28
|
"@techpass/passport-openidconnect": "0.3.2",
|
|
29
29
|
"aws-cloudfront-sign": "3.0.2",
|
|
30
30
|
"aws-sdk": "2.1030.0",
|
|
@@ -96,5 +96,5 @@
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "81425a13bd4a09ac74f4d2931e8fbfc660eb9e31"
|
|
100
100
|
}
|
|
@@ -41,6 +41,7 @@ const init_1 = require("./init");
|
|
|
41
41
|
const types_1 = require("@budibase/types");
|
|
42
42
|
const context = __importStar(require("../context"));
|
|
43
43
|
const environment_1 = __importDefault(require("../environment"));
|
|
44
|
+
const logging_1 = require("../logging");
|
|
44
45
|
function getClient(type, opts) {
|
|
45
46
|
return __awaiter(this, void 0, void 0, function* () {
|
|
46
47
|
if (type === types_1.LockType.CUSTOM) {
|
|
@@ -133,7 +134,7 @@ function doWithLock(opts, task) {
|
|
|
133
134
|
return { executed: true, result };
|
|
134
135
|
}
|
|
135
136
|
catch (e) {
|
|
136
|
-
|
|
137
|
+
(0, logging_1.logWarn)(`lock type: ${opts.type} error`, e);
|
|
137
138
|
// lock limit exceeded
|
|
138
139
|
if (e.name === "LockError") {
|
|
139
140
|
if (opts.type === types_1.LockType.TRY_ONCE) {
|
|
@@ -142,12 +143,10 @@ function doWithLock(opts, task) {
|
|
|
142
143
|
return { executed: false };
|
|
143
144
|
}
|
|
144
145
|
else {
|
|
145
|
-
console.error(e);
|
|
146
146
|
throw e;
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
else {
|
|
150
|
-
console.error(e);
|
|
151
150
|
throw e;
|
|
152
151
|
}
|
|
153
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redlockImpl.js","sourceRoot":"","sources":["../../../src/redis/redlockImpl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAA6B;AAC7B,iCAAsC;AACtC,2CAAuD;AACvD,oDAAqC;AACrC,iEAAgC;
|
|
1
|
+
{"version":3,"file":"redlockImpl.js","sourceRoot":"","sources":["../../../src/redis/redlockImpl.ts"],"names":[],"mappings":"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"}
|
package/dist/src/redis/utils.js
CHANGED
|
@@ -78,10 +78,12 @@ function getRedisConnectionDetails() {
|
|
|
78
78
|
url = url[0];
|
|
79
79
|
}
|
|
80
80
|
const [host, port] = url.split(":");
|
|
81
|
+
const portNumber = parseInt(port);
|
|
81
82
|
return {
|
|
82
83
|
host,
|
|
83
84
|
password,
|
|
84
|
-
port
|
|
85
|
+
// assume default port for redis if invalid found
|
|
86
|
+
port: isNaN(portNumber) ? 6379 : portNumber,
|
|
85
87
|
};
|
|
86
88
|
}
|
|
87
89
|
exports.getRedisConnectionDetails = getRedisConnectionDetails;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/redis/utils.ts"],"names":[],"mappings":";;;;;;AAAA,iEAAgC;AAGhC,MAAM,eAAe,GAAG,IAAI,CAAA;AAC5B,MAAM,kBAAkB,GAAG,KAAK,CAAA;AACnB,QAAA,SAAS,GAAG,GAAG,CAAA;AAE5B;;;;;;;GAOG;AACH,IAAY,SAgBX;AAhBD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,2CAA8B,CAAA;IAC9B,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;IACtB,kCAAqB,CAAA;IACrB,iCAAoB,CAAA;IACpB,iCAAoB,CAAA;IACpB,4BAAe,CAAA;IACf,yCAA4B,CAAA;IAC5B,qCAAwB,CAAA;IACxB,iCAAoB,CAAA;IACpB,yCAA4B,CAAA;IAC5B,2CAA8B,CAAA;IAC9B,4BAAe,CAAA;IACf,oCAAuB,CAAA;AACzB,CAAC,EAhBW,SAAS,yBAAT,SAAS,QAgBpB;AAED;;;;;;;;GAQG;AACH,IAAY,kBAiBX;AAjBD,WAAY,kBAAkB;IAC5B,iEAAW,CAAA;IACX,qEAAa,CAAA;IACb,6EAAiB,CAAA;IACjB,mEAAY,CAAA;IACZ,mEAAY,CAAA;IACZ,mEAAY,CAAA;IACZ,mEAAY,CAAA;IACZ,mEAAY,CAAA;IACZ,mEAAY,CAAA;IACZ,mEAAY,CAAA;IACZ,oEAAa,CAAA;IACb,sEAAc,CAAA;IACd,sEAAc,CAAA;IACd,sEAAc,CAAA;IACd,sEAAc,CAAA;IACd,sEAAc,CAAA;AAChB,CAAC,EAjBW,kBAAkB,kCAAlB,kBAAkB,QAiB7B;AAED,SAAgB,yBAAyB;IACvC,IAAI,QAAQ,GAAG,qBAAG,CAAC,cAAc,CAAA;IACjC,IAAI,GAAG,GAAsB,qBAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACtD,0BAA0B;IAC1B,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACtC,2BAA2B;IAC3B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACpB,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;QAClB,mBAAmB;QACnB,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/B,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;KACb;SAAM;QACL,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;KACb;IACD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEnC,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/redis/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/backend-core",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.13",
|
|
4
4
|
"description": "Budibase backend core libraries used in server and worker",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@budibase/nano": "10.1.3",
|
|
25
25
|
"@budibase/pouchdb-replication-stream": "1.2.10",
|
|
26
|
-
"@budibase/shared-core": "2.13.
|
|
27
|
-
"@budibase/types": "2.13.
|
|
26
|
+
"@budibase/shared-core": "2.13.13",
|
|
27
|
+
"@budibase/types": "2.13.13",
|
|
28
28
|
"@techpass/passport-openidconnect": "0.3.2",
|
|
29
29
|
"aws-cloudfront-sign": "3.0.2",
|
|
30
30
|
"aws-sdk": "2.1030.0",
|
|
@@ -96,5 +96,5 @@
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "81425a13bd4a09ac74f4d2931e8fbfc660eb9e31"
|
|
100
100
|
}
|
package/src/redis/redlockImpl.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { getLockClient } from "./init"
|
|
|
3
3
|
import { LockOptions, LockType } from "@budibase/types"
|
|
4
4
|
import * as context from "../context"
|
|
5
5
|
import env from "../environment"
|
|
6
|
+
import { logWarn } from "../logging"
|
|
6
7
|
|
|
7
8
|
async function getClient(
|
|
8
9
|
type: LockType,
|
|
@@ -116,7 +117,7 @@ export async function doWithLock<T>(
|
|
|
116
117
|
const result = await task()
|
|
117
118
|
return { executed: true, result }
|
|
118
119
|
} catch (e: any) {
|
|
119
|
-
|
|
120
|
+
logWarn(`lock type: ${opts.type} error`, e)
|
|
120
121
|
// lock limit exceeded
|
|
121
122
|
if (e.name === "LockError") {
|
|
122
123
|
if (opts.type === LockType.TRY_ONCE) {
|
|
@@ -124,11 +125,9 @@ export async function doWithLock<T>(
|
|
|
124
125
|
// due to retry count (0) exceeded
|
|
125
126
|
return { executed: false }
|
|
126
127
|
} else {
|
|
127
|
-
console.error(e)
|
|
128
128
|
throw e
|
|
129
129
|
}
|
|
130
130
|
} else {
|
|
131
|
-
console.error(e)
|
|
132
131
|
throw e
|
|
133
132
|
}
|
|
134
133
|
} finally {
|
package/src/redis/utils.ts
CHANGED
|
@@ -75,10 +75,12 @@ export function getRedisConnectionDetails() {
|
|
|
75
75
|
}
|
|
76
76
|
const [host, port] = url.split(":")
|
|
77
77
|
|
|
78
|
+
const portNumber = parseInt(port)
|
|
78
79
|
return {
|
|
79
80
|
host,
|
|
80
81
|
password,
|
|
81
|
-
port
|
|
82
|
+
// assume default port for redis if invalid found
|
|
83
|
+
port: isNaN(portNumber) ? 6379 : portNumber,
|
|
82
84
|
}
|
|
83
85
|
}
|
|
84
86
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const _ = require(
|
|
2
|
-
const {structures} = require("../../../tests")
|
|
1
|
+
const _ = require("lodash/fp")
|
|
2
|
+
const { structures } = require("../../../tests")
|
|
3
3
|
|
|
4
4
|
jest.mock("../../../src/context")
|
|
5
5
|
jest.mock("../../../src/db")
|
|
@@ -7,10 +7,9 @@ jest.mock("../../../src/db")
|
|
|
7
7
|
const context = require("../../../src/context")
|
|
8
8
|
const db = require("../../../src/db")
|
|
9
9
|
|
|
10
|
-
const {getCreatorCount} = require(
|
|
10
|
+
const { getCreatorCount } = require("../../../src/users/users")
|
|
11
11
|
|
|
12
12
|
describe("Users", () => {
|
|
13
|
-
|
|
14
13
|
let getGlobalDBMock
|
|
15
14
|
let getGlobalUserParamsMock
|
|
16
15
|
let paginationMock
|
|
@@ -26,26 +25,26 @@ describe("Users", () => {
|
|
|
26
25
|
it("Retrieves the number of creators", async () => {
|
|
27
26
|
const getUsers = (offset, limit, creators = false) => {
|
|
28
27
|
const range = _.range(offset, limit)
|
|
29
|
-
const opts = creators ? {builder: {global: true}} : undefined
|
|
28
|
+
const opts = creators ? { builder: { global: true } } : undefined
|
|
30
29
|
return range.map(() => structures.users.user(opts))
|
|
31
30
|
}
|
|
32
31
|
const page1Data = getUsers(0, 8)
|
|
33
32
|
const page2Data = getUsers(8, 12, true)
|
|
34
33
|
getGlobalDBMock.mockImplementation(() => ({
|
|
35
|
-
name
|
|
34
|
+
name: "fake-db",
|
|
36
35
|
allDocs: () => ({
|
|
37
|
-
rows: [...page1Data, ...page2Data]
|
|
38
|
-
})
|
|
36
|
+
rows: [...page1Data, ...page2Data],
|
|
37
|
+
}),
|
|
39
38
|
}))
|
|
40
39
|
paginationMock.mockImplementationOnce(() => ({
|
|
41
40
|
data: page1Data,
|
|
42
41
|
hasNextPage: true,
|
|
43
|
-
nextPage: "1"
|
|
42
|
+
nextPage: "1",
|
|
44
43
|
}))
|
|
45
44
|
paginationMock.mockImplementation(() => ({
|
|
46
45
|
data: page2Data,
|
|
47
46
|
hasNextPage: false,
|
|
48
|
-
nextPage: undefined
|
|
47
|
+
nextPage: undefined,
|
|
49
48
|
}))
|
|
50
49
|
const creatorsCount = await getCreatorCount()
|
|
51
50
|
expect(creatorsCount).toBe(4)
|