UNPKG

@shockpkg/core

Version:
1 lines 86.8 kB
{"version":3,"sources":["manager.ts"],"names":["join","pathJoin","fse","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","inIns","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 {join as pathJoin} from 'path';\nimport {Readable} from 'stream';\n\nimport fse from 'fs-extra';\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\t/**\n\t * Package install before events.\n\t */\n\tpublic readonly eventPackageInstallBefore = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageInstallBefore>(this)\n\t);\n\n\t/**\n\t * Package install after events.\n\t */\n\tpublic readonly eventPackageInstallAfter = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageInstallAfter>(this)\n\t);\n\n\t/**\n\t * Package install current events.\n\t */\n\tpublic readonly eventPackageInstallCurrent = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageInstallCurrent>(this)\n\t);\n\n\t/**\n\t * Package download before events.\n\t */\n\tpublic readonly eventPackageDownloadBefore = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageDownloadBefore>(this)\n\t);\n\n\t/**\n\t * Package download after events.\n\t */\n\tpublic readonly eventPackageDownloadAfter = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageDownloadAfter>(this)\n\t);\n\n\t/**\n\t * Package download progress events.\n\t */\n\tpublic readonly eventPackageDownloadProgress = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageDownloadProgress>(this)\n\t);\n\n\t/**\n\t * Package stream before events.\n\t */\n\tpublic readonly eventPackageStreamBefore = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageStreamBefore>(this)\n\t);\n\n\t/**\n\t * Package stream after events.\n\t */\n\tpublic readonly eventPackageStreamAfter = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageStreamAfter>(this)\n\t);\n\n\t/**\n\t * Package stream progress events.\n\t */\n\tpublic readonly eventPackageStreamProgress = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageStreamProgress>(this)\n\t);\n\n\t/**\n\t * Package extract before events.\n\t */\n\tpublic readonly eventPackageExtractBefore = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageExtractBefore>(this)\n\t);\n\n\t/**\n\t * Package extract after events.\n\t */\n\tpublic readonly eventPackageExtractAfter = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageExtractAfter>(this)\n\t);\n\n\t/**\n\t * Package extract progress events.\n\t */\n\tpublic readonly eventPackageExtractProgress = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageExtractProgress>(this)\n\t);\n\n\t/**\n\t * Package cleanup before events.\n\t */\n\tpublic readonly eventPackageCleanupBefore = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageCleanupBefore>(this)\n\t);\n\n\t/**\n\t * Package cleanup after events.\n\t */\n\tpublic readonly eventPackageCleanupAfter = (\n\t\t// eslint-disable-next-line no-invalid-this\n\t\tnew Dispatcher<IPackageCleanupAfter>(this)\n\t);\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\t * @returns The path.\n\t */\n\tpublic get path() {\n\t\treturn this._path;\n\t}\n\n\t/**\n\t * Packages URL.\n\t *\n\t * @returns The URL.\n\t */\n\tpublic get packagesUrl() {\n\t\treturn this._packagesUrl;\n\t}\n\n\t/**\n\t * Packages file.\n\t *\n\t * @returns The file.\n\t */\n\tpublic get packagesFile() {\n\t\treturn this._packagesFile;\n\t}\n\n\t/**\n\t * Package file.\n\t *\n\t * @returns The path.\n\t */\n\tpublic get packageFile() {\n\t\treturn this._packageFile;\n\t}\n\n\t/**\n\t * Packages file path.\n\t *\n\t * @returns The 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\t * @returns The directory.\n\t */\n\tpublic get metaDir() {\n\t\treturn this._metaDir;\n\t}\n\n\t/**\n\t * Temp directory.\n\t *\n\t * @returns The 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\t * @returns The 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\t * @returns Is active.\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\t * @returns Is 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\t * @returns Is 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\t// eslint-disable-next-line no-sync\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\t// eslint-disable-next-line no-sync\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\t// eslint-disable-next-line no-sync\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(async () => this._init());\n\t}\n\n\t/**\n\t * Destroy instance.\n\t */\n\tpublic async destroy() {\n\t\tawait this._exclusiveAsync(async () => 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 * @returns 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\t * @returns Package itterator.\n\t */\n\tpublic packageItter() {\n\t\t// eslint-disable-next-line no-sync\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 * @returns The package or null.\n\t */\n\tpublic packageByName(name: string) {\n\t\t// eslint-disable-next-line no-sync\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 * @returns The package or null.\n\t */\n\tpublic packageBySha256(sha256: string) {\n\t\t// eslint-disable-next-line no-sync\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 unique Package unique.\n\t * @returns The package or null.\n\t */\n\tpublic packageByUnique(unique: string) {\n\t\t// eslint-disable-next-line no-sync\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 * @returns If the package instance is present.\n\t */\n\tpublic packageIsMember(pkg: Package) {\n\t\t// eslint-disable-next-line no-sync\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 * @returns Install receipt.\n\t */\n\tpublic async packageInstallReceipt(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(\n\t\t\tasync () => this._packageMetaReceiptRead(pkg)\n\t\t);\n\t}\n\n\t/**\n\t * Get package install file.\n\t *\n\t * @param pkg The package.\n\t * @returns Path to install file.\n\t */\n\tpublic async packageInstallFile(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(async () => 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(async () => this._packageInstallVerify(pkg));\n\t}\n\n\t/**\n\t * Packages ordered by dependencies.\n\t *\n\t * @param pkgs Packages list.\n\t * @returns Packages list, sorted order.\n\t */\n\tpublic packagesDependOrdered(pkgs: PackageLike[]) {\n\t\t// eslint-disable-next-line no-sync\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 * @returns Update report.\n\t */\n\tpublic async update() {\n\t\treturn this._exclusiveAsync(async () => 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 * @returns True if already installed, else false.\n\t */\n\tpublic async isInstalled(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(async () => 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 * @returns True if already up-to-date, else false.\n\t */\n\tpublic async isCurrent(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(async () => this._isCurrent(pkg));\n\t}\n\n\t/**\n\t * List all installed packages.\n\t *\n\t * @returns A list of installed package objects.\n\t */\n\tpublic async installed() {\n\t\treturn this._exclusiveAsync(async () => this._installed());\n\t}\n\n\t/**\n\t * List all outdated packages.\n\t *\n\t * @returns The list of outdated package objects.\n\t */\n\tpublic async outdated() {\n\t\treturn this._exclusiveAsync(async () => this._outdated());\n\t}\n\n\t/**\n\t * An alias for upgradeSlim.\n\t *\n\t * @returns List of packages upgraded.\n\t */\n\tpublic async upgrade() {\n\t\treturn this._exclusiveAsync(async () => this._upgrade());\n\t}\n\n\t/**\n\t * Upgrade any outdated packages.\n\t *\n\t * @returns List of packages upgraded.\n\t */\n\tpublic async upgradeFull() {\n\t\treturn this._exclusiveAsync(async () => this._upgradeFull());\n\t}\n\n\t/**\n\t * Upgrade any outdated packages, using slim install method.\n\t *\n\t * @returns List of packages upgraded.\n\t */\n\tpublic async upgradeSlim() {\n\t\treturn this._exclusiveAsync(async () => this._upgradeSlim());\n\t}\n\n\t/**\n\t * An alias for installSlim.\n\t *\n\t * @param pkg The package.\n\t * @returns True if was installed, false if already installed.\n\t */\n\tpublic async install(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(async () => 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 * @returns List of packages processed.\n\t */\n\tpublic async installFull(pkg: PackageLike) {\n\t\treturn this._exclusiveAsync(async () => 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 * @returns Installed list.\n\t */\n\tpublic async installFullMulti(pkgs: PackageLike[]) {\n\t\treturn this._exclusiveAsync(async () => 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 * @returns List of packages proces