mirror of https://github.com/mifi/lossless-cut
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
475 lines
13 KiB
JSON
475 lines
13 KiB
JSON
{
|
|
"name": "lossless-cut",
|
|
"productName": "LosslessCut",
|
|
"description": "The swiss army knife of lossless video/audio editing",
|
|
"copyright": "Copyright © 2021 ${author}",
|
|
"version": "3.68.0",
|
|
"main": "./out/main/index.js",
|
|
"homepage": "./",
|
|
"type": "module",
|
|
"scripts": {
|
|
"clean": "rimraf dist out common-ts-dist main-ts-dist build-resources icon-build",
|
|
"start": "electron-vite preview",
|
|
"dev": "electron-vite dev -w",
|
|
"download-ffmpeg-darwin-x64": "mkdirp ffmpeg/darwin-x64 && cd ffmpeg/darwin-x64 && wget https://github.com/mifi/ffmpeg-build-script/releases/download/8.0-1/ffmpeg-macos-X64 -O ffmpeg && wget https://github.com/mifi/ffmpeg-build-script/releases/download/8.0-1/ffprobe-macos-X64 -O ffprobe && chmod +x ffmpeg && chmod +x ffprobe",
|
|
"download-ffmpeg-darwin-arm64": "mkdirp ffmpeg/darwin-arm64 && cd ffmpeg/darwin-arm64 && wget https://github.com/mifi/ffmpeg-build-script/releases/download/8.0-1/ffmpeg-macos-ARM64 -O ffmpeg && wget https://github.com/mifi/ffmpeg-build-script/releases/download/8.0-1/ffprobe-macos-ARM64 -O ffprobe && chmod +x ffmpeg && chmod +x ffprobe",
|
|
"download-ffmpeg-linux-x64": "mkdirp ffmpeg/linux-x64 && cd ffmpeg/linux-x64 && wget https://github.com/mifi/ffmpeg-builds/releases/download/8.0-1/ffmpeg-n8.0-latest-linux64-gpl-shared-8.0.tar.xz -O ffmpeg-ffprobe.xz && tar -xv -f ffmpeg-ffprobe.xz && mv ffmpeg-n8.0-latest-linux64-gpl-shared-8.0 extracted && mkdirp lib && mv extracted/bin/ffmpeg extracted/bin/ffprobe extracted/lib/lib*.so* lib",
|
|
"download-ffmpeg-win32-x64": "mkdirp ffmpeg/win32-x64 && cd ffmpeg/win32-x64 && npx download-cli https://github.com/mifi/ffmpeg-builds/releases/download/8.0-1/ffmpeg-n8.0-latest-win64-gpl-shared-8.0.zip --out . --filename ffmpeg-ffprobe.zip && 7z x ffmpeg-ffprobe.zip && mkdirp lib && cd ffmpeg-n8.0-latest-win64-gpl-shared-8.0/bin && npx shx mv ffmpeg.exe ffprobe.exe *.dll ../../lib",
|
|
"build": "yarn generate-icon && electron-vite build",
|
|
"tsc": "tsc --build",
|
|
"test": "vitest",
|
|
"lint": "eslint --ext .js,.ts,.jsx,.tsx,.mjs,.mts .",
|
|
"check": "yarn tsc && yarn lint && yarn test run && yarn build && yarn check-licenses && yarn scan-i18n && yarn dedupe --check && yarn generate-docs",
|
|
"pack-mac": "yarn build && electron-builder --mac dmg",
|
|
"pack-mas-dev": "yarn build && electron-builder --mac mas-dev -c.mas.provisioningProfile=LosslessCut_Dev.provisionprofile -c.mas.identity='Mikael Finstad (JH4PH8B3C8)'",
|
|
"pack-win": "yarn build && electron-builder --win zip --x64",
|
|
"postinstall": "electron-builder install-app-deps",
|
|
"version": "node script/postversion.ts && git add no.mifi.losslesscut.appdata.xml",
|
|
"pack-linux": "yarn build && electron-builder --linux",
|
|
"scan-i18n": "i18next-cli -c i18next.config.scan.ts extract",
|
|
"generate-icon": "mkdirp icon-build build-resources/appx && node script/generateIcon.ts",
|
|
"generate-licenses": "yarn licenses generate-disclaimer -R > licenses.txt && echo '\n\nffmpeg is licensed under GPL v2+:\n\nhttp://www.gnu.org/licenses/old-licenses/gpl-2.0.html' >> licenses.txt",
|
|
"generate-docs": "node script/generateDocs.ts",
|
|
"check-licenses": "node script/checkLicenses.ts",
|
|
"upload-artifacts": "node script/uploadArtifacts.ts"
|
|
},
|
|
"author": {
|
|
"name": "Mikael Finstad",
|
|
"email": "finstaden@gmail.com",
|
|
"url": "https://losslesscut.app/"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/mifi/lossless-cut.git"
|
|
},
|
|
"license": "GPL-2.0-only",
|
|
"devDependencies": {
|
|
"@actions/artifact": "^5.0.1",
|
|
"@adamscybot/react-leaflet-component-marker": "^2.0.3",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@fontsource/open-sans": "^5.2.7",
|
|
"@radix-ui/colors": "^3.0.0",
|
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
"@radix-ui/react-checkbox": "^1.3.3",
|
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
"@radix-ui/react-switch": "^1.2.6",
|
|
"@tanstack/react-virtual": "3.13.18",
|
|
"@tsconfig/node22": "^22.0.5",
|
|
"@tsconfig/strictest": "^2.0.8",
|
|
"@tsconfig/vite-react": "^7.0.2",
|
|
"@types/canvas-confetti": "^1.9.0",
|
|
"@types/color": "^4.2.0",
|
|
"@types/css-modules": "^1.0.5",
|
|
"@types/eslint": "^8.56.12",
|
|
"@types/express": "^5.0.6",
|
|
"@types/leaflet": "^1.9.21",
|
|
"@types/lodash": "^4.17.23",
|
|
"@types/lodash.debounce": "^4.0.9",
|
|
"@types/luxon": "^3.7.1",
|
|
"@types/mime-types": "^3.0.1",
|
|
"@types/morgan": "^1.9.10",
|
|
"@types/node": "22.19.3",
|
|
"@types/react": "^18.3.27",
|
|
"@types/react-dom": "^18.3.7",
|
|
"@types/react-syntax-highlighter": "^15.5.13",
|
|
"@types/semver": "^7.7.1",
|
|
"@types/smpte-timecode": "^1.2.5",
|
|
"@types/yargs": "^17.0.35",
|
|
"@types/yargs-parser": "^21.0.3",
|
|
"@typescript-eslint/eslint-plugin": "^8.52.0",
|
|
"@typescript-eslint/parser": "^8.52.0",
|
|
"@uidotdev/usehooks": "^2.4.1",
|
|
"@vitejs/plugin-react": "^5.1.2",
|
|
"canvas-confetti": "^1.9.4",
|
|
"color": "^5.0.3",
|
|
"csv-parse": "^6.1.0",
|
|
"csv-stringify": "^6.6.0",
|
|
"data-uri-to-buffer": "^6.0.2",
|
|
"electron": "^38.7.2",
|
|
"electron-builder": "26.4.0",
|
|
"electron-vite": "^5.0.0",
|
|
"eslint": "^8.57.1",
|
|
"eslint-config-mifi": "^0.1.0",
|
|
"eslint-plugin-import": "^2.32.0",
|
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
"eslint-plugin-react": "^7.37.5",
|
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
"eslint-plugin-unicorn": "56.0.1",
|
|
"fast-xml-parser": "^5.3.3",
|
|
"i18next-cli": "^1.34.1",
|
|
"icon-gen": "^5.0.0",
|
|
"immer": "^11.1.3",
|
|
"ky": "^1.14.2",
|
|
"leaflet": "^1.9.4",
|
|
"lodash": "^4.17.23",
|
|
"luxon": "^3.7.2",
|
|
"mitt": "^3.0.1",
|
|
"mkdirp": "^3.0.1",
|
|
"motion": "^12.24.7",
|
|
"nanoid": "^5.1.6",
|
|
"p-map": "^7.0.4",
|
|
"p-retry": "^7.1.1",
|
|
"pretty-bytes": "^7.1.0",
|
|
"react": "^18.3.1",
|
|
"react-dom": "^18.3.1",
|
|
"react-i18next": "^16.5.1",
|
|
"react-icons": "^5.5.0",
|
|
"react-leaflet": "^4.2.1",
|
|
"react-lottie-player": "^2.1.0",
|
|
"react-markdown": "^10.1.0",
|
|
"react-syntax-highlighter": "^16.1.0",
|
|
"react-use": "^17.6.0",
|
|
"sass": "^1.97.2",
|
|
"screenfull": "^6.0.2",
|
|
"sharp": "^0.34.5",
|
|
"smpte-timecode": "^1.3.6",
|
|
"sweetalert2": "^11.26.17",
|
|
"sweetalert2-react-content": "^5.1.1",
|
|
"tiny-invariant": "^1.3.3",
|
|
"ts-morph": "^27.0.2",
|
|
"type-fest": "^5.3.1",
|
|
"typescript": "~5.9.3",
|
|
"use-debounce": "^5.2.1",
|
|
"use-trace-update": "^1.3.3",
|
|
"vite": "^7.3.0",
|
|
"vitest": "^4.0.16",
|
|
"yargs": "^18.0.0"
|
|
},
|
|
"dependencies": {
|
|
"@electron/remote": "^2.1.3",
|
|
"@octokit/core": "7.0.6",
|
|
"cue-parser": "^0.3.0",
|
|
"electron-devtools-installer": "^4.0.0",
|
|
"electron-store": "5.1.1",
|
|
"electron-unhandled": "^5.0.0",
|
|
"execa": "^9.6.1",
|
|
"express": "^5.2.1",
|
|
"express-async-handler": "^1.2.0",
|
|
"file-type": "^21.3.0",
|
|
"i18next": "^25.7.3",
|
|
"i18next-fs-backend": "^2.6.1",
|
|
"json5": "^2.2.3",
|
|
"lodash.debounce": "^4.0.8",
|
|
"mime-types": "^3.0.2",
|
|
"morgan": "^1.10.1",
|
|
"semver": "^7.7.3",
|
|
"string-to-stream": "^3.0.1",
|
|
"winston": "^3.19.0",
|
|
"yargs-parser": "^22.0.0",
|
|
"zod": "^4.3.5"
|
|
},
|
|
"build": {
|
|
"directories": {
|
|
"buildResources": "build-resources"
|
|
},
|
|
"files": [
|
|
"out/**/*"
|
|
],
|
|
"asar": {
|
|
"smartUnpack": false
|
|
},
|
|
"appId": "no.mifi.losslesscut",
|
|
"artifactName": "${productName}-${os}-${arch}.${ext}",
|
|
"extraResources": [
|
|
{
|
|
"from": "locales",
|
|
"to": "locales"
|
|
}
|
|
],
|
|
"mac": {
|
|
"hardenedRuntime": true,
|
|
"notarize": true,
|
|
"appId": "no.mifi.losslesscut-mac",
|
|
"category": "public.app-category.productivity",
|
|
"target": [
|
|
{
|
|
"target": "mas",
|
|
"arch": "universal"
|
|
},
|
|
{
|
|
"target": "dmg",
|
|
"arch": [
|
|
"x64",
|
|
"arm64"
|
|
]
|
|
}
|
|
],
|
|
"electronLanguages": [
|
|
"en"
|
|
],
|
|
"extraResources": [
|
|
{
|
|
"from": "ffmpeg/darwin-${arch}",
|
|
"to": "."
|
|
}
|
|
],
|
|
"icon": "icon-build/app.icns",
|
|
"fileAssociations": [
|
|
{
|
|
"ext": [
|
|
"webm",
|
|
"mkv",
|
|
"flv",
|
|
"vob",
|
|
"ogv",
|
|
"drc",
|
|
"gif",
|
|
"gifv",
|
|
"mng",
|
|
"avi",
|
|
"mts",
|
|
"m2ts",
|
|
"ts",
|
|
"mov",
|
|
"qt",
|
|
"wmv",
|
|
"yuv",
|
|
"rm",
|
|
"rmvb",
|
|
"asf",
|
|
"amv",
|
|
"mp4",
|
|
"m4v",
|
|
"mpg",
|
|
"mp2",
|
|
"mpeg",
|
|
"mpe",
|
|
"mpv",
|
|
"m2v",
|
|
"svi",
|
|
"3gp",
|
|
"3g2",
|
|
"mxf",
|
|
"roq",
|
|
"nsv",
|
|
"f4v",
|
|
"f4p",
|
|
"f4a",
|
|
"f4b"
|
|
],
|
|
"name": "Video",
|
|
"description": "Video files",
|
|
"role": "Viewer"
|
|
},
|
|
{
|
|
"ext": [
|
|
"aa",
|
|
"aac",
|
|
"aax",
|
|
"act",
|
|
"aiff",
|
|
"alac",
|
|
"amr",
|
|
"ape",
|
|
"au",
|
|
"awb",
|
|
"dct",
|
|
"dss",
|
|
"dvf",
|
|
"flac",
|
|
"gsm",
|
|
"iklax",
|
|
"ivs",
|
|
"m4a",
|
|
"m4b",
|
|
"m4p",
|
|
"mmf",
|
|
"mp3",
|
|
"mpc",
|
|
"msv",
|
|
"nmf",
|
|
"nsf",
|
|
"ogg",
|
|
"oga",
|
|
"mogg",
|
|
"opus",
|
|
"ra",
|
|
"rf64",
|
|
"sln",
|
|
"tta",
|
|
"voc",
|
|
"vox",
|
|
"wav",
|
|
"wma",
|
|
"wv",
|
|
"8svx",
|
|
"cda"
|
|
],
|
|
"name": "Audio",
|
|
"description": "Audio files",
|
|
"role": "Viewer"
|
|
}
|
|
]
|
|
},
|
|
"mas": {
|
|
"hardenedRuntime": false,
|
|
"notarize": false,
|
|
"entitlements": "entitlements.mas.plist",
|
|
"entitlementsInherit": "entitlements.mas.inherit.plist",
|
|
"provisioningProfile": "LosslessCut_Mac_App_Store_provisioning_profile.provisionprofile",
|
|
"binaries": [
|
|
"Contents/Resources/ffmpeg",
|
|
"Contents/Resources/ffprobe"
|
|
]
|
|
},
|
|
"win": {
|
|
"target": [
|
|
"7z",
|
|
"appx"
|
|
],
|
|
"extraResources": [
|
|
{
|
|
"from": "ffmpeg/win32-${arch}/lib",
|
|
"to": "."
|
|
}
|
|
],
|
|
"icon": "icon-build/app.ico",
|
|
"fileAssociations": [
|
|
{
|
|
"ext": [
|
|
"webm",
|
|
"mkv",
|
|
"flv",
|
|
"vob",
|
|
"ogv",
|
|
"drc",
|
|
"gif",
|
|
"gifv",
|
|
"mng",
|
|
"avi",
|
|
"mts",
|
|
"m2ts",
|
|
"ts",
|
|
"mov",
|
|
"qt",
|
|
"wmv",
|
|
"yuv",
|
|
"rm",
|
|
"rmvb",
|
|
"asf",
|
|
"amv",
|
|
"mp4",
|
|
"m4v",
|
|
"mpg",
|
|
"mp2",
|
|
"mpeg",
|
|
"mpe",
|
|
"mpv",
|
|
"m2v",
|
|
"svi",
|
|
"3gp",
|
|
"3g2",
|
|
"mxf",
|
|
"roq",
|
|
"nsv",
|
|
"f4v",
|
|
"f4p",
|
|
"f4a",
|
|
"f4b"
|
|
],
|
|
"name": "Video",
|
|
"description": "Video files",
|
|
"role": "Viewer"
|
|
},
|
|
{
|
|
"ext": [
|
|
"aa",
|
|
"aac",
|
|
"aax",
|
|
"act",
|
|
"aiff",
|
|
"alac",
|
|
"amr",
|
|
"ape",
|
|
"au",
|
|
"awb",
|
|
"dct",
|
|
"dss",
|
|
"dvf",
|
|
"flac",
|
|
"gsm",
|
|
"iklax",
|
|
"ivs",
|
|
"m4a",
|
|
"m4b",
|
|
"m4p",
|
|
"mmf",
|
|
"mp3",
|
|
"mpc",
|
|
"msv",
|
|
"nmf",
|
|
"nsf",
|
|
"ogg",
|
|
"oga",
|
|
"mogg",
|
|
"opus",
|
|
"ra",
|
|
"rf64",
|
|
"sln",
|
|
"tta",
|
|
"voc",
|
|
"vox",
|
|
"wav",
|
|
"wma",
|
|
"wv",
|
|
"8svx",
|
|
"cda"
|
|
],
|
|
"name": "Audio",
|
|
"description": "Audio files",
|
|
"role": "Viewer"
|
|
}
|
|
]
|
|
},
|
|
"appx": {
|
|
"applicationId": "LosslessCut",
|
|
"identityName": "57275mifi.no.LosslessCut",
|
|
"publisher": "CN=2C479316-22A8-4D63-BC38-F0FB9AB0B974",
|
|
"publisherDisplayName": "mifi.no"
|
|
},
|
|
"linux": {
|
|
"executableName": "losslesscut",
|
|
"extraResources": [
|
|
{
|
|
"from": "ffmpeg/linux-${arch}/lib",
|
|
"to": "."
|
|
}
|
|
],
|
|
"category": "AudioVideo",
|
|
"icon": "icon-build/app-512.png",
|
|
"target": [
|
|
{
|
|
"arch": "x64",
|
|
"target": "tar.bz2"
|
|
},
|
|
{
|
|
"arch": "x64",
|
|
"target": "AppImage"
|
|
},
|
|
{
|
|
"arch": "x64",
|
|
"target": "snap"
|
|
},
|
|
{
|
|
"arch": "arm64",
|
|
"target": "tar.bz2"
|
|
},
|
|
{
|
|
"arch": "armv7l",
|
|
"target": "tar.bz2"
|
|
}
|
|
]
|
|
},
|
|
"snap": {
|
|
"plugs": [
|
|
"default",
|
|
"removable-media"
|
|
]
|
|
}
|
|
},
|
|
"packageManager": "yarn@4.11.0"
|
|
}
|