mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-13 04:26:16 -08:00
fix(packaging): address package verifier review
Entire-Checkpoint: f957cd9849e0
This commit is contained in:
1 parent
4fb3347ecc
commit
0bee7ca00a
4 files changed
+38
-29
No files matched your search
@@ -125,6 +125,7 @@
|
||||
"@astrojs/mdx": "4.3.13",
|
||||
"@astrojs/sitemap": "3.7.0",
|
||||
"@astrojs/tailwind": "6.0.2",
|
||||
"@electron/asar": "3.4.1",
|
||||
"@eslint/eslintrc": "3.3.1",
|
||||
"@eslint/js": "^9.38.0",
|
||||
"@faker-js/faker": "10.3.0",
|
||||
|
||||
Generated
+7
-12
@@ -209,6 +209,9 @@ importers:
|
||||
'@astrojs/tailwind':
|
||||
specifier: 6.0.2
|
||||
version: 6.0.2(astro@5.18.1(@types/node@20.19.9)(jiti@1.21.7)(less@4.5.1)(rollup@4.59.0)(sass-embedded@1.97.1)(sass@1.97.1)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2))(ts-node@10.9.2(@swc/core@1.15.8(@swc/helpers@0.5.18))(@types/node@20.19.9)(typescript@5.9.3))
|
||||
'@electron/asar':
|
||||
specifier: 3.4.1
|
||||
version: 3.4.1
|
||||
'@eslint/eslintrc':
|
||||
specifier: 3.3.1
|
||||
version: 3.3.1
|
||||
@@ -8795,10 +8798,6 @@ packages:
|
||||
resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==}
|
||||
engines: {node: 20 || >=22}
|
||||
|
||||
minimatch@10.2.2:
|
||||
resolution: {integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
|
||||
minimatch@10.2.4:
|
||||
resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==}
|
||||
engines: {node: 18 || 20 || >=22}
|
||||
@@ -13794,7 +13793,7 @@ snapshots:
|
||||
|
||||
'@electron/universal@2.0.1':
|
||||
dependencies:
|
||||
'@electron/asar': 3.2.18
|
||||
'@electron/asar': 3.4.1
|
||||
'@malept/cross-spawn-promise': 2.0.0
|
||||
debug: 4.4.3
|
||||
dir-compare: 4.2.0
|
||||
@@ -16744,7 +16743,7 @@ snapshots:
|
||||
'@tufjs/models@4.1.0':
|
||||
dependencies:
|
||||
'@tufjs/canonical-json': 2.0.0
|
||||
minimatch: 10.2.2
|
||||
minimatch: 10.2.4
|
||||
|
||||
'@tybys/wasm-util@0.10.1':
|
||||
dependencies:
|
||||
@@ -20184,7 +20183,7 @@ snapshots:
|
||||
|
||||
glob@13.0.6:
|
||||
dependencies:
|
||||
minimatch: 10.2.2
|
||||
minimatch: 10.2.4
|
||||
minipass: 7.1.3
|
||||
path-scurry: 2.0.2
|
||||
|
||||
@@ -20685,7 +20684,7 @@ snapshots:
|
||||
|
||||
ignore-walk@8.0.0:
|
||||
dependencies:
|
||||
minimatch: 10.2.2
|
||||
minimatch: 10.2.4
|
||||
|
||||
ignore@5.3.2: {}
|
||||
|
||||
@@ -22338,10 +22337,6 @@ snapshots:
|
||||
dependencies:
|
||||
'@isaacs/brace-expansion': 5.0.0
|
||||
|
||||
minimatch@10.2.2:
|
||||
dependencies:
|
||||
brace-expansion: 5.0.2
|
||||
|
||||
minimatch@10.2.4:
|
||||
dependencies:
|
||||
brace-expansion: 5.0.2
|
||||
|
||||
@@ -40,6 +40,10 @@ const makerOptions = JSON.parse(
|
||||
);
|
||||
const generatedMetadataConfigPath =
|
||||
'apps/electron-backend/src/app/options/electron-builder.metadata.generated.json';
|
||||
const packageLayoutVerifier = fs.readFileSync(
|
||||
join(currentDir, 'verify-electron-package-layout.mjs'),
|
||||
'utf8'
|
||||
);
|
||||
|
||||
test('Linux package identity does not expose the internal Electron backend project name', () => {
|
||||
assert.equal(electronBuilderConfig.productName, 'IPTVnator');
|
||||
@@ -125,6 +129,24 @@ test('nx-electron packaging prepares metadata before make/package', () => {
|
||||
);
|
||||
});
|
||||
|
||||
test('package layout verifier uses canonical helpers and direct dependencies', () => {
|
||||
assert.ok(packageMetadata.devDependencies?.['@electron/asar']);
|
||||
assert.match(packageLayoutVerifier, /require\(['"]@electron\/asar['"]\)/);
|
||||
assert.doesNotMatch(packageLayoutVerifier, /electronBuilderRequire/);
|
||||
assert.match(
|
||||
packageLayoutVerifier,
|
||||
/buildElectronBuilderMetadata\(\s*packageMetadata,\s*electronBuilderConfig\s*\)\.extraMetadata/s
|
||||
);
|
||||
assert.doesNotMatch(
|
||||
packageLayoutVerifier,
|
||||
/const packagedPackageMetadata = \{\s*name:/s
|
||||
);
|
||||
assert.doesNotMatch(
|
||||
packageLayoutVerifier,
|
||||
/builderEffectiveConfigPath && fileExists\(builderEffectiveConfigPath\)/
|
||||
);
|
||||
});
|
||||
|
||||
test('nx-electron packaging does not copy duplicate root package metadata', () => {
|
||||
const nxElectronExecutorPath = require.resolve(
|
||||
'nx-electron/src/executors/package/executor.js'
|
||||
|
||||
@@ -2,9 +2,10 @@ import fs from 'fs';
|
||||
import { createRequire } from 'module';
|
||||
import path from 'path';
|
||||
|
||||
import { buildElectronBuilderMetadata } from './generate-electron-builder-metadata.mjs';
|
||||
|
||||
const require = createRequire(import.meta.url);
|
||||
const electronBuilderRequire = createRequire(require.resolve('electron-builder'));
|
||||
const { extractFile } = electronBuilderRequire('@electron/asar');
|
||||
const { extractFile } = require('@electron/asar');
|
||||
const { validatePackagedEmbeddedMpv } = require('./embedded-mpv-macos.cjs');
|
||||
const args = process.argv.slice(2);
|
||||
const normalizedArgs = args[0] === '--' ? args.slice(1) : args;
|
||||
@@ -51,20 +52,10 @@ const workerRelativeDir = path.join(
|
||||
'workers'
|
||||
);
|
||||
const workerFiles = ['epg-parser.worker.js', 'database.worker.js'];
|
||||
const packagedPackageMetadata = {
|
||||
name: packageMetadata.name,
|
||||
productName:
|
||||
electronBuilderConfig.productName ??
|
||||
electronBuilderConfig.extraMetadata?.productName,
|
||||
version: packageMetadata.version,
|
||||
description: packageMetadata.description,
|
||||
author: packageMetadata.author,
|
||||
homepage: packageMetadata.homepage,
|
||||
license: packageMetadata.license,
|
||||
main:
|
||||
electronBuilderConfig.extraMetadata?.main ??
|
||||
'electron-backend/main.js',
|
||||
};
|
||||
const packagedPackageMetadata = buildElectronBuilderMetadata(
|
||||
packageMetadata,
|
||||
electronBuilderConfig
|
||||
).extraMetadata;
|
||||
const nativeModuleRelativeDirs = [
|
||||
path.join('app.asar.unpacked', 'node_modules'),
|
||||
path.join('app.asar.unpacked', 'electron-backend', 'node_modules'),
|
||||
@@ -373,7 +364,7 @@ function parseEffectiveSnapConfig(yamlContent) {
|
||||
function loadSnapConfigInspection() {
|
||||
const builderEffectiveConfigPath = builderEffectiveConfigPaths.find(fileExists);
|
||||
|
||||
if (builderEffectiveConfigPath && fileExists(builderEffectiveConfigPath)) {
|
||||
if (builderEffectiveConfigPath) {
|
||||
const effectiveConfigContent = fs.readFileSync(
|
||||
builderEffectiveConfigPath,
|
||||
'utf8'
|
||||
|
||||
Reference in new issue
Block a user