2.0.7-beta

This commit is contained in:
Tw93
2023-06-16 18:26:16 +08:00
parent aff053ef6a
commit afb0a83616
5 changed files with 170 additions and 37 deletions

View File

@@ -1,30 +1,12 @@
import { PakeAppOptions } from '@/types.js';
import { PakeAppOptions,TauriConfig } from '@/types.js';
import prompts from 'prompts';
import path from 'path';
import fs from 'fs/promises';
import fs2 from 'fs-extra';
import {TauriConfig} from 'tauri/src/types';
import { npmDirectory } from '@/utils/dir.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) {
const response = await prompts({
@@ -36,7 +18,7 @@ export async function promptText(message: string, initial?: string) {
return response.content;
}
function setSecurityConfigWithUrl(tauriConfig: NextTauriConfig, url: string) {
function setSecurityConfigWithUrl(tauriConfig: TauriConfig, url: string) {
const myURL = new URL(url);
const hostname = myURL.hostname;
tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = hostname;

152
bin/types.ts vendored
View File

@@ -48,3 +48,155 @@ export interface PakeCliOptions {
export interface PakeAppOptions extends PakeCliOptions {
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
}

View File

@@ -33,7 +33,7 @@ async function isChinaDomain(domain: string): Promise<boolean> {
return await isChinaIP(ip, domain);
} catch (error) {
// 域名无法解析返回false
logger.info(`${domain} can't be parse, is not in China!`);
logger.info(`${domain} can't be parse!`);
return false;
}
}
@@ -46,7 +46,7 @@ async function isChinaIP(ip: string, domain: string): Promise<boolean> {
return delay > 500;
} catch (error) {
// 命令执行出错返回false
logger.info(`ping ${domain} failed!, is not in China!`);
logger.info(`ping ${domain} failed!`);
return false;
}
}

21
dist/cli.js vendored
View File

@@ -9,7 +9,6 @@ import path from 'path';
import fs$1 from 'fs/promises';
import fs2 from 'fs-extra';
import chalk from 'chalk';
import URL from 'node:url';
import crypto from 'crypto';
import axios from 'axios';
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
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise */
function __awaiter(thisArg, _arguments, P, generator) {
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) {
const { hostname } = URL.parse(url);
const myURL = new URL(url);
const hostname = myURL.hostname;
tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = hostname;
}
function mergeTauriConfig(url, options, tauriConf) {
@@ -2056,7 +2058,7 @@ function isChinaDomain(domain) {
}
catch (error) {
// 域名无法解析返回false
logger.info(`${domain} can't be parse, is not in China!`);
logger.info(`${domain} can't be parse!`);
return false;
}
});
@@ -2071,7 +2073,7 @@ function isChinaIP(ip, domain) {
}
catch (error) {
// 命令执行出错返回false
logger.info(`ping ${domain} failed!, is not in China!`);
logger.info(`ping ${domain} failed!`);
return false;
}
});
@@ -2124,7 +2126,7 @@ var tauri$3 = {
active: false
},
systemTray: {
iconPath: "png/icon_512.png",
iconPath: "png/weread_512.png",
iconAsTemplate: true
},
allowlist: {
@@ -2545,7 +2547,7 @@ class BuilderFactory {
}
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 engines = {
node: ">=16.0.0"
@@ -2591,11 +2593,11 @@ var type = "module";
var exports = "./dist/pake.js";
var license = "MIT";
var dependencies = {
"@tauri-apps/api": "^1.2.0",
"@tauri-apps/cli": "^1.2.3",
"@tauri-apps/api": "^1.4.0",
"@tauri-apps/cli": "1.3.1",
axios: "^1.1.3",
chalk: "^5.1.2",
commander: "^9.4.1",
commander: "^11.0.0",
"file-type": "^18.0.0",
"fs-extra": "^11.1.0",
"is-url": "^1.2.4",
@@ -2620,7 +2622,6 @@ var devDependencies = {
"@types/tmp": "^0.2.3",
"@types/update-notifier": "^6.0.1",
"app-root-path": "^3.1.0",
concurrently: "^7.5.0",
"cross-env": "^7.0.3",
rollup: "^3.3.0",
tslib: "^2.4.1",

View File

@@ -1,6 +1,6 @@
{
"name": "pake-cli",
"version": "2.0.6",
"version": "2.0.7-beta3",
"description": "🤱🏻 Turn any webpage into a desktop app with Rust. 🤱🏻 很简单的用 Rust 打包网页生成很小的桌面 App。",
"engines": {
"node": ">=16.0.0"
@@ -47,10 +47,10 @@
"license": "MIT",
"dependencies": {
"@tauri-apps/api": "^1.4.0",
"@tauri-apps/cli": "^1.4.0",
"@tauri-apps/cli": "1.3.1",
"axios": "^1.1.3",
"chalk": "^5.1.2",
"commander": "^9.4.1",
"commander": "^11.0.0",
"file-type": "^18.0.0",
"fs-extra": "^11.1.0",
"is-url": "^1.2.4",
@@ -75,10 +75,8 @@
"@types/tmp": "^0.2.3",
"@types/update-notifier": "^6.0.1",
"app-root-path": "^3.1.0",
"concurrently": "^7.5.0",
"cross-env": "^7.0.3",
"rollup": "^3.3.0",
"tauri": "^0.15.0",
"tslib": "^2.4.1",
"typescript": "^4.9.3"
}