mirror of
https://github.com/jellyfin/jellyfin-server-macos.git
synced 2024-11-23 05:59:39 +00:00
Add full Azure Pipeline CI (#32)
* Set up CI with Azure Pipelines [skip ci]
This commit is contained in:
parent
7dbb3fb24c
commit
c38eb2a623
@ -1,21 +1,139 @@
|
||||
jobs:
|
||||
- job: main_build
|
||||
displayName: 'Main Build'
|
||||
pool:
|
||||
vmImage: 'macos-latest'
|
||||
steps:
|
||||
- task: Xcode@5
|
||||
displayName: 'Build macOS Wrapper'
|
||||
inputs:
|
||||
actions: 'build'
|
||||
configuration: 'Release'
|
||||
sdk:
|
||||
xcWorkspacePath: '**/*.xcodeproj'
|
||||
destinationPlatformOption: 'macOS'
|
||||
trigger:
|
||||
- master
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Bundle Release'
|
||||
inputs:
|
||||
PathtoPublish: '$(System.DefaultWorkingDirectory)/build/Release/'
|
||||
ArtifactName: 'jellyfin-macos-wrapper.zip'
|
||||
publishLocation: 'Container'
|
||||
pool:
|
||||
vmImage: 'macos-latest'
|
||||
|
||||
steps:
|
||||
|
||||
# Add all Apple signing material
|
||||
- task: InstallAppleCertificate@2
|
||||
inputs:
|
||||
certSecureFile: 'MacAnthony2.p12'
|
||||
certPwd: '$(CertificatePassword)'
|
||||
keychain: 'temp'
|
||||
|
||||
- task: InstallAppleProvisioningProfile@1
|
||||
inputs:
|
||||
provisioningProfileLocation: 'secureFiles'
|
||||
provProfileSecureFile: 'JellyfinMacProvision.provisionprofile'
|
||||
|
||||
# Compile the .app bundle
|
||||
- task: Xcode@5
|
||||
inputs:
|
||||
actions: 'build'
|
||||
configuration: 'Release'
|
||||
sdk: 'macosx10.15'
|
||||
xcWorkspacePath: '**/*.xcodeproj'
|
||||
packageApp: false
|
||||
signingOption: 'default'
|
||||
destinationPlatformOption: 'macOS'
|
||||
useXcpretty: true
|
||||
|
||||
# Get the latest Jellyfin release for mac
|
||||
- task: DownloadGitHubRelease@0
|
||||
inputs:
|
||||
connection: 'Jellyfin Release Download'
|
||||
userRepository: 'jellyfin/jellyfin'
|
||||
defaultVersionType: 'latest'
|
||||
itemPattern: '*macos.tar.gz'
|
||||
downloadPath: '$(System.DefaultWorkingDirectory)/build/Release/'
|
||||
|
||||
# Extract them in to the working directory
|
||||
- task: ExtractFiles@1
|
||||
inputs:
|
||||
archiveFilePatterns: '*.gz'
|
||||
destinationFolder: '$(System.DefaultWorkingDirectory)/build/Release/'
|
||||
cleanDestinationFolder: false
|
||||
|
||||
# Download FFmpeg and extract it
|
||||
- task: Bash@3
|
||||
inputs:
|
||||
targetType: 'inline'
|
||||
script: 'curl https://www.zeranoe.com/builds/macos64/static/ffmpeg-4.2.3-macos64-static.zip -o ffmpeg.zip'
|
||||
workingDirectory: '$(System.DefaultWorkingDirectory)/build/Release/'
|
||||
- task: ExtractFiles@1
|
||||
inputs:
|
||||
archiveFilePatterns: '$(System.DefaultWorkingDirectory)/build/Release/ffmpeg.zip'
|
||||
destinationFolder: '$(System.DefaultWorkingDirectory)/build/Release/'
|
||||
cleanDestinationFolder: false
|
||||
|
||||
- task: Bash@3
|
||||
inputs:
|
||||
targetType: 'inline'
|
||||
script: |
|
||||
# Rename the bundle
|
||||
echo "[INFO] Renaming Jellyfin Server.app as Jellyfin.app..."
|
||||
mv "Jellyfin Server.app" "Jellyfin.app"
|
||||
|
||||
# Read the extracted Jellyfin binary folder name, get version
|
||||
echo "[INFO] Reading details from Jellyfin release..."
|
||||
dir_name="$( find . -type d -name "jellyfin_*" -exec basename {} \; )"
|
||||
version="$(awk -F'_' '{ print $NF }' <<<"${dir_name}")"
|
||||
|
||||
# Update the version number in the plist to be accurate
|
||||
echo "[INFO] Updating .plist for version $version"
|
||||
plutil -replace CFBundleVersion -string "$version" "Jellyfin.app/Contents/Info.plist"
|
||||
|
||||
# Copy FFmpeg in to the correct folder
|
||||
echo "[INFO] Copying FFmpeg into server folder..."
|
||||
cp ffmpeg*/bin/ffmpeg "$dir_name/"
|
||||
cp ffmpeg*/bin/ffprobe "$dir_name/"
|
||||
|
||||
# Copy the latest Jellyfin binary in to the correct folder
|
||||
echo "[INFO] Copying Jellyfin Server into bundle..."
|
||||
cp -R "$dir_name/." "Jellyfin.app/Contents/MacOS/"
|
||||
|
||||
# Move the web files to the resource folder
|
||||
echo "[INFO] Moving jellyfin-web to resources..."
|
||||
mv "Jellyfin.app/Contents/MacOS/jellyfin-web" "Jellyfin.app/Contents/Resources/"
|
||||
|
||||
# Setup some variables
|
||||
APP_NAME="Jellyfin.app"
|
||||
ENTITLEMENTS="$BUILD_SOURCESDIRECTORY/deployment/Jellyfin_Server.entitlements"
|
||||
SIGNING_IDENTITY="739426E195172DE44249548E1DC1CBFA797AEF3A" # matches Keychain Access certificate name
|
||||
|
||||
# Iterate through contents that should be signed, and sign them
|
||||
find "$APP_NAME/Contents/MacOS" -type f | while read fname; do
|
||||
echo "[INFO] Signing $fname"
|
||||
codesign --force --timestamp --options=runtime --entitlements "$ENTITLEMENTS" --sign $SIGNING_IDENTITY "$fname"
|
||||
done
|
||||
|
||||
find "$APP_NAME/Contents/Frameworks" -type f | while read fname; do
|
||||
echo "[INFO] Signing $fname"
|
||||
codesign --force --timestamp --options=runtime --entitlements "$ENTITLEMENTS" --sign $SIGNING_IDENTITY "$fname"
|
||||
done
|
||||
|
||||
echo "[INFO] Signing complete app bundle..."
|
||||
codesign --force --timestamp --options=runtime --entitlements "$ENTITLEMENTS" --sign $SIGNING_IDENTITY "$APP_NAME"
|
||||
workingDirectory: '$(System.DefaultWorkingDirectory)/build/Release/'
|
||||
|
||||
- task: UseNode@1
|
||||
inputs:
|
||||
version: '12.x'
|
||||
|
||||
- task: Npm@1
|
||||
inputs:
|
||||
command: 'install'
|
||||
workingDir: '$(Build.SourcesDirectory)'
|
||||
- task: Bash@3
|
||||
inputs:
|
||||
targetType: 'inline'
|
||||
script: |
|
||||
echo "[INFO] Moving resources inline..."
|
||||
cp -R "$BUILD_SOURCESDIRECTORY/deployment/." "."
|
||||
echo "[INFO] Creating DMG..."
|
||||
npx appdmg "jfdmg.json" "Jellyfin.dmg"
|
||||
echo "[INFO] Uploading for notarization..."
|
||||
xcrun altool --notarize-app --primary-bundle-id "jellyfin-server-macos" --username "$DEVUSER" --password "$DEVPASS" --file "Jellyfin.dmg"
|
||||
workingDirectory: '$(System.DefaultWorkingDirectory)/build/Release/'
|
||||
env:
|
||||
DEVUSER: $(AppleDevAccount)
|
||||
DEVPASS: $(AppleDevPassword)
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Bundle Release'
|
||||
inputs:
|
||||
PathtoPublish: '$(System.DefaultWorkingDirectory)/build/Release/Jellyfin.dmg'
|
||||
ArtifactName: 'jellyfin-macos-wrapper.zip'
|
||||
publishLocation: 'Container'
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -129,4 +129,5 @@ iOSInjectionProject/
|
||||
### Xcode Patch ###
|
||||
**/xcshareddata/WorkspaceSettings.xcsettings
|
||||
|
||||
# End of https://www.gitignore.io/api/xcode,macos,swift
|
||||
# End of https://www.gitignore.io/api/xcode,macos,swift
|
||||
node_modules
|
||||
|
BIN
deployment/AppIcon.icns
Normal file
BIN
deployment/AppIcon.icns
Normal file
Binary file not shown.
14
deployment/Jellyfin_Server.entitlements
Normal file
14
deployment/Jellyfin_Server.entitlements
Normal file
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
11
deployment/jfdmg.json
Normal file
11
deployment/jfdmg.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"title": "Jellyfin Server",
|
||||
"icon": "AppIcon.icns",
|
||||
"icon-size": 80,
|
||||
"window": {
|
||||
"size": { "width": 240, "height": 160 }
|
||||
},
|
||||
"contents": [
|
||||
{ "x": 160, "y": 90, "type": "file", "path": "Jellyfin.app" }
|
||||
]
|
||||
}
|
349
package-lock.json
generated
Normal file
349
package-lock.json
generated
Normal file
@ -0,0 +1,349 @@
|
||||
{
|
||||
"name": "jellyfin-server-macos",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"appdmg": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/appdmg/-/appdmg-0.6.0.tgz",
|
||||
"integrity": "sha512-vDz8cMf5c6BfoS72OmmHzzuxG5DFVDM6YCAkscjYh3GASGEBBRCZ10Bn515ZPSPHOpfI9Xu3MlApbd49C58pJg==",
|
||||
"requires": {
|
||||
"async": "^1.4.2",
|
||||
"ds-store": "^0.1.5",
|
||||
"execa": "^1.0.0",
|
||||
"fs-temp": "^1.0.0",
|
||||
"fs-xattr": "^0.3.0",
|
||||
"image-size": "^0.7.4",
|
||||
"is-my-json-valid": "^2.20.0",
|
||||
"minimist": "^1.1.3",
|
||||
"parse-color": "^1.0.0",
|
||||
"path-exists": "^4.0.0",
|
||||
"repeat-string": "^1.5.4"
|
||||
}
|
||||
},
|
||||
"async": {
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
||||
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
|
||||
},
|
||||
"base32-encode": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/base32-encode/-/base32-encode-1.1.1.tgz",
|
||||
"integrity": "sha512-eqa0BeGghj3guezlasdHJhr3+J5ZbbQvxeprkcDMbRQrjlqOT832IUDT4Al4ofAwekFYMqkkM9KMUHs9Cu0HKA=="
|
||||
},
|
||||
"bplist-creator": {
|
||||
"version": "0.0.8",
|
||||
"resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz",
|
||||
"integrity": "sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==",
|
||||
"requires": {
|
||||
"stream-buffers": "~2.2.0"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz",
|
||||
"integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0="
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||
"requires": {
|
||||
"nice-try": "^1.0.4",
|
||||
"path-key": "^2.0.1",
|
||||
"semver": "^5.5.0",
|
||||
"shebang-command": "^1.2.0",
|
||||
"which": "^1.2.9"
|
||||
}
|
||||
},
|
||||
"ds-store": {
|
||||
"version": "0.1.6",
|
||||
"resolved": "https://registry.npmjs.org/ds-store/-/ds-store-0.1.6.tgz",
|
||||
"integrity": "sha1-0QJO90btDBPw9/7IXH6FjoxLfKc=",
|
||||
"requires": {
|
||||
"bplist-creator": "~0.0.3",
|
||||
"macos-alias": "~0.2.5",
|
||||
"tn1150": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"encode-utf8": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
|
||||
"integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw=="
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
||||
"requires": {
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"execa": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
|
||||
"integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
|
||||
"requires": {
|
||||
"cross-spawn": "^6.0.0",
|
||||
"get-stream": "^4.0.0",
|
||||
"is-stream": "^1.1.0",
|
||||
"npm-run-path": "^2.0.0",
|
||||
"p-finally": "^1.0.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"strip-eof": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"fmix": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fmix/-/fmix-0.1.0.tgz",
|
||||
"integrity": "sha1-x7vxJN7ELJ0ZHPuUfQqXeN2YbAw=",
|
||||
"requires": {
|
||||
"imul": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"fs-temp": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/fs-temp/-/fs-temp-1.2.1.tgz",
|
||||
"integrity": "sha512-okTwLB7/Qsq82G6iN5zZJFsOfZtx2/pqrA7Hk/9fvy+c+eJS9CvgGXT2uNxwnI14BDY9L/jQPkaBgSvlKfSW9w==",
|
||||
"requires": {
|
||||
"random-path": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"fs-xattr": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/fs-xattr/-/fs-xattr-0.3.1.tgz",
|
||||
"integrity": "sha512-UVqkrEW0GfDabw4C3HOrFlxKfx0eeigfRne69FxSBdHIP8Qt5Sq6Pu3RM9KmMlkygtC4pPKkj5CiPO5USnj2GA=="
|
||||
},
|
||||
"generate-function": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
|
||||
"integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==",
|
||||
"requires": {
|
||||
"is-property": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"generate-object-property": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
|
||||
"integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
|
||||
"requires": {
|
||||
"is-property": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"get-stream": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
|
||||
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
|
||||
"requires": {
|
||||
"pump": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"image-size": {
|
||||
"version": "0.7.5",
|
||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz",
|
||||
"integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g=="
|
||||
},
|
||||
"imul": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/imul/-/imul-1.0.1.tgz",
|
||||
"integrity": "sha1-nVhnFh6LPelsLDjV3HyxAvNeKsk="
|
||||
},
|
||||
"is-my-ip-valid": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz",
|
||||
"integrity": "sha512-gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ=="
|
||||
},
|
||||
"is-my-json-valid": {
|
||||
"version": "2.20.0",
|
||||
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz",
|
||||
"integrity": "sha512-XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==",
|
||||
"requires": {
|
||||
"generate-function": "^2.0.0",
|
||||
"generate-object-property": "^1.1.0",
|
||||
"is-my-ip-valid": "^1.0.0",
|
||||
"jsonpointer": "^4.0.0",
|
||||
"xtend": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"is-property": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
|
||||
"integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
|
||||
},
|
||||
"is-stream": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
|
||||
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
|
||||
},
|
||||
"isexe": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
|
||||
},
|
||||
"jsonpointer": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz",
|
||||
"integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk="
|
||||
},
|
||||
"macos-alias": {
|
||||
"version": "0.2.11",
|
||||
"resolved": "https://registry.npmjs.org/macos-alias/-/macos-alias-0.2.11.tgz",
|
||||
"integrity": "sha1-/u6mwTuhGYFKQ/xDxHCzHlnvcYo=",
|
||||
"requires": {
|
||||
"nan": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
|
||||
},
|
||||
"murmur-32": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/murmur-32/-/murmur-32-0.2.0.tgz",
|
||||
"integrity": "sha512-ZkcWZudylwF+ir3Ld1n7gL6bI2mQAzXvSobPwVtu8aYi2sbXeipeSkdcanRLzIofLcM5F53lGaKm2dk7orBi7Q==",
|
||||
"requires": {
|
||||
"encode-utf8": "^1.0.3",
|
||||
"fmix": "^0.1.0",
|
||||
"imul": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.14.1",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz",
|
||||
"integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw=="
|
||||
},
|
||||
"nice-try": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
||||
},
|
||||
"npm-run-path": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
|
||||
"integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
|
||||
"requires": {
|
||||
"path-key": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"p-finally": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
|
||||
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
|
||||
},
|
||||
"parse-color": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz",
|
||||
"integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=",
|
||||
"requires": {
|
||||
"color-convert": "~0.5.0"
|
||||
}
|
||||
},
|
||||
"path-exists": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
||||
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
|
||||
},
|
||||
"path-key": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
|
||||
},
|
||||
"pump": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
|
||||
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
||||
"requires": {
|
||||
"end-of-stream": "^1.1.0",
|
||||
"once": "^1.3.1"
|
||||
}
|
||||
},
|
||||
"random-path": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/random-path/-/random-path-0.1.2.tgz",
|
||||
"integrity": "sha512-4jY0yoEaQ5v9StCl5kZbNIQlg1QheIDBrdkDn53EynpPb9FgO6//p3X/tgMnrC45XN6QZCzU1Xz/+pSSsJBpRw==",
|
||||
"requires": {
|
||||
"base32-encode": "^0.1.0 || ^1.0.0",
|
||||
"murmur-32": "^0.1.0 || ^0.2.0"
|
||||
}
|
||||
},
|
||||
"repeat-string": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
|
||||
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
|
||||
},
|
||||
"shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
|
||||
"requires": {
|
||||
"shebang-regex": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"shebang-regex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
|
||||
},
|
||||
"signal-exit": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
|
||||
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
|
||||
},
|
||||
"stream-buffers": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
|
||||
"integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ="
|
||||
},
|
||||
"strip-eof": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
|
||||
"integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
|
||||
},
|
||||
"tn1150": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tn1150/-/tn1150-0.1.0.tgz",
|
||||
"integrity": "sha1-ZzUD0k1WuH3ouMd/7j/AhT1ZoY0=",
|
||||
"requires": {
|
||||
"unorm": "^1.4.1"
|
||||
}
|
||||
},
|
||||
"unorm": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz",
|
||||
"integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA=="
|
||||
},
|
||||
"which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
||||
"requires": {
|
||||
"isexe": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
},
|
||||
"xtend": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
||||
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
|
||||
}
|
||||
}
|
||||
}
|
23
package.json
Normal file
23
package.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "jellyfin-server-macos",
|
||||
"version": "1.0.0",
|
||||
"description": "<h1 align=\"center\">Jellyfin for macOS</h1> <h3 align=\"center\">Part of the <a href=\"https://jellyfin.media\">Jellyfin Project</a></h3>",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/anthonylavado/jellyfin-server-macos.git"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "Anthony Lavado",
|
||||
"license": "MPL-2.0",
|
||||
"bugs": {
|
||||
"url": "https://github.com/anthonylavado/jellyfin-server-macos/issues"
|
||||
},
|
||||
"homepage": "https://github.com/anthonylavado/jellyfin-server-macos#readme",
|
||||
"dependencies": {
|
||||
"appdmg": "^0.6.0"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user