@iobroker/js-controller-cli 7.0.2 → 7.0.4-alpha.0-20241116-db3148f4f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/index.js +2 -1
- package/build/cjs/index.js.map +2 -2
- package/build/cjs/lib/_Types.d.ts +0 -1
- package/build/cjs/lib/cli/cliCert.js +17 -0
- package/build/cjs/lib/cli/cliCert.js.map +1 -1
- package/build/cjs/lib/cli/cliCommand.d.ts +0 -1
- package/build/cjs/lib/cli/cliCommand.js +6 -0
- package/build/cjs/lib/cli/cliCommand.js.map +1 -1
- package/build/cjs/lib/cli/cliCompact.js +30 -1
- package/build/cjs/lib/cli/cliCompact.js.map +1 -1
- package/build/cjs/lib/cli/cliDebug.js +16 -0
- package/build/cjs/lib/cli/cliDebug.js.map +1 -1
- package/build/cjs/lib/cli/cliHost.js +35 -0
- package/build/cjs/lib/cli/cliHost.js.map +1 -1
- package/build/cjs/lib/cli/cliLogs.js +33 -3
- package/build/cjs/lib/cli/cliLogs.js.map +3 -3
- package/build/cjs/lib/cli/cliMessage.js +10 -0
- package/build/cjs/lib/cli/cliMessage.js.map +1 -1
- package/build/cjs/lib/cli/cliObjects.d.ts +0 -1
- package/build/cjs/lib/cli/cliObjects.js +85 -0
- package/build/cjs/lib/cli/cliObjects.js.map +1 -1
- package/build/cjs/lib/cli/cliPlugin.js +23 -2
- package/build/cjs/lib/cli/cliPlugin.js.map +3 -3
- package/build/cjs/lib/cli/cliProcess.js +65 -2
- package/build/cjs/lib/cli/cliProcess.js.map +1 -1
- package/build/cjs/lib/cli/cliStates.d.ts +0 -1
- package/build/cjs/lib/cli/cliStates.js +38 -0
- package/build/cjs/lib/cli/cliStates.js.map +1 -1
- package/build/cjs/lib/cli/cliTools.js.map +1 -1
- package/build/cjs/lib/cli/messages.d.ts +27 -23
- package/build/cjs/lib/cli/messages.js.map +1 -1
- package/build/cjs/lib/setup/dbConnection.js +9 -0
- package/build/cjs/lib/setup/dbConnection.js.map +1 -1
- package/build/cjs/lib/setup/formatters.js.map +1 -1
- package/build/cjs/lib/setup/multihostClient.d.ts +0 -1
- package/build/cjs/lib/setup/multihostClient.js +36 -0
- package/build/cjs/lib/setup/multihostClient.js.map +1 -1
- package/build/cjs/lib/setup/setupBackup.js +112 -2
- package/build/cjs/lib/setup/setupBackup.js.map +1 -1
- package/build/cjs/lib/setup/setupInstall.d.ts +6 -6
- package/build/cjs/lib/setup/setupInstall.js +198 -57
- package/build/cjs/lib/setup/setupInstall.js.map +4 -4
- package/build/cjs/lib/setup/setupLicense.js +9 -0
- package/build/cjs/lib/setup/setupLicense.js.map +1 -1
- package/build/cjs/lib/setup/setupList.d.ts +0 -1
- package/build/cjs/lib/setup/setupList.js +4 -0
- package/build/cjs/lib/setup/setupList.js.map +1 -1
- package/build/cjs/lib/setup/setupMultihost.d.ts +2 -5
- package/build/cjs/lib/setup/setupMultihost.js +58 -33
- package/build/cjs/lib/setup/setupMultihost.js.map +3 -3
- package/build/cjs/lib/setup/setupPacketManager.js +41 -0
- package/build/cjs/lib/setup/setupPacketManager.js.map +1 -1
- package/build/cjs/lib/setup/setupRepo.js +60 -0
- package/build/cjs/lib/setup/setupRepo.js.map +1 -1
- package/build/cjs/lib/setup/setupSetup.d.ts +0 -1
- package/build/cjs/lib/setup/setupSetup.js +79 -5
- package/build/cjs/lib/setup/setupSetup.js.map +3 -3
- package/build/cjs/lib/setup/setupUpgrade.js +34 -0
- package/build/cjs/lib/setup/setupUpgrade.js.map +1 -1
- package/build/cjs/lib/setup/setupUpload.d.ts +0 -3
- package/build/cjs/lib/setup/setupUpload.js +43 -0
- package/build/cjs/lib/setup/setupUpload.js.map +1 -1
- package/build/cjs/lib/setup/setupUsers.d.ts +0 -1
- package/build/cjs/lib/setup/setupUsers.js +109 -0
- package/build/cjs/lib/setup/setupUsers.js.map +1 -1
- package/build/cjs/lib/setup/setupVendor.js +18 -1
- package/build/cjs/lib/setup/setupVendor.js.map +1 -1
- package/build/cjs/lib/setup/setupVisDebug.js +16 -0
- package/build/cjs/lib/setup/setupVisDebug.js.map +1 -1
- package/build/cjs/lib/setup/utils.d.ts +1 -1
- package/build/cjs/lib/setup/utils.js +8 -4
- package/build/cjs/lib/setup/utils.js.map +2 -2
- package/build/cjs/lib/setup.js +17 -6
- package/build/cjs/lib/setup.js.map +3 -3
- package/build/esm/index.d.ts.map +1 -1
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +1 -1
- package/build/esm/lib/_Types.d.ts +0 -1
- package/build/esm/lib/_Types.d.ts.map +1 -1
- package/build/esm/lib/cli/cliCommand.d.ts +0 -1
- package/build/esm/lib/cli/cliCommand.d.ts.map +1 -1
- package/build/esm/lib/cli/cliObjects.d.ts +0 -1
- package/build/esm/lib/cli/cliObjects.d.ts.map +1 -1
- package/build/esm/lib/cli/cliStates.d.ts +0 -1
- package/build/esm/lib/cli/cliStates.d.ts.map +1 -1
- package/build/esm/lib/cli/messages.d.ts +27 -23
- package/build/esm/lib/cli/messages.d.ts.map +1 -1
- package/build/esm/lib/setup/multihostClient.d.ts +0 -1
- package/build/esm/lib/setup/multihostClient.d.ts.map +1 -1
- package/build/esm/lib/setup/setupInstall.d.ts +6 -6
- package/build/esm/lib/setup/setupInstall.d.ts.map +1 -1
- package/build/esm/lib/setup/setupInstall.js +37 -70
- package/build/esm/lib/setup/setupInstall.js.map +1 -1
- package/build/esm/lib/setup/setupList.d.ts +0 -1
- package/build/esm/lib/setup/setupList.d.ts.map +1 -1
- package/build/esm/lib/setup/setupMultihost.d.ts +2 -5
- package/build/esm/lib/setup/setupMultihost.d.ts.map +1 -1
- package/build/esm/lib/setup/setupMultihost.js +12 -37
- package/build/esm/lib/setup/setupMultihost.js.map +1 -1
- package/build/esm/lib/setup/setupSetup.d.ts +0 -1
- package/build/esm/lib/setup/setupSetup.d.ts.map +1 -1
- package/build/esm/lib/setup/setupUpload.d.ts +0 -3
- package/build/esm/lib/setup/setupUpload.d.ts.map +1 -1
- package/build/esm/lib/setup/setupUsers.d.ts +0 -1
- package/build/esm/lib/setup/setupUsers.d.ts.map +1 -1
- package/build/esm/lib/setup/utils.d.ts +1 -1
- package/build/esm/lib/setup/utils.d.ts.map +1 -1
- package/build/esm/lib/setup/utils.js +3 -3
- package/build/esm/lib/setup/utils.js.map +1 -1
- package/build/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/setup/setupUpgrade.ts"],
|
|
4
4
|
"sourcesContent": ["import Debug from 'debug';\nimport fs from 'fs-extra';\nimport { tools, EXIT_CODES } from '@iobroker/js-controller-common';\nimport semver from 'semver';\nimport { Upload } from '@/lib/setup/setupUpload.js';\nimport { Install } from '@/lib/setup/setupInstall.js';\nimport rl from 'readline-sync';\nimport tty from 'node:tty';\nimport path from 'node:path';\nimport { getRepository, isVersionIgnored } from '@/lib/setup/utils.js';\nimport type { Client as ObjectsInRedisClient } from '@iobroker/db-objects-redis';\nimport type { Client as StatesInRedisClient } from '@iobroker/db-states-redis';\nimport type { ProcessExitCallback } from '@/lib/_Types.js';\nimport { IoBrokerError } from '@/lib/setup/customError.js';\n\nconst debug = Debug('iobroker:cli');\n\ntype IoPackDependencies = string[] | Record<string, any>[] | Record<string, any>;\n\ninterface CLIUpgradeOptions {\n processExit: ProcessExitCallback;\n objects: ObjectsInRedisClient;\n states: StatesInRedisClient;\n params: Record<string, any>;\n}\n\nexport class Upgrade {\n private readonly hostname = tools.getHostName();\n private readonly upload: Upload;\n private readonly install: Install;\n private readonly objects: ObjectsInRedisClient;\n private readonly processExit: ProcessExitCallback;\n\n constructor(options: CLIUpgradeOptions) {\n options = options || {};\n\n if (!options.processExit) {\n throw new Error('Invalid arguments: processExit is missing');\n }\n\n this.processExit = options.processExit;\n this.objects = options.objects;\n\n this.upload = new Upload(options);\n this.install = new Install(options);\n }\n\n /**\n * Sorts the adapters by their dependencies and then upgrades multiple adapters from the given repository url\n *\n * @param repo the repository content\n * @param list list of adapters to upgrade\n * @param forceDowngrade flag to force downgrade\n * @param autoConfirm automatically confirm the tty questions (bypass)\n */\n async upgradeAdapterHelper(\n repo: Record<string, any>,\n list: string[],\n forceDowngrade: boolean,\n autoConfirm: boolean,\n ): Promise<void> {\n const relevantAdapters = [];\n // check which adapters are upgradeable and sort them according to their dependencies\n for (const adapter of list) {\n if (repo[adapter].controller) {\n // skip controller\n continue;\n }\n const adapterDir = tools.getAdapterDir(adapter);\n if (adapterDir && fs.existsSync(path.join(adapterDir, 'io-package.json'))) {\n const ioInstalled = fs.readJsonSync(path.join(adapterDir, 'io-package.json'));\n if (!tools.upToDate(repo[adapter].version, ioInstalled.common.version)) {\n // not up to date, we need to put it into account for our dependency check\n relevantAdapters.push(adapter);\n }\n }\n }\n\n if (relevantAdapters.length) {\n const sortedAdapters = [];\n\n while (relevantAdapters.length) {\n let oneAdapterAdded = false;\n // create an ordered list for upgrades\n for (let i = relevantAdapters.length - 1; i >= 0; i--) {\n const relAdapter = relevantAdapters[i];\n // if a new version has no dependencies, we can upgrade\n if (!repo[relAdapter].dependencies && !repo[relAdapter].globalDependencies) {\n // no deps, simply add it\n sortedAdapters.push(relAdapter);\n relevantAdapters.splice(relevantAdapters.indexOf(relAdapter), 1);\n oneAdapterAdded = true;\n } else {\n const allDeps: Record<string, string> = {\n ...tools.parseDependencies(repo[relAdapter].dependencies),\n ...tools.parseDependencies(repo[relAdapter].globalDependencies),\n };\n\n // we have to check if the deps are there\n let conflict = false;\n for (const [depName, version] of Object.entries(allDeps)) {\n debug(`adapter \"${relAdapter}\" has dependency \"${depName}\": \"${version}\"`);\n if (version !== '*') {\n // dependency is important because it affects the version range\n if (relevantAdapters.includes(depName)) {\n // the dependency is also in the upgrade list and not previously added, we should add the dependency first\n debug(`conflict for dependency \"${depName}\" at adapter \"${relAdapter}\"`);\n conflict = true;\n break;\n }\n }\n }\n // we reached here and no conflict, so every dep is satisfied\n if (!conflict) {\n sortedAdapters.push(relAdapter);\n relevantAdapters.splice(relevantAdapters.indexOf(relAdapter), 1);\n oneAdapterAdded = true;\n }\n }\n }\n\n if (!oneAdapterAdded) {\n // no adapter during this loop -> circular dependency\n console.warn(`Circular dependency detected between adapters \"${relevantAdapters.join(', ')}\"`);\n sortedAdapters.concat(relevantAdapters);\n break; // however, break and try to update\n }\n }\n\n debug(`upgrade order is \"${sortedAdapters.join(', ')}\"`);\n\n for (const sortedAdapter of sortedAdapters) {\n if (repo[sortedAdapter]?.controller) {\n continue;\n }\n await this.upgradeAdapter(repo, sortedAdapter, forceDowngrade, autoConfirm, true);\n }\n } else {\n console.log('All adapters are up to date');\n }\n }\n\n /**\n * Checks that local and global deps are fulfilled else rejects promise\n *\n * @param deps local dependencies - required on this host\n * @param globalDeps global dependencies - required on one of the hosts\n */\n private async _checkDependencies(deps: IoPackDependencies, globalDeps: IoPackDependencies): Promise<void> {\n if (!deps && !globalDeps) {\n return Promise.resolve();\n }\n\n deps = tools.parseDependencies(deps);\n globalDeps = tools.parseDependencies(globalDeps);\n // combine both dependencies\n const allDeps = { ...deps, ...globalDeps };\n\n // Get all installed adapters\n const objs = await this.objects.getObjectViewAsync(\n 'system',\n 'instance',\n {\n startkey: 'system.adapter.',\n endkey: 'system.adapter.\\u9999',\n },\n undefined,\n );\n\n if (objs?.rows?.length) {\n for (const dName in allDeps) {\n if (dName === 'js-controller') {\n const version = allDeps[dName];\n // Check only if version not *, else we don't have to read io-pack unnecessarily\n if (version !== '*') {\n const iopkg_ = fs.readJSONSync(`${tools.getControllerDir()}/package.json`);\n try {\n if (!semver.satisfies(iopkg_.version, version, { includePrerelease: true })) {\n return Promise.reject(\n new Error(\n `Invalid version of \"${dName}\". Installed \"${iopkg_.version}\", required \"${version}`,\n ),\n );\n }\n } catch (e) {\n console.log(`Can not check js-controller dependency requirement: ${e.message}`);\n return Promise.reject(\n new Error(\n `Invalid version of \"${dName}\". Installed \"${iopkg_.version}\", required \"${version}`,\n ),\n );\n }\n }\n } else {\n let gInstances: ioBroker.GetObjectViewItem<ioBroker.InstanceObject>[] = [];\n let locInstances: ioBroker.GetObjectViewItem<ioBroker.InstanceObject>[] = [];\n // if global dep get all instances of adapter\n if (globalDeps[dName] !== undefined) {\n gInstances = objs.rows.filter(obj => obj.value.common && obj.value.common.name === dName);\n }\n if (deps[dName] !== undefined) {\n // local dependencies: get all instances on the same host\n locInstances = objs.rows.filter(\n obj =>\n obj.value.common &&\n obj.value.common.name === dName &&\n obj.value.common.host === this.hostname,\n );\n if (locInstances.length === 0) {\n return Promise.reject(new Error(`Required dependency \"${dName}\" not found on this host.`));\n }\n }\n\n let isFound = false;\n // we check that all instances match - respect different local and global dep versions\n for (const instance of locInstances) {\n const instanceVersion = instance.value.common.version;\n try {\n if (\n !semver.satisfies(instanceVersion, deps[dName], {\n includePrerelease: true,\n })\n ) {\n return Promise.reject(\n new Error(\n `Invalid version of \"${dName}\". Installed \"${instanceVersion}\", required \"${deps[dName]}`,\n ),\n );\n }\n } catch (e) {\n console.log(`Can not check dependency requirement: ${e.message}`);\n return Promise.reject(\n new Error(\n `Invalid version of \"${dName}\". Installed \"${instanceVersion}\", required \"${deps[dName]}`,\n ),\n );\n }\n isFound = true;\n }\n\n for (const instance of gInstances) {\n const instanceVersion = instance.value.common.version;\n try {\n if (\n !semver.satisfies(instanceVersion, globalDeps[dName], {\n includePrerelease: true,\n })\n ) {\n return Promise.reject(\n new Error(\n `Invalid version of \"${dName}\". Installed \"${instanceVersion}\", required \"${globalDeps[dName]}`,\n ),\n );\n }\n } catch (e) {\n console.log(`Can not check dependency requirement: ${e.message}`);\n return Promise.reject(\n new Error(\n `Invalid version of \"${dName}\". Installed \"${instanceVersion}\", required \"${globalDeps[dName]}`,\n ),\n );\n }\n isFound = true;\n }\n\n if (isFound === false) {\n return Promise.reject(new Error(`Required dependency \"${dName}\" not found.`));\n }\n }\n }\n }\n }\n\n /**\n * Try to async upgrade adapter from a given source with some checks\n *\n * @param repoUrlOrObject url of the selected repository or parsed repo, if undefined, use current active repository\n * @param adapter name of the adapter (can also include version like web@3.0.0)\n * @param forceDowngrade flag to force downgrade\n * @param autoConfirm automatically confirm the tty questions (bypass)\n * @param upgradeAll if true, this is an upgrade all call, we don't do major upgrades if no tty\n */\n async upgradeAdapter(\n repoUrlOrObject: string | Record<string, any> | undefined,\n adapter: string,\n forceDowngrade: boolean,\n autoConfirm: boolean,\n upgradeAll: boolean,\n ): Promise<void> {\n let sources: Record<string, any>;\n if (!repoUrlOrObject || !tools.isObject(repoUrlOrObject)) {\n try {\n sources = await getRepository({ repoName: repoUrlOrObject, objects: this.objects });\n } catch (e) {\n console.error(e.message);\n return this.processExit(e instanceof IoBrokerError ? e.code : e);\n }\n } else {\n sources = repoUrlOrObject;\n }\n\n let version: string;\n if (adapter.includes('@')) {\n const parts = adapter.split('@');\n adapter = parts[0];\n version = parts[1];\n } else {\n version = '';\n }\n if (version) {\n forceDowngrade = true;\n }\n\n /** Repository entry of this adapter */\n const repoAdapter: Record<string, any> = sources[adapter];\n\n // TODO: not really adapter object but close enough\n const finishUpgrade = async (name: string, ioPack?: ioBroker.AdapterObject): Promise<void> => {\n if (!ioPack) {\n const adapterDir = tools.getAdapterDir(name);\n\n if (!adapterDir) {\n console.error(`Cannot find io-package.json in ${adapterDir}`);\n return this.processExit(EXIT_CODES.MISSING_ADAPTER_FILES);\n }\n\n try {\n // close enough to an AdapterObject\n ioPack = fs.readJSONSync(path.join(adapterDir, 'io-package.json')) as ioBroker.AdapterObject;\n } catch {\n console.error(`Cannot find io-package.json in ${adapterDir}`);\n return this.processExit(EXIT_CODES.MISSING_ADAPTER_FILES);\n }\n }\n\n if (ioPack.common.osDependencies) {\n // install linux/osx libraries\n await this.install.installOSPackages(ioPack.common.osDependencies);\n }\n\n // Upload www and admin files of adapter\n await this.upload.uploadAdapter(name, false, true);\n // extend all adapter instance default configs with current config\n // (introduce potentially new attributes while keeping current settings)\n await this.upload.upgradeAdapterObjects(name, ioPack);\n await this.upload.uploadAdapter(name, true, true);\n };\n\n const adapterDir = tools.getAdapterDir(adapter);\n\n // Read the actual description of installed adapter with a version\n if (!adapterDir || (!version && !fs.existsSync(path.join(adapterDir, 'io-package.json')))) {\n return console.log(\n `Adapter \"${adapter}\"${\n adapter.length < 15 ? new Array(15 - adapter.length).join(' ') : ''\n } is not installed.`,\n );\n }\n // Get the url of io-package.json or direct the version\n if (!repoAdapter) {\n console.log(`Adapter \"${adapter}\" is not in the repository and cannot be updated.`);\n return this.processExit(EXIT_CODES.ADAPTER_NOT_FOUND);\n }\n if (repoAdapter.controller) {\n return console.log(\n `Cannot update ${adapter} using this command. Please use \"iobroker upgrade self\" instead!`,\n );\n }\n\n // TODO: not 100 % true but should be correct enough\n let ioInstalled: Pick<ioBroker.AdapterObject, 'common'>;\n if (adapterDir && fs.existsSync(path.join(adapterDir, 'io-package.json'))) {\n ioInstalled = fs.readJsonSync(`${adapterDir}/io-package.json`);\n } else {\n // @ts-expect-error https://github.com/ioBroker/adapter-core/issues/455\n ioInstalled = { common: { version: '0.0.0' } };\n }\n\n const installedVersion = ioInstalled.common.version;\n\n /**\n * We show changelog (news) and ask user if he really wants to upgrade but only if fd is associated with a tty, returns true if upgrade desired\n *\n * @param installedVersion - installed version of adapter\n * @param targetVersion - target version of adapter\n * @param adapterName - name of the adapter\n */\n const showUpgradeDialog = (installedVersion: string, targetVersion: string, adapterName: string): boolean => {\n // major upgrade or downgrade\n const isMajor = semver.major(installedVersion) !== semver.major(targetVersion);\n\n if (autoConfirm || (!tty.isatty(process.stdout.fd) && (!isMajor || !upgradeAll))) {\n // force flag or script on non-major or single adapter upgrade -> always upgrade\n return true;\n }\n\n if (!tty.isatty(process.stdout.fd) && isMajor && upgradeAll) {\n // no tty and not forced and multiple adapters, do not upgrade\n console.log(`Skip major upgrade of ${adapterName} from ${installedVersion} to ${targetVersion}`);\n return false;\n }\n\n const isUpgrade = semver.gt(targetVersion, installedVersion);\n const isDowngrade = semver.lt(targetVersion, installedVersion);\n\n // if information in repo files -> show news\n if (repoAdapter?.news) {\n const news = repoAdapter.news;\n\n let first = true;\n // check if upgrade or downgrade\n if (isUpgrade) {\n for (const version in news) {\n try {\n if (semver.lte(version, targetVersion) && semver.gt(version, installedVersion)) {\n if (first === true) {\n const noMissingNews = news[targetVersion] && news[installedVersion];\n console.log(\n `\\nThis upgrade of \"${adapter}\" will ${\n noMissingNews ? '' : 'at least '\n }introduce the following changes:`,\n );\n console.log(\n '==========================================================================',\n );\n first = false;\n } else if (first === false) {\n console.log();\n }\n console.log(`-> ${version}:`);\n console.log(news[version].en);\n }\n } catch {\n // ignore\n }\n }\n } else if (isDowngrade) {\n for (const version in news) {\n try {\n if (semver.gt(version, targetVersion) && semver.lte(version, installedVersion)) {\n if (first === true) {\n const noMissingNews = news[targetVersion] && news[installedVersion];\n console.log(\n `\\nThis downgrade of \"${adapter}\" will ${\n noMissingNews ? '' : 'at least '\n }remove the following changes:`,\n );\n console.log(\n '==========================================================================',\n );\n first = false;\n } else if (first === false) {\n console.log();\n }\n console.log(`-> ${version}`);\n console.log(news[version].en);\n }\n } catch {\n // ignore\n }\n }\n }\n if (first === false) {\n console.log('==========================================================================\\n');\n }\n }\n\n let answer;\n\n // ask user if he really wants to upgrade/downgrade/reinstall - repeat until (y)es or (n)o given\n do {\n if (isUpgrade || isDowngrade) {\n if (isMajor) {\n console.log(\n `BE CAREFUL: THIS IS A MAJOR ${\n isUpgrade ? 'UPGRADE' : 'DOWNGRADE'\n }, WHICH WILL MOST LIKELY INTRODUCE BREAKING CHANGES!`,\n );\n }\n answer = rl.question(\n `Would you like to ${\n isUpgrade ? 'upgrade' : 'downgrade'\n } ${adapter} from @${installedVersion} to @${\n version || repoAdapter.version\n } now? [(y)es, (n)o]: `,\n {\n defaultInput: 'n',\n },\n );\n } else {\n answer = rl.question(\n `Would you like to reinstall version ${\n version || repoAdapter.version\n } of ${adapter} now? [(y)es, (n)o]: `,\n {\n defaultInput: 'n',\n },\n );\n }\n\n answer = answer.toLowerCase();\n\n if (answer === 'n' || answer === 'no') {\n return false;\n }\n } while (answer !== 'y' && answer !== 'yes');\n return true;\n };\n\n // If a version is included in the repository\n if (repoAdapter.version) {\n if (!forceDowngrade) {\n try {\n await this._checkDependencies(repoAdapter.dependencies, repoAdapter.globalDependencies);\n } catch (e) {\n return console.error(`Cannot check dependencies: ${e.message}`);\n }\n }\n\n if (\n !forceDowngrade &&\n (repoAdapter.version === installedVersion || tools.upToDate(repoAdapter.version, installedVersion))\n ) {\n return console.log(\n `Adapter \"${adapter}\"${\n adapter.length < 15 ? new Array(15 - adapter.length).join(' ') : ''\n } is up to date.`,\n );\n }\n const targetVersion = version || repoAdapter.version;\n\n const isIgnored = await isVersionIgnored({\n adapterName: adapter,\n version: targetVersion,\n objects: this.objects,\n });\n\n if (isIgnored) {\n console.log(\n `No upgrade of \"${adapter}\" desired, because version \"${targetVersion}\" is configured to be ignored by the user. Run \"${tools.appNameLowerCase} version ${adapter} --recognize\" to allow this upgrade!`,\n );\n return;\n }\n\n try {\n if (!showUpgradeDialog(installedVersion, targetVersion, adapter)) {\n console.log(`No upgrade of \"${adapter}\" desired.`);\n return;\n }\n } catch (e) {\n console.log(`Can not check version information to display upgrade infos: ${e.message}`);\n }\n console.log(`Update ${adapter} from @${installedVersion} to @${targetVersion}`);\n const npmPacketName = `${tools.appNameLowerCase}.${adapter}`;\n\n try {\n if (!semver.diff(installedVersion, targetVersion)) {\n console.log(`Uninstall npm packet \"${npmPacketName}\" for a clean re-installation`);\n await tools.uninstallNodeModule(npmPacketName, { debug: process.argv.includes('--debug') });\n }\n } catch (e) {\n console.warn(`Could not uninstall npm packet \"${npmPacketName}\": ${e.message}`);\n }\n\n // Get the adapter from website\n const { packetName, stoppedList } = await this.install.downloadPacket(\n sources,\n `${adapter}@${targetVersion}`,\n );\n await finishUpgrade(packetName);\n await this.install.enableInstances(stoppedList, true);\n } else if (repoAdapter.meta) {\n // Read repository from url or file\n const ioPack = (await tools.getJsonAsync(repoAdapter.meta)) as ioBroker.AdapterObject;\n if (!ioPack) {\n console.error(`Cannot parse file${repoAdapter.meta}`);\n return;\n }\n\n if (!forceDowngrade) {\n try {\n // @ts-expect-error https://github.com/ioBroker/adapter-core/issues/455\n await this._checkDependencies(ioPack.common.dependencies, ioPack.common.globalDependencies);\n } catch (e) {\n console.error(`Cannot check dependencies: ${e.message}`);\n return;\n }\n }\n\n if (\n !version &&\n (ioPack.common.version === installedVersion ||\n (!forceDowngrade && tools.upToDate(ioPack.common.version, installedVersion)))\n ) {\n console.log(\n `Adapter \"${adapter}\"${\n adapter.length < 15 ? new Array(15 - adapter.length).join(' ') : ''\n } is up to date.`,\n );\n } else {\n // Get the adapter from website\n const targetVersion = version || ioPack.common.version;\n\n const isIgnored = await isVersionIgnored({\n adapterName: adapter,\n version: targetVersion,\n objects: this.objects,\n });\n\n if (isIgnored) {\n console.log(\n `No upgrade of \"${adapter}\" desired, because version \"${targetVersion}\" is configured to be ignored by the user. Run \"${tools.appNameLowerCase} version ${adapter} --recognize\" to allow this upgrade!`,\n );\n return;\n }\n\n try {\n if (!showUpgradeDialog(installedVersion, targetVersion, adapter)) {\n console.log(`No upgrade of \"${adapter}\" desired.`);\n return;\n }\n } catch (e) {\n console.log(`Can not check version information to display upgrade infos: ${e.message}`);\n }\n console.log(`Update ${adapter} from @${installedVersion} to @${targetVersion}`);\n const { packetName, stoppedList } = await this.install.downloadPacket(\n sources,\n `${adapter}@${targetVersion}`,\n );\n await finishUpgrade(packetName, ioPack);\n await this.install.enableInstances(stoppedList, true);\n }\n } else if (forceDowngrade) {\n try {\n if (!showUpgradeDialog(installedVersion, version, adapter)) {\n return console.log(`No upgrade of \"${adapter}\" desired.`);\n }\n } catch (e) {\n console.log(`Can not check version information to display upgrade infos: ${e.message}`);\n }\n console.warn(`Unable to get version for \"${adapter}\". Update anyway.`);\n console.log(`Update ${adapter} from @${installedVersion} to @${version}`);\n // Get the adapter from website\n const { packetName, stoppedList } = await this.install.downloadPacket(sources, `${adapter}@${version}`);\n await finishUpgrade(packetName);\n await this.install.enableInstances(stoppedList, true);\n } else {\n return console.error(`Unable to get version for \"${adapter}\".`);\n }\n }\n\n /**\n * Upgrade the js-controller\n *\n * @param repoUrl the repo or url\n * @param forceDowngrade if downgrades are allowed\n * @param controllerRunning if controller is currently running\n */\n async upgradeController(repoUrl: string, forceDowngrade: boolean, controllerRunning: boolean): Promise<void> {\n let sources: Record<string, any>;\n\n try {\n const result = await getRepository({ repoName: repoUrl, objects: this.objects });\n if (!result) {\n return console.warn(`Cannot get repository under \"${repoUrl}\"`);\n }\n sources = result;\n } catch (e) {\n console.error(e.message);\n return this.processExit(e instanceof IoBrokerError ? e.code : e);\n }\n\n const installed = fs.readJSONSync(`${tools.getControllerDir()}/io-package.json`);\n if (!installed || !installed.common || !installed.common.version) {\n return console.error(\n `Host \"${this.hostname}\"${\n this.hostname.length < 15 ? ''.padStart(15 - this.hostname.length) : ''\n } is not installed.`,\n );\n }\n\n const controllerName = installed.common.name;\n /** Repository entry of the controller */\n const repoController = sources[controllerName];\n\n if (!repoController) {\n // no info for controller\n return console.error(`Cannot find this controller \"${controllerName}\" in repository.`);\n }\n\n if (repoController.version) {\n if (\n !forceDowngrade &&\n (repoController.version === installed.common.version ||\n tools.upToDate(repoController.version, installed.common.version))\n ) {\n console.log(\n `Host \"${this.hostname}\"${\n this.hostname.length < 15 ? new Array(15 - this.hostname.length).join(' ') : ''\n } is up to date.`,\n );\n } else if (controllerRunning) {\n console.warn(`Controller is running. Please stop ioBroker first.`);\n } else {\n console.log(`Update ${controllerName} from @${installed.common.version} to @${repoController.version}`);\n // Get the controller from website\n await this.install.downloadPacket(sources, `${controllerName}@${repoController.version}`, {\n stopDb: true,\n });\n }\n } else {\n const ioPack = await tools.getJsonAsync(repoController.meta);\n if ((!ioPack || !ioPack.common) && !forceDowngrade) {\n return console.warn(\n `Cannot read version. Write \"${tools.appName} upgrade self --force\" to upgrade controller anyway.`,\n );\n }\n let version = ioPack?.common ? ioPack.common.version : '';\n if (version) {\n version = `@${version}`;\n }\n\n if (\n (ioPack?.common && ioPack.common.version === installed.common.version) ||\n (!forceDowngrade && ioPack?.common && tools.upToDate(ioPack.common.version, installed.common.version))\n ) {\n console.log(\n `Host \"${this.hostname}\"${\n this.hostname.length < 15 ? new Array(15 - this.hostname.length).join(' ') : ''\n } is up to date.`,\n );\n } else if (controllerRunning) {\n console.warn(`Controller is running. Please stop ioBroker first.`);\n } else {\n const name = ioPack?.common?.name || controllerName;\n console.log(`Update ${name} from @${installed.common.version} to ${version}`);\n // Get the controller from website\n await this.install.downloadPacket(sources, name + version, { stopDb: true });\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["Debug", "fs", "path", "semver", "adapterDir", "installedVersion", "tty", "version", "rl"]
|
|
7
7
|
}
|
|
@@ -6,9 +6,6 @@
|
|
|
6
6
|
* MIT License
|
|
7
7
|
*
|
|
8
8
|
*/
|
|
9
|
-
/// <reference types="@iobroker/types-dev" />
|
|
10
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
11
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
12
9
|
import type { Client as StatesRedisClient } from '@iobroker/db-states-redis';
|
|
13
10
|
import type { Client as ObjectsRedisClient } from '@iobroker/db-objects-redis';
|
|
14
11
|
import type { InternalLogger } from '@iobroker/js-controller-common-db/tools';
|
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -90,6 +94,7 @@ class Upload {
|
|
|
90
94
|
}
|
|
91
95
|
return hosts;
|
|
92
96
|
}
|
|
97
|
+
// Check if some adapters must be restarted and restart them
|
|
93
98
|
async checkRestartOther(adapter) {
|
|
94
99
|
const adapterDir = import_js_controller_common.tools.getAdapterDir(adapter);
|
|
95
100
|
if (!adapterDir) {
|
|
@@ -206,6 +211,12 @@ class Upload {
|
|
|
206
211
|
}
|
|
207
212
|
}
|
|
208
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Uploads a file
|
|
216
|
+
*
|
|
217
|
+
* @param source source path
|
|
218
|
+
* @param target target path
|
|
219
|
+
*/
|
|
209
220
|
async uploadFile(source, target) {
|
|
210
221
|
target = target.replace(/\\/g, "/");
|
|
211
222
|
source = source.replace(/\\/g, "/");
|
|
@@ -269,6 +280,13 @@ class Upload {
|
|
|
269
280
|
}
|
|
270
281
|
}
|
|
271
282
|
}
|
|
283
|
+
/**
|
|
284
|
+
* Collect Files of an adapter specific directory from the ioBroker storage
|
|
285
|
+
*
|
|
286
|
+
* @param adapter Adapter name
|
|
287
|
+
* @param path path in the adapter specific storage space
|
|
288
|
+
* @param logger Logger instance
|
|
289
|
+
*/
|
|
272
290
|
async collectExistingFilesToDelete(adapter, path, logger) {
|
|
273
291
|
let _files = [];
|
|
274
292
|
let _dirs = [];
|
|
@@ -351,6 +369,7 @@ class Upload {
|
|
|
351
369
|
}
|
|
352
370
|
return adapter;
|
|
353
371
|
}
|
|
372
|
+
// Read synchronous all files recursively from local directory
|
|
354
373
|
walk(dir, _results) {
|
|
355
374
|
const results = _results || [];
|
|
356
375
|
try {
|
|
@@ -372,6 +391,15 @@ class Upload {
|
|
|
372
391
|
}
|
|
373
392
|
return results;
|
|
374
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* Upload given adapter
|
|
396
|
+
*
|
|
397
|
+
* @param adapter adapter name
|
|
398
|
+
* @param isAdmin if admin folder should be uploaded too
|
|
399
|
+
* @param forceUpload if upload should be forced
|
|
400
|
+
* @param subTree subtree path to upload
|
|
401
|
+
* @param _logger logger instance
|
|
402
|
+
*/
|
|
375
403
|
async uploadAdapter(adapter, isAdmin, forceUpload, subTree, _logger) {
|
|
376
404
|
const id = adapter + (isAdmin ? ".admin" : "");
|
|
377
405
|
const adapterDir = import_js_controller_common.tools.getAdapterDir(adapter);
|
|
@@ -521,6 +549,14 @@ class Upload {
|
|
|
521
549
|
}
|
|
522
550
|
return target;
|
|
523
551
|
}
|
|
552
|
+
/**
|
|
553
|
+
* Extends the `system.instance.adapter.<instanceNumber>` objects with the native properties from adapters io-package.json
|
|
554
|
+
*
|
|
555
|
+
* @param name name of the adapter
|
|
556
|
+
* @param ioPack parsed io-package content
|
|
557
|
+
* @param hostname name of the host where the adapter is installed on
|
|
558
|
+
* @param logger instance of logger
|
|
559
|
+
*/
|
|
524
560
|
async _upgradeAdapterObjectsHelper(name, ioPack, hostname2, logger) {
|
|
525
561
|
const res = await this.objects.getObjectViewAsync("system", "instance", {
|
|
526
562
|
startkey: `system.adapter.${name}.`,
|
|
@@ -579,6 +615,13 @@ class Upload {
|
|
|
579
615
|
}
|
|
580
616
|
return name;
|
|
581
617
|
}
|
|
618
|
+
/**
|
|
619
|
+
* Create object from io-package json
|
|
620
|
+
*
|
|
621
|
+
* @param name adapter name
|
|
622
|
+
* @param ioPack IoPack content
|
|
623
|
+
* @param logger logger instance
|
|
624
|
+
*/
|
|
582
625
|
async upgradeAdapterObjects(name, ioPack, logger = console) {
|
|
583
626
|
const adapterDir = import_js_controller_common.tools.getAdapterDir(name);
|
|
584
627
|
let ioPackFile;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/setup/setupUpload.ts"],
|
|
4
4
|
"sourcesContent": ["/**\n * Upload adapter files into DB\n *\n * Copyright 2013-2024 bluefox <dogafox@gmail.com>\n *\n * MIT License\n *\n */\n\nimport fs from 'fs-extra';\nimport { tools } from '@iobroker/js-controller-common';\nimport deepClone from 'deep-clone';\nimport { isDeepStrictEqual } from 'node:util';\nimport axios from 'axios';\nimport mime from 'mime-types';\nimport { join } from 'node:path';\nimport type { Client as StatesRedisClient } from '@iobroker/db-states-redis';\nimport type { Client as ObjectsRedisClient } from '@iobroker/db-objects-redis';\nimport type { InternalLogger } from '@iobroker/js-controller-common-db/tools';\n\nconst hostname = tools.getHostName();\n\nexport interface CLIUploadOptions {\n states: StatesRedisClient;\n objects: ObjectsRedisClient;\n}\n\ninterface File {\n adapter: string;\n path: string;\n}\n\ninterface Logger extends InternalLogger {\n log(message: string): void;\n}\n\n/** Logger without noisy levels */\ntype MinimalLogger = Omit<Logger, 'info' | 'silly' | 'debug'>;\n\nexport class Upload {\n private readonly states: StatesRedisClient;\n private readonly objects: ObjectsRedisClient;\n private readonly regApp = new RegExp(`/${tools.appName.replace(/\\./g, '\\\\.')}\\\\.`, 'i');\n private callbackId = 1;\n private readonly sendToHostFromCliAsync: (...args: any[]) => Promise<any>;\n private callbacks: Record<string, any> = {};\n private lastProgressUpdate = Date.now();\n\n constructor(_options: CLIUploadOptions) {\n const options = _options || {};\n\n if (!options.states) {\n throw new Error('Invalid arguments: states is missing');\n }\n if (!options.objects) {\n throw new Error('Invalid arguments: objects is missing');\n }\n\n this.states = options.states;\n this.objects = options.objects;\n this.sendToHostFromCliAsync = tools.promisifyNoError(this.sendToHostFromCli);\n }\n\n async checkHostsIfAlive(hosts: string[]): Promise<string[]> {\n const result = [];\n if (hosts) {\n for (const host of hosts) {\n const state = await this.states.getStateAsync(`${host}.alive`);\n if (state?.val) {\n result.push(host);\n }\n }\n }\n return result;\n }\n\n async getHosts(onlyAlive: boolean): Promise<string[]> {\n const hosts = [];\n try {\n const arr = await this.objects.getObjectListAsync({\n startkey: 'system.host.',\n endkey: 'system.host.\\u9999',\n });\n if (arr?.rows) {\n for (const row of arr.rows) {\n if (row.value.type !== 'host') {\n continue;\n }\n hosts.push(row.value._id);\n }\n }\n } catch (e) {\n // ignore\n console.warn(`Cannot read hosts: ${e.message}`);\n }\n\n if (onlyAlive) {\n return this.checkHostsIfAlive(hosts);\n }\n return hosts;\n }\n\n // Check if some adapters must be restarted and restart them\n async checkRestartOther(adapter: string): Promise<void> {\n const adapterDir = tools.getAdapterDir(adapter);\n\n if (!adapterDir) {\n console.error(`Adapter directory of adapter \"${adapter}\" not found`);\n return;\n }\n\n try {\n const adapterConf = await fs.readJSON(join(adapterDir, 'io-package.json'));\n if (adapterConf.common.restartAdapters) {\n if (!Array.isArray(adapterConf.common.restartAdapters)) {\n // it's not an array, now it can only be a single adapter as string\n if (typeof adapterConf.common.restartAdapters !== 'string') {\n return;\n }\n adapterConf.common.restartAdapters = [adapterConf.common.restartAdapters];\n }\n\n if (adapterConf.common.restartAdapters.length && adapterConf.common.restartAdapters[0]) {\n const instances = await tools.getAllInstances(adapterConf.common.restartAdapters, this.objects);\n if (instances?.length) {\n for (const instance of instances) {\n try {\n const obj = await this.objects.getObjectAsync(instance);\n // if instance is enabled\n if (obj?.common?.enabled) {\n obj.common.enabled = false; // disable instance\n\n obj.from = `system.host.${tools.getHostName()}.cli`;\n obj.ts = Date.now();\n\n await this.objects.setObjectAsync(obj._id, obj);\n\n obj.common.enabled = true; // enable instance\n obj.ts = Date.now();\n\n await this.objects.setObjectAsync(obj._id, obj);\n console.log(`Adapter \"${obj._id}\" restarted.`);\n }\n } catch (e) {\n console.error(`Cannot restart adapter \"${instance}\": ${e.message}`);\n }\n }\n }\n }\n }\n } catch (e) {\n console.error(`Cannot parse ${adapterDir}/io-package.json: ${e.message}`);\n }\n }\n\n sendToHostFromCli(\n host: string,\n command: string,\n message: ioBroker.MessagePayload,\n callback: ioBroker.MessageCallback | null,\n ): void {\n const time = Date.now();\n const from = `system.host.${hostname}_cli_${time}`;\n\n const timeout = setTimeout(() => {\n if (callback) {\n callback();\n }\n callback = null;\n this.states.unsubscribeMessage(from);\n // @ts-expect-error todo: I don't think this works\n this.states.onChange = null;\n }, 60_000);\n\n // @ts-expect-error todo: I don't think this works\n this.states.onChange = (id, msg) => {\n if (id.endsWith(from)) {\n if (msg.command === 'log' || msg.command === 'error' || msg.command === 'warn') {\n // @ts-expect-error\n console[msg.command](`${host} -> ${msg.text}`);\n } else if (callback) {\n callback(msg && msg.message);\n callback = null;\n clearTimeout(timeout);\n this.states.unsubscribeMessage(from);\n // @ts-expect-error\n this.states.onChange = null;\n }\n }\n };\n\n this.states.subscribeMessage(from, () => {\n const obj = {\n command,\n message: message,\n from: `system.host.${hostname}_cli_${time}`,\n callback: {\n message,\n id: this.callbackId++,\n ack: false,\n time,\n },\n } as const;\n\n if (this.callbackId > 0xffffffff) {\n this.callbackId = 1;\n }\n\n this.callbacks[`_${obj.callback.id}`] = { cb: callback };\n\n // we cannot receive answers from hosts in CLI, so this command is \"fire and forget\"\n this.states.pushMessage(host, obj);\n });\n }\n\n async uploadAdapterFullAsync(adapters: string[]): Promise<void> {\n if (adapters?.length) {\n const liveHosts = await this.getHosts(true);\n for (const adapter of adapters) {\n // Find the host which has this adapter\n const instances = await tools.getInstances(adapter, this.objects, true);\n // try to find instance on this host\n let instance = instances.find(obj => obj?.common?.host === hostname);\n\n // try to find enabled instance on live host\n instance =\n instance || instances.find(obj => obj?.common?.enabled && liveHosts.includes(obj.common.host));\n\n // try to find any instance\n instance = instance || instances.find(obj => obj?.common && liveHosts.includes(obj.common.host));\n\n if (instance && instance.common.host !== hostname) {\n console.log(`Send upload command to host \"${instance.common.host}\"... `);\n // send upload message to the host\n const response = await this.sendToHostFromCliAsync(instance.common.host, 'upload', adapter);\n if (response) {\n console.log(`Upload result: ${response.result}`);\n } else {\n console.error(`No answer from ${instance.common.host}`);\n }\n } else {\n if (!instance) {\n // no one alive instance found\n const adapterDir = tools.getAdapterDir(adapter);\n if (!adapterDir || !fs.existsSync(adapterDir)) {\n console.warn(\n `No alive host found which has the adapter ${adapter} installed! No upload possible. Skipped.`,\n );\n continue;\n }\n }\n\n // try to upload on this host. It will print an error if the adapter directory not found\n await this.uploadAdapter(adapter, true, true);\n await this.upgradeAdapterObjects(adapter);\n await this.uploadAdapter(adapter, false, true);\n }\n }\n }\n }\n\n /**\n * Uploads a file\n *\n * @param source source path\n * @param target target path\n */\n async uploadFile(source: string, target: string): Promise<string> {\n target = target.replace(/\\\\/g, '/');\n source = source.replace(/\\\\/g, '/');\n if (target[0] === '/') {\n target = target.substring(1);\n }\n if (target[target.length - 1] === '/') {\n let name = source.split('/').pop()!;\n name = name.split('?')[0];\n if (!name.includes('.')) {\n name = 'index.html';\n }\n target += name;\n }\n const parts = target.split('/');\n const adapter = parts[0];\n parts.splice(0, 1);\n target = parts.join('/');\n\n if (source.match(/^http:\\/\\/|^https:\\/\\//)) {\n try {\n const result = await axios(source, {\n responseType: 'arraybuffer',\n validateStatus: status => status === 200,\n });\n if (result?.data) {\n await this.objects.writeFileAsync(adapter, target, result.data);\n } else {\n console.error(`Empty response from URL \"${source}\"`);\n throw new Error(`Empty response from URL \"${source}\"`);\n }\n } catch (e) {\n let result;\n if (e.response) {\n // The request was made and the server responded with a status code\n // that falls out of the range of 2xx\n result = e.response.data || e.response.status;\n } else if (e.request) {\n // The request was made but no response was received\n // `err.request` is an instance of XMLHttpRequest in the browser and an instance of\n // http.ClientRequest in node.js\n result = e.request;\n } else {\n // Something happened in setting up the request that triggered an Error\n result = e.message;\n }\n console.error(`Cannot get URL \"${source}\": ${result}`);\n throw new Error(result);\n }\n } else {\n try {\n await this.objects.writeFileAsync(adapter, target, fs.readFileSync(source));\n } catch (e) {\n console.error(`Cannot read file \"${source}\": ${e.message}`);\n throw e;\n }\n }\n\n return `${adapter}/${target}`;\n }\n\n async eraseFiles(files: any[], logger: MinimalLogger | typeof console): Promise<void> {\n if (files && files.length) {\n for (const file of files) {\n try {\n await this.objects.unlinkAsync(file.adapter, file.path);\n } catch (e) {\n logger.error(`Cannot delete file \"${file.path}\": ${e}`);\n }\n }\n }\n }\n\n /**\n * Collect Files of an adapter specific directory from the ioBroker storage\n *\n * @param adapter Adapter name\n * @param path path in the adapter specific storage space\n * @param logger Logger instance\n */\n async collectExistingFilesToDelete(\n adapter: string,\n path: string,\n logger: MinimalLogger | typeof console,\n ): Promise<{\n filesToDelete: File[];\n dirs: File[];\n }> {\n let _files: File[] = [];\n let _dirs: File[] = [];\n let files: ioBroker.ReadDirResult[];\n try {\n files = await this.objects.readDirAsync(adapter, path);\n } catch {\n // ignore err\n files = [];\n }\n\n if (files?.length) {\n for (const file of files) {\n if (file.file === '.' || file.file === '..') {\n continue;\n }\n const newPath = path + file.file;\n if (file.isDir) {\n if (!_dirs.find(e => e.path === newPath)) {\n _dirs.push({ adapter, path: newPath });\n }\n try {\n const result = await this.collectExistingFilesToDelete(adapter, `${newPath}/`, logger);\n if (result.filesToDelete) {\n _files = _files.concat(result.filesToDelete);\n }\n\n _dirs = _dirs.concat(result.dirs);\n } catch (e) {\n logger.warn(`Cannot delete folder \"${adapter}${newPath}/\": ${e.message}`);\n }\n } else if (!_files.find(e => e.path === newPath)) {\n _files.push({ adapter, path: newPath });\n }\n }\n }\n\n return { filesToDelete: _files, dirs: _dirs };\n }\n\n async upload(\n adapter: string,\n isAdmin: boolean,\n files: string[],\n id: string,\n logger: MinimalLogger | typeof console,\n ): Promise<string> {\n const uploadID = `system.adapter.${adapter}.upload`;\n\n await this.states.setState(uploadID, { val: 0, ack: true });\n\n for (let f = 0; f < files.length; f++) {\n const file = files[f];\n // do not upload '.gitignore' files. Todo: add other exceptions\n if (file === '.gitignore') {\n continue;\n }\n\n const mimeType = mime.lookup(file);\n let attNameArr = file.split(this.regApp);\n // try to find anyway if adapter is not lower case\n if (attNameArr.length === 1 && file.toLowerCase().includes(tools.appName.toLowerCase())) {\n attNameArr = ['', file.substring(tools.appName.length + 2)];\n }\n\n let attName = attNameArr.pop()!;\n attName = attName.split('/').slice(2).join('/');\n\n const remainingFiles = files.length - f - 1;\n\n if (remainingFiles >= 100) {\n (!f || !(remainingFiles % 50)) &&\n logger.log(`upload [${remainingFiles}] ${id} ${file} ${attName} ${mimeType}`);\n } else if (remainingFiles > 20) {\n if (!f || !(remainingFiles % 10)) {\n logger.log(`upload [${remainingFiles}] ${id} ${file} ${attName} ${mimeType}`);\n }\n } else {\n logger.log(`upload [${remainingFiles}] ${id} ${file} ${attName} ${mimeType}`);\n }\n\n // Update upload indicator\n if (!isAdmin) {\n const now = Date.now();\n if (now - this.lastProgressUpdate > 1_000) {\n this.lastProgressUpdate = now;\n await this.states.setState(uploadID, {\n val: Math.round((1_000 * (files.length - f)) / files.length) / 10,\n ack: true,\n });\n }\n }\n\n try {\n const content = await fs.readFile(file);\n await this.objects.writeFileAsync(id, attName, content, { mimeType: mimeType || undefined });\n } catch (e) {\n console.error(`Error: Cannot upload ${file}: ${e.message}`);\n }\n }\n\n // Set upload progress to 0;\n if (!isAdmin && files.length) {\n await this.states.setState(uploadID, { val: 0, ack: true });\n }\n\n return adapter;\n }\n\n // Read synchronous all files recursively from local directory\n walk(dir: string, _results?: string[]): string[] {\n const results = _results || [];\n try {\n if (fs.existsSync(dir)) {\n const list = fs.readdirSync(dir);\n list.map(file => {\n const stat = fs.statSync(`${dir}/${file}`);\n if (stat.isDirectory()) {\n this.walk(`${dir}/${file}`, results);\n } else {\n if (!file.endsWith('.npmignore') && !file.endsWith('.gitignore')) {\n results.push(`${dir}/${file}`);\n }\n }\n });\n }\n } catch (e) {\n console.error(e);\n }\n\n return results;\n }\n\n /**\n * Upload given adapter\n *\n * @param adapter adapter name\n * @param isAdmin if admin folder should be uploaded too\n * @param forceUpload if upload should be forced\n * @param subTree subtree path to upload\n * @param _logger logger instance\n */\n async uploadAdapter(\n adapter: string,\n isAdmin: boolean,\n forceUpload: boolean,\n subTree?: string,\n _logger?: MinimalLogger,\n ): Promise<string> {\n const id = adapter + (isAdmin ? '.admin' : '');\n const adapterDir = tools.getAdapterDir(adapter);\n let dir = adapterDir ? adapterDir + (isAdmin ? '/admin' : '/www') : '';\n\n const logger = _logger || console;\n\n if (subTree && dir) {\n dir += `/${subTree}`;\n }\n if (adapterDir === null || !fs.existsSync(adapterDir)) {\n console.log(\n `INFO: Directory \"${\n adapterDir || `for ${adapter}${isAdmin ? '.admin' : ''}`\n }\" does not exist. Nothing was uploaded or deleted.`,\n );\n return adapter;\n }\n\n let cfg;\n try {\n cfg = await fs.readJSON(`${adapterDir}/io-package.json`);\n } catch (e) {\n // file not parsable or does not exist\n console.error(`Could not read io-package.json: ${e.message}`);\n }\n\n if (!fs.existsSync(dir)) {\n // www folder have not all adapters. So show warning only for admin folder\n // widgets do not have www folder, but they have onlyWWW flag\n (isAdmin || (cfg?.common?.onlyWWW && !cfg.common.visWidgets)) &&\n console.log(\n `INFO: Directory \"${\n dir || `for ${adapter}${isAdmin ? '.admin' : ''}`\n }\" was not found! Nothing was uploaded or deleted.`,\n );\n\n if (isAdmin) {\n return adapter;\n }\n await this.checkRestartOther(adapter);\n return adapter;\n }\n\n // check for common.wwwDontUpload (required for legacy adapters and admin)\n if (!isAdmin && cfg?.common?.wwwDontUpload) {\n return adapter;\n }\n\n // Create \"upload progress\" object if not exists\n if (!isAdmin) {\n let obj;\n const uploadID = `system.adapter.${adapter}.upload`;\n try {\n obj = await this.objects.getObject(uploadID);\n } catch {\n // ignore\n }\n if (!obj) {\n await this.objects.setObject(uploadID, {\n _id: uploadID,\n type: 'state',\n common: {\n name: `${adapter}.upload`,\n type: 'number',\n role: 'indicator.state',\n unit: '%',\n min: 0,\n max: 100,\n def: 0,\n desc: 'Upload process indicator',\n read: true,\n write: false,\n },\n from: `system.host.${tools.getHostName()}.cli`,\n ts: Date.now(),\n native: {},\n });\n }\n // Set indicator to 0\n await this.states.setState(uploadID, { val: 0, ack: true });\n }\n\n let result;\n try {\n result = await this.objects.getObjectAsync(id);\n } catch {\n // ignore\n }\n // Read all names with subtrees from local directory\n const files = this.walk(dir);\n if (!result) {\n // @ts-expect-error types needed admin is not allowed for meta, but it should be allowed\n await this.objects.setObjectAsync(id, {\n type: 'meta',\n common: {\n name: id.split('.').pop()!,\n type: isAdmin ? 'admin' : 'www',\n },\n from: `system.host.${tools.getHostName()}.cli`,\n ts: Date.now(),\n native: {},\n });\n forceUpload = true;\n }\n\n if (forceUpload) {\n // only skip if explicitly opted out\n // The visualization check is needed as user of legacy systems often stored files inside adapter directories like `vis`\n // in the long term, such adapters should explicitly opt out, so we can hopefully remove this line in 2-3 versions (current 5.0)\n if (\n cfg?.common?.eraseOnUpload !== false &&\n !(cfg?.common?.eraseOnUpload === undefined && cfg?.common?.type === 'visualization')\n ) {\n const { filesToDelete } = await this.collectExistingFilesToDelete(\n isAdmin ? `${adapter}.admin` : adapter,\n '/',\n logger,\n );\n // delete old files, before upload of new\n await this.eraseFiles(filesToDelete, logger);\n }\n if (!isAdmin) {\n await this.checkRestartOther(adapter);\n await new Promise<void>(resolve => setTimeout(() => resolve(), 25));\n await this.upload(adapter, isAdmin, files, id, logger);\n } else {\n await this.upload(adapter, isAdmin, files, id, logger);\n }\n }\n return adapter;\n }\n\n extendNative(target: Record<string, any>, additional: Record<string, unknown>): Record<string, any> {\n if (tools.isObject(additional)) {\n for (const [attr, attrData] of Object.entries(additional)) {\n if (target[attr] === undefined) {\n target[attr] = attrData;\n } else if (tools.isObject(attrData)) {\n try {\n target[attr] = target[attr] || {};\n } catch {\n console.warn(`Cannot update attribute ${attr} of native`);\n }\n if (typeof target[attr] === 'object' && target[attr] !== null) {\n this.extendNative(target[attr], attrData);\n }\n }\n }\n }\n return target;\n }\n\n extendCommon(\n target: Record<string, any>,\n additional: Record<string, any>,\n instance: string,\n ): ioBroker.InstanceCommon {\n if (tools.isObject(additional)) {\n const preserveAttributes = [\n 'title',\n 'schedule',\n 'restartSchedule',\n 'mode',\n 'loglevel',\n 'enabled',\n 'custom',\n 'tier',\n ];\n\n for (const [attr, attrData] of Object.entries(additional)) {\n // preserve these attributes, except, they were undefined before and preserve titleLang if current titleLang is of type string (changed by user)\n if (preserveAttributes.includes(attr) || (attr === 'titleLang' && typeof target[attr] === 'string')) {\n if (target[attr] === undefined) {\n target[attr] = attrData;\n }\n } else if (typeof attrData !== 'object' || attrData instanceof Array) {\n try {\n target[attr] = attrData;\n\n // dataFolder can have wildcards\n if (attr === 'dataFolder' && target.dataFolder && target.dataFolder.includes('%INSTANCE%')) {\n target.dataFolder = target.dataFolder.replace(/%INSTANCE%/g, instance);\n }\n } catch {\n console.warn(`Cannot update attribute ${attr} of common`);\n }\n } else {\n target[attr] = target[attr] || {};\n if (typeof target[attr] !== 'object') {\n target[attr] = {}; // here we clean the simple value with object\n }\n\n this.extendCommon(target[attr], attrData, instance);\n }\n }\n }\n return target as ioBroker.InstanceCommon;\n }\n\n /**\n * Extends the `system.instance.adapter.<instanceNumber>` objects with the native properties from adapters io-package.json\n *\n * @param name name of the adapter\n * @param ioPack parsed io-package content\n * @param hostname name of the host where the adapter is installed on\n * @param logger instance of logger\n */\n async _upgradeAdapterObjectsHelper(\n name: string,\n ioPack: ioBroker.AdapterObject,\n hostname: string,\n logger: MinimalLogger | typeof console,\n ): Promise<string> {\n // Update all instances of this host\n const res = await this.objects.getObjectViewAsync('system', 'instance', {\n startkey: `system.adapter.${name}.`,\n endkey: `system.adapter.${name}.\\u9999`,\n });\n\n if (res) {\n for (const row of res.rows) {\n if (row.value?.common.host === hostname) {\n const _obj = await this.objects.getObject(row.id);\n const newObject = deepClone(_obj) as ioBroker.InstanceObject;\n\n // TODO: refactor the following assignments into a method, where we can define which attributes need a real override and their defaults\n\n // all common settings should be taken from new one\n newObject.common = this.extendCommon(\n newObject.common,\n ioPack.common,\n newObject._id.split('.').pop()!,\n );\n newObject.native = this.extendNative(newObject.native, ioPack.native);\n\n // protected/encryptedNative and notifications also need to be updated\n newObject.protectedNative = ioPack.protectedNative || [];\n newObject.encryptedNative = ioPack.encryptedNative || [];\n newObject.notifications = ioPack.notifications || [];\n // update instanceObjects and objects\n newObject.instanceObjects = ioPack.instanceObjects || [];\n newObject.objects = ioPack.objects || [];\n\n newObject.common.version = ioPack.common.version;\n newObject.common.installedVersion = ioPack.common.version;\n newObject.common.installedFrom = ioPack.common.installedFrom;\n\n // do not merge visWidgets and localLinks\n if (ioPack.common.visWidgets) {\n newObject.common.visWidgets = ioPack.common.visWidgets;\n } else {\n delete newObject.common.visWidgets;\n }\n\n if (ioPack.common.localLinks) {\n newObject.common.localLinks = ioPack.common.localLinks;\n } else {\n delete newObject.common.localLinks;\n }\n\n if (!ioPack.common.compact && newObject.common.compact) {\n newObject.common.compact = ioPack.common.compact;\n }\n\n // Compare objects to reduce restarts of instances\n if (!isDeepStrictEqual(newObject, _obj)) {\n logger.log(`Update \"${newObject._id}\"`);\n\n newObject.from = `system.host.${tools.getHostName()}.cli`;\n newObject.ts = Date.now();\n\n await this.objects.setObjectAsync(newObject._id, newObject);\n }\n }\n }\n }\n\n // updates only \"_design/system\" and co \"_design/*\"\n if (Array.isArray(ioPack.objects)) {\n for (const obj of ioPack.objects) {\n if (name === 'js-controller' && !obj._id.startsWith('_design/')) {\n continue;\n }\n\n obj.from = `system.host.${hostname}.cli`;\n obj.ts = Date.now();\n\n try {\n await this.objects.setObjectAsync(obj._id, obj);\n } catch (e) {\n logger.error(`Cannot update object: ${e}`);\n }\n }\n }\n\n return name;\n }\n\n /**\n * Create object from io-package json\n *\n * @param name adapter name\n * @param ioPack IoPack content\n * @param logger logger instance\n */\n async upgradeAdapterObjects(\n name: string,\n ioPack?: ioBroker.AdapterObject,\n logger: MinimalLogger | typeof console = console,\n ): Promise<string> {\n const adapterDir = tools.getAdapterDir(name);\n let ioPackFile;\n try {\n ioPackFile = fs.readJSONSync(`${adapterDir}/io-package.json`);\n } catch {\n if (adapterDir) {\n logger.error(`Cannot find io-package.json in ${adapterDir}`);\n } else {\n logger.error(`Cannot find io-package.json for \"${name}\"`);\n }\n ioPackFile = null;\n }\n\n ioPack = ioPack || ioPackFile;\n\n if (ioPack) {\n logger.log(\n `Updating objects from io-package.json for adapter \"${name}\" with version \"${ioPack.common.version}\"`,\n );\n // Always update installedFrom from File on disk if exists and set\n if (ioPackFile?.common?.installedFrom) {\n ioPack.common = ioPack.common || {};\n ioPack.common.installedFrom = ioPackFile.common.installedFrom;\n }\n // Not existing? Why ever ... we recreate\n let _obj;\n try {\n _obj = await this.objects.getObject(`system.adapter.${name}`);\n } catch {\n // ignore err\n }\n const obj: Omit<ioBroker.AdapterObject, '_id'> = _obj || {\n common: ioPack.common,\n native: ioPack.native,\n type: 'adapter',\n instanceObjects: [],\n objects: [],\n };\n\n obj.common = ioPack.common || {};\n obj.native = ioPack.native || {};\n // protected/encryptedNative and notifications also need to be updated\n obj.protectedNative = ioPack.protectedNative || [];\n obj.encryptedNative = ioPack.encryptedNative || [];\n obj.notifications = ioPack.notifications || [];\n // update instanceObjects and objects\n obj.instanceObjects = ioPack.instanceObjects || [];\n obj.objects = ioPack.objects || [];\n\n obj.type = 'adapter';\n\n obj.common.installedVersion = ioPack.common.version;\n\n if (obj.common.news) {\n delete obj.common.news; // remove this information as it could be big, but it will be taken from repo\n }\n\n const hostname = tools.getHostName();\n\n obj.from = `system.host.${hostname}.cli`;\n obj.ts = Date.now();\n\n try {\n await this.objects.setObject(`system.adapter.${name}`, obj);\n await this.objects.setObject(`system.host.${hostname}.adapter.${name}`, obj);\n } catch (e) {\n logger.error(\n `Cannot set \"system.adapter.${name}\" and \"system.host.${hostname}.adapters.${name}\": ${e.message}`,\n );\n }\n\n await this._upgradeAdapterObjectsHelper(name, ioPack, hostname, logger);\n }\n\n return name;\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AASA,sBAAe;AACf,kCAAsB;AACtB,wBAAsB;AACtB,uBAAkC;AAClC,mBAAkB;AAClB,wBAAiB;AACjB,uBAAqB;AAKrB,MAAM,WAAW,kCAAM,YAAW;AAmB5B,MAAO,OAAM;EACE;EACA;EACA,SAAS,IAAI,OAAO,IAAI,kCAAM,QAAQ,QAAQ,OAAO,KAAK,QAAQ,GAAG;EAC9E,aAAa;EACJ;EACT,YAAiC,CAAA;EACjC,qBAAqB,KAAK,IAAG;EAErC,YAAY,UAA0B;AAClC,UAAM,UAAU,YAAY,CAAA;AAE5B,QAAI,CAAC,QAAQ,QAAQ;AACjB,YAAM,IAAI,MAAM,sCAAsC;IAC1D;AACA,QAAI,CAAC,QAAQ,SAAS;AAClB,YAAM,IAAI,MAAM,uCAAuC;IAC3D;AAEA,SAAK,SAAS,QAAQ;AACtB,SAAK,UAAU,QAAQ;AACvB,SAAK,yBAAyB,kCAAM,iBAAiB,KAAK,iBAAiB;EAC/E;EAEA,MAAM,kBAAkB,OAAe;AACnC,UAAM,SAAS,CAAA;AACf,QAAI,OAAO;AACP,iBAAW,QAAQ,OAAO;AACtB,cAAM,QAAQ,MAAM,KAAK,OAAO,cAAc,GAAG,YAAY;AAC7D,YAAI,OAAO,KAAK;AACZ,iBAAO,KAAK,IAAI;QACpB;MACJ;IACJ;AACA,WAAO;EACX;EAEA,MAAM,SAAS,WAAkB;AAC7B,UAAM,QAAQ,CAAA;AACd,QAAI;AACA,YAAM,MAAM,MAAM,KAAK,QAAQ,mBAAmB;QAC9C,UAAU;QACV,QAAQ;OACX;AACD,UAAI,KAAK,MAAM;AACX,mBAAW,OAAO,IAAI,MAAM;AACxB,cAAI,IAAI,MAAM,SAAS,QAAQ;AAC3B;UACJ;AACA,gBAAM,KAAK,IAAI,MAAM,GAAG;QAC5B;MACJ;IACJ,SAAS,GAAP;AAEE,cAAQ,KAAK,sBAAsB,EAAE,SAAS;IAClD;AAEA,QAAI,WAAW;AACX,aAAO,KAAK,kBAAkB,KAAK;IACvC;AACA,WAAO;EACX;EAGA,MAAM,kBAAkB,SAAe;AACnC,UAAM,aAAa,kCAAM,cAAc,OAAO;AAE9C,QAAI,CAAC,YAAY;AACb,cAAQ,MAAM,iCAAiC,oBAAoB;AACnE;IACJ;AAEA,QAAI;AACA,YAAM,cAAc,MAAM,gBAAAA,QAAG,aAAS,uBAAK,YAAY,iBAAiB,CAAC;AACzE,UAAI,YAAY,OAAO,iBAAiB;AACpC,YAAI,CAAC,MAAM,QAAQ,YAAY,OAAO,eAAe,GAAG;AAEpD,cAAI,OAAO,YAAY,OAAO,oBAAoB,UAAU;AACxD;UACJ;AACA,sBAAY,OAAO,kBAAkB,CAAC,YAAY,OAAO,eAAe;QAC5E;AAEA,YAAI,YAAY,OAAO,gBAAgB,UAAU,YAAY,OAAO,gBAAgB,IAAI;AACpF,gBAAM,YAAY,MAAM,kCAAM,gBAAgB,YAAY,OAAO,iBAAiB,KAAK,OAAO;AAC9F,cAAI,WAAW,QAAQ;AACnB,uBAAW,YAAY,WAAW;AAC9B,kBAAI;AACA,sBAAM,MAAM,MAAM,KAAK,QAAQ,eAAe,QAAQ;AAEtD,oBAAI,KAAK,QAAQ,SAAS;AACtB,sBAAI,OAAO,UAAU;AAErB,sBAAI,OAAO,eAAe,kCAAM,YAAW;AAC3C,sBAAI,KAAK,KAAK,IAAG;AAEjB,wBAAM,KAAK,QAAQ,eAAe,IAAI,KAAK,GAAG;AAE9C,sBAAI,OAAO,UAAU;AACrB,sBAAI,KAAK,KAAK,IAAG;AAEjB,wBAAM,KAAK,QAAQ,eAAe,IAAI,KAAK,GAAG;AAC9C,0BAAQ,IAAI,YAAY,IAAI,iBAAiB;gBACjD;cACJ,SAAS,GAAP;AACE,wBAAQ,MAAM,2BAA2B,cAAc,EAAE,SAAS;cACtE;YACJ;UACJ;QACJ;MACJ;IACJ,SAAS,GAAP;AACE,cAAQ,MAAM,gBAAgB,+BAA+B,EAAE,SAAS;IAC5E;EACJ;EAEA,kBACI,MACA,SACA,SACA,UAAyC;AAEzC,UAAM,OAAO,KAAK,IAAG;AACrB,UAAM,OAAO,eAAe,gBAAgB;AAE5C,UAAM,UAAU,WAAW,MAAK;AAC5B,UAAI,UAAU;AACV,iBAAQ;MACZ;AACA,iBAAW;AACX,WAAK,OAAO,mBAAmB,IAAI;AAEnC,WAAK,OAAO,WAAW;IAC3B,GAAG,GAAM;AAGT,SAAK,OAAO,WAAW,CAAC,IAAI,QAAO;AAC/B,UAAI,GAAG,SAAS,IAAI,GAAG;AACnB,YAAI,IAAI,YAAY,SAAS,IAAI,YAAY,WAAW,IAAI,YAAY,QAAQ;AAE5E,kBAAQ,IAAI,SAAS,GAAG,WAAW,IAAI,MAAM;QACjD,WAAW,UAAU;AACjB,mBAAS,OAAO,IAAI,OAAO;AAC3B,qBAAW;AACX,uBAAa,OAAO;AACpB,eAAK,OAAO,mBAAmB,IAAI;AAEnC,eAAK,OAAO,WAAW;QAC3B;MACJ;IACJ;AAEA,SAAK,OAAO,iBAAiB,MAAM,MAAK;AACpC,YAAM,MAAM;QACR;QACA;QACA,MAAM,eAAe,gBAAgB;QACrC,UAAU;UACN;UACA,IAAI,KAAK;UACT,KAAK;UACL;;;AAIR,UAAI,KAAK,aAAa,YAAY;AAC9B,aAAK,aAAa;MACtB;AAEA,WAAK,UAAU,IAAI,IAAI,SAAS,QAAQ,EAAE,IAAI,SAAQ;AAGtD,WAAK,OAAO,YAAY,MAAM,GAAG;IACrC,CAAC;EACL;EAEA,MAAM,uBAAuB,UAAkB;AAC3C,QAAI,UAAU,QAAQ;AAClB,YAAM,YAAY,MAAM,KAAK,SAAS,IAAI;AAC1C,iBAAW,WAAW,UAAU;AAE5B,cAAM,YAAY,MAAM,kCAAM,aAAa,SAAS,KAAK,SAAS,IAAI;AAEtE,YAAI,WAAW,UAAU,KAAK,SAAO,KAAK,QAAQ,SAAS,QAAQ;AAGnE,mBACI,YAAY,UAAU,KAAK,SAAO,KAAK,QAAQ,WAAW,UAAU,SAAS,IAAI,OAAO,IAAI,CAAC;AAGjG,mBAAW,YAAY,UAAU,KAAK,SAAO,KAAK,UAAU,UAAU,SAAS,IAAI,OAAO,IAAI,CAAC;AAE/F,YAAI,YAAY,SAAS,OAAO,SAAS,UAAU;AAC/C,kBAAQ,IAAI,gCAAgC,SAAS,OAAO,WAAW;AAEvE,gBAAM,WAAW,MAAM,KAAK,uBAAuB,SAAS,OAAO,MAAM,UAAU,OAAO;AAC1F,cAAI,UAAU;AACV,oBAAQ,IAAI,kBAAkB,SAAS,QAAQ;UACnD,OAAO;AACH,oBAAQ,MAAM,kBAAkB,SAAS,OAAO,MAAM;UAC1D;QACJ,OAAO;AACH,cAAI,CAAC,UAAU;AAEX,kBAAM,aAAa,kCAAM,cAAc,OAAO;AAC9C,gBAAI,CAAC,cAAc,CAAC,gBAAAA,QAAG,WAAW,UAAU,GAAG;AAC3C,sBAAQ,KACJ,6CAA6C,iDAAiD;AAElG;YACJ;UACJ;AAGA,gBAAM,KAAK,cAAc,SAAS,MAAM,IAAI;AAC5C,gBAAM,KAAK,sBAAsB,OAAO;AACxC,gBAAM,KAAK,cAAc,SAAS,OAAO,IAAI;QACjD;MACJ;IACJ;EACJ;EAQA,MAAM,WAAW,QAAgB,QAAc;AAC3C,aAAS,OAAO,QAAQ,OAAO,GAAG;AAClC,aAAS,OAAO,QAAQ,OAAO,GAAG;AAClC,QAAI,OAAO,OAAO,KAAK;AACnB,eAAS,OAAO,UAAU,CAAC;IAC/B;AACA,QAAI,OAAO,OAAO,SAAS,OAAO,KAAK;AACnC,UAAI,OAAO,OAAO,MAAM,GAAG,EAAE,IAAG;AAChC,aAAO,KAAK,MAAM,GAAG,EAAE;AACvB,UAAI,CAAC,KAAK,SAAS,GAAG,GAAG;AACrB,eAAO;MACX;AACA,gBAAU;IACd;AACA,UAAM,QAAQ,OAAO,MAAM,GAAG;AAC9B,UAAM,UAAU,MAAM;AACtB,UAAM,OAAO,GAAG,CAAC;AACjB,aAAS,MAAM,KAAK,GAAG;AAEvB,QAAI,OAAO,MAAM,wBAAwB,GAAG;AACxC,UAAI;AACA,cAAM,SAAS,UAAM,aAAAC,SAAM,QAAQ;UAC/B,cAAc;UACd,gBAAgB,YAAU,WAAW;SACxC;AACD,YAAI,QAAQ,MAAM;AACd,gBAAM,KAAK,QAAQ,eAAe,SAAS,QAAQ,OAAO,IAAI;QAClE,OAAO;AACH,kBAAQ,MAAM,4BAA4B,SAAS;AACnD,gBAAM,IAAI,MAAM,4BAA4B,SAAS;QACzD;MACJ,SAAS,GAAP;AACE,YAAI;AACJ,YAAI,EAAE,UAAU;AAGZ,mBAAS,EAAE,SAAS,QAAQ,EAAE,SAAS;QAC3C,WAAW,EAAE,SAAS;AAIlB,mBAAS,EAAE;QACf,OAAO;AAEH,mBAAS,EAAE;QACf;AACA,gBAAQ,MAAM,mBAAmB,YAAY,QAAQ;AACrD,cAAM,IAAI,MAAM,MAAM;MAC1B;IACJ,OAAO;AACH,UAAI;AACA,cAAM,KAAK,QAAQ,eAAe,SAAS,QAAQ,gBAAAD,QAAG,aAAa,MAAM,CAAC;MAC9E,SAAS,GAAP;AACE,gBAAQ,MAAM,qBAAqB,YAAY,EAAE,SAAS;AAC1D,cAAM;MACV;IACJ;AAEA,WAAO,GAAG,WAAW;EACzB;EAEA,MAAM,WAAW,OAAc,QAAsC;AACjE,QAAI,SAAS,MAAM,QAAQ;AACvB,iBAAW,QAAQ,OAAO;AACtB,YAAI;AACA,gBAAM,KAAK,QAAQ,YAAY,KAAK,SAAS,KAAK,IAAI;QAC1D,SAAS,GAAP;AACE,iBAAO,MAAM,uBAAuB,KAAK,UAAU,GAAG;QAC1D;MACJ;IACJ;EACJ;EASA,MAAM,6BACF,SACA,MACA,QAAsC;AAKtC,QAAI,SAAiB,CAAA;AACrB,QAAI,QAAgB,CAAA;AACpB,QAAI;AACJ,QAAI;AACA,cAAQ,MAAM,KAAK,QAAQ,aAAa,SAAS,IAAI;IACzD,QAAE;AAEE,cAAQ,CAAA;IACZ;AAEA,QAAI,OAAO,QAAQ;AACf,iBAAW,QAAQ,OAAO;AACtB,YAAI,KAAK,SAAS,OAAO,KAAK,SAAS,MAAM;AACzC;QACJ;AACA,cAAM,UAAU,OAAO,KAAK;AAC5B,YAAI,KAAK,OAAO;AACZ,cAAI,CAAC,MAAM,KAAK,OAAK,EAAE,SAAS,OAAO,GAAG;AACtC,kBAAM,KAAK,EAAE,SAAS,MAAM,QAAO,CAAE;UACzC;AACA,cAAI;AACA,kBAAM,SAAS,MAAM,KAAK,6BAA6B,SAAS,GAAG,YAAY,MAAM;AACrF,gBAAI,OAAO,eAAe;AACtB,uBAAS,OAAO,OAAO,OAAO,aAAa;YAC/C;AAEA,oBAAQ,MAAM,OAAO,OAAO,IAAI;UACpC,SAAS,GAAP;AACE,mBAAO,KAAK,yBAAyB,UAAU,cAAc,EAAE,SAAS;UAC5E;QACJ,WAAW,CAAC,OAAO,KAAK,OAAK,EAAE,SAAS,OAAO,GAAG;AAC9C,iBAAO,KAAK,EAAE,SAAS,MAAM,QAAO,CAAE;QAC1C;MACJ;IACJ;AAEA,WAAO,EAAE,eAAe,QAAQ,MAAM,MAAK;EAC/C;EAEA,MAAM,OACF,SACA,SACA,OACA,IACA,QAAsC;AAEtC,UAAM,WAAW,kBAAkB;AAEnC,UAAM,KAAK,OAAO,SAAS,UAAU,EAAE,KAAK,GAAG,KAAK,KAAI,CAAE;AAE1D,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,YAAM,OAAO,MAAM;AAEnB,UAAI,SAAS,cAAc;AACvB;MACJ;AAEA,YAAM,WAAW,kBAAAE,QAAK,OAAO,IAAI;AACjC,UAAI,aAAa,KAAK,MAAM,KAAK,MAAM;AAEvC,UAAI,WAAW,WAAW,KAAK,KAAK,YAAW,EAAG,SAAS,kCAAM,QAAQ,YAAW,CAAE,GAAG;AACrF,qBAAa,CAAC,IAAI,KAAK,UAAU,kCAAM,QAAQ,SAAS,CAAC,CAAC;MAC9D;AAEA,UAAI,UAAU,WAAW,IAAG;AAC5B,gBAAU,QAAQ,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AAE9C,YAAM,iBAAiB,MAAM,SAAS,IAAI;AAE1C,UAAI,kBAAkB,KAAK;AACvB,SAAC,CAAC,KAAK,EAAE,iBAAiB,QACtB,OAAO,IAAI,WAAW,mBAAmB,MAAM,QAAQ,WAAW,UAAU;MACpF,WAAW,iBAAiB,IAAI;AAC5B,YAAI,CAAC,KAAK,EAAE,iBAAiB,KAAK;AAC9B,iBAAO,IAAI,WAAW,mBAAmB,MAAM,QAAQ,WAAW,UAAU;QAChF;MACJ,OAAO;AACH,eAAO,IAAI,WAAW,mBAAmB,MAAM,QAAQ,WAAW,UAAU;MAChF;AAGA,UAAI,CAAC,SAAS;AACV,cAAM,MAAM,KAAK,IAAG;AACpB,YAAI,MAAM,KAAK,qBAAqB,KAAO;AACvC,eAAK,qBAAqB;AAC1B,gBAAM,KAAK,OAAO,SAAS,UAAU;YACjC,KAAK,KAAK,MAAO,OAAS,MAAM,SAAS,KAAM,MAAM,MAAM,IAAI;YAC/D,KAAK;WACR;QACL;MACJ;AAEA,UAAI;AACA,cAAM,UAAU,MAAM,gBAAAF,QAAG,SAAS,IAAI;AACtC,cAAM,KAAK,QAAQ,eAAe,IAAI,SAAS,SAAS,EAAE,UAAU,YAAY,OAAS,CAAE;MAC/F,SAAS,GAAP;AACE,gBAAQ,MAAM,wBAAwB,SAAS,EAAE,SAAS;MAC9D;IACJ;AAGA,QAAI,CAAC,WAAW,MAAM,QAAQ;AAC1B,YAAM,KAAK,OAAO,SAAS,UAAU,EAAE,KAAK,GAAG,KAAK,KAAI,CAAE;IAC9D;AAEA,WAAO;EACX;EAGA,KAAK,KAAa,UAAmB;AACjC,UAAM,UAAU,YAAY,CAAA;AAC5B,QAAI;AACA,UAAI,gBAAAA,QAAG,WAAW,GAAG,GAAG;AACpB,cAAM,OAAO,gBAAAA,QAAG,YAAY,GAAG;AAC/B,aAAK,IAAI,UAAO;AACZ,gBAAM,OAAO,gBAAAA,QAAG,SAAS,GAAG,OAAO,MAAM;AACzC,cAAI,KAAK,YAAW,GAAI;AACpB,iBAAK,KAAK,GAAG,OAAO,QAAQ,OAAO;UACvC,OAAO;AACH,gBAAI,CAAC,KAAK,SAAS,YAAY,KAAK,CAAC,KAAK,SAAS,YAAY,GAAG;AAC9D,sBAAQ,KAAK,GAAG,OAAO,MAAM;YACjC;UACJ;QACJ,CAAC;MACL;IACJ,SAAS,GAAP;AACE,cAAQ,MAAM,CAAC;IACnB;AAEA,WAAO;EACX;EAWA,MAAM,cACF,SACA,SACA,aACA,SACA,SAAuB;AAEvB,UAAM,KAAK,WAAW,UAAU,WAAW;AAC3C,UAAM,aAAa,kCAAM,cAAc,OAAO;AAC9C,QAAI,MAAM,aAAa,cAAc,UAAU,WAAW,UAAU;AAEpE,UAAM,SAAS,WAAW;AAE1B,QAAI,WAAW,KAAK;AAChB,aAAO,IAAI;IACf;AACA,QAAI,eAAe,QAAQ,CAAC,gBAAAA,QAAG,WAAW,UAAU,GAAG;AACnD,cAAQ,IACJ,oBACI,cAAc,OAAO,UAAU,UAAU,WAAW,wDACJ;AAExD,aAAO;IACX;AAEA,QAAI;AACJ,QAAI;AACA,YAAM,MAAM,gBAAAA,QAAG,SAAS,GAAG,4BAA4B;IAC3D,SAAS,GAAP;AAEE,cAAQ,MAAM,mCAAmC,EAAE,SAAS;IAChE;AAEA,QAAI,CAAC,gBAAAA,QAAG,WAAW,GAAG,GAAG;AAGrB,OAAC,WAAY,KAAK,QAAQ,WAAW,CAAC,IAAI,OAAO,eAC7C,QAAQ,IACJ,oBACI,OAAO,OAAO,UAAU,UAAU,WAAW,uDACE;AAG3D,UAAI,SAAS;AACT,eAAO;MACX;AACA,YAAM,KAAK,kBAAkB,OAAO;AACpC,aAAO;IACX;AAGA,QAAI,CAAC,WAAW,KAAK,QAAQ,eAAe;AACxC,aAAO;IACX;AAGA,QAAI,CAAC,SAAS;AACV,UAAI;AACJ,YAAM,WAAW,kBAAkB;AACnC,UAAI;AACA,cAAM,MAAM,KAAK,QAAQ,UAAU,QAAQ;MAC/C,QAAE;MAEF;AACA,UAAI,CAAC,KAAK;AACN,cAAM,KAAK,QAAQ,UAAU,UAAU;UACnC,KAAK;UACL,MAAM;UACN,QAAQ;YACJ,MAAM,GAAG;YACT,MAAM;YACN,MAAM;YACN,MAAM;YACN,KAAK;YACL,KAAK;YACL,KAAK;YACL,MAAM;YACN,MAAM;YACN,OAAO;;UAEX,MAAM,eAAe,kCAAM,YAAW;UACtC,IAAI,KAAK,IAAG;UACZ,QAAQ,CAAA;SACX;MACL;AAEA,YAAM,KAAK,OAAO,SAAS,UAAU,EAAE,KAAK,GAAG,KAAK,KAAI,CAAE;IAC9D;AAEA,QAAI;AACJ,QAAI;AACA,eAAS,MAAM,KAAK,QAAQ,eAAe,EAAE;IACjD,QAAE;IAEF;AAEA,UAAM,QAAQ,KAAK,KAAK,GAAG;AAC3B,QAAI,CAAC,QAAQ;AAET,YAAM,KAAK,QAAQ,eAAe,IAAI;QAClC,MAAM;QACN,QAAQ;UACJ,MAAM,GAAG,MAAM,GAAG,EAAE,IAAG;UACvB,MAAM,UAAU,UAAU;;QAE9B,MAAM,eAAe,kCAAM,YAAW;QACtC,IAAI,KAAK,IAAG;QACZ,QAAQ,CAAA;OACX;AACD,oBAAc;IAClB;AAEA,QAAI,aAAa;AAIb,UACI,KAAK,QAAQ,kBAAkB,SAC/B,EAAE,KAAK,QAAQ,kBAAkB,UAAa,KAAK,QAAQ,SAAS,kBACtE;AACE,cAAM,EAAE,cAAa,IAAK,MAAM,KAAK,6BACjC,UAAU,GAAG,kBAAkB,SAC/B,KACA,MAAM;AAGV,cAAM,KAAK,WAAW,eAAe,MAAM;MAC/C;AACA,UAAI,CAAC,SAAS;AACV,cAAM,KAAK,kBAAkB,OAAO;AACpC,cAAM,IAAI,QAAc,aAAW,WAAW,MAAM,QAAO,GAAI,EAAE,CAAC;AAClE,cAAM,KAAK,OAAO,SAAS,SAAS,OAAO,IAAI,MAAM;MACzD,OAAO;AACH,cAAM,KAAK,OAAO,SAAS,SAAS,OAAO,IAAI,MAAM;MACzD;IACJ;AACA,WAAO;EACX;EAEA,aAAa,QAA6B,YAAmC;AACzE,QAAI,kCAAM,SAAS,UAAU,GAAG;AAC5B,iBAAW,CAAC,MAAM,QAAQ,KAAK,OAAO,QAAQ,UAAU,GAAG;AACvD,YAAI,OAAO,UAAU,QAAW;AAC5B,iBAAO,QAAQ;QACnB,WAAW,kCAAM,SAAS,QAAQ,GAAG;AACjC,cAAI;AACA,mBAAO,QAAQ,OAAO,SAAS,CAAA;UACnC,QAAE;AACE,oBAAQ,KAAK,2BAA2B,gBAAgB;UAC5D;AACA,cAAI,OAAO,OAAO,UAAU,YAAY,OAAO,UAAU,MAAM;AAC3D,iBAAK,aAAa,OAAO,OAAO,QAAQ;UAC5C;QACJ;MACJ;IACJ;AACA,WAAO;EACX;EAEA,aACI,QACA,YACA,UAAgB;AAEhB,QAAI,kCAAM,SAAS,UAAU,GAAG;AAC5B,YAAM,qBAAqB;QACvB;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;AAGJ,iBAAW,CAAC,MAAM,QAAQ,KAAK,OAAO,QAAQ,UAAU,GAAG;AAEvD,YAAI,mBAAmB,SAAS,IAAI,KAAM,SAAS,eAAe,OAAO,OAAO,UAAU,UAAW;AACjG,cAAI,OAAO,UAAU,QAAW;AAC5B,mBAAO,QAAQ;UACnB;QACJ,WAAW,OAAO,aAAa,YAAY,oBAAoB,OAAO;AAClE,cAAI;AACA,mBAAO,QAAQ;AAGf,gBAAI,SAAS,gBAAgB,OAAO,cAAc,OAAO,WAAW,SAAS,YAAY,GAAG;AACxF,qBAAO,aAAa,OAAO,WAAW,QAAQ,eAAe,QAAQ;YACzE;UACJ,QAAE;AACE,oBAAQ,KAAK,2BAA2B,gBAAgB;UAC5D;QACJ,OAAO;AACH,iBAAO,QAAQ,OAAO,SAAS,CAAA;AAC/B,cAAI,OAAO,OAAO,UAAU,UAAU;AAClC,mBAAO,QAAQ,CAAA;UACnB;AAEA,eAAK,aAAa,OAAO,OAAO,UAAU,QAAQ;QACtD;MACJ;IACJ;AACA,WAAO;EACX;EAUA,MAAM,6BACF,MACA,QACAG,WACA,QAAsC;AAGtC,UAAM,MAAM,MAAM,KAAK,QAAQ,mBAAmB,UAAU,YAAY;MACpE,UAAU,kBAAkB;MAC5B,QAAQ,kBAAkB;KAC7B;AAED,QAAI,KAAK;AACL,iBAAW,OAAO,IAAI,MAAM;AACxB,YAAI,IAAI,OAAO,OAAO,SAASA,WAAU;AACrC,gBAAM,OAAO,MAAM,KAAK,QAAQ,UAAU,IAAI,EAAE;AAChD,gBAAM,gBAAY,kBAAAC,SAAU,IAAI;AAKhC,oBAAU,SAAS,KAAK,aACpB,UAAU,QACV,OAAO,QACP,UAAU,IAAI,MAAM,GAAG,EAAE,IAAG,CAAG;AAEnC,oBAAU,SAAS,KAAK,aAAa,UAAU,QAAQ,OAAO,MAAM;AAGpE,oBAAU,kBAAkB,OAAO,mBAAmB,CAAA;AACtD,oBAAU,kBAAkB,OAAO,mBAAmB,CAAA;AACtD,oBAAU,gBAAgB,OAAO,iBAAiB,CAAA;AAElD,oBAAU,kBAAkB,OAAO,mBAAmB,CAAA;AACtD,oBAAU,UAAU,OAAO,WAAW,CAAA;AAEtC,oBAAU,OAAO,UAAU,OAAO,OAAO;AACzC,oBAAU,OAAO,mBAAmB,OAAO,OAAO;AAClD,oBAAU,OAAO,gBAAgB,OAAO,OAAO;AAG/C,cAAI,OAAO,OAAO,YAAY;AAC1B,sBAAU,OAAO,aAAa,OAAO,OAAO;UAChD,OAAO;AACH,mBAAO,UAAU,OAAO;UAC5B;AAEA,cAAI,OAAO,OAAO,YAAY;AAC1B,sBAAU,OAAO,aAAa,OAAO,OAAO;UAChD,OAAO;AACH,mBAAO,UAAU,OAAO;UAC5B;AAEA,cAAI,CAAC,OAAO,OAAO,WAAW,UAAU,OAAO,SAAS;AACpD,sBAAU,OAAO,UAAU,OAAO,OAAO;UAC7C;AAGA,cAAI,KAAC,oCAAkB,WAAW,IAAI,GAAG;AACrC,mBAAO,IAAI,WAAW,UAAU,MAAM;AAEtC,sBAAU,OAAO,eAAe,kCAAM,YAAW;AACjD,sBAAU,KAAK,KAAK,IAAG;AAEvB,kBAAM,KAAK,QAAQ,eAAe,UAAU,KAAK,SAAS;UAC9D;QACJ;MACJ;IACJ;AAGA,QAAI,MAAM,QAAQ,OAAO,OAAO,GAAG;AAC/B,iBAAW,OAAO,OAAO,SAAS;AAC9B,YAAI,SAAS,mBAAmB,CAAC,IAAI,IAAI,WAAW,UAAU,GAAG;AAC7D;QACJ;AAEA,YAAI,OAAO,eAAeD;AAC1B,YAAI,KAAK,KAAK,IAAG;AAEjB,YAAI;AACA,gBAAM,KAAK,QAAQ,eAAe,IAAI,KAAK,GAAG;QAClD,SAAS,GAAP;AACE,iBAAO,MAAM,yBAAyB,GAAG;QAC7C;MACJ;IACJ;AAEA,WAAO;EACX;EASA,MAAM,sBACF,MACA,QACA,SAAyC,SAAO;AAEhD,UAAM,aAAa,kCAAM,cAAc,IAAI;AAC3C,QAAI;AACJ,QAAI;AACA,mBAAa,gBAAAH,QAAG,aAAa,GAAG,4BAA4B;IAChE,QAAE;AACE,UAAI,YAAY;AACZ,eAAO,MAAM,kCAAkC,YAAY;MAC/D,OAAO;AACH,eAAO,MAAM,oCAAoC,OAAO;MAC5D;AACA,mBAAa;IACjB;AAEA,aAAS,UAAU;AAEnB,QAAI,QAAQ;AACR,aAAO,IACH,sDAAsD,uBAAuB,OAAO,OAAO,UAAU;AAGzG,UAAI,YAAY,QAAQ,eAAe;AACnC,eAAO,SAAS,OAAO,UAAU,CAAA;AACjC,eAAO,OAAO,gBAAgB,WAAW,OAAO;MACpD;AAEA,UAAI;AACJ,UAAI;AACA,eAAO,MAAM,KAAK,QAAQ,UAAU,kBAAkB,MAAM;MAChE,QAAE;MAEF;AACA,YAAM,MAA2C,QAAQ;QACrD,QAAQ,OAAO;QACf,QAAQ,OAAO;QACf,MAAM;QACN,iBAAiB,CAAA;QACjB,SAAS,CAAA;;AAGb,UAAI,SAAS,OAAO,UAAU,CAAA;AAC9B,UAAI,SAAS,OAAO,UAAU,CAAA;AAE9B,UAAI,kBAAkB,OAAO,mBAAmB,CAAA;AAChD,UAAI,kBAAkB,OAAO,mBAAmB,CAAA;AAChD,UAAI,gBAAgB,OAAO,iBAAiB,CAAA;AAE5C,UAAI,kBAAkB,OAAO,mBAAmB,CAAA;AAChD,UAAI,UAAU,OAAO,WAAW,CAAA;AAEhC,UAAI,OAAO;AAEX,UAAI,OAAO,mBAAmB,OAAO,OAAO;AAE5C,UAAI,IAAI,OAAO,MAAM;AACjB,eAAO,IAAI,OAAO;MACtB;AAEA,YAAMG,YAAW,kCAAM,YAAW;AAElC,UAAI,OAAO,eAAeA;AAC1B,UAAI,KAAK,KAAK,IAAG;AAEjB,UAAI;AACA,cAAM,KAAK,QAAQ,UAAU,kBAAkB,QAAQ,GAAG;AAC1D,cAAM,KAAK,QAAQ,UAAU,eAAeA,qBAAoB,QAAQ,GAAG;MAC/E,SAAS,GAAP;AACE,eAAO,MACH,8BAA8B,0BAA0BA,sBAAqB,UAAU,EAAE,SAAS;MAE1G;AAEA,YAAM,KAAK,6BAA6B,MAAM,QAAQA,WAAU,MAAM;IAC1E;AAEA,WAAO;EACX;;",
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["fs", "axios", "mime", "hostname", "deepClone"]
|
|
7
7
|
}
|
|
@@ -18,6 +18,10 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
return to;
|
|
19
19
|
};
|
|
20
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
25
|
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
26
|
mod
|
|
23
27
|
));
|
|
@@ -42,6 +46,13 @@ class Users {
|
|
|
42
46
|
this.objects = options.objects;
|
|
43
47
|
this.processExit = options.processExit;
|
|
44
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Adds new user to system
|
|
51
|
+
*
|
|
52
|
+
* @param username name of the user which will be added
|
|
53
|
+
* @param pw password
|
|
54
|
+
* @param callback
|
|
55
|
+
*/
|
|
45
56
|
addUser(username, pw, callback) {
|
|
46
57
|
const _user = username.replace(/\s/g, "_").toLowerCase();
|
|
47
58
|
this.objects.getObject(`system.user.${_user}`, (err, obj) => {
|
|
@@ -67,6 +78,11 @@ class Users {
|
|
|
67
78
|
});
|
|
68
79
|
});
|
|
69
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Checks if user exists
|
|
83
|
+
*
|
|
84
|
+
* @param username name of the user to check existence of
|
|
85
|
+
*/
|
|
70
86
|
async isUser(username) {
|
|
71
87
|
const _user = username.replace(/\s/g, "_").toLowerCase();
|
|
72
88
|
let isExisting = false;
|
|
@@ -76,6 +92,13 @@ class Users {
|
|
|
76
92
|
}
|
|
77
93
|
return isExisting;
|
|
78
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Set password for specific user
|
|
97
|
+
*
|
|
98
|
+
* @param username name of the user to set password for
|
|
99
|
+
* @param pw password
|
|
100
|
+
* @param callback
|
|
101
|
+
*/
|
|
79
102
|
setPassword(username, pw, callback) {
|
|
80
103
|
const _user = username.replace(/\s/g, "_").toLowerCase();
|
|
81
104
|
this.objects.getObject(`system.user.${_user}`, (err, obj) => {
|
|
@@ -95,6 +118,13 @@ class Users {
|
|
|
95
118
|
});
|
|
96
119
|
});
|
|
97
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Checks if password is correct for given user
|
|
123
|
+
*
|
|
124
|
+
* @param username name of the user to check password
|
|
125
|
+
* @param pw password
|
|
126
|
+
* @param callback
|
|
127
|
+
*/
|
|
98
128
|
checkPassword(username, pw, callback) {
|
|
99
129
|
const _user = username.replace(/\s/g, "_").toLowerCase();
|
|
100
130
|
this.objects.getObject(`system.user.${_user}`, (err, obj) => {
|
|
@@ -106,6 +136,12 @@ class Users {
|
|
|
106
136
|
});
|
|
107
137
|
});
|
|
108
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Deletes user from system
|
|
141
|
+
*
|
|
142
|
+
* @param username name of the user to delete
|
|
143
|
+
* @param callback
|
|
144
|
+
*/
|
|
109
145
|
delUser(username, callback) {
|
|
110
146
|
if (!username) {
|
|
111
147
|
return import_js_controller_common.tools.maybeCallbackWithError(callback, 'Please define user name, like: "userdel user"');
|
|
@@ -152,6 +188,13 @@ class Users {
|
|
|
152
188
|
});
|
|
153
189
|
});
|
|
154
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Adds user to given group
|
|
193
|
+
*
|
|
194
|
+
* @param username user which will be added to the group
|
|
195
|
+
* @param groupName name of the group where the user will be added to
|
|
196
|
+
* @param callback
|
|
197
|
+
*/
|
|
155
198
|
addUserToGroup(username, groupName, callback) {
|
|
156
199
|
let _user = username.replace(/\s/g, "_").toLowerCase();
|
|
157
200
|
if (!groupName.startsWith("system.group.")) {
|
|
@@ -183,6 +226,14 @@ class Users {
|
|
|
183
226
|
});
|
|
184
227
|
});
|
|
185
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Add user via CLI prompt
|
|
231
|
+
*
|
|
232
|
+
* @param username user which sohuld be created
|
|
233
|
+
* @param groupName default group for the new user
|
|
234
|
+
* @param password user password
|
|
235
|
+
* @param callback
|
|
236
|
+
*/
|
|
186
237
|
addUserPrompt(username, groupName, password2, callback) {
|
|
187
238
|
if (!username) {
|
|
188
239
|
return import_js_controller_common.tools.maybeCallbackWithError(callback, 'Please define user name, like: "adduser newUser"');
|
|
@@ -250,6 +301,13 @@ class Users {
|
|
|
250
301
|
}
|
|
251
302
|
});
|
|
252
303
|
}
|
|
304
|
+
/**
|
|
305
|
+
* Set password of user
|
|
306
|
+
*
|
|
307
|
+
* @param username name of the user to set password for
|
|
308
|
+
* @param password password of user
|
|
309
|
+
* @param callback
|
|
310
|
+
*/
|
|
253
311
|
async setUserPassword(username, password2, callback) {
|
|
254
312
|
if (!username) {
|
|
255
313
|
return import_js_controller_common.tools.maybeCallbackWithError(callback, 'Please define user name, like: "passwd username"');
|
|
@@ -302,6 +360,13 @@ class Users {
|
|
|
302
360
|
});
|
|
303
361
|
}
|
|
304
362
|
}
|
|
363
|
+
/**
|
|
364
|
+
* Enable user
|
|
365
|
+
*
|
|
366
|
+
* @param username name of the user which will be activated
|
|
367
|
+
* @param enable true if it should be enabled else false
|
|
368
|
+
* @param callback
|
|
369
|
+
*/
|
|
305
370
|
enableUser(username, enable, callback) {
|
|
306
371
|
if (!username) {
|
|
307
372
|
return import_js_controller_common.tools.maybeCallbackWithError(callback, 'Please define user name, like: "enable username"');
|
|
@@ -327,6 +392,13 @@ class Users {
|
|
|
327
392
|
});
|
|
328
393
|
});
|
|
329
394
|
}
|
|
395
|
+
/**
|
|
396
|
+
* Check if user password is valid
|
|
397
|
+
*
|
|
398
|
+
* @param username name of the user to check password for
|
|
399
|
+
* @param password password to check
|
|
400
|
+
* @param callback
|
|
401
|
+
*/
|
|
330
402
|
checkUserPassword(username, password2, callback) {
|
|
331
403
|
if (!username && !password2) {
|
|
332
404
|
import_prompt.default.message = "";
|
|
@@ -387,6 +459,12 @@ class Users {
|
|
|
387
459
|
});
|
|
388
460
|
}
|
|
389
461
|
}
|
|
462
|
+
/**
|
|
463
|
+
* Get user object
|
|
464
|
+
*
|
|
465
|
+
* @param username name of the user to get object of
|
|
466
|
+
* @param callback
|
|
467
|
+
*/
|
|
390
468
|
getUser(username, callback) {
|
|
391
469
|
this.objects.getObject(`system.user.${username}`, (err, obj) => {
|
|
392
470
|
if (err) {
|
|
@@ -398,6 +476,12 @@ class Users {
|
|
|
398
476
|
return import_js_controller_common.tools.maybeCallbackWithError(callback, null, obj.common.enabled);
|
|
399
477
|
});
|
|
400
478
|
}
|
|
479
|
+
/**
|
|
480
|
+
* Get group object
|
|
481
|
+
*
|
|
482
|
+
* @param group groupname
|
|
483
|
+
* @param callback
|
|
484
|
+
*/
|
|
401
485
|
getGroup(group, callback) {
|
|
402
486
|
this.objects.getObject(`system.group.${group}`, (err, obj) => {
|
|
403
487
|
if (err) {
|
|
@@ -409,6 +493,13 @@ class Users {
|
|
|
409
493
|
return import_js_controller_common.tools.maybeCallbackWithError(callback, null, obj.common.enabled, obj.common.members);
|
|
410
494
|
});
|
|
411
495
|
}
|
|
496
|
+
/**
|
|
497
|
+
* Enable or disable group by name
|
|
498
|
+
*
|
|
499
|
+
* @param group groupname
|
|
500
|
+
* @param enable if enable or disable
|
|
501
|
+
* @param callback
|
|
502
|
+
*/
|
|
412
503
|
enableGroup(group, enable, callback) {
|
|
413
504
|
if (!group) {
|
|
414
505
|
return import_js_controller_common.tools.maybeCallbackWithError(callback, 'Please define group name, like: "enable groupname"');
|
|
@@ -434,6 +525,11 @@ class Users {
|
|
|
434
525
|
});
|
|
435
526
|
});
|
|
436
527
|
}
|
|
528
|
+
/**
|
|
529
|
+
* Add new group
|
|
530
|
+
*
|
|
531
|
+
* @param group groupname
|
|
532
|
+
*/
|
|
437
533
|
async addGroup(group) {
|
|
438
534
|
const _group = group.replace(/\s/g, "_");
|
|
439
535
|
const obj = await this.objects.getObject(`system.group.${_group}`);
|
|
@@ -453,6 +549,12 @@ class Users {
|
|
|
453
549
|
});
|
|
454
550
|
}
|
|
455
551
|
}
|
|
552
|
+
/**
|
|
553
|
+
* Remove group
|
|
554
|
+
*
|
|
555
|
+
* @param group groupname
|
|
556
|
+
* @param callback
|
|
557
|
+
*/
|
|
456
558
|
delGroup(group, callback) {
|
|
457
559
|
const _group = group.replace(/\s/g, "_");
|
|
458
560
|
if (group === "administrator") {
|
|
@@ -467,6 +569,13 @@ class Users {
|
|
|
467
569
|
});
|
|
468
570
|
});
|
|
469
571
|
}
|
|
572
|
+
/**
|
|
573
|
+
* Remove user from given group
|
|
574
|
+
*
|
|
575
|
+
* @param username name of the user which will be removed from group
|
|
576
|
+
* @param groupName name of the group user will be removed from
|
|
577
|
+
* @param callback
|
|
578
|
+
*/
|
|
470
579
|
removeUserFromGroup(username, groupName, callback) {
|
|
471
580
|
const _group = groupName.replace(/\s/g, "_");
|
|
472
581
|
this.objects.getObject(`system.group.${_group}`, (err, obj) => {
|