app-builder-lib 26.7.0 → 26.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/out/codeSign/windowsSignToolManager.d.ts +4 -5
  2. package/out/codeSign/windowsSignToolManager.js +76 -86
  3. package/out/codeSign/windowsSignToolManager.js.map +1 -1
  4. package/out/configuration.d.ts +34 -0
  5. package/out/configuration.js.map +1 -1
  6. package/out/index.d.ts +1 -1
  7. package/out/index.js.map +1 -1
  8. package/out/linuxPackager.js +1 -1
  9. package/out/linuxPackager.js.map +1 -1
  10. package/out/node-module-collector/index.d.ts +1 -8
  11. package/out/node-module-collector/index.js +0 -5
  12. package/out/node-module-collector/index.js.map +1 -1
  13. package/out/node-module-collector/moduleManager.d.ts +15 -0
  14. package/out/node-module-collector/moduleManager.js +50 -1
  15. package/out/node-module-collector/moduleManager.js.map +1 -1
  16. package/out/node-module-collector/nodeModulesCollector.d.ts +10 -10
  17. package/out/node-module-collector/nodeModulesCollector.js +12 -16
  18. package/out/node-module-collector/nodeModulesCollector.js.map +1 -1
  19. package/out/node-module-collector/npmNodeModulesCollector.js +15 -8
  20. package/out/node-module-collector/npmNodeModulesCollector.js.map +1 -1
  21. package/out/node-module-collector/pnpmNodeModulesCollector.d.ts +0 -1
  22. package/out/node-module-collector/pnpmNodeModulesCollector.js +2 -6
  23. package/out/node-module-collector/pnpmNodeModulesCollector.js.map +1 -1
  24. package/out/node-module-collector/traversalNodeModulesCollector.js +10 -7
  25. package/out/node-module-collector/traversalNodeModulesCollector.js.map +1 -1
  26. package/out/node-module-collector/types.d.ts +0 -4
  27. package/out/node-module-collector/types.js.map +1 -1
  28. package/out/node-module-collector/yarnNodeModulesCollector.d.ts +4 -10
  29. package/out/node-module-collector/yarnNodeModulesCollector.js +7 -197
  30. package/out/node-module-collector/yarnNodeModulesCollector.js.map +1 -1
  31. package/out/targets/AppxTarget.js +8 -7
  32. package/out/targets/AppxTarget.js.map +1 -1
  33. package/out/targets/FpmTarget.js +3 -3
  34. package/out/targets/FpmTarget.js.map +1 -1
  35. package/out/targets/MsiWrappedTarget.js +4 -3
  36. package/out/targets/MsiWrappedTarget.js.map +1 -1
  37. package/out/targets/appimage/AppImageTarget.d.ts +16 -0
  38. package/out/targets/{AppImageTarget.js → appimage/AppImageTarget.js} +65 -28
  39. package/out/targets/appimage/AppImageTarget.js.map +1 -0
  40. package/out/targets/appimage/appImageUtil.d.ts +23 -0
  41. package/out/targets/appimage/appImageUtil.js +266 -0
  42. package/out/targets/appimage/appImageUtil.js.map +1 -0
  43. package/out/targets/appimage/appLauncher.d.ts +3 -0
  44. package/out/targets/appimage/appLauncher.js +91 -0
  45. package/out/targets/appimage/appLauncher.js.map +1 -0
  46. package/out/targets/archive.js +2 -2
  47. package/out/targets/archive.js.map +1 -1
  48. package/out/toolsets/linux.d.ts +9 -0
  49. package/out/toolsets/linux.js +68 -0
  50. package/out/toolsets/linux.js.map +1 -0
  51. package/out/toolsets/windows.d.ts +42 -0
  52. package/out/toolsets/windows.js +143 -0
  53. package/out/toolsets/windows.js.map +1 -0
  54. package/out/util/appFileCopier.js +39 -28
  55. package/out/util/appFileCopier.js.map +1 -1
  56. package/out/util/packageMetadata.js +9 -5
  57. package/out/util/packageMetadata.js.map +1 -1
  58. package/out/version.d.ts +1 -1
  59. package/out/version.js +1 -1
  60. package/out/version.js.map +1 -1
  61. package/out/winPackager.js +4 -3
  62. package/out/winPackager.js.map +1 -1
  63. package/package.json +8 -8
  64. package/scheme.json +51 -0
  65. package/out/targets/AppImageTarget.d.ts +0 -14
  66. package/out/targets/AppImageTarget.js.map +0 -1
  67. package/out/targets/tools.d.ts +0 -2
  68. package/out/targets/tools.js +0 -46
  69. package/out/targets/tools.js.map +0 -1
@@ -1,211 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.YarnNodeModulesCollector = void 0;
4
- const builder_util_1 = require("builder-util");
5
- const lazy_val_1 = require("lazy-val");
6
- const path = require("path");
7
- const nodeModulesCollector_1 = require("./nodeModulesCollector");
4
+ const npmNodeModulesCollector_1 = require("./npmNodeModulesCollector");
8
5
  const packageManager_1 = require("./packageManager");
