permaweb-deploy 2.4.0 → 2.5.1

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/README.md CHANGED
@@ -67,7 +67,7 @@ Replace `<ARNS_NAME>` with your ArNS name. To deploy to an undername, add `--und
67
67
  - `--deploy-folder, -d`: Folder to deploy. Default: `./dist`.
68
68
  - `--deploy-file, -f`: Deploy a single file instead of a folder.
69
69
  - `--undername, -u`: ANT undername to update. Default: `@`.
70
- - `--ttl-seconds, -t`: TTL in seconds for the ANT record (60-86400). Default: `3600`.
70
+ - `--ttl-seconds, -t`: TTL in seconds for the ANT record (60-86400). Default: `60`.
71
71
  - `--sig-type, -s`: Signer type for deployment. Choices: `arweave`, `ethereum`, `polygon`, `kyve`. Default: `arweave`.
72
72
  - `--help`: Show all available options and usage examples.
73
73
  - `--version`: Show the current version number.
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
 
4
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
5
  var _turboSdk = require("@ardrive/turbo-sdk");
5
6
  var _fs = _interopRequireDefault(require("fs"));
6
7
  var _yargs = _interopRequireDefault(require("yargs"));
@@ -8,15 +9,25 @@ var _helpers = require("yargs/helpers");
8
9
  var _mimeTypes = _interopRequireDefault(require("mime-types"));
9
10
  var _sdk = require("@ar.io/sdk");
10
11
  var _aoconnect = require("@permaweb/aoconnect");
12
+ var _nodeStream = require("node:stream");
11
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
14
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
13
15
  function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
14
16
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
15
17
  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."); }
16
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
17
18
  function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
18
19
  function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
20
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
23
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
24
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
25
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
26
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
27
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
19
28
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
29
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
30
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
20
31
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
21
32
  function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
22
33
  var arweaveTxIdRegex = /^[a-zA-Z0-9-_]{43}$/;
@@ -44,7 +55,7 @@ var argv = (0, _yargs["default"])((0, _helpers.hideBin)(process.argv)).version('
44
55
  alias: 't',
45
56
  type: 'number',
46
57
  description: 'ArNS TTL Seconds',
47
- "default": 3600
58
+ "default": 60
48
59
  }).option('undername', {
49
60
  alias: 'u',
50
61
  type: 'string',
@@ -74,7 +85,7 @@ if (ARIO_PROCESS === 'mainnet') {
74
85
  ARIO_PROCESS = _sdk.ARIO_TESTNET_PROCESS_ID;
75
86
  }
76
87
  _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
77
- var ario, arnsNameRecord, signer, token, jwk, turbo, uploadResult, txOrManifestId, mimeType, ant, _t, _t2;
88
+ var ario, arnsNameRecord, signer, token, jwk, turbo, uploadResult, txOrManifestId, mimeType, origPaths, newPaths, replaceManifest, _i, _Object$entries, _Object$entries$_i, key, value, newKey, newManifest, buffer, _yield$turbo$uploadFi, id, ant, _t, _t2;
78
89
  return _regenerator().w(function (_context) {
79
90
  while (1) switch (_context.n) {
80
91
  case 0:
@@ -180,7 +191,7 @@ _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
180
191
  case 9:
181
192
  uploadResult = _context.v;
182
193
  txOrManifestId = uploadResult.id;
183
- _context.n = 12;
194
+ _context.n = 13;
184
195
  break;
185
196
  case 10:
186
197
  _context.n = 11;
@@ -200,8 +211,52 @@ _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
200
211
  });
201
212
  case 11:
202
213
  uploadResult = _context.v;
203
- txOrManifestId = uploadResult.manifestResponse.id;
214
+ txOrManifestId = uploadResult.manifestResponse.id; //might replace now
215
+
216
+ // Make default folder paths work by adding extra path entries
217
+ origPaths = uploadResult.manifest.paths;
218
+ newPaths = {};
219
+ replaceManifest = false;
220
+ for (_i = 0, _Object$entries = Object.entries(origPaths); _i < _Object$entries.length; _i++) {
221
+ _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1];
222
+ newPaths[key] = value;
223
+ if (key.endsWith('/index.html')) {
224
+ newKey = key.replace(/\/index\.html$/, '');
225
+ newPaths[newKey] = value;
226
+ replaceManifest = true;
227
+ }
228
+ ;
229
+ }
230
+ ;
231
+ if (!replaceManifest) {
232
+ _context.n = 13;
233
+ break;
234
+ }
235
+ console.info('replacing manifest');
236
+ newManifest = _objectSpread(_objectSpread({}, uploadResult.manifest), {}, {
237
+ paths: newPaths
238
+ });
239
+ buffer = Buffer.from(JSON.stringify(newManifest));
240
+ _context.n = 12;
241
+ return turbo.uploadFile({
242
+ fileStreamFactory: function fileStreamFactory() {
243
+ return _nodeStream.Readable.from(buffer);
244
+ },
245
+ fileSizeFactory: function fileSizeFactory() {
246
+ return buffer.length;
247
+ },
248
+ dataItemOpts: {
249
+ tags: [{
250
+ name: 'Content-Type',
251
+ value: 'application/x.arweave-manifest+json'
252
+ }]
253
+ }
254
+ });
204
255
  case 12:
256
+ _yield$turbo$uploadFi = _context.v;
257
+ id = _yield$turbo$uploadFi.id;
258
+ txOrManifestId = id;
259
+ case 13:
205
260
  console.log('-------------------- DEPLOY DETAILS --------------------');
206
261
  console.log("Tx ID: ".concat(txOrManifestId));
207
262
  console.log("ArNS Name: ".concat(ARNS_NAME));
@@ -214,7 +269,7 @@ _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
214
269
  processId: arnsNameRecord.processId,
215
270
  signer: signer
216
271
  }); // Update the ANT record (assumes the JWK is a controller or owner)
217
- _context.n = 13;
272
+ _context.n = 14;
218
273
  return ant.setRecord({
219
274
  undername: argv.undername,
220
275
  transactionId: txOrManifestId,
@@ -228,17 +283,17 @@ _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
228
283
  value: process.env.GITHUB_SHA
229
284
  }] : []))
230
285
  });
231
- case 13:
286
+ case 14:
232
287
  console.log("Deployed TxId [".concat(txOrManifestId, "] to name [").concat(ARNS_NAME, "] for ANT [").concat(arnsNameRecord.processId, "] using undername [").concat(argv.undername, "]"));
233
- _context.n = 15;
288
+ _context.n = 16;
234
289
  break;
235
- case 14:
236
- _context.p = 14;
290
+ case 15:
291
+ _context.p = 15;
237
292
  _t2 = _context.v;
238
293
  console.error('Deployment failed:', _t2);
239
294
  process.exit(1); // Exit with error code
240
- case 15:
295
+ case 16:
241
296
  return _context.a(2);
242
297
  }
243
- }, _callee, null, [[2, 14]]);
298
+ }, _callee, null, [[2, 15]]);
244
299
  }))();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "permaweb-deploy",
3
- "version": "2.4.0",
3
+ "version": "2.5.1",
4
4
  "description": "Permaweb App Deployment Package",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/src/index.js CHANGED
@@ -7,6 +7,7 @@ import mime from 'mime-types';
7
7
 
8
8
  import { ANT, AOProcess, ARIO, ARIO_MAINNET_PROCESS_ID, ARIO_TESTNET_PROCESS_ID, ArweaveSigner } from '@ar.io/sdk';
9
9
  import { connect } from '@permaweb/aoconnect';
10
+ import { Readable } from 'node:stream';
10
11
 
11
12
  const arweaveTxIdRegex = /^[a-zA-Z0-9-_]{43}$/;
12
13
 
@@ -44,7 +45,7 @@ const argv = yargs(hideBin(process.argv))
44
45
  alias: 't',
45
46
  type: 'number',
46
47
  description: 'ArNS TTL Seconds',
47
- default: 3600,
48
+ default: 60,
48
49
  })
49
50
  .option('undername', {
50
51
  alias: 'u',
@@ -212,7 +213,32 @@ if (ARIO_PROCESS === 'mainnet') {
212
213
  ],
213
214
  },
214
215
  });
215
- txOrManifestId = uploadResult.manifestResponse.id;
216
+ txOrManifestId = uploadResult.manifestResponse.id; //might replace now
217
+
218
+ // Make default folder paths work by adding extra path entries
219
+ const origPaths = uploadResult.manifest.paths;
220
+ const newPaths = {};
221
+ let replaceManifest = false;
222
+ for (const [key, value] of Object.entries(origPaths)) {
223
+ newPaths[key] = value;
224
+ if (key.endsWith('/index.html')) {
225
+ const newKey = key.replace(/\/index\.html$/, '');
226
+ newPaths[newKey] = value;
227
+ replaceManifest = true;
228
+ };
229
+ };
230
+
231
+ if (replaceManifest) {
232
+ console.info('replacing manifest');
233
+ const newManifest = { ...uploadResult.manifest, paths: newPaths };
234
+ const buffer = Buffer.from(JSON.stringify(newManifest));
235
+ const { id } = await turbo.uploadFile({
236
+ fileStreamFactory: () => Readable.from(buffer),
237
+ fileSizeFactory: () => buffer.length,
238
+ dataItemOpts: { tags: [{ name: 'Content-Type', value: 'application/x.arweave-manifest+json' }] },
239
+ });
240
+ txOrManifestId = id;
241
+ }
216
242
  }
217
243
 
218
244
  console.log('-------------------- DEPLOY DETAILS --------------------');
@@ -1,234 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.uploadDirectory = uploadDirectory;
7
- exports.uploadFile = uploadFile;
8
- var _fs = _interopRequireDefault(require("fs"));
9
- var _mimeTypes = _interopRequireDefault(require("mime-types"));
10
- var _path = _interopRequireDefault(require("path"));
11
- var _stream = require("stream");
12
- var _turboSdk = require("@ardrive/turbo-sdk");
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
14
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
15
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
16
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
17
- function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
18
- function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
19
- function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
20
- function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
21
- // Gets MIME types for each file to tag the upload
22
- function getContentType(filePath) {
23
- var res = _mimeTypes["default"].lookup(filePath);
24
- return res || 'application/octet-stream';
25
- }
26
- function uploadFile(_x, _x2) {
27
- return _uploadFile.apply(this, arguments);
28
- }
29
- function _uploadFile() {
30
- _uploadFile = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(path, turbo) {
31
- var fileSize, contentType, uploadResult, _t;
32
- return _regenerator().w(function (_context) {
33
- while (1) switch (_context.n) {
34
- case 0:
35
- console.log("Uploading file: ".concat(path, "..."));
36
- _context.p = 1;
37
- fileSize = _fs["default"].statSync(path).size;
38
- contentType = getContentType(path);
39
- _context.n = 2;
40
- return turbo.uploadFile({
41
- fileStreamFactory: function fileStreamFactory() {
42
- return _fs["default"].createReadStream(path);
43
- },
44
- fileSizeFactory: function fileSizeFactory() {
45
- return fileSize;
46
- },
47
- signal: AbortSignal.timeout(10000),
48
- // Cancel the upload after 10 seconds
49
- dataItemOpts: {
50
- tags: [{
51
- name: 'Content-Type',
52
- value: contentType
53
- }, {
54
- name: 'App-Name',
55
- value: 'Permaweb-Deploy'
56
- }]
57
- }
58
- });
59
- case 2:
60
- uploadResult = _context.v;
61
- console.log("Uploaded ".concat(path, " with id:"), uploadResult.id);
62
- return _context.a(2, uploadResult);
63
- case 3:
64
- _context.p = 3;
65
- _t = _context.v;
66
- console.error("Error uploading file ".concat(path, ":"), _t);
67
- case 4:
68
- return _context.a(2);
69
- }
70
- }, _callee, null, [[1, 3]]);
71
- }));
72
- return _uploadFile.apply(this, arguments);
73
- }
74
- function uploadDirectory(_x3, _x4) {
75
- return _uploadDirectory.apply(this, arguments);
76
- }
77
- function _uploadDirectory() {
78
- _uploadDirectory = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(argv, jwk) {
79
- var turbo, deployFolder, newManifest, processFiles, _processFiles, uploadManifest, _uploadManifest, manifestId;
80
- return _regenerator().w(function (_context4) {
81
- while (1) switch (_context4.n) {
82
- case 0:
83
- _uploadManifest = function _uploadManifest3() {
84
- _uploadManifest = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(manifest) {
85
- var manifestString, uploadResult, _t4;
86
- return _regenerator().w(function (_context3) {
87
- while (1) switch (_context3.n) {
88
- case 0:
89
- _context3.p = 0;
90
- manifestString = JSON.stringify(manifest);
91
- _context3.n = 1;
92
- return turbo.uploadFile({
93
- fileStreamFactory: function fileStreamFactory() {
94
- return _stream.Readable.from(Buffer.from(manifestString));
95
- },
96
- fileSizeFactory: function fileSizeFactory() {
97
- return Buffer.byteLength(manifestString);
98
- },
99
- signal: AbortSignal.timeout(10000),
100
- dataItemOpts: {
101
- tags: [{
102
- name: 'Content-Type',
103
- value: 'application/x.arweave-manifest+json'
104
- }, {
105
- name: 'App-Name',
106
- value: 'Permaweb-Deploy'
107
- }]
108
- }
109
- });
110
- case 1:
111
- uploadResult = _context3.v;
112
- return _context3.a(2, uploadResult.id);
113
- case 2:
114
- _context3.p = 2;
115
- _t4 = _context3.v;
116
- console.error('Error uploading manifest:', _t4);
117
- return _context3.a(2, null);
118
- }
119
- }, _callee3, null, [[0, 2]]);
120
- }));
121
- return _uploadManifest.apply(this, arguments);
122
- };
123
- uploadManifest = function _uploadManifest2(_x6) {
124
- return _uploadManifest.apply(this, arguments);
125
- };
126
- _processFiles = function _processFiles3() {
127
- _processFiles = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(dir) {
128
- var files, _iterator, _step, file, filePath, relativePath, uploadResult, _t2, _t3;
129
- return _regenerator().w(function (_context2) {
130
- while (1) switch (_context2.n) {
131
- case 0:
132
- files = _fs["default"].readdirSync(dir);
133
- _iterator = _createForOfIteratorHelper(files);
134
- _context2.p = 1;
135
- _iterator.s();
136
- case 2:
137
- if ((_step = _iterator.n()).done) {
138
- _context2.n = 10;
139
- break;
140
- }
141
- file = _step.value;
142
- _context2.p = 3;
143
- filePath = _path["default"].join(dir, file);
144
- relativePath = _path["default"].relative(deployFolder, filePath);
145
- if (!_fs["default"].statSync(filePath).isDirectory()) {
146
- _context2.n = 5;
147
- break;
148
- }
149
- _context2.n = 4;
150
- return processFiles(filePath);
151
- case 4:
152
- _context2.n = 7;
153
- break;
154
- case 5:
155
- _context2.n = 6;
156
- return uploadFile(filePath, turbo);
157
- case 6:
158
- uploadResult = _context2.v;
159
- // Adds uploaded file txId to the new manifest json
160
- newManifest.paths[relativePath] = {
161
- id: uploadResult.id
162
- };
163
- if (file === '404.html') {
164
- // Sets manifest fallback to 404.html if found
165
- newManifest.fallback.id = uploadResult.id;
166
- }
167
- case 7:
168
- _context2.n = 9;
169
- break;
170
- case 8:
171
- _context2.p = 8;
172
- _t2 = _context2.v;
173
- console.error('ERROR:', _t2);
174
- case 9:
175
- _context2.n = 2;
176
- break;
177
- case 10:
178
- _context2.n = 12;
179
- break;
180
- case 11:
181
- _context2.p = 11;
182
- _t3 = _context2.v;
183
- _iterator.e(_t3);
184
- case 12:
185
- _context2.p = 12;
186
- _iterator.f();
187
- return _context2.f(12);
188
- case 13:
189
- return _context2.a(2);
190
- }
191
- }, _callee2, null, [[3, 8], [1, 11, 12, 13]]);
192
- }));
193
- return _processFiles.apply(this, arguments);
194
- };
195
- processFiles = function _processFiles2(_x5) {
196
- return _processFiles.apply(this, arguments);
197
- };
198
- turbo = _turboSdk.TurboFactory.authenticated({
199
- privateKey: jwk
200
- });
201
- deployFolder = argv.deployFolder; // Uses Arweave manifest version 0.2.0, which supports fallbacks
202
- newManifest = {
203
- manifest: 'arweave/paths',
204
- version: '0.2.0',
205
- index: {
206
- path: 'index.html'
207
- },
208
- fallback: {},
209
- paths: {}
210
- }; // Starts processing files in the selected directory
211
- _context4.n = 1;
212
- return processFiles(deployFolder);
213
- case 1:
214
- if (!newManifest.fallback.id) {
215
- // If no 404.html file is found, manifest fallback is set to the txId of index.html
216
- newManifest.fallback.id = newManifest.paths['index.html'].id;
217
- }
218
- _context4.n = 2;
219
- return uploadManifest(newManifest);
220
- case 2:
221
- manifestId = _context4.v;
222
- if (!manifestId) {
223
- _context4.n = 3;
224
- break;
225
- }
226
- console.log("Manifest uploaded with Id: ".concat(manifestId));
227
- return _context4.a(2, manifestId);
228
- case 3:
229
- return _context4.a(2);
230
- }
231
- }, _callee4);
232
- }));
233
- return _uploadDirectory.apply(this, arguments);
234
- }