@or-sdk/contacts 4.1.1 → 4.1.2-beta.2464.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/CHANGELOG.md +17 -2
- package/dist/cjs/Contacts.js +10 -7
- package/dist/cjs/Contacts.js.map +1 -1
- package/dist/cjs/__tests__/db-mismatch-callback.spec.js +77 -0
- package/dist/cjs/__tests__/db-mismatch-callback.spec.js.map +1 -0
- package/dist/cjs/baseConfigFactory.js +58 -0
- package/dist/cjs/baseConfigFactory.js.map +1 -0
- package/dist/cjs/constants.js +3 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/utils.js +1 -20
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/Contacts.js +9 -7
- package/dist/esm/Contacts.js.map +1 -1
- package/dist/esm/__tests__/db-mismatch-callback.spec.js +39 -0
- package/dist/esm/__tests__/db-mismatch-callback.spec.js.map +1 -0
- package/dist/esm/baseConfigFactory.js +40 -0
- package/dist/esm/baseConfigFactory.js.map +1 -0
- package/dist/esm/constants.js +2 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/utils.js +0 -15
- package/dist/esm/utils.js.map +1 -1
- package/dist/types/Contacts.d.ts +3 -1
- package/dist/types/Contacts.d.ts.map +1 -1
- package/dist/types/__tests__/db-mismatch-callback.spec.d.ts +2 -0
- package/dist/types/__tests__/db-mismatch-callback.spec.d.ts.map +1 -0
- package/dist/types/baseConfigFactory.d.ts +6 -0
- package/dist/types/baseConfigFactory.d.ts.map +1 -0
- package/dist/types/constants.d.ts +2 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/types.d.ts +2 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils.d.ts +0 -5
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/Contacts.ts +21 -14
- package/src/__tests__/db-mismatch-callback.spec.ts +38 -0
- package/src/baseConfigFactory.ts +57 -0
- package/src/constants.ts +4 -0
- package/src/types.ts +7 -0
- package/src/utils.ts +0 -19
package/CHANGELOG.md
CHANGED
|
@@ -2,9 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
-
## [4.1.1](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/contacts@4.0.5...@or-sdk/contacts@4.0.6) (2024-02-12)
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
## [4.1.1](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/contacts@4.1.0...@or-sdk/contacts@4.1.1) (2024-02-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **contacts:** Revert changes for contacts-sdk ([d377b90](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/commit/d377b907b00fd346737a7d02dc5b140f539003ba))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## [4.1.0](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/contacts@4.0.6...@or-sdk/contacts@4.1.0) (2024-02-12)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
* **base:** add ability to pass axios interceptors to the Base constructor ([e8de84f](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/commit/e8de84f91eaedf4edf701ee6c1b7798ad186406b))
|
|
21
|
+
|
|
22
|
+
|
|
8
23
|
|
|
9
24
|
## [4.0.6](https://gitlab.internal.onereach.io/onereach/platform/or-sdk-next/compare/@or-sdk/contacts@4.0.5...@or-sdk/contacts@4.0.6) (2024-02-05)
|
|
10
25
|
|
package/dist/cjs/Contacts.js
CHANGED
|
@@ -31,19 +31,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
32
|
exports.Contacts = void 0;
|
|
33
33
|
var base_1 = require("@or-sdk/base");
|
|
34
|
-
var utils_1 = require("./utils");
|
|
35
|
-
var constants_1 = require("./constants");
|
|
36
34
|
var api_1 = require("./api");
|
|
37
35
|
var apiError_1 = require("./apiError");
|
|
38
36
|
var batchProcessApi_1 = __importDefault(require("./api/batchProcessApi"));
|
|
39
37
|
var bulkContactsCreateApi_1 = __importDefault(require("./api/bulkContactsCreateApi"));
|
|
38
|
+
var baseConfigFactory_1 = require("./baseConfigFactory");
|
|
39
|
+
var constants_1 = require("./constants");
|
|
40
40
|
var Contacts = (function (_super) {
|
|
41
41
|
__extends(Contacts, _super);
|
|
42
42
|
function Contacts(params) {
|
|
43
|
-
var _this = this;
|
|
44
|
-
|
|
45
|
-
_this =
|
|
46
|
-
var apiCall = _this.
|
|
43
|
+
var _this = _super.call(this, (0, baseConfigFactory_1.buildBaseConfig)(params)) || this;
|
|
44
|
+
_this.targetDbVersion = (0, baseConfigFactory_1.extractTargetDbVersion)(params);
|
|
45
|
+
_this.withApiErrorLog = Boolean(params.withApiErrorLog);
|
|
46
|
+
var apiCall = _this.callApi.bind(_this);
|
|
47
47
|
_this.batchProcessApi = new batchProcessApi_1.default(apiCall);
|
|
48
48
|
_this.contactBookApi = new api_1.ContactBookApi(apiCall);
|
|
49
49
|
_this.migrationsApi = new api_1.MigrationsApi(apiCall);
|
|
@@ -54,9 +54,12 @@ var Contacts = (function (_super) {
|
|
|
54
54
|
_this.sharedBookContactPermissionApi = new api_1.SharedBookContactPermissionApi(apiCall);
|
|
55
55
|
_this.fieldValueApi = new api_1.FieldValueApi(apiCall);
|
|
56
56
|
_this.bulkCreateApi = new bulkContactsCreateApi_1.default(apiCall, _this.batchProcessApi);
|
|
57
|
-
_this.withApiErrorLog = Boolean(params.withApiErrorLog);
|
|
58
57
|
return _this;
|
|
59
58
|
}
|
|
59
|
+
Contacts.prototype.callApi = function (params) {
|
|
60
|
+
var _a;
|
|
61
|
+
return _super.prototype.callApiV2.call(this, __assign(__assign({}, params), { customHeaders: __assign(__assign({}, params.customHeaders), (_a = {}, _a[constants_1.DB_TARGET_VERSION_HEADER] = this.targetDbVersion, _a)) }));
|
|
62
|
+
};
|
|
60
63
|
Contacts.prototype.parseError = function (e) {
|
|
61
64
|
if (e.isAxiosError) {
|
|
62
65
|
var code = e.code, message = e.message, stack = e.stack;
|
package/dist/cjs/Contacts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contacts.js","sourceRoot":"","sources":["../../src/Contacts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Contacts.js","sourceRoot":"","sources":["../../src/Contacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var vitest_1 = require("vitest");
|
|
40
|
+
var msw_1 = require("msw");
|
|
41
|
+
var node_1 = require("msw/node");
|
|
42
|
+
var Contacts_1 = require("../Contacts");
|
|
43
|
+
var types_contacts_api_1 = require("@onereach/types-contacts-api");
|
|
44
|
+
var server = (0, node_1.setupServer)(msw_1.rest.get('https://em.url/migrations/v2/status', function (_, res, ctx) {
|
|
45
|
+
return res(ctx.json(types_contacts_api_1.MigrationState.InProgress));
|
|
46
|
+
}));
|
|
47
|
+
var callbacks = {
|
|
48
|
+
onMismatch: function (target, origin) { return target === origin; },
|
|
49
|
+
};
|
|
50
|
+
var buildContactsInstance = function () {
|
|
51
|
+
return new Contacts_1.Contacts({
|
|
52
|
+
token: 'test-token',
|
|
53
|
+
contactsApiUrl: 'https://em.url',
|
|
54
|
+
dbVersionMismatchCallback: callbacks.onMismatch,
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
(0, vitest_1.describe)('dbVersionMismatchCallback', function () {
|
|
58
|
+
(0, vitest_1.beforeAll)(function () { return server.listen(); });
|
|
59
|
+
(0, vitest_1.afterEach)(function () { return server.resetHandlers(); });
|
|
60
|
+
(0, vitest_1.afterAll)(function () { return server.close(); });
|
|
61
|
+
(0, vitest_1.it)('dbVersionMismatchCallback is called on version mismatch', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
62
|
+
var onMismatchSpy, api;
|
|
63
|
+
return __generator(this, function (_a) {
|
|
64
|
+
switch (_a.label) {
|
|
65
|
+
case 0:
|
|
66
|
+
onMismatchSpy = vitest_1.vi.spyOn(callbacks, 'onMismatch');
|
|
67
|
+
api = buildContactsInstance();
|
|
68
|
+
return [4, api.migrationsApi.getMigrationState()];
|
|
69
|
+
case 1:
|
|
70
|
+
_a.sent();
|
|
71
|
+
(0, vitest_1.expect)(onMismatchSpy).toHaveBeenCalled();
|
|
72
|
+
return [2];
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}); });
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=db-mismatch-callback.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-mismatch-callback.spec.js","sourceRoot":"","sources":["../../../src/__tests__/db-mismatch-callback.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAkF;AAClF,2BAA2B;AAC3B,iCAAuC;AAEvC,wCAAuC;AACvC,mEAA8D;AAE9D,IAAM,MAAM,GAAG,IAAA,kBAAW,EACxB,UAAI,CAAC,GAAG,CAAC,qCAAqC,EAAE,UAAC,CAAC,EAAE,GAAG,EAAE,GAAG;IAC1D,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAc,CAAC,UAAU,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC,CACH,CAAC;AAEF,IAAM,SAAS,GAAG;IAChB,UAAU,EAAE,UAAC,MAAc,EAAE,MAAc,IAAO,OAAO,MAAM,KAAK,MAAM,CAAC,CAAA,CAAC;CAC7E,CAAC;AAEF,IAAM,qBAAqB,GAAG;IAC5B,OAAO,IAAI,mBAAQ,CAAC;QAClB,KAAK,EAAE,YAAY;QACnB,cAAc,EAAE,gBAAgB;QAChC,yBAAyB,EAAE,SAAS,CAAC,UAAU;KAChD,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,IAAA,iBAAQ,EAAC,2BAA2B,EAAE;IACpC,IAAA,kBAAS,EAAC,cAAM,OAAA,MAAM,CAAC,MAAM,EAAE,EAAf,CAAe,CAAC,CAAC;IACjC,IAAA,kBAAS,EAAC,cAAM,OAAA,MAAM,CAAC,aAAa,EAAE,EAAtB,CAAsB,CAAC,CAAC;IACxC,IAAA,iBAAQ,EAAC,cAAM,OAAA,MAAM,CAAC,KAAK,EAAE,EAAd,CAAc,CAAC,CAAC;IAE/B,IAAA,WAAE,EAAC,yDAAyD,EAAE;;;;;oBACtD,aAAa,GAAG,WAAE,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;oBAClD,GAAG,GAAG,qBAAqB,EAAE,CAAC;oBACpC,WAAM,GAAG,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAA;;oBAA3C,SAA2C,CAAC;oBAC5C,IAAA,eAAM,EAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;;;;SAC1C,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.buildBaseConfig = exports.extractTargetDbVersion = void 0;
|
|
18
|
+
var agentkeepalive_1 = __importDefault(require("agentkeepalive"));
|
|
19
|
+
var constants_1 = require("./constants");
|
|
20
|
+
var types_contacts_api_1 = require("@onereach/types-contacts-api");
|
|
21
|
+
var buildHttpAgents = function () {
|
|
22
|
+
var socketsPoolOptions = {
|
|
23
|
+
maxSockets: 100,
|
|
24
|
+
maxFreeSockets: 10,
|
|
25
|
+
timeout: 60000,
|
|
26
|
+
freeSocketTimeout: 30000,
|
|
27
|
+
};
|
|
28
|
+
var httpAgent = new agentkeepalive_1.default(socketsPoolOptions);
|
|
29
|
+
var httpsAgent = new agentkeepalive_1.default.HttpsAgent(socketsPoolOptions);
|
|
30
|
+
return {
|
|
31
|
+
httpAgent: httpAgent,
|
|
32
|
+
httpsAgent: httpsAgent,
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
var extractTargetDbVersion = function (params) {
|
|
36
|
+
return params['dbTargetVersion'] || types_contacts_api_1.DB_TARGET_VERSION;
|
|
37
|
+
};
|
|
38
|
+
exports.extractTargetDbVersion = extractTargetDbVersion;
|
|
39
|
+
var buildInterceptors = function (params) {
|
|
40
|
+
var targetVersion = (0, exports.extractTargetDbVersion)(params);
|
|
41
|
+
var _a = params.dbVersionMismatchCallback, dbVersionMismatchCallback = _a === void 0 ? function () { } : _a;
|
|
42
|
+
return {
|
|
43
|
+
response: function (response) {
|
|
44
|
+
var originVersion = response.headers[constants_1.DB_ORIGIN_VERSION_HEADER];
|
|
45
|
+
if (originVersion !== targetVersion) {
|
|
46
|
+
dbVersionMismatchCallback(targetVersion, originVersion);
|
|
47
|
+
}
|
|
48
|
+
return response;
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
var buildBaseConfig = function (params) {
|
|
53
|
+
var token = params.token, discoveryUrl = params.discoveryUrl, contactsApiUrl = params.contactsApiUrl, accountId = params.accountId, withKeepAliveAgents = params.withKeepAliveAgents;
|
|
54
|
+
return __assign(__assign({ token: token, discoveryUrl: discoveryUrl, serviceKey: constants_1.CONTACTS_SERVICE_KEY, serviceUrl: contactsApiUrl, accountId: accountId }, (withKeepAliveAgents ? { httpAgents: buildHttpAgents() } : {})), { interceptors: buildInterceptors(params) });
|
|
55
|
+
};
|
|
56
|
+
exports.buildBaseConfig = buildBaseConfig;
|
|
57
|
+
exports.default = exports.buildBaseConfig;
|
|
58
|
+
//# sourceMappingURL=baseConfigFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseConfigFactory.js","sourceRoot":"","sources":["../../src/baseConfigFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,kEAAmC;AAEnC,yCAA6E;AAC7E,mEAAiE;AAEjE,IAAM,eAAe,GAAG;IACtB,IAAM,kBAAkB,GAAG;QACzB,UAAU,EAAE,GAAG;QACf,cAAc,EAAE,EAAE;QAElB,OAAO,EAAE,KAAK;QAEd,iBAAiB,EAAE,KAAK;KACzB,CAAC;IAEF,IAAM,SAAS,GAAG,IAAI,wBAAK,CAAC,kBAAkB,CAAC,CAAC;IAChD,IAAM,UAAU,GAAG,IAAI,wBAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC5D,OAAO;QACL,SAAS,WAAA;QACT,UAAU,YAAA;KACX,CAAC;AACJ,CAAC,CAAC;AAEK,IAAM,sBAAsB,GAAG,UAAC,MAAsB;IAE3D,OAAQ,MAAM,CAAC,iBAAiB,CAAY,IAAI,sCAAiB,CAAC;AACpE,CAAC,CAAC;AAHW,QAAA,sBAAsB,0BAGjC;AAEF,IAAM,iBAAiB,GAAG,UAAC,MAAsB;IAC/C,IAAM,aAAa,GAAG,IAAA,8BAAsB,EAAC,MAAM,CAAC,CAAC;IAC7C,IAAA,KAAyC,MAAM,0BAAX,EAApC,yBAAyB,mBAAG,cAAO,CAAC,KAAA,CAAY;IACxD,OAAO;QACL,QAAQ,EAAE,UAAC,QAAQ;YACjB,IAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,oCAAwB,CAAC,CAAC;YACjE,IAAI,aAAa,KAAK,aAAa,EAAE;gBACnC,yBAAyB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;aACzD;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEK,IAAM,eAAe,GAAG,UAAC,MAAsB;IAC5C,IAAA,KAAK,GAAmE,MAAM,MAAzE,EAAE,YAAY,GAAqD,MAAM,aAA3D,EAAE,cAAc,GAAqC,MAAM,eAA3C,EAAE,SAAS,GAA0B,MAAM,UAAhC,EAAE,mBAAmB,GAAK,MAAM,oBAAX,CAAY;IACvF,2BACE,KAAK,OAAA,EACL,YAAY,cAAA,EACZ,UAAU,EAAE,gCAAoB,EAChC,UAAU,EAAE,cAAc,EAC1B,SAAS,WAAA,IACN,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACjE,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,IACvC;AACJ,CAAC,CAAC;AAXW,QAAA,eAAe,mBAW1B;AAEF,kBAAe,uBAAe,CAAC"}
|
package/dist/cjs/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BULK_FAILED_SERIES_REPEAT_IN = exports.BULK_POLING_PAUSE_DURATION = exports.CONTACTS_DELETE_MAX_AMOUNT = exports.FAILED_REQUEST_REPEATS = exports.MAX_PARALLEL_BATCH_PROCESSING = exports.REQUEST_PAYLOAD_MAX_BYTES = exports.CONTACTS_SERVICE_KEY = void 0;
|
|
3
|
+
exports.DB_ORIGIN_VERSION_HEADER = exports.DB_TARGET_VERSION_HEADER = exports.BULK_FAILED_SERIES_REPEAT_IN = exports.BULK_POLING_PAUSE_DURATION = exports.CONTACTS_DELETE_MAX_AMOUNT = exports.FAILED_REQUEST_REPEATS = exports.MAX_PARALLEL_BATCH_PROCESSING = exports.REQUEST_PAYLOAD_MAX_BYTES = exports.CONTACTS_SERVICE_KEY = void 0;
|
|
4
4
|
exports.CONTACTS_SERVICE_KEY = 'contacts-api';
|
|
5
5
|
exports.REQUEST_PAYLOAD_MAX_BYTES = 4000000;
|
|
6
6
|
exports.MAX_PARALLEL_BATCH_PROCESSING = 4;
|
|
@@ -8,4 +8,6 @@ exports.FAILED_REQUEST_REPEATS = 3;
|
|
|
8
8
|
exports.CONTACTS_DELETE_MAX_AMOUNT = 1000;
|
|
9
9
|
exports.BULK_POLING_PAUSE_DURATION = 1500;
|
|
10
10
|
exports.BULK_FAILED_SERIES_REPEAT_IN = 30000;
|
|
11
|
+
exports.DB_TARGET_VERSION_HEADER = 'x-db-target-version';
|
|
12
|
+
exports.DB_ORIGIN_VERSION_HEADER = 'x-db-origin-version';
|
|
11
13
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,cAAc,CAAC;AAEtC,QAAA,yBAAyB,GAAG,OAAO,CAAC;AAEpC,QAAA,6BAA6B,GAAG,CAAC,CAAC;AAElC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAE3B,QAAA,0BAA0B,GAAG,IAAI,CAAC;AAElC,QAAA,0BAA0B,GAAG,IAAI,CAAC;AAElC,QAAA,4BAA4B,GAAG,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,cAAc,CAAC;AAEtC,QAAA,yBAAyB,GAAG,OAAO,CAAC;AAEpC,QAAA,6BAA6B,GAAG,CAAC,CAAC;AAElC,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAE3B,QAAA,0BAA0B,GAAG,IAAI,CAAC;AAElC,QAAA,0BAA0B,GAAG,IAAI,CAAC;AAElC,QAAA,4BAA4B,GAAG,KAAK,CAAC;AAErC,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAEjD,QAAA,wBAAwB,GAAG,qBAAqB,CAAC"}
|
package/dist/cjs/utils.js
CHANGED
|
@@ -10,12 +10,8 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.mergeObjects = exports.
|
|
18
|
-
var agentkeepalive_1 = __importDefault(require("agentkeepalive"));
|
|
14
|
+
exports.mergeObjects = exports.debouncePromise = exports.chunkArrByMaxSize = exports.getObjectSizeInBytes = exports.adaptListParams = void 0;
|
|
19
15
|
var propertyToEscape = ['from', 'size', 'orderProperty', 'orderDirection'];
|
|
20
16
|
var adaptListParams = function (params) {
|
|
21
17
|
var toInclude = Object.keys(params).reduce(function (acc, k) {
|
|
@@ -76,21 +72,6 @@ function debouncePromise(caller, delay) {
|
|
|
76
72
|
});
|
|
77
73
|
}
|
|
78
74
|
exports.debouncePromise = debouncePromise;
|
|
79
|
-
function buildHttpAgents() {
|
|
80
|
-
var socketsPoolOptions = {
|
|
81
|
-
maxSockets: 100,
|
|
82
|
-
maxFreeSockets: 10,
|
|
83
|
-
timeout: 60000,
|
|
84
|
-
freeSocketTimeout: 30000,
|
|
85
|
-
};
|
|
86
|
-
var httpAgent = new agentkeepalive_1.default(socketsPoolOptions);
|
|
87
|
-
var httpsAgent = new agentkeepalive_1.default.HttpsAgent(socketsPoolOptions);
|
|
88
|
-
return {
|
|
89
|
-
httpAgent: httpAgent,
|
|
90
|
-
httpsAgent: httpsAgent,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
exports.buildHttpAgents = buildHttpAgents;
|
|
94
75
|
var mergeObjects = function (first, second) {
|
|
95
76
|
for (var _i = 0, _a = Object.entries(second); _i < _a.length; _i++) {
|
|
96
77
|
var _b = _a[_i], key = _b[0], value = _b[1];
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Contacts.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { Base } from '@or-sdk/base';
|
|
2
|
-
import { buildHttpAgents } from './utils';
|
|
3
|
-
import { CONTACTS_SERVICE_KEY } from './constants';
|
|
4
2
|
import { ContactBookApi, MigrationsApi, ContactApi, FieldSchemaApi, SchemaPresetApi, FilterApi, SharedBookContactPermissionApi, FieldValueApi, } from './api';
|
|
5
3
|
import { ApiError } from './apiError';
|
|
6
4
|
import BatchProcessApi from './api/batchProcessApi';
|
|
7
5
|
import BulkContactsCreateApi from './api/bulkContactsCreateApi';
|
|
6
|
+
import { buildBaseConfig, extractTargetDbVersion } from './baseConfigFactory';
|
|
7
|
+
import { DB_TARGET_VERSION_HEADER } from './constants';
|
|
8
8
|
export class Contacts extends Base {
|
|
9
9
|
constructor(params) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const apiCall = this.
|
|
10
|
+
super(buildBaseConfig(params));
|
|
11
|
+
this.targetDbVersion = extractTargetDbVersion(params);
|
|
12
|
+
this.withApiErrorLog = Boolean(params.withApiErrorLog);
|
|
13
|
+
const apiCall = this.callApi.bind(this);
|
|
14
14
|
this.batchProcessApi = new BatchProcessApi(apiCall);
|
|
15
15
|
this.contactBookApi = new ContactBookApi(apiCall);
|
|
16
16
|
this.migrationsApi = new MigrationsApi(apiCall);
|
|
@@ -21,7 +21,9 @@ export class Contacts extends Base {
|
|
|
21
21
|
this.sharedBookContactPermissionApi = new SharedBookContactPermissionApi(apiCall);
|
|
22
22
|
this.fieldValueApi = new FieldValueApi(apiCall);
|
|
23
23
|
this.bulkCreateApi = new BulkContactsCreateApi(apiCall, this.batchProcessApi);
|
|
24
|
-
|
|
24
|
+
}
|
|
25
|
+
callApi(params) {
|
|
26
|
+
return super.callApiV2(Object.assign(Object.assign({}, params), { customHeaders: Object.assign(Object.assign({}, params.customHeaders), { [DB_TARGET_VERSION_HEADER]: this.targetDbVersion }) }));
|
|
25
27
|
}
|
|
26
28
|
parseError(e) {
|
|
27
29
|
if (e.isAxiosError) {
|
package/dist/esm/Contacts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contacts.js","sourceRoot":"","sources":["../../src/Contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,IAAI,
|
|
1
|
+
{"version":3,"file":"Contacts.js","sourceRoot":"","sources":["../../src/Contacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { afterAll, afterEach, beforeAll, describe, expect, it, vi } from 'vitest';
|
|
11
|
+
import { rest } from 'msw';
|
|
12
|
+
import { setupServer } from 'msw/node';
|
|
13
|
+
import { Contacts } from '../Contacts';
|
|
14
|
+
import { MigrationState } from '@onereach/types-contacts-api';
|
|
15
|
+
const server = setupServer(rest.get('https://em.url/migrations/v2/status', (_, res, ctx) => {
|
|
16
|
+
return res(ctx.json(MigrationState.InProgress));
|
|
17
|
+
}));
|
|
18
|
+
const callbacks = {
|
|
19
|
+
onMismatch: (target, origin) => { return target === origin; },
|
|
20
|
+
};
|
|
21
|
+
const buildContactsInstance = () => {
|
|
22
|
+
return new Contacts({
|
|
23
|
+
token: 'test-token',
|
|
24
|
+
contactsApiUrl: 'https://em.url',
|
|
25
|
+
dbVersionMismatchCallback: callbacks.onMismatch,
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
describe('dbVersionMismatchCallback', () => {
|
|
29
|
+
beforeAll(() => server.listen());
|
|
30
|
+
afterEach(() => server.resetHandlers());
|
|
31
|
+
afterAll(() => server.close());
|
|
32
|
+
it('dbVersionMismatchCallback is called on version mismatch', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
+
const onMismatchSpy = vi.spyOn(callbacks, 'onMismatch');
|
|
34
|
+
const api = buildContactsInstance();
|
|
35
|
+
yield api.migrationsApi.getMigrationState();
|
|
36
|
+
expect(onMismatchSpy).toHaveBeenCalled();
|
|
37
|
+
}));
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=db-mismatch-callback.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-mismatch-callback.spec.js","sourceRoot":"","sources":["../../../src/__tests__/db-mismatch-callback.spec.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,MAAM,GAAG,WAAW,CACxB,IAAI,CAAC,GAAG,CAAC,qCAAqC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAC9D,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,SAAS,GAAG;IAChB,UAAU,EAAE,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE,GAAG,OAAO,MAAM,KAAK,MAAM,CAAC,CAAA,CAAC;CAC7E,CAAC;AAEF,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACjC,OAAO,IAAI,QAAQ,CAAC;QAClB,KAAK,EAAE,YAAY;QACnB,cAAc,EAAE,gBAAgB;QAChC,yBAAyB,EAAE,SAAS,CAAC,UAAU;KAChD,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAE/B,EAAE,CAAC,yDAAyD,EAAE,GAAS,EAAE;QACvE,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,qBAAqB,EAAE,CAAC;QACpC,MAAM,GAAG,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAC3C,CAAC,CAAA,CAAC,CAAC;AAEL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import Agent from 'agentkeepalive';
|
|
2
|
+
import { CONTACTS_SERVICE_KEY, DB_ORIGIN_VERSION_HEADER } from './constants';
|
|
3
|
+
import { DB_TARGET_VERSION } from '@onereach/types-contacts-api';
|
|
4
|
+
const buildHttpAgents = () => {
|
|
5
|
+
const socketsPoolOptions = {
|
|
6
|
+
maxSockets: 100,
|
|
7
|
+
maxFreeSockets: 10,
|
|
8
|
+
timeout: 60000,
|
|
9
|
+
freeSocketTimeout: 30000,
|
|
10
|
+
};
|
|
11
|
+
const httpAgent = new Agent(socketsPoolOptions);
|
|
12
|
+
const httpsAgent = new Agent.HttpsAgent(socketsPoolOptions);
|
|
13
|
+
return {
|
|
14
|
+
httpAgent,
|
|
15
|
+
httpsAgent,
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export const extractTargetDbVersion = (params) => {
|
|
19
|
+
return params['dbTargetVersion'] || DB_TARGET_VERSION;
|
|
20
|
+
};
|
|
21
|
+
const buildInterceptors = (params) => {
|
|
22
|
+
const targetVersion = extractTargetDbVersion(params);
|
|
23
|
+
const { dbVersionMismatchCallback = () => { } } = params;
|
|
24
|
+
return {
|
|
25
|
+
response: (response) => {
|
|
26
|
+
const originVersion = response.headers[DB_ORIGIN_VERSION_HEADER];
|
|
27
|
+
if (originVersion !== targetVersion) {
|
|
28
|
+
dbVersionMismatchCallback(targetVersion, originVersion);
|
|
29
|
+
}
|
|
30
|
+
return response;
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export const buildBaseConfig = (params) => {
|
|
35
|
+
const { token, discoveryUrl, contactsApiUrl, accountId, withKeepAliveAgents } = params;
|
|
36
|
+
return Object.assign(Object.assign({ token,
|
|
37
|
+
discoveryUrl, serviceKey: CONTACTS_SERVICE_KEY, serviceUrl: contactsApiUrl, accountId }, (withKeepAliveAgents ? { httpAgents: buildHttpAgents() } : {})), { interceptors: buildInterceptors(params) });
|
|
38
|
+
};
|
|
39
|
+
export default buildBaseConfig;
|
|
40
|
+
//# sourceMappingURL=baseConfigFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseConfigFactory.js","sourceRoot":"","sources":["../../src/baseConfigFactory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,gBAAgB,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,kBAAkB,GAAG;QACzB,UAAU,EAAE,GAAG;QACf,cAAc,EAAE,EAAE;QAElB,OAAO,EAAE,KAAK;QAEd,iBAAiB,EAAE,KAAK;KACzB,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC5D,OAAO;QACL,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,MAAsB,EAAE,EAAE;IAE/D,OAAQ,MAAM,CAAC,iBAAiB,CAAY,IAAI,iBAAiB,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,MAAsB,EAAoB,EAAE;IACrE,MAAM,aAAa,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,EAAE,yBAAyB,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,MAAM,CAAC;IACxD,OAAO;QACL,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YACjE,IAAI,aAAa,KAAK,aAAa,EAAE;gBACnC,yBAAyB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;aACzD;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAsB,EAAc,EAAE;IACpE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC;IACvF,qCACE,KAAK;QACL,YAAY,EACZ,UAAU,EAAE,oBAAoB,EAChC,UAAU,EAAE,cAAc,EAC1B,SAAS,IACN,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACjE,YAAY,EAAE,iBAAiB,CAAC,MAAM,CAAC,IACvC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
package/dist/esm/constants.js
CHANGED
|
@@ -5,4 +5,6 @@ export const FAILED_REQUEST_REPEATS = 3;
|
|
|
5
5
|
export const CONTACTS_DELETE_MAX_AMOUNT = 1000;
|
|
6
6
|
export const BULK_POLING_PAUSE_DURATION = 1500;
|
|
7
7
|
export const BULK_FAILED_SERIES_REPEAT_IN = 30000;
|
|
8
|
+
export const DB_TARGET_VERSION_HEADER = 'x-db-target-version';
|
|
9
|
+
export const DB_ORIGIN_VERSION_HEADER = 'x-db-origin-version';
|
|
8
10
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAEjD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAEjD,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAE/C,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAElD,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAE9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC"}
|
package/dist/esm/utils.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import Agent from 'agentkeepalive';
|
|
2
1
|
const propertyToEscape = ['from', 'size', 'orderProperty', 'orderDirection'];
|
|
3
2
|
export const adaptListParams = (params) => {
|
|
4
3
|
const toInclude = Object.keys(params).reduce((acc, k) => {
|
|
@@ -55,20 +54,6 @@ export function debouncePromise(caller, delay) {
|
|
|
55
54
|
timeout = setTimeout(() => caller().then((x) => res(x)).catch((err) => rej(err)), delay);
|
|
56
55
|
});
|
|
57
56
|
}
|
|
58
|
-
export function buildHttpAgents() {
|
|
59
|
-
const socketsPoolOptions = {
|
|
60
|
-
maxSockets: 100,
|
|
61
|
-
maxFreeSockets: 10,
|
|
62
|
-
timeout: 60000,
|
|
63
|
-
freeSocketTimeout: 30000,
|
|
64
|
-
};
|
|
65
|
-
const httpAgent = new Agent(socketsPoolOptions);
|
|
66
|
-
const httpsAgent = new Agent.HttpsAgent(socketsPoolOptions);
|
|
67
|
-
return {
|
|
68
|
-
httpAgent,
|
|
69
|
-
httpsAgent,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
57
|
export const mergeObjects = (first, second) => {
|
|
73
58
|
for (const [key, value] of Object.entries(second)) {
|
|
74
59
|
first[key] = value;
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/types/Contacts.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AxiosError, Base } from '@or-sdk/base';
|
|
1
|
+
import { AxiosError, Base, CalApiParams } from '@or-sdk/base';
|
|
2
2
|
import { ContactsConfig } from './types';
|
|
3
3
|
import { ContactBookApi, MigrationsApi, ContactApi, FieldSchemaApi, SchemaPresetApi, FilterApi, SharedBookContactPermissionApi, FieldValueApi } from './api';
|
|
4
4
|
import BatchProcessApi from './api/batchProcessApi';
|
|
@@ -15,7 +15,9 @@ export declare class Contacts extends Base {
|
|
|
15
15
|
readonly fieldValueApi: FieldValueApi;
|
|
16
16
|
readonly bulkCreateApi: BulkContactsCreateApi;
|
|
17
17
|
private withApiErrorLog;
|
|
18
|
+
private targetDbVersion;
|
|
18
19
|
constructor(params: ContactsConfig);
|
|
20
|
+
callApi<T>(params: CalApiParams): Promise<T>;
|
|
19
21
|
parseError(e: AxiosError): Error;
|
|
20
22
|
private logApiError;
|
|
21
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Contacts.d.ts","sourceRoot":"","sources":["../../src/Contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Contacts.d.ts","sourceRoot":"","sources":["../../src/Contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EACL,cAAc,EACd,aAAa,EACb,UAAU,EACV,cAAc,EACd,eAAe,EACf,SAAS,EACT,8BAA8B,EAC9B,aAAa,EACd,MAAM,OAAO,CAAC;AAEf,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,qBAAqB,MAAM,6BAA6B,CAAC;AAWhE,qBAAa,QAAS,SAAQ,IAAI;IAChC,SAAgB,eAAe,EAAE,eAAe,CAAC;IACjD,SAAgB,cAAc,EAAE,cAAc,CAAC;IAC/C,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,UAAU,EAAE,UAAU,CAAC;IACvC,SAAgB,cAAc,EAAE,cAAc,CAAC;IAC/C,SAAgB,eAAe,EAAE,eAAe,CAAC;IACjD,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,8BAA8B,EAAE,8BAA8B,CAAC;IAC/E,SAAgB,aAAa,EAAE,aAAa,CAAC;IAC7C,SAAgB,aAAa,EAAE,qBAAqB,CAAC;IACrD,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,eAAe,CAAS;gBAQpB,MAAM,EAAE,cAAc;IAqBlC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC;IAU5C,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,KAAK;IAahC,OAAO,CAAC,WAAW;CAapB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-mismatch-callback.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/db-mismatch-callback.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BaseConfig } from '@or-sdk/base';
|
|
2
|
+
import { ContactsConfig } from './types';
|
|
3
|
+
export declare const extractTargetDbVersion: (params: ContactsConfig) => string;
|
|
4
|
+
export declare const buildBaseConfig: (params: ContactsConfig) => BaseConfig;
|
|
5
|
+
export default buildBaseConfig;
|
|
6
|
+
//# sourceMappingURL=baseConfigFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseConfigFactory.d.ts","sourceRoot":"","sources":["../../src/baseConfigFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAsBzC,eAAO,MAAM,sBAAsB,WAAY,cAAc,WAG5D,CAAC;AAgBF,eAAO,MAAM,eAAe,WAAY,cAAc,KAAG,UAWxD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -5,4 +5,6 @@ export declare const FAILED_REQUEST_REPEATS = 3;
|
|
|
5
5
|
export declare const CONTACTS_DELETE_MAX_AMOUNT = 1000;
|
|
6
6
|
export declare const BULK_POLING_PAUSE_DURATION = 1500;
|
|
7
7
|
export declare const BULK_FAILED_SERIES_REPEAT_IN = 30000;
|
|
8
|
+
export declare const DB_TARGET_VERSION_HEADER = "x-db-target-version";
|
|
9
|
+
export declare const DB_ORIGIN_VERSION_HEADER = "x-db-origin-version";
|
|
8
10
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,eAAO,MAAM,yBAAyB,UAAU,CAAC;AAEjD,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,4BAA4B,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,iBAAiB,CAAC;AAEnD,eAAO,MAAM,yBAAyB,UAAU,CAAC;AAEjD,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAElD,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D,eAAO,MAAM,wBAAwB,wBAAwB,CAAC"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { OrderOptions, PaginationOptions } from '@or-sdk/base';
|
|
|
4
4
|
export * from '@onereach/types-contacts-api';
|
|
5
5
|
declare type OptionalBy<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
6
6
|
export { OrderDirection, PaginationOptions, OrderOptions } from '@or-sdk/base';
|
|
7
|
+
declare type DbVersionsMismatchCallback = (targetVersion: string, originVersion: string) => void;
|
|
7
8
|
export declare type ContactsConfig = {
|
|
8
9
|
token: Token;
|
|
9
10
|
discoveryUrl?: string;
|
|
@@ -11,6 +12,7 @@ export declare type ContactsConfig = {
|
|
|
11
12
|
accountId?: string;
|
|
12
13
|
withKeepAliveAgents?: boolean;
|
|
13
14
|
withApiErrorLog?: boolean;
|
|
15
|
+
dbVersionMismatchCallback?: DbVersionsMismatchCallback;
|
|
14
16
|
};
|
|
15
17
|
export interface ContactBookParams extends AdaptedListParams<ContactBookParamsDto> {
|
|
16
18
|
orderProperty?: 'label' | 'created_at' | 'updated_at';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,aAAa,EACb,WAAW,EACX,oBAAoB,EACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC/D,cAAc,8BAA8B,CAAC;AAE7C,aAAK,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE/E,oBAAY,cAAc,GAAG;IAI3B,KAAK,EAAE,KAAK,CAAC;IAKb,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,SAAS,CAAC,EAAE,MAAM,CAAC;IAOnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAM9B,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import Agent from 'agentkeepalive';
|
|
2
1
|
import { ListApiParams, OrderParams } from '@onereach/types-contacts-api';
|
|
3
2
|
import { AdaptedListParams } from './types';
|
|
4
3
|
declare const propertyToEscape: readonly ["from", "size", "orderProperty", "orderDirection"];
|
|
@@ -10,10 +9,6 @@ export declare const adaptListParams: <T extends AdaptedListParams<{
|
|
|
10
9
|
export declare const getObjectSizeInBytes: <T>(obj: T) => number;
|
|
11
10
|
export declare const chunkArrByMaxSize: <T>(arr: T[], maxSize: number) => T[][];
|
|
12
11
|
export declare function debouncePromise<T>(caller: () => Promise<T>, delay: number): Promise<T>;
|
|
13
|
-
export declare function buildHttpAgents(): {
|
|
14
|
-
httpAgent: Agent;
|
|
15
|
-
httpsAgent: Agent.HttpsAgent;
|
|
16
|
-
};
|
|
17
12
|
export declare const mergeObjects: (first: Record<string, string>, second: Record<string, string>) => Record<string, string>;
|
|
18
13
|
export {};
|
|
19
14
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,QAAA,MAAM,gBAAgB,8DAA+D,CAAC;AACtF,aAAK,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AAG3D,eAAO,MAAM,eAAe;;;mEAoB3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBAAgB,MAExC,CAAC;AAEV,eAAO,MAAM,iBAAiB,yBAA0B,MAAM,UAsC7D,CAAC;AAEF,wBAAgB,eAAe,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED,eAAO,MAAM,YAAY,UAAW,OAAO,MAAM,EAAE,MAAM,CAAC,UAAU,OAAO,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,MAAM,EAAE,MAAM,CAKjH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.1.
|
|
2
|
+
"version": "4.1.2-beta.2464.0",
|
|
3
3
|
"name": "@or-sdk/contacts",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"test:watch": "vitest --watch"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@onereach/types-contacts-api": "5.
|
|
23
|
-
"@or-sdk/base": "
|
|
22
|
+
"@onereach/types-contacts-api": "5.18.6-beta.2831.0",
|
|
23
|
+
"@or-sdk/base": "0.33.2-beta.2459.0",
|
|
24
24
|
"agentkeepalive": "^4.5.0",
|
|
25
25
|
"uuid": "^8.3.2"
|
|
26
26
|
},
|
package/src/Contacts.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { AxiosError, Base } from '@or-sdk/base';
|
|
2
|
-
import { buildHttpAgents } from './utils';
|
|
1
|
+
import { AxiosError, Base, CalApiParams } from '@or-sdk/base';
|
|
3
2
|
import { ContactsConfig } from './types';
|
|
4
|
-
import { CONTACTS_SERVICE_KEY } from './constants';
|
|
5
3
|
import {
|
|
6
4
|
ContactBookApi,
|
|
7
5
|
MigrationsApi,
|
|
@@ -15,6 +13,8 @@ import {
|
|
|
15
13
|
import { ApiError } from './apiError';
|
|
16
14
|
import BatchProcessApi from './api/batchProcessApi';
|
|
17
15
|
import BulkContactsCreateApi from './api/bulkContactsCreateApi';
|
|
16
|
+
import { buildBaseConfig, extractTargetDbVersion } from './baseConfigFactory';
|
|
17
|
+
import { DB_TARGET_VERSION_HEADER } from './constants';
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* OneReach Contacts service client
|
|
@@ -35,6 +35,7 @@ export class Contacts extends Base {
|
|
|
35
35
|
public readonly fieldValueApi: FieldValueApi;
|
|
36
36
|
public readonly bulkCreateApi: BulkContactsCreateApi;
|
|
37
37
|
private withApiErrorLog: boolean;
|
|
38
|
+
private targetDbVersion: string;
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
41
|
* ```typescript
|
|
@@ -43,17 +44,13 @@ export class Contacts extends Base {
|
|
|
43
44
|
* ```
|
|
44
45
|
*/
|
|
45
46
|
constructor(params: ContactsConfig) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
accountId,
|
|
53
|
-
...(withKeepAliveAgents ? { httpAgents: buildHttpAgents() } : {}),
|
|
54
|
-
});
|
|
47
|
+
super(buildBaseConfig(params));
|
|
48
|
+
|
|
49
|
+
this.targetDbVersion = extractTargetDbVersion(params);
|
|
50
|
+
this.withApiErrorLog = Boolean(params.withApiErrorLog);
|
|
51
|
+
|
|
52
|
+
const apiCall = this.callApi.bind(this);
|
|
55
53
|
|
|
56
|
-
const apiCall = this.callApiV2.bind(this);
|
|
57
54
|
this.batchProcessApi = new BatchProcessApi(apiCall);
|
|
58
55
|
this.contactBookApi = new ContactBookApi(apiCall);
|
|
59
56
|
this.migrationsApi = new MigrationsApi(apiCall);
|
|
@@ -64,7 +61,17 @@ export class Contacts extends Base {
|
|
|
64
61
|
this.sharedBookContactPermissionApi = new SharedBookContactPermissionApi(apiCall);
|
|
65
62
|
this.fieldValueApi = new FieldValueApi(apiCall);
|
|
66
63
|
this.bulkCreateApi = new BulkContactsCreateApi(apiCall, this.batchProcessApi);
|
|
67
|
-
|
|
64
|
+
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
callApi<T>(params: CalApiParams): Promise<T> {
|
|
68
|
+
return super.callApiV2({
|
|
69
|
+
...params,
|
|
70
|
+
customHeaders: {
|
|
71
|
+
...params.customHeaders,
|
|
72
|
+
[DB_TARGET_VERSION_HEADER]: this.targetDbVersion,
|
|
73
|
+
},
|
|
74
|
+
});
|
|
68
75
|
}
|
|
69
76
|
|
|
70
77
|
parseError(e: AxiosError): Error {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { afterAll, afterEach, beforeAll, describe, expect, it, vi } from 'vitest';
|
|
2
|
+
import { rest } from 'msw';
|
|
3
|
+
import { setupServer } from 'msw/node';
|
|
4
|
+
|
|
5
|
+
import { Contacts } from '../Contacts';
|
|
6
|
+
import { MigrationState } from '@onereach/types-contacts-api';
|
|
7
|
+
|
|
8
|
+
const server = setupServer(
|
|
9
|
+
rest.get('https://em.url/migrations/v2/status', (_, res, ctx) => {
|
|
10
|
+
return res(ctx.json(MigrationState.InProgress));
|
|
11
|
+
}),
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
const callbacks = {
|
|
15
|
+
onMismatch: (target: string, origin: string) => { return target === origin;},
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const buildContactsInstance = () => {
|
|
19
|
+
return new Contacts({
|
|
20
|
+
token: 'test-token',
|
|
21
|
+
contactsApiUrl: 'https://em.url',
|
|
22
|
+
dbVersionMismatchCallback: callbacks.onMismatch,
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
describe('dbVersionMismatchCallback', () => {
|
|
27
|
+
beforeAll(() => server.listen());
|
|
28
|
+
afterEach(() => server.resetHandlers());
|
|
29
|
+
afterAll(() => server.close());
|
|
30
|
+
|
|
31
|
+
it('dbVersionMismatchCallback is called on version mismatch', async () => {
|
|
32
|
+
const onMismatchSpy = vi.spyOn(callbacks, 'onMismatch');
|
|
33
|
+
const api = buildContactsInstance();
|
|
34
|
+
await api.migrationsApi.getMigrationState();
|
|
35
|
+
expect(onMismatchSpy).toHaveBeenCalled();
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { BaseConfig, BaseInterceptors } from '@or-sdk/base';
|
|
2
|
+
import Agent from 'agentkeepalive';
|
|
3
|
+
import { ContactsConfig } from './types';
|
|
4
|
+
import { CONTACTS_SERVICE_KEY, DB_ORIGIN_VERSION_HEADER } from './constants';
|
|
5
|
+
import { DB_TARGET_VERSION } from '@onereach/types-contacts-api';
|
|
6
|
+
|
|
7
|
+
const buildHttpAgents = () => {
|
|
8
|
+
const socketsPoolOptions = {
|
|
9
|
+
maxSockets: 100,
|
|
10
|
+
maxFreeSockets: 10,
|
|
11
|
+
/** active socket keepalive for 60 seconds */
|
|
12
|
+
timeout: 60000,
|
|
13
|
+
/** free socket keepalive for 30 seconds */
|
|
14
|
+
freeSocketTimeout: 30000,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const httpAgent = new Agent(socketsPoolOptions);
|
|
18
|
+
const httpsAgent = new Agent.HttpsAgent(socketsPoolOptions);
|
|
19
|
+
return {
|
|
20
|
+
httpAgent,
|
|
21
|
+
httpsAgent,
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const extractTargetDbVersion = (params: ContactsConfig) => {
|
|
26
|
+
// @ts-expect-error: property dbTargetVersion is a "secret" one to enable versioning testing
|
|
27
|
+
return (params['dbTargetVersion'] as string) || DB_TARGET_VERSION;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const buildInterceptors = (params: ContactsConfig): BaseInterceptors => {
|
|
31
|
+
const targetVersion = extractTargetDbVersion(params);
|
|
32
|
+
const { dbVersionMismatchCallback = () => {} } = params;
|
|
33
|
+
return {
|
|
34
|
+
response: (response) => {
|
|
35
|
+
const originVersion = response.headers[DB_ORIGIN_VERSION_HEADER];
|
|
36
|
+
if (originVersion !== targetVersion) {
|
|
37
|
+
dbVersionMismatchCallback(targetVersion, originVersion);
|
|
38
|
+
}
|
|
39
|
+
return response;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const buildBaseConfig = (params: ContactsConfig): BaseConfig => {
|
|
45
|
+
const { token, discoveryUrl, contactsApiUrl, accountId, withKeepAliveAgents } = params;
|
|
46
|
+
return {
|
|
47
|
+
token,
|
|
48
|
+
discoveryUrl,
|
|
49
|
+
serviceKey: CONTACTS_SERVICE_KEY,
|
|
50
|
+
serviceUrl: contactsApiUrl,
|
|
51
|
+
accountId,
|
|
52
|
+
...(withKeepAliveAgents ? { httpAgents: buildHttpAgents() } : {}),
|
|
53
|
+
interceptors: buildInterceptors(params),
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export default buildBaseConfig;
|
package/src/constants.ts
CHANGED
|
@@ -11,3 +11,7 @@ export const CONTACTS_DELETE_MAX_AMOUNT = 1000;
|
|
|
11
11
|
export const BULK_POLING_PAUSE_DURATION = 1500;
|
|
12
12
|
|
|
13
13
|
export const BULK_FAILED_SERIES_REPEAT_IN = 30000;
|
|
14
|
+
|
|
15
|
+
export const DB_TARGET_VERSION_HEADER = 'x-db-target-version';
|
|
16
|
+
|
|
17
|
+
export const DB_ORIGIN_VERSION_HEADER = 'x-db-origin-version';
|
package/src/types.ts
CHANGED
|
@@ -18,6 +18,8 @@ type OptionalBy<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
|
18
18
|
//re-export types
|
|
19
19
|
export { OrderDirection, PaginationOptions, OrderOptions } from '@or-sdk/base';
|
|
20
20
|
|
|
21
|
+
type DbVersionsMismatchCallback = (targetVersion: string, originVersion: string) => void;
|
|
22
|
+
|
|
21
23
|
export type ContactsConfig = {
|
|
22
24
|
/**
|
|
23
25
|
* token
|
|
@@ -48,6 +50,11 @@ export type ContactsConfig = {
|
|
|
48
50
|
* will be outputted to console
|
|
49
51
|
*/
|
|
50
52
|
withApiErrorLog?: boolean;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Function to be called at detecting db versions mismatch
|
|
56
|
+
*/
|
|
57
|
+
dbVersionMismatchCallback?: DbVersionsMismatchCallback;
|
|
51
58
|
};
|
|
52
59
|
|
|
53
60
|
export interface ContactBookParams extends AdaptedListParams<ContactBookParamsDto> {
|
package/src/utils.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import Agent from 'agentkeepalive';
|
|
2
1
|
import { ListApiParams, OrderParams } from '@onereach/types-contacts-api';
|
|
3
2
|
import { AdaptedListParams } from './types';
|
|
4
3
|
|
|
@@ -89,24 +88,6 @@ export function debouncePromise<T>(
|
|
|
89
88
|
});
|
|
90
89
|
}
|
|
91
90
|
|
|
92
|
-
export function buildHttpAgents() {
|
|
93
|
-
const socketsPoolOptions = {
|
|
94
|
-
maxSockets: 100,
|
|
95
|
-
maxFreeSockets: 10,
|
|
96
|
-
/** active socket keepalive for 60 seconds */
|
|
97
|
-
timeout: 60000,
|
|
98
|
-
/** free socket keepalive for 30 seconds */
|
|
99
|
-
freeSocketTimeout: 30000,
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
const httpAgent = new Agent(socketsPoolOptions);
|
|
103
|
-
const httpsAgent = new Agent.HttpsAgent(socketsPoolOptions);
|
|
104
|
-
return {
|
|
105
|
-
httpAgent,
|
|
106
|
-
httpsAgent,
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
|
|
110
91
|
export const mergeObjects = (first: Record<string, string>, second: Record<string, string>): Record<string, string> => {
|
|
111
92
|
for (const [key, value] of Object.entries(second)) {
|
|
112
93
|
first[key] = value;
|