u2a 1.0.0 → 2.0.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "u2a",
3
- "version": "1.0.0",
3
+ "version": "2.0.0",
4
4
  "description": "URL to App - Turn any URL into a desktop application",
5
5
  "main": "src/index.js",
6
6
  "bin": {
@@ -194,24 +194,75 @@ function generateMainJs(domain, url, iconPath) {
194
194
  return `
195
195
  const { app, BrowserWindow, Menu, shell } = require('electron');
196
196
  const path = require('path');
197
+ const fs = require('fs');
198
+
199
+ const APP_DOMAIN = "${domain}";
200
+ const APP_URL = "${url}";
201
+ const APP_ICON_PATH = "${iconPath.replace(/\\/g, '\\\\')}";
197
202
 
198
203
  let mainWindow;
199
204
 
205
+ function logAppInfo() {
206
+ const packageJsonPath = path.join(__dirname, 'package.json');
207
+ let packageInfo = {};
208
+
209
+ try {
210
+ const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf-8');
211
+ packageInfo = JSON.parse(packageJsonContent);
212
+ } catch (error) {
213
+ console.error('Error reading package.json:', error.message);
214
+ }
215
+
216
+ console.log('\\n--------------------------------');
217
+ console.log(' APPLICATION INFORMATION');
218
+ console.log('--------------------------------');
219
+ console.log(\`Application: \${APP_DOMAIN}\`);
220
+ console.log(\`URL: \${APP_URL}\`);
221
+ console.log(\`Started at: \${new Date().toLocaleString()}\`);
222
+ console.log(\`App directory: \${__dirname}\`);
223
+ console.log(\`Icon path: \${APP_ICON_PATH}\`);
224
+
225
+ console.log('\\n PACKAGE INFO:');
226
+ console.log(\` - Name: \${packageInfo.name || 'N/A'}\`);
227
+ console.log(\` - Version: \${packageInfo.version || 'N/A'}\`);
228
+ console.log(\` - Description: \${packageInfo.description || 'N/A'}\`);
229
+ console.log(\` - Electron version: \${packageInfo.dependencies?.electron || 'N/A'}\`);
230
+
231
+ if (packageInfo.build) {
232
+ console.log('\\n BUILD CONFIG:');
233
+ console.log(\` - App ID: \${packageInfo.build.appId || 'N/A'}\`);
234
+ console.log(\` - Product Name: \${packageInfo.build.productName || 'N/A'}\`);
235
+ }
236
+
237
+ console.log('--------------------------------\\n');
238
+ }
239
+
200
240
  function createWindow() {
201
- app.setAppUserModelId("${domain}");
241
+ logAppInfo();
242
+
243
+ app.setAppUserModelId(APP_DOMAIN);
202
244
 
203
245
  mainWindow = new BrowserWindow({
204
246
  width: 1200,
205
247
  height: 800,
206
- title: "${domain}",
207
- icon: "${iconPath.replace(/\\/g, '\\\\')}",
248
+ title: APP_DOMAIN,
249
+ icon: APP_ICON_PATH,
208
250
  webPreferences: {
209
251
  nodeIntegration: false,
210
252
  contextIsolation: true
211
253
  }
212
254
  });
213
255
 
214
- mainWindow.loadURL("${url}");
256
+ mainWindow.loadURL(APP_URL);
257
+
258
+ mainWindow.webContents.on('context-menu', (e, params) => {
259
+ e.preventDefault();
260
+ mainWindow.webContents.executeJavaScript(\`
261
+ window.addEventListener('contextmenu', (e) => {
262
+ e.stopPropagation();
263
+ }, true);
264
+ \`);
265
+ });
215
266
 
216
267
  mainWindow.webContents.on('new-window', (event, url) => {
217
268
  event.preventDefault();
@@ -243,10 +294,23 @@ app.on('activate', () => {
243
294
  });
244
295
  `;
245
296
  }
297
+
298
+
246
299
  function generatePackageJson(domain, iconPath) {
300
+ const u2aPackagePath = path.resolve(__dirname, '../../package.json');
301
+
302
+ let u2aVersion = '1.0.0';
303
+ try {
304
+ const u2aPackageContent = fs.readFileSync(u2aPackagePath, 'utf8');
305
+ const u2aPackage = JSON.parse(u2aPackageContent);
306
+ u2aVersion = u2aPackage.version || u2aVersion;
307
+ } catch (error) {
308
+ logger.error('Error while fetching u2a package.json', error)
309
+ }
310
+
247
311
  return {
248
312
  name: `u2a-${domain}`,
249
- version: '1.0.0',
313
+ version: u2aVersion,
250
314
  description: `Web app for ${domain}`,
251
315
  main: 'main.js',
252
316
  scripts: {