tedious 19.1.0 → 19.1.2
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/always-encrypted/types.js +14 -1
- package/lib/always-encrypted/types.js.map +1 -1
- package/lib/connection.js +2 -3
- package/lib/connection.js.map +1 -1
- package/lib/debug.js +2 -3
- package/lib/debug.js.map +1 -1
- package/lib/message-io.js +2 -3
- package/lib/message-io.js.map +1 -1
- package/lib/ntlm-payload.js +2 -3
- package/lib/ntlm-payload.js.map +1 -1
- package/lib/token/nbcrow-token-parser.js +2 -3
- package/lib/token/nbcrow-token-parser.js.map +1 -1
- package/lib/token/returnvalue-token-parser.js +2 -3
- package/lib/token/returnvalue-token-parser.js.map +1 -1
- package/lib/token/row-token-parser.js +2 -3
- package/lib/token/row-token-parser.js.map +1 -1
- package/package.json +20 -20
package/lib/debug.js
CHANGED
|
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _events = require("events");
|
|
8
8
|
var util = _interopRequireWildcard(require("util"));
|
|
9
|
-
function
|
|
10
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
10
|
class Debug extends _events.EventEmitter {
|
|
12
11
|
/*
|
|
13
12
|
@options Which debug details should be sent.
|
|
@@ -64,4 +63,4 @@ class Debug extends _events.EventEmitter {
|
|
|
64
63
|
}
|
|
65
64
|
var _default = exports.default = Debug;
|
|
66
65
|
module.exports = Debug;
|
|
67
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXZlbnRzIiwicmVxdWlyZSIsInV0aWwiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIkRlYnVnIiwiRXZlbnRFbWl0dGVyIiwiY29uc3RydWN0b3IiLCJkYXRhIiwicGF5bG9hZCIsInBhY2tldCIsInRva2VuIiwib3B0aW9ucyIsImluZGVudCIsImRpcmVjdGlvbiIsImhhdmVMaXN0ZW5lcnMiLCJsb2ciLCJoZWFkZXJUb1N0cmluZyIsImRhdGFUb1N0cmluZyIsImdlbmVyYXRlUGF5bG9hZFRleHQiLCJpbnNwZWN0Iiwic2hvd0hpZGRlbiIsImRlcHRoIiwiY29sb3JzIiwibGlzdGVuZXJzIiwibGVuZ3RoIiwidGV4dCIsImVtaXQiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi9zcmMvZGVidWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAndXRpbCc7XG5pbXBvcnQgeyBQYWNrZXQgfSBmcm9tICcuL3BhY2tldCc7XG5pbXBvcnQgdHlwZSB7IFRva2VuIH0gZnJvbSAnLi90b2tlbi90b2tlbic7XG5cbmNsYXNzIERlYnVnIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgZGVjbGFyZSBvcHRpb25zOiB7XG4gICAgZGF0YTogYm9vbGVhbjtcbiAgICBwYXlsb2FkOiBib29sZWFuO1xuICAgIHBhY2tldDogYm9vbGVhbjtcbiAgICB0b2tlbjogYm9vbGVhbjtcbiAgfTtcblxuICBkZWNsYXJlIGluZGVudDogc3RyaW5nO1xuXG4gIC8qXG4gICAgQG9wdGlvbnMgICAgV2hpY2ggZGVidWcgZGV0YWlscyBzaG91bGQgYmUgc2VudC5cbiAgICAgICAgICAgICAgICBkYXRhICAgIC0gZHVtcCBvZiBwYWNrZXQgZGF0YVxuICAgICAgICAgICAgICAgIHBheWxvYWQgLSBkZXRhaWxzIG9mIGRlY29kZWQgcGF5bG9hZFxuICAqL1xuICBjb25zdHJ1Y3Rvcih7IGRhdGEgPSBmYWxzZSwgcGF5bG9hZCA9IGZhbHNlLCBwYWNrZXQgPSBmYWxzZSwgdG9rZW4gPSBmYWxzZSB9ID0ge30pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5vcHRpb25zID0geyBkYXRhLCBwYXlsb2FkLCBwYWNrZXQsIHRva2VuIH07XG4gICAgdGhpcy5pbmRlbnQgPSAnICAnO1xuICB9XG5cbiAgcGFja2V0KGRpcmVjdGlvbjogJ1JlY2VpdmVkJyB8ICdTZW50JywgcGFja2V0OiBQYWNrZXQpIHtcbiAgICBpZiAodGhpcy5oYXZlTGlzdGVuZXJzKCkgJiYgdGhpcy5vcHRpb25zLnBhY2tldCkge1xuICAgICAgdGhpcy5sb2coJycpO1xuICAgICAgdGhpcy5sb2coZGlyZWN0aW9uKTtcbiAgICAgIHRoaXMubG9nKHBhY2tldC5oZWFkZXJUb1N0cmluZyh0aGlzLmluZGVudCkpO1xuICAgIH1cbiAgfVxuXG4gIGRhdGEocGFja2V0OiBQYWNrZXQpIHtcbiAgICBpZiAodGhpcy5oYXZlTGlzdGVuZXJzKCkgJiYgdGhpcy5vcHRpb25zLmRhdGEpIHtcbiAgICAgIHRoaXMubG9nKHBhY2tldC5kYXRhVG9TdHJpbmcodGhpcy5pbmRlbnQpKTtcbiAgICB9XG4gIH1cblxuICBwYXlsb2FkKGdlbmVyYXRlUGF5bG9hZFRleHQ6ICgpID0+IHN0cmluZykge1xuICAgIGlmICh0aGlzLmhhdmVMaXN0ZW5lcnMoKSAmJiB0aGlzLm9wdGlvbnMucGF5bG9hZCkge1xuICAgICAgdGhpcy5sb2coZ2VuZXJhdGVQYXlsb2FkVGV4dCgpKTtcbiAgICB9XG4gIH1cblxuICB0b2tlbih0b2tlbjogVG9rZW4pIHtcbiAgICBpZiAodGhpcy5oYXZlTGlzdGVuZXJzKCkgJiYgdGhpcy5vcHRpb25zLnRva2VuKSB7XG4gICAgICB0aGlzLmxvZyh1dGlsLmluc3BlY3QodG9rZW4sIHsgc2hvd0hpZGRlbjogZmFsc2UsIGRlcHRoOiA1LCBjb2xvcnM6IHRydWUgfSkpO1xuICAgIH1cbiAgfVxuXG4gIGhhdmVMaXN0ZW5lcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdGVuZXJzKCdkZWJ1ZycpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBsb2codGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5lbWl0KCdkZWJ1ZycsIHRleHQpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IERlYnVnO1xubW9kdWxlLmV4cG9ydHMgPSBEZWJ1ZztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsSUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQTZCLFNBQUFFLHdCQUFBQyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSCx1QkFBQSxZQUFBQSxDQUFBQyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxF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
|
package/lib/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","names":["_events","require","util","_interopRequireWildcard","
|
|
1
|
+
{"version":3,"file":"debug.js","names":["_events","require","util","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Debug","EventEmitter","constructor","data","payload","packet","token","options","indent","direction","haveListeners","log","headerToString","dataToString","generatePayloadText","inspect","showHidden","depth","colors","listeners","length","text","emit","_default","exports","module"],"sources":["../src/debug.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport * as util from 'util';\nimport { Packet } from './packet';\nimport type { Token } from './token/token';\n\nclass Debug extends EventEmitter {\n declare options: {\n data: boolean;\n payload: boolean;\n packet: boolean;\n token: boolean;\n };\n\n declare indent: string;\n\n /*\n @options Which debug details should be sent.\n data - dump of packet data\n payload - details of decoded payload\n */\n constructor({ data = false, payload = false, packet = false, token = false } = {}) {\n super();\n\n this.options = { data, payload, packet, token };\n this.indent = ' ';\n }\n\n packet(direction: 'Received' | 'Sent', packet: Packet) {\n if (this.haveListeners() && this.options.packet) {\n this.log('');\n this.log(direction);\n this.log(packet.headerToString(this.indent));\n }\n }\n\n data(packet: Packet) {\n if (this.haveListeners() && this.options.data) {\n this.log(packet.dataToString(this.indent));\n }\n }\n\n payload(generatePayloadText: () => string) {\n if (this.haveListeners() && this.options.payload) {\n this.log(generatePayloadText());\n }\n }\n\n token(token: Token) {\n if (this.haveListeners() && this.options.token) {\n this.log(util.inspect(token, { showHidden: false, depth: 5, colors: true }));\n }\n }\n\n haveListeners() {\n return this.listeners('debug').length > 0;\n }\n\n log(text: string) {\n this.emit('debug', text);\n }\n}\n\nexport default Debug;\nmodule.exports = Debug;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/message-io.js
CHANGED
|
@@ -11,8 +11,7 @@ var _message = _interopRequireDefault(require("./message"));
|
|
|
11
11
|
var _packet = require("./packet");
|
|
12
12
|
var _incomingMessageStream = _interopRequireDefault(require("./incoming-message-stream"));
|
|
13
13
|
var _outgoingMessageStream = _interopRequireDefault(require("./outgoing-message-stream"));
|
|
14
|
-
function
|
|
15
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
16
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
16
|
class MessageIO extends _events.EventEmitter {
|
|
18
17
|
constructor(socket, packetSize, debug) {
|
|
@@ -150,4 +149,4 @@ class MessageIO extends _events.EventEmitter {
|
|
|
150
149
|
}
|
|
151
150
|
var _default = exports.default = MessageIO;
|
|
152
151
|
module.exports = MessageIO;
|
|
153
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbmF0aXZlRHVwbGV4cGFpciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwidGxzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZXZlbnRzIiwiX21lc3NhZ2UiLCJfcGFja2V0IiwiX2luY29taW5nTWVzc2FnZVN0cmVhbSIsIl9vdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJNZXNzYWdlSU8iLCJFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsInNvY2tldCIsInBhY2tldFNpemUiLCJkZWJ1ZyIsInRsc05lZ290aWF0aW9uQ29tcGxldGUiLCJpbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJJbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJpbmNvbWluZ01lc3NhZ2VJdGVyYXRvciIsIlN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJvdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJPdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJwaXBlIiwiYXJncyIsImxlbmd0aCIsImxvZyIsInNlY3VyZVBhaXIiLCJjbGVhcnRleHQiLCJzZXRNYXhTZW5kRnJhZ21lbnQiLCJzdGFydFRscyIsImNyZWRlbnRpYWxzRGV0YWlscyIsImhvc3RuYW1lIiwidHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZSIsIm1heFZlcnNpb24iLCJpbmNsdWRlcyIsInNlY3VyZUNvbnRleHQiLCJjcmVhdGVTZWN1cmVDb250ZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJkdXBsZXhwYWlyIiwiRHVwbGV4UGFpciIsImNvbm5lY3QiLCJzb2NrZXQxIiwic2VydmVybmFtZSIsInJlamVjdFVuYXV0aG9yaXplZCIsImVuY3J5cHRlZCIsInNvY2tldDIiLCJvblNlY3VyZUNvbm5lY3QiLCJyZW1vdmVMaXN0ZW5lciIsIm9uUmVhZGFibGUiLCJvbkVycm9yIiwib25jZSIsImVyciIsImRlc3Ryb3kiLCJjaXBoZXIiLCJnZXRDaXBoZXIiLCJuYW1lIiwidmVyc2lvbiIsImVtaXQiLCJ1bnBpcGUiLCJtZXNzYWdlIiwiTWVzc2FnZSIsInR5cGUiLCJUWVBFIiwiUFJFTE9HSU4iLCJyZXNldENvbm5lY3Rpb24iLCJjaHVuayIsInJlYWQiLCJ3cml0ZSIsImVuZCIsInJlYWRNZXNzYWdlIiwidGhlbiIsInJlc3BvbnNlIiwiZGF0YSIsImNhdGNoIiwic2VuZE1lc3NhZ2UiLCJwYWNrZXRUeXBlIiwicmVzdWx0IiwibmV4dCIsImRvbmUiLCJFcnJvciIsInZhbHVlIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vc3JjL21lc3NhZ2UtaW8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IER1cGxleFBhaXIgZnJvbSAnbmF0aXZlLWR1cGxleHBhaXInO1xuXG5pbXBvcnQgeyBEdXBsZXggfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0ICogYXMgdGxzIGZyb20gJ3Rscyc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICduZXQnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcblxuaW1wb3J0IERlYnVnIGZyb20gJy4vZGVidWcnO1xuXG5pbXBvcnQgTWVzc2FnZSBmcm9tICcuL21lc3NhZ2UnO1xuaW1wb3J0IHsgVFlQRSB9IGZyb20gJy4vcGFja2V0JztcblxuaW1wb3J0IEluY29taW5nTWVzc2FnZVN0cmVhbSBmcm9tICcuL2luY29taW5nLW1lc3NhZ2Utc3RyZWFtJztcbmltcG9ydCBPdXRnb2luZ01lc3NhZ2VTdHJlYW0gZnJvbSAnLi9vdXRnb2luZy1tZXNzYWdlLXN0cmVhbSc7XG5cbmNsYXNzIE1lc3NhZ2VJTyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIGRlY2xhcmUgc29ja2V0OiBTb2NrZXQ7XG4gIGRlY2xhcmUgZGVidWc6IERlYnVnO1xuXG4gIGRlY2xhcmUgdGxzTmVnb3RpYXRpb25Db21wbGV0ZTogYm9vbGVhbjtcblxuICBkZWNsYXJlIHByaXZhdGUgaW5jb21pbmdNZXNzYWdlU3RyZWFtOiBJbmNvbWluZ01lc3NhZ2VTdHJlYW07XG4gIGRlY2xhcmUgb3V0Z29pbmdNZXNzYWdlU3RyZWFtOiBPdXRnb2luZ01lc3NhZ2VTdHJlYW07XG5cbiAgZGVjbGFyZSBzZWN1cmVQYWlyPzoge1xuICAgIGNsZWFydGV4dDogdGxzLlRMU1NvY2tldDtcbiAgICBlbmNyeXB0ZWQ6IER1cGxleDtcbiAgfTtcblxuICBkZWNsYXJlIGluY29taW5nTWVzc2FnZUl0ZXJhdG9yOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8TWVzc2FnZT47XG5cbiAgY29uc3RydWN0b3Ioc29ja2V0OiBTb2NrZXQsIHBhY2tldFNpemU6IG51bWJlciwgZGVidWc6IERlYnVnKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc29ja2V0ID0gc29ja2V0O1xuICAgIHRoaXMuZGVidWcgPSBkZWJ1ZztcblxuICAgIHRoaXMudGxzTmVnb3RpYXRpb25Db21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW0gPSBuZXcgSW5jb21pbmdNZXNzYWdlU3RyZWFtKHRoaXMuZGVidWcpO1xuICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlSXRlcmF0b3IgPSB0aGlzLmluY29taW5nTWVzc2FnZVN0cmVhbVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtcblxuICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtID0gbmV3IE91dGdvaW5nTWVzc2FnZVN0cmVhbSh0aGlzLmRlYnVnLCB7IHBhY2tldFNpemU6IHBhY2tldFNpemUgfSk7XG5cbiAgICB0aGlzLnNvY2tldC5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcbiAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5waXBlKHRoaXMuc29ja2V0KTtcbiAgfVxuXG4gIHBhY2tldFNpemUoLi4uYXJnczogW251bWJlcl0pIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYWNrZXRTaXplID0gYXJnc1swXTtcbiAgICAgIHRoaXMuZGVidWcubG9nKCdQYWNrZXQgc2l6ZSBjaGFuZ2VkIGZyb20gJyArIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUgKyAnIHRvICcgKyBwYWNrZXRTaXplKTtcbiAgICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUgPSBwYWNrZXRTaXplO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlY3VyZVBhaXIpIHtcbiAgICAgIHRoaXMuc2VjdXJlUGFpci5jbGVhcnRleHQuc2V0TWF4U2VuZEZyYWdtZW50KHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplO1xuICB9XG5cbiAgLy8gTmVnb3RpYXRlIFRMUyBlbmNyeXB0aW9uLlxuICBzdGFydFRscyhjcmVkZW50aWFsc0RldGFpbHM6IHRscy5TZWN1cmVDb250ZXh0T3B0aW9ucywgaG9zdG5hbWU6IHN0cmluZywgdHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZTogYm9vbGVhbikge1xuICAgIGlmICghY3JlZGVudGlhbHNEZXRhaWxzLm1heFZlcnNpb24gfHwgIVsnVExTdjEuMicsICdUTFN2MS4xJywgJ1RMU3YxJ10uaW5jbHVkZXMoY3JlZGVudGlhbHNEZXRhaWxzLm1heFZlcnNpb24pKSB7XG4gICAgICBjcmVkZW50aWFsc0RldGFpbHMubWF4VmVyc2lvbiA9ICdUTFN2MS4yJztcbiAgICB9XG5cbiAgICBjb25zdCBzZWN1cmVDb250ZXh0ID0gdGxzLmNyZWF0ZVNlY3VyZUNvbnRleHQoY3JlZGVudGlhbHNEZXRhaWxzKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBkdXBsZXhwYWlyID0gbmV3IER1cGxleFBhaXIoKTtcbiAgICAgIGNvbnN0IHNlY3VyZVBhaXIgPSB0aGlzLnNlY3VyZVBhaXIgPSB7XG4gICAgICAgIGNsZWFydGV4dDogdGxzLmNvbm5lY3Qoe1xuICAgICAgICAgIHNvY2tldDogZHVwbGV4cGFpci5zb2NrZXQxIGFzIFNvY2tldCxcbiAgICAgICAgICBzZXJ2ZXJuYW1lOiBob3N0bmFtZSxcbiAgICAgICAgICBzZWN1cmVDb250ZXh0OiBzZWN1cmVDb250ZXh0LFxuICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogIXRydXN0U2VydmVyQ2VydGlmaWNhdGVcbiAgICAgICAgfSksXG4gICAgICAgIGVuY3J5cHRlZDogZHVwbGV4cGFpci5zb2NrZXQyXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblNlY3VyZUNvbm5lY3QgPSAoKSA9PiB7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ3NlY3VyZUNvbm5lY3QnLCBvblNlY3VyZUNvbm5lY3QpO1xuXG4gICAgICAgIC8vIElmIHdlIGVuY291bnRlciBhbnkgZXJyb3JzIGZyb20gdGhpcyBwb2ludCBvbixcbiAgICAgICAgLy8gd2UganVzdCBmb3J3YXJkIHRoZW0gdG8gdGhlIGFjdHVhbCBuZXR3b3JrIHNvY2tldC5cbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQub25jZSgnZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5zb2NrZXQuZGVzdHJveShlcnIpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjaXBoZXIgPSBzZWN1cmVQYWlyLmNsZWFydGV4dC5nZXRDaXBoZXIoKTtcbiAgICAgICAgaWYgKGNpcGhlcikge1xuICAgICAgICAgIHRoaXMuZGVidWcubG9nKCdUTFMgbmVnb3RpYXRlZCAoJyArIGNpcGhlci5uYW1lICsgJywgJyArIGNpcGhlci52ZXJzaW9uICsgJyknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdCgnc2VjdXJlJywgc2VjdXJlUGFpci5jbGVhcnRleHQpO1xuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LnNldE1heFNlbmRGcmFnbWVudCh0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplKTtcblxuICAgICAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS51bnBpcGUodGhpcy5zb2NrZXQpO1xuICAgICAgICB0aGlzLnNvY2tldC51bnBpcGUodGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW0pO1xuXG4gICAgICAgIHRoaXMuc29ja2V0LnBpcGUoc2VjdXJlUGFpci5lbmNyeXB0ZWQpO1xuICAgICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5waXBlKHRoaXMuc29ja2V0KTtcblxuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ucGlwZShzZWN1cmVQYWlyLmNsZWFydGV4dCk7XG5cbiAgICAgICAgdGhpcy50bHNOZWdvdGlhdGlvbkNvbXBsZXRlID0gdHJ1ZTtcblxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvbkVycm9yID0gKGVycj86IEVycm9yKSA9PiB7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ3NlY3VyZUNvbm5lY3QnLCBvblNlY3VyZUNvbm5lY3QpO1xuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LmRlc3Ryb3koKTtcbiAgICAgICAgc2VjdXJlUGFpci5lbmNyeXB0ZWQuZGVzdHJveSgpO1xuXG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25SZWFkYWJsZSA9ICgpID0+IHtcbiAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBoYW5kc2hha2UgZGF0YSBvbiB0aGUgZW5jcnlwdGVkIHN0cmVhbSBvZiB0aGUgc2VjdXJlIHBhaXIsXG4gICAgICAgIC8vIHdlIHdyYXAgaXQgaW50byBhIGBQUkVMT0dJTmAgbWVzc2FnZSBhbmQgc2VuZCBpdCB0byB0aGUgc2VydmVyLlxuICAgICAgICAvL1xuICAgICAgICAvLyBGb3IgZWFjaCBgUFJFTE9HSU5gIG1lc3NhZ2Ugd2Ugc2VudCB3ZSBnZXQgYmFjayBleGFjdGx5IG9uZSByZXNwb25zZSBtZXNzYWdlXG4gICAgICAgIC8vIHRoYXQgY29udGFpbnMgdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZSBkYXRhLlxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbmV3IE1lc3NhZ2UoeyB0eXBlOiBUWVBFLlBSRUxPR0lOLCByZXNldENvbm5lY3Rpb246IGZhbHNlIH0pO1xuXG4gICAgICAgIGxldCBjaHVuaztcbiAgICAgICAgd2hpbGUgKGNodW5rID0gc2VjdXJlUGFpci5lbmNyeXB0ZWQucmVhZCgpKSB7XG4gICAgICAgICAgbWVzc2FnZS53cml0ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ud3JpdGUobWVzc2FnZSk7XG4gICAgICAgIG1lc3NhZ2UuZW5kKCk7XG5cbiAgICAgICAgdGhpcy5yZWFkTWVzc2FnZSgpLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgLy8gU2V0dXAgcmVhZGFibGUgaGFuZGxlciBmb3IgdGhlIG5leHQgcm91bmQgb2YgaGFuZHNoYWtpbmcuXG4gICAgICAgICAgLy8gSWYgd2UgZW5jb3VudGVyIGEgYHNlY3VyZUNvbm5lY3RgIG9uIHRoZSBjbGVhcnRleHQgc2lkZVxuICAgICAgICAgIC8vIG9mIHRoZSBzZWN1cmUgcGFpciwgdGhlIGByZWFkYWJsZWAgaGFuZGxlciBpcyBjbGVhcmVkXG4gICAgICAgICAgLy8gYW5kIG5vIGZ1cnRoZXIgaGFuZHNoYWtlIGhhbmRsaW5nIHdpbGwgaGFwcGVuLlxuICAgICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLm9uY2UoJ3JlYWRhYmxlJywgb25SZWFkYWJsZSk7XG5cbiAgICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGRhdGEgb2YgcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIC8vIFdlIGZlZWQgdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZSBiYWNrIGludG8gdGhlXG4gICAgICAgICAgICAvLyBlbmNyeXB0ZWQgZW5kIG9mIHRoZSBzZWN1cmUgcGFpci5cbiAgICAgICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLndyaXRlKGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2gob25FcnJvcik7XG4gICAgICB9O1xuXG4gICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5vbmNlKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQub25jZSgnc2VjdXJlQ29ubmVjdCcsIG9uU2VjdXJlQ29ubmVjdCk7XG4gICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5vbmNlKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETyBsaXN0ZW4gZm9yICdkcmFpbicgZXZlbnQgd2hlbiBzb2NrZXQud3JpdGUgcmV0dXJucyBmYWxzZS5cbiAgLy8gVE9ETyBpbXBsZW1lbnQgaW5jb21wbGV0ZSByZXF1ZXN0IGNhbmNlbGF0aW9uICgyLjIuMS42KVxuICBzZW5kTWVzc2FnZShwYWNrZXRUeXBlOiBudW1iZXIsIGRhdGE/OiBCdWZmZXIsIHJlc2V0Q29ubmVjdGlvbj86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IE1lc3NhZ2UoeyB0eXBlOiBwYWNrZXRUeXBlLCByZXNldENvbm5lY3Rpb246IHJlc2V0Q29ubmVjdGlvbiB9KTtcbiAgICBtZXNzYWdlLmVuZChkYXRhKTtcbiAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS53cml0ZShtZXNzYWdlKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIHRoZSBuZXh0IGluY29taW5nIG1lc3NhZ2UgZnJvbSB0aGUgc29ja2V0LlxuICAgKi9cbiAgYXN5bmMgcmVhZE1lc3NhZ2UoKTogUHJvbWlzZTxNZXNzYWdlPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5pbmNvbWluZ01lc3NhZ2VJdGVyYXRvci5uZXh0KCk7XG5cbiAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlbmQgb2YgbWVzc2FnZSBzdHJlYW0nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VJTztcbm1vZHVsZS5leHBvcnRzID0gTWVzc2FnZUlPO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsR0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBSUEsSUFBQUksUUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxP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
|
|
152
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbmF0aXZlRHVwbGV4cGFpciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwidGxzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfZXZlbnRzIiwiX21lc3NhZ2UiLCJfcGFja2V0IiwiX2luY29taW5nTWVzc2FnZVN0cmVhbSIsIl9vdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJNZXNzYWdlSU8iLCJFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsInNvY2tldCIsInBhY2tldFNpemUiLCJkZWJ1ZyIsInRsc05lZ290aWF0aW9uQ29tcGxldGUiLCJpbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJJbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJpbmNvbWluZ01lc3NhZ2VJdGVyYXRvciIsIlN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJvdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJPdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJwaXBlIiwiYXJncyIsImxlbmd0aCIsImxvZyIsInNlY3VyZVBhaXIiLCJjbGVhcnRleHQiLCJzZXRNYXhTZW5kRnJhZ21lbnQiLCJzdGFydFRscyIsImNyZWRlbnRpYWxzRGV0YWlscyIsImhvc3RuYW1lIiwidHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZSIsIm1heFZlcnNpb24iLCJpbmNsdWRlcyIsInNlY3VyZUNvbnRleHQiLCJjcmVhdGVTZWN1cmVDb250ZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJkdXBsZXhwYWlyIiwiRHVwbGV4UGFpciIsImNvbm5lY3QiLCJzb2NrZXQxIiwic2VydmVybmFtZSIsInJlamVjdFVuYXV0aG9yaXplZCIsImVuY3J5cHRlZCIsInNvY2tldDIiLCJvblNlY3VyZUNvbm5lY3QiLCJyZW1vdmVMaXN0ZW5lciIsIm9uUmVhZGFibGUiLCJvbkVycm9yIiwib25jZSIsImVyciIsImRlc3Ryb3kiLCJjaXBoZXIiLCJnZXRDaXBoZXIiLCJuYW1lIiwidmVyc2lvbiIsImVtaXQiLCJ1bnBpcGUiLCJtZXNzYWdlIiwiTWVzc2FnZSIsInR5cGUiLCJUWVBFIiwiUFJFTE9HSU4iLCJyZXNldENvbm5lY3Rpb24iLCJjaHVuayIsInJlYWQiLCJ3cml0ZSIsImVuZCIsInJlYWRNZXNzYWdlIiwidGhlbiIsInJlc3BvbnNlIiwiZGF0YSIsImNhdGNoIiwic2VuZE1lc3NhZ2UiLCJwYWNrZXRUeXBlIiwicmVzdWx0IiwibmV4dCIsImRvbmUiLCJFcnJvciIsInZhbHVlIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vc3JjL21lc3NhZ2UtaW8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IER1cGxleFBhaXIgZnJvbSAnbmF0aXZlLWR1cGxleHBhaXInO1xuXG5pbXBvcnQgeyBEdXBsZXggfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0ICogYXMgdGxzIGZyb20gJ3Rscyc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICduZXQnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcblxuaW1wb3J0IERlYnVnIGZyb20gJy4vZGVidWcnO1xuXG5pbXBvcnQgTWVzc2FnZSBmcm9tICcuL21lc3NhZ2UnO1xuaW1wb3J0IHsgVFlQRSB9IGZyb20gJy4vcGFja2V0JztcblxuaW1wb3J0IEluY29taW5nTWVzc2FnZVN0cmVhbSBmcm9tICcuL2luY29taW5nLW1lc3NhZ2Utc3RyZWFtJztcbmltcG9ydCBPdXRnb2luZ01lc3NhZ2VTdHJlYW0gZnJvbSAnLi9vdXRnb2luZy1tZXNzYWdlLXN0cmVhbSc7XG5cbmNsYXNzIE1lc3NhZ2VJTyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIGRlY2xhcmUgc29ja2V0OiBTb2NrZXQ7XG4gIGRlY2xhcmUgZGVidWc6IERlYnVnO1xuXG4gIGRlY2xhcmUgdGxzTmVnb3RpYXRpb25Db21wbGV0ZTogYm9vbGVhbjtcblxuICBkZWNsYXJlIHByaXZhdGUgaW5jb21pbmdNZXNzYWdlU3RyZWFtOiBJbmNvbWluZ01lc3NhZ2VTdHJlYW07XG4gIGRlY2xhcmUgb3V0Z29pbmdNZXNzYWdlU3RyZWFtOiBPdXRnb2luZ01lc3NhZ2VTdHJlYW07XG5cbiAgZGVjbGFyZSBzZWN1cmVQYWlyPzoge1xuICAgIGNsZWFydGV4dDogdGxzLlRMU1NvY2tldDtcbiAgICBlbmNyeXB0ZWQ6IER1cGxleDtcbiAgfTtcblxuICBkZWNsYXJlIGluY29taW5nTWVzc2FnZUl0ZXJhdG9yOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8TWVzc2FnZT47XG5cbiAgY29uc3RydWN0b3Ioc29ja2V0OiBTb2NrZXQsIHBhY2tldFNpemU6IG51bWJlciwgZGVidWc6IERlYnVnKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc29ja2V0ID0gc29ja2V0O1xuICAgIHRoaXMuZGVidWcgPSBkZWJ1ZztcblxuICAgIHRoaXMudGxzTmVnb3RpYXRpb25Db21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW0gPSBuZXcgSW5jb21pbmdNZXNzYWdlU3RyZWFtKHRoaXMuZGVidWcpO1xuICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlSXRlcmF0b3IgPSB0aGlzLmluY29taW5nTWVzc2FnZVN0cmVhbVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtcblxuICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtID0gbmV3IE91dGdvaW5nTWVzc2FnZVN0cmVhbSh0aGlzLmRlYnVnLCB7IHBhY2tldFNpemU6IHBhY2tldFNpemUgfSk7XG5cbiAgICB0aGlzLnNvY2tldC5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcbiAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5waXBlKHRoaXMuc29ja2V0KTtcbiAgfVxuXG4gIHBhY2tldFNpemUoLi4uYXJnczogW251bWJlcl0pIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYWNrZXRTaXplID0gYXJnc1swXTtcbiAgICAgIHRoaXMuZGVidWcubG9nKCdQYWNrZXQgc2l6ZSBjaGFuZ2VkIGZyb20gJyArIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUgKyAnIHRvICcgKyBwYWNrZXRTaXplKTtcbiAgICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUgPSBwYWNrZXRTaXplO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlY3VyZVBhaXIpIHtcbiAgICAgIHRoaXMuc2VjdXJlUGFpci5jbGVhcnRleHQuc2V0TWF4U2VuZEZyYWdtZW50KHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplO1xuICB9XG5cbiAgLy8gTmVnb3RpYXRlIFRMUyBlbmNyeXB0aW9uLlxuICBzdGFydFRscyhjcmVkZW50aWFsc0RldGFpbHM6IHRscy5TZWN1cmVDb250ZXh0T3B0aW9ucywgaG9zdG5hbWU6IHN0cmluZywgdHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZTogYm9vbGVhbikge1xuICAgIGlmICghY3JlZGVudGlhbHNEZXRhaWxzLm1heFZlcnNpb24gfHwgIVsnVExTdjEuMicsICdUTFN2MS4xJywgJ1RMU3YxJ10uaW5jbHVkZXMoY3JlZGVudGlhbHNEZXRhaWxzLm1heFZlcnNpb24pKSB7XG4gICAgICBjcmVkZW50aWFsc0RldGFpbHMubWF4VmVyc2lvbiA9ICdUTFN2MS4yJztcbiAgICB9XG5cbiAgICBjb25zdCBzZWN1cmVDb250ZXh0ID0gdGxzLmNyZWF0ZVNlY3VyZUNvbnRleHQoY3JlZGVudGlhbHNEZXRhaWxzKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBkdXBsZXhwYWlyID0gbmV3IER1cGxleFBhaXIoKTtcbiAgICAgIGNvbnN0IHNlY3VyZVBhaXIgPSB0aGlzLnNlY3VyZVBhaXIgPSB7XG4gICAgICAgIGNsZWFydGV4dDogdGxzLmNvbm5lY3Qoe1xuICAgICAgICAgIHNvY2tldDogZHVwbGV4cGFpci5zb2NrZXQxIGFzIFNvY2tldCxcbiAgICAgICAgICBzZXJ2ZXJuYW1lOiBob3N0bmFtZSxcbiAgICAgICAgICBzZWN1cmVDb250ZXh0OiBzZWN1cmVDb250ZXh0LFxuICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogIXRydXN0U2VydmVyQ2VydGlmaWNhdGVcbiAgICAgICAgfSksXG4gICAgICAgIGVuY3J5cHRlZDogZHVwbGV4cGFpci5zb2NrZXQyXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblNlY3VyZUNvbm5lY3QgPSAoKSA9PiB7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ3NlY3VyZUNvbm5lY3QnLCBvblNlY3VyZUNvbm5lY3QpO1xuXG4gICAgICAgIC8vIElmIHdlIGVuY291bnRlciBhbnkgZXJyb3JzIGZyb20gdGhpcyBwb2ludCBvbixcbiAgICAgICAgLy8gd2UganVzdCBmb3J3YXJkIHRoZW0gdG8gdGhlIGFjdHVhbCBuZXR3b3JrIHNvY2tldC5cbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQub25jZSgnZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5zb2NrZXQuZGVzdHJveShlcnIpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjaXBoZXIgPSBzZWN1cmVQYWlyLmNsZWFydGV4dC5nZXRDaXBoZXIoKTtcbiAgICAgICAgaWYgKGNpcGhlcikge1xuICAgICAgICAgIHRoaXMuZGVidWcubG9nKCdUTFMgbmVnb3RpYXRlZCAoJyArIGNpcGhlci5uYW1lICsgJywgJyArIGNpcGhlci52ZXJzaW9uICsgJyknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdCgnc2VjdXJlJywgc2VjdXJlUGFpci5jbGVhcnRleHQpO1xuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LnNldE1heFNlbmRGcmFnbWVudCh0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplKTtcblxuICAgICAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS51bnBpcGUodGhpcy5zb2NrZXQpO1xuICAgICAgICB0aGlzLnNvY2tldC51bnBpcGUodGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW0pO1xuXG4gICAgICAgIHRoaXMuc29ja2V0LnBpcGUoc2VjdXJlUGFpci5lbmNyeXB0ZWQpO1xuICAgICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5waXBlKHRoaXMuc29ja2V0KTtcblxuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ucGlwZShzZWN1cmVQYWlyLmNsZWFydGV4dCk7XG5cbiAgICAgICAgdGhpcy50bHNOZWdvdGlhdGlvbkNvbXBsZXRlID0gdHJ1ZTtcblxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvbkVycm9yID0gKGVycj86IEVycm9yKSA9PiB7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ3NlY3VyZUNvbm5lY3QnLCBvblNlY3VyZUNvbm5lY3QpO1xuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LmRlc3Ryb3koKTtcbiAgICAgICAgc2VjdXJlUGFpci5lbmNyeXB0ZWQuZGVzdHJveSgpO1xuXG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25SZWFkYWJsZSA9ICgpID0+IHtcbiAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBoYW5kc2hha2UgZGF0YSBvbiB0aGUgZW5jcnlwdGVkIHN0cmVhbSBvZiB0aGUgc2VjdXJlIHBhaXIsXG4gICAgICAgIC8vIHdlIHdyYXAgaXQgaW50byBhIGBQUkVMT0dJTmAgbWVzc2FnZSBhbmQgc2VuZCBpdCB0byB0aGUgc2VydmVyLlxuICAgICAgICAvL1xuICAgICAgICAvLyBGb3IgZWFjaCBgUFJFTE9HSU5gIG1lc3NhZ2Ugd2Ugc2VudCB3ZSBnZXQgYmFjayBleGFjdGx5IG9uZSByZXNwb25zZSBtZXNzYWdlXG4gICAgICAgIC8vIHRoYXQgY29udGFpbnMgdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZSBkYXRhLlxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbmV3IE1lc3NhZ2UoeyB0eXBlOiBUWVBFLlBSRUxPR0lOLCByZXNldENvbm5lY3Rpb246IGZhbHNlIH0pO1xuXG4gICAgICAgIGxldCBjaHVuaztcbiAgICAgICAgd2hpbGUgKGNodW5rID0gc2VjdXJlUGFpci5lbmNyeXB0ZWQucmVhZCgpKSB7XG4gICAgICAgICAgbWVzc2FnZS53cml0ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ud3JpdGUobWVzc2FnZSk7XG4gICAgICAgIG1lc3NhZ2UuZW5kKCk7XG5cbiAgICAgICAgdGhpcy5yZWFkTWVzc2FnZSgpLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgLy8gU2V0dXAgcmVhZGFibGUgaGFuZGxlciBmb3IgdGhlIG5leHQgcm91bmQgb2YgaGFuZHNoYWtpbmcuXG4gICAgICAgICAgLy8gSWYgd2UgZW5jb3VudGVyIGEgYHNlY3VyZUNvbm5lY3RgIG9uIHRoZSBjbGVhcnRleHQgc2lkZVxuICAgICAgICAgIC8vIG9mIHRoZSBzZWN1cmUgcGFpciwgdGhlIGByZWFkYWJsZWAgaGFuZGxlciBpcyBjbGVhcmVkXG4gICAgICAgICAgLy8gYW5kIG5vIGZ1cnRoZXIgaGFuZHNoYWtlIGhhbmRsaW5nIHdpbGwgaGFwcGVuLlxuICAgICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLm9uY2UoJ3JlYWRhYmxlJywgb25SZWFkYWJsZSk7XG5cbiAgICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGRhdGEgb2YgcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIC8vIFdlIGZlZWQgdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZSBiYWNrIGludG8gdGhlXG4gICAgICAgICAgICAvLyBlbmNyeXB0ZWQgZW5kIG9mIHRoZSBzZWN1cmUgcGFpci5cbiAgICAgICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLndyaXRlKGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2gob25FcnJvcik7XG4gICAgICB9O1xuXG4gICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5vbmNlKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQub25jZSgnc2VjdXJlQ29ubmVjdCcsIG9uU2VjdXJlQ29ubmVjdCk7XG4gICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5vbmNlKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETyBsaXN0ZW4gZm9yICdkcmFpbicgZXZlbnQgd2hlbiBzb2NrZXQud3JpdGUgcmV0dXJucyBmYWxzZS5cbiAgLy8gVE9ETyBpbXBsZW1lbnQgaW5jb21wbGV0ZSByZXF1ZXN0IGNhbmNlbGF0aW9uICgyLjIuMS42KVxuICBzZW5kTWVzc2FnZShwYWNrZXRUeXBlOiBudW1iZXIsIGRhdGE/OiBCdWZmZXIsIHJlc2V0Q29ubmVjdGlvbj86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IE1lc3NhZ2UoeyB0eXBlOiBwYWNrZXRUeXBlLCByZXNldENvbm5lY3Rpb246IHJlc2V0Q29ubmVjdGlvbiB9KTtcbiAgICBtZXNzYWdlLmVuZChkYXRhKTtcbiAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS53cml0ZShtZXNzYWdlKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIHRoZSBuZXh0IGluY29taW5nIG1lc3NhZ2UgZnJvbSB0aGUgc29ja2V0LlxuICAgKi9cbiAgYXN5bmMgcmVhZE1lc3NhZ2UoKTogUHJvbWlzZTxNZXNzYWdlPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5pbmNvbWluZ01lc3NhZ2VJdGVyYXRvci5uZXh0KCk7XG5cbiAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlbmQgb2YgbWVzc2FnZSBzdHJlYW0nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VJTztcbm1vZHVsZS5leHBvcnRzID0gTWVzc2FnZUlPO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsR0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBSUEsSUFBQUksUUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssT0FBQSxHQUFBTCxP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QUFXLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBT0MsUUFBUSxJQUFLO1VBQzFDO1VBQ0E7VUFDQTtVQUNBO1VBQ0EvQyxVQUFVLENBQUNvQixTQUFTLENBQUNNLElBQUksQ0FBQyxVQUFVLEVBQUVGLFVBQVUsQ0FBQztVQUVqRCxXQUFXLE1BQU13QixJQUFJLElBQUlELFFBQVEsRUFBRTtZQUNqQztZQUNBO1lBQ0EvQyxVQUFVLENBQUNvQixTQUFTLENBQUN1QixLQUFLLENBQUNLLElBQUksQ0FBQztVQUNsQztRQUNGLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUN4QixPQUFPLENBQUM7TUFDbkIsQ0FBQztNQUVEekIsVUFBVSxDQUFDQyxTQUFTLENBQUN5QixJQUFJLENBQUMsT0FBTyxFQUFFRCxPQUFPLENBQUM7TUFDM0N6QixVQUFVLENBQUNDLFNBQVMsQ0FBQ3lCLElBQUksQ0FBQyxlQUFlLEVBQUVKLGVBQWUsQ0FBQztNQUMzRHRCLFVBQVUsQ0FBQ29CLFNBQVMsQ0FBQ00sSUFBSSxDQUFDLFVBQVUsRUFBRUYsVUFBVSxDQUFDO0lBQ25ELENBQUMsQ0FBQztFQUNKOztFQUVBO0VBQ0E7RUFDQTBCLFdBQVdBLENBQUNDLFVBQWtCLEVBQUVILElBQWEsRUFBRVIsZUFBeUIsRUFBRTtJQUN4RSxNQUFNTCxPQUFPLEdBQUcsSUFBSUMsZ0JBQU8sQ0FBQztNQUFFQyxJQUFJLEVBQUVjLFVBQVU7TUFBRVgsZUFBZSxFQUFFQTtJQUFnQixDQUFDLENBQUM7SUFDbkZMLE9BQU8sQ0FBQ1MsR0FBRyxDQUFDSSxJQUFJLENBQUM7SUFDakIsSUFBSSxDQUFDdEQscUJBQXFCLENBQUNpRCxLQUFLLENBQUNSLE9BQU8sQ0FBQztJQUN6QyxPQUFPQSxPQUFPO0VBQ2hCOztFQUVBO0FBQ0Y7QUFDQTtFQUNFLE1BQU1VLFdBQVdBLENBQUEsRUFBcUI7SUFDcEMsTUFBTU8sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDN0QsdUJBQXVCLENBQUM4RCxJQUFJLENBQUMsQ0FBQztJQUV4RCxJQUFJRCxNQUFNLENBQUNFLElBQUksRUFBRTtNQUNmLE1BQU0sSUFBSUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDO0lBQ3JEO0lBRUEsT0FBT0gsTUFBTSxDQUFDSSxLQUFLO0VBQ3JCO0FBQ0Y7QUFBQyxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsQ0FBQXJGLE9BQUEsR0FFY1MsU0FBUztBQUN4QjZFLE1BQU0sQ0FBQ0QsT0FBTyxHQUFHNUUsU0FBUyIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/message-io.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-io.js","names":["_nativeDuplexpair","_interopRequireDefault","require","tls","_interopRequireWildcard","_events","_message","_packet","_incomingMessageStream","_outgoingMessageStream","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MessageIO","EventEmitter","constructor","socket","packetSize","debug","tlsNegotiationComplete","incomingMessageStream","IncomingMessageStream","incomingMessageIterator","Symbol","asyncIterator","outgoingMessageStream","OutgoingMessageStream","pipe","args","length","log","securePair","cleartext","setMaxSendFragment","startTls","credentialsDetails","hostname","trustServerCertificate","maxVersion","includes","secureContext","createSecureContext","Promise","resolve","reject","duplexpair","DuplexPair","connect","socket1","servername","rejectUnauthorized","encrypted","socket2","onSecureConnect","removeListener","onReadable","onError","once","err","destroy","cipher","getCipher","name","version","emit","unpipe","message","Message","type","TYPE","PRELOGIN","resetConnection","chunk","read","write","end","readMessage","then","response","data","catch","sendMessage","packetType","result","next","done","Error","value","_default","exports","module"],"sources":["../src/message-io.ts"],"sourcesContent":["import DuplexPair from 'native-duplexpair';\n\nimport { Duplex } from 'stream';\nimport * as tls from 'tls';\nimport { Socket } from 'net';\nimport { EventEmitter } from 'events';\n\nimport Debug from './debug';\n\nimport Message from './message';\nimport { TYPE } from './packet';\n\nimport IncomingMessageStream from './incoming-message-stream';\nimport OutgoingMessageStream from './outgoing-message-stream';\n\nclass MessageIO extends EventEmitter {\n declare socket: Socket;\n declare debug: Debug;\n\n declare tlsNegotiationComplete: boolean;\n\n declare private incomingMessageStream: IncomingMessageStream;\n declare outgoingMessageStream: OutgoingMessageStream;\n\n declare securePair?: {\n cleartext: tls.TLSSocket;\n encrypted: Duplex;\n };\n\n declare incomingMessageIterator: AsyncIterableIterator<Message>;\n\n constructor(socket: Socket, packetSize: number, debug: Debug) {\n super();\n\n this.socket = socket;\n this.debug = debug;\n\n this.tlsNegotiationComplete = false;\n\n this.incomingMessageStream = new IncomingMessageStream(this.debug);\n this.incomingMessageIterator = this.incomingMessageStream[Symbol.asyncIterator]();\n\n this.outgoingMessageStream = new OutgoingMessageStream(this.debug, { packetSize: packetSize });\n\n this.socket.pipe(this.incomingMessageStream);\n this.outgoingMessageStream.pipe(this.socket);\n }\n\n packetSize(...args: [number]) {\n if (args.length > 0) {\n const packetSize = args[0];\n this.debug.log('Packet size changed from ' + this.outgoingMessageStream.packetSize + ' to ' + packetSize);\n this.outgoingMessageStream.packetSize = packetSize;\n }\n\n if (this.securePair) {\n this.securePair.cleartext.setMaxSendFragment(this.outgoingMessageStream.packetSize);\n }\n\n return this.outgoingMessageStream.packetSize;\n }\n\n // Negotiate TLS encryption.\n startTls(credentialsDetails: tls.SecureContextOptions, hostname: string, trustServerCertificate: boolean) {\n if (!credentialsDetails.maxVersion || !['TLSv1.2', 'TLSv1.1', 'TLSv1'].includes(credentialsDetails.maxVersion)) {\n credentialsDetails.maxVersion = 'TLSv1.2';\n }\n\n const secureContext = tls.createSecureContext(credentialsDetails);\n\n return new Promise<void>((resolve, reject) => {\n const duplexpair = new DuplexPair();\n const securePair = this.securePair = {\n cleartext: tls.connect({\n socket: duplexpair.socket1 as Socket,\n servername: hostname,\n secureContext: secureContext,\n rejectUnauthorized: !trustServerCertificate\n }),\n encrypted: duplexpair.socket2\n };\n\n const onSecureConnect = () => {\n securePair.encrypted.removeListener('readable', onReadable);\n securePair.cleartext.removeListener('error', onError);\n securePair.cleartext.removeListener('secureConnect', onSecureConnect);\n\n // If we encounter any errors from this point on,\n // we just forward them to the actual network socket.\n securePair.cleartext.once('error', (err) => {\n this.socket.destroy(err);\n });\n\n const cipher = securePair.cleartext.getCipher();\n if (cipher) {\n this.debug.log('TLS negotiated (' + cipher.name + ', ' + cipher.version + ')');\n }\n\n this.emit('secure', securePair.cleartext);\n\n securePair.cleartext.setMaxSendFragment(this.outgoingMessageStream.packetSize);\n\n this.outgoingMessageStream.unpipe(this.socket);\n this.socket.unpipe(this.incomingMessageStream);\n\n this.socket.pipe(securePair.encrypted);\n securePair.encrypted.pipe(this.socket);\n\n securePair.cleartext.pipe(this.incomingMessageStream);\n this.outgoingMessageStream.pipe(securePair.cleartext);\n\n this.tlsNegotiationComplete = true;\n\n resolve();\n };\n\n const onError = (err?: Error) => {\n securePair.encrypted.removeListener('readable', onReadable);\n securePair.cleartext.removeListener('error', onError);\n securePair.cleartext.removeListener('secureConnect', onSecureConnect);\n\n securePair.cleartext.destroy();\n securePair.encrypted.destroy();\n\n reject(err);\n };\n\n const onReadable = () => {\n // When there is handshake data on the encrypted stream of the secure pair,\n // we wrap it into a `PRELOGIN` message and send it to the server.\n //\n // For each `PRELOGIN` message we sent we get back exactly one response message\n // that contains the server's handshake response data.\n const message = new Message({ type: TYPE.PRELOGIN, resetConnection: false });\n\n let chunk;\n while (chunk = securePair.encrypted.read()) {\n message.write(chunk);\n }\n this.outgoingMessageStream.write(message);\n message.end();\n\n this.readMessage().then(async (response) => {\n // Setup readable handler for the next round of handshaking.\n // If we encounter a `secureConnect` on the cleartext side\n // of the secure pair, the `readable` handler is cleared\n // and no further handshake handling will happen.\n securePair.encrypted.once('readable', onReadable);\n\n for await (const data of response) {\n // We feed the server's handshake response back into the\n // encrypted end of the secure pair.\n securePair.encrypted.write(data);\n }\n }).catch(onError);\n };\n\n securePair.cleartext.once('error', onError);\n securePair.cleartext.once('secureConnect', onSecureConnect);\n securePair.encrypted.once('readable', onReadable);\n });\n }\n\n // TODO listen for 'drain' event when socket.write returns false.\n // TODO implement incomplete request cancelation (2.2.1.6)\n sendMessage(packetType: number, data?: Buffer, resetConnection?: boolean) {\n const message = new Message({ type: packetType, resetConnection: resetConnection });\n message.end(data);\n this.outgoingMessageStream.write(message);\n return message;\n }\n\n /**\n * Read the next incoming message from the socket.\n */\n async readMessage(): Promise<Message> {\n const result = await this.incomingMessageIterator.next();\n\n if (result.done) {\n throw new Error('unexpected end of message stream');\n }\n\n return result.value;\n }\n}\n\nexport default MessageIO;\nmodule.exports = MessageIO;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"message-io.js","names":["_nativeDuplexpair","_interopRequireDefault","require","tls","_interopRequireWildcard","_events","_message","_packet","_incomingMessageStream","_outgoingMessageStream","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MessageIO","EventEmitter","constructor","socket","packetSize","debug","tlsNegotiationComplete","incomingMessageStream","IncomingMessageStream","incomingMessageIterator","Symbol","asyncIterator","outgoingMessageStream","OutgoingMessageStream","pipe","args","length","log","securePair","cleartext","setMaxSendFragment","startTls","credentialsDetails","hostname","trustServerCertificate","maxVersion","includes","secureContext","createSecureContext","Promise","resolve","reject","duplexpair","DuplexPair","connect","socket1","servername","rejectUnauthorized","encrypted","socket2","onSecureConnect","removeListener","onReadable","onError","once","err","destroy","cipher","getCipher","name","version","emit","unpipe","message","Message","type","TYPE","PRELOGIN","resetConnection","chunk","read","write","end","readMessage","then","response","data","catch","sendMessage","packetType","result","next","done","Error","value","_default","exports","module"],"sources":["../src/message-io.ts"],"sourcesContent":["import DuplexPair from 'native-duplexpair';\n\nimport { Duplex } from 'stream';\nimport * as tls from 'tls';\nimport { Socket } from 'net';\nimport { EventEmitter } from 'events';\n\nimport Debug from './debug';\n\nimport Message from './message';\nimport { TYPE } from './packet';\n\nimport IncomingMessageStream from './incoming-message-stream';\nimport OutgoingMessageStream from './outgoing-message-stream';\n\nclass MessageIO extends EventEmitter {\n declare socket: Socket;\n declare debug: Debug;\n\n declare tlsNegotiationComplete: boolean;\n\n declare private incomingMessageStream: IncomingMessageStream;\n declare outgoingMessageStream: OutgoingMessageStream;\n\n declare securePair?: {\n cleartext: tls.TLSSocket;\n encrypted: Duplex;\n };\n\n declare incomingMessageIterator: AsyncIterableIterator<Message>;\n\n constructor(socket: Socket, packetSize: number, debug: Debug) {\n super();\n\n this.socket = socket;\n this.debug = debug;\n\n this.tlsNegotiationComplete = false;\n\n this.incomingMessageStream = new IncomingMessageStream(this.debug);\n this.incomingMessageIterator = this.incomingMessageStream[Symbol.asyncIterator]();\n\n this.outgoingMessageStream = new OutgoingMessageStream(this.debug, { packetSize: packetSize });\n\n this.socket.pipe(this.incomingMessageStream);\n this.outgoingMessageStream.pipe(this.socket);\n }\n\n packetSize(...args: [number]) {\n if (args.length > 0) {\n const packetSize = args[0];\n this.debug.log('Packet size changed from ' + this.outgoingMessageStream.packetSize + ' to ' + packetSize);\n this.outgoingMessageStream.packetSize = packetSize;\n }\n\n if (this.securePair) {\n this.securePair.cleartext.setMaxSendFragment(this.outgoingMessageStream.packetSize);\n }\n\n return this.outgoingMessageStream.packetSize;\n }\n\n // Negotiate TLS encryption.\n startTls(credentialsDetails: tls.SecureContextOptions, hostname: string, trustServerCertificate: boolean) {\n if (!credentialsDetails.maxVersion || !['TLSv1.2', 'TLSv1.1', 'TLSv1'].includes(credentialsDetails.maxVersion)) {\n credentialsDetails.maxVersion = 'TLSv1.2';\n }\n\n const secureContext = tls.createSecureContext(credentialsDetails);\n\n return new Promise<void>((resolve, reject) => {\n const duplexpair = new DuplexPair();\n const securePair = this.securePair = {\n cleartext: tls.connect({\n socket: duplexpair.socket1 as Socket,\n servername: hostname,\n secureContext: secureContext,\n rejectUnauthorized: !trustServerCertificate\n }),\n encrypted: duplexpair.socket2\n };\n\n const onSecureConnect = () => {\n securePair.encrypted.removeListener('readable', onReadable);\n securePair.cleartext.removeListener('error', onError);\n securePair.cleartext.removeListener('secureConnect', onSecureConnect);\n\n // If we encounter any errors from this point on,\n // we just forward them to the actual network socket.\n securePair.cleartext.once('error', (err) => {\n this.socket.destroy(err);\n });\n\n const cipher = securePair.cleartext.getCipher();\n if (cipher) {\n this.debug.log('TLS negotiated (' + cipher.name + ', ' + cipher.version + ')');\n }\n\n this.emit('secure', securePair.cleartext);\n\n securePair.cleartext.setMaxSendFragment(this.outgoingMessageStream.packetSize);\n\n this.outgoingMessageStream.unpipe(this.socket);\n this.socket.unpipe(this.incomingMessageStream);\n\n this.socket.pipe(securePair.encrypted);\n securePair.encrypted.pipe(this.socket);\n\n securePair.cleartext.pipe(this.incomingMessageStream);\n this.outgoingMessageStream.pipe(securePair.cleartext);\n\n this.tlsNegotiationComplete = true;\n\n resolve();\n };\n\n const onError = (err?: Error) => {\n securePair.encrypted.removeListener('readable', onReadable);\n securePair.cleartext.removeListener('error', onError);\n securePair.cleartext.removeListener('secureConnect', onSecureConnect);\n\n securePair.cleartext.destroy();\n securePair.encrypted.destroy();\n\n reject(err);\n };\n\n const onReadable = () => {\n // When there is handshake data on the encrypted stream of the secure pair,\n // we wrap it into a `PRELOGIN` message and send it to the server.\n //\n // For each `PRELOGIN` message we sent we get back exactly one response message\n // that contains the server's handshake response data.\n const message = new Message({ type: TYPE.PRELOGIN, resetConnection: false });\n\n let chunk;\n while (chunk = securePair.encrypted.read()) {\n message.write(chunk);\n }\n this.outgoingMessageStream.write(message);\n message.end();\n\n this.readMessage().then(async (response) => {\n // Setup readable handler for the next round of handshaking.\n // If we encounter a `secureConnect` on the cleartext side\n // of the secure pair, the `readable` handler is cleared\n // and no further handshake handling will happen.\n securePair.encrypted.once('readable', onReadable);\n\n for await (const data of response) {\n // We feed the server's handshake response back into the\n // encrypted end of the secure pair.\n securePair.encrypted.write(data);\n }\n }).catch(onError);\n };\n\n securePair.cleartext.once('error', onError);\n securePair.cleartext.once('secureConnect', onSecureConnect);\n securePair.encrypted.once('readable', onReadable);\n });\n }\n\n // TODO listen for 'drain' event when socket.write returns false.\n // TODO implement incomplete request cancelation (2.2.1.6)\n sendMessage(packetType: number, data?: Buffer, resetConnection?: boolean) {\n const message = new Message({ type: packetType, resetConnection: resetConnection });\n message.end(data);\n this.outgoingMessageStream.write(message);\n return message;\n }\n\n /**\n * Read the next incoming message from the socket.\n */\n async readMessage(): Promise<Message> {\n const result = await this.incomingMessageIterator.next();\n\n if (result.done) {\n throw new Error('unexpected end of message stream');\n }\n\n return result.value;\n }\n}\n\nexport default MessageIO;\nmodule.exports = MessageIO;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/ntlm-payload.js
CHANGED
|
@@ -7,8 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _writableTrackingBuffer = _interopRequireDefault(require("./tracking-buffer/writable-tracking-buffer"));
|
|
8
8
|
var crypto = _interopRequireWildcard(require("crypto"));
|
|
9
9
|
var _jsMd = _interopRequireDefault(require("js-md4"));
|
|
10
|
-
function
|
|
11
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
12
|
class NTLMResponsePayload {
|
|
14
13
|
constructor(loginData) {
|
|
@@ -133,4 +132,4 @@ class NTLMResponsePayload {
|
|
|
133
132
|
}
|
|
134
133
|
var _default = exports.default = NTLMResponsePayload;
|
|
135
134
|
module.exports = NTLMResponsePayload;
|
|
136
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiY3J5cHRvIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfanNNZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIk5UTE1SZXNwb25zZVBheWxvYWQiLCJjb25zdHJ1Y3RvciIsImxvZ2luRGF0YSIsImRhdGEiLCJjcmVhdGVSZXNwb25zZSIsInRvU3RyaW5nIiwiaW5kZW50IiwiY2hhbGxlbmdlIiwiY2xpZW50X25vbmNlIiwiY3JlYXRlQ2xpZW50Tm9uY2UiLCJsbXYybGVuIiwibnRsbXYybGVuIiwiZG9tYWluIiwidXNlcm5hbWUiLCJ1c2VyTmFtZSIsInBhc3N3b3JkIiwibnRsbURhdGEiLCJudGxtcGFja2V0Iiwic2VydmVyX2RhdGEiLCJ0YXJnZXQiLCJzZXJ2ZXJfbm9uY2UiLCJub25jZSIsImJ1ZmZlckxlbmd0aCIsImxlbmd0aCIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJwb3NpdGlvbiIsIndyaXRlU3RyaW5nIiwid3JpdGVVSW50MzJMRSIsImJhc2VJZHgiLCJkbklkeCIsInVuSWR4IiwibDJJZHgiLCJudElkeCIsIndyaXRlVUludDE2TEUiLCJsbXYyRGF0YSIsImxtdjJSZXNwb25zZSIsImNvcHlGcm9tIiwiZ2VuVGltZSIsIkRhdGUiLCJnZXRUaW1lIiwibnRsbURhdGFCdWZmZXIiLCJudGxtdjJSZXNwb25zZSIsInRpbWVzdGFtcCIsImNyZWF0ZVRpbWVzdGFtcCIsIkJ1ZmZlciIsImFsbG9jIiwibmlkeCIsIndyaXRlVUludDgiLCJNYXRoIiwiY2VpbCIsInJhbmRvbSIsInVzZXIiLCJzZXJ2ZXJOb25jZSIsInRhcmdldEluZm8iLCJjbGllbnROb25jZSIsIm15dGltZSIsImhhc2giLCJudHYySGFzaCIsImRhdGFMZW5ndGgiLCJjb3B5IiwiaG1hY01ENSIsInRpbWUiLCJ0ZW50aHNPZkFNaWNyb3NlY29uZCIsIkJpZ0ludCIsImxvIiwiTnVtYmVyIiwiaGkiLCJyZXN1bHQiLCJuZXdoYXNoIiwicmVzcG9uc2UiLCJudEhhc2giLCJpZGVudGl0eSIsImZyb20iLCJ0b1VwcGVyQ2FzZSIsInRleHQiLCJ1bmljb2RlU3RyaW5nIiwibWQ0IiwiYXJyYXlCdWZmZXIiLCJrZXkiLCJjcmVhdGVIbWFjIiwidXBkYXRlIiwiZGlnZXN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vc3JjL250bG0tcGF5bG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuL3RyYWNraW5nLWJ1ZmZlci93cml0YWJsZS10cmFja2luZy1idWZmZXInO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgbWQ0IGZyb20gJ2pzLW1kNCc7XG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgZG9tYWluOiBzdHJpbmc7XG4gIHVzZXJOYW1lOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG4gIG50bG1wYWNrZXQ6IHtcbiAgICB0YXJnZXQ6IEJ1ZmZlcjtcbiAgICBub25jZTogQnVmZmVyO1xuICB9O1xufVxuXG5jbGFzcyBOVExNUmVzcG9uc2VQYXlsb2FkIHtcbiAgZGVjbGFyZSBkYXRhOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobG9naW5EYXRhOiBPcHRpb25zKSB7XG4gICAgdGhpcy5kYXRhID0gdGhpcy5jcmVhdGVSZXNwb25zZShsb2dpbkRhdGEpO1xuICB9XG5cbiAgdG9TdHJpbmcoaW5kZW50ID0gJycpIHtcbiAgICByZXR1cm4gaW5kZW50ICsgJ05UTE0gQXV0aCc7XG4gIH1cblxuICBjcmVhdGVSZXNwb25zZShjaGFsbGVuZ2U6IE9wdGlvbnMpIHtcbiAgICBjb25zdCBjbGllbnRfbm9uY2UgPSB0aGlzLmNyZWF0ZUNsaWVudE5vbmNlKCk7XG4gICAgY29uc3QgbG12MmxlbiA9IDI0O1xuICAgIGNvbnN0IG50bG12MmxlbiA9IDE2O1xuICAgIGNvbnN0IGRvbWFpbiA9IGNoYWxsZW5nZS5kb21haW47XG4gICAgY29uc3QgdXNlcm5hbWUgPSBjaGFsbGVuZ2UudXNlck5hbWU7XG4gICAgY29uc3QgcGFzc3dvcmQgPSBjaGFsbGVuZ2UucGFzc3dvcmQ7XG4gICAgY29uc3QgbnRsbURhdGEgPSBjaGFsbGVuZ2UubnRsbXBhY2tldDtcbiAgICBjb25zdCBzZXJ2ZXJfZGF0YSA9IG50bG1EYXRhLnRhcmdldDtcbiAgICBjb25zdCBzZXJ2ZXJfbm9uY2UgPSBudGxtRGF0YS5ub25jZTtcbiAgICBjb25zdCBidWZmZXJMZW5ndGggPSA2NCArIChkb21haW4ubGVuZ3RoICogMikgKyAodXNlcm5hbWUubGVuZ3RoICogMikgKyBsbXYybGVuICsgbnRsbXYybGVuICsgOCArIDggKyA4ICsgNCArIHNlcnZlcl9kYXRhLmxlbmd0aCArIDQ7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKGJ1ZmZlckxlbmd0aCk7XG4gICAgZGF0YS5wb3NpdGlvbiA9IDA7XG4gICAgZGF0YS53cml0ZVN0cmluZygnTlRMTVNTUFxcdTAwMDAnLCAndXRmOCcpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSgweDAzKTtcbiAgICBjb25zdCBiYXNlSWR4ID0gNjQ7XG4gICAgY29uc3QgZG5JZHggPSBiYXNlSWR4O1xuICAgIGNvbnN0IHVuSWR4ID0gZG5JZHggKyBkb21haW4ubGVuZ3RoICogMjtcbiAgICBjb25zdCBsMklkeCA9IHVuSWR4ICsgdXNlcm5hbWUubGVuZ3RoICogMjtcbiAgICBjb25zdCBudElkeCA9IGwySWR4ICsgbG12MmxlbjtcbiAgICBkYXRhLndyaXRlVUludDE2TEUobG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKGxtdjJsZW4pO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRShsMklkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKG50bG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKG50bG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKG50SWR4KTtcbiAgICBkYXRhLndyaXRlVUludDE2TEUoZG9tYWluLmxlbmd0aCAqIDIpO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRShkb21haW4ubGVuZ3RoICogMik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKGRuSWR4KTtcbiAgICBkYXRhLndyaXRlVUludDE2TEUodXNlcm5hbWUubGVuZ3RoICogMik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKHVzZXJuYW1lLmxlbmd0aCAqIDIpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSh1bklkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDApO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRSgwKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoYmFzZUlkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDApO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRSgwKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoYmFzZUlkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDB4ODIwMSk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDB4MDgpO1xuICAgIGRhdGEud3JpdGVTdHJpbmcoZG9tYWluLCAndWNzMicpO1xuICAgIGRhdGEud3JpdGVTdHJpbmcodXNlcm5hbWUsICd1Y3MyJyk7XG4gICAgY29uc3QgbG12MkRhdGEgPSB0aGlzLmxtdjJSZXNwb25zZShkb21haW4sIHVzZXJuYW1lLCBwYXNzd29yZCwgc2VydmVyX25vbmNlLCBjbGllbnRfbm9uY2UpO1xuICAgIGRhdGEuY29weUZyb20obG12MkRhdGEpO1xuICAgIGNvbnN0IGdlblRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCBudGxtRGF0YUJ1ZmZlciA9IHRoaXMubnRsbXYyUmVzcG9uc2UoZG9tYWluLCB1c2VybmFtZSwgcGFzc3dvcmQsIHNlcnZlcl9ub25jZSwgc2VydmVyX2RhdGEsIGNsaWVudF9ub25jZSwgZ2VuVGltZSk7XG4gICAgZGF0YS5jb3B5RnJvbShudGxtRGF0YUJ1ZmZlcik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MDEwMSk7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MDAwMCk7XG4gICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5jcmVhdGVUaW1lc3RhbXAoZ2VuVGltZSk7XG4gICAgZGF0YS5jb3B5RnJvbSh0aW1lc3RhbXApO1xuICAgIGRhdGEuY29weUZyb20oY2xpZW50X25vbmNlKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwMDAwKTtcbiAgICBkYXRhLmNvcHlGcm9tKHNlcnZlcl9kYXRhKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwMDAwKTtcbiAgICByZXR1cm4gZGF0YS5kYXRhO1xuICB9XG5cbiAgY3JlYXRlQ2xpZW50Tm9uY2UoKSB7XG4gICAgY29uc3QgY2xpZW50X25vbmNlID0gQnVmZmVyLmFsbG9jKDgsIDApO1xuICAgIGxldCBuaWR4ID0gMDtcbiAgICB3aGlsZSAobmlkeCA8IDgpIHtcbiAgICAgIGNsaWVudF9ub25jZS53cml0ZVVJbnQ4KE1hdGguY2VpbChNYXRoLnJhbmRvbSgpICogMjU1KSwgbmlkeCk7XG4gICAgICBuaWR4Kys7XG4gICAgfVxuICAgIHJldHVybiBjbGllbnRfbm9uY2U7XG4gIH1cblxuICBudGxtdjJSZXNwb25zZShkb21haW46IHN0cmluZywgdXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBzZXJ2ZXJOb25jZTogQnVmZmVyLCB0YXJnZXRJbmZvOiBCdWZmZXIsIGNsaWVudE5vbmNlOiBCdWZmZXIsIG15dGltZTogbnVtYmVyKSB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5jcmVhdGVUaW1lc3RhbXAobXl0aW1lKTtcbiAgICBjb25zdCBoYXNoID0gdGhpcy5udHYySGFzaChkb21haW4sIHVzZXIsIHBhc3N3b3JkKTtcbiAgICBjb25zdCBkYXRhTGVuZ3RoID0gNDAgKyB0YXJnZXRJbmZvLmxlbmd0aDtcbiAgICBjb25zdCBkYXRhID0gQnVmZmVyLmFsbG9jKGRhdGFMZW5ndGgsIDApO1xuICAgIHNlcnZlck5vbmNlLmNvcHkoZGF0YSwgMCwgMCwgOCk7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MTAxLCA4KTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwLCAxMik7XG4gICAgdGltZXN0YW1wLmNvcHkoZGF0YSwgMTYsIDAsIDgpO1xuICAgIGNsaWVudE5vbmNlLmNvcHkoZGF0YSwgMjQsIDAsIDgpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSgweDAsIDMyKTtcbiAgICB0YXJnZXRJbmZvLmNvcHkoZGF0YSwgMzYsIDAsIHRhcmdldEluZm8ubGVuZ3RoKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwLCAzNiArIHRhcmdldEluZm8ubGVuZ3RoKTtcbiAgICByZXR1cm4gdGhpcy5obWFjTUQ1KGRhdGEsIGhhc2gpO1xuICB9XG5cbiAgY3JlYXRlVGltZXN0YW1wKHRpbWU6IG51bWJlcikge1xuICAgIGNvbnN0IHRlbnRoc09mQU1pY3Jvc2Vjb25kID0gKEJpZ0ludCh0aW1lKSArIEJpZ0ludCgxMTY0NDQ3MzYwMCkpICogQmlnSW50KDEwMDAwMDAwKTtcblxuICAgIGNvbnN0IGxvID0gTnVtYmVyKHRlbnRoc09mQU1pY3Jvc2Vjb25kICYgQmlnSW50KDB4ZmZmZmZmZmYpKTtcbiAgICBjb25zdCBoaSA9IE51bWJlcigodGVudGhzT2ZBTWljcm9zZWNvbmQgPj4gQmlnSW50KDMyKSkgJiBCaWdJbnQoMHhmZmZmZmZmZikpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIHJlc3VsdC53cml0ZVVJbnQzMkxFKGxvLCAwKTtcbiAgICByZXN1bHQud3JpdGVVSW50MzJMRShoaSwgNCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGxtdjJSZXNwb25zZShkb21haW46IHN0cmluZywgdXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBzZXJ2ZXJOb25jZTogQnVmZmVyLCBjbGllbnROb25jZTogQnVmZmVyKSB7XG4gICAgY29uc3QgaGFzaCA9IHRoaXMubnR2Mkhhc2goZG9tYWluLCB1c2VyLCBwYXNzd29yZCk7XG4gICAgY29uc3QgZGF0YSA9IEJ1ZmZlci5hbGxvYyhzZXJ2ZXJOb25jZS5sZW5ndGggKyBjbGllbnROb25jZS5sZW5ndGgsIDApO1xuXG4gICAgc2VydmVyTm9uY2UuY29weShkYXRhKTtcbiAgICBjbGllbnROb25jZS5jb3B5KGRhdGEsIHNlcnZlck5vbmNlLmxlbmd0aCwgMCwgY2xpZW50Tm9uY2UubGVuZ3RoKTtcblxuICAgIGNvbnN0IG5ld2hhc2ggPSB0aGlzLmhtYWNNRDUoZGF0YSwgaGFzaCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBCdWZmZXIuYWxsb2MobmV3aGFzaC5sZW5ndGggKyBjbGllbnROb25jZS5sZW5ndGgsIDApO1xuXG4gICAgbmV3aGFzaC5jb3B5KHJlc3BvbnNlKTtcbiAgICBjbGllbnROb25jZS5jb3B5KHJlc3BvbnNlLCBuZXdoYXNoLmxlbmd0aCwgMCwgY2xpZW50Tm9uY2UubGVuZ3RoKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIG50djJIYXNoKGRvbWFpbjogc3RyaW5nLCB1c2VyOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoYXNoID0gdGhpcy5udEhhc2gocGFzc3dvcmQpO1xuICAgIGNvbnN0IGlkZW50aXR5ID0gQnVmZmVyLmZyb20odXNlci50b1VwcGVyQ2FzZSgpICsgZG9tYWluLnRvVXBwZXJDYXNlKCksICd1Y3MyJyk7XG4gICAgcmV0dXJuIHRoaXMuaG1hY01ENShpZGVudGl0eSwgaGFzaCk7XG4gIH1cblxuICBudEhhc2godGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgdW5pY29kZVN0cmluZyA9IEJ1ZmZlci5mcm9tKHRleHQsICd1Y3MyJyk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKG1kNC5hcnJheUJ1ZmZlcih1bmljb2RlU3RyaW5nKSk7XG4gIH1cblxuICBobWFjTUQ1KGRhdGE6IEJ1ZmZlciwga2V5OiBCdWZmZXIpIHtcbiAgICByZXR1cm4gY3J5cHRvLmNyZWF0ZUhtYWMoJ01ENScsIGtleSkudXBkYXRlKGRhdGEpLmRpZ2VzdCgpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5UTE1SZXNwb25zZVBheWxvYWQ7XG5tb2R1bGUuZXhwb3J0cyA9IE5UTE1SZXNwb25zZVBheWxvYWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLHVCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFBeUIsU0FBQUkseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUgsd0JBQUFHLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxXQUFBSyxPQUFBLEVBQUFMLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENB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
|
|
135
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiY3J5cHRvIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfanNNZCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIk5UTE1SZXNwb25zZVBheWxvYWQiLCJjb25zdHJ1Y3RvciIsImxvZ2luRGF0YSIsImRhdGEiLCJjcmVhdGVSZXNwb25zZSIsInRvU3RyaW5nIiwiaW5kZW50IiwiY2hhbGxlbmdlIiwiY2xpZW50X25vbmNlIiwiY3JlYXRlQ2xpZW50Tm9uY2UiLCJsbXYybGVuIiwibnRsbXYybGVuIiwiZG9tYWluIiwidXNlcm5hbWUiLCJ1c2VyTmFtZSIsInBhc3N3b3JkIiwibnRsbURhdGEiLCJudGxtcGFja2V0Iiwic2VydmVyX2RhdGEiLCJ0YXJnZXQiLCJzZXJ2ZXJfbm9uY2UiLCJub25jZSIsImJ1ZmZlckxlbmd0aCIsImxlbmd0aCIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJwb3NpdGlvbiIsIndyaXRlU3RyaW5nIiwid3JpdGVVSW50MzJMRSIsImJhc2VJZHgiLCJkbklkeCIsInVuSWR4IiwibDJJZHgiLCJudElkeCIsIndyaXRlVUludDE2TEUiLCJsbXYyRGF0YSIsImxtdjJSZXNwb25zZSIsImNvcHlGcm9tIiwiZ2VuVGltZSIsIkRhdGUiLCJnZXRUaW1lIiwibnRsbURhdGFCdWZmZXIiLCJudGxtdjJSZXNwb25zZSIsInRpbWVzdGFtcCIsImNyZWF0ZVRpbWVzdGFtcCIsIkJ1ZmZlciIsImFsbG9jIiwibmlkeCIsIndyaXRlVUludDgiLCJNYXRoIiwiY2VpbCIsInJhbmRvbSIsInVzZXIiLCJzZXJ2ZXJOb25jZSIsInRhcmdldEluZm8iLCJjbGllbnROb25jZSIsIm15dGltZSIsImhhc2giLCJudHYySGFzaCIsImRhdGFMZW5ndGgiLCJjb3B5IiwiaG1hY01ENSIsInRpbWUiLCJ0ZW50aHNPZkFNaWNyb3NlY29uZCIsIkJpZ0ludCIsImxvIiwiTnVtYmVyIiwiaGkiLCJyZXN1bHQiLCJuZXdoYXNoIiwicmVzcG9uc2UiLCJudEhhc2giLCJpZGVudGl0eSIsImZyb20iLCJ0b1VwcGVyQ2FzZSIsInRleHQiLCJ1bmljb2RlU3RyaW5nIiwibWQ0IiwiYXJyYXlCdWZmZXIiLCJrZXkiLCJjcmVhdGVIbWFjIiwidXBkYXRlIiwiZGlnZXN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vc3JjL250bG0tcGF5bG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuL3RyYWNraW5nLWJ1ZmZlci93cml0YWJsZS10cmFja2luZy1idWZmZXInO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgbWQ0IGZyb20gJ2pzLW1kNCc7XG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgZG9tYWluOiBzdHJpbmc7XG4gIHVzZXJOYW1lOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG4gIG50bG1wYWNrZXQ6IHtcbiAgICB0YXJnZXQ6IEJ1ZmZlcjtcbiAgICBub25jZTogQnVmZmVyO1xuICB9O1xufVxuXG5jbGFzcyBOVExNUmVzcG9uc2VQYXlsb2FkIHtcbiAgZGVjbGFyZSBkYXRhOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobG9naW5EYXRhOiBPcHRpb25zKSB7XG4gICAgdGhpcy5kYXRhID0gdGhpcy5jcmVhdGVSZXNwb25zZShsb2dpbkRhdGEpO1xuICB9XG5cbiAgdG9TdHJpbmcoaW5kZW50ID0gJycpIHtcbiAgICByZXR1cm4gaW5kZW50ICsgJ05UTE0gQXV0aCc7XG4gIH1cblxuICBjcmVhdGVSZXNwb25zZShjaGFsbGVuZ2U6IE9wdGlvbnMpIHtcbiAgICBjb25zdCBjbGllbnRfbm9uY2UgPSB0aGlzLmNyZWF0ZUNsaWVudE5vbmNlKCk7XG4gICAgY29uc3QgbG12MmxlbiA9IDI0O1xuICAgIGNvbnN0IG50bG12MmxlbiA9IDE2O1xuICAgIGNvbnN0IGRvbWFpbiA9IGNoYWxsZW5nZS5kb21haW47XG4gICAgY29uc3QgdXNlcm5hbWUgPSBjaGFsbGVuZ2UudXNlck5hbWU7XG4gICAgY29uc3QgcGFzc3dvcmQgPSBjaGFsbGVuZ2UucGFzc3dvcmQ7XG4gICAgY29uc3QgbnRsbURhdGEgPSBjaGFsbGVuZ2UubnRsbXBhY2tldDtcbiAgICBjb25zdCBzZXJ2ZXJfZGF0YSA9IG50bG1EYXRhLnRhcmdldDtcbiAgICBjb25zdCBzZXJ2ZXJfbm9uY2UgPSBudGxtRGF0YS5ub25jZTtcbiAgICBjb25zdCBidWZmZXJMZW5ndGggPSA2NCArIChkb21haW4ubGVuZ3RoICogMikgKyAodXNlcm5hbWUubGVuZ3RoICogMikgKyBsbXYybGVuICsgbnRsbXYybGVuICsgOCArIDggKyA4ICsgNCArIHNlcnZlcl9kYXRhLmxlbmd0aCArIDQ7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKGJ1ZmZlckxlbmd0aCk7XG4gICAgZGF0YS5wb3NpdGlvbiA9IDA7XG4gICAgZGF0YS53cml0ZVN0cmluZygnTlRMTVNTUFxcdTAwMDAnLCAndXRmOCcpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSgweDAzKTtcbiAgICBjb25zdCBiYXNlSWR4ID0gNjQ7XG4gICAgY29uc3QgZG5JZHggPSBiYXNlSWR4O1xuICAgIGNvbnN0IHVuSWR4ID0gZG5JZHggKyBkb21haW4ubGVuZ3RoICogMjtcbiAgICBjb25zdCBsMklkeCA9IHVuSWR4ICsgdXNlcm5hbWUubGVuZ3RoICogMjtcbiAgICBjb25zdCBudElkeCA9IGwySWR4ICsgbG12MmxlbjtcbiAgICBkYXRhLndyaXRlVUludDE2TEUobG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKGxtdjJsZW4pO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRShsMklkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKG50bG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKG50bG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKG50SWR4KTtcbiAgICBkYXRhLndyaXRlVUludDE2TEUoZG9tYWluLmxlbmd0aCAqIDIpO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRShkb21haW4ubGVuZ3RoICogMik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKGRuSWR4KTtcbiAgICBkYXRhLndyaXRlVUludDE2TEUodXNlcm5hbWUubGVuZ3RoICogMik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKHVzZXJuYW1lLmxlbmd0aCAqIDIpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSh1bklkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDApO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRSgwKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoYmFzZUlkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDApO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRSgwKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoYmFzZUlkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDB4ODIwMSk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDB4MDgpO1xuICAgIGRhdGEud3JpdGVTdHJpbmcoZG9tYWluLCAndWNzMicpO1xuICAgIGRhdGEud3JpdGVTdHJpbmcodXNlcm5hbWUsICd1Y3MyJyk7XG4gICAgY29uc3QgbG12MkRhdGEgPSB0aGlzLmxtdjJSZXNwb25zZShkb21haW4sIHVzZXJuYW1lLCBwYXNzd29yZCwgc2VydmVyX25vbmNlLCBjbGllbnRfbm9uY2UpO1xuICAgIGRhdGEuY29weUZyb20obG12MkRhdGEpO1xuICAgIGNvbnN0IGdlblRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCBudGxtRGF0YUJ1ZmZlciA9IHRoaXMubnRsbXYyUmVzcG9uc2UoZG9tYWluLCB1c2VybmFtZSwgcGFzc3dvcmQsIHNlcnZlcl9ub25jZSwgc2VydmVyX2RhdGEsIGNsaWVudF9ub25jZSwgZ2VuVGltZSk7XG4gICAgZGF0YS5jb3B5RnJvbShudGxtRGF0YUJ1ZmZlcik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MDEwMSk7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MDAwMCk7XG4gICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5jcmVhdGVUaW1lc3RhbXAoZ2VuVGltZSk7XG4gICAgZGF0YS5jb3B5RnJvbSh0aW1lc3RhbXApO1xuICAgIGRhdGEuY29weUZyb20oY2xpZW50X25vbmNlKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwMDAwKTtcbiAgICBkYXRhLmNvcHlGcm9tKHNlcnZlcl9kYXRhKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwMDAwKTtcbiAgICByZXR1cm4gZGF0YS5kYXRhO1xuICB9XG5cbiAgY3JlYXRlQ2xpZW50Tm9uY2UoKSB7XG4gICAgY29uc3QgY2xpZW50X25vbmNlID0gQnVmZmVyLmFsbG9jKDgsIDApO1xuICAgIGxldCBuaWR4ID0gMDtcbiAgICB3aGlsZSAobmlkeCA8IDgpIHtcbiAgICAgIGNsaWVudF9ub25jZS53cml0ZVVJbnQ4KE1hdGguY2VpbChNYXRoLnJhbmRvbSgpICogMjU1KSwgbmlkeCk7XG4gICAgICBuaWR4Kys7XG4gICAgfVxuICAgIHJldHVybiBjbGllbnRfbm9uY2U7XG4gIH1cblxuICBudGxtdjJSZXNwb25zZShkb21haW46IHN0cmluZywgdXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBzZXJ2ZXJOb25jZTogQnVmZmVyLCB0YXJnZXRJbmZvOiBCdWZmZXIsIGNsaWVudE5vbmNlOiBCdWZmZXIsIG15dGltZTogbnVtYmVyKSB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5jcmVhdGVUaW1lc3RhbXAobXl0aW1lKTtcbiAgICBjb25zdCBoYXNoID0gdGhpcy5udHYySGFzaChkb21haW4sIHVzZXIsIHBhc3N3b3JkKTtcbiAgICBjb25zdCBkYXRhTGVuZ3RoID0gNDAgKyB0YXJnZXRJbmZvLmxlbmd0aDtcbiAgICBjb25zdCBkYXRhID0gQnVmZmVyLmFsbG9jKGRhdGFMZW5ndGgsIDApO1xuICAgIHNlcnZlck5vbmNlLmNvcHkoZGF0YSwgMCwgMCwgOCk7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MTAxLCA4KTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwLCAxMik7XG4gICAgdGltZXN0YW1wLmNvcHkoZGF0YSwgMTYsIDAsIDgpO1xuICAgIGNsaWVudE5vbmNlLmNvcHkoZGF0YSwgMjQsIDAsIDgpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSgweDAsIDMyKTtcbiAgICB0YXJnZXRJbmZvLmNvcHkoZGF0YSwgMzYsIDAsIHRhcmdldEluZm8ubGVuZ3RoKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwLCAzNiArIHRhcmdldEluZm8ubGVuZ3RoKTtcbiAgICByZXR1cm4gdGhpcy5obWFjTUQ1KGRhdGEsIGhhc2gpO1xuICB9XG5cbiAgY3JlYXRlVGltZXN0YW1wKHRpbWU6IG51bWJlcikge1xuICAgIGNvbnN0IHRlbnRoc09mQU1pY3Jvc2Vjb25kID0gKEJpZ0ludCh0aW1lKSArIEJpZ0ludCgxMTY0NDQ3MzYwMCkpICogQmlnSW50KDEwMDAwMDAwKTtcblxuICAgIGNvbnN0IGxvID0gTnVtYmVyKHRlbnRoc09mQU1pY3Jvc2Vjb25kICYgQmlnSW50KDB4ZmZmZmZmZmYpKTtcbiAgICBjb25zdCBoaSA9IE51bWJlcigodGVudGhzT2ZBTWljcm9zZWNvbmQgPj4gQmlnSW50KDMyKSkgJiBCaWdJbnQoMHhmZmZmZmZmZikpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIHJlc3VsdC53cml0ZVVJbnQzMkxFKGxvLCAwKTtcbiAgICByZXN1bHQud3JpdGVVSW50MzJMRShoaSwgNCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGxtdjJSZXNwb25zZShkb21haW46IHN0cmluZywgdXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBzZXJ2ZXJOb25jZTogQnVmZmVyLCBjbGllbnROb25jZTogQnVmZmVyKSB7XG4gICAgY29uc3QgaGFzaCA9IHRoaXMubnR2Mkhhc2goZG9tYWluLCB1c2VyLCBwYXNzd29yZCk7XG4gICAgY29uc3QgZGF0YSA9IEJ1ZmZlci5hbGxvYyhzZXJ2ZXJOb25jZS5sZW5ndGggKyBjbGllbnROb25jZS5sZW5ndGgsIDApO1xuXG4gICAgc2VydmVyTm9uY2UuY29weShkYXRhKTtcbiAgICBjbGllbnROb25jZS5jb3B5KGRhdGEsIHNlcnZlck5vbmNlLmxlbmd0aCwgMCwgY2xpZW50Tm9uY2UubGVuZ3RoKTtcblxuICAgIGNvbnN0IG5ld2hhc2ggPSB0aGlzLmhtYWNNRDUoZGF0YSwgaGFzaCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBCdWZmZXIuYWxsb2MobmV3aGFzaC5sZW5ndGggKyBjbGllbnROb25jZS5sZW5ndGgsIDApO1xuXG4gICAgbmV3aGFzaC5jb3B5KHJlc3BvbnNlKTtcbiAgICBjbGllbnROb25jZS5jb3B5KHJlc3BvbnNlLCBuZXdoYXNoLmxlbmd0aCwgMCwgY2xpZW50Tm9uY2UubGVuZ3RoKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIG50djJIYXNoKGRvbWFpbjogc3RyaW5nLCB1c2VyOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoYXNoID0gdGhpcy5udEhhc2gocGFzc3dvcmQpO1xuICAgIGNvbnN0IGlkZW50aXR5ID0gQnVmZmVyLmZyb20odXNlci50b1VwcGVyQ2FzZSgpICsgZG9tYWluLnRvVXBwZXJDYXNlKCksICd1Y3MyJyk7XG4gICAgcmV0dXJuIHRoaXMuaG1hY01ENShpZGVudGl0eSwgaGFzaCk7XG4gIH1cblxuICBudEhhc2godGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgdW5pY29kZVN0cmluZyA9IEJ1ZmZlci5mcm9tKHRleHQsICd1Y3MyJyk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKG1kNC5hcnJheUJ1ZmZlcih1bmljb2RlU3RyaW5nKSk7XG4gIH1cblxuICBobWFjTUQ1KGRhdGE6IEJ1ZmZlciwga2V5OiBCdWZmZXIpIHtcbiAgICByZXR1cm4gY3J5cHRvLmNyZWF0ZUhtYWMoJ01ENScsIGtleSkudXBkYXRlKGRhdGEpLmRpZ2VzdCgpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5UTE1SZXNwb25zZVBheWxvYWQ7XG5tb2R1bGUuZXhwb3J0cyA9IE5UTE1SZXNwb25zZVBheWxvYWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLHVCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxLQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFBeUIsU0FBQUUsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFKLHVCQUFBLFlBQUFBLENBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FB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QUFJLENBQUN4RCxJQUFJLEVBQUVpRCxXQUFXLENBQUM3QixNQUFNLEVBQUUsQ0FBQyxFQUFFK0IsV0FBVyxDQUFDL0IsTUFBTSxDQUFDO0lBRWpFLE1BQU02QyxPQUFPLEdBQUcsSUFBSSxDQUFDUixPQUFPLENBQUN6RCxJQUFJLEVBQUVxRCxJQUFJLENBQUM7SUFDeEMsTUFBTWEsUUFBUSxHQUFHekIsTUFBTSxDQUFDQyxLQUFLLENBQUN1QixPQUFPLENBQUM3QyxNQUFNLEdBQUcrQixXQUFXLENBQUMvQixNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRXJFNkMsT0FBTyxDQUFDVCxJQUFJLENBQUNVLFFBQVEsQ0FBQztJQUN0QmYsV0FBVyxDQUFDSyxJQUFJLENBQUNVLFFBQVEsRUFBRUQsT0FBTyxDQUFDN0MsTUFBTSxFQUFFLENBQUMsRUFBRStCLFdBQVcsQ0FBQy9CLE1BQU0sQ0FBQztJQUVqRSxPQUFPOEMsUUFBUTtFQUNqQjtFQUVBWixRQUFRQSxDQUFDN0MsTUFBYyxFQUFFdUMsSUFBWSxFQUFFcEMsUUFBZ0IsRUFBRTtJQUN2RCxNQUFNeUMsSUFBSSxHQUFHLElBQUksQ0FBQ2MsTUFBTSxDQUFDdkQsUUFBUSxDQUFDO0lBQ2xDLE1BQU13RCxRQUFRLEdBQUczQixNQUFNLENBQUM0QixJQUFJLENBQUNyQixJQUFJLENBQUNzQixXQUFXLENBQUMsQ0FBQyxHQUFHN0QsTUFBTSxDQUFDNkQsV0FBVyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDL0UsT0FBTyxJQUFJLENBQUNiLE9BQU8sQ0FBQ1csUUFBUSxFQUFFZixJQUFJLENBQUM7RUFDckM7RUFFQWMsTUFBTUEsQ0FBQ0ksSUFBWSxFQUFFO0lBQ25CLE1BQU1DLGFBQWEsR0FBRy9CLE1BQU0sQ0FBQzRCLElBQUksQ0FBQ0UsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUMvQyxPQUFPOUIsTUFBTSxDQUFDNEIsSUFBSSxDQUFDSSxhQUFHLENBQUNDLFdBQVcsQ0FBQ0YsYUFBYSxDQUFDLENBQUM7RUFDcEQ7RUFFQWYsT0FBT0EsQ0FBQ3pELElBQVksRUFBRTJFLEdBQVcsRUFBRTtJQUNqQyxPQUFPcEcsTUFBTSxDQUFDcUcsVUFBVSxDQUFDLEtBQUssRUFBRUQsR0FBRyxDQUFDLENBQUNFLE1BQU0sQ0FBQzdFLElBQUksQ0FBQyxDQUFDOEUsTUFBTSxDQUFDLENBQUM7RUFDNUQ7QUFDRjtBQUFDLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxDQUFBNUYsT0FBQSxHQUVjUyxtQkFBbUI7QUFDbENvRixNQUFNLENBQUNELE9BQU8sR0FBR25GLG1CQUFtQiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/lib/ntlm-payload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ntlm-payload.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","crypto","_interopRequireWildcard","_jsMd","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","NTLMResponsePayload","constructor","loginData","data","createResponse","toString","indent","challenge","client_nonce","createClientNonce","lmv2len","ntlmv2len","domain","username","userName","password","ntlmData","ntlmpacket","server_data","target","server_nonce","nonce","bufferLength","length","WritableTrackingBuffer","position","writeString","writeUInt32LE","baseIdx","dnIdx","unIdx","l2Idx","ntIdx","writeUInt16LE","lmv2Data","lmv2Response","copyFrom","genTime","Date","getTime","ntlmDataBuffer","ntlmv2Response","timestamp","createTimestamp","Buffer","alloc","nidx","writeUInt8","Math","ceil","random","user","serverNonce","targetInfo","clientNonce","mytime","hash","ntv2Hash","dataLength","copy","hmacMD5","time","tenthsOfAMicrosecond","BigInt","lo","Number","hi","result","newhash","response","ntHash","identity","from","toUpperCase","text","unicodeString","md4","arrayBuffer","key","createHmac","update","digest","_default","exports","module"],"sources":["../src/ntlm-payload.ts"],"sourcesContent":["import WritableTrackingBuffer from './tracking-buffer/writable-tracking-buffer';\nimport * as crypto from 'crypto';\nimport md4 from 'js-md4';\n\ninterface Options {\n domain: string;\n userName: string;\n password: string;\n ntlmpacket: {\n target: Buffer;\n nonce: Buffer;\n };\n}\n\nclass NTLMResponsePayload {\n declare data: Buffer;\n\n constructor(loginData: Options) {\n this.data = this.createResponse(loginData);\n }\n\n toString(indent = '') {\n return indent + 'NTLM Auth';\n }\n\n createResponse(challenge: Options) {\n const client_nonce = this.createClientNonce();\n const lmv2len = 24;\n const ntlmv2len = 16;\n const domain = challenge.domain;\n const username = challenge.userName;\n const password = challenge.password;\n const ntlmData = challenge.ntlmpacket;\n const server_data = ntlmData.target;\n const server_nonce = ntlmData.nonce;\n const bufferLength = 64 + (domain.length * 2) + (username.length * 2) + lmv2len + ntlmv2len + 8 + 8 + 8 + 4 + server_data.length + 4;\n const data = new WritableTrackingBuffer(bufferLength);\n data.position = 0;\n data.writeString('NTLMSSP\\u0000', 'utf8');\n data.writeUInt32LE(0x03);\n const baseIdx = 64;\n const dnIdx = baseIdx;\n const unIdx = dnIdx + domain.length * 2;\n const l2Idx = unIdx + username.length * 2;\n const ntIdx = l2Idx + lmv2len;\n data.writeUInt16LE(lmv2len);\n data.writeUInt16LE(lmv2len);\n data.writeUInt32LE(l2Idx);\n data.writeUInt16LE(ntlmv2len);\n data.writeUInt16LE(ntlmv2len);\n data.writeUInt32LE(ntIdx);\n data.writeUInt16LE(domain.length * 2);\n data.writeUInt16LE(domain.length * 2);\n data.writeUInt32LE(dnIdx);\n data.writeUInt16LE(username.length * 2);\n data.writeUInt16LE(username.length * 2);\n data.writeUInt32LE(unIdx);\n data.writeUInt16LE(0);\n data.writeUInt16LE(0);\n data.writeUInt32LE(baseIdx);\n data.writeUInt16LE(0);\n data.writeUInt16LE(0);\n data.writeUInt32LE(baseIdx);\n data.writeUInt16LE(0x8201);\n data.writeUInt16LE(0x08);\n data.writeString(domain, 'ucs2');\n data.writeString(username, 'ucs2');\n const lmv2Data = this.lmv2Response(domain, username, password, server_nonce, client_nonce);\n data.copyFrom(lmv2Data);\n const genTime = new Date().getTime();\n const ntlmDataBuffer = this.ntlmv2Response(domain, username, password, server_nonce, server_data, client_nonce, genTime);\n data.copyFrom(ntlmDataBuffer);\n data.writeUInt32LE(0x0101);\n data.writeUInt32LE(0x0000);\n const timestamp = this.createTimestamp(genTime);\n data.copyFrom(timestamp);\n data.copyFrom(client_nonce);\n data.writeUInt32LE(0x0000);\n data.copyFrom(server_data);\n data.writeUInt32LE(0x0000);\n return data.data;\n }\n\n createClientNonce() {\n const client_nonce = Buffer.alloc(8, 0);\n let nidx = 0;\n while (nidx < 8) {\n client_nonce.writeUInt8(Math.ceil(Math.random() * 255), nidx);\n nidx++;\n }\n return client_nonce;\n }\n\n ntlmv2Response(domain: string, user: string, password: string, serverNonce: Buffer, targetInfo: Buffer, clientNonce: Buffer, mytime: number) {\n const timestamp = this.createTimestamp(mytime);\n const hash = this.ntv2Hash(domain, user, password);\n const dataLength = 40 + targetInfo.length;\n const data = Buffer.alloc(dataLength, 0);\n serverNonce.copy(data, 0, 0, 8);\n data.writeUInt32LE(0x101, 8);\n data.writeUInt32LE(0x0, 12);\n timestamp.copy(data, 16, 0, 8);\n clientNonce.copy(data, 24, 0, 8);\n data.writeUInt32LE(0x0, 32);\n targetInfo.copy(data, 36, 0, targetInfo.length);\n data.writeUInt32LE(0x0, 36 + targetInfo.length);\n return this.hmacMD5(data, hash);\n }\n\n createTimestamp(time: number) {\n const tenthsOfAMicrosecond = (BigInt(time) + BigInt(11644473600)) * BigInt(10000000);\n\n const lo = Number(tenthsOfAMicrosecond & BigInt(0xffffffff));\n const hi = Number((tenthsOfAMicrosecond >> BigInt(32)) & BigInt(0xffffffff));\n\n const result = Buffer.alloc(8);\n result.writeUInt32LE(lo, 0);\n result.writeUInt32LE(hi, 4);\n return result;\n }\n\n lmv2Response(domain: string, user: string, password: string, serverNonce: Buffer, clientNonce: Buffer) {\n const hash = this.ntv2Hash(domain, user, password);\n const data = Buffer.alloc(serverNonce.length + clientNonce.length, 0);\n\n serverNonce.copy(data);\n clientNonce.copy(data, serverNonce.length, 0, clientNonce.length);\n\n const newhash = this.hmacMD5(data, hash);\n const response = Buffer.alloc(newhash.length + clientNonce.length, 0);\n\n newhash.copy(response);\n clientNonce.copy(response, newhash.length, 0, clientNonce.length);\n\n return response;\n }\n\n ntv2Hash(domain: string, user: string, password: string) {\n const hash = this.ntHash(password);\n const identity = Buffer.from(user.toUpperCase() + domain.toUpperCase(), 'ucs2');\n return this.hmacMD5(identity, hash);\n }\n\n ntHash(text: string) {\n const unicodeString = Buffer.from(text, 'ucs2');\n return Buffer.from(md4.arrayBuffer(unicodeString));\n }\n\n hmacMD5(data: Buffer, key: Buffer) {\n return crypto.createHmac('MD5', key).update(data).digest();\n }\n}\n\nexport default NTLMResponsePayload;\nmodule.exports = NTLMResponsePayload;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ntlm-payload.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","crypto","_interopRequireWildcard","_jsMd","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NTLMResponsePayload","constructor","loginData","data","createResponse","toString","indent","challenge","client_nonce","createClientNonce","lmv2len","ntlmv2len","domain","username","userName","password","ntlmData","ntlmpacket","server_data","target","server_nonce","nonce","bufferLength","length","WritableTrackingBuffer","position","writeString","writeUInt32LE","baseIdx","dnIdx","unIdx","l2Idx","ntIdx","writeUInt16LE","lmv2Data","lmv2Response","copyFrom","genTime","Date","getTime","ntlmDataBuffer","ntlmv2Response","timestamp","createTimestamp","Buffer","alloc","nidx","writeUInt8","Math","ceil","random","user","serverNonce","targetInfo","clientNonce","mytime","hash","ntv2Hash","dataLength","copy","hmacMD5","time","tenthsOfAMicrosecond","BigInt","lo","Number","hi","result","newhash","response","ntHash","identity","from","toUpperCase","text","unicodeString","md4","arrayBuffer","key","createHmac","update","digest","_default","exports","module"],"sources":["../src/ntlm-payload.ts"],"sourcesContent":["import WritableTrackingBuffer from './tracking-buffer/writable-tracking-buffer';\nimport * as crypto from 'crypto';\nimport md4 from 'js-md4';\n\ninterface Options {\n domain: string;\n userName: string;\n password: string;\n ntlmpacket: {\n target: Buffer;\n nonce: Buffer;\n };\n}\n\nclass NTLMResponsePayload {\n declare data: Buffer;\n\n constructor(loginData: Options) {\n this.data = this.createResponse(loginData);\n }\n\n toString(indent = '') {\n return indent + 'NTLM Auth';\n }\n\n createResponse(challenge: Options) {\n const client_nonce = this.createClientNonce();\n const lmv2len = 24;\n const ntlmv2len = 16;\n const domain = challenge.domain;\n const username = challenge.userName;\n const password = challenge.password;\n const ntlmData = challenge.ntlmpacket;\n const server_data = ntlmData.target;\n const server_nonce = ntlmData.nonce;\n const bufferLength = 64 + (domain.length * 2) + (username.length * 2) + lmv2len + ntlmv2len + 8 + 8 + 8 + 4 + server_data.length + 4;\n const data = new WritableTrackingBuffer(bufferLength);\n data.position = 0;\n data.writeString('NTLMSSP\\u0000', 'utf8');\n data.writeUInt32LE(0x03);\n const baseIdx = 64;\n const dnIdx = baseIdx;\n const unIdx = dnIdx + domain.length * 2;\n const l2Idx = unIdx + username.length * 2;\n const ntIdx = l2Idx + lmv2len;\n data.writeUInt16LE(lmv2len);\n data.writeUInt16LE(lmv2len);\n data.writeUInt32LE(l2Idx);\n data.writeUInt16LE(ntlmv2len);\n data.writeUInt16LE(ntlmv2len);\n data.writeUInt32LE(ntIdx);\n data.writeUInt16LE(domain.length * 2);\n data.writeUInt16LE(domain.length * 2);\n data.writeUInt32LE(dnIdx);\n data.writeUInt16LE(username.length * 2);\n data.writeUInt16LE(username.length * 2);\n data.writeUInt32LE(unIdx);\n data.writeUInt16LE(0);\n data.writeUInt16LE(0);\n data.writeUInt32LE(baseIdx);\n data.writeUInt16LE(0);\n data.writeUInt16LE(0);\n data.writeUInt32LE(baseIdx);\n data.writeUInt16LE(0x8201);\n data.writeUInt16LE(0x08);\n data.writeString(domain, 'ucs2');\n data.writeString(username, 'ucs2');\n const lmv2Data = this.lmv2Response(domain, username, password, server_nonce, client_nonce);\n data.copyFrom(lmv2Data);\n const genTime = new Date().getTime();\n const ntlmDataBuffer = this.ntlmv2Response(domain, username, password, server_nonce, server_data, client_nonce, genTime);\n data.copyFrom(ntlmDataBuffer);\n data.writeUInt32LE(0x0101);\n data.writeUInt32LE(0x0000);\n const timestamp = this.createTimestamp(genTime);\n data.copyFrom(timestamp);\n data.copyFrom(client_nonce);\n data.writeUInt32LE(0x0000);\n data.copyFrom(server_data);\n data.writeUInt32LE(0x0000);\n return data.data;\n }\n\n createClientNonce() {\n const client_nonce = Buffer.alloc(8, 0);\n let nidx = 0;\n while (nidx < 8) {\n client_nonce.writeUInt8(Math.ceil(Math.random() * 255), nidx);\n nidx++;\n }\n return client_nonce;\n }\n\n ntlmv2Response(domain: string, user: string, password: string, serverNonce: Buffer, targetInfo: Buffer, clientNonce: Buffer, mytime: number) {\n const timestamp = this.createTimestamp(mytime);\n const hash = this.ntv2Hash(domain, user, password);\n const dataLength = 40 + targetInfo.length;\n const data = Buffer.alloc(dataLength, 0);\n serverNonce.copy(data, 0, 0, 8);\n data.writeUInt32LE(0x101, 8);\n data.writeUInt32LE(0x0, 12);\n timestamp.copy(data, 16, 0, 8);\n clientNonce.copy(data, 24, 0, 8);\n data.writeUInt32LE(0x0, 32);\n targetInfo.copy(data, 36, 0, targetInfo.length);\n data.writeUInt32LE(0x0, 36 + targetInfo.length);\n return this.hmacMD5(data, hash);\n }\n\n createTimestamp(time: number) {\n const tenthsOfAMicrosecond = (BigInt(time) + BigInt(11644473600)) * BigInt(10000000);\n\n const lo = Number(tenthsOfAMicrosecond & BigInt(0xffffffff));\n const hi = Number((tenthsOfAMicrosecond >> BigInt(32)) & BigInt(0xffffffff));\n\n const result = Buffer.alloc(8);\n result.writeUInt32LE(lo, 0);\n result.writeUInt32LE(hi, 4);\n return result;\n }\n\n lmv2Response(domain: string, user: string, password: string, serverNonce: Buffer, clientNonce: Buffer) {\n const hash = this.ntv2Hash(domain, user, password);\n const data = Buffer.alloc(serverNonce.length + clientNonce.length, 0);\n\n serverNonce.copy(data);\n clientNonce.copy(data, serverNonce.length, 0, clientNonce.length);\n\n const newhash = this.hmacMD5(data, hash);\n const response = Buffer.alloc(newhash.length + clientNonce.length, 0);\n\n newhash.copy(response);\n clientNonce.copy(response, newhash.length, 0, clientNonce.length);\n\n return response;\n }\n\n ntv2Hash(domain: string, user: string, password: string) {\n const hash = this.ntHash(password);\n const identity = Buffer.from(user.toUpperCase() + domain.toUpperCase(), 'ucs2');\n return this.hmacMD5(identity, hash);\n }\n\n ntHash(text: string) {\n const unicodeString = Buffer.from(text, 'ucs2');\n return Buffer.from(md4.arrayBuffer(unicodeString));\n }\n\n hmacMD5(data: Buffer, key: Buffer) {\n return crypto.createHmac('MD5', key).update(data).digest();\n }\n}\n\nexport default NTLMResponsePayload;\nmodule.exports = NTLMResponsePayload;\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAyB,SAAAE,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAN,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAK,UAAA,GAAAL,CAAA,KAAAU,OAAA,EAAAV,CAAA;AAYzB,MAAMmB,mBAAmB,CAAC;EAGxBC,WAAWA,CAACC,SAAkB,EAAE;IAC9B,IAAI,CAACC,IAAI,GAAG,IAAI,CAACC,cAAc,CAACF,SAAS,CAAC;EAC5C;EAEAG,QAAQA,CAACC,MAAM,GAAG,EAAE,EAAE;IACpB,OAAOA,MAAM,GAAG,WAAW;EAC7B;EAEAF,cAAcA,CAACG,SAAkB,EAAE;IACjC,MAAMC,YAAY,GAAG,IAAI,CAACC,iBAAiB,CAAC,CAAC;IAC7C,MAAMC,OAAO,GAAG,EAAE;IAClB,MAAMC,SAAS,GAAG,EAAE;IACpB,MAAMC,MAAM,GAAGL,SAAS,CAACK,MAAM;IAC/B,MAAMC,QAAQ,GAAGN,SAAS,CAACO,QAAQ;IACnC,MAAMC,QAAQ,GAAGR,SAAS,CAACQ,QAAQ;IACnC,MAAMC,QAAQ,GAAGT,SAAS,CAACU,UAAU;IACrC,MAAMC,WAAW,GAAGF,QAAQ,CAACG,MAAM;IACnC,MAAMC,YAAY,GAAGJ,QAAQ,CAACK,KAAK;IACnC,MAAMC,YAAY,GAAG,EAAE,GAAIV,MAAM,CAACW,MAAM,GAAG,CAAE,GAAIV,QAAQ,CAACU,MAAM,GAAG,CAAE,GAAGb,OAAO,GAAGC,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAGO,WAAW,CAACK,MAAM,GAAG,CAAC;IACpI,MAAMpB,IAAI,GAAG,IAAIqB,+BAAsB,CAACF,YAAY,CAAC;IACrDnB,IAAI,CAACsB,QAAQ,GAAG,CAAC;IACjBtB,IAAI,CAACuB,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC;IACzCvB,IAAI,CAACwB,aAAa,CAAC,IAAI,CAAC;IACxB,MAAMC,OAAO,GAAG,EAAE;IAClB,MAAMC,KAAK,GAAGD,OAAO;IACrB,MAAME,KAAK,GAAGD,KAAK,GAAGjB,MAAM,CAACW,MAAM,GAAG,CAAC;IACvC,MAAMQ,KAAK,GAAGD,KAAK,GAAGjB,QAAQ,CAACU,MAAM,GAAG,CAAC;IACzC,MAAMS,KAAK,GAAGD,KAAK,GAAGrB,OAAO;IAC7BP,IAAI,CAAC8B,aAAa,CAACvB,OAAO,CAAC;IAC3BP,IAAI,CAAC8B,aAAa,CAACvB,OAAO,CAAC;IAC3BP,IAAI,CAACwB,aAAa,CAACI,KAAK,CAAC;IACzB5B,IAAI,CAAC8B,aAAa,CAACtB,SAAS,CAAC;IAC7BR,IAAI,CAAC8B,aAAa,CAACtB,SAAS,CAAC;IAC7BR,IAAI,CAACwB,aAAa,CAACK,KAAK,CAAC;IACzB7B,IAAI,CAAC8B,aAAa,CAACrB,MAAM,CAACW,MAAM,GAAG,CAAC,CAAC;IACrCpB,IAAI,CAAC8B,aAAa,CAACrB,MAAM,CAACW,MAAM,GAAG,CAAC,CAAC;IACrCpB,IAAI,CAACwB,aAAa,CAACE,KAAK,CAAC;IACzB1B,IAAI,CAAC8B,aAAa,CAACpB,QAAQ,CAACU,MAAM,GAAG,CAAC,CAAC;IACvCpB,IAAI,CAAC8B,aAAa,CAACpB,QAAQ,CAACU,MAAM,GAAG,CAAC,CAAC;IACvCpB,IAAI,CAACwB,aAAa,CAACG,KAAK,CAAC;IACzB3B,IAAI,CAAC8B,aAAa,CAAC,CAAC,CAAC;IACrB9B,IAAI,CAAC8B,aAAa,CAAC,CAAC,CAAC;IACrB9B,IAAI,CAACwB,aAAa,CAACC,OAAO,CAAC;IAC3BzB,IAAI,CAAC8B,aAAa,CAAC,CAAC,CAAC;IACrB9B,IAAI,CAAC8B,aAAa,CAAC,CAAC,CAAC;IACrB9B,IAAI,CAACwB,aAAa,CAACC,OAAO,CAAC;IAC3BzB,IAAI,CAAC8B,aAAa,CAAC,MAAM,CAAC;IAC1B9B,IAAI,CAAC8B,aAAa,CAAC,IAAI,CAAC;IACxB9B,IAAI,CAACuB,WAAW,CAACd,MAAM,EAAE,MAAM,CAAC;IAChCT,IAAI,CAACuB,WAAW,CAACb,QAAQ,EAAE,MAAM,CAAC;IAClC,MAAMqB,QAAQ,GAAG,IAAI,CAACC,YAAY,CAACvB,MAAM,EAAEC,QAAQ,EAAEE,QAAQ,EAAEK,YAAY,EAAEZ,YAAY,CAAC;IAC1FL,IAAI,CAACiC,QAAQ,CAACF,QAAQ,CAAC;IACvB,MAAMG,OAAO,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;IACpC,MAAMC,cAAc,GAAG,IAAI,CAACC,cAAc,CAAC7B,MAAM,EAAEC,QAAQ,EAAEE,QAAQ,EAAEK,YAAY,EAAEF,WAAW,EAAEV,YAAY,EAAE6B,OAAO,CAAC;IACxHlC,IAAI,CAACiC,QAAQ,CAACI,cAAc,CAAC;IAC7BrC,IAAI,CAACwB,aAAa,CAAC,MAAM,CAAC;IAC1BxB,IAAI,CAACwB,aAAa,CAAC,MAAM,CAAC;IAC1B,MAAMe,SAAS,GAAG,IAAI,CAACC,eAAe,CAACN,OAAO,CAAC;IAC/ClC,IAAI,CAACiC,QAAQ,CAACM,SAAS,CAAC;IACxBvC,IAAI,CAACiC,QAAQ,CAAC5B,YAAY,CAAC;IAC3BL,IAAI,CAACwB,aAAa,CAAC,MAAM,CAAC;IAC1BxB,IAAI,CAACiC,QAAQ,CAAClB,WAAW,CAAC;IAC1Bf,IAAI,CAACwB,aAAa,CAAC,MAAM,CAAC;IAC1B,OAAOxB,IAAI,CAACA,IAAI;EAClB;EAEAM,iBAAiBA,CAAA,EAAG;IAClB,MAAMD,YAAY,GAAGoC,MAAM,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACvC,IAAIC,IAAI,GAAG,CAAC;IACZ,OAAOA,IAAI,GAAG,CAAC,EAAE;MACftC,YAAY,CAACuC,UAAU,CAACC,IAAI,CAACC,IAAI,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,EAAEJ,IAAI,CAAC;MAC7DA,IAAI,EAAE;IACR;IACA,OAAOtC,YAAY;EACrB;EAEAiC,cAAcA,CAAC7B,MAAc,EAAEuC,IAAY,EAAEpC,QAAgB,EAAEqC,WAAmB,EAAEC,UAAkB,EAAEC,WAAmB,EAAEC,MAAc,EAAE;IAC3I,MAAMb,SAAS,GAAG,IAAI,CAACC,eAAe,CAACY,MAAM,CAAC;IAC9C,MAAMC,IAAI,GAAG,IAAI,CAACC,QAAQ,CAAC7C,MAAM,EAAEuC,IAAI,EAAEpC,QAAQ,CAAC;IAClD,MAAM2C,UAAU,GAAG,EAAE,GAAGL,UAAU,CAAC9B,MAAM;IACzC,MAAMpB,IAAI,GAAGyC,MAAM,CAACC,KAAK,CAACa,UAAU,EAAE,CAAC,CAAC;IACxCN,WAAW,CAACO,IAAI,CAACxD,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/BA,IAAI,CAACwB,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5BxB,IAAI,CAACwB,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC;IAC3Be,SAAS,CAACiB,IAAI,CAACxD,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9BmD,WAAW,CAACK,IAAI,CAACxD,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAChCA,IAAI,CAACwB,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC;IAC3B0B,UAAU,CAACM,IAAI,CAACxD,IAAI,EAAE,EAAE,EAAE,CAAC,EAAEkD,UAAU,CAAC9B,MAAM,CAAC;IAC/CpB,IAAI,CAACwB,aAAa,CAAC,GAAG,EAAE,EAAE,GAAG0B,UAAU,CAAC9B,MAAM,CAAC;IAC/C,OAAO,IAAI,CAACqC,OAAO,CAACzD,IAAI,EAAEqD,IAAI,CAAC;EACjC;EAEAb,eAAeA,CAACkB,IAAY,EAAE;IAC5B,MAAMC,oBAAoB,GAAG,CAACC,MAAM,CAACF,IAAI,CAAC,GAAGE,MAAM,CAAC,WAAW,CAAC,IAAIA,MAAM,CAAC,QAAQ,CAAC;IAEpF,MAAMC,EAAE,GAAGC,MAAM,CAACH,oBAAoB,GAAGC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAMG,EAAE,GAAGD,MAAM,CAAEH,oBAAoB,IAAIC,MAAM,CAAC,EAAE,CAAC,GAAIA,MAAM,CAAC,UAAU,CAAC,CAAC;IAE5E,MAAMI,MAAM,GAAGvB,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC;IAC9BsB,MAAM,CAACxC,aAAa,CAACqC,EAAE,EAAE,CAAC,CAAC;IAC3BG,MAAM,CAACxC,aAAa,CAACuC,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAOC,MAAM;EACf;EAEAhC,YAAYA,CAACvB,MAAc,EAAEuC,IAAY,EAAEpC,QAAgB,EAAEqC,WAAmB,EAAEE,WAAmB,EAAE;IACrG,MAAME,IAAI,GAAG,IAAI,CAACC,QAAQ,CAAC7C,MAAM,EAAEuC,IAAI,EAAEpC,QAAQ,CAAC;IAClD,MAAMZ,IAAI,GAAGyC,MAAM,CAACC,KAAK,CAACO,WAAW,CAAC7B,MAAM,GAAG+B,WAAW,CAAC/B,MAAM,EAAE,CAAC,CAAC;IAErE6B,WAAW,CAACO,IAAI,CAACxD,IAAI,CAAC;IACtBmD,WAAW,CAACK,IAAI,CAACxD,IAAI,EAAEiD,WAAW,CAAC7B,MAAM,EAAE,CAAC,EAAE+B,WAAW,CAAC/B,MAAM,CAAC;IAEjE,MAAM6C,OAAO,GAAG,IAAI,CAACR,OAAO,CAACzD,IAAI,EAAEqD,IAAI,CAAC;IACxC,MAAMa,QAAQ,GAAGzB,MAAM,CAACC,KAAK,CAACuB,OAAO,CAAC7C,MAAM,GAAG+B,WAAW,CAAC/B,MAAM,EAAE,CAAC,CAAC;IAErE6C,OAAO,CAACT,IAAI,CAACU,QAAQ,CAAC;IACtBf,WAAW,CAACK,IAAI,CAACU,QAAQ,EAAED,OAAO,CAAC7C,MAAM,EAAE,CAAC,EAAE+B,WAAW,CAAC/B,MAAM,CAAC;IAEjE,OAAO8C,QAAQ;EACjB;EAEAZ,QAAQA,CAAC7C,MAAc,EAAEuC,IAAY,EAAEpC,QAAgB,EAAE;IACvD,MAAMyC,IAAI,GAAG,IAAI,CAACc,MAAM,CAACvD,QAAQ,CAAC;IAClC,MAAMwD,QAAQ,GAAG3B,MAAM,CAAC4B,IAAI,CAACrB,IAAI,CAACsB,WAAW,CAAC,CAAC,GAAG7D,MAAM,CAAC6D,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC;IAC/E,OAAO,IAAI,CAACb,OAAO,CAACW,QAAQ,EAAEf,IAAI,CAAC;EACrC;EAEAc,MAAMA,CAACI,IAAY,EAAE;IACnB,MAAMC,aAAa,GAAG/B,MAAM,CAAC4B,IAAI,CAACE,IAAI,EAAE,MAAM,CAAC;IAC/C,OAAO9B,MAAM,CAAC4B,IAAI,CAACI,aAAG,CAACC,WAAW,CAACF,aAAa,CAAC,CAAC;EACpD;EAEAf,OAAOA,CAACzD,IAAY,EAAE2E,GAAW,EAAE;IACjC,OAAOpG,MAAM,CAACqG,UAAU,CAAC,KAAK,EAAED,GAAG,CAAC,CAACE,MAAM,CAAC7E,IAAI,CAAC,CAAC8E,MAAM,CAAC,CAAC;EAC5D;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA5F,OAAA,GAEcS,mBAAmB;AAClCoF,MAAM,CAACD,OAAO,GAAGnF,mBAAmB","ignoreList":[]}
|
|
@@ -8,8 +8,7 @@ var _token = require("./token");
|
|
|
8
8
|
var iconv = _interopRequireWildcard(require("iconv-lite"));
|
|
9
9
|
var _valueParser = require("../value-parser");
|
|
10
10
|
var _helpers = require("./helpers");
|
|
11
|
-
function
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
12
|
// s2.2.7.13 (introduced in TDS 7.3.B)
|
|
14
13
|
|
|
15
14
|
async function nbcRowParser(parser) {
|
|
@@ -101,4 +100,4 @@ async function nbcRowParser(parser) {
|
|
|
101
100
|
}
|
|
102
101
|
var _default = exports.default = nbcRowParser;
|
|
103
102
|
module.exports = nbcRowParser;
|
|
104
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiaWNvbnYiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl92YWx1ZVBhcnNlciIsIl9oZWxwZXJzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwibmJjUm93UGFyc2VyIiwicGFyc2VyIiwiY29sTWV0YWRhdGEiLCJjb2x1bW5zIiwiYml0bWFwIiwiYml0bWFwQnl0ZUxlbmd0aCIsIk1hdGgiLCJjZWlsIiwibGVuZ3RoIiwiYnVmZmVyIiwicG9zaXRpb24iLCJ3YWl0Rm9yQ2h1bmsiLCJieXRlcyIsInNsaWNlIiwibGVuIiwiYnl0ZSIsInB1c2giLCJtZXRhZGF0YSIsInZhbHVlIiwiaXNQTFBTdHJlYW0iLCJjaHVua3MiLCJyZWFkUExQU3RyZWFtIiwidHlwZSIsIm5hbWUiLCJCdWZmZXIiLCJjb25jYXQiLCJ0b1N0cmluZyIsImRlY29kZSIsImNvbGxhdGlvbiIsImNvZGVwYWdlIiwicmVzdWx0IiwicmVhZFZhbHVlIiwib3B0aW9ucyIsImVyciIsIk5vdEVub3VnaERhdGFFcnJvciIsIm9mZnNldCIsInVzZUNvbHVtbk5hbWVzIiwiY29sdW1uc01hcCIsImNyZWF0ZSIsImZvckVhY2giLCJjb2x1bW4iLCJjb2xOYW1lIiwiTkJDUm93VG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vbmJjcm93LXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTMgKGludHJvZHVjZWQgaW4gVERTIDcuMy5CKVxuXG5pbXBvcnQgUGFyc2VyIGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyB0eXBlIENvbHVtbk1ldGFkYXRhIH0gZnJvbSAnLi9jb2xtZXRhZGF0YS10b2tlbi1wYXJzZXInO1xuXG5pbXBvcnQgeyBOQkNSb3dUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0ICogYXMgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmltcG9ydCB7IGlzUExQU3RyZWFtLCByZWFkUExQU3RyZWFtLCByZWFkVmFsdWUgfSBmcm9tICcuLi92YWx1ZS1wYXJzZXInO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIENvbHVtbiB7XG4gIHZhbHVlOiB1bmtub3duO1xuICBtZXRhZGF0YTogQ29sdW1uTWV0YWRhdGE7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5iY1Jvd1BhcnNlcihwYXJzZXI6IFBhcnNlcik6IFByb21pc2U8TkJDUm93VG9rZW4+IHtcbiAgY29uc3QgY29sTWV0YWRhdGEgPSBwYXJzZXIuY29sTWV0YWRhdGE7XG4gIGNvbnN0IGNvbHVtbnM6IENvbHVtbltdID0gW107XG4gIGNvbnN0IGJpdG1hcDogYm9vbGVhbltdID0gW107XG4gIGNvbnN0IGJpdG1hcEJ5dGVMZW5ndGggPSBNYXRoLmNlaWwoY29sTWV0YWRhdGEubGVuZ3RoIC8gOCk7XG5cbiAgd2hpbGUgKHBhcnNlci5idWZmZXIubGVuZ3RoIC0gcGFyc2VyLnBvc2l0aW9uIDwgYml0bWFwQnl0ZUxlbmd0aCkge1xuICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgfVxuXG4gIGNvbnN0IGJ5dGVzID0gcGFyc2VyLmJ1ZmZlci5zbGljZShwYXJzZXIucG9zaXRpb24sIHBhcnNlci5wb3NpdGlvbiArIGJpdG1hcEJ5dGVMZW5ndGgpO1xuICBwYXJzZXIucG9zaXRpb24gKz0gYml0bWFwQnl0ZUxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYnl0ZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gYnl0ZXNbaV07XG5cbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbE1ldGFkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBjb2xNZXRhZGF0YVtpXTtcbiAgICBpZiAoYml0bWFwW2ldKSB7XG4gICAgICBjb2x1bW5zLnB1c2goeyB2YWx1ZTogbnVsbCwgbWV0YWRhdGEgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGlzUExQU3RyZWFtKG1ldGFkYXRhKSkge1xuICAgICAgICBjb25zdCBjaHVua3MgPSBhd2FpdCByZWFkUExQU3RyZWFtKHBhcnNlcik7XG5cbiAgICAgICAgaWYgKGNodW5rcyA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBjaHVua3MsIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ05WYXJDaGFyJyB8fCBtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdYbWwnKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHsgdmFsdWU6IEJ1ZmZlci5jb25jYXQoY2h1bmtzKS50b1N0cmluZygndWNzMicpLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdWYXJDaGFyJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBpY29udi5kZWNvZGUoQnVmZmVyLmNvbmNhdChjaHVua3MpLCBtZXRhZGF0YS5jb2xsYXRpb24/LmNvZGVwYWdlID8/ICd1dGY4JyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1ZhckJpbmFyeScgfHwgbWV0YWRhdGEudHlwZS5uYW1lID09PSAnVURUJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBCdWZmZXIuY29uY2F0KGNodW5rcyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlYWRWYWx1ZShwYXJzZXIuYnVmZmVyLCBwYXJzZXIucG9zaXRpb24sIG1ldGFkYXRhLCBwYXJzZXIub3B0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnNlci5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiByZXN1bHQudmFsdWUsIG1ldGFkYXRhIH0pO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAocGFyc2VyLm9wdGlvbnMudXNlQ29sdW1uTmFtZXMpIHtcbiAgICBjb25zdCBjb2x1bW5zTWFwOiB7IFtrZXk6IHN0cmluZ106IENvbHVtbiB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjb2xOYW1lID0gY29sdW1uLm1ldGFkYXRhLmNvbE5hbWU7XG4gICAgICBpZiAoY29sdW1uc01hcFtjb2xOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGNvbHVtbnNNYXBbY29sTmFtZV0gPSBjb2x1bW47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IE5CQ1Jvd1Rva2VuKGNvbHVtbnNNYXApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgTkJDUm93VG9rZW4oY29sdW1ucyk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBuYmNSb3dQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IG5iY1Jvd1BhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQStDLFNBQUFLLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFKLHdCQUFBSSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFB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
|
|
103
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiaWNvbnYiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl92YWx1ZVBhcnNlciIsIl9oZWxwZXJzIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwibmJjUm93UGFyc2VyIiwicGFyc2VyIiwiY29sTWV0YWRhdGEiLCJjb2x1bW5zIiwiYml0bWFwIiwiYml0bWFwQnl0ZUxlbmd0aCIsIk1hdGgiLCJjZWlsIiwibGVuZ3RoIiwiYnVmZmVyIiwicG9zaXRpb24iLCJ3YWl0Rm9yQ2h1bmsiLCJieXRlcyIsInNsaWNlIiwibGVuIiwiYnl0ZSIsInB1c2giLCJtZXRhZGF0YSIsInZhbHVlIiwiaXNQTFBTdHJlYW0iLCJjaHVua3MiLCJyZWFkUExQU3RyZWFtIiwidHlwZSIsIm5hbWUiLCJCdWZmZXIiLCJjb25jYXQiLCJ0b1N0cmluZyIsImRlY29kZSIsImNvbGxhdGlvbiIsImNvZGVwYWdlIiwicmVzdWx0IiwicmVhZFZhbHVlIiwib3B0aW9ucyIsImVyciIsIk5vdEVub3VnaERhdGFFcnJvciIsIm9mZnNldCIsInVzZUNvbHVtbk5hbWVzIiwiY29sdW1uc01hcCIsImNyZWF0ZSIsImZvckVhY2giLCJjb2x1bW4iLCJjb2xOYW1lIiwiTkJDUm93VG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vbmJjcm93LXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTMgKGludHJvZHVjZWQgaW4gVERTIDcuMy5CKVxuXG5pbXBvcnQgUGFyc2VyIGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyB0eXBlIENvbHVtbk1ldGFkYXRhIH0gZnJvbSAnLi9jb2xtZXRhZGF0YS10b2tlbi1wYXJzZXInO1xuXG5pbXBvcnQgeyBOQkNSb3dUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0ICogYXMgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmltcG9ydCB7IGlzUExQU3RyZWFtLCByZWFkUExQU3RyZWFtLCByZWFkVmFsdWUgfSBmcm9tICcuLi92YWx1ZS1wYXJzZXInO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIENvbHVtbiB7XG4gIHZhbHVlOiB1bmtub3duO1xuICBtZXRhZGF0YTogQ29sdW1uTWV0YWRhdGE7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5iY1Jvd1BhcnNlcihwYXJzZXI6IFBhcnNlcik6IFByb21pc2U8TkJDUm93VG9rZW4+IHtcbiAgY29uc3QgY29sTWV0YWRhdGEgPSBwYXJzZXIuY29sTWV0YWRhdGE7XG4gIGNvbnN0IGNvbHVtbnM6IENvbHVtbltdID0gW107XG4gIGNvbnN0IGJpdG1hcDogYm9vbGVhbltdID0gW107XG4gIGNvbnN0IGJpdG1hcEJ5dGVMZW5ndGggPSBNYXRoLmNlaWwoY29sTWV0YWRhdGEubGVuZ3RoIC8gOCk7XG5cbiAgd2hpbGUgKHBhcnNlci5idWZmZXIubGVuZ3RoIC0gcGFyc2VyLnBvc2l0aW9uIDwgYml0bWFwQnl0ZUxlbmd0aCkge1xuICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgfVxuXG4gIGNvbnN0IGJ5dGVzID0gcGFyc2VyLmJ1ZmZlci5zbGljZShwYXJzZXIucG9zaXRpb24sIHBhcnNlci5wb3NpdGlvbiArIGJpdG1hcEJ5dGVMZW5ndGgpO1xuICBwYXJzZXIucG9zaXRpb24gKz0gYml0bWFwQnl0ZUxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYnl0ZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gYnl0ZXNbaV07XG5cbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbE1ldGFkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBjb2xNZXRhZGF0YVtpXTtcbiAgICBpZiAoYml0bWFwW2ldKSB7XG4gICAgICBjb2x1bW5zLnB1c2goeyB2YWx1ZTogbnVsbCwgbWV0YWRhdGEgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGlzUExQU3RyZWFtKG1ldGFkYXRhKSkge1xuICAgICAgICBjb25zdCBjaHVua3MgPSBhd2FpdCByZWFkUExQU3RyZWFtKHBhcnNlcik7XG5cbiAgICAgICAgaWYgKGNodW5rcyA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBjaHVua3MsIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ05WYXJDaGFyJyB8fCBtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdYbWwnKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHsgdmFsdWU6IEJ1ZmZlci5jb25jYXQoY2h1bmtzKS50b1N0cmluZygndWNzMicpLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdWYXJDaGFyJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBpY29udi5kZWNvZGUoQnVmZmVyLmNvbmNhdChjaHVua3MpLCBtZXRhZGF0YS5jb2xsYXRpb24/LmNvZGVwYWdlID8/ICd1dGY4JyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1ZhckJpbmFyeScgfHwgbWV0YWRhdGEudHlwZS5uYW1lID09PSAnVURUJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBCdWZmZXIuY29uY2F0KGNodW5rcyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlYWRWYWx1ZShwYXJzZXIuYnVmZmVyLCBwYXJzZXIucG9zaXRpb24sIG1ldGFkYXRhLCBwYXJzZXIub3B0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnNlci5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiByZXN1bHQudmFsdWUsIG1ldGFkYXRhIH0pO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAocGFyc2VyLm9wdGlvbnMudXNlQ29sdW1uTmFtZXMpIHtcbiAgICBjb25zdCBjb2x1bW5zTWFwOiB7IFtrZXk6IHN0cmluZ106IENvbHVtbiB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjb2xOYW1lID0gY29sdW1uLm1ldGFkYXRhLmNvbE5hbWU7XG4gICAgICBpZiAoY29sdW1uc01hcFtjb2xOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGNvbHVtbnNNYXBbY29sTmFtZV0gPSBjb2x1bW47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IE5CQ1Jvd1Rva2VuKGNvbHVtbnNNYXApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgTkJDUm93VG9rZW4oY29sdW1ucyk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBuYmNSb3dQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IG5iY1Jvd1BhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQStDLFNBQUFFLHdCQUFBRyxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBTCx1QkFBQSxZQUFBQSxDQUFBRyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQUMsT0FBQSxFQUFBVixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFRLENBQUEs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UUFBUSxDQUFDSyxJQUFJLENBQUNDLElBQUksS0FBSyxLQUFLLEVBQUU7VUFDN0VwQixPQUFPLENBQUNhLElBQUksQ0FBQztZQUFFRSxLQUFLLEVBQUVNLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDTCxNQUFNLENBQUM7WUFBRUg7VUFBUyxDQUFDLENBQUM7UUFDMUQ7TUFDRixDQUFDLE1BQU07UUFDTCxJQUFJYSxNQUFNO1FBQ1YsSUFBSTtVQUNGQSxNQUFNLEdBQUcsSUFBQUMsc0JBQVMsRUFBQzlCLE1BQU0sQ0FBQ1EsTUFBTSxFQUFFUixNQUFNLENBQUNTLFFBQVEsRUFBRU8sUUFBUSxFQUFFaEIsTUFBTSxDQUFDK0IsT0FBTyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxPQUFPQyxHQUFHLEVBQUU7VUFDWixJQUFJQSxHQUFHLFlBQVlDLDJCQUFrQixFQUFFO1lBQ3JDLE1BQU1qQyxNQUFNLENBQUNVLFlBQVksQ0FBQyxDQUFDO1lBQzNCO1VBQ0Y7VUFFQSxNQUFNc0IsR0FBRztRQUNYO1FBRUFoQyxNQUFNLENBQUNTLFFBQVEsR0FBR29CLE1BQU0sQ0FBQ0ssTUFBTTtRQUMvQmhDLE9BQU8sQ0FBQ2EsSUFBSSxDQUFDO1VBQUVFLEtBQUssRUFBRVksTUFBTSxDQUFDWixLQUFLO1VBQUVEO1FBQVMsQ0FBQyxDQUFDO01BQ2pEO01BRUE7SUFDRjtFQUNGO0VBRUEsSUFBSWhCLE1BQU0sQ0FBQytCLE9BQU8sQ0FBQ0ksY0FBYyxFQUFFO0lBQ2pDLE1BQU1DLFVBQXFDLEdBQUd4QyxNQUFNLENBQUN5QyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBRWpFbkMsT0FBTyxDQUFDb0MsT0FBTyxDQUFFQyxNQUFNLElBQUs7TUFDMUIsTUFBTUMsT0FBTyxHQUFHRCxNQUFNLENBQUN2QixRQUFRLENBQUN3QixPQUFPO01BQ3ZDLElBQUlKLFVBQVUsQ0FBQ0ksT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFO1FBQy9CSixVQUFVLENBQUNJLE9BQU8sQ0FBQyxHQUFHRCxNQUFNO01BQzlCO0lBQ0YsQ0FBQyxDQUFDO0lBRUYsT0FBTyxJQUFJRSxrQkFBVyxDQUFDTCxVQUFVLENBQUM7RUFDcEMsQ0FBQyxNQUFNO0lBQ0wsT0FBTyxJQUFJSyxrQkFBVyxDQUFDdkMsT0FBTyxDQUFDO0VBQ2pDO0FBQ0Y7QUFBQyxJQUFBd0MsUUFBQSxHQUFBQyxPQUFBLENBQUFyRCxPQUFBLEdBR2NTLFlBQVk7QUFDM0I2QyxNQUFNLENBQUNELE9BQU8sR0FBRzVDLFlBQVkiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nbcrow-token-parser.js","names":["_token","require","iconv","_interopRequireWildcard","_valueParser","_helpers","
|
|
1
|
+
{"version":3,"file":"nbcrow-token-parser.js","names":["_token","require","iconv","_interopRequireWildcard","_valueParser","_helpers","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","nbcRowParser","parser","colMetadata","columns","bitmap","bitmapByteLength","Math","ceil","length","buffer","position","waitForChunk","bytes","slice","len","byte","push","metadata","value","isPLPStream","chunks","readPLPStream","type","name","Buffer","concat","toString","decode","collation","codepage","result","readValue","options","err","NotEnoughDataError","offset","useColumnNames","columnsMap","create","forEach","column","colName","NBCRowToken","_default","exports","module"],"sources":["../../src/token/nbcrow-token-parser.ts"],"sourcesContent":["// s2.2.7.13 (introduced in TDS 7.3.B)\n\nimport Parser from './stream-parser';\nimport { type ColumnMetadata } from './colmetadata-token-parser';\n\nimport { NBCRowToken } from './token';\nimport * as iconv from 'iconv-lite';\n\nimport { isPLPStream, readPLPStream, readValue } from '../value-parser';\nimport { NotEnoughDataError } from './helpers';\n\ninterface Column {\n value: unknown;\n metadata: ColumnMetadata;\n}\n\nasync function nbcRowParser(parser: Parser): Promise<NBCRowToken> {\n const colMetadata = parser.colMetadata;\n const columns: Column[] = [];\n const bitmap: boolean[] = [];\n const bitmapByteLength = Math.ceil(colMetadata.length / 8);\n\n while (parser.buffer.length - parser.position < bitmapByteLength) {\n await parser.waitForChunk();\n }\n\n const bytes = parser.buffer.slice(parser.position, parser.position + bitmapByteLength);\n parser.position += bitmapByteLength;\n\n for (let i = 0, len = bytes.length; i < len; i++) {\n const byte = bytes[i];\n\n bitmap.push(byte & 0b1 ? true : false);\n bitmap.push(byte & 0b10 ? true : false);\n bitmap.push(byte & 0b100 ? true : false);\n bitmap.push(byte & 0b1000 ? true : false);\n bitmap.push(byte & 0b10000 ? true : false);\n bitmap.push(byte & 0b100000 ? true : false);\n bitmap.push(byte & 0b1000000 ? true : false);\n bitmap.push(byte & 0b10000000 ? true : false);\n }\n\n for (let i = 0; i < colMetadata.length; i++) {\n const metadata = colMetadata[i];\n if (bitmap[i]) {\n columns.push({ value: null, metadata });\n continue;\n }\n\n while (true) {\n if (isPLPStream(metadata)) {\n const chunks = await readPLPStream(parser);\n\n if (chunks === null) {\n columns.push({ value: chunks, metadata });\n } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {\n columns.push({ value: Buffer.concat(chunks).toString('ucs2'), metadata });\n } else if (metadata.type.name === 'VarChar') {\n columns.push({ value: iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8'), metadata });\n } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {\n columns.push({ value: Buffer.concat(chunks), metadata });\n }\n } else {\n let result;\n try {\n result = readValue(parser.buffer, parser.position, metadata, parser.options);\n } catch (err) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = result.offset;\n columns.push({ value: result.value, metadata });\n }\n\n break;\n }\n }\n\n if (parser.options.useColumnNames) {\n const columnsMap: { [key: string]: Column } = Object.create(null);\n\n columns.forEach((column) => {\n const colName = column.metadata.colName;\n if (columnsMap[colName] == null) {\n columnsMap[colName] = column;\n }\n });\n\n return new NBCRowToken(columnsMap);\n } else {\n return new NBCRowToken(columns);\n }\n}\n\n\nexport default nbcRowParser;\nmodule.exports = nbcRowParser;\n"],"mappings":"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","ignoreList":[]}
|