@todesktop/cli 1.1.1 → 1.1.4
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 +59 -0
- package/build/commands/build.js +117 -4740
- package/build/commands/build.js.map +1 -1
- package/build/commands/builds.js +109 -4224
- package/build/commands/builds.js.map +1 -1
- package/build/commands/logout.js +57 -2511
- package/build/commands/logout.js.map +1 -1
- package/build/commands/release.js +89 -3606
- package/build/commands/release.js.map +1 -1
- package/build/commands/whoami.js +57 -2511
- package/build/commands/whoami.js.map +1 -1
- package/build/commands.json +27 -27
- package/package.json +12 -5
package/build/commands/builds.js
CHANGED
|
@@ -1,4225 +1,110 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// Override the current require with this new one
|
|
112
|
-
parcelRequire = newRequire;
|
|
113
|
-
|
|
114
|
-
if (error) {
|
|
115
|
-
// throw error from earlier, _after updating parcelRequire_
|
|
116
|
-
throw error;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
return newRequire;
|
|
120
|
-
})({"../lib/utilities/checkIfReactIsUsable.js":[function(require,module,exports) {
|
|
121
|
-
"use strict";
|
|
122
|
-
|
|
123
|
-
Object.defineProperty(exports, "__esModule", {
|
|
124
|
-
value: true
|
|
125
|
-
});
|
|
126
|
-
exports.default = void 0;
|
|
127
|
-
|
|
128
|
-
var _react = require("react");
|
|
129
|
-
|
|
130
|
-
/*
|
|
131
|
-
This should be called at the top of all commands to test if React
|
|
132
|
-
is OK and if not, to exit cleanly.
|
|
133
|
-
|
|
134
|
-
If React throws an error (e.g. when there are multiple versions of
|
|
135
|
-
React in the customer's dependency tree), then we need to exit with
|
|
136
|
-
a non-zero error code and not with an uncaught exception somewhere.
|
|
137
|
-
|
|
138
|
-
These parameters exist only to make things more testable
|
|
139
|
-
*/
|
|
140
|
-
var _default = ({
|
|
141
|
-
cons = console,
|
|
142
|
-
proc = process
|
|
143
|
-
} = {}) => {
|
|
144
|
-
try {
|
|
145
|
-
(0, _react.useState)(null);
|
|
146
|
-
} catch (e) {
|
|
147
|
-
cons.error(e);
|
|
148
|
-
proc.exit(1);
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
|
|
152
|
-
exports.default = _default;
|
|
153
|
-
},{}],"../lib/components/TextInput.js":[function(require,module,exports) {
|
|
154
|
-
"use strict";
|
|
155
|
-
|
|
156
|
-
Object.defineProperty(exports, "__esModule", {
|
|
157
|
-
value: true
|
|
158
|
-
});
|
|
159
|
-
exports.default = void 0;
|
|
160
|
-
|
|
161
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
162
|
-
|
|
163
|
-
var _inkTextInput = _interopRequireDefault(require("ink-text-input"));
|
|
164
|
-
|
|
165
|
-
var _react = _interopRequireDefault(require("react"));
|
|
166
|
-
|
|
167
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
168
|
-
|
|
169
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
170
|
-
|
|
171
|
-
const TextInput = ({
|
|
172
|
-
onBlur,
|
|
173
|
-
onFocus,
|
|
174
|
-
...props
|
|
175
|
-
}) => {
|
|
176
|
-
_react.default.useEffect(() => {
|
|
177
|
-
onFocus();
|
|
178
|
-
return onBlur;
|
|
179
|
-
}, [onFocus, onBlur]);
|
|
180
|
-
|
|
181
|
-
return /*#__PURE__*/_react.default.createElement(_inkTextInput.default, (0, _extends2.default)({}, props, {
|
|
182
|
-
showCursor: true
|
|
183
|
-
}));
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
TextInput.propTypes = {
|
|
187
|
-
onBlur: _propTypes.default.func,
|
|
188
|
-
onFocus: _propTypes.default.func
|
|
189
|
-
};
|
|
190
|
-
var _default = TextInput;
|
|
191
|
-
exports.default = _default;
|
|
192
|
-
},{}],"../lib/utilities/getCliVersion.js":[function(require,module,exports) {
|
|
193
|
-
"use strict";
|
|
194
|
-
|
|
195
|
-
Object.defineProperty(exports, "__esModule", {
|
|
196
|
-
value: true
|
|
197
|
-
});
|
|
198
|
-
exports.default = void 0;
|
|
199
|
-
|
|
200
|
-
var _pkgUp = _interopRequireDefault(require("pkg-up"));
|
|
201
|
-
|
|
202
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
203
|
-
|
|
204
|
-
const cliVersion = require(_pkgUp.default.sync({
|
|
205
|
-
cwd: __dirname
|
|
206
|
-
})).version;
|
|
207
|
-
|
|
208
|
-
var _default = () => cliVersion;
|
|
209
|
-
|
|
210
|
-
exports.default = _default;
|
|
211
|
-
},{}],"../lib/utilities/logger.js":[function(require,module,exports) {
|
|
212
|
-
"use strict";
|
|
213
|
-
|
|
214
|
-
Object.defineProperty(exports, "__esModule", {
|
|
215
|
-
value: true
|
|
216
|
-
});
|
|
217
|
-
exports.default = void 0;
|
|
218
|
-
|
|
219
|
-
var _bunyan = _interopRequireDefault(require("bunyan"));
|
|
220
|
-
|
|
221
|
-
var fs = _interopRequireWildcard(require("fs"));
|
|
222
|
-
|
|
223
|
-
var os = _interopRequireWildcard(require("os"));
|
|
224
|
-
|
|
225
|
-
var path = _interopRequireWildcard(require("path"));
|
|
226
|
-
|
|
227
|
-
var Sentry = _interopRequireWildcard(require("@sentry/node"));
|
|
228
|
-
|
|
229
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
230
|
-
|
|
231
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
232
|
-
|
|
233
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
234
|
-
|
|
235
|
-
let logger;
|
|
236
|
-
|
|
237
|
-
try {
|
|
238
|
-
const name = "todesktop-cli";
|
|
239
|
-
let parentDirectory;
|
|
240
|
-
const homePath = os.homedir();
|
|
241
|
-
|
|
242
|
-
if (process.platform === "darwin") {
|
|
243
|
-
parentDirectory = path.join(homePath, "Library", "Logs", name);
|
|
244
|
-
} else if (process.platform === "win32") {
|
|
245
|
-
parentDirectory = path.join(process.env.APPDATA || path.join(homePath, "AppData", "Roaming"), name, "logs");
|
|
246
|
-
} else {
|
|
247
|
-
parentDirectory = path.join(process.env.XDG_CONFIG_HOME || path.join(homePath, ".config"), name, "logs");
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
fs.mkdirSync(parentDirectory, {
|
|
251
|
-
recursive: true
|
|
252
|
-
});
|
|
253
|
-
logger = _bunyan.default.createLogger({
|
|
254
|
-
name,
|
|
255
|
-
src: true,
|
|
256
|
-
streams: [{
|
|
257
|
-
level: "debug",
|
|
258
|
-
path: path.join(parentDirectory, "main.log")
|
|
259
|
-
}]
|
|
260
|
-
});
|
|
261
|
-
} catch (e) {
|
|
262
|
-
// Ignore
|
|
263
|
-
const noOp = () => {};
|
|
264
|
-
|
|
265
|
-
logger = {
|
|
266
|
-
debug: noOp,
|
|
267
|
-
error: noOp,
|
|
268
|
-
fatal: noOp,
|
|
269
|
-
info: noOp,
|
|
270
|
-
trace: noOp,
|
|
271
|
-
warn: noOp
|
|
272
|
-
};
|
|
273
|
-
|
|
274
|
-
try {
|
|
275
|
-
Sentry.captureException(e);
|
|
276
|
-
} catch (err) {// Ignore
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
var _default = logger;
|
|
281
|
-
exports.default = _default;
|
|
282
|
-
},{}],"../lib/utilities/getEnvironmentVariables.js":[function(require,module,exports) {
|
|
283
|
-
"use strict";
|
|
284
|
-
|
|
285
|
-
Object.defineProperty(exports, "__esModule", {
|
|
286
|
-
value: true
|
|
287
|
-
});
|
|
288
|
-
exports.default = void 0;
|
|
289
|
-
|
|
290
|
-
var _dotenv = _interopRequireDefault(require("dotenv"));
|
|
291
|
-
|
|
292
|
-
var path = _interopRequireWildcard(require("path"));
|
|
293
|
-
|
|
294
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
295
|
-
|
|
296
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
297
|
-
|
|
298
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
299
|
-
|
|
300
|
-
let hasInitialized = false;
|
|
301
|
-
|
|
302
|
-
const init = () => {
|
|
303
|
-
if (hasInitialized) {
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
_dotenv.default.config({
|
|
308
|
-
path: path.resolve(__dirname, "..", "..", ".env")
|
|
309
|
-
});
|
|
310
|
-
|
|
311
|
-
hasInitialized = true;
|
|
312
|
-
};
|
|
313
|
-
|
|
314
|
-
var _default = () => {
|
|
315
|
-
init();
|
|
316
|
-
return process.env;
|
|
317
|
-
};
|
|
318
|
-
|
|
319
|
-
exports.default = _default;
|
|
320
|
-
},{}],"../lib/utilities/firestore.js":[function(require,module,exports) {
|
|
321
|
-
"use strict";
|
|
322
|
-
|
|
323
|
-
Object.defineProperty(exports, "__esModule", {
|
|
324
|
-
value: true
|
|
325
|
-
});
|
|
326
|
-
exports.signInWithCustomToken = exports.onUserAuth = exports.default = exports.currentUser = void 0;
|
|
327
|
-
|
|
328
|
-
var firebase = _interopRequireWildcard(require("firebase/app"));
|
|
329
|
-
|
|
330
|
-
require("firebase/firestore");
|
|
331
|
-
|
|
332
|
-
require("firebase/auth");
|
|
333
|
-
|
|
334
|
-
var _getEnvironmentVariables = _interopRequireDefault(require("./getEnvironmentVariables"));
|
|
335
|
-
|
|
336
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
337
|
-
|
|
338
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
339
|
-
|
|
340
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
341
|
-
|
|
342
|
-
const environmentVariables = (0, _getEnvironmentVariables.default)(); // if (environmentVariables.NODE_ENV === "development") {
|
|
343
|
-
// if (true) {
|
|
344
|
-
// firebase.firestore.setLogLevel("debug");
|
|
345
|
-
// }
|
|
346
|
-
|
|
347
|
-
const firebaseDB = firebase.initializeApp({
|
|
348
|
-
apiKey: environmentVariables.TODESKTOP_CLI_FIREBASE_API_KEY,
|
|
349
|
-
authDomain: environmentVariables.TODESKTOP_CLI_FIREBASE_AUTH_DOMAIN,
|
|
350
|
-
databaseURL: environmentVariables.TODESKTOP_CLI_FIREBASE_DATABASE_URL,
|
|
351
|
-
projectId: environmentVariables.TODESKTOP_CLI_FIREBASE_PROJECT_ID,
|
|
352
|
-
storageBucket: environmentVariables.TODESKTOP_CLI_FIREBASE_STORAGE_BUCKET,
|
|
353
|
-
messagingSenderId: environmentVariables.TODESKTOP_CLI_FIREBASE_MESSAGING_SENDER_ID,
|
|
354
|
-
appId: environmentVariables.TODESKTOP_CLI_FIREBASE_ID
|
|
355
|
-
});
|
|
356
|
-
|
|
357
|
-
const currentUser = () => firebase.auth().currentUser;
|
|
358
|
-
|
|
359
|
-
exports.currentUser = currentUser;
|
|
360
|
-
|
|
361
|
-
const signInWithCustomToken = async token => {
|
|
362
|
-
return firebase.auth().signInWithCustomToken(token);
|
|
363
|
-
};
|
|
364
|
-
/**
|
|
365
|
-
* onUserAuth is only triggered on sign-in. This
|
|
366
|
-
* happens once signInWithCustomToken is successful.
|
|
367
|
-
*
|
|
368
|
-
* It technically also triggers on sign-out but there's
|
|
369
|
-
* no concept of signing out of firebase with the CLI app.
|
|
370
|
-
* (See logout command which just deletes a local file)
|
|
371
|
-
*/
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
exports.signInWithCustomToken = signInWithCustomToken;
|
|
375
|
-
|
|
376
|
-
const onUserAuth = handler => firebase.auth().onAuthStateChanged(user => {
|
|
377
|
-
handler(user || {});
|
|
378
|
-
});
|
|
379
|
-
|
|
380
|
-
exports.onUserAuth = onUserAuth;
|
|
381
|
-
|
|
382
|
-
var _default = firebaseDB.firestore();
|
|
383
|
-
|
|
384
|
-
exports.default = _default;
|
|
385
|
-
},{"./getEnvironmentVariables":"../lib/utilities/getEnvironmentVariables.js"}],"../lib/utilities/configStore.js":[function(require,module,exports) {
|
|
386
|
-
"use strict";
|
|
387
|
-
|
|
388
|
-
Object.defineProperty(exports, "__esModule", {
|
|
389
|
-
value: true
|
|
390
|
-
});
|
|
391
|
-
exports.setConfig = exports.setAuthConfig = exports.jwtTokenConfigKey = exports.getConfig = exports.getAuthConfig = exports.emailConfigKey = exports.deleteAuthConfig = exports.accessTokenConfigKey = void 0;
|
|
392
|
-
|
|
393
|
-
var fs = _interopRequireWildcard(require("fs"));
|
|
394
|
-
|
|
395
|
-
var _del = _interopRequireDefault(require("del"));
|
|
396
|
-
|
|
397
|
-
var _conf = _interopRequireDefault(require("conf"));
|
|
398
|
-
|
|
399
|
-
var _xdgBasedir = _interopRequireDefault(require("xdg-basedir"));
|
|
400
|
-
|
|
401
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
402
|
-
|
|
403
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
404
|
-
|
|
405
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
406
|
-
|
|
407
|
-
const config = new _conf.default({
|
|
408
|
-
configName: "todesktop-cli"
|
|
409
|
-
});
|
|
410
|
-
const accessTokenConfigKey = "accessToken";
|
|
411
|
-
exports.accessTokenConfigKey = accessTokenConfigKey;
|
|
412
|
-
const emailConfigKey = "email";
|
|
413
|
-
exports.emailConfigKey = emailConfigKey;
|
|
414
|
-
const jwtTokenConfigKey = "jwtToken";
|
|
415
|
-
exports.jwtTokenConfigKey = jwtTokenConfigKey;
|
|
416
|
-
|
|
417
|
-
const setConfig = (key, value) => config.set(key, value);
|
|
418
|
-
|
|
419
|
-
exports.setConfig = setConfig;
|
|
420
|
-
|
|
421
|
-
const getConfig = key => config.get(key);
|
|
422
|
-
|
|
423
|
-
exports.getConfig = getConfig;
|
|
424
|
-
|
|
425
|
-
const setAuthConfig = (email, accessToken, jwtToken) => {
|
|
426
|
-
setConfig(emailConfigKey, email);
|
|
427
|
-
setConfig(accessTokenConfigKey, accessToken);
|
|
428
|
-
setConfig(jwtTokenConfigKey, jwtToken);
|
|
429
|
-
};
|
|
430
|
-
|
|
431
|
-
exports.setAuthConfig = setAuthConfig;
|
|
432
|
-
|
|
433
|
-
const getAuthConfig = () => {
|
|
434
|
-
const accessToken = getConfig(accessTokenConfigKey);
|
|
435
|
-
const jwtToken = getConfig(jwtTokenConfigKey);
|
|
436
|
-
const email = getConfig(emailConfigKey);
|
|
437
|
-
return {
|
|
438
|
-
accessToken,
|
|
439
|
-
jwtToken,
|
|
440
|
-
email
|
|
441
|
-
};
|
|
442
|
-
};
|
|
443
|
-
|
|
444
|
-
exports.getAuthConfig = getAuthConfig;
|
|
445
|
-
|
|
446
|
-
const deleteAuthConfig = () => {
|
|
447
|
-
config.delete(emailConfigKey);
|
|
448
|
-
config.delete(accessTokenConfigKey);
|
|
449
|
-
config.delete(jwtTokenConfigKey);
|
|
450
|
-
}; // TODO - Delete by end of April: backwards compatibility for old configstore
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
exports.deleteAuthConfig = deleteAuthConfig;
|
|
454
|
-
const oldConfigPath = `${_xdgBasedir.default.config}/configstore/config.json.json`;
|
|
455
|
-
|
|
456
|
-
if (fs.existsSync(oldConfigPath)) {
|
|
457
|
-
try {
|
|
458
|
-
// copy config from old json file to new json file, delete old file
|
|
459
|
-
const {
|
|
460
|
-
email,
|
|
461
|
-
accessToken,
|
|
462
|
-
jwtToken
|
|
463
|
-
} = require(oldConfigPath);
|
|
464
|
-
|
|
465
|
-
setAuthConfig(email, accessToken, jwtToken);
|
|
466
|
-
(0, _del.default)(oldConfigPath, {
|
|
467
|
-
force: true
|
|
468
|
-
});
|
|
469
|
-
} catch (err) {
|
|
470
|
-
// if invalid json, delete file to prompt new login
|
|
471
|
-
(0, _del.default)(oldConfigPath, {
|
|
472
|
-
force: true
|
|
473
|
-
});
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
},{}],"../lib/utilities/analytics.js":[function(require,module,exports) {
|
|
477
|
-
"use strict";
|
|
478
|
-
|
|
479
|
-
Object.defineProperty(exports, "__esModule", {
|
|
480
|
-
value: true
|
|
481
|
-
});
|
|
482
|
-
exports.track = exports.identify = exports.flush = exports.ANALYTICS_EVENT = void 0;
|
|
483
|
-
|
|
484
|
-
var _os = _interopRequireDefault(require("os"));
|
|
485
|
-
|
|
486
|
-
var _uuid = require("uuid");
|
|
487
|
-
|
|
488
|
-
var _analyticsNode = _interopRequireDefault(require("analytics-node"));
|
|
489
|
-
|
|
490
|
-
var _getEnvironmentVariables = _interopRequireDefault(require("./getEnvironmentVariables"));
|
|
491
|
-
|
|
492
|
-
var _firestore = require("./firestore");
|
|
493
|
-
|
|
494
|
-
var _configStore = require("./configStore");
|
|
495
|
-
|
|
496
|
-
var _getCliVersion = _interopRequireDefault(require("./getCliVersion"));
|
|
497
|
-
|
|
498
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
499
|
-
|
|
500
|
-
const environmentVariables = (0, _getEnvironmentVariables.default)();
|
|
501
|
-
const analytics = new _analyticsNode.default(environmentVariables.SEGMENT_WRITE_KEY, {
|
|
502
|
-
flushAt: 1,
|
|
503
|
-
flushInterval: 1
|
|
504
|
-
});
|
|
505
|
-
const ANALYTICS_EVENT = {
|
|
506
|
-
CLI_COMMAND: "CLI Command"
|
|
507
|
-
};
|
|
508
|
-
exports.ANALYTICS_EVENT = ANALYTICS_EVENT;
|
|
509
|
-
|
|
510
|
-
function getAnalyticsBaseProperties() {
|
|
511
|
-
let baseProps = {
|
|
512
|
-
client: "cli"
|
|
513
|
-
};
|
|
514
|
-
|
|
515
|
-
try {
|
|
516
|
-
baseProps.os = {
|
|
517
|
-
name: _os.default.platform(),
|
|
518
|
-
version: _os.default.release()
|
|
519
|
-
};
|
|
520
|
-
} catch (err) {}
|
|
521
|
-
|
|
522
|
-
try {
|
|
523
|
-
baseProps.user = {
|
|
524
|
-
email: (0, _configStore.getAuthConfig)().email
|
|
525
|
-
};
|
|
526
|
-
} catch (err) {}
|
|
527
|
-
|
|
528
|
-
try {
|
|
529
|
-
baseProps.app = {
|
|
530
|
-
cliVersion: (0, _getCliVersion.default)()
|
|
531
|
-
};
|
|
532
|
-
} catch (err) {}
|
|
533
|
-
|
|
534
|
-
try {
|
|
535
|
-
baseProps.runtime = {
|
|
536
|
-
name: "Node.js",
|
|
537
|
-
version: process.version
|
|
538
|
-
};
|
|
539
|
-
} catch (err) {}
|
|
540
|
-
|
|
541
|
-
return baseProps;
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
const anonymousId = (0, _uuid.v4)();
|
|
545
|
-
|
|
546
|
-
const track = (event, properties = {}, callback = () => {}) => {
|
|
547
|
-
try {
|
|
548
|
-
const user = (0, _firestore.currentUser)();
|
|
549
|
-
analytics.track({
|
|
550
|
-
event,
|
|
551
|
-
userId: user ? user.uid : undefined,
|
|
552
|
-
anonymousId,
|
|
553
|
-
properties: { ...properties,
|
|
554
|
-
...getAnalyticsBaseProperties()
|
|
555
|
-
}
|
|
556
|
-
}, callback);
|
|
557
|
-
} catch (err) {}
|
|
558
|
-
};
|
|
559
|
-
|
|
560
|
-
exports.track = track;
|
|
561
|
-
|
|
562
|
-
const identify = (id, traits = {}, callback = () => {}) => {
|
|
563
|
-
try {
|
|
564
|
-
analytics.identify({
|
|
565
|
-
userId: id,
|
|
566
|
-
anonymousId,
|
|
567
|
-
traits
|
|
568
|
-
}, callback);
|
|
569
|
-
} catch (err) {}
|
|
570
|
-
};
|
|
571
|
-
|
|
572
|
-
exports.identify = identify;
|
|
573
|
-
|
|
574
|
-
const flush = (callback = () => {}) => analytics.flush(callback);
|
|
575
|
-
|
|
576
|
-
exports.flush = flush;
|
|
577
|
-
},{"./getEnvironmentVariables":"../lib/utilities/getEnvironmentVariables.js","./firestore":"../lib/utilities/firestore.js","./configStore":"../lib/utilities/configStore.js","./getCliVersion":"../lib/utilities/getCliVersion.js"}],"../lib/utilities/useExit.js":[function(require,module,exports) {
|
|
578
|
-
"use strict";
|
|
579
|
-
|
|
580
|
-
Object.defineProperty(exports, "__esModule", {
|
|
581
|
-
value: true
|
|
582
|
-
});
|
|
583
|
-
exports.default = void 0;
|
|
584
|
-
|
|
585
|
-
var _ink = require("ink");
|
|
586
|
-
|
|
587
|
-
var _analytics = require("./analytics");
|
|
588
|
-
|
|
589
|
-
var _firestore = _interopRequireDefault(require("./firestore"));
|
|
590
|
-
|
|
591
|
-
var _logger = _interopRequireDefault(require("./logger"));
|
|
592
|
-
|
|
593
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
594
|
-
|
|
595
|
-
var _default = () => {
|
|
596
|
-
const {
|
|
597
|
-
exit
|
|
598
|
-
} = (0, _ink.useApp)();
|
|
599
|
-
return error => {
|
|
600
|
-
_logger.default.debug({
|
|
601
|
-
error
|
|
602
|
-
}, "Exit called");
|
|
603
|
-
/*
|
|
604
|
-
First, destroy connections.
|
|
605
|
-
Why do we need to do this if we're going to call process.exit
|
|
606
|
-
below anyway? Just to be safe in case a Firestore subscription
|
|
607
|
-
triggers a state update after the React app is exited.
|
|
608
|
-
*/
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
_firestore.default.terminate().catch(e => // Ignore
|
|
612
|
-
_logger.default.error(e));
|
|
613
|
-
|
|
614
|
-
let timeoutId;
|
|
615
|
-
Promise.race([// flush the analytics to make sure all outstanding events are pushed to segment
|
|
616
|
-
new Promise(resolve => (0, _analytics.flush)(() => resolve())), // If it takes longer than 1 second, resolve early to proceed with program exit
|
|
617
|
-
new Promise(resolve => timeoutId = setTimeout(() => resolve(), 1000))]).catch(() => {}).finally(() => {
|
|
618
|
-
clearTimeout(timeoutId);
|
|
619
|
-
/*
|
|
620
|
-
Then, exit the React app. We don't pass the error because:
|
|
621
|
-
1. We don't want it displayed. We could give it a dummy error but
|
|
622
|
-
that will output an empty line.
|
|
623
|
-
2. It doesn't exit with the correct code anyway, see
|
|
624
|
-
https://github.com/vadimdemedes/pastel/issues/39.
|
|
625
|
-
Side note: your component must not perform state updates after
|
|
626
|
-
calling this, it will error.
|
|
627
|
-
The try-catch shouldn't be needed here, but let's be safe
|
|
628
|
-
*/
|
|
629
|
-
|
|
630
|
-
try {
|
|
631
|
-
exit();
|
|
632
|
-
} catch (e) {
|
|
633
|
-
_logger.default.error(e); // Ignore
|
|
634
|
-
|
|
635
|
-
}
|
|
636
|
-
/*
|
|
637
|
-
Then exit the process.
|
|
638
|
-
It should happen if all connections, etc. are destroyed. We manually
|
|
639
|
-
exit with a code because:
|
|
640
|
-
1. We might not clean up properly, it could fail or take a long time.
|
|
641
|
-
2. The exit function above doesn't exit the CLI with the correct
|
|
642
|
-
code anyway.
|
|
643
|
-
If we had a way to detect when the app exits, we would use that
|
|
644
|
-
and then call process.exit / destroy connections appropriately
|
|
645
|
-
(https://github.com/vadimdemedes/pastel/issues/38).
|
|
646
|
-
*/
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
setTimeout(() => process.exit(error ? 1 : 0), 10);
|
|
650
|
-
});
|
|
651
|
-
};
|
|
652
|
-
};
|
|
653
|
-
|
|
654
|
-
exports.default = _default;
|
|
655
|
-
},{"./analytics":"../lib/utilities/analytics.js","./firestore":"../lib/utilities/firestore.js","./logger":"../lib/utilities/logger.js"}],"../lib/components/ErrorDisplay.js":[function(require,module,exports) {
|
|
656
|
-
"use strict";
|
|
657
|
-
|
|
658
|
-
Object.defineProperty(exports, "__esModule", {
|
|
659
|
-
value: true
|
|
660
|
-
});
|
|
661
|
-
exports.default = void 0;
|
|
662
|
-
|
|
663
|
-
var _ink = require("ink");
|
|
664
|
-
|
|
665
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
666
|
-
|
|
667
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
668
|
-
|
|
669
|
-
var _getCliVersion = _interopRequireDefault(require("../utilities/getCliVersion"));
|
|
670
|
-
|
|
671
|
-
var _logger = _interopRequireDefault(require("../utilities/logger"));
|
|
672
|
-
|
|
673
|
-
var _useExit = _interopRequireDefault(require("../utilities/useExit"));
|
|
674
|
-
|
|
675
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
676
|
-
|
|
677
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
678
|
-
|
|
679
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
680
|
-
|
|
681
|
-
const ErrorDisplay = ({
|
|
682
|
-
commandUsed,
|
|
683
|
-
error
|
|
684
|
-
}) => {
|
|
685
|
-
const exit = (0, _useExit.default)();
|
|
686
|
-
|
|
687
|
-
_logger.default.error({
|
|
688
|
-
error
|
|
689
|
-
}); // After an error is set, exit
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
(0, _react.useEffect)(() => {
|
|
693
|
-
if (!error) {
|
|
694
|
-
return;
|
|
695
|
-
} // Just to avoid updating state after exiting the React app
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
setTimeout(() => exit(error), 10);
|
|
699
|
-
}, [exit, error]);
|
|
700
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
701
|
-
backgroundColor: "red",
|
|
702
|
-
color: "white"
|
|
703
|
-
}, " ", "ERROR", " "), /*#__PURE__*/_react.default.createElement(_ink.Text, null, error.message || error.stack || error.toString()), /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
704
|
-
flexDirection: "column",
|
|
705
|
-
marginTop: 1
|
|
706
|
-
}, commandUsed ? /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
707
|
-
dimColor: true,
|
|
708
|
-
color: "gray"
|
|
709
|
-
}, "Command: ", commandUsed) : null, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
710
|
-
dimColor: true,
|
|
711
|
-
color: "gray"
|
|
712
|
-
}, "@todesktop/cli: ", (0, _getCliVersion.default)()), /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
713
|
-
dimColor: true,
|
|
714
|
-
color: "gray"
|
|
715
|
-
}, "Node: ", process.version), /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
716
|
-
dimColor: true,
|
|
717
|
-
color: "gray"
|
|
718
|
-
}, "cwd: ", process.cwd())));
|
|
719
|
-
};
|
|
720
|
-
|
|
721
|
-
ErrorDisplay.propTypes = {
|
|
722
|
-
commandUsed: _propTypes.default.string,
|
|
723
|
-
error: _propTypes.default.object.isRequired
|
|
724
|
-
};
|
|
725
|
-
var _default = ErrorDisplay;
|
|
726
|
-
exports.default = _default;
|
|
727
|
-
},{"../utilities/getCliVersion":"../lib/utilities/getCliVersion.js","../utilities/logger":"../lib/utilities/logger.js","../utilities/useExit":"../lib/utilities/useExit.js"}],"../lib/utilities/postToFirebaseFunction.js":[function(require,module,exports) {
|
|
728
|
-
"use strict";
|
|
729
|
-
|
|
730
|
-
Object.defineProperty(exports, "__esModule", {
|
|
731
|
-
value: true
|
|
732
|
-
});
|
|
733
|
-
exports.default = _default;
|
|
734
|
-
|
|
735
|
-
var _axios = _interopRequireDefault(require("axios"));
|
|
736
|
-
|
|
737
|
-
var _getEnvironmentVariables = _interopRequireDefault(require("./getEnvironmentVariables"));
|
|
738
|
-
|
|
739
|
-
var _logger = _interopRequireDefault(require("./logger"));
|
|
740
|
-
|
|
741
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
742
|
-
|
|
743
|
-
const {
|
|
744
|
-
TODESKTOP_CLI_FIREBASE_FUNCTIONS_BASE
|
|
745
|
-
} = (0, _getEnvironmentVariables.default)();
|
|
746
|
-
|
|
747
|
-
async function _default(functionName, body = {}, config = {}) {
|
|
748
|
-
_logger.default.debug({
|
|
749
|
-
functionName,
|
|
750
|
-
body,
|
|
751
|
-
config
|
|
752
|
-
}, "postToFirebaseFunction");
|
|
753
|
-
|
|
754
|
-
try {
|
|
755
|
-
const response = await _axios.default.post(`${TODESKTOP_CLI_FIREBASE_FUNCTIONS_BASE}${functionName}`, body, config);
|
|
756
|
-
|
|
757
|
-
_logger.default.debug({
|
|
758
|
-
responseData: response.data
|
|
759
|
-
}, "postToFirebaseFunction: success");
|
|
760
|
-
|
|
761
|
-
return response.data;
|
|
762
|
-
} catch (e) {
|
|
763
|
-
_logger.default.error({
|
|
764
|
-
error: e
|
|
765
|
-
}, "postToFirebaseFunction: error");
|
|
766
|
-
|
|
767
|
-
throw e;
|
|
768
|
-
}
|
|
769
|
-
}
|
|
770
|
-
},{"./getEnvironmentVariables":"../lib/utilities/getEnvironmentVariables.js","./logger":"../lib/utilities/logger.js"}],"../lib/components/Login.js":[function(require,module,exports) {
|
|
771
|
-
"use strict";
|
|
772
|
-
|
|
773
|
-
Object.defineProperty(exports, "__esModule", {
|
|
774
|
-
value: true
|
|
775
|
-
});
|
|
776
|
-
exports.default = void 0;
|
|
777
|
-
|
|
778
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
779
|
-
|
|
780
|
-
var _ink = require("ink");
|
|
781
|
-
|
|
782
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
783
|
-
|
|
784
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
785
|
-
|
|
786
|
-
var _reactFinalForm = require("react-final-form");
|
|
787
|
-
|
|
788
|
-
var _TextInput = _interopRequireDefault(require("../components/TextInput"));
|
|
789
|
-
|
|
790
|
-
var _ErrorDisplay = _interopRequireDefault(require("./ErrorDisplay"));
|
|
791
|
-
|
|
792
|
-
var _postToFirebaseFunction = _interopRequireDefault(require("../utilities/postToFirebaseFunction"));
|
|
793
|
-
|
|
794
|
-
var _firestore = require("../utilities/firestore");
|
|
795
|
-
|
|
796
|
-
var _configStore = require("../utilities/configStore");
|
|
797
|
-
|
|
798
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
799
|
-
|
|
800
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
801
|
-
|
|
802
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
803
|
-
|
|
804
|
-
// modules
|
|
805
|
-
// components
|
|
806
|
-
// logic
|
|
807
|
-
const loginFields = [{
|
|
808
|
-
name: "email",
|
|
809
|
-
label: "Your email",
|
|
810
|
-
placeholder: "name@email.com",
|
|
811
|
-
Input: _TextInput.default,
|
|
812
|
-
validate: value => {
|
|
813
|
-
if (!value) return "Required";
|
|
814
|
-
}
|
|
815
|
-
}, {
|
|
816
|
-
name: "accessToken",
|
|
817
|
-
label: "Your access token",
|
|
818
|
-
placeholder: "********",
|
|
819
|
-
Input: _TextInput.default,
|
|
820
|
-
validate: value => {
|
|
821
|
-
if (!value) return "Required";
|
|
822
|
-
},
|
|
823
|
-
mask: "*"
|
|
824
|
-
}];
|
|
825
|
-
|
|
826
|
-
const Login = ({
|
|
827
|
-
setIsLoggedIn
|
|
828
|
-
}) => {
|
|
829
|
-
const [activeField, setActiveField] = (0, _react.useState)(0);
|
|
830
|
-
const [error, setError] = (0, _react.useState)(null);
|
|
831
|
-
const [failureMessage, setFailureMessage] = (0, _react.useState)(null);
|
|
832
|
-
const [isSubmittingForm, setIsSubmittingForm] = (0, _react.useState)(false);
|
|
833
|
-
|
|
834
|
-
const onFailure = message => {
|
|
835
|
-
setIsSubmittingForm(false);
|
|
836
|
-
setFailureMessage(message);
|
|
837
|
-
setActiveField(0);
|
|
838
|
-
}; // login handler that verifies accessToken and email with that in firebase
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
const onSubmitLogin = async ({
|
|
842
|
-
email,
|
|
843
|
-
accessToken
|
|
844
|
-
}) => {
|
|
845
|
-
setFailureMessage(null);
|
|
846
|
-
setIsSubmittingForm(true);
|
|
847
|
-
|
|
848
|
-
try {
|
|
849
|
-
const jwtToken = await (0, _postToFirebaseFunction.default)("loginWithAccessToken", {
|
|
850
|
-
email,
|
|
851
|
-
accessToken
|
|
852
|
-
});
|
|
853
|
-
|
|
854
|
-
if (jwtToken) {
|
|
855
|
-
await (0, _firestore.signInWithCustomToken)(jwtToken);
|
|
856
|
-
(0, _configStore.setAuthConfig)(email, accessToken, jwtToken);
|
|
857
|
-
setIsLoggedIn(true);
|
|
858
|
-
} else {
|
|
859
|
-
onFailure("Incorrrect credentials. Try again");
|
|
860
|
-
}
|
|
861
|
-
} catch (err) {
|
|
862
|
-
if (err.code === 500) {
|
|
863
|
-
setError(err);
|
|
864
|
-
} else {
|
|
865
|
-
onFailure(`Login unsuccessful: ${err.message}`);
|
|
866
|
-
}
|
|
867
|
-
}
|
|
868
|
-
};
|
|
869
|
-
|
|
870
|
-
if (error) return /*#__PURE__*/_react.default.createElement(_ErrorDisplay.default, {
|
|
871
|
-
error: error
|
|
872
|
-
});
|
|
873
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ink.Text, null, "You are not currently logged in."), /*#__PURE__*/_react.default.createElement(_ink.Text, null, "Log in below:"), /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
874
|
-
marginBottom: 1
|
|
875
|
-
}), /*#__PURE__*/_react.default.createElement(_reactFinalForm.Form, {
|
|
876
|
-
onSubmit: onSubmitLogin
|
|
877
|
-
}, ({
|
|
878
|
-
handleSubmit,
|
|
879
|
-
validating,
|
|
880
|
-
form
|
|
881
|
-
}) => /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
882
|
-
flexDirection: "column"
|
|
883
|
-
}, loginFields.map(({
|
|
884
|
-
name,
|
|
885
|
-
label,
|
|
886
|
-
placeholder,
|
|
887
|
-
validate,
|
|
888
|
-
Input,
|
|
889
|
-
mask
|
|
890
|
-
}, index) => /*#__PURE__*/_react.default.createElement(_reactFinalForm.Field, {
|
|
891
|
-
name: name,
|
|
892
|
-
key: name,
|
|
893
|
-
validate: validate
|
|
894
|
-
}, ({
|
|
895
|
-
input,
|
|
896
|
-
meta
|
|
897
|
-
}) => /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
898
|
-
flexDirection: "column"
|
|
899
|
-
}, activeField >= index ? /*#__PURE__*/_react.default.createElement(_ink.Box, null, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
900
|
-
bold: activeField === index
|
|
901
|
-
}, label, ": "), activeField === index ? /*#__PURE__*/_react.default.createElement(Input, (0, _extends2.default)({}, input, {
|
|
902
|
-
mask: mask,
|
|
903
|
-
placeholder: placeholder,
|
|
904
|
-
onSubmit: () => {
|
|
905
|
-
if (meta.valid && !validating) {
|
|
906
|
-
setActiveField(value => value + 1); // go to next field
|
|
907
|
-
|
|
908
|
-
if (activeField === loginFields.length - 1) {
|
|
909
|
-
// last field, so submit
|
|
910
|
-
handleSubmit();
|
|
911
|
-
}
|
|
912
|
-
} else {
|
|
913
|
-
input.onBlur(); // mark as touched to show error
|
|
914
|
-
}
|
|
915
|
-
}
|
|
916
|
-
})) : input.value && /*#__PURE__*/_react.default.createElement(_ink.Text, null, name === "accessToken" ? input.value.replace(/./gi, "*") : input.value) || placeholder && /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
917
|
-
color: "gray"
|
|
918
|
-
}, placeholder), meta.invalid && meta.touched && /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
919
|
-
marginLeft: 2,
|
|
920
|
-
marginRight: 1
|
|
921
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
922
|
-
color: "red"
|
|
923
|
-
}, "\u2716")), meta.error && meta.touched && /*#__PURE__*/_react.default.createElement(Error, {
|
|
924
|
-
errorMessage: meta.error
|
|
925
|
-
})) : null))))), isSubmittingForm && /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
926
|
-
marginTop: 1
|
|
927
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, null, "Logging in...")), failureMessage && /*#__PURE__*/_react.default.createElement(Error, {
|
|
928
|
-
errorMessage: failureMessage,
|
|
929
|
-
marginTop: true
|
|
930
|
-
}));
|
|
931
|
-
};
|
|
932
|
-
|
|
933
|
-
const Error = ({
|
|
934
|
-
errorMessage,
|
|
935
|
-
marginTop
|
|
936
|
-
}) => /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
937
|
-
marginTop: marginTop ? 1 : 0
|
|
938
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
939
|
-
color: "red"
|
|
940
|
-
}, errorMessage));
|
|
941
|
-
|
|
942
|
-
Error.propTypes = {
|
|
943
|
-
errorMessage: _propTypes.default.string.isRequired,
|
|
944
|
-
marginTop: _propTypes.default.bool
|
|
945
|
-
};
|
|
946
|
-
Login.propTypes = {
|
|
947
|
-
setIsLoggedIn: _propTypes.default.func.isRequired
|
|
948
|
-
};
|
|
949
|
-
var _default = Login;
|
|
950
|
-
exports.default = _default;
|
|
951
|
-
},{"../components/TextInput":"../lib/components/TextInput.js","./ErrorDisplay":"../lib/components/ErrorDisplay.js","../utilities/postToFirebaseFunction":"../lib/utilities/postToFirebaseFunction.js","../utilities/firestore":"../lib/utilities/firestore.js","../utilities/configStore":"../lib/utilities/configStore.js"}],"../lib/components/LoginHOC.js":[function(require,module,exports) {
|
|
952
|
-
"use strict";
|
|
953
|
-
|
|
954
|
-
Object.defineProperty(exports, "__esModule", {
|
|
955
|
-
value: true
|
|
956
|
-
});
|
|
957
|
-
exports.default = void 0;
|
|
958
|
-
|
|
959
|
-
var _ink = require("ink");
|
|
960
|
-
|
|
961
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
962
|
-
|
|
963
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
964
|
-
|
|
965
|
-
var _isCi = _interopRequireDefault(require("is-ci"));
|
|
966
|
-
|
|
967
|
-
var _Login = _interopRequireDefault(require("./Login"));
|
|
968
|
-
|
|
969
|
-
var _firestore = require("../utilities/firestore");
|
|
970
|
-
|
|
971
|
-
var _configStore = require("../utilities/configStore");
|
|
972
|
-
|
|
973
|
-
var _postToFirebaseFunction = _interopRequireDefault(require("../utilities/postToFirebaseFunction"));
|
|
974
|
-
|
|
975
|
-
var _getEnvironmentVariables = _interopRequireDefault(require("../utilities/getEnvironmentVariables"));
|
|
976
|
-
|
|
977
|
-
var _ErrorDisplay = _interopRequireDefault(require("./ErrorDisplay"));
|
|
978
|
-
|
|
979
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
980
|
-
|
|
981
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
982
|
-
|
|
983
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
984
|
-
|
|
985
|
-
// components
|
|
986
|
-
// logic
|
|
987
|
-
const LoginHOC = ({
|
|
988
|
-
children,
|
|
989
|
-
isInteractive = true
|
|
990
|
-
}) => {
|
|
991
|
-
const [isLoggedIn, setIsLoggedIn] = (0, _react.useState)(false);
|
|
992
|
-
const [isEffectDone, setEffectDone] = (0, _react.useState)(false);
|
|
993
|
-
const [error, setError] = (0, _react.useState)(null);
|
|
994
|
-
const {
|
|
995
|
-
isRawModeSupported
|
|
996
|
-
} = (0, _ink.useStdin)();
|
|
997
|
-
|
|
998
|
-
const onFailure = (message, err = {}) => {
|
|
999
|
-
setError({ ...err,
|
|
1000
|
-
message
|
|
1001
|
-
});
|
|
1002
|
-
}; // use effect for determining if tokens exist and are valid
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
(0, _react.useEffect)(() => {
|
|
1006
|
-
async function isAccessTokenValid() {
|
|
1007
|
-
const {
|
|
1008
|
-
accessToken,
|
|
1009
|
-
email,
|
|
1010
|
-
jwtToken
|
|
1011
|
-
} = (0, _configStore.getAuthConfig)();
|
|
1012
|
-
let userCreds = null;
|
|
1013
|
-
const {
|
|
1014
|
-
TODESKTOP_ACCESS_TOKEN,
|
|
1015
|
-
TODESKTOP_EMAIL
|
|
1016
|
-
} = (0, _getEnvironmentVariables.default)(); // 1. attempt log in with environment variables if present
|
|
1017
|
-
|
|
1018
|
-
try {
|
|
1019
|
-
if (TODESKTOP_ACCESS_TOKEN && TODESKTOP_EMAIL) {
|
|
1020
|
-
const newJwtToken = await (0, _postToFirebaseFunction.default)("loginWithAccessToken", {
|
|
1021
|
-
email: TODESKTOP_EMAIL,
|
|
1022
|
-
accessToken: TODESKTOP_ACCESS_TOKEN
|
|
1023
|
-
});
|
|
1024
|
-
|
|
1025
|
-
if (newJwtToken) {
|
|
1026
|
-
userCreds = await (0, _firestore.signInWithCustomToken)(newJwtToken);
|
|
1027
|
-
if (userCreds.user) setIsLoggedIn(true);
|
|
1028
|
-
} // if no environment variables set and is in a CI, set alert message and exit
|
|
1029
|
-
|
|
1030
|
-
} else if (!isRawModeSupported || _isCi.default) {
|
|
1031
|
-
onFailure("ToDesktop environment variables not found. When automating builds with your CI provider, you need to specify environment variables for TODESKTOP_EMAIL and TODESKTOP_ACCESS_TOKEN.");
|
|
1032
|
-
}
|
|
1033
|
-
} catch (err) {
|
|
1034
|
-
// print error and stop the app execution if env variables attempted
|
|
1035
|
-
onFailure("Log in with environment variables failed.", err);
|
|
1036
|
-
} // 2. attempt log in with jwtToken if present
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
try {
|
|
1040
|
-
if (!userCreds && jwtToken) {
|
|
1041
|
-
userCreds = await (0, _firestore.signInWithCustomToken)(jwtToken);
|
|
1042
|
-
if (userCreds.user) setIsLoggedIn(true);
|
|
1043
|
-
}
|
|
1044
|
-
} catch (err) {// do nothing, attempt login with accessToken and email
|
|
1045
|
-
} // 3. attempt log in with accessToken and email on disk
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
try {
|
|
1049
|
-
if (!userCreds && accessToken && email) {
|
|
1050
|
-
const newJwtToken = await (0, _postToFirebaseFunction.default)("loginWithAccessToken", {
|
|
1051
|
-
email,
|
|
1052
|
-
accessToken
|
|
1053
|
-
});
|
|
1054
|
-
|
|
1055
|
-
if (newJwtToken) {
|
|
1056
|
-
userCreds = await (0, _firestore.signInWithCustomToken)(newJwtToken);
|
|
1057
|
-
(0, _configStore.setAuthConfig)(email, accessToken, newJwtToken);
|
|
1058
|
-
if (userCreds.user) setIsLoggedIn(true);
|
|
1059
|
-
}
|
|
1060
|
-
}
|
|
1061
|
-
} catch (err) {// do nothing: no error state and not logged in state means render login
|
|
1062
|
-
}
|
|
1063
|
-
|
|
1064
|
-
setEffectDone(true);
|
|
1065
|
-
}
|
|
1066
|
-
|
|
1067
|
-
isAccessTokenValid();
|
|
1068
|
-
}, []);
|
|
1069
|
-
|
|
1070
|
-
if (error && isInteractive) {
|
|
1071
|
-
return /*#__PURE__*/_react.default.createElement(_ErrorDisplay.default, {
|
|
1072
|
-
error: error
|
|
1073
|
-
});
|
|
1074
|
-
}
|
|
1075
|
-
|
|
1076
|
-
if (!isEffectDone) {
|
|
1077
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Text, null, "...");
|
|
1078
|
-
}
|
|
1079
|
-
|
|
1080
|
-
if (!isLoggedIn && isInteractive) {
|
|
1081
|
-
return /*#__PURE__*/_react.default.createElement(_Login.default, {
|
|
1082
|
-
setIsLoggedIn: setIsLoggedIn
|
|
1083
|
-
});
|
|
1084
|
-
}
|
|
1085
|
-
|
|
1086
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, children);
|
|
1087
|
-
};
|
|
1088
|
-
|
|
1089
|
-
LoginHOC.propTypes = {
|
|
1090
|
-
children: _propTypes.default.object,
|
|
1091
|
-
isInteractive: _propTypes.default.bool
|
|
1092
|
-
};
|
|
1093
|
-
var _default = LoginHOC;
|
|
1094
|
-
exports.default = _default;
|
|
1095
|
-
},{"./Login":"../lib/components/Login.js","../utilities/firestore":"../lib/utilities/firestore.js","../utilities/configStore":"../lib/utilities/configStore.js","../utilities/postToFirebaseFunction":"../lib/utilities/postToFirebaseFunction.js","../utilities/getEnvironmentVariables":"../lib/utilities/getEnvironmentVariables.js","./ErrorDisplay":"../lib/components/ErrorDisplay.js"}],"../lib/components/ErrorBoundary.js":[function(require,module,exports) {
|
|
1096
|
-
"use strict";
|
|
1097
|
-
|
|
1098
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1099
|
-
value: true
|
|
1100
|
-
});
|
|
1101
|
-
exports.default = void 0;
|
|
1102
|
-
|
|
1103
|
-
var _react = _interopRequireDefault(require("react"));
|
|
1104
|
-
|
|
1105
|
-
var Sentry = _interopRequireWildcard(require("@sentry/node"));
|
|
1106
|
-
|
|
1107
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
1108
|
-
|
|
1109
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
1110
|
-
|
|
1111
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1112
|
-
|
|
1113
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1114
|
-
|
|
1115
|
-
class ErrorBoundary extends _react.default.Component {
|
|
1116
|
-
constructor(props) {
|
|
1117
|
-
super(props);
|
|
1118
|
-
this.state = {
|
|
1119
|
-
eventId: null,
|
|
1120
|
-
error: null
|
|
1121
|
-
};
|
|
1122
|
-
}
|
|
1123
|
-
|
|
1124
|
-
static getDerivedStateFromError(error) {
|
|
1125
|
-
return {
|
|
1126
|
-
error
|
|
1127
|
-
};
|
|
1128
|
-
}
|
|
1129
|
-
|
|
1130
|
-
componentDidCatch(error, errorInfo) {
|
|
1131
|
-
Sentry.withScope(scope => {
|
|
1132
|
-
scope.setExtras(errorInfo);
|
|
1133
|
-
const eventId = Sentry.captureException(error);
|
|
1134
|
-
this.setState({
|
|
1135
|
-
eventId
|
|
1136
|
-
});
|
|
1137
|
-
});
|
|
1138
|
-
}
|
|
1139
|
-
|
|
1140
|
-
render() {
|
|
1141
|
-
if (this.state.error) {
|
|
1142
|
-
throw this.state.error;
|
|
1143
|
-
}
|
|
1144
|
-
|
|
1145
|
-
return this.props.children;
|
|
1146
|
-
}
|
|
1147
|
-
|
|
1148
|
-
}
|
|
1149
|
-
|
|
1150
|
-
ErrorBoundary.propTypes = {
|
|
1151
|
-
children: _propTypes.default.object
|
|
1152
|
-
};
|
|
1153
|
-
var _default = ErrorBoundary;
|
|
1154
|
-
exports.default = _default;
|
|
1155
|
-
},{}],"../lib/utilities/logForCI.js":[function(require,module,exports) {
|
|
1156
|
-
"use strict";
|
|
1157
|
-
|
|
1158
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1159
|
-
value: true
|
|
1160
|
-
});
|
|
1161
|
-
exports.default = void 0;
|
|
1162
|
-
|
|
1163
|
-
var _isCi = _interopRequireDefault(require("is-ci"));
|
|
1164
|
-
|
|
1165
|
-
var _logger = _interopRequireDefault(require("./logger"));
|
|
1166
|
-
|
|
1167
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1168
|
-
|
|
1169
|
-
var _default = (...args) => {
|
|
1170
|
-
_logger.default.info({
|
|
1171
|
-
args
|
|
1172
|
-
}, "logForCI");
|
|
1173
|
-
|
|
1174
|
-
if (!_isCi.default) {
|
|
1175
|
-
return;
|
|
1176
|
-
}
|
|
1177
|
-
|
|
1178
|
-
console.log(...args);
|
|
1179
|
-
};
|
|
1180
|
-
|
|
1181
|
-
exports.default = _default;
|
|
1182
|
-
},{"./logger":"../lib/utilities/logger.js"}],"../lib/components/BuildCompleteMessage.js":[function(require,module,exports) {
|
|
1183
|
-
"use strict";
|
|
1184
|
-
|
|
1185
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1186
|
-
value: true
|
|
1187
|
-
});
|
|
1188
|
-
exports.default = void 0;
|
|
1189
|
-
|
|
1190
|
-
var _ink = require("ink");
|
|
1191
|
-
|
|
1192
|
-
var _inkLink = _interopRequireDefault(require("ink-link"));
|
|
1193
|
-
|
|
1194
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
1195
|
-
|
|
1196
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
1197
|
-
|
|
1198
|
-
var _logForCI = _interopRequireDefault(require("../utilities/logForCI"));
|
|
1199
|
-
|
|
1200
|
-
var _useExit = _interopRequireDefault(require("../utilities/useExit"));
|
|
1201
|
-
|
|
1202
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
1203
|
-
|
|
1204
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1205
|
-
|
|
1206
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1207
|
-
|
|
1208
|
-
const BuildCompleteMessage = ({
|
|
1209
|
-
build
|
|
1210
|
-
}) => {
|
|
1211
|
-
const exit = (0, _useExit.default)();
|
|
1212
|
-
const url = build.standardUniversalDownloadUrl;
|
|
1213
|
-
(0, _logForCI.default)(`Build complete! ${url}`); // On build completion, exit with non-error code
|
|
1214
|
-
|
|
1215
|
-
(0, _react.useEffect)(() => {
|
|
1216
|
-
if (url) {
|
|
1217
|
-
// Just to avoid updating state after exiting the React app
|
|
1218
|
-
setTimeout(exit, 10);
|
|
1219
|
-
}
|
|
1220
|
-
}, [exit, url]);
|
|
1221
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1222
|
-
marginBottom: 1
|
|
1223
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, null, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
1224
|
-
bold: true
|
|
1225
|
-
}, "Build complete!"), " ", /*#__PURE__*/_react.default.createElement(_inkLink.default, {
|
|
1226
|
-
fallback: false,
|
|
1227
|
-
url: url
|
|
1228
|
-
}, url || "")));
|
|
1229
|
-
};
|
|
1230
|
-
|
|
1231
|
-
BuildCompleteMessage.propTypes = {
|
|
1232
|
-
build: _propTypes.default.object.isRequired
|
|
1233
|
-
};
|
|
1234
|
-
var _default = BuildCompleteMessage;
|
|
1235
|
-
exports.default = _default;
|
|
1236
|
-
},{"../utilities/logForCI":"../lib/utilities/logForCI.js","../utilities/useExit":"../lib/utilities/useExit.js"}],"../lib/components/PlatformProgress.js":[function(require,module,exports) {
|
|
1237
|
-
"use strict";
|
|
1238
|
-
|
|
1239
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1240
|
-
value: true
|
|
1241
|
-
});
|
|
1242
|
-
exports.default = void 0;
|
|
1243
|
-
|
|
1244
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
1245
|
-
|
|
1246
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
1247
|
-
|
|
1248
|
-
var _ink = require("ink");
|
|
1249
|
-
|
|
1250
|
-
var _inkLink = _interopRequireDefault(require("ink-link"));
|
|
1251
|
-
|
|
1252
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1253
|
-
|
|
1254
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
1255
|
-
|
|
1256
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1257
|
-
|
|
1258
|
-
const preLabelMaxWidth = "More info: ".length;
|
|
1259
|
-
|
|
1260
|
-
const getProgressPercentageLabel = (percentage, activityType) => {
|
|
1261
|
-
let backgroundColor = "white";
|
|
1262
|
-
let color = "black";
|
|
1263
|
-
|
|
1264
|
-
if (activityType === "error") {
|
|
1265
|
-
backgroundColor = "red";
|
|
1266
|
-
} else if (percentage === 100) {
|
|
1267
|
-
backgroundColor = "green";
|
|
1268
|
-
color = "black";
|
|
1269
|
-
}
|
|
1270
|
-
|
|
1271
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
1272
|
-
backgroundColor: backgroundColor,
|
|
1273
|
-
color: color
|
|
1274
|
-
}, " ", Math.round(percentage).toString().padStart(2, "0"), "%", " "), /*#__PURE__*/_react.default.createElement(_ink.Text, null, " "));
|
|
1275
|
-
};
|
|
1276
|
-
|
|
1277
|
-
const PlatformProgress = ({
|
|
1278
|
-
activityName,
|
|
1279
|
-
activityType,
|
|
1280
|
-
downloadUrl,
|
|
1281
|
-
percent,
|
|
1282
|
-
platform,
|
|
1283
|
-
shouldShowReadyPrefix
|
|
1284
|
-
}) => {
|
|
1285
|
-
let progressIndicator;
|
|
1286
|
-
|
|
1287
|
-
if (activityType === "done") {
|
|
1288
|
-
progressIndicator = /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1289
|
-
flexDirection: "column",
|
|
1290
|
-
marginBottom: 1
|
|
1291
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, null, getProgressPercentageLabel(100), shouldShowReadyPrefix ? "Ready!" : ""), /*#__PURE__*/_react.default.createElement(_inkLink.default, {
|
|
1292
|
-
fallback: false,
|
|
1293
|
-
url: downloadUrl
|
|
1294
|
-
}, downloadUrl));
|
|
1295
|
-
} else {
|
|
1296
|
-
let activityNameToDisplay = activityName.replace(/(?:\r\n|\r|\n)\s*/g, "↵ ");
|
|
1297
|
-
|
|
1298
|
-
if (activityNameToDisplay.length > 64) {
|
|
1299
|
-
activityNameToDisplay = `${activityNameToDisplay.substr(0, 61)}...`;
|
|
1300
|
-
}
|
|
1301
|
-
|
|
1302
|
-
progressIndicator = /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1303
|
-
flexDirection: "column",
|
|
1304
|
-
marginBottom: 1
|
|
1305
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, null, ["preparation", "queue"].includes(activityType) ? undefined : getProgressPercentageLabel(percent, activityType), activityNameToDisplay, activityType === "error" ? "" : /*#__PURE__*/_react.default.createElement(_ink.Text, null, "..."))));
|
|
1306
|
-
}
|
|
1307
|
-
|
|
1308
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Box, null, /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1309
|
-
width: preLabelMaxWidth
|
|
1310
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, null, platform[0].toUpperCase() + platform.substr(1), ": ")), progressIndicator);
|
|
1311
|
-
};
|
|
1312
|
-
|
|
1313
|
-
PlatformProgress.propTypes = {
|
|
1314
|
-
activityName: _propTypes.default.string.isRequired,
|
|
1315
|
-
activityType: _propTypes.default.string.isRequired,
|
|
1316
|
-
downloadUrl: _propTypes.default.string,
|
|
1317
|
-
percent: _propTypes.default.number.isRequired,
|
|
1318
|
-
platform: _propTypes.default.string.isRequired,
|
|
1319
|
-
shouldShowReadyPrefix: _propTypes.default.bool
|
|
1320
|
-
};
|
|
1321
|
-
var _default = PlatformProgress;
|
|
1322
|
-
exports.default = _default;
|
|
1323
|
-
},{}],"../lib/utilities/buildStatus.js":[function(require,module,exports) {
|
|
1324
|
-
"use strict";
|
|
1325
|
-
|
|
1326
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1327
|
-
value: true
|
|
1328
|
-
});
|
|
1329
|
-
exports.isPlatformBuildRunning = exports.isBuildRunning = exports.isBuildCancellable = exports.hasBuildKickedOff = void 0;
|
|
1330
|
-
|
|
1331
|
-
const hasBuildKickedOff = build => {
|
|
1332
|
-
if (!build) {
|
|
1333
|
-
return false;
|
|
1334
|
-
}
|
|
1335
|
-
|
|
1336
|
-
return build.status && build.status !== "preparation";
|
|
1337
|
-
}; // NOTE: this relies on Firestore solely
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
exports.hasBuildKickedOff = hasBuildKickedOff;
|
|
1341
|
-
|
|
1342
|
-
const isBuildCancellable = build => hasBuildKickedOff(build) && isBuildRunning(build);
|
|
1343
|
-
|
|
1344
|
-
exports.isBuildCancellable = isBuildCancellable;
|
|
1345
|
-
|
|
1346
|
-
const isBuildRunning = build => {
|
|
1347
|
-
if (!build) {
|
|
1348
|
-
return false;
|
|
1349
|
-
}
|
|
1350
|
-
|
|
1351
|
-
return !["cancelled", "succeeded"].includes(build.status) && ["linux", "mac", "windows"].some(platform => isPlatformBuildRunning(build[platform]));
|
|
1352
|
-
};
|
|
1353
|
-
|
|
1354
|
-
exports.isBuildRunning = isBuildRunning;
|
|
1355
|
-
|
|
1356
|
-
const isPlatformBuildRunning = platformBuild => {
|
|
1357
|
-
if (!platformBuild) {
|
|
1358
|
-
return false;
|
|
1359
|
-
}
|
|
1360
|
-
|
|
1361
|
-
return !platformBuild.shouldSkip && // <-- Noteworthy
|
|
1362
|
-
!["cancelled", "succeeded"].includes(platformBuild.status) && ("failed" !== platformBuild.status || platformBuild.numberOfAttemptedBuilds < 2);
|
|
1363
|
-
};
|
|
1364
|
-
|
|
1365
|
-
exports.isPlatformBuildRunning = isPlatformBuildRunning;
|
|
1366
|
-
},{}],"../lib/components/BuildProgress.js":[function(require,module,exports) {
|
|
1367
|
-
"use strict";
|
|
1368
|
-
|
|
1369
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1370
|
-
value: true
|
|
1371
|
-
});
|
|
1372
|
-
exports.default = void 0;
|
|
1373
|
-
|
|
1374
|
-
var _ink = require("ink");
|
|
1375
|
-
|
|
1376
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
1377
|
-
|
|
1378
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
1379
|
-
|
|
1380
|
-
var _lodash = _interopRequireDefault(require("lodash.throttle"));
|
|
1381
|
-
|
|
1382
|
-
var _BuildCompleteMessage = _interopRequireDefault(require("./BuildCompleteMessage"));
|
|
1383
|
-
|
|
1384
|
-
var _PlatformProgress = _interopRequireDefault(require("./PlatformProgress"));
|
|
1385
|
-
|
|
1386
|
-
var _buildStatus = require("../utilities/buildStatus");
|
|
1387
|
-
|
|
1388
|
-
var _logger = _interopRequireDefault(require("../utilities/logger"));
|
|
1389
|
-
|
|
1390
|
-
var _logForCI = _interopRequireDefault(require("../utilities/logForCI"));
|
|
1391
|
-
|
|
1392
|
-
var _useExit = _interopRequireDefault(require("../utilities/useExit"));
|
|
1393
|
-
|
|
1394
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
1395
|
-
|
|
1396
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1397
|
-
|
|
1398
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1399
|
-
|
|
1400
|
-
const logForCIThrottled = (0, _lodash.default)(_logForCI.default, 60 * 1000, {
|
|
1401
|
-
trailing: true
|
|
1402
|
-
});
|
|
1403
|
-
|
|
1404
|
-
const BuildProgress = ({
|
|
1405
|
-
build,
|
|
1406
|
-
onBuildFailure
|
|
1407
|
-
}) => {
|
|
1408
|
-
_logger.default.debug("BuildProgress component: render");
|
|
1409
|
-
|
|
1410
|
-
const exit = (0, _useExit.default)();
|
|
1411
|
-
const [{
|
|
1412
|
-
hasKickedOff
|
|
1413
|
-
}, setState] = (0, _react.useState)({
|
|
1414
|
-
hasKickedOff: false
|
|
1415
|
-
});
|
|
1416
|
-
const platformsNotSkipped = ["windows", "mac", "linux"].filter(platform => !build[platform].shouldSkip);
|
|
1417
|
-
(0, _react.useEffect)(() => {
|
|
1418
|
-
setState(previousState => ({ ...previousState,
|
|
1419
|
-
hasKickedOff: (0, _buildStatus.hasBuildKickedOff)(build)
|
|
1420
|
-
}));
|
|
1421
|
-
}, [build]);
|
|
1422
|
-
(0, _react.useEffect)(() => {
|
|
1423
|
-
if (build.status === "failed") {
|
|
1424
|
-
onBuildFailure(build.errorMessage);
|
|
1425
|
-
} else if (build.status === "cancelled") {
|
|
1426
|
-
setTimeout(exit, 10);
|
|
1427
|
-
} else {
|
|
1428
|
-
const ciPlatformProgress = platformsNotSkipped.map(platform => `${platform.charAt(0).toUpperCase() + platform.slice(1)}: ${build[platform].progressActivityName} (${build[platform].progressPercentage}%)`);
|
|
1429
|
-
logForCIThrottled(ciPlatformProgress.join(", "));
|
|
1430
|
-
}
|
|
1431
|
-
}, [build, exit, onBuildFailure, platformsNotSkipped]);
|
|
1432
|
-
|
|
1433
|
-
if (build.status === "succeeded") {
|
|
1434
|
-
return /*#__PURE__*/_react.default.createElement(_BuildCompleteMessage.default, {
|
|
1435
|
-
build: build
|
|
1436
|
-
});
|
|
1437
|
-
}
|
|
1438
|
-
|
|
1439
|
-
if (build.status === "cancelled") {
|
|
1440
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1441
|
-
flexDirection: "column",
|
|
1442
|
-
marginBottom: 1
|
|
1443
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, null, "Build cancelled"));
|
|
1444
|
-
}
|
|
1445
|
-
|
|
1446
|
-
if (!hasKickedOff) {
|
|
1447
|
-
return null;
|
|
1448
|
-
}
|
|
1449
|
-
|
|
1450
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1451
|
-
flexDirection: "column"
|
|
1452
|
-
}, platformsNotSkipped.map(platform => /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1453
|
-
flexDirection: "column",
|
|
1454
|
-
key: platform
|
|
1455
|
-
}, /*#__PURE__*/_react.default.createElement(_PlatformProgress.default, {
|
|
1456
|
-
activityName: build[platform].status === "failed" ? build[platform].errorMessage : build[platform].progressActivityName,
|
|
1457
|
-
activityType: build[platform].status === "failed" ? "error" : build[platform].progressActivityType,
|
|
1458
|
-
downloadUrl: build[platform].standardDownloadUrl,
|
|
1459
|
-
percent: build[platform].progressPercentage,
|
|
1460
|
-
platform: platform,
|
|
1461
|
-
shouldShowReadyPrefix: !(build && ["failed", "succeeded"].includes(build.status))
|
|
1462
|
-
})))));
|
|
1463
|
-
};
|
|
1464
|
-
|
|
1465
|
-
BuildProgress.propTypes = {
|
|
1466
|
-
build: _propTypes.default.object.isRequired,
|
|
1467
|
-
onBuildFailure: _propTypes.default.func.isRequired
|
|
1468
|
-
};
|
|
1469
|
-
var _default = BuildProgress;
|
|
1470
|
-
exports.default = _default;
|
|
1471
|
-
},{"./BuildCompleteMessage":"../lib/components/BuildCompleteMessage.js","./PlatformProgress":"../lib/components/PlatformProgress.js","../utilities/buildStatus":"../lib/utilities/buildStatus.js","../utilities/logger":"../lib/utilities/logger.js","../utilities/logForCI":"../lib/utilities/logForCI.js","../utilities/useExit":"../lib/utilities/useExit.js"}],"../lib/utilities/getCallableFirebaseFunction.js":[function(require,module,exports) {
|
|
1472
|
-
"use strict";
|
|
1473
|
-
|
|
1474
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1475
|
-
value: true
|
|
1476
|
-
});
|
|
1477
|
-
exports.default = void 0;
|
|
1478
|
-
|
|
1479
|
-
var firebase = _interopRequireWildcard(require("firebase/app"));
|
|
1480
|
-
|
|
1481
|
-
require("firebase/functions");
|
|
1482
|
-
|
|
1483
|
-
var _getEnvironmentVariables = _interopRequireDefault(require("./getEnvironmentVariables"));
|
|
1484
|
-
|
|
1485
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1486
|
-
|
|
1487
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
1488
|
-
|
|
1489
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1490
|
-
|
|
1491
|
-
if ((0, _getEnvironmentVariables.default)().TODESKTOP_CLI_ENV === "development") {
|
|
1492
|
-
firebase.functions().useFunctionsEmulator("http://localhost:5000");
|
|
1493
|
-
}
|
|
1494
|
-
|
|
1495
|
-
var _default = functionName => firebase.functions().httpsCallable(functionName);
|
|
1496
|
-
|
|
1497
|
-
exports.default = _default;
|
|
1498
|
-
},{"./getEnvironmentVariables":"../lib/utilities/getEnvironmentVariables.js"}],"../lib/components/CancelBuild.js":[function(require,module,exports) {
|
|
1499
|
-
"use strict";
|
|
1500
|
-
|
|
1501
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1502
|
-
value: true
|
|
1503
|
-
});
|
|
1504
|
-
exports.default = void 0;
|
|
1505
|
-
|
|
1506
|
-
var _ink = require("ink");
|
|
1507
|
-
|
|
1508
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
1509
|
-
|
|
1510
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
1511
|
-
|
|
1512
|
-
var _ErrorDisplay = _interopRequireDefault(require("./ErrorDisplay"));
|
|
1513
|
-
|
|
1514
|
-
var _getCallableFirebaseFunction = _interopRequireDefault(require("../utilities/getCallableFirebaseFunction"));
|
|
1515
|
-
|
|
1516
|
-
var _logForCI = _interopRequireDefault(require("../utilities/logForCI"));
|
|
1517
|
-
|
|
1518
|
-
var _logger = _interopRequireDefault(require("../utilities/logger"));
|
|
1519
|
-
|
|
1520
|
-
var _useExit = _interopRequireDefault(require("../utilities/useExit"));
|
|
1521
|
-
|
|
1522
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
1523
|
-
|
|
1524
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1525
|
-
|
|
1526
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1527
|
-
|
|
1528
|
-
// libs
|
|
1529
|
-
// components
|
|
1530
|
-
// utils
|
|
1531
|
-
const cancelBuild = (0, _getCallableFirebaseFunction.default)("cancelBuild");
|
|
1532
|
-
|
|
1533
|
-
const CancelBuild = ({
|
|
1534
|
-
appId,
|
|
1535
|
-
children: postCancelContents,
|
|
1536
|
-
commandUsed,
|
|
1537
|
-
id
|
|
1538
|
-
}) => {
|
|
1539
|
-
_logger.default.debug({
|
|
1540
|
-
appId,
|
|
1541
|
-
buildId: id
|
|
1542
|
-
}, "CancelBuild component: render");
|
|
1543
|
-
|
|
1544
|
-
const exit = (0, _useExit.default)();
|
|
1545
|
-
const [{
|
|
1546
|
-
arbitraryMessageComponent,
|
|
1547
|
-
error,
|
|
1548
|
-
hasCompleted,
|
|
1549
|
-
hasStarted
|
|
1550
|
-
}, setState] = (0, _react.useState)({
|
|
1551
|
-
arbitraryMessageComponent: null,
|
|
1552
|
-
error: null,
|
|
1553
|
-
hasCompleted: false,
|
|
1554
|
-
hasStarted: false
|
|
1555
|
-
});
|
|
1556
|
-
(0, _react.useEffect)(() => {
|
|
1557
|
-
if (hasCompleted || hasStarted) {
|
|
1558
|
-
return;
|
|
1559
|
-
}
|
|
1560
|
-
|
|
1561
|
-
setState(previousState => ({ ...previousState,
|
|
1562
|
-
hasStarted: true
|
|
1563
|
-
}));
|
|
1564
|
-
(0, _logForCI.default)("Cancelling build...");
|
|
1565
|
-
cancelBuild({
|
|
1566
|
-
appId,
|
|
1567
|
-
buildId: id
|
|
1568
|
-
}).then(result => {
|
|
1569
|
-
_logger.default.debug({
|
|
1570
|
-
appId,
|
|
1571
|
-
buildId: id,
|
|
1572
|
-
result
|
|
1573
|
-
}, "CancelBuild component: cancellation request complete");
|
|
1574
|
-
|
|
1575
|
-
setState(previousState => ({ ...previousState,
|
|
1576
|
-
hasCompleted: true
|
|
1577
|
-
}));
|
|
1578
|
-
}).catch(e => {
|
|
1579
|
-
_logger.default.debug({
|
|
1580
|
-
appId,
|
|
1581
|
-
buildId: id,
|
|
1582
|
-
code: e.code
|
|
1583
|
-
}, "CancelBuild component: cancellation request failed");
|
|
1584
|
-
|
|
1585
|
-
_logger.default.error(e);
|
|
1586
|
-
|
|
1587
|
-
let stateUpdates = {
|
|
1588
|
-
hasCompleted: true
|
|
1589
|
-
};
|
|
1590
|
-
|
|
1591
|
-
if (e.code === "internal") {
|
|
1592
|
-
stateUpdates.error = e;
|
|
1593
|
-
} else {
|
|
1594
|
-
stateUpdates.arbitraryMessageComponent = /*#__PURE__*/_react.default.createElement(_ink.Text, null, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
1595
|
-
color: "red"
|
|
1596
|
-
}, "Cannot cancel build (", id, ")."), " ", e.message);
|
|
1597
|
-
}
|
|
1598
|
-
|
|
1599
|
-
setState(prevState => ({ ...prevState,
|
|
1600
|
-
...stateUpdates
|
|
1601
|
-
}));
|
|
1602
|
-
});
|
|
1603
|
-
}, [appId, id, hasStarted, hasCompleted]); // Exit when done, unless there are custom contents to display
|
|
1604
|
-
|
|
1605
|
-
(0, _react.useEffect)(() => {
|
|
1606
|
-
if (hasCompleted && !postCancelContents) {
|
|
1607
|
-
_logger.default.debug("CancelBuild component: exiting now that build is cancelled");
|
|
1608
|
-
|
|
1609
|
-
exit();
|
|
1610
|
-
}
|
|
1611
|
-
}, [postCancelContents, exit, hasCompleted]);
|
|
1612
|
-
|
|
1613
|
-
if (error) {
|
|
1614
|
-
error.message = `Failed to cancel build (${id}). ${error.message}`;
|
|
1615
|
-
return /*#__PURE__*/_react.default.createElement(_ErrorDisplay.default, {
|
|
1616
|
-
commandUsed: commandUsed,
|
|
1617
|
-
error: error
|
|
1618
|
-
});
|
|
1619
|
-
}
|
|
1620
|
-
|
|
1621
|
-
if (arbitraryMessageComponent) {
|
|
1622
|
-
return arbitraryMessageComponent;
|
|
1623
|
-
}
|
|
1624
|
-
|
|
1625
|
-
if (hasCompleted) {
|
|
1626
|
-
return postCancelContents ? /*#__PURE__*/_react.default.createElement(_react.Fragment, null, postCancelContents) : /*#__PURE__*/_react.default.createElement(_ink.Text, null, "Build cancelled");
|
|
1627
|
-
}
|
|
1628
|
-
|
|
1629
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Text, null, "Cancelling build (", id, ")...");
|
|
1630
|
-
};
|
|
1631
|
-
|
|
1632
|
-
CancelBuild.propTypes = {
|
|
1633
|
-
appId: _propTypes.default.string.isRequired,
|
|
1634
|
-
// What's shown on succes, defaults to a simple success message
|
|
1635
|
-
children: _propTypes.default.object,
|
|
1636
|
-
commandUsed: _propTypes.default.string.isRequired,
|
|
1637
|
-
id: _propTypes.default.string.isRequired
|
|
1638
|
-
};
|
|
1639
|
-
var _default = CancelBuild;
|
|
1640
|
-
exports.default = _default;
|
|
1641
|
-
},{"./ErrorDisplay":"../lib/components/ErrorDisplay.js","../utilities/getCallableFirebaseFunction":"../lib/utilities/getCallableFirebaseFunction.js","../utilities/logForCI":"../lib/utilities/logForCI.js","../utilities/logger":"../lib/utilities/logger.js","../utilities/useExit":"../lib/utilities/useExit.js"}],"../lib/components/Footer.js":[function(require,module,exports) {
|
|
1642
|
-
"use strict";
|
|
1643
|
-
|
|
1644
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1645
|
-
value: true
|
|
1646
|
-
});
|
|
1647
|
-
exports.default = void 0;
|
|
1648
|
-
|
|
1649
|
-
var _ink = require("ink");
|
|
1650
|
-
|
|
1651
|
-
var _inkLink = _interopRequireDefault(require("ink-link"));
|
|
1652
|
-
|
|
1653
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
1654
|
-
|
|
1655
|
-
var _react = _interopRequireDefault(require("react"));
|
|
1656
|
-
|
|
1657
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1658
|
-
|
|
1659
|
-
const Footer = ({
|
|
1660
|
-
hasBuildFailed,
|
|
1661
|
-
shouldShowCancelBuildInstructions,
|
|
1662
|
-
uiUrl
|
|
1663
|
-
}) => {
|
|
1664
|
-
if (!uiUrl) {
|
|
1665
|
-
return null;
|
|
1666
|
-
}
|
|
1667
|
-
|
|
1668
|
-
let buildFailedMessage;
|
|
1669
|
-
|
|
1670
|
-
if (hasBuildFailed) {
|
|
1671
|
-
buildFailedMessage = /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
1672
|
-
color: "red"
|
|
1673
|
-
}, "An error has occurred. ");
|
|
1674
|
-
}
|
|
1675
|
-
|
|
1676
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1677
|
-
flexDirection: "column"
|
|
1678
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1679
|
-
flexDirection: "column"
|
|
1680
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
1681
|
-
bold: true
|
|
1682
|
-
}, buildFailedMessage, "See web UI for more information: "), /*#__PURE__*/_react.default.createElement(_ink.Text, null, /*#__PURE__*/_react.default.createElement(_inkLink.default, {
|
|
1683
|
-
fallback: false,
|
|
1684
|
-
url: uiUrl
|
|
1685
|
-
}, uiUrl))), shouldShowCancelBuildInstructions ? /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
1686
|
-
color: "gray"
|
|
1687
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
1688
|
-
bold: true
|
|
1689
|
-
}, "[esc]:"), " cancel build") : null);
|
|
1690
|
-
};
|
|
1691
|
-
|
|
1692
|
-
Footer.propTypes = {
|
|
1693
|
-
hasBuildFailed: _propTypes.default.bool,
|
|
1694
|
-
shouldShowCancelBuildInstructions: _propTypes.default.bool,
|
|
1695
|
-
uiUrl: _propTypes.default.string
|
|
1696
|
-
};
|
|
1697
|
-
var _default = Footer;
|
|
1698
|
-
exports.default = _default;
|
|
1699
|
-
},{}],"../lib/components/Header.js":[function(require,module,exports) {
|
|
1700
|
-
"use strict";
|
|
1701
|
-
|
|
1702
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1703
|
-
value: true
|
|
1704
|
-
});
|
|
1705
|
-
exports.default = void 0;
|
|
1706
|
-
|
|
1707
|
-
var _ink = require("ink");
|
|
1708
|
-
|
|
1709
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
1710
|
-
|
|
1711
|
-
var _react = _interopRequireDefault(require("react"));
|
|
1712
|
-
|
|
1713
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1714
|
-
|
|
1715
|
-
const getText = (build, name, version) => {
|
|
1716
|
-
const suffix = name + (version ? ` v${version}` : "");
|
|
1717
|
-
|
|
1718
|
-
if (build && ["cancelled", "succeeded", "failed"].includes(build.status)) {
|
|
1719
|
-
if (build.status === "succeeded") {
|
|
1720
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Text, null, "\u2705 ", suffix);
|
|
1721
|
-
} else if (build.status === "failed") {
|
|
1722
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Text, null, "\u274C ", suffix);
|
|
1723
|
-
} else if (build.status === "cancelled") {
|
|
1724
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Text, null, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
1725
|
-
bold: true,
|
|
1726
|
-
color: "gray"
|
|
1727
|
-
}, "X"), " ", suffix);
|
|
1728
|
-
}
|
|
1729
|
-
} else {
|
|
1730
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Text, null, suffix);
|
|
1731
|
-
}
|
|
1732
|
-
};
|
|
1733
|
-
|
|
1734
|
-
const Header = ({
|
|
1735
|
-
build,
|
|
1736
|
-
name,
|
|
1737
|
-
version
|
|
1738
|
-
}) => /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1739
|
-
marginBottom: 1
|
|
1740
|
-
}, getText(build, name, version));
|
|
1741
|
-
|
|
1742
|
-
Header.propTypes = {
|
|
1743
|
-
build: _propTypes.default.object,
|
|
1744
|
-
name: _propTypes.default.string.isRequired,
|
|
1745
|
-
version: _propTypes.default.string
|
|
1746
|
-
};
|
|
1747
|
-
var _default = Header;
|
|
1748
|
-
exports.default = _default;
|
|
1749
|
-
},{}],"../lib/utilities/useInput.js":[function(require,module,exports) {
|
|
1750
|
-
"use strict";
|
|
1751
|
-
|
|
1752
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1753
|
-
value: true
|
|
1754
|
-
});
|
|
1755
|
-
exports.default = void 0;
|
|
1756
|
-
|
|
1757
|
-
var _isCi = _interopRequireDefault(require("is-ci"));
|
|
1758
|
-
|
|
1759
|
-
var _ink = require("ink");
|
|
1760
|
-
|
|
1761
|
-
var _useExit = _interopRequireDefault(require("./useExit"));
|
|
1762
|
-
|
|
1763
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1764
|
-
|
|
1765
|
-
let hasSubscribed = false;
|
|
1766
|
-
let ctrlCSubscriptions = [];
|
|
1767
|
-
|
|
1768
|
-
const onStdin = (data, exit) => {
|
|
1769
|
-
let input = String(data);
|
|
1770
|
-
let wasCtrlPressed = false;
|
|
1771
|
-
|
|
1772
|
-
if (input <= "\u001A" && input !== "\r") {
|
|
1773
|
-
input = String.fromCharCode(input.charCodeAt(0) + "a".charCodeAt(0) - 1);
|
|
1774
|
-
wasCtrlPressed = true;
|
|
1775
|
-
}
|
|
1776
|
-
|
|
1777
|
-
if (wasCtrlPressed && input === "c") {
|
|
1778
|
-
ctrlCSubscriptions.forEach(subscription => subscription());
|
|
1779
|
-
setTimeout(exit, 10);
|
|
1780
|
-
}
|
|
1781
|
-
};
|
|
1782
|
-
/*
|
|
1783
|
-
See https://github.com/vadimdemedes/pastel/issues/38
|
|
1784
|
-
*/
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
var _default = () => {
|
|
1788
|
-
if (_isCi.default) {
|
|
1789
|
-
return () => () => {};
|
|
1790
|
-
}
|
|
1791
|
-
|
|
1792
|
-
const exit = (0, _useExit.default)();
|
|
1793
|
-
const {
|
|
1794
|
-
stdin
|
|
1795
|
-
} = (0, _ink.useStdin)();
|
|
1796
|
-
return (callback, useInputOptions, stdInOptions = {}) => {
|
|
1797
|
-
const onStdinData = data => onStdin(data, exit);
|
|
1798
|
-
|
|
1799
|
-
if (stdInOptions.onCtrlCPressed) {
|
|
1800
|
-
ctrlCSubscriptions.push(stdInOptions.onCtrlCPressed);
|
|
1801
|
-
}
|
|
1802
|
-
|
|
1803
|
-
if (!hasSubscribed) {
|
|
1804
|
-
hasSubscribed = true; // This is based on the Ink (useInput) source
|
|
1805
|
-
|
|
1806
|
-
stdin.on("data", onStdinData);
|
|
1807
|
-
}
|
|
1808
|
-
|
|
1809
|
-
let cleanUpInputHook = (0, _ink.useInput)(callback, useInputOptions);
|
|
1810
|
-
return () => {
|
|
1811
|
-
if (hasSubscribed) {
|
|
1812
|
-
stdin.off("data", onStdinData);
|
|
1813
|
-
}
|
|
1814
|
-
|
|
1815
|
-
if (cleanUpInputHook) {
|
|
1816
|
-
cleanUpInputHook();
|
|
1817
|
-
}
|
|
1818
|
-
};
|
|
1819
|
-
};
|
|
1820
|
-
};
|
|
1821
|
-
|
|
1822
|
-
exports.default = _default;
|
|
1823
|
-
},{"./useExit":"../lib/utilities/useExit.js"}],"../lib/components/MainLayout.js":[function(require,module,exports) {
|
|
1824
|
-
"use strict";
|
|
1825
|
-
|
|
1826
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1827
|
-
value: true
|
|
1828
|
-
});
|
|
1829
|
-
exports.default = void 0;
|
|
1830
|
-
|
|
1831
|
-
var _ink = require("ink");
|
|
1832
|
-
|
|
1833
|
-
var _isCi = _interopRequireDefault(require("is-ci"));
|
|
1834
|
-
|
|
1835
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
1836
|
-
|
|
1837
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
1838
|
-
|
|
1839
|
-
var _CancelBuild = _interopRequireDefault(require("./CancelBuild"));
|
|
1840
|
-
|
|
1841
|
-
var _Footer = _interopRequireDefault(require("./Footer"));
|
|
1842
|
-
|
|
1843
|
-
var _Header = _interopRequireDefault(require("./Header"));
|
|
1844
|
-
|
|
1845
|
-
var _buildStatus = require("../utilities/buildStatus");
|
|
1846
|
-
|
|
1847
|
-
var _logger = _interopRequireDefault(require("../utilities/logger"));
|
|
1848
|
-
|
|
1849
|
-
var _useInput = _interopRequireDefault(require("../utilities/useInput"));
|
|
1850
|
-
|
|
1851
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
1852
|
-
|
|
1853
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1854
|
-
|
|
1855
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1856
|
-
|
|
1857
|
-
// libs
|
|
1858
|
-
// components
|
|
1859
|
-
// utilities
|
|
1860
|
-
const MainLayout = ({
|
|
1861
|
-
appId,
|
|
1862
|
-
appName,
|
|
1863
|
-
appVersion,
|
|
1864
|
-
build,
|
|
1865
|
-
children,
|
|
1866
|
-
commandUsed,
|
|
1867
|
-
hasBuildFailed
|
|
1868
|
-
}) => {
|
|
1869
|
-
_logger.default.debug("MainLayout component: render");
|
|
1870
|
-
|
|
1871
|
-
const onInput = (0, _useInput.default)();
|
|
1872
|
-
const [{
|
|
1873
|
-
canCancelBuild,
|
|
1874
|
-
hasKickedOff,
|
|
1875
|
-
isCancellingBuild,
|
|
1876
|
-
wasCtrlCPressed
|
|
1877
|
-
}, setState] = (0, _react.useState)({
|
|
1878
|
-
canCancelBuild: null,
|
|
1879
|
-
hasKickedOff: false,
|
|
1880
|
-
isCancellingBuild: false,
|
|
1881
|
-
wasCtrlCPressed: false
|
|
1882
|
-
});
|
|
1883
|
-
(0, _react.useEffect)(() => {
|
|
1884
|
-
setState(previousState => ({ ...previousState,
|
|
1885
|
-
hasKickedOff: (0, _buildStatus.hasBuildKickedOff)(build)
|
|
1886
|
-
}));
|
|
1887
|
-
}, [build]);
|
|
1888
|
-
(0, _react.useEffect)(() => {
|
|
1889
|
-
setState(previousState => ({ ...previousState,
|
|
1890
|
-
canCancelBuild: !_isCi.default && !isCancellingBuild && (0, _buildStatus.isBuildCancellable)(build)
|
|
1891
|
-
}));
|
|
1892
|
-
}, [build, isCancellingBuild]);
|
|
1893
|
-
onInput(async (input, key) => {
|
|
1894
|
-
if (key.escape && canCancelBuild) {
|
|
1895
|
-
_logger.default.debug("MainLayout component: esc pressed, cancelling build");
|
|
1896
|
-
|
|
1897
|
-
setState(previousState => ({ ...previousState,
|
|
1898
|
-
isCancellingBuild: true
|
|
1899
|
-
}));
|
|
1900
|
-
}
|
|
1901
|
-
}, {}, {
|
|
1902
|
-
onCtrlCPressed: () => {
|
|
1903
|
-
setState(previousState => ({ ...previousState,
|
|
1904
|
-
wasCtrlCPressed: true
|
|
1905
|
-
}));
|
|
1906
|
-
}
|
|
1907
|
-
});
|
|
1908
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_Header.default, {
|
|
1909
|
-
build: build,
|
|
1910
|
-
name: appName,
|
|
1911
|
-
version: appVersion
|
|
1912
|
-
}), isCancellingBuild ? /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1913
|
-
flexDirection: "column",
|
|
1914
|
-
marginBottom: 1
|
|
1915
|
-
}, /*#__PURE__*/_react.default.createElement(_CancelBuild.default, {
|
|
1916
|
-
appId: appId,
|
|
1917
|
-
commandUsed: commandUsed,
|
|
1918
|
-
id: build.id
|
|
1919
|
-
})) : children, /*#__PURE__*/_react.default.createElement(_Footer.default, {
|
|
1920
|
-
hasBuildFailed: hasBuildFailed,
|
|
1921
|
-
shouldShowCancelBuildInstructions: canCancelBuild && !wasCtrlCPressed,
|
|
1922
|
-
uiUrl: build ? build.url : null
|
|
1923
|
-
}), wasCtrlCPressed && hasKickedOff ? /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
1924
|
-
flexDirection: "column",
|
|
1925
|
-
marginTop: 1
|
|
1926
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
1927
|
-
color: "gray"
|
|
1928
|
-
}, "The build will continue in the background. To view it, run:")), /*#__PURE__*/_react.default.createElement(_ink.Box, null, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
1929
|
-
bold: true,
|
|
1930
|
-
color: "gray"
|
|
1931
|
-
}, "todesktop builds ", build.id))) : null);
|
|
1932
|
-
};
|
|
1933
|
-
|
|
1934
|
-
MainLayout.propTypes = {
|
|
1935
|
-
appId: _propTypes.default.string,
|
|
1936
|
-
appName: _propTypes.default.string.isRequired,
|
|
1937
|
-
appVersion: _propTypes.default.string,
|
|
1938
|
-
build: _propTypes.default.object,
|
|
1939
|
-
children: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),
|
|
1940
|
-
commandUsed: _propTypes.default.string.isRequired,
|
|
1941
|
-
hasBuildFailed: _propTypes.default.bool
|
|
1942
|
-
};
|
|
1943
|
-
var _default = MainLayout;
|
|
1944
|
-
exports.default = _default;
|
|
1945
|
-
},{"./CancelBuild":"../lib/components/CancelBuild.js","./Footer":"../lib/components/Footer.js","./Header":"../lib/components/Header.js","../utilities/buildStatus":"../lib/utilities/buildStatus.js","../utilities/logger":"../lib/utilities/logger.js","../utilities/useInput":"../lib/utilities/useInput.js"}],"../lib/utilities/getLatestBuildId.js":[function(require,module,exports) {
|
|
1946
|
-
"use strict";
|
|
1947
|
-
|
|
1948
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1949
|
-
value: true
|
|
1950
|
-
});
|
|
1951
|
-
exports.default = void 0;
|
|
1952
|
-
|
|
1953
|
-
var _firestore = _interopRequireWildcard(require("./firestore"));
|
|
1954
|
-
|
|
1955
|
-
var _logger = _interopRequireDefault(require("./logger"));
|
|
1956
|
-
|
|
1957
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
1958
|
-
|
|
1959
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
1960
|
-
|
|
1961
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
1962
|
-
|
|
1963
|
-
var _default = async ({
|
|
1964
|
-
appId
|
|
1965
|
-
}) => {
|
|
1966
|
-
_logger.default.debug({
|
|
1967
|
-
appId
|
|
1968
|
-
}, "getLatestBuildId");
|
|
1969
|
-
|
|
1970
|
-
const appRef = _firestore.default.doc(`users/${(0, _firestore.currentUser)().uid}/applications/${appId}`);
|
|
1971
|
-
|
|
1972
|
-
const appSnapshot = await appRef.get();
|
|
1973
|
-
|
|
1974
|
-
if (!appSnapshot.exists) {
|
|
1975
|
-
throw new Error(`Application with ID of ${appId} doesn't exist.`);
|
|
1976
|
-
}
|
|
1977
|
-
|
|
1978
|
-
const buildsResult = await appRef.collection("builds").orderBy("createdAt", "desc").limit(1).get();
|
|
1979
|
-
|
|
1980
|
-
if (buildsResult.empty) {
|
|
1981
|
-
return null;
|
|
1982
|
-
} else {
|
|
1983
|
-
return buildsResult.docs[0].id;
|
|
1984
|
-
}
|
|
1985
|
-
};
|
|
1986
|
-
|
|
1987
|
-
exports.default = _default;
|
|
1988
|
-
},{"./firestore":"../lib/utilities/firestore.js","./logger":"../lib/utilities/logger.js"}],"../lib/utilities/projectConfig/loadConfig.js":[function(require,module,exports) {
|
|
1989
|
-
"use strict";
|
|
1990
|
-
|
|
1991
|
-
Object.defineProperty(exports, "__esModule", {
|
|
1992
|
-
value: true
|
|
1993
|
-
});
|
|
1994
|
-
exports.default = void 0;
|
|
1995
|
-
|
|
1996
|
-
// This is its own file just so we can mock it more easily
|
|
1997
|
-
var _default = configPath => require(configPath);
|
|
1998
|
-
|
|
1999
|
-
exports.default = _default;
|
|
2000
|
-
},{}],"../lib/utilities/projectConfig/resolveConfigPaths.js":[function(require,module,exports) {
|
|
2001
|
-
"use strict";
|
|
2002
|
-
|
|
2003
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2004
|
-
value: true
|
|
2005
|
-
});
|
|
2006
|
-
exports.default = void 0;
|
|
2007
|
-
|
|
2008
|
-
var path = _interopRequireWildcard(require("path"));
|
|
2009
|
-
|
|
2010
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
2011
|
-
|
|
2012
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
2013
|
-
|
|
2014
|
-
var _default = ({
|
|
2015
|
-
config,
|
|
2016
|
-
projectRoot
|
|
2017
|
-
}) => {
|
|
2018
|
-
const appRoot = config.appPath ? path.isAbsolute(config.appPath) ? config.appPath : path.join(projectRoot, config.appPath) : projectRoot;
|
|
2019
|
-
|
|
2020
|
-
const transformIfExists = (value, transformer) => value ? transformer(value) : undefined;
|
|
2021
|
-
|
|
2022
|
-
const resolvePath = filePath => path.isAbsolute(filePath) ? filePath : path.join(projectRoot, filePath);
|
|
2023
|
-
|
|
2024
|
-
const result = { ...config,
|
|
2025
|
-
appPath: appRoot,
|
|
2026
|
-
icon: resolvePath(config.icon)
|
|
2027
|
-
};
|
|
2028
|
-
|
|
2029
|
-
if (config.extraContentFiles) {
|
|
2030
|
-
result.extraContentFiles = transformIfExists(config.extraContentFiles, extraContentFiles => extraContentFiles.map(extraContentFile => ({ ...extraContentFile,
|
|
2031
|
-
from: resolvePath(extraContentFile.from)
|
|
2032
|
-
})));
|
|
2033
|
-
}
|
|
2034
|
-
|
|
2035
|
-
if (config.extraResources) {
|
|
2036
|
-
result.extraResources = transformIfExists(config.extraResources, extraResources => extraResources.map(extraResource => ({ ...extraResource,
|
|
2037
|
-
from: resolvePath(extraResource.from)
|
|
2038
|
-
})));
|
|
2039
|
-
}
|
|
2040
|
-
|
|
2041
|
-
if (config.linux) {
|
|
2042
|
-
result.linux = { ...config.linux
|
|
2043
|
-
};
|
|
2044
|
-
|
|
2045
|
-
if (config.linux.icon) {
|
|
2046
|
-
result.linux.icon = resolvePath(config.linux.icon);
|
|
2047
|
-
}
|
|
2048
|
-
}
|
|
2049
|
-
|
|
2050
|
-
if (config.mac) {
|
|
2051
|
-
result.mac = { ...config.mac
|
|
2052
|
-
};
|
|
2053
|
-
|
|
2054
|
-
if (config.mac.entitlements) {
|
|
2055
|
-
result.mac.entitlements = resolvePath(config.mac.entitlements);
|
|
2056
|
-
}
|
|
2057
|
-
|
|
2058
|
-
if (config.mac.icon) {
|
|
2059
|
-
result.mac.icon = resolvePath(config.mac.icon);
|
|
2060
|
-
}
|
|
2061
|
-
}
|
|
2062
|
-
|
|
2063
|
-
if (config.dmg) {
|
|
2064
|
-
if (config.dmg.background) {
|
|
2065
|
-
result.dmg.background = resolvePath(config.dmg.background);
|
|
2066
|
-
}
|
|
2067
|
-
}
|
|
2068
|
-
|
|
2069
|
-
if (config.windows) {
|
|
2070
|
-
result.windows = { ...config.windows
|
|
2071
|
-
};
|
|
2072
|
-
|
|
2073
|
-
if (config.windows.icon) {
|
|
2074
|
-
result.windows.icon = resolvePath(config.windows.icon);
|
|
2075
|
-
}
|
|
2076
|
-
}
|
|
2077
|
-
|
|
2078
|
-
return result;
|
|
2079
|
-
};
|
|
2080
|
-
|
|
2081
|
-
exports.default = _default;
|
|
2082
|
-
},{}],"../lib/utilities/projectConfig/schema/packageJSON.js":[function(require,module,exports) {
|
|
2083
|
-
"use strict";
|
|
2084
|
-
|
|
2085
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2086
|
-
value: true
|
|
2087
|
-
});
|
|
2088
|
-
exports.default = void 0;
|
|
2089
|
-
|
|
2090
|
-
var _default = context => {
|
|
2091
|
-
return {
|
|
2092
|
-
type: "object",
|
|
2093
|
-
required: ["author", "dependencies", "devDependencies", "homepage", "name", "version"],
|
|
2094
|
-
properties: {
|
|
2095
|
-
author: {
|
|
2096
|
-
npmAuthor: {}
|
|
2097
|
-
},
|
|
2098
|
-
dependencies: {
|
|
2099
|
-
type: "object",
|
|
2100
|
-
required: ["@todesktop/runtime"],
|
|
2101
|
-
// custom keyword that checks package names aren't included in dependencies
|
|
2102
|
-
excludedDependencies: {
|
|
2103
|
-
dependencyKey: "dependencies",
|
|
2104
|
-
blacklist: ["@todesktop/cli"]
|
|
2105
|
-
},
|
|
2106
|
-
properties: {
|
|
2107
|
-
"@todesktop/runtime": {
|
|
2108
|
-
type: "string"
|
|
2109
|
-
}
|
|
2110
|
-
}
|
|
2111
|
-
},
|
|
2112
|
-
devDependencies: {
|
|
2113
|
-
type: "object",
|
|
2114
|
-
required: ["electron"],
|
|
2115
|
-
properties: {
|
|
2116
|
-
electron: {
|
|
2117
|
-
type: "string",
|
|
2118
|
-
semanticVersion: {
|
|
2119
|
-
packageName: "electron",
|
|
2120
|
-
mustBeExact: true
|
|
2121
|
-
}
|
|
2122
|
-
}
|
|
2123
|
-
}
|
|
2124
|
-
},
|
|
2125
|
-
name: {
|
|
2126
|
-
type: "string",
|
|
2127
|
-
minLength: 1
|
|
2128
|
-
},
|
|
2129
|
-
scripts: {
|
|
2130
|
-
type: "object",
|
|
2131
|
-
properties: {
|
|
2132
|
-
"todesktop:beforeInstall": {
|
|
2133
|
-
type: "string",
|
|
2134
|
-
file: {
|
|
2135
|
-
from: context.projectRoot,
|
|
2136
|
-
mustBeFile: true
|
|
2137
|
-
}
|
|
2138
|
-
},
|
|
2139
|
-
"todesktop:afterPack": {
|
|
2140
|
-
type: "string",
|
|
2141
|
-
file: {
|
|
2142
|
-
from: context.projectRoot,
|
|
2143
|
-
mustBeFile: true
|
|
2144
|
-
}
|
|
2145
|
-
}
|
|
2146
|
-
}
|
|
2147
|
-
},
|
|
2148
|
-
version: {
|
|
2149
|
-
type: "string",
|
|
2150
|
-
semanticVersion: {}
|
|
2151
|
-
}
|
|
2152
|
-
}
|
|
2153
|
-
};
|
|
2154
|
-
};
|
|
2155
|
-
|
|
2156
|
-
exports.default = _default;
|
|
2157
|
-
},{}],"../lib/utilities/projectConfig/validatePackageJSON.js":[function(require,module,exports) {
|
|
2158
|
-
"use strict";
|
|
2159
|
-
|
|
2160
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2161
|
-
value: true
|
|
2162
|
-
});
|
|
2163
|
-
exports.default = void 0;
|
|
2164
|
-
|
|
2165
|
-
var _ajv = _interopRequireDefault(require("ajv"));
|
|
2166
|
-
|
|
2167
|
-
var _betterAjvErrors = _interopRequireDefault(require("better-ajv-errors"));
|
|
2168
|
-
|
|
2169
|
-
var _addCustomKeywords = _interopRequireDefault(require("./addCustomKeywords"));
|
|
2170
|
-
|
|
2171
|
-
var _packageJSON = _interopRequireDefault(require("./schema/packageJSON"));
|
|
2172
|
-
|
|
2173
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2174
|
-
|
|
2175
|
-
var _default = (pkg, pkgPath, context) => {
|
|
2176
|
-
const ajv = new _ajv.default({
|
|
2177
|
-
allErrors: true,
|
|
2178
|
-
jsonPointers: true
|
|
2179
|
-
});
|
|
2180
|
-
(0, _addCustomKeywords.default)(ajv, context);
|
|
2181
|
-
const schema = (0, _packageJSON.default)(context);
|
|
2182
|
-
const validate = ajv.compile(schema);
|
|
2183
|
-
|
|
2184
|
-
if (!validate(pkg)) {
|
|
2185
|
-
const output = (0, _betterAjvErrors.default)(schema, pkg, validate.errors, {
|
|
2186
|
-
indent: 2
|
|
2187
|
-
});
|
|
2188
|
-
const error = new Error(`package.json invalid (${pkgPath}); \n${output}`);
|
|
2189
|
-
error.isValidationError = true; // This throws and bubbles all the way up to the user
|
|
2190
|
-
|
|
2191
|
-
throw error;
|
|
2192
|
-
}
|
|
2193
|
-
};
|
|
2194
|
-
|
|
2195
|
-
exports.default = _default;
|
|
2196
|
-
},{"./addCustomKeywords":"../lib/utilities/projectConfig/addCustomKeywords.js","./schema/packageJSON":"../lib/utilities/projectConfig/schema/packageJSON.js"}],"../lib/utilities/projectConfig/addCustomKeywords.js":[function(require,module,exports) {
|
|
2197
|
-
"use strict";
|
|
2198
|
-
|
|
2199
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2200
|
-
value: true
|
|
2201
|
-
});
|
|
2202
|
-
exports.default = void 0;
|
|
2203
|
-
|
|
2204
|
-
var _emailRegex = _interopRequireDefault(require("email-regex"));
|
|
2205
|
-
|
|
2206
|
-
var fs = _interopRequireWildcard(require("fs"));
|
|
2207
|
-
|
|
2208
|
-
var path = _interopRequireWildcard(require("path"));
|
|
2209
|
-
|
|
2210
|
-
var _parseAuthor = _interopRequireDefault(require("parse-author"));
|
|
2211
|
-
|
|
2212
|
-
var semver = _interopRequireWildcard(require("semver"));
|
|
2213
|
-
|
|
2214
|
-
var _validatePackageJSON = _interopRequireDefault(require("./validatePackageJSON"));
|
|
2215
|
-
|
|
2216
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
2217
|
-
|
|
2218
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
2219
|
-
|
|
2220
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2221
|
-
|
|
2222
|
-
/*
|
|
2223
|
-
See https://ajv.js.org/custom.html
|
|
2224
|
-
*/
|
|
2225
|
-
var _default = (ajv, context) => {
|
|
2226
|
-
// validate that dependencies object doesn't contain packageNames in the blacklist
|
|
2227
|
-
ajv.addKeyword("excludedDependencies", {
|
|
2228
|
-
validate: function validate(schema, data) {
|
|
2229
|
-
let matchingPackages = schema.blacklist.filter(packageName => data[packageName]);
|
|
2230
|
-
|
|
2231
|
-
if (matchingPackages.length) {
|
|
2232
|
-
validate.errors = [{
|
|
2233
|
-
keyword: "Dependency",
|
|
2234
|
-
message: `${matchingPackages.join(", ")} should not be in ${schema.dependencyKey}`,
|
|
2235
|
-
dataPath: `/${schema.dependencyKey}`
|
|
2236
|
-
}];
|
|
2237
|
-
return false;
|
|
2238
|
-
}
|
|
2239
|
-
|
|
2240
|
-
return true;
|
|
2241
|
-
}
|
|
2242
|
-
});
|
|
2243
|
-
ajv.addKeyword("email", {
|
|
2244
|
-
type: "string",
|
|
2245
|
-
minLength: 5,
|
|
2246
|
-
validate: function validate(schema, data) {
|
|
2247
|
-
if (!(0, _emailRegex.default)({
|
|
2248
|
-
exact: true
|
|
2249
|
-
}).test(data)) {
|
|
2250
|
-
validate.errors = [{
|
|
2251
|
-
keyword: "email",
|
|
2252
|
-
message: "invalid"
|
|
2253
|
-
}];
|
|
2254
|
-
return false;
|
|
2255
|
-
}
|
|
2256
|
-
|
|
2257
|
-
return true;
|
|
2258
|
-
}
|
|
2259
|
-
});
|
|
2260
|
-
ajv.addKeyword("file", {
|
|
2261
|
-
type: "string",
|
|
2262
|
-
validate: function validate(schema, data) {
|
|
2263
|
-
const mustBeDirectory = schema.mustBeDirectory || schema.mustBeElectronApp; // Value is empty
|
|
2264
|
-
|
|
2265
|
-
if (!data.trim().length) {
|
|
2266
|
-
if (schema.isOptional) {
|
|
2267
|
-
return true;
|
|
2268
|
-
}
|
|
2269
|
-
|
|
2270
|
-
validate.errors = [{
|
|
2271
|
-
keyword: schema.mustBeDirectory ? "Directory" : "File",
|
|
2272
|
-
message: "is empty"
|
|
2273
|
-
}];
|
|
2274
|
-
return false;
|
|
2275
|
-
}
|
|
2276
|
-
|
|
2277
|
-
const filePath = path.isAbsolute(data) ? data : path.join(schema.from, data); // Isn't in project
|
|
2278
|
-
|
|
2279
|
-
if (path.relative(schema.from, filePath).startsWith("..")) {
|
|
2280
|
-
validate.errors = [{
|
|
2281
|
-
keyword: mustBeDirectory ? "Directory" : "File",
|
|
2282
|
-
message: `is not in project (${filePath})`
|
|
2283
|
-
}];
|
|
2284
|
-
return false;
|
|
2285
|
-
} // Extension isn't allowed
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
if (schema.extensions && !schema.extensions.includes(path.extname(filePath).substr(1))) {
|
|
2289
|
-
validate.errors = [{
|
|
2290
|
-
keyword: "File extension",
|
|
2291
|
-
message: `invalid. ${path.extname(data)} Must be${schema.extensions > 1 ? "one of the following:" : ""} "${schema.extensions.join('", "')}"`
|
|
2292
|
-
}];
|
|
2293
|
-
return false;
|
|
2294
|
-
} // Doesn't exist
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
if (!fs.existsSync(filePath)) {
|
|
2298
|
-
validate.errors = [{
|
|
2299
|
-
keyword: mustBeDirectory ? "Directory" : "File",
|
|
2300
|
-
message: `does not exist (${filePath})`
|
|
2301
|
-
}];
|
|
2302
|
-
return false;
|
|
2303
|
-
}
|
|
2304
|
-
|
|
2305
|
-
const stats = fs.statSync(filePath);
|
|
2306
|
-
|
|
2307
|
-
if (mustBeDirectory && stats.isFile()) {
|
|
2308
|
-
validate.errors = [{
|
|
2309
|
-
keyword: "Directory",
|
|
2310
|
-
message: `must be a directory, not a file (${filePath})`
|
|
2311
|
-
}];
|
|
2312
|
-
return false;
|
|
2313
|
-
} else if (schema.mustBeFile && stats.isDirectory()) {
|
|
2314
|
-
validate.errors = [{
|
|
2315
|
-
keyword: "File",
|
|
2316
|
-
message: `must be a file, not a directory (${filePath})`
|
|
2317
|
-
}];
|
|
2318
|
-
return false;
|
|
2319
|
-
}
|
|
2320
|
-
|
|
2321
|
-
if (schema.mustBeElectronApp) {
|
|
2322
|
-
const appRoot = path.resolve(filePath);
|
|
2323
|
-
const pkgPath = path.join(appRoot, "package.json");
|
|
2324
|
-
|
|
2325
|
-
if (!fs.existsSync(pkgPath)) {
|
|
2326
|
-
validate.errors = [{
|
|
2327
|
-
keyword: "App",
|
|
2328
|
-
message: `invalid. There is no package.json at ${pkgPath}`
|
|
2329
|
-
}];
|
|
2330
|
-
return false;
|
|
2331
|
-
}
|
|
2332
|
-
|
|
2333
|
-
let pkg;
|
|
2334
|
-
|
|
2335
|
-
try {
|
|
2336
|
-
pkg = require(pkgPath);
|
|
2337
|
-
} catch (e) {
|
|
2338
|
-
validate.errors = [{
|
|
2339
|
-
keyword: "App",
|
|
2340
|
-
message: `invalid. Invalid JSON in package.json (${pkgPath})`
|
|
2341
|
-
}];
|
|
2342
|
-
return false;
|
|
2343
|
-
}
|
|
2344
|
-
|
|
2345
|
-
context.projectRoot = appRoot; // This throws and bubbles all the way up to the user
|
|
2346
|
-
|
|
2347
|
-
(0, _validatePackageJSON.default)(pkg, pkgPath, context); // Validate that either an index.js or valid "main" property exists
|
|
2348
|
-
|
|
2349
|
-
const mainFilePath = pkg.main;
|
|
2350
|
-
|
|
2351
|
-
if (mainFilePath) {
|
|
2352
|
-
const resolvedMainFilePath = path.join(appRoot, mainFilePath);
|
|
2353
|
-
|
|
2354
|
-
if (!fs.existsSync(resolvedMainFilePath)) {
|
|
2355
|
-
validate.errors = [{
|
|
2356
|
-
keyword: "App",
|
|
2357
|
-
message: `invalid. The "main" file specified in your package.json (${mainFilePath}) does not exist (${resolvedMainFilePath})`
|
|
2358
|
-
}];
|
|
2359
|
-
return false;
|
|
2360
|
-
}
|
|
2361
|
-
} else {
|
|
2362
|
-
if (!fs.existsSync(path.join(appRoot, "index.js"))) {
|
|
2363
|
-
validate.errors = [{
|
|
2364
|
-
keyword: "App",
|
|
2365
|
-
message: 'invalid. There is neither a "main" property in your package.json nor an index.js at the root of your app'
|
|
2366
|
-
}];
|
|
2367
|
-
return false;
|
|
2368
|
-
}
|
|
2369
|
-
}
|
|
2370
|
-
}
|
|
2371
|
-
|
|
2372
|
-
return true;
|
|
2373
|
-
},
|
|
2374
|
-
errors: true
|
|
2375
|
-
});
|
|
2376
|
-
ajv.addKeyword("npmAuthor", {
|
|
2377
|
-
validate: function validate(schema, data) {
|
|
2378
|
-
const dataType = typeof data;
|
|
2379
|
-
|
|
2380
|
-
if (dataType === "undefined") {
|
|
2381
|
-
return true;
|
|
2382
|
-
} else if (dataType === "string") {
|
|
2383
|
-
const parsedAuthor = (0, _parseAuthor.default)(data);
|
|
2384
|
-
|
|
2385
|
-
if (!parsedAuthor || !parsedAuthor.email) {
|
|
2386
|
-
validate.errors = [{
|
|
2387
|
-
keyword: "author",
|
|
2388
|
-
message: 'invalid. If you\'re using a string, it must look something like "Barney Rubble <b@rubble.com>", see https://docs.npmjs.com/files/package.json#people-fields-author-contributors'
|
|
2389
|
-
}];
|
|
2390
|
-
return false;
|
|
2391
|
-
}
|
|
2392
|
-
} else if (dataType === "object") {
|
|
2393
|
-
if (typeof data.name === "undefined") {
|
|
2394
|
-
validate.errors = [{
|
|
2395
|
-
keyword: "author",
|
|
2396
|
-
message: `invalid. "name" property is missing.`
|
|
2397
|
-
}];
|
|
2398
|
-
return false;
|
|
2399
|
-
} else {
|
|
2400
|
-
if (typeof data.name !== "string") {
|
|
2401
|
-
validate.errors = [{
|
|
2402
|
-
keyword: "author",
|
|
2403
|
-
message: `.name invalid. It must be a string`
|
|
2404
|
-
}];
|
|
2405
|
-
return false;
|
|
2406
|
-
}
|
|
2407
|
-
|
|
2408
|
-
if (typeof data.email === "undefined") {
|
|
2409
|
-
validate.errors = [{
|
|
2410
|
-
keyword: "author",
|
|
2411
|
-
message: `invalid. "email" property is missing.`
|
|
2412
|
-
}];
|
|
2413
|
-
return false;
|
|
2414
|
-
} else {
|
|
2415
|
-
if (typeof data.email === "string") {
|
|
2416
|
-
if (!(0, _emailRegex.default)({
|
|
2417
|
-
exact: true
|
|
2418
|
-
}).test(data.email)) {
|
|
2419
|
-
validate.errors = [{
|
|
2420
|
-
keyword: "author",
|
|
2421
|
-
message: `.email invalid. It does not look like an email.`
|
|
2422
|
-
}];
|
|
2423
|
-
return false;
|
|
2424
|
-
}
|
|
2425
|
-
} else {
|
|
2426
|
-
validate.errors = [{
|
|
2427
|
-
keyword: "author",
|
|
2428
|
-
message: `.email invalid. It must be a string.`
|
|
2429
|
-
}];
|
|
2430
|
-
return false;
|
|
2431
|
-
}
|
|
2432
|
-
}
|
|
2433
|
-
}
|
|
2434
|
-
} else {
|
|
2435
|
-
// Neither object nor string
|
|
2436
|
-
validate.errors = [{
|
|
2437
|
-
keyword: "author",
|
|
2438
|
-
message: "invalid. It must either be an object or string. See https://docs.npmjs.com/files/package.json#people-fields-author-contributors"
|
|
2439
|
-
}];
|
|
2440
|
-
return false;
|
|
2441
|
-
}
|
|
2442
|
-
|
|
2443
|
-
return true;
|
|
2444
|
-
},
|
|
2445
|
-
errors: true
|
|
2446
|
-
});
|
|
2447
|
-
ajv.addKeyword("semanticVersion", {
|
|
2448
|
-
type: "string",
|
|
2449
|
-
minLength: 5,
|
|
2450
|
-
validate: function validate(schema, data) {
|
|
2451
|
-
const keyword = (schema.packageName ? `${schema.packageName} ` : "") + "version";
|
|
2452
|
-
|
|
2453
|
-
if (!(semver.valid(data) || semver.validRange(data))) {
|
|
2454
|
-
validate.errors = [{
|
|
2455
|
-
keyword,
|
|
2456
|
-
message: "invalid. It must be a semantic version (see https://semver.org/)"
|
|
2457
|
-
}];
|
|
2458
|
-
return false;
|
|
2459
|
-
}
|
|
2460
|
-
|
|
2461
|
-
if (schema.mustBeExact && (data.startsWith("~") || data.startsWith("^"))) {
|
|
2462
|
-
validate.errors = [{
|
|
2463
|
-
keyword,
|
|
2464
|
-
message: "invalid. It must be an exact version. Good: 9.0.0. Bad: ^9.0.0"
|
|
2465
|
-
}];
|
|
2466
|
-
return false;
|
|
2467
|
-
}
|
|
2468
|
-
|
|
2469
|
-
return true;
|
|
2470
|
-
}
|
|
2471
|
-
});
|
|
2472
|
-
};
|
|
2473
|
-
|
|
2474
|
-
exports.default = _default;
|
|
2475
|
-
},{"./validatePackageJSON":"../lib/utilities/projectConfig/validatePackageJSON.js"}],"../lib/utilities/projectConfig/schema/full.js":[function(require,module,exports) {
|
|
2476
|
-
"use strict";
|
|
2477
|
-
|
|
2478
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2479
|
-
value: true
|
|
2480
|
-
});
|
|
2481
|
-
exports.default = void 0;
|
|
2482
|
-
|
|
2483
|
-
const getItemOrArrayOfItemsSchema = itemSchema => {
|
|
2484
|
-
return {
|
|
2485
|
-
oneOf: [itemSchema, {
|
|
2486
|
-
type: "array",
|
|
2487
|
-
items: itemSchema
|
|
2488
|
-
}]
|
|
2489
|
-
};
|
|
2490
|
-
};
|
|
2491
|
-
|
|
2492
|
-
var _default = context => {
|
|
2493
|
-
const getIconSchema = (additionalAllowedExtensions = []) => {
|
|
2494
|
-
return {
|
|
2495
|
-
type: "string",
|
|
2496
|
-
file: {
|
|
2497
|
-
from: context.projectRoot,
|
|
2498
|
-
extensions: ["icns", "png", ...additionalAllowedExtensions],
|
|
2499
|
-
mustBeFile: true
|
|
2500
|
-
},
|
|
2501
|
-
minLength: 3
|
|
2502
|
-
};
|
|
2503
|
-
};
|
|
2504
|
-
|
|
2505
|
-
return {
|
|
2506
|
-
type: "object",
|
|
2507
|
-
required: ["id", "icon", "schemaVersion"],
|
|
2508
|
-
properties: {
|
|
2509
|
-
appId: {
|
|
2510
|
-
type: "string",
|
|
2511
|
-
minLength: 1
|
|
2512
|
-
},
|
|
2513
|
-
appFiles: {
|
|
2514
|
-
type: "array",
|
|
2515
|
-
items: {
|
|
2516
|
-
type: "string",
|
|
2517
|
-
minLength: 1
|
|
2518
|
-
},
|
|
2519
|
-
minItems: 1
|
|
2520
|
-
},
|
|
2521
|
-
appProtocolScheme: {
|
|
2522
|
-
type: "string",
|
|
2523
|
-
minLength: 1
|
|
2524
|
-
},
|
|
2525
|
-
appPath: {
|
|
2526
|
-
type: "string",
|
|
2527
|
-
file: {
|
|
2528
|
-
from: context.projectRoot,
|
|
2529
|
-
isOptional: true,
|
|
2530
|
-
mustBeElectronApp: true
|
|
2531
|
-
}
|
|
2532
|
-
},
|
|
2533
|
-
copyright: {
|
|
2534
|
-
type: "string",
|
|
2535
|
-
minLength: 1
|
|
2536
|
-
},
|
|
2537
|
-
electronMirror: {
|
|
2538
|
-
type: "string",
|
|
2539
|
-
format: "uri"
|
|
2540
|
-
},
|
|
2541
|
-
electronVersion: {
|
|
2542
|
-
type: "string",
|
|
2543
|
-
minLength: 1
|
|
2544
|
-
},
|
|
2545
|
-
extraContentFiles: {
|
|
2546
|
-
type: "array",
|
|
2547
|
-
items: {
|
|
2548
|
-
type: "object",
|
|
2549
|
-
required: ["from"],
|
|
2550
|
-
properties: {
|
|
2551
|
-
from: {
|
|
2552
|
-
type: "string",
|
|
2553
|
-
file: {
|
|
2554
|
-
from: context.projectRoot
|
|
2555
|
-
}
|
|
2556
|
-
},
|
|
2557
|
-
to: {
|
|
2558
|
-
type: "string"
|
|
2559
|
-
}
|
|
2560
|
-
}
|
|
2561
|
-
}
|
|
2562
|
-
},
|
|
2563
|
-
extraResources: {
|
|
2564
|
-
type: "array",
|
|
2565
|
-
items: {
|
|
2566
|
-
type: "object",
|
|
2567
|
-
required: ["from"],
|
|
2568
|
-
properties: {
|
|
2569
|
-
from: {
|
|
2570
|
-
type: "string",
|
|
2571
|
-
file: {
|
|
2572
|
-
from: context.projectRoot
|
|
2573
|
-
}
|
|
2574
|
-
},
|
|
2575
|
-
to: {
|
|
2576
|
-
type: "string"
|
|
2577
|
-
}
|
|
2578
|
-
}
|
|
2579
|
-
}
|
|
2580
|
-
},
|
|
2581
|
-
fileAssociations: {
|
|
2582
|
-
type: "array",
|
|
2583
|
-
items: {
|
|
2584
|
-
type: "object",
|
|
2585
|
-
required: ["ext"],
|
|
2586
|
-
properties: {
|
|
2587
|
-
ext: getItemOrArrayOfItemsSchema({
|
|
2588
|
-
type: "string",
|
|
2589
|
-
minLength: 1
|
|
2590
|
-
}),
|
|
2591
|
-
description: {
|
|
2592
|
-
type: "string",
|
|
2593
|
-
minLength: 1
|
|
2594
|
-
},
|
|
2595
|
-
name: {
|
|
2596
|
-
type: "string",
|
|
2597
|
-
minLength: 1
|
|
2598
|
-
},
|
|
2599
|
-
mimeType: {
|
|
2600
|
-
type: "string",
|
|
2601
|
-
minLength: 1
|
|
2602
|
-
},
|
|
2603
|
-
icon: {
|
|
2604
|
-
type: "string",
|
|
2605
|
-
minLength: 1
|
|
2606
|
-
},
|
|
2607
|
-
role: {
|
|
2608
|
-
type: "string",
|
|
2609
|
-
minLength: 1
|
|
2610
|
-
},
|
|
2611
|
-
isPackage: {
|
|
2612
|
-
type: "boolean"
|
|
2613
|
-
},
|
|
2614
|
-
rank: {
|
|
2615
|
-
type: "string",
|
|
2616
|
-
minLength: 1
|
|
2617
|
-
}
|
|
2618
|
-
}
|
|
2619
|
-
},
|
|
2620
|
-
minItems: 1
|
|
2621
|
-
},
|
|
2622
|
-
filesForDistribution: {
|
|
2623
|
-
type: "array",
|
|
2624
|
-
items: {
|
|
2625
|
-
type: "string",
|
|
2626
|
-
minLength: 1
|
|
2627
|
-
},
|
|
2628
|
-
minItems: 1
|
|
2629
|
-
},
|
|
2630
|
-
icon: getIconSchema(),
|
|
2631
|
-
linux: {
|
|
2632
|
-
properties: {
|
|
2633
|
-
category: {
|
|
2634
|
-
type: "string",
|
|
2635
|
-
minLength: 1
|
|
2636
|
-
},
|
|
2637
|
-
icon: getIconSchema()
|
|
2638
|
-
}
|
|
2639
|
-
},
|
|
2640
|
-
id: {
|
|
2641
|
-
type: "string",
|
|
2642
|
-
minLength: 1
|
|
2643
|
-
},
|
|
2644
|
-
mac: {
|
|
2645
|
-
properties: {
|
|
2646
|
-
category: {
|
|
2647
|
-
type: "string",
|
|
2648
|
-
minLength: 1
|
|
2649
|
-
},
|
|
2650
|
-
additionalBinariesToSign: {
|
|
2651
|
-
type: "array",
|
|
2652
|
-
items: {
|
|
2653
|
-
type: "string",
|
|
2654
|
-
minLength: 1
|
|
2655
|
-
}
|
|
2656
|
-
},
|
|
2657
|
-
entitlements: {
|
|
2658
|
-
type: "string",
|
|
2659
|
-
file: {
|
|
2660
|
-
from: context.projectRoot,
|
|
2661
|
-
extensions: ["plist"],
|
|
2662
|
-
mustBeFile: true
|
|
2663
|
-
},
|
|
2664
|
-
minLength: 1
|
|
2665
|
-
},
|
|
2666
|
-
extendInfo: {
|
|
2667
|
-
type: "object"
|
|
2668
|
-
},
|
|
2669
|
-
icon: getIconSchema()
|
|
2670
|
-
}
|
|
2671
|
-
},
|
|
2672
|
-
dmg: {
|
|
2673
|
-
properties: {
|
|
2674
|
-
background: {
|
|
2675
|
-
type: "string",
|
|
2676
|
-
file: {
|
|
2677
|
-
from: context.projectRoot,
|
|
2678
|
-
extensions: ["tiff"],
|
|
2679
|
-
mustBeFile: true
|
|
2680
|
-
},
|
|
2681
|
-
minLength: 1
|
|
2682
|
-
},
|
|
2683
|
-
artifactName: {
|
|
2684
|
-
type: "string",
|
|
2685
|
-
minLength: 1
|
|
2686
|
-
},
|
|
2687
|
-
backgroundColor: {
|
|
2688
|
-
type: "string",
|
|
2689
|
-
minLength: 1
|
|
2690
|
-
},
|
|
2691
|
-
iconSize: {
|
|
2692
|
-
type: "number"
|
|
2693
|
-
},
|
|
2694
|
-
iconTextSize: {
|
|
2695
|
-
type: "number"
|
|
2696
|
-
},
|
|
2697
|
-
title: {
|
|
2698
|
-
type: "string",
|
|
2699
|
-
minLength: 1
|
|
2700
|
-
},
|
|
2701
|
-
contents: {
|
|
2702
|
-
type: "array",
|
|
2703
|
-
items: {
|
|
2704
|
-
type: "object",
|
|
2705
|
-
properties: {
|
|
2706
|
-
x: {
|
|
2707
|
-
type: "number"
|
|
2708
|
-
},
|
|
2709
|
-
y: {
|
|
2710
|
-
type: "number"
|
|
2711
|
-
}
|
|
2712
|
-
}
|
|
2713
|
-
}
|
|
2714
|
-
},
|
|
2715
|
-
window: {
|
|
2716
|
-
type: "object",
|
|
2717
|
-
properties: {
|
|
2718
|
-
x: {
|
|
2719
|
-
type: "number"
|
|
2720
|
-
},
|
|
2721
|
-
y: {
|
|
2722
|
-
type: "number"
|
|
2723
|
-
},
|
|
2724
|
-
width: {
|
|
2725
|
-
type: "number"
|
|
2726
|
-
},
|
|
2727
|
-
height: {
|
|
2728
|
-
type: "number"
|
|
2729
|
-
}
|
|
2730
|
-
}
|
|
2731
|
-
}
|
|
2732
|
-
}
|
|
2733
|
-
},
|
|
2734
|
-
schemaVersion: {
|
|
2735
|
-
type: "number",
|
|
2736
|
-
minimum: 1,
|
|
2737
|
-
maximum: 1
|
|
2738
|
-
},
|
|
2739
|
-
snap: {
|
|
2740
|
-
properties: {
|
|
2741
|
-
after: {
|
|
2742
|
-
type: "array",
|
|
2743
|
-
items: {
|
|
2744
|
-
type: "string",
|
|
2745
|
-
minLength: 1
|
|
2746
|
-
}
|
|
2747
|
-
},
|
|
2748
|
-
appPartStage: {
|
|
2749
|
-
type: "array",
|
|
2750
|
-
items: {
|
|
2751
|
-
type: "string",
|
|
2752
|
-
minLength: 1
|
|
2753
|
-
}
|
|
2754
|
-
},
|
|
2755
|
-
assumes: getItemOrArrayOfItemsSchema({
|
|
2756
|
-
type: "string",
|
|
2757
|
-
minLength: 1
|
|
2758
|
-
}),
|
|
2759
|
-
autoStart: {
|
|
2760
|
-
type: "boolean"
|
|
2761
|
-
},
|
|
2762
|
-
buildPackages: {
|
|
2763
|
-
type: "array",
|
|
2764
|
-
items: {
|
|
2765
|
-
type: "string",
|
|
2766
|
-
minLength: 1
|
|
2767
|
-
}
|
|
2768
|
-
},
|
|
2769
|
-
confinement: {
|
|
2770
|
-
type: "string",
|
|
2771
|
-
enum: ["classic", "devmode", "strict"]
|
|
2772
|
-
},
|
|
2773
|
-
environment: {
|
|
2774
|
-
type: "object"
|
|
2775
|
-
},
|
|
2776
|
-
grade: {
|
|
2777
|
-
type: "string",
|
|
2778
|
-
enum: ["devel", "stable"]
|
|
2779
|
-
},
|
|
2780
|
-
layout: {
|
|
2781
|
-
type: "object"
|
|
2782
|
-
},
|
|
2783
|
-
plugs: {
|
|
2784
|
-
type: "array",
|
|
2785
|
-
items: {
|
|
2786
|
-
anyOf: [{
|
|
2787
|
-
type: "string",
|
|
2788
|
-
minLength: 1
|
|
2789
|
-
}, {
|
|
2790
|
-
type: "object"
|
|
2791
|
-
}]
|
|
2792
|
-
}
|
|
2793
|
-
},
|
|
2794
|
-
stagePackages: {
|
|
2795
|
-
type: "array",
|
|
2796
|
-
items: {
|
|
2797
|
-
type: "string",
|
|
2798
|
-
minLength: 1
|
|
2799
|
-
}
|
|
2800
|
-
},
|
|
2801
|
-
summary: {
|
|
2802
|
-
type: "string",
|
|
2803
|
-
maxLength: 78
|
|
2804
|
-
},
|
|
2805
|
-
useTemplateApp: {
|
|
2806
|
-
type: "boolean"
|
|
2807
|
-
}
|
|
2808
|
-
}
|
|
2809
|
-
},
|
|
2810
|
-
uploadSizeLimit: {
|
|
2811
|
-
type: "number"
|
|
2812
|
-
},
|
|
2813
|
-
windows: {
|
|
2814
|
-
properties: {
|
|
2815
|
-
icon: getIconSchema(["ico"])
|
|
2816
|
-
}
|
|
2817
|
-
}
|
|
2818
|
-
}
|
|
2819
|
-
};
|
|
2820
|
-
};
|
|
2821
|
-
|
|
2822
|
-
exports.default = _default;
|
|
2823
|
-
},{}],"../lib/utilities/projectConfig/validateConfig.js":[function(require,module,exports) {
|
|
2824
|
-
"use strict";
|
|
2825
|
-
|
|
2826
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2827
|
-
value: true
|
|
2828
|
-
});
|
|
2829
|
-
exports.default = void 0;
|
|
2830
|
-
|
|
2831
|
-
var _ajv = _interopRequireDefault(require("ajv"));
|
|
2832
|
-
|
|
2833
|
-
var _betterAjvErrors = _interopRequireDefault(require("better-ajv-errors"));
|
|
2834
|
-
|
|
2835
|
-
var _addCustomKeywords = _interopRequireDefault(require("./addCustomKeywords"));
|
|
2836
|
-
|
|
2837
|
-
var _full = _interopRequireDefault(require("./schema/full"));
|
|
2838
|
-
|
|
2839
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2840
|
-
|
|
2841
|
-
var _default = ({
|
|
2842
|
-
config,
|
|
2843
|
-
projectRoot
|
|
2844
|
-
}) => {
|
|
2845
|
-
const context = {
|
|
2846
|
-
projectRoot
|
|
2847
|
-
};
|
|
2848
|
-
const schema = (0, _full.default)(context);
|
|
2849
|
-
const ajv = new _ajv.default({
|
|
2850
|
-
allErrors: true,
|
|
2851
|
-
jsonPointers: true
|
|
2852
|
-
});
|
|
2853
|
-
(0, _addCustomKeywords.default)(ajv, context);
|
|
2854
|
-
const validate = ajv.compile(schema);
|
|
2855
|
-
|
|
2856
|
-
if (!validate(config)) {
|
|
2857
|
-
const output = (0, _betterAjvErrors.default)(schema, config, validate.errors, {
|
|
2858
|
-
indent: 2
|
|
2859
|
-
});
|
|
2860
|
-
throw new Error(`todesktop.json invalid. \nLearn more here: https://www.npmjs.com/package/@todesktop/cli#project-configuration-todesktopjson \n\n${output}`);
|
|
2861
|
-
}
|
|
2862
|
-
|
|
2863
|
-
if (config.productName) {
|
|
2864
|
-
throw new Error(`todesktop.json invalid.
|
|
2865
|
-
|
|
2866
|
-
The "productName" property is no longer supported in todesktop.json. Please remove it and add it to your app's package.json instead.
|
|
2867
|
-
|
|
2868
|
-
We made this change because Electron also uses the "productName" if it exists in your app's package.json. If you do not add it to your package.json, your app name will default to the value of the "name" property in your package.json.`);
|
|
2869
|
-
}
|
|
2870
|
-
};
|
|
2871
|
-
|
|
2872
|
-
exports.default = _default;
|
|
2873
|
-
},{"./addCustomKeywords":"../lib/utilities/projectConfig/addCustomKeywords.js","./schema/full":"../lib/utilities/projectConfig/schema/full.js"}],"../lib/utilities/projectConfig/getProjectConfig.js":[function(require,module,exports) {
|
|
2874
|
-
"use strict";
|
|
2875
|
-
|
|
2876
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2877
|
-
value: true
|
|
2878
|
-
});
|
|
2879
|
-
exports.default = void 0;
|
|
2880
|
-
|
|
2881
|
-
var _path = require("path");
|
|
2882
|
-
|
|
2883
|
-
var _findUp = _interopRequireDefault(require("find-up"));
|
|
2884
|
-
|
|
2885
|
-
var _loadConfig = _interopRequireDefault(require("./loadConfig"));
|
|
2886
|
-
|
|
2887
|
-
var _resolveConfigPaths = _interopRequireDefault(require("./resolveConfigPaths"));
|
|
2888
|
-
|
|
2889
|
-
var _validateConfig = _interopRequireDefault(require("./validateConfig"));
|
|
2890
|
-
|
|
2891
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2892
|
-
|
|
2893
|
-
var _default = () => {
|
|
2894
|
-
const configPath = _findUp.default.sync("todesktop.json");
|
|
2895
|
-
|
|
2896
|
-
if (!configPath) {
|
|
2897
|
-
throw new Error("Can not find todesktop.json in this folder or any parent folders");
|
|
2898
|
-
}
|
|
2899
|
-
|
|
2900
|
-
const projectRoot = (0, _path.dirname)(configPath); // This will throw if it's not valid JSON
|
|
2901
|
-
|
|
2902
|
-
const config = (0, _loadConfig.default)(configPath);
|
|
2903
|
-
config.appPath = config.appPath || "."; // This will throw if invalid
|
|
2904
|
-
|
|
2905
|
-
(0, _validateConfig.default)({
|
|
2906
|
-
config,
|
|
2907
|
-
projectRoot
|
|
2908
|
-
});
|
|
2909
|
-
const result = (0, _resolveConfigPaths.default)({
|
|
2910
|
-
config,
|
|
2911
|
-
projectRoot
|
|
2912
|
-
});
|
|
2913
|
-
return {
|
|
2914
|
-
config: result,
|
|
2915
|
-
unprocessedConfig: config,
|
|
2916
|
-
projectRoot
|
|
2917
|
-
};
|
|
2918
|
-
};
|
|
2919
|
-
|
|
2920
|
-
exports.default = _default;
|
|
2921
|
-
},{"./loadConfig":"../lib/utilities/projectConfig/loadConfig.js","./resolveConfigPaths":"../lib/utilities/projectConfig/resolveConfigPaths.js","./validateConfig":"../lib/utilities/projectConfig/validateConfig.js"}],"../lib/utilities/shouldExitOnBuildFailure.js":[function(require,module,exports) {
|
|
2922
|
-
"use strict";
|
|
2923
|
-
|
|
2924
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2925
|
-
value: true
|
|
2926
|
-
});
|
|
2927
|
-
exports.default = void 0;
|
|
2928
|
-
|
|
2929
|
-
// X build has failed, should we exit? I.e. is it settled?
|
|
2930
|
-
var _default = build => ["linux", "mac", "windows"].every(platform => build[platform].shouldSkip || "succeeded" === build[platform].status || "failed" === build[platform].status && build[platform].numberOfAttemptedBuilds === 2);
|
|
2931
|
-
|
|
2932
|
-
exports.default = _default;
|
|
2933
|
-
},{}],"../lib/utilities/subscribeToFirebaseDoc.js":[function(require,module,exports) {
|
|
2934
|
-
"use strict";
|
|
2935
|
-
|
|
2936
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2937
|
-
value: true
|
|
2938
|
-
});
|
|
2939
|
-
exports.default = void 0;
|
|
2940
|
-
|
|
2941
|
-
var _firestore = _interopRequireDefault(require("./firestore"));
|
|
2942
|
-
|
|
2943
|
-
var _logger = _interopRequireDefault(require("./logger"));
|
|
2944
|
-
|
|
2945
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2946
|
-
|
|
2947
|
-
var _default = async (key, receiver) => {
|
|
2948
|
-
const hasResolved = false;
|
|
2949
|
-
return new Promise((resolve, reject) => {
|
|
2950
|
-
_logger.default.debug({
|
|
2951
|
-
key
|
|
2952
|
-
}, "subscribeToFirebaseDoc");
|
|
2953
|
-
|
|
2954
|
-
_firestore.default.doc(key).onSnapshot(snapshot => {
|
|
2955
|
-
receiver({
|
|
2956
|
-
snapshot,
|
|
2957
|
-
data: snapshot.exists ? snapshot.data() : undefined
|
|
2958
|
-
});
|
|
2959
|
-
|
|
2960
|
-
if (!hasResolved) {
|
|
2961
|
-
resolve();
|
|
2962
|
-
}
|
|
2963
|
-
}, err => {
|
|
2964
|
-
reject(err);
|
|
2965
|
-
});
|
|
2966
|
-
});
|
|
2967
|
-
};
|
|
2968
|
-
|
|
2969
|
-
exports.default = _default;
|
|
2970
|
-
},{"./firestore":"../lib/utilities/firestore.js","./logger":"../lib/utilities/logger.js"}],"../lib/utilities/subscribeToBuild.js":[function(require,module,exports) {
|
|
2971
|
-
"use strict";
|
|
2972
|
-
|
|
2973
|
-
Object.defineProperty(exports, "__esModule", {
|
|
2974
|
-
value: true
|
|
2975
|
-
});
|
|
2976
|
-
exports.default = void 0;
|
|
2977
|
-
|
|
2978
|
-
var _subscribeToFirebaseDoc = _interopRequireDefault(require("./subscribeToFirebaseDoc"));
|
|
2979
|
-
|
|
2980
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2981
|
-
|
|
2982
|
-
var _default = async ({
|
|
2983
|
-
appId,
|
|
2984
|
-
buildId,
|
|
2985
|
-
onDataReceived,
|
|
2986
|
-
userId
|
|
2987
|
-
}) => {
|
|
2988
|
-
try {
|
|
2989
|
-
return await (0, _subscribeToFirebaseDoc.default)(`users/${userId}/applications/${appId}/builds/${buildId}`, async ({
|
|
2990
|
-
data
|
|
2991
|
-
}) => {
|
|
2992
|
-
onDataReceived(data);
|
|
2993
|
-
});
|
|
2994
|
-
} catch (e) {
|
|
2995
|
-
e.message = `Failed while subscribing to build; ${e.message}`;
|
|
2996
|
-
throw e;
|
|
2997
|
-
}
|
|
2998
|
-
};
|
|
2999
|
-
|
|
3000
|
-
exports.default = _default;
|
|
3001
|
-
},{"./subscribeToFirebaseDoc":"../lib/utilities/subscribeToFirebaseDoc.js"}],"../lib/components/ViewBuild.js":[function(require,module,exports) {
|
|
3002
|
-
"use strict";
|
|
3003
|
-
|
|
3004
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3005
|
-
value: true
|
|
3006
|
-
});
|
|
3007
|
-
exports.default = void 0;
|
|
3008
|
-
|
|
3009
|
-
var _ink = require("ink");
|
|
3010
|
-
|
|
3011
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3012
|
-
|
|
3013
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
3014
|
-
|
|
3015
|
-
var _BuildProgress = _interopRequireDefault(require("./BuildProgress"));
|
|
3016
|
-
|
|
3017
|
-
var _ErrorDisplay = _interopRequireDefault(require("./ErrorDisplay"));
|
|
3018
|
-
|
|
3019
|
-
var _MainLayout = _interopRequireDefault(require("./MainLayout"));
|
|
3020
|
-
|
|
3021
|
-
var _firestore = require("../utilities/firestore");
|
|
3022
|
-
|
|
3023
|
-
var _getLatestBuildId = _interopRequireDefault(require("../utilities/getLatestBuildId"));
|
|
3024
|
-
|
|
3025
|
-
var _getProjectConfig = _interopRequireDefault(require("../utilities/projectConfig/getProjectConfig"));
|
|
3026
|
-
|
|
3027
|
-
var _logForCI = _interopRequireDefault(require("../utilities/logForCI"));
|
|
3028
|
-
|
|
3029
|
-
var _shouldExitOnBuildFailure = _interopRequireDefault(require("../utilities/shouldExitOnBuildFailure"));
|
|
3030
|
-
|
|
3031
|
-
var _subscribeToBuild = _interopRequireDefault(require("../utilities/subscribeToBuild"));
|
|
3032
|
-
|
|
3033
|
-
var _useExit = _interopRequireDefault(require("../utilities/useExit"));
|
|
3034
|
-
|
|
3035
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
3036
|
-
|
|
3037
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
3038
|
-
|
|
3039
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3040
|
-
|
|
3041
|
-
// libs
|
|
3042
|
-
// components
|
|
3043
|
-
// utils
|
|
3044
|
-
const ViewBuild = ({
|
|
3045
|
-
commandUsed,
|
|
3046
|
-
id
|
|
3047
|
-
}) => {
|
|
3048
|
-
const exit = (0, _useExit.default)();
|
|
3049
|
-
const [{
|
|
3050
|
-
appId,
|
|
3051
|
-
arbitraryMessageComponent,
|
|
3052
|
-
build,
|
|
3053
|
-
error,
|
|
3054
|
-
hasBuildFailed,
|
|
3055
|
-
isLoading
|
|
3056
|
-
}, setState] = (0, _react.useState)({
|
|
3057
|
-
appId: null,
|
|
3058
|
-
arbitraryMessageComponent: null,
|
|
3059
|
-
build: null,
|
|
3060
|
-
error: null,
|
|
3061
|
-
hasBuildFailed: false,
|
|
3062
|
-
isLoading: true
|
|
3063
|
-
});
|
|
3064
|
-
|
|
3065
|
-
const onError = e => {
|
|
3066
|
-
const error = e.response ? e.response.data : e;
|
|
3067
|
-
(0, _logForCI.default)(error);
|
|
3068
|
-
setState(prevState => ({ ...prevState,
|
|
3069
|
-
error
|
|
3070
|
-
}));
|
|
3071
|
-
};
|
|
3072
|
-
|
|
3073
|
-
(0, _react.useEffect)(() => {
|
|
3074
|
-
let config;
|
|
3075
|
-
|
|
3076
|
-
try {
|
|
3077
|
-
// This will throw if validation fails:
|
|
3078
|
-
config = (0, _getProjectConfig.default)().config;
|
|
3079
|
-
} catch (e) {
|
|
3080
|
-
setState(previousState => ({ ...previousState,
|
|
3081
|
-
error: e
|
|
3082
|
-
}));
|
|
3083
|
-
return;
|
|
3084
|
-
}
|
|
3085
|
-
|
|
3086
|
-
let firebaseUnsubscribe;
|
|
3087
|
-
|
|
3088
|
-
const subscribe = buildId => {
|
|
3089
|
-
(0, _subscribeToBuild.default)({
|
|
3090
|
-
appId: config.id,
|
|
3091
|
-
buildId,
|
|
3092
|
-
onDataReceived: data => {
|
|
3093
|
-
if (!data) {
|
|
3094
|
-
onError(new Error(`No such build exists (${buildId}). Please contact us if this is an error`));
|
|
3095
|
-
}
|
|
3096
|
-
|
|
3097
|
-
setState(prevState => ({ ...prevState,
|
|
3098
|
-
appId: config.id,
|
|
3099
|
-
build: data,
|
|
3100
|
-
isLoading: false
|
|
3101
|
-
}));
|
|
3102
|
-
},
|
|
3103
|
-
userId: (0, _firestore.currentUser)().uid
|
|
3104
|
-
}).then(firebaseUnsubscribeResult => {
|
|
3105
|
-
firebaseUnsubscribe = firebaseUnsubscribeResult;
|
|
3106
|
-
}).catch(onError);
|
|
3107
|
-
};
|
|
3108
|
-
|
|
3109
|
-
if (id) {
|
|
3110
|
-
subscribe(id);
|
|
3111
|
-
} else {
|
|
3112
|
-
(0, _getLatestBuildId.default)({
|
|
3113
|
-
appId: config.id
|
|
3114
|
-
}).catch(onError).then(latestBuildId => {
|
|
3115
|
-
if (!latestBuildId) {
|
|
3116
|
-
setState(previousState => ({ ...previousState,
|
|
3117
|
-
arbitraryMessageComponent: /*#__PURE__*/_react.default.createElement(_ink.Text, null, "There are no builds yet")
|
|
3118
|
-
}));
|
|
3119
|
-
return;
|
|
3120
|
-
}
|
|
3121
|
-
|
|
3122
|
-
return subscribe(latestBuildId);
|
|
3123
|
-
});
|
|
3124
|
-
}
|
|
3125
|
-
|
|
3126
|
-
return () => {
|
|
3127
|
-
if (firebaseUnsubscribe) {
|
|
3128
|
-
firebaseUnsubscribe();
|
|
3129
|
-
}
|
|
3130
|
-
};
|
|
3131
|
-
}, [id]); // Exit if the build has errored and settled
|
|
3132
|
-
|
|
3133
|
-
(0, _react.useEffect)(() => {
|
|
3134
|
-
if (hasBuildFailed && (0, _shouldExitOnBuildFailure.default)(build)) {
|
|
3135
|
-
setTimeout(() => exit(new Error("Build has failed")), 10);
|
|
3136
|
-
}
|
|
3137
|
-
}, [build, exit, hasBuildFailed]); // Exit once an arbitrary message exists
|
|
3138
|
-
|
|
3139
|
-
(0, _react.useEffect)(() => {
|
|
3140
|
-
if (arbitraryMessageComponent) {
|
|
3141
|
-
setTimeout(() => exit(new Error("Validation failed")), 10);
|
|
3142
|
-
}
|
|
3143
|
-
}, [arbitraryMessageComponent, exit]);
|
|
3144
|
-
|
|
3145
|
-
if (error) {
|
|
3146
|
-
return /*#__PURE__*/_react.default.createElement(_ErrorDisplay.default, {
|
|
3147
|
-
commandUsed: commandUsed,
|
|
3148
|
-
error: error
|
|
3149
|
-
});
|
|
3150
|
-
}
|
|
3151
|
-
|
|
3152
|
-
if (arbitraryMessageComponent) {
|
|
3153
|
-
return arbitraryMessageComponent;
|
|
3154
|
-
}
|
|
3155
|
-
|
|
3156
|
-
if (isLoading) {
|
|
3157
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Text, null, "Loading...");
|
|
3158
|
-
}
|
|
3159
|
-
|
|
3160
|
-
const onBuildFailure = () => {
|
|
3161
|
-
if (hasBuildFailed) {
|
|
3162
|
-
return;
|
|
3163
|
-
}
|
|
3164
|
-
|
|
3165
|
-
setState(prevState => ({ ...prevState,
|
|
3166
|
-
hasBuildFailed: true
|
|
3167
|
-
}));
|
|
3168
|
-
};
|
|
3169
|
-
|
|
3170
|
-
return /*#__PURE__*/_react.default.createElement(_MainLayout.default, {
|
|
3171
|
-
appId: appId,
|
|
3172
|
-
appName: build.appName,
|
|
3173
|
-
appVersion: build.appVersion,
|
|
3174
|
-
build: build,
|
|
3175
|
-
commandUsed: commandUsed,
|
|
3176
|
-
hasBuildFailed: hasBuildFailed
|
|
3177
|
-
}, /*#__PURE__*/_react.default.createElement(_BuildProgress.default, {
|
|
3178
|
-
build: build,
|
|
3179
|
-
onBuildFailure: onBuildFailure
|
|
3180
|
-
}));
|
|
3181
|
-
};
|
|
3182
|
-
|
|
3183
|
-
ViewBuild.propTypes = {
|
|
3184
|
-
id: (props, propName, componentName) => {
|
|
3185
|
-
if ([props.id, props.shouldViewLatest].filter(Boolean).length !== 1) {
|
|
3186
|
-
return new Error(`Exactly one of 'id' and 'shouldViewLatest' must be specified in '${componentName}'`);
|
|
3187
|
-
}
|
|
3188
|
-
|
|
3189
|
-
const type = typeof props.id;
|
|
3190
|
-
|
|
3191
|
-
if (!["string", "undefined"].includes(type)) {
|
|
3192
|
-
return new Error(`'id' is a '${type}', not a string, in '${componentName}'.`);
|
|
3193
|
-
}
|
|
3194
|
-
},
|
|
3195
|
-
commandUsed: _propTypes.default.string.isRequired,
|
|
3196
|
-
shouldViewLatest: (props, propName, componentName) => {
|
|
3197
|
-
if ([props.id, props.shouldViewLatest].filter(Boolean).length !== 1) {
|
|
3198
|
-
return new Error(`Exactly one of 'id' and 'shouldViewLatest' must be specified in '${componentName}'`);
|
|
3199
|
-
}
|
|
3200
|
-
|
|
3201
|
-
const type = typeof props.shouldViewLatest;
|
|
3202
|
-
|
|
3203
|
-
if (!["boolean", "undefined"].includes(type)) {
|
|
3204
|
-
return new Error(`'shouldViewLatest' is a '${type}', not a boolean, in '${componentName}'.`);
|
|
3205
|
-
}
|
|
3206
|
-
}
|
|
3207
|
-
};
|
|
3208
|
-
var _default = ViewBuild;
|
|
3209
|
-
exports.default = _default;
|
|
3210
|
-
},{"./BuildProgress":"../lib/components/BuildProgress.js","./ErrorDisplay":"../lib/components/ErrorDisplay.js","./MainLayout":"../lib/components/MainLayout.js","../utilities/firestore":"../lib/utilities/firestore.js","../utilities/getLatestBuildId":"../lib/utilities/getLatestBuildId.js","../utilities/projectConfig/getProjectConfig":"../lib/utilities/projectConfig/getProjectConfig.js","../utilities/logForCI":"../lib/utilities/logForCI.js","../utilities/shouldExitOnBuildFailure":"../lib/utilities/shouldExitOnBuildFailure.js","../utilities/subscribeToBuild":"../lib/utilities/subscribeToBuild.js","../utilities/useExit":"../lib/utilities/useExit.js"}],"../lib/components/TableEnd.js":[function(require,module,exports) {
|
|
3211
|
-
"use strict";
|
|
3212
|
-
|
|
3213
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3214
|
-
value: true
|
|
3215
|
-
});
|
|
3216
|
-
exports.default = void 0;
|
|
3217
|
-
|
|
3218
|
-
var _ink = require("ink");
|
|
3219
|
-
|
|
3220
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3221
|
-
|
|
3222
|
-
var _react = _interopRequireDefault(require("react"));
|
|
3223
|
-
|
|
3224
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3225
|
-
|
|
3226
|
-
/*
|
|
3227
|
-
See Table component
|
|
3228
|
-
*/
|
|
3229
|
-
const TableEnd = ({
|
|
3230
|
-
keyDetails,
|
|
3231
|
-
...props
|
|
3232
|
-
}) => {
|
|
3233
|
-
let content = "└";
|
|
3234
|
-
content += Object.values(keyDetails).map(({
|
|
3235
|
-
width
|
|
3236
|
-
}) => "─".repeat(width + 2)).join("┴");
|
|
3237
|
-
content += "┘";
|
|
3238
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Box, props, /*#__PURE__*/_react.default.createElement(_ink.Text, null, content));
|
|
3239
|
-
};
|
|
3240
|
-
|
|
3241
|
-
TableEnd.propTypes = {
|
|
3242
|
-
keyDetails: _propTypes.default.object.isRequired
|
|
3243
|
-
};
|
|
3244
|
-
var _default = TableEnd;
|
|
3245
|
-
exports.default = _default;
|
|
3246
|
-
},{}],"../lib/components/TableHead.js":[function(require,module,exports) {
|
|
3247
|
-
"use strict";
|
|
3248
|
-
|
|
3249
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3250
|
-
value: true
|
|
3251
|
-
});
|
|
3252
|
-
exports.default = void 0;
|
|
3253
|
-
|
|
3254
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
3255
|
-
|
|
3256
|
-
var _ink = require("ink");
|
|
3257
|
-
|
|
3258
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3259
|
-
|
|
3260
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
3261
|
-
|
|
3262
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
3263
|
-
|
|
3264
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
3265
|
-
|
|
3266
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3267
|
-
|
|
3268
|
-
/*
|
|
3269
|
-
See Table component
|
|
3270
|
-
*/
|
|
3271
|
-
const TableHead = ({
|
|
3272
|
-
keyDetails,
|
|
3273
|
-
...props
|
|
3274
|
-
}) => {
|
|
3275
|
-
let topLine = "┌";
|
|
3276
|
-
topLine += Object.values(keyDetails).map(({
|
|
3277
|
-
width
|
|
3278
|
-
}) => "─".repeat(width + 2)).join("┬");
|
|
3279
|
-
topLine += "┐";
|
|
3280
|
-
const contentLineElements = Object.values(keyDetails).map(({
|
|
3281
|
-
key,
|
|
3282
|
-
width
|
|
3283
|
-
}, index) => {
|
|
3284
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
|
|
3285
|
-
key: key
|
|
3286
|
-
}, index > 0 ? /*#__PURE__*/_react.default.createElement(_ink.Text, null, " \u2502 ") : null, /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
3287
|
-
width: width
|
|
3288
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
3289
|
-
bold: true
|
|
3290
|
-
}, key)));
|
|
3291
|
-
});
|
|
3292
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Box, (0, _extends2.default)({
|
|
3293
|
-
flexDirection: "column"
|
|
3294
|
-
}, props), /*#__PURE__*/_react.default.createElement(_ink.Box, null, /*#__PURE__*/_react.default.createElement(_ink.Text, null, topLine)), /*#__PURE__*/_react.default.createElement(_ink.Box, null, /*#__PURE__*/_react.default.createElement(_ink.Box, null, /*#__PURE__*/_react.default.createElement(_ink.Text, null, "\u2502 "), contentLineElements, /*#__PURE__*/_react.default.createElement(_ink.Text, null, " \u2502"))));
|
|
3295
|
-
};
|
|
3296
|
-
|
|
3297
|
-
TableHead.propTypes = {
|
|
3298
|
-
bottomLinePrefix: _propTypes.default.string,
|
|
3299
|
-
keyDetails: _propTypes.default.object.isRequired
|
|
3300
|
-
};
|
|
3301
|
-
var _default = TableHead;
|
|
3302
|
-
exports.default = _default;
|
|
3303
|
-
},{}],"../lib/components/TableRow.js":[function(require,module,exports) {
|
|
3304
|
-
"use strict";
|
|
3305
|
-
|
|
3306
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3307
|
-
value: true
|
|
3308
|
-
});
|
|
3309
|
-
exports.default = void 0;
|
|
3310
|
-
|
|
3311
|
-
var _ink = require("ink");
|
|
3312
|
-
|
|
3313
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3314
|
-
|
|
3315
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
3316
|
-
|
|
3317
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
3318
|
-
|
|
3319
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
3320
|
-
|
|
3321
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3322
|
-
|
|
3323
|
-
/*
|
|
3324
|
-
See Table component
|
|
3325
|
-
*/
|
|
3326
|
-
const TableRow = ({
|
|
3327
|
-
data,
|
|
3328
|
-
getCellTextProps = ({
|
|
3329
|
-
props
|
|
3330
|
-
}) => props,
|
|
3331
|
-
keyDetails,
|
|
3332
|
-
textProps = {}
|
|
3333
|
-
}) => {
|
|
3334
|
-
let topLine = "├";
|
|
3335
|
-
topLine += Object.values(keyDetails).map(({
|
|
3336
|
-
width
|
|
3337
|
-
}) => "─".repeat(width + 2)).join("┼");
|
|
3338
|
-
topLine += "┤";
|
|
3339
|
-
|
|
3340
|
-
const content = /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ink.Text, null, "\u2502 "), Object.entries(data).map(([key, value], index) => {
|
|
3341
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
3342
|
-
key: key
|
|
3343
|
-
}, index > 0 ? /*#__PURE__*/_react.default.createElement(_ink.Text, null, " \u2502 ") : null, /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
3344
|
-
width: keyDetails[key].width
|
|
3345
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, getCellTextProps({
|
|
3346
|
-
key,
|
|
3347
|
-
props: textProps,
|
|
3348
|
-
rowData: data,
|
|
3349
|
-
value
|
|
3350
|
-
}), value)));
|
|
3351
|
-
}), /*#__PURE__*/_react.default.createElement(_ink.Text, null, " \u2502"));
|
|
3352
|
-
|
|
3353
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
3354
|
-
flexDirection: "column"
|
|
3355
|
-
}, /*#__PURE__*/_react.default.createElement(_ink.Text, null, topLine), /*#__PURE__*/_react.default.createElement(_ink.Box, null, content)));
|
|
3356
|
-
};
|
|
3357
|
-
|
|
3358
|
-
TableRow.propTypes = {
|
|
3359
|
-
data: _propTypes.default.object.isRequired,
|
|
3360
|
-
getCellTextProps: _propTypes.default.func,
|
|
3361
|
-
keyDetails: _propTypes.default.object.isRequired,
|
|
3362
|
-
textProps: _propTypes.default.object
|
|
3363
|
-
};
|
|
3364
|
-
var _default = TableRow;
|
|
3365
|
-
exports.default = _default;
|
|
3366
|
-
},{}],"../lib/components/TableBody.js":[function(require,module,exports) {
|
|
3367
|
-
"use strict";
|
|
3368
|
-
|
|
3369
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3370
|
-
value: true
|
|
3371
|
-
});
|
|
3372
|
-
exports.default = void 0;
|
|
3373
|
-
|
|
3374
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3375
|
-
|
|
3376
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
3377
|
-
|
|
3378
|
-
var _TableRow = _interopRequireDefault(require("./TableRow"));
|
|
3379
|
-
|
|
3380
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
3381
|
-
|
|
3382
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
3383
|
-
|
|
3384
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3385
|
-
|
|
3386
|
-
/*
|
|
3387
|
-
See Table component
|
|
3388
|
-
*/
|
|
3389
|
-
const TableBody = ({
|
|
3390
|
-
data,
|
|
3391
|
-
getCellTextProps,
|
|
3392
|
-
keyDetails
|
|
3393
|
-
}) => {
|
|
3394
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, data.map((rowData, index) => /*#__PURE__*/_react.default.createElement(_TableRow.default, {
|
|
3395
|
-
data: rowData,
|
|
3396
|
-
getCellTextProps: getCellTextProps,
|
|
3397
|
-
key: index,
|
|
3398
|
-
keyDetails: keyDetails
|
|
3399
|
-
})));
|
|
3400
|
-
};
|
|
3401
|
-
|
|
3402
|
-
TableBody.propTypes = {
|
|
3403
|
-
data: (props, propName, componentName) => {
|
|
3404
|
-
const type = typeof props.data;
|
|
3405
|
-
|
|
3406
|
-
if (Array.isArray("array")) {
|
|
3407
|
-
return new Error(`'data' prop must be an array ('${type}' given) in ${componentName} component`);
|
|
3408
|
-
}
|
|
3409
|
-
|
|
3410
|
-
if (props.data.length === 0) {
|
|
3411
|
-
return new Error(`'data' prop must not be empty, in ${componentName} component`);
|
|
3412
|
-
}
|
|
3413
|
-
},
|
|
3414
|
-
getCellTextProps: _propTypes.default.func,
|
|
3415
|
-
keyDetails: _propTypes.default.object.isRequired
|
|
3416
|
-
};
|
|
3417
|
-
var _default = TableBody;
|
|
3418
|
-
exports.default = _default;
|
|
3419
|
-
},{"./TableRow":"../lib/components/TableRow.js"}],"../lib/utilities/getKeyDetails.js":[function(require,module,exports) {
|
|
3420
|
-
"use strict";
|
|
3421
|
-
|
|
3422
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3423
|
-
value: true
|
|
3424
|
-
});
|
|
3425
|
-
exports.default = void 0;
|
|
3426
|
-
|
|
3427
|
-
// This is used to get the column widths for tables
|
|
3428
|
-
var _default = data => {
|
|
3429
|
-
const result = {};
|
|
3430
|
-
Object.keys(data[0]).forEach(key => {
|
|
3431
|
-
result[key] = {
|
|
3432
|
-
key,
|
|
3433
|
-
width: Math.max(key.length, data.map(item => item[key].toString().length).sort((a, b) => b - a)[0])
|
|
3434
|
-
};
|
|
3435
|
-
});
|
|
3436
|
-
return result;
|
|
3437
|
-
};
|
|
3438
|
-
|
|
3439
|
-
exports.default = _default;
|
|
3440
|
-
},{}],"../lib/components/Table.js":[function(require,module,exports) {
|
|
3441
|
-
"use strict";
|
|
3442
|
-
|
|
3443
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3444
|
-
value: true
|
|
3445
|
-
});
|
|
3446
|
-
exports.default = void 0;
|
|
3447
|
-
|
|
3448
|
-
var _ink = require("ink");
|
|
3449
|
-
|
|
3450
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3451
|
-
|
|
3452
|
-
var _react = _interopRequireDefault(require("react"));
|
|
3453
|
-
|
|
3454
|
-
var _TableEnd = _interopRequireDefault(require("./TableEnd"));
|
|
3455
|
-
|
|
3456
|
-
var _TableHead = _interopRequireDefault(require("./TableHead"));
|
|
3457
|
-
|
|
3458
|
-
var _TableBody = _interopRequireDefault(require("./TableBody"));
|
|
3459
|
-
|
|
3460
|
-
var _getKeyDetails = _interopRequireDefault(require("../utilities/getKeyDetails"));
|
|
3461
|
-
|
|
3462
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3463
|
-
|
|
3464
|
-
/*
|
|
3465
|
-
This component prints (the array of objects given) in a table.
|
|
3466
|
-
The array must not be empty.
|
|
3467
|
-
The keys are used as headers.
|
|
3468
|
-
Column widths are based on the longest value (object key or value).
|
|
3469
|
-
It is assumed that the same keys exist in all items.
|
|
3470
|
-
*/
|
|
3471
|
-
const Table = ({
|
|
3472
|
-
data,
|
|
3473
|
-
getCellTextProps
|
|
3474
|
-
}) => {
|
|
3475
|
-
const keyDetails = (0, _getKeyDetails.default)(data);
|
|
3476
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Box, {
|
|
3477
|
-
flexDirection: "column"
|
|
3478
|
-
}, /*#__PURE__*/_react.default.createElement(_TableHead.default, {
|
|
3479
|
-
keyDetails: keyDetails
|
|
3480
|
-
}), /*#__PURE__*/_react.default.createElement(_TableBody.default, {
|
|
3481
|
-
data: data,
|
|
3482
|
-
getCellTextProps: getCellTextProps,
|
|
3483
|
-
keyDetails: keyDetails
|
|
3484
|
-
}), /*#__PURE__*/_react.default.createElement(_TableEnd.default, {
|
|
3485
|
-
keyDetails: keyDetails
|
|
3486
|
-
}));
|
|
3487
|
-
};
|
|
3488
|
-
|
|
3489
|
-
Table.propTypes = {
|
|
3490
|
-
data: (props, propName, componentName) => {
|
|
3491
|
-
const type = typeof props.data;
|
|
3492
|
-
|
|
3493
|
-
if (Array.isArray("array")) {
|
|
3494
|
-
return new Error(`'data' prop must be an array ('${type}' given) in ${componentName} component`);
|
|
3495
|
-
}
|
|
3496
|
-
|
|
3497
|
-
if (props.data.length === 0) {
|
|
3498
|
-
return new Error(`'data' prop must not be empty, in ${componentName} component`);
|
|
3499
|
-
}
|
|
3500
|
-
},
|
|
3501
|
-
getCellTextProps: _propTypes.default.func
|
|
3502
|
-
};
|
|
3503
|
-
var _default = Table;
|
|
3504
|
-
exports.default = _default;
|
|
3505
|
-
},{"./TableEnd":"../lib/components/TableEnd.js","./TableHead":"../lib/components/TableHead.js","./TableBody":"../lib/components/TableBody.js","../utilities/getKeyDetails":"../lib/utilities/getKeyDetails.js"}],"../lib/utilities/capitalize.js":[function(require,module,exports) {
|
|
3506
|
-
"use strict";
|
|
3507
|
-
|
|
3508
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3509
|
-
value: true
|
|
3510
|
-
});
|
|
3511
|
-
exports.default = void 0;
|
|
3512
|
-
|
|
3513
|
-
var _default = input => {
|
|
3514
|
-
if (typeof input !== "string") {
|
|
3515
|
-
return "";
|
|
3516
|
-
}
|
|
3517
|
-
|
|
3518
|
-
return input.charAt(0).toUpperCase() + input.slice(1);
|
|
3519
|
-
};
|
|
3520
|
-
|
|
3521
|
-
exports.default = _default;
|
|
3522
|
-
},{}],"../lib/utilities/getBuilds.js":[function(require,module,exports) {
|
|
3523
|
-
"use strict";
|
|
3524
|
-
|
|
3525
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3526
|
-
value: true
|
|
3527
|
-
});
|
|
3528
|
-
exports.default = void 0;
|
|
3529
|
-
|
|
3530
|
-
var _firestore = _interopRequireWildcard(require("./firestore"));
|
|
3531
|
-
|
|
3532
|
-
var _logger = _interopRequireDefault(require("./logger"));
|
|
3533
|
-
|
|
3534
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3535
|
-
|
|
3536
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
3537
|
-
|
|
3538
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
3539
|
-
|
|
3540
|
-
var _default = async ({
|
|
3541
|
-
addWhereClauses = query => query,
|
|
3542
|
-
appId,
|
|
3543
|
-
limit = 5,
|
|
3544
|
-
startAfter
|
|
3545
|
-
}) => {
|
|
3546
|
-
_logger.default.debug({
|
|
3547
|
-
appId,
|
|
3548
|
-
limit,
|
|
3549
|
-
startAfter
|
|
3550
|
-
}, "getBuilds");
|
|
3551
|
-
|
|
3552
|
-
const appRef = _firestore.default.doc(`users/${(0, _firestore.currentUser)().uid}/applications/${appId}`);
|
|
3553
|
-
|
|
3554
|
-
const appSnapshot = await appRef.get();
|
|
3555
|
-
|
|
3556
|
-
if (!appSnapshot.exists) {
|
|
3557
|
-
throw new Error(`Application with ID of ${appId} doesn't exist.`);
|
|
3558
|
-
}
|
|
3559
|
-
|
|
3560
|
-
let query = addWhereClauses(appRef.collection("builds")).orderBy("createdAt", "desc");
|
|
3561
|
-
|
|
3562
|
-
if (startAfter) {
|
|
3563
|
-
query = query.startAfter(startAfter);
|
|
3564
|
-
}
|
|
3565
|
-
|
|
3566
|
-
const buildsResult = await query.limit(limit).get();
|
|
3567
|
-
|
|
3568
|
-
if (buildsResult.empty) {
|
|
3569
|
-
return [];
|
|
3570
|
-
}
|
|
3571
|
-
|
|
3572
|
-
return buildsResult.docs.map(doc => doc.data());
|
|
3573
|
-
};
|
|
3574
|
-
|
|
3575
|
-
exports.default = _default;
|
|
3576
|
-
},{"./firestore":"../lib/utilities/firestore.js","./logger":"../lib/utilities/logger.js"}],"../lib/utilities/getRelativeDateFromDateString.js":[function(require,module,exports) {
|
|
3577
|
-
"use strict";
|
|
3578
|
-
|
|
3579
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3580
|
-
value: true
|
|
3581
|
-
});
|
|
3582
|
-
exports.default = void 0;
|
|
3583
|
-
|
|
3584
|
-
var dateFns = _interopRequireWildcard(require("date-fns"));
|
|
3585
|
-
|
|
3586
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
3587
|
-
|
|
3588
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
3589
|
-
|
|
3590
|
-
var _default = input => dateFns.formatDistance(new Date(input), new Date()) + " ago";
|
|
3591
|
-
|
|
3592
|
-
exports.default = _default;
|
|
3593
|
-
},{}],"../lib/components/ViewBuilds.js":[function(require,module,exports) {
|
|
3594
|
-
"use strict";
|
|
3595
|
-
|
|
3596
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3597
|
-
value: true
|
|
3598
|
-
});
|
|
3599
|
-
exports.default = void 0;
|
|
3600
|
-
|
|
3601
|
-
var _ink = require("ink");
|
|
3602
|
-
|
|
3603
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3604
|
-
|
|
3605
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
3606
|
-
|
|
3607
|
-
var _ErrorDisplay = _interopRequireDefault(require("./ErrorDisplay"));
|
|
3608
|
-
|
|
3609
|
-
var _Table = _interopRequireDefault(require("./Table"));
|
|
3610
|
-
|
|
3611
|
-
var _capitalize = _interopRequireDefault(require("../utilities/capitalize"));
|
|
3612
|
-
|
|
3613
|
-
var _getBuilds = _interopRequireDefault(require("../utilities/getBuilds"));
|
|
3614
|
-
|
|
3615
|
-
var _getProjectConfig = _interopRequireDefault(require("../utilities/projectConfig/getProjectConfig"));
|
|
3616
|
-
|
|
3617
|
-
var _getRelativeDateFromDateString = _interopRequireDefault(require("../utilities/getRelativeDateFromDateString"));
|
|
3618
|
-
|
|
3619
|
-
var _logForCI = _interopRequireDefault(require("../utilities/logForCI"));
|
|
3620
|
-
|
|
3621
|
-
var _useInput = _interopRequireDefault(require("../utilities/useInput"));
|
|
3622
|
-
|
|
3623
|
-
var _useExit = _interopRequireDefault(require("../utilities/useExit"));
|
|
3624
|
-
|
|
3625
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
3626
|
-
|
|
3627
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
3628
|
-
|
|
3629
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3630
|
-
|
|
3631
|
-
const ViewBuilds = ({
|
|
3632
|
-
commandUsed
|
|
3633
|
-
}) => {
|
|
3634
|
-
const exit = (0, _useExit.default)();
|
|
3635
|
-
const [{
|
|
3636
|
-
builds,
|
|
3637
|
-
error,
|
|
3638
|
-
hasMoreToLoad,
|
|
3639
|
-
isInitialLoadComplete,
|
|
3640
|
-
isLoading,
|
|
3641
|
-
projectConfig,
|
|
3642
|
-
startAfter
|
|
3643
|
-
}, setState] = (0, _react.useState)({
|
|
3644
|
-
builds: [],
|
|
3645
|
-
error: null,
|
|
3646
|
-
hasMoreToLoad: true,
|
|
3647
|
-
isInitialLoadComplete: false,
|
|
3648
|
-
isLoading: false,
|
|
3649
|
-
projectConfig: null,
|
|
3650
|
-
startAfter: null
|
|
3651
|
-
});
|
|
3652
|
-
const onInput = (0, _useInput.default)();
|
|
3653
|
-
onInput((input, key) => {
|
|
3654
|
-
if (key.escape) {
|
|
3655
|
-
exit();
|
|
3656
|
-
}
|
|
3657
|
-
|
|
3658
|
-
if (input === " " || key.downArrow || key.pageDown || key.return) {
|
|
3659
|
-
if (!isInitialLoadComplete || !hasMoreToLoad) {
|
|
3660
|
-
return;
|
|
3661
|
-
}
|
|
3662
|
-
|
|
3663
|
-
setState(previousState => ({ ...previousState,
|
|
3664
|
-
startAfter: builds[builds.length - 1].createdAt
|
|
3665
|
-
}));
|
|
3666
|
-
}
|
|
3667
|
-
});
|
|
3668
|
-
(0, _react.useEffect)(() => {
|
|
3669
|
-
if (error || isLoading || isInitialLoadComplete && (!hasMoreToLoad || !startAfter)) {
|
|
3670
|
-
return;
|
|
3671
|
-
}
|
|
3672
|
-
|
|
3673
|
-
setState(previousState => ({ ...previousState,
|
|
3674
|
-
isLoading: true
|
|
3675
|
-
}));
|
|
3676
|
-
let config;
|
|
3677
|
-
|
|
3678
|
-
try {
|
|
3679
|
-
// This will throw if validation fails:
|
|
3680
|
-
config = projectConfig || (0, _getProjectConfig.default)().config;
|
|
3681
|
-
} catch (e) {
|
|
3682
|
-
setState(previousState => ({ ...previousState,
|
|
3683
|
-
error: e
|
|
3684
|
-
}));
|
|
3685
|
-
return;
|
|
3686
|
-
}
|
|
3687
|
-
|
|
3688
|
-
const pageSize = 5;
|
|
3689
|
-
(0, _getBuilds.default)({
|
|
3690
|
-
appId: config.id,
|
|
3691
|
-
limit: pageSize + 1,
|
|
3692
|
-
startAfter
|
|
3693
|
-
}).then(buildsResult => {
|
|
3694
|
-
setState(previousState => {
|
|
3695
|
-
const stateUpdates = {
|
|
3696
|
-
hasMoreToLoad: buildsResult.length > pageSize,
|
|
3697
|
-
isInitialLoadComplete: true,
|
|
3698
|
-
isLoading: false,
|
|
3699
|
-
projectConfig: config,
|
|
3700
|
-
startAfter: null
|
|
3701
|
-
};
|
|
3702
|
-
|
|
3703
|
-
if (buildsResult.length) {
|
|
3704
|
-
stateUpdates.builds = [...previousState.builds, ...buildsResult.slice(0, pageSize)];
|
|
3705
|
-
}
|
|
3706
|
-
|
|
3707
|
-
return { ...previousState,
|
|
3708
|
-
...stateUpdates
|
|
3709
|
-
};
|
|
3710
|
-
});
|
|
3711
|
-
}).catch(e => {
|
|
3712
|
-
(0, _logForCI.default)(e);
|
|
3713
|
-
setState(previousState => ({ ...previousState,
|
|
3714
|
-
error: e,
|
|
3715
|
-
isLoading: false
|
|
3716
|
-
}));
|
|
3717
|
-
});
|
|
3718
|
-
}, [error, hasMoreToLoad, isInitialLoadComplete, isLoading, projectConfig, startAfter]); // Exit once all are loaded
|
|
3719
|
-
|
|
3720
|
-
(0, _react.useEffect)(() => {
|
|
3721
|
-
if (!hasMoreToLoad) {
|
|
3722
|
-
setTimeout(exit, 10);
|
|
3723
|
-
}
|
|
3724
|
-
}, [exit, hasMoreToLoad]);
|
|
3725
|
-
|
|
3726
|
-
if (error) {
|
|
3727
|
-
return /*#__PURE__*/_react.default.createElement(_ErrorDisplay.default, {
|
|
3728
|
-
commandUsed: commandUsed,
|
|
3729
|
-
error: error
|
|
3730
|
-
});
|
|
3731
|
-
}
|
|
3732
|
-
|
|
3733
|
-
if (!isInitialLoadComplete) {
|
|
3734
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Text, null, "Loading...");
|
|
3735
|
-
}
|
|
3736
|
-
|
|
3737
|
-
if (builds.length) {
|
|
3738
|
-
const data = builds.map(build => ({
|
|
3739
|
-
ID: build.id,
|
|
3740
|
-
Version: build.appVersion || "unknown",
|
|
3741
|
-
"Creation date": (0, _getRelativeDateFromDateString.default)(build.createdAt),
|
|
3742
|
-
Status: (0, _capitalize.default)(build.status),
|
|
3743
|
-
"Release date": build.releasedAt ? (0, _getRelativeDateFromDateString.default)(build.releasedAt) : "Unreleased"
|
|
3744
|
-
}));
|
|
3745
|
-
|
|
3746
|
-
const getCellTextProps = ({
|
|
3747
|
-
key,
|
|
3748
|
-
props,
|
|
3749
|
-
value
|
|
3750
|
-
}) => {
|
|
3751
|
-
const result = { ...props
|
|
3752
|
-
};
|
|
3753
|
-
|
|
3754
|
-
if (key === "Status") {
|
|
3755
|
-
const status = value.toLowerCase();
|
|
3756
|
-
|
|
3757
|
-
if (status === "succeeded") {
|
|
3758
|
-
result.color = "green";
|
|
3759
|
-
} else if (status === "failed") {
|
|
3760
|
-
result.color = "red";
|
|
3761
|
-
} else if (status === "cancelled") {
|
|
3762
|
-
result.dimColor = true;
|
|
3763
|
-
}
|
|
3764
|
-
} else if (key === "Release date" && value.toLowerCase() === "unreleased") {
|
|
3765
|
-
result.dimColor = true;
|
|
3766
|
-
}
|
|
3767
|
-
|
|
3768
|
-
return result;
|
|
3769
|
-
};
|
|
3770
|
-
|
|
3771
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_Table.default, {
|
|
3772
|
-
getCellTextProps: getCellTextProps,
|
|
3773
|
-
data: data
|
|
3774
|
-
}), builds.length > 0 ? /*#__PURE__*/_react.default.createElement(_ink.Box, null, /*#__PURE__*/_react.default.createElement(_ink.Text, {
|
|
3775
|
-
color: "gray",
|
|
3776
|
-
dimColor: true
|
|
3777
|
-
}, isLoading ? "Loading more..." : hasMoreToLoad ? `Showing the latest ${builds.length} builds. Press space/down to load more.` : `Showing all (${builds.length}) builds`)) : null);
|
|
3778
|
-
} else {
|
|
3779
|
-
return /*#__PURE__*/_react.default.createElement(_ink.Text, null, "There are no builds yet");
|
|
3780
|
-
}
|
|
3781
|
-
};
|
|
3782
|
-
|
|
3783
|
-
ViewBuilds.propTypes = {
|
|
3784
|
-
commandUsed: _propTypes.default.string.isRequired
|
|
3785
|
-
};
|
|
3786
|
-
var _default = ViewBuilds;
|
|
3787
|
-
exports.default = _default;
|
|
3788
|
-
},{"./ErrorDisplay":"../lib/components/ErrorDisplay.js","./Table":"../lib/components/Table.js","../utilities/capitalize":"../lib/utilities/capitalize.js","../utilities/getBuilds":"../lib/utilities/getBuilds.js","../utilities/projectConfig/getProjectConfig":"../lib/utilities/projectConfig/getProjectConfig.js","../utilities/getRelativeDateFromDateString":"../lib/utilities/getRelativeDateFromDateString.js","../utilities/logForCI":"../lib/utilities/logForCI.js","../utilities/useInput":"../lib/utilities/useInput.js","../utilities/useExit":"../lib/utilities/useExit.js"}],"../lib/utilities/exitIfCLIOutOfDate.js":[function(require,module,exports) {
|
|
3789
|
-
"use strict";
|
|
3790
|
-
|
|
3791
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3792
|
-
value: true
|
|
3793
|
-
});
|
|
3794
|
-
exports.default = void 0;
|
|
3795
|
-
|
|
3796
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
|
3797
|
-
|
|
3798
|
-
var _isInstalledGlobally = _interopRequireDefault(require("is-installed-globally"));
|
|
3799
|
-
|
|
3800
|
-
var _latestVersion = _interopRequireDefault(require("latest-version"));
|
|
3801
|
-
|
|
3802
|
-
var _pkgUp = _interopRequireDefault(require("pkg-up"));
|
|
3803
|
-
|
|
3804
|
-
var _semver = _interopRequireDefault(require("semver"));
|
|
3805
|
-
|
|
3806
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3807
|
-
|
|
3808
|
-
var _default = () => {
|
|
3809
|
-
// Ignore during tests
|
|
3810
|
-
if (process.env.AVA_PATH) {
|
|
3811
|
-
return;
|
|
3812
|
-
}
|
|
3813
|
-
|
|
3814
|
-
const pkg = require(_pkgUp.default.sync({
|
|
3815
|
-
cwd: __dirname
|
|
3816
|
-
}));
|
|
3817
|
-
|
|
3818
|
-
(0, _latestVersion.default)(pkg.name).then(latest => {
|
|
3819
|
-
if (_semver.default.gt(latest, pkg.version)) {
|
|
3820
|
-
const commandToUpdate = _chalk.default.greenBright(`npm install ${_isInstalledGlobally.default ? "-g" : "--save-dev"} @todesktop/cli`);
|
|
3821
|
-
|
|
3822
|
-
console.log(`Your version of @todesktop/cli is out of date.\nRun ${commandToUpdate} to update to v${latest}.`);
|
|
3823
|
-
|
|
3824
|
-
if (!_semver.default.satisfies(latest, `^${pkg.version}`)) {
|
|
3825
|
-
console.log(`CLI is exiting because it is out out of date.`);
|
|
3826
|
-
process.exit(1);
|
|
3827
|
-
}
|
|
3828
|
-
}
|
|
3829
|
-
});
|
|
3830
|
-
};
|
|
3831
|
-
|
|
3832
|
-
exports.default = _default;
|
|
3833
|
-
},{}],"../package.json":[function(require,module,exports) {
|
|
3834
|
-
module.exports = {
|
|
3835
|
-
"private": false,
|
|
3836
|
-
"publishConfig": {
|
|
3837
|
-
"access": "public"
|
|
3838
|
-
},
|
|
3839
|
-
"name": "@todesktop/cli",
|
|
3840
|
-
"version": "1.1.1",
|
|
3841
|
-
"license": "MIT",
|
|
3842
|
-
"author": "Dave Jeffery <dave@todesktop.com> (http://www.todesktop.com/)",
|
|
3843
|
-
"homepage": "https://todesktop.com/cli",
|
|
3844
|
-
"bugs": {
|
|
3845
|
-
"email": "dave@todesktop.com"
|
|
3846
|
-
},
|
|
3847
|
-
"bin": {
|
|
3848
|
-
"todesktop": "./build/cli.js"
|
|
3849
|
-
},
|
|
3850
|
-
"engines": {
|
|
3851
|
-
"node": ">=12"
|
|
3852
|
-
},
|
|
3853
|
-
"scripts": {
|
|
3854
|
-
"prepare": "npx force-resolutions",
|
|
3855
|
-
"dev": "cp-cli dev.env .env && pastel dev",
|
|
3856
|
-
"dev:prod": "cp-cli prod.env .env && pastel dev",
|
|
3857
|
-
"build": "cross-env NODE_ENV=production pastel build && cp-cli prod.env .env && cp node_modules/pastel/boot.js build/boot.js && sed -i'.bak' 's@pastel\\/boot@.\\/boot@g' build/cli.js",
|
|
3858
|
-
"lint": "eslint .",
|
|
3859
|
-
"lint--fix": "eslint . --fix",
|
|
3860
|
-
"release": "npm run build && npx np --tag=latest",
|
|
3861
|
-
"release-beta": "npm run build && npx np --any-branch --no-tests --tag=beta",
|
|
3862
|
-
"test": "npm run build && ava",
|
|
3863
|
-
"test--watch": "npm test -- --watch"
|
|
3864
|
-
},
|
|
3865
|
-
"files": ["build", "docs", ".env", "LICENSE", "README.md"],
|
|
3866
|
-
"dependencies": {
|
|
3867
|
-
"@sentry/node": "^5.27.2",
|
|
3868
|
-
"ajv": "^6.12.6",
|
|
3869
|
-
"analytics-node": "^4.0.1",
|
|
3870
|
-
"archiver": "^5.2.0",
|
|
3871
|
-
"axios": "^0.21.1",
|
|
3872
|
-
"better-ajv-errors": "^1.2.0",
|
|
3873
|
-
"bunyan": "^1.8.14",
|
|
3874
|
-
"camelcase-keys": "^5.2.0",
|
|
3875
|
-
"chalk": "^4.1.0",
|
|
3876
|
-
"conf": "^7.1.2",
|
|
3877
|
-
"date-fns": "^2.28.0",
|
|
3878
|
-
"decamelize": "^1.2.0",
|
|
3879
|
-
"del": "^6.0.0",
|
|
3880
|
-
"dotenv": "^8.2.0",
|
|
3881
|
-
"du": "^1.0.0",
|
|
3882
|
-
"email-regex": "^4.0.0",
|
|
3883
|
-
"fast-glob": "^3.2.4",
|
|
3884
|
-
"final-form": "^4.20.1",
|
|
3885
|
-
"find-up": "^5.0.0",
|
|
3886
|
-
"firebase": "^7.24.0",
|
|
3887
|
-
"git-rev-sync": "^3.0.2",
|
|
3888
|
-
"ink": "^3.2.0",
|
|
3889
|
-
"ink-gradient": "^2.0.0",
|
|
3890
|
-
"ink-link": "^2.0.0",
|
|
3891
|
-
"ink-progress-bar": "^3.0.0",
|
|
3892
|
-
"ink-select-input": "^4.2.1",
|
|
3893
|
-
"ink-text-input": "^4.0.1",
|
|
3894
|
-
"is-installed-globally": "^0.3.2",
|
|
3895
|
-
"latest-version": "^5.1.0",
|
|
3896
|
-
"lodash.throttle": "^4.1.1",
|
|
3897
|
-
"parse-author": "^2.0.0",
|
|
3898
|
-
"pkg-up": "^3.1.0",
|
|
3899
|
-
"pretty-bytes": "^5.4.1",
|
|
3900
|
-
"prop-types": "^15.7.2",
|
|
3901
|
-
"react": "^17.0.2",
|
|
3902
|
-
"react-final-form": "^6.5.1",
|
|
3903
|
-
"semver": "^7.3.2",
|
|
3904
|
-
"stream-to-array": "^2.3.0",
|
|
3905
|
-
"superagent": "^7.1.3",
|
|
3906
|
-
"uuid": "^8.3.1",
|
|
3907
|
-
"xdg-basedir": "^4.0.0",
|
|
3908
|
-
"yargs": "^15.4.1"
|
|
3909
|
-
},
|
|
3910
|
-
"devDependencies": {
|
|
3911
|
-
"@ava/babel": "^1.0.1",
|
|
3912
|
-
"@babel/core": "^7.12.3",
|
|
3913
|
-
"@babel/plugin-transform-runtime": "^7.12.1",
|
|
3914
|
-
"@babel/preset-env": "^7.11.5",
|
|
3915
|
-
"@babel/register": "^7.12.1",
|
|
3916
|
-
"@types/bunyan": "^1.8.6",
|
|
3917
|
-
"ava": "^4.3.1",
|
|
3918
|
-
"babel-preset-es2015": "^6.24.1",
|
|
3919
|
-
"cp-cli": "^2.0.0",
|
|
3920
|
-
"cross-env": "^7.0.2",
|
|
3921
|
-
"eslint": "^7.6.0",
|
|
3922
|
-
"eslint-config-prettier": "^6.11.0",
|
|
3923
|
-
"eslint-config-standard": "^14.1.1",
|
|
3924
|
-
"eslint-plugin-import": "^2.22.1",
|
|
3925
|
-
"eslint-plugin-node": "^11.1.0",
|
|
3926
|
-
"eslint-plugin-prettier": "^3.1.4",
|
|
3927
|
-
"eslint-plugin-promise": "^4.2.1",
|
|
3928
|
-
"eslint-plugin-react": "^7.21.4",
|
|
3929
|
-
"eslint-plugin-react-hooks": "^4.2.0",
|
|
3930
|
-
"eslint-plugin-standard": "^4.0.1",
|
|
3931
|
-
"execa": "^4.0.3",
|
|
3932
|
-
"extract-zip": "^2.0.1",
|
|
3933
|
-
"fs-extra": "^9.0.1",
|
|
3934
|
-
"husky": "^4.3.0",
|
|
3935
|
-
"is-ci": "^2.0.0",
|
|
3936
|
-
"lint-staged": "^10.2.11",
|
|
3937
|
-
"pastel": "^1.1.1",
|
|
3938
|
-
"prettier": "^2.1.2",
|
|
3939
|
-
"proxyquire": "^2.1.3",
|
|
3940
|
-
"sinon": "^9.0.3"
|
|
3941
|
-
},
|
|
3942
|
-
"ava": {
|
|
3943
|
-
"files": ["test/**/*.js", "!test/fixtures/**/*", "!test/utilities/**/*"],
|
|
3944
|
-
"require": ["@babel/register"],
|
|
3945
|
-
"timeout": "10m"
|
|
3946
|
-
},
|
|
3947
|
-
"lint-staged": {
|
|
3948
|
-
"**/*.js": ["eslint . --fix", "git add"]
|
|
3949
|
-
},
|
|
3950
|
-
"husky": {
|
|
3951
|
-
"hooks": {
|
|
3952
|
-
"pre-commit": "lint-staged"
|
|
3953
|
-
}
|
|
3954
|
-
},
|
|
3955
|
-
"overrides": {
|
|
3956
|
-
"pastel": {
|
|
3957
|
-
"parcel-bundler": {
|
|
3958
|
-
"deasync": "0.1.24"
|
|
3959
|
-
}
|
|
3960
|
-
}
|
|
3961
|
-
},
|
|
3962
|
-
"resolutions": {
|
|
3963
|
-
"pastel/parcel-bundler/deasync": "0.1.24",
|
|
3964
|
-
"ink": "3.2.0",
|
|
3965
|
-
"react": "17.0.2"
|
|
3966
|
-
}
|
|
3967
|
-
};
|
|
3968
|
-
},{}],"../lib/utilities/initSentry.js":[function(require,module,exports) {
|
|
3969
|
-
"use strict";
|
|
3970
|
-
|
|
3971
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3972
|
-
value: true
|
|
3973
|
-
});
|
|
3974
|
-
exports.default = void 0;
|
|
3975
|
-
|
|
3976
|
-
var Sentry = _interopRequireWildcard(require("@sentry/node"));
|
|
3977
|
-
|
|
3978
|
-
var _os = _interopRequireDefault(require("os"));
|
|
3979
|
-
|
|
3980
|
-
var _package = _interopRequireDefault(require("../../package.json"));
|
|
3981
|
-
|
|
3982
|
-
var _configStore = require("../utilities/configStore");
|
|
3983
|
-
|
|
3984
|
-
var _getProjectConfig = _interopRequireDefault(require("../utilities/projectConfig/getProjectConfig"));
|
|
3985
|
-
|
|
3986
|
-
var _path = _interopRequireDefault(require("path"));
|
|
3987
|
-
|
|
3988
|
-
var _getEnvironmentVariables = _interopRequireDefault(require("./getEnvironmentVariables"));
|
|
3989
|
-
|
|
3990
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
3991
|
-
|
|
3992
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
3993
|
-
|
|
3994
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
3995
|
-
|
|
3996
|
-
var _default = () => {
|
|
3997
|
-
const {
|
|
3998
|
-
TODESKTOP_CLI_SENTRY_DSN
|
|
3999
|
-
} = (0, _getEnvironmentVariables.default)();
|
|
4000
|
-
|
|
4001
|
-
if (!TODESKTOP_CLI_SENTRY_DSN) {
|
|
4002
|
-
// Don't initialise Sentry
|
|
4003
|
-
return;
|
|
4004
|
-
}
|
|
4005
|
-
|
|
4006
|
-
Sentry.init({
|
|
4007
|
-
dsn: TODESKTOP_CLI_SENTRY_DSN
|
|
4008
|
-
});
|
|
4009
|
-
Sentry.configureScope(scope => {
|
|
4010
|
-
try {
|
|
4011
|
-
scope.setUser({
|
|
4012
|
-
email: (0, _configStore.getAuthConfig)().email
|
|
4013
|
-
});
|
|
4014
|
-
} catch (err) {}
|
|
4015
|
-
|
|
4016
|
-
try {
|
|
4017
|
-
scope.setContext("os", {
|
|
4018
|
-
name: _os.default.platform(),
|
|
4019
|
-
version: _os.default.release()
|
|
4020
|
-
});
|
|
4021
|
-
} catch (err) {}
|
|
4022
|
-
|
|
4023
|
-
try {
|
|
4024
|
-
scope.setContext("runtime", {
|
|
4025
|
-
name: "Node.js",
|
|
4026
|
-
version: process.version
|
|
4027
|
-
});
|
|
4028
|
-
} catch (err) {}
|
|
4029
|
-
|
|
4030
|
-
try {
|
|
4031
|
-
scope.setContext("app", {
|
|
4032
|
-
app_name: _package.default.name,
|
|
4033
|
-
app_version: _package.default.version
|
|
4034
|
-
});
|
|
4035
|
-
} catch (err) {}
|
|
4036
|
-
|
|
4037
|
-
try {
|
|
4038
|
-
const configResult = (0, _getProjectConfig.default)();
|
|
4039
|
-
scope.setExtra("config", configResult);
|
|
4040
|
-
} catch (err) {}
|
|
4041
|
-
});
|
|
4042
|
-
};
|
|
4043
|
-
|
|
4044
|
-
exports.default = _default;
|
|
4045
|
-
},{"../../package.json":"../package.json","../utilities/configStore":"../lib/utilities/configStore.js","../utilities/projectConfig/getProjectConfig":"../lib/utilities/projectConfig/getProjectConfig.js","./getEnvironmentVariables":"../lib/utilities/getEnvironmentVariables.js"}],"../lib/utilities/onCommand.js":[function(require,module,exports) {
|
|
4046
|
-
"use strict";
|
|
4047
|
-
|
|
4048
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4049
|
-
value: true
|
|
4050
|
-
});
|
|
4051
|
-
exports.default = void 0;
|
|
4052
|
-
|
|
4053
|
-
var _exitIfCLIOutOfDate = _interopRequireDefault(require("./exitIfCLIOutOfDate"));
|
|
4054
|
-
|
|
4055
|
-
var _initSentry = _interopRequireDefault(require("./initSentry"));
|
|
4056
|
-
|
|
4057
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
4058
|
-
|
|
4059
|
-
const defaultOptions = {
|
|
4060
|
-
sentry: true,
|
|
4061
|
-
exitIfOutOfDate: true
|
|
4062
|
-
};
|
|
4063
|
-
|
|
4064
|
-
var _default = options => {
|
|
4065
|
-
const {
|
|
4066
|
-
sentry,
|
|
4067
|
-
exitIfOutOfDate
|
|
4068
|
-
} = { ...defaultOptions,
|
|
4069
|
-
...options
|
|
4070
|
-
};
|
|
4071
|
-
|
|
4072
|
-
if (sentry) {
|
|
4073
|
-
(0, _initSentry.default)();
|
|
4074
|
-
}
|
|
4075
|
-
|
|
4076
|
-
if (exitIfOutOfDate) {
|
|
4077
|
-
(0, _exitIfCLIOutOfDate.default)();
|
|
4078
|
-
}
|
|
4079
|
-
};
|
|
4080
|
-
|
|
4081
|
-
exports.default = _default;
|
|
4082
|
-
},{"./exitIfCLIOutOfDate":"../lib/utilities/exitIfCLIOutOfDate.js","./initSentry":"../lib/utilities/initSentry.js"}],"../lib/utilities/useAnalytics.js":[function(require,module,exports) {
|
|
4083
|
-
"use strict";
|
|
4084
|
-
|
|
4085
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4086
|
-
value: true
|
|
4087
|
-
});
|
|
4088
|
-
exports.useAnalyticsCommand = void 0;
|
|
4089
|
-
|
|
4090
|
-
var _react = require("react");
|
|
4091
|
-
|
|
4092
|
-
var _firestore = require("./firestore");
|
|
4093
|
-
|
|
4094
|
-
var _analytics = require("./analytics");
|
|
4095
|
-
|
|
4096
|
-
var _logger = _interopRequireDefault(require("../utilities/logger"));
|
|
4097
|
-
|
|
4098
|
-
var _getProjectConfig = _interopRequireDefault(require("../utilities/projectConfig/getProjectConfig"));
|
|
4099
|
-
|
|
4100
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
4101
|
-
|
|
4102
|
-
const useAnalyticsCommand = (command, flags = {}, properties = {}) => {
|
|
4103
|
-
const [hasAttemptedTracking, setTrackingAttempt] = (0, _react.useState)(false);
|
|
4104
|
-
|
|
4105
|
-
_logger.default.info({
|
|
4106
|
-
command,
|
|
4107
|
-
flags,
|
|
4108
|
-
properties
|
|
4109
|
-
}, "useAnalyticsCommand");
|
|
4110
|
-
|
|
4111
|
-
try {
|
|
4112
|
-
if (flags.projectPath) {
|
|
4113
|
-
properties = { ...properties,
|
|
4114
|
-
...(0, _getProjectConfig.default)()
|
|
4115
|
-
};
|
|
4116
|
-
}
|
|
4117
|
-
} catch (err) {}
|
|
4118
|
-
|
|
4119
|
-
(0, _react.useEffect)(() => {
|
|
4120
|
-
const authUnsubscribe = (0, _firestore.onUserAuth)(async user => {
|
|
4121
|
-
/**
|
|
4122
|
-
* Only identify if there's a user id (stops use of anon id).
|
|
4123
|
-
* Subsequent track callback will thus always be tied to a user.
|
|
4124
|
-
*/
|
|
4125
|
-
if (user.uid) {
|
|
4126
|
-
(0, _analytics.identify)(user.uid, {
|
|
4127
|
-
email: user.email,
|
|
4128
|
-
displayName: user.displayName
|
|
4129
|
-
}, () => {
|
|
4130
|
-
(0, _analytics.track)(_analytics.ANALYTICS_EVENT.CLI_COMMAND, { ...properties,
|
|
4131
|
-
flags,
|
|
4132
|
-
command
|
|
4133
|
-
}, () => setTrackingAttempt(true));
|
|
4134
|
-
authUnsubscribe && authUnsubscribe();
|
|
4135
|
-
});
|
|
4136
|
-
}
|
|
4137
|
-
}); // if it takes longer than 5 secs to identify a user, just set the
|
|
4138
|
-
// tracking attempt to true so that other commands aren't waiting
|
|
4139
|
-
// forever to terminate (see whoami component)
|
|
4140
|
-
|
|
4141
|
-
setTimeout(() => setTrackingAttempt(true), 5000);
|
|
4142
|
-
}, []); // leave empty - this should only ever execute once (on mount)
|
|
4143
|
-
|
|
4144
|
-
return {
|
|
4145
|
-
hasAttemptedTracking
|
|
4146
|
-
};
|
|
4147
|
-
};
|
|
4148
|
-
|
|
4149
|
-
exports.useAnalyticsCommand = useAnalyticsCommand;
|
|
4150
|
-
},{"./firestore":"../lib/utilities/firestore.js","./analytics":"../lib/utilities/analytics.js","../utilities/logger":"../lib/utilities/logger.js","../utilities/projectConfig/getProjectConfig":"../lib/utilities/projectConfig/getProjectConfig.js"}],"builds.js":[function(require,module,exports) {
|
|
4151
|
-
"use strict";
|
|
4152
|
-
|
|
4153
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4154
|
-
value: true
|
|
4155
|
-
});
|
|
4156
|
-
exports.default = void 0;
|
|
4157
|
-
|
|
4158
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
4159
|
-
|
|
4160
|
-
var _react = _interopRequireDefault(require("react"));
|
|
4161
|
-
|
|
4162
|
-
var _checkIfReactIsUsable = _interopRequireDefault(require("../lib/utilities/checkIfReactIsUsable"));
|
|
4163
|
-
|
|
4164
|
-
var _LoginHOC = _interopRequireDefault(require("../lib/components/LoginHOC"));
|
|
4165
|
-
|
|
4166
|
-
var _ErrorBoundary = _interopRequireDefault(require("../lib/components/ErrorBoundary"));
|
|
4167
|
-
|
|
4168
|
-
var _ViewBuild = _interopRequireDefault(require("../lib/components/ViewBuild"));
|
|
4169
|
-
|
|
4170
|
-
var _ViewBuilds = _interopRequireDefault(require("../lib/components/ViewBuilds"));
|
|
4171
|
-
|
|
4172
|
-
var _onCommand = _interopRequireDefault(require("../lib/utilities/onCommand"));
|
|
4173
|
-
|
|
4174
|
-
var _useAnalytics = require("../lib/utilities/useAnalytics");
|
|
4175
|
-
|
|
4176
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
4177
|
-
|
|
4178
|
-
(0, _onCommand.default)(); /// View your builds
|
|
4179
|
-
|
|
4180
|
-
const BuildsCommand = ({
|
|
4181
|
-
id,
|
|
4182
|
-
latest: shouldViewLatest
|
|
4183
|
-
}) => {
|
|
4184
|
-
(0, _checkIfReactIsUsable.default)();
|
|
4185
|
-
(0, _useAnalytics.useAnalyticsCommand)("builds", {
|
|
4186
|
-
id,
|
|
4187
|
-
shouldViewLatest
|
|
4188
|
-
});
|
|
4189
|
-
|
|
4190
|
-
const getContents = () => {
|
|
4191
|
-
let commandUsed = "todesktop builds";
|
|
4192
|
-
|
|
4193
|
-
if (id) {
|
|
4194
|
-
commandUsed += " <id>";
|
|
4195
|
-
return /*#__PURE__*/_react.default.createElement(_ViewBuild.default, {
|
|
4196
|
-
commandUsed: commandUsed,
|
|
4197
|
-
id: id
|
|
4198
|
-
});
|
|
4199
|
-
} else if (shouldViewLatest) {
|
|
4200
|
-
commandUsed += " --latest";
|
|
4201
|
-
return /*#__PURE__*/_react.default.createElement(_ViewBuild.default, {
|
|
4202
|
-
commandUsed: commandUsed,
|
|
4203
|
-
shouldViewLatest: true
|
|
4204
|
-
});
|
|
4205
|
-
} else {
|
|
4206
|
-
return /*#__PURE__*/_react.default.createElement(_ViewBuilds.default, {
|
|
4207
|
-
commandUsed: commandUsed
|
|
4208
|
-
});
|
|
4209
|
-
}
|
|
4210
|
-
};
|
|
4211
|
-
|
|
4212
|
-
return /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, null, /*#__PURE__*/_react.default.createElement(_LoginHOC.default, null, getContents()));
|
|
4213
|
-
};
|
|
4214
|
-
|
|
4215
|
-
BuildsCommand.propTypes = {
|
|
4216
|
-
/// View a specific build by ID
|
|
4217
|
-
id: _propTypes.default.string,
|
|
4218
|
-
/// View the latest build
|
|
4219
|
-
latest: _propTypes.default.bool
|
|
4220
|
-
};
|
|
4221
|
-
BuildsCommand.positionalArgs = ["id"];
|
|
4222
|
-
var _default = BuildsCommand;
|
|
4223
|
-
exports.default = _default;
|
|
4224
|
-
},{"../lib/utilities/checkIfReactIsUsable":"../lib/utilities/checkIfReactIsUsable.js","../lib/components/LoginHOC":"../lib/components/LoginHOC.js","../lib/components/ErrorBoundary":"../lib/components/ErrorBoundary.js","../lib/components/ViewBuild":"../lib/components/ViewBuild.js","../lib/components/ViewBuilds":"../lib/components/ViewBuilds.js","../lib/utilities/onCommand":"../lib/utilities/onCommand.js","../lib/utilities/useAnalytics":"../lib/utilities/useAnalytics.js"}]},{},["builds.js"], null)
|
|
1
|
+
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"cb6D":[function(require,module,exports) {
|
|
2
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("react"),r=({cons:r=console,proc:t=process}={})=>{try{(0,e.useState)(null)}catch(o){r.error(o),t.exit(1)}};exports.default=r;
|
|
3
|
+
},{}],"iiO0":[function(require,module,exports) {
|
|
4
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("@babel/runtime/helpers/extends")),t=o(require("ink-text-input")),u=o(require("react")),r=o(require("prop-types"));function o(e){return e&&e.__esModule?e:{default:e}}const l=({onBlur:r,onFocus:o,...l})=>(u.default.useEffect(()=>(o(),r),[o,r]),u.default.createElement(t.default,(0,e.default)({},l,{showCursor:!0})));l.propTypes={onBlur:r.default.func,onFocus:r.default.func};var s=l;exports.default=s;
|
|
5
|
+
},{}],"QfeP":[function(require,module,exports) {
|
|
6
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=r(require("pkg-up"));function r(e){return e&&e.__esModule?e:{default:e}}const t=require(e.default.sync({cwd:__dirname})).version;var u=()=>t;exports.default=u;
|
|
7
|
+
},{}],"XvyO":[function(require,module,exports) {
|
|
8
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=u(require("bunyan")),r=i(require("fs")),t=i(require("os")),o=i(require("path")),n=i(require("@sentry/node"));function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(a=function(e){return e?t:r})(e)}function i(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(r);if(t&&t.has(e))return t.get(e);var o={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var u=n?Object.getOwnPropertyDescriptor(e,i):null;u&&(u.get||u.set)?Object.defineProperty(o,i,u):o[i]=e[i]}return o.default=e,t&&t.set(e,o),o}function u(e){return e&&e.__esModule?e:{default:e}}let c;try{const a="todesktop-cli";let i;const u=t.homedir();i="darwin"===process.platform?o.join(u,"Library","Logs",a):"win32"===process.platform?o.join(process.env.APPDATA||o.join(u,"AppData","Roaming"),a,"logs"):o.join(process.env.XDG_CONFIG_HOME||o.join(u,".config"),a,"logs"),r.mkdirSync(i,{recursive:!0}),c=e.default.createLogger({name:a,src:!0,streams:[{level:"debug",path:o.join(i,"main.log")}]})}catch(p){const e=()=>{};c={debug:e,error:e,fatal:e,info:e,trace:e,warn:e};try{n.captureException(p)}catch(f){}}var s=c;exports.default=s;
|
|
9
|
+
},{}],"gwcX":[function(require,module,exports) {
|
|
10
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("dotenv")),t=n(require("path"));function r(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(r=function(e){return e?n:t})(e)}function n(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=r(t);if(n&&n.has(e))return n.get(e);var o={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var f=u?Object.getOwnPropertyDescriptor(e,a):null;f&&(f.get||f.set)?Object.defineProperty(o,a,f):o[a]=e[a]}return o.default=e,n&&n.set(e,o),o}function o(e){return e&&e.__esModule?e:{default:e}}let u=!1;const a=()=>{u||(e.default.config({path:t.resolve(__dirname,"..","..",".env")}),u=!0)};var f=()=>(u||(e.default.config({path:t.resolve(__dirname,"..","..",".env")}),u=!0),process.env);exports.default=f;
|
|
11
|
+
},{}],"gzUX":[function(require,module,exports) {
|
|
12
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.signInWithCustomToken=exports.onUserAuth=exports.default=exports.currentUser=void 0;var e=o(require("firebase/app"));require("firebase/firestore"),require("firebase/auth");var t=r(require("./getEnvironmentVariables"));function r(e){return e&&e.__esModule?e:{default:e}}function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function o(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var s=a?Object.getOwnPropertyDescriptor(e,u):null;s&&(s.get||s.set)?Object.defineProperty(o,u,s):o[u]=e[u]}return o.default=e,r&&r.set(e,o),o}const a=(0,t.default)(),u=e.initializeApp({apiKey:a.TODESKTOP_CLI_FIREBASE_API_KEY,authDomain:a.TODESKTOP_CLI_FIREBASE_AUTH_DOMAIN,databaseURL:a.TODESKTOP_CLI_FIREBASE_DATABASE_URL,projectId:a.TODESKTOP_CLI_FIREBASE_PROJECT_ID,storageBucket:a.TODESKTOP_CLI_FIREBASE_STORAGE_BUCKET,messagingSenderId:a.TODESKTOP_CLI_FIREBASE_MESSAGING_SENDER_ID,appId:a.TODESKTOP_CLI_FIREBASE_ID}),s=()=>e.auth().currentUser;exports.currentUser=s;const i=async t=>e.auth().signInWithCustomToken(t);exports.signInWithCustomToken=i;const _=t=>e.auth().onAuthStateChanged(e=>{t(e||{})});exports.onUserAuth=_;var p=u.firestore();exports.default=p;
|
|
13
|
+
},{"./getEnvironmentVariables":"gwcX"}],"ffKF":[function(require,module,exports) {
|
|
14
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.setConfig=exports.setAuthConfig=exports.jwtTokenConfigKey=exports.getConfig=exports.getAuthConfig=exports.emailConfigKey=exports.deleteAuthConfig=exports.accessTokenConfigKey=void 0;var e=i(require("fs")),t=r(require("del")),o=r(require("conf")),n=r(require("xdg-basedir"));function r(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,o=new WeakMap;return(s=function(e){return e?o:t})(e)}function i(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var o=s(t);if(o&&o.has(e))return o.get(e);var n={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var c=r?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(n,i,c):n[i]=e[i]}return n.default=e,o&&o.set(e,n),n}const c=new o.default({configName:"todesktop-cli"}),f="accessToken";exports.accessTokenConfigKey="accessToken";const a="email";exports.emailConfigKey="email";const u="jwtToken";exports.jwtTokenConfigKey="jwtToken";const l=(e,t)=>c.set(e,t);exports.setConfig=l;const p=e=>c.get(e);exports.getConfig=p;const g=(e,t,o)=>{l("email",e),l("accessToken",t),l("jwtToken",o)};exports.setAuthConfig=g;const d=()=>{return{accessToken:p("accessToken"),jwtToken:p("jwtToken"),email:p("email")}};exports.getAuthConfig=d;const k=()=>{c.delete("email"),c.delete("accessToken"),c.delete("jwtToken")};exports.deleteAuthConfig=k;const x=`${n.default.config}/configstore/config.json.json`;if(e.existsSync(x))try{const{email:e,accessToken:o,jwtToken:n}=require(x);g(e,o,n),(0,t.default)(x,{force:!0})}catch(j){(0,t.default)(x,{force:!0})}
|
|
15
|
+
},{}],"ALju":[function(require,module,exports) {
|
|
16
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.track=exports.identify=exports.flush=exports.ANALYTICS_EVENT=void 0;var e=u(require("os")),t=require("uuid"),r=u(require("analytics-node")),s=u(require("./getEnvironmentVariables")),o=require("./firestore"),i=require("./configStore"),n=u(require("./getCliVersion"));function u(e){return e&&e.__esModule?e:{default:e}}const a=(0,s.default)(),c=new r.default(a.SEGMENT_WRITE_KEY,{flushAt:1,flushInterval:1}),l={CLI_COMMAND:"CLI Command"};function d(){let t={client:"cli"};try{t.os={name:e.default.platform(),version:e.default.release()}}catch(r){}try{t.user={email:(0,i.getAuthConfig)().email}}catch(r){}try{t.app={cliVersion:(0,n.default)()}}catch(r){}try{t.runtime={name:"Node.js",version:process.version}}catch(r){}return t}exports.ANALYTICS_EVENT=l;const f=(0,t.v4)(),p=(e,t={},r=(()=>{}))=>{try{const i=(0,o.currentUser)();c.track({event:e,userId:i?i.uid:void 0,anonymousId:f,properties:{...t,...d()}},r)}catch(s){}};exports.track=p;const y=(e,t={},r=(()=>{}))=>{try{c.identify({userId:e,anonymousId:f,traits:t},r)}catch(s){}};exports.identify=y;const h=(e=(()=>{}))=>c.flush(e);exports.flush=h;
|
|
17
|
+
},{"./getEnvironmentVariables":"gwcX","./firestore":"gzUX","./configStore":"ffKF","./getCliVersion":"QfeP"}],"QLfx":[function(require,module,exports) {
|
|
18
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),r=require("./analytics"),t=i(require("./firestore")),u=i(require("./logger"));function i(e){return e&&e.__esModule?e:{default:e}}var o=()=>{const{exit:i}=(0,e.useApp)();return e=>{let o;u.default.debug({error:e},"Exit called"),t.default.terminate().catch(e=>u.default.error(e)),Promise.race([new Promise(e=>(0,r.flush)(()=>e())),new Promise(e=>o=setTimeout(()=>e(),1e3))]).catch(()=>{}).finally(()=>{clearTimeout(o);try{i()}catch(r){u.default.error(r)}setTimeout(()=>process.exit(e?1:0),10)})}};exports.default=o;
|
|
19
|
+
},{"./analytics":"ALju","./firestore":"gzUX","./logger":"XvyO"}],"f0Jz":[function(require,module,exports) {
|
|
20
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=i(require("prop-types")),r=a(require("react")),o=i(require("../utilities/getCliVersion")),l=i(require("../utilities/logger")),u=i(require("../utilities/useExit"));function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function a(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var a=l?Object.getOwnPropertyDescriptor(e,u):null;a&&(a.get||a.set)?Object.defineProperty(o,u,a):o[u]=e[u]}return o.default=e,r&&r.set(e,o),o}function i(e){return e&&e.__esModule?e:{default:e}}const c=({commandUsed:t,error:n})=>{const a=(0,u.default)();return l.default.error({error:n}),(0,r.useEffect)(()=>{n&&setTimeout(()=>a(n),10)},[a,n]),r.default.createElement(r.Fragment,null,r.default.createElement(e.Text,{backgroundColor:"red",color:"white"}," ","ERROR"," "),r.default.createElement(e.Text,null,n.message||n.stack||n.toString()),r.default.createElement(e.Box,{flexDirection:"column",marginTop:1},t?r.default.createElement(e.Text,{dimColor:!0,color:"gray"},"Command: ",t):null,r.default.createElement(e.Text,{dimColor:!0,color:"gray"},"@todesktop/cli: ",(0,o.default)()),r.default.createElement(e.Text,{dimColor:!0,color:"gray"},"Node: ",process.version),r.default.createElement(e.Text,{dimColor:!0,color:"gray"},"cwd: ",process.cwd())))};c.propTypes={commandUsed:t.default.string,error:t.default.object.isRequired};var d=c;exports.default=d;
|
|
21
|
+
},{"../utilities/getCliVersion":"QfeP","../utilities/logger":"XvyO","../utilities/useExit":"QLfx"}],"I8pf":[function(require,module,exports) {
|
|
22
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=u;var e=o(require("axios")),t=o(require("./getEnvironmentVariables")),r=o(require("./logger"));function o(e){return e&&e.__esModule?e:{default:e}}const{TODESKTOP_CLI_FIREBASE_FUNCTIONS_BASE:a}=(0,t.default)();async function u(t,o={},u={}){r.default.debug({functionName:t,body:o,config:u},"postToFirebaseFunction");try{const s=await e.default.post(`${a}${t}`,o,u);return r.default.debug({responseData:s.data},"postToFirebaseFunction: success"),s.data}catch(n){throw r.default.error({error:n},"postToFirebaseFunction: error"),n}}
|
|
23
|
+
},{"./getEnvironmentVariables":"gwcX","./logger":"XvyO"}],"pd2Y":[function(require,module,exports) {
|
|
24
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=f(require("@babel/runtime/helpers/extends")),t=require("ink"),r=f(require("prop-types")),a=d(require("react")),l=require("react-final-form"),n=f(require("../components/TextInput")),u=f(require("./ErrorDisplay")),o=f(require("../utilities/postToFirebaseFunction")),i=require("../utilities/firestore"),c=require("../utilities/configStore");function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}function d(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var a={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var u=l?Object.getOwnPropertyDescriptor(e,n):null;u&&(u.get||u.set)?Object.defineProperty(a,n,u):a[n]=e[n]}return a.default=e,r&&r.set(e,a),a}function f(e){return e&&e.__esModule?e:{default:e}}const m=[{name:"email",label:"Your email",placeholder:"name@email.com",Input:n.default,validate:e=>{if(!e)return"Required"}},{name:"accessToken",label:"Your access token",placeholder:"********",Input:n.default,validate:e=>{if(!e)return"Required"},mask:"*"}],p=({setIsLoggedIn:r})=>{const[n,s]=(0,a.useState)(0),[d,f]=(0,a.useState)(null),[p,T]=(0,a.useState)(null),[E,x]=(0,a.useState)(!1),y=e=>{x(!1),T(e),s(0)};return d?a.default.createElement(u.default,{error:d}):a.default.createElement(a.Fragment,null,a.default.createElement(t.Text,null,"You are not currently logged in."),a.default.createElement(t.Text,null,"Log in below:"),a.default.createElement(t.Box,{marginBottom:1}),a.default.createElement(l.Form,{onSubmit:async({email:e,accessToken:t})=>{T(null),x(!0);try{const l=await(0,o.default)("loginWithAccessToken",{email:e,accessToken:t});l?(await(0,i.signInWithCustomToken)(l),(0,c.setAuthConfig)(e,t,l),r(!0)):y("Incorrrect credentials. Try again")}catch(a){500===a.code?f(a):y(`Login unsuccessful: ${a.message}`)}}},({handleSubmit:r,validating:u,form:o})=>a.default.createElement(t.Box,{flexDirection:"column"},m.map(({name:o,label:i,placeholder:c,validate:d,Input:f,mask:p},T)=>a.default.createElement(l.Field,{name:o,key:o,validate:d},({input:l,meta:d})=>a.default.createElement(t.Box,{flexDirection:"column"},n>=T?a.default.createElement(t.Box,null,a.default.createElement(t.Text,{bold:n===T},i,": "),n===T?a.default.createElement(f,(0,e.default)({},l,{mask:p,placeholder:c,onSubmit:()=>{d.valid&&!u?(s(e=>e+1),n===m.length-1&&r()):l.onBlur()}})):l.value&&a.default.createElement(t.Text,null,"accessToken"===o?l.value.replace(/./gi,"*"):l.value)||c&&a.default.createElement(t.Text,{color:"gray"},c),d.invalid&&d.touched&&a.default.createElement(t.Box,{marginLeft:2,marginRight:1},a.default.createElement(t.Text,{color:"red"},"✖")),d.error&&d.touched&&a.default.createElement(g,{errorMessage:d.error})):null))))),E&&a.default.createElement(t.Box,{marginTop:1},a.default.createElement(t.Text,null,"Logging in...")),p&&a.default.createElement(g,{errorMessage:p,marginTop:!0}))},g=({errorMessage:e,marginTop:r})=>a.default.createElement(t.Box,{marginTop:r?1:0},a.default.createElement(t.Text,{color:"red"},e));g.propTypes={errorMessage:r.default.string.isRequired,marginTop:r.default.bool},p.propTypes={setIsLoggedIn:r.default.func.isRequired};var T=p;exports.default=T;
|
|
25
|
+
},{"../components/TextInput":"iiO0","./ErrorDisplay":"f0Jz","../utilities/postToFirebaseFunction":"I8pf","../utilities/firestore":"gzUX","../utilities/configStore":"ffKF"}],"nLy3":[function(require,module,exports) {
|
|
26
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=d(require("react")),r=c(require("prop-types")),n=c(require("is-ci")),i=c(require("./Login")),o=require("../utilities/firestore"),a=require("../utilities/configStore"),u=c(require("../utilities/postToFirebaseFunction")),s=c(require("../utilities/getEnvironmentVariables")),l=c(require("./ErrorDisplay"));function c(e){return e&&e.__esModule?e:{default:e}}function f(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(f=function(e){return e?r:t})(e)}function d(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=f(t);if(r&&r.has(e))return r.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var a=i?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(n,o,a):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}const p=({children:r,isInteractive:c=!0})=>{const[f,d]=(0,t.useState)(!1),[p,T]=(0,t.useState)(!1),[g,y]=(0,t.useState)(null),{isRawModeSupported:v}=(0,e.useStdin)(),O=(e,t={})=>{y({...t,message:e})};return(0,t.useEffect)(()=>{!async function(){const{accessToken:e,email:t,jwtToken:r}=(0,a.getAuthConfig)();let i=null;const{TODESKTOP_ACCESS_TOKEN:l,TODESKTOP_EMAIL:c}=(0,s.default)();try{if(l&&c){const e=await(0,u.default)("loginWithAccessToken",{email:c,accessToken:l});e&&(i=await(0,o.signInWithCustomToken)(e)).user&&d(!0)}else v&&!n.default||O("ToDesktop environment variables not found. When automating builds with your CI provider, you need to specify environment variables for TODESKTOP_EMAIL and TODESKTOP_ACCESS_TOKEN.")}catch(f){O("Log in with environment variables failed.",f)}try{!i&&r&&(i=await(0,o.signInWithCustomToken)(r)).user&&d(!0)}catch(f){}try{if(!i&&e&&t){const r=await(0,u.default)("loginWithAccessToken",{email:t,accessToken:e});r&&(i=await(0,o.signInWithCustomToken)(r),(0,a.setAuthConfig)(t,e,r),i.user&&d(!0))}}catch(f){}T(!0)}()},[]),g&&c?t.default.createElement(l.default,{error:g}):p?!f&&c?t.default.createElement(i.default,{setIsLoggedIn:d}):t.default.createElement(t.Fragment,null,r):t.default.createElement(e.Text,null,"...")};p.propTypes={children:r.default.object,isInteractive:r.default.bool};var T=p;exports.default=T;
|
|
27
|
+
},{"./Login":"pd2Y","../utilities/firestore":"gzUX","../utilities/configStore":"ffKF","../utilities/postToFirebaseFunction":"I8pf","../utilities/getEnvironmentVariables":"gwcX","./ErrorDisplay":"f0Jz"}],"XM8F":[function(require,module,exports) {
|
|
28
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=u(require("react")),t=o(require("@sentry/node")),r=u(require("prop-types"));function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function o(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=u?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(o,a,s):o[a]=e[a]}return o.default=e,r&&r.set(e,o),o}function u(e){return e&&e.__esModule?e:{default:e}}class a extends e.default.Component{constructor(e){super(e),this.state={eventId:null,error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,r){t.withScope(n=>{n.setExtras(r);const o=t.captureException(e);this.setState({eventId:o})})}render(){if(this.state.error)throw this.state.error;return this.props.children}}a.propTypes={children:r.default.object};var s=a;exports.default=s;
|
|
29
|
+
},{}],"Sre8":[function(require,module,exports) {
|
|
30
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("is-ci")),r=o(require("./logger"));function o(e){return e&&e.__esModule?e:{default:e}}var t=(...o)=>{r.default.info({args:o},"logForCI"),e.default&&console.log(...o)};exports.default=t;
|
|
31
|
+
},{"./logger":"XvyO"}],"nKi2":[function(require,module,exports) {
|
|
32
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=a(require("ink-link")),r=a(require("prop-types")),u=o(require("react")),l=a(require("../utilities/logForCI")),n=a(require("../utilities/useExit"));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}function o(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(t);if(r&&r.has(e))return r.get(e);var u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var o=l?Object.getOwnPropertyDescriptor(e,n):null;o&&(o.get||o.set)?Object.defineProperty(u,n,o):u[n]=e[n]}return u.default=e,r&&r.set(e,u),u}function a(e){return e&&e.__esModule?e:{default:e}}const f=({build:r})=>{const i=(0,n.default)(),o=r.standardUniversalDownloadUrl;return(0,l.default)(`Build complete! ${o}`),(0,u.useEffect)(()=>{o&&setTimeout(i,10)},[i,o]),u.default.createElement(e.Box,{marginBottom:1},u.default.createElement(e.Text,null,u.default.createElement(e.Text,{bold:!0},"Build complete!")," ",u.default.createElement(t.default,{fallback:!1,url:o},o||"")))};f.propTypes={build:r.default.object.isRequired};var d=f;exports.default=d;
|
|
33
|
+
},{"../utilities/logForCI":"Sre8","../utilities/useExit":"QLfx"}],"WIKr":[function(require,module,exports) {
|
|
34
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=u(require("react")),t=n(require("prop-types")),r=require("ink"),l=n(require("ink-link"));function n(e){return e&&e.__esModule?e:{default:e}}function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}function u(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=a(t);if(r&&r.has(e))return r.get(e);var l={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var o=n?Object.getOwnPropertyDescriptor(e,u):null;o&&(o.get||o.set)?Object.defineProperty(l,u,o):l[u]=e[u]}return l.default=e,r&&r.set(e,l),l}const o="More info: ".length,i=(t,l)=>{let n="white",a="black";return"error"===l?n="red":100===t&&(n="green",a="black"),e.default.createElement(e.Fragment,null,e.default.createElement(r.Text,{backgroundColor:n,color:a}," ",Math.round(t).toString().padStart(2,"0"),"%"," "),e.default.createElement(r.Text,null," "))},d=({activityName:t,activityType:n,downloadUrl:a,percent:u,platform:d,shouldShowReadyPrefix:f})=>{let c;if("done"===n)c=e.default.createElement(r.Box,{flexDirection:"column",marginBottom:1},e.default.createElement(r.Text,null,i(100),f?"Ready!":""),e.default.createElement(l.default,{fallback:!1,url:a},a));else{let l=t.replace(/(?:\r\n|\r|\n)\s*/g,"↵ ");l.length>64&&(l=`${l.substr(0,61)}...`),c=e.default.createElement(e.Fragment,null,e.default.createElement(r.Box,{flexDirection:"column",marginBottom:1},e.default.createElement(r.Text,null,["preparation","queue"].includes(n)?void 0:i(u,n),l,"error"===n?"":e.default.createElement(r.Text,null,"..."))))}return e.default.createElement(r.Box,null,e.default.createElement(r.Box,{width:o},e.default.createElement(r.Text,null,d[0].toUpperCase()+d.substr(1),": ")),c)};d.propTypes={activityName:t.default.string.isRequired,activityType:t.default.string.isRequired,downloadUrl:t.default.string,percent:t.default.number.isRequired,platform:t.default.string.isRequired,shouldShowReadyPrefix:t.default.bool};var f=d;exports.default=f;
|
|
35
|
+
},{}],"in6t":[function(require,module,exports) {
|
|
36
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.isPlatformBuildRunning=exports.isBuildRunning=exports.isBuildCancellable=exports.hasBuildKickedOff=void 0;const s=s=>!!s&&(s.status&&"preparation"!==s.status);exports.hasBuildKickedOff=s;const e=e=>s(e)&&t(e);exports.isBuildCancellable=e;const t=s=>!!s&&(!["cancelled","succeeded"].includes(s.status)&&["linux","mac","windows"].some(e=>i(s[e])));exports.isBuildRunning=t;const i=s=>!!s&&(!s.shouldSkip&&!["cancelled","succeeded"].includes(s.status)&&("failed"!==s.status||s.numberOfAttemptedBuilds<2));exports.isPlatformBuildRunning=i;
|
|
37
|
+
},{}],"odFL":[function(require,module,exports) {
|
|
38
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=f(require("prop-types")),r=c(require("react")),u=f(require("lodash.throttle")),l=f(require("./BuildCompleteMessage")),i=f(require("./PlatformProgress")),a=require("../utilities/buildStatus"),s=f(require("../utilities/logger")),o=f(require("../utilities/logForCI")),n=f(require("../utilities/useExit"));function d(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(d=function(e){return e?r:t})(e)}function c(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=d(t);if(r&&r.has(e))return r.get(e);var u={},l=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=l?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(u,i,a):u[i]=e[i]}return u.default=e,r&&r.set(e,u),u}function f(e){return e&&e.__esModule?e:{default:e}}const p=(0,u.default)(o.default,6e4,{trailing:!0}),m=({build:t,onBuildFailure:u})=>{s.default.debug("BuildProgress component: render");const o=(0,n.default)(),[{hasKickedOff:d},c]=(0,r.useState)({hasKickedOff:!1}),f=["windows","mac","linux"].filter(e=>!t[e].shouldSkip);return(0,r.useEffect)(()=>{c(e=>({...e,hasKickedOff:(0,a.hasBuildKickedOff)(t)}))},[t]),(0,r.useEffect)(()=>{if("failed"===t.status)u(t.errorMessage);else if("cancelled"===t.status)setTimeout(o,10);else{const e=f.map(e=>`${e.charAt(0).toUpperCase()+e.slice(1)}: ${t[e].progressActivityName} (${t[e].progressPercentage}%)`);p(e.join(", "))}},[t,o,u,f]),"succeeded"===t.status?r.default.createElement(l.default,{build:t}):"cancelled"===t.status?r.default.createElement(e.Box,{flexDirection:"column",marginBottom:1},r.default.createElement(e.Text,null,"Build cancelled")):d?r.default.createElement(r.Fragment,null,r.default.createElement(e.Box,{flexDirection:"column"},f.map(u=>r.default.createElement(e.Box,{flexDirection:"column",key:u},r.default.createElement(i.default,{activityName:"failed"===t[u].status?t[u].errorMessage:t[u].progressActivityName,activityType:"failed"===t[u].status?"error":t[u].progressActivityType,downloadUrl:t[u].standardDownloadUrl,percent:t[u].progressPercentage,platform:u,shouldShowReadyPrefix:!(t&&["failed","succeeded"].includes(t.status))}))))):null};m.propTypes={build:t.default.object.isRequired,onBuildFailure:t.default.func.isRequired};var g=m;exports.default=g;
|
|
39
|
+
},{"./BuildCompleteMessage":"nKi2","./PlatformProgress":"WIKr","../utilities/buildStatus":"in6t","../utilities/logger":"XvyO","../utilities/logForCI":"Sre8","../utilities/useExit":"QLfx"}],"koRC":[function(require,module,exports) {
|
|
40
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=u(require("firebase/app"));require("firebase/functions");var t=r(require("./getEnvironmentVariables"));function r(e){return e&&e.__esModule?e:{default:e}}function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function u(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var u={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var f=o?Object.getOwnPropertyDescriptor(e,a):null;f&&(f.get||f.set)?Object.defineProperty(u,a,f):u[a]=e[a]}return u.default=e,r&&r.set(e,u),u}"development"===(0,t.default)().TODESKTOP_CLI_ENV&&e.functions().useFunctionsEmulator("http://localhost:5000");var o=t=>e.functions().httpsCallable(t);exports.default=o;
|
|
41
|
+
},{"./getEnvironmentVariables":"gwcX"}],"J4or":[function(require,module,exports) {
|
|
42
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=c(require("prop-types")),r=o(require("react")),l=c(require("./ErrorDisplay")),a=c(require("../utilities/getCallableFirebaseFunction")),n=c(require("../utilities/logForCI")),u=c(require("../utilities/logger")),d=c(require("../utilities/useExit"));function i(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(i=function(e){return e?r:t})(e)}function o(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=i(t);if(r&&r.has(e))return r.get(e);var l={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var u=a?Object.getOwnPropertyDescriptor(e,n):null;u&&(u.get||u.set)?Object.defineProperty(l,n,u):l[n]=e[n]}return l.default=e,r&&r.set(e,l),l}function c(e){return e&&e.__esModule?e:{default:e}}const s=(0,a.default)("cancelBuild"),p=({appId:t,children:a,commandUsed:i,id:o})=>{u.default.debug({appId:t,buildId:o},"CancelBuild component: render");const c=(0,d.default)(),[{arbitraryMessageComponent:p,error:f,hasCompleted:m,hasStarted:b},g]=(0,r.useState)({arbitraryMessageComponent:null,error:null,hasCompleted:!1,hasStarted:!1});return(0,r.useEffect)(()=>{m||b||(g(e=>({...e,hasStarted:!0})),(0,n.default)("Cancelling build..."),s({appId:t,buildId:o}).then(e=>{u.default.debug({appId:t,buildId:o,result:e},"CancelBuild component: cancellation request complete"),g(e=>({...e,hasCompleted:!0}))}).catch(l=>{u.default.debug({appId:t,buildId:o,code:l.code},"CancelBuild component: cancellation request failed"),u.default.error(l);let a={hasCompleted:!0};"internal"===l.code?a.error=l:a.arbitraryMessageComponent=r.default.createElement(e.Text,null,r.default.createElement(e.Text,{color:"red"},"Cannot cancel build (",o,").")," ",l.message),g(e=>({...e,...a}))}))},[t,o,b,m]),(0,r.useEffect)(()=>{m&&!a&&(u.default.debug("CancelBuild component: exiting now that build is cancelled"),c())},[a,c,m]),f?(f.message=`Failed to cancel build (${o}). ${f.message}`,r.default.createElement(l.default,{commandUsed:i,error:f})):p||(m?a?r.default.createElement(r.Fragment,null,a):r.default.createElement(e.Text,null,"Build cancelled"):r.default.createElement(e.Text,null,"Cancelling build (",o,")..."))};p.propTypes={appId:t.default.string.isRequired,children:t.default.object,commandUsed:t.default.string.isRequired,id:t.default.string.isRequired};var f=p;exports.default=f;
|
|
43
|
+
},{"./ErrorDisplay":"f0Jz","../utilities/getCallableFirebaseFunction":"koRC","../utilities/logForCI":"Sre8","../utilities/logger":"XvyO","../utilities/useExit":"QLfx"}],"lWRR":[function(require,module,exports) {
|
|
44
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),l=u(require("ink-link")),t=u(require("prop-types")),r=u(require("react"));function u(e){return e&&e.__esModule?e:{default:e}}const a=({hasBuildFailed:t,shouldShowCancelBuildInstructions:u,uiUrl:a})=>{if(!a)return null;let o;return t&&(o=r.default.createElement(e.Text,{color:"red"},"An error has occurred. ")),r.default.createElement(e.Box,{flexDirection:"column"},r.default.createElement(e.Box,{flexDirection:"column"},r.default.createElement(e.Text,{bold:!0},o,"See web UI for more information: "),r.default.createElement(e.Text,null,r.default.createElement(l.default,{fallback:!1,url:a},a))),u?r.default.createElement(e.Text,{color:"gray"},r.default.createElement(e.Text,{bold:!0},"[esc]:")," cancel build"):null)};a.propTypes={hasBuildFailed:t.default.bool,shouldShowCancelBuildInstructions:t.default.bool,uiUrl:t.default.string};var o=a;exports.default=o;
|
|
45
|
+
},{}],"XT2G":[function(require,module,exports) {
|
|
46
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=u(require("prop-types")),l=u(require("react"));function u(e){return e&&e.__esModule?e:{default:e}}const r=(t,u,r)=>{const a=u+(r?` v${r}`:"");return t&&["cancelled","succeeded","failed"].includes(t.status)?"succeeded"===t.status?l.default.createElement(e.Text,null,"✅ ",a):"failed"===t.status?l.default.createElement(e.Text,null,"❌ ",a):"cancelled"===t.status?l.default.createElement(e.Text,null,l.default.createElement(e.Text,{bold:!0,color:"gray"},"X")," ",a):void 0:l.default.createElement(e.Text,null,a)},a=({build:t,name:u,version:a})=>l.default.createElement(e.Box,{marginBottom:1},r(t,u,a));a.propTypes={build:t.default.object,name:t.default.string.isRequired,version:t.default.string};var d=a;exports.default=d;
|
|
47
|
+
},{}],"CLRu":[function(require,module,exports) {
|
|
48
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=u(require("is-ci")),t=require("ink"),r=u(require("./useExit"));function u(e){return e&&e.__esModule?e:{default:e}}let o=!1,s=[];const n=(e,t)=>{let r=String(e),u=!1;r<=""&&"\r"!==r&&(r=String.fromCharCode(r.charCodeAt(0)+"a".charCodeAt(0)-1),u=!0),u&&"c"===r&&(s.forEach(e=>e()),setTimeout(t,10))};var d=()=>{if(e.default)return()=>()=>{};const u=(0,r.default)(),{stdin:d}=(0,t.useStdin)();return(e,r,a={})=>{const i=e=>n(e,u);a.onCtrlCPressed&&s.push(a.onCtrlCPressed),o||(o=!0,d.on("data",i));let l=(0,t.useInput)(e,r);return()=>{o&&d.off("data",i),l&&l()}}};exports.default=d;
|
|
49
|
+
},{"./useExit":"QLfx"}],"T5Az":[function(require,module,exports) {
|
|
50
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=f(require("is-ci")),l=f(require("prop-types")),r=s(require("react")),a=f(require("./CancelBuild")),u=f(require("./Footer")),n=f(require("./Header")),i=require("../utilities/buildStatus"),d=f(require("../utilities/logger")),o=f(require("../utilities/useInput"));function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,l=new WeakMap;return(c=function(e){return e?l:t})(e)}function s(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var l=c(t);if(l&&l.has(e))return l.get(e);var r={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var n=a?Object.getOwnPropertyDescriptor(e,u):null;n&&(n.get||n.set)?Object.defineProperty(r,u,n):r[u]=e[u]}return r.default=e,l&&l.set(e,r),r}function f(e){return e&&e.__esModule?e:{default:e}}const p=({appId:l,appName:c,appVersion:s,build:f,children:p,commandUsed:m,hasBuildFailed:g})=>{d.default.debug("MainLayout component: render");const b=(0,o.default)(),[{canCancelBuild:y,hasKickedOff:B,isCancellingBuild:C,wasCtrlCPressed:h},O]=(0,r.useState)({canCancelBuild:null,hasKickedOff:!1,isCancellingBuild:!1,wasCtrlCPressed:!1});return(0,r.useEffect)(()=>{O(e=>({...e,hasKickedOff:(0,i.hasBuildKickedOff)(f)}))},[f]),(0,r.useEffect)(()=>{O(e=>({...e,canCancelBuild:!t.default&&!C&&(0,i.isBuildCancellable)(f)}))},[f,C]),b(async(e,t)=>{t.escape&&y&&(d.default.debug("MainLayout component: esc pressed, cancelling build"),O(e=>({...e,isCancellingBuild:!0})))},{},{onCtrlCPressed:()=>{O(e=>({...e,wasCtrlCPressed:!0}))}}),r.default.createElement(r.Fragment,null,r.default.createElement(n.default,{build:f,name:c,version:s}),C?r.default.createElement(e.Box,{flexDirection:"column",marginBottom:1},r.default.createElement(a.default,{appId:l,commandUsed:m,id:f.id})):p,r.default.createElement(u.default,{hasBuildFailed:g,shouldShowCancelBuildInstructions:y&&!h,uiUrl:f?f.url:null}),h&&B?r.default.createElement(r.Fragment,null,r.default.createElement(e.Box,{flexDirection:"column",marginTop:1},r.default.createElement(e.Text,{color:"gray"},"The build will continue in the background. To view it, run:")),r.default.createElement(e.Box,null,r.default.createElement(e.Text,{bold:!0,color:"gray"},"todesktop builds ",f.id))):null)};p.propTypes={appId:l.default.string,appName:l.default.string.isRequired,appVersion:l.default.string,build:l.default.object,children:l.default.oneOfType([l.default.array,l.default.object]),commandUsed:l.default.string.isRequired,hasBuildFailed:l.default.bool};var m=p;exports.default=m;
|
|
51
|
+
},{"./CancelBuild":"J4or","./Footer":"lWRR","./Header":"XT2G","../utilities/buildStatus":"in6t","../utilities/logger":"XvyO","../utilities/useInput":"CLRu"}],"EqTV":[function(require,module,exports) {
|
|
52
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("./firestore")),t=r(require("./logger"));function r(e){return e&&e.__esModule?e:{default:e}}function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function o(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=u?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(o,i,a):o[i]=e[i]}return o.default=e,r&&r.set(e,o),o}var u=async({appId:r})=>{t.default.debug({appId:r},"getLatestBuildId");const n=e.default.doc(`users/${(0,e.currentUser)().uid}/applications/${r}`);if(!(await n.get()).exists)throw new Error(`Application with ID of ${r} doesn't exist.`);const o=await n.collection("builds").orderBy("createdAt","desc").limit(1).get();return o.empty?null:o.docs[0].id};exports.default=u;
|
|
53
|
+
},{"./firestore":"gzUX","./logger":"XvyO"}],"GCJw":[function(require,module,exports) {
|
|
54
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=e=>require(e);exports.default=e;
|
|
55
|
+
},{}],"waRp":[function(require,module,exports) {
|
|
56
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=n(require("path"));function t(e){if("function"!=typeof WeakMap)return null;var n=new WeakMap,o=new WeakMap;return(t=function(e){return e?o:n})(e)}function n(e,n){if(!n&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var o=t(n);if(o&&o.has(e))return o.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var c=i?Object.getOwnPropertyDescriptor(e,a):null;c&&(c.get||c.set)?Object.defineProperty(r,a,c):r[a]=e[a]}return r.default=e,o&&o.set(e,r),r}var o=({config:t,projectRoot:n})=>{const o=t.appPath?e.isAbsolute(t.appPath)?t.appPath:e.join(n,t.appPath):n,r=(e,t)=>e?t(e):void 0,i=t=>e.isAbsolute(t)?t:e.join(n,t),a={...t,appPath:o,icon:i(t.icon)};return t.extraContentFiles&&(a.extraContentFiles=r(t.extraContentFiles,e=>e.map(e=>({...e,from:i(e.from)})))),t.extraResources&&(a.extraResources=r(t.extraResources,e=>e.map(e=>({...e,from:i(e.from)})))),t.linux&&(a.linux={...t.linux},t.linux.icon&&(a.linux.icon=i(t.linux.icon))),t.mac&&(a.mac={...t.mac},t.mac.entitlements&&(a.mac.entitlements=i(t.mac.entitlements)),t.mac.icon&&(a.mac.icon=i(t.mac.icon))),t.dmg&&t.dmg.background&&(a.dmg.background=i(t.dmg.background)),t.windows&&(a.windows={...t.windows},t.windows.icon&&(a.windows.icon=i(t.windows.icon))),a};exports.default=o;
|
|
57
|
+
},{}],"zW94":[function(require,module,exports) {
|
|
58
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=e=>({type:"object",required:["author","dependencies","devDependencies","homepage","name","version"],properties:{author:{npmAuthor:{}},dependencies:{type:"object",required:["@todesktop/runtime"],excludedDependencies:{dependencyKey:"dependencies",blacklist:["@todesktop/cli"]},properties:{"@todesktop/runtime":{type:"string"}}},devDependencies:{type:"object",required:["electron"],properties:{electron:{type:"string",semanticVersion:{packageName:"electron",mustBeExact:!0}}}},name:{type:"string",minLength:1},scripts:{type:"object",properties:{"todesktop:beforeInstall":{type:"string",file:{from:e.projectRoot,mustBeFile:!0}},"todesktop:afterPack":{type:"string",file:{from:e.projectRoot,mustBeFile:!0}}}},version:{type:"string",semanticVersion:{}}}});exports.default=e;
|
|
59
|
+
},{}],"fl4s":[function(require,module,exports) {
|
|
60
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=a(require("ajv")),r=a(require("better-ajv-errors")),t=a(require("./addCustomKeywords")),o=a(require("./schema/packageJSON"));function a(e){return e&&e.__esModule?e:{default:e}}var s=(a,s,u)=>{const d=new e.default({allErrors:!0,jsonPointers:!0});(0,t.default)(d,u);const i=(0,o.default)(u),n=d.compile(i);if(!n(a)){const e=(0,r.default)(i,a,n.errors,{indent:2}),t=new Error(`package.json invalid (${s}); \n${e}`);throw t.isValidationError=!0,t}};exports.default=s;
|
|
61
|
+
},{"./addCustomKeywords":"g5Ig","./schema/packageJSON":"zW94"}],"g5Ig":[function(require,module,exports) {
|
|
62
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=u(require("email-regex")),r=a(require("fs")),t=a(require("path")),i=u(require("parse-author")),s=a(require("semver")),o=u(require("./validatePackageJSON"));function n(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(n=function(e){return e?t:r})(e)}function a(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=n(r);if(t&&t.has(e))return t.get(e);var i={},s=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var a=s?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(i,o,a):i[o]=e[o]}return i.default=e,t&&t.set(e,i),i}function u(e){return e&&e.__esModule?e:{default:e}}var d=(n,a)=>{n.addKeyword("excludedDependencies",{validate:function e(r,t){let i=r.blacklist.filter(e=>t[e]);return!i.length||(e.errors=[{keyword:"Dependency",message:`${i.join(", ")} should not be in ${r.dependencyKey}`,dataPath:`/${r.dependencyKey}`}],!1)}}),n.addKeyword("email",{type:"string",minLength:5,validate:function r(t,i){return!!(0,e.default)({exact:!0}).test(i)||(r.errors=[{keyword:"email",message:"invalid"}],!1)}}),n.addKeyword("file",{type:"string",validate:function e(i,s){const n=i.mustBeDirectory||i.mustBeElectronApp;if(!s.trim().length)return!!i.isOptional||(e.errors=[{keyword:i.mustBeDirectory?"Directory":"File",message:"is empty"}],!1);const u=t.isAbsolute(s)?s:t.join(i.from,s);if(t.relative(i.from,u).startsWith(".."))return e.errors=[{keyword:n?"Directory":"File",message:`is not in project (${u})`}],!1;if(i.extensions&&!i.extensions.includes(t.extname(u).substr(1)))return e.errors=[{keyword:"File extension",message:`invalid. ${t.extname(s)} Must be${i.extensions>1?"one of the following:":""} "${i.extensions.join('", "')}"`}],!1;if(!r.existsSync(u))return e.errors=[{keyword:n?"Directory":"File",message:`does not exist (${u})`}],!1;const d=r.statSync(u);if(n&&d.isFile())return e.errors=[{keyword:"Directory",message:`must be a directory, not a file (${u})`}],!1;if(i.mustBeFile&&d.isDirectory())return e.errors=[{keyword:"File",message:`must be a file, not a directory (${u})`}],!1;if(i.mustBeElectronApp){const i=t.resolve(u),s=t.join(i,"package.json");if(!r.existsSync(s))return e.errors=[{keyword:"App",message:`invalid. There is no package.json at ${s}`}],!1;let n;try{n=require(s)}catch(l){return e.errors=[{keyword:"App",message:`invalid. Invalid JSON in package.json (${s})`}],!1}a.projectRoot=i,(0,o.default)(n,s,a);const d=n.main;if(d){const s=t.join(i,d);if(!r.existsSync(s))return e.errors=[{keyword:"App",message:`invalid. The "main" file specified in your package.json (${d}) does not exist (${s})`}],!1}else if(!r.existsSync(t.join(i,"index.js")))return e.errors=[{keyword:"App",message:'invalid. There is neither a "main" property in your package.json nor an index.js at the root of your app'}],!1}return!0},errors:!0}),n.addKeyword("npmAuthor",{validate:function r(t,s){const o=typeof s;if("undefined"===o)return!0;if("string"===o){const e=(0,i.default)(s);if(!e||!e.email)return r.errors=[{keyword:"author",message:'invalid. If you\'re using a string, it must look something like "Barney Rubble <b@rubble.com>", see https://docs.npmjs.com/files/package.json#people-fields-author-contributors'}],!1}else{if("object"!==o)return r.errors=[{keyword:"author",message:"invalid. It must either be an object or string. See https://docs.npmjs.com/files/package.json#people-fields-author-contributors"}],!1;if(void 0===s.name)return r.errors=[{keyword:"author",message:'invalid. "name" property is missing.'}],!1;if("string"!=typeof s.name)return r.errors=[{keyword:"author",message:".name invalid. It must be a string"}],!1;if(void 0===s.email)return r.errors=[{keyword:"author",message:'invalid. "email" property is missing.'}],!1;if("string"!=typeof s.email)return r.errors=[{keyword:"author",message:".email invalid. It must be a string."}],!1;if(!(0,e.default)({exact:!0}).test(s.email))return r.errors=[{keyword:"author",message:".email invalid. It does not look like an email."}],!1}return!0},errors:!0}),n.addKeyword("semanticVersion",{type:"string",minLength:5,validate:function e(r,t){const i=(r.packageName?`${r.packageName} `:"")+"version";return s.valid(t)||s.validRange(t)?!r.mustBeExact||!t.startsWith("~")&&!t.startsWith("^")||(e.errors=[{keyword:i,message:"invalid. It must be an exact version. Good: 9.0.0. Bad: ^9.0.0"}],!1):(e.errors=[{keyword:i,message:"invalid. It must be a semantic version (see https://semver.org/)"}],!1)}})};exports.default=d;
|
|
63
|
+
},{"./validatePackageJSON":"fl4s"}],"CN2N":[function(require,module,exports) {
|
|
64
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;const e=e=>({oneOf:[e,{type:"array",items:e}]});var t=t=>{const n=(e=[])=>({type:"string",file:{from:t.projectRoot,extensions:["icns","png",...e],mustBeFile:!0},minLength:3});return{type:"object",required:["id","icon","schemaVersion"],properties:{appId:{type:"string",minLength:1},appFiles:{type:"array",items:{type:"string",minLength:1},minItems:1},appProtocolScheme:{type:"string",minLength:1},appPath:{type:"string",file:{from:t.projectRoot,isOptional:!0,mustBeElectronApp:!0}},asarUnpack:{oneOf:[{type:"boolean"},{type:"array",items:{type:"string",minLength:1},minItems:1}]},copyright:{type:"string",minLength:1},electronMirror:{type:"string",format:"uri"},electronVersion:{type:"string",minLength:1},extraContentFiles:{type:"array",items:{type:"object",required:["from"],properties:{from:{type:"string",file:{from:t.projectRoot}},to:{type:"string"}}}},extraResources:{type:"array",items:{type:"object",required:["from"],properties:{from:{type:"string",file:{from:t.projectRoot}},to:{type:"string"}}}},fileAssociations:{type:"array",items:{type:"object",required:["ext"],properties:{ext:e({type:"string",minLength:1}),description:{type:"string",minLength:1},name:{type:"string",minLength:1},mimeType:{type:"string",minLength:1},icon:{type:"string",minLength:1},role:{type:"string",minLength:1},isPackage:{type:"boolean"},rank:{type:"string",minLength:1}}},minItems:1},filesForDistribution:{type:"array",items:{type:"string",minLength:1},minItems:1},icon:n(),linux:{properties:{category:{type:"string",minLength:1},icon:n()}},id:{type:"string",minLength:1},mac:{properties:{category:{type:"string",minLength:1},additionalBinariesToSign:{type:"array",items:{type:"string",minLength:1}},entitlements:{type:"string",file:{from:t.projectRoot,extensions:["plist"],mustBeFile:!0},minLength:1},extendInfo:{type:"object"},icon:n()}},dmg:{properties:{background:{type:"string",file:{from:t.projectRoot,extensions:["tiff"],mustBeFile:!0},minLength:1},artifactName:{type:"string",minLength:1},backgroundColor:{type:"string",minLength:1},iconSize:{type:"number"},iconTextSize:{type:"number"},title:{type:"string",minLength:1},contents:{type:"array",items:{type:"object",properties:{x:{type:"number"},y:{type:"number"}}}},window:{type:"object",properties:{x:{type:"number"},y:{type:"number"},width:{type:"number"},height:{type:"number"}}}}},schemaVersion:{type:"number",minimum:1,maximum:1},snap:{properties:{after:{type:"array",items:{type:"string",minLength:1}},appPartStage:{type:"array",items:{type:"string",minLength:1}},assumes:e({type:"string",minLength:1}),autoStart:{type:"boolean"},buildPackages:{type:"array",items:{type:"string",minLength:1}},confinement:{type:"string",enum:["classic","devmode","strict"]},environment:{type:"object"},grade:{type:"string",enum:["devel","stable"]},layout:{type:"object"},plugs:{type:"array",items:{anyOf:[{type:"string",minLength:1},{type:"object"}]}},stagePackages:{type:"array",items:{type:"string",minLength:1}},summary:{type:"string",maxLength:78},useTemplateApp:{type:"boolean"}}},uploadSizeLimit:{type:"number"},windows:{properties:{icon:n(["ico"])}}}}};exports.default=t;
|
|
65
|
+
},{}],"aYcI":[function(require,module,exports) {
|
|
66
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=a(require("ajv")),o=a(require("better-ajv-errors")),t=a(require("./addCustomKeywords")),r=a(require("./schema/full"));function a(e){return e&&e.__esModule?e:{default:e}}var n=({config:a,projectRoot:n})=>{const s={projectRoot:n},d=(0,r.default)(s),p=new e.default({allErrors:!0,jsonPointers:!0});(0,t.default)(p,s);const i=p.compile(d);if(!i(a)){const e=(0,o.default)(d,a,i.errors,{indent:2});throw new Error(`todesktop.json invalid. \nLearn more here: https://www.npmjs.com/package/@todesktop/cli#project-configuration-todesktopjson \n\n${e}`)}if(a.productName)throw new Error('todesktop.json invalid.\n\nThe "productName" property is no longer supported in todesktop.json. Please remove it and add it to your app\'s package.json instead.\n\nWe made this change because Electron also uses the "productName" if it exists in your app\'s package.json. If you do not add it to your package.json, your app name will default to the value of the "name" property in your package.json.')};exports.default=n;
|
|
67
|
+
},{"./addCustomKeywords":"g5Ig","./schema/full":"CN2N"}],"Sx1d":[function(require,module,exports) {
|
|
68
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("path"),o=a(require("find-up")),t=a(require("./loadConfig")),r=a(require("./resolveConfigPaths")),n=a(require("./validateConfig"));function a(e){return e&&e.__esModule?e:{default:e}}var i=()=>{const a=o.default.sync("todesktop.json");if(!a)throw new Error("Can not find todesktop.json in this folder or any parent folders");const i=(0,e.dirname)(a),d=(0,t.default)(a);return d.appPath=d.appPath||".",(0,n.default)({config:d,projectRoot:i}),{config:(0,r.default)({config:d,projectRoot:i}),unprocessedConfig:d,projectRoot:i}};exports.default=i;
|
|
69
|
+
},{"./loadConfig":"GCJw","./resolveConfigPaths":"waRp","./validateConfig":"aYcI"}],"ONhe":[function(require,module,exports) {
|
|
70
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=e=>["linux","mac","windows"].every(t=>e[t].shouldSkip||"succeeded"===e[t].status||"failed"===e[t].status&&2===e[t].numberOfAttemptedBuilds);exports.default=e;
|
|
71
|
+
},{}],"rSIG":[function(require,module,exports) {
|
|
72
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=t(require("./firestore")),r=t(require("./logger"));function t(e){return e&&e.__esModule?e:{default:e}}var o=async(t,o)=>{return new Promise((s,a)=>{r.default.debug({key:t},"subscribeToFirebaseDoc"),e.default.doc(t).onSnapshot(e=>{o({snapshot:e,data:e.exists?e.data():void 0}),s()},e=>{a(e)})})};exports.default=o;
|
|
73
|
+
},{"./firestore":"gzUX","./logger":"XvyO"}],"ohCc":[function(require,module,exports) {
|
|
74
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=a(require("./subscribeToFirebaseDoc"));function a(e){return e&&e.__esModule?e:{default:e}}var s=async({appId:a,buildId:s,onDataReceived:t,userId:r})=>{try{return await(0,e.default)(`users/${r}/applications/${a}/builds/${s}`,async({data:e})=>{t(e)})}catch(u){throw u.message=`Failed while subscribing to build; ${u.message}`,u}};exports.default=s;
|
|
75
|
+
},{"./subscribeToFirebaseDoc":"rSIG"}],"PlpY":[function(require,module,exports) {
|
|
76
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=b(require("prop-types")),r=h(require("react")),i=b(require("./BuildProgress")),u=b(require("./ErrorDisplay")),n=b(require("./MainLayout")),a=require("../utilities/firestore"),o=b(require("../utilities/getLatestBuildId")),d=b(require("../utilities/projectConfig/getProjectConfig")),l=b(require("../utilities/logForCI")),s=b(require("../utilities/shouldExitOnBuildFailure")),f=b(require("../utilities/subscribeToBuild")),c=b(require("../utilities/useExit"));function p(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(p=function(e){return e?r:t})(e)}function h(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=p(t);if(r&&r.has(e))return r.get(e);var i={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var a=u?Object.getOwnPropertyDescriptor(e,n):null;a&&(a.get||a.set)?Object.defineProperty(i,n,a):i[n]=e[n]}return i.default=e,r&&r.set(e,i),i}function b(e){return e&&e.__esModule?e:{default:e}}const g=({commandUsed:t,id:p})=>{const h=(0,c.default)(),[{appId:b,arbitraryMessageComponent:g,build:y,error:m,hasBuildFailed:E,isLoading:w},q]=(0,r.useState)({appId:null,arbitraryMessageComponent:null,build:null,error:null,hasBuildFailed:!1,isLoading:!0}),v=e=>{const t=e.response?e.response.data:e;(0,l.default)(t),q(e=>({...e,error:t}))};if((0,r.useEffect)(()=>{let t,i;try{t=(0,d.default)().config}catch(n){return void q(e=>({...e,error:n}))}const u=e=>{(0,f.default)({appId:t.id,buildId:e,onDataReceived:r=>{r||v(new Error(`No such build exists (${e}). Please contact us if this is an error`)),q(e=>({...e,appId:t.id,build:r,isLoading:!1}))},userId:(0,a.currentUser)().uid}).then(e=>{i=e}).catch(v)};return p?u(p):(0,o.default)({appId:t.id}).catch(v).then(t=>{if(t)return u(t);q(t=>({...t,arbitraryMessageComponent:r.default.createElement(e.Text,null,"There are no builds yet")}))}),()=>{i&&i()}},[p]),(0,r.useEffect)(()=>{E&&(0,s.default)(y)&&setTimeout(()=>h(new Error("Build has failed")),10)},[y,h,E]),(0,r.useEffect)(()=>{g&&setTimeout(()=>h(new Error("Validation failed")),10)},[g,h]),m)return r.default.createElement(u.default,{commandUsed:t,error:m});if(g)return g;if(w)return r.default.createElement(e.Text,null,"Loading...");return r.default.createElement(n.default,{appId:b,appName:y.appName,appVersion:y.appVersion,build:y,commandUsed:t,hasBuildFailed:E},r.default.createElement(i.default,{build:y,onBuildFailure:()=>{E||q(e=>({...e,hasBuildFailed:!0}))}}))};g.propTypes={id:(e,t,r)=>{if(1!==[e.id,e.shouldViewLatest].filter(Boolean).length)return new Error(`Exactly one of 'id' and 'shouldViewLatest' must be specified in '${r}'`);const i=typeof e.id;return["string","undefined"].includes(i)?void 0:new Error(`'id' is a '${i}', not a string, in '${r}'.`)},commandUsed:t.default.string.isRequired,shouldViewLatest:(e,t,r)=>{if(1!==[e.id,e.shouldViewLatest].filter(Boolean).length)return new Error(`Exactly one of 'id' and 'shouldViewLatest' must be specified in '${r}'`);const i=typeof e.shouldViewLatest;return["boolean","undefined"].includes(i)?void 0:new Error(`'shouldViewLatest' is a '${i}', not a boolean, in '${r}'.`)}};var y=g;exports.default=y;
|
|
77
|
+
},{"./BuildProgress":"odFL","./ErrorDisplay":"f0Jz","./MainLayout":"T5Az","../utilities/firestore":"gzUX","../utilities/getLatestBuildId":"EqTV","../utilities/projectConfig/getProjectConfig":"Sx1d","../utilities/logForCI":"Sre8","../utilities/shouldExitOnBuildFailure":"ONhe","../utilities/subscribeToBuild":"ohCc","../utilities/useExit":"QLfx"}],"krS3":[function(require,module,exports) {
|
|
78
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=u(require("prop-types")),r=u(require("react"));function u(e){return e&&e.__esModule?e:{default:e}}const a=({keyDetails:t,...u})=>{let a="└";return a+=Object.values(t).map(({width:e})=>"─".repeat(e+2)).join("┴"),a+="┘",r.default.createElement(e.Box,u,r.default.createElement(e.Text,null,a))};a.propTypes={keyDetails:t.default.object.isRequired};var l=a;exports.default=l;
|
|
79
|
+
},{}],"hUnH":[function(require,module,exports) {
|
|
80
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=a(require("@babel/runtime/helpers/extends")),t=require("ink"),r=a(require("prop-types")),l=u(require("react"));function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function u(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var l={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var o=u?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(l,a,o):l[a]=e[a]}return l.default=e,r&&r.set(e,l),l}function a(e){return e&&e.__esModule?e:{default:e}}const o=({keyDetails:r,...n})=>{let u="┌";u+=Object.values(r).map(({width:e})=>"─".repeat(e+2)).join("┬"),u+="┐";const a=Object.values(r).map(({key:e,width:r},n)=>l.default.createElement(l.Fragment,{key:e},n>0?l.default.createElement(t.Text,null," │ "):null,l.default.createElement(t.Box,{width:r},l.default.createElement(t.Text,{bold:!0},e))));return l.default.createElement(t.Box,(0,e.default)({flexDirection:"column"},n),l.default.createElement(t.Box,null,l.default.createElement(t.Text,null,u)),l.default.createElement(t.Box,null,l.default.createElement(t.Box,null,l.default.createElement(t.Text,null,"│ "),a,l.default.createElement(t.Text,null," │"))))};o.propTypes={bottomLinePrefix:r.default.string,keyDetails:r.default.object.isRequired};var f=o;exports.default=f;
|
|
81
|
+
},{}],"vuw3":[function(require,module,exports) {
|
|
82
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=n(require("prop-types")),r=a(require("react"));function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(l=function(e){return e?r:t})(e)}function a(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=l(t);if(r&&r.has(e))return r.get(e);var a={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var o=n?Object.getOwnPropertyDescriptor(e,u):null;o&&(o.get||o.set)?Object.defineProperty(a,u,o):a[u]=e[u]}return a.default=e,r&&r.set(e,a),a}function n(e){return e&&e.__esModule?e:{default:e}}const u=({data:t,getCellTextProps:l=(({props:e})=>e),keyDetails:a,textProps:n={}})=>{let u="├";u+=Object.values(a).map(({width:e})=>"─".repeat(e+2)).join("┼"),u+="┤";const o=r.default.createElement(r.Fragment,null,r.default.createElement(e.Text,null,"│ "),Object.entries(t).map(([u,o],f)=>r.default.createElement(e.Box,{key:u},f>0?r.default.createElement(e.Text,null," │ "):null,r.default.createElement(e.Box,{width:a[u].width},r.default.createElement(e.Text,l({key:u,props:n,rowData:t,value:o}),o)))),r.default.createElement(e.Text,null," │"));return r.default.createElement(r.Fragment,null,r.default.createElement(e.Box,{flexDirection:"column"},r.default.createElement(e.Text,null,u),r.default.createElement(e.Box,null,o)))};u.propTypes={data:t.default.object.isRequired,getCellTextProps:t.default.func,keyDetails:t.default.object.isRequired,textProps:t.default.object};var o=u;exports.default=o;
|
|
83
|
+
},{}],"G67f":[function(require,module,exports) {
|
|
84
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("prop-types")),t=n(require("react")),r=o(require("./TableRow"));function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}function n(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=a(t);if(r&&r.has(e))return r.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var l=o?Object.getOwnPropertyDescriptor(e,u):null;l&&(l.get||l.set)?Object.defineProperty(n,u,l):n[u]=e[u]}return n.default=e,r&&r.set(e,n),n}function o(e){return e&&e.__esModule?e:{default:e}}const u=({data:e,getCellTextProps:a,keyDetails:n})=>t.default.createElement(t.Fragment,null,e.map((e,o)=>t.default.createElement(r.default,{data:e,getCellTextProps:a,key:o,keyDetails:n})));u.propTypes={data:(e,t,r)=>{const a=typeof e.data;return Array.isArray("array")?new Error(`'data' prop must be an array ('${a}' given) in ${r} component`):0===e.data.length?new Error(`'data' prop must not be empty, in ${r} component`):void 0},getCellTextProps:e.default.func,keyDetails:e.default.object.isRequired};var l=u;exports.default=l;
|
|
85
|
+
},{"./TableRow":"vuw3"}],"bdRS":[function(require,module,exports) {
|
|
86
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=e=>{const t={};return Object.keys(e[0]).forEach(r=>{t[r]={key:r,width:Math.max(r.length,e.map(e=>e[r].toString().length).sort((e,t)=>t-e)[0])}}),t};exports.default=e;
|
|
87
|
+
},{}],"B2mJ":[function(require,module,exports) {
|
|
88
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=n(require("prop-types")),r=n(require("react")),a=n(require("./TableEnd")),l=n(require("./TableHead")),u=n(require("./TableBody")),o=n(require("../utilities/getKeyDetails"));function n(e){return e&&e.__esModule?e:{default:e}}const d=({data:t,getCellTextProps:n})=>{const d=(0,o.default)(t);return r.default.createElement(e.Box,{flexDirection:"column"},r.default.createElement(l.default,{keyDetails:d}),r.default.createElement(u.default,{data:t,getCellTextProps:n,keyDetails:d}),r.default.createElement(a.default,{keyDetails:d}))};d.propTypes={data:(e,t,r)=>{const a=typeof e.data;return Array.isArray("array")?new Error(`'data' prop must be an array ('${a}' given) in ${r} component`):0===e.data.length?new Error(`'data' prop must not be empty, in ${r} component`):void 0},getCellTextProps:t.default.func};var i=d;exports.default=i;
|
|
89
|
+
},{"./TableEnd":"krS3","./TableHead":"hUnH","./TableBody":"G67f","../utilities/getKeyDetails":"bdRS"}],"FZpx":[function(require,module,exports) {
|
|
90
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=e=>"string"!=typeof e?"":e.charAt(0).toUpperCase()+e.slice(1);exports.default=e;
|
|
91
|
+
},{}],"H47U":[function(require,module,exports) {
|
|
92
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("./firestore")),t=r(require("./logger"));function r(e){return e&&e.__esModule?e:{default:e}}function a(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(a=function(e){return e?r:t})(e)}function o(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=a(t);if(r&&r.has(e))return r.get(e);var o={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var u=i?Object.getOwnPropertyDescriptor(e,n):null;u&&(u.get||u.set)?Object.defineProperty(o,n,u):o[n]=e[n]}return o.default=e,r&&r.set(e,o),o}var i=async({addWhereClauses:r=(e=>e),appId:a,limit:o=5,startAfter:i})=>{t.default.debug({appId:a,limit:o,startAfter:i},"getBuilds");const n=e.default.doc(`users/${(0,e.currentUser)().uid}/applications/${a}`);if(!(await n.get()).exists)throw new Error(`Application with ID of ${a} doesn't exist.`);let u=r(n.collection("builds")).orderBy("createdAt","desc");i&&(u=u.startAfter(i));const s=await u.limit(o).get();return s.empty?[]:s.docs.map(e=>e.data())};exports.default=i;
|
|
93
|
+
},{"./firestore":"gzUX","./logger":"XvyO"}],"oShw":[function(require,module,exports) {
|
|
94
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=r(require("date-fns"));function t(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,n=new WeakMap;return(t=function(e){return e?n:r})(e)}function r(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=t(r);if(n&&n.has(e))return n.get(e);var a={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var f=o?Object.getOwnPropertyDescriptor(e,u):null;f&&(f.get||f.set)?Object.defineProperty(a,u,f):a[u]=e[u]}return a.default=e,n&&n.set(e,a),a}var n=t=>e.formatDistance(new Date(t),new Date)+" ago";exports.default=n;
|
|
95
|
+
},{}],"me3W":[function(require,module,exports) {
|
|
96
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=require("ink"),t=g(require("prop-types")),r=p(require("react")),a=g(require("./ErrorDisplay")),i=g(require("./Table")),l=g(require("../utilities/capitalize")),o=g(require("../utilities/getBuilds")),n=g(require("../utilities/projectConfig/getProjectConfig")),u=g(require("../utilities/getRelativeDateFromDateString")),s=g(require("../utilities/logForCI")),d=g(require("../utilities/useInput")),f=g(require("../utilities/useExit"));function c(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(c=function(e){return e?r:t})(e)}function p(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=c(t);if(r&&r.has(e))return r.get(e);var a={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var o=i?Object.getOwnPropertyDescriptor(e,l):null;o&&(o.get||o.set)?Object.defineProperty(a,l,o):a[l]=e[l]}return a.default=e,r&&r.set(e,a),a}function g(e){return e&&e.__esModule?e:{default:e}}const m=({commandUsed:t})=>{const c=(0,f.default)(),[{builds:p,error:g,hasMoreToLoad:m,isInitialLoadComplete:h,isLoading:y,projectConfig:C,startAfter:b},L]=(0,r.useState)({builds:[],error:null,hasMoreToLoad:!0,isInitialLoadComplete:!1,isLoading:!1,projectConfig:null,startAfter:null});if((0,d.default)()((e,t)=>{if(t.escape&&c()," "===e||t.downArrow||t.pageDown||t.return){if(!h||!m)return;L(e=>({...e,startAfter:p[p.length-1].createdAt}))}}),(0,r.useEffect)(()=>{if(g||y||h&&(!m||!b))return;let e;L(e=>({...e,isLoading:!0}));try{e=C||(0,n.default)().config}catch(t){return void L(e=>({...e,error:t}))}(0,o.default)({appId:e.id,limit:6,startAfter:b}).then(t=>{L(r=>{const a={hasMoreToLoad:t.length>5,isInitialLoadComplete:!0,isLoading:!1,projectConfig:e,startAfter:null};return t.length&&(a.builds=[...r.builds,...t.slice(0,5)]),{...r,...a}})}).catch(e=>{(0,s.default)(e),L(t=>({...t,error:e,isLoading:!1}))})},[g,m,h,y,C,b]),(0,r.useEffect)(()=>{m||setTimeout(c,10)},[c,m]),g)return r.default.createElement(a.default,{commandUsed:t,error:g});if(!h)return r.default.createElement(e.Text,null,"Loading...");if(p.length){const t=p.map(e=>({ID:e.id,Version:e.appVersion||"unknown","Creation date":(0,u.default)(e.createdAt),Status:(0,l.default)(e.status),"Release date":e.releasedAt?(0,u.default)(e.releasedAt):"Unreleased"})),a=({key:e,props:t,value:r})=>{const a={...t};if("Status"===e){const e=r.toLowerCase();"succeeded"===e?a.color="green":"failed"===e?a.color="red":"cancelled"===e&&(a.dimColor=!0)}else"Release date"===e&&"unreleased"===r.toLowerCase()&&(a.dimColor=!0);return a};return r.default.createElement(r.Fragment,null,r.default.createElement(i.default,{getCellTextProps:a,data:t}),p.length>0?r.default.createElement(e.Box,null,r.default.createElement(e.Text,{color:"gray",dimColor:!0},y?"Loading more...":m?`Showing the latest ${p.length} builds. Press space/down to load more.`:`Showing all (${p.length}) builds`)):null)}return r.default.createElement(e.Text,null,"There are no builds yet")};m.propTypes={commandUsed:t.default.string.isRequired};var h=m;exports.default=h;
|
|
97
|
+
},{"./ErrorDisplay":"f0Jz","./Table":"B2mJ","../utilities/capitalize":"FZpx","../utilities/getBuilds":"H47U","../utilities/projectConfig/getProjectConfig":"Sx1d","../utilities/getRelativeDateFromDateString":"oShw","../utilities/logForCI":"Sre8","../utilities/useInput":"CLRu","../utilities/useExit":"QLfx"}],"AYMC":[function(require,module,exports) {
|
|
98
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=i(require("chalk")),t=i(require("is-installed-globally")),o=i(require("latest-version")),r=i(require("pkg-up")),s=i(require("semver"));function i(e){return e&&e.__esModule?e:{default:e}}var u=()=>{if(process.env.AVA_PATH)return;const i=require(r.default.sync({cwd:__dirname}));(0,o.default)(i.name).then(o=>{if(s.default.gt(o,i.version)){const r=e.default.greenBright(`npm install ${t.default?"-g":"--save-dev"} @todesktop/cli`);console.log(`Your version of @todesktop/cli is out of date.\nRun ${r} to update to v${o}.`),s.default.satisfies(o,`^${i.version}`)||(console.log("CLI is exiting because it is out out of date."),process.exit(1))}})};exports.default=u;
|
|
99
|
+
},{}],"EHrm":[function(require,module,exports) {
|
|
100
|
+
module.exports={private:!1,publishConfig:{access:"public"},name:"@todesktop/cli",version:"1.1.3",license:"MIT",author:"Dave Jeffery <dave@todesktop.com> (http://www.todesktop.com/)",homepage:"https://todesktop.com/cli",bugs:{email:"dave@todesktop.com"},bin:{todesktop:"./build/cli.js"},engines:{node:">=12"},scripts:{dev:"cp-cli dev.env .env && pastel dev","dev:prod":"cp-cli prod.env .env && pastel dev",build:"cross-env NODE_ENV=production pastel build && cp-cli prod.env .env && cp node_modules/pastel/boot.js build/boot.js && sed -i'.bak' 's@pastel\\/boot@.\\/boot@g' build/cli.js",lint:"eslint .","lint--fix":"eslint . --fix",release:"npm run build && npx np --tag=latest","release-beta":"npm run build && npx np --any-branch --no-tests --tag=beta",test:"npm run build && ava","test--watch":"npm test -- --watch"},files:["build","docs",".env","LICENSE","README.md"],dependencies:{"@babel/runtime":"^7.18.9","@sentry/node":"^5.27.2",ajv:"^6.12.6","analytics-node":"^4.0.1",archiver:"^5.2.0",axios:"^0.21.1","better-ajv-errors":"^1.2.0",bunyan:"^1.8.14","camelcase-keys":"^5.2.0",chalk:"^4.1.0",conf:"^7.1.2","date-fns":"^2.28.0",decamelize:"^1.2.0",del:"^6.0.0",dotenv:"^8.2.0",du:"^1.0.0","email-regex":"^4.0.0","fast-glob":"^3.2.4","final-form":"^4.20.1","find-up":"^5.0.0",firebase:"^7.24.0","git-rev-sync":"^3.0.2",ink:"^3.2.0","ink-gradient":"^2.0.0","ink-link":"^2.0.0","ink-select-input":"^4.2.1","ink-text-input":"^4.0.1","is-ci":"^3.0.1","is-installed-globally":"^0.3.2","latest-version":"^5.1.0","lodash.throttle":"^4.1.1","parse-author":"^2.0.0","pkg-up":"^3.1.0","pretty-bytes":"^5.4.1","prop-types":"^15.7.2",react:"^17.0.2","react-final-form":"^6.5.1",semver:"^7.3.2","stream-to-array":"^2.3.0",superagent:"^7.1.3",uuid:"^8.3.1","xdg-basedir":"^4.0.0",yargs:"^15.4.1"},devDependencies:{"@ava/babel":"^1.0.1","@babel/core":"^7.12.3","@babel/plugin-transform-runtime":"^7.12.1","@babel/preset-env":"^7.11.5","@babel/register":"^7.12.1","@types/bunyan":"^1.8.6",ava:"^4.3.1","babel-preset-es2015":"^6.24.1","cp-cli":"^2.0.0","cross-env":"^7.0.2",eslint:"^7.6.0","eslint-config-prettier":"^6.11.0","eslint-config-standard":"^14.1.1","eslint-plugin-import":"^2.22.1","eslint-plugin-node":"^11.1.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"^7.21.4","eslint-plugin-react-hooks":"^4.2.0","eslint-plugin-standard":"^4.0.1",execa:"^4.0.3","extract-zip":"^2.0.1","fs-extra":"^9.0.1",husky:"^4.3.0","lint-staged":"^10.2.11",pastel:"^1.1.1",prettier:"^2.1.2",proxyquire:"^2.1.3",sinon:"^9.0.3"},ava:{files:["test/**/*.js","!test/fixtures/**/*","!test/utilities/**/*"],require:["@babel/register"],timeout:"10m"},"lint-staged":{"**/*.js":["eslint . --fix","git add"]},husky:{hooks:{"pre-commit":"lint-staged"}},overrides:{pastel:{"parcel-bundler":{deasync:"0.1.27"}}},resolutions:{"pastel/parcel-bundler/deasync":"0.1.24",ink:"3.2.0",react:"17.0.2"},packageExtensions:{"ink-progress-bar@*":{dependencies:{react:"*",ink:"*"}}}};
|
|
101
|
+
},{}],"SYaU":[function(require,module,exports) {
|
|
102
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=c(require("@sentry/node")),t=u(require("os")),r=u(require("../../package.json")),n=require("../utilities/configStore"),o=u(require("../utilities/projectConfig/getProjectConfig")),a=u(require("path")),i=u(require("./getEnvironmentVariables"));function u(e){return e&&e.__esModule?e:{default:e}}function s(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(s=function(e){return e?r:t})(e)}function c(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=s(t);if(r&&r.has(e))return r.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(n,a,i):n[a]=e[a]}return n.default=e,r&&r.set(e,n),n}var f=()=>{const{TODESKTOP_CLI_SENTRY_DSN:a}=(0,i.default)();a&&(e.init({dsn:a}),e.configureScope(e=>{try{e.setUser({email:(0,n.getAuthConfig)().email})}catch(a){}try{e.setContext("os",{name:t.default.platform(),version:t.default.release()})}catch(a){}try{e.setContext("runtime",{name:"Node.js",version:process.version})}catch(a){}try{e.setContext("app",{app_name:r.default.name,app_version:r.default.version})}catch(a){}try{const t=(0,o.default)();e.setExtra("config",t)}catch(a){}}))};exports.default=f;
|
|
103
|
+
},{"../../package.json":"EHrm","../utilities/configStore":"ffKF","../utilities/projectConfig/getProjectConfig":"Sx1d","./getEnvironmentVariables":"gwcX"}],"rPNZ":[function(require,module,exports) {
|
|
104
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=r(require("./exitIfCLIOutOfDate")),t=r(require("./initSentry"));function r(e){return e&&e.__esModule?e:{default:e}}const u={sentry:!0,exitIfOutOfDate:!0};var f=r=>{const{sentry:f,exitIfOutOfDate:a}={...u,...r};f&&(0,t.default)(),a&&(0,e.default)()};exports.default=f;
|
|
105
|
+
},{"./exitIfCLIOutOfDate":"AYMC","./initSentry":"SYaU"}],"CV1E":[function(require,module,exports) {
|
|
106
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useAnalyticsCommand=void 0;var e=require("react"),t=require("./firestore"),i=require("./analytics"),r=s(require("../utilities/logger")),a=s(require("../utilities/projectConfig/getProjectConfig"));function s(e){return e&&e.__esModule?e:{default:e}}const o=(s,o={},u={})=>{const[n,c]=(0,e.useState)(!1);r.default.info({command:s,flags:o,properties:u},"useAnalyticsCommand");try{o.projectPath&&(u={...u,...(0,a.default)()})}catch(l){}return(0,e.useEffect)(()=>{const e=(0,t.onUserAuth)(async t=>{t.uid&&(0,i.identify)(t.uid,{email:t.email,displayName:t.displayName},()=>{(0,i.track)(i.ANALYTICS_EVENT.CLI_COMMAND,{...u,flags:o,command:s},()=>c(!0)),e&&e()})});setTimeout(()=>c(!0),5e3)},[]),{hasAttemptedTracking:n}};exports.useAnalyticsCommand=o;
|
|
107
|
+
},{"./firestore":"gzUX","./analytics":"ALju","../utilities/logger":"XvyO","../utilities/projectConfig/getProjectConfig":"Sx1d"}],"U8Bu":[function(require,module,exports) {
|
|
108
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var e=o(require("prop-types")),t=o(require("react")),l=o(require("../lib/utilities/checkIfReactIsUsable")),i=o(require("../lib/components/LoginHOC")),u=o(require("../lib/components/ErrorBoundary")),r=o(require("../lib/components/ViewBuild")),d=o(require("../lib/components/ViewBuilds")),a=o(require("../lib/utilities/onCommand")),s=require("../lib/utilities/useAnalytics");function o(e){return e&&e.__esModule?e:{default:e}}(0,a.default)();const n=({id:e,latest:a})=>{(0,l.default)(),(0,s.useAnalyticsCommand)("builds",{id:e,shouldViewLatest:a});return t.default.createElement(u.default,null,t.default.createElement(i.default,null,(()=>{let l="todesktop builds";return e?(l+=" <id>",t.default.createElement(r.default,{commandUsed:l,id:e})):a?(l+=" --latest",t.default.createElement(r.default,{commandUsed:l,shouldViewLatest:!0})):t.default.createElement(d.default,{commandUsed:l})})()))};n.propTypes={id:e.default.string,latest:e.default.bool},n.positionalArgs=["id"];var c=n;exports.default=c;
|
|
109
|
+
},{"../lib/utilities/checkIfReactIsUsable":"cb6D","../lib/components/LoginHOC":"nLy3","../lib/components/ErrorBoundary":"XM8F","../lib/components/ViewBuild":"PlpY","../lib/components/ViewBuilds":"me3W","../lib/utilities/onCommand":"rPNZ","../lib/utilities/useAnalytics":"CV1E"}]},{},["U8Bu"], null)
|
|
4225
110
|
//# sourceMappingURL=/builds.js.map
|