✨ 2.0.7-beta
This commit is contained in:
22
bin/builders/common.ts
vendored
22
bin/builders/common.ts
vendored
@@ -1,30 +1,12 @@
|
|||||||
import { PakeAppOptions } from '@/types.js';
|
import { PakeAppOptions,TauriConfig } from '@/types.js';
|
||||||
import prompts from 'prompts';
|
import prompts from 'prompts';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import fs from 'fs/promises';
|
import fs from 'fs/promises';
|
||||||
import fs2 from 'fs-extra';
|
import fs2 from 'fs-extra';
|
||||||
import {TauriConfig} from 'tauri/src/types';
|
|
||||||
|
|
||||||
import { npmDirectory } from '@/utils/dir.js';
|
import { npmDirectory } from '@/utils/dir.js';
|
||||||
import logger from '@/options/logger.js';
|
import logger from '@/options/logger.js';
|
||||||
|
|
||||||
type DangerousRemoteDomainIpAccess = {
|
|
||||||
domain: string;
|
|
||||||
windows: string[];
|
|
||||||
enableTauriAPI: boolean;
|
|
||||||
schema?: string;
|
|
||||||
plugins?: string[];
|
|
||||||
}
|
|
||||||
|
|
||||||
// https://tauri.app/v1/api/config/#remotedomainaccessscope
|
|
||||||
type NextTauriConfig = TauriConfig & {
|
|
||||||
tauri: {
|
|
||||||
security: {
|
|
||||||
dangerousRemoteDomainIpcAccess?: DangerousRemoteDomainIpAccess[]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export async function promptText(message: string, initial?: string) {
|
export async function promptText(message: string, initial?: string) {
|
||||||
const response = await prompts({
|
const response = await prompts({
|
||||||
@@ -36,7 +18,7 @@ export async function promptText(message: string, initial?: string) {
|
|||||||
return response.content;
|
return response.content;
|
||||||
}
|
}
|
||||||
|
|
||||||
function setSecurityConfigWithUrl(tauriConfig: NextTauriConfig, url: string) {
|
function setSecurityConfigWithUrl(tauriConfig: TauriConfig, url: string) {
|
||||||
const myURL = new URL(url);
|
const myURL = new URL(url);
|
||||||
const hostname = myURL.hostname;
|
const hostname = myURL.hostname;
|
||||||
tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = hostname;
|
tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = hostname;
|
||||||
|
|||||||
152
bin/types.ts
vendored
152
bin/types.ts
vendored
@@ -48,3 +48,155 @@ export interface PakeCliOptions {
|
|||||||
export interface PakeAppOptions extends PakeCliOptions {
|
export interface PakeAppOptions extends PakeCliOptions {
|
||||||
identifier: string;
|
identifier: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface TauriBuildConfig {
|
||||||
|
/**
|
||||||
|
* the path to the app's dist dir
|
||||||
|
* this path must contain your index.html file
|
||||||
|
*/
|
||||||
|
distDir: string
|
||||||
|
/**
|
||||||
|
* the app's dev server URL, or the path to the directory containing an index.html to open
|
||||||
|
*/
|
||||||
|
devPath: string
|
||||||
|
/**
|
||||||
|
* a shell command to run before `tauri dev` kicks in
|
||||||
|
*/
|
||||||
|
beforeDevCommand?: string
|
||||||
|
/**
|
||||||
|
* a shell command to run before `tauri build` kicks in
|
||||||
|
*/
|
||||||
|
beforeBuildCommand?: string
|
||||||
|
withGlobalTauri?: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
type DangerousRemoteDomainIpAccess = {
|
||||||
|
domain: string;
|
||||||
|
windows: string[];
|
||||||
|
enableTauriAPI: boolean;
|
||||||
|
schema?: string;
|
||||||
|
plugins?: string[];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tauri configuration
|
||||||
|
*/
|
||||||
|
export interface TauriConfig {
|
||||||
|
/**
|
||||||
|
* build/dev configuration
|
||||||
|
*/
|
||||||
|
build: TauriBuildConfig
|
||||||
|
/**
|
||||||
|
* the context of the current `tauri dev` or `tauri build`
|
||||||
|
*/
|
||||||
|
ctx: {
|
||||||
|
/**
|
||||||
|
* whether we're building for production or not
|
||||||
|
*/
|
||||||
|
prod?: boolean
|
||||||
|
/**
|
||||||
|
* whether we're running on the dev environment or not
|
||||||
|
*/
|
||||||
|
dev?: boolean
|
||||||
|
/**
|
||||||
|
* the target of the compilation (see `rustup target list`)
|
||||||
|
*/
|
||||||
|
target?: string
|
||||||
|
/**
|
||||||
|
* whether the app should be built on debug mode or not
|
||||||
|
*/
|
||||||
|
debug?: boolean
|
||||||
|
/**
|
||||||
|
* defines we should exit the `tauri dev` process if a Rust code error is found
|
||||||
|
*/
|
||||||
|
exitOnPanic?: boolean
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* tauri root configuration object
|
||||||
|
*/
|
||||||
|
tauri: {
|
||||||
|
/**
|
||||||
|
* the embedded server configuration
|
||||||
|
*/
|
||||||
|
embeddedServer: {
|
||||||
|
/**
|
||||||
|
* whether we should use the embedded-server or the no-server mode
|
||||||
|
*/
|
||||||
|
active?: boolean
|
||||||
|
/**
|
||||||
|
* the embedded server port number or the 'random' string to generate one at runtime
|
||||||
|
*/
|
||||||
|
port?: number | 'random' | undefined
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* tauri bundler configuration
|
||||||
|
*/
|
||||||
|
bundle: {
|
||||||
|
/**
|
||||||
|
* whether we should build your app with tauri-bundler or plain `cargo build`
|
||||||
|
*/
|
||||||
|
active?: boolean
|
||||||
|
/**
|
||||||
|
* the bundle targets, currently supports ["deb", "osx", "msi", "appimage", "dmg"] or "all"
|
||||||
|
*/
|
||||||
|
targets?: string | string[]
|
||||||
|
/**
|
||||||
|
* the app's identifier
|
||||||
|
*/
|
||||||
|
identifier: string
|
||||||
|
/**
|
||||||
|
* the app's icons
|
||||||
|
*/
|
||||||
|
icon: string[]
|
||||||
|
/**
|
||||||
|
* app resources to bundle
|
||||||
|
* each resource is a path to a file or directory
|
||||||
|
* glob patterns are supported
|
||||||
|
*/
|
||||||
|
resources?: string[]
|
||||||
|
externalBin?: string[]
|
||||||
|
copyright?: string
|
||||||
|
category?: string
|
||||||
|
shortDescription?: string
|
||||||
|
longDescription?: string
|
||||||
|
deb?: {
|
||||||
|
depends?: string[]
|
||||||
|
useBootstrapper?: boolean
|
||||||
|
}
|
||||||
|
osx?: {
|
||||||
|
frameworks?: string[]
|
||||||
|
minimumSystemVersion?: string
|
||||||
|
license?: string
|
||||||
|
useBootstrapper?: boolean
|
||||||
|
}
|
||||||
|
exceptionDomain?: string
|
||||||
|
}
|
||||||
|
allowlist: {
|
||||||
|
all: boolean
|
||||||
|
[index: string]: boolean
|
||||||
|
}
|
||||||
|
window: {
|
||||||
|
title: string
|
||||||
|
width?: number
|
||||||
|
height?: number
|
||||||
|
resizable?: boolean
|
||||||
|
fullscreen?: boolean
|
||||||
|
}
|
||||||
|
security: {
|
||||||
|
csp?: string,
|
||||||
|
dangerousRemoteDomainIpcAccess?: DangerousRemoteDomainIpAccess[]
|
||||||
|
}
|
||||||
|
inliner: {
|
||||||
|
active?: boolean
|
||||||
|
}
|
||||||
|
}
|
||||||
|
plugins?: {
|
||||||
|
[name: string]: {
|
||||||
|
[key: string]: any
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Whether or not to enable verbose logging
|
||||||
|
*/
|
||||||
|
verbose?: boolean
|
||||||
|
}
|
||||||
|
|||||||
4
bin/utils/ip_addr.ts
vendored
4
bin/utils/ip_addr.ts
vendored
@@ -33,7 +33,7 @@ async function isChinaDomain(domain: string): Promise<boolean> {
|
|||||||
return await isChinaIP(ip, domain);
|
return await isChinaIP(ip, domain);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// 域名无法解析,返回false
|
// 域名无法解析,返回false
|
||||||
logger.info(`${domain} can't be parse, is not in China!`);
|
logger.info(`${domain} can't be parse!`);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -46,7 +46,7 @@ async function isChinaIP(ip: string, domain: string): Promise<boolean> {
|
|||||||
return delay > 500;
|
return delay > 500;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// 命令执行出错,返回false
|
// 命令执行出错,返回false
|
||||||
logger.info(`ping ${domain} failed!, is not in China!`);
|
logger.info(`ping ${domain} failed!`);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
21
dist/cli.js
vendored
21
dist/cli.js
vendored
@@ -9,7 +9,6 @@ import path from 'path';
|
|||||||
import fs$1 from 'fs/promises';
|
import fs$1 from 'fs/promises';
|
||||||
import fs2 from 'fs-extra';
|
import fs2 from 'fs-extra';
|
||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
import URL from 'node:url';
|
|
||||||
import crypto from 'crypto';
|
import crypto from 'crypto';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { fileTypeFromBuffer } from 'file-type';
|
import { fileTypeFromBuffer } from 'file-type';
|
||||||
@@ -35,6 +34,8 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
***************************************************************************** */
|
***************************************************************************** */
|
||||||
|
/* global Reflect, Promise */
|
||||||
|
|
||||||
|
|
||||||
function __awaiter(thisArg, _arguments, P, generator) {
|
function __awaiter(thisArg, _arguments, P, generator) {
|
||||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
@@ -1641,7 +1642,8 @@ function promptText(message, initial) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
function setSecurityConfigWithUrl(tauriConfig, url) {
|
function setSecurityConfigWithUrl(tauriConfig, url) {
|
||||||
const { hostname } = URL.parse(url);
|
const myURL = new URL(url);
|
||||||
|
const hostname = myURL.hostname;
|
||||||
tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = hostname;
|
tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = hostname;
|
||||||
}
|
}
|
||||||
function mergeTauriConfig(url, options, tauriConf) {
|
function mergeTauriConfig(url, options, tauriConf) {
|
||||||
@@ -2056,7 +2058,7 @@ function isChinaDomain(domain) {
|
|||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
// 域名无法解析,返回false
|
// 域名无法解析,返回false
|
||||||
logger.info(`${domain} can't be parse, is not in China!`);
|
logger.info(`${domain} can't be parse!`);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -2071,7 +2073,7 @@ function isChinaIP(ip, domain) {
|
|||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
// 命令执行出错,返回false
|
// 命令执行出错,返回false
|
||||||
logger.info(`ping ${domain} failed!, is not in China!`);
|
logger.info(`ping ${domain} failed!`);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -2124,7 +2126,7 @@ var tauri$3 = {
|
|||||||
active: false
|
active: false
|
||||||
},
|
},
|
||||||
systemTray: {
|
systemTray: {
|
||||||
iconPath: "png/icon_512.png",
|
iconPath: "png/weread_512.png",
|
||||||
iconAsTemplate: true
|
iconAsTemplate: true
|
||||||
},
|
},
|
||||||
allowlist: {
|
allowlist: {
|
||||||
@@ -2545,7 +2547,7 @@ class BuilderFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var name = "pake-cli";
|
var name = "pake-cli";
|
||||||
var version = "2.0.6";
|
var version = "2.0.7-beta3";
|
||||||
var description = "🤱🏻 Turn any webpage into a desktop app with Rust. 🤱🏻 很简单的用 Rust 打包网页生成很小的桌面 App。";
|
var description = "🤱🏻 Turn any webpage into a desktop app with Rust. 🤱🏻 很简单的用 Rust 打包网页生成很小的桌面 App。";
|
||||||
var engines = {
|
var engines = {
|
||||||
node: ">=16.0.0"
|
node: ">=16.0.0"
|
||||||
@@ -2591,11 +2593,11 @@ var type = "module";
|
|||||||
var exports = "./dist/pake.js";
|
var exports = "./dist/pake.js";
|
||||||
var license = "MIT";
|
var license = "MIT";
|
||||||
var dependencies = {
|
var dependencies = {
|
||||||
"@tauri-apps/api": "^1.2.0",
|
"@tauri-apps/api": "^1.4.0",
|
||||||
"@tauri-apps/cli": "^1.2.3",
|
"@tauri-apps/cli": "1.3.1",
|
||||||
axios: "^1.1.3",
|
axios: "^1.1.3",
|
||||||
chalk: "^5.1.2",
|
chalk: "^5.1.2",
|
||||||
commander: "^9.4.1",
|
commander: "^11.0.0",
|
||||||
"file-type": "^18.0.0",
|
"file-type": "^18.0.0",
|
||||||
"fs-extra": "^11.1.0",
|
"fs-extra": "^11.1.0",
|
||||||
"is-url": "^1.2.4",
|
"is-url": "^1.2.4",
|
||||||
@@ -2620,7 +2622,6 @@ var devDependencies = {
|
|||||||
"@types/tmp": "^0.2.3",
|
"@types/tmp": "^0.2.3",
|
||||||
"@types/update-notifier": "^6.0.1",
|
"@types/update-notifier": "^6.0.1",
|
||||||
"app-root-path": "^3.1.0",
|
"app-root-path": "^3.1.0",
|
||||||
concurrently: "^7.5.0",
|
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
rollup: "^3.3.0",
|
rollup: "^3.3.0",
|
||||||
tslib: "^2.4.1",
|
tslib: "^2.4.1",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pake-cli",
|
"name": "pake-cli",
|
||||||
"version": "2.0.6",
|
"version": "2.0.7-beta3",
|
||||||
"description": "🤱🏻 Turn any webpage into a desktop app with Rust. 🤱🏻 很简单的用 Rust 打包网页生成很小的桌面 App。",
|
"description": "🤱🏻 Turn any webpage into a desktop app with Rust. 🤱🏻 很简单的用 Rust 打包网页生成很小的桌面 App。",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16.0.0"
|
"node": ">=16.0.0"
|
||||||
@@ -47,10 +47,10 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tauri-apps/api": "^1.4.0",
|
"@tauri-apps/api": "^1.4.0",
|
||||||
"@tauri-apps/cli": "^1.4.0",
|
"@tauri-apps/cli": "1.3.1",
|
||||||
"axios": "^1.1.3",
|
"axios": "^1.1.3",
|
||||||
"chalk": "^5.1.2",
|
"chalk": "^5.1.2",
|
||||||
"commander": "^9.4.1",
|
"commander": "^11.0.0",
|
||||||
"file-type": "^18.0.0",
|
"file-type": "^18.0.0",
|
||||||
"fs-extra": "^11.1.0",
|
"fs-extra": "^11.1.0",
|
||||||
"is-url": "^1.2.4",
|
"is-url": "^1.2.4",
|
||||||
@@ -75,10 +75,8 @@
|
|||||||
"@types/tmp": "^0.2.3",
|
"@types/tmp": "^0.2.3",
|
||||||
"@types/update-notifier": "^6.0.1",
|
"@types/update-notifier": "^6.0.1",
|
||||||
"app-root-path": "^3.1.0",
|
"app-root-path": "^3.1.0",
|
||||||
"concurrently": "^7.5.0",
|
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"rollup": "^3.3.0",
|
"rollup": "^3.3.0",
|
||||||
"tauri": "^0.15.0",
|
|
||||||
"tslib": "^2.4.1",
|
"tslib": "^2.4.1",
|
||||||
"typescript": "^4.9.3"
|
"typescript": "^4.9.3"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user