@shockpkg/core
Version:
shockpkg core
1 lines • 82.4 kB
Source Map (JSON)
{"version":3,"sources":["manager.ts"],"names":["fse","join","pathJoin","MAIN_DIR","META_DIR","PACKAGE_FILE","PACKAGES_FILE","PACKAGES_URL","PACKAGES_URL_ENV","PATH_ENV","TEMP_DIR","property","Dispatcher","Lock","Packages","Request","arrayFilterAsync","arrayMapAsync","dependSort","fileHashVerify","fileSizeVerify","lstatExists","promiseCatch","readDir","streamRequest","streamRequestDownload","zipEntryExtract","Zip","Manager","Object","constructor","path","eventPackageInstallBefore","eventPackageInstallAfter","eventPackageInstallCurrent","eventPackageDownloadBefore","eventPackageDownloadAfter","eventPackageDownloadProgress","eventPackageStreamBefore","eventPackageStreamAfter","eventPackageStreamProgress","eventPackageExtractBefore","eventPackageExtractAfter","eventPackageExtractProgress","eventPackageCleanupBefore","eventPackageCleanupAfter","_path","_createPath","lock","_createLock","eventCompromised","on","_lock","_packagesUrl","_createPackagesUrl","_packages","_createPackages","_request","_createRequest","packagesUrl","packagesFile","_packagesFile","packageFile","_packageFile","pathMetaPackages","pathToMeta","metaDir","_metaDir","tempDir","_tempDir","pathMeta","active","_destroyed","_inited","loaded","lockCompromised","compromised","assertNotInited","_exclusiveSync","_assertNotInited","assertActive","_assertActive","assertLoaded","_assertLoaded","init","_exclusiveAsync","_init","destroy","_destroy","with","func","r","call","packageItter","_packageItter","packageByName","name","_packageByName","packageBySha256","sha256","_packageBySha256","packageByUnique","unique","_packageByUnique","packageIsMember","pkg","_packageIsMember","packageInstallReceipt","_packageMetaReceiptRead","packageInstallFile","_packageInstallFile","packageInstallVerify","_packageInstallVerify","packagesDependOrdered","pkgs","_packagesDependOrdered","update","_update","isInstalled","_isInstalled","isCurrent","_isCurrent","installed","_installed","outdated","_outdated","upgrade","_upgrade","upgradeFull","_upgradeFull","upgradeSlim","_upgradeSlim","install","_install","installFull","_installFull","installFullMulti","_installFullMulti","installSlim","_installSlim","installSlimMulti","_installSlimMulti","remove","_remove","isObsolete","_isObsolete","obsolete","_obsolete","cleanup","_cleanup","pathTo","parts","pathToTemp","pathToPackage","_pathToPackage","pathToPackageMeta","_pathToPackageMeta","_packageToName","_assertNotExclusive","_exclusive","entry","itter","byName","bySha256","byUnique","has","_packageToPackage","data","file","size","filePath","algorithm","encoding","digest","p","Error","_assertpackageIsMember","mustExist","pkgObj","_packageParents","parent","push","_packageParentsNotUpdated","_packageInstallList","reverse","list","map","pkgf","readJson","_packageMetaReceiptWrite","receipt","_packageMetaReceiptFromPackage","outputJson","spaces","source","_packageMetaDirExists","dir","pathExists","_packageDirsEnsure","dirMeta","ensureDir","_assertInited","_assertNotDestroyed","_assertLockNotCompromised","assertHas","_assertStatusCode","expected","statusCode","_assertContentLength","contentLength","_ensureDirs","aquire","readIfExists","held","release","_updatePackages","err","dirList","_packagesDirList","filtered","triggerSync","package","method","tmpFile","outFile","oldFile","_tempDirEnsure","pF","_packageExtract","_packageDownload","move","_tempDirRemove","stream","length","shift","fileTmpBase","fileTmp","i","tmpFileP","_packageStream","archive","stat","removed","zip","_createZip","openFile","_packageExtractZip","pkgO","found","read","total","amount","url","response","headers","streamer","_packageStreamStreamer","openStreamer","start","end","Range","then","catch","_requestPackages","body","promise","Pragma","gzip","report","write","clean","process","env","_pathEnv","_mainDir","defaultUrl","_packagesUrlEnv"],"mappings":"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","sourcesContent":["import fse from 'fs-extra';\nimport {join as pathJoin} from 'path';\nimport {Readable} from 'stream';\n\nimport {\n\tMAIN_DIR,\n\tMETA_DIR,\n\tPACKAGE_FILE,\n\tPACKAGES_FILE,\n\tPACKAGES_URL,\n\tPACKAGES_URL_ENV,\n\tPATH_ENV,\n\tTEMP_DIR\n} from './constants';\nimport {property} from './decorators';\nimport {Dispatcher} from './dispatcher';\nimport {Lock} from './lock';\nimport {Package} from './package';\nimport {Packages} from './packages';\nimport {Request} from './request';\nimport {\n\tIPackageCleanupAfter,\n\tIPackageCleanupBefore,\n\tIPackageDownloadAfter,\n\tIPackageDownloadBefore,\n\tIPackageDownloadProgress,\n\tIPackageExtractAfter,\n\tIPackageExtractBefore,\n\tIPackageExtractProgress,\n\tIPackageInstallAfter,\n\tIPackageInstallBefore,\n\tIPackageInstallCurrent,\n\tIPackageInstalled,\n\tIPackageReceipt,\n\tIPackageRemovedObsolete,\n\tIPackageStreamAfter,\n\tIPackageStreamBefore,\n\tIPackageStreamProgress,\n\tPackageLike\n} from './types';\nimport {\n\tarrayFilterAsync,\n\tarrayMapAsync,\n\tdependSort,\n\tfileHashVerify,\n\tfileSizeVerify,\n\tlstatExists,\n\tpromiseCatch,\n\treadDir,\n\tstreamRequest,\n\tstreamRequestDownload,\n\tzipEntryExtract\n} from './util';\nimport {Zip} from './zip';\n\n/**\n * Manager constructor.\n *\n * @param path The path, defaults to environment variable or relative.\n */\nexport class Manager extends Object {\n\n\t/**\n\t * Package install before events.\n\t */\n\tpublic readonly eventPackageInstallBefore =\n\t\tnew Dispatcher<IPackageInstallBefore>(this);\n\n\t/**\n\t * Package install after events.\n\t */\n\tpublic readonly eventPackageInstallAfter =\n\t\tnew Dispatcher<IPackageInstallAfter>(this);\n\n\t/**\n\t * Package install current events.\n\t */\n\tpublic readonly eventPackageInstallCurrent =\n\t\tnew Dispatcher<IPackageInstallCurrent>(this);\n\n\t/**\n\t * Package download before events.\n\t */\n\tpublic readonly eventPackageDownloadBefore =\n\t\tnew Dispatcher<IPackageDownloadBefore>(this);\n\n\t/**\n\t * Package download after events.\n\t */\n\tpublic readonly eventPackageDownloadAfter =\n\t\tnew Dispatcher<IPackageDownloadAfter>(this);\n\n\t/**\n\t * Package download progress events.\n\t */\n\tpublic readonly eventPackageDownloadProgress =\n\t\tnew Dispatcher<IPackageDownloadProgress>(this);\n\n\t/**\n\t * Package stream before events.\n\t */\n\tpublic readonly eventPackageStreamBefore =\n\t\tnew Dispatcher<IPackageStreamBefore>(this);\n\n\t/**\n\t * Package stream after events.\n\t */\n\tpublic readonly eventPackageStreamAfter =\n\t\tnew Dispatcher<IPackageStreamAfter>(this);\n\n\t/**\n\t * Package stream progress events.\n\t */\n\tpublic readonly eventPackageStreamProgress =\n\t\tnew Dispatcher<IPackageStreamProgress>(this);\n\n\t/**\n\t * Package extract before events.\n\t */\n\tpublic readonly eventPackageExtractBefore =\n\t\tnew Dispatcher<IPackageExtractBefore>(this);\n\n\t/**\n\t * Package extract after events.\n\t */\n\tpublic readonly eventPackageExtractAfter =\n\t\tnew Dispatcher<IPackageExtractAfter>(this);\n\n\t/**\n\t * Package extract progress events.\n\t */\n\tpublic readonly eventPackageExtractProgress =\n\t\tnew Dispatcher<IPackageExtractProgress>(this);\n\n\t/**\n\t * Package cleanup before events.\n\t */\n\tpublic readonly eventPackageCleanupBefore =\n\t\tnew Dispatcher<IPackageCleanupBefore>(this);\n\n\t/**\n\t * Package cleanup after events.\n\t */\n\tpublic readonly eventPackageCleanupAfter =\n\t\tnew Dispatcher<IPackageCleanupAfter>(this);\n\n\t/**\n\t * Packages URL.\n\t */\n\t@property(false)\n\tprotected readonly _packagesUrl: string = PACKAGES_URL;\n\n\t/**\n\t * Packages file.\n\t */\n\t@property(false)\n\tprotected readonly _packagesFile: string = PACKAGES_FILE;\n\n\t/**\n\t * Package file.\n\t */\n\t@property(false)\n\tprotected readonly _packageFile: string = PACKAGE_FILE;\n\n\t/**\n\t * Main directory.\n\t */\n\t@property(false)\n\tprotected readonly _mainDir: string = MAIN_DIR;\n\n\t/**\n\t * Meta directory.\n\t */\n\t@property(false)\n\tprotected readonly _metaDir: string = META_DIR;\n\n\t/**\n\t * Temp directory.\n\t */\n\t@property(false)\n\tprotected readonly _tempDir: string = TEMP_DIR;\n\n\t/**\n\t * Path environment variable name.\n\t */\n\t@property(false)\n\tprotected readonly _pathEnv: string = PATH_ENV;\n\n\t/**\n\t * Packages URL environment variable name.\n\t */\n\t@property(false)\n\tprotected readonly _packagesUrlEnv: string = PACKAGES_URL_ENV;\n\n\t/**\n\t * Inited flag.\n\t */\n\t@property(false)\n\tprotected _inited = false;\n\n\t/**\n\t * Destroyed flag.\n\t */\n\t@property(false)\n\tprotected _destroyed = false;\n\n\t/**\n\t * Exclusive access flag.\n\t */\n\t@property(false)\n\tprotected _exclusive = false;\n\n\t/**\n\t * Root path.\n\t */\n\t@property(false)\n\tprotected readonly _path: string;\n\n\t/**\n\t * Lock file instance.\n\t */\n\t@property(false)\n\tprotected readonly _lock: Lock;\n\n\t/**\n\t * Packages instance.\n\t */\n\t@property(false)\n\tprotected readonly _packages: Packages;\n\n\t/**\n\t * Request instance.\n\t */\n\t@property(false)\n\tprotected readonly _request: Request;\n\n\tconstructor(path: string | null = null) {\n\t\tsuper();\n\n\t\tthis._path = this._createPath(path);\n\t\tconst lock = this._createLock();\n\t\tlock.eventCompromised.on(() => {\n\t\t\t// Do nothing, instead fail on next assert call.\n\t\t});\n\t\tthis._lock = lock;\n\t\tthis._packagesUrl = this._createPackagesUrl(this._packagesUrl);\n\t\tthis._packages = this._createPackages();\n\t\tthis._request = this._createRequest();\n\t}\n\n\t/**\n\t * Root path.\n\t */\n\tpublic get path() {\n\t\treturn this._path;\n\t}\n\n\t/**\n\t * Packages URL.\n\t */\n\tpublic get packagesUrl() {\n\t\treturn this._packagesUrl;\n\t}\n\n\t/**\n\t * Packages file.\n\t */\n\tpublic get packagesFile() {\n\t\treturn this._packagesFile;\n\t}\n\n\t/**\n\t * Package file.\n\t */\n\tpublic get packageFile() {\n\t\treturn this._packageFile;\n\t}\n\n\t/**\n\t * Packages file path.\n\t */\n\tpublic get pathMetaPackages() {\n\t\treturn this.pathToMeta(this.packagesFile);\n\t}\n\n\t/**\n\t * Meta directory.\n\t */\n\tpublic get metaDir() {\n\t\treturn this._metaDir;\n\t}\n\n\t/**\n\t * Temp directory.\n\t */\n\tpublic get tempDir() {\n\t\treturn this._tempDir;\n\t}\n\n\t/**\n\t * Meta directory path for root path.\n\t */\n\tpublic get pathMeta() {\n\t\treturn this.pathToMeta();\n\t}\n\n\t/**\n\t * Instance inited and not yet destroyed.\n\t */\n\tpublic get active() {\n\t\treturn !this._destroyed && this._inited;\n\t}\n\n\t/**\n\t * Packages loaded.\n\t */\n\tpublic get loaded() {\n\t\treturn this._packages.loaded;\n\t}\n\n\t/**\n\t * The lock file compromised.\n\t */\n\tpublic get lockCompromised() {\n\t\treturn this._lock.compromised;\n\t}\n\n\t/**\n\t * Assert instance not inited.\n\t */\n\tpublic assertNotInited() {\n\t\tthis._exclusiveSync(() => {\n\t\t\tthis._assertNotInited();\n\t\t});\n\t}\n\n\t/**\n\t * Assert instance is active.\n\t * Implies inited, not-destroyed, and lock-not-compromised assertions.\n\t */\n\tpublic assertActive() {\n\t\tthis._exclusiveSync(() => {\n\t\t\tthis._assertActive();\n\t\t});\n\t}\n\n\t/**\n\t * Assert instance all loaded, including the packages list.\n\t * Implies all active assertions.\n\t */\n\tpublic assertLoaded() {\n\t\tthis._exclusiveSync(() => {\n\t\t\tthis._assertLoaded();\n\t\t});\n\t}\n\n\t/**\n\t * Initialize instance.\n\t */\n\tpublic async init() {\n\t\tawait this._exclusiveAsync(() => this._init());\n\t}\n\n\t/**\n\t * Destroy instance.\n\t */\n\tpublic async destroy() {\n\t\tawait this._exclusiveAsync(() => this._destroy());\n\t}\n\n\t/**\n\t * Run asyncronous function with automatic init and destroy.\n\t *\n\t * @param func Async function.\n\t * @return Return value of the async function.\n\t */\n\tpublic async with<T>(func: (self: this) => Promise<T>): Promise<T> {\n\t\tawait this.init();\n\t\tlet r: T;\n\t\ttry {\n\t\t\tr = await func.call(this, this);\n\t\t}\n\t\tfinally {\n\t\t\tawait this.destroy();\n\t\t}\n\t\treturn r;\n\t}\n\n\t/**\n\t * Itterate over the packages.\n\t */\n\tpublic packageItter() {\n\t\treturn this._exclusiveSync(() => this._packageItter());\n\t}\n\n\t/**\n\t * Get package by the unique name.\n\t *\n\t * @param name Package name.\n\t * @return The package or null.\n\t */\n\tpublic packageByName(name: string) {\n\t\treturn this._exclusiveSync(() => this._packageByName(name));\n\t}\n\n\t/**\n\t * Get package by the sha256 hash.\n\t *\n\t * @param sha256 Package sha256.\n\t * @return The package or null.\n\t */\n\tpublic packageBySha256(sha256: string) {\n\t\treturn this._exclusiveSync(() => this._packageBySha256(sha256));\n\t}\n\n\t/**\n\t * Get package by the unique value.\n\t *\n\t * @param name Package unique.\n\t * @return The package or null.\n\t */\n\tpublic packageByUnique(unique: string) {\n\t\treturn this._exclusiveSync(() => this._packageByUnique(unique));\n\t}\n\n\t/**\n\t * Check if package is in packages collection.\n\t *\n\t * @param pkg Package instance.\n\t * @return If the package instance is present.\n\t */\n\tpublic packageIsMember(pkg: Package) {\n\t\treturn this._exclusiveSync(() => this._packageIsMember(pkg));\n\t}\n\n\t/**\n\t * Read package install receipt.\n\t *\n\t * @param pkg The package.\n\t * @return Install receipt.\n\t */\n\tpublic async packageInstallReceipt(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(() => this._packageMetaReceiptRead(pkg));\n\t}\n\n\t/**\n\t * Get package install file.\n\t *\n\t * @param pkg The package.\n\t * @return Path to install file.\n\t */\n\tpublic async packageInstallFile(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(() => this._packageInstallFile(pkg));\n\t}\n\n\t/**\n\t * Verify package install file, using size and hash.\n\t *\n\t * @param pkg The package.\n\t */\n\tpublic async packageInstallVerify(pkg: PackageLike) {\n\t\tawait this._exclusiveAsync(() => this._packageInstallVerify(pkg));\n\t}\n\n\t/**\n\t * Packages ordered by dependencies.\n\t *\n\t * @param pkgs Packages list.\n\t * @return Packages list, sorted order.\n\t */\n\tpublic packagesDependOrdered(pkgs: PackageLike[]) {\n\t\treturn this._exclusiveSync(() => this._packagesDependOrdered(pkgs));\n\t}\n\n\t/**\n\t * Update the package manager installed data.\n\t * Updates the packages list.\n\t *\n\t * @return Update report.\n\t */\n\tpublic async update() {\n\t\treturn this._exclusiveAsync(() => this._update());\n\t}\n\n\t/**\n\t * Check if a package is installed.\n\t *\n\t * @param pkg The package.\n\t * @return True if already installed, else false.\n\t */\n\tpublic async isInstalled(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(() => this._isInstalled(pkg));\n\t}\n\n\t/**\n\t * Check if a package is installed and up-to-date.\n\t *\n\t * @param pkg The package.\n\t * @return True if already up-to-date, else false.\n\t */\n\tpublic async isCurrent(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(() => this._isCurrent(pkg));\n\t}\n\n\t/**\n\t * List all installed packages.\n\t *\n\t * @return A list of installed package objects.\n\t */\n\tpublic async installed() {\n\t\treturn this._exclusiveAsync(() => this._installed());\n\t}\n\n\t/**\n\t * List all outdated packages.\n\t *\n\t * @return The list of outdated package objects.\n\t */\n\tpublic async outdated() {\n\t\treturn this._exclusiveAsync(() => this._outdated());\n\t}\n\n\t/**\n\t * An alias for upgradeSlim.\n\t *\n\t * @return List of packages upgraded.\n\t */\n\tpublic async upgrade() {\n\t\treturn this._exclusiveAsync(() => this._upgrade());\n\t}\n\n\t/**\n\t * Upgrade any outdated packages.\n\t *\n\t * @return List of packages upgraded.\n\t */\n\tpublic async upgradeFull() {\n\t\treturn this._exclusiveAsync(() => this._upgradeFull());\n\t}\n\n\t/**\n\t * Upgrade any outdated packages, using slim install method.\n\t *\n\t * @return List of packages upgraded.\n\t */\n\tpublic async upgradeSlim() {\n\t\treturn this._exclusiveAsync(() => this._upgradeSlim());\n\t}\n\n\t/**\n\t * An alias for installSlim.\n\t *\n\t * @param pkg The package.\n\t * @return True if was installed, false if already installed.\n\t */\n\tpublic async install(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(() => this._install(pkg));\n\t}\n\n\t/**\n\t * Install package, with parents.\n\t * Returns the list of packages installed to install.\n\t * Returns empty array if current version is already installed.\n\t *\n\t * @param pkg The package.\n\t * @return List of packages processed.\n\t */\n\tpublic async installFull(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(() => this._installFull(pkg));\n\t}\n\n\t/**\n\t * Install multiple package with parents, higher dependencies first.\n\t *\n\t * @param pkgs Packages list.\n\t * @return Installed list.\n\t */\n\tpublic async installFullMulti(pkgs: PackageLike[]) {\n\t\treturn this._exclusiveAsync(() => this._installFullMulti(pkgs));\n\t}\n\n\t/**\n\t * Install package, without parents.\n\t * Returns the list of packages downloaded or extracted to install.\n\t * Returns empty array if current version is already installed.\n\t *\n\t * @param pkg The package.\n\t * @return List of packages processed.\n\t */\n\tpublic async installSlim(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(() => this._installSlim(pkg));\n\t}\n\n\t/**\n\t * Install multiple package without parents, higher dependencies first.\n\t *\n\t * @param pkgs Packages list.\n\t * @return Installed list.\n\t */\n\tpublic async installSlimMulti(pkgs: PackageLike[]) {\n\t\treturn this._exclusiveAsync(() => this._installSlimMulti(pkgs));\n\t}\n\n\t/**\n\t * Remove package.\n\t *\n\t * @param pkg The package.\n\t * @return True if removed, false if nothing to remove.\n\t */\n\tpublic async remove(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(() => this._remove(pkg));\n\t}\n\n\t/**\n\t * Check if package name is obsolete.\n\t *\n\t * @param pkg The package.\n\t * @return True if package obslete, else false.\n\t */\n\tpublic async isObsolete(pkg: string) {\n\t\treturn this._exclusiveAsync(() => this._isObsolete(pkg));\n\t}\n\n\t/**\n\t * List obsolete package names.\n\t *\n\t * @return A list of obsolete package names.\n\t */\n\tpublic async obsolete() {\n\t\treturn this._exclusiveAsync(() => this._obsolete());\n\t}\n\n\t/**\n\t * Cleanup all obsolete and outdated packages.\n\t *\n\t * @return Lists of removed packages.\n\t */\n\tpublic async cleanup() {\n\t\treturn this._exclusiveAsync(() => this._cleanup());\n\t}\n\n\t/**\n\t * Join path on the base path.\n\t *\n\t * @param parts[] Path parts.\n\t * @return Joined path.\n\t */\n\tpublic pathTo(...parts: string[]) {\n\t\treturn pathJoin(this.path, ...parts);\n\t}\n\n\t/**\n\t * Join path on the meta path.\n\t *\n\t * @param parts[] Path parts.\n\t * @return Joined path.\n\t */\n\tpublic pathToMeta(...parts: string[]) {\n\t\treturn this.pathTo(this.metaDir, ...parts);\n\t}\n\n\t/**\n\t * Join path on the temp folder path.\n\t *\n\t * @param parts[] Path parts.\n\t * @return Joined path.\n\t */\n\tpublic pathToTemp(...parts: string[]) {\n\t\treturn this.pathToMeta(this.tempDir, ...parts);\n\t}\n\n\t/**\n\t * Join path on package base path.\n\t *\n\t * @param pkg The package.\n\t * @param parts[] Path parts.\n\t * @return Joined path.\n\t */\n\tpublic pathToPackage(pkg: PackageLike, ...parts: string[]) {\n\t\treturn this._exclusiveSync(() => this._pathToPackage(pkg, ...parts));\n\t}\n\n\t/**\n\t * Join path on package