@6thbridge/utils 1.0.7 → 1.0.9
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/lib/index.js.map +1 -1
- package/lib/logger/logger.d.ts +9 -8
- package/lib/logger/logger.js +15 -6
- package/lib/logger/logger.js.map +1 -1
- package/lib/logger/redact.d.ts +21 -0
- package/lib/logger/redact.js +83 -0
- package/lib/logger/redact.js.map +1 -0
- package/lib/logger/test.spec.js +5 -0
- package/lib/logger/test.spec.js.map +1 -1
- package/lib/middlewares/common.js +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/integrations/integration.entity.d.ts +16 -0
- package/lib/types/integrations/integration.entity.js +9 -1
- package/lib/types/integrations/integration.entity.js.map +1 -1
- package/lib/utils/phoneNumber.spec.js +9 -0
- package/lib/utils/phoneNumber.spec.js.map +1 -1
- package/package.json +2 -2
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/logger/logger.d.ts
CHANGED
|
@@ -15,19 +15,20 @@ export declare class Logger implements LoggerInterface {
|
|
|
15
15
|
private props;
|
|
16
16
|
private broker?;
|
|
17
17
|
private readonly meta;
|
|
18
|
+
static setMaskFields(fields: string[]): string[];
|
|
18
19
|
constructor(props: LoggerProps, broker?: RabbitMQClient | undefined);
|
|
19
20
|
configureLogger(prop: any): LoggerProps;
|
|
20
21
|
setBroker(broker: RabbitMQClient): void;
|
|
21
22
|
setProps(props: LoggerProps): LoggerProps;
|
|
22
23
|
getProps(): LoggerProps;
|
|
23
|
-
log(level: LOG_LEVEL, message: string, data?: any, trace?: string):
|
|
24
|
-
postHttp(payload: any):
|
|
25
|
-
error(message: string, meta?: any, trace?: string):
|
|
26
|
-
warn(message: string, meta?: any, trace?: string):
|
|
27
|
-
debug(message: string, meta?: any, trace?: string):
|
|
28
|
-
info(message: string, meta?: any, trace?: string):
|
|
29
|
-
critical(message: string, meta?: any, trace?: string):
|
|
30
|
-
exception(error: Error, meta?: any):
|
|
24
|
+
log(level: LOG_LEVEL, message: string, data?: any, trace?: string): any;
|
|
25
|
+
postHttp(payload: any): any;
|
|
26
|
+
error(message: string, meta?: any, trace?: string): any;
|
|
27
|
+
warn(message: string, meta?: any, trace?: string): any;
|
|
28
|
+
debug(message: string, meta?: any, trace?: string): any;
|
|
29
|
+
info(message: string, meta?: any, trace?: string): any;
|
|
30
|
+
critical(message: string, meta?: any, trace?: string): any;
|
|
31
|
+
exception(error: Error, meta?: any): any;
|
|
31
32
|
out(...args: any): void;
|
|
32
33
|
logToRollbar(payload: Record<string, any>): string | LogResult;
|
|
33
34
|
}
|
package/lib/logger/logger.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.logger = exports.Logger = exports.LoggerProps = void 0;
|
|
4
7
|
const index_1 = require("./index");
|
|
5
8
|
const lodash_1 = require("lodash");
|
|
6
9
|
const monitoring_1 = require("../monitoring");
|
|
7
10
|
const utils_1 = require("../utils");
|
|
11
|
+
const data_1 = require("../data");
|
|
12
|
+
const redact_1 = __importDefault(require("./redact"));
|
|
8
13
|
const _axios = utils_1.HttpUtil.getAxiosInstance({
|
|
9
14
|
baseURL: process.env.UTILITY_SERVICE_URL || 'http://utility-service',
|
|
10
15
|
headers: {
|
|
@@ -18,7 +23,12 @@ class LoggerProps {
|
|
|
18
23
|
}
|
|
19
24
|
}
|
|
20
25
|
exports.LoggerProps = LoggerProps;
|
|
26
|
+
const maskedFields = [];
|
|
21
27
|
class Logger {
|
|
28
|
+
static setMaskFields(fields) {
|
|
29
|
+
maskedFields.push(...fields);
|
|
30
|
+
return maskedFields;
|
|
31
|
+
}
|
|
22
32
|
constructor(props, broker) {
|
|
23
33
|
this.props = props;
|
|
24
34
|
this.broker = broker;
|
|
@@ -47,9 +57,8 @@ class Logger {
|
|
|
47
57
|
return this.props;
|
|
48
58
|
}
|
|
49
59
|
log(level, message, data = {}, trace) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
message });
|
|
60
|
+
const payload = (0, redact_1.default)(Object.assign(Object.assign(Object.assign({}, this.props), data), { level,
|
|
61
|
+
message }), maskedFields);
|
|
53
62
|
if (level == index_1.LOG_LEVEL.DEBUG) {
|
|
54
63
|
return this.out(payload);
|
|
55
64
|
}
|
|
@@ -59,7 +68,7 @@ class Logger {
|
|
|
59
68
|
this.out(this.logToRollbar(payload));
|
|
60
69
|
}
|
|
61
70
|
if (!(0, lodash_1.isEmpty)(this.broker)) {
|
|
62
|
-
|
|
71
|
+
data_1.RabbitMQClient.sendToQueue(this.props.logsQueue || 'platform.logs', payload).catch((e) => {
|
|
63
72
|
console.error(e.message, payload);
|
|
64
73
|
return this.postHttp(payload);
|
|
65
74
|
});
|
|
@@ -73,7 +82,7 @@ class Logger {
|
|
|
73
82
|
console.error(error.message, payload);
|
|
74
83
|
});
|
|
75
84
|
this.out('====== log sent via http =====');
|
|
76
|
-
return;
|
|
85
|
+
return payload;
|
|
77
86
|
}
|
|
78
87
|
error(message, meta = {}, trace = '') {
|
|
79
88
|
return this.log(index_1.LOG_LEVEL.ERROR, message, meta, trace);
|
|
@@ -105,7 +114,7 @@ class Logger {
|
|
|
105
114
|
return "Skipping Rollbar(Rollbar Not Defined!)";
|
|
106
115
|
if (!payload.rollbar)
|
|
107
116
|
return "Skipping Rollbar(False)";
|
|
108
|
-
return monitoring_1.rollbar.error(`${(_a = this.props.service) !== null && _a !== void 0 ? _a : this.meta.service}: ${payload.message}`, Object.assign(Object.assign({ meta: this.props, params: payload }, this.props), payload));
|
|
117
|
+
return monitoring_1.rollbar.error(`${(_a = this.props.service) !== null && _a !== void 0 ? _a : this.meta.service}: ${payload.message}`, (0, redact_1.default)(Object.assign(Object.assign({ meta: this.props, params: payload }, this.props), payload), maskedFields));
|
|
109
118
|
}
|
|
110
119
|
}
|
|
111
120
|
exports.Logger = Logger;
|
package/lib/logger/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type ReplaceFunction = (value: any, key: string) => string;
|
|
2
|
+
export interface ConfigOptions {
|
|
3
|
+
partial?: boolean;
|
|
4
|
+
strict?: boolean;
|
|
5
|
+
ignoreUnknown?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Parses an object and redacts any keys listed in keywords
|
|
9
|
+
*
|
|
10
|
+
* @param target The target object to scan for redactable items
|
|
11
|
+
* @param keywords A list of members to redact
|
|
12
|
+
* @param replaceVal Optional custom replace value or function replacer
|
|
13
|
+
* @param config Optional config
|
|
14
|
+
* {
|
|
15
|
+
* partial: boolean, do partial matches, default false
|
|
16
|
+
* strict: boolean, do strict key matching, default true
|
|
17
|
+
* ignoreUnknown: boolean, ignore unknown types instead of error, default false
|
|
18
|
+
* }
|
|
19
|
+
* @return the new redacted object
|
|
20
|
+
*/
|
|
21
|
+
export default function redact(target: any, keywords: string[], replaceVal?: string | ReplaceFunction, config?: ConfigOptions): typeof target;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
// Yoinked from lodash to save dependencies
|
|
6
|
+
function isObject(value) {
|
|
7
|
+
const type = typeof value;
|
|
8
|
+
return value !== null && (type === 'object' || type === 'function');
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Checks for match
|
|
12
|
+
*
|
|
13
|
+
* @param keywords A list of keywords to look for
|
|
14
|
+
* @param key The string to check
|
|
15
|
+
* @param strict Use strict case if true
|
|
16
|
+
* @param partial Use partial matching if true
|
|
17
|
+
* @return True for match or false
|
|
18
|
+
*/
|
|
19
|
+
function isKeywordMatch(keywords, key, strict = false, partial = false) {
|
|
20
|
+
return keywords.some(keyword => {
|
|
21
|
+
const keyMatch = strict ? key : key.toLowerCase();
|
|
22
|
+
const keywordMatch = strict ? keyword : keyword.toLowerCase();
|
|
23
|
+
return partial ? keyMatch.indexOf(keywordMatch) !== -1 : keyMatch === keywordMatch;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parses an object and redacts any keys listed in keywords
|
|
28
|
+
*
|
|
29
|
+
* @param target The target object to scan for redactable items
|
|
30
|
+
* @param keywords A list of members to redact
|
|
31
|
+
* @param replaceVal Optional custom replace value or function replacer
|
|
32
|
+
* @param config Optional config
|
|
33
|
+
* {
|
|
34
|
+
* partial: boolean, do partial matches, default false
|
|
35
|
+
* strict: boolean, do strict key matching, default true
|
|
36
|
+
* ignoreUnknown: boolean, ignore unknown types instead of error, default false
|
|
37
|
+
* }
|
|
38
|
+
* @return the new redacted object
|
|
39
|
+
*/
|
|
40
|
+
function redact(target, keywords, replaceVal, config) {
|
|
41
|
+
config = config || {};
|
|
42
|
+
const partial = Object.prototype.hasOwnProperty.call(config, 'partial') ? config.partial : true;
|
|
43
|
+
const strict = Object.prototype.hasOwnProperty.call(config, 'strict') ? config.strict : true;
|
|
44
|
+
const ignoreUnknown = Object.prototype.hasOwnProperty.call(config, 'ignoreUnknown') ? config.ignoreUnknown : false;
|
|
45
|
+
if (keywords.length === 0)
|
|
46
|
+
return target;
|
|
47
|
+
if (!isObject(target)) {
|
|
48
|
+
// If it's not an object then it's a primitive. Nothing to redact.
|
|
49
|
+
return target;
|
|
50
|
+
}
|
|
51
|
+
else if (Array.isArray(target)) {
|
|
52
|
+
// Create a new array with each value having been redacted
|
|
53
|
+
// Redact each value of the array.
|
|
54
|
+
return target.map(val => redact(val, keywords, replaceVal, config));
|
|
55
|
+
}
|
|
56
|
+
else if ((0, lodash_1.isPlainObject)(target)) {
|
|
57
|
+
return Object.keys(target).reduce((newObj, key) => {
|
|
58
|
+
const isMatch = isKeywordMatch(keywords, key, strict, partial);
|
|
59
|
+
if (isMatch) {
|
|
60
|
+
newObj[key] = typeof replaceVal === 'function'
|
|
61
|
+
? replaceVal(target[key], key) : replaceVal || '[ REDACTED ]';
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
newObj[key] = redact(target[key], keywords, replaceVal, config);
|
|
65
|
+
}
|
|
66
|
+
return newObj;
|
|
67
|
+
}, {});
|
|
68
|
+
}
|
|
69
|
+
// Redaction only works on arrays, plain objects, and primitives.
|
|
70
|
+
if (ignoreUnknown) {
|
|
71
|
+
// ignore the unknown type instead of throwing an error
|
|
72
|
+
return target;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
let targetType = typeof target;
|
|
76
|
+
if (targetType === 'object' && !(0, lodash_1.isPlainObject)(target)) {
|
|
77
|
+
targetType += ' (not plain)';
|
|
78
|
+
}
|
|
79
|
+
throw new Error(`Unsupported value type for redaction: ${targetType}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.default = redact;
|
|
83
|
+
//# sourceMappingURL=redact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/logger/redact.ts"],"names":[],"mappings":"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"}
|
package/lib/logger/test.spec.js
CHANGED
|
@@ -33,5 +33,10 @@ describe('#test logger', function () {
|
|
|
33
33
|
it('Should Log an exception as critical', () => __awaiter(this, void 0, void 0, function* () {
|
|
34
34
|
expect(logger.exception(new Error('custom error'), { foo: 'bar' })).toBe('error -> test-request-id');
|
|
35
35
|
}));
|
|
36
|
+
it("should redact", () => __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
logger_1.Logger.setMaskFields(["password"]);
|
|
38
|
+
const logged = logger.info("This is an error from the package", { password: "sensitive", innerLayer: { password: "sensitive2", arrayLayer: [{ password: "sensitive3" }] } }, new Error().stack);
|
|
39
|
+
expect(logged).toBe('info -> test-request-id');
|
|
40
|
+
}));
|
|
36
41
|
});
|
|
37
42
|
//# sourceMappingURL=test.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.spec.js","sourceRoot":"","sources":["../../src/logger/test.spec.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;AACb,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,qCAAkC;AAElC,QAAQ,CAAC,cAAc,EAAE;IACvB,IAAI,MAAM,GAAW,IAAI,eAAM,CAAC;QAC9B,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAS,EAAE;QACnC,MAAM,CACJ,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CACrF,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACrC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAS,EAAE;QAClC,MAAM,CACJ,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CACpF,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACpC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAS,EAAE;QAClC,MAAM,CACJ,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CACrF,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACrC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAS,EAAE;QACjC,MAAM,CACJ,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CACpF,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACpC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAS,EAAE;QACrC,MAAM,CACJ,MAAM,CAAC,QAAQ,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CACxF,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACxC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACnD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CACtE,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"test.spec.js","sourceRoot":"","sources":["../../src/logger/test.spec.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;AACb,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,qCAAkC;AAElC,QAAQ,CAAC,cAAc,EAAE;IACvB,IAAI,MAAM,GAAW,IAAI,eAAM,CAAC;QAC9B,SAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAS,EAAE;QACnC,MAAM,CACJ,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CACrF,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACrC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAS,EAAE;QAClC,MAAM,CACJ,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CACpF,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACpC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE,GAAS,EAAE;QAClC,MAAM,CACJ,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CACrF,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACrC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAS,EAAE;QACjC,MAAM,CACJ,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CACpF,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACpC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,GAAS,EAAE;QACrC,MAAM,CACJ,MAAM,CAAC,QAAQ,CAAC,mCAAmC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CACxF,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACxC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACnD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CACtE,0BAA0B,CAC3B,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE,GAAQ,EAAE;QAC5B,eAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,EAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,EAAC,QAAQ,EAAE,YAAY,EAAC,CAAC,EAAC,EAAC,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3L,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACjD,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -180,7 +180,7 @@ class CommonMiddleware {
|
|
|
180
180
|
payload.requestClientId = clientId;
|
|
181
181
|
}
|
|
182
182
|
if (req.query.clientId) {
|
|
183
|
-
logger_1.logger.out('Replacing
|
|
183
|
+
logger_1.logger.out('Replacing contextClientID with query clientId', req.query.clientId);
|
|
184
184
|
payload.contextClientId = req.query.clientId;
|
|
185
185
|
}
|
|
186
186
|
// let token = req.headers["authorization"]|| req.body.token || req.cookies.bridge_auth;
|