@difizen/libro-kernel 0.0.2-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/es/basemanager.d.ts +94 -0
  4. package/es/basemanager.d.ts.map +1 -0
  5. package/es/basemanager.js +110 -0
  6. package/es/contents/contents-drive.d.ts +189 -0
  7. package/es/contents/contents-drive.d.ts.map +1 -0
  8. package/es/contents/contents-drive.js +792 -0
  9. package/es/contents/contents-manager.d.ts +229 -0
  10. package/es/contents/contents-manager.d.ts.map +1 -0
  11. package/es/contents/contents-manager.js +551 -0
  12. package/es/contents/contents-module.d.ts +3 -0
  13. package/es/contents/contents-module.d.ts.map +1 -0
  14. package/es/contents/contents-module.js +4 -0
  15. package/es/contents/contents-protocol.d.ts +487 -0
  16. package/es/contents/contents-protocol.d.ts.map +1 -0
  17. package/es/contents/contents-protocol.js +1 -0
  18. package/es/contents/index.d.ts +6 -0
  19. package/es/contents/index.d.ts.map +1 -0
  20. package/es/contents/index.js +5 -0
  21. package/es/contents/validate.d.ts +10 -0
  22. package/es/contents/validate.d.ts.map +1 -0
  23. package/es/contents/validate.js +22 -0
  24. package/es/index.d.ts +10 -0
  25. package/es/index.d.ts.map +1 -0
  26. package/es/index.js +9 -0
  27. package/es/index.less +0 -0
  28. package/es/kernel/comm.d.ts +92 -0
  29. package/es/kernel/comm.d.ts.map +1 -0
  30. package/es/kernel/comm.js +216 -0
  31. package/es/kernel/future.d.ts +178 -0
  32. package/es/kernel/future.d.ts.map +1 -0
  33. package/es/kernel/future.js +587 -0
  34. package/es/kernel/index.d.ts +8 -0
  35. package/es/kernel/index.d.ts.map +1 -0
  36. package/es/kernel/index.js +8 -0
  37. package/es/kernel/kernel-connection.d.ts +550 -0
  38. package/es/kernel/kernel-connection.d.ts.map +1 -0
  39. package/es/kernel/kernel-connection.js +1957 -0
  40. package/es/kernel/kernel-module.d.ts +3 -0
  41. package/es/kernel/kernel-module.d.ts.map +1 -0
  42. package/es/kernel/kernel-module.js +32 -0
  43. package/es/kernel/libro-kernel-manager.d.ts +69 -0
  44. package/es/kernel/libro-kernel-manager.d.ts.map +1 -0
  45. package/es/kernel/libro-kernel-manager.js +349 -0
  46. package/es/kernel/libro-kernel-protocol.d.ts +675 -0
  47. package/es/kernel/libro-kernel-protocol.d.ts.map +1 -0
  48. package/es/kernel/libro-kernel-protocol.js +60 -0
  49. package/es/kernel/libro-kernel-utils.d.ts +95 -0
  50. package/es/kernel/libro-kernel-utils.d.ts.map +1 -0
  51. package/es/kernel/libro-kernel-utils.js +130 -0
  52. package/es/kernel/libro-kernel.d.ts +14 -0
  53. package/es/kernel/libro-kernel.d.ts.map +1 -0
  54. package/es/kernel/libro-kernel.js +54 -0
  55. package/es/kernel/messages.d.ts +845 -0
  56. package/es/kernel/messages.d.ts.map +1 -0
  57. package/es/kernel/messages.js +457 -0
  58. package/es/kernel/restapi.d.ts +78 -0
  59. package/es/kernel/restapi.d.ts.map +1 -0
  60. package/es/kernel/restapi.js +367 -0
  61. package/es/kernel/serialize.d.ts +10 -0
  62. package/es/kernel/serialize.d.ts.map +1 -0
  63. package/es/kernel/serialize.js +214 -0
  64. package/es/kernel/validate.d.ts +15 -0
  65. package/es/kernel/validate.d.ts.map +1 -0
  66. package/es/kernel/validate.js +125 -0
  67. package/es/kernelspec/index.d.ts +5 -0
  68. package/es/kernelspec/index.d.ts.map +1 -0
  69. package/es/kernelspec/index.js +4 -0
  70. package/es/kernelspec/kernelspec-module.d.ts +3 -0
  71. package/es/kernelspec/kernelspec-module.d.ts.map +1 -0
  72. package/es/kernelspec/kernelspec-module.js +4 -0
  73. package/es/kernelspec/kernelspec.d.ts +33 -0
  74. package/es/kernelspec/kernelspec.d.ts.map +1 -0
  75. package/es/kernelspec/kernelspec.js +1 -0
  76. package/es/kernelspec/manager.d.ts +81 -0
  77. package/es/kernelspec/manager.d.ts.map +1 -0
  78. package/es/kernelspec/manager.js +248 -0
  79. package/es/kernelspec/restapi.d.ts +71 -0
  80. package/es/kernelspec/restapi.d.ts.map +1 -0
  81. package/es/kernelspec/restapi.js +107 -0
  82. package/es/kernelspec/validate.d.ts +10 -0
  83. package/es/kernelspec/validate.d.ts.map +1 -0
  84. package/es/kernelspec/validate.js +69 -0
  85. package/es/libro-kernel-connection-manager.d.ts +19 -0
  86. package/es/libro-kernel-connection-manager.d.ts.map +1 -0
  87. package/es/libro-kernel-connection-manager.js +142 -0
  88. package/es/module.d.ts +3 -0
  89. package/es/module.d.ts.map +1 -0
  90. package/es/module.js +9 -0
  91. package/es/page-config.d.ts +36 -0
  92. package/es/page-config.d.ts.map +1 -0
  93. package/es/page-config.js +129 -0
  94. package/es/protocol.d.ts +13 -0
  95. package/es/protocol.d.ts.map +1 -0
  96. package/es/protocol.js +8 -0
  97. package/es/server/connection-error.d.ts +36 -0
  98. package/es/server/connection-error.d.ts.map +1 -0
  99. package/es/server/connection-error.js +109 -0
  100. package/es/server/index.d.ts +6 -0
  101. package/es/server/index.d.ts.map +1 -0
  102. package/es/server/index.js +5 -0
  103. package/es/server/server-connection-protocol.d.ts +49 -0
  104. package/es/server/server-connection-protocol.d.ts.map +1 -0
  105. package/es/server/server-connection-protocol.js +0 -0
  106. package/es/server/server-connection.d.ts +25 -0
  107. package/es/server/server-connection.d.ts.map +1 -0
  108. package/es/server/server-connection.js +159 -0
  109. package/es/server/server-manager.d.ts +22 -0
  110. package/es/server/server-manager.d.ts.map +1 -0
  111. package/es/server/server-manager.js +163 -0
  112. package/es/server/server-module.d.ts +3 -0
  113. package/es/server/server-module.d.ts.map +1 -0
  114. package/es/server/server-module.js +4 -0
  115. package/es/session/index.d.ts +5 -0
  116. package/es/session/index.d.ts.map +1 -0
  117. package/es/session/index.js +4 -0
  118. package/es/session/libro-session-manager.d.ts +71 -0
  119. package/es/session/libro-session-manager.d.ts.map +1 -0
  120. package/es/session/libro-session-manager.js +539 -0
  121. package/es/session/libro-session-protocol.d.ts +50 -0
  122. package/es/session/libro-session-protocol.d.ts.map +1 -0
  123. package/es/session/libro-session-protocol.js +21 -0
  124. package/es/session/libro-session.d.ts +12 -0
  125. package/es/session/libro-session.d.ts.map +1 -0
  126. package/es/session/libro-session.js +19 -0
  127. package/es/session/restapi.d.ts +28 -0
  128. package/es/session/restapi.d.ts.map +1 -0
  129. package/es/session/restapi.js +214 -0
  130. package/es/session/session-module.d.ts +3 -0
  131. package/es/session/session-module.d.ts.map +1 -0
  132. package/es/session/session-module.js +18 -0
  133. package/es/session/validate.d.ts +14 -0
  134. package/es/session/validate.d.ts.map +1 -0
  135. package/es/session/validate.js +37 -0
  136. package/es/utils.d.ts +4 -0
  137. package/es/utils.d.ts.map +1 -0
  138. package/es/utils.js +29 -0
  139. package/es/validate-property.d.ts +2 -0
  140. package/es/validate-property.d.ts.map +1 -0
  141. package/es/validate-property.js +35 -0
  142. package/package.json +62 -0
  143. package/src/basemanager.ts +133 -0
  144. package/src/contents/contents-drive.ts +495 -0
  145. package/src/contents/contents-manager.ts +465 -0
  146. package/src/contents/contents-module.ts +6 -0
  147. package/src/contents/contents-protocol.ts +604 -0
  148. package/src/contents/index.ts +5 -0
  149. package/src/contents/validate.ts +29 -0
  150. package/src/index.tsx +9 -0
  151. package/src/kernel/comm.ts +220 -0
  152. package/src/kernel/future.ts +474 -0
  153. package/src/kernel/index.ts +7 -0
  154. package/src/kernel/kernel-connection.ts +1770 -0
  155. package/src/kernel/kernel-module.ts +50 -0
  156. package/src/kernel/libro-kernel-manager.ts +199 -0
  157. package/src/kernel/libro-kernel-protocol.ts +858 -0
  158. package/src/kernel/libro-kernel-utils.ts +152 -0
  159. package/src/kernel/libro-kernel.ts +39 -0
  160. package/src/kernel/messages.ts +1104 -0
  161. package/src/kernel/restapi.ts +183 -0
  162. package/src/kernel/serialize.ts +262 -0
  163. package/src/kernel/validate.ts +101 -0
  164. package/src/kernelspec/index.ts +5 -0
  165. package/src/kernelspec/kernelspec-module.ts +9 -0
  166. package/src/kernelspec/kernelspec.ts +37 -0
  167. package/src/kernelspec/manager.ts +173 -0
  168. package/src/kernelspec/restapi.ts +104 -0
  169. package/src/kernelspec/validate.ts +80 -0
  170. package/src/libro-kernel-connection-manager.ts +73 -0
  171. package/src/module.ts +19 -0
  172. package/src/page-config.ts +106 -0
  173. package/src/protocol.ts +24 -0
  174. package/src/server/connection-error.ts +60 -0
  175. package/src/server/index.ts +5 -0
  176. package/src/server/server-connection-protocol.ts +57 -0
  177. package/src/server/server-connection.ts +144 -0
  178. package/src/server/server-manager.ts +76 -0
  179. package/src/server/server-module.ts +9 -0
  180. package/src/session/index.ts +4 -0
  181. package/src/session/libro-session-manager.ts +377 -0
  182. package/src/session/libro-session-protocol.ts +61 -0
  183. package/src/session/libro-session.ts +33 -0
  184. package/src/session/restapi.ts +126 -0
  185. package/src/session/session-module.ts +26 -0
  186. package/src/session/validate.ts +39 -0
  187. package/src/utils.ts +28 -0
  188. package/src/validate-property.ts +38 -0
