1 | import { __spreadArrays, __extends, __awaiter, __generator, __assign } from 'tslib';
|
2 | import chalk from 'chalk';
|
3 | import { EventEmitter } from 'events';
|
4 | import fs, { access, constants } from 'fs';
|
5 | import nodePath, { join } from 'path';
|
6 | import write from 'write';
|
7 | import resolve from '@rollup/plugin-node-resolve';
|
8 | import commonjs from '@rollup/plugin-commonjs';
|
9 | import json from '@rollup/plugin-json';
|
10 | import copyDir from '@zhangfuxing/copydir';
|
11 | import simplyGetFiles from 'simply-get-files';
|
12 | import { rollup, watch } from 'rollup';
|
13 | import pupa from 'pupa';
|
14 | import makeDir from 'make-dir';
|
15 | import spawn from 'cross-spawn';
|
16 |
|
17 | var appName = "driza";
|
18 | var levels = ["info", "notice", "warn", "error", "fatal"];
|
19 | var timestamp = Date.now();
|
20 | var currentLogger = console.log;
|
21 | var currentLevel = 0;
|
22 | var setLogger = function (customLogger) {
|
23 | currentLogger = customLogger;
|
24 | };
|
25 | var setLevel = function (customLevel) {
|
26 | currentLevel = levels.findIndex(function (l) { return l === customLevel; });
|
27 | };
|
28 | var debug = (function (job) {
|
29 | var log = function (messageLevel) {
|
30 | var messages = [];
|
31 | for (var _i = 1; _i < arguments.length; _i++) {
|
32 | messages[_i - 1] = arguments[_i];
|
33 | }
|
34 | var messageLevelIndex = levels.findIndex(function (l) { return l === messageLevel; });
|
35 | if (messageLevelIndex >= currentLevel) {
|
36 | currentLogger.apply(void 0, __spreadArrays([chalk.blue.bold(appName + ":" + job)], messages, [chalk.blue.bold("+" + (Date.now() - timestamp) + "ms")]));
|
37 | }
|
38 | };
|
39 | function fatal() {
|
40 | var message = [];
|
41 | for (var _i = 0; _i < arguments.length; _i++) {
|
42 | message[_i] = arguments[_i];
|
43 | }
|
44 | log.apply(void 0, __spreadArrays(["fatal", chalk.black.bgRed(' FATAL ERROR ')], message));
|
45 | notice('Fatal error. Exiting with code 1.');
|
46 | process.exit(1);
|
47 | }
|
48 | function error() {
|
49 | var message = [];
|
50 | for (var _i = 0; _i < arguments.length; _i++) {
|
51 | message[_i] = arguments[_i];
|
52 | }
|
53 | log.apply(void 0, __spreadArrays(["error", chalk.black.bgRed(' ERROR ')], message));
|
54 | }
|
55 | function warn() {
|
56 | var message = [];
|
57 | for (var _i = 0; _i < arguments.length; _i++) {
|
58 | message[_i] = arguments[_i];
|
59 | }
|
60 | log.apply(void 0, __spreadArrays(["warn", chalk.black.bgYellow(' WARN ')], message));
|
61 | }
|
62 | function notice() {
|
63 | var message = [];
|
64 | for (var _i = 0; _i < arguments.length; _i++) {
|
65 | message[_i] = arguments[_i];
|
66 | }
|
67 | log.apply(void 0, __spreadArrays(["notice", chalk.black.bgCyan(' NOTICE ')], message));
|
68 | }
|
69 | function info() {
|
70 | var message = [];
|
71 | for (var _i = 0; _i < arguments.length; _i++) {
|
72 | message[_i] = arguments[_i];
|
73 | }
|
74 | log.apply(void 0, __spreadArrays(["info", chalk.black.bgGreen(' INFO ')], message));
|
75 | }
|
76 | return {
|
77 | fatal: fatal,
|
78 | error: error,
|
79 | warn: warn,
|
80 | notice: notice,
|
81 | info: info,
|
82 | };
|
83 | });
|
84 |
|
85 | var PromiseEmitter = (function (_super) {
|
86 | __extends(PromiseEmitter, _super);
|
87 | function PromiseEmitter() {
|
88 | return _super !== null && _super.apply(this, arguments) || this;
|
89 | }
|
90 | PromiseEmitter.prototype.set = function (fn) {
|
91 | this.func = fn;
|
92 | };
|
93 | PromiseEmitter.prototype.run = function () {
|
94 | return __awaiter(this, void 0, Promise, function () {
|
95 | return __generator(this, function (_a) {
|
96 | return [2 , this.func()];
|
97 | });
|
98 | });
|
99 | };
|
100 | return PromiseEmitter;
|
101 | }(EventEmitter));
|
102 |
|
103 | var log = debug('read-files');
|
104 | var read = function () {
|
105 | var paths = [];
|
106 | for (var _i = 0; _i < arguments.length; _i++) {
|
107 | paths[_i] = arguments[_i];
|
108 | }
|
109 | return new Promise(function (resolve) {
|
110 | var path = nodePath.join.apply(nodePath, paths);
|
111 | fs.readFile(path, 'utf-8', function (err, data) {
|
112 | if (err)
|
113 | return resolve("");
|
114 | return resolve(data);
|
115 | });
|
116 | });
|
117 | };
|
118 | var readJSON = function () {
|
119 | var paths = [];
|
120 | for (var _i = 0; _i < arguments.length; _i++) {
|
121 | paths[_i] = arguments[_i];
|
122 | }
|
123 | return __awaiter(void 0, void 0, Promise, function () {
|
124 | var res;
|
125 | return __generator(this, function (_a) {
|
126 | switch (_a.label) {
|
127 | case 0: return [4 , read.apply(void 0, paths)];
|
128 | case 1:
|
129 | res = _a.sent();
|
130 | try {
|
131 | return [2 , JSON.parse(res.length ? res : "{}")];
|
132 | }
|
133 | catch (e) {
|
134 | log.error('Failed to load JSON', e);
|
135 | return [2 , {}];
|
136 | }
|
137 | return [2 ];
|
138 | }
|
139 | });
|
140 | });
|
141 | };
|
142 |
|
143 | var makeSlug = (function (str) {
|
144 | return str
|
145 | .replace(/\.git/g, "")
|
146 | .replace(/[^a-zA-Z0-9]/g, "-")
|
147 | .replace(/-+/g, "-")
|
148 | .toLowerCase();
|
149 | });
|
150 |
|
151 | var nativeNodeModules = [
|
152 | "process",
|
153 | "events",
|
154 | "stream",
|
155 | "util",
|
156 | "path",
|
157 | "buffer",
|
158 | "querystring",
|
159 | "url",
|
160 | "string_decoder",
|
161 | "punycode",
|
162 | "http",
|
163 | "https",
|
164 | "os",
|
165 | "assert",
|
166 | "constants",
|
167 | "timers",
|
168 | "console",
|
169 | "vm",
|
170 | "zlib",
|
171 | "tty",
|
172 | "domain",
|
173 | "dns",
|
174 | "dgram",
|
175 | "child_process",
|
176 | "cluster",
|
177 | "module",
|
178 | "net",
|
179 | "readline",
|
180 | "repl",
|
181 | "tls",
|
182 | "fs",
|
183 | "crypto",
|
184 | ];
|
185 |
|
186 | const img = 'data:image/png;base64,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';
|
187 |
|
188 | var bugs = {
|
189 | url: "https://github.com/Vehmloewff/driza/issues/new"
|
190 | };
|
191 |
|
192 | var log$1 = debug('platform-keeper');
|
193 | var currentPlatform;
|
194 | var setPlatformResult = function (platform) { return (currentPlatform = platform); };
|
195 | var getPlatformResult = function () {
|
196 | if (!currentPlatform)
|
197 | log$1.fatal("[internal error] the platform was requested before it was set. Please consider opening an issue: " + bugs.url);
|
198 | return currentPlatform;
|
199 | };
|
200 |
|
201 | var fileExists = (function (file) {
|
202 | return new Promise(function (resolve) {
|
203 | if (!file)
|
204 | resolve();
|
205 | access(file, constants.F_OK, function (err) {
|
206 | if (err)
|
207 | resolve();
|
208 | else
|
209 | resolve(file);
|
210 | });
|
211 | });
|
212 | });
|
213 |
|
214 | var log$2 = debug('default-options');
|
215 | var defaultBuildOptions = function (options) { return __awaiter(void 0, void 0, Promise, function () {
|
216 | var isBuild, isCompile, isRun, dir, pkg, name, outDir, toReturn, test, invalidTypeMessage, platform, platformIsRightType, external, globals, path, e_1;
|
217 | return __generator(this, function (_a) {
|
218 | switch (_a.label) {
|
219 | case 0:
|
220 |
|
221 | if (!options.author)
|
222 | options.author = {};
|
223 | if (!options.watch)
|
224 | options.watch = {};
|
225 | isBuild = options.object === 'build';
|
226 | isCompile = options.object === 'compile';
|
227 | isRun = !isBuild && !isCompile;
|
228 | dir = options.dir || process.cwd();
|
229 | return [4 , readJSON(dir, 'package.json')];
|
230 | case 1:
|
231 | pkg = _a.sent();
|
232 | if (typeof pkg.author === 'string') {
|
233 | name = pkg.author;
|
234 | delete pkg.author;
|
235 | pkg.author.name = name;
|
236 | }
|
237 | else if (!pkg.author)
|
238 | pkg.author = {};
|
239 | outDir = nodePath.join(dir, options.outDir || "dist");
|
240 | toReturn = {
|
241 | platform: options.platform,
|
242 | sourceMap: options.sourceMap || true,
|
243 | object: options.object || 'run',
|
244 | dir: dir,
|
245 | name: options.name || pkg.displayName || "Driza App",
|
246 | description: options.description || pkg.description || "",
|
247 | version: options.version || pkg.version || "1.0.0-beta.3",
|
248 |
|
249 |
|
250 | author: {
|
251 | name: options.author.name || pkg.author.name || "Mr. Awesome",
|
252 |
|
253 | email: options.author.email || pkg.author.email || "mr.awesome@example.com",
|
254 | url: options.author.url || pkg.author.url || "https://example.com/mrawesome",
|
255 | },
|
256 | icon: options.icon || {
|
257 | width: 512,
|
258 | height: 512,
|
259 |
|
260 |
|
261 | path: "img/icon.png",
|
262 | },
|
263 | appEntry: nodePath.join(dir, options.appEntry || pkg.main || 'src/index.js'),
|
264 | outDir: outDir,
|
265 | assetsDir: options.assetsDir || "assets",
|
266 |
|
267 | additionalPlugins: options.additionalPlugins || [],
|
268 |
|
269 |
|
270 | watch: {
|
271 | enable: options.watch.enable || false,
|
272 | include: options.watch.include || [],
|
273 | exclude: options.watch.exclude || [],
|
274 | },
|
275 | driza: options.driza || "driza",
|
276 | };
|
277 | test = /^([1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
|
278 | if (!test.test(toReturn.version)) {
|
279 | log$2.error("The version must be a semver (https://semver.org) string that starts with a nubmber greater than or equal to '1'. Recieved '" + toReturn.version + "'.");
|
280 | log$2.error("Sorry, that's a requirement by android.");
|
281 | log$2.fatal("Invalid version!");
|
282 | }
|
283 |
|
284 | toReturn.id = options.id || pkg.name || makeSlug(toReturn.name);
|
285 |
|
286 | if (nodePath.isAbsolute(toReturn.icon.path))
|
287 | toReturn.icon.path = nodePath.relative(toReturn.icon.path, dir);
|
288 |
|
289 | toReturn.author.devId = options.author.devId || makeSlug(toReturn.author.name).replace(/-/g, "");
|
290 |
|
291 | toReturn.bundleId = "com." + toReturn.author.devId + "." + toReturn.id.replace(/-/g, "");
|
292 |
|
293 | return [4 , new Promise(function (resolve) {
|
294 | access(toReturn.icon.path, constants.W_OK, function (err) {
|
295 | if (err) {
|
296 |
|
297 | write(toReturn.icon.path, img.replace(/^data:image\/png;base64,/, ""), { encoding: 'base64' })
|
298 | .then(resolve)
|
299 | .catch(function (err) {
|
300 | log$2.error("We encountered an error writing the default app icon.", err);
|
301 | resolve();
|
302 | });
|
303 | }
|
304 | else
|
305 | resolve();
|
306 | });
|
307 | })];
|
308 | case 2:
|
309 |
|
310 | _a.sent();
|
311 | invalidTypeMessage = "options.platform is not of the right type.";
|
312 | if (!options.platform)
|
313 | log$2.fatal("options.platform is required");
|
314 | if (typeof options.platform !== 'function')
|
315 | log$2.fatal(invalidTypeMessage, "Expected a function, but got " + typeof options.platform);
|
316 | return [4 , options.platform(toReturn, debug)];
|
317 | case 3:
|
318 | platform = _a.sent();
|
319 | if (!platform)
|
320 | log$2.fatal(invalidTypeMessage, "Function did not return a defined value.");
|
321 | platformIsRightType =
|
322 |
|
323 | platform.plugin &&
|
324 |
|
325 |
|
326 | platform.isSandboxed &&
|
327 | platform.tag &&
|
328 | platform.bundlePath &&
|
329 | platform.runtimePath &&
|
330 | platform.run &&
|
331 |
|
332 | platform.run().name;
|
333 | if (!platformIsRightType)
|
334 | log$2.fatal(invalidTypeMessage, "Not all of the required hooks were provided.");
|
335 | setPlatformResult(platform);
|
336 | external = __spreadArrays(nativeNodeModules, (typeof platform.external === 'function' && platform.external() ? platform.external() : []));
|
337 | globals = {};
|
338 | external.forEach(function (str) {
|
339 | globals[str] = "{}";
|
340 | });
|
341 |
|
342 | toReturn.rollupOptions = options.rollupOptions || {
|
343 | input: toReturn.appEntry,
|
344 | output: {
|
345 | file: nodePath.join(outDir, platform.tag, platform.bundlePath()),
|
346 | format: platform.isSandboxed() ? 'iife' : 'commonjs',
|
347 | globals: platform.isSandboxed() ? globals : {},
|
348 | },
|
349 | plugins: __spreadArrays(toReturn.additionalPlugins, [
|
350 | resolve({
|
351 | browser: platform.isSandboxed(),
|
352 | preferBuiltins: true,
|
353 | }),
|
354 | commonjs(),
|
355 | json(),
|
356 | isRun && platform.run(),
|
357 | ]),
|
358 | external: external,
|
359 | onwarn: function (warning) {
|
360 | var containsKnown = false;
|
361 | if (/level\-blobs/.test(warning.message))
|
362 | containsKnown = true;
|
363 | if (/fwd\-stream/.test(warning.message))
|
364 | containsKnown = true;
|
365 | if (/concat\-stream/.test(warning.message))
|
366 | containsKnown = true;
|
367 | if (/rollup\-plugin\-node\-builtins/.test(warning.message))
|
368 | containsKnown = true;
|
369 | if (/levelup/.test(warning.message))
|
370 | containsKnown = true;
|
371 | if (/bl/.test(warning.message))
|
372 | containsKnown = true;
|
373 | if (/Circular dependency:/.test(warning.message) && containsKnown)
|
374 | return;
|
375 | debug('bundle').warn("[Rollup bundle client]", warning.message);
|
376 | },
|
377 | };
|
378 | return [4 , fileExists(toReturn.assetsDir)];
|
379 | case 4:
|
380 | if (!_a.sent()) return [3 , 9];
|
381 | _a.label = 5;
|
382 | case 5:
|
383 | _a.trys.push([5, 7, , 8]);
|
384 | path = nodePath.join(toReturn.outDir, platform.tag, platform.assetsPath());
|
385 | return [4 , copyDir(toReturn.assetsDir, path)];
|
386 | case 6:
|
387 | _a.sent();
|
388 | log$2.info("Copied the assets to \"" + path + "\".");
|
389 | return [3 , 8];
|
390 | case 7:
|
391 | e_1 = _a.sent();
|
392 | log$2.error("Failed to copy the assets over.", e_1);
|
393 | return [3 , 8];
|
394 | case 8: return [3 , 10];
|
395 | case 9:
|
396 | log$2.info("Not copying the assets over. Path \"" + toReturn.assetsDir + "\" was not found.");
|
397 | _a.label = 10;
|
398 | case 10: return [2 , toReturn];
|
399 | }
|
400 | });
|
401 | }); };
|
402 |
|
403 | var runtime = "import * as commonjsHelpers from '\u0000commonjsHelpers.js';\n\nvar dist = commonjsHelpers.createCommonjsModule(function (module, exports) {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar platform = \"%PLATFORM%\";\nvar buildOptions = JSON.parse('%BUILD_OPTIONS%');\nfunction createBrowserWindow(options) {\n if (options === void 0) { options = {}; }\n // @ts-ignore\n var win = new BrowserWindow(__assign({ icon: buildOptions.icon.path }, options));\n win.loadURL(\"file://\" + __dirname + \"/index.html\");\n win.webContents.on('did-finish-load', function () {\n win.webContents.send('window-id', win.id);\n });\n return win;\n}\nvar assets = [\n/*ASSETS_HERE*/\n];\n\nexports.assets = assets;\nexports.buildOptions = buildOptions;\nexports.createBrowserWindow = createBrowserWindow;\nexports.platform = platform;\n});\n\nexport default commonjsHelpers.unwrapExports(dist);\nexport { dist as __moduleExports };\nvar dist_1 = dist.assets;\nexport { dist_1 as assets };\nvar dist_2 = dist.buildOptions;\nexport { dist_2 as buildOptions };\nvar dist_3 = dist.createBrowserWindow;\nexport { dist_3 as createBrowserWindow };\nvar dist_4 = dist.platform;\nexport { dist_4 as platform };";
|
404 |
|
405 | var log$3 = debug("direct-runtime");
|
406 | var directRuntime = (function (options) {
|
407 | var uniqueId = "driza?runtime";
|
408 | return {
|
409 | name: "direct-driza-runtime",
|
410 | resolveId: function (source) {
|
411 | if (source !== options.driza)
|
412 | return null;
|
413 | return uniqueId;
|
414 | },
|
415 | load: function (id) { return __awaiter(void 0, void 0, void 0, function () {
|
416 | var code, platformData, importStatement, assets;
|
417 | return __generator(this, function (_a) {
|
418 | switch (_a.label) {
|
419 | case 0:
|
420 | if (id !== uniqueId)
|
421 | return [2 , null];
|
422 | code = runtime;
|
423 | platformData = getPlatformResult().data;
|
424 | if (platformData === "electron") {
|
425 | importStatement = "import { BrowserWindow } from 'electron';\n";
|
426 | code = importStatement + code;
|
427 | }
|
428 | return [4 , simplyGetFiles(options.assetsDir)];
|
429 | case 1:
|
430 | assets = _a.sent();
|
431 | assets.push(getPlatformResult().bundlePath());
|
432 | if (platformData === "browser")
|
433 | assets.push("service-worker.js");
|
434 | assets = assets.map(function (asset) { return "'" + nodePath.join(getPlatformResult().assetsPath(), asset) + "'"; });
|
435 | code = code
|
436 | .replace("%PLATFORM%", getPlatformResult().tag)
|
437 | .replace("%BUILD_OPTIONS%", JSON.stringify(options))
|
438 | .replace("/*ASSETS_HERE*/", assets.join(', '));
|
439 | log$3.info("Customized runtime.");
|
440 | return [2 , {
|
441 | code: code,
|
442 | }];
|
443 | }
|
444 | });
|
445 | }); },
|
446 | };
|
447 | });
|
448 |
|
449 | var log$4 = debug('prepare-rollup');
|
450 | function addPlugins(rollupOptions, plugins, before) {
|
451 | var _a, _b;
|
452 | if (!rollupOptions.plugins)
|
453 | rollupOptions.plugins = [];
|
454 | (_a = rollupOptions.plugins).push.apply(_a, plugins);
|
455 | if (before) {
|
456 | (_b = rollupOptions.plugins).unshift.apply(_b, before);
|
457 | }
|
458 | return rollupOptions;
|
459 | }
|
460 | var createOptions = function (options) { return __awaiter(void 0, void 0, Promise, function () {
|
461 | var toReturn, extraBuilds, result;
|
462 | return __generator(this, function (_a) {
|
463 | toReturn = [];
|
464 | extraBuilds = getPlatformResult().extraBuilds;
|
465 | if (extraBuilds) {
|
466 | if (typeof extraBuilds === 'function') {
|
467 | result = extraBuilds();
|
468 | result.forEach(function (build) {
|
469 | toReturn.push(addPlugins(build, [], [directRuntime(options)]));
|
470 | });
|
471 | }
|
472 | else
|
473 | log$4.error("Expected platform.extraBuilds to be a function. Recieved type " + typeof extraBuilds);
|
474 | }
|
475 | toReturn.push(addPlugins(options.rollupOptions, [getPlatformResult().plugin()], [directRuntime(options)]));
|
476 | return [2 , toReturn];
|
477 | });
|
478 | }); };
|
479 |
|
480 | var log$5 = debug('bundle');
|
481 | var build = function (options, rollupOptions) { return __awaiter(void 0, void 0, void 0, function () {
|
482 | var params, watcher, _a, _b, _i, i, bundle, output, _c, _d, _e, x, err_1;
|
483 | return __generator(this, function (_f) {
|
484 | switch (_f.label) {
|
485 | case 0:
|
486 | params = rollupOptions.map(function (opt) { return (__assign(__assign({}, opt), { watch: options.watch.enable ? opt.watch : {} })); });
|
487 | if (!options.watch.enable) return [3 , 1];
|
488 | watcher = watch(params);
|
489 | watcher.on('event', function (event) {
|
490 | if (event.code === 'START')
|
491 | log$5.notice('Starting bundle generation...');
|
492 | else if (event.code === 'BUNDLE_START')
|
493 | log$5.notice('Starting a new section in the bundle...');
|
494 | else if (event.code === 'BUNDLE_END')
|
495 | log$5.notice('Finished bundle section.');
|
496 | else if (event.code === 'END')
|
497 | log$5.notice('Finished generating the bundle. Waiting for changes...');
|
498 | else if (event.code === 'ERROR')
|
499 | log$5.error('Recieved an error while bundling!', event.error.message);
|
500 | });
|
501 | return [3 , 13];
|
502 | case 1:
|
503 | log$5.notice('Starting bundle generation...');
|
504 | _f.label = 2;
|
505 | case 2:
|
506 | _f.trys.push([2, 11, , 12]);
|
507 | _a = [];
|
508 | for (_b in params)
|
509 | _a.push(_b);
|
510 | _i = 0;
|
511 | _f.label = 3;
|
512 | case 3:
|
513 | if (!(_i < _a.length)) return [3 , 10];
|
514 | i = _a[_i];
|
515 | log$5.notice('Starting a new section in the bundle...');
|
516 | return [4 , rollup(params[i])];
|
517 | case 4:
|
518 | bundle = _f.sent();
|
519 | output = params[i].output;
|
520 | if (!Array.isArray(output)) {
|
521 | output = [output];
|
522 | }
|
523 | _c = [];
|
524 | for (_d in output)
|
525 | _c.push(_d);
|
526 | _e = 0;
|
527 | _f.label = 5;
|
528 | case 5:
|
529 | if (!(_e < _c.length)) return [3 , 8];
|
530 | x = _c[_e];
|
531 | return [4 , bundle.write(output[x])];
|
532 | case 6:
|
533 | _f.sent();
|
534 | _f.label = 7;
|
535 | case 7:
|
536 | _e++;
|
537 | return [3 , 5];
|
538 | case 8:
|
539 | log$5.notice('Finished bundle section.');
|
540 | _f.label = 9;
|
541 | case 9:
|
542 | _i++;
|
543 | return [3 , 3];
|
544 | case 10: return [3 , 12];
|
545 | case 11:
|
546 | err_1 = _f.sent();
|
547 | log$5.error('Recieved an error while bundling!', err_1.message, err_1);
|
548 | return [3 , 12];
|
549 | case 12:
|
550 | log$5.notice('Finished generating the bundle.');
|
551 | _f.label = 13;
|
552 | case 13: return [2 ];
|
553 | }
|
554 | });
|
555 | }); };
|
556 |
|
557 | var template = "<!DOCTYPE html>\n<html lang=\"en\">\n\t<head>\n\t\t<!-- Set the default title -->\n\t\t<title>Loading...</title>\n\n\t\t<!-- Meta -->\n\t\t<meta charset=\"utf-8\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n\n\t\t<!-- Build script generated by rollup -->\n\t\t<script defer src=\"{appEntry}\"></script>\n\t</head>\n\n\t<body></body>\n</html>\n";
|
558 |
|
559 | var log$6 = debug('actions');
|
560 | function writeTemplate(dir, options) {
|
561 | return __awaiter(this, void 0, void 0, function () {
|
562 | return __generator(this, function (_a) {
|
563 | switch (_a.label) {
|
564 | case 0: return [4 , write(nodePath.join(dir, 'index.html'), pupa(template, options))];
|
565 | case 1:
|
566 | _a.sent();
|
567 | log$6.info("Migrated template to index.html");
|
568 | return [2 ];
|
569 | }
|
570 | });
|
571 | });
|
572 | }
|
573 | function writeJSONBuildOptions(dir, options) {
|
574 | return __awaiter(this, void 0, void 0, function () {
|
575 | return __generator(this, function (_a) {
|
576 | switch (_a.label) {
|
577 | case 0: return [4 , write(nodePath.join(dir, 'build-options.json'), JSON.stringify(options))];
|
578 | case 1:
|
579 | _a.sent();
|
580 | log$6.info("Migrated options to build-options.json");
|
581 | return [2 ];
|
582 | }
|
583 | });
|
584 | });
|
585 | }
|
586 |
|
587 | var pluginCommon = Object.freeze({
|
588 | __proto__: null,
|
589 | writeTemplate: writeTemplate,
|
590 | writeJSONBuildOptions: writeJSONBuildOptions
|
591 | });
|
592 |
|
593 | var logChild = function (errorLog, dataLog, child, fatalLog) {
|
594 | if (fatalLog === void 0) { fatalLog = errorLog; }
|
595 | child.stdout.on('data', function (data) { return dataLog(data.toString().trim()); });
|
596 | child.stderr.on('data', function (data) { return errorLog(data.toString().trim()); });
|
597 | child.on('close', function (code) {
|
598 | if (code)
|
599 | fatalLog("A child process exited with a non-0 exit code.");
|
600 | });
|
601 | process.on('exit', function () {
|
602 | child.kill('SIGINT');
|
603 | });
|
604 | };
|
605 |
|
606 | var configXml = "<?xml version='1.0' encoding='utf-8'?>\n<widget\n\tid=\"{bundleId}\"\n\tversion=\"{version}\"\n\txmlns=\"http://www.w3.org/ns/widgets\"\n\txmlns:cdv=\"http://cordova.apache.org/ns/1.0\"\n>\n\t<name>{name}</name>\n\t<description>{description}</description>\n\t<author email=\"{author.email}\" href=\"{author.url}\">{author.name}</author>\n\t<icon src=\"../../{icon.path}\" />\n\t<content src=\"index.html\" />\n\t<plugin name=\"cordova-plugin-whitelist\" spec=\"\" />\n\t<access origin=\"*\" />\n\t<allow-intent href=\"http://*/*\" />\n\t<allow-intent href=\"https://*/*\" />\n\t<allow-intent href=\"tel:*\" />\n\t<allow-intent href=\"sms:*\" />\n\t<allow-intent href=\"mailto:*\" />\n\t<allow-intent href=\"geo:*\" />\n\t<platform name=\"android\">\n\t\t<allow-intent href=\"market:*\" />\n\t</platform>\n\t<platform name=\"ios\">\n\t\t<allow-intent href=\"itms:*\" />\n\t\t<allow-intent href=\"itms-apps:*\" />\n\t</platform>\n</widget>\n";
|
607 |
|
608 | var log$7 = debug('prepare:cordova');
|
609 | var plugin = (function (options, runnable, platform, appEntry, dir) {
|
610 | var didChangeThings = false;
|
611 | function addCordovaPlatform() {
|
612 | var _this = this;
|
613 | didChangeThings = true;
|
614 | return new Promise(function (resolve) {
|
615 | log$7.notice("Adding cordova-" + platform + "...");
|
616 | var child = spawn(runnable, ["platform", "add", platform], {
|
617 | cwd: dir,
|
618 | });
|
619 | logChild(log$7.error, log$7.info, child);
|
620 | child.on('close', function (code) { return __awaiter(_this, void 0, void 0, function () {
|
621 | return __generator(this, function (_a) {
|
622 | switch (_a.label) {
|
623 | case 0:
|
624 | if (code)
|
625 | log$7.fatal("Failed to add cordova-" + platform + ".");
|
626 | log$7.notice("Done!");
|
627 | return [4 , install()];
|
628 | case 1:
|
629 | _a.sent();
|
630 | resolve();
|
631 | return [2 ];
|
632 | }
|
633 | });
|
634 | }); });
|
635 | function install() {
|
636 | return __awaiter(this, void 0, void 0, function () {
|
637 | var child, errors;
|
638 | return __generator(this, function (_a) {
|
639 | log$7.info("Installing dependencies via npm...");
|
640 | child = spawn("npm", ["install"], {
|
641 | cwd: dir,
|
642 | });
|
643 | errors = [];
|
644 | logChild(function (error) { return errors.push(error); }, function () { }, child);
|
645 | child.on('close', function (code) {
|
646 | if (code) {
|
647 | log$7.error("We are having trouble installing the dependencies.");
|
648 | log$7.error(errors.join('\n'));
|
649 | log$7.fatal("Failed install cordova-" + platform + " from npm.");
|
650 | }
|
651 | log$7.info("Installed dependencies.");
|
652 | resolve();
|
653 | });
|
654 | return [2 ];
|
655 | });
|
656 | });
|
657 | }
|
658 | });
|
659 | }
|
660 | function cordovaPrepare() {
|
661 | return new Promise(function (resolve) {
|
662 | var child = spawn(runnable, ["prepare"], {
|
663 | cwd: dir,
|
664 | });
|
665 | logChild(log$7.error, log$7.notice, child);
|
666 | child.on('close', function (code) {
|
667 | if (code)
|
668 | log$7.fatal("Cordova is having problems with what we are doing. Would you consider opening an issue? " + bugs.url);
|
669 | resolve();
|
670 | });
|
671 | });
|
672 | }
|
673 | return {
|
674 | name: 'cordova',
|
675 | buildStart: function () { return __awaiter(void 0, void 0, void 0, function () {
|
676 | var pkg, actions, platformIsInstalled;
|
677 | return __generator(this, function (_a) {
|
678 | switch (_a.label) {
|
679 | case 0: return [4 , readJSON(dir, 'package.json')];
|
680 | case 1:
|
681 | pkg = _a.sent();
|
682 | actions = [
|
683 | writeTemplate(join(dir, 'www'), { appEntry: appEntry }),
|
684 | writeJSONBuildOptions(dir, options),
|
685 | makeDir(join(dir, 'platforms')),
|
686 | write(join(dir, "config.xml"), pupa(configXml, options)),
|
687 | ];
|
688 | if (!!Object.keys(pkg).length) return [3 , 3];
|
689 | didChangeThings = true;
|
690 | pkg = {
|
691 | name: options.id,
|
692 | };
|
693 | return [4 , write(join(dir, 'package.json'), JSON.stringify(pkg))];
|
694 | case 2:
|
695 | _a.sent();
|
696 | _a.label = 3;
|
697 | case 3:
|
698 | platformIsInstalled = pkg.cordova && pkg.cordova.platforms && pkg.cordova.platforms.find(function (p) { return p === platform; });
|
699 | if (!!platformIsInstalled) return [3 , 5];
|
700 | return [4 , addCordovaPlatform()];
|
701 | case 4:
|
702 | _a.sent();
|
703 | _a.label = 5;
|
704 | case 5:
|
705 | if (!didChangeThings) return [3 , 7];
|
706 | return [4 , cordovaPrepare()];
|
707 | case 6:
|
708 | _a.sent();
|
709 | _a.label = 7;
|
710 | case 7: return [4 , Promise.all(actions)];
|
711 | case 8:
|
712 | _a.sent();
|
713 | return [2 ];
|
714 | }
|
715 | });
|
716 | }); },
|
717 | };
|
718 | });
|
719 |
|
720 |
|
721 |
|
722 | var index = Object.freeze({
|
723 | __proto__: null,
|
724 | plugin: plugin
|
725 | });
|
726 |
|
727 | var log$8 = debug('build');
|
728 | function buildApp(options) {
|
729 | var _this = this;
|
730 | var emitter = new PromiseEmitter();
|
731 | emitter.set(function () { return __awaiter(_this, void 0, Promise, function () {
|
732 | var rollupOptions;
|
733 | return __generator(this, function (_a) {
|
734 | switch (_a.label) {
|
735 | case 0:
|
736 | log$8.notice('Starting build...');
|
737 | return [4 , defaultBuildOptions(options)];
|
738 | case 1:
|
739 | options = _a.sent();
|
740 | return [4 , createOptions(options)];
|
741 | case 2:
|
742 | rollupOptions = _a.sent();
|
743 | return [4 , build(options, rollupOptions)];
|
744 | case 3:
|
745 | _a.sent();
|
746 | return [2 ];
|
747 | }
|
748 | });
|
749 | }); });
|
750 | return emitter;
|
751 | }
|
752 | var logger = {
|
753 | setLevel: setLevel,
|
754 | setLogger: setLogger,
|
755 | };
|
756 |
|
757 | export { buildApp, index as cordovaHelpers, debug, logger, pluginCommon as pluginHelpers };
|