@akylas/nativescript-cli 8.8.2 → 8.8.3
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/lib/android-tools-info.js +9 -20
- package/lib/base-package-manager.js +47 -64
- package/lib/bun-package-manager.js +65 -88
- package/lib/color.js +2 -2
- package/lib/commands/add-platform.js +14 -30
- package/lib/commands/apple-login.js +18 -29
- package/lib/commands/appstore-list.js +34 -45
- package/lib/commands/appstore-upload.js +55 -68
- package/lib/commands/build.js +57 -86
- package/lib/commands/clean.js +161 -176
- package/lib/commands/command-base.js +14 -27
- package/lib/commands/config.js +51 -70
- package/lib/commands/create-project.js +210 -229
- package/lib/commands/debug.js +66 -88
- package/lib/commands/deploy.js +28 -44
- package/lib/commands/embedding/embed.js +33 -52
- package/lib/commands/extensibility/install-extension.js +5 -16
- package/lib/commands/extensibility/list-extensions.js +13 -24
- package/lib/commands/extensibility/uninstall-extension.js +4 -15
- package/lib/commands/fonts.js +30 -41
- package/lib/commands/generate-assets.js +13 -28
- package/lib/commands/generate-help.js +2 -13
- package/lib/commands/generate.js +17 -26
- package/lib/commands/info.js +2 -13
- package/lib/commands/install.js +34 -49
- package/lib/commands/list-platforms.js +14 -25
- package/lib/commands/migrate.js +15 -26
- package/lib/commands/native-add.js +23 -46
- package/lib/commands/platform-clean.js +19 -32
- package/lib/commands/plugin/add-plugin.js +12 -25
- package/lib/commands/plugin/build-plugin.js +34 -39
- package/lib/commands/plugin/create-plugin.js +110 -133
- package/lib/commands/plugin/list-plugins.js +22 -33
- package/lib/commands/plugin/remove-plugin.js +20 -33
- package/lib/commands/plugin/update-plugin.js +20 -33
- package/lib/commands/post-install.js +20 -33
- package/lib/commands/prepare.js +19 -35
- package/lib/commands/preview.js +49 -62
- package/lib/commands/remove-platform.js +7 -18
- package/lib/commands/resources/resources-update.js +13 -26
- package/lib/commands/run.js +55 -76
- package/lib/commands/start.js +6 -19
- package/lib/commands/test-init.js +123 -134
- package/lib/commands/test.js +66 -89
- package/lib/commands/typings.js +126 -142
- package/lib/commands/update-platform.js +22 -35
- package/lib/commands/update.js +30 -43
- package/lib/common/child-process.js +53 -72
- package/lib/common/codeGeneration/code-entity.js +1 -1
- package/lib/common/codeGeneration/code-printer.js +1 -1
- package/lib/common/command-params.js +7 -18
- package/lib/common/commands/analytics.js +27 -40
- package/lib/common/commands/autocompletion.js +39 -56
- package/lib/common/commands/device/device-log-stream.js +12 -23
- package/lib/common/commands/device/get-file.js +22 -33
- package/lib/common/commands/device/list-applications.js +12 -23
- package/lib/common/commands/device/list-devices.js +72 -87
- package/lib/common/commands/device/list-files.js +23 -34
- package/lib/common/commands/device/put-file.js +22 -33
- package/lib/common/commands/device/run-application.js +12 -25
- package/lib/common/commands/device/stop-application.js +11 -22
- package/lib/common/commands/device/uninstall-application.js +6 -17
- package/lib/common/commands/generate-messages.js +17 -28
- package/lib/common/commands/help.js +20 -33
- package/lib/common/commands/package-manager-get.js +6 -17
- package/lib/common/commands/package-manager-set.js +9 -20
- package/lib/common/commands/post-install.js +2 -13
- package/lib/common/commands/preuninstall.js +23 -38
- package/lib/common/commands/proxy/proxy-base.js +8 -19
- package/lib/common/commands/proxy/proxy-clear.js +4 -15
- package/lib/common/commands/proxy/proxy-get.js +3 -14
- package/lib/common/commands/proxy/proxy-set.js +87 -100
- package/lib/common/constants.js +11 -11
- package/lib/common/decorators.js +10 -22
- package/lib/common/dispatchers.js +79 -96
- package/lib/common/errors.js +89 -104
- package/lib/common/file-system.js +106 -127
- package/lib/common/header.js +1 -2
- package/lib/common/helpers.js +149 -178
- package/lib/common/host-info.js +37 -50
- package/lib/common/http-client.js +93 -108
- package/lib/common/logger/appenders/cli-appender.js +1 -2
- package/lib/common/logger/appenders/emit-appender.js +1 -2
- package/lib/common/logger/layouts/cli-layout.js +1 -2
- package/lib/common/logger/logger.js +1 -1
- package/lib/common/mobile/android/android-application-manager.js +121 -142
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
- package/lib/common/mobile/android/android-debug-bridge.js +87 -112
- package/lib/common/mobile/android/android-device-file-system.js +98 -131
- package/lib/common/mobile/android/android-device-hash-service.js +50 -75
- package/lib/common/mobile/android/android-device.js +74 -91
- package/lib/common/mobile/android/android-emulator-services.js +105 -130
- package/lib/common/mobile/android/android-log-filter.js +1 -1
- package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
- package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
- package/lib/common/mobile/android/logcat-helper.js +108 -127
- package/lib/common/mobile/application-manager-base.js +84 -107
- package/lib/common/mobile/device-log-provider-base.js +7 -18
- package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
- package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
- package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
- package/lib/common/mobile/ios/device/ios-device.js +20 -36
- package/lib/common/mobile/ios/ios-device-base.js +58 -81
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
- package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
- package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
- package/lib/common/mobile/mobile-core/devices-service.js +385 -436
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
- package/lib/common/mobile/mobile-helper.js +15 -26
- package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
- package/lib/common/opener.js +2 -2
- package/lib/common/plist-parser.js +2 -2
- package/lib/common/prompter.js +90 -105
- package/lib/common/queue.js +9 -20
- package/lib/common/services/auto-completion-service.js +39 -52
- package/lib/common/services/cancellation.js +17 -28
- package/lib/common/services/commands-service.js +146 -169
- package/lib/common/services/help-service.js +132 -157
- package/lib/common/services/hooks-service.js +93 -108
- package/lib/common/services/ios-notification-service.js +21 -34
- package/lib/common/services/json-file-settings-service.js +52 -71
- package/lib/common/services/lock-service.js +35 -52
- package/lib/common/services/message-contract-generator.js +35 -46
- package/lib/common/services/micro-templating-service.js +4 -15
- package/lib/common/services/net-service.js +90 -107
- package/lib/common/services/project-files-manager.js +10 -23
- package/lib/common/services/proxy-service.js +13 -24
- package/lib/common/services/qr.js +13 -24
- package/lib/common/services/settings-service.js +1 -1
- package/lib/common/services/xcode-select-service.js +20 -35
- package/lib/common/utils.js +2 -2
- package/lib/common/validators/project-name-validator.js +1 -1
- package/lib/common/validators/validation-result.js +1 -1
- package/lib/common/verify-node-version.js +2 -3
- package/lib/common/yok.js +23 -36
- package/lib/config.js +7 -58
- package/lib/constants.js +24 -24
- package/lib/controllers/build-controller.js +82 -99
- package/lib/controllers/debug-controller.js +107 -128
- package/lib/controllers/deploy-controller.js +17 -22
- package/lib/controllers/migrate-controller.js +722 -795
- package/lib/controllers/platform-controller.js +72 -87
- package/lib/controllers/prepare-controller.js +266 -299
- package/lib/controllers/run-controller.js +392 -406
- package/lib/controllers/update-controller-base.js +16 -29
- package/lib/controllers/update-controller.js +94 -119
- package/lib/data/prepare-data.js +4 -1
- package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
- package/lib/definitions/livesync.d.ts +1 -1
- package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
- package/lib/detached-processes/cleanup-process.js +16 -25
- package/lib/device-path-provider.js +23 -34
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
- package/lib/device-sockets/ios/notification.js +1 -1
- package/lib/device-sockets/ios/socket-request-executor.js +24 -39
- package/lib/helpers/android-bundle-validator-helper.js +1 -1
- package/lib/helpers/deploy-command-helper.js +45 -49
- package/lib/helpers/key-command-helper.js +4 -13
- package/lib/helpers/livesync-command-helper.js +137 -152
- package/lib/helpers/network-connectivity-validator.js +6 -17
- package/lib/helpers/options-track-helper.js +6 -17
- package/lib/helpers/platform-command-helper.js +99 -120
- package/lib/key-commands/index.js +161 -211
- package/lib/nativescript-cli.js +5 -14
- package/lib/node-package-manager.js +81 -104
- package/lib/options.js +3 -12
- package/lib/package-installation-manager.js +130 -165
- package/lib/package-manager.js +63 -86
- package/lib/platform-command-param.js +4 -15
- package/lib/pnpm-package-manager.js +59 -78
- package/lib/project-data.js +1 -1
- package/lib/providers/project-files-provider.js +1 -1
- package/lib/services/analytics/analytics-broker-process.js +13 -22
- package/lib/services/analytics/analytics-broker.js +17 -30
- package/lib/services/analytics/analytics-service.js +161 -198
- package/lib/services/analytics/google-analytics-provider.js +41 -56
- package/lib/services/analytics-settings-service.js +15 -32
- package/lib/services/android/android-bundle-tool-service.js +43 -60
- package/lib/services/android/gradle-build-args-service.js +9 -20
- package/lib/services/android/gradle-build-service.js +34 -47
- package/lib/services/android/gradle-command-service.js +22 -35
- package/lib/services/android-device-debug-service.js +90 -117
- package/lib/services/android-plugin-build-service.js +230 -256
- package/lib/services/android-project-service.js +163 -199
- package/lib/services/android-resources-migration-service.js +51 -64
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
- package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
- package/lib/services/assets-generation/assets-generation-service.js +98 -115
- package/lib/services/build-artifacts-service.js +9 -20
- package/lib/services/build-info-file-service.js +20 -35
- package/lib/services/cleanup-service.js +47 -76
- package/lib/services/cocoapods-service.js +115 -136
- package/lib/services/device/device-install-app-service.js +73 -90
- package/lib/services/doctor-service.js +99 -118
- package/lib/services/extensibility-service.js +81 -100
- package/lib/services/files-hash-service.js +26 -43
- package/lib/services/hmr-status-service.js +1 -1
- package/lib/services/initialize-service.js +37 -50
- package/lib/services/ios/export-options-plist-service.js +38 -51
- package/lib/services/ios/ios-signing-service.js +161 -180
- package/lib/services/ios/spm-service.js +40 -53
- package/lib/services/ios/xcodebuild-args-service.js +77 -94
- package/lib/services/ios/xcodebuild-command-service.js +14 -25
- package/lib/services/ios/xcodebuild-service.js +50 -69
- package/lib/services/ios-debugger-port-service.js +23 -36
- package/lib/services/ios-device-debug-service.js +75 -102
- package/lib/services/ios-entitlements-service.js +31 -42
- package/lib/services/ios-extensions-service.js +18 -29
- package/lib/services/ios-project-service.js +405 -460
- package/lib/services/ios-provision-service.js +108 -129
- package/lib/services/ios-watch-app-service.js +21 -32
- package/lib/services/ip-service.js +38 -53
- package/lib/services/itmstransporter-service.js +129 -152
- package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
- package/lib/services/livesync/android-device-livesync-service.js +120 -149
- package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
- package/lib/services/livesync/android-livesync-service.js +14 -35
- package/lib/services/livesync/android-livesync-tool.js +89 -112
- package/lib/services/livesync/device-livesync-service-base.js +15 -28
- package/lib/services/livesync/ios-device-livesync-service.js +114 -143
- package/lib/services/livesync/ios-livesync-service.js +42 -58
- package/lib/services/livesync/platform-livesync-service-base.js +94 -119
- package/lib/services/log-parser-service.js +1 -1
- package/lib/services/log-source-map-service.js +30 -41
- package/lib/services/marking-mode-service.js +15 -28
- package/lib/services/npm-config-service.js +1 -1
- package/lib/services/pacote-service.js +49 -64
- package/lib/services/performance-service.js +1 -1
- package/lib/services/platform/add-platform-service.js +50 -71
- package/lib/services/platform/platform-validation-service.js +22 -33
- package/lib/services/platform/prepare-native-platform-service.js +49 -62
- package/lib/services/platform-environment-requirements.js +26 -37
- package/lib/services/plugins-service.js +122 -147
- package/lib/services/project-backup-service.js +1 -1
- package/lib/services/project-changes-service.js +124 -141
- package/lib/services/project-cleanup-service.js +64 -77
- package/lib/services/project-config-service.js +71 -80
- package/lib/services/project-data-service.js +101 -118
- package/lib/services/project-name-service.js +28 -43
- package/lib/services/project-service.js +84 -103
- package/lib/services/project-templates-service.js +52 -67
- package/lib/services/start-service.js +41 -59
- package/lib/services/temp-service.js +8 -21
- package/lib/services/terminal-spinner-service.js +13 -24
- package/lib/services/test-execution-service.js +59 -72
- package/lib/services/test-initialization-service.js +2 -2
- package/lib/services/timeline-profiler-service.js +1 -1
- package/lib/services/versions-service.js +119 -138
- package/lib/services/webpack/webpack-compiler-service.js +211 -231
- package/lib/services/xcconfig-service.js +8 -19
- package/lib/sys-info.js +45 -62
- package/lib/tools/node-modules/node-modules-builder.js +16 -27
- package/lib/yarn-package-manager.js +59 -78
- package/lib/yarn2-package-manager.js +60 -79
- package/package.json +57 -55
- package/vendor/aab-tool/bundletool.jar +0 -0
- package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
- package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
- package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
- package/lib/common/resources/platform-tools/android/linux/adb +0 -0
- package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
- package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
- package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
- package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
- package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
|
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
9
|
exports.WebpackCompilerService = void 0;
|
|
19
10
|
const path = require("path");
|
|
@@ -41,196 +32,189 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
41
32
|
this.webpackProcesses = {};
|
|
42
33
|
this.expectedHashes = {};
|
|
43
34
|
}
|
|
44
|
-
compileWithWatch(platformData, projectData, prepareData) {
|
|
45
|
-
return
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
isFirstWebpackWatchCompilation = false;
|
|
68
|
-
resolve(childProcess);
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
return this.handleHMRMessage(message, platformData, projectData, prepareData);
|
|
72
|
-
}
|
|
73
|
-
if (message === "Webpack compilation complete.") {
|
|
74
|
-
this.$logger.info("Webpack build done!");
|
|
35
|
+
async compileWithWatch(platformData, projectData, prepareData) {
|
|
36
|
+
return new Promise(async (resolve, reject) => {
|
|
37
|
+
if (this.webpackProcesses[platformData.platformNameLowerCase]) {
|
|
38
|
+
resolve(void 0);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
let isFirstWebpackWatchCompilation = true;
|
|
42
|
+
prepareData.watch = true;
|
|
43
|
+
try {
|
|
44
|
+
const childProcess = await this.startWebpackProcess(platformData, projectData, prepareData);
|
|
45
|
+
childProcess.stdout.on("data", function (data) {
|
|
46
|
+
process.stdout.write(data);
|
|
47
|
+
});
|
|
48
|
+
childProcess.stderr.on("data", function (data) {
|
|
49
|
+
process.stderr.write(data);
|
|
50
|
+
});
|
|
51
|
+
childProcess.on("message", (message) => {
|
|
52
|
+
this.$logger.trace("Message from webpack", message);
|
|
53
|
+
if (typeof message === "object" &&
|
|
54
|
+
"version" in message &&
|
|
55
|
+
"type" in message) {
|
|
56
|
+
if (isFirstWebpackWatchCompilation) {
|
|
57
|
+
isFirstWebpackWatchCompilation = false;
|
|
75
58
|
resolve(childProcess);
|
|
59
|
+
return;
|
|
76
60
|
}
|
|
77
|
-
message
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
else {
|
|
91
|
-
result = {
|
|
92
|
-
emittedFiles: message.emittedFiles,
|
|
93
|
-
fallbackFiles: [],
|
|
94
|
-
hash: "",
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
const files = result.emittedFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
98
|
-
const fallbackFiles = result.fallbackFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
99
|
-
const data = {
|
|
100
|
-
files,
|
|
101
|
-
hasOnlyHotUpdateFiles: files.every((f) => f.indexOf("hot-update") > -1),
|
|
102
|
-
hmrData: {
|
|
103
|
-
hash: result.hash,
|
|
104
|
-
fallbackFiles,
|
|
105
|
-
},
|
|
106
|
-
platform: platformData.platformNameLowerCase,
|
|
107
|
-
};
|
|
108
|
-
this.$logger.trace("Generated data from webpack message:", data);
|
|
109
|
-
if (data.hasOnlyHotUpdateFiles && previousHash === message.hash) {
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (data.files.length) {
|
|
113
|
-
this.emit(constants_1.WEBPACK_COMPILATION_COMPLETE, data);
|
|
114
|
-
}
|
|
61
|
+
return this.handleHMRMessage(message, platformData, projectData, prepareData);
|
|
62
|
+
}
|
|
63
|
+
if (message === "Webpack compilation complete.") {
|
|
64
|
+
this.$logger.info("Webpack build done!");
|
|
65
|
+
resolve(childProcess);
|
|
66
|
+
}
|
|
67
|
+
message = message;
|
|
68
|
+
if (message.emittedFiles) {
|
|
69
|
+
if (isFirstWebpackWatchCompilation) {
|
|
70
|
+
isFirstWebpackWatchCompilation = false;
|
|
71
|
+
this.expectedHashes[platformData.platformNameLowerCase] =
|
|
72
|
+
prepareData.hmr ? message.hash : "";
|
|
73
|
+
return;
|
|
115
74
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
reject(err);
|
|
121
|
-
});
|
|
122
|
-
childProcess.on("close", (arg) => __awaiter(this, void 0, void 0, function* () {
|
|
123
|
-
yield this.$cleanupService.removeKillProcess(childProcess.pid.toString());
|
|
124
|
-
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
125
|
-
this.$logger.trace(`Webpack process exited with code ${exitCode} when we expected it to be long living with watch.`);
|
|
126
|
-
const error = new Error(`Executing webpack failed with exit code ${exitCode}.`);
|
|
127
|
-
error.code = exitCode;
|
|
128
|
-
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
129
|
-
reject(error);
|
|
130
|
-
}));
|
|
131
|
-
}
|
|
132
|
-
catch (err) {
|
|
133
|
-
reject(err);
|
|
134
|
-
}
|
|
135
|
-
}));
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
compileWithoutWatch(platformData, projectData, prepareData) {
|
|
139
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
-
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
141
|
-
if (this.webpackProcesses[platformData.platformNameLowerCase]) {
|
|
142
|
-
resolve();
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
try {
|
|
146
|
-
const childProcess = yield this.startWebpackProcess(platformData, projectData, prepareData);
|
|
147
|
-
childProcess.on("error", (err) => {
|
|
148
|
-
this.$logger.trace(`Unable to start webpack process in non-watch mode. Error is: ${err}`);
|
|
149
|
-
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
150
|
-
reject(err);
|
|
151
|
-
});
|
|
152
|
-
childProcess.on("close", (arg) => __awaiter(this, void 0, void 0, function* () {
|
|
153
|
-
yield this.$cleanupService.removeKillProcess(childProcess.pid.toString());
|
|
154
|
-
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
155
|
-
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
156
|
-
if (exitCode === 0) {
|
|
157
|
-
resolve();
|
|
75
|
+
const previousHash = this.expectedHashes[platformData.platformNameLowerCase];
|
|
76
|
+
let result;
|
|
77
|
+
if (prepareData.hmr) {
|
|
78
|
+
result = this.getUpdatedEmittedFiles(message.emittedFiles, message.chunkFiles, message.hash, platformData.platformNameLowerCase);
|
|
158
79
|
}
|
|
159
80
|
else {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
81
|
+
result = {
|
|
82
|
+
emittedFiles: message.emittedFiles,
|
|
83
|
+
fallbackFiles: [],
|
|
84
|
+
hash: "",
|
|
85
|
+
};
|
|
163
86
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
87
|
+
const files = result.emittedFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
88
|
+
const fallbackFiles = result.fallbackFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
89
|
+
const data = {
|
|
90
|
+
files,
|
|
91
|
+
hasOnlyHotUpdateFiles: files.every((f) => f.indexOf("hot-update") > -1),
|
|
92
|
+
hmrData: {
|
|
93
|
+
hash: result.hash,
|
|
94
|
+
fallbackFiles,
|
|
95
|
+
},
|
|
96
|
+
platform: platformData.platformNameLowerCase,
|
|
97
|
+
};
|
|
98
|
+
this.$logger.trace("Generated data from webpack message:", data);
|
|
99
|
+
if (data.hasOnlyHotUpdateFiles && previousHash === message.hash) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (data.files.length) {
|
|
103
|
+
this.emit(constants_1.WEBPACK_COMPILATION_COMPLETE, data);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
childProcess.on("error", (err) => {
|
|
108
|
+
this.$logger.trace(`Unable to start webpack process in watch mode. Error is: ${err}`);
|
|
109
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
167
110
|
reject(err);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
111
|
+
});
|
|
112
|
+
childProcess.on("close", async (arg) => {
|
|
113
|
+
await this.$cleanupService.removeKillProcess(childProcess.pid.toString());
|
|
114
|
+
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
115
|
+
this.$logger.trace(`Webpack process exited with code ${exitCode} when we expected it to be long living with watch.`);
|
|
116
|
+
const error = new Error(`Executing webpack failed with exit code ${exitCode}.`);
|
|
117
|
+
error.code = exitCode;
|
|
118
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
119
|
+
reject(error);
|
|
120
|
+
});
|
|
176
121
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
for (let i = 0; i < webpackedPlatforms.length; i++) {
|
|
180
|
-
yield this.stopWebpackForPlatform(webpackedPlatforms[i]);
|
|
181
|
-
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
reject(err);
|
|
182
124
|
}
|
|
183
125
|
});
|
|
184
126
|
}
|
|
185
|
-
|
|
186
|
-
return
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
startWebpackProcess(platformData, projectData, prepareData) {
|
|
193
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
194
|
-
if (!this.$fs.exists(projectData.webpackConfigPath)) {
|
|
195
|
-
this.$errors.fail(`The webpack configuration file ${projectData.webpackConfigPath} does not exist. Ensure the file exists, or update the path in ${constants_1.CONFIG_FILE_NAME_DISPLAY}.`);
|
|
196
|
-
}
|
|
197
|
-
const envData = this.buildEnvData(platformData.platformNameLowerCase, projectData, prepareData);
|
|
198
|
-
const envParams = yield this.buildEnvCommandLineParams(envData, platformData, projectData, prepareData);
|
|
199
|
-
const additionalNodeArgs = semver.major(process.version) <= 8 ? ["--harmony"] : [];
|
|
200
|
-
if (yield this.shouldUsePreserveSymlinksOption()) {
|
|
201
|
-
additionalNodeArgs.push("--preserve-symlinks");
|
|
202
|
-
}
|
|
203
|
-
if (process.arch === "x64") {
|
|
204
|
-
additionalNodeArgs.unshift("--max_old_space_size=4096");
|
|
127
|
+
async compileWithoutWatch(platformData, projectData, prepareData) {
|
|
128
|
+
return new Promise(async (resolve, reject) => {
|
|
129
|
+
if (this.webpackProcesses[platformData.platformNameLowerCase]) {
|
|
130
|
+
resolve();
|
|
131
|
+
return;
|
|
205
132
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
133
|
+
try {
|
|
134
|
+
const childProcess = await this.startWebpackProcess(platformData, projectData, prepareData);
|
|
135
|
+
childProcess.on("error", (err) => {
|
|
136
|
+
this.$logger.trace(`Unable to start webpack process in non-watch mode. Error is: ${err}`);
|
|
137
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
138
|
+
reject(err);
|
|
139
|
+
});
|
|
140
|
+
childProcess.on("close", async (arg) => {
|
|
141
|
+
await this.$cleanupService.removeKillProcess(childProcess.pid.toString());
|
|
142
|
+
delete this.webpackProcesses[platformData.platformNameLowerCase];
|
|
143
|
+
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
144
|
+
if (exitCode === 0) {
|
|
145
|
+
resolve();
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
const error = new Error(`Executing webpack failed with exit code ${exitCode}.`);
|
|
149
|
+
error.code = exitCode;
|
|
150
|
+
reject(error);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
215
153
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
cwd: projectData.projectDir,
|
|
219
|
-
stdio,
|
|
220
|
-
};
|
|
221
|
-
if (this.$options.hostProjectPath) {
|
|
222
|
-
options.env = {
|
|
223
|
-
USER_PROJECT_PLATFORMS_ANDROID: this.$options.hostProjectPath,
|
|
224
|
-
USER_PROJECT_PLATFORMS_ANDROID_MODULE: this.$options.hostProjectModuleName,
|
|
225
|
-
USER_PROJECT_PLATFORMS_IOS: this.$options.hostProjectPath,
|
|
226
|
-
};
|
|
154
|
+
catch (err) {
|
|
155
|
+
reject(err);
|
|
227
156
|
}
|
|
228
|
-
const childProcess = this.$childProcess.spawn(process.execPath, args, options);
|
|
229
|
-
this.webpackProcesses[platformData.platformNameLowerCase] = childProcess;
|
|
230
|
-
yield this.$cleanupService.addKillProcess(childProcess.pid.toString());
|
|
231
|
-
return childProcess;
|
|
232
157
|
});
|
|
233
158
|
}
|
|
159
|
+
async stopWebpackCompiler(platform) {
|
|
160
|
+
if (platform) {
|
|
161
|
+
await this.stopWebpackForPlatform(platform);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
const webpackedPlatforms = Object.keys(this.webpackProcesses);
|
|
165
|
+
for (let i = 0; i < webpackedPlatforms.length; i++) {
|
|
166
|
+
await this.stopWebpackForPlatform(webpackedPlatforms[i]);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async shouldUsePreserveSymlinksOption() {
|
|
171
|
+
const currentPackageManager = await this.$packageManager.getPackageManagerName();
|
|
172
|
+
const res = currentPackageManager !== constants_1.PackageManagers.pnpm;
|
|
173
|
+
return res;
|
|
174
|
+
}
|
|
175
|
+
async startWebpackProcess(platformData, projectData, prepareData) {
|
|
176
|
+
if (!this.$fs.exists(projectData.webpackConfigPath)) {
|
|
177
|
+
this.$errors.fail(`The webpack configuration file ${projectData.webpackConfigPath} does not exist. Ensure the file exists, or update the path in ${constants_1.CONFIG_FILE_NAME_DISPLAY}.`);
|
|
178
|
+
}
|
|
179
|
+
const envData = this.buildEnvData(platformData.platformNameLowerCase, projectData, prepareData);
|
|
180
|
+
const envParams = await this.buildEnvCommandLineParams(envData, platformData, projectData, prepareData);
|
|
181
|
+
const additionalNodeArgs = semver.major(process.version) <= 8 ? ["--harmony"] : [];
|
|
182
|
+
if (await this.shouldUsePreserveSymlinksOption()) {
|
|
183
|
+
additionalNodeArgs.push("--preserve-symlinks");
|
|
184
|
+
}
|
|
185
|
+
if (process.arch === "x64") {
|
|
186
|
+
additionalNodeArgs.unshift("--max_old_space_size=4096");
|
|
187
|
+
}
|
|
188
|
+
const args = [
|
|
189
|
+
...additionalNodeArgs,
|
|
190
|
+
this.getWebpackExecutablePath(projectData),
|
|
191
|
+
this.isWebpack5(projectData) ? `build` : null,
|
|
192
|
+
`--config=${projectData.webpackConfigPath}`,
|
|
193
|
+
...envParams,
|
|
194
|
+
].filter(Boolean);
|
|
195
|
+
if (prepareData.watch) {
|
|
196
|
+
args.push("--watch");
|
|
197
|
+
}
|
|
198
|
+
const stdio = prepareData.watch ? ["ipc"] : "inherit";
|
|
199
|
+
const options = {
|
|
200
|
+
cwd: projectData.projectDir,
|
|
201
|
+
stdio,
|
|
202
|
+
};
|
|
203
|
+
options.env = {
|
|
204
|
+
NATIVESCRIPT_WEBPACK_ENV: JSON.stringify(envData)
|
|
205
|
+
};
|
|
206
|
+
if (this.$options.hostProjectPath) {
|
|
207
|
+
Object.assign(options.env, {
|
|
208
|
+
USER_PROJECT_PLATFORMS_ANDROID: this.$options.hostProjectPath,
|
|
209
|
+
USER_PROJECT_PLATFORMS_ANDROID_MODULE: this.$options.hostProjectModuleName,
|
|
210
|
+
USER_PROJECT_PLATFORMS_IOS: this.$options.hostProjectPath,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
const childProcess = this.$childProcess.spawn(process.execPath, args, options);
|
|
214
|
+
this.webpackProcesses[platformData.platformNameLowerCase] = childProcess;
|
|
215
|
+
await this.$cleanupService.addKillProcess(childProcess.pid.toString());
|
|
216
|
+
return childProcess;
|
|
217
|
+
}
|
|
234
218
|
buildEnvData(platform, projectData, prepareData) {
|
|
235
219
|
var _a, _b, _c;
|
|
236
220
|
const { env } = prepareData;
|
|
@@ -259,48 +243,46 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
259
243
|
}
|
|
260
244
|
return envData;
|
|
261
245
|
}
|
|
262
|
-
buildEnvCommandLineParams(envData, platformData, projectData, prepareData) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
if (
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
envFlagNames.splice(envFlagNames.indexOf("snapshot"), 1);
|
|
272
|
-
}
|
|
273
|
-
else if (this.$hostInfo.isWindows) {
|
|
274
|
-
const minWebpackPluginWithWinSnapshotsVersion = "1.3.0";
|
|
275
|
-
const installedWebpackPluginVersion = yield this.$packageInstallationManager.getInstalledDependencyVersion(constants_1.WEBPACK_PLUGIN_NAME, projectData.projectDir);
|
|
276
|
-
const hasWebpackPluginWithWinSnapshotsSupport = !!installedWebpackPluginVersion
|
|
277
|
-
? semver.gte(semver.coerce(installedWebpackPluginVersion), minWebpackPluginWithWinSnapshotsVersion)
|
|
278
|
-
: true;
|
|
279
|
-
if (!hasWebpackPluginWithWinSnapshotsSupport) {
|
|
280
|
-
this.$errors.fail(`In order to generate Snapshots on Windows, please upgrade your Webpack plugin version (npm i ${constants_1.WEBPACK_PLUGIN_NAME}@latest).`);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
246
|
+
async buildEnvCommandLineParams(envData, platformData, projectData, prepareData) {
|
|
247
|
+
const envFlagNames = Object.keys(envData);
|
|
248
|
+
const canSnapshot = prepareData.release &&
|
|
249
|
+
this.$mobileHelper.isAndroidPlatform(platformData.normalizedPlatformName);
|
|
250
|
+
if (envData && envData.snapshot) {
|
|
251
|
+
if (!canSnapshot) {
|
|
252
|
+
this.$logger.warn("Stripping the snapshot flag. " +
|
|
253
|
+
"Bear in mind that snapshot is only available in Android release builds.");
|
|
254
|
+
envFlagNames.splice(envFlagNames.indexOf("snapshot"), 1);
|
|
283
255
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
256
|
+
else if (this.$hostInfo.isWindows) {
|
|
257
|
+
const minWebpackPluginWithWinSnapshotsVersion = "1.3.0";
|
|
258
|
+
const installedWebpackPluginVersion = await this.$packageInstallationManager.getInstalledDependencyVersion(constants_1.WEBPACK_PLUGIN_NAME, projectData.projectDir);
|
|
259
|
+
const hasWebpackPluginWithWinSnapshotsSupport = !!installedWebpackPluginVersion
|
|
260
|
+
? semver.gte(semver.coerce(installedWebpackPluginVersion), minWebpackPluginWithWinSnapshotsVersion)
|
|
261
|
+
: true;
|
|
262
|
+
if (!hasWebpackPluginWithWinSnapshotsSupport) {
|
|
263
|
+
this.$errors.fail(`In order to generate Snapshots on Windows, please upgrade your Webpack plugin version (npm i ${constants_1.WEBPACK_PLUGIN_NAME}@latest).`);
|
|
289
264
|
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
const args = [];
|
|
268
|
+
envFlagNames.map((item) => {
|
|
269
|
+
let envValue = envData[item];
|
|
270
|
+
if (typeof envValue === "undefined") {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
if (typeof envValue === "boolean") {
|
|
274
|
+
if (envValue) {
|
|
275
|
+
args.push(`--env.${item}`);
|
|
294
276
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
envValue.map((value) => args.push(`--env.${item}=${value}`));
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
if (!Array.isArray(envValue)) {
|
|
280
|
+
envValue = [envValue];
|
|
300
281
|
}
|
|
301
|
-
|
|
302
|
-
|
|
282
|
+
envValue.map((value) => args.push(`--env.${item}=${value}`));
|
|
283
|
+
}
|
|
303
284
|
});
|
|
285
|
+
return args;
|
|
304
286
|
}
|
|
305
287
|
getUpdatedEmittedFiles(allEmittedFiles, chunkFiles, nextHash, platform) {
|
|
306
288
|
const currentHash = this.getCurrentHotUpdateHash(allEmittedFiles);
|
|
@@ -329,16 +311,14 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
329
311
|
}
|
|
330
312
|
return hotHash || "";
|
|
331
313
|
}
|
|
332
|
-
stopWebpackForPlatform(platform) {
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
}
|
|
341
|
-
});
|
|
314
|
+
async stopWebpackForPlatform(platform) {
|
|
315
|
+
this.$logger.trace(`Stopping webpack watch for platform ${platform}.`);
|
|
316
|
+
const webpackProcess = this.webpackProcesses[platform];
|
|
317
|
+
await this.$cleanupService.removeKillProcess(webpackProcess.pid.toString());
|
|
318
|
+
if (webpackProcess) {
|
|
319
|
+
webpackProcess.kill("SIGINT");
|
|
320
|
+
delete this.webpackProcesses[platform];
|
|
321
|
+
}
|
|
342
322
|
}
|
|
343
323
|
handleHMRMessage(message, platformData, projectData, prepareData) {
|
|
344
324
|
this.$logger.trace("Received message from webpack process:", message);
|
|
@@ -406,8 +386,8 @@ class WebpackCompilerService extends events_1.EventEmitter {
|
|
|
406
386
|
return false;
|
|
407
387
|
}
|
|
408
388
|
}
|
|
389
|
+
exports.WebpackCompilerService = WebpackCompilerService;
|
|
409
390
|
__decorate([
|
|
410
391
|
(0, decorators_1.performanceLog)()
|
|
411
392
|
], WebpackCompilerService.prototype, "startWebpackProcess", null);
|
|
412
|
-
exports.WebpackCompilerService = WebpackCompilerService;
|
|
413
393
|
yok_1.injector.register("webpackCompilerService", WebpackCompilerService);
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.XcconfigService = void 0;
|
|
13
4
|
const path = require("path");
|
|
@@ -30,22 +21,20 @@ class XcconfigService {
|
|
|
30
21
|
getPluginsReleaseXcconfigFilePath(projectRoot) {
|
|
31
22
|
return path.join(projectRoot, "plugins-release.xcconfig");
|
|
32
23
|
}
|
|
33
|
-
mergeFiles(sourceFile, destinationFile) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const mergeScript = `require 'xcodeproj';
|
|
24
|
+
async mergeFiles(sourceFile, destinationFile) {
|
|
25
|
+
if (!this.$fs.exists(destinationFile)) {
|
|
26
|
+
this.$fs.writeFile(destinationFile, "");
|
|
27
|
+
}
|
|
28
|
+
const escapedDestinationFile = destinationFile.replace(/'/g, "\\'");
|
|
29
|
+
const escapedSourceFile = sourceFile.replace(/'/g, "\\'");
|
|
30
|
+
const mergeScript = `require 'xcodeproj';
|
|
41
31
|
userConfig = Xcodeproj::Config.new('${escapedDestinationFile}')
|
|
42
32
|
existingConfig = Xcodeproj::Config.new('${escapedSourceFile}')
|
|
43
33
|
userConfig.attributes.each do |key,|
|
|
44
34
|
existingConfig.attributes.delete(key) if (userConfig.attributes.key?(key) && existingConfig.attributes.key?(key))
|
|
45
35
|
end
|
|
46
36
|
userConfig.merge(existingConfig).save_as(Pathname.new('${escapedDestinationFile}'))`;
|
|
47
|
-
|
|
48
|
-
});
|
|
37
|
+
await this.$childProcess.exec(`ruby -e "${mergeScript}"`);
|
|
49
38
|
}
|
|
50
39
|
readPropertyValue(xcconfigFilePath, propertyName) {
|
|
51
40
|
if (this.$fs.exists(xcconfigFilePath)) {
|