@sipgate/integration-bridge 1.0.36 → 1.0.38
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/cache/contact-cache-storage.js +79 -97
- package/dist/cache/contact-cache-storage.js.map +1 -1
- package/dist/cache/storage/memory-storage-adapter.js +8 -22
- package/dist/cache/storage/memory-storage-adapter.js.map +1 -1
- package/dist/cache/storage/redis-storage-adapter.js +16 -30
- package/dist/cache/storage/redis-storage-adapter.js.map +1 -1
- package/dist/cache/token-cache-storage.js +30 -43
- package/dist/cache/token-cache-storage.js.map +1 -1
- package/dist/controllers/call-log.controller.js +63 -78
- package/dist/controllers/call-log.controller.js.map +1 -1
- package/dist/controllers/task.controller.js +60 -75
- package/dist/controllers/task.controller.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +38 -21
- package/dist/index.js.map +1 -1
- package/dist/middlewares/error-handler.middleware.js +1 -2
- package/dist/middlewares/error-handler.middleware.js.map +1 -1
- package/dist/middlewares/extract-header.middleware.d.ts +0 -1
- package/dist/middlewares/extract-header.middleware.js +2 -2
- package/dist/middlewares/extract-header.middleware.js.map +1 -1
- package/dist/models/cache-item-state.model.js +1 -1
- package/dist/models/cache-item-state.model.js.map +1 -1
- package/dist/models/call-direction.enum.js +1 -1
- package/dist/models/call-direction.enum.js.map +1 -1
- package/dist/models/call-event.model.js +2 -2
- package/dist/models/call-event.model.js.map +1 -1
- package/dist/models/contact.model.js +3 -3
- package/dist/models/contact.model.js.map +1 -1
- package/dist/models/controller.model.js +579 -622
- package/dist/models/controller.model.js.map +1 -1
- package/dist/models/integration-entity.model.js +1 -1
- package/dist/models/integration-entity.model.js.map +1 -1
- package/dist/models/integration-error.model.js +1 -1
- package/dist/models/integration-error.model.js.map +1 -1
- package/dist/models/integrations-event.model.js +1 -1
- package/dist/models/integrations-event.model.js.map +1 -1
- package/dist/models/pubsub/pubsub-client.model.js +16 -25
- package/dist/models/pubsub/pubsub-client.model.js.map +1 -1
- package/dist/models/pubsub/pubsub-contacts-message.model.js +1 -1
- package/dist/models/pubsub/pubsub-contacts-message.model.js.map +1 -1
- package/dist/models/server-error.model.js +1 -0
- package/dist/models/server-error.model.js.map +1 -1
- package/dist/swagger/openapi-spec.d.ts +972 -0
- package/dist/swagger/openapi-spec.js +787 -0
- package/dist/swagger/openapi-spec.js.map +1 -0
- package/dist/util/anonymize-key.js +1 -2
- package/dist/util/anonymize-key.js.map +1 -1
- package/dist/util/call-comment.js +5 -6
- package/dist/util/call-comment.js.map +1 -1
- package/dist/util/call-event.util.js +1 -2
- package/dist/util/call-event.util.js.map +1 -1
- package/dist/util/callEventHelper.js +4 -4
- package/dist/util/callEventHelper.js.map +1 -1
- package/dist/util/contact.util.js +10 -8
- package/dist/util/contact.util.js.map +1 -1
- package/dist/util/env.js +19 -9
- package/dist/util/env.js.map +1 -1
- package/dist/util/error/delegate-to-frontend.error.js +1 -0
- package/dist/util/error/delegate-to-frontend.error.js.map +1 -1
- package/dist/util/error/error.js +11 -8
- package/dist/util/error/error.js.map +1 -1
- package/dist/util/gdpr/gdprSlackNotification.js +22 -22
- package/dist/util/gdpr/gdprSlackNotification.js.map +1 -1
- package/dist/util/gdpr/index.js +17 -7
- package/dist/util/gdpr/index.js.map +1 -1
- package/dist/util/get-contact-cache.js +1 -2
- package/dist/util/get-contact-cache.js.map +1 -1
- package/dist/util/http/default-axios.js +1 -2
- package/dist/util/http/default-axios.js.map +1 -1
- package/dist/util/http/index.js +17 -7
- package/dist/util/http/index.js.map +1 -1
- package/dist/util/http/pagination.js +32 -85
- package/dist/util/http/pagination.js.map +1 -1
- package/dist/util/http/rate-limited-axios.js +42 -61
- package/dist/util/http/rate-limited-axios.js.map +1 -1
- package/dist/util/http/retrying-axios.js +11 -23
- package/dist/util/http/retrying-axios.js.map +1 -1
- package/dist/util/http/url.js +1 -2
- package/dist/util/http/url.js.map +1 -1
- package/dist/util/index.js +17 -7
- package/dist/util/index.js.map +1 -1
- package/dist/util/lang/delay.js +1 -2
- package/dist/util/lang/delay.js.map +1 -1
- package/dist/util/lang/diff.js +19 -10
- package/dist/util/lang/diff.js.map +1 -1
- package/dist/util/logger.util.js +7 -2
- package/dist/util/logger.util.js.map +1 -1
- package/dist/util/oauth.js +131 -134
- package/dist/util/oauth.js.map +1 -1
- package/dist/util/phone-number-utils.js +4 -5
- package/dist/util/phone-number-utils.js.map +1 -1
- package/dist/util/security/index.js +17 -7
- package/dist/util/security/index.js.map +1 -1
- package/dist/util/security/nonce.js +5 -6
- package/dist/util/security/nonce.js.map +1 -1
- package/dist/util/size-of.js +1 -1
- package/dist/util/size-of.js.map +1 -1
- package/dist/util/token-util.js +46 -62
- package/dist/util/token-util.js.map +1 -1
- package/dist/util/validate.js +1 -2
- package/dist/util/validate.js.map +1 -1
- package/package.json +25 -38
- package/README.md +0 -117
package/dist/util/oauth.js
CHANGED
|
@@ -15,159 +15,156 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
34
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
37
|
};
|
|
37
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.
|
|
39
|
+
exports.GetAccessTokenParamCommunication = void 0;
|
|
40
|
+
exports.getOAuth2RedirectUrl = getOAuth2RedirectUrl;
|
|
41
|
+
exports.handleOAuth2Callback = handleOAuth2Callback;
|
|
42
|
+
exports.refreshToken = refreshToken;
|
|
39
43
|
const axios_1 = __importDefault(require("axios"));
|
|
40
44
|
const util = __importStar(require("util"));
|
|
41
45
|
const _1 = require(".");
|
|
42
46
|
const models_1 = require("../models");
|
|
43
|
-
function getOAuth2RedirectUrl(config, req, res, addState = true) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
state,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
searchParams = {
|
|
64
|
-
response_type: 'code',
|
|
65
|
-
redirect_uri: config.redirect_uri,
|
|
66
|
-
client_id: config.client_id,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
const searchParamsAuth = new URLSearchParams(searchParams);
|
|
70
|
-
_1.Security.Nonce.setNonceCookie(req, res, config.cookieName, config.client_secret, nonce_string);
|
|
71
|
-
const url = new URL(config.authorizeUrl);
|
|
72
|
-
url.search = searchParamsAuth.toString();
|
|
73
|
-
return url.toString();
|
|
47
|
+
async function getOAuth2RedirectUrl(config, req, res, addState = true) {
|
|
48
|
+
try {
|
|
49
|
+
const nonce_string = _1.Security.Nonce.nonce();
|
|
50
|
+
let searchParams;
|
|
51
|
+
if (addState) {
|
|
52
|
+
const state = JSON.stringify({
|
|
53
|
+
nonce: nonce_string,
|
|
54
|
+
accessTokenUrl: config.accesTokenUrl,
|
|
55
|
+
apiUrl: config.apiUrl,
|
|
56
|
+
});
|
|
57
|
+
searchParams = {
|
|
58
|
+
response_type: 'code',
|
|
59
|
+
redirect_uri: config.redirect_uri,
|
|
60
|
+
client_id: config.client_id,
|
|
61
|
+
state,
|
|
62
|
+
};
|
|
74
63
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
64
|
+
else {
|
|
65
|
+
searchParams = {
|
|
66
|
+
response_type: 'code',
|
|
67
|
+
redirect_uri: config.redirect_uri,
|
|
68
|
+
client_id: config.client_id,
|
|
69
|
+
};
|
|
79
70
|
}
|
|
80
|
-
|
|
71
|
+
const searchParamsAuth = new URLSearchParams(searchParams);
|
|
72
|
+
_1.Security.Nonce.setNonceCookie(req, res, config.cookieName, config.client_secret, nonce_string);
|
|
73
|
+
const url = new URL(config.authorizeUrl);
|
|
74
|
+
url.search = searchParamsAuth.toString();
|
|
75
|
+
return url.toString();
|
|
76
|
+
}
|
|
77
|
+
catch (exception) {
|
|
78
|
+
const errorMessage = `Error in getOAuth2RedirectUrl: ${JSON.stringify(exception, Object.getOwnPropertyNames(exception))} ${util.inspect(exception?.response?.data, { depth: 3 })}`;
|
|
79
|
+
console.error(errorMessage);
|
|
80
|
+
throw new models_1.ServerError(500, errorMessage);
|
|
81
|
+
}
|
|
81
82
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
throw `Unexpected: cookie ${config.cookieName} not found`;
|
|
98
|
-
const nonce_request = state.nonce;
|
|
83
|
+
async function handleOAuth2Callback(config, req, res, checkNonceCookie = false, paramCommunication = GetAccessTokenParamCommunication.BODY, additionalHeaders = {}) {
|
|
84
|
+
try {
|
|
85
|
+
if (req.query.error)
|
|
86
|
+
throw `Error in handleOAuth2Callback flow: ${req.query.error} ${req?.query?.error_description}`;
|
|
87
|
+
if (!req?.query?.state)
|
|
88
|
+
throw 'Unexpected: request has not query param "state"';
|
|
89
|
+
if (!req?.query?.code)
|
|
90
|
+
throw 'Unexpected: request has not query param "code"';
|
|
91
|
+
const nonce_cookie = _1.Security.Nonce.getNonceFromCookie(req, res, config.cookieName, config.client_secret);
|
|
92
|
+
const state = JSON.parse(req.query.state.toString());
|
|
93
|
+
if (checkNonceCookie) {
|
|
94
|
+
if (!nonce_cookie)
|
|
95
|
+
throw `Unexpected: cookie ${config.cookieName} not found`;
|
|
96
|
+
const nonce_request = state.nonce;
|
|
97
|
+
if (nonce_request !== nonce_cookie)
|
|
99
98
|
if (nonce_request !== nonce_cookie)
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
_1.Security.Nonce.deleteNonceCookie(req, res, config.cookieName, config.client_secret);
|
|
103
|
-
}
|
|
104
|
-
const response = yield getAccessToken(state.accessTokenUrl, req.query.code.toString(), config.client_id, config.client_secret, config.redirect_uri, paramCommunication, additionalHeaders);
|
|
105
|
-
return {
|
|
106
|
-
apiKey: config.extractToken(response),
|
|
107
|
-
apiUrl: state.apiUrl,
|
|
108
|
-
query_params: req.query,
|
|
109
|
-
};
|
|
99
|
+
throw `Unexpected: nonce parameter from request and from cookie are different. Possible CSFR attack!`;
|
|
100
|
+
_1.Security.Nonce.deleteNonceCookie(req, res, config.cookieName, config.client_secret);
|
|
110
101
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
102
|
+
const response = await getAccessToken(state.accessTokenUrl, req.query.code.toString(), config.client_id, config.client_secret, config.redirect_uri, paramCommunication, additionalHeaders);
|
|
103
|
+
return {
|
|
104
|
+
apiKey: config.extractToken(response),
|
|
105
|
+
apiUrl: state.apiUrl,
|
|
106
|
+
query_params: req.query,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch (exception) {
|
|
110
|
+
const errorMessage = `Error in handleOAuth2Callback: ${JSON.stringify(exception, Object.getOwnPropertyNames(exception))} ${util.inspect(exception?.response?.data, { depth: 3 })}`;
|
|
111
|
+
console.error(errorMessage);
|
|
112
|
+
throw new models_1.ServerError(500, errorMessage);
|
|
113
|
+
}
|
|
117
114
|
}
|
|
118
|
-
exports.handleOAuth2Callback = handleOAuth2Callback;
|
|
119
115
|
var GetAccessTokenParamCommunication;
|
|
120
116
|
(function (GetAccessTokenParamCommunication) {
|
|
121
117
|
GetAccessTokenParamCommunication[GetAccessTokenParamCommunication["QUERY_PARAM"] = 0] = "QUERY_PARAM";
|
|
122
118
|
GetAccessTokenParamCommunication[GetAccessTokenParamCommunication["X_WWW_FORM_URL_ENCODED"] = 1] = "X_WWW_FORM_URL_ENCODED";
|
|
123
119
|
GetAccessTokenParamCommunication[GetAccessTokenParamCommunication["BODY"] = 2] = "BODY";
|
|
124
|
-
})(GetAccessTokenParamCommunication
|
|
125
|
-
function getAccessToken(accessTokenURL, authorizationCode, clientId, clientSecret, redirect_uri, paramCommunication = GetAccessTokenParamCommunication.BODY, additionalHeaders = {}) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
120
|
+
})(GetAccessTokenParamCommunication || (exports.GetAccessTokenParamCommunication = GetAccessTokenParamCommunication = {}));
|
|
121
|
+
async function getAccessToken(accessTokenURL, authorizationCode, clientId, clientSecret, redirect_uri, paramCommunication = GetAccessTokenParamCommunication.BODY, additionalHeaders = {}) {
|
|
122
|
+
console.log(`Start: fetching access tokens`);
|
|
123
|
+
const params = {
|
|
124
|
+
grant_type: 'authorization_code',
|
|
125
|
+
code: authorizationCode,
|
|
126
|
+
client_id: clientId,
|
|
127
|
+
client_secret: clientSecret,
|
|
128
|
+
redirect_uri: redirect_uri,
|
|
129
|
+
};
|
|
130
|
+
switch (paramCommunication) {
|
|
131
|
+
case GetAccessTokenParamCommunication.QUERY_PARAM:
|
|
132
|
+
return await axios_1.default.post(accessTokenURL, {}, {
|
|
133
|
+
params: params,
|
|
134
|
+
...(Object.keys(additionalHeaders) && { headers: additionalHeaders }),
|
|
135
|
+
});
|
|
136
|
+
case GetAccessTokenParamCommunication.X_WWW_FORM_URL_ENCODED:
|
|
137
|
+
return await axios_1.default.post(accessTokenURL, new URLSearchParams(params), {
|
|
138
|
+
headers: Object.assign({}, { 'Content-Type': 'application/x-www-form-urlencoded' }, additionalHeaders),
|
|
139
|
+
});
|
|
140
|
+
case GetAccessTokenParamCommunication.BODY:
|
|
141
|
+
return await axios_1.default.post(accessTokenURL, {
|
|
142
|
+
params: params,
|
|
143
|
+
...(Object.keys(additionalHeaders) && { headers: additionalHeaders }),
|
|
144
|
+
});
|
|
145
|
+
default:
|
|
146
|
+
throw Error('Unexpected parameter communication type');
|
|
147
|
+
}
|
|
148
148
|
}
|
|
149
|
-
function refreshToken(accessTokenURL, refresh_token, clientId, clientSecret, paramCommunication = GetAccessTokenParamCommunication.BODY) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
});
|
|
149
|
+
async function refreshToken(accessTokenURL, refresh_token, clientId, clientSecret, paramCommunication = GetAccessTokenParamCommunication.BODY) {
|
|
150
|
+
console.log(`Start: refreshing access tokens`);
|
|
151
|
+
const params = {
|
|
152
|
+
grant_type: 'refresh_token',
|
|
153
|
+
refresh_token: refresh_token,
|
|
154
|
+
client_id: clientId,
|
|
155
|
+
client_secret: clientSecret,
|
|
156
|
+
};
|
|
157
|
+
switch (paramCommunication) {
|
|
158
|
+
case GetAccessTokenParamCommunication.QUERY_PARAM:
|
|
159
|
+
return await axios_1.default.post(accessTokenURL, {}, { params: params });
|
|
160
|
+
case GetAccessTokenParamCommunication.X_WWW_FORM_URL_ENCODED:
|
|
161
|
+
return await axios_1.default.post(accessTokenURL, new URLSearchParams(params), {
|
|
162
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
163
|
+
});
|
|
164
|
+
case GetAccessTokenParamCommunication.BODY:
|
|
165
|
+
return await axios_1.default.post(accessTokenURL, params);
|
|
166
|
+
default:
|
|
167
|
+
throw Error('Unexpected parameter communication type');
|
|
168
|
+
}
|
|
171
169
|
}
|
|
172
|
-
exports.refreshToken = refreshToken;
|
|
173
170
|
//# sourceMappingURL=oauth.js.map
|
package/dist/util/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/util/oauth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/util/oauth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,oDA+CC;AAED,oDA2DC;AAmDD,oCA0BC;AAnND,kDAA6C;AAE7C,2CAA6B;AAC7B,wBAA6B;AAC7B,sCAAwC;AAsBjC,KAAK,UAAU,oBAAoB,CACxC,MAAmB,EACnB,GAAY,EACZ,GAAa,EACb,WAAoB,IAAI;IAExB,IAAI,CAAC;QACH,MAAM,YAAY,GAAW,WAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACpD,IAAI,YAAY,CAAC;QACjB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC3B,KAAK,EAAE,YAAY;gBACnB,cAAc,EAAE,MAAM,CAAC,aAAa;gBACpC,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;YACH,YAAY,GAAG;gBACb,aAAa,EAAE,MAAM;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,KAAK;aACN,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,YAAY,GAAG;gBACb,aAAa,EAAE,MAAM;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC;QACJ,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;QAC3D,WAAQ,CAAC,KAAK,CAAC,cAAc,CAC3B,GAAG,EACH,GAAG,EACH,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,aAAa,EACpB,YAAY,CACb,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzC,GAAG,CAAC,MAAM,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,SAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,mCAAmC,IAAI,CAAC,SAAS,CACpE,SAAS,EACT,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CACtC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,MAAM,IAAI,oBAAW,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,MAA2B,EAC3B,GAAY,EACZ,GAAa,EACb,mBAA4B,KAAK,EACjC,qBAAuD,gCAAgC,CAAC,IAAI,EAC5F,oBAAyC,EAAE;IAE3C,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK;YACjB,MAAM,uCAAuC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QAClG,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK;YACpB,MAAM,iDAAiD,CAAC;QAC1D,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI;YACnB,MAAM,gDAAgD,CAAC;QACzD,MAAM,YAAY,GAAG,WAAQ,CAAC,KAAK,CAAC,kBAAkB,CACpD,GAAG,EACH,GAAG,EACH,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,aAAa,CACrB,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY;gBACf,MAAM,sBAAsB,MAAM,CAAC,UAAU,YAAY,CAAC;YAE5D,MAAM,aAAa,GAAW,KAAK,CAAC,KAAK,CAAC;YAC1C,IAAI,aAAa,KAAK,YAAY;gBAChC,IAAI,aAAa,KAAK,YAAY;oBAChC,MAAM,+FAA+F,CAAC;YAC1G,WAAQ,CAAC,KAAK,CAAC,iBAAiB,CAC9B,GAAG,EACH,GAAG,EACH,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,aAAa,CACrB,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,cAAc,CACnC,KAAK,CAAC,cAAc,EACpB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EACzB,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,YAAY,EACnB,kBAAkB,EAClB,iBAAiB,CAClB,CAAC;QACF,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;YACrC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,YAAY,EAAE,GAAG,CAAC,KAAK;SACxB,CAAC;IACJ,CAAC;IAAC,OAAO,SAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAAG,kCAAkC,IAAI,CAAC,SAAS,CACnE,SAAS,EACT,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CACtC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,MAAM,IAAI,oBAAW,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AACD,IAAY,gCAIX;AAJD,WAAY,gCAAgC;IAC1C,qGAAW,CAAA;IACX,2HAAsB,CAAA;IACtB,uFAAI,CAAA;AACN,CAAC,EAJW,gCAAgC,gDAAhC,gCAAgC,QAI3C;AACD,KAAK,UAAU,cAAc,CAC3B,cAAsB,EACtB,iBAAyB,EACzB,QAAgB,EAChB,YAAoB,EACpB,YAAoB,EACpB,qBAAuD,gCAAgC,CAAC,IAAI,EAC5F,oBAAyC,EAAE;IAE3C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG;QACb,UAAU,EAAE,oBAAoB;QAChC,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,YAAY;QAC3B,YAAY,EAAE,YAAY;KAC3B,CAAC;IACF,QAAQ,kBAAkB,EAAE,CAAC;QAC3B,KAAK,gCAAgC,CAAC,WAAW;YAC/C,OAAO,MAAM,eAAK,CAAC,IAAI,CACrB,cAAc,EACd,EAAE,EACF;gBACE,MAAM,EAAE,MAAM;gBACd,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;aACtE,CACF,CAAC;QACJ,KAAK,gCAAgC,CAAC,sBAAsB;YAC1D,OAAO,MAAM,eAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;gBACnE,OAAO,EAAE,MAAM,CAAC,MAAM,CACpB,EAAE,EACF,EAAE,cAAc,EAAE,mCAAmC,EAAE,EACvD,iBAAiB,CAClB;aACF,CAAC,CAAC;QACL,KAAK,gCAAgC,CAAC,IAAI;YACxC,OAAO,MAAM,eAAK,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtC,MAAM,EAAE,MAAM;gBACd,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC;aACtE,CAAC,CAAC;QACL;YACE,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,cAAsB,EACtB,aAAqB,EACrB,QAAgB,EAChB,YAAoB,EACpB,qBAAuD,gCAAgC,CAAC,IAAI;IAE5F,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG;QACb,UAAU,EAAE,eAAe;QAC3B,aAAa,EAAE,aAAa;QAC5B,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,YAAY;KAC5B,CAAC;IACF,QAAQ,kBAAkB,EAAE,CAAC;QAC3B,KAAK,gCAAgC,CAAC,WAAW;YAC/C,OAAO,MAAM,eAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAClE,KAAK,gCAAgC,CAAC,sBAAsB;YAC1D,OAAO,MAAM,eAAK,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;gBACnE,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;aACjE,CAAC,CAAC;QACL,KAAK,gCAAgC,CAAC,IAAI;YACxC,OAAO,MAAM,eAAK,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAClD;YACE,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
|
|
@@ -7,7 +7,6 @@ const MIN_PHONE_NUMBER_LENGTH = 5;
|
|
|
7
7
|
const normalizePhoneNumber = (phoneNumber) => phoneNumber.replace(/[^\d\w+]/g, '');
|
|
8
8
|
exports.normalizePhoneNumber = normalizePhoneNumber;
|
|
9
9
|
const parsePhoneNumber = ({ label, phoneNumber }, locale, ignoreRegion = false) => {
|
|
10
|
-
var _a, _b;
|
|
11
10
|
const isNumberDirectDial = (0, exports.isDirectDial)((0, exports.normalizePhoneNumber)(phoneNumber));
|
|
12
11
|
const type = isNumberDirectDial
|
|
13
12
|
? models_1.PhoneNumberType.DIRECT_DIAL
|
|
@@ -17,19 +16,19 @@ const parsePhoneNumber = ({ label, phoneNumber }, locale, ignoreRegion = false)
|
|
|
17
16
|
const parsedPhoneNumber = (0, awesome_phonenumber_1.parsePhoneNumber)(phoneNumber, region);
|
|
18
17
|
const nationalNumber = parsedPhoneNumber.getNumber('national');
|
|
19
18
|
const phoneNumberRegion = parsedPhoneNumber.getRegionCode();
|
|
20
|
-
const e164 =
|
|
19
|
+
const e164 = parsedPhoneNumber.getNumber('e164') ?? phoneNumber;
|
|
21
20
|
const newVar = {
|
|
22
21
|
label,
|
|
23
22
|
type,
|
|
24
23
|
e164: isNumberDirectDial ? phoneNumber : e164,
|
|
25
24
|
localized: ignoreRegion || region === phoneNumberRegion
|
|
26
|
-
? nationalNumber
|
|
27
|
-
:
|
|
25
|
+
? nationalNumber ?? phoneNumber
|
|
26
|
+
: parsedPhoneNumber.getNumber('international') ?? phoneNumber,
|
|
28
27
|
phoneNumber: e164,
|
|
29
28
|
};
|
|
30
29
|
return newVar;
|
|
31
30
|
}
|
|
32
|
-
catch
|
|
31
|
+
catch {
|
|
33
32
|
return {
|
|
34
33
|
label,
|
|
35
34
|
type,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phone-number-utils.js","sourceRoot":"","sources":["../../src/util/phone-number-utils.ts"],"names":[],"mappings":";;;AAAA,6DAAgE;AAChE,sCAAyD;AAGzD,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAE3B,MAAM,oBAAoB,GAAG,CAAC,WAAmB,EAAE,EAAE,CAC1D,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAD1B,QAAA,oBAAoB,wBACM;AAEhC,MAAM,gBAAgB,GAAG,CAC9B,EAAE,KAAK,EAAE,WAAW,EAAe,EACnC,MAAc,EACd,YAAY,GAAG,KAAK,EACJ,EAAE
|
|
1
|
+
{"version":3,"file":"phone-number-utils.js","sourceRoot":"","sources":["../../src/util/phone-number-utils.ts"],"names":[],"mappings":";;;AAAA,6DAAgE;AAChE,sCAAyD;AAGzD,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAE3B,MAAM,oBAAoB,GAAG,CAAC,WAAmB,EAAE,EAAE,CAC1D,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAD1B,QAAA,oBAAoB,wBACM;AAEhC,MAAM,gBAAgB,GAAG,CAC9B,EAAE,KAAK,EAAE,WAAW,EAAe,EACnC,MAAc,EACd,YAAY,GAAG,KAAK,EACJ,EAAE;IAClB,MAAM,kBAAkB,GAAG,IAAA,oBAAY,EAAC,IAAA,4BAAoB,EAAC,WAAW,CAAC,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,kBAAkB;QAC7B,CAAC,CAAC,wBAAe,CAAC,WAAW;QAC7B,CAAC,CAAC,wBAAe,CAAC,QAAQ,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACzE,MAAM,iBAAiB,GAAG,IAAA,sCAAK,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/D,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,aAAa,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC;QAChE,MAAM,MAAM,GAAG;YACb,KAAK;YACL,IAAI;YACJ,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;YAC7C,SAAS,EACP,YAAY,IAAI,MAAM,KAAK,iBAAiB;gBAC1C,CAAC,CAAC,cAAc,IAAI,WAAW;gBAC/B,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,WAAW;YACjE,WAAW,EAAE,IAAI;SAClB,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,KAAK;YACL,IAAI;YACJ,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,WAAW;YACtB,WAAW,EAAE,WAAW;SACzB,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AApCW,QAAA,gBAAgB,oBAoC3B;AAEK,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAE,EAAE;IAClD,OAAO,WAAW,CAAC,MAAM,IAAI,uBAAuB,CAAC;AACvD,CAAC,CAAC;AAFW,QAAA,YAAY,gBAEvB"}
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
36
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/security/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/security/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAExB,sBAAK;AAEd,0CAAwB"}
|
|
@@ -3,7 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.nonce = nonce;
|
|
7
|
+
exports.getNonceFromCookie = getNonceFromCookie;
|
|
8
|
+
exports.setNonceCookie = setNonceCookie;
|
|
9
|
+
exports.deleteNonceCookie = deleteNonceCookie;
|
|
7
10
|
const crypto_1 = require("crypto");
|
|
8
11
|
const cookies_1 = __importDefault(require("cookies"));
|
|
9
12
|
function nonce() {
|
|
@@ -16,7 +19,6 @@ function nonce() {
|
|
|
16
19
|
.join('');
|
|
17
20
|
return nonce;
|
|
18
21
|
}
|
|
19
|
-
exports.nonce = nonce;
|
|
20
22
|
function getNonceFromCookie(request, response, name, secret) {
|
|
21
23
|
const cookies = new cookies_1.default(request, response, {
|
|
22
24
|
secure: true,
|
|
@@ -24,7 +26,6 @@ function getNonceFromCookie(request, response, name, secret) {
|
|
|
24
26
|
});
|
|
25
27
|
return cookies.get(name, { signed: true });
|
|
26
28
|
}
|
|
27
|
-
exports.getNonceFromCookie = getNonceFromCookie;
|
|
28
29
|
function setNonceCookie(req, res, cookieName, secret, state) {
|
|
29
30
|
const cookies = new cookies_1.default(req, res, {
|
|
30
31
|
keys: [secret],
|
|
@@ -32,12 +33,11 @@ function setNonceCookie(req, res, cookieName, secret, state) {
|
|
|
32
33
|
});
|
|
33
34
|
cookies.set(cookieName, state, {
|
|
34
35
|
signed: true,
|
|
35
|
-
expires: new Date(Date.now() + 60000),
|
|
36
|
+
expires: new Date(Date.now() + 60000), // ToDo: MilliSeconds? 10 minuten expire date
|
|
36
37
|
sameSite: 'none',
|
|
37
38
|
secure: true,
|
|
38
39
|
});
|
|
39
40
|
}
|
|
40
|
-
exports.setNonceCookie = setNonceCookie;
|
|
41
41
|
function deleteNonceCookie(req, res, cookieName, secret) {
|
|
42
42
|
const cookies = new cookies_1.default(req, res, {
|
|
43
43
|
keys: [secret],
|
|
@@ -45,5 +45,4 @@ function deleteNonceCookie(req, res, cookieName, secret) {
|
|
|
45
45
|
});
|
|
46
46
|
cookies.set(cookieName);
|
|
47
47
|
}
|
|
48
|
-
exports.deleteNonceCookie = deleteNonceCookie;
|
|
49
48
|
//# sourceMappingURL=nonce.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nonce.js","sourceRoot":"","sources":["../../../src/util/security/nonce.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"nonce.js","sourceRoot":"","sources":["../../../src/util/security/nonce.ts"],"names":[],"mappings":";;;;;AAIA,sBAWC;AAED,gDAWC;AAED,wCAiBC;AAED,8CAWC;AA5DD,mCAAqC;AAErC,sDAA8B;AAE9B,SAAgB,KAAK;IACnB,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;IAElC,MAAM,KAAK,GAAG,KAAK;SAChB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,kBAAkB,CAChC,OAAgB,EAChB,QAAkB,EAClB,IAAY,EACZ,MAAc;IAEd,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,OAAO,EAAE,QAAQ,EAAE;QAC7C,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,CAAC,MAAM,CAAC;KACf,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,cAAc,CAC5B,GAAY,EACZ,GAAa,EACb,UAAkB,EAClB,MAAc,EACd,KAAa;IAEb,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,GAAG,EAAE,GAAG,EAAE;QACpC,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE;QAC7B,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,6CAA6C;QACpF,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,iBAAiB,CAC/B,GAAY,EACZ,GAAa,EACb,UAAkB,EAClB,MAAc;IAEd,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,GAAG,EAAE,GAAG,EAAE;QACpC,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/util/size-of.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = sizeof;
|
|
3
4
|
const ECMA_SIZES = {
|
|
4
5
|
STRING: 2,
|
|
5
6
|
BOOLEAN: 4,
|
|
@@ -42,5 +43,4 @@ function sizeof(object) {
|
|
|
42
43
|
return 0;
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
|
-
exports.default = sizeof;
|
|
46
46
|
//# sourceMappingURL=size-of.js.map
|
package/dist/util/size-of.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"size-of.js","sourceRoot":"","sources":["../../src/util/size-of.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"size-of.js","sourceRoot":"","sources":["../../src/util/size-of.ts"],"names":[],"mappings":";;AAoCA,yBAaC;AA7CD,MAAM,UAAU,GAAc;IAC5B,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,kCAAkC;AAClC,SAAS,YAAY,CAAC,MAAW;IAC/B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,KAAK,GAAW,CAAC,CAAC;IACtB,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YAC7C,SAAS;QACX,CAAC;QAED,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC;YACH,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,IAAI,EAAE,YAAY,UAAU,EAAE,CAAC;gBAC7B,KAAK,GAAG,CAAC,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kCAAkC;AAClC,SAAwB,MAAM,CAAC,MAAW;IACxC,QAAQ,OAAO,MAAM,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,UAAU,CAAC,OAAO,CAAC;QAC5B,KAAK,QAAQ;YACX,OAAO,UAAU,CAAC,MAAM,CAAC;QAC3B,KAAK,QAAQ;YACX,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9B;YACE,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC"}
|
package/dist/util/token-util.js
CHANGED
|
@@ -1,18 +1,11 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
14
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
6
|
+
exports.getTokenCache = getTokenCache;
|
|
7
|
+
exports.getFreshAccessToken = getFreshAccessToken;
|
|
8
|
+
exports.updateProviderKey = updateProviderKey;
|
|
16
9
|
const __1 = require("..");
|
|
17
10
|
const cache_1 = require("../cache");
|
|
18
11
|
const storage_1 = require("../cache/storage");
|
|
@@ -48,61 +41,52 @@ function getTokenCache() {
|
|
|
48
41
|
(0, __1.infoLogger)('TOKEN CACHE', `Using memory cache with TTL of ${tokenCacheTtl}s`);
|
|
49
42
|
return new cache_1.TokenCacheStorage(new storage_1.MemoryStorageAdapter(tokenCacheTtl), keyPrefix);
|
|
50
43
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
yield __1.tokenCache.set(config.apiKey, newToken, getTokenCacheTtl());
|
|
63
|
-
return newToken;
|
|
64
|
-
});
|
|
44
|
+
async function getNewToken(config, refreshFn) {
|
|
45
|
+
if (!__1.tokenCache) {
|
|
46
|
+
throw new models_1.ServerError(500, 'Tried getting token from cache while cache was undefined.');
|
|
47
|
+
}
|
|
48
|
+
await __1.tokenCache.set(config.apiKey, {
|
|
49
|
+
accessToken: null,
|
|
50
|
+
isPending: true,
|
|
51
|
+
}, REFRESH_MARKER_TTL);
|
|
52
|
+
const newToken = { ...(await refreshFn(config)), isPending: false };
|
|
53
|
+
await __1.tokenCache.set(config.apiKey, newToken, getTokenCacheTtl());
|
|
54
|
+
return newToken;
|
|
65
55
|
}
|
|
66
|
-
function getFreshAccessToken(config, refreshFn, force = false) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const newToken = yield getNewToken(config, refreshFn);
|
|
73
|
-
return newToken.accessToken;
|
|
74
|
-
}
|
|
75
|
-
const token = yield __1.tokenCache.get(config.apiKey);
|
|
76
|
-
if (token === null || token === void 0 ? void 0 : token.accessToken) {
|
|
77
|
-
return token.accessToken;
|
|
78
|
-
}
|
|
79
|
-
if (token === null || token === void 0 ? void 0 : token.isPending) {
|
|
80
|
-
yield sleep(5000);
|
|
81
|
-
return yield getFreshAccessToken(config, refreshFn);
|
|
82
|
-
}
|
|
83
|
-
const newToken = yield getNewToken(config, refreshFn);
|
|
56
|
+
async function getFreshAccessToken(config, refreshFn, force = false) {
|
|
57
|
+
if (!__1.tokenCache) {
|
|
58
|
+
throw new models_1.ServerError(500, 'Tried getting token from cache while cache was undefined.');
|
|
59
|
+
}
|
|
60
|
+
if (force) {
|
|
61
|
+
const newToken = await getNewToken(config, refreshFn);
|
|
84
62
|
return newToken.accessToken;
|
|
85
|
-
}
|
|
63
|
+
}
|
|
64
|
+
const token = await __1.tokenCache.get(config.apiKey);
|
|
65
|
+
if (token?.accessToken) {
|
|
66
|
+
return token.accessToken;
|
|
67
|
+
}
|
|
68
|
+
if (token?.isPending) {
|
|
69
|
+
await sleep(5_000);
|
|
70
|
+
return await getFreshAccessToken(config, refreshFn);
|
|
71
|
+
}
|
|
72
|
+
const newToken = await getNewToken(config, refreshFn);
|
|
73
|
+
return newToken.accessToken;
|
|
86
74
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
integrationName: INTEGRATION_NAME,
|
|
103
|
-
providerKey,
|
|
104
|
-
});
|
|
75
|
+
async function updateProviderKey(config, accessToken, providerKey) {
|
|
76
|
+
if (!__1.tokenCache) {
|
|
77
|
+
throw new models_1.ServerError(500, 'Tried getting token from cache while cache was undefined.');
|
|
78
|
+
}
|
|
79
|
+
const newToken = { accessToken, isPending: false };
|
|
80
|
+
await __1.tokenCache.set(providerKey, newToken, getTokenCacheTtl());
|
|
81
|
+
const { INTEGRATION_NAME } = process.env;
|
|
82
|
+
(0, node_assert_1.default)(INTEGRATION_NAME, 'INTEGRATION_NAME is not defined');
|
|
83
|
+
const { PUBSUB_TOPIC_NAME_UPDATE_PROVIDER_KEY } = process.env;
|
|
84
|
+
(0, node_assert_1.default)(PUBSUB_TOPIC_NAME_UPDATE_PROVIDER_KEY, 'PUBSUB_TOPIC_NAME_UPDATE_PROVIDER_KEY is not defined');
|
|
85
|
+
const pubSubClient = new __1.PubSubClient(PUBSUB_TOPIC_NAME_UPDATE_PROVIDER_KEY);
|
|
86
|
+
await pubSubClient.publishMessage({
|
|
87
|
+
userId: config.userId,
|
|
88
|
+
integrationName: INTEGRATION_NAME,
|
|
89
|
+
providerKey,
|
|
105
90
|
});
|
|
106
91
|
}
|
|
107
|
-
exports.updateProviderKey = updateProviderKey;
|
|
108
92
|
//# sourceMappingURL=token-util.js.map
|