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 +1 -1
- package/dist/index.js +67 -12
- package/package.json +1 -1
- package/src/index.js +28 -2
- package/dist/turbo/index.js +0 -234
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: `
|
|
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":
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
288
|
+
_context.n = 16;
|
|
234
289
|
break;
|
|
235
|
-
case
|
|
236
|
-
_context.p =
|
|
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
|
|
295
|
+
case 16:
|
|
241
296
|
return _context.a(2);
|
|
242
297
|
}
|
|
243
|
-
}, _callee, null, [[2,
|
|
298
|
+
}, _callee, null, [[2, 15]]);
|
|
244
299
|
}))();
|
package/package.json
CHANGED
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:
|
|
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 --------------------');
|
package/dist/turbo/index.js
DELETED
|
@@ -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
|
-
}
|