9
- class YarnNodeModulesCollector extends nodeModulesCollector_1.NodeModulesCollector {
6
+ // Yarn Classic (v1) produces a hoisted node_modules structure similar to npm.
7
+ // Instead of parsing Yarn's custom NDJSON output, we leverage npm's list command
8
+ // which NpmNodeModulesCollector already handles.
9
+ class YarnNodeModulesCollector extends npmNodeModulesCollector_1.NpmNodeModulesCollector {
10
10
  constructor() {
11
11
  super(...arguments);
12
12
  this.installOptions = {
13
13
  manager: packageManager_1.PM.YARN,
14
14
  lockfile: "yarn.lock",
15
15
  };
16
- this.isHoisted = new lazy_val_1.Lazy(async () => {
17
- return Promise.resolve(true); // Yarn Classic always hoists
18
- });
19
16
  }
20
- getArgs() {
21
- return ["list", "--production", "--json", "--depth=Infinity", "--no-progress"];
22
- }
23
- async extractProductionDependencyGraph(tree, dependencyId) {
24
- if (this.productionGraph[dependencyId]) {
25
- return;
26
- }
27
- const productionDeps = Object.entries(tree.dependencies || {}).map(async ([, dependency]) => {
28
- const dep = {
29
- ...dependency,
30
- path: await this.cache.realPath[dependency.path],
31
- };
32
- const childDependencyId = this.packageVersionString(dep);
33
- await this.extractProductionDependencyGraph(dep, childDependencyId);
34
- return childDependencyId;
35
- });
36
- const dependencies = [];
37
- for (const dep of productionDeps) {
38
- dependencies.push(await dep);
39
- }
40
- this.productionGraph[dependencyId] = { dependencies };
41
- }
42
- async parseDependenciesTree(jsonBlob) {
43
- const lines = jsonBlob
44
- .split("\n")
45
- .map(l => l.trim())
46
- .filter(Boolean)
47
- .map(l => {
48
- try {
49
- return JSON.parse(l);
50
- }
51
- catch {
52
- return undefined;
53
- }
54
- })
55
- .filter(Boolean);
56
- const parsedTree = lines
57
- .filter(l => l.type === "tree")
58
- .map(l => l.data.trees)
59
- .shift();
60
- if (!parsedTree) {
61
- throw new Error('Failed to extract Yarn tree: no "type":"tree" line found in console output');
62
- }
63
- const rootPkgJson = (await this.cache.json[path.join(this.rootDir, "package.json")]);
64
- const normalizedTree = await this.normalizeTree({ tree: parsedTree, seen: new Set(), appName: rootPkgJson.name, parentPath: this.rootDir });
65
- const dependencies = {};
66
- for (const [name, dep] of Object.entries(normalizedTree)) {
67
- dependencies[name] = dep;
68
- }
69
- return Promise.resolve({
70
- name: rootPkgJson.name,
71
- version: rootPkgJson.version,
72
- path: this.rootDir,
73
- dependencies,
74
- workspaces: rootPkgJson === null || rootPkgJson === void 0 ? void 0 : rootPkgJson.workspaces,
75
- });
76
- }
77
- async normalizeTree(options) {
78
- const { tree, seen, appName, parentPath = this.rootDir } = options;
79
- const normalized = {};
80
- for (const node of tree) {
81
- const match = node.name.match(/^(.*)@([^@]+)$/);
82
- if (!match) {
83
- builder_util_1.log.debug({ name: node.name }, "invalid node name format");
84
- continue;
85
- }
86
- const [, pkgName, version] = match;
87
- const id = `${pkgName}@${version}`;
88
- const isShadow = node.shadow && node.color === "dim";
89
- if (isShadow) {
90
- builder_util_1.log.debug({ pkgName, version }, "registering shadow node (hoisted elsewhere), will resolve");
91
- }
92
- if (seen.has(id)) {
93
- continue;
94
- }
95
- // Find the correct package path that matches the required version
96
- const pkg = await this.locatePackageWithVersion({ name: pkgName, version, path: parentPath });
97
- const pkgPath = pkg === null || pkg === void 0 ? void 0 : pkg.packageDir;
98
- if (!pkgPath) {
99
- builder_util_1.log.warn({ pkgName, version, parentPath }, "could not find package matching version");
100
- continue;
101
- }
102
- seen.add(id);
103
- const normalizedDep = {
104
- name: pkgName,
105
- version,
106
- path: pkgPath,
107
- dependencies: {},
108
- optionalDependencies: {},
109
- };
110
- // Recursively process children, passing this package's info
111
- if (node.children && node.children.length > 0) {
112
- const childDeps = await this.normalizeTree({
113
- tree: node.children,
114
- seen,
115
- appName,
116
- parentPath: pkgPath,
117
- });
118
- for (const [childDepName, childDep] of Object.entries(childDeps)) {
119
- normalizedDep.dependencies[childDepName] = childDep;
120
- }
121
- }
122
- normalized[pkgName] = normalizedDep;
123
- }
124
- return normalized;
125
- }
126
- async collectAllDependencies(tree, packageToExclude) {
127
- const rootPkgJson = (await this.cache.json[path.join(this.rootDir, "package.json")]);
128
- const failedPackages = new Set();
129
- const collect = async (deps = {}, isOptionalDependency, parentIsOptional = false) => {
130
- var _a, _b, _c, _d;
131
- for (const [, value] of Object.entries(deps)) {
132
- const isRootOptional = !!((_a = rootPkgJson.optionalDependencies) === null || _a === void 0 ? void 0 : _a[value.name]);
133
- const isDirectRootDep = ((_b = rootPkgJson.dependencies) === null || _b === void 0 ? void 0 : _b[value.name]) || ((_c = rootPkgJson.optionalDependencies) === null || _c === void 0 ? void 0 : _c[value.name]) || ((_d = rootPkgJson.devDependencies) === null || _d === void 0 ? void 0 : _d[value.name]);
134
- const treatAsOptional = isOptionalDependency || parentIsOptional || isRootOptional;
135
- const logFields = { name: value.name, version: value.version, path: value.path };
136
- const p = await this.cache.realPath[value.path];
137
- if (!(await this.cache.exists[p])) {
138
- if (treatAsOptional) {
139
- builder_util_1.log.debug(logFields, "failed to find optional dependency, skipping");
140
- failedPackages.add(value.name);
141
- continue;
142
- }
143
- if (!isDirectRootDep) {
144
- builder_util_1.log.debug(logFields, "failed to find transitive dependency, treating as optional");
145
- failedPackages.add(value.name);
146
- continue;
147
- }
148
- const message = "unable to find module directory; is the path correct?";
149
- builder_util_1.log.error(logFields, message);
150
- throw new Error(`Failed to resolve module directory for ${value.name}@${value.version} at path: ${value.path}`);
151
- }
152
- let resolvedVersion = value.version;
153
- const versionMatch = p.match(/[/\\]node_modules[/\\][^@]+@([^/\\]+)[/\\]/);
154
- if (versionMatch) {
155
- resolvedVersion = versionMatch[1];
156
- if (resolvedVersion !== value.version) {
157
- builder_util_1.log.debug({ name: value.name, declared: value.version, resolved: resolvedVersion }, "resolved actual version from path");
158
- }
159
- }
160
- const m = {
161
- ...value,
162
- version: resolvedVersion,
163
- path: p,
164
- };
165
- const moduleKey = this.packageVersionString(m);
166
- if (this.allDependencies.has(moduleKey)) {
167
- continue;
168
- }
169
- this.allDependencies.set(moduleKey, m);
170
- const childIsOptional = treatAsOptional;
171
- await collect(m.dependencies, false, childIsOptional);
172
- await collect(m.optionalDependencies, true, true);
173
- }
174
- };
175
- await collect(tree.dependencies, false, false);
176
- await collect(tree.optionalDependencies, true, true);
177
- // Final cleanup: remove the app package from allDependencies
178
- if (packageToExclude) {
179
- for (const [key, dep] of this.allDependencies.entries()) {
180
- if (dep.name === packageToExclude) {
181
- builder_util_1.log.debug({ key, name: dep.name }, "removing app package from allDependencies");
182
- for (const [, d] of Object.entries(dep.dependencies || {})) {
183
- this.allDependencies.set(this.packageVersionString(d), d);
184
- }
185
- this.allDependencies.delete(key);
186
- }
187
- }
188
- }
189
- if (failedPackages.size > 0) {
190
- const cleanDependencies = (deps = {}) => {
191
- for (const [key, dep] of Object.entries(deps)) {
192
- if (failedPackages.has(dep.name)) {
193
- builder_util_1.log.debug({ name: dep.name }, "removing failed package from tree");
194
- delete deps[key];
195
- }
196
- else {
197
- if (dep.dependencies) {
198
- cleanDependencies(dep.dependencies);
199
- }
200
- if (dep.optionalDependencies) {
201
- cleanDependencies(dep.optionalDependencies);
202
- }
203
- }
204
- }
205
- };
206
- cleanDependencies(tree.dependencies);
207
- cleanDependencies(tree.optionalDependencies);
208
- }
17
+ async getDependenciesTree(_pm) {
18
+ return super.getDependenciesTree(packageManager_1.PM.NPM);
209
19
  }
210
20
  }
211
21
  exports.YarnNodeModulesCollector = YarnNodeModulesCollector;
@@ -1 +1 @@
1
- {"version":3,"file":"yarnNodeModulesCollector.js","sourceRoot":"","sources":["../../src/node-module-collector/yarnNodeModulesCollector.ts"],"names":[],"mappings":"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","sourcesContent":["import { log } from \"builder-util\"\nimport { Lazy } from \"lazy-val\"\nimport * as path from \"path\"\nimport { NodeModulesCollector } from \"./nodeModulesCollector\"\nimport { PM } from \"./packageManager\"\nimport { YarnDependency } from \"./types\"\n\ntype YarnListJsonLine =\n | {\n type: \"tree\"\n data: {\n type: \"list\"\n trees: YarnListTree[]\n }\n }\n | {\n type: \"info\" | \"warning\" | \"error\"\n data: string\n }\n\ninterface YarnListTree {\n name: string // e.g. \"lodash@4.17.21\"\n children: YarnListTree[]\n shadow?: boolean\n color?: string\n hint?: any\n depth?: number\n}\n\nexport class YarnNodeModulesCollector extends NodeModulesCollector<YarnDependency, YarnDependency> {\n public readonly installOptions = {\n manager: PM.YARN,\n lockfile: \"yarn.lock\",\n }\n\n protected isHoisted: Lazy<boolean> = new Lazy<boolean>(async () => {\n return Promise.resolve(true) // Yarn Classic always hoists\n })\n\n protected getArgs(): string[] {\n return [\"list\", \"--production\", \"--json\", \"--depth=Infinity\", \"--no-progress\"]\n }\n\n protected async extractProductionDependencyGraph(tree: YarnDependency, dependencyId: string): Promise<void> {\n if (this.productionGraph[dependencyId]) {\n return\n }\n\n const productionDeps = Object.entries(tree.dependencies || {}).map(async ([, dependency]) => {\n const dep = {\n ...dependency,\n path: await this.cache.realPath[dependency.path],\n }\n\n const childDependencyId = this.packageVersionString(dep)\n await this.extractProductionDependencyGraph(dep, childDependencyId)\n return childDependencyId\n })\n\n const dependencies: string[] = []\n for (const dep of productionDeps) {\n dependencies.push(await dep)\n }\n this.productionGraph[dependencyId] = { dependencies }\n }\n\n protected async parseDependenciesTree(jsonBlob: string): Promise<YarnDependency> {\n const lines = jsonBlob\n .split(\"\\n\")\n .map(l => l.trim())\n .filter(Boolean)\n .map(l => {\n try {\n return JSON.parse(l)\n } catch {\n return undefined\n }\n })\n .filter(Boolean) as YarnListJsonLine[]\n\n const parsedTree: YarnListTree[] | undefined = lines\n .filter(l => l.type === \"tree\")\n .map(l => (l.data as any).trees)\n .shift()\n\n if (!parsedTree) {\n throw new Error('Failed to extract Yarn tree: no \"type\":\"tree\" line found in console output')\n }\n const rootPkgJson = (await this.cache.json[path.join(this.rootDir, \"package.json\")])!\n\n const normalizedTree = await this.normalizeTree({ tree: parsedTree, seen: new Set<string>(), appName: rootPkgJson.name, parentPath: this.rootDir })\n\n const dependencies: Record<string, YarnDependency> = {}\n for (const [name, dep] of Object.entries(normalizedTree)) {\n dependencies[name] = dep\n }\n\n return Promise.resolve({\n name: rootPkgJson.name,\n version: rootPkgJson.version,\n path: this.rootDir,\n dependencies,\n workspaces: rootPkgJson?.workspaces,\n })\n }\n\n private async normalizeTree(options: { tree: YarnListTree[]; seen: Set<string>; appName?: string; parentPath: string }): Promise<Record<string, YarnDependency>> {\n const { tree, seen, appName, parentPath = this.rootDir } = options\n const normalized: Record<string, YarnDependency> = {}\n\n for (const node of tree) {\n const match = node.name.match(/^(.*)@([^@]+)$/)\n if (!match) {\n log.debug({ name: node.name }, \"invalid node name format\")\n continue\n }\n\n const [, pkgName, version] = match\n const id = `${pkgName}@${version}`\n\n const isShadow = node.shadow && node.color === \"dim\"\n if (isShadow) {\n log.debug({ pkgName, version }, \"registering shadow node (hoisted elsewhere), will resolve\")\n }\n\n if (seen.has(id)) {\n continue\n }\n\n // Find the correct package path that matches the required version\n const pkg = await this.locatePackageWithVersion({ name: pkgName, version, path: parentPath })\n const pkgPath = pkg?.packageDir\n\n if (!pkgPath) {\n log.warn({ pkgName, version, parentPath }, \"could not find package matching version\")\n continue\n }\n\n seen.add(id)\n\n const normalizedDep: YarnDependency = {\n name: pkgName,\n version,\n path: pkgPath,\n dependencies: {},\n optionalDependencies: {},\n }\n\n // Recursively process children, passing this package's info\n if (node.children && node.children.length > 0) {\n const childDeps = await this.normalizeTree({\n tree: node.children,\n seen,\n appName,\n parentPath: pkgPath,\n })\n\n for (const [childDepName, childDep] of Object.entries(childDeps)) {\n normalizedDep.dependencies![childDepName] = childDep\n }\n }\n\n normalized[pkgName] = normalizedDep\n }\n\n return normalized\n }\n\n protected async collectAllDependencies(tree: YarnDependency, packageToExclude: string) {\n const rootPkgJson = (await this.cache.json[path.join(this.rootDir, \"package.json\")])!\n const failedPackages = new Set<string>()\n\n const collect = async (\n deps: YarnDependency[\"dependencies\"] | YarnDependency[\"optionalDependencies\"] = {},\n isOptionalDependency: boolean,\n parentIsOptional: boolean = false\n ) => {\n for (const [, value] of Object.entries(deps)) {\n const isRootOptional = !!rootPkgJson.optionalDependencies?.[value.name]\n const isDirectRootDep = rootPkgJson.dependencies?.[value.name] || rootPkgJson.optionalDependencies?.[value.name] || rootPkgJson.devDependencies?.[value.name]\n const treatAsOptional = isOptionalDependency || parentIsOptional || isRootOptional\n\n const logFields = { name: value.name, version: value.version, path: value.path }\n const p = await this.cache.realPath[value.path]\n if (!(await this.cache.exists[p])) {\n if (treatAsOptional) {\n log.debug(logFields, \"failed to find optional dependency, skipping\")\n failedPackages.add(value.name)\n continue\n }\n\n if (!isDirectRootDep) {\n log.debug(logFields, \"failed to find transitive dependency, treating as optional\")\n failedPackages.add(value.name)\n continue\n }\n\n const message = \"unable to find module directory; is the path correct?\"\n log.error(logFields, message)\n throw new Error(`Failed to resolve module directory for ${value.name}@${value.version} at path: ${value.path}`)\n }\n\n let resolvedVersion = value.version\n const versionMatch = p.match(/[/\\\\]node_modules[/\\\\][^@]+@([^/\\\\]+)[/\\\\]/)\n if (versionMatch) {\n resolvedVersion = versionMatch[1]\n if (resolvedVersion !== value.version) {\n log.debug({ name: value.name, declared: value.version, resolved: resolvedVersion }, \"resolved actual version from path\")\n }\n }\n\n const m: YarnDependency = {\n ...value,\n version: resolvedVersion,\n path: p,\n }\n\n const moduleKey = this.packageVersionString(m)\n if (this.allDependencies.has(moduleKey)) {\n continue\n }\n this.allDependencies.set(moduleKey, m)\n\n const childIsOptional = treatAsOptional\n await collect(m.dependencies, false, childIsOptional)\n await collect(m.optionalDependencies, true, true)\n }\n }\n\n await collect(tree.dependencies, false, false)\n await collect(tree.optionalDependencies, true, true)\n\n // Final cleanup: remove the app package from allDependencies\n if (packageToExclude) {\n for (const [key, dep] of this.allDependencies.entries()) {\n if (dep.name === packageToExclude) {\n log.debug({ key, name: dep.name }, \"removing app package from allDependencies\")\n for (const [, d] of Object.entries(dep.dependencies || {})) {\n this.allDependencies.set(this.packageVersionString(d), d)\n }\n this.allDependencies.delete(key)\n }\n }\n }\n\n if (failedPackages.size > 0) {\n const cleanDependencies = (deps: Record<string, YarnDependency> = {}) => {\n for (const [key, dep] of Object.entries(deps)) {\n if (failedPackages.has(dep.name)) {\n log.debug({ name: dep.name }, \"removing failed package from tree\")\n delete deps[key]\n } else {\n if (dep.dependencies) {\n cleanDependencies(dep.dependencies)\n }\n if (dep.optionalDependencies) {\n cleanDependencies(dep.optionalDependencies)\n }\n }\n }\n }\n\n cleanDependencies(tree.dependencies)\n cleanDependencies(tree.optionalDependencies)\n }\n }\n}\n"]}
1
+ {"version":3,"file":"yarnNodeModulesCollector.js","sourceRoot":"","sources":["../../src/node-module-collector/yarnNodeModulesCollector.ts"],"names":[],"mappings":";;;AAAA,uEAAmE;AACnE,qDAAqC;AAGrC,8EAA8E;AAC9E,iFAAiF;AACjF,iDAAiD;AACjD,MAAa,wBAAyB,SAAQ,iDAAuB;IAArE;;QACkB,mBAAc,GAAG;YAC/B,OAAO,EAAE,mBAAE,CAAC,IAAI;YAChB,QAAQ,EAAE,WAAW;SACtB,CAAA;IAKH,CAAC;IAHW,KAAK,CAAC,mBAAmB,CAAC,GAAO;QACzC,OAAO,KAAK,CAAC,mBAAmB,CAAC,mBAAE,CAAC,GAAG,CAAC,CAAA;IAC1C,CAAC;CACF;AATD,4DASC","sourcesContent":["import { NpmNodeModulesCollector } from \"./npmNodeModulesCollector\"\nimport { PM } from \"./packageManager\"\nimport { NpmDependency } from \"./types\"\n\n// Yarn Classic (v1) produces a hoisted node_modules structure similar to npm.\n// Instead of parsing Yarn's custom NDJSON output, we leverage npm's list command\n// which NpmNodeModulesCollector already handles.\nexport class YarnNodeModulesCollector extends NpmNodeModulesCollector {\n public readonly installOptions = {\n manager: PM.YARN,\n lockfile: \"yarn.lock\",\n }\n\n protected async getDependenciesTree(_pm: PM): Promise<NpmDependency> {\n return super.getDependenciesTree(PM.NPM)\n }\n}\n"]}
@@ -3,10 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const builder_util_1 = require("builder-util");
4
4
  const fs_extra_1 = require("fs-extra");
5
5
  const path = require("path");
6
- const windowsSignToolManager_1 = require("../codeSign/windowsSignToolManager");
6
+ const windows_1 = require("../toolsets/windows");
7
7
  const core_1 = require("../core");
8
8
  const pathManager_1 = require("../util/pathManager");
9
9
  const targetUtil_1 = require("./targetUtil");
10
+ const windows_2 = require("../toolsets/windows");
10
11
  const AppxCapabilities_1 = require("./AppxCapabilities");
11
12
  const APPX_ASSETS_DIR_NAME = "appx";
12
13
  const vendorAssetsForDefaultAssets = {
@@ -47,12 +48,13 @@ class AppXTarget extends core_1.Target {
47
48
  this.outDir = outDir;
48
49
  this.options = (0, builder_util_1.deepAssign)({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx);
49
50
  this.isAsyncSupported = false;
50
- if (process.platform !== "darwin" && (process.platform !== "win32" || (0, windowsSignToolManager_1.isOldWin6)())) {
51
+ if (process.platform !== "darwin" && (process.platform !== "win32" || (0, windows_2.isOldWin6)())) {
51
52
  throw new Error("AppX is supported only on Windows 10 or Windows Server 2012 R2 (version number 6.3+)");
52
53
  }
53
54
  }
54
55
  // https://docs.microsoft.com/en-us/windows/uwp/packaging/create-app-package-with-makeappx-tool#mapping-files
55
56
  async build(appOutDir, arch) {
57
+ var _a;
56
58
  const packager = this.packager;
57
59
  const artifactName = packager.expandArtifactBeautyNamePattern(this.options, "appx", arch);
58
60
  const artifactPath = path.join(this.outDir, artifactName);
@@ -61,7 +63,7 @@ class AppXTarget extends core_1.Target {
61
63
  file: artifactPath,
62
64
  arch,
63
65
  });
64
- const vendorPath = await (0, windowsSignToolManager_1.getSignVendorPath)();
66
+ const vendorPath = await (0, windows_1.getWindowsKitsBundle)({ winCodeSign: (_a = this.packager.config.toolsets) === null || _a === void 0 ? void 0 : _a.winCodeSign, arch: arch });
65
67
  const vm = await packager.vm.value;
66
68
  const stageDir = await (0, targetUtil_1.createStageDir)(this, packager, arch);
67
69
  const mappingFile = stageDir.getTempFile("mapping.txt");
@@ -78,17 +80,16 @@ class AppXTarget extends core_1.Target {
78
80
  return `"${vm.toVmFile(file)}" "app\\${appxPath}"`;
79
81
  })));
80
82
  const userAssetDir = await this.packager.getResource(undefined, APPX_ASSETS_DIR_NAME);
81
- const assetInfo = await AppXTarget.computeUserAssets(vm, vendorPath, userAssetDir);
83
+ const assetInfo = await AppXTarget.computeUserAssets(vm, vendorPath.appxAssets, userAssetDir);
82
84
  const userAssets = assetInfo.userAssets;
83
85
  const manifestFile = stageDir.getTempFile("AppxManifest.xml");
84
86
  await this.writeManifest(manifestFile, arch, await this.computePublisherName(), userAssets);
85
87
  await packager.info.emitAppxManifestCreated(manifestFile);
86
88
  mappingList.push(assetInfo.mappings);
87
89
  mappingList.push([`"${vm.toVmFile(manifestFile)}" "AppxManifest.xml"`]);
88
- const signToolArch = arch === builder_util_1.Arch.arm64 ? "x64" : builder_util_1.Arch[arch];
89
90
  if (isScaledAssetsProvided(userAssets)) {
90
91
  const outFile = vm.toVmFile(stageDir.getTempFile("resources.pri"));
91
- const makePriPath = vm.toVmFile(path.join(vendorPath, "windows-10", signToolArch, "makepri.exe"));
92
+ const makePriPath = vm.toVmFile(path.join(vendorPath.kit, "makepri.exe"));
92
93
  const assetRoot = stageDir.getTempFile("appx/assets");
93
94
  await (0, fs_extra_1.emptyDir)(assetRoot);
94
95
  await Promise.all(assetInfo.allAssets.map(it => (0, builder_util_1.copyOrLinkFile)(it, path.join(assetRoot, path.basename(it)))));
@@ -120,7 +121,7 @@ class AppXTarget extends core_1.Target {
120
121
  makeAppXArgs.push(...this.options.makeappxArgs);
121
122
  }
122
123
  this.buildQueueManager.add(async () => {
123
- await vm.exec(vm.toVmFile(path.join(vendorPath, "windows-10", signToolArch, "makeappx.exe")), makeAppXArgs);
124
+ await vm.exec(vm.toVmFile(path.join(vendorPath.kit, "makeappx.exe")), makeAppXArgs);
124
125
  await packager.signIf(artifactPath);
125
126
  await stageDir.cleanup();
126
127
  await packager.info.emitArtifactBuildCompleted({
@@ -1 +1 @@
1
- {"version":3,"file":"AppxTarget.js","sourceRoot":"","sources":["../../src/targets/AppxTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, asArray, copyOrLinkFile, deepAssign, InvalidConfigurationError, log, walk } from \"builder-util\"\nimport { Nullish } from \"builder-util-runtime\"\nimport { emptyDir, readdir, readFile, writeFile } from \"fs-extra\"\nimport * as path from \"path\"\nimport { AppXOptions } from \"../\"\nimport { getSignVendorPath, isOldWin6 } from \"../codeSign/windowsSignToolManager\"\nimport { Target } from \"../core\"\nimport { getTemplatePath } from \"../util/pathManager\"\nimport { VmManager } from \"../vm/vm\"\nimport { WinPackager } from \"../winPackager\"\nimport { createStageDir } from \"./targetUtil\"\nimport { CAPABILITIES, isValidCapabilityName } from \"./AppxCapabilities\"\n\nconst APPX_ASSETS_DIR_NAME = \"appx\"\n\nconst vendorAssetsForDefaultAssets: Record<string, string> = {\n \"StoreLogo.png\": \"SampleAppx.50x50.png\",\n \"Square150x150Logo.png\": \"SampleAppx.150x150.png\",\n \"Square44x44Logo.png\": \"SampleAppx.44x44.png\",\n \"Wide310x150Logo.png\": \"SampleAppx.310x150.png\",\n}\n\nconst restrictedApplicationIdValues = [\n \"CON\",\n \"PRN\",\n \"AUX\",\n \"NUL\",\n \"COM1\",\n \"COM2\",\n \"COM3\",\n \"COM4\",\n \"COM5\",\n \"COM6\",\n \"COM7\",\n \"COM8\",\n \"COM9\",\n \"LPT1\",\n \"LPT2\",\n \"LPT3\",\n \"LPT4\",\n \"LPT5\",\n \"LPT6\",\n \"LPT7\",\n \"LPT8\",\n \"LPT9\",\n]\n\nconst DEFAULT_RESOURCE_LANG = \"en-US\"\n\nexport default class AppXTarget extends Target {\n readonly options: AppXOptions = deepAssign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx)\n\n isAsyncSupported = false\n\n constructor(\n private readonly packager: WinPackager,\n readonly outDir: string\n ) {\n super(\"appx\")\n\n if (process.platform !== \"darwin\" && (process.platform !== \"win32\" || isOldWin6())) {\n throw new Error(\"AppX is supported only on Windows 10 or Windows Server 2012 R2 (version number 6.3+)\")\n }\n }\n\n // https://docs.microsoft.com/en-us/windows/uwp/packaging/create-app-package-with-makeappx-tool#mapping-files\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const artifactName = packager.expandArtifactBeautyNamePattern(this.options, \"appx\", arch)\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.emitArtifactBuildStarted({\n targetPresentableName: \"AppX\",\n file: artifactPath,\n arch,\n })\n\n const vendorPath = await getSignVendorPath()\n const vm = await packager.vm.value\n\n const stageDir = await createStageDir(this, packager, arch)\n\n const mappingFile = stageDir.getTempFile(\"mapping.txt\")\n const makeAppXArgs = [\"pack\", \"/o\" /* overwrite the output file if it exists */, \"/f\", vm.toVmFile(mappingFile), \"/p\", vm.toVmFile(artifactPath)]\n if (packager.compression === \"store\") {\n makeAppXArgs.push(\"/nc\")\n }\n\n const mappingList: Array<Array<string>> = []\n mappingList.push(\n await Promise.all(\n (await walk(appOutDir)).map(file => {\n let appxPath = file.substring(appOutDir.length + 1)\n if (path.sep !== \"\\\\\") {\n appxPath = appxPath.replace(/\\//g, \"\\\\\")\n }\n return `\"${vm.toVmFile(file)}\" \"app\\\\${appxPath}\"`\n })\n )\n )\n\n const userAssetDir = await this.packager.getResource(undefined, APPX_ASSETS_DIR_NAME)\n const assetInfo = await AppXTarget.computeUserAssets(vm, vendorPath, userAssetDir)\n const userAssets = assetInfo.userAssets\n\n const manifestFile = stageDir.getTempFile(\"AppxManifest.xml\")\n await this.writeManifest(manifestFile, arch, await this.computePublisherName(), userAssets)\n\n await packager.info.emitAppxManifestCreated(manifestFile)\n mappingList.push(assetInfo.mappings)\n mappingList.push([`\"${vm.toVmFile(manifestFile)}\" \"AppxManifest.xml\"`])\n const signToolArch = arch === Arch.arm64 ? \"x64\" : Arch[arch]\n\n if (isScaledAssetsProvided(userAssets)) {\n const outFile = vm.toVmFile(stageDir.getTempFile(\"resources.pri\"))\n const makePriPath = vm.toVmFile(path.join(vendorPath, \"windows-10\", signToolArch, \"makepri.exe\"))\n\n const assetRoot = stageDir.getTempFile(\"appx/assets\")\n await emptyDir(assetRoot)\n await Promise.all(assetInfo.allAssets.map(it => copyOrLinkFile(it, path.join(assetRoot, path.basename(it)))))\n\n await vm.exec(makePriPath, [\n \"new\",\n \"/Overwrite\",\n \"/Manifest\",\n vm.toVmFile(manifestFile),\n \"/ProjectRoot\",\n vm.toVmFile(path.dirname(assetRoot)),\n \"/ConfigXml\",\n vm.toVmFile(path.join(getTemplatePath(\"appx\"), \"priconfig.xml\")),\n \"/OutputFile\",\n outFile,\n ])\n\n // in addition to resources.pri, resources.scale-140.pri and other such files will be generated\n for (const resourceFile of (await readdir(stageDir.dir)).filter(it => it.startsWith(\"resources.\")).sort()) {\n mappingList.push([`\"${vm.toVmFile(stageDir.getTempFile(resourceFile))}\" \"${resourceFile}\"`])\n }\n makeAppXArgs.push(\"/l\")\n }\n\n let mapping = \"[Files]\"\n for (const list of mappingList) {\n mapping += \"\\r\\n\" + list.join(\"\\r\\n\")\n }\n await writeFile(mappingFile, mapping)\n packager.debugLogger.add(\"appx.mapping\", mapping)\n\n if (this.options.makeappxArgs != null) {\n makeAppXArgs.push(...this.options.makeappxArgs)\n }\n this.buildQueueManager.add(async () => {\n await vm.exec(vm.toVmFile(path.join(vendorPath, \"windows-10\", signToolArch, \"makeappx.exe\")), makeAppXArgs)\n await packager.signIf(artifactPath)\n\n await stageDir.cleanup()\n\n await packager.info.emitArtifactBuildCompleted({\n file: artifactPath,\n packager,\n arch,\n safeArtifactName: packager.computeSafeArtifactName(artifactName, \"appx\"),\n target: this,\n isWriteUpdateInfo: this.options.electronUpdaterAware,\n })\n })\n }\n\n private static async computeUserAssets(vm: VmManager, vendorPath: string, userAssetDir: string | null) {\n const mappings: Array<string> = []\n let userAssets: Array<string>\n const allAssets: Array<string> = []\n if (userAssetDir == null) {\n userAssets = []\n } else {\n userAssets = (await readdir(userAssetDir)).filter(it => !it.startsWith(\".\") && !it.endsWith(\".db\") && it.includes(\".\"))\n for (const name of userAssets) {\n mappings.push(`\"${vm.toVmFile(userAssetDir)}${vm.pathSep}${name}\" \"assets\\\\${name}\"`)\n allAssets.push(path.join(userAssetDir, name))\n }\n }\n\n for (const defaultAsset of Object.keys(vendorAssetsForDefaultAssets)) {\n if (userAssets.length === 0 || !isDefaultAssetIncluded(userAssets, defaultAsset)) {\n const file = path.join(vendorPath, \"appxAssets\", vendorAssetsForDefaultAssets[defaultAsset])\n mappings.push(`\"${vm.toVmFile(file)}\" \"assets\\\\${defaultAsset}\"`)\n allAssets.push(file)\n }\n }\n\n // we do not use process.arch to build path to tools, because even if you are on x64, ia32 appx tool must be used if you build appx for ia32\n return { userAssets, mappings, allAssets }\n }\n\n // https://github.com/electron-userland/electron-builder/issues/2108#issuecomment-333200711\n private async computePublisherName() {\n const signtoolManager = await this.packager.signingManager.value\n return signtoolManager.computePublisherName(this, this.options.publisher)\n }\n\n private async writeManifest(outFile: string, arch: Arch, publisher: string, userAssets: Array<string>) {\n const appInfo = this.packager.appInfo\n const options = this.options\n const executable = `app\\\\${appInfo.productFilename}.exe`\n const displayName = options.displayName || appInfo.productName\n const capabilities = this.getCapabilities()\n const extensions = await this.getExtensions(executable, displayName)\n const archSpecificMinVersion = arch === Arch.arm64 ? \"10.0.16299.0\" : \"10.0.14316.0\"\n\n const customManifestPath = await this.packager.getResource(this.options.customManifestPath)\n if (customManifestPath) {\n log.info({ manifestPath: log.filePath(customManifestPath) }, \"custom appx manifest found\")\n }\n const manifestFileContent = await readFile(customManifestPath || path.join(getTemplatePath(\"appx\"), \"appxmanifest.xml\"), \"utf8\")\n const manifest = manifestFileContent.replace(/\\${([a-zA-Z0-9]+)}/g, (match, p1): string => {\n switch (p1) {\n case \"publisher\":\n return publisher\n\n case \"publisherDisplayName\": {\n const name = options.publisherDisplayName || appInfo.companyName\n if (name == null) {\n throw new InvalidConfigurationError(`Please specify \"author\" in the application package.json — it is required because \"appx.publisherDisplayName\" is not set.`)\n }\n return name\n }\n\n case \"version\":\n return appInfo.getVersionInWeirdWindowsForm(options.setBuildNumber === true)\n\n case \"applicationId\": {\n const validCharactersRegex = /^([A-Za-z][A-Za-z0-9]*)(\\.[A-Za-z][A-Za-z0-9]*)*$/\n const identitynumber = parseInt(options.identityName as string, 10) || NaN\n let result: string\n if (options.applicationId) {\n result = options.applicationId\n } else if (!isNaN(identitynumber) && options.identityName !== null && options.identityName !== undefined) {\n if (options.identityName[0] === \"0\") {\n log.warn(`Remove the 0${identitynumber}`)\n result = options.identityName.replace(\"0\" + identitynumber.toString(), \"\")\n } else {\n log.warn(`Remove the ${identitynumber}`)\n result = options.identityName.replace(identitynumber.toString(), \"\")\n }\n } else {\n result = options.identityName || appInfo.name\n }\n\n if (result.length < 1 || result.length > 64) {\n const message = `Appx Application.Id must be between 1 and 64 characters in length: ${result}`\n throw new InvalidConfigurationError(message)\n } else if (!validCharactersRegex.test(result)) {\n const message = `AppX Application.Id cannot contain alpha-numeric, period, and dash characters: ${result}\"`\n throw new InvalidConfigurationError(message)\n } else if (restrictedApplicationIdValues.includes(result.toUpperCase())) {\n const message = `AppX Application.Id cannot contain restricted values ${JSON.stringify(restrictedApplicationIdValues)}: ${result}`\n throw new InvalidConfigurationError(message)\n } else if (result == null && options.applicationId == null) {\n const message = `Please set appx.applicationId (or correct appx.identityName or name)`\n throw new InvalidConfigurationError(message)\n }\n\n return result\n }\n\n case \"identityName\": {\n const result = options.identityName || appInfo.name\n const validCharactersRegex = /^[a-zA-Z0-9.-]+$/\n if (result.length < 3 || result.length > 50) {\n const message = `Appx identityName.Id must be between 3 and 50 characters in length: ${result}`\n throw new InvalidConfigurationError(message)\n } else if (!validCharactersRegex.test(result)) {\n const message = `AppX identityName.Id cannot contain of alpha-numeric, period, and dash characters: ${result}`\n throw new InvalidConfigurationError(message)\n } else if (restrictedApplicationIdValues.includes(result.toUpperCase())) {\n const message = `AppX identityName.Id cannot contain restricted values ${JSON.stringify(restrictedApplicationIdValues)}: ${result}`\n throw new InvalidConfigurationError(message)\n } else if (result == null && options.identityName == null) {\n const message = `Please set appx.identityName or name`\n throw new InvalidConfigurationError(message)\n }\n\n return result\n }\n\n case \"executable\":\n return executable\n\n case \"displayName\":\n return displayName\n\n case \"description\":\n return appInfo.description || appInfo.productName\n\n case \"backgroundColor\":\n return options.backgroundColor || \"#464646\"\n\n case \"logo\":\n return \"assets\\\\StoreLogo.png\"\n\n case \"square150x150Logo\":\n return \"assets\\\\Square150x150Logo.png\"\n\n case \"square44x44Logo\":\n return \"assets\\\\Square44x44Logo.png\"\n\n case \"lockScreen\":\n return lockScreenTag(userAssets)\n\n case \"defaultTile\":\n return defaultTileTag(userAssets, options.showNameOnTiles || false)\n\n case \"splashScreen\":\n return splashScreenTag(userAssets)\n\n case \"arch\":\n return arch === Arch.ia32 ? \"x86\" : arch === Arch.arm64 ? \"arm64\" : \"x64\"\n\n case \"resourceLanguages\":\n return resourceLanguageTag(asArray(options.languages))\n\n case \"capabilities\":\n return capabilities\n\n case \"extensions\":\n return extensions\n\n case \"minVersion\":\n return options.minVersion || archSpecificMinVersion\n\n case \"maxVersionTested\":\n return options.maxVersionTested || options.minVersion || archSpecificMinVersion\n\n default:\n throw new Error(`Macro ${p1} is not defined`)\n }\n })\n await writeFile(outFile, manifest)\n }\n\n private getCapabilities(): string {\n const caps = asArray(this.options.capabilities)\n\n const capSet = new Set(caps)\n\n const invalid = Array.from(capSet).filter(cap => !isValidCapabilityName(cap))\n if (invalid.length > 0) {\n throw new Error(`invalid windows capabilit${invalid.length === 1 ? \"y\" : \"ies\"} specified: ${invalid.join(\", \")}`)\n }\n\n // Ensure runFullTrust is always included\n capSet.add(\"runFullTrust\")\n\n // Filter and map in one pass\n const capabilityStrings = CAPABILITIES.filter(cap => capSet.has(cap.name)).map(cap => ` ${cap.toXMLString()}`)\n\n return `<Capabilities>\\n${capabilityStrings.join(\"\\n\")}\\n</Capabilities>`\n }\n\n private async getExtensions(executable: string, displayName: string): Promise<string> {\n const uriSchemes = asArray(this.packager.config.protocols).concat(asArray(this.packager.platformSpecificBuildOptions.protocols))\n\n const fileAssociations = asArray(this.packager.config.fileAssociations).concat(asArray(this.packager.platformSpecificBuildOptions.fileAssociations))\n\n let isAddAutoLaunchExtension = this.options.addAutoLaunchExtension\n if (isAddAutoLaunchExtension === undefined) {\n const deps = this.packager.info.metadata.dependencies\n isAddAutoLaunchExtension = deps != null && deps[\"electron-winstore-auto-launch\"] != null\n }\n\n if (!isAddAutoLaunchExtension && uriSchemes.length === 0 && fileAssociations.length === 0 && this.options.customExtensionsPath === undefined) {\n return \"\"\n }\n\n let extensions = \"<Extensions>\"\n\n if (isAddAutoLaunchExtension) {\n extensions += `\n <desktop:Extension Category=\"windows.startupTask\" Executable=\"${executable}\" EntryPoint=\"Windows.FullTrustApplication\">\n <desktop:StartupTask TaskId=\"SlackStartup\" Enabled=\"true\" DisplayName=\"${displayName}\" />\n </desktop:Extension>`\n }\n\n for (const protocol of uriSchemes) {\n for (const scheme of asArray(protocol.schemes)) {\n extensions += `\n <uap:Extension Category=\"windows.protocol\">\n <uap:Protocol Name=\"${scheme}\">\n <uap:DisplayName>${protocol.name}</uap:DisplayName>\n </uap:Protocol>\n </uap:Extension>`\n }\n }\n\n for (const fileAssociation of fileAssociations) {\n for (const ext of asArray(fileAssociation.ext)) {\n extensions += `\n <uap:Extension Category=\"windows.fileTypeAssociation\">\n <uap:FileTypeAssociation Name=\"${ext}\">\n <uap:SupportedFileTypes>\n <uap:FileType>.${ext}</uap:FileType>\n </uap:SupportedFileTypes>\n </uap:FileTypeAssociation>\n </uap:Extension>`\n }\n }\n\n if (this.options.customExtensionsPath !== undefined) {\n const extensionsPath = path.resolve(this.packager.info.appDir, this.options.customExtensionsPath)\n extensions += await readFile(extensionsPath, \"utf8\")\n }\n\n extensions += \"</Extensions>\"\n return extensions\n }\n}\n\n// get the resource - language tag, see https://docs.microsoft.com/en-us/windows/uwp/globalizing/manage-language-and-region#specify-the-supported-languages-in-the-apps-manifest\nfunction resourceLanguageTag(userLanguages: Array<string> | Nullish): string {\n if (userLanguages == null || userLanguages.length === 0) {\n userLanguages = [DEFAULT_RESOURCE_LANG]\n }\n return userLanguages.map(it => `<Resource Language=\"${it.trim().replace(/_/g, \"-\")}\" />`).join(\"\\n\")\n}\n\nfunction lockScreenTag(userAssets: Array<string>): string {\n if (isDefaultAssetIncluded(userAssets, \"BadgeLogo.png\")) {\n return '<uap:LockScreen Notification=\"badgeAndTileText\" BadgeLogo=\"assets\\\\BadgeLogo.png\" />'\n } else {\n return \"\"\n }\n}\n\nfunction defaultTileTag(userAssets: Array<string>, showNameOnTiles: boolean): string {\n const defaultTiles: Array<string> = [\"<uap:DefaultTile\", 'Wide310x150Logo=\"assets\\\\Wide310x150Logo.png\"']\n\n if (isDefaultAssetIncluded(userAssets, \"LargeTile.png\")) {\n defaultTiles.push('Square310x310Logo=\"assets\\\\LargeTile.png\"')\n }\n if (isDefaultAssetIncluded(userAssets, \"SmallTile.png\")) {\n defaultTiles.push('Square71x71Logo=\"assets\\\\SmallTile.png\"')\n }\n\n if (showNameOnTiles) {\n defaultTiles.push(\">\")\n defaultTiles.push(\"<uap:ShowNameOnTiles>\")\n defaultTiles.push(\"<uap:ShowOn\", 'Tile=\"wide310x150Logo\"', \"/>\")\n defaultTiles.push(\"<uap:ShowOn\", 'Tile=\"square150x150Logo\"', \"/>\")\n defaultTiles.push(\"</uap:ShowNameOnTiles>\")\n defaultTiles.push(\"</uap:DefaultTile>\")\n } else {\n defaultTiles.push(\"/>\")\n }\n return defaultTiles.join(\" \")\n}\n\nfunction splashScreenTag(userAssets: Array<string>): string {\n if (isDefaultAssetIncluded(userAssets, \"SplashScreen.png\")) {\n return '<uap:SplashScreen Image=\"assets\\\\SplashScreen.png\" />'\n } else {\n return \"\"\n }\n}\n\nfunction isDefaultAssetIncluded(userAssets: Array<string>, defaultAsset: string) {\n const defaultAssetName = defaultAsset.substring(0, defaultAsset.indexOf(\".\"))\n return userAssets.some(it => it.includes(defaultAssetName))\n}\n\nfunction isScaledAssetsProvided(userAssets: Array<string>) {\n return userAssets.some(it => it.includes(\".scale-\") || it.includes(\".targetsize-\"))\n}\n"]}
1
+ {"version":3,"file":"AppxTarget.js","sourceRoot":"","sources":["../../src/targets/AppxTarget.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arch, asArray, copyOrLinkFile, deepAssign, InvalidConfigurationError, log, walk } from \"builder-util\"\nimport { Nullish } from \"builder-util-runtime\"\nimport { emptyDir, readdir, readFile, writeFile } from \"fs-extra\"\nimport * as path from \"path\"\nimport { AppXOptions } from \"../\"\nimport { getWindowsKitsBundle } from \"../toolsets/windows\"\nimport { Target } from \"../core\"\nimport { getTemplatePath } from \"../util/pathManager\"\nimport { VmManager } from \"../vm/vm\"\nimport { WinPackager } from \"../winPackager\"\nimport { createStageDir } from \"./targetUtil\"\nimport { isOldWin6 } from \"../toolsets/windows\"\nimport { CAPABILITIES, isValidCapabilityName } from \"./AppxCapabilities\"\n\nconst APPX_ASSETS_DIR_NAME = \"appx\"\n\nconst vendorAssetsForDefaultAssets: Record<string, string> = {\n \"StoreLogo.png\": \"SampleAppx.50x50.png\",\n \"Square150x150Logo.png\": \"SampleAppx.150x150.png\",\n \"Square44x44Logo.png\": \"SampleAppx.44x44.png\",\n \"Wide310x150Logo.png\": \"SampleAppx.310x150.png\",\n}\n\nconst restrictedApplicationIdValues = [\n \"CON\",\n \"PRN\",\n \"AUX\",\n \"NUL\",\n \"COM1\",\n \"COM2\",\n \"COM3\",\n \"COM4\",\n \"COM5\",\n \"COM6\",\n \"COM7\",\n \"COM8\",\n \"COM9\",\n \"LPT1\",\n \"LPT2\",\n \"LPT3\",\n \"LPT4\",\n \"LPT5\",\n \"LPT6\",\n \"LPT7\",\n \"LPT8\",\n \"LPT9\",\n]\n\nconst DEFAULT_RESOURCE_LANG = \"en-US\"\n\nexport default class AppXTarget extends Target {\n readonly options: AppXOptions = deepAssign({}, this.packager.platformSpecificBuildOptions, this.packager.config.appx)\n\n isAsyncSupported = false\n\n constructor(\n private readonly packager: WinPackager,\n readonly outDir: string\n ) {\n super(\"appx\")\n\n if (process.platform !== \"darwin\" && (process.platform !== \"win32\" || isOldWin6())) {\n throw new Error(\"AppX is supported only on Windows 10 or Windows Server 2012 R2 (version number 6.3+)\")\n }\n }\n\n // https://docs.microsoft.com/en-us/windows/uwp/packaging/create-app-package-with-makeappx-tool#mapping-files\n async build(appOutDir: string, arch: Arch): Promise<any> {\n const packager = this.packager\n const artifactName = packager.expandArtifactBeautyNamePattern(this.options, \"appx\", arch)\n const artifactPath = path.join(this.outDir, artifactName)\n await packager.info.emitArtifactBuildStarted({\n targetPresentableName: \"AppX\",\n file: artifactPath,\n arch,\n })\n\n const vendorPath = await getWindowsKitsBundle({ winCodeSign: this.packager.config.toolsets?.winCodeSign, arch: arch })\n const vm = await packager.vm.value\n\n const stageDir = await createStageDir(this, packager, arch)\n\n const mappingFile = stageDir.getTempFile(\"mapping.txt\")\n const makeAppXArgs = [\"pack\", \"/o\" /* overwrite the output file if it exists */, \"/f\", vm.toVmFile(mappingFile), \"/p\", vm.toVmFile(artifactPath)]\n if (packager.compression === \"store\") {\n makeAppXArgs.push(\"/nc\")\n }\n\n const mappingList: Array<Array<string>> = []\n mappingList.push(\n await Promise.all(\n (await walk(appOutDir)).map(file => {\n let appxPath = file.substring(appOutDir.length + 1)\n if (path.sep !== \"\\\\\") {\n appxPath = appxPath.replace(/\\//g, \"\\\\\")\n }\n return `\"${vm.toVmFile(file)}\" \"app\\\\${appxPath}\"`\n })\n )\n )\n\n const userAssetDir = await this.packager.getResource(undefined, APPX_ASSETS_DIR_NAME)\n const assetInfo = await AppXTarget.computeUserAssets(vm, vendorPath.appxAssets, userAssetDir)\n const userAssets = assetInfo.userAssets\n\n const manifestFile = stageDir.getTempFile(\"AppxManifest.xml\")\n await this.writeManifest(manifestFile, arch, await this.computePublisherName(), userAssets)\n\n await packager.info.emitAppxManifestCreated(manifestFile)\n mappingList.push(assetInfo.mappings)\n mappingList.push([`\"${vm.toVmFile(manifestFile)}\" \"AppxManifest.xml\"`])\n\n if (isScaledAssetsProvided(userAssets)) {\n const outFile = vm.toVmFile(stageDir.getTempFile(\"resources.pri\"))\n const makePriPath = vm.toVmFile(path.join(vendorPath.kit, \"makepri.exe\"))\n\n const assetRoot = stageDir.getTempFile(\"appx/assets\")\n await emptyDir(assetRoot)\n await Promise.all(assetInfo.allAssets.map(it => copyOrLinkFile(it, path.join(assetRoot, path.basename(it)))))\n\n await vm.exec(makePriPath, [\n \"new\",\n \"/Overwrite\",\n \"/Manifest\",\n vm.toVmFile(manifestFile),\n \"/ProjectRoot\",\n vm.toVmFile(path.dirname(assetRoot)),\n \"/ConfigXml\",\n vm.toVmFile(path.join(getTemplatePath(\"appx\"), \"priconfig.xml\")),\n \"/OutputFile\",\n outFile,\n ])\n\n // in addition to resources.pri, resources.scale-140.pri and other such files will be generated\n for (const resourceFile of (await readdir(stageDir.dir)).filter(it => it.startsWith(\"resources.\")).sort()) {\n mappingList.push([`\"${vm.toVmFile(stageDir.getTempFile(resourceFile))}\" \"${resourceFile}\"`])\n }\n makeAppXArgs.push(\"/l\")\n }\n\n let mapping = \"[Files]\"\n for (const list of mappingList) {\n mapping += \"\\r\\n\" + list.join(\"\\r\\n\")\n }\n await writeFile(mappingFile, mapping)\n packager.debugLogger.add(\"appx.mapping\", mapping)\n\n if (this.options.makeappxArgs != null) {\n makeAppXArgs.push(...this.options.makeappxArgs)\n }\n this.buildQueueManager.add(async () => {\n await vm.exec(vm.toVmFile(path.join(vendorPath.kit, \"makeappx.exe\")), makeAppXArgs)\n await packager.signIf(artifactPath)\n\n await stageDir.cleanup()\n\n await packager.info.emitArtifactBuildCompleted({\n file: artifactPath,\n packager,\n arch,\n safeArtifactName: packager.computeSafeArtifactName(artifactName, \"appx\"),\n target: this,\n isWriteUpdateInfo: this.options.electronUpdaterAware,\n })\n })\n }\n\n private static async computeUserAssets(vm: VmManager, vendorPath: string, userAssetDir: string | null) {\n const mappings: Array<string> = []\n let userAssets: Array<string>\n const allAssets: Array<string> = []\n if (userAssetDir == null) {\n userAssets = []\n } else {\n userAssets = (await readdir(userAssetDir)).filter(it => !it.startsWith(\".\") && !it.endsWith(\".db\") && it.includes(\".\"))\n for (const name of userAssets) {\n mappings.push(`\"${vm.toVmFile(userAssetDir)}${vm.pathSep}${name}\" \"assets\\\\${name}\"`)\n allAssets.push(path.join(userAssetDir, name))\n }\n }\n\n for (const defaultAsset of Object.keys(vendorAssetsForDefaultAssets)) {\n if (userAssets.length === 0 || !isDefaultAssetIncluded(userAssets, defaultAsset)) {\n const file = path.join(vendorPath, \"appxAssets\", vendorAssetsForDefaultAssets[defaultAsset])\n mappings.push(`\"${vm.toVmFile(file)}\" \"assets\\\\${defaultAsset}\"`)\n allAssets.push(file)\n }\n }\n\n // we do not use process.arch to build path to tools, because even if you are on x64, ia32 appx tool must be used if you build appx for ia32\n return { userAssets, mappings, allAssets }\n }\n\n // https://github.com/electron-userland/electron-builder/issues/2108#issuecomment-333200711\n private async computePublisherName() {\n const signtoolManager = await this.packager.signingManager.value\n return signtoolManager.computePublisherName(this, this.options.publisher)\n }\n\n private async writeManifest(outFile: string, arch: Arch, publisher: string, userAssets: Array<string>) {\n const appInfo = this.packager.appInfo\n const options = this.options\n const executable = `app\\\\${appInfo.productFilename}.exe`\n const displayName = options.displayName || appInfo.productName\n const capabilities = this.getCapabilities()\n const extensions = await this.getExtensions(executable, displayName)\n const archSpecificMinVersion = arch === Arch.arm64 ? \"10.0.16299.0\" : \"10.0.14316.0\"\n\n const customManifestPath = await this.packager.getResource(this.options.customManifestPath)\n if (customManifestPath) {\n log.info({ manifestPath: log.filePath(customManifestPath) }, \"custom appx manifest found\")\n }\n const manifestFileContent = await readFile(customManifestPath || path.join(getTemplatePath(\"appx\"), \"appxmanifest.xml\"), \"utf8\")\n const manifest = manifestFileContent.replace(/\\${([a-zA-Z0-9]+)}/g, (match, p1): string => {\n switch (p1) {\n case \"publisher\":\n return publisher\n\n case \"publisherDisplayName\": {\n const name = options.publisherDisplayName || appInfo.companyName\n if (name == null) {\n throw new InvalidConfigurationError(`Please specify \"author\" in the application package.json — it is required because \"appx.publisherDisplayName\" is not set.`)\n }\n return name\n }\n\n case \"version\":\n return appInfo.getVersionInWeirdWindowsForm(options.setBuildNumber === true)\n\n case \"applicationId\": {\n const validCharactersRegex = /^([A-Za-z][A-Za-z0-9]*)(\\.[A-Za-z][A-Za-z0-9]*)*$/\n const identitynumber = parseInt(options.identityName as string, 10) || NaN\n let result: string\n if (options.applicationId) {\n result = options.applicationId\n } else if (!isNaN(identitynumber) && options.identityName !== null && options.identityName !== undefined) {\n if (options.identityName[0] === \"0\") {\n log.warn(`Remove the 0${identitynumber}`)\n result = options.identityName.replace(\"0\" + identitynumber.toString(), \"\")\n } else {\n log.warn(`Remove the ${identitynumber}`)\n result = options.identityName.replace(identitynumber.toString(), \"\")\n }\n } else {\n result = options.identityName || appInfo.name\n }\n\n if (result.length < 1 || result.length > 64) {\n const message = `Appx Application.Id must be between 1 and 64 characters in length: ${result}`\n throw new InvalidConfigurationError(message)\n } else if (!validCharactersRegex.test(result)) {\n const message = `AppX Application.Id cannot contain alpha-numeric, period, and dash characters: ${result}\"`\n throw new InvalidConfigurationError(message)\n } else if (restrictedApplicationIdValues.includes(result.toUpperCase())) {\n const message = `AppX Application.Id cannot contain restricted values ${JSON.stringify(restrictedApplicationIdValues)}: ${result}`\n throw new InvalidConfigurationError(message)\n } else if (result == null && options.applicationId == null) {\n const message = `Please set appx.applicationId (or correct appx.identityName or name)`\n throw new InvalidConfigurationError(message)\n }\n\n return result\n }\n\n case \"identityName\": {\n const result = options.identityName || appInfo.name\n const validCharactersRegex = /^[a-zA-Z0-9.-]+$/\n if (result.length < 3 || result.length > 50) {\n const message = `Appx identityName.Id must be between 3 and 50 characters in length: ${result}`\n throw new InvalidConfigurationError(message)\n } else if (!validCharactersRegex.test(result)) {\n const message = `AppX identityName.Id cannot contain of alpha-numeric, period, and dash characters: ${result}`\n throw new InvalidConfigurationError(message)\n } else if (restrictedApplicationIdValues.includes(result.toUpperCase())) {\n const message = `AppX identityName.Id cannot contain restricted values ${JSON.stringify(restrictedApplicationIdValues)}: ${result}`\n throw new InvalidConfigurationError(message)\n } else if (result == null && options.identityName == null) {\n const message = `Please set appx.identityName or name`\n throw new InvalidConfigurationError(message)\n }\n\n return result\n }\n\n case \"executable\":\n return executable\n\n case \"displayName\":\n return displayName\n\n case \"description\":\n return appInfo.description || appInfo.productName\n\n case \"backgroundColor\":\n return options.backgroundColor || \"#464646\"\n\n case \"logo\":\n return \"assets\\\\StoreLogo.png\"\n\n case \"square150x150Logo\":\n return \"assets\\\\Square150x150Logo.png\"\n\n case \"square44x44Logo\":\n return \"assets\\\\Square44x44Logo.png\"\n\n case \"lockScreen\":\n return lockScreenTag(userAssets)\n\n case \"defaultTile\":\n return defaultTileTag(userAssets, options.showNameOnTiles || false)\n\n case \"splashScreen\":\n return splashScreenTag(userAssets)\n\n case \"arch\":\n return arch === Arch.ia32 ? \"x86\" : arch === Arch.arm64 ? \"arm64\" : \"x64\"\n\n case \"resourceLanguages\":\n return resourceLanguageTag(asArray(options.languages))\n\n case \"capabilities\":\n return capabilities\n\n case \"extensions\":\n return extensions\n\n case \"minVersion\":\n return options.minVersion || archSpecificMinVersion\n\n case \"maxVersionTested\":\n return options.maxVersionTested || options.minVersion || archSpecificMinVersion\n\n default:\n throw new Error(`Macro ${p1} is not defined`)\n }\n })\n await writeFile(outFile, manifest)\n }\n\n private getCapabilities(): string {\n const caps = asArray(this.options.capabilities)\n\n const capSet = new Set(caps)\n\n const invalid = Array.from(capSet).filter(cap => !isValidCapabilityName(cap))\n if (invalid.length > 0) {\n throw new Error(`invalid windows capabilit${invalid.length === 1 ? \"y\" : \"ies\"} specified: ${invalid.join(\", \")}`)\n }\n\n // Ensure runFullTrust is always included\n capSet.add(\"runFullTrust\")\n\n // Filter and map in one pass\n const capabilityStrings = CAPABILITIES.filter(cap => capSet.has(cap.name)).map(cap => ` ${cap.toXMLString()}`)\n\n return `<Capabilities>\\n${capabilityStrings.join(\"\\n\")}\\n</Capabilities>`\n }\n\n private async getExtensions(executable: string, displayName: string): Promise<string> {\n const uriSchemes = asArray(this.packager.config.protocols).concat(asArray(this.packager.platformSpecificBuildOptions.protocols))\n\n const fileAssociations = asArray(this.packager.config.fileAssociations).concat(asArray(this.packager.platformSpecificBuildOptions.fileAssociations))\n\n let isAddAutoLaunchExtension = this.options.addAutoLaunchExtension\n if (isAddAutoLaunchExtension === undefined) {\n const deps = this.packager.info.metadata.dependencies\n isAddAutoLaunchExtension = deps != null && deps[\"electron-winstore-auto-launch\"] != null\n }\n\n if (!isAddAutoLaunchExtension && uriSchemes.length === 0 && fileAssociations.length === 0 && this.options.customExtensionsPath === undefined) {\n return \"\"\n }\n\n let extensions = \"<Extensions>\"\n\n if (isAddAutoLaunchExtension) {\n extensions += `\n <desktop:Extension Category=\"windows.startupTask\" Executable=\"${executable}\" EntryPoint=\"Windows.FullTrustApplication\">\n <desktop:StartupTask TaskId=\"SlackStartup\" Enabled=\"true\" DisplayName=\"${displayName}\" />\n </desktop:Extension>`\n }\n\n for (const protocol of uriSchemes) {\n for (const scheme of asArray(protocol.schemes)) {\n extensions += `\n <uap:Extension Category=\"windows.protocol\">\n <uap:Protocol Name=\"${scheme}\">\n <uap:DisplayName>${protocol.name}</uap:DisplayName>\n </uap:Protocol>\n </uap:Extension>`\n }\n }\n\n for (const fileAssociation of fileAssociations) {\n for (const ext of asArray(fileAssociation.ext)) {\n extensions += `\n <uap:Extension Category=\"windows.fileTypeAssociation\">\n <uap:FileTypeAssociation Name=\"${ext}\">\n <uap:SupportedFileTypes>\n <uap:FileType>.${ext}</uap:FileType>\n </uap:SupportedFileTypes>\n </uap:FileTypeAssociation>\n </uap:Extension>`\n }\n }\n\n if (this.options.customExtensionsPath !== undefined) {\n const extensionsPath = path.resolve(this.packager.info.appDir, this.options.customExtensionsPath)\n extensions += await readFile(extensionsPath, \"utf8\")\n }\n\n extensions += \"</Extensions>\"\n return extensions\n }\n}\n\n// get the resource - language tag, see https://docs.microsoft.com/en-us/windows/uwp/globalizing/manage-language-and-region#specify-the-supported-languages-in-the-apps-manifest\nfunction resourceLanguageTag(userLanguages: Array<string> | Nullish): string {\n if (userLanguages == null || userLanguages.length === 0) {\n userLanguages = [DEFAULT_RESOURCE_LANG]\n }\n return userLanguages.map(it => `<Resource Language=\"${it.trim().replace(/_/g, \"-\")}\" />`).join(\"\\n\")\n}\n\nfunction lockScreenTag(userAssets: Array<string>): string {\n if (isDefaultAssetIncluded(userAssets, \"BadgeLogo.png\")) {\n return '<uap:LockScreen Notification=\"badgeAndTileText\" BadgeLogo=\"assets\\\\BadgeLogo.png\" />'\n } else {\n return \"\"\n }\n}\n\nfunction defaultTileTag(userAssets: Array<string>, showNameOnTiles: boolean): string {\n const defaultTiles: Array<string> = [\"<uap:DefaultTile\", 'Wide310x150Logo=\"assets\\\\Wide310x150Logo.png\"']\n\n if (isDefaultAssetIncluded(userAssets, \"LargeTile.png\")) {\n defaultTiles.push('Square310x310Logo=\"assets\\\\LargeTile.png\"')\n }\n if (isDefaultAssetIncluded(userAssets, \"SmallTile.png\")) {\n defaultTiles.push('Square71x71Logo=\"assets\\\\SmallTile.png\"')\n }\n\n if (showNameOnTiles) {\n defaultTiles.push(\">\")\n defaultTiles.push(\"<uap:ShowNameOnTiles>\")\n defaultTiles.push(\"<uap:ShowOn\", 'Tile=\"wide310x150Logo\"', \"/>\")\n defaultTiles.push(\"<uap:ShowOn\", 'Tile=\"square150x150Logo\"', \"/>\")\n defaultTiles.push(\"</uap:ShowNameOnTiles>\")\n defaultTiles.push(\"</uap:DefaultTile>\")\n } else {\n defaultTiles.push(\"/>\")\n }\n return defaultTiles.join(\" \")\n}\n\nfunction splashScreenTag(userAssets: Array<string>): string {\n if (isDefaultAssetIncluded(userAssets, \"SplashScreen.png\")) {\n return '<uap:SplashScreen Image=\"assets\\\\SplashScreen.png\" />'\n } else {\n return \"\"\n }\n}\n\nfunction isDefaultAssetIncluded(userAssets: Array<string>, defaultAsset: string) {\n const defaultAssetName = defaultAsset.substring(0, defaultAsset.indexOf(\".\"))\n return userAssets.some(it => it.includes(defaultAssetName))\n}\n\nfunction isScaledAssetsProvided(userAssets: Array<string>) {\n return userAssets.some(it => it.includes(\".scale-\") || it.includes(\".targetsize-\"))\n}\n"]}
@@ -14,7 +14,7 @@ const hash_1 = require("../util/hash");
14
14
  const macosVersion_1 = require("../util/macosVersion");
15
15
  const pathManager_1 = require("../util/pathManager");
16
16
  const LinuxTargetHelper_1 = require("./LinuxTargetHelper");
17
- const tools_1 = require("./tools");
17
+ const linux_1 = require("../toolsets/linux");
18
18
  class FpmTarget extends core_1.Target {
19
19
  constructor(name, packager, helper, outDir) {
20
20
  super(name, false);
@@ -208,7 +208,7 @@ class FpmTarget extends core_1.Target {
208
208
  // rpmbuild wants directory rpm with some default config files. Even if we can use dylibbundler, path to such config files are not changed (we need to replace in the binary)
209
209
  // so, for now, brew install rpm is still required.
210
210
  if (target !== "rpm" && (await (0, macosVersion_1.isMacOsSierra)())) {
211
- const linuxToolsPath = await (0, tools_1.getLinuxToolsPath)();
211
+ const linuxToolsPath = await (0, linux_1.getLinuxToolsPath)();
212
212
  Object.assign(env, {
213
213
  PATH: (0, bundledTool_1.computeEnv)(process.env.PATH, [path.join(linuxToolsPath, "bin")]),
214
214
  DYLD_LIBRARY_PATH: (0, bundledTool_1.computeEnv)(process.env.DYLD_LIBRARY_PATH, [path.join(linuxToolsPath, "lib")]),
@@ -250,7 +250,7 @@ class FpmTarget extends core_1.Target {
250
250
  }
251
251
  fpmArgs.push(...this.configureTargetSpecificOptions(target, (_c = fpmConfiguration.compression) !== null && _c !== void 0 ? _c : "xz"));
252
252
  fpmArgs.push(...fpmConfiguration.args);
253
- const fpmPath = await (0, tools_1.getFpmPath)();
253
+ const fpmPath = await (0, linux_1.getFpmPath)();
254
254
  await (0, builder_util_1.exec)(fpmPath, fpmArgs, { env }).catch(e => {
255
255
  if (e.message.includes("Need executable 'rpmbuild' to convert dir to rpm")) {
256
256
  const hint = "to build rpm, executable rpmbuild is required, please install rpm package on your system. ";