u2a 3.5.1 → 3.5.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/.github/workflows/npm-publish.yml +22 -0
- package/package.json +1 -2
- package/src/commands/configure.js +154 -124
- package/src/utils/appGenerator.js +349 -349
- package/src/utils/builder.js +125 -125
- package/src/utils/logger.js +5 -1
- package/src/utils/noroot.js +41 -41
- package/src/utils/osIntegration.js +187 -187
- package/src/utils/postinstall.js +119 -119
- package/src/utils/sanitize.js +20 -20
- package/src/utils/securexec.js +12 -12
- package/src/utils/settings.js +112 -110
- package/src/utils/versionCheck.js +149 -148
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
name: Node.js Package
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
paths:
|
|
6
|
+
- 'package.json'
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
|
|
12
|
+
publish-npm:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
- uses: actions/setup-node@v4
|
|
17
|
+
with:
|
|
18
|
+
node-version: 20
|
|
19
|
+
registry-url: https://registry.npmjs.org/
|
|
20
|
+
- run: npm publish
|
|
21
|
+
env:
|
|
22
|
+
NODE_AUTH_TOKEN: ${{ secrets.npm_token }}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "u2a",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.3",
|
|
4
4
|
"description": "URL to App - Turn any URL into a desktop application",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
10
|
"start": "node src/index.js",
|
|
11
|
-
"debug": "set DEBUG=1 && node src/index.js",
|
|
12
11
|
"postinstall": "node src/utils/postinstall.js"
|
|
13
12
|
},
|
|
14
13
|
"keywords": [
|
|
@@ -1,125 +1,155 @@
|
|
|
1
|
-
const Logger = require('../utils/logger');
|
|
2
|
-
const chalk = require('chalk');
|
|
3
|
-
const { initSettings, getSetting, setSetting, resetSetting, DEFAULT_SETTINGS } = require('../utils/settings');
|
|
4
|
-
const inquirer = require('inquirer');
|
|
5
|
-
|
|
6
|
-
const logger = new Logger('configure');
|
|
7
|
-
|
|
8
|
-
function configureReports(action) {
|
|
9
|
-
try {
|
|
10
|
-
if (action === 'status') {
|
|
11
|
-
const status = getSetting('send_anon_reports');
|
|
12
|
-
logger.info(`Anonymous reports are currently ${status ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
13
|
-
logger.info(`Default setting is: ${DEFAULT_SETTINGS.send_anon_reports ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
14
|
-
return;
|
|
15
|
-
} else if (action === 'enable') {
|
|
16
|
-
setSetting('send_anon_reports', true);
|
|
17
|
-
logger.info(chalk.green('Anonymous reports have been enabled'));
|
|
18
|
-
} else if (action === 'disable') {
|
|
19
|
-
setSetting('send_anon_reports', false);
|
|
20
|
-
logger.info(chalk.yellow('Anonymous reports have been disabled'));
|
|
21
|
-
} else if (action === 'reset') {
|
|
22
|
-
resetSetting('send_anon_reports');
|
|
23
|
-
logger.info(`Anonymous reports have been resetted to: ${DEFAULT_SETTINGS.send_anon_reports ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
24
|
-
} else {
|
|
25
|
-
logger.error(`Invalid action: ${action}`);
|
|
26
|
-
logger.info('Available actions: status, enable, disable, reset');
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
} catch (err) {
|
|
30
|
-
logger.error(`Error configuring reports`, err.message);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
function configureVersionCheck(action) {
|
|
35
|
-
try {
|
|
36
|
-
if (action === 'status') {
|
|
37
|
-
const status = getSetting('version_check');
|
|
38
|
-
logger.info(`Version check is currently ${status ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
39
|
-
logger.info(`Default setting is: ${DEFAULT_SETTINGS.version_check ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
40
|
-
return;
|
|
41
|
-
} else if (action === 'enable') {
|
|
42
|
-
setSetting('version_check', true);
|
|
43
|
-
logger.info(chalk.green('Version check has been enabled'));
|
|
44
|
-
} else if (action === 'disable') {
|
|
45
|
-
setSetting('version_check', false);
|
|
46
|
-
logger.info(chalk.yellow('Version check has been disabled'));
|
|
47
|
-
} else if (action === 'reset') {
|
|
48
|
-
resetSetting('version_check');
|
|
49
|
-
logger.info(`Version check has been resetted to: ${DEFAULT_SETTINGS.
|
|
50
|
-
} else {
|
|
51
|
-
logger.error(`Invalid action: ${action}`);
|
|
52
|
-
logger.info('Available actions: status, enable, disable, reset');
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
} catch (err) {
|
|
56
|
-
logger.error(`Error configuring version check`, err.message);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
try {
|
|
62
|
-
if (action === '
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
logger.info(
|
|
79
|
-
return;
|
|
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
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
1
|
+
const Logger = require('../utils/logger');
|
|
2
|
+
const chalk = require('chalk');
|
|
3
|
+
const { initSettings, getSetting, setSetting, resetSetting, DEFAULT_SETTINGS } = require('../utils/settings');
|
|
4
|
+
const inquirer = require('inquirer');
|
|
5
|
+
|
|
6
|
+
const logger = new Logger('configure');
|
|
7
|
+
|
|
8
|
+
function configureReports(action) {
|
|
9
|
+
try {
|
|
10
|
+
if (action === 'status') {
|
|
11
|
+
const status = getSetting('send_anon_reports');
|
|
12
|
+
logger.info(`Anonymous reports are currently ${status ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
13
|
+
logger.info(`Default setting is: ${DEFAULT_SETTINGS.send_anon_reports ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
14
|
+
return;
|
|
15
|
+
} else if (action === 'enable') {
|
|
16
|
+
setSetting('send_anon_reports', true);
|
|
17
|
+
logger.info(chalk.green('Anonymous reports have been enabled'));
|
|
18
|
+
} else if (action === 'disable') {
|
|
19
|
+
setSetting('send_anon_reports', false);
|
|
20
|
+
logger.info(chalk.yellow('Anonymous reports have been disabled'));
|
|
21
|
+
} else if (action === 'reset') {
|
|
22
|
+
resetSetting('send_anon_reports');
|
|
23
|
+
logger.info(`Anonymous reports have been resetted to: ${DEFAULT_SETTINGS.send_anon_reports ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
24
|
+
} else {
|
|
25
|
+
logger.error(`Invalid action: ${action}`);
|
|
26
|
+
logger.info('Available actions: status, enable, disable, reset');
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
} catch (err) {
|
|
30
|
+
logger.error(`Error configuring reports`, err.message);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function configureVersionCheck(action) {
|
|
35
|
+
try {
|
|
36
|
+
if (action === 'status') {
|
|
37
|
+
const status = getSetting('version_check');
|
|
38
|
+
logger.info(`Version check is currently ${status ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
39
|
+
logger.info(`Default setting is: ${DEFAULT_SETTINGS.version_check ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
40
|
+
return;
|
|
41
|
+
} else if (action === 'enable') {
|
|
42
|
+
setSetting('version_check', true);
|
|
43
|
+
logger.info(chalk.green('Version check has been enabled'));
|
|
44
|
+
} else if (action === 'disable') {
|
|
45
|
+
setSetting('version_check', false);
|
|
46
|
+
logger.info(chalk.yellow('Version check has been disabled'));
|
|
47
|
+
} else if (action === 'reset') {
|
|
48
|
+
resetSetting('version_check');
|
|
49
|
+
logger.info(`Version check has been resetted to: ${DEFAULT_SETTINGS.version_check ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
50
|
+
} else {
|
|
51
|
+
logger.error(`Invalid action: ${action}`);
|
|
52
|
+
logger.info('Available actions: status, enable, disable, reset');
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
} catch (err) {
|
|
56
|
+
logger.error(`Error configuring version check`, err.message);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function configureDebug(action) {
|
|
61
|
+
try {
|
|
62
|
+
if (action === 'status') {
|
|
63
|
+
const status = getSetting('always_show_debug');
|
|
64
|
+
logger.info(`Debug logs are currently ${status ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
65
|
+
logger.info(`Default setting is: ${DEFAULT_SETTINGS.always_show_debug ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
66
|
+
return;
|
|
67
|
+
} else if (action === 'enable') {
|
|
68
|
+
setSetting('always_show_debug', true);
|
|
69
|
+
logger.info(chalk.green('Debug logs have been enabled'));
|
|
70
|
+
} else if (action === 'disable') {
|
|
71
|
+
setSetting('always_show_debug', false);
|
|
72
|
+
logger.info(chalk.yellow('Debug logs have been disabled'));
|
|
73
|
+
} else if (action === 'reset') {
|
|
74
|
+
resetSetting('always_show_debug');
|
|
75
|
+
logger.info(`Debug logs have been resetted to: ${DEFAULT_SETTINGS.always_show_debug ? chalk.green('enabled') : chalk.yellow('disabled')}`);
|
|
76
|
+
} else {
|
|
77
|
+
logger.error(`Invalid action: ${action}`);
|
|
78
|
+
logger.info('Available actions: status, enable, disable, reset');
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
} catch (err) {
|
|
82
|
+
logger.error(`Error configuring debug logs`, err.message);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
async function resetSettings(action) {
|
|
87
|
+
try {
|
|
88
|
+
if (action === 'reset') {
|
|
89
|
+
const answer = await inquirer.prompt([
|
|
90
|
+
{
|
|
91
|
+
type: 'confirm',
|
|
92
|
+
name: 'confirm',
|
|
93
|
+
message: `Are you sure you want to reset all settings to default?`,
|
|
94
|
+
default: false
|
|
95
|
+
}
|
|
96
|
+
]);
|
|
97
|
+
|
|
98
|
+
if (!answer.confirm) {
|
|
99
|
+
logger.info('Operation canceled');
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
initSettings(true);
|
|
104
|
+
logger.info(chalk.green('All settings have been reset'));
|
|
105
|
+
return;
|
|
106
|
+
} else {
|
|
107
|
+
logger.error(`Invalid action: ${action}`);
|
|
108
|
+
logger.info('Available actions: reset');
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
} catch (err) {
|
|
112
|
+
logger.error(`Error resetting settings`, err.message);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
async function configure(category, action) {
|
|
117
|
+
if (!category || !action) {
|
|
118
|
+
logger.error('Missing category or action');
|
|
119
|
+
logger.info('Usage: u2a configure [category] [action]');
|
|
120
|
+
logger.info('Available categories:');
|
|
121
|
+
logger.info(' debug - Configure always showing debug logs');
|
|
122
|
+
logger.info(' reports - Configure anonymous usage reports');
|
|
123
|
+
logger.info(' settings - Resets settings (only reset action)');
|
|
124
|
+
logger.info(' vcheck - Configure automatic version check');
|
|
125
|
+
logger.info('Available actions:');
|
|
126
|
+
logger.info(' status - Check current status');
|
|
127
|
+
logger.info(' enable - Enable specified category');
|
|
128
|
+
logger.info(' disable - Disable specified category');
|
|
129
|
+
logger.info(' reset - Resets specified category to default');
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
switch (category) {
|
|
134
|
+
case 'reports':
|
|
135
|
+
configureReports(action);
|
|
136
|
+
break;
|
|
137
|
+
case 'vcheck':
|
|
138
|
+
configureVersionCheck(action);
|
|
139
|
+
break;
|
|
140
|
+
case 'debug':
|
|
141
|
+
configureDebug(action);
|
|
142
|
+
break;
|
|
143
|
+
case 'settings':
|
|
144
|
+
await resetSettings(action);
|
|
145
|
+
break;
|
|
146
|
+
default:
|
|
147
|
+
logger.error(`Unknown configuration category: ${category}`);
|
|
148
|
+
logger.info('Available categories: debug, reports, vcheck, settings');
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
module.exports = {
|
|
154
|
+
configure
|
|
125
155
|
};
|