pake-cli 0.0.1-beta.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.
- package/README.md +110 -0
- package/README_EN.md +110 -0
- package/dist/.gitkeep +0 -0
- package/dist/builders/BuilderFactory.js +11 -0
- package/dist/builders/BuilderFactory.js.map +1 -0
- package/dist/builders/LinuxBuilder.js +2 -0
- package/dist/builders/LinuxBuilder.js.map +1 -0
- package/dist/builders/MacBuilder.js +74 -0
- package/dist/builders/MacBuilder.js.map +1 -0
- package/dist/builders/WinBulider.js +2 -0
- package/dist/builders/WinBulider.js.map +1 -0
- package/dist/builders/base.js +2 -0
- package/dist/builders/base.js.map +1 -0
- package/dist/builders/common.js +38 -0
- package/dist/builders/common.js.map +1 -0
- package/dist/cli.js +34 -0
- package/dist/cli.js.map +1 -0
- package/dist/defaults.js +10 -0
- package/dist/defaults.js.map +1 -0
- package/dist/helpers/dir.js +9 -0
- package/dist/helpers/dir.js.map +1 -0
- package/dist/helpers/path.js +2 -0
- package/dist/helpers/path.js.map +1 -0
- package/dist/helpers/prepareCheck.js +53 -0
- package/dist/helpers/prepareCheck.js.map +1 -0
- package/dist/helpers/rust.js +31 -0
- package/dist/helpers/rust.js.map +1 -0
- package/dist/helpers/tauriConfig.js +8 -0
- package/dist/helpers/tauriConfig.js.map +1 -0
- package/dist/options/icon.js +111 -0
- package/dist/options/icon.js.map +1 -0
- package/dist/options/index.js +27 -0
- package/dist/options/index.js.map +1 -0
- package/dist/options/title.js +25 -0
- package/dist/options/title.js.map +1 -0
- package/dist/pake.js +43 -0
- package/dist/pake.js.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/platform.js +4 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/shell.js +14 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/url.js +20 -0
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/validate.js +18 -0
- package/dist/utils/validate.js.map +1 -0
- package/package.json +60 -0
- package/src-tauri/Cargo.lock +3609 -0
- package/src-tauri/Cargo.toml +30 -0
- package/src-tauri/build.rs +3 -0
- package/src-tauri/icons/anymind.icns +0 -0
- package/src-tauri/icons/code.icns +0 -0
- package/src-tauri/icons/fanfou.icns +0 -0
- package/src-tauri/icons/flomo.icns +0 -0
- package/src-tauri/icons/fone.icns +0 -0
- package/src-tauri/icons/jdread.icns +0 -0
- package/src-tauri/icons/jike.icns +0 -0
- package/src-tauri/icons/roam.icns +0 -0
- package/src-tauri/icons/tool.icns +0 -0
- package/src-tauri/icons/twitter.icns +0 -0
- package/src-tauri/icons/vercel.icns +0 -0
- package/src-tauri/icons/weRead.icns +0 -0
- package/src-tauri/icons/whatsapp.icns +0 -0
- package/src-tauri/icons/witeboard.icns +0 -0
- package/src-tauri/icons/yuque.icns +0 -0
- package/src-tauri/src/main.rs +114 -0
- package/src-tauri/src/pake.js +130 -0
- package/src-tauri/tauri.conf.json +63 -0
- package/tsconfig.json +17 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import axios from 'axios';
|
|
11
|
+
import { fileTypeFromBuffer } from 'file-type';
|
|
12
|
+
import { dir } from 'tmp-promise';
|
|
13
|
+
import path from 'path';
|
|
14
|
+
import pageIcon from 'page-icon';
|
|
15
|
+
import png2icons from 'png2icons';
|
|
16
|
+
import ICO from 'icojs';
|
|
17
|
+
import fs from 'fs/promises';
|
|
18
|
+
export function handleIcon(options, url) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
console.log(options.icon);
|
|
21
|
+
if (options.icon) {
|
|
22
|
+
if (options.icon.startsWith('http')) {
|
|
23
|
+
return downloadIcon(options.icon);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return path.resolve(options.icon);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (!options.icon) {
|
|
30
|
+
return inferIcon(options.name, url);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export function inferIcon(name, url) {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
let icon = yield getIconFromMacosIcons(name);
|
|
37
|
+
if (!icon) {
|
|
38
|
+
icon = yield getIconFromPageUrl(url);
|
|
39
|
+
}
|
|
40
|
+
if (!icon) {
|
|
41
|
+
// TODO default icon
|
|
42
|
+
}
|
|
43
|
+
return icon;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
export function getIconFromPageUrl(url) {
|
|
47
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
+
const icon = yield pageIcon(url);
|
|
49
|
+
console.log(icon);
|
|
50
|
+
if (icon.ext === '.ico') {
|
|
51
|
+
const a = yield ICO.parse(icon.data);
|
|
52
|
+
icon.data = Buffer.from(a[0].buffer);
|
|
53
|
+
}
|
|
54
|
+
const iconDir = (yield dir()).path;
|
|
55
|
+
const iconPath = path.join(iconDir, `/icon.icns`);
|
|
56
|
+
const out = png2icons.createICNS(icon.data, png2icons.BILINEAR, 0);
|
|
57
|
+
yield fs.writeFile(iconPath, out);
|
|
58
|
+
return iconPath;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
export function getIconFromMacosIcons(name) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
const data = {
|
|
64
|
+
query: name,
|
|
65
|
+
filters: 'approved:true',
|
|
66
|
+
hitsPerPage: 10,
|
|
67
|
+
page: 1,
|
|
68
|
+
};
|
|
69
|
+
const res = yield axios.post('https://p1txh7zfb3-2.algolianet.com/1/indexes/macOSicons/query?x-algolia-agent=Algolia%20for%20JavaScript%20(4.13.1)%3B%20Browser', data, {
|
|
70
|
+
headers: {
|
|
71
|
+
'x-algolia-api-key': '0ba04276e457028f3e11e38696eab32c',
|
|
72
|
+
'x-algolia-application-id': 'P1TXH7ZFB3',
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
if (!res.data.hits.length) {
|
|
76
|
+
return '';
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
return downloadIcon(res.data.hits[0].icnsUrl);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
export function downloadIcon(iconUrl) {
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
let iconResponse;
|
|
86
|
+
try {
|
|
87
|
+
iconResponse = yield axios.get(iconUrl, {
|
|
88
|
+
responseType: 'arraybuffer',
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
if (error.response && error.response.status === 404) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
const iconData = yield iconResponse.data;
|
|
98
|
+
if (!iconData) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
const fileDetails = yield fileTypeFromBuffer(iconData);
|
|
102
|
+
if (!fileDetails) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
const { path } = yield dir();
|
|
106
|
+
const iconPath = `${path}/icon.${fileDetails.ext}`;
|
|
107
|
+
yield fs.writeFile(iconPath, iconData);
|
|
108
|
+
return iconPath;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../../bin/options/icon.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAAE,GAAG,EAAQ,MAAM,aAAa,CAAC;AACxC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B,MAAM,UAAgB,UAAU,CAAC,OAAuB,EAAE,GAAW;;QACnE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBACnC,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACnC;iBAAM;gBACL,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACnC;SACF;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjB,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACrC;IACH,CAAC;CAAA;AAED,MAAM,UAAgB,SAAS,CAAC,IAAY,EAAE,GAAW;;QACvD,IAAI,IAAI,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,IAAI,EAAE;YACT,oBAAoB;SACrB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CAAA;AAED,MAAM,UAAgB,kBAAkB,CAAC,GAAW;;QAClD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE;YACvB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SACtC;QAED,MAAM,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAElD,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEnE,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA;AAED,MAAM,UAAgB,qBAAqB,CAAC,IAAY;;QACtD,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,EAAE;YACf,IAAI,EAAE,CAAC;SACR,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,mIAAmI,EAAE,IAAI,EAAE;YACtK,OAAO,EAAE;gBACP,mBAAmB,EAAE,kCAAkC;gBACvD,0BAA0B,EAAE,YAAY;aACzC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACzB,OAAO,EAAE,CAAC;SACX;aAAM;YACL,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SAC/C;IACH,CAAC;CAAA;AAED,MAAM,UAAgB,YAAY,CAAC,OAAe;;QAChD,IAAI,YAAY,CAAC;QACjB,IAAI;YACF,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;gBACtC,YAAY,EAAE,aAAa;aAC5B,CAAC,CAAC;SACJ;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;gBACnD,OAAO,IAAI,CAAC;aACb;YACD,MAAM,KAAK,CAAC;SACb;QAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,IAAI,CAAC;SACb;QACD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,GAAG,IAAI,SAAS,WAAW,CAAC,GAAG,EAAE,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACvC,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { getIdentifier } from '../helpers/tauriConfig.js';
|
|
11
|
+
import { handleIcon } from './icon.js';
|
|
12
|
+
import { getTitleByURL } from './title.js';
|
|
13
|
+
export default function handleOptions(options, url) {
|
|
14
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
const appOptions = Object.assign(Object.assign({}, options), { identifier: '' });
|
|
16
|
+
if (!appOptions.title) {
|
|
17
|
+
appOptions.title = yield getTitleByURL(url);
|
|
18
|
+
}
|
|
19
|
+
if (!appOptions.name) {
|
|
20
|
+
appOptions.name = appOptions.title;
|
|
21
|
+
}
|
|
22
|
+
appOptions.identifier = getIdentifier(appOptions.name, url);
|
|
23
|
+
appOptions.icon = yield handleIcon(appOptions, url);
|
|
24
|
+
return appOptions;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../bin/options/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,CAAC,OAAO,UAAgB,aAAa,CAAC,OAAuB,EAAE,GAAW;;QAC9E,MAAM,UAAU,mCACX,OAAO,KACV,UAAU,EAAE,EAAE,GACf,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACrB,UAAU,CAAC,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;SAC7C;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YACpB,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;SACpC;QAED,UAAU,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAE5D,UAAU,CAAC,IAAI,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAEpD,OAAO,UAAU,CAAC;IACpB,CAAC;CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import axios from 'axios';
|
|
11
|
+
const USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36';
|
|
12
|
+
export function getTitleByURL(url) {
|
|
13
|
+
var _a, _b, _c;
|
|
14
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
const { data } = yield axios.get(url, {
|
|
16
|
+
headers: {
|
|
17
|
+
// Fake user agent for pages like http://messenger.com
|
|
18
|
+
'User-Agent': USER_AGENT,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
const title = (_c = (_b = (_a = /<\s*title.*?>(?<title>.+?)<\s*\/title\s*?>/i.exec(data)) === null || _a === void 0 ? void 0 : _a.groups) === null || _b === void 0 ? void 0 : _b.title) !== null && _c !== void 0 ? _c : 'Webapp';
|
|
22
|
+
return title;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=title.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"title.js","sourceRoot":"","sources":["../../bin/options/title.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,GAAG,uHAAuH,CAAC;AAE3I,MAAM,UAAgB,aAAa,CAAC,GAAW;;;QAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,CAAS,GAAG,EAAE;YAC5C,OAAO,EAAE;gBACP,sDAAsD;gBACtD,YAAY,EAAE,UAAU;aACzB;SACF,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAA,MAAA,MAAA,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC,0CAAE,MAAM,0CAAE,KAAK,mCAAI,QAAQ,CAAC;QAClG,OAAO,KAAK,CAAC;;CACd"}
|
package/dist/pake.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import fs from 'fs/promises';
|
|
11
|
+
import path from 'path';
|
|
12
|
+
import shelljs from 'shelljs';
|
|
13
|
+
import { getDirName } from './helpers/dir.js';
|
|
14
|
+
export default function pake(url, options) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
console.log('PakeAppOptions', options);
|
|
17
|
+
const tauriConfPath = path.join(getDirName(), '../..', 'src-tauri/tauri.conf.json');
|
|
18
|
+
const tauriConfString = yield fs.readFile(tauriConfPath, 'utf-8');
|
|
19
|
+
try {
|
|
20
|
+
const tauriConf = JSON.parse(tauriConfString);
|
|
21
|
+
const { width, height, fullscreen, transparent, title, resizable, identifier, name } = options;
|
|
22
|
+
const tauriConfWindowOptions = {
|
|
23
|
+
width,
|
|
24
|
+
height,
|
|
25
|
+
fullscreen,
|
|
26
|
+
transparent,
|
|
27
|
+
title,
|
|
28
|
+
resizable,
|
|
29
|
+
};
|
|
30
|
+
Object.assign(tauriConf.tauri.windows[0], Object.assign({ url }, tauriConfWindowOptions));
|
|
31
|
+
tauriConf.package.productName = name;
|
|
32
|
+
tauriConf.tauri.bundle.identifier = identifier;
|
|
33
|
+
tauriConf.tauri.bundle.icon = [options.icon];
|
|
34
|
+
yield fs.writeFile(tauriConfPath, JSON.stringify(tauriConf, null, 2));
|
|
35
|
+
shelljs.exec('npm run build');
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
console.error('handle auri.conf.json error', error);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=pake.js.map
|
package/dist/pake.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pake.js","sourceRoot":"","sources":["../bin/pake.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,CAAC,OAAO,UAAgB,IAAI,CAAC,GAAW,EAAE,OAAuB;;QACrE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,2BAA2B,CAAC,CAAC;QACpF,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAE9C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;YAE/F,MAAM,sBAAsB,GAAG;gBAC7B,KAAK;gBACL,MAAM;gBACN,UAAU;gBACV,WAAW;gBACX,KAAK;gBACL,SAAS;aACV,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAI,GAAG,IAAK,sBAAsB,EAAG,CAAC;YAC9E,SAAS,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;YACrC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;YAC/C,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE7C,MAAM,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAC/B;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO;SACR;IACH,CAAC;CAAA"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../bin/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../bin/utils/platform.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAEpD,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAEnD,MAAM,CAAC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import shelljs from 'shelljs';
|
|
2
|
+
export function shellExec(command) {
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
shelljs.exec(command, { async: true, silent: false }, (code) => {
|
|
5
|
+
if (code === 0) {
|
|
6
|
+
resolve(0);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
reject(new Error(`${code}`));
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../bin/utils/shell.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAC,EAAE,CAAC,IAAI,EAAE,EAAE;YAC/D,IAAI,IAAI,KAAK,CAAC,EAAE;gBACf,OAAO,CAAC,CAAC,CAAC,CAAC;aACX;iBAAM;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;aAC7B;QACF,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import url from 'url';
|
|
2
|
+
import isurl from 'is-url';
|
|
3
|
+
function appendProtocol(inputUrl) {
|
|
4
|
+
const parsed = url.parse(inputUrl);
|
|
5
|
+
if (!parsed.protocol) {
|
|
6
|
+
const urlWithProtocol = `https://${inputUrl}`;
|
|
7
|
+
return urlWithProtocol;
|
|
8
|
+
}
|
|
9
|
+
return inputUrl;
|
|
10
|
+
}
|
|
11
|
+
export function normalizeUrl(urlToNormalize) {
|
|
12
|
+
const urlWithProtocol = appendProtocol(urlToNormalize);
|
|
13
|
+
if (isurl(urlWithProtocol)) {
|
|
14
|
+
return urlWithProtocol;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
throw new Error(`Your url "${urlWithProtocol}" is invalid`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../bin/utils/url.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,QAAQ,CAAC;AAE3B,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;QACpB,MAAM,eAAe,GAAG,WAAW,QAAQ,EAAE,CAAC;QAC9C,OAAO,eAAe,CAAC;KACxB;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,cAAsB;IACjD,MAAM,eAAe,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAEvD,IAAI,KAAK,CAAC,eAAe,CAAC,EAAE;QAC1B,OAAO,eAAe,CAAC;KACxB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,aAAa,eAAe,cAAc,CAAC,CAAC;KAC7D;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as Commander from 'commander';
|
|
2
|
+
import { normalizeUrl } from './url.js';
|
|
3
|
+
export function validateNumberInput(value) {
|
|
4
|
+
const parsedValue = Number(value);
|
|
5
|
+
if (isNaN(parsedValue)) {
|
|
6
|
+
throw new Commander.InvalidArgumentError('Not a number.');
|
|
7
|
+
}
|
|
8
|
+
return parsedValue;
|
|
9
|
+
}
|
|
10
|
+
export function validateUrlInput(url) {
|
|
11
|
+
try {
|
|
12
|
+
return normalizeUrl(url);
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
throw new Commander.InvalidArgumentError(error.message);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../bin/utils/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;QACtB,MAAM,IAAI,SAAS,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;KAC3D;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,IAAI;QACF,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;KAC1B;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACzD;AACH,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pake-cli",
|
|
3
|
+
"version": "0.0.1-beta.1",
|
|
4
|
+
"description": "用 Rust 来打包你的 App,底层使用 Tauri,当前支持微信读书、Flomo、Vercel",
|
|
5
|
+
"bin": {
|
|
6
|
+
"pake": "dist/cli.js"
|
|
7
|
+
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/tw93/pake.git"
|
|
11
|
+
},
|
|
12
|
+
"author": {
|
|
13
|
+
"name": "Tw93",
|
|
14
|
+
"email": "tw93@qq.com"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"src-tauri",
|
|
19
|
+
"README_EN.md",
|
|
20
|
+
"README.md",
|
|
21
|
+
"tsconfig.json"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"start": "npm run dev",
|
|
25
|
+
"dev": "npm run tauri dev",
|
|
26
|
+
"build": "npm run tauri build -- --target universal-apple-darwin",
|
|
27
|
+
"tauri": "tauri",
|
|
28
|
+
"cli": "tsc && (concurrently \"tsc -w\" \"tsc-alias -w\")",
|
|
29
|
+
"cli:build": "tsc && tsc-alias"
|
|
30
|
+
},
|
|
31
|
+
"type": "module",
|
|
32
|
+
"exports": "./dist/pake.js",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@tauri-apps/api": "^1.0.2",
|
|
36
|
+
"app-root-path": "^3.1.0",
|
|
37
|
+
"axios": "^1.1.3",
|
|
38
|
+
"file-type": "^18.0.0",
|
|
39
|
+
"icojs": "^0.17.0",
|
|
40
|
+
"is-url": "^1.2.4",
|
|
41
|
+
"ora": "^6.1.2",
|
|
42
|
+
"page-icon": "^0.4.0",
|
|
43
|
+
"png2icons": "^2.0.1",
|
|
44
|
+
"prompts": "^2.4.2",
|
|
45
|
+
"tmp-promise": "^3.0.3"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@tauri-apps/cli": "^1.0.2",
|
|
49
|
+
"@types/is-url": "^1.2.30",
|
|
50
|
+
"@types/page-icon": "^0.3.4",
|
|
51
|
+
"@types/prompts": "^2.4.1",
|
|
52
|
+
"@types/shelljs": "^0.8.11",
|
|
53
|
+
"@types/tmp": "^0.2.3",
|
|
54
|
+
"commander": "^9.4.1",
|
|
55
|
+
"concurrently": "^7.5.0",
|
|
56
|
+
"shelljs": "^0.8.5",
|
|
57
|
+
"tsc-alias": "^1.7.1",
|
|
58
|
+
"typescript": "^4.8.4"
|
|
59
|
+
}
|
|
60
|
+
}
|