@kirill.konshin/electron-builder 0.0.2 → 0.0.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/dist/builder.js +88 -123
- package/dist/builder.js.map +1 -1
- package/dist/images.js +14 -21
- package/dist/images.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -5
- package/package.json +21 -5
- package/.ctirc +0 -20
- package/.turbo/turbo-build.log +0 -21
- package/CHANGELOG.md +0 -7
- package/dist/index.js.map +0 -1
- package/src/builder.ts +0 -150
- package/src/images.ts +0 -33
- package/src/index.ts +0 -2
- package/tsconfig.json +0 -10
- package/turbo.json +0 -10
- package/vite.config.ts +0 -2
package/dist/builder.js
CHANGED
|
@@ -1,129 +1,94 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
GH_TOKEN,
|
|
10
|
-
CSC_IDENTITY_AUTO_DISCOVERY
|
|
11
|
-
} = process.env;
|
|
12
|
-
const isGithubTag = GITHUB_REF_TYPE === "tag";
|
|
13
|
-
const isGithubMaster = GITHUB_REF_TYPE === "branch" && GITHUB_REF_NAME === "master";
|
|
14
|
-
const isDevPublish = AWS_URL?.includes(":9000");
|
|
15
|
-
const isNoAutoDiscovery = CSC_IDENTITY_AUTO_DISCOVERY === "false";
|
|
16
|
-
const isSkipPublish = !isDevPublish && !isGithubMaster && !isGithubTag;
|
|
17
|
-
const channel = isGithubTag ? "latest" : GITHUB_REF_NAME;
|
|
1
|
+
//#region src/builder.ts
|
|
2
|
+
var { GITHUB_REF_TYPE, GITHUB_REF_NAME, GITHUB_RUN_ID, GITHUB_REF, AWS_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, GH_TOKEN, CSC_IDENTITY_AUTO_DISCOVERY } = process.env;
|
|
3
|
+
var isGithubTag = GITHUB_REF_TYPE === "tag";
|
|
4
|
+
var isGithubMaster = GITHUB_REF_TYPE === "branch" && GITHUB_REF_NAME === "master";
|
|
5
|
+
var isDevPublish = AWS_URL?.includes(":9000");
|
|
6
|
+
var isNoAutoDiscovery = CSC_IDENTITY_AUTO_DISCOVERY === "false";
|
|
7
|
+
var isSkipPublish = !isDevPublish && !isGithubMaster && !isGithubTag;
|
|
8
|
+
var channel = isGithubTag ? "latest" : GITHUB_REF_NAME;
|
|
18
9
|
function getVersion() {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (isGithubTag) {
|
|
23
|
-
return GITHUB_REF.split("/").pop();
|
|
24
|
-
}
|
|
25
|
-
return `0.0.${Date.now()}`;
|
|
10
|
+
if (isGithubMaster) return `0.0.${GITHUB_RUN_ID}`;
|
|
11
|
+
if (isGithubTag) return GITHUB_REF.split("/").pop();
|
|
12
|
+
return `0.0.${Date.now()}`;
|
|
26
13
|
}
|
|
27
14
|
function getTarget() {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return [target[0]];
|
|
43
|
-
}
|
|
44
|
-
return target;
|
|
15
|
+
const arch = ["arm64", isNoAutoDiscovery ? "" : "x64"].filter(Boolean);
|
|
16
|
+
const target = [{
|
|
17
|
+
target: "dmg",
|
|
18
|
+
arch
|
|
19
|
+
}, {
|
|
20
|
+
target: "zip",
|
|
21
|
+
arch
|
|
22
|
+
}];
|
|
23
|
+
if (isNoAutoDiscovery) {
|
|
24
|
+
console.log("Skipping signing...");
|
|
25
|
+
delete process.env.CSC_LINK;
|
|
26
|
+
return [target[0]];
|
|
27
|
+
}
|
|
28
|
+
return target;
|
|
45
29
|
}
|
|
46
30
|
function builerConfig(options) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if (isSkipPublish) {
|
|
107
|
-
delete config.publish;
|
|
108
|
-
delete config.extraMetadata;
|
|
109
|
-
}
|
|
110
|
-
console.log("Electron Builder context", {
|
|
111
|
-
isDevPublish,
|
|
112
|
-
isGithubMaster,
|
|
113
|
-
isGithubTag,
|
|
114
|
-
isSkipPublish,
|
|
115
|
-
isNoAutoDiscovery,
|
|
116
|
-
channel,
|
|
117
|
-
GITHUB_RUN_ID,
|
|
118
|
-
GITHUB_REF_TYPE,
|
|
119
|
-
GITHUB_REF_NAME,
|
|
120
|
-
CSC_IDENTITY_AUTO_DISCOVERY,
|
|
121
|
-
AWS_URL
|
|
122
|
-
});
|
|
123
|
-
console.log("Electron Builder configuration", JSON.stringify(config, null, 2));
|
|
124
|
-
return config;
|
|
31
|
+
if (options.s3 && (!AWS_URL || !AWS_ACCESS_KEY_ID || !AWS_SECRET_ACCESS_KEY)) throw new Error("Missing AWS configuration");
|
|
32
|
+
if (options.githubReleases && !GH_TOKEN) throw new Error("Missing AWS configuration");
|
|
33
|
+
const config = {
|
|
34
|
+
files: [
|
|
35
|
+
"**/*",
|
|
36
|
+
"!electron-builder.js",
|
|
37
|
+
"!electron-builder.yml",
|
|
38
|
+
"!package.json",
|
|
39
|
+
"assets",
|
|
40
|
+
...options.config.files
|
|
41
|
+
],
|
|
42
|
+
directories: { buildResources: "assets" },
|
|
43
|
+
mac: {
|
|
44
|
+
category: options.config.mac?.category ?? "public.app-category.utils",
|
|
45
|
+
target: getTarget()
|
|
46
|
+
},
|
|
47
|
+
dmg: { contents: [{
|
|
48
|
+
x: 130,
|
|
49
|
+
y: 130
|
|
50
|
+
}, {
|
|
51
|
+
x: 370,
|
|
52
|
+
y: 130,
|
|
53
|
+
type: "link",
|
|
54
|
+
path: "/Applications"
|
|
55
|
+
}] },
|
|
56
|
+
publish: [options.s3 && {
|
|
57
|
+
provider: "s3",
|
|
58
|
+
endpoint: AWS_URL,
|
|
59
|
+
channel,
|
|
60
|
+
...options.s3
|
|
61
|
+
}, options.githubReleases && GH_TOKEN && (isGithubTag || isGithubMaster) && {
|
|
62
|
+
provider: "github",
|
|
63
|
+
private: true,
|
|
64
|
+
token: GH_TOKEN,
|
|
65
|
+
releaseType: isGithubTag ? "release" : "draft",
|
|
66
|
+
channel,
|
|
67
|
+
...options.githubReleases
|
|
68
|
+
}].filter(Boolean),
|
|
69
|
+
extraMetadata: { version: getVersion() }
|
|
70
|
+
};
|
|
71
|
+
if (isSkipPublish) {
|
|
72
|
+
delete config.publish;
|
|
73
|
+
delete config.extraMetadata;
|
|
74
|
+
}
|
|
75
|
+
console.log("Electron Builder context", {
|
|
76
|
+
isDevPublish,
|
|
77
|
+
isGithubMaster,
|
|
78
|
+
isGithubTag,
|
|
79
|
+
isSkipPublish,
|
|
80
|
+
isNoAutoDiscovery,
|
|
81
|
+
channel,
|
|
82
|
+
GITHUB_RUN_ID,
|
|
83
|
+
GITHUB_REF_TYPE,
|
|
84
|
+
GITHUB_REF_NAME,
|
|
85
|
+
CSC_IDENTITY_AUTO_DISCOVERY,
|
|
86
|
+
AWS_URL
|
|
87
|
+
});
|
|
88
|
+
console.log("Electron Builder configuration", JSON.stringify(config, null, 2));
|
|
89
|
+
return config;
|
|
125
90
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
//# sourceMappingURL=builder.js.map
|
|
91
|
+
//#endregion
|
|
92
|
+
export { builerConfig };
|
|
93
|
+
|
|
94
|
+
//# sourceMappingURL=builder.js.map
|
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sources":["../src/builder.ts"],"sourcesContent":["import type { Configuration, MacConfiguration } from 'electron-builder';\nimport type { GithubOptions, S3Options } from 'builder-util-runtime';\n\nconst {\n GITHUB_REF_TYPE,\n GITHUB_REF_NAME,\n GITHUB_RUN_ID,\n GITHUB_REF,\n AWS_URL,\n AWS_ACCESS_KEY_ID,\n AWS_SECRET_ACCESS_KEY,\n GH_TOKEN,\n CSC_IDENTITY_AUTO_DISCOVERY,\n} = process.env;\n\nconst isGithubTag = GITHUB_REF_TYPE === 'tag';\nconst isGithubMaster = GITHUB_REF_TYPE === 'branch' && GITHUB_REF_NAME === 'master';\nconst isDevPublish = AWS_URL?.includes(':9000');\nconst isNoAutoDiscovery = CSC_IDENTITY_AUTO_DISCOVERY === 'false';\nconst isSkipPublish = !isDevPublish && !isGithubMaster && !isGithubTag;\n\n//FIXME Refine logic, tags should be versions, not channels, use branches? See how Changesets does it\nconst channel = isGithubTag ? 'latest' : GITHUB_REF_NAME; // https://www.electron.build/tutorials/release-using-channels.html\n\nfunction getVersion() {\n if (isGithubMaster) {\n return `0.0.${GITHUB_RUN_ID}`; //TODO Figure out last normal in master and bump it\n }\n if (isGithubTag) {\n return GITHUB_REF!.split('/').pop();\n }\n return `0.0.${Date.now()}`; //TODO Read from package.json?\n}\n\nfunction getTarget() {\n const arch = ['arm64', isNoAutoDiscovery ? '' : 'x64'].filter(Boolean) as any;\n\n const target: MacConfiguration['target'] = [\n {\n target: 'dmg',\n arch,\n },\n {\n target: 'zip',\n arch,\n },\n ];\n\n // Leave only DMG if no signing\n if (isNoAutoDiscovery) {\n console.log('Skipping signing...');\n delete process.env.CSC_LINK;\n return [target[0]]; // only keep DMG\n }\n\n return target;\n}\n\nexport function builerConfig(options: {\n config: Configuration;\n s3?: Pick<S3Options, 'bucket'> & Partial<S3Options>; //TODO Omit?\n githubReleases: Pick<GithubOptions, 'owner' | 'repo'> & Partial<GithubOptions>;\n}): Configuration {\n if (options.s3 && (!AWS_URL || !AWS_ACCESS_KEY_ID || !AWS_SECRET_ACCESS_KEY)) {\n throw new Error('Missing AWS configuration');\n }\n\n if (options.githubReleases && !GH_TOKEN) {\n throw new Error('Missing AWS configuration');\n }\n\n const config: Configuration = {\n files: [\n '**/*',\n '!electron-builder.js',\n '!electron-builder.yml',\n '!package.json',\n 'assets',\n ...(options.config.files as never),\n ],\n directories: {\n buildResources: 'assets',\n },\n mac: {\n category: options.config.mac?.category ?? 'public.app-category.utils',\n target: getTarget(),\n },\n //TODO Windows target\n dmg: {\n contents: [\n {\n x: 130,\n y: 130,\n },\n {\n x: 370,\n y: 130,\n type: 'link',\n path: '/Applications',\n },\n ],\n },\n publish: [\n options.s3 &&\n ({\n provider: 's3',\n endpoint: AWS_URL,\n channel,\n ...options.s3, // bucket\n } as S3Options),\n options.githubReleases &&\n GH_TOKEN &&\n (isGithubTag || isGithubMaster) &&\n ({\n provider: 'github',\n private: true,\n token: GH_TOKEN,\n releaseType: isGithubTag ? 'release' : 'draft',\n channel,\n ...options.githubReleases, // repo, owner\n } as GithubOptions),\n ].filter(Boolean) as never,\n extraMetadata: {\n version: getVersion(),\n },\n };\n\n if (isSkipPublish) {\n delete config.publish;\n delete (config as never as any).extraMetadata;\n }\n\n console.log('Electron Builder context', {\n isDevPublish,\n isGithubMaster,\n isGithubTag,\n isSkipPublish,\n isNoAutoDiscovery,\n channel,\n GITHUB_RUN_ID: GITHUB_RUN_ID,\n GITHUB_REF_TYPE: GITHUB_REF_TYPE,\n GITHUB_REF_NAME: GITHUB_REF_NAME,\n CSC_IDENTITY_AUTO_DISCOVERY: CSC_IDENTITY_AUTO_DISCOVERY,\n AWS_URL: AWS_URL,\n });\n\n console.log('Electron Builder configuration', JSON.stringify(config, null, 2));\n\n return config;\n}\n"],"
|
|
1
|
+
{"version":3,"file":"builder.js","names":[],"sources":["../src/builder.ts"],"sourcesContent":["import type { Configuration, MacConfiguration } from 'electron-builder';\nimport type { GithubOptions, S3Options } from 'builder-util-runtime';\n\nconst {\n GITHUB_REF_TYPE,\n GITHUB_REF_NAME,\n GITHUB_RUN_ID,\n GITHUB_REF,\n AWS_URL,\n AWS_ACCESS_KEY_ID,\n AWS_SECRET_ACCESS_KEY,\n GH_TOKEN,\n CSC_IDENTITY_AUTO_DISCOVERY,\n} = process.env;\n\nconst isGithubTag = GITHUB_REF_TYPE === 'tag';\nconst isGithubMaster = GITHUB_REF_TYPE === 'branch' && GITHUB_REF_NAME === 'master';\nconst isDevPublish = AWS_URL?.includes(':9000');\nconst isNoAutoDiscovery = CSC_IDENTITY_AUTO_DISCOVERY === 'false';\nconst isSkipPublish = !isDevPublish && !isGithubMaster && !isGithubTag;\n\n//FIXME Refine logic, tags should be versions, not channels, use branches? See how Changesets does it\nconst channel = isGithubTag ? 'latest' : GITHUB_REF_NAME; // https://www.electron.build/tutorials/release-using-channels.html\n\nfunction getVersion() {\n if (isGithubMaster) {\n return `0.0.${GITHUB_RUN_ID}`; //TODO Figure out last normal in master and bump it\n }\n if (isGithubTag) {\n return GITHUB_REF!.split('/').pop();\n }\n return `0.0.${Date.now()}`; //TODO Read from package.json?\n}\n\nfunction getTarget() {\n const arch = ['arm64', isNoAutoDiscovery ? '' : 'x64'].filter(Boolean) as any;\n\n const target: MacConfiguration['target'] = [\n {\n target: 'dmg',\n arch,\n },\n {\n target: 'zip',\n arch,\n },\n ];\n\n // Leave only DMG if no signing\n if (isNoAutoDiscovery) {\n console.log('Skipping signing...');\n delete process.env.CSC_LINK;\n return [target[0]]; // only keep DMG\n }\n\n return target;\n}\n\nexport function builerConfig(options: {\n config: Configuration;\n s3?: Pick<S3Options, 'bucket'> & Partial<S3Options>; //TODO Omit?\n githubReleases: Pick<GithubOptions, 'owner' | 'repo'> & Partial<GithubOptions>;\n}): Configuration {\n if (options.s3 && (!AWS_URL || !AWS_ACCESS_KEY_ID || !AWS_SECRET_ACCESS_KEY)) {\n throw new Error('Missing AWS configuration');\n }\n\n if (options.githubReleases && !GH_TOKEN) {\n throw new Error('Missing AWS configuration');\n }\n\n const config: Configuration = {\n files: [\n '**/*',\n '!electron-builder.js',\n '!electron-builder.yml',\n '!package.json',\n 'assets',\n ...(options.config.files as never),\n ],\n directories: {\n buildResources: 'assets',\n },\n mac: {\n category: options.config.mac?.category ?? 'public.app-category.utils',\n target: getTarget(),\n },\n //TODO Windows target\n dmg: {\n contents: [\n {\n x: 130,\n y: 130,\n },\n {\n x: 370,\n y: 130,\n type: 'link',\n path: '/Applications',\n },\n ],\n },\n publish: [\n options.s3 &&\n ({\n provider: 's3',\n endpoint: AWS_URL,\n channel,\n ...options.s3, // bucket\n } as S3Options),\n options.githubReleases &&\n GH_TOKEN &&\n (isGithubTag || isGithubMaster) &&\n ({\n provider: 'github',\n private: true,\n token: GH_TOKEN,\n releaseType: isGithubTag ? 'release' : 'draft',\n channel,\n ...options.githubReleases, // repo, owner\n } as GithubOptions),\n ].filter(Boolean) as never,\n extraMetadata: {\n version: getVersion(),\n },\n };\n\n if (isSkipPublish) {\n delete config.publish;\n delete (config as never as any).extraMetadata;\n }\n\n console.log('Electron Builder context', {\n isDevPublish,\n isGithubMaster,\n isGithubTag,\n isSkipPublish,\n isNoAutoDiscovery,\n channel,\n GITHUB_RUN_ID: GITHUB_RUN_ID,\n GITHUB_REF_TYPE: GITHUB_REF_TYPE,\n GITHUB_REF_NAME: GITHUB_REF_NAME,\n CSC_IDENTITY_AUTO_DISCOVERY: CSC_IDENTITY_AUTO_DISCOVERY,\n AWS_URL: AWS_URL,\n });\n\n console.log('Electron Builder configuration', JSON.stringify(config, null, 2));\n\n return config;\n}\n"],"mappings":";AAGA,IAAM,EACF,iBACA,iBACA,eACA,YACA,SACA,mBACA,uBACA,UACA,gCACA,QAAQ;AAEZ,IAAM,cAAc,oBAAoB;AACxC,IAAM,iBAAiB,oBAAoB,YAAY,oBAAoB;AAC3E,IAAM,eAAe,SAAS,SAAS,OAAO;AAC9C,IAAM,oBAAoB,gCAAgC;AAC1D,IAAM,gBAAgB,CAAC,gBAAgB,CAAC,kBAAkB,CAAC;AAG3D,IAAM,UAAU,cAAc,WAAW;AAEzC,SAAS,aAAa;CAClB,IAAI,gBACA,OAAO,OAAO;CAElB,IAAI,aACA,OAAO,WAAY,MAAM,GAAG,CAAC,CAAC,IAAI;CAEtC,OAAO,OAAO,KAAK,IAAI;AAC3B;AAEA,SAAS,YAAY;CACjB,MAAM,OAAO,CAAC,SAAS,oBAAoB,KAAK,KAAK,CAAC,CAAC,OAAO,OAAO;CAErE,MAAM,SAAqC,CACvC;EACI,QAAQ;EACR;CACJ,GACA;EACI,QAAQ;EACR;CACJ,CACJ;CAGA,IAAI,mBAAmB;EACnB,QAAQ,IAAI,qBAAqB;EACjC,OAAO,QAAQ,IAAI;EACnB,OAAO,CAAC,OAAO,EAAE;CACrB;CAEA,OAAO;AACX;AAEA,SAAgB,aAAa,SAIX;CACd,IAAI,QAAQ,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,wBAClD,MAAM,IAAI,MAAM,2BAA2B;CAG/C,IAAI,QAAQ,kBAAkB,CAAC,UAC3B,MAAM,IAAI,MAAM,2BAA2B;CAG/C,MAAM,SAAwB;EAC1B,OAAO;GACH;GACA;GACA;GACA;GACA;GACA,GAAI,QAAQ,OAAO;EACvB;EACA,aAAa,EACT,gBAAgB,SACpB;EACA,KAAK;GACD,UAAU,QAAQ,OAAO,KAAK,YAAY;GAC1C,QAAQ,UAAU;EACtB;EAEA,KAAK,EACD,UAAU,CACN;GACI,GAAG;GACH,GAAG;EACP,GACA;GACI,GAAG;GACH,GAAG;GACH,MAAM;GACN,MAAM;EACV,CACJ,EACJ;EACA,SAAS,CACL,QAAQ,MACH;GACG,UAAU;GACV,UAAU;GACV;GACA,GAAG,QAAQ;EACf,GACJ,QAAQ,kBACJ,aACC,eAAe,mBACf;GACG,UAAU;GACV,SAAS;GACT,OAAO;GACP,aAAa,cAAc,YAAY;GACvC;GACA,GAAG,QAAQ;EACf,CACR,CAAC,CAAC,OAAO,OAAO;EAChB,eAAe,EACX,SAAS,WAAW,EACxB;CACJ;CAEA,IAAI,eAAe;EACf,OAAO,OAAO;EACd,OAAQ,OAAwB;CACpC;CAEA,QAAQ,IAAI,4BAA4B;EACpC;EACA;EACA;EACA;EACA;EACA;EACe;EACE;EACA;EACY;EACpB;CACb,CAAC;CAED,QAAQ,IAAI,kCAAkC,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;CAE7E,OAAO;AACX"}
|
package/dist/images.js
CHANGED
|
@@ -1,25 +1,18 @@
|
|
|
1
1
|
import psd from "psd";
|
|
2
2
|
import sharp from "sharp";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const iconPng = sharp(path.join(electronAssetsPath, "icon.png"));
|
|
15
|
-
const bgPng = sharp(path.join(electronAssetsPath, "background@2x.png"));
|
|
16
|
-
await bgPng.resize(500).toFile(path.join(electronAssetsPath, "background.png"));
|
|
17
|
-
await iconPng.toFile(path.join(electronAssetsPath, "splash.webp"));
|
|
18
|
-
await iconPng.toFile(path.join(electronAssetsPath, "icon.icns"));
|
|
19
|
-
await iconPng.toFile(path.join(webPublicPath, "icon.png"));
|
|
20
|
-
await iconPng.resize(32).toFile(path.join(webPublicPath, "favicon.ico"));
|
|
4
|
+
//#region src/images.ts
|
|
5
|
+
async function generateImages({ iconPsdPath, dmgBackgroundPsdPath, electronAssetsPath, webPublicPath }) {
|
|
6
|
+
await (await psd.open(iconPsdPath)).image.saveAsPng(path.join(electronAssetsPath, "icon.png"));
|
|
7
|
+
await (await psd.open(dmgBackgroundPsdPath)).image.saveAsPng(path.join(electronAssetsPath, "background@2x.png"));
|
|
8
|
+
const iconPng = sharp(path.join(electronAssetsPath, "icon.png"));
|
|
9
|
+
await sharp(path.join(electronAssetsPath, "background@2x.png")).resize(500).toFile(path.join(electronAssetsPath, "background.png"));
|
|
10
|
+
await iconPng.toFile(path.join(electronAssetsPath, "splash.webp"));
|
|
11
|
+
await iconPng.toFile(path.join(electronAssetsPath, "icon.icns"));
|
|
12
|
+
await iconPng.toFile(path.join(webPublicPath, "icon.png"));
|
|
13
|
+
await iconPng.resize(32).toFile(path.join(webPublicPath, "favicon.ico"));
|
|
21
14
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
//# sourceMappingURL=images.js.map
|
|
15
|
+
//#endregion
|
|
16
|
+
export { generateImages };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=images.js.map
|
package/dist/images.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.js","sources":["../src/images.ts"],"sourcesContent":["import psd from 'psd';\nimport sharp from 'sharp';\nimport path from 'node:path';\n\nexport async function generateImages({\n iconPsdPath,\n dmgBackgroundPsdPath,\n electronAssetsPath,\n webPublicPath,\n}: {\n iconPsdPath: string;\n dmgBackgroundPsdPath: string;\n electronAssetsPath: string;\n webPublicPath: string;\n}): Promise<void> {\n const iconPsd = await psd.open(iconPsdPath);\n await iconPsd.image!.saveAsPng(path.join(electronAssetsPath, 'icon.png'));\n\n const bgPsd = await psd.open(dmgBackgroundPsdPath);\n await bgPsd.image!.saveAsPng(path.join(electronAssetsPath, 'background@2x.png'));\n\n const iconPng = sharp(path.join(electronAssetsPath, 'icon.png'));\n const bgPng = sharp(path.join(electronAssetsPath, 'background@2x.png'));\n\n await bgPng.resize(500).toFile(path.join(electronAssetsPath, 'background.png'));\n\n await iconPng.toFile(path.join(electronAssetsPath, 'splash.webp'));\n await iconPng.toFile(path.join(electronAssetsPath, 'icon.icns'));\n\n //TODO Crop without icon BG\n await iconPng.toFile(path.join(webPublicPath, 'icon.png'));\n await iconPng.resize(32).toFile(path.join(webPublicPath, 'favicon.ico'));\n}\n"],"
|
|
1
|
+
{"version":3,"file":"images.js","names":[],"sources":["../src/images.ts"],"sourcesContent":["import psd from 'psd';\nimport sharp from 'sharp';\nimport path from 'node:path';\n\nexport async function generateImages({\n iconPsdPath,\n dmgBackgroundPsdPath,\n electronAssetsPath,\n webPublicPath,\n}: {\n iconPsdPath: string;\n dmgBackgroundPsdPath: string;\n electronAssetsPath: string;\n webPublicPath: string;\n}): Promise<void> {\n const iconPsd = await psd.open(iconPsdPath);\n await iconPsd.image!.saveAsPng(path.join(electronAssetsPath, 'icon.png'));\n\n const bgPsd = await psd.open(dmgBackgroundPsdPath);\n await bgPsd.image!.saveAsPng(path.join(electronAssetsPath, 'background@2x.png'));\n\n const iconPng = sharp(path.join(electronAssetsPath, 'icon.png'));\n const bgPng = sharp(path.join(electronAssetsPath, 'background@2x.png'));\n\n await bgPng.resize(500).toFile(path.join(electronAssetsPath, 'background.png'));\n\n await iconPng.toFile(path.join(electronAssetsPath, 'splash.webp'));\n await iconPng.toFile(path.join(electronAssetsPath, 'icon.icns'));\n\n //TODO Crop without icon BG\n await iconPng.toFile(path.join(webPublicPath, 'icon.png'));\n await iconPng.resize(32).toFile(path.join(webPublicPath, 'favicon.ico'));\n}\n"],"mappings":";;;;AAIA,eAAsB,eAAe,EACjC,aACA,sBACA,oBACA,iBAMc;CAEd,OAAM,MADgB,IAAI,KAAK,WAAW,EAAA,CAC5B,MAAO,UAAU,KAAK,KAAK,oBAAoB,UAAU,CAAC;CAGxE,OAAM,MADc,IAAI,KAAK,oBAAoB,EAAA,CACrC,MAAO,UAAU,KAAK,KAAK,oBAAoB,mBAAmB,CAAC;CAE/E,MAAM,UAAU,MAAM,KAAK,KAAK,oBAAoB,UAAU,CAAC;CAG/D,MAFc,MAAM,KAAK,KAAK,oBAAoB,mBAAmB,CAE/D,CAAA,CAAM,OAAO,GAAG,CAAC,CAAC,OAAO,KAAK,KAAK,oBAAoB,gBAAgB,CAAC;CAE9E,MAAM,QAAQ,OAAO,KAAK,KAAK,oBAAoB,aAAa,CAAC;CACjE,MAAM,QAAQ,OAAO,KAAK,KAAK,oBAAoB,WAAW,CAAC;CAG/D,MAAM,QAAQ,OAAO,KAAK,KAAK,eAAe,UAAU,CAAC;CACzD,MAAM,QAAQ,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,eAAe,aAAa,CAAC;AAC3E"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './builder';
|
|
2
|
-
export * from './images';
|
|
1
|
+
export * from './builder.js';
|
|
2
|
+
export * from './images.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kirill.konshin/electron-builder",
|
|
3
3
|
"description": "Utilities",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.3",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"----- BUILD -----": "",
|
|
8
8
|
"clean": "rm -rf dist .tscache tsconfig.tsbuildinfo",
|
|
9
9
|
"build": "vite build",
|
|
10
|
-
"build:index": "ctix build",
|
|
11
|
-
"build:check-types": "attw --pack .",
|
|
12
10
|
"start": "yarn build --watch",
|
|
13
11
|
"wait": "wait-on ./dist/index.js",
|
|
14
12
|
"----- TEST -----": "",
|
|
15
|
-
"test
|
|
13
|
+
"test": "vitest run --coverage",
|
|
16
14
|
"test:watch": "vitest watch --coverage",
|
|
17
15
|
"----- STORYBOOK -----": "",
|
|
18
16
|
"storybook:start": "storybook dev -p 6006",
|
|
@@ -24,10 +22,12 @@
|
|
|
24
22
|
},
|
|
25
23
|
"devDependencies": {
|
|
26
24
|
"@kirill.konshin/utils-private": "*",
|
|
25
|
+
"builder-util-runtime": "^9.3.1",
|
|
27
26
|
"electron": "^37.2.5",
|
|
28
27
|
"electron-builder": "^26.0.12"
|
|
29
28
|
},
|
|
30
29
|
"peerDependencies": {
|
|
30
|
+
"builder-util-runtime": "^9",
|
|
31
31
|
"electron": "^37",
|
|
32
32
|
"electron-builder": "^26"
|
|
33
33
|
},
|
|
@@ -48,11 +48,27 @@
|
|
|
48
48
|
"module": "./dist/index.js",
|
|
49
49
|
"types": "./dist/index.d.ts",
|
|
50
50
|
"peerDependenciesMeta": {
|
|
51
|
+
"builder-util-runtime": {
|
|
52
|
+
"optional": true
|
|
53
|
+
},
|
|
51
54
|
"electron": {
|
|
52
55
|
"optional": true
|
|
53
56
|
},
|
|
54
57
|
"electron-builder": {
|
|
55
58
|
"optional": true
|
|
56
59
|
}
|
|
57
|
-
}
|
|
60
|
+
},
|
|
61
|
+
"repository": {
|
|
62
|
+
"type": "git",
|
|
63
|
+
"url": "https://github.com/kirill-konshin/utils.git",
|
|
64
|
+
"directory": "packages/electron-builder"
|
|
65
|
+
},
|
|
66
|
+
"nx": {
|
|
67
|
+
"tags": [
|
|
68
|
+
"platform:electron"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
"files": [
|
|
72
|
+
"dist"
|
|
73
|
+
]
|
|
58
74
|
}
|
package/.ctirc
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"options": [
|
|
3
|
-
{
|
|
4
|
-
"mode": "create",
|
|
5
|
-
"project": "tsconfig.json",
|
|
6
|
-
"include": "src/**/*.{ts,tsx}",
|
|
7
|
-
"exclude": [
|
|
8
|
-
"**/*.stories.*",
|
|
9
|
-
"**/*.test.*",
|
|
10
|
-
"**/*.fixture.*"
|
|
11
|
-
],
|
|
12
|
-
"startFrom": "src",
|
|
13
|
-
"backup": false,
|
|
14
|
-
"overwrite": true,
|
|
15
|
-
"generationStyle": "default-alias-named-star",
|
|
16
|
-
"output": "src",
|
|
17
|
-
"verbose": true
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
}
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
[36mvite v7.0.6 [32mbuilding SSR bundle for production...[36m[39m
|
|
2
|
-
- ctix 'create' mode start, ...
|
|
3
|
-
✔ /home/runner/work/utils/utils/packages/electron-builder/tsconfig.json loading complete!
|
|
4
|
-
✔ analysis export statements completed!
|
|
5
|
-
- build "index.ts" file start
|
|
6
|
-
- output file exists check, ...
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
✔ ctix 'create' mode complete!
|
|
10
|
-
transforming...
|
|
11
|
-
[32m✓[39m 3 modules transformed.
|
|
12
|
-
rendering chunks...
|
|
13
|
-
|
|
14
|
-
[vite:dts] Start generate declaration files...
|
|
15
|
-
[2mdist/[22m[36mindex.js [39m[1m[2m0.17 kB[22m[1m[22m[2m │ map: 0.09 kB[22m
|
|
16
|
-
[2mdist/[22m[36mimages.js [39m[1m[2m1.02 kB[22m[1m[22m[2m │ map: 1.94 kB[22m
|
|
17
|
-
[2mdist/[22m[36mbuilder.js [39m[1m[2m3.03 kB[22m[1m[22m[2m │ map: 6.73 kB[22m
|
|
18
|
-
[vite:dts] Declaration files built in 1463ms.
|
|
19
|
-
|
|
20
|
-
[32m✓ built in 4.62s[39m
|
|
21
|
-
Updated package.json with exports
|
package/CHANGELOG.md
DELETED
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
package/src/builder.ts
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import type { Configuration, MacConfiguration } from 'electron-builder';
|
|
2
|
-
import type { GithubOptions, S3Options } from 'builder-util-runtime';
|
|
3
|
-
|
|
4
|
-
const {
|
|
5
|
-
GITHUB_REF_TYPE,
|
|
6
|
-
GITHUB_REF_NAME,
|
|
7
|
-
GITHUB_RUN_ID,
|
|
8
|
-
GITHUB_REF,
|
|
9
|
-
AWS_URL,
|
|
10
|
-
AWS_ACCESS_KEY_ID,
|
|
11
|
-
AWS_SECRET_ACCESS_KEY,
|
|
12
|
-
GH_TOKEN,
|
|
13
|
-
CSC_IDENTITY_AUTO_DISCOVERY,
|
|
14
|
-
} = process.env;
|
|
15
|
-
|
|
16
|
-
const isGithubTag = GITHUB_REF_TYPE === 'tag';
|
|
17
|
-
const isGithubMaster = GITHUB_REF_TYPE === 'branch' && GITHUB_REF_NAME === 'master';
|
|
18
|
-
const isDevPublish = AWS_URL?.includes(':9000');
|
|
19
|
-
const isNoAutoDiscovery = CSC_IDENTITY_AUTO_DISCOVERY === 'false';
|
|
20
|
-
const isSkipPublish = !isDevPublish && !isGithubMaster && !isGithubTag;
|
|
21
|
-
|
|
22
|
-
//FIXME Refine logic, tags should be versions, not channels, use branches? See how Changesets does it
|
|
23
|
-
const channel = isGithubTag ? 'latest' : GITHUB_REF_NAME; // https://www.electron.build/tutorials/release-using-channels.html
|
|
24
|
-
|
|
25
|
-
function getVersion() {
|
|
26
|
-
if (isGithubMaster) {
|
|
27
|
-
return `0.0.${GITHUB_RUN_ID}`; //TODO Figure out last normal in master and bump it
|
|
28
|
-
}
|
|
29
|
-
if (isGithubTag) {
|
|
30
|
-
return GITHUB_REF!.split('/').pop();
|
|
31
|
-
}
|
|
32
|
-
return `0.0.${Date.now()}`; //TODO Read from package.json?
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function getTarget() {
|
|
36
|
-
const arch = ['arm64', isNoAutoDiscovery ? '' : 'x64'].filter(Boolean) as any;
|
|
37
|
-
|
|
38
|
-
const target: MacConfiguration['target'] = [
|
|
39
|
-
{
|
|
40
|
-
target: 'dmg',
|
|
41
|
-
arch,
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
target: 'zip',
|
|
45
|
-
arch,
|
|
46
|
-
},
|
|
47
|
-
];
|
|
48
|
-
|
|
49
|
-
// Leave only DMG if no signing
|
|
50
|
-
if (isNoAutoDiscovery) {
|
|
51
|
-
console.log('Skipping signing...');
|
|
52
|
-
delete process.env.CSC_LINK;
|
|
53
|
-
return [target[0]]; // only keep DMG
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return target;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export function builerConfig(options: {
|
|
60
|
-
config: Configuration;
|
|
61
|
-
s3?: Pick<S3Options, 'bucket'> & Partial<S3Options>; //TODO Omit?
|
|
62
|
-
githubReleases: Pick<GithubOptions, 'owner' | 'repo'> & Partial<GithubOptions>;
|
|
63
|
-
}): Configuration {
|
|
64
|
-
if (options.s3 && (!AWS_URL || !AWS_ACCESS_KEY_ID || !AWS_SECRET_ACCESS_KEY)) {
|
|
65
|
-
throw new Error('Missing AWS configuration');
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
if (options.githubReleases && !GH_TOKEN) {
|
|
69
|
-
throw new Error('Missing AWS configuration');
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const config: Configuration = {
|
|
73
|
-
files: [
|
|
74
|
-
'**/*',
|
|
75
|
-
'!electron-builder.js',
|
|
76
|
-
'!electron-builder.yml',
|
|
77
|
-
'!package.json',
|
|
78
|
-
'assets',
|
|
79
|
-
...(options.config.files as never),
|
|
80
|
-
],
|
|
81
|
-
directories: {
|
|
82
|
-
buildResources: 'assets',
|
|
83
|
-
},
|
|
84
|
-
mac: {
|
|
85
|
-
category: options.config.mac?.category ?? 'public.app-category.utils',
|
|
86
|
-
target: getTarget(),
|
|
87
|
-
},
|
|
88
|
-
//TODO Windows target
|
|
89
|
-
dmg: {
|
|
90
|
-
contents: [
|
|
91
|
-
{
|
|
92
|
-
x: 130,
|
|
93
|
-
y: 130,
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
x: 370,
|
|
97
|
-
y: 130,
|
|
98
|
-
type: 'link',
|
|
99
|
-
path: '/Applications',
|
|
100
|
-
},
|
|
101
|
-
],
|
|
102
|
-
},
|
|
103
|
-
publish: [
|
|
104
|
-
options.s3 &&
|
|
105
|
-
({
|
|
106
|
-
provider: 's3',
|
|
107
|
-
endpoint: AWS_URL,
|
|
108
|
-
channel,
|
|
109
|
-
...options.s3, // bucket
|
|
110
|
-
} as S3Options),
|
|
111
|
-
options.githubReleases &&
|
|
112
|
-
GH_TOKEN &&
|
|
113
|
-
(isGithubTag || isGithubMaster) &&
|
|
114
|
-
({
|
|
115
|
-
provider: 'github',
|
|
116
|
-
private: true,
|
|
117
|
-
token: GH_TOKEN,
|
|
118
|
-
releaseType: isGithubTag ? 'release' : 'draft',
|
|
119
|
-
channel,
|
|
120
|
-
...options.githubReleases, // repo, owner
|
|
121
|
-
} as GithubOptions),
|
|
122
|
-
].filter(Boolean) as never,
|
|
123
|
-
extraMetadata: {
|
|
124
|
-
version: getVersion(),
|
|
125
|
-
},
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
if (isSkipPublish) {
|
|
129
|
-
delete config.publish;
|
|
130
|
-
delete (config as never as any).extraMetadata;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
console.log('Electron Builder context', {
|
|
134
|
-
isDevPublish,
|
|
135
|
-
isGithubMaster,
|
|
136
|
-
isGithubTag,
|
|
137
|
-
isSkipPublish,
|
|
138
|
-
isNoAutoDiscovery,
|
|
139
|
-
channel,
|
|
140
|
-
GITHUB_RUN_ID: GITHUB_RUN_ID,
|
|
141
|
-
GITHUB_REF_TYPE: GITHUB_REF_TYPE,
|
|
142
|
-
GITHUB_REF_NAME: GITHUB_REF_NAME,
|
|
143
|
-
CSC_IDENTITY_AUTO_DISCOVERY: CSC_IDENTITY_AUTO_DISCOVERY,
|
|
144
|
-
AWS_URL: AWS_URL,
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
console.log('Electron Builder configuration', JSON.stringify(config, null, 2));
|
|
148
|
-
|
|
149
|
-
return config;
|
|
150
|
-
}
|
package/src/images.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import psd from 'psd';
|
|
2
|
-
import sharp from 'sharp';
|
|
3
|
-
import path from 'node:path';
|
|
4
|
-
|
|
5
|
-
export async function generateImages({
|
|
6
|
-
iconPsdPath,
|
|
7
|
-
dmgBackgroundPsdPath,
|
|
8
|
-
electronAssetsPath,
|
|
9
|
-
webPublicPath,
|
|
10
|
-
}: {
|
|
11
|
-
iconPsdPath: string;
|
|
12
|
-
dmgBackgroundPsdPath: string;
|
|
13
|
-
electronAssetsPath: string;
|
|
14
|
-
webPublicPath: string;
|
|
15
|
-
}): Promise<void> {
|
|
16
|
-
const iconPsd = await psd.open(iconPsdPath);
|
|
17
|
-
await iconPsd.image!.saveAsPng(path.join(electronAssetsPath, 'icon.png'));
|
|
18
|
-
|
|
19
|
-
const bgPsd = await psd.open(dmgBackgroundPsdPath);
|
|
20
|
-
await bgPsd.image!.saveAsPng(path.join(electronAssetsPath, 'background@2x.png'));
|
|
21
|
-
|
|
22
|
-
const iconPng = sharp(path.join(electronAssetsPath, 'icon.png'));
|
|
23
|
-
const bgPng = sharp(path.join(electronAssetsPath, 'background@2x.png'));
|
|
24
|
-
|
|
25
|
-
await bgPng.resize(500).toFile(path.join(electronAssetsPath, 'background.png'));
|
|
26
|
-
|
|
27
|
-
await iconPng.toFile(path.join(electronAssetsPath, 'splash.webp'));
|
|
28
|
-
await iconPng.toFile(path.join(electronAssetsPath, 'icon.icns'));
|
|
29
|
-
|
|
30
|
-
//TODO Crop without icon BG
|
|
31
|
-
await iconPng.toFile(path.join(webPublicPath, 'icon.png'));
|
|
32
|
-
await iconPng.resize(32).toFile(path.join(webPublicPath, 'favicon.ico'));
|
|
33
|
-
}
|
package/src/index.ts
DELETED
package/tsconfig.json
DELETED
package/turbo.json
DELETED
package/vite.config.ts
DELETED