@@ -0,0 +1,792 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ var _dec, _dec2, _class, _class2, _descriptor;
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
7
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
9
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
10
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
11
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
12
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
14
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
15
+ function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
16
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
18
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
19
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
20
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
21
+ function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
22
+ function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }
23
+ import { URL as URLUtil } from '@difizen/libro-common';
24
+ import { inject, singleton } from '@difizen/mana-app';
25
+ import { Emitter } from '@difizen/mana-app';
26
+ import qs from 'query-string';
27
+ import { createResponseError, ServerConnection } from "../server/index.js";
28
+ import * as validate from "./validate.js";
29
+
30
+ /**
31
+ * The url for the default drive service.
32
+ */
33
+ var SERVICE_DRIVE_URL = 'api/contents';
34
+
35
+ /**
36
+ * The url for the file access.
37
+ */
38
+ var FILES_URL = 'files';
39
+ function normalizeExtension(extension) {
40
+ if (extension.length > 0 && extension.indexOf('.') !== 0) {
41
+ // eslint-disable-next-line no-param-reassign
42
+ extension = ".".concat(extension);
43
+ }
44
+ return extension;
45
+ }
46
+ /**
47
+ * A default implementation for an `IContentsDrive`, talking to the
48
+ * server using the Jupyter REST API.
49
+ */
50
+ export var Drive = (_dec = singleton(), _dec2 = inject(ServerConnection), _dec(_class = (_class2 = /*#__PURE__*/function () {
51
+ /**
52
+ * Construct a new contents manager object.
53
+ *
54
+ * @param options - The options used to initialize the object.
55
+ */
56
+ function Drive() {
57
+ _classCallCheck(this, Drive);
58
+ _initializerDefineProperty(this, "serverConnection", _descriptor, this);
59
+ this._isDisposed = false;
60
+ this.fileChangedEmitter = new Emitter();
61
+ this.apiEndpoint = SERVICE_DRIVE_URL;
62
+ }
63
+
64
+ /**
65
+ * The name of the drive, which is used at the leading
66
+ * component of file paths.
67
+ */
68
+ _createClass(Drive, [{
69
+ key: "fileChanged",
70
+ get:
71
+ /**
72
+ * A signal emitted when a file operation takes place.
73
+ */
74
+ function get() {
75
+ return this.fileChangedEmitter.event;
76
+ }
77
+
78
+ /**
79
+ * The server settings of the drive.
80
+ */
81
+ // readonly serverSettings: ISettings;
82
+
83
+ /**
84
+ * Test whether the manager has been disposed.
85
+ */
86
+ }, {
87
+ key: "isDisposed",
88
+ get: function get() {
89
+ return this._isDisposed;
90
+ }
91
+
92
+ /**
93
+ * Dispose of the resources held by the manager.
94
+ */
95
+ }, {
96
+ key: "dispose",
97
+ value: function dispose() {
98
+ if (this.isDisposed) {
99
+ return;
100
+ }
101
+ this._isDisposed = true;
102
+ this.fileChangedEmitter.dispose();
103
+ }
104
+
105
+ /**
106
+ * Get a file or directory.
107
+ *
108
+ * @param localPath: The path to the file.
109
+ *
110
+ * @param options: The options used to fetch the file.
111
+ *
112
+ * @returns A promise which resolves with the file content.
113
+ *
114
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents) and validates the response model.
115
+ */
116
+ }, {
117
+ key: "get",
118
+ value: function () {
119
+ var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(localPath, options) {
120
+ var url, settings, content, params, response, err, data;
121
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
122
+ while (1) switch (_context.prev = _context.next) {
123
+ case 0:
124
+ url = this.getUrl(options === null || options === void 0 ? void 0 : options.baseUrl, localPath);
125
+ settings = this._getSettings(options === null || options === void 0 ? void 0 : options.baseUrl);
126
+ if (options) {
127
+ // The notebook type cannot take an format option.
128
+ if (options.type === 'notebook') {
129
+ delete options.format;
130
+ }
131
+ if (options.baseUrl) {
132
+ delete options.baseUrl;
133
+ }
134
+ content = options.content ? '1' : '0';
135
+ params = _objectSpread(_objectSpread({}, options), {}, {
136
+ content: content
137
+ });
138
+ url += "?".concat(qs.stringify(params));
139
+ }
140
+ _context.next = 5;
141
+ return this.serverConnection.makeRequest(url, {}, settings);
142
+ case 5:
143
+ response = _context.sent;
144
+ if (!(response.status !== 200)) {
145
+ _context.next = 11;
146
+ break;
147
+ }
148
+ _context.next = 9;
149
+ return createResponseError(response);
150
+ case 9:
151
+ err = _context.sent;
152
+ throw err;
153
+ case 11:
154
+ _context.next = 13;
155
+ return response.json();
156
+ case 13:
157
+ data = _context.sent;
158
+ validate.validateContentsModel(data);
159
+ return _context.abrupt("return", data);
160
+ case 16:
161
+ case "end":
162
+ return _context.stop();
163
+ }
164
+ }, _callee, this);
165
+ }));
166
+ function get(_x, _x2) {
167
+ return _get.apply(this, arguments);
168
+ }
169
+ return get;
170
+ }()
171
+ /**
172
+ * Get an encoded download url given a file path.
173
+ *
174
+ * @param localPath - An absolute POSIX file path on the server.
175
+ *
176
+ * #### Notes
177
+ * It is expected that the path contains no relative paths.
178
+ *
179
+ * The returned URL may include a query parameter.
180
+ */
181
+ }, {
182
+ key: "getDownloadUrl",
183
+ value: function getDownloadUrl(localPath, options) {
184
+ var baseUrl = (options === null || options === void 0 ? void 0 : options.baseUrl) || this.serverConnection.settings.baseUrl;
185
+ var url = URLUtil.join(baseUrl, FILES_URL, URLUtil.encodeParts(localPath));
186
+ var xsrfTokenMatch = document.cookie.match('\\b_xsrf=([^;]*)\\b');
187
+ if (xsrfTokenMatch) {
188
+ var fullUrl = new URL(url);
189
+ fullUrl.searchParams.append('_xsrf', xsrfTokenMatch[1]);
190
+ url = fullUrl.toString();
191
+ }
192
+ return Promise.resolve(url);
193
+ }
194
+
195
+ /**
196
+ * Create a new untitled file or directory in the specified directory path.
197
+ *
198
+ * @param options: The options used to create the file.
199
+ *
200
+ * @returns A promise which resolves with the created file content when the
201
+ * file is created.
202
+ *
203
+ * #### Notes
204
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents) and validates the response model.
205
+ */
206
+ }, {
207
+ key: "newUntitled",
208
+ value: function () {
209
+ var _newUntitled = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
210
+ var _options$path;
211
+ var options,
212
+ body,
213
+ settings,
214
+ url,
215
+ init,
216
+ response,
217
+ err,
218
+ data,
219
+ _args2 = arguments;
220
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
221
+ while (1) switch (_context2.prev = _context2.next) {
222
+ case 0:
223
+ options = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};
224
+ body = '{}';
225
+ settings = this._getSettings(options.baseUrl);
226
+ if (options) {
227
+ if (options.ext) {
228
+ options.ext = normalizeExtension(options.ext);
229
+ }
230
+ if (options.baseUrl) {
231
+ delete options.baseUrl;
232
+ }
233
+ body = JSON.stringify(options);
234
+ }
235
+ url = this.getUrl(options.baseUrl, (_options$path = options.path) !== null && _options$path !== void 0 ? _options$path : '');
236
+ init = {
237
+ method: 'POST',
238
+ body: body
239
+ };
240
+ _context2.next = 8;
241
+ return this.serverConnection.makeRequest(url, init, settings);
242
+ case 8:
243
+ response = _context2.sent;
244
+ if (!(response.status !== 201)) {
245
+ _context2.next = 14;
246
+ break;
247
+ }
248
+ _context2.next = 12;
249
+ return createResponseError(response);
250
+ case 12:
251
+ err = _context2.sent;
252
+ throw err;
253
+ case 14:
254
+ _context2.next = 16;
255
+ return response.json();
256
+ case 16:
257
+ data = _context2.sent;
258
+ validate.validateContentsModel(data);
259
+ this.fileChangedEmitter.fire({
260
+ type: 'new',
261
+ oldValue: null,
262
+ newValue: data
263
+ });
264
+ return _context2.abrupt("return", data);
265
+ case 20:
266
+ case "end":
267
+ return _context2.stop();
268
+ }
269
+ }, _callee2, this);
270
+ }));
271
+ function newUntitled() {
272
+ return _newUntitled.apply(this, arguments);
273
+ }
274
+ return newUntitled;
275
+ }()
276
+ /**
277
+ * Delete a file.
278
+ *
279
+ * @param localPath - The path to the file.
280
+ *
281
+ * @returns A promise which resolves when the file is deleted.
282
+ *
283
+ * #### Notes
284
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents).
285
+ */
286
+ }, {
287
+ key: "delete",
288
+ value: function () {
289
+ var _delete2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(localPath, options) {
290
+ var url, init, settings, response, err;
291
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
292
+ while (1) switch (_context3.prev = _context3.next) {
293
+ case 0:
294
+ url = this.getUrl(options === null || options === void 0 ? void 0 : options.baseUrl, localPath);
295
+ init = {
296
+ method: 'DELETE'
297
+ };
298
+ settings = this._getSettings(options === null || options === void 0 ? void 0 : options.baseUrl);
299
+ _context3.next = 5;
300
+ return this.serverConnection.makeRequest(url, init, settings);
301
+ case 5:
302
+ response = _context3.sent;
303
+ if (!(response.status !== 204)) {
304
+ _context3.next = 11;
305
+ break;
306
+ }
307
+ _context3.next = 9;
308
+ return createResponseError(response);
309
+ case 9:
310
+ err = _context3.sent;
311
+ throw err;
312
+ case 11:
313
+ this.fileChangedEmitter.fire({
314
+ type: 'delete',
315
+ oldValue: {
316
+ path: localPath
317
+ },
318
+ newValue: null
319
+ });
320
+ case 12:
321
+ case "end":
322
+ return _context3.stop();
323
+ }
324
+ }, _callee3, this);
325
+ }));
326
+ function _delete(_x3, _x4) {
327
+ return _delete2.apply(this, arguments);
328
+ }
329
+ return _delete;
330
+ }()
331
+ /**
332
+ * Rename a file or directory.
333
+ *
334
+ * @param oldLocalPath - The original file path.
335
+ *
336
+ * @param newLocalPath - The new file path.
337
+ *
338
+ * @returns A promise which resolves with the new file contents model when
339
+ * the file is renamed.
340
+ *
341
+ * #### Notes
342
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents) and validates the response model.
343
+ */
344
+ }, {
345
+ key: "rename",
346
+ value: function () {
347
+ var _rename = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(oldLocalPath, newLocalPath, options) {
348
+ var url, init, settings, response, err, data;
349
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
350
+ while (1) switch (_context4.prev = _context4.next) {
351
+ case 0:
352
+ url = this.getUrl(options === null || options === void 0 ? void 0 : options.baseUrl, oldLocalPath);
353
+ init = {
354
+ method: 'PATCH',
355
+ body: JSON.stringify({
356
+ path: newLocalPath
357
+ })
358
+ };
359
+ settings = this._getSettings(options === null || options === void 0 ? void 0 : options.baseUrl);
360
+ _context4.next = 5;
361
+ return this.serverConnection.makeRequest(url, init, settings);
362
+ case 5:
363
+ response = _context4.sent;
364
+ if (!(response.status !== 200)) {
365
+ _context4.next = 11;
366
+ break;
367
+ }
368
+ _context4.next = 9;
369
+ return createResponseError(response);
370
+ case 9:
371
+ err = _context4.sent;
372
+ throw err;
373
+ case 11:
374
+ _context4.next = 13;
375
+ return response.json();
376
+ case 13:
377
+ data = _context4.sent;
378
+ validate.validateContentsModel(data);
379
+ this.fileChangedEmitter.fire({
380
+ type: 'rename',
381
+ oldValue: {
382
+ path: oldLocalPath
383
+ },
384
+ newValue: data
385
+ });
386
+ return _context4.abrupt("return", data);
387
+ case 17:
388
+ case "end":
389
+ return _context4.stop();
390
+ }
391
+ }, _callee4, this);
392
+ }));
393
+ function rename(_x5, _x6, _x7) {
394
+ return _rename.apply(this, arguments);
395
+ }
396
+ return rename;
397
+ }()
398
+ /**
399
+ * Save a file.
400
+ *
401
+ * @param localPath - The desired file path.
402
+ *
403
+ * @param options - Optional overrides to the model.
404
+ *
405
+ * @returns A promise which resolves with the file content model when the
406
+ * file is saved.
407
+ *
408
+ * #### Notes
409
+ * Ensure that `model.content` is populated for the file.
410
+ *
411
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents) and validates the response model.
412
+ */
413
+ }, {
414
+ key: "save",
415
+ value: function () {
416
+ var _save = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(localPath) {
417
+ var options,
418
+ url,
419
+ settings,
420
+ init,
421
+ response,
422
+ err,
423
+ data,
424
+ _args5 = arguments;
425
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
426
+ while (1) switch (_context5.prev = _context5.next) {
427
+ case 0:
428
+ options = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : {};
429
+ url = this.getUrl(options.baseUrl, localPath);
430
+ settings = this._getSettings(options.baseUrl);
431
+ if (options) {
432
+ if (options.baseUrl) {
433
+ delete options.baseUrl;
434
+ }
435
+ }
436
+ init = {
437
+ method: 'PUT',
438
+ body: JSON.stringify(options)
439
+ };
440
+ _context5.next = 7;
441
+ return this.serverConnection.makeRequest(url, init, settings);
442
+ case 7:
443
+ response = _context5.sent;
444
+ if (!(response.status !== 200 && response.status !== 201)) {
445
+ _context5.next = 13;
446
+ break;
447
+ }
448
+ _context5.next = 11;
449
+ return createResponseError(response);
450
+ case 11:
451
+ err = _context5.sent;
452
+ throw err;
453
+ case 13:
454
+ _context5.next = 15;
455
+ return response.json();
456
+ case 15:
457
+ data = _context5.sent;
458
+ validate.validateContentsModel(data);
459
+ this.fileChangedEmitter.fire({
460
+ type: 'save',
461
+ oldValue: null,
462
+ newValue: data
463
+ });
464
+ return _context5.abrupt("return", data);
465
+ case 19:
466
+ case "end":
467
+ return _context5.stop();
468
+ }
469
+ }, _callee5, this);
470
+ }));
471
+ function save(_x8) {
472
+ return _save.apply(this, arguments);
473
+ }
474
+ return save;
475
+ }()
476
+ /**
477
+ * Copy a file into a given directory.
478
+ *
479
+ * @param localPath - The original file path.
480
+ *
481
+ * @param toDir - The destination directory path.
482
+ *
483
+ * @returns A promise which resolves with the new contents model when the
484
+ * file is copied.
485
+ *
486
+ * #### Notes
487
+ * The server will select the name of the copied file.
488
+ *
489
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents) and validates the response model.
490
+ */
491
+ }, {
492
+ key: "copy",
493
+ value: function () {
494
+ var _copy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(fromFile, toDir, options) {
495
+ var url, init, settings, response, err, data;
496
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
497
+ while (1) switch (_context6.prev = _context6.next) {
498
+ case 0:
499
+ url = this.getUrl(options === null || options === void 0 ? void 0 : options.baseUrl, toDir);
500
+ init = {
501
+ method: 'POST',
502
+ body: JSON.stringify({
503
+ copy_from: fromFile
504
+ })
505
+ };
506
+ settings = this._getSettings(options === null || options === void 0 ? void 0 : options.baseUrl);
507
+ _context6.next = 5;
508
+ return this.serverConnection.makeRequest(url, init, settings);
509
+ case 5:
510
+ response = _context6.sent;
511
+ if (!(response.status !== 201)) {
512
+ _context6.next = 11;
513
+ break;
514
+ }
515
+ _context6.next = 9;
516
+ return createResponseError(response);
517
+ case 9:
518
+ err = _context6.sent;
519
+ throw err;
520
+ case 11:
521
+ _context6.next = 13;
522
+ return response.json();
523
+ case 13:
524
+ data = _context6.sent;
525
+ validate.validateContentsModel(data);
526
+ this.fileChangedEmitter.fire({
527
+ type: 'new',
528
+ oldValue: null,
529
+ newValue: data
530
+ });
531
+ return _context6.abrupt("return", data);
532
+ case 17:
533
+ case "end":
534
+ return _context6.stop();
535
+ }
536
+ }, _callee6, this);
537
+ }));
538
+ function copy(_x9, _x10, _x11) {
539
+ return _copy.apply(this, arguments);
540
+ }
541
+ return copy;
542
+ }()
543
+ /**
544
+ * Create a checkpoint for a file.
545
+ *
546
+ * @param localPath - The path of the file.
547
+ *
548
+ * @returns A promise which resolves with the new checkpoint model when the
549
+ * checkpoint is created.
550
+ *
551
+ * #### Notes
552
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents) and validates the response model.
553
+ */
554
+ }, {
555
+ key: "createCheckpoint",
556
+ value: function () {
557
+ var _createCheckpoint = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(localPath, options) {
558
+ var url, init, settings, response, err, data;
559
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
560
+ while (1) switch (_context7.prev = _context7.next) {
561
+ case 0:
562
+ url = this.getUrl(options === null || options === void 0 ? void 0 : options.baseUrl, localPath, 'checkpoints');
563
+ init = {
564
+ method: 'POST'
565
+ };
566
+ settings = this._getSettings(options === null || options === void 0 ? void 0 : options.baseUrl);
567
+ _context7.next = 5;
568
+ return this.serverConnection.makeRequest(url, init, settings);
569
+ case 5:
570
+ response = _context7.sent;
571
+ if (!(response.status !== 201)) {
572
+ _context7.next = 11;
573
+ break;
574
+ }
575
+ _context7.next = 9;
576
+ return createResponseError(response);
577
+ case 9:
578
+ err = _context7.sent;
579
+ throw err;
580
+ case 11:
581
+ _context7.next = 13;
582
+ return response.json();
583
+ case 13:
584
+ data = _context7.sent;
585
+ validate.validateCheckpointModel(data);
586
+ return _context7.abrupt("return", data);
587
+ case 16:
588
+ case "end":
589
+ return _context7.stop();
590
+ }
591
+ }, _callee7, this);
592
+ }));
593
+ function createCheckpoint(_x12, _x13) {
594
+ return _createCheckpoint.apply(this, arguments);
595
+ }
596
+ return createCheckpoint;
597
+ }()
598
+ /**
599
+ * List available checkpoints for a file.
600
+ *
601
+ * @param localPath - The path of the file.
602
+ *
603
+ * @returns A promise which resolves with a list of checkpoint models for
604
+ * the file.
605
+ *
606
+ * #### Notes
607
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents) and validates the response model.
608
+ */
609
+ }, {
610
+ key: "listCheckpoints",
611
+ value: function () {
612
+ var _listCheckpoints = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(localPath, options) {
613
+ var url, settings, response, err, data, i;
614
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
615
+ while (1) switch (_context8.prev = _context8.next) {
616
+ case 0:
617
+ url = this.getUrl(options === null || options === void 0 ? void 0 : options.baseUrl, localPath, 'checkpoints');
618
+ settings = this._getSettings(options === null || options === void 0 ? void 0 : options.baseUrl);
619
+ _context8.next = 4;
620
+ return this.serverConnection.makeRequest(url, {}, settings);
621
+ case 4:
622
+ response = _context8.sent;
623
+ if (!(response.status !== 200)) {
624
+ _context8.next = 10;
625
+ break;
626
+ }
627
+ _context8.next = 8;
628
+ return createResponseError(response);
629
+ case 8:
630
+ err = _context8.sent;
631
+ throw err;
632
+ case 10:
633
+ _context8.next = 12;
634
+ return response.json();
635
+ case 12:
636
+ data = _context8.sent;
637
+ if (Array.isArray(data)) {
638
+ _context8.next = 15;
639
+ break;
640
+ }
641
+ throw new Error('Invalid Checkpoint list');
642
+ case 15:
643
+ for (i = 0; i < data.length; i++) {
644
+ validate.validateCheckpointModel(data[i]);
645
+ }
646
+ return _context8.abrupt("return", data);
647
+ case 17:
648
+ case "end":
649
+ return _context8.stop();
650
+ }
651
+ }, _callee8, this);
652
+ }));
653
+ function listCheckpoints(_x14, _x15) {
654
+ return _listCheckpoints.apply(this, arguments);
655
+ }
656
+ return listCheckpoints;
657
+ }()
658
+ /**
659
+ * Restore a file to a known checkpoint state.
660
+ *
661
+ * @param localPath - The path of the file.
662
+ *
663
+ * @param checkpointID - The id of the checkpoint to restore.
664
+ *
665
+ * @returns A promise which resolves when the checkpoint is restored.
666
+ *
667
+ * #### Notes
668
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents).
669
+ */
670
+ }, {
671
+ key: "restoreCheckpoint",
672
+ value: function () {
673
+ var _restoreCheckpoint = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(localPath, checkpointID, options) {
674
+ var url, settings, init, response, err;
675
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
676
+ while (1) switch (_context9.prev = _context9.next) {
677
+ case 0:
678
+ url = this.getUrl(options === null || options === void 0 ? void 0 : options.baseUrl, localPath, 'checkpoints', checkpointID);
679
+ settings = this._getSettings(options === null || options === void 0 ? void 0 : options.baseUrl);
680
+ init = {
681
+ method: 'POST'
682
+ };
683
+ _context9.next = 5;
684
+ return this.serverConnection.makeRequest(url, init, settings);
685
+ case 5:
686
+ response = _context9.sent;
687
+ if (!(response.status !== 204)) {
688
+ _context9.next = 11;
689
+ break;
690
+ }
691
+ _context9.next = 9;
692
+ return createResponseError(response);
693
+ case 9:
694
+ err = _context9.sent;
695
+ throw err;
696
+ case 11:
697
+ case "end":
698
+ return _context9.stop();
699
+ }
700
+ }, _callee9, this);
701
+ }));
702
+ function restoreCheckpoint(_x16, _x17, _x18) {
703
+ return _restoreCheckpoint.apply(this, arguments);
704
+ }
705
+ return restoreCheckpoint;
706
+ }()
707
+ /**
708
+ * Delete a checkpoint for a file.
709
+ *
710
+ * @param localPath - The path of the file.
711
+ *
712
+ * @param checkpointID - The id of the checkpoint to delete.
713
+ *
714
+ * @returns A promise which resolves when the checkpoint is deleted.
715
+ *
716
+ * #### Notes
717
+ * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents).
718
+ */
719
+ }, {
720
+ key: "deleteCheckpoint",
721
+ value: function () {
722
+ var _deleteCheckpoint = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(localPath, checkpointID, options) {
723
+ var url, init, settings, response, err;
724
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
725
+ while (1) switch (_context10.prev = _context10.next) {
726
+ case 0:
727
+ url = this.getUrl(options === null || options === void 0 ? void 0 : options.baseUrl, localPath, 'checkpoints', checkpointID);
728
+ init = {
729
+ method: 'DELETE'
730
+ };
731
+ settings = this._getSettings(options === null || options === void 0 ? void 0 : options.baseUrl);
732
+ _context10.next = 5;
733
+ return this.serverConnection.makeRequest(url, init, settings);
734
+ case 5:
735
+ response = _context10.sent;
736
+ if (!(response.status !== 204)) {
737
+ _context10.next = 11;
738
+ break;
739
+ }
740
+ _context10.next = 9;
741
+ return createResponseError(response);
742
+ case 9:
743
+ err = _context10.sent;
744
+ throw err;
745
+ case 11:
746
+ case "end":
747
+ return _context10.stop();
748
+ }
749
+ }, _callee10, this);
750
+ }));
751
+ function deleteCheckpoint(_x19, _x20, _x21) {
752
+ return _deleteCheckpoint.apply(this, arguments);
753
+ }
754
+ return deleteCheckpoint;
755
+ }()
756
+ /**
757
+ * Get a REST url for a file given a path.
758
+ */
759
+ }, {
760
+ key: "getUrl",
761
+ value: function getUrl(base) {
762
+ var baseUrl = base;
763
+ if (!baseUrl) {
764
+ baseUrl = this.serverConnection.settings.baseUrl;
765
+ }
766
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
767
+ args[_key - 1] = arguments[_key];
768
+ }
769
+ var parts = args.map(function (path) {
770
+ return URLUtil.encodeParts(path);
771
+ });
772
+ return URLUtil.join.apply(URLUtil, [baseUrl, this.apiEndpoint].concat(_toConsumableArray(parts)));
773
+ }
774
+ }, {
775
+ key: "_getSettings",
776
+ value: function _getSettings(baseUrl) {
777
+ var settings = this.serverConnection.settings;
778
+ if (baseUrl) {
779
+ return _objectSpread(_objectSpread({}, settings), {}, {
780
+ baseUrl: baseUrl
781
+ });
782
+ }
783
+ return settings;
784
+ }
785
+ }]);
786
+ return Drive;
787
+ }(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "serverConnection", [_dec2], {
788
+ configurable: true,
789
+ enumerable: true,
790
+ writable: true,
791
+ initializer: null
792
+ })), _class2)) || _class);