appium-ios-device 2.4.9 → 2.4.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/build/index.js +1 -1
- package/build/lib/afc/index.js +1 -1
- package/build/lib/afc/index.js.map +1 -1
- package/build/lib/afc/protocol.js +1 -1
- package/build/lib/afc/protocol.js.map +1 -1
- package/build/lib/afc/streams.js +1 -1
- package/build/lib/afc/streams.js.map +1 -1
- package/build/lib/afc/transformer/afcdecoder.js +1 -1
- package/build/lib/afc/transformer/afcdecoder.js.map +1 -1
- package/build/lib/afc/transformer/afcencoder.js +1 -1
- package/build/lib/afc/transformer/afcencoder.js.map +1 -1
- package/build/lib/base-service.js +1 -1
- package/build/lib/base-service.js.map +1 -1
- package/build/lib/constants.js +1 -1
- package/build/lib/constants.js.map +1 -1
- package/build/lib/house-arrest/index.js +1 -1
- package/build/lib/house-arrest/index.js.map +1 -1
- package/build/lib/installation-proxy/index.js +1 -1
- package/build/lib/installation-proxy/index.js.map +1 -1
- package/build/lib/instrument/headers.js +1 -1
- package/build/lib/instrument/headers.js.map +1 -1
- package/build/lib/instrument/index.js +1 -1
- package/build/lib/instrument/index.js.map +1 -1
- package/build/lib/instrument/transformer/dtx-decode.js +1 -1
- package/build/lib/instrument/transformer/dtx-decode.js.map +1 -1
- package/build/lib/instrument/transformer/dtx-encode.js +1 -1
- package/build/lib/instrument/transformer/dtx-encode.js.map +1 -1
- package/build/lib/instrument/transformer/nskeyed.js +1 -1
- package/build/lib/instrument/transformer/nskeyed.js.map +1 -1
- package/build/lib/lockdown/index.js +1 -1
- package/build/lib/lockdown/index.js.map +1 -1
- package/build/lib/logger.js +1 -1
- package/build/lib/logger.js.map +1 -1
- package/build/lib/mcinstall/index.js +1 -1
- package/build/lib/mcinstall/index.js.map +1 -1
- package/build/lib/notification-proxy/index.js +1 -1
- package/build/lib/notification-proxy/index.js.map +1 -1
- package/build/lib/plist-service/index.js +1 -1
- package/build/lib/plist-service/index.js.map +1 -1
- package/build/lib/plist-service/transformer/plist-service-decoder.js +1 -1
- package/build/lib/plist-service/transformer/plist-service-decoder.js.map +1 -1
- package/build/lib/plist-service/transformer/plist-service-encoder.js +2 -2
- package/build/lib/plist-service/transformer/plist-service-encoder.js.map +1 -1
- package/build/lib/services.js +1 -1
- package/build/lib/services.js.map +1 -1
- package/build/lib/simulatelocation/index.js +1 -1
- package/build/lib/simulatelocation/index.js.map +1 -1
- package/build/lib/ssl-helper.js +1 -1
- package/build/lib/ssl-helper.js.map +1 -1
- package/build/lib/syslog/index.js +1 -1
- package/build/lib/syslog/index.js.map +1 -1
- package/build/lib/syslog/transformer/syslog-decoder.js +1 -1
- package/build/lib/syslog/transformer/syslog-decoder.js.map +1 -1
- package/build/lib/usbmux/index.js +1 -1
- package/build/lib/usbmux/index.js.map +1 -1
- package/build/lib/usbmux/transformer/usbmux-decoder.js +1 -1
- package/build/lib/usbmux/transformer/usbmux-decoder.js.map +1 -1
- package/build/lib/usbmux/transformer/usbmux-encoder.js +1 -1
- package/build/lib/usbmux/transformer/usbmux-encoder.js.map +1 -1
- package/build/lib/util/transformer/length-based-splitter.js +1 -1
- package/build/lib/util/transformer/length-based-splitter.js.map +1 -1
- package/build/lib/util/transformer/stream-logger.js +1 -1
- package/build/lib/util/transformer/stream-logger.js.map +1 -1
- package/build/lib/utilities.js +1 -1
- package/build/lib/utilities.js.map +1 -1
- package/build/lib/webinspector/index.js +45 -6
- package/build/lib/webinspector/index.js.map +1 -1
- package/build/lib/webinspector/transformer/webinspector-decoder.js +1 -1
- package/build/lib/webinspector/transformer/webinspector-decoder.js.map +1 -1
- package/build/lib/webinspector/transformer/webinspector-encoder.js +1 -1
- package/build/lib/webinspector/transformer/webinspector-encoder.js.map +1 -1
- package/lib/plist-service/transformer/plist-service-encoder.js +1 -1
- package/lib/webinspector/index.js +47 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [2.4.11](https://github.com/appium/appium-ios-device/compare/v2.4.10...v2.4.11) (2023-02-28)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Miscellaneous Chores
|
|
5
|
+
|
|
6
|
+
* Workaround TypeError on rpc messages transformation ([#105](https://github.com/appium/appium-ios-device/issues/105)) ([e7b9c82](https://github.com/appium/appium-ios-device/commit/e7b9c820bdb16b5e29edc005e54f240e8fa9832b))
|
|
7
|
+
|
|
8
|
+
## [2.4.10](https://github.com/appium/appium-ios-device/compare/v2.4.9...v2.4.10) (2023-02-28)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Miscellaneous Chores
|
|
12
|
+
|
|
13
|
+
* Improve error messages debugging ([#104](https://github.com/appium/appium-ios-device/issues/104)) ([761ef8d](https://github.com/appium/appium-ios-device/commit/761ef8d3233c9f85657645789b07989d4bd32608))
|
|
14
|
+
|
|
1
15
|
## [2.4.9](https://github.com/appium/appium-ios-device/compare/v2.4.8...v2.4.9) (2023-01-17)
|
|
2
16
|
|
|
3
17
|
|
package/build/index.js
CHANGED
|
@@ -28,4 +28,4 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
28
28
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
29
|
var _default = _usbmux.default;
|
|
30
30
|
exports.default = _default;
|
|
31
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXNibXV4IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJ1dGlsaXRpZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsImV4cG9ydHMiLCJzZXJ2aWNlcyIsIl9pbnN0cnVtZW50IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIl9kZWZhdWx0IiwiVXNibXV4Il0sInNvdXJjZXMiOlsiLi4vaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBVc2JtdXggfSBmcm9tICcuL2xpYi91c2JtdXgnO1xuaW1wb3J0ICogYXMgdXRpbGl0aWVzIGZyb20gJy4vbGliL3V0aWxpdGllcyc7XG5pbXBvcnQgKiBhcyBzZXJ2aWNlcyBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJTlNUUlVNRU5UX0NIQU5ORUwgfSBmcm9tICcuL2xpYi9pbnN0cnVtZW50JztcblxuXG5leHBvcnQgeyBVc2JtdXgsIHV0aWxpdGllcywgc2VydmljZXMsIElOU1RSVU1FTlRfQ0hBTk5FTCB9O1xuZXhwb3J0IGRlZmF1bHQgVXNibXV4O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUE2Q0csT0FBQSxDQUFBRixTQUFBLEdBQUFBLFNBQUE7QUFDN0MsSUFBQUcsUUFBQSxHQUFBRix1QkFBQSxDQUFBRixPQUFBO0FBQTJDRyxPQUFBLENBQUFDLFFBQUEsR0FBQUEsUUFBQTtBQUMzQyxJQUFBQyxXQUFBLEdBQUFMLE9BQUE7QUFBc0QsU0FBQU0seUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQUwsd0JBQUFTLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTCxHQUFBLFNBQUFNLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWCxHQUFBLFFBQUFXLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWQsR0FBQSxFQUFBVyxHQUFBLFNBQUFJLElBQUEsR0FBQVIscUJBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixHQUFBLEVBQUFXLEdBQUEsY0FBQUksSUFBQSxLQUFBQSxJQUFBLENBQUFWLEdBQUEsSUFBQVUsSUFBQSxDQUFBQyxHQUFBLEtBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxNQUFBLEVBQUFLLEdBQUEsRUFBQUksSUFBQSxZQUFBVCxNQUFBLENBQUFLLEdBQUEsSUFBQVgsR0FBQSxDQUFBVyxHQUFBLFNBQUFMLE1BQUEsQ0FBQUosT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBYSxHQUFBLENBQUFoQixHQUFBLEVBQUFNLE1BQUEsWUFBQUEsTUFBQTtBQUFBLElBQUFXLFFBQUEsR0FJdkNDLGVBQU07QUFBQTFCLE9BQUEsQ0FBQVUsT0FBQSxHQUFBZSxRQUFBIn0=
|
package/build/lib/afc/index.js
CHANGED
|
@@ -288,4 +288,4 @@ class FileInfo {
|
|
|
288
288
|
}
|
|
289
289
|
var _default = AfcService;
|
|
290
290
|
exports.default = _default;
|
|
291
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBRkNfU0VSVklDRV9OQU1FIiwiTUFYX0ZSQU1FX1NJWkUiLCJNQiIsIk5VTExfREVMSU1JVEVSX0NPREUiLCJJR05PUkVEX1BBVEhTIiwiQWZjU2VydmljZSIsIkJhc2VTZXJ2aWNlU29ja2V0IiwiY29uc3RydWN0b3IiLCJzb2NrZXRDbGllbnQiLCJfc3BsaXR0ZXIiLCJMZW5ndGhCYXNlZFNwbGl0dGVyIiwicmVhZGFibGVTdHJlYW0iLCJsaXR0bGVFbmRpYW4iLCJtYXhGcmFtZUxlbmd0aCIsImxlbmd0aEZpZWxkT2Zmc2V0IiwibGVuZ3RoRmllbGRMZW5ndGgiLCJsZW5ndGhBZGp1c3RtZW50IiwiX2RlY29kZXIiLCJBZmNEZWNvZGVyIiwiX3NvY2tldENsaWVudCIsInBpcGUiLCJfZW5jb2RlciIsIkFmY0VuY29kZXIiLCJfYXNzaWduQ2xpZW50RmFpbHVyZUhhbmRsZXJzIiwiX3Jlc3BvbnNlQ2FsbGJhY2tzIiwiX3BhY2tldE51bWJlciIsIm9uIiwiX2hhbmRsZURhdGEiLCJiaW5kIiwiZGF0YSIsImNiIiwicGFja2V0TnVtYmVyIiwiXyIsIm5vb3AiLCJjcmVhdGVEaXJlY3RvcnkiLCJwYXRoIiwicmVzcG9uc2UiLCJfY3JlYXRlUGFja2V0UHJvbWlzZSIsIm9wQ29kZSIsIk9wZXJhdGlvbnMiLCJNQUtFX0RJUiIsImhlYWRlclBheWxvYWQiLCJCdWZmZXIiLCJmcm9tIiwid3JpdGUiLCJyZXMiLCJfY2hlY2tTdGF0dXMiLCJkZWxldGVEaXJlY3RvcnkiLCJSRU1PVkVfUEFUSF9BTkRfQ09OVEVOVFMiLCJsaXN0RGlyZWN0b3J5IiwiUkVBRF9ESVIiLCJEQVRBIiwiX3BhcnNlQXJyYXkiLCJjb250ZW50Iiwib3BlbkZpbGUiLCJtb2RlIiwicGF0aFBheWxvYWQiLCJmaWxlTW9kZVBheWxvYWQiLCJhbGxvYyIsIndyaXRlVUludDMyTEUiLCJGSUxFX09QRU4iLCJjb25jYXQiLCJGSUxFX09QRU5fUkVTIiwicmVhZFVJbnQzMkxFIiwiY3JlYXRlV3JpdGVTdHJlYW0iLCJmaWxlUGF0aCIsIm9wdHMiLCJmaWxlSGFuZGxlIiwiRmlsZU1vZGVzIiwidyIsIkFmY1dyaXRhYmxlRmlsZVN0cmVhbSIsImNyZWF0ZVJlYWRTdHJlYW0iLCJvcHRpb25zIiwiciIsIkFmY1JlYWRhYmxlRmlsZVN0cmVhbSIsImNsb3NlRmlsZUhhbmRsZSIsIkZJTEVfQ0xPU0UiLCJ3cml0ZUZpbGUiLCJidWZmZXIiLCJGSUxFX1dSSVRFIiwicmVhZEZpbGUiLCJsZW5ndGgiLCJGSUxFX1JFQUQiLCJnZXRGaWxlSW5mbyIsIkdFVF9GSUxFX0lORk8iLCJGaWxlSW5mbyIsIl9wYXJzZU9iamVjdCIsIndhbGtEaXIiLCJkaXIiLCJyZWN1cnNpdmUiLCJvblBhdGgiLCJmaWxlIiwiaW5jbHVkZXMiLCJyZWxhdGl2ZVBhdGgiLCJwb3NpeCIsImpvaW4iLCJmaWxlSW5mbyIsImlzRGlyZWN0b3J5IiwiU1RBVFVTIiwiRXJyb3IiLCJvcGVyYXRpb25Db2RlIiwiaXNFbXB0eSIsIkVycm9ycyIsIlNVQ0NFU1MiLCJlcnJvckNvZGUiLCJpdGVtcyIsInN0YXJ0IiwiZW5kIiwiaXRlbSIsInRvU3RyaW5nIiwicHVzaCIsImN1cnJlbnRLZXkiLCJpc05pbCIsIm1lc3NhZ2UiLCJ0aW1lb3V0IiwiQiIsInJlc29sdmUiLCJyZWplY3QiLCJzZXRUaW1lb3V0Iiwic3Rfc2l6ZSIsInN0X2Jsb2NrcyIsInN0X25saW5rIiwic3RfaWZtdCIsInN0X210aW1lIiwic3RfYmlydGh0aW1lIiwic2l6ZSIsInBhcnNlSW50IiwiYmxvY2tzIiwibmxpbmsiLCJpZm10IiwibXRpbWVNcyIsImJpcnRodGltZU1zIiwiaXNGaWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2FmYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCBMZW5ndGhCYXNlZFNwbGl0dGVyIGZyb20gJy4uL3V0aWwvdHJhbnNmb3JtZXIvbGVuZ3RoLWJhc2VkLXNwbGl0dGVyJztcbmltcG9ydCB7IE9wZXJhdGlvbnMsIG9wZXJhdGlvbkNvZGUsIEVycm9ycywgZXJyb3JDb2RlLCBGaWxlTW9kZXMgfSBmcm9tICcuL3Byb3RvY29sJztcbmltcG9ydCB7IEFmY1dyaXRhYmxlRmlsZVN0cmVhbSwgQWZjUmVhZGFibGVGaWxlU3RyZWFtIH0gZnJvbSAnLi9zdHJlYW1zJztcbmltcG9ydCBBZmNFbmNvZGVyIGZyb20gJy4vdHJhbnNmb3JtZXIvYWZjZW5jb2Rlcic7XG5pbXBvcnQgQWZjRGVjb2RlciBmcm9tICcuL3RyYW5zZm9ybWVyL2FmY2RlY29kZXInO1xuaW1wb3J0IHsgTUIgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2VTb2NrZXQgfSBmcm9tICcuLi9iYXNlLXNlcnZpY2UnO1xuXG5cbmNvbnN0IEFGQ19TRVJWSUNFX05BTUUgPSAnY29tLmFwcGxlLmFmYyc7XG5jb25zdCBNQVhfRlJBTUVfU0laRSA9IDEgKiBNQjtcblxuY29uc3QgTlVMTF9ERUxJTUlURVJfQ09ERSA9IDB4MDA7XG5jb25zdCBJR05PUkVEX1BBVEhTID0gWycuJywgJy4uJ107XG5cbmNsYXNzIEFmY1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZVNvY2tldCB7XG4gIGNvbnN0cnVjdG9yIChzb2NrZXRDbGllbnQpIHtcbiAgICBzdXBlcihzb2NrZXRDbGllbnQpO1xuXG4gICAgdGhpcy5fc3BsaXR0ZXIgPSBuZXcgTGVuZ3RoQmFzZWRTcGxpdHRlcih7XG4gICAgICByZWFkYWJsZVN0cmVhbTogc29ja2V0Q2xpZW50LFxuICAgICAgbGl0dGxlRW5kaWFuOiB0cnVlLFxuICAgICAgbWF4RnJhbWVMZW5ndGg6IE1BWF9GUkFNRV9TSVpFLFxuICAgICAgbGVuZ3RoRmllbGRPZmZzZXQ6IDgsXG4gICAgICBsZW5ndGhGaWVsZExlbmd0aDogOCxcbiAgICAgIGxlbmd0aEFkanVzdG1lbnQ6IC04LFxuICAgIH0pO1xuICAgIHRoaXMuX2RlY29kZXIgPSBuZXcgQWZjRGVjb2RlcigpO1xuICAgIHRoaXMuX3NvY2tldENsaWVudC5waXBlKHRoaXMuX3NwbGl0dGVyKS5waXBlKHRoaXMuX2RlY29kZXIpO1xuXG4gICAgdGhpcy5fZW5jb2RlciA9IG5ldyBBZmNFbmNvZGVyKCk7XG4gICAgdGhpcy5fZW5jb2Rlci5waXBlKHRoaXMuX3NvY2tldENsaWVudCk7XG4gICAgdGhpcy5fYXNzaWduQ2xpZW50RmFpbHVyZUhhbmRsZXJzKHRoaXMuX2VuY29kZXIpO1xuXG4gICAgdGhpcy5fcmVzcG9uc2VDYWxsYmFja3MgPSB7fTtcblxuICAgIHRoaXMuX3BhY2tldE51bWJlciA9IDA7XG4gICAgdGhpcy5fZGVjb2Rlci5vbignZGF0YScsIHRoaXMuX2hhbmRsZURhdGEuYmluZCh0aGlzKSk7XG4gIH1cblxuICBfaGFuZGxlRGF0YSAoZGF0YSkge1xuICAgIGNvbnN0IGNiID0gdGhpcy5fcmVzcG9uc2VDYWxsYmFja3NbZGF0YS5wYWNrZXROdW1iZXJdIHx8IF8ubm9vcDtcbiAgICBjYihkYXRhKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBwcm9taXNlL3ByZWZlci1hd2FpdC10by1jYWxsYmFja3NcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZGlyZWN0b3J5IHJlbGF0aXZlIHRvIGFuIGFscmVhZHkgZXhpc3RpbmcgZGlyZWN0b3J5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIGluIHVuaXggZm9ybWF0XG4gICAqL1xuICBhc3luYyBjcmVhdGVEaXJlY3RvcnkgKHBhdGgpIHtcbiAgICBjb25zdCB7cGFja2V0TnVtYmVyLCByZXNwb25zZX0gPSB0aGlzLl9jcmVhdGVQYWNrZXRQcm9taXNlKGBDcmVhdGUgZGlyZWN0b3J5ICcke3BhdGh9J2ApO1xuXG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIG9wQ29kZTogT3BlcmF0aW9ucy5NQUtFX0RJUixcbiAgICAgIHBhY2tldE51bWJlcixcbiAgICAgIGhlYWRlclBheWxvYWQ6IEJ1ZmZlci5mcm9tKHBhdGgpXG4gICAgfTtcbiAgICB0aGlzLl9lbmNvZGVyLndyaXRlKGRhdGEpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlc3BvbnNlO1xuICAgIHRoaXMuX2NoZWNrU3RhdHVzKHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhcmUgZGlyZWN0b3J5IGNvbXBsZXRlbHkgZXZlbiBpdCBoYXMgY29udGVudCBpbnNpZGUuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgJ3JtIC1yIHtwYXRofSdcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggaW4gdW5peCBmb3JtYXRcbiAgICovXG4gIGFzeW5jIGRlbGV0ZURpcmVjdG9yeSAocGF0aCkge1xuICAgIGNvbnN0IHtwYWNrZXROdW1iZXIsIHJlc3BvbnNlfSA9IHRoaXMuX2NyZWF0ZVBhY2tldFByb21pc2UoYERlbGV0ZSBkaXJlY3RvcnkgJyR7cGF0aH0nYCk7XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgb3BDb2RlOiBPcGVyYXRpb25zLlJFTU9WRV9QQVRIX0FORF9DT05URU5UUyxcbiAgICAgIHBhY2tldE51bWJlcixcbiAgICAgIGhlYWRlclBheWxvYWQ6IEJ1ZmZlci5mcm9tKHBhdGgpXG4gICAgfTtcbiAgICB0aGlzLl9lbmNvZGVyLndyaXRlKGRhdGEpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlc3BvbnNlO1xuICAgIHRoaXMuX2NoZWNrU3RhdHVzKHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdHMgYSBkaXJlY3RvcnkncyBjb250ZW50cyBhbmQgcmV0dXJucyB0aGVtIGluIGFuIGFycmF5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIGluIHVuaXggZm9ybWF0XG4gICAqIEByZXR1cm4ge0FycmF5LjxzdHJpbmc+fVxuICAgKi9cbiAgYXN5bmMgbGlzdERpcmVjdG9yeSAocGF0aCkge1xuICAgIGNvbnN0IHtwYWNrZXROdW1iZXIsIHJlc3BvbnNlfSA9IHRoaXMuX2NyZWF0ZVBhY2tldFByb21pc2UoYExpc3QgZGlyZWN0b3J5ICcke3BhdGh9J2ApO1xuXG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIG9wQ29kZTogT3BlcmF0aW9ucy5SRUFEX0RJUixcbiAgICAgIHBhY2tldE51bWJlcixcbiAgICAgIGhlYWRlclBheWxvYWQ6IEJ1ZmZlci5mcm9tKHBhdGgpXG4gICAgfTtcbiAgICB0aGlzLl9lbmNvZGVyLndyaXRlKGRhdGEpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlc3BvbnNlO1xuICAgIGlmIChyZXMub3BDb2RlICE9PSBPcGVyYXRpb25zLkRBVEEpIHtcbiAgICAgIHRoaXMuX2NoZWNrU3RhdHVzKHJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlQXJyYXkocmVzLmNvbnRlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgZmlsZSBhbmQgY3JlYXRlcyBhIGZpbGUgaGFuZGxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIGluIHVuaXggZm9ybWF0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtb2RlIFRoZSBmaWxlIG1vZGUgdGhhdCB3aWxsIGJlIHVzZWRcbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgYXN5bmMgb3BlbkZpbGUgKHBhdGgsIG1vZGUpIHtcbiAgICBjb25zdCB7cGFja2V0TnVtYmVyLCByZXNwb25zZX0gPSB0aGlzLl9jcmVhdGVQYWNrZXRQcm9taXNlKGBPcGVuIGZpbGUgJyR7cGF0aH0nYCk7XG5cbiAgICBjb25zdCBwYXRoUGF5bG9hZCA9IEJ1ZmZlci5mcm9tKHBhdGgpO1xuICAgIGNvbnN0IGZpbGVNb2RlUGF5bG9hZCA9IEJ1ZmZlci5hbGxvYyg4KTtcbiAgICBmaWxlTW9kZVBheWxvYWQud3JpdGVVSW50MzJMRShtb2RlLCAwKTtcblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBvcENvZGU6IE9wZXJhdGlvbnMuRklMRV9PUEVOLFxuICAgICAgcGFja2V0TnVtYmVyLFxuICAgICAgaGVhZGVyUGF5bG9hZDogQnVmZmVyLmNvbmNhdChbZmlsZU1vZGVQYXlsb2FkLCBwYXRoUGF5bG9hZF0pXG4gICAgfTtcbiAgICB0aGlzLl9lbmNvZGVyLndyaXRlKGRhdGEpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlc3BvbnNlO1xuICAgIGlmIChyZXMub3BDb2RlICE9PSBPcGVyYXRpb25zLkZJTEVfT1BFTl9SRVMpIHtcbiAgICAgIHRoaXMuX2NoZWNrU3RhdHVzKHJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5oZWFkZXJQYXlsb2FkLnJlYWRVSW50MzJMRSgwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIGZpbGUgYW5kIGNyZWF0ZXMgYSBub2RlanMgd3JpdGUgc3RyZWFtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlUGF0aCBUaGUgcGF0aCBpbiB1bml4IGZvcm1hdFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBUaGUgcmVndWxhciBvcHRpb25zIHRoYXQgYXJlIHBhc3NlZCB0byBhIFN0cmVhbS5Xcml0YWJsZVxuICAgKiBAcmV0dXJuIHtBZmNXcml0YWJsZUZpbGVTdHJlYW19XG4gICAqL1xuICBhc3luYyBjcmVhdGVXcml0ZVN0cmVhbSAoZmlsZVBhdGgsIG9wdHMpIHtcbiAgICBjb25zdCBmaWxlSGFuZGxlID0gYXdhaXQgdGhpcy5vcGVuRmlsZShmaWxlUGF0aCwgRmlsZU1vZGVzLncpO1xuICAgIHJldHVybiBuZXcgQWZjV3JpdGFibGVGaWxlU3RyZWFtKGZpbGVIYW5kbGUsIHRoaXMsIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgZmlsZSBhbmQgY3JlYXRlcyBhIG5vZGVqcyByZWFkIHN0cmVhbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZVBhdGggVGhlIHBhdGggaW4gdW5peCBmb3JtYXRcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgVGhlIHJlZ3VsYXIgb3B0aW9ucyB0aGF0IGFyZSBwYXNzZWQgdG8gYSBTdHJlYW0uUmVhZGFibGVcbiAgICogQHJldHVybiB7QWZjUmVhZGFibGVGaWxlU3RyZWFtfVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlUmVhZFN0cmVhbSAoZmlsZVBhdGgsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBmaWxlSGFuZGxlID0gYXdhaXQgdGhpcy5vcGVuRmlsZShmaWxlUGF0aCwgRmlsZU1vZGVzLnIpO1xuICAgIHJldHVybiBuZXcgQWZjUmVhZGFibGVGaWxlU3RyZWFtKGZpbGVIYW5kbGUsIHRoaXMsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZmlsZSBoYW5kbGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZpbGVIYW5kbGUgdGhlIGZpbGUgaGFuZGxlIHRvIGJlIGNsb3NlZFxuICAgKi9cbiAgYXN5bmMgY2xvc2VGaWxlSGFuZGxlIChmaWxlSGFuZGxlKSB7XG4gICAgY29uc3Qge3BhY2tldE51bWJlciwgcmVzcG9uc2V9ID0gdGhpcy5fY3JlYXRlUGFja2V0UHJvbWlzZShgQ2xvc2UgZmlsZSBoYW5kbGUgJyR7ZmlsZUhhbmRsZX0nYCk7XG5cbiAgICBjb25zdCBmaWxlTW9kZVBheWxvYWQgPSBCdWZmZXIuYWxsb2MoOCk7XG4gICAgZmlsZU1vZGVQYXlsb2FkLndyaXRlVUludDMyTEUoZmlsZUhhbmRsZSwgMCk7XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgb3BDb2RlOiBPcGVyYXRpb25zLkZJTEVfQ0xPU0UsXG4gICAgICBwYWNrZXROdW1iZXIsXG4gICAgICBoZWFkZXJQYXlsb2FkOiBmaWxlTW9kZVBheWxvYWRcbiAgICB9O1xuICAgIHRoaXMuX2VuY29kZXIud3JpdGUoZGF0YSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgcmVzcG9uc2U7XG4gICAgdGhpcy5fY2hlY2tTdGF0dXMocmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIGJ1ZmZlciBpbnRvIHRoZSBnaXZlbiBmaWxlIGhhbmRsZVxuICAgKiBAcGFyYW0ge251bWJlcn0gZmlsZUhhbmRsZSBUaGUgZmlsZSBoYW5kbGUgdG8gYmUgdXNlZFxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIFRoZSBidWZmZXIgdGhhdCB3aWxsIGJlIHdyaXR0ZW5cbiAgICovXG4gIGFzeW5jIHdyaXRlRmlsZSAoZmlsZUhhbmRsZSwgYnVmZmVyKSB7XG4gICAgY29uc3Qge3BhY2tldE51bWJlciwgcmVzcG9uc2V9ID0gdGhpcy5fY3JlYXRlUGFja2V0UHJvbWlzZShgV3JpdGUgdG8gZmlsZSBoYW5kbGUgJyR7ZmlsZUhhbmRsZX0nYCk7XG5cbiAgICBjb25zdCBoZWFkZXJQYXlsb2FkID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIGhlYWRlclBheWxvYWQud3JpdGVVSW50MzJMRShmaWxlSGFuZGxlLCAwKTtcblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBvcENvZGU6IE9wZXJhdGlvbnMuRklMRV9XUklURSxcbiAgICAgIHBhY2tldE51bWJlcixcbiAgICAgIGhlYWRlclBheWxvYWQsXG4gICAgICBjb250ZW50OiBidWZmZXJcbiAgICB9O1xuICAgIHRoaXMuX2VuY29kZXIud3JpdGUoZGF0YSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgcmVzcG9uc2U7XG4gICAgdGhpcy5fY2hlY2tTdGF0dXMocmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIGEgY2VydGFpbiBsZW5ndGggb2YgYnVmZmVyIGZyb20gdGhlIGZpbGUgaGFuZGxlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmaWxlSGFuZGxlIFRoZSBmaWxlIGhhbmRsZSB0byBiZSB1c2VkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGggVGhlIGxlbmd0aCB0aGF0IHdhbnRzIHRvIGJlIHJlYWQgZnJvbSB0aGUgZmlsZSBoYW5kbGVcbiAgICogQHJldHVybiB7QnVmZmVyfVxuICAgKi9cbiAgYXN5bmMgcmVhZEZpbGUgKGZpbGVIYW5kbGUsIGxlbmd0aCkge1xuICAgIGNvbnN0IHtwYWNrZXROdW1iZXIsIHJlc3BvbnNlfSA9IHRoaXMuX2NyZWF0ZVBhY2tldFByb21pc2UoYFJlYWQgZnJvbSBmaWxlIGhhbmRsZSAnJHtmaWxlSGFuZGxlfSdgKTtcblxuICAgIGNvbnN0IGhlYWRlclBheWxvYWQgPSBCdWZmZXIuYWxsb2MoMTYpO1xuICAgIGhlYWRlclBheWxvYWQud3JpdGVVSW50MzJMRShmaWxlSGFuZGxlLCAwKTtcbiAgICBoZWFkZXJQYXlsb2FkLndyaXRlVUludDMyTEUobGVuZ3RoLCA4KTtcblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBvcENvZGU6IE9wZXJhdGlvbnMuRklMRV9SRUFELFxuICAgICAgcGFja2V0TnVtYmVyLFxuICAgICAgaGVhZGVyUGF5bG9hZFxuICAgIH07XG4gICAgdGhpcy5fZW5jb2Rlci53cml0ZShkYXRhKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCByZXNwb25zZTtcbiAgICBpZiAocmVzLm9wQ29kZSAhPT0gT3BlcmF0aW9ucy5EQVRBKSB7XG4gICAgICB0aGlzLl9jaGVja1N0YXR1cyhyZXMpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzLmNvbnRlbnQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmaWxlIGluZm8gb2YgdGhlIGdpdmVuIHBhdGhcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggaW4gdW5peCBmb3JtYXRcbiAgICogQHJldHVybiB7RmlsZUluZm99XG4gICAqL1xuICBhc3luYyBnZXRGaWxlSW5mbyAocGF0aCkge1xuICAgIGNvbnN0IHtwYWNrZXROdW1iZXIsIHJlc3BvbnNlfSA9IHRoaXMuX2NyZWF0ZVBhY2tldFByb21pc2UoYEdldCBmaWxlIGluZm8gJyR7cGF0aH0nYCk7XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgb3BDb2RlOiBPcGVyYXRpb25zLkdFVF9GSUxFX0lORk8sXG4gICAgICBwYWNrZXROdW1iZXIsXG4gICAgICBoZWFkZXJQYXlsb2FkOiBCdWZmZXIuZnJvbShwYXRoKVxuICAgIH07XG4gICAgdGhpcy5fZW5jb2Rlci53cml0ZShkYXRhKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCByZXNwb25zZTtcbiAgICBpZiAocmVzLm9wQ29kZSAhPT0gT3BlcmF0aW9ucy5EQVRBKSB7XG4gICAgICB0aGlzLl9jaGVja1N0YXR1cyhyZXMpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEZpbGVJbmZvKHRoaXMuX3BhcnNlT2JqZWN0KHJlcy5jb250ZW50KSk7XG4gIH1cblxuICAvKiogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGR1cmluZyB0aGUgZGlyZWN0b3J5IHdhbGtpbmdcbiAgICogQG5hbWUgV2Fsa0RpckNhbGxiYWNrXG4gICAqIEBmdW5jdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gaXRlbVBhdGggVGhlIHBhdGggb2YgdGhlIGZpbGUgb3IgZm9sZGVyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNEaXJlY3RvcnkgU2hvd3MgaWYgaXQgaXMgYSBkaXJlY3Rvcnkgb3IgYSBmaWxlXG4gICovXG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaXIgVGhlIHBhdGggaW4gdW5peCBmb3JtYXRcbiAgICogQHBhcmFtIHtib29sZWFufSByZWN1cnNpdmUgU2V0cyB3aGV0aGVyIHRvIGZvbGxvdyBzdWIgZGlyZWN0b3JpZXMgb3Igbm90XG4gICAqIEBwYXJhbSB7V2Fsa0RpckNhbGxiYWNrfSBvblBhdGggVGhlIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCB3aGVuIGEgbmV3IHBhdGggaXMgZm91bmRcbiAgICovXG4gIGFzeW5jIHdhbGtEaXIgKGRpciwgcmVjdXJzaXZlLCBvblBhdGgpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgYXdhaXQgdGhpcy5saXN0RGlyZWN0b3J5KGRpcikpIHtcbiAgICAgIGlmIChJR05PUkVEX1BBVEhTLmluY2x1ZGVzKGZpbGUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcGF0aC5wb3NpeC5qb2luKGRpciwgZmlsZSk7XG4gICAgICBjb25zdCBmaWxlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0RmlsZUluZm8ocmVsYXRpdmVQYXRoKTtcbiAgICAgIGNvbnN0IGlzRGlyZWN0b3J5ID0gZmlsZUluZm8uaXNEaXJlY3RvcnkoKTtcbiAgICAgIGF3YWl0IG9uUGF0aChyZWxhdGl2ZVBhdGgsIGlzRGlyZWN0b3J5KTtcbiAgICAgIGlmIChpc0RpcmVjdG9yeSAmJiByZWN1cnNpdmUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy53YWxrRGlyKHJlbGF0aXZlUGF0aCwgcmVjdXJzaXZlLCBvblBhdGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9jaGVja1N0YXR1cyAocmVzKSB7XG4gICAgaWYgKHJlcy5vcENvZGUgIT09IE9wZXJhdGlvbnMuU1RBVFVTKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgcmVzcG9uc2UgJHtvcGVyYXRpb25Db2RlKHJlcy5vcENvZGUpfWApO1xuICAgIH1cbiAgICBpZiAoXy5pc0VtcHR5KHJlcy5oZWFkZXJQYXlsb2FkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdIZWFkZXIgcGF5bG9hZCBjYW5ub3QgYmUgZW1wdHkgZm9yIGEgc3RhdHVzIHJlc3BvbnNlJyk7XG4gICAgfVxuICAgIGlmIChyZXMuaGVhZGVyUGF5bG9hZFswXSAhPT0gRXJyb3JzLlNVQ0NFU1MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCByZXNwb25zZSAke2Vycm9yQ29kZShyZXMuaGVhZGVyUGF5bG9hZFswXSl9YCk7XG4gICAgfVxuICB9XG5cbiAgX3BhcnNlQXJyYXkgKGJ1ZmZlcikge1xuICAgIGNvbnN0IGl0ZW1zID0gW107XG4gICAgbGV0IHN0YXJ0ID0gMDtcbiAgICBmb3IgKGxldCBlbmQgPSAwOyBlbmQgPCBidWZmZXIubGVuZ3RoOyBlbmQrKykge1xuICAgICAgaWYgKGJ1ZmZlcltlbmRdICE9PSBOVUxMX0RFTElNSVRFUl9DT0RFKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgaXRlbSA9IGJ1ZmZlci50b1N0cmluZygndXRmOCcsIHN0YXJ0LCBlbmQpO1xuICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgIC8vIFdlIHNraXAgdGhlIG51bGwgZGVsaW1ldGVyXG4gICAgICBzdGFydCA9IGVuZCArIDE7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIF9wYXJzZU9iamVjdCAoYnVmZmVyKSB7XG4gICAgY29uc3QgaXRlbXMgPSB7fTtcbiAgICBsZXQgc3RhcnQgPSAwO1xuICAgIGxldCBjdXJyZW50S2V5O1xuICAgIGZvciAobGV0IGVuZCA9IDA7IGVuZCA8IGJ1ZmZlci5sZW5ndGg7IGVuZCsrKSB7XG4gICAgICBpZiAoYnVmZmVyW2VuZF0gIT09IE5VTExfREVMSU1JVEVSX0NPREUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBpdGVtID0gYnVmZmVyLnRvU3RyaW5nKCd1dGY4Jywgc3RhcnQsIGVuZCk7XG4gICAgICBpZiAoXy5pc05pbChjdXJyZW50S2V5KSkge1xuICAgICAgICBjdXJyZW50S2V5ID0gaXRlbTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZW1zW2N1cnJlbnRLZXldID0gaXRlbTtcbiAgICAgICAgY3VycmVudEtleSA9IG51bGw7XG4gICAgICB9XG4gICAgICAvLyBXZSBza2lwIHRoZSBudWxsIGRlbGltZXRlclxuICAgICAgc3RhcnQgPSBlbmQgKyAxO1xuICAgIH1cbiAgICBpZiAoY3VycmVudEtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcGFyc2UgY29ycmVjdGx5ICR7YnVmZmVyfS4gUGxlYXNlIGludmVzdGlnYXRlYCk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIF9jcmVhdGVQYWNrZXRQcm9taXNlIChtZXNzYWdlLCB0aW1lb3V0ID0gMTAwMDApIHtcbiAgICBjb25zdCBwYWNrZXROdW1iZXIgPSB0aGlzLl9wYWNrZXROdW1iZXIrKztcbiAgICBjb25zdCByZXNwb25zZSA9IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX3Jlc3BvbnNlQ2FsbGJhY2tzW3BhY2tldE51bWJlcl0gPSByZXNvbHZlO1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5pc2ggdGhlIG9wZXJhdGlvbiAnJHttZXNzYWdlfScuIEZhaWxlZCB0byByZWNlaXZlIGFueSBkYXRhIHdpdGhpbiB0aGUgJHt0aW1lb3V0fW1zIHRpbWVvdXRgKSk7XG4gICAgICB9LCB0aW1lb3V0KTtcbiAgICB9KTtcbiAgICByZXR1cm4ge3BhY2tldE51bWJlciwgcmVzcG9uc2V9O1xuICB9XG59XG5cbmNsYXNzIEZpbGVJbmZvIHtcbiAgY29uc3RydWN0b3IgKHtzdF9zaXplLCBzdF9ibG9ja3MsIHN0X25saW5rLCBzdF9pZm10LCBzdF9tdGltZSwgc3RfYmlydGh0aW1lfSkge1xuICAgIHRoaXMuc2l6ZSA9IHBhcnNlSW50KHN0X3NpemUsIDEwKTtcbiAgICB0aGlzLmJsb2NrcyA9IHBhcnNlSW50KHN0X2Jsb2NrcywgMTApO1xuICAgIHRoaXMubmxpbmsgPSBwYXJzZUludChzdF9ubGluaywgMTApO1xuICAgIHRoaXMuaWZtdCA9IHN0X2lmbXQ7XG4gICAgLy8gbnMgdG8gbXNcbiAgICB0aGlzLm10aW1lTXMgPSBwYXJzZUludChzdF9tdGltZSwgMTApIC8gMTAwMDAwMDtcbiAgICAvLyBucyB0byBtc1xuICAgIHRoaXMuYmlydGh0aW1lTXMgPSBwYXJzZUludChzdF9iaXJ0aHRpbWUsIDEwKSAvIDEwMDAwMDA7XG4gIH1cblxuICBpc0RpcmVjdG9yeSAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWZtdCA9PT0gJ1NfSUZESVInO1xuICB9XG5cbiAgaXNGaWxlICgpIHtcbiAgICByZXR1cm4gdGhpcy5pZm10ID09PSAnU19JRlJFRyc7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQWZjU2VydmljZTtcbmV4cG9ydCB7IEFmY1NlcnZpY2UsIEFGQ19TRVJWSUNFX05BTUUgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBLE1BQU1BLGdCQUFnQixHQUFHLGVBQWU7QUFBQztBQUN6QyxNQUFNQyxjQUFjLEdBQUcsQ0FBQyxHQUFHQyxhQUFFO0FBRTdCLE1BQU1DLG1CQUFtQixHQUFHLElBQUk7QUFDaEMsTUFBTUMsYUFBYSxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztBQUVqQyxNQUFNQyxVQUFVLFNBQVNDLDhCQUFpQixDQUFDO0VBQ3pDQyxXQUFXLENBQUVDLFlBQVksRUFBRTtJQUN6QixLQUFLLENBQUNBLFlBQVksQ0FBQztJQUVuQixJQUFJLENBQUNDLFNBQVMsR0FBRyxJQUFJQyw0QkFBbUIsQ0FBQztNQUN2Q0MsY0FBYyxFQUFFSCxZQUFZO01BQzVCSSxZQUFZLEVBQUUsSUFBSTtNQUNsQkMsY0FBYyxFQUFFWixjQUFjO01BQzlCYSxpQkFBaUIsRUFBRSxDQUFDO01BQ3BCQyxpQkFBaUIsRUFBRSxDQUFDO01BQ3BCQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ0MsUUFBUSxHQUFHLElBQUlDLG1CQUFVLEVBQUU7SUFDaEMsSUFBSSxDQUFDQyxhQUFhLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUNYLFNBQVMsQ0FBQyxDQUFDVyxJQUFJLENBQUMsSUFBSSxDQUFDSCxRQUFRLENBQUM7SUFFM0QsSUFBSSxDQUFDSSxRQUFRLEdBQUcsSUFBSUMsbUJBQVUsRUFBRTtJQUNoQyxJQUFJLENBQUNELFFBQVEsQ0FBQ0QsSUFBSSxDQUFDLElB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
|
|
291
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVuZ3RoQmFzZWRTcGxpdHRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3Byb3RvY29sIiwiX3N0cmVhbXMiLCJfYWZjZW5jb2RlciIsIl9hZmNkZWNvZGVyIiwiX2NvbnN0YW50cyIsIl9ibHVlYmlyZCIsIl9wYXRoIiwiX2xvZGFzaCIsIl9iYXNlU2VydmljZSIsIkFGQ19TRVJWSUNFX05BTUUiLCJleHBvcnRzIiwiTUFYX0ZSQU1FX1NJWkUiLCJNQiIsIk5VTExfREVMSU1JVEVSX0NPREUiLCJJR05PUkVEX1BBVEhTIiwiQWZjU2VydmljZSIsIkJhc2VTZXJ2aWNlU29ja2V0IiwiY29uc3RydWN0b3IiLCJzb2NrZXRDbGllbnQiLCJfc3BsaXR0ZXIiLCJMZW5ndGhCYXNlZFNwbGl0dGVyIiwicmVhZGFibGVTdHJlYW0iLCJsaXR0bGVFbmRpYW4iLCJtYXhGcmFtZUxlbmd0aCIsImxlbmd0aEZpZWxkT2Zmc2V0IiwibGVuZ3RoRmllbGRMZW5ndGgiLCJsZW5ndGhBZGp1c3RtZW50IiwiX2RlY29kZXIiLCJBZmNEZWNvZGVyIiwiX3NvY2tldENsaWVudCIsInBpcGUiLCJfZW5jb2RlciIsIkFmY0VuY29kZXIiLCJfYXNzaWduQ2xpZW50RmFpbHVyZUhhbmRsZXJzIiwiX3Jlc3BvbnNlQ2FsbGJhY2tzIiwiX3BhY2tldE51bWJlciIsIm9uIiwiX2hhbmRsZURhdGEiLCJiaW5kIiwiZGF0YSIsImNiIiwicGFja2V0TnVtYmVyIiwiXyIsIm5vb3AiLCJjcmVhdGVEaXJlY3RvcnkiLCJwYXRoIiwicmVzcG9uc2UiLCJfY3JlYXRlUGFja2V0UHJvbWlzZSIsIm9wQ29kZSIsIk9wZXJhdGlvbnMiLCJNQUtFX0RJUiIsImhlYWRlclBheWxvYWQiLCJCdWZmZXIiLCJmcm9tIiwid3JpdGUiLCJyZXMiLCJfY2hlY2tTdGF0dXMiLCJkZWxldGVEaXJlY3RvcnkiLCJSRU1PVkVfUEFUSF9BTkRfQ09OVEVOVFMiLCJsaXN0RGlyZWN0b3J5IiwiUkVBRF9ESVIiLCJEQVRBIiwiX3BhcnNlQXJyYXkiLCJjb250ZW50Iiwib3BlbkZpbGUiLCJtb2RlIiwicGF0aFBheWxvYWQiLCJmaWxlTW9kZVBheWxvYWQiLCJhbGxvYyIsIndyaXRlVUludDMyTEUiLCJGSUxFX09QRU4iLCJjb25jYXQiLCJGSUxFX09QRU5fUkVTIiwicmVhZFVJbnQzMkxFIiwiY3JlYXRlV3JpdGVTdHJlYW0iLCJmaWxlUGF0aCIsIm9wdHMiLCJmaWxlSGFuZGxlIiwiRmlsZU1vZGVzIiwidyIsIkFmY1dyaXRhYmxlRmlsZVN0cmVhbSIsImNyZWF0ZVJlYWRTdHJlYW0iLCJvcHRpb25zIiwiciIsIkFmY1JlYWRhYmxlRmlsZVN0cmVhbSIsImNsb3NlRmlsZUhhbmRsZSIsIkZJTEVfQ0xPU0UiLCJ3cml0ZUZpbGUiLCJidWZmZXIiLCJGSUxFX1dSSVRFIiwicmVhZEZpbGUiLCJsZW5ndGgiLCJGSUxFX1JFQUQiLCJnZXRGaWxlSW5mbyIsIkdFVF9GSUxFX0lORk8iLCJGaWxlSW5mbyIsIl9wYXJzZU9iamVjdCIsIndhbGtEaXIiLCJkaXIiLCJyZWN1cnNpdmUiLCJvblBhdGgiLCJmaWxlIiwiaW5jbHVkZXMiLCJyZWxhdGl2ZVBhdGgiLCJwb3NpeCIsImpvaW4iLCJmaWxlSW5mbyIsImlzRGlyZWN0b3J5IiwiU1RBVFVTIiwiRXJyb3IiLCJvcGVyYXRpb25Db2RlIiwiaXNFbXB0eSIsIkVycm9ycyIsIlNVQ0NFU1MiLCJlcnJvckNvZGUiLCJpdGVtcyIsInN0YXJ0IiwiZW5kIiwiaXRlbSIsInRvU3RyaW5nIiwicHVzaCIsImN1cnJlbnRLZXkiLCJpc05pbCIsIm1lc3NhZ2UiLCJ0aW1lb3V0IiwiQiIsInJlc29sdmUiLCJyZWplY3QiLCJzZXRUaW1lb3V0Iiwic3Rfc2l6ZSIsInN0X2Jsb2NrcyIsInN0X25saW5rIiwic3RfaWZtdCIsInN0X210aW1lIiwic3RfYmlydGh0aW1lIiwic2l6ZSIsInBhcnNlSW50IiwiYmxvY2tzIiwibmxpbmsiLCJpZm10IiwibXRpbWVNcyIsImJpcnRodGltZU1zIiwiaXNGaWxlIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2FmYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCBMZW5ndGhCYXNlZFNwbGl0dGVyIGZyb20gJy4uL3V0aWwvdHJhbnNmb3JtZXIvbGVuZ3RoLWJhc2VkLXNwbGl0dGVyJztcbmltcG9ydCB7IE9wZXJhdGlvbnMsIG9wZXJhdGlvbkNvZGUsIEVycm9ycywgZXJyb3JDb2RlLCBGaWxlTW9kZXMgfSBmcm9tICcuL3Byb3RvY29sJztcbmltcG9ydCB7IEFmY1dyaXRhYmxlRmlsZVN0cmVhbSwgQWZjUmVhZGFibGVGaWxlU3RyZWFtIH0gZnJvbSAnLi9zdHJlYW1zJztcbmltcG9ydCBBZmNFbmNvZGVyIGZyb20gJy4vdHJhbnNmb3JtZXIvYWZjZW5jb2Rlcic7XG5pbXBvcnQgQWZjRGVjb2RlciBmcm9tICcuL3RyYW5zZm9ybWVyL2FmY2RlY29kZXInO1xuaW1wb3J0IHsgTUIgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2VTb2NrZXQgfSBmcm9tICcuLi9iYXNlLXNlcnZpY2UnO1xuXG5cbmNvbnN0IEFGQ19TRVJWSUNFX05BTUUgPSAnY29tLmFwcGxlLmFmYyc7XG5jb25zdCBNQVhfRlJBTUVfU0laRSA9IDEgKiBNQjtcblxuY29uc3QgTlVMTF9ERUxJTUlURVJfQ09ERSA9IDB4MDA7XG5jb25zdCBJR05PUkVEX1BBVEhTID0gWycuJywgJy4uJ107XG5cbmNsYXNzIEFmY1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZVNvY2tldCB7XG4gIGNvbnN0cnVjdG9yIChzb2NrZXRDbGllbnQpIHtcbiAgICBzdXBlcihzb2NrZXRDbGllbnQpO1xuXG4gICAgdGhpcy5fc3BsaXR0ZXIgPSBuZXcgTGVuZ3RoQmFzZWRTcGxpdHRlcih7XG4gICAgICByZWFkYWJsZVN0cmVhbTogc29ja2V0Q2xpZW50LFxuICAgICAgbGl0dGxlRW5kaWFuOiB0cnVlLFxuICAgICAgbWF4RnJhbWVMZW5ndGg6IE1BWF9GUkFNRV9TSVpFLFxuICAgICAgbGVuZ3RoRmllbGRPZmZzZXQ6IDgsXG4gICAgICBsZW5ndGhGaWVsZExlbmd0aDogOCxcbiAgICAgIGxlbmd0aEFkanVzdG1lbnQ6IC04LFxuICAgIH0pO1xuICAgIHRoaXMuX2RlY29kZXIgPSBuZXcgQWZjRGVjb2RlcigpO1xuICAgIHRoaXMuX3NvY2tldENsaWVudC5waXBlKHRoaXMuX3NwbGl0dGVyKS5waXBlKHRoaXMuX2RlY29kZXIpO1xuXG4gICAgdGhpcy5fZW5jb2RlciA9IG5ldyBBZmNFbmNvZGVyKCk7XG4gICAgdGhpcy5fZW5jb2Rlci5waXBlKHRoaXMuX3NvY2tldENsaWVudCk7XG4gICAgdGhpcy5fYXNzaWduQ2xpZW50RmFpbHVyZUhhbmRsZXJzKHRoaXMuX2VuY29kZXIpO1xuXG4gICAgdGhpcy5fcmVzcG9uc2VDYWxsYmFja3MgPSB7fTtcblxuICAgIHRoaXMuX3BhY2tldE51bWJlciA9IDA7XG4gICAgdGhpcy5fZGVjb2Rlci5vbignZGF0YScsIHRoaXMuX2hhbmRsZURhdGEuYmluZCh0aGlzKSk7XG4gIH1cblxuICBfaGFuZGxlRGF0YSAoZGF0YSkge1xuICAgIGNvbnN0IGNiID0gdGhpcy5fcmVzcG9uc2VDYWxsYmFja3NbZGF0YS5wYWNrZXROdW1iZXJdIHx8IF8ubm9vcDtcbiAgICBjYihkYXRhKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBwcm9taXNlL3ByZWZlci1hd2FpdC10by1jYWxsYmFja3NcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZGlyZWN0b3J5IHJlbGF0aXZlIHRvIGFuIGFscmVhZHkgZXhpc3RpbmcgZGlyZWN0b3J5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIGluIHVuaXggZm9ybWF0XG4gICAqL1xuICBhc3luYyBjcmVhdGVEaXJlY3RvcnkgKHBhdGgpIHtcbiAgICBjb25zdCB7cGFja2V0TnVtYmVyLCByZXNwb25zZX0gPSB0aGlzLl9jcmVhdGVQYWNrZXRQcm9taXNlKGBDcmVhdGUgZGlyZWN0b3J5ICcke3BhdGh9J2ApO1xuXG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIG9wQ29kZTogT3BlcmF0aW9ucy5NQUtFX0RJUixcbiAgICAgIHBhY2tldE51bWJlcixcbiAgICAgIGhlYWRlclBheWxvYWQ6IEJ1ZmZlci5mcm9tKHBhdGgpXG4gICAgfTtcbiAgICB0aGlzLl9lbmNvZGVyLndyaXRlKGRhdGEpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlc3BvbnNlO1xuICAgIHRoaXMuX2NoZWNrU3RhdHVzKHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhcmUgZGlyZWN0b3J5IGNvbXBsZXRlbHkgZXZlbiBpdCBoYXMgY29udGVudCBpbnNpZGUuIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgJ3JtIC1yIHtwYXRofSdcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggaW4gdW5peCBmb3JtYXRcbiAgICovXG4gIGFzeW5jIGRlbGV0ZURpcmVjdG9yeSAocGF0aCkge1xuICAgIGNvbnN0IHtwYWNrZXROdW1iZXIsIHJlc3BvbnNlfSA9IHRoaXMuX2NyZWF0ZVBhY2tldFByb21pc2UoYERlbGV0ZSBkaXJlY3RvcnkgJyR7cGF0aH0nYCk7XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgb3BDb2RlOiBPcGVyYXRpb25zLlJFTU9WRV9QQVRIX0FORF9DT05URU5UUyxcbiAgICAgIHBhY2tldE51bWJlcixcbiAgICAgIGhlYWRlclBheWxvYWQ6IEJ1ZmZlci5mcm9tKHBhdGgpXG4gICAgfTtcbiAgICB0aGlzLl9lbmNvZGVyLndyaXRlKGRhdGEpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlc3BvbnNlO1xuICAgIHRoaXMuX2NoZWNrU3RhdHVzKHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdHMgYSBkaXJlY3RvcnkncyBjb250ZW50cyBhbmQgcmV0dXJucyB0aGVtIGluIGFuIGFycmF5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIGluIHVuaXggZm9ybWF0XG4gICAqIEByZXR1cm4ge0FycmF5LjxzdHJpbmc+fVxuICAgKi9cbiAgYXN5bmMgbGlzdERpcmVjdG9yeSAocGF0aCkge1xuICAgIGNvbnN0IHtwYWNrZXROdW1iZXIsIHJlc3BvbnNlfSA9IHRoaXMuX2NyZWF0ZVBhY2tldFByb21pc2UoYExpc3QgZGlyZWN0b3J5ICcke3BhdGh9J2ApO1xuXG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIG9wQ29kZTogT3BlcmF0aW9ucy5SRUFEX0RJUixcbiAgICAgIHBhY2tldE51bWJlcixcbiAgICAgIGhlYWRlclBheWxvYWQ6IEJ1ZmZlci5mcm9tKHBhdGgpXG4gICAgfTtcbiAgICB0aGlzLl9lbmNvZGVyLndyaXRlKGRhdGEpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlc3BvbnNlO1xuICAgIGlmIChyZXMub3BDb2RlICE9PSBPcGVyYXRpb25zLkRBVEEpIHtcbiAgICAgIHRoaXMuX2NoZWNrU3RhdHVzKHJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3BhcnNlQXJyYXkocmVzLmNvbnRlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgZmlsZSBhbmQgY3JlYXRlcyBhIGZpbGUgaGFuZGxlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIGluIHVuaXggZm9ybWF0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtb2RlIFRoZSBmaWxlIG1vZGUgdGhhdCB3aWxsIGJlIHVzZWRcbiAgICogQHJldHVybiB7bnVtYmVyfVxuICAgKi9cbiAgYXN5bmMgb3BlbkZpbGUgKHBhdGgsIG1vZGUpIHtcbiAgICBjb25zdCB7cGFja2V0TnVtYmVyLCByZXNwb25zZX0gPSB0aGlzLl9jcmVhdGVQYWNrZXRQcm9taXNlKGBPcGVuIGZpbGUgJyR7cGF0aH0nYCk7XG5cbiAgICBjb25zdCBwYXRoUGF5bG9hZCA9IEJ1ZmZlci5mcm9tKHBhdGgpO1xuICAgIGNvbnN0IGZpbGVNb2RlUGF5bG9hZCA9IEJ1ZmZlci5hbGxvYyg4KTtcbiAgICBmaWxlTW9kZVBheWxvYWQud3JpdGVVSW50MzJMRShtb2RlLCAwKTtcblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBvcENvZGU6IE9wZXJhdGlvbnMuRklMRV9PUEVOLFxuICAgICAgcGFja2V0TnVtYmVyLFxuICAgICAgaGVhZGVyUGF5bG9hZDogQnVmZmVyLmNvbmNhdChbZmlsZU1vZGVQYXlsb2FkLCBwYXRoUGF5bG9hZF0pXG4gICAgfTtcbiAgICB0aGlzLl9lbmNvZGVyLndyaXRlKGRhdGEpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlc3BvbnNlO1xuICAgIGlmIChyZXMub3BDb2RlICE9PSBPcGVyYXRpb25zLkZJTEVfT1BFTl9SRVMpIHtcbiAgICAgIHRoaXMuX2NoZWNrU3RhdHVzKHJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5oZWFkZXJQYXlsb2FkLnJlYWRVSW50MzJMRSgwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIGZpbGUgYW5kIGNyZWF0ZXMgYSBub2RlanMgd3JpdGUgc3RyZWFtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlUGF0aCBUaGUgcGF0aCBpbiB1bml4IGZvcm1hdFxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0cyBUaGUgcmVndWxhciBvcHRpb25zIHRoYXQgYXJlIHBhc3NlZCB0byBhIFN0cmVhbS5Xcml0YWJsZVxuICAgKiBAcmV0dXJuIHtBZmNXcml0YWJsZUZpbGVTdHJlYW19XG4gICAqL1xuICBhc3luYyBjcmVhdGVXcml0ZVN0cmVhbSAoZmlsZVBhdGgsIG9wdHMpIHtcbiAgICBjb25zdCBmaWxlSGFuZGxlID0gYXdhaXQgdGhpcy5vcGVuRmlsZShmaWxlUGF0aCwgRmlsZU1vZGVzLncpO1xuICAgIHJldHVybiBuZXcgQWZjV3JpdGFibGVGaWxlU3RyZWFtKGZpbGVIYW5kbGUsIHRoaXMsIG9wdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgZmlsZSBhbmQgY3JlYXRlcyBhIG5vZGVqcyByZWFkIHN0cmVhbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZVBhdGggVGhlIHBhdGggaW4gdW5peCBmb3JtYXRcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdHMgVGhlIHJlZ3VsYXIgb3B0aW9ucyB0aGF0IGFyZSBwYXNzZWQgdG8gYSBTdHJlYW0uUmVhZGFibGVcbiAgICogQHJldHVybiB7QWZjUmVhZGFibGVGaWxlU3RyZWFtfVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlUmVhZFN0cmVhbSAoZmlsZVBhdGgsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBmaWxlSGFuZGxlID0gYXdhaXQgdGhpcy5vcGVuRmlsZShmaWxlUGF0aCwgRmlsZU1vZGVzLnIpO1xuICAgIHJldHVybiBuZXcgQWZjUmVhZGFibGVGaWxlU3RyZWFtKGZpbGVIYW5kbGUsIHRoaXMsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZmlsZSBoYW5kbGVcbiAgICogQHBhcmFtIHtudW1iZXJ9IGZpbGVIYW5kbGUgdGhlIGZpbGUgaGFuZGxlIHRvIGJlIGNsb3NlZFxuICAgKi9cbiAgYXN5bmMgY2xvc2VGaWxlSGFuZGxlIChmaWxlSGFuZGxlKSB7XG4gICAgY29uc3Qge3BhY2tldE51bWJlciwgcmVzcG9uc2V9ID0gdGhpcy5fY3JlYXRlUGFja2V0UHJvbWlzZShgQ2xvc2UgZmlsZSBoYW5kbGUgJyR7ZmlsZUhhbmRsZX0nYCk7XG5cbiAgICBjb25zdCBmaWxlTW9kZVBheWxvYWQgPSBCdWZmZXIuYWxsb2MoOCk7XG4gICAgZmlsZU1vZGVQYXlsb2FkLndyaXRlVUludDMyTEUoZmlsZUhhbmRsZSwgMCk7XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgb3BDb2RlOiBPcGVyYXRpb25zLkZJTEVfQ0xPU0UsXG4gICAgICBwYWNrZXROdW1iZXIsXG4gICAgICBoZWFkZXJQYXlsb2FkOiBmaWxlTW9kZVBheWxvYWRcbiAgICB9O1xuICAgIHRoaXMuX2VuY29kZXIud3JpdGUoZGF0YSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgcmVzcG9uc2U7XG4gICAgdGhpcy5fY2hlY2tTdGF0dXMocmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgdGhlIGJ1ZmZlciBpbnRvIHRoZSBnaXZlbiBmaWxlIGhhbmRsZVxuICAgKiBAcGFyYW0ge251bWJlcn0gZmlsZUhhbmRsZSBUaGUgZmlsZSBoYW5kbGUgdG8gYmUgdXNlZFxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIFRoZSBidWZmZXIgdGhhdCB3aWxsIGJlIHdyaXR0ZW5cbiAgICovXG4gIGFzeW5jIHdyaXRlRmlsZSAoZmlsZUhhbmRsZSwgYnVmZmVyKSB7XG4gICAgY29uc3Qge3BhY2tldE51bWJlciwgcmVzcG9uc2V9ID0gdGhpcy5fY3JlYXRlUGFja2V0UHJvbWlzZShgV3JpdGUgdG8gZmlsZSBoYW5kbGUgJyR7ZmlsZUhhbmRsZX0nYCk7XG5cbiAgICBjb25zdCBoZWFkZXJQYXlsb2FkID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIGhlYWRlclBheWxvYWQud3JpdGVVSW50MzJMRShmaWxlSGFuZGxlLCAwKTtcblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBvcENvZGU6IE9wZXJhdGlvbnMuRklMRV9XUklURSxcbiAgICAgIHBhY2tldE51bWJlcixcbiAgICAgIGhlYWRlclBheWxvYWQsXG4gICAgICBjb250ZW50OiBidWZmZXJcbiAgICB9O1xuICAgIHRoaXMuX2VuY29kZXIud3JpdGUoZGF0YSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgcmVzcG9uc2U7XG4gICAgdGhpcy5fY2hlY2tTdGF0dXMocmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIGEgY2VydGFpbiBsZW5ndGggb2YgYnVmZmVyIGZyb20gdGhlIGZpbGUgaGFuZGxlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBmaWxlSGFuZGxlIFRoZSBmaWxlIGhhbmRsZSB0byBiZSB1c2VkXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBsZW5ndGggVGhlIGxlbmd0aCB0aGF0IHdhbnRzIHRvIGJlIHJlYWQgZnJvbSB0aGUgZmlsZSBoYW5kbGVcbiAgICogQHJldHVybiB7QnVmZmVyfVxuICAgKi9cbiAgYXN5bmMgcmVhZEZpbGUgKGZpbGVIYW5kbGUsIGxlbmd0aCkge1xuICAgIGNvbnN0IHtwYWNrZXROdW1iZXIsIHJlc3BvbnNlfSA9IHRoaXMuX2NyZWF0ZVBhY2tldFByb21pc2UoYFJlYWQgZnJvbSBmaWxlIGhhbmRsZSAnJHtmaWxlSGFuZGxlfSdgKTtcblxuICAgIGNvbnN0IGhlYWRlclBheWxvYWQgPSBCdWZmZXIuYWxsb2MoMTYpO1xuICAgIGhlYWRlclBheWxvYWQud3JpdGVVSW50MzJMRShmaWxlSGFuZGxlLCAwKTtcbiAgICBoZWFkZXJQYXlsb2FkLndyaXRlVUludDMyTEUobGVuZ3RoLCA4KTtcblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBvcENvZGU6IE9wZXJhdGlvbnMuRklMRV9SRUFELFxuICAgICAgcGFja2V0TnVtYmVyLFxuICAgICAgaGVhZGVyUGF5bG9hZFxuICAgIH07XG4gICAgdGhpcy5fZW5jb2Rlci53cml0ZShkYXRhKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCByZXNwb25zZTtcbiAgICBpZiAocmVzLm9wQ29kZSAhPT0gT3BlcmF0aW9ucy5EQVRBKSB7XG4gICAgICB0aGlzLl9jaGVja1N0YXR1cyhyZXMpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzLmNvbnRlbnQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmaWxlIGluZm8gb2YgdGhlIGdpdmVuIHBhdGhcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdGggVGhlIHBhdGggaW4gdW5peCBmb3JtYXRcbiAgICogQHJldHVybiB7RmlsZUluZm99XG4gICAqL1xuICBhc3luYyBnZXRGaWxlSW5mbyAocGF0aCkge1xuICAgIGNvbnN0IHtwYWNrZXROdW1iZXIsIHJlc3BvbnNlfSA9IHRoaXMuX2NyZWF0ZVBhY2tldFByb21pc2UoYEdldCBmaWxlIGluZm8gJyR7cGF0aH0nYCk7XG5cbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgb3BDb2RlOiBPcGVyYXRpb25zLkdFVF9GSUxFX0lORk8sXG4gICAgICBwYWNrZXROdW1iZXIsXG4gICAgICBoZWFkZXJQYXlsb2FkOiBCdWZmZXIuZnJvbShwYXRoKVxuICAgIH07XG4gICAgdGhpcy5fZW5jb2Rlci53cml0ZShkYXRhKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCByZXNwb25zZTtcbiAgICBpZiAocmVzLm9wQ29kZSAhPT0gT3BlcmF0aW9ucy5EQVRBKSB7XG4gICAgICB0aGlzLl9jaGVja1N0YXR1cyhyZXMpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEZpbGVJbmZvKHRoaXMuX3BhcnNlT2JqZWN0KHJlcy5jb250ZW50KSk7XG4gIH1cblxuICAvKiogVGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2FsbGVkIGR1cmluZyB0aGUgZGlyZWN0b3J5IHdhbGtpbmdcbiAgICogQG5hbWUgV2Fsa0RpckNhbGxiYWNrXG4gICAqIEBmdW5jdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gaXRlbVBhdGggVGhlIHBhdGggb2YgdGhlIGZpbGUgb3IgZm9sZGVyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNEaXJlY3RvcnkgU2hvd3MgaWYgaXQgaXMgYSBkaXJlY3Rvcnkgb3IgYSBmaWxlXG4gICovXG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkaXIgVGhlIHBhdGggaW4gdW5peCBmb3JtYXRcbiAgICogQHBhcmFtIHtib29sZWFufSByZWN1cnNpdmUgU2V0cyB3aGV0aGVyIHRvIGZvbGxvdyBzdWIgZGlyZWN0b3JpZXMgb3Igbm90XG4gICAqIEBwYXJhbSB7V2Fsa0RpckNhbGxiYWNrfSBvblBhdGggVGhlIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCB3aGVuIGEgbmV3IHBhdGggaXMgZm91bmRcbiAgICovXG4gIGFzeW5jIHdhbGtEaXIgKGRpciwgcmVjdXJzaXZlLCBvblBhdGgpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgYXdhaXQgdGhpcy5saXN0RGlyZWN0b3J5KGRpcikpIHtcbiAgICAgIGlmIChJR05PUkVEX1BBVEhTLmluY2x1ZGVzKGZpbGUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcGF0aC5wb3NpeC5qb2luKGRpciwgZmlsZSk7XG4gICAgICBjb25zdCBmaWxlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0RmlsZUluZm8ocmVsYXRpdmVQYXRoKTtcbiAgICAgIGNvbnN0IGlzRGlyZWN0b3J5ID0gZmlsZUluZm8uaXNEaXJlY3RvcnkoKTtcbiAgICAgIGF3YWl0IG9uUGF0aChyZWxhdGl2ZVBhdGgsIGlzRGlyZWN0b3J5KTtcbiAgICAgIGlmIChpc0RpcmVjdG9yeSAmJiByZWN1cnNpdmUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy53YWxrRGlyKHJlbGF0aXZlUGF0aCwgcmVjdXJzaXZlLCBvblBhdGgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9jaGVja1N0YXR1cyAocmVzKSB7XG4gICAgaWYgKHJlcy5vcENvZGUgIT09IE9wZXJhdGlvbnMuU1RBVFVTKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgcmVzcG9uc2UgJHtvcGVyYXRpb25Db2RlKHJlcy5vcENvZGUpfWApO1xuICAgIH1cbiAgICBpZiAoXy5pc0VtcHR5KHJlcy5oZWFkZXJQYXlsb2FkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdIZWFkZXIgcGF5bG9hZCBjYW5ub3QgYmUgZW1wdHkgZm9yIGEgc3RhdHVzIHJlc3BvbnNlJyk7XG4gICAgfVxuICAgIGlmIChyZXMuaGVhZGVyUGF5bG9hZFswXSAhPT0gRXJyb3JzLlNVQ0NFU1MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCByZXNwb25zZSAke2Vycm9yQ29kZShyZXMuaGVhZGVyUGF5bG9hZFswXSl9YCk7XG4gICAgfVxuICB9XG5cbiAgX3BhcnNlQXJyYXkgKGJ1ZmZlcikge1xuICAgIGNvbnN0IGl0ZW1zID0gW107XG4gICAgbGV0IHN0YXJ0ID0gMDtcbiAgICBmb3IgKGxldCBlbmQgPSAwOyBlbmQgPCBidWZmZXIubGVuZ3RoOyBlbmQrKykge1xuICAgICAgaWYgKGJ1ZmZlcltlbmRdICE9PSBOVUxMX0RFTElNSVRFUl9DT0RFKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgaXRlbSA9IGJ1ZmZlci50b1N0cmluZygndXRmOCcsIHN0YXJ0LCBlbmQpO1xuICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgIC8vIFdlIHNraXAgdGhlIG51bGwgZGVsaW1ldGVyXG4gICAgICBzdGFydCA9IGVuZCArIDE7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIF9wYXJzZU9iamVjdCAoYnVmZmVyKSB7XG4gICAgY29uc3QgaXRlbXMgPSB7fTtcbiAgICBsZXQgc3RhcnQgPSAwO1xuICAgIGxldCBjdXJyZW50S2V5O1xuICAgIGZvciAobGV0IGVuZCA9IDA7IGVuZCA8IGJ1ZmZlci5sZW5ndGg7IGVuZCsrKSB7XG4gICAgICBpZiAoYnVmZmVyW2VuZF0gIT09IE5VTExfREVMSU1JVEVSX0NPREUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBpdGVtID0gYnVmZmVyLnRvU3RyaW5nKCd1dGY4Jywgc3RhcnQsIGVuZCk7XG4gICAgICBpZiAoXy5pc05pbChjdXJyZW50S2V5KSkge1xuICAgICAgICBjdXJyZW50S2V5ID0gaXRlbTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZW1zW2N1cnJlbnRLZXldID0gaXRlbTtcbiAgICAgICAgY3VycmVudEtleSA9IG51bGw7XG4gICAgICB9XG4gICAgICAvLyBXZSBza2lwIHRoZSBudWxsIGRlbGltZXRlclxuICAgICAgc3RhcnQgPSBlbmQgKyAxO1xuICAgIH1cbiAgICBpZiAoY3VycmVudEtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcGFyc2UgY29ycmVjdGx5ICR7YnVmZmVyfS4gUGxlYXNlIGludmVzdGlnYXRlYCk7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIF9jcmVhdGVQYWNrZXRQcm9taXNlIChtZXNzYWdlLCB0aW1lb3V0ID0gMTAwMDApIHtcbiAgICBjb25zdCBwYWNrZXROdW1iZXIgPSB0aGlzLl9wYWNrZXROdW1iZXIrKztcbiAgICBjb25zdCByZXNwb25zZSA9IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX3Jlc3BvbnNlQ2FsbGJhY2tzW3BhY2tldE51bWJlcl0gPSByZXNvbHZlO1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5pc2ggdGhlIG9wZXJhdGlvbiAnJHttZXNzYWdlfScuIEZhaWxlZCB0byByZWNlaXZlIGFueSBkYXRhIHdpdGhpbiB0aGUgJHt0aW1lb3V0fW1zIHRpbWVvdXRgKSk7XG4gICAgICB9LCB0aW1lb3V0KTtcbiAgICB9KTtcbiAgICByZXR1cm4ge3BhY2tldE51bWJlciwgcmVzcG9uc2V9O1xuICB9XG59XG5cbmNsYXNzIEZpbGVJbmZvIHtcbiAgY29uc3RydWN0b3IgKHtzdF9zaXplLCBzdF9ibG9ja3MsIHN0X25saW5rLCBzdF9pZm10LCBzdF9tdGltZSwgc3RfYmlydGh0aW1lfSkge1xuICAgIHRoaXMuc2l6ZSA9IHBhcnNlSW50KHN0X3NpemUsIDEwKTtcbiAgICB0aGlzLmJsb2NrcyA9IHBhcnNlSW50KHN0X2Jsb2NrcywgMTApO1xuICAgIHRoaXMubmxpbmsgPSBwYXJzZUludChzdF9ubGluaywgMTApO1xuICAgIHRoaXMuaWZtdCA9IHN0X2lmbXQ7XG4gICAgLy8gbnMgdG8gbXNcbiAgICB0aGlzLm10aW1lTXMgPSBwYXJzZUludChzdF9tdGltZSwgMTApIC8gMTAwMDAwMDtcbiAgICAvLyBucyB0byBtc1xuICAgIHRoaXMuYmlydGh0aW1lTXMgPSBwYXJzZUludChzdF9iaXJ0aHRpbWUsIDEwKSAvIDEwMDAwMDA7XG4gIH1cblxuICBpc0RpcmVjdG9yeSAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWZtdCA9PT0gJ1NfSUZESVInO1xuICB9XG5cbiAgaXNGaWxlICgpIHtcbiAgICByZXR1cm4gdGhpcy5pZm10ID09PSAnU19JRlJFRyc7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQWZjU2VydmljZTtcbmV4cG9ydCB7IEFmY1NlcnZpY2UsIEFGQ19TRVJWSUNFX05BTUUgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDQSxJQUFBQSxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sS0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsT0FBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBVCxPQUFBO0FBR0EsTUFBTVUsZ0JBQWdCLEdBQUcsZUFBZTtBQUFDQyxPQUFBLENBQUFELGdCQUFBLEdBQUFBLGdCQUFBO0FBQ3pDLE1BQU1FLGNBQWMsR0FBRyxDQUFDLEdBQUdDLGFBQUU7QUFFN0IsTUFBTUMsbUJBQW1CLEdBQUcsSUFBSTtBQUNoQyxNQUFNQyxhQUFhLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["AFC_SERVICE_NAME","MAX_FRAME_SIZE","MB","NULL_DELIMITER_CODE","IGNORED_PATHS","AfcService","BaseServiceSocket","constructor","socketClient","_splitter","LengthBasedSplitter","readableStream","littleEndian","maxFrameLength","lengthFieldOffset","lengthFieldLength","lengthAdjustment","_decoder","AfcDecoder","_socketClient","pipe","_encoder","AfcEncoder","_assignClientFailureHandlers","_responseCallbacks","_packetNumber","on","_handleData","bind","data","cb","packetNumber","_","noop","createDirectory","path","response","_createPacketPromise","opCode","Operations","MAKE_DIR","headerPayload","Buffer","from","write","res","_checkStatus","deleteDirectory","REMOVE_PATH_AND_CONTENTS","listDirectory","READ_DIR","DATA","_parseArray","content","openFile","mode","pathPayload","fileModePayload","alloc","writeUInt32LE","FILE_OPEN","concat","FILE_OPEN_RES","readUInt32LE","createWriteStream","filePath","opts","fileHandle","FileModes","w","AfcWritableFileStream","createReadStream","options","r","AfcReadableFileStream","closeFileHandle","FILE_CLOSE","writeFile","buffer","FILE_WRITE","readFile","length","FILE_READ","getFileInfo","GET_FILE_INFO","FileInfo","_parseObject","walkDir","dir","recursive","onPath","file","includes","relativePath","posix","join","fileInfo","isDirectory","STATUS","Error","operationCode","isEmpty","Errors","SUCCESS","errorCode","items","start","end","item","toString","push","currentKey","isNil","message","timeout","B","resolve","reject","setTimeout","st_size","st_blocks","st_nlink","st_ifmt","st_mtime","st_birthtime","size","parseInt","blocks","nlink","ifmt","mtimeMs","birthtimeMs","isFile"],"sources":["../../../lib/afc/index.js"],"sourcesContent":["\nimport LengthBasedSplitter from '../util/transformer/length-based-splitter';\nimport { Operations, operationCode, Errors, errorCode, FileModes } from './protocol';\nimport { AfcWritableFileStream, AfcReadableFileStream } from './streams';\nimport AfcEncoder from './transformer/afcencoder';\nimport AfcDecoder from './transformer/afcdecoder';\nimport { MB } from '../constants';\nimport B from 'bluebird';\nimport path from 'path';\nimport _ from 'lodash';\nimport { BaseServiceSocket } from '../base-service';\n\n\nconst AFC_SERVICE_NAME = 'com.apple.afc';\nconst MAX_FRAME_SIZE = 1 * MB;\n\nconst NULL_DELIMITER_CODE = 0x00;\nconst IGNORED_PATHS = ['.', '..'];\n\nclass AfcService extends BaseServiceSocket {\n constructor (socketClient) {\n super(socketClient);\n\n this._splitter = new LengthBasedSplitter({\n readableStream: socketClient,\n littleEndian: true,\n maxFrameLength: MAX_FRAME_SIZE,\n lengthFieldOffset: 8,\n lengthFieldLength: 8,\n lengthAdjustment: -8,\n });\n this._decoder = new AfcDecoder();\n this._socketClient.pipe(this._splitter).pipe(this._decoder);\n\n this._encoder = new AfcEncoder();\n this._encoder.pipe(this._socketClient);\n this._assignClientFailureHandlers(this._encoder);\n\n this._responseCallbacks = {};\n\n this._packetNumber = 0;\n this._decoder.on('data', this._handleData.bind(this));\n }\n\n _handleData (data) {\n const cb = this._responseCallbacks[data.packetNumber] || _.noop;\n cb(data); // eslint-disable-line promise/prefer-await-to-callbacks\n }\n\n /**\n * Creates a directory relative to an already existing directory\n * @param {string} path The path in unix format\n */\n async createDirectory (path) {\n const {packetNumber, response} = this._createPacketPromise(`Create directory '${path}'`);\n\n const data = {\n opCode: Operations.MAKE_DIR,\n packetNumber,\n headerPayload: Buffer.from(path)\n };\n this._encoder.write(data);\n const res = await response;\n this._checkStatus(res);\n }\n\n /**\n * Deletes are directory completely even it has content inside. This is an implementation of 'rm -r {path}'\n * @param {string} path The path in unix format\n */\n async deleteDirectory (path) {\n const {packetNumber, response} = this._createPacketPromise(`Delete directory '${path}'`);\n\n const data = {\n opCode: Operations.REMOVE_PATH_AND_CONTENTS,\n packetNumber,\n headerPayload: Buffer.from(path)\n };\n this._encoder.write(data);\n const res = await response;\n this._checkStatus(res);\n }\n\n /**\n * Lists a directory's contents and returns them in an array\n * @param {string} path The path in unix format\n * @return {Array.<string>}\n */\n async listDirectory (path) {\n const {packetNumber, response} = this._createPacketPromise(`List directory '${path}'`);\n\n const data = {\n opCode: Operations.READ_DIR,\n packetNumber,\n headerPayload: Buffer.from(path)\n };\n this._encoder.write(data);\n const res = await response;\n if (res.opCode !== Operations.DATA) {\n this._checkStatus(res);\n }\n\n return this._parseArray(res.content);\n }\n\n /**\n * Opens a file and creates a file handle\n * @param {string} path The path in unix format\n * @param {number} mode The file mode that will be used\n * @return {number}\n */\n async openFile (path, mode) {\n const {packetNumber, response} = this._createPacketPromise(`Open file '${path}'`);\n\n const pathPayload = Buffer.from(path);\n const fileModePayload = Buffer.alloc(8);\n fileModePayload.writeUInt32LE(mode, 0);\n\n const data = {\n opCode: Operations.FILE_OPEN,\n packetNumber,\n headerPayload: Buffer.concat([fileModePayload, pathPayload])\n };\n this._encoder.write(data);\n const res = await response;\n if (res.opCode !== Operations.FILE_OPEN_RES) {\n this._checkStatus(res);\n }\n\n return res.headerPayload.readUInt32LE(0);\n }\n\n /**\n * Opens a file and creates a nodejs write stream\n * @param {string} filePath The path in unix format\n * @param {Object} opts The regular options that are passed to a Stream.Writable\n * @return {AfcWritableFileStream}\n */\n async createWriteStream (filePath, opts) {\n const fileHandle = await this.openFile(filePath, FileModes.w);\n return new AfcWritableFileStream(fileHandle, this, opts);\n }\n\n /**\n * Opens a file and creates a nodejs read stream\n * @param {string} filePath The path in unix format\n * @param {Object} opts The regular options that are passed to a Stream.Readable\n * @return {AfcReadableFileStream}\n */\n async createReadStream (filePath, options) {\n const fileHandle = await this.openFile(filePath, FileModes.r);\n return new AfcReadableFileStream(fileHandle, this, options);\n }\n\n /**\n * Closes the file handle\n * @param {number} fileHandle the file handle to be closed\n */\n async closeFileHandle (fileHandle) {\n const {packetNumber, response} = this._createPacketPromise(`Close file handle '${fileHandle}'`);\n\n const fileModePayload = Buffer.alloc(8);\n fileModePayload.writeUInt32LE(fileHandle, 0);\n\n const data = {\n opCode: Operations.FILE_CLOSE,\n packetNumber,\n headerPayload: fileModePayload\n };\n this._encoder.write(data);\n const res = await response;\n this._checkStatus(res);\n }\n\n /**\n * Writes the buffer into the given file handle\n * @param {number} fileHandle The file handle to be used\n * @param {Buffer} buffer The buffer that will be written\n */\n async writeFile (fileHandle, buffer) {\n const {packetNumber, response} = this._createPacketPromise(`Write to file handle '${fileHandle}'`);\n\n const headerPayload = Buffer.alloc(8);\n headerPayload.writeUInt32LE(fileHandle, 0);\n\n const data = {\n opCode: Operations.FILE_WRITE,\n packetNumber,\n headerPayload,\n content: buffer\n };\n this._encoder.write(data);\n const res = await response;\n this._checkStatus(res);\n }\n\n /**\n * Read a certain length of buffer from the file handle\n * @param {number} fileHandle The file handle to be used\n * @param {number} length The length that wants to be read from the file handle\n * @return {Buffer}\n */\n async readFile (fileHandle, length) {\n const {packetNumber, response} = this._createPacketPromise(`Read from file handle '${fileHandle}'`);\n\n const headerPayload = Buffer.alloc(16);\n headerPayload.writeUInt32LE(fileHandle, 0);\n headerPayload.writeUInt32LE(length, 8);\n\n const data = {\n opCode: Operations.FILE_READ,\n packetNumber,\n headerPayload\n };\n this._encoder.write(data);\n const res = await response;\n if (res.opCode !== Operations.DATA) {\n this._checkStatus(res);\n }\n return res.content;\n }\n\n /**\n * Get the file info of the given path\n * @param {string} path The path in unix format\n * @return {FileInfo}\n */\n async getFileInfo (path) {\n const {packetNumber, response} = this._createPacketPromise(`Get file info '${path}'`);\n\n const data = {\n opCode: Operations.GET_FILE_INFO,\n packetNumber,\n headerPayload: Buffer.from(path)\n };\n this._encoder.write(data);\n const res = await response;\n if (res.opCode !== Operations.DATA) {\n this._checkStatus(res);\n }\n return new FileInfo(this._parseObject(res.content));\n }\n\n /** The callback function which will be called during the directory walking\n * @name WalkDirCallback\n * @function\n * @param {string} itemPath The path of the file or folder\n * @param {boolean} isDirectory Shows if it is a directory or a file\n */\n\n /**\n *\n * @param {string} dir The path in unix format\n * @param {boolean} recursive Sets whether to follow sub directories or not\n * @param {WalkDirCallback} onPath The callback to be called when a new path is found\n */\n async walkDir (dir, recursive, onPath) {\n for (const file of await this.listDirectory(dir)) {\n if (IGNORED_PATHS.includes(file)) {\n continue;\n }\n const relativePath = path.posix.join(dir, file);\n const fileInfo = await this.getFileInfo(relativePath);\n const isDirectory = fileInfo.isDirectory();\n await onPath(relativePath, isDirectory);\n if (isDirectory && recursive) {\n await this.walkDir(relativePath, recursive, onPath);\n }\n }\n }\n\n _checkStatus (res) {\n if (res.opCode !== Operations.STATUS) {\n throw new Error(`Unexpected response ${operationCode(res.opCode)}`);\n }\n if (_.isEmpty(res.headerPayload)) {\n throw new Error('Header payload cannot be empty for a status response');\n }\n if (res.headerPayload[0] !== Errors.SUCCESS) {\n throw new Error(`Unexpected response ${errorCode(res.headerPayload[0])}`);\n }\n }\n\n _parseArray (buffer) {\n const items = [];\n let start = 0;\n for (let end = 0; end < buffer.length; end++) {\n if (buffer[end] !== NULL_DELIMITER_CODE) {\n continue;\n }\n const item = buffer.toString('utf8', start, end);\n items.push(item);\n // We skip the null delimeter\n start = end + 1;\n }\n return items;\n }\n\n _parseObject (buffer) {\n const items = {};\n let start = 0;\n let currentKey;\n for (let end = 0; end < buffer.length; end++) {\n if (buffer[end] !== NULL_DELIMITER_CODE) {\n continue;\n }\n const item = buffer.toString('utf8', start, end);\n if (_.isNil(currentKey)) {\n currentKey = item;\n } else {\n items[currentKey] = item;\n currentKey = null;\n }\n // We skip the null delimeter\n start = end + 1;\n }\n if (currentKey) {\n throw new Error(`Failed to parse correctly ${buffer}. Please investigate`);\n }\n return items;\n }\n\n _createPacketPromise (message, timeout = 10000) {\n const packetNumber = this._packetNumber++;\n const response = new B((resolve, reject) => {\n this._responseCallbacks[packetNumber] = resolve;\n setTimeout(function () {\n reject(new Error(`Could not finish the operation '${message}'. Failed to receive any data within the ${timeout}ms timeout`));\n }, timeout);\n });\n return {packetNumber, response};\n }\n}\n\nclass FileInfo {\n constructor ({st_size, st_blocks, st_nlink, st_ifmt, st_mtime, st_birthtime}) {\n this.size = parseInt(st_size, 10);\n this.blocks = parseInt(st_blocks, 10);\n this.nlink = parseInt(st_nlink, 10);\n this.ifmt = st_ifmt;\n // ns to ms\n this.mtimeMs = parseInt(st_mtime, 10) / 1000000;\n // ns to ms\n this.birthtimeMs = parseInt(st_birthtime, 10) / 1000000;\n }\n\n isDirectory () {\n return this.ifmt === 'S_IFDIR';\n }\n\n isFile () {\n return this.ifmt === 'S_IFREG';\n }\n}\n\nexport default AfcService;\nexport { AfcService, AFC_SERVICE_NAME };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_lengthBasedSplitter","_interopRequireDefault","require","_protocol","_streams","_afcencoder","_afcdecoder","_constants","_bluebird","_path","_lodash","_baseService","AFC_SERVICE_NAME","exports","MAX_FRAME_SIZE","MB","NULL_DELIMITER_CODE","IGNORED_PATHS","AfcService","BaseServiceSocket","constructor","socketClient","_splitter","LengthBasedSplitter","readableStream","littleEndian","maxFrameLength","lengthFieldOffset","lengthFieldLength","lengthAdjustment","_decoder","AfcDecoder","_socketClient","pipe","_encoder","AfcEncoder","_assignClientFailureHandlers","_responseCallbacks","_packetNumber","on","_handleData","bind","data","cb","packetNumber","_","noop","createDirectory","path","response","_createPacketPromise","opCode","Operations","MAKE_DIR","headerPayload","Buffer","from","write","res","_checkStatus","deleteDirectory","REMOVE_PATH_AND_CONTENTS","listDirectory","READ_DIR","DATA","_parseArray","content","openFile","mode","pathPayload","fileModePayload","alloc","writeUInt32LE","FILE_OPEN","concat","FILE_OPEN_RES","readUInt32LE","createWriteStream","filePath","opts","fileHandle","FileModes","w","AfcWritableFileStream","createReadStream","options","r","AfcReadableFileStream","closeFileHandle","FILE_CLOSE","writeFile","buffer","FILE_WRITE","readFile","length","FILE_READ","getFileInfo","GET_FILE_INFO","FileInfo","_parseObject","walkDir","dir","recursive","onPath","file","includes","relativePath","posix","join","fileInfo","isDirectory","STATUS","Error","operationCode","isEmpty","Errors","SUCCESS","errorCode","items","start","end","item","toString","push","currentKey","isNil","message","timeout","B","resolve","reject","setTimeout","st_size","st_blocks","st_nlink","st_ifmt","st_mtime","st_birthtime","size","parseInt","blocks","nlink","ifmt","mtimeMs","birthtimeMs","isFile","_default","default"],"sources":["../../../lib/afc/index.js"],"sourcesContent":["\nimport LengthBasedSplitter from '../util/transformer/length-based-splitter';\nimport { Operations, operationCode, Errors, errorCode, FileModes } from './protocol';\nimport { AfcWritableFileStream, AfcReadableFileStream } from './streams';\nimport AfcEncoder from './transformer/afcencoder';\nimport AfcDecoder from './transformer/afcdecoder';\nimport { MB } from '../constants';\nimport B from 'bluebird';\nimport path from 'path';\nimport _ from 'lodash';\nimport { BaseServiceSocket } from '../base-service';\n\n\nconst AFC_SERVICE_NAME = 'com.apple.afc';\nconst MAX_FRAME_SIZE = 1 * MB;\n\nconst NULL_DELIMITER_CODE = 0x00;\nconst IGNORED_PATHS = ['.', '..'];\n\nclass AfcService extends BaseServiceSocket {\n constructor (socketClient) {\n super(socketClient);\n\n this._splitter = new LengthBasedSplitter({\n readableStream: socketClient,\n littleEndian: true,\n maxFrameLength: MAX_FRAME_SIZE,\n lengthFieldOffset: 8,\n lengthFieldLength: 8,\n lengthAdjustment: -8,\n });\n this._decoder = new AfcDecoder();\n this._socketClient.pipe(this._splitter).pipe(this._decoder);\n\n this._encoder = new AfcEncoder();\n this._encoder.pipe(this._socketClient);\n this._assignClientFailureHandlers(this._encoder);\n\n this._responseCallbacks = {};\n\n this._packetNumber = 0;\n this._decoder.on('data', this._handleData.bind(this));\n }\n\n _handleData (data) {\n const cb = this._responseCallbacks[data.packetNumber] || _.noop;\n cb(data); // eslint-disable-line promise/prefer-await-to-callbacks\n }\n\n /**\n * Creates a directory relative to an already existing directory\n * @param {string} path The path in unix format\n */\n async createDirectory (path) {\n const {packetNumber, response} = this._createPacketPromise(`Create directory '${path}'`);\n\n const data = {\n opCode: Operations.MAKE_DIR,\n packetNumber,\n headerPayload: Buffer.from(path)\n };\n this._encoder.write(data);\n const res = await response;\n this._checkStatus(res);\n }\n\n /**\n * Deletes are directory completely even it has content inside. This is an implementation of 'rm -r {path}'\n * @param {string} path The path in unix format\n */\n async deleteDirectory (path) {\n const {packetNumber, response} = this._createPacketPromise(`Delete directory '${path}'`);\n\n const data = {\n opCode: Operations.REMOVE_PATH_AND_CONTENTS,\n packetNumber,\n headerPayload: Buffer.from(path)\n };\n this._encoder.write(data);\n const res = await response;\n this._checkStatus(res);\n }\n\n /**\n * Lists a directory's contents and returns them in an array\n * @param {string} path The path in unix format\n * @return {Array.<string>}\n */\n async listDirectory (path) {\n const {packetNumber, response} = this._createPacketPromise(`List directory '${path}'`);\n\n const data = {\n opCode: Operations.READ_DIR,\n packetNumber,\n headerPayload: Buffer.from(path)\n };\n this._encoder.write(data);\n const res = await response;\n if (res.opCode !== Operations.DATA) {\n this._checkStatus(res);\n }\n\n return this._parseArray(res.content);\n }\n\n /**\n * Opens a file and creates a file handle\n * @param {string} path The path in unix format\n * @param {number} mode The file mode that will be used\n * @return {number}\n */\n async openFile (path, mode) {\n const {packetNumber, response} = this._createPacketPromise(`Open file '${path}'`);\n\n const pathPayload = Buffer.from(path);\n const fileModePayload = Buffer.alloc(8);\n fileModePayload.writeUInt32LE(mode, 0);\n\n const data = {\n opCode: Operations.FILE_OPEN,\n packetNumber,\n headerPayload: Buffer.concat([fileModePayload, pathPayload])\n };\n this._encoder.write(data);\n const res = await response;\n if (res.opCode !== Operations.FILE_OPEN_RES) {\n this._checkStatus(res);\n }\n\n return res.headerPayload.readUInt32LE(0);\n }\n\n /**\n * Opens a file and creates a nodejs write stream\n * @param {string} filePath The path in unix format\n * @param {Object} opts The regular options that are passed to a Stream.Writable\n * @return {AfcWritableFileStream}\n */\n async createWriteStream (filePath, opts) {\n const fileHandle = await this.openFile(filePath, FileModes.w);\n return new AfcWritableFileStream(fileHandle, this, opts);\n }\n\n /**\n * Opens a file and creates a nodejs read stream\n * @param {string} filePath The path in unix format\n * @param {Object} opts The regular options that are passed to a Stream.Readable\n * @return {AfcReadableFileStream}\n */\n async createReadStream (filePath, options) {\n const fileHandle = await this.openFile(filePath, FileModes.r);\n return new AfcReadableFileStream(fileHandle, this, options);\n }\n\n /**\n * Closes the file handle\n * @param {number} fileHandle the file handle to be closed\n */\n async closeFileHandle (fileHandle) {\n const {packetNumber, response} = this._createPacketPromise(`Close file handle '${fileHandle}'`);\n\n const fileModePayload = Buffer.alloc(8);\n fileModePayload.writeUInt32LE(fileHandle, 0);\n\n const data = {\n opCode: Operations.FILE_CLOSE,\n packetNumber,\n headerPayload: fileModePayload\n };\n this._encoder.write(data);\n const res = await response;\n this._checkStatus(res);\n }\n\n /**\n * Writes the buffer into the given file handle\n * @param {number} fileHandle The file handle to be used\n * @param {Buffer} buffer The buffer that will be written\n */\n async writeFile (fileHandle, buffer) {\n const {packetNumber, response} = this._createPacketPromise(`Write to file handle '${fileHandle}'`);\n\n const headerPayload = Buffer.alloc(8);\n headerPayload.writeUInt32LE(fileHandle, 0);\n\n const data = {\n opCode: Operations.FILE_WRITE,\n packetNumber,\n headerPayload,\n content: buffer\n };\n this._encoder.write(data);\n const res = await response;\n this._checkStatus(res);\n }\n\n /**\n * Read a certain length of buffer from the file handle\n * @param {number} fileHandle The file handle to be used\n * @param {number} length The length that wants to be read from the file handle\n * @return {Buffer}\n */\n async readFile (fileHandle, length) {\n const {packetNumber, response} = this._createPacketPromise(`Read from file handle '${fileHandle}'`);\n\n const headerPayload = Buffer.alloc(16);\n headerPayload.writeUInt32LE(fileHandle, 0);\n headerPayload.writeUInt32LE(length, 8);\n\n const data = {\n opCode: Operations.FILE_READ,\n packetNumber,\n headerPayload\n };\n this._encoder.write(data);\n const res = await response;\n if (res.opCode !== Operations.DATA) {\n this._checkStatus(res);\n }\n return res.content;\n }\n\n /**\n * Get the file info of the given path\n * @param {string} path The path in unix format\n * @return {FileInfo}\n */\n async getFileInfo (path) {\n const {packetNumber, response} = this._createPacketPromise(`Get file info '${path}'`);\n\n const data = {\n opCode: Operations.GET_FILE_INFO,\n packetNumber,\n headerPayload: Buffer.from(path)\n };\n this._encoder.write(data);\n const res = await response;\n if (res.opCode !== Operations.DATA) {\n this._checkStatus(res);\n }\n return new FileInfo(this._parseObject(res.content));\n }\n\n /** The callback function which will be called during the directory walking\n * @name WalkDirCallback\n * @function\n * @param {string} itemPath The path of the file or folder\n * @param {boolean} isDirectory Shows if it is a directory or a file\n */\n\n /**\n *\n * @param {string} dir The path in unix format\n * @param {boolean} recursive Sets whether to follow sub directories or not\n * @param {WalkDirCallback} onPath The callback to be called when a new path is found\n */\n async walkDir (dir, recursive, onPath) {\n for (const file of await this.listDirectory(dir)) {\n if (IGNORED_PATHS.includes(file)) {\n continue;\n }\n const relativePath = path.posix.join(dir, file);\n const fileInfo = await this.getFileInfo(relativePath);\n const isDirectory = fileInfo.isDirectory();\n await onPath(relativePath, isDirectory);\n if (isDirectory && recursive) {\n await this.walkDir(relativePath, recursive, onPath);\n }\n }\n }\n\n _checkStatus (res) {\n if (res.opCode !== Operations.STATUS) {\n throw new Error(`Unexpected response ${operationCode(res.opCode)}`);\n }\n if (_.isEmpty(res.headerPayload)) {\n throw new Error('Header payload cannot be empty for a status response');\n }\n if (res.headerPayload[0] !== Errors.SUCCESS) {\n throw new Error(`Unexpected response ${errorCode(res.headerPayload[0])}`);\n }\n }\n\n _parseArray (buffer) {\n const items = [];\n let start = 0;\n for (let end = 0; end < buffer.length; end++) {\n if (buffer[end] !== NULL_DELIMITER_CODE) {\n continue;\n }\n const item = buffer.toString('utf8', start, end);\n items.push(item);\n // We skip the null delimeter\n start = end + 1;\n }\n return items;\n }\n\n _parseObject (buffer) {\n const items = {};\n let start = 0;\n let currentKey;\n for (let end = 0; end < buffer.length; end++) {\n if (buffer[end] !== NULL_DELIMITER_CODE) {\n continue;\n }\n const item = buffer.toString('utf8', start, end);\n if (_.isNil(currentKey)) {\n currentKey = item;\n } else {\n items[currentKey] = item;\n currentKey = null;\n }\n // We skip the null delimeter\n start = end + 1;\n }\n if (currentKey) {\n throw new Error(`Failed to parse correctly ${buffer}. Please investigate`);\n }\n return items;\n }\n\n _createPacketPromise (message, timeout = 10000) {\n const packetNumber = this._packetNumber++;\n const response = new B((resolve, reject) => {\n this._responseCallbacks[packetNumber] = resolve;\n setTimeout(function () {\n reject(new Error(`Could not finish the operation '${message}'. Failed to receive any data within the ${timeout}ms timeout`));\n }, timeout);\n });\n return {packetNumber, response};\n }\n}\n\nclass FileInfo {\n constructor ({st_size, st_blocks, st_nlink, st_ifmt, st_mtime, st_birthtime}) {\n this.size = parseInt(st_size, 10);\n this.blocks = parseInt(st_blocks, 10);\n this.nlink = parseInt(st_nlink, 10);\n this.ifmt = st_ifmt;\n // ns to ms\n this.mtimeMs = parseInt(st_mtime, 10) / 1000000;\n // ns to ms\n this.birthtimeMs = parseInt(st_birthtime, 10) / 1000000;\n }\n\n isDirectory () {\n return this.ifmt === 'S_IFDIR';\n }\n\n isFile () {\n return this.ifmt === 'S_IFREG';\n }\n}\n\nexport default AfcService;\nexport { AfcService, AFC_SERVICE_NAME };\n"],"mappings":";;;;;;;;AACA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,WAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,KAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,OAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,YAAA,GAAAT,OAAA;AAGA,MAAMU,gBAAgB,GAAG,eAAe;AAACC,OAAA,CAAAD,gBAAA,GAAAA,gBAAA;AACzC,MAAME,cAAc,GAAG,CAAC,GAAGC,aAAE;AAE7B,MAAMC,mBAAmB,GAAG,IAAI;AAChC,MAAMC,aAAa,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AAEjC,MAAMC,UAAU,SAASC,8BAAiB,CAAC;EACzCC,WAAWA,CAAEC,YAAY,EAAE;IACzB,KAAK,CAACA,YAAY,CAAC;IAEnB,IAAI,CAACC,SAAS,GAAG,IAAIC,4BAAmB,CAAC;MACvCC,cAAc,EAAEH,YAAY;MAC5BI,YAAY,EAAE,IAAI;MAClBC,cAAc,EAAEZ,cAAc;MAC9Ba,iBAAiB,EAAE,CAAC;MACpBC,iBAAiB,EAAE,CAAC;MACpBC,gBAAgB,EAAE,CAAC;IACrB,CAAC,CAAC;IACF,IAAI,CAACC,QAAQ,GAAG,IAAIC,mBAAU,EAAE;IAChC,IAAI,CAACC,aAAa,CAACC,IAAI,CAAC,IAAI,CAACX,SAAS,CAAC,CAACW,IAAI,CAAC,IAAI,CAACH,QAAQ,CAAC;IAE3D,IAAI,CAACI,QAAQ,GAAG,IAAIC,mBAAU,EAAE;IAChC,IAAI,CAACD,QAAQ,CAACD,IAAI,CAAC,IAAI,CAACD,aAAa,CAAC;IACtC,IAAI,CAACI,4BAA4B,CAAC,IAAI,CAACF,QAAQ,CAAC;IAEhD,IAAI,CAACG,kBAAkB,GAAG,CAAC,CAAC;IAE5B,IAAI,CAACC,aAAa,GAAG,CAAC;IACtB,IAAI,CAACR,QAAQ,CAACS,EAAE,CAAC,MAAM,EAAE,IAAI,CAACC,WAAW,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;EACvD;EAEAD,WAAWA,CAAEE,IAAI,EAAE;IACjB,MAAMC,EAAE,GAAG,IAAI,CAACN,kBAAkB,CAACK,IAAI,CAACE,YAAY,CAAC,IAAIC,eAAC,CAACC,IAAI;IAC/DH,EAAE,CAACD,IAAI,CAAC;EACV;EAMA,MAAMK,eAAeA,CAAEC,IAAI,EAAE;IAC3B,MAAM;MAACJ,YAAY;MAAEK;IAAQ,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAAE,qBAAoBF,IAAK,GAAE,CAAC;IAExF,MAAMN,IAAI,GAAG;MACXS,MAAM,EAAEC,oBAAU,CAACC,QAAQ;MAC3BT,YAAY;MACZU,aAAa,EAAEC,MAAM,CAACC,IAAI,CAACR,IAAI;IACjC,CAAC;IACD,IAAI,CAACd,QAAQ,CAACuB,KAAK,CAACf,IAAI,CAAC;IACzB,MAAMgB,GAAG,GAAG,MAAMT,QAAQ;IAC1B,IAAI,CAACU,YAAY,CAACD,GAAG,CAAC;EACxB;EAMA,MAAME,eAAeA,CAAEZ,IAAI,EAAE;IAC3B,MAAM;MAACJ,YAAY;MAAEK;IAAQ,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAAE,qBAAoBF,IAAK,GAAE,CAAC;IAExF,MAAMN,IAAI,GAAG;MACXS,MAAM,EAAEC,oBAAU,CAACS,wBAAwB;MAC3CjB,YAAY;MACZU,aAAa,EAAEC,MAAM,CAACC,IAAI,CAACR,IAAI;IACjC,CAAC;IACD,IAAI,CAACd,QAAQ,CAACuB,KAAK,CAACf,IAAI,CAAC;IACzB,MAAMgB,GAAG,GAAG,MAAMT,QAAQ;IAC1B,IAAI,CAACU,YAAY,CAACD,GAAG,CAAC;EACxB;EAOA,MAAMI,aAAaA,CAAEd,IAAI,EAAE;IACzB,MAAM;MAACJ,YAAY;MAAEK;IAAQ,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAAE,mBAAkBF,IAAK,GAAE,CAAC;IAEtF,MAAMN,IAAI,GAAG;MACXS,MAAM,EAAEC,oBAAU,CAACW,QAAQ;MAC3BnB,YAAY;MACZU,aAAa,EAAEC,MAAM,CAACC,IAAI,CAACR,IAAI;IACjC,CAAC;IACD,IAAI,CAACd,QAAQ,CAACuB,KAAK,CAACf,IAAI,CAAC;IACzB,MAAMgB,GAAG,GAAG,MAAMT,QAAQ;IAC1B,IAAIS,GAAG,CAACP,MAAM,KAAKC,oBAAU,CAACY,IAAI,EAAE;MAClC,IAAI,CAACL,YAAY,CAACD,GAAG,CAAC;IACxB;IAEA,OAAO,IAAI,CAACO,WAAW,CAACP,GAAG,CAACQ,OAAO,CAAC;EACtC;EAQA,MAAMC,QAAQA,CAAEnB,IAAI,EAAEoB,IAAI,EAAE;IAC1B,MAAM;MAACxB,YAAY;MAAEK;IAAQ,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAAE,cAAaF,IAAK,GAAE,CAAC;IAEjF,MAAMqB,WAAW,GAAGd,MAAM,CAACC,IAAI,CAACR,IAAI,CAAC;IACrC,MAAMsB,eAAe,GAAGf,MAAM,CAACgB,KAAK,CAAC,CAAC,CAAC;IACvCD,eAAe,CAACE,aAAa,CAACJ,IAAI,EAAE,CAAC,CAAC;IAEtC,MAAM1B,IAAI,GAAG;MACXS,MAAM,EAAEC,oBAAU,CAACqB,SAAS;MAC5B7B,YAAY;MACZU,aAAa,EAAEC,MAAM,CAACmB,MAAM,CAAC,CAACJ,eAAe,EAAED,WAAW,CAAC;IAC7D,CAAC;IACD,IAAI,CAACnC,QAAQ,CAACuB,KAAK,CAACf,IAAI,CAAC;IACzB,MAAMgB,GAAG,GAAG,MAAMT,QAAQ;IAC1B,IAAIS,GAAG,CAACP,MAAM,KAAKC,oBAAU,CAACuB,aAAa,EAAE;MAC3C,IAAI,CAAChB,YAAY,CAACD,GAAG,CAAC;IACxB;IAEA,OAAOA,GAAG,CAACJ,aAAa,CAACsB,YAAY,CAAC,CAAC,CAAC;EAC1C;EAQA,MAAMC,iBAAiBA,CAAEC,QAAQ,EAAEC,IAAI,EAAE;IACvC,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACb,QAAQ,CAACW,QAAQ,EAAEG,mBAAS,CAACC,CAAC,CAAC;IAC7D,OAAO,IAAIC,8BAAqB,CAACH,UAAU,EAAE,IAAI,EAAED,IAAI,CAAC;EAC1D;EAQA,MAAMK,gBAAgBA,CAAEN,QAAQ,EAAEO,OAAO,EAAE;IACzC,MAAML,UAAU,GAAG,MAAM,IAAI,CAACb,QAAQ,CAACW,QAAQ,EAAEG,mBAAS,CAACK,CAAC,CAAC;IAC7D,OAAO,IAAIC,8BAAqB,CAACP,UAAU,EAAE,IAAI,EAAEK,OAAO,CAAC;EAC7D;EAMA,MAAMG,eAAeA,CAAER,UAAU,EAAE;IACjC,MAAM;MAACpC,YAAY;MAAEK;IAAQ,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAAE,sBAAqB8B,UAAW,GAAE,CAAC;IAE/F,MAAMV,eAAe,GAAGf,MAAM,CAACgB,KAAK,CAAC,CAAC,CAAC;IACvCD,eAAe,CAACE,aAAa,CAACQ,UAAU,EAAE,CAAC,CAAC;IAE5C,MAAMtC,IAAI,GAAG;MACXS,MAAM,EAAEC,oBAAU,CAACqC,UAAU;MAC7B7C,YAAY;MACZU,aAAa,EAAEgB;IACjB,CAAC;IACD,IAAI,CAACpC,QAAQ,CAACuB,KAAK,CAACf,IAAI,CAAC;IACzB,MAAMgB,GAAG,GAAG,MAAMT,QAAQ;IAC1B,IAAI,CAACU,YAAY,CAACD,GAAG,CAAC;EACxB;EAOA,MAAMgC,SAASA,CAAEV,UAAU,EAAEW,MAAM,EAAE;IACnC,MAAM;MAAC/C,YAAY;MAAEK;IAAQ,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAAE,yBAAwB8B,UAAW,GAAE,CAAC;IAElG,MAAM1B,aAAa,GAAGC,MAAM,CAACgB,KAAK,CAAC,CAAC,CAAC;IACrCjB,aAAa,CAACkB,aAAa,CAACQ,UAAU,EAAE,CAAC,CAAC;IAE1C,MAAMtC,IAAI,GAAG;MACXS,MAAM,EAAEC,oBAAU,CAACwC,UAAU;MAC7BhD,YAAY;MACZU,aAAa;MACbY,OAAO,EAAEyB;IACX,CAAC;IACD,IAAI,CAACzD,QAAQ,CAACuB,KAAK,CAACf,IAAI,CAAC;IACzB,MAAMgB,GAAG,GAAG,MAAMT,QAAQ;IAC1B,IAAI,CAACU,YAAY,CAACD,GAAG,CAAC;EACxB;EAQA,MAAMmC,QAAQA,CAAEb,UAAU,EAAEc,MAAM,EAAE;IAClC,MAAM;MAAClD,YAAY;MAAEK;IAAQ,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAAE,0BAAyB8B,UAAW,GAAE,CAAC;IAEnG,MAAM1B,aAAa,GAAGC,MAAM,CAACgB,KAAK,CAAC,EAAE,CAAC;IACtCjB,aAAa,CAACkB,aAAa,CAACQ,UAAU,EAAE,CAAC,CAAC;IAC1C1B,aAAa,CAACkB,aAAa,CAACsB,MAAM,EAAE,CAAC,CAAC;IAEtC,MAAMpD,IAAI,GAAG;MACXS,MAAM,EAAEC,oBAAU,CAAC2C,SAAS;MAC5BnD,YAAY;MACZU;IACF,CAAC;IACD,IAAI,CAACpB,QAAQ,CAACuB,KAAK,CAACf,IAAI,CAAC;IACzB,MAAMgB,GAAG,GAAG,MAAMT,QAAQ;IAC1B,IAAIS,GAAG,CAACP,MAAM,KAAKC,oBAAU,CAACY,IAAI,EAAE;MAClC,IAAI,CAACL,YAAY,CAACD,GAAG,CAAC;IACxB;IACA,OAAOA,GAAG,CAACQ,OAAO;EACpB;EAOA,MAAM8B,WAAWA,CAAEhD,IAAI,EAAE;IACvB,MAAM;MAACJ,YAAY;MAAEK;IAAQ,CAAC,GAAG,IAAI,CAACC,oBAAoB,CAAE,kBAAiBF,IAAK,GAAE,CAAC;IAErF,MAAMN,IAAI,GAAG;MACXS,MAAM,EAAEC,oBAAU,CAAC6C,aAAa;MAChCrD,YAAY;MACZU,aAAa,EAAEC,MAAM,CAACC,IAAI,CAACR,IAAI;IACjC,CAAC;IACD,IAAI,CAACd,QAAQ,CAACuB,KAAK,CAACf,IAAI,CAAC;IACzB,MAAMgB,GAAG,GAAG,MAAMT,QAAQ;IAC1B,IAAIS,GAAG,CAACP,MAAM,KAAKC,oBAAU,CAACY,IAAI,EAAE;MAClC,IAAI,CAACL,YAAY,CAACD,GAAG,CAAC;IACxB;IACA,OAAO,IAAIwC,QAAQ,CAAC,IAAI,CAACC,YAAY,CAACzC,GAAG,CAACQ,OAAO,CAAC,CAAC;EACrD;EAeA,MAAMkC,OAAOA,CAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAE;IACrC,KAAK,MAAMC,IAAI,IAAI,MAAM,IAAI,CAAC1C,aAAa,CAACuC,GAAG,CAAC,EAAE;MAChD,IAAIpF,aAAa,CAACwF,QAAQ,CAACD,IAAI,CAAC,EAAE;QAChC;MACF;MACA,MAAME,YAAY,GAAG1D,aAAI,CAAC2D,KAAK,CAACC,IAAI,CAACP,GAAG,EAAEG,IAAI,CAAC;MAC/C,MAAMK,QAAQ,GAAG,MAAM,IAAI,CAACb,WAAW,CAACU,YAAY,CAAC;MACrD,MAAMI,WAAW,GAAGD,QAAQ,CAACC,WAAW,EAAE;MAC1C,MAAMP,MAAM,CAACG,YAAY,EAAEI,WAAW,CAAC;MACvC,IAAIA,WAAW,IAAIR,SAAS,EAAE;QAC5B,MAAM,IAAI,CAACF,OAAO,CAACM,YAAY,EAAEJ,SAAS,EAAEC,MAAM,CAAC;MACrD;IACF;EACF;EAEA5C,YAAYA,CAAED,GAAG,EAAE;IACjB,IAAIA,GAAG,CAACP,MAAM,KAAKC,oBAAU,CAAC2D,MAAM,EAAE;MACpC,MAAM,IAAIC,KAAK,CAAE,uBAAsB,IAAAC,uBAAa,EAACvD,GAAG,CAACP,MAAM,CAAE,EAAC,CAAC;IACrE;IACA,IAAIN,eAAC,CAACqE,OAAO,CAACxD,GAAG,CAACJ,aAAa,CAAC,EAAE;MAChC,MAAM,IAAI0D,KAAK,CAAC,sDAAsD,CAAC;IACzE;IACA,IAAItD,GAAG,CAACJ,aAAa,CAAC,CAAC,CAAC,KAAK6D,gBAAM,CAACC,OAAO,EAAE;MAC3C,MAAM,IAAIJ,KAAK,CAAE,uBAAsB,IAAAK,mBAAS,EAAC3D,GAAG,CAACJ,aAAa,CAAC,CAAC,CAAC,CAAE,EAAC,CAAC;IAC3E;EACF;EAEAW,WAAWA,CAAE0B,MAAM,EAAE;IACnB,MAAM2B,KAAK,GAAG,EAAE;IAChB,IAAIC,KAAK,GAAG,CAAC;IACb,KAAK,IAAIC,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG7B,MAAM,CAACG,MAAM,EAAE0B,GAAG,EAAE,EAAE;MAC5C,IAAI7B,MAAM,CAAC6B,GAAG,CAAC,KAAKxG,mBAAmB,EAAE;QACvC;MACF;MACA,MAAMyG,IAAI,GAAG9B,MAAM,CAAC+B,QAAQ,CAAC,MAAM,EAAEH,KAAK,EAAEC,GAAG,CAAC;MAChDF,KAAK,CAACK,IAAI,CAACF,IAAI,CAAC;MAEhBF,KAAK,GAAGC,GAAG,GAAG,CAAC;IACjB;IACA,OAAOF,KAAK;EACd;EAEAnB,YAAYA,CAAER,MAAM,EAAE;IACpB,MAAM2B,KAAK,GAAG,CAAC,CAAC;IAChB,IAAIC,KAAK,GAAG,CAAC;IACb,IAAIK,UAAU;IACd,KAAK,IAAIJ,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG7B,MAAM,CAACG,MAAM,EAAE0B,GAAG,EAAE,EAAE;MAC5C,IAAI7B,MAAM,CAAC6B,GAAG,CAAC,KAAKxG,mBAAmB,EAAE;QACvC;MACF;MACA,MAAMyG,IAAI,GAAG9B,MAAM,CAAC+B,QAAQ,CAAC,MAAM,EAAEH,KAAK,EAAEC,GAAG,CAAC;MAChD,IAAI3E,eAAC,CAACgF,KAAK,CAACD,UAAU,CAAC,EAAE;QACvBA,UAAU,GAAGH,IAAI;MACnB,CAAC,MAAM;QACLH,KAAK,CAACM,UAAU,CAAC,GAAGH,IAAI;QACxBG,UAAU,GAAG,IAAI;MACnB;MAEAL,KAAK,GAAGC,GAAG,GAAG,CAAC;IACjB;IACA,IAAII,UAAU,EAAE;MACd,MAAM,IAAIZ,KAAK,CAAE,6BAA4BrB,MAAO,sBAAqB,CAAC;IAC5E;IACA,OAAO2B,KAAK;EACd;EAEApE,oBAAoBA,CAAE4E,OAAO,EAAEC,OAAO,GAAG,KAAK,EAAE;IAC9C,MAAMnF,YAAY,GAAG,IAAI,CAACN,aAAa,EAAE;IACzC,MAAMW,QAAQ,GAAG,IAAI+E,iBAAC,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MAC1C,IAAI,CAAC7F,kBAAkB,CAACO,YAAY,CAAC,GAAGqF,OAAO;MAC/CE,UAAU,CAAC,YAAY;QACrBD,MAAM,CAAC,IAAIlB,KAAK,CAAE,mCAAkCc,OAAQ,4CAA2CC,OAAQ,YAAW,CAAC,CAAC;MAC9H,CAAC,EAAEA,OAAO,CAAC;IACb,CAAC,CAAC;IACF,OAAO;MAACnF,YAAY;MAAEK;IAAQ,CAAC;EACjC;AACF;AAACpC,OAAA,CAAAK,UAAA,GAAAA,UAAA;AAED,MAAMgF,QAAQ,CAAC;EACb9E,WAAWA,CAAE;IAACgH,OAAO;IAAEC,SAAS;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,QAAQ;IAAEC;EAAY,CAAC,EAAE;IAC5E,IAAI,CAACC,IAAI,GAAGC,QAAQ,CAACP,OAAO,EAAE,EAAE,CAAC;IACjC,IAAI,CAACQ,MAAM,GAAGD,QAAQ,CAACN,SAAS,EAAE,EAAE,CAAC;IACrC,IAAI,CAACQ,KAAK,GAAGF,QAAQ,CAACL,QAAQ,EAAE,EAAE,CAAC;IACnC,IAAI,CAACQ,IAAI,GAAGP,OAAO;IAEnB,IAAI,CAACQ,OAAO,GAAGJ,QAAQ,CAACH,QAAQ,EAAE,EAAE,CAAC,GAAG,OAAO;IAE/C,IAAI,CAACQ,WAAW,GAAGL,QAAQ,CAACF,YAAY,EAAE,EAAE,CAAC,GAAG,OAAO;EACzD;EAEA3B,WAAWA,CAAA,EAAI;IACb,OAAO,IAAI,CAACgC,IAAI,KAAK,SAAS;EAChC;EAEAG,MAAMA,CAAA,EAAI;IACR,OAAO,IAAI,CAACH,IAAI,KAAK,SAAS;EAChC;AACF;AAAC,IAAAI,QAAA,GAEchI,UAAU;AAAAL,OAAA,CAAAsI,OAAA,GAAAD,QAAA"}
|
|
@@ -101,4 +101,4 @@ const FileModes = {
|
|
|
101
101
|
'a+': 0x00000006
|
|
102
102
|
};
|
|
103
103
|
exports.FileModes = FileModes;
|
|
104
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJNQUdJQ19OVU1CRVIiLCJCdWZmZXIiLCJmcm9tIiwiZXhwb3J0cyIsIkFGQ19QQUNLRVRfSEVBREVSX1NJWkUiLCJPcGVyYXRpb25zIiwiSU5WQUxJRCIsIlNUQVRVUyIsIkRBVEEiLCJSRUFEX0RJUiIsIlJFQURfRklMRSIsIldSSVRFX0ZJTEUiLCJXUklURV9QQVJUIiwiVFJVTkNBVEUiLCJSRU1PVkVfUEFUSCIsIk1BS0VfRElSIiwiR0VUX0ZJTEVfSU5GTyIsIkdFVF9ERVZJTkZPIiwiV1JJVEVfRklMRV9BVE9NIiwiRklMRV9PUEVOIiwiRklMRV9PUEVOX1JFUyIsIkZJTEVfUkVBRCIsIkZJTEVfV1JJVEUiLCJGSUxFX1NFRUsiLCJGSUxFX1RFTEwiLCJGSUxFX1RFTExfUkVTIiwiRklMRV9DTE9TRSIsIkZJTEVfU0VUX1NJWkUiLCJHRVRfQ09OX0lORk8iLCJTRVRfQ09OX09QVElPTlMiLCJSRU5BTUVfUEFUSCIsIlNFVF9GU19CUyIsIlNFVF9TT0NLRVRfQlMiLCJGSUxFX0xPQ0siLCJNQUtFX0xJTksiLCJHRVRfRklMRV9IQVNIIiwiU0VUX0ZJTEVfTU9EX1RJTUUiLCJHRVRfRklMRV9IQVNIX1JBTkdFIiwiRklMRV9TRVRfSU1NVVRBQkxFX0hJTlQiLCJHRVRfU0laRV9PRl9QQVRIX0NPTlRFTlRTIiwiUkVNT1ZFX1BBVEhfQU5EX0NPTlRFTlRTIiwiRElSX09QRU4iLCJESVJfT1BFTl9SRVNVTFQiLCJESVJfUkVBRCIsIkRJUl9DTE9TRSIsIkZJTEVfUkVBRF9PRkZTRVQiLCJGSUxFX1dSSVRFX09GRlNFVCIsIk9wZXJhdGlvbnNfQ29kZSIsIl8iLCJpbnZlcnQiLCJvcGVyYXRpb25Db2RlIiwiY29kZSIsIkVycm9ycyIsIlNVQ0NFU1MiLCJVTktOT1dOIiwiSU5WQUxJRF9IRUFERVIiLCJOT19SRVNPVVJDRVMiLCJSRUFEIiwiV1JJVEUiLCJVTktOT1dOX1BBQ0tFVF9UWVBFIiwiSU5WQUxJRF9BUkdVTUVOVCIsIk9CSkVDVF9OT1RfRk9VTkQiLCJPQkpFQ1RfSVNfRElSRUNUT1JZIiwiUEVSTUlTU0lPTl9ERU5JRUQiLCJOT1RfQ09OTkVDVEVEIiwiVElNRU9VVCIsIk9WRVJSVU4iLCJFT0YiLCJVTlNVUFBPUlRFRCIsIk9CSkVDVF9FWElTVFMiLCJPQkpFQ1RfQlVTWSIsIk9OX1NQQUNFX0xFRlQiLCJXT1VMRF9CTE9DSyIsIklPIiwiSU5URVJSVVBURUQiLCJJTl9QUk9HUkVTUyIsIklOVEVSTkFMIiwiRXJyb3JzX0NvZGUiLCJlcnJvckNvZGUiLCJGaWxlTW9kZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvYWZjL3Byb3RvY29sLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IE1BR0lDX05VTUJFUiA9IEJ1ZmZlci5mcm9tKCdDRkE2TFBBQScpO1xuXG5jb25zdCBBRkNfUEFDS0VUX0hFQURFUl9TSVpFID0gNDA7XG5cbmNvbnN0IE9wZXJhdGlvbnMgPSB7XG4gIElOVkFMSUQ6IDB4MDAwMDAwMDAsXHQvLyBJbnZhbGlkXG4gIFNUQVRVUzogMHgwMDAwMDAwMSxcdC8vIFN0YXR1c1xuICBEQVRBOiAweDAwMDAwMDAyLFx0Ly8gRGF0YVxuICBSRUFEX0RJUjogMHgwMDAwMDAwMyxcdC8vIFJlYWREaXJcbiAgUkVBRF9GSUxFOiAweDAwMDAwMDA0LFx0Ly8gUmVhZEZpbGVcbiAgV1JJVEVfRklMRTogMHgwMDAwMDAwNSxcdC8vIFdyaXRlRmlsZVxuICBXUklURV9QQVJUOiAweDAwMDAwMDA2LFx0Ly8gV3JpdGVQYXJ0XG4gIFRSVU5DQVRFOiAweDAwMDAwMDA3LFx0Ly8gVHJ1bmNhdGVGaWxlXG4gIFJFTU9WRV9QQVRIOiAweDAwMDAwMDA4LFx0Ly8gUmVtb3ZlUGF0aFxuICBNQUtFX0RJUjogMHgwMDAwMDAwOSxcdC8vIE1ha2VEaXJcbiAgR0VUX0ZJTEVfSU5GTzogMHgwMDAwMDAwQSxcdC8vIEdldEZpbGVJbmZvXG4gIEdFVF9ERVZJTkZPOiAweDAwMDAwMDBCLFx0Ly8gR2V0RGV2aWNlSW5mb1xuICBXUklURV9GSUxFX0FUT006IDB4MDAwMDAwMEMsXHQvLyBXcml0ZUZpbGVBdG9taWMgKHRtcCBmaWxlK3JlbmFtZSlcbiAgRklMRV9PUEVOOiAweDAwMDAwMDBELFx0Ly8gRmlsZVJlZk9wZW5cbiAgRklMRV9PUEVOX1JFUzogMHgwMDAwMDAwRSxcdC8vIEZpbGVSZWZPcGVuUmVzdWx0XG4gIEZJTEVfUkVBRDogMHgwMDAwMDAwRixcdC8vIEZpbGVSZWZSZWFkXG4gIEZJTEVfV1JJVEU6IDB4MDAwMDAwMTAsXHQvLyBGaWxlUmVmV3JpdGVcbiAgRklMRV9TRUVLOiAweDAwMDAwMDExLFx0Ly8gRmlsZVJlZlNlZWtcbiAgRklMRV9URUxMOiAweDAwMDAwMDEyLFx0Ly8gRmlsZVJlZlRlbGxcbiAgRklMRV9URUxMX1JFUzogMHgwMDAwMDAxMyxcdC8vIEZpbGVSZWZUZWxsUmVzdWx0XG4gIEZJTEVfQ0xPU0U6IDB4MDAwMDAwMTQsXHQvLyBGaWxlUmVmQ2xvc2VcbiAgRklMRV9TRVRfU0laRTogMHgwMDAwMDAxNSxcdC8vIEZpbGVSZWZTZXRGaWxlU2l6ZSAoZnRydW5jYXRlKVxuICBHRVRfQ09OX0lORk86IDB4MDAwMDAwMTYsXHQvLyBHZXRDb25uZWN0aW9uSW5mb1xuICBTRVRfQ09OX09QVElPTlM6IDB4MDAwMDAwMTcsXHQvLyBTZXRDb25uZWN0aW9uT3B0aW9uc1xuICBSRU5BTUVfUEFUSDogMHgwMDAwMDAxOCxcdC8vIFJlbmFtZVBhdGhcbiAgU0VUX0ZTX0JTOiAweDAwMDAwMDE5LFx0Ly8gU2V0RlNCbG9ja1NpemUgKDB4ODAwMDAwKVxuICBTRVRfU09DS0VUX0JTOiAweDAwMDAwMDFBLFx0Ly8gU2V0U29ja2V0QmxvY2tTaXplICgweDgwMDAwMClcbiAgRklMRV9MT0NLOiAweDAwMDAwMDFCLFx0Ly8gRmlsZVJlZkxvY2tcbiAgTUFLRV9MSU5LOiAweDAwMDAwMDFDLFx0Ly8gTWFrZUxpbmtcbiAgR0VUX0ZJTEVfSEFTSDogMHgwMDAwMDAxRCxcdC8vIEdldEZpbGVIYXNoXG4gIFNFVF9GSUxFX01PRF9USU1FOiAweDAwMDAwMDFFLFx0Ly8gU2V0TW9kVGltZVxuICBHRVRfRklMRV9IQVNIX1JBTkdFOiAweDAwMDAwMDFGLFx0Ly8gR2V0RmlsZUhhc2hXaXRoUmFuZ2VcbiAgRklMRV9TRVRfSU1NVVRBQkxFX0hJTlQ6IDB4MDAwMDAwMjAsXHQvLyBGaWxlUmVmU2V0SW1tdXRhYmxlSGludFxuICBHRVRfU0laRV9PRl9QQVRIX0NPTlRFTlRTOiAweDAwMDAwMDIxLFx0Ly8gR2V0U2l6ZU9mUGF0aENvbnRlbnRzXG4gIFJFTU9WRV9QQVRIX0FORF9DT05URU5UUzogMHgwMDAwMDAyMixcdC8vIFJlbW92ZVBhdGhBbmRDb250ZW50c1xuICBESVJfT1BFTjogMHgwMDAwMDAyMyxcdC8vIERpcmVjdG9yeUVudW1lcmF0b3JSZWZPcGVuXG4gIERJUl9PUEVOX1JFU1VMVDogMHgwMDAwMDAyNCxcdC8vIERpcmVjdG9yeUVudW1lcmF0b3JSZWZPcGVuUmVzdWx0XG4gIERJUl9SRUFEOiAweDAwMDAwMDI1LFx0Ly8gRGlyZWN0b3J5RW51bWVyYXRvclJlZlJlYWRcbiAgRElSX0NMT1NFOiAweDAwMDAwMDI2LFx0Ly8gRGlyZWN0b3J5RW51bWVyYXRvclJlZkNsb3NlXG4gIEZJTEVfUkVBRF9PRkZTRVQ6IDB4MDAwMDAwMjcsXHQvLyBGaWxlUmVmUmVhZFdpdGhPZmZzZXRcbiAgRklMRV9XUklURV9PRkZTRVQ6XHQweDAwMDAwMDI4XHQvLyBGaWxlUmVmV3JpdGVXaXRoT2Zmc2V0XG59O1xuXG5jb25zdCBPcGVyYXRpb25zX0NvZGUgPSBfLmludmVydChPcGVyYXRpb25zKTtcblxuZnVuY3Rpb24gb3BlcmF0aW9uQ29kZSAoY29kZSkge1xuICByZXR1cm4gT3BlcmF0aW9uc19Db2RlW2NvZGVdO1xufVxuXG5jb25zdCBFcnJvcnMgPSB7XG4gIFNVQ0NFU1M6IDAsXG4gIFVOS05PV046IDEsXG4gIElOVkFMSURfSEVBREVSOiAyLFxuICBOT19SRVNPVVJDRVM6IDMsXG4gIFJFQUQ6IDQsXG4gIFdSSVRFOiA1LFxuICBVTktOT1dOX1BBQ0tFVF9UWVBFOiA2LFxuICBJTlZBTElEX0FSR1VNRU5UOiA3LFxuICBPQkpFQ1RfTk9UX0ZPVU5EOiA4LFxuICBPQkpFQ1RfSVNfRElSRUNUT1JZOiA5LFxuICBQRVJNSVNTSU9OX0RFTklFRDogMTAsXG4gIE5PVF9DT05ORUNURUQ6IDExLFxuICBUSU1FT1VUOiAxMixcbiAgT1ZFUlJVTjogMTMsXG4gIEVPRjogMTQsXG4gIFVOU1VQUE9SVEVEOiAxNSxcbiAgT0JKRUNUX0VYSVNUUzogMTYsXG4gIE9CSkVDVF9CVVNZOiAxNyxcbiAgT05fU1BBQ0VfTEVGVDogMTgsXG4gIFdPVUxEX0JMT0NLOiAxOSxcbiAgSU86IDIwLFxuICBJTlRFUlJVUFRFRDogMjEsXG4gIElOX1BST0dSRVNTOiAyMixcbiAgSU5URVJOQUw6IDIzLFxufTtcblxuY29uc3QgRXJyb3JzX0NvZGUgPSBfLmludmVydChFcnJvcnMpO1xuXG5mdW5jdGlvbiBlcnJvckNvZGUgKGNvZGUpIHtcbiAgcmV0dXJuIEVycm9yc19Db2RlW2NvZGVdO1xufVxuXG5cbmNvbnN0IEZpbGVNb2RlcyA9IHtcbiAgJ3InOiAweDAwMDAwMDAxLCAvLyBPX1JET05MWVxuICAncisnOiAweDAwMDAwMDAyLCAvLyBPX1JEV1IgICB8IE9fQ1JFQVRcbiAgJ3cnOiAweDAwMDAwMDAzLCAvLyBPX1dST05MWSB8IE9fQ1JFQVQgIHwgT19UUlVOQ1xuICAndysnOiAweDAwMDAwMDA0LCAvLyBPX1JEV1IgICB8IE9fQ1JFQVQgIHwgT19UUlVOQ1xuICAnYSc6IDB4MDAwMDAwMDUsIC8vIE9fV1JPTkxZIHwgT19BUFBFTkQgfCBPX0NSRUFUXG4gICdhKyc6IDB4MDAwMDAwMDYsIC8vIE9fUkRXUiAgIHwgT19BUFBFTkQgfCBPX0NSRUFUXG59O1xuXG5leHBvcnQge1xuICBNQUdJQ19OVU1CRVIsIEFGQ19QQUNLRVRfSEVBREVSX1NJWkUsXG4gIE9wZXJhdGlvbnMsIG9wZXJhdGlvbkNvZGUsXG4gIEVycm9ycywgZXJyb3JDb2RlLCBGaWxlTW9kZXMsXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsTUFBTUMsWUFBWSxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxVQUFVLENBQUM7QUFBQ0MsT0FBQSxDQUFBSCxZQUFBLEdBQUFBLFlBQUE7QUFFN0MsTUFBTUksc0JBQXNCLEdBQUcsRUFBRTtBQUFDRCxPQUFBLENBQUFDLHNCQUFBLEdBQUFBLHNCQUFBO0FBRWxDLE1BQU1DLFVBQVUsR0FBRztFQUNqQkMsT0FBTyxFQUFFLFVBQVU7RUFDbkJDLE1BQU0sRUFBRSxVQUFVO0VBQ2xCQyxJQUFJLEVBQUUsVUFBVTtFQUNoQkMsUUFBUSxFQUFFLFVBQVU7RUFDcEJDLFNBQVMsRUFBRSxVQUFVO0VBQ3JCQyxVQUFVLEVBQUUsVUFBVTtFQUN0QkMsVUFBVSxFQUFFLFVBQVU7RUFDdEJDLFFBQVEsRUFBRSxVQUFVO0VBQ3BCQyxXQUFXLEVBQUUsVUFBVTtFQUN2QkMsUUFBUSxFQUFFLFVBQVU7RUFDcEJDLGFBQWEsRUFBRSxVQUFVO0VBQ3pCQyxXQUFXLEVBQUUsVUFBVTtFQUN2QkMsZUFBZSxFQUFFLFVBQVU7RUFDM0JDLFNBQVMsRUFBRSxVQUFVO0VBQ3JCQyxhQUFhLEVBQUUsVUFBVTtFQUN6QkMsU0FBUyxFQUFFLFVBQVU7RUFDckJDLFVBQVUsRUFBRSxVQUFVO0VBQ3RCQyxTQUFTLEVBQUUsVUFBVTtFQUNyQkMsU0FBUyxFQUFFLFVBQVU7RUFDckJDLGFBQWEsRUFBRSxVQUFVO0VBQ3pCQyxVQUFVLEVBQUUsVUFBVTtFQUN0QkMsYUFBYSxFQUFFLFVBQVU7RUFDekJDLFlBQVksRUFBRSxVQUFVO0VBQ3hCQyxlQUFlLEVBQUUsVUFBVTtFQUMzQkMsV0FBVyxFQUFFLFVBQVU7RUFDdkJDLFNBQVMsRUFBRSxVQUFVO0VBQ3JCQyxhQUFhLEVBQUUsVUFBVTtFQUN6QkMsU0FBUyxFQUFFLFVBQVU7RUFDckJDLFNBQVMsRUFBRSxVQUFVO0VBQ3JCQyxhQUFhLEVBQUUsVUFBVTtFQUN6QkMsaUJBQWlCLEVBQUUsVUFBVTtFQUM3QkMsbUJBQW1CLEVBQUUsVUFBVTtFQUMvQkMsdUJBQXVCLEVBQUUsVUFBVTtFQUNuQ0MseUJBQXlCLEVBQUUsVUFBVTtFQUNyQ0Msd0JBQXdCLEVBQUUsVUFBVTtFQUNwQ0MsUUFBUSxFQUFFLFVBQVU7RUFDcEJDLGVBQWUsRUFBRSxVQUFVO0VBQzNCQyxRQUFRLEVBQUUsVUFBVTtFQUNwQkMsU0FBUyxFQUFFLFVBQVU7RUFDckJDLGdCQUFnQixFQUFFLFVBQVU7RUFDNUJDLGlCQUFpQixFQUFFO0FBQ3JCLENBQUM7QUFBQzNDLE9BQUEsQ0FBQUUsVUFBQSxHQUFBQSxVQUFBO0FBRUYsTUFBTTBDLGVBQWUsR0FBR0MsZUFBQyxDQUFDQyxNQUFNLENBQUM1QyxVQUFVLENBQUM7QUFFNUMsU0FBUzZDLGFBQWFBLENBQUVDLElBQUksRUFBRTtFQUM1QixPQUFPSixlQUFlLENBQUNJLElBQUksQ0FBQztBQUM5QjtBQUVBLE1BQU1DLE1BQU0sR0FBRztFQUNiQyxPQUFPLEVBQUUsQ0FBQztFQUNWQyxPQUFPLEVBQUUsQ0FBQztFQUNWQyxjQUFjLEVBQUUsQ0FBQztFQUNqQkMsWUFBWSxFQUFFLENBQUM7RUFDZkMsSUFBSSxFQUFFLENBQUM7RUFDUEMsS0FBSyxFQUFFLENBQUM7RUFDUkMsbUJBQW1CLEVBQUUsQ0FBQztFQUN0QkMsZ0JBQWdCLEVBQUUsQ0FBQztFQUNuQkMsZ0JBQWdCLEVBQUUsQ0FBQztFQUNuQkMsbUJBQW1CLEVBQUUsQ0FBQztFQUN0QkMsaUJBQWlCLEVBQUUsRUFBRTtFQUNyQkMsYUFBYSxFQUFFLEVBQUU7RUFDakJDLE9BQU8sRUFBRSxFQUFFO0VBQ1hDLE9BQU8sRUFBRSxFQUFFO0VBQ1hDLEdBQUcsRUFBRSxFQUFFO0VBQ1BDLFdBQVcsRUFBRSxFQUFFO0VBQ2ZDLGFBQWEsRUFBRSxFQUFFO0VBQ2pCQyxXQUFXLEVBQUUsRUFBRTtFQUNmQyxhQUFhLEVBQUUsRUFBRTtFQUNqQkMsV0FBVyxFQUFFLEVBQUU7RUFDZkMsRUFBRSxFQUFFLEVBQUU7RUFDTkMsV0FBVyxFQUFFLEVBQUU7RUFDZkMsV0FBVyxFQUFFLEVBQUU7RUFDZkMsUUFBUSxFQUFFO0FBQ1osQ0FBQztBQUFDekUsT0FBQSxDQUFBaUQsTUFBQSxHQUFBQSxNQUFBO0FBRUYsTUFBTXlCLFdBQVcsR0FBRzdCLGVBQUMsQ0FBQ0MsTUFBTSxDQUFDRyxNQUFNLENBQUM7QUFFcEMsU0FBUzBCLFNBQVNBLENBQUUzQixJQUFJLEVBQUU7RUFDeEIsT0FBTzBCLFdBQVcsQ0FBQzFCLElBQUksQ0FBQztBQUMxQjtBQUdBLE1BQU00QixTQUFTLEdBQUc7RUFDaEIsR0FBRyxFQUFFLFVBQVU7RUFDZixJQUFJLEVBQUUsVUFBVTtFQUNoQixHQUFHLEVBQUUsVUFBVTtFQUNmLElBQUksRUFBRSxVQUFVO0VBQ2hCLEdBQUcsRUFBRSxVQUFVO0VBQ2YsSUFBSSxFQUFFO0FBQ1IsQ0FBQztBQUFDNUUsT0FBQSxDQUFBNEUsU0FBQSxHQUFBQSxTQUFBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","names":["MAGIC_NUMBER","Buffer","from","AFC_PACKET_HEADER_SIZE","Operations","INVALID","STATUS","DATA","READ_DIR","READ_FILE","WRITE_FILE","WRITE_PART","TRUNCATE","REMOVE_PATH","MAKE_DIR","GET_FILE_INFO","GET_DEVINFO","WRITE_FILE_ATOM","FILE_OPEN","FILE_OPEN_RES","FILE_READ","FILE_WRITE","FILE_SEEK","FILE_TELL","FILE_TELL_RES","FILE_CLOSE","FILE_SET_SIZE","GET_CON_INFO","SET_CON_OPTIONS","RENAME_PATH","SET_FS_BS","SET_SOCKET_BS","FILE_LOCK","MAKE_LINK","GET_FILE_HASH","SET_FILE_MOD_TIME","GET_FILE_HASH_RANGE","FILE_SET_IMMUTABLE_HINT","GET_SIZE_OF_PATH_CONTENTS","REMOVE_PATH_AND_CONTENTS","DIR_OPEN","DIR_OPEN_RESULT","DIR_READ","DIR_CLOSE","FILE_READ_OFFSET","FILE_WRITE_OFFSET","Operations_Code","_","invert","operationCode","code","Errors","SUCCESS","UNKNOWN","INVALID_HEADER","NO_RESOURCES","READ","WRITE","UNKNOWN_PACKET_TYPE","INVALID_ARGUMENT","OBJECT_NOT_FOUND","OBJECT_IS_DIRECTORY","PERMISSION_DENIED","NOT_CONNECTED","TIMEOUT","OVERRUN","EOF","UNSUPPORTED","OBJECT_EXISTS","OBJECT_BUSY","ON_SPACE_LEFT","WOULD_BLOCK","IO","INTERRUPTED","IN_PROGRESS","INTERNAL","Errors_Code","errorCode","FileModes"],"sources":["../../../lib/afc/protocol.js"],"sourcesContent":["import _ from 'lodash';\n\nconst MAGIC_NUMBER = Buffer.from('CFA6LPAA');\n\nconst AFC_PACKET_HEADER_SIZE = 40;\n\nconst Operations = {\n INVALID: 0x00000000,\t// Invalid\n STATUS: 0x00000001,\t// Status\n DATA: 0x00000002,\t// Data\n READ_DIR: 0x00000003,\t// ReadDir\n READ_FILE: 0x00000004,\t// ReadFile\n WRITE_FILE: 0x00000005,\t// WriteFile\n WRITE_PART: 0x00000006,\t// WritePart\n TRUNCATE: 0x00000007,\t// TruncateFile\n REMOVE_PATH: 0x00000008,\t// RemovePath\n MAKE_DIR: 0x00000009,\t// MakeDir\n GET_FILE_INFO: 0x0000000A,\t// GetFileInfo\n GET_DEVINFO: 0x0000000B,\t// GetDeviceInfo\n WRITE_FILE_ATOM: 0x0000000C,\t// WriteFileAtomic (tmp file+rename)\n FILE_OPEN: 0x0000000D,\t// FileRefOpen\n FILE_OPEN_RES: 0x0000000E,\t// FileRefOpenResult\n FILE_READ: 0x0000000F,\t// FileRefRead\n FILE_WRITE: 0x00000010,\t// FileRefWrite\n FILE_SEEK: 0x00000011,\t// FileRefSeek\n FILE_TELL: 0x00000012,\t// FileRefTell\n FILE_TELL_RES: 0x00000013,\t// FileRefTellResult\n FILE_CLOSE: 0x00000014,\t// FileRefClose\n FILE_SET_SIZE: 0x00000015,\t// FileRefSetFileSize (ftruncate)\n GET_CON_INFO: 0x00000016,\t// GetConnectionInfo\n SET_CON_OPTIONS: 0x00000017,\t// SetConnectionOptions\n RENAME_PATH: 0x00000018,\t// RenamePath\n SET_FS_BS: 0x00000019,\t// SetFSBlockSize (0x800000)\n SET_SOCKET_BS: 0x0000001A,\t// SetSocketBlockSize (0x800000)\n FILE_LOCK: 0x0000001B,\t// FileRefLock\n MAKE_LINK: 0x0000001C,\t// MakeLink\n GET_FILE_HASH: 0x0000001D,\t// GetFileHash\n SET_FILE_MOD_TIME: 0x0000001E,\t// SetModTime\n GET_FILE_HASH_RANGE: 0x0000001F,\t// GetFileHashWithRange\n FILE_SET_IMMUTABLE_HINT: 0x00000020,\t// FileRefSetImmutableHint\n GET_SIZE_OF_PATH_CONTENTS: 0x00000021,\t// GetSizeOfPathContents\n REMOVE_PATH_AND_CONTENTS: 0x00000022,\t// RemovePathAndContents\n DIR_OPEN: 0x00000023,\t// DirectoryEnumeratorRefOpen\n DIR_OPEN_RESULT: 0x00000024,\t// DirectoryEnumeratorRefOpenResult\n DIR_READ: 0x00000025,\t// DirectoryEnumeratorRefRead\n DIR_CLOSE: 0x00000026,\t// DirectoryEnumeratorRefClose\n FILE_READ_OFFSET: 0x00000027,\t// FileRefReadWithOffset\n FILE_WRITE_OFFSET:\t0x00000028\t// FileRefWriteWithOffset\n};\n\nconst Operations_Code = _.invert(Operations);\n\nfunction operationCode (code) {\n return Operations_Code[code];\n}\n\nconst Errors = {\n SUCCESS: 0,\n UNKNOWN: 1,\n INVALID_HEADER: 2,\n NO_RESOURCES: 3,\n READ: 4,\n WRITE: 5,\n UNKNOWN_PACKET_TYPE: 6,\n INVALID_ARGUMENT: 7,\n OBJECT_NOT_FOUND: 8,\n OBJECT_IS_DIRECTORY: 9,\n PERMISSION_DENIED: 10,\n NOT_CONNECTED: 11,\n TIMEOUT: 12,\n OVERRUN: 13,\n EOF: 14,\n UNSUPPORTED: 15,\n OBJECT_EXISTS: 16,\n OBJECT_BUSY: 17,\n ON_SPACE_LEFT: 18,\n WOULD_BLOCK: 19,\n IO: 20,\n INTERRUPTED: 21,\n IN_PROGRESS: 22,\n INTERNAL: 23,\n};\n\nconst Errors_Code = _.invert(Errors);\n\nfunction errorCode (code) {\n return Errors_Code[code];\n}\n\n\nconst FileModes = {\n 'r': 0x00000001, // O_RDONLY\n 'r+': 0x00000002, // O_RDWR | O_CREAT\n 'w': 0x00000003, // O_WRONLY | O_CREAT | O_TRUNC\n 'w+': 0x00000004, // O_RDWR | O_CREAT | O_TRUNC\n 'a': 0x00000005, // O_WRONLY | O_APPEND | O_CREAT\n 'a+': 0x00000006, // O_RDWR | O_APPEND | O_CREAT\n};\n\nexport {\n MAGIC_NUMBER, AFC_PACKET_HEADER_SIZE,\n Operations, operationCode,\n Errors, errorCode, FileModes,\n};\n"],"mappings":";;;;;;;;;;AAAA;AAEA,
|
|
1
|
+
{"version":3,"file":"protocol.js","names":["_lodash","_interopRequireDefault","require","MAGIC_NUMBER","Buffer","from","exports","AFC_PACKET_HEADER_SIZE","Operations","INVALID","STATUS","DATA","READ_DIR","READ_FILE","WRITE_FILE","WRITE_PART","TRUNCATE","REMOVE_PATH","MAKE_DIR","GET_FILE_INFO","GET_DEVINFO","WRITE_FILE_ATOM","FILE_OPEN","FILE_OPEN_RES","FILE_READ","FILE_WRITE","FILE_SEEK","FILE_TELL","FILE_TELL_RES","FILE_CLOSE","FILE_SET_SIZE","GET_CON_INFO","SET_CON_OPTIONS","RENAME_PATH","SET_FS_BS","SET_SOCKET_BS","FILE_LOCK","MAKE_LINK","GET_FILE_HASH","SET_FILE_MOD_TIME","GET_FILE_HASH_RANGE","FILE_SET_IMMUTABLE_HINT","GET_SIZE_OF_PATH_CONTENTS","REMOVE_PATH_AND_CONTENTS","DIR_OPEN","DIR_OPEN_RESULT","DIR_READ","DIR_CLOSE","FILE_READ_OFFSET","FILE_WRITE_OFFSET","Operations_Code","_","invert","operationCode","code","Errors","SUCCESS","UNKNOWN","INVALID_HEADER","NO_RESOURCES","READ","WRITE","UNKNOWN_PACKET_TYPE","INVALID_ARGUMENT","OBJECT_NOT_FOUND","OBJECT_IS_DIRECTORY","PERMISSION_DENIED","NOT_CONNECTED","TIMEOUT","OVERRUN","EOF","UNSUPPORTED","OBJECT_EXISTS","OBJECT_BUSY","ON_SPACE_LEFT","WOULD_BLOCK","IO","INTERRUPTED","IN_PROGRESS","INTERNAL","Errors_Code","errorCode","FileModes"],"sources":["../../../lib/afc/protocol.js"],"sourcesContent":["import _ from 'lodash';\n\nconst MAGIC_NUMBER = Buffer.from('CFA6LPAA');\n\nconst AFC_PACKET_HEADER_SIZE = 40;\n\nconst Operations = {\n INVALID: 0x00000000,\t// Invalid\n STATUS: 0x00000001,\t// Status\n DATA: 0x00000002,\t// Data\n READ_DIR: 0x00000003,\t// ReadDir\n READ_FILE: 0x00000004,\t// ReadFile\n WRITE_FILE: 0x00000005,\t// WriteFile\n WRITE_PART: 0x00000006,\t// WritePart\n TRUNCATE: 0x00000007,\t// TruncateFile\n REMOVE_PATH: 0x00000008,\t// RemovePath\n MAKE_DIR: 0x00000009,\t// MakeDir\n GET_FILE_INFO: 0x0000000A,\t// GetFileInfo\n GET_DEVINFO: 0x0000000B,\t// GetDeviceInfo\n WRITE_FILE_ATOM: 0x0000000C,\t// WriteFileAtomic (tmp file+rename)\n FILE_OPEN: 0x0000000D,\t// FileRefOpen\n FILE_OPEN_RES: 0x0000000E,\t// FileRefOpenResult\n FILE_READ: 0x0000000F,\t// FileRefRead\n FILE_WRITE: 0x00000010,\t// FileRefWrite\n FILE_SEEK: 0x00000011,\t// FileRefSeek\n FILE_TELL: 0x00000012,\t// FileRefTell\n FILE_TELL_RES: 0x00000013,\t// FileRefTellResult\n FILE_CLOSE: 0x00000014,\t// FileRefClose\n FILE_SET_SIZE: 0x00000015,\t// FileRefSetFileSize (ftruncate)\n GET_CON_INFO: 0x00000016,\t// GetConnectionInfo\n SET_CON_OPTIONS: 0x00000017,\t// SetConnectionOptions\n RENAME_PATH: 0x00000018,\t// RenamePath\n SET_FS_BS: 0x00000019,\t// SetFSBlockSize (0x800000)\n SET_SOCKET_BS: 0x0000001A,\t// SetSocketBlockSize (0x800000)\n FILE_LOCK: 0x0000001B,\t// FileRefLock\n MAKE_LINK: 0x0000001C,\t// MakeLink\n GET_FILE_HASH: 0x0000001D,\t// GetFileHash\n SET_FILE_MOD_TIME: 0x0000001E,\t// SetModTime\n GET_FILE_HASH_RANGE: 0x0000001F,\t// GetFileHashWithRange\n FILE_SET_IMMUTABLE_HINT: 0x00000020,\t// FileRefSetImmutableHint\n GET_SIZE_OF_PATH_CONTENTS: 0x00000021,\t// GetSizeOfPathContents\n REMOVE_PATH_AND_CONTENTS: 0x00000022,\t// RemovePathAndContents\n DIR_OPEN: 0x00000023,\t// DirectoryEnumeratorRefOpen\n DIR_OPEN_RESULT: 0x00000024,\t// DirectoryEnumeratorRefOpenResult\n DIR_READ: 0x00000025,\t// DirectoryEnumeratorRefRead\n DIR_CLOSE: 0x00000026,\t// DirectoryEnumeratorRefClose\n FILE_READ_OFFSET: 0x00000027,\t// FileRefReadWithOffset\n FILE_WRITE_OFFSET:\t0x00000028\t// FileRefWriteWithOffset\n};\n\nconst Operations_Code = _.invert(Operations);\n\nfunction operationCode (code) {\n return Operations_Code[code];\n}\n\nconst Errors = {\n SUCCESS: 0,\n UNKNOWN: 1,\n INVALID_HEADER: 2,\n NO_RESOURCES: 3,\n READ: 4,\n WRITE: 5,\n UNKNOWN_PACKET_TYPE: 6,\n INVALID_ARGUMENT: 7,\n OBJECT_NOT_FOUND: 8,\n OBJECT_IS_DIRECTORY: 9,\n PERMISSION_DENIED: 10,\n NOT_CONNECTED: 11,\n TIMEOUT: 12,\n OVERRUN: 13,\n EOF: 14,\n UNSUPPORTED: 15,\n OBJECT_EXISTS: 16,\n OBJECT_BUSY: 17,\n ON_SPACE_LEFT: 18,\n WOULD_BLOCK: 19,\n IO: 20,\n INTERRUPTED: 21,\n IN_PROGRESS: 22,\n INTERNAL: 23,\n};\n\nconst Errors_Code = _.invert(Errors);\n\nfunction errorCode (code) {\n return Errors_Code[code];\n}\n\n\nconst FileModes = {\n 'r': 0x00000001, // O_RDONLY\n 'r+': 0x00000002, // O_RDWR | O_CREAT\n 'w': 0x00000003, // O_WRONLY | O_CREAT | O_TRUNC\n 'w+': 0x00000004, // O_RDWR | O_CREAT | O_TRUNC\n 'a': 0x00000005, // O_WRONLY | O_APPEND | O_CREAT\n 'a+': 0x00000006, // O_RDWR | O_APPEND | O_CREAT\n};\n\nexport {\n MAGIC_NUMBER, AFC_PACKET_HEADER_SIZE,\n Operations, operationCode,\n Errors, errorCode, FileModes,\n};\n"],"mappings":"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"}
|
package/build/lib/afc/streams.js
CHANGED
|
@@ -79,4 +79,4 @@ class AfcWritableFileStream extends _stream.default.Writable {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
exports.AfcWritableFileStream = AfcWritableFileStream;
|
|
82
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3RyZWFtIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbG9kYXNoIiwiX2xvZ2dlciIsIkFmY1JlYWRhYmxlRmlsZVN0cmVhbSIsInN0cmVhbSIsIlJlYWRhYmxlIiwiY29uc3RydWN0b3IiLCJmaWxlSGFuZGxlIiwiYWZjU2VydmljZSIsIm9wdGlvbnMiLCJfZmlsZUhhbmRsZSIsIl9hZmNTZXJ2aWNlIiwiX2F1dG9EZXN0cm95IiwiYXV0b0Rlc3Ryb3kiLCJfZGVzdHJveWVkIiwiX3JlYWQiLCJzaXplIiwicmVhZEZpbGUiLCJ0aGVuIiwiZGF0YSIsInB1c2giLCJfIiwiaXNFbXB0eSIsImNhdGNoIiwiZSIsImRlc3Ryb3kiLCJlbWl0IiwiX2Rlc3Ryb3kiLCJlcnIiLCJkb25lIiwiY2xvc2VGaWxlSGFuZGxlIiwibG9nIiwiZGVidWciLCJleHBvcnRzIiwiQWZjV3JpdGFibGVGaWxlU3RyZWFtIiwiV3JpdGFibGUiLCJfd3JpdGUiLCJjaHVuayIsImVuY29kaW5nIiwibmV4dCIsIndyaXRlRmlsZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9hZmMvc3RyZWFtcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBwcm9taXNlL3ByZWZlci1hd2FpdC10by10aGVuICovXG5pbXBvcnQgc3RyZWFtIGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuXG5jbGFzcyBBZmNSZWFkYWJsZUZpbGVTdHJlYW0gZXh0ZW5kcyBzdHJlYW0uUmVhZGFibGUge1xuXG4gIGNvbnN0cnVjdG9yIChmaWxlSGFuZGxlLCBhZmNTZXJ2aWNlLCBvcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gICAgdGhpcy5fZmlsZUhhbmRsZSA9IGZpbGVIYW5kbGU7XG4gICAgdGhpcy5fYWZjU2VydmljZSA9IGFmY1NlcnZpY2U7XG4gICAgdGhpcy5fYXV0b0Rlc3Ryb3kgPSAhIW9wdGlvbnMuYXV0b0Rlc3Ryb3k7XG4gICAgdGhpcy5fZGVzdHJveWVkID0gZmFsc2U7XG4gIH1cblxuICBfcmVhZCAoc2l6ZSkge1xuICAgIHRoaXMuX2FmY1NlcnZpY2UucmVhZEZpbGUodGhpcy5fZmlsZUhhbmRsZSwgc2l6ZSlcbiAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICAgICAgdGhpcy5wdXNoKF8uaXNFbXB0eShkYXRhKSA/IG51bGwgOiBkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fYXV0b0Rlc3Ryb3kpIHtcbiAgICAgICAgICB0aGlzLmRlc3Ryb3koZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbWl0KCdlcnJvcicsIGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIF9kZXN0cm95IChlcnIsIGRvbmUpIHtcbiAgICBpZiAodGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2Rlc3Ryb3llZCA9IHRydWU7XG4gICAgdGhpcy5wdXNoKG51bGwpO1xuICAgIHRoaXMuX2FmY1NlcnZpY2UuY2xvc2VGaWxlSGFuZGxlKHRoaXMuX2ZpbGVIYW5kbGUpXG4gICAgICAudGhlbigoKSA9PiBkb25lKGVycikpXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlcnIgPSBlO1xuICAgICAgICB9XG4gICAgICAgIGRvbmUoZXJyKTtcbiAgICAgIH0pO1xuICB9XG59XG5cbmNsYXNzIEFmY1dyaXRhYmxlRmlsZVN0cmVhbSBleHRlbmRzIHN0cmVhbS5Xcml0YWJsZSB7XG5cbiAgY29uc3RydWN0b3IgKGZpbGVIYW5kbGUsIGFmY1NlcnZpY2UsIG9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgICB0aGlzLl9maWxlSGFuZGxlID0gZmlsZUhhbmRsZTtcbiAgICB0aGlzLl9hZmNTZXJ2aWNlID0gYWZjU2VydmljZTtcbiAgICB0aGlzLl9hdXRvRGVzdHJveSA9ICEhb3B0aW9ucy5hdXRvRGVzdHJveTtcbiAgICB0aGlzLl9kZXN0cm95ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIF93cml0ZSAoY2h1bmssIGVuY29kaW5nLCBuZXh0KSB7XG4gICAgdGhpcy5fYWZjU2VydmljZS53cml0ZUZpbGUodGhpcy5fZmlsZUhhbmRsZSwgY2h1bmspXG4gICAgICAudGhlbigoKSA9PiBuZXh0KCkpXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2F1dG9EZXN0cm95KSB7XG4gICAgICAgICAgdGhpcy5kZXN0cm95KGUpO1xuICAgICAgICB9XG4gICAgICAgIG5leHQoZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIF9kZXN0cm95IChlcnIsIGRvbmUpIHtcbiAgICBpZiAodGhpcy5fZGVzdHJveWVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2Rlc3Ryb3llZCA9IHRydWU7XG4gICAgdGhpcy5fYWZjU2VydmljZS5jbG9zZUZpbGVIYW5kbGUodGhpcy5fZmlsZUhhbmRsZSlcbiAgICAgIC50aGVuKCgpID0+IGRvbmUoZXJyKSlcbiAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgbG9nLmRlYnVnKGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVyciA9IGU7XG4gICAgICAgIH1cbiAgICAgICAgZG9uZShlcnIpO1xuICAgICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IHsgQWZjUmVhZGFibGVGaWxlU3RyZWFtLCBBZmNXcml0YWJsZUZpbGVTdHJlYW0gfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDQSxJQUFBQSxPQUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streams.js","names":["AfcReadableFileStream","stream","Readable","constructor","fileHandle","afcService","options","_fileHandle","_afcService","_autoDestroy","autoDestroy","_destroyed","_read","size","readFile","then","data","push","_","isEmpty","catch","e","destroy","emit","_destroy","err","done","closeFileHandle","log","debug","AfcWritableFileStream","Writable","_write","chunk","encoding","next","writeFile"],"sources":["../../../lib/afc/streams.js"],"sourcesContent":["/* eslint-disable promise/prefer-await-to-then */\nimport stream from 'stream';\nimport _ from 'lodash';\nimport log from '../logger';\n\nclass AfcReadableFileStream extends stream.Readable {\n\n constructor (fileHandle, afcService, options) {\n super(options);\n this._fileHandle = fileHandle;\n this._afcService = afcService;\n this._autoDestroy = !!options.autoDestroy;\n this._destroyed = false;\n }\n\n _read (size) {\n this._afcService.readFile(this._fileHandle, size)\n .then((data) => {\n if (!this._destroyed) {\n this.push(_.isEmpty(data) ? null : data);\n }\n })\n .catch((e) => {\n if (this._autoDestroy) {\n this.destroy(e);\n } else {\n this.emit('error', e);\n }\n });\n }\n\n _destroy (err, done) {\n if (this._destroyed) {\n return;\n }\n this._destroyed = true;\n this.push(null);\n this._afcService.closeFileHandle(this._fileHandle)\n .then(() => done(err))\n .catch((e) => {\n if (err) {\n log.debug(e);\n } else {\n err = e;\n }\n done(err);\n });\n }\n}\n\nclass AfcWritableFileStream extends stream.Writable {\n\n constructor (fileHandle, afcService, options) {\n super(options);\n this._fileHandle = fileHandle;\n this._afcService = afcService;\n this._autoDestroy = !!options.autoDestroy;\n this._destroyed = false;\n }\n\n _write (chunk, encoding, next) {\n this._afcService.writeFile(this._fileHandle, chunk)\n .then(() => next())\n .catch((e) => {\n if (this._autoDestroy) {\n this.destroy(e);\n }\n next(e);\n });\n }\n\n _destroy (err, done) {\n if (this._destroyed) {\n return;\n }\n this._destroyed = true;\n this._afcService.closeFileHandle(this._fileHandle)\n .then(() => done(err))\n .catch((e) => {\n if (err) {\n log.debug(e);\n } else {\n err = e;\n }\n done(err);\n });\n }\n}\n\nexport { AfcReadableFileStream, AfcWritableFileStream };\n"],"mappings":";;;;;;;;AACA;AACA;AACA;AAEA,
|
|
1
|
+
{"version":3,"file":"streams.js","names":["_stream","_interopRequireDefault","require","_lodash","_logger","AfcReadableFileStream","stream","Readable","constructor","fileHandle","afcService","options","_fileHandle","_afcService","_autoDestroy","autoDestroy","_destroyed","_read","size","readFile","then","data","push","_","isEmpty","catch","e","destroy","emit","_destroy","err","done","closeFileHandle","log","debug","exports","AfcWritableFileStream","Writable","_write","chunk","encoding","next","writeFile"],"sources":["../../../lib/afc/streams.js"],"sourcesContent":["/* eslint-disable promise/prefer-await-to-then */\nimport stream from 'stream';\nimport _ from 'lodash';\nimport log from '../logger';\n\nclass AfcReadableFileStream extends stream.Readable {\n\n constructor (fileHandle, afcService, options) {\n super(options);\n this._fileHandle = fileHandle;\n this._afcService = afcService;\n this._autoDestroy = !!options.autoDestroy;\n this._destroyed = false;\n }\n\n _read (size) {\n this._afcService.readFile(this._fileHandle, size)\n .then((data) => {\n if (!this._destroyed) {\n this.push(_.isEmpty(data) ? null : data);\n }\n })\n .catch((e) => {\n if (this._autoDestroy) {\n this.destroy(e);\n } else {\n this.emit('error', e);\n }\n });\n }\n\n _destroy (err, done) {\n if (this._destroyed) {\n return;\n }\n this._destroyed = true;\n this.push(null);\n this._afcService.closeFileHandle(this._fileHandle)\n .then(() => done(err))\n .catch((e) => {\n if (err) {\n log.debug(e);\n } else {\n err = e;\n }\n done(err);\n });\n }\n}\n\nclass AfcWritableFileStream extends stream.Writable {\n\n constructor (fileHandle, afcService, options) {\n super(options);\n this._fileHandle = fileHandle;\n this._afcService = afcService;\n this._autoDestroy = !!options.autoDestroy;\n this._destroyed = false;\n }\n\n _write (chunk, encoding, next) {\n this._afcService.writeFile(this._fileHandle, chunk)\n .then(() => next())\n .catch((e) => {\n if (this._autoDestroy) {\n this.destroy(e);\n }\n next(e);\n });\n }\n\n _destroy (err, done) {\n if (this._destroyed) {\n return;\n }\n this._destroyed = true;\n this._afcService.closeFileHandle(this._fileHandle)\n .then(() => done(err))\n .catch((e) => {\n if (err) {\n log.debug(e);\n } else {\n err = e;\n }\n done(err);\n });\n }\n}\n\nexport { AfcReadableFileStream, AfcWritableFileStream };\n"],"mappings":"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"}
|
|
@@ -44,4 +44,4 @@ class AfcDecoder extends _stream.default.Transform {
|
|
|
44
44
|
exports.AfcDecoder = AfcDecoder;
|
|
45
45
|
var _default = AfcDecoder;
|
|
46
46
|
exports.default = _default;
|
|
47
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3RyZWFtIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcHJvdG9jb2wiLCJBZmNEZWNvZGVyIiwiU3RyZWFtIiwiVHJhbnNmb3JtIiwiY29uc3RydWN0b3IiLCJvYmplY3RNb2RlIiwiX3RyYW5zZm9ybSIsImRhdGEiLCJlbmNvZGluZyIsIm9uRGF0YSIsIl9kZWNvZGUiLCJtYWdpY051bWJlciIsInNsaWNlIiwiY29tcGFyZSIsIk1BR0lDX05VTUJFUiIsIkVycm9yIiwibWVzc2FnZUxlbmd0aCIsInJlYWRVSW50NjRMRSIsInRoaXNMZW5ndGgiLCJwYWNrZXROdW1iZXIiLCJvcENvZGUiLCJoZWFkZXJQYXlsb2FkIiwiQUZDX1BBQ0tFVF9IRUFERVJfU0laRSIsImNvbnRlbnQiLCJwdXNoIiwiYnVmZmVyIiwiaW5kZXgiLCJyZWFkVUludDMyTEUiLCJleHBvcnRzIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2FmYy90cmFuc2Zvcm1lci9hZmNkZWNvZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTdHJlYW0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7IE1BR0lDX05VTUJFUiwgQUZDX1BBQ0tFVF9IRUFERVJfU0laRSB9IGZyb20gJy4uL3Byb3RvY29sJztcblxuXG5jbGFzcyBBZmNEZWNvZGVyIGV4dGVuZHMgU3RyZWFtLlRyYW5zZm9ybSB7XG5cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHN1cGVyKHsgb2JqZWN0TW9kZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIF90cmFuc2Zvcm0gKGRhdGEsIGVuY29kaW5nLCBvbkRhdGEpIHtcbiAgICB0aGlzLl9kZWNvZGUoZGF0YSk7XG4gICAgb25EYXRhKCk7XG4gIH1cblxuICBfZGVjb2RlIChkYXRhKSB7XG4gICAgY29uc3QgbWFnaWNOdW1iZXIgPSBkYXRhLnNsaWNlKDAsIDgpO1xuICAgIGlmIChtYWdpY051bWJlci5jb21wYXJlKE1BR0lDX05VTUJFUikgIT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBtYWdpYyBudW1iZXI6ICR7bWFnaWNOdW1iZXJ9YCk7XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2VMZW5ndGggPSB0aGlzLnJlYWRVSW50NjRMRShkYXRhLCA4KTtcbiAgICBjb25zdCB0aGlzTGVuZ3RoID0gdGhpcy5yZWFkVUludDY0TEUoZGF0YSwgMTYpO1xuICAgIGNvbnN0IHBhY2tldE51bWJlciA9IHRoaXMucmVhZFVJbnQ2NExFKGRhdGEsIDI0KTtcbiAgICBjb25zdCBvcENvZGUgPSB0aGlzLnJlYWRVSW50NjRMRShkYXRhLCAzMik7XG5cbiAgICBjb25zdCBoZWFkZXJQYXlsb2FkID0gZGF0YS5zbGljZShBRkNfUEFDS0VUX0hFQURFUl9TSVpFLCB0aGlzTGVuZ3RoKTtcbiAgICBjb25zdCBjb250ZW50ID0gZGF0YS5zbGljZSh0aGlzTGVuZ3RoLCBtZXNzYWdlTGVuZ3RoKTtcblxuICAgIHRoaXMucHVzaCh7IG1lc3NhZ2VMZW5ndGgsIHBhY2tldE51bWJlciwgb3BDb2RlLCBoZWFkZXJQYXlsb2FkLCBjb250ZW50IH0pO1xuICB9XG5cbiAgcmVhZFVJbnQ2NExFIChidWZmZXIsIGluZGV4KSB7XG4gICAgLy8gSWdub3JlIHRoZSBmaXJzdCA0IGJ5dGVzIHNpbmNlIHdlIGRvbid0IGRvIGFueXRoaW5nIHdpdGggbG9uZ3NcbiAgICByZXR1cm4gYnVmZmVyLnJlYWRVSW50MzJMRShpbmRleCk7XG4gIH1cbn1cblxuZXhwb3J0IHsgQWZjRGVjb2RlciB9O1xuZXhwb3J0IGRlZmF1bHQgQWZjRGVjb2RlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFELE9BQUE7QUFHQSxNQUFNRSxVQUFVLFNBQVNDLGVBQU0sQ0FBQ0MsU0FBUyxDQUFDO0VBRXhDQyxXQUFXQSxDQUFBLEVBQUk7SUFDYixLQUFLLENBQUM7TUFBRUMsVUFBVSxFQUFFO0lBQUssQ0FBQyxDQUFDO0VBQzdCO0VBRUFDLFVBQVVBLENBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUU7SUFDbEMsSUFBSSxDQUFDQyxPQUFPLENBQUNILElBQUksQ0FBQztJQUNsQkUsTUFBTSxFQUFFO0VBQ1Y7RUFFQUMsT0FBT0EsQ0FBRUgsSUFBSSxFQUFFO0lBQ2IsTUFBTUksV0FBVyxHQUFHSixJQUFJLENBQUNLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLElBQUlELFdBQVcsQ0FBQ0UsT0FBTyxDQUFDQyxzQkFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO01BQzNDLE1BQU0sSUFBSUMsS0FBSyxDQUFFLDRCQUEyQkosV0FBWSxFQUFDLENBQUM7SUFDNUQ7SUFDQSxNQUFNSyxhQUFhLEdBQUcsSUFBSSxDQUFDQyxZQUFZLENBQUNWLElBQUksRUFBRSxDQUFDLENBQUM7SUFDaEQsTUFBTVcsVUFBVSxHQUFHLElBQUksQ0FBQ0QsWUFBWSxDQUFDVixJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQzlDLE1BQU1ZLFlBQVksR0FBRyxJQUFJLENBQUNGLFlBQVksQ0FBQ1YsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNoRCxNQUFNYSxNQUFNLEdBQUcsSUFBSSxDQUFDSCxZQUFZLENBQUNWLElBQUksRUFBRSxFQUFFLENBQUM7SUFFMUMsTUFBTWMsYUFBYSxHQUFHZCxJQUFJLENBQUNLLEtBQUssQ0FBQ1UsZ0NBQXNCLEVBQUVKLFVBQVUsQ0FBQztJQUNwRSxNQUFNSyxPQUFPLEdBQUdoQixJQUFJLENBQUNLLEtBQUssQ0FBQ00sVUFBVSxFQUFFRixhQUFhLENBQUM7SUFFckQsSUFBSSxDQUFDUSxJQUFJLENBQUM7TUFBRVIsYUFBYTtNQUFFRyxZQUFZO01BQUVDLE1BQU07TUFBRUMsYUFBYTtNQUFFRTtJQUFRLENBQUMsQ0FBQztFQUM1RTtFQUVBTixZQUFZQSxDQUFFUSxNQUFNLEVBQUVDLEtBQUssRUFBRTtJQUUzQixPQUFPRCxNQUFNLENBQUNFLFlBQVksQ0FBQ0QsS0FBSyxDQUFDO0VBQ25DO0FBQ0Y7QUFBQ0UsT0FBQSxDQUFBM0IsVUFBQSxHQUFBQSxVQUFBO0FBQUEsSUFBQTRCLFFBQUEsR0FHYzVCLFVBQVU7QUFBQTJCLE9BQUEsQ0FBQUUsT0FBQSxHQUFBRCxRQUFBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"afcdecoder.js","names":["AfcDecoder","Stream","Transform","constructor","objectMode","_transform","data","encoding","onData","_decode","magicNumber","slice","compare","MAGIC_NUMBER","Error","messageLength","readUInt64LE","thisLength","packetNumber","opCode","headerPayload","AFC_PACKET_HEADER_SIZE","content","push","buffer","index","readUInt32LE"],"sources":["../../../../lib/afc/transformer/afcdecoder.js"],"sourcesContent":["import Stream from 'stream';\nimport { MAGIC_NUMBER, AFC_PACKET_HEADER_SIZE } from '../protocol';\n\n\nclass AfcDecoder extends Stream.Transform {\n\n constructor () {\n super({ objectMode: true });\n }\n\n _transform (data, encoding, onData) {\n this._decode(data);\n onData();\n }\n\n _decode (data) {\n const magicNumber = data.slice(0, 8);\n if (magicNumber.compare(MAGIC_NUMBER) !== 0) {\n throw new Error(`Unexpected magic number: ${magicNumber}`);\n }\n const messageLength = this.readUInt64LE(data, 8);\n const thisLength = this.readUInt64LE(data, 16);\n const packetNumber = this.readUInt64LE(data, 24);\n const opCode = this.readUInt64LE(data, 32);\n\n const headerPayload = data.slice(AFC_PACKET_HEADER_SIZE, thisLength);\n const content = data.slice(thisLength, messageLength);\n\n this.push({ messageLength, packetNumber, opCode, headerPayload, content });\n }\n\n readUInt64LE (buffer, index) {\n // Ignore the first 4 bytes since we don't do anything with longs\n return buffer.readUInt32LE(index);\n }\n}\n\nexport { AfcDecoder };\nexport default AfcDecoder;\n"],"mappings":";;;;;;;;AAAA;AACA;AAGA,
|
|
1
|
+
{"version":3,"file":"afcdecoder.js","names":["_stream","_interopRequireDefault","require","_protocol","AfcDecoder","Stream","Transform","constructor","objectMode","_transform","data","encoding","onData","_decode","magicNumber","slice","compare","MAGIC_NUMBER","Error","messageLength","readUInt64LE","thisLength","packetNumber","opCode","headerPayload","AFC_PACKET_HEADER_SIZE","content","push","buffer","index","readUInt32LE","exports","_default","default"],"sources":["../../../../lib/afc/transformer/afcdecoder.js"],"sourcesContent":["import Stream from 'stream';\nimport { MAGIC_NUMBER, AFC_PACKET_HEADER_SIZE } from '../protocol';\n\n\nclass AfcDecoder extends Stream.Transform {\n\n constructor () {\n super({ objectMode: true });\n }\n\n _transform (data, encoding, onData) {\n this._decode(data);\n onData();\n }\n\n _decode (data) {\n const magicNumber = data.slice(0, 8);\n if (magicNumber.compare(MAGIC_NUMBER) !== 0) {\n throw new Error(`Unexpected magic number: ${magicNumber}`);\n }\n const messageLength = this.readUInt64LE(data, 8);\n const thisLength = this.readUInt64LE(data, 16);\n const packetNumber = this.readUInt64LE(data, 24);\n const opCode = this.readUInt64LE(data, 32);\n\n const headerPayload = data.slice(AFC_PACKET_HEADER_SIZE, thisLength);\n const content = data.slice(thisLength, messageLength);\n\n this.push({ messageLength, packetNumber, opCode, headerPayload, content });\n }\n\n readUInt64LE (buffer, index) {\n // Ignore the first 4 bytes since we don't do anything with longs\n return buffer.readUInt32LE(index);\n }\n}\n\nexport { AfcDecoder };\nexport default AfcDecoder;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAGA,MAAME,UAAU,SAASC,eAAM,CAACC,SAAS,CAAC;EAExCC,WAAWA,CAAA,EAAI;IACb,KAAK,CAAC;MAAEC,UAAU,EAAE;IAAK,CAAC,CAAC;EAC7B;EAEAC,UAAUA,CAAEC,IAAI,EAAEC,QAAQ,EAAEC,MAAM,EAAE;IAClC,IAAI,CAACC,OAAO,CAACH,IAAI,CAAC;IAClBE,MAAM,EAAE;EACV;EAEAC,OAAOA,CAAEH,IAAI,EAAE;IACb,MAAMI,WAAW,GAAGJ,IAAI,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACpC,IAAID,WAAW,CAACE,OAAO,CAACC,sBAAY,CAAC,KAAK,CAAC,EAAE;MAC3C,MAAM,IAAIC,KAAK,CAAE,4BAA2BJ,WAAY,EAAC,CAAC;IAC5D;IACA,MAAMK,aAAa,GAAG,IAAI,CAACC,YAAY,CAACV,IAAI,EAAE,CAAC,CAAC;IAChD,MAAMW,UAAU,GAAG,IAAI,CAACD,YAAY,CAACV,IAAI,EAAE,EAAE,CAAC;IAC9C,MAAMY,YAAY,GAAG,IAAI,CAACF,YAAY,CAACV,IAAI,EAAE,EAAE,CAAC;IAChD,MAAMa,MAAM,GAAG,IAAI,CAACH,YAAY,CAACV,IAAI,EAAE,EAAE,CAAC;IAE1C,MAAMc,aAAa,GAAGd,IAAI,CAACK,KAAK,CAACU,gCAAsB,EAAEJ,UAAU,CAAC;IACpE,MAAMK,OAAO,GAAGhB,IAAI,CAACK,KAAK,CAACM,UAAU,EAAEF,aAAa,CAAC;IAErD,IAAI,CAACQ,IAAI,CAAC;MAAER,aAAa;MAAEG,YAAY;MAAEC,MAAM;MAAEC,aAAa;MAAEE;IAAQ,CAAC,CAAC;EAC5E;EAEAN,YAAYA,CAAEQ,MAAM,EAAEC,KAAK,EAAE;IAE3B,OAAOD,MAAM,CAACE,YAAY,CAACD,KAAK,CAAC;EACnC;AACF;AAACE,OAAA,CAAA3B,UAAA,GAAAA,UAAA;AAAA,IAAA4B,QAAA,GAGc5B,UAAU;AAAA2B,OAAA,CAAAE,OAAA,GAAAD,QAAA"}
|
|
@@ -39,4 +39,4 @@ class AfcEncoder extends _stream.default.Transform {
|
|
|
39
39
|
exports.AfcEncoder = AfcEncoder;
|
|
40
40
|
var _default = AfcEncoder;
|
|
41
41
|
exports.default = _default;
|
|
42
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3RyZWFtIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcHJvdG9jb2wiLCJBZmNFbmNvZGVyIiwiU3RyZWFtIiwiVHJhbnNmb3JtIiwiY29uc3RydWN0b3IiLCJvYmplY3RNb2RlIiwiX3RyYW5zZm9ybSIsImRhdGEiLCJlbmNvZGluZyIsIm9uRGF0YSIsIl9lbmNvZGUiLCJjb250ZW50IiwiQnVmZmVyIiwiYWxsb2MiLCJ0aGlzTGVuZ3RoIiwiQUZDX1BBQ0tFVF9IRUFERVJfU0laRSIsImhlYWRlclBheWxvYWQiLCJsZW5ndGgiLCJtZXNzYWdlTGVuZ3RoIiwiYnVmZmVyIiwiTUFHSUNfTlVNQkVSIiwiY29weSIsIndyaXRlVUludDY0TEUiLCJwYWNrZXROdW1iZXIiLCJvcENvZGUiLCJpbmRleCIsIndyaXRlVUludDMyTEUiLCJleHBvcnRzIiwiX2RlZmF1bHQiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2FmYy90cmFuc2Zvcm1lci9hZmNlbmNvZGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTdHJlYW0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCB7IE1BR0lDX05VTUJFUiwgQUZDX1BBQ0tFVF9IRUFERVJfU0laRSB9IGZyb20gJy4uL3Byb3RvY29sJztcblxuXG5jbGFzcyBBZmNFbmNvZGVyIGV4dGVuZHMgU3RyZWFtLlRyYW5zZm9ybSB7XG5cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHN1cGVyKHsgb2JqZWN0TW9kZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIF90cmFuc2Zvcm0gKGRhdGEsIGVuY29kaW5nLCBvbkRhdGEpIHtcbiAgICBvbkRhdGEobnVsbCwgdGhpcy5fZW5jb2RlKGRhdGEpKTtcbiAgfVxuXG4gIF9lbmNvZGUgKGRhdGEpIHtcbiAgICBkYXRhLmNvbnRlbnQgPSBkYXRhLmNvbnRlbnQgPyBkYXRhLmNvbnRlbnQgOiBCdWZmZXIuYWxsb2MoMCk7XG5cbiAgICBjb25zdCB0aGlzTGVuZ3RoID0gQUZDX1BBQ0tFVF9IRUFERVJfU0laRSArIGRhdGEuaGVhZGVyUGF5bG9hZC5sZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZUxlbmd0aCA9IHRoaXNMZW5ndGggKyBkYXRhLmNvbnRlbnQubGVuZ3RoO1xuXG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKG1lc3NhZ2VMZW5ndGgpO1xuICAgIE1BR0lDX05VTUJFUi5jb3B5KGJ1ZmZlcik7XG4gICAgdGhpcy53cml0ZVVJbnQ2NExFKGJ1ZmZlciwgOCwgbWVzc2FnZUxlbmd0aCk7XG4gICAgdGhpcy53cml0ZVVJbnQ2NExFKGJ1ZmZlciwgMTYsIHRoaXNMZW5ndGgpO1xuICAgIHRoaXMud3JpdGVVSW50NjRMRShidWZmZXIsIDI0LCBkYXRhLnBhY2tldE51bWJlcik7XG4gICAgdGhpcy53cml0ZVVJbnQ2NExFKGJ1ZmZlciwgMzIsIGRhdGEub3BDb2RlKTtcbiAgICBkYXRhLmhlYWRlclBheWxvYWQuY29weShidWZmZXIsIEFGQ19QQUNLRVRfSEVBREVSX1NJWkUpO1xuICAgIGRhdGEuY29udGVudC5jb3B5KGJ1ZmZlciwgdGhpc0xlbmd0aCk7XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfVxuXG4gIHdyaXRlVUludDY0TEUgKGJ1ZmZlciwgaW5kZXgsIGNvbnRlbnQpIHtcbiAgICAvLyBJZ25vcmUgdGhlIGZpcnN0IDQgYnl0ZXMgc2luY2Ugd2UgZG9uJ3QgZG8gYW55dGhpbmcgd2l0aCBsb25nc1xuICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKGNvbnRlbnQsIGluZGV4KTtcbiAgICBidWZmZXIud3JpdGVVSW50MzJMRSgwLCBpbmRleCArIDQpO1xuICB9XG5cbn1cblxuZXhwb3J0IHsgQWZjRW5jb2RlciB9O1xuZXhwb3J0IGRlZmF1bHQgQWZjRW5jb2RlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFELE9BQUE7QUFHQSxNQUFNRSxVQUFVLFNBQVNDLGVBQU0sQ0FBQ0MsU0FBUyxDQUFDO0VBRXhDQyxXQUFXQSxDQUFBLEVBQUk7SUFDYixLQUFLLENBQUM7TUFBRUMsVUFBVSxFQUFFO0lBQUssQ0FBQyxDQUFDO0VBQzdCO0VBRUFDLFVBQVVBLENBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUU7SUFDbENBLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDQyxPQUFPLENBQUNILElBQUksQ0FBQyxDQUFDO0VBQ2xDO0VBRUFHLE9BQU9BLENBQUVILElBQUksRUFBRTtJQUNiQSxJQUFJLENBQUNJLE9BQU8sR0FBR0osSUFBSSxDQUFDSSxPQUFPLEdBQUdKLElBQUksQ0FBQ0ksT0FBTyxHQUFHQyxNQUFNLENBQUNDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFNUQsTUFBTUMsVUFBVSxHQUFHQyxnQ0FBc0IsR0FBR1IsSUFBSSxDQUFDUyxhQUFhLENBQUNDLE1BQU07SUFDckUsTUFBTUMsYUFBYSxHQUFHSixVQUFVLEdBQUdQLElBQUksQ0FBQ0ksT0FBTyxDQUFDTSxNQUFNO0lBRXRELE1BQU1FLE1BQU0sR0FBR1AsTUFBTSxDQUFDQyxLQUFLLENBQUNLLGFBQWEsQ0FBQztJQUMxQ0Usc0JBQVksQ0FBQ0MsSUFBSSxDQUFDRixNQUFNLENBQUM7SUFDekIsSUFBSSxDQUFDRyxhQUFhLENBQUNILE1BQU0sRUFBRSxDQUFDLEVBQUVELGFBQWEsQ0FBQztJQUM1QyxJQUFJLENBQUNJLGFBQWEsQ0FBQ0gsTUFBTSxFQUFFLEVBQUUsRUFBRUwsVUFBVSxDQUFDO0lBQzFDLElBQUksQ0FBQ1EsYUFBYSxDQUFDSCxNQUFNLEVBQUUsRUFBRSxFQUFFWixJQUFJLENBQUNnQixZQUFZLENBQUM7SUFDakQsSUFBSSxDQUFDRCxhQUFhLENBQUNILE1BQU0sRUFBRSxFQUFFLEVBQUVaLElBQUksQ0FBQ2lCLE1BQU0sQ0FBQztJQUMzQ2pCLElBQUksQ0FBQ1MsYUFBYSxDQUFDSyxJQUFJLENBQUNGLE1BQU0sRUFBRUosZ0NBQXNCLENBQUM7SUFDdkRSLElBQUksQ0FBQ0ksT0FBTyxDQUFDVSxJQUFJLENBQUNGLE1BQU0sRUFBRUwsVUFBVSxDQUFDO0lBQ3JDLE9BQU9LLE1BQU07RUFDZjtFQUVBRyxhQUFhQSxDQUFFSCxNQUFNLEVBQUVNLEtBQUssRUFBRWQsT0FBTyxFQUFFO0lBRXJDUSxNQUFNLENBQUNPLGFBQWEsQ0FBQ2YsT0FBTyxFQUFFYyxLQUFLLENBQUM7SUFDcENOLE1BQU0sQ0FBQ08sYUFBYSxDQUFDLENBQUMsRUFBRUQsS0FBSyxHQUFHLENBQUMsQ0FBQztFQUNwQztBQUVGO0FBQUNFLE9BQUEsQ0FBQTFCLFVBQUEsR0FBQUEsVUFBQTtBQUFBLElBQUEyQixRQUFBLEdBR2MzQixVQUFVO0FBQUEwQixPQUFBLENBQUFFLE9BQUEsR0FBQUQsUUFBQSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"afcencoder.js","names":["AfcEncoder","Stream","Transform","constructor","objectMode","_transform","data","encoding","onData","_encode","content","Buffer","alloc","thisLength","AFC_PACKET_HEADER_SIZE","headerPayload","length","messageLength","buffer","MAGIC_NUMBER","copy","writeUInt64LE","packetNumber","opCode","index","writeUInt32LE"],"sources":["../../../../lib/afc/transformer/afcencoder.js"],"sourcesContent":["import Stream from 'stream';\nimport { MAGIC_NUMBER, AFC_PACKET_HEADER_SIZE } from '../protocol';\n\n\nclass AfcEncoder extends Stream.Transform {\n\n constructor () {\n super({ objectMode: true });\n }\n\n _transform (data, encoding, onData) {\n onData(null, this._encode(data));\n }\n\n _encode (data) {\n data.content = data.content ? data.content : Buffer.alloc(0);\n\n const thisLength = AFC_PACKET_HEADER_SIZE + data.headerPayload.length;\n const messageLength = thisLength + data.content.length;\n\n const buffer = Buffer.alloc(messageLength);\n MAGIC_NUMBER.copy(buffer);\n this.writeUInt64LE(buffer, 8, messageLength);\n this.writeUInt64LE(buffer, 16, thisLength);\n this.writeUInt64LE(buffer, 24, data.packetNumber);\n this.writeUInt64LE(buffer, 32, data.opCode);\n data.headerPayload.copy(buffer, AFC_PACKET_HEADER_SIZE);\n data.content.copy(buffer, thisLength);\n return buffer;\n }\n\n writeUInt64LE (buffer, index, content) {\n // Ignore the first 4 bytes since we don't do anything with longs\n buffer.writeUInt32LE(content, index);\n buffer.writeUInt32LE(0, index + 4);\n }\n\n}\n\nexport { AfcEncoder };\nexport default AfcEncoder;\n"],"mappings":";;;;;;;;AAAA;AACA;AAGA,
|
|
1
|
+
{"version":3,"file":"afcencoder.js","names":["_stream","_interopRequireDefault","require","_protocol","AfcEncoder","Stream","Transform","constructor","objectMode","_transform","data","encoding","onData","_encode","content","Buffer","alloc","thisLength","AFC_PACKET_HEADER_SIZE","headerPayload","length","messageLength","buffer","MAGIC_NUMBER","copy","writeUInt64LE","packetNumber","opCode","index","writeUInt32LE","exports","_default","default"],"sources":["../../../../lib/afc/transformer/afcencoder.js"],"sourcesContent":["import Stream from 'stream';\nimport { MAGIC_NUMBER, AFC_PACKET_HEADER_SIZE } from '../protocol';\n\n\nclass AfcEncoder extends Stream.Transform {\n\n constructor () {\n super({ objectMode: true });\n }\n\n _transform (data, encoding, onData) {\n onData(null, this._encode(data));\n }\n\n _encode (data) {\n data.content = data.content ? data.content : Buffer.alloc(0);\n\n const thisLength = AFC_PACKET_HEADER_SIZE + data.headerPayload.length;\n const messageLength = thisLength + data.content.length;\n\n const buffer = Buffer.alloc(messageLength);\n MAGIC_NUMBER.copy(buffer);\n this.writeUInt64LE(buffer, 8, messageLength);\n this.writeUInt64LE(buffer, 16, thisLength);\n this.writeUInt64LE(buffer, 24, data.packetNumber);\n this.writeUInt64LE(buffer, 32, data.opCode);\n data.headerPayload.copy(buffer, AFC_PACKET_HEADER_SIZE);\n data.content.copy(buffer, thisLength);\n return buffer;\n }\n\n writeUInt64LE (buffer, index, content) {\n // Ignore the first 4 bytes since we don't do anything with longs\n buffer.writeUInt32LE(content, index);\n buffer.writeUInt32LE(0, index + 4);\n }\n\n}\n\nexport { AfcEncoder };\nexport default AfcEncoder;\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAGA,MAAME,UAAU,SAASC,eAAM,CAACC,SAAS,CAAC;EAExCC,WAAWA,CAAA,EAAI;IACb,KAAK,CAAC;MAAEC,UAAU,EAAE;IAAK,CAAC,CAAC;EAC7B;EAEAC,UAAUA,CAAEC,IAAI,EAAEC,QAAQ,EAAEC,MAAM,EAAE;IAClCA,MAAM,CAAC,IAAI,EAAE,IAAI,CAACC,OAAO,CAACH,IAAI,CAAC,CAAC;EAClC;EAEAG,OAAOA,CAAEH,IAAI,EAAE;IACbA,IAAI,CAACI,OAAO,GAAGJ,IAAI,CAACI,OAAO,GAAGJ,IAAI,CAACI,OAAO,GAAGC,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC;IAE5D,MAAMC,UAAU,GAAGC,gCAAsB,GAAGR,IAAI,CAACS,aAAa,CAACC,MAAM;IACrE,MAAMC,aAAa,GAAGJ,UAAU,GAAGP,IAAI,CAACI,OAAO,CAACM,MAAM;IAEtD,MAAME,MAAM,GAAGP,MAAM,CAACC,KAAK,CAACK,aAAa,CAAC;IAC1CE,sBAAY,CAACC,IAAI,CAACF,MAAM,CAAC;IACzB,IAAI,CAACG,aAAa,CAACH,MAAM,EAAE,CAAC,EAAED,aAAa,CAAC;IAC5C,IAAI,CAACI,aAAa,CAACH,MAAM,EAAE,EAAE,EAAEL,UAAU,CAAC;IAC1C,IAAI,CAACQ,aAAa,CAACH,MAAM,EAAE,EAAE,EAAEZ,IAAI,CAACgB,YAAY,CAAC;IACjD,IAAI,CAACD,aAAa,CAACH,MAAM,EAAE,EAAE,EAAEZ,IAAI,CAACiB,MAAM,CAAC;IAC3CjB,IAAI,CAACS,aAAa,CAACK,IAAI,CAACF,MAAM,EAAEJ,gCAAsB,CAAC;IACvDR,IAAI,CAACI,OAAO,CAACU,IAAI,CAACF,MAAM,EAAEL,UAAU,CAAC;IACrC,OAAOK,MAAM;EACf;EAEAG,aAAaA,CAAEH,MAAM,EAAEM,KAAK,EAAEd,OAAO,EAAE;IAErCQ,MAAM,CAACO,aAAa,CAACf,OAAO,EAAEc,KAAK,CAAC;IACpCN,MAAM,CAACO,aAAa,CAAC,CAAC,EAAED,KAAK,GAAG,CAAC,CAAC;EACpC;AAEF;AAACE,OAAA,CAAA1B,UAAA,GAAAA,UAAA;AAAA,IAAA2B,QAAA,GAGc3B,UAAU;AAAA0B,OAAA,CAAAE,OAAA,GAAAD,QAAA"}
|
|
@@ -30,4 +30,4 @@ class BaseServicePlist {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
exports.BaseServicePlist = BaseServicePlist;
|
|
33
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlU2VydmljZVNvY2tldCIsImNvbnN0cnVjdG9yIiwic29ja2V0Q2xpZW50IiwiX3NvY2tldENsaWVudCIsIl9hc3NpZ25DbGllbnRGYWlsdXJlSGFuZGxlcnMiLCJzb3VyY2VTdHJlYW1zIiwiZXZ0Iiwib25jZSIsIm1hcCIsInMiLCJ1bnBpcGUiLCJjbG9zZSIsImRlc3Ryb3llZCIsImVuZCIsImV4cG9ydHMiLCJCYXNlU2VydmljZVBsaXN0IiwicGxpc3RTZXJ2aWNlIiwiX3BsaXN0U2VydmljZSJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9iYXNlLXNlcnZpY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgQmFzZVNlcnZpY2VTb2NrZXQge1xuICBjb25zdHJ1Y3RvciAoc29ja2V0Q2xpZW50KSB7XG4gICAgdGhpcy5fc29ja2V0Q2xpZW50ID0gc29ja2V0Q2xpZW50O1xuICB9XG5cbiAgX2Fzc2lnbkNsaWVudEZhaWx1cmVIYW5kbGVycyAoLi4uc291cmNlU3RyZWFtcykge1xuICAgIGZvciAoY29uc3QgZXZ0IGluIFsnY2xvc2UnLCAnZW5kJ10pIHtcbiAgICAgIHRoaXMuX3NvY2tldENsaWVudC5vbmNlKGV2dCxcbiAgICAgICAgKCkgPT4gc291cmNlU3RyZWFtcy5tYXAoKHMpID0+IHMudW5waXBlKHRoaXMuX3NvY2tldENsaWVudCkpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSB1bmRlcmx5aW5nIHNvY2tldCBjb21tdW5pY2F0aW5nIHdpdGggdGhlIHBob25lXG4gICAqL1xuICBjbG9zZSAoKSB7XG4gICAgaWYgKCF0aGlzLl9zb2NrZXRDbGllbnQuZGVzdHJveWVkKSB7XG4gICAgICB0aGlzLl9zb2NrZXRDbGllbnQuZW5kKCk7XG4gICAgfVxuICB9XG59XG5cbmNsYXNzIEJhc2VTZXJ2aWNlUGxpc3Qge1xuICBjb25zdHJ1Y3RvciAocGxpc3RTZXJ2aWNlKSB7XG4gICAgdGhpcy5fcGxpc3RTZXJ2aWNlID0gcGxpc3RTZXJ2aWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgdW5kZXJseWluZyBzb2NrZXQgY29tbXVuaWNhdGluZyB3aXRoIHRoZSBwaG9uZVxuICAgKi9cbiAgY2xvc2UgKCkge1xuICAgIHRoaXMuX3BsaXN0U2VydmljZS5jbG9zZSgpO1xuICB9XG59XG5cblxuZXhwb3J0IHsgQmFzZVNlcnZpY2VTb2NrZXQsIEJhc2VTZXJ2aWNlUGxpc3QgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE1BQU1BLGlCQUFpQixDQUFDO0VBQ3RCQyxXQUFXQSxDQUFFQyxZQUFZLEVBQUU7SUFDekIsSUFBSSxDQUFDQyxhQUFhLEdBQUdELFlBQVk7RUFDbkM7RUFFQUUsNEJBQTRCQSxDQUFFLEdBQUdDLGFBQWEsRUFBRTtJQUM5QyxLQUFLLE1BQU1DLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRTtNQUNsQyxJQUFJLENBQUNILGFBQWEsQ0FBQ0ksSUFBSSxDQUFDRCxHQUFHLEVBQ3pCLE1BQU1ELGFBQWEsQ0FBQ0csR0FBRyxDQUFFQyxDQUFDLElBQUtBLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLElBQUksQ0FBQ1AsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNqRTtFQUNGO0VBS0FRLEtBQUtBLENBQUEsRUFBSTtJQUNQLElBQUksQ0FBQyxJQUFJLENBQUNSLGFBQWEsQ0FBQ1MsU0FBUyxFQUFFO01BQ2pDLElBQUksQ0FBQ1QsYUFBYSxDQUFDVSxHQUFHLEVBQUU7SUFDMUI7RUFDRjtBQUNGO0FBQUNDLE9BQUEsQ0FBQWQsaUJBQUEsR0FBQUEsaUJBQUE7QUFFRCxNQUFNZSxnQkFBZ0IsQ0FBQztFQUNyQmQsV0FBV0EsQ0FBRWUsWUFBWSxFQUFFO0lBQ3pCLElBQUksQ0FBQ0MsYUFBYSxHQUFHRCxZQUFZO0VBQ25DO0VBS0FMLEtBQUtBLENBQUEsRUFBSTtJQUNQLElBQUksQ0FBQ00sYUFBYSxDQUFDTixLQUFLLEVBQUU7RUFDNUI7QUFDRjtBQUFDRyxPQUFBLENBQUFDLGdCQUFBLEdBQUFBLGdCQUFBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-service.js","names":["BaseServiceSocket","constructor","socketClient","_socketClient","_assignClientFailureHandlers","sourceStreams","evt","once","map","s","unpipe","close","destroyed","end","BaseServicePlist","plistService","_plistService"],"sources":["../../lib/base-service.js"],"sourcesContent":["class BaseServiceSocket {\n constructor (socketClient) {\n this._socketClient = socketClient;\n }\n\n _assignClientFailureHandlers (...sourceStreams) {\n for (const evt in ['close', 'end']) {\n this._socketClient.once(evt,\n () => sourceStreams.map((s) => s.unpipe(this._socketClient)));\n }\n }\n\n /**\n * Closes the underlying socket communicating with the phone\n */\n close () {\n if (!this._socketClient.destroyed) {\n this._socketClient.end();\n }\n }\n}\n\nclass BaseServicePlist {\n constructor (plistService) {\n this._plistService = plistService;\n }\n\n /**\n * Closes the underlying socket communicating with the phone\n */\n close () {\n this._plistService.close();\n }\n}\n\n\nexport { BaseServiceSocket, BaseServicePlist };\n"],"mappings":";;;;;;;AAAA,MAAMA,iBAAiB,CAAC;EACtBC,
|
|
1
|
+
{"version":3,"file":"base-service.js","names":["BaseServiceSocket","constructor","socketClient","_socketClient","_assignClientFailureHandlers","sourceStreams","evt","once","map","s","unpipe","close","destroyed","end","exports","BaseServicePlist","plistService","_plistService"],"sources":["../../lib/base-service.js"],"sourcesContent":["class BaseServiceSocket {\n constructor (socketClient) {\n this._socketClient = socketClient;\n }\n\n _assignClientFailureHandlers (...sourceStreams) {\n for (const evt in ['close', 'end']) {\n this._socketClient.once(evt,\n () => sourceStreams.map((s) => s.unpipe(this._socketClient)));\n }\n }\n\n /**\n * Closes the underlying socket communicating with the phone\n */\n close () {\n if (!this._socketClient.destroyed) {\n this._socketClient.end();\n }\n }\n}\n\nclass BaseServicePlist {\n constructor (plistService) {\n this._plistService = plistService;\n }\n\n /**\n * Closes the underlying socket communicating with the phone\n */\n close () {\n this._plistService.close();\n }\n}\n\n\nexport { BaseServiceSocket, BaseServicePlist };\n"],"mappings":";;;;;;;AAAA,MAAMA,iBAAiB,CAAC;EACtBC,WAAWA,CAAEC,YAAY,EAAE;IACzB,IAAI,CAACC,aAAa,GAAGD,YAAY;EACnC;EAEAE,4BAA4BA,CAAE,GAAGC,aAAa,EAAE;IAC9C,KAAK,MAAMC,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;MAClC,IAAI,CAACH,aAAa,CAACI,IAAI,CAACD,GAAG,EACzB,MAAMD,aAAa,CAACG,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,CAAC,IAAI,CAACP,aAAa,CAAC,CAAC,CAAC;IACjE;EACF;EAKAQ,KAAKA,CAAA,EAAI;IACP,IAAI,CAAC,IAAI,CAACR,aAAa,CAACS,SAAS,EAAE;MACjC,IAAI,CAACT,aAAa,CAACU,GAAG,EAAE;IAC1B;EACF;AACF;AAACC,OAAA,CAAAd,iBAAA,GAAAA,iBAAA;AAED,MAAMe,gBAAgB,CAAC;EACrBd,WAAWA,CAAEe,YAAY,EAAE;IACzB,IAAI,CAACC,aAAa,GAAGD,YAAY;EACnC;EAKAL,KAAKA,CAAA,EAAI;IACP,IAAI,CAACM,aAAa,CAACN,KAAK,EAAE;EAC5B;AACF;AAACG,OAAA,CAAAC,gBAAA,GAAAA,gBAAA"}
|
package/build/lib/constants.js
CHANGED
|
@@ -9,4 +9,4 @@ const KB = 1024;
|
|
|
9
9
|
exports.KB = KB;
|
|
10
10
|
const MB = KB * KB;
|
|
11
11
|
exports.MB = MB;
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJLQiIsImV4cG9ydHMiLCJNQiJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgS0IgPSAxMDI0O1xuY29uc3QgTUIgPSBLQiAqIEtCO1xuXG5leHBvcnQge0tCLCBNQn07Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsTUFBTUEsRUFBRSxHQUFHLElBQUk7QUFBQ0MsT0FBQSxDQUFBRCxFQUFBLEdBQUFBLEVBQUE7QUFDaEIsTUFBTUUsRUFBRSxHQUFHRixFQUFFLEdBQUdBLEVBQUU7QUFBQ0MsT0FBQSxDQUFBQyxFQUFBLEdBQUFBLEVBQUEifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["KB","MB"],"sources":["../../lib/constants.js"],"sourcesContent":["const KB = 1024;\nconst MB = KB * KB;\n\nexport {KB, MB};"],"mappings":";;;;;;;AAAA,MAAMA,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"constants.js","names":["KB","exports","MB"],"sources":["../../lib/constants.js"],"sourcesContent":["const KB = 1024;\nconst MB = KB * KB;\n\nexport {KB, MB};"],"mappings":";;;;;;;AAAA,MAAMA,EAAE,GAAG,IAAI;AAACC,OAAA,CAAAD,EAAA,GAAAA,EAAA;AAChB,MAAME,EAAE,GAAGF,EAAE,GAAGA,EAAE;AAACC,OAAA,CAAAC,EAAA,GAAAA,EAAA"}
|