@appium/base-driver 8.7.2 → 9.0.0
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/lib/basedriver/capabilities.d.ts +11 -163
- package/build/lib/basedriver/capabilities.d.ts.map +1 -1
- package/build/lib/basedriver/capabilities.js +354 -236
- package/build/lib/basedriver/capabilities.js.map +1 -1
- package/build/lib/basedriver/commands/event.d.ts +7 -6
- package/build/lib/basedriver/commands/event.d.ts.map +1 -1
- package/build/lib/basedriver/commands/event.js +55 -35
- package/build/lib/basedriver/commands/event.js.map +1 -1
- package/build/lib/basedriver/commands/execute.d.ts +7 -6
- package/build/lib/basedriver/commands/execute.d.ts.map +1 -1
- package/build/lib/basedriver/commands/execute.js +66 -58
- package/build/lib/basedriver/commands/execute.js.map +1 -1
- package/build/lib/basedriver/commands/find.d.ts +9 -7
- package/build/lib/basedriver/commands/find.d.ts.map +1 -1
- package/build/lib/basedriver/commands/find.js +102 -54
- package/build/lib/basedriver/commands/find.js.map +1 -1
- package/build/lib/basedriver/commands/index.d.ts +3 -7
- package/build/lib/basedriver/commands/index.d.ts.map +1 -1
- package/build/lib/basedriver/commands/index.js +30 -33
- package/build/lib/basedriver/commands/index.js.map +1 -1
- package/build/lib/basedriver/commands/log.d.ts +8 -9
- package/build/lib/basedriver/commands/log.d.ts.map +1 -1
- package/build/lib/basedriver/commands/log.js +54 -38
- package/build/lib/basedriver/commands/log.js.map +1 -1
- package/build/lib/basedriver/commands/session.d.ts +7 -6
- package/build/lib/basedriver/commands/session.d.ts.map +1 -1
- package/build/lib/basedriver/commands/session.js +46 -39
- package/build/lib/basedriver/commands/session.js.map +1 -1
- package/build/lib/basedriver/commands/settings.d.ts +7 -7
- package/build/lib/basedriver/commands/settings.d.ts.map +1 -1
- package/build/lib/basedriver/commands/settings.js +35 -28
- package/build/lib/basedriver/commands/settings.js.map +1 -1
- package/build/lib/basedriver/commands/timeout.d.ts +7 -5
- package/build/lib/basedriver/commands/timeout.d.ts.map +1 -1
- package/build/lib/basedriver/commands/timeout.js +144 -162
- package/build/lib/basedriver/commands/timeout.js.map +1 -1
- package/build/lib/basedriver/core.d.ts +6 -157
- package/build/lib/basedriver/core.d.ts.map +1 -1
- package/build/lib/basedriver/core.js +361 -230
- package/build/lib/basedriver/core.js.map +1 -1
- package/build/lib/basedriver/desired-caps.js +80 -110
- package/build/lib/basedriver/desired-caps.js.map +1 -1
- package/build/lib/basedriver/device-settings.js +57 -62
- package/build/lib/basedriver/device-settings.js.map +1 -1
- package/build/lib/basedriver/driver.d.ts +21 -267
- package/build/lib/basedriver/driver.d.ts.map +1 -1
- package/build/lib/basedriver/driver.js +362 -258
- package/build/lib/basedriver/driver.js.map +1 -1
- package/build/lib/basedriver/helpers.js +500 -495
- package/build/lib/basedriver/helpers.js.map +1 -1
- package/build/lib/basedriver/logger.d.ts +1 -1
- package/build/lib/basedriver/logger.d.ts.map +1 -1
- package/build/lib/basedriver/logger.js +5 -15
- package/build/lib/basedriver/logger.js.map +1 -1
- package/build/lib/constants.js +14 -14
- package/build/lib/constants.js.map +1 -1
- package/build/lib/express/crash.js +8 -15
- package/build/lib/express/crash.js.map +1 -1
- package/build/lib/express/express-logging.js +49 -59
- package/build/lib/express/express-logging.js.map +1 -1
- package/build/lib/express/idempotency.js +125 -177
- package/build/lib/express/idempotency.js.map +1 -1
- package/build/lib/express/logger.d.ts +1 -1
- package/build/lib/express/logger.d.ts.map +1 -1
- package/build/lib/express/logger.js +5 -15
- package/build/lib/express/logger.js.map +1 -1
- package/build/lib/express/middleware.js +82 -107
- package/build/lib/express/middleware.js.map +1 -1
- package/build/lib/express/server.d.ts +17 -5
- package/build/lib/express/server.d.ts.map +1 -1
- package/build/lib/express/server.js +259 -224
- package/build/lib/express/server.js.map +1 -1
- package/build/lib/express/static.js +64 -81
- package/build/lib/express/static.js.map +1 -1
- package/build/lib/express/websocket.js +115 -87
- package/build/lib/express/websocket.js.map +1 -1
- package/build/lib/helpers/capabilities.d.ts +1 -59
- package/build/lib/helpers/capabilities.d.ts.map +1 -1
- package/build/lib/helpers/capabilities.js +72 -69
- package/build/lib/helpers/capabilities.js.map +1 -1
- package/build/lib/index.js +64 -180
- package/build/lib/index.js.map +1 -1
- package/build/lib/jsonwp-proxy/protocol-converter.js +215 -227
- package/build/lib/jsonwp-proxy/protocol-converter.js.map +1 -1
- package/build/lib/jsonwp-proxy/proxy.d.ts.map +1 -1
- package/build/lib/jsonwp-proxy/proxy.js +355 -393
- package/build/lib/jsonwp-proxy/proxy.js.map +1 -1
- package/build/lib/jsonwp-status/status.js +119 -130
- package/build/lib/jsonwp-status/status.js.map +1 -1
- package/build/lib/protocol/errors.d.ts +135 -32
- package/build/lib/protocol/errors.d.ts.map +1 -1
- package/build/lib/protocol/errors.js +871 -919
- package/build/lib/protocol/errors.js.map +1 -1
- package/build/lib/protocol/helpers.js +37 -37
- package/build/lib/protocol/helpers.js.map +1 -1
- package/build/lib/protocol/index.js +22 -109
- package/build/lib/protocol/index.js.map +1 -1
- package/build/lib/protocol/protocol.js +394 -350
- package/build/lib/protocol/protocol.js.map +1 -1
- package/build/lib/protocol/routes.d.ts +1238 -4
- package/build/lib/protocol/routes.d.ts.map +1 -1
- package/build/lib/protocol/routes.js +964 -1327
- package/build/lib/protocol/routes.js.map +1 -1
- package/build/lib/protocol/validators.js +32 -39
- package/build/lib/protocol/validators.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/lib/basedriver/capabilities.js +80 -39
- package/lib/basedriver/commands/event.js +10 -5
- package/lib/basedriver/commands/execute.js +14 -9
- package/lib/basedriver/commands/find.js +18 -12
- package/lib/basedriver/commands/index.js +21 -16
- package/lib/basedriver/commands/log.js +24 -18
- package/lib/basedriver/commands/session.js +10 -5
- package/lib/basedriver/commands/settings.js +9 -6
- package/lib/basedriver/commands/timeout.js +10 -4
- package/lib/basedriver/core.js +2 -3
- package/lib/basedriver/driver.js +29 -18
- package/lib/express/server.js +6 -3
- package/lib/protocol/errors.js +155 -44
- package/lib/protocol/routes.js +11 -7
- package/package.json +14 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","names":["IPA_EXT","ZIP_EXTS","ZIP_MIME_TYPES","CACHED_APPS_MAX_AGE","MAX_CACHED_APPS","APPLICATIONS_CACHE","LRU","max","ttl","updateAgeOnGet","dispose","app","fullPath","logger","info","fs","rimraf","noDisposeOnSet","APPLICATIONS_CACHE_GUARD","AsyncLock","SANITIZE_REPLACEMENT","DEFAULT_BASENAME","APP_DOWNLOAD_TIMEOUT_MS","process","on","size","appPaths","values","map","debug","length","util","pluralize","appPath","rimrafSync","e","warn","message","retrieveHeaders","link","axios","url","method","timeout","headers","getCachedApplicationPath","currentAppProps","cachedAppInfo","refresh","_","isPlainObject","lastModified","currentModified","immutable","currentImmutable","maxAge","currentMaxAge","timestamp","getTime","msLeft","Date","now","path","basename","verifyAppExtension","supportedAppExtensions","toLower","includes","extname","Error","calculateFolderIntegrity","folderPath","glob","cwd","strict","nosort","calculateFileIntegrity","filePath","hash","isAppIntegrityOk","currentPath","expectedIntegrity","exists","stat","isDirectory","folder","file","configureApp","options","isString","onPostProcess","isArray","undefined","supportedExtensions","isEmpty","newApp","shouldUnzipApp","packageHash","remoteAppProps","protocol","pathname","parse","isUrl","get","acquire","test","maxAgeMatch","exec","parseInt","cachedPath","integrity","delete","fileName","sanitizeName","decodeURIComponent","replacement","ct","some","mimeType","RegExp","escapeRegExp","match","resultingName","substring","resultingExt","first","targetPath","tempDir","prefix","suffix","downloadApp","errorMessage","isPackageAFile","isFile","isFunction","archivePath","tmpRoot","openDir","unzipApp","isAbsolute","resolve","storeAppInCache","appPathToCache","cachedFullPath","set","result","clone","Boolean","href","net","downloadFile","err","zipPath","dstRoot","zip","assertValidZip","timer","timing","Timer","start","useSystemUnzipEnv","env","APPIUM_PREFER_SYSTEM_UNZIP","useSystemUnzip","extractionOpts","fileNamesEncoding","extractAllTo","globPattern","ext","replace","join","sortedBundleItems","sort","a","b","split","sep","errorAndThrow","Math","round","getDuration","asMilliSeconds","matchedBundle","dstPath","mv","mkdirp","isPackageOrBundle","duplicateKeys","input","firstKey","secondKey","item","resultObj","key","value","toPairs","recursivelyCalledValue","parseCapsArray","cap","parsedCaps","JSON","ign","generateDriverLogPrefix","obj","sessionId","instanceName","constructor","name","node","getObjectId"],"sources":["../../../lib/basedriver/helpers.js"],"sourcesContent":["import _ from 'lodash';\nimport path from 'path';\nimport url from 'url';\nimport logger from './logger';\nimport {tempDir, fs, util, zip, net, timing, node} from '@appium/support';\nimport LRU from 'lru-cache';\nimport AsyncLock from 'async-lock';\nimport axios from 'axios';\n\nconst IPA_EXT = '.ipa';\nconst ZIP_EXTS = ['.zip', IPA_EXT];\nconst ZIP_MIME_TYPES = ['application/zip', 'application/x-zip-compressed', 'multipart/x-zip'];\nconst CACHED_APPS_MAX_AGE = 1000 * 60 * 60 * 24; // ms\nconst MAX_CACHED_APPS = 1024;\nconst APPLICATIONS_CACHE = new LRU({\n max: MAX_CACHED_APPS,\n ttl: CACHED_APPS_MAX_AGE, // expire after 24 hours\n updateAgeOnGet: true,\n dispose: (app, {fullPath}) => {\n logger.info(\n `The application '${app}' cached at '${fullPath}' has ` +\n `expired after ${CACHED_APPS_MAX_AGE}ms`\n );\n if (fullPath) {\n fs.rimraf(fullPath);\n }\n },\n noDisposeOnSet: true,\n});\nconst APPLICATIONS_CACHE_GUARD = new AsyncLock();\nconst SANITIZE_REPLACEMENT = '-';\nconst DEFAULT_BASENAME = 'appium-app';\nconst APP_DOWNLOAD_TIMEOUT_MS = 120 * 1000;\n\nprocess.on('exit', () => {\n if (APPLICATIONS_CACHE.size === 0) {\n return;\n }\n\n const appPaths = [...APPLICATIONS_CACHE.values()].map(({fullPath}) => fullPath);\n logger.debug(\n `Performing cleanup of ${appPaths.length} cached ` +\n util.pluralize('application', appPaths.length)\n );\n for (const appPath of appPaths) {\n try {\n // Asynchronous calls are not supported in onExit handler\n fs.rimrafSync(appPath);\n } catch (e) {\n logger.warn(e.message);\n }\n }\n});\n\nasync function retrieveHeaders(link) {\n try {\n return (\n await axios({\n url: link,\n method: 'HEAD',\n timeout: 5000,\n })\n ).headers;\n } catch (e) {\n logger.info(`Cannot send HEAD request to '${link}'. Original error: ${e.message}`);\n }\n return {};\n}\n\nfunction getCachedApplicationPath(link, currentAppProps = {}, cachedAppInfo = {}) {\n const refresh = () => {\n logger.debug(`A fresh copy of the application is going to be downloaded from ${link}`);\n return null;\n };\n\n if (!_.isPlainObject(cachedAppInfo) || !_.isPlainObject(currentAppProps)) {\n // if an invalid arg is passed then assume cache miss\n return refresh();\n }\n\n const {\n lastModified: currentModified,\n immutable: currentImmutable,\n // maxAge is in seconds\n maxAge: currentMaxAge,\n } = currentAppProps;\n const {\n // Date instance\n lastModified,\n // boolean\n immutable,\n // Unix time in milliseconds\n timestamp,\n fullPath,\n } = cachedAppInfo;\n if (lastModified && currentModified) {\n if (currentModified.getTime() <= lastModified.getTime()) {\n logger.debug(`The application at ${link} has not been modified since ${lastModified}`);\n return fullPath;\n }\n logger.debug(`The application at ${link} has been modified since ${lastModified}`);\n return refresh();\n }\n if (immutable && currentImmutable) {\n logger.debug(`The application at ${link} is immutable`);\n return fullPath;\n }\n if (currentMaxAge && timestamp) {\n const msLeft = timestamp + currentMaxAge * 1000 - Date.now();\n if (msLeft > 0) {\n logger.debug(\n `The cached application '${path.basename(fullPath)}' will expire in ${msLeft / 1000}s`\n );\n return fullPath;\n }\n logger.debug(`The cached application '${path.basename(fullPath)}' has expired`);\n }\n return refresh();\n}\n\nfunction verifyAppExtension(app, supportedAppExtensions) {\n if (supportedAppExtensions.map(_.toLower).includes(_.toLower(path.extname(app)))) {\n return app;\n }\n throw new Error(\n `New app path '${app}' did not have ` +\n `${util.pluralize('extension', supportedAppExtensions.length, false)}: ` +\n supportedAppExtensions\n );\n}\n\nasync function calculateFolderIntegrity(folderPath) {\n return (await fs.glob('**/*', {cwd: folderPath, strict: false, nosort: true})).length;\n}\n\nasync function calculateFileIntegrity(filePath) {\n return await fs.hash(filePath);\n}\n\nasync function isAppIntegrityOk(currentPath, expectedIntegrity = {}) {\n if (!(await fs.exists(currentPath))) {\n return false;\n }\n\n // Folder integrity check is simple:\n // Verify the previous amount of files is not greater than the current one.\n // We don't want to use equality comparison because of an assumption that the OS might\n // create some unwanted service files/cached inside of that folder or its subfolders.\n // Ofc, validating the hash sum of each file (or at least of file path) would be much\n // more precise, but we don't need to be very precise here and also don't want to\n // overuse RAM and have a performance drop.\n return (await fs.stat(currentPath)).isDirectory()\n ? (await calculateFolderIntegrity(currentPath)) >= expectedIntegrity?.folder\n : (await calculateFileIntegrity(currentPath)) === expectedIntegrity?.file;\n}\n\n/**\n * @typedef PostProcessOptions\n * @property {?Object} cachedAppInfo The information about the previously cached app instance (if exists):\n * - packageHash: SHA1 hash of the package if it is a file and not a folder\n * - lastModified: Optional Date instance, the value of file's `Last-Modified` header\n * - immutable: Optional boolean value. Contains true if the file has an `immutable` mark\n * in `Cache-control` header\n * - maxAge: Optional integer representation of `maxAge` parameter in `Cache-control` header\n * - timestamp: The timestamp this item has been added to the cache (measured in Unix epoch\n * milliseconds)\n * - integrity: An object containing either `file` property with SHA1 hash of the file\n * or `folder` property with total amount of cached files and subfolders\n * - fullPath: the full path to the cached app\n * @property {boolean} isUrl Whether the app has been downloaded from a remote URL\n * @property {?Object} headers Optional headers object. Only present if `isUrl` is true and if the server\n * responds to HEAD requests. All header names are normalized to lowercase.\n * @property {string} appPath A string containing full path to the preprocessed application package (either\n * downloaded or a local one)\n */\n\n/**\n * @typedef PostProcessResult\n * @property {string} appPath The full past to the post-processed application package on the\n * local file system (might be a file or a folder path)\n */\n\n/**\n * @typedef ConfigureAppOptions\n * @property {(obj: PostProcessOptions) => (Promise<PostProcessResult|undefined>|PostProcessResult|undefined)} [onPostProcess]\n * Optional function, which should be applied\n * to the application after it is downloaded/preprocessed. This function may be async\n * and is expected to accept single object parameter.\n * The function is expected to either return a falsy value, which means the app must not be\n * cached and a fresh copy of it is downloaded each time. If this function returns an object\n * containing `appPath` property then the integrity of it will be verified and stored into\n * the cache.\n * @property {string[]} supportedExtensions List of supported application extensions (\n * including starting dots). This property is mandatory and must not be empty.\n */\n\n/**\n * Prepares an app to be used in an automated test. The app gets cached automatically\n * if it is an archive or if it is downloaded from an URL.\n * If the downloaded app has `.zip` extension, this method will unzip it.\n * The unzip does not work when `onPostProcess` is provided.\n *\n * @param {string} app Either a full path to the app or a remote URL\n * @param {string|string[]|ConfigureAppOptions} options\n * @returns The full path to the resulting application bundle\n */\nasync function configureApp(app, options = /** @type {ConfigureAppOptions} */ ({})) {\n if (!_.isString(app)) {\n // immediately shortcircuit if not given an app\n return;\n }\n\n let supportedAppExtensions;\n const onPostProcess =\n !_.isString(options) && !_.isArray(options) ? options.onPostProcess : undefined;\n\n if (_.isString(options)) {\n supportedAppExtensions = [options];\n } else if (_.isArray(options)) {\n supportedAppExtensions = options;\n } else if (_.isPlainObject(options)) {\n supportedAppExtensions = options.supportedExtensions;\n }\n if (_.isEmpty(supportedAppExtensions)) {\n throw new Error(`One or more supported app extensions must be provided`);\n }\n\n let newApp = app;\n let shouldUnzipApp = false;\n let packageHash = null;\n let headers = null;\n /** @type {RemoteAppProps} */\n const remoteAppProps = {\n lastModified: null,\n immutable: false,\n maxAge: null,\n };\n const {protocol, pathname} = url.parse(newApp);\n const isUrl = protocol === null ? false : ['http:', 'https:'].includes(protocol);\n\n const cachedAppInfo = APPLICATIONS_CACHE.get(app);\n\n return await APPLICATIONS_CACHE_GUARD.acquire(app, async () => {\n if (isUrl) {\n // Use the app from remote URL\n logger.info(`Using downloadable app '${newApp}'`);\n headers = await retrieveHeaders(newApp);\n if (!_.isEmpty(headers)) {\n if (headers['last-modified']) {\n remoteAppProps.lastModified = new Date(headers['last-modified']);\n }\n logger.debug(`Last-Modified: ${headers['last-modified']}`);\n if (headers['cache-control']) {\n remoteAppProps.immutable = /\\bimmutable\\b/i.test(headers['cache-control']);\n const maxAgeMatch = /\\bmax-age=(\\d+)\\b/i.exec(headers['cache-control']);\n if (maxAgeMatch) {\n remoteAppProps.maxAge = parseInt(maxAgeMatch[1], 10);\n }\n }\n logger.debug(`Cache-Control: ${headers['cache-control']}`);\n }\n const cachedPath = getCachedApplicationPath(app, remoteAppProps, cachedAppInfo);\n if (cachedPath) {\n if (await isAppIntegrityOk(cachedPath, cachedAppInfo?.integrity)) {\n logger.info(`Reusing previously downloaded application at '${cachedPath}'`);\n return verifyAppExtension(cachedPath, supportedAppExtensions);\n }\n logger.info(\n `The application at '${cachedPath}' does not exist anymore ` +\n `or its integrity has been damaged. Deleting it from the internal cache`\n );\n APPLICATIONS_CACHE.delete(app);\n }\n\n let fileName = null;\n const basename = fs.sanitizeName(path.basename(decodeURIComponent(pathname ?? '')), {\n replacement: SANITIZE_REPLACEMENT,\n });\n const extname = path.extname(basename);\n // to determine if we need to unzip the app, we have a number of places\n // to look: content type, content disposition, or the file extension\n if (ZIP_EXTS.includes(extname)) {\n fileName = basename;\n shouldUnzipApp = true;\n }\n if (headers['content-type']) {\n const ct = headers['content-type'];\n logger.debug(`Content-Type: ${ct}`);\n // the filetype may not be obvious for certain urls, so check the mime type too\n if (\n ZIP_MIME_TYPES.some((mimeType) =>\n new RegExp(`\\\\b${_.escapeRegExp(mimeType)}\\\\b`).test(ct)\n )\n ) {\n if (!fileName) {\n fileName = `${DEFAULT_BASENAME}.zip`;\n }\n shouldUnzipApp = true;\n }\n }\n if (headers['content-disposition'] && /^attachment/i.test(headers['content-disposition'])) {\n logger.debug(`Content-Disposition: ${headers['content-disposition']}`);\n const match = /filename=\"([^\"]+)/i.exec(headers['content-disposition']);\n if (match) {\n fileName = fs.sanitizeName(match[1], {\n replacement: SANITIZE_REPLACEMENT,\n });\n shouldUnzipApp = shouldUnzipApp || ZIP_EXTS.includes(path.extname(fileName));\n }\n }\n if (!fileName) {\n // assign the default file name and the extension if none has been detected\n const resultingName = basename\n ? basename.substring(0, basename.length - extname.length)\n : DEFAULT_BASENAME;\n let resultingExt = extname;\n if (!supportedAppExtensions.includes(resultingExt)) {\n logger.info(\n `The current file extension '${resultingExt}' is not supported. ` +\n `Defaulting to '${_.first(supportedAppExtensions)}'`\n );\n resultingExt = /** @type {string} */ (_.first(supportedAppExtensions));\n }\n fileName = `${resultingName}${resultingExt}`;\n }\n const targetPath = await tempDir.path({\n prefix: fileName,\n suffix: '',\n });\n newApp = await downloadApp(newApp, targetPath);\n } else if (await fs.exists(newApp)) {\n // Use the local app\n logger.info(`Using local app '${newApp}'`);\n shouldUnzipApp = ZIP_EXTS.includes(path.extname(newApp));\n } else {\n let errorMessage = `The application at '${newApp}' does not exist or is not accessible`;\n // protocol value for 'C:\\\\temp' is 'c:', so we check the length as well\n if (_.isString(protocol) && protocol.length > 2) {\n errorMessage =\n `The protocol '${protocol}' used in '${newApp}' is not supported. ` +\n `Only http: and https: protocols are supported`;\n }\n throw new Error(errorMessage);\n }\n\n const isPackageAFile = (await fs.stat(newApp)).isFile();\n if (isPackageAFile) {\n packageHash = await calculateFileIntegrity(newApp);\n }\n\n if (isPackageAFile && shouldUnzipApp && !_.isFunction(onPostProcess)) {\n const archivePath = newApp;\n if (packageHash === cachedAppInfo?.packageHash) {\n const {fullPath} = cachedAppInfo;\n if (await isAppIntegrityOk(fullPath, cachedAppInfo?.integrity)) {\n if (archivePath !== app) {\n await fs.rimraf(archivePath);\n }\n logger.info(`Will reuse previously cached application at '${fullPath}'`);\n return verifyAppExtension(fullPath, supportedAppExtensions);\n }\n logger.info(\n `The application at '${fullPath}' does not exist anymore ` +\n `or its integrity has been damaged. Deleting it from the cache`\n );\n APPLICATIONS_CACHE.delete(app);\n }\n const tmpRoot = await tempDir.openDir();\n try {\n newApp = await unzipApp(archivePath, tmpRoot, supportedAppExtensions);\n } finally {\n if (newApp !== archivePath && archivePath !== app) {\n await fs.rimraf(archivePath);\n }\n }\n logger.info(`Unzipped local app to '${newApp}'`);\n } else if (!path.isAbsolute(newApp)) {\n newApp = path.resolve(process.cwd(), newApp);\n logger.warn(\n `The current application path '${app}' is not absolute ` +\n `and has been rewritten to '${newApp}'. Consider using absolute paths rather than relative`\n );\n app = newApp;\n }\n\n const storeAppInCache = async (appPathToCache) => {\n const cachedFullPath = cachedAppInfo?.fullPath;\n if (cachedFullPath && cachedFullPath !== appPathToCache) {\n await fs.rimraf(cachedFullPath);\n }\n const integrity = {};\n if ((await fs.stat(appPathToCache)).isDirectory()) {\n integrity.folder = await calculateFolderIntegrity(appPathToCache);\n } else {\n integrity.file = await calculateFileIntegrity(appPathToCache);\n }\n APPLICATIONS_CACHE.set(app, {\n ...remoteAppProps,\n timestamp: Date.now(),\n packageHash,\n integrity,\n fullPath: appPathToCache,\n });\n return appPathToCache;\n };\n\n if (_.isFunction(onPostProcess)) {\n const result = await onPostProcess({\n cachedAppInfo: _.clone(cachedAppInfo),\n isUrl,\n headers: _.clone(headers),\n appPath: newApp,\n });\n return !result?.appPath || app === result?.appPath || !(await fs.exists(result?.appPath))\n ? newApp\n : await storeAppInCache(result.appPath);\n }\n\n verifyAppExtension(newApp, supportedAppExtensions);\n return app !== newApp && (packageHash || _.values(remoteAppProps).some(Boolean))\n ? await storeAppInCache(newApp)\n : newApp;\n });\n}\n\nasync function downloadApp(app, targetPath) {\n const {href} = url.parse(app);\n try {\n await net.downloadFile(href, targetPath, {\n timeout: APP_DOWNLOAD_TIMEOUT_MS,\n });\n } catch (err) {\n throw new Error(`Unable to download the app: ${err.message}`);\n }\n return targetPath;\n}\n\n/**\n * Extracts the bundle from an archive into the given folder\n *\n * @param {string} zipPath Full path to the archive containing the bundle\n * @param {string} dstRoot Full path to the folder where the extracted bundle\n * should be placed\n * @param {Array<string>|string} supportedAppExtensions The list of extensions\n * the target application bundle supports, for example ['.apk', '.apks'] for\n * Android packages\n * @returns {Promise<string>} Full path to the bundle in the destination folder\n * @throws {Error} If the given archive is invalid or no application bundles\n * have been found inside\n */\nasync function unzipApp(zipPath, dstRoot, supportedAppExtensions) {\n await zip.assertValidZip(zipPath);\n\n if (!_.isArray(supportedAppExtensions)) {\n supportedAppExtensions = [supportedAppExtensions];\n }\n\n const tmpRoot = await tempDir.openDir();\n try {\n logger.debug(`Unzipping '${zipPath}'`);\n const timer = new timing.Timer().start();\n const useSystemUnzipEnv = process.env.APPIUM_PREFER_SYSTEM_UNZIP;\n const useSystemUnzip =\n _.isEmpty(useSystemUnzipEnv) || !['0', 'false'].includes(_.toLower(useSystemUnzipEnv));\n /**\n * Attempt to use use the system `unzip` (e.g., `/usr/bin/unzip`) due\n * to the significant performance improvement it provides over the native\n * JS \"unzip\" implementation.\n * @type {import('@appium/support/lib/zip').ExtractAllOptions}\n */\n const extractionOpts = {useSystemUnzip};\n // https://github.com/appium/appium/issues/14100\n if (path.extname(zipPath) === IPA_EXT) {\n logger.debug(\n `Enforcing UTF-8 encoding on the extracted file names for '${path.basename(zipPath)}'`\n );\n extractionOpts.fileNamesEncoding = 'utf8';\n }\n await zip.extractAllTo(zipPath, tmpRoot, extractionOpts);\n const globPattern = `**/*.+(${supportedAppExtensions\n .map((ext) => ext.replace(/^\\./, ''))\n .join('|')})`;\n const sortedBundleItems = (\n await fs.glob(globPattern, {\n cwd: tmpRoot,\n strict: false,\n // Get the top level match\n })\n ).sort((a, b) => a.split(path.sep).length - b.split(path.sep).length);\n if (_.isEmpty(sortedBundleItems)) {\n logger.errorAndThrow(\n `App unzipped OK, but we could not find any '${supportedAppExtensions}' ` +\n util.pluralize('bundle', supportedAppExtensions.length, false) +\n ` in it. Make sure your archive contains at least one package having ` +\n `'${supportedAppExtensions}' ${util.pluralize(\n 'extension',\n supportedAppExtensions.length,\n false\n )}`\n );\n }\n logger.debug(\n `Extracted ${util.pluralize('bundle item', sortedBundleItems.length, true)} ` +\n `from '${zipPath}' in ${Math.round(\n timer.getDuration().asMilliSeconds\n )}ms: ${sortedBundleItems}`\n );\n const matchedBundle = /** @type {string} */ (_.first(sortedBundleItems));\n logger.info(`Assuming '${matchedBundle}' is the correct bundle`);\n const dstPath = path.resolve(dstRoot, path.basename(matchedBundle));\n await fs.mv(path.resolve(tmpRoot, matchedBundle), dstPath, {mkdirp: true});\n return dstPath;\n } finally {\n await fs.rimraf(tmpRoot);\n }\n}\n\nfunction isPackageOrBundle(app) {\n return /^([a-zA-Z0-9\\-_]+\\.[a-zA-Z0-9\\-_]+)+$/.test(app);\n}\n\n/**\n * Finds all instances 'firstKey' and create a duplicate with the key 'secondKey',\n * Do the same thing in reverse. If we find 'secondKey', create a duplicate with the key 'firstKey'.\n *\n * This will cause keys to be overwritten if the object contains 'firstKey' and 'secondKey'.\n\n * @param {*} input Any type of input\n * @param {String} firstKey The first key to duplicate\n * @param {String} secondKey The second key to duplicate\n */\nfunction duplicateKeys(input, firstKey, secondKey) {\n // If array provided, recursively call on all elements\n if (_.isArray(input)) {\n return input.map((item) => duplicateKeys(item, firstKey, secondKey));\n }\n\n // If object, create duplicates for keys and then recursively call on values\n if (_.isPlainObject(input)) {\n const resultObj = {};\n for (let [key, value] of _.toPairs(input)) {\n const recursivelyCalledValue = duplicateKeys(value, firstKey, secondKey);\n if (key === firstKey) {\n resultObj[secondKey] = recursivelyCalledValue;\n } else if (key === secondKey) {\n resultObj[firstKey] = recursivelyCalledValue;\n }\n resultObj[key] = recursivelyCalledValue;\n }\n return resultObj;\n }\n\n // Base case. Return primitives without doing anything.\n return input;\n}\n\n/**\n * Takes a desired capability and tries to JSON.parse it as an array,\n * and either returns the parsed array or a singleton array.\n *\n * @param {string|Array<String>} cap A desired capability\n */\nfunction parseCapsArray(cap) {\n if (_.isArray(cap)) {\n return cap;\n }\n\n let parsedCaps;\n try {\n parsedCaps = JSON.parse(cap);\n if (_.isArray(parsedCaps)) {\n return parsedCaps;\n }\n } catch (ign) {\n logger.warn(`Failed to parse capability as JSON array`);\n }\n if (_.isString(cap)) {\n return [cap];\n }\n throw new Error(`must provide a string or JSON Array; received ${cap}`);\n}\n\n/**\n * Generate a string that uniquely describes driver instance\n *\n * @param {import('@appium/types').Core} obj driver instance\n * @param {string?} sessionId session identifier (if exists)\n * @returns {string}\n */\nfunction generateDriverLogPrefix(obj, sessionId = null) {\n const instanceName = `${obj.constructor.name}@${node.getObjectId(obj).substring(0, 4)}`;\n return sessionId ? `${instanceName} (${sessionId.substring(0, 8)})` : instanceName;\n}\n\n/** @type {import('@appium/types').DriverHelpers} */\nexport default {\n configureApp,\n isPackageOrBundle,\n duplicateKeys,\n parseCapsArray,\n generateDriverLogPrefix,\n};\nexport {configureApp, isPackageOrBundle, duplicateKeys, parseCapsArray, generateDriverLogPrefix};\n\n/**\n * @typedef RemoteAppProps\n * @property {Date?} lastModified\n * @property {boolean} immutable\n * @property {number?} maxAge\n */\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../lib/basedriver/helpers.js"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/logger.js"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../lib/basedriver/logger.js"],"names":[],"mappings":";AAEA,mEAA2C"}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
require("source-map-support/register");
|
|
9
|
-
|
|
10
|
-
var _support = require("@appium/support");
|
|
11
|
-
|
|
12
|
-
const log = _support.logger.getLogger('BaseDriver');
|
|
13
|
-
|
|
14
|
-
var _default = log;
|
|
15
|
-
exports.default = _default;
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJsb2dnZXIiLCJnZXRMb2dnZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvYmFzZWRyaXZlci9sb2dnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtsb2dnZXJ9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5cbmNvbnN0IGxvZyA9IGxvZ2dlci5nZXRMb2dnZXIoJ0Jhc2VEcml2ZXInKTtcbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUEsTUFBTUEsR0FBRyxHQUFHQyxlQUFBLENBQU9DLFNBQVAsQ0FBaUIsWUFBakIsQ0FBWjs7ZUFDZUYsRyJ9
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const support_1 = require("@appium/support");
|
|
4
|
+
const log = support_1.logger.getLogger('BaseDriver');
|
|
5
|
+
exports.default = log;
|
|
6
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../lib/basedriver/logger.js"],"names":[],"mappings":";;AAAA,6CAAuC;AAEvC,MAAM,GAAG,GAAG,gBAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC3C,kBAAe,GAAG,CAAC"}
|
package/build/lib/constants.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_BASE_PATH = exports.PROTOCOLS = exports.W3C_ELEMENT_KEY = exports.MJSONWP_ELEMENT_KEY = exports.MAX_LOG_BODY_LENGTH = void 0;
|
|
4
|
+
const support_1 = require("@appium/support");
|
|
5
|
+
// The default maximum length of a single log record
|
|
6
|
+
// containing http request/response body
|
|
7
|
+
// This value could be globally customized using the --log-filters
|
|
8
|
+
// server feature. Example rule:
|
|
9
|
+
// {"pattern": "(.{1,150}).*", "flags": "s", "replacer": "$1"}
|
|
10
|
+
// ^ cuts all log records to maximum 150 chars
|
|
12
11
|
const MAX_LOG_BODY_LENGTH = 1024;
|
|
13
12
|
exports.MAX_LOG_BODY_LENGTH = MAX_LOG_BODY_LENGTH;
|
|
14
13
|
const MJSONWP_ELEMENT_KEY = 'ELEMENT';
|
|
15
14
|
exports.MJSONWP_ELEMENT_KEY = MJSONWP_ELEMENT_KEY;
|
|
16
|
-
const W3C_ELEMENT_KEY =
|
|
15
|
+
const W3C_ELEMENT_KEY = support_1.util.W3C_WEB_ELEMENT_IDENTIFIER;
|
|
17
16
|
exports.W3C_ELEMENT_KEY = W3C_ELEMENT_KEY;
|
|
18
17
|
const PROTOCOLS = {
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
W3C: 'W3C',
|
|
19
|
+
MJSONWP: 'MJSONWP',
|
|
21
20
|
};
|
|
22
21
|
exports.PROTOCOLS = PROTOCOLS;
|
|
22
|
+
// Before Appium 2.0, this default value was '/wd/hub' by historical reasons.
|
|
23
23
|
const DEFAULT_BASE_PATH = '';
|
|
24
24
|
exports.DEFAULT_BASE_PATH = DEFAULT_BASE_PATH;
|
|
25
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../lib/constants.js"],"names":[],"mappings":";;;AAAA,6CAAqC;AAErC,oDAAoD;AACpD,wCAAwC;AACxC,kEAAkE;AAClE,gCAAgC;AAChC,+DAA+D;AAC/D,8CAA8C;AAC9C,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAWzB,kDAAmB;AAV3B,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAUT,kDAAmB;AAThD,MAAM,eAAe,GAAG,cAAI,CAAC,0BAA0B,CAAC;AASN,0CAAe;AARjE,MAAM,SAAS,GAAG;IAChB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;CACnB,CAAC;AAKiE,8BAAS;AAH5E,6EAA6E;AAC7E,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAEiD,8CAAiB"}
|
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.produceCrash = produceCrash;
|
|
7
|
-
exports.produceError = produceError;
|
|
8
|
-
|
|
9
|
-
require("source-map-support/register");
|
|
10
|
-
|
|
11
|
-
var _protocol = require("../protocol");
|
|
12
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.produceCrash = exports.produceError = void 0;
|
|
4
|
+
const protocol_1 = require("../protocol");
|
|
13
5
|
function produceError() {
|
|
14
|
-
|
|
6
|
+
throw new protocol_1.errors.UnknownCommandError('Produced generic error for testing');
|
|
15
7
|
}
|
|
16
|
-
|
|
8
|
+
exports.produceError = produceError;
|
|
17
9
|
function produceCrash() {
|
|
18
|
-
|
|
10
|
+
throw new Error('We just tried to crash Appium!');
|
|
19
11
|
}
|
|
20
|
-
|
|
12
|
+
exports.produceCrash = produceCrash;
|
|
13
|
+
//# sourceMappingURL=crash.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crash.js","
|
|
1
|
+
{"version":3,"file":"crash.js","sourceRoot":"","sources":["../../../lib/express/crash.js"],"names":[],"mappings":";;;AAAA,0CAAmC;AAEnC,SAAS,YAAY;IACnB,MAAM,IAAI,iBAAM,CAAC,mBAAmB,CAAC,oCAAoC,CAAC,CAAC;AAC7E,CAAC;AAMO,oCAAY;AAJpB,SAAS,YAAY;IACnB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AAEqB,oCAAY"}
|
|
@@ -1,70 +1,60 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.startLogFormatter = exports.endLogFormatter = void 0;
|
|
7
|
-
|
|
8
|
-
require("source-map-support/register");
|
|
9
|
-
|
|
10
|
-
var _lodash = _interopRequireDefault(require("lodash"));
|
|
11
|
-
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
12
8
|
require("@colors/colors");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var _constants = require("../constants");
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
9
|
+
const morgan_1 = __importDefault(require("morgan"));
|
|
10
|
+
const logger_1 = __importDefault(require("./logger"));
|
|
11
|
+
const constants_1 = require("../constants");
|
|
12
|
+
// Copied the morgan compile function over so that cooler formats
|
|
13
|
+
// may be configured
|
|
22
14
|
function compile(fmt) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
15
|
+
// escape quotes
|
|
16
|
+
fmt = fmt.replace(/"/g, '\\"');
|
|
17
|
+
fmt = fmt.replace(/:([-\w]{2,})(?:\[([^\]]+)\])?/g, function replace(_, name, arg) {
|
|
18
|
+
return `"\n + (tokens["${name}"](req, res, "${arg}") || "-") + "`;
|
|
19
|
+
});
|
|
20
|
+
let js = ` return "${fmt}";`;
|
|
21
|
+
return new Function('tokens, req, res', js);
|
|
29
22
|
}
|
|
30
|
-
|
|
31
23
|
function requestEndLoggingFormat(tokens, req, res) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
24
|
+
let status = res.statusCode;
|
|
25
|
+
let statusStr = ':status';
|
|
26
|
+
if (status >= 500) {
|
|
27
|
+
statusStr = statusStr.red;
|
|
28
|
+
}
|
|
29
|
+
else if (status >= 400) {
|
|
30
|
+
statusStr = statusStr.yellow;
|
|
31
|
+
}
|
|
32
|
+
else if (status >= 300) {
|
|
33
|
+
statusStr = statusStr.cyan;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
statusStr = statusStr.green;
|
|
37
|
+
}
|
|
38
|
+
let fn = compile(`${'<-- :method :url '.white}${statusStr} ${':response-time ms - :res[content-length]'.grey}`);
|
|
39
|
+
return fn(tokens, req, res);
|
|
47
40
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
_logger.default.info(requestEndLoggingFormat(tokens, req, res), (res.jsonResp || '').grey);
|
|
41
|
+
const endLogFormatter = (0, morgan_1.default)((tokens, req, res) => {
|
|
42
|
+
logger_1.default.info(requestEndLoggingFormat(tokens, req, res), (res.jsonResp || '').grey);
|
|
51
43
|
});
|
|
52
44
|
exports.endLogFormatter = endLogFormatter;
|
|
53
45
|
const requestStartLoggingFormat = compile(`${'-->'.white} ${':method'.white} ${':url'.white}`);
|
|
54
|
-
const startLogFormatter = (0,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}, {
|
|
67
|
-
immediate: true
|
|
68
|
-
});
|
|
46
|
+
const startLogFormatter = (0, morgan_1.default)((tokens, req, res) => {
|
|
47
|
+
// morgan output is redirected straight to winston
|
|
48
|
+
let reqBody = '';
|
|
49
|
+
if (req.body) {
|
|
50
|
+
try {
|
|
51
|
+
reqBody = lodash_1.default.truncate(lodash_1.default.isString(req.body) ? req.body : JSON.stringify(req.body), {
|
|
52
|
+
length: constants_1.MAX_LOG_BODY_LENGTH,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
catch (ign) { }
|
|
56
|
+
}
|
|
57
|
+
logger_1.default.info(requestStartLoggingFormat(tokens, req, res), reqBody.grey);
|
|
58
|
+
}, { immediate: true });
|
|
69
59
|
exports.startLogFormatter = startLogFormatter;
|
|
70
|
-
//# sourceMappingURL=
|
|
60
|
+
//# sourceMappingURL=express-logging.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"express-logging.js","
|
|
1
|
+
{"version":3,"file":"express-logging.js","sourceRoot":"","sources":["../../../lib/express/express-logging.js"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AACvB,0BAAwB;AACxB,oDAA4B;AAC5B,sDAA2B;AAC3B,4CAAiD;AAEjD,iEAAiE;AACjE,oBAAoB;AACpB,SAAS,OAAO,CAAC,GAAG;IAClB,gBAAgB;IAChB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,gCAAgC,EAAE,SAAS,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG;QAC/E,OAAO,qBAAqB,IAAI,iBAAiB,GAAG,gBAAgB,CAAC;IACvE,CAAC,CAAC,CAAC;IACH,IAAI,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,QAAQ,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG;IAC/C,IAAI,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC;IAC5B,IAAI,SAAS,GAAG,SAAS,CAAC;IAC1B,IAAI,MAAM,IAAI,GAAG,EAAE;QACjB,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC;KAC3B;SAAM,IAAI,MAAM,IAAI,GAAG,EAAE;QACxB,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;KAC9B;SAAM,IAAI,MAAM,IAAI,GAAG,EAAE;QACxB,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;KAC5B;SAAM;QACL,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;KAC7B;IACD,IAAI,EAAE,GAAG,OAAO,CACd,GAAG,mBAAmB,CAAC,KAAK,GAAG,SAAS,IAAI,0CAA0C,CAAC,IAAI,EAAE,CAC9F,CAAC;IACF,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,eAAe,GAAG,IAAA,gBAAM,EAAC,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAClD,gBAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC;AAoBK,0CAAe;AAlBvB,MAAM,yBAAyB,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAE/F,MAAM,iBAAiB,GAAG,IAAA,gBAAM,EAC9B,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACnB,kDAAkD;IAClD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,GAAG,CAAC,IAAI,EAAE;QACZ,IAAI;YACF,OAAO,GAAG,gBAAC,CAAC,QAAQ,CAAC,gBAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC/E,MAAM,EAAE,+BAAmB;aAC5B,CAAC,CAAC;SACJ;QAAC,OAAO,GAAG,EAAE,GAAE;KACjB;IACD,gBAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC,EACD,EAAC,SAAS,EAAE,IAAI,EAAC,CAClB,CAAC;AAEuB,8CAAiB"}
|