@bryce3310687963/android-toolkit 0.0.0-stage → 1.0.51

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.
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/constants.js", "../src/errors.js", "../src/logger.js", "../entrys/browser.js"],
4
+ "sourcesContent": ["export const Code = Object.freeze({\n Success: 0,\n EmptySuccess: 1,\n UnknownError: -1,\n NotLogin: 30000001,\n Timeout: 30000003,\n InitialTimeout: 30000004,\n OverallTimeout: 30000005,\n AccountFreeze: 30000006,\n InvalidRequest: 30010001,\n AdbUnavailable: 30010002,\n ContentUnavailable: 30010003,\n SourceExtractionFailed: 30010004,\n AutomationFailed: 30010005,\n AppRuntimeUnavailable: 30010008,\n AppNotInstalled: 30010009,\n});\n\nexport const Status = Object.freeze({\n Success: 'SUCCESS',\n Failed: 'FAILED',\n});\n\nexport const StoragePath = Object.freeze({\n Input: '/apify_storage/input.json',\n Output: '/apify_storage/output.json',\n});\n\nexport const UnicodeIme = Object.freeze({\n packageName: 'io.appium.settings',\n component: 'io.appium.settings/.UnicodeIME',\n inputAction: 'ADB_INPUT_TEXT',\n});\n\nexport const AppiumSettings = Object.freeze({\n packageName: 'io.appium.settings',\n clipboardReceiver: 'io.appium.settings/.receivers.ClipboardReceiver',\n clipboardGetAction: 'io.appium.settings.clipboard.get',\n});\n\nexport const WebViewBridge = Object.freeze({\n packageName: 'com.heartbit.apify.android.bridge',\n actionCommand: 'com.heartbit.apify.android.bridge.COMMAND',\n cacheDir: 'apify-webview-bridge',\n hookConfigFile: 'hook.json',\n commandDir: 'commands',\n resultDir: 'results',\n});\n\nexport const ActorKey = Object.freeze({\n DoubaoAndroid: 'doubao.android',\n ErineAndroid: 'erine.android',\n WechatAndroid: 'wechat.android',\n QwenAndroid: 'qwen.android',\n YuanbaoAndroid: 'yuanbao.android',\n XhsAndroid: 'xhs.android',\n});\n\nconst normalizeShare = (share) => {\n const source = share && typeof share === 'object' ? share : {};\n return {\n mode: 'clipboard',\n prefix: String(source.prefix || '').trim(),\n xurl: Array.isArray(source.xurl) ? source.xurl : [],\n };\n};\n\nconst createActorInfo = (info) => {\n const key = String(info.key || '').trim();\n return Object.freeze({\n key,\n name: String(info.name || key),\n icon: String(info.icon || `https://static.heartbitai.com/general/actors/${key}.png`),\n webviews: Object.freeze(Array.isArray(info.webviews) ? info.webviews : []),\n share: Object.freeze(normalizeShare(info.share)),\n });\n};\n\nexport const ActorInfo = Object.freeze({\n [ActorKey.DoubaoAndroid]: createActorInfo({\n key: ActorKey.DoubaoAndroid,\n name: '\u8C46\u5305 Android',\n webviews: [{\n name: [\n 'android.webkit.WebView',\n 'com.baidu.webkit.sdk.WebView',\n 'com.tencent.smtt.sdk.WebView',\n 'com.tencent.xweb.WebView',\n 'com.tencent.xweb.pinus.PSWebview',\n ],\n value: ['www.doubao.com'],\n }],\n share: {\n prefix: 'https://www.doubao.com/thread/',\n xurl: [],\n },\n }),\n [ActorKey.ErineAndroid]: createActorInfo({\n key: ActorKey.ErineAndroid,\n name: '\u6587\u5C0F\u8A00 Android',\n webviews: [{\n name: [\n 'android.webkit.WebView',\n 'com.baidu.webkit.sdk.WebView',\n 'com.tencent.smtt.sdk.WebView',\n 'com.tencent.xweb.WebView',\n 'com.tencent.xweb.pinus.PSWebview',\n ],\n value: ['yiyanapp.baidu.com'],\n }],\n share: {\n prefix: 'https://mr.baidu.com/r/',\n xurl: [],\n },\n }),\n [ActorKey.WechatAndroid]: createActorInfo({\n key: ActorKey.WechatAndroid,\n name: '\u5FAE\u4FE1 Android',\n webviews: [{\n name: [\n 'android.webkit.WebView',\n 'com.baidu.webkit.sdk.WebView',\n 'com.tencent.smtt.sdk.WebView',\n 'com.tencent.xweb.WebView',\n 'com.tencent.xweb.pinus.PSWebview',\n ],\n value: ['websearch/template'],\n }],\n share: {\n prefix: '',\n xurl: [],\n },\n }),\n [ActorKey.QwenAndroid]: createActorInfo({\n key: ActorKey.QwenAndroid,\n name: '\u5343\u95EE Android',\n webviews: [{\n name: [\n 'android.webkit.WebView',\n 'com.baidu.webkit.sdk.WebView',\n 'com.tencent.smtt.sdk.WebView',\n 'com.tencent.xweb.WebView',\n 'com.tencent.xweb.pinus.PSWebview',\n ],\n value: ['www.qianwen.com', 'chat2.qianwen.com'],\n }],\n share: {\n prefix: '',\n xurl: [],\n },\n }),\n [ActorKey.XhsAndroid]: createActorInfo({\n key: ActorKey.XhsAndroid,\n name: '\u5C0F\u7EA2\u4E66 Android',\n webviews: [{\n name: [\n 'android.webkit.WebView',\n 'com.baidu.webkit.sdk.WebView',\n 'com.tencent.smtt.sdk.WebView',\n 'com.tencent.xweb.WebView',\n 'com.tencent.xweb.pinus.PSWebview',\n ],\n value: ['xiaohongshu.com', 'xhslink.com'],\n }],\n share: {\n prefix: '',\n xurl: [],\n },\n }),\n [ActorKey.YuanbaoAndroid]: createActorInfo({\n key: ActorKey.YuanbaoAndroid,\n name: '\u5143\u5B9D Android',\n webviews: [{\n name: [\n 'android.webkit.WebView',\n 'com.baidu.webkit.sdk.WebView',\n 'com.tencent.smtt.sdk.WebView',\n 'com.tencent.xweb.WebView',\n 'com.tencent.xweb.pinus.PSWebview',\n ],\n value: ['yuanbao.tencent.com', 'hunyuan.tencent.com', 'yb.tencent.com'],\n }],\n share: {\n prefix: 'https://yb.tencent.com/s/',\n xurl: [],\n },\n }),\n});\n", "import { Code } from './constants.js';\n\nexport class CrawlerError extends Error {\n constructor(input = {}, options = {}) {\n const payload = typeof input === 'string' ? { message: input } : input;\n super(payload.message || 'Android crawler error', options);\n this.name = 'CrawlerError';\n this.code = payload.code || Code.UnknownError;\n this.context = payload.context || {};\n }\n\n static isCrawlerError(error) {\n return error instanceof CrawlerError || error?.name === 'CrawlerError';\n }\n\n static from(error, fallback = {}) {\n if (CrawlerError.isCrawlerError(error)) return error;\n return new CrawlerError({\n message: error?.message || String(error),\n code: fallback.code || Code.UnknownError,\n context: fallback.context || {},\n });\n }\n}\n\nexport function serializeError(error) {\n if (!error) return { message: '' };\n return {\n name: error.name || 'Error',\n message: error.message || String(error),\n stack: error.stack || '',\n code: error.code || '',\n context: error.context || undefined,\n };\n}\n", "const defaultLogger = {\n info: (...args) => console.error(...args),\n warning: (...args) => console.error(...args),\n warn: (...args) => console.error(...args),\n error: (...args) => console.error(...args),\n debug: (...args) => console.error(...args),\n};\n\nlet activeLogger = defaultLogger;\n\nconst ANSI = {\n reset: '\\x1b[0m',\n gray: '\\x1b[90m',\n red: '\\x1b[31m',\n green: '\\x1b[32m',\n yellow: '\\x1b[33m',\n blue: '\\x1b[34m',\n cyan: '\\x1b[36m',\n};\n\nconst STEP_PREFIX = '\u6B65\u9AA4:';\nconst STEP_SEPARATOR = ' | ';\nconst LOG_TAG_PREFIX = '[#log:';\nconst LOG_TAG_SUFFIX = ']';\n\nconst STEP_ICONS = [\n { match: '\u4EFB\u52A1', icon: '\uD83E\uDDED' },\n { match: 'Launch', icon: '\uD83D\uDE80' },\n { match: 'Step', icon: '\uD83E\uDDF1' },\n { match: '\u8F93\u5165\u6CD5', icon: '\u2328\uFE0F' },\n { match: 'ADB', icon: '\uD83D\uDD0C' },\n { match: 'Mutation', icon: '\uD83D\uDCE1' },\n { match: 'WebView', icon: '\uD83C\uDF10' },\n { match: '\u622A\u56FE', icon: '\uD83D\uDDBC\uFE0F' },\n { match: '\u5206\u4EAB', icon: '\uD83D\uDD17' },\n { match: '\u6570\u636E', icon: '\uD83D\uDCE6' },\n];\n\nconst STATUS_ICONS = [\n { match: '\u5F00\u59CB', icon: '\uD83D\uDE80' },\n { match: '\u5B8C\u6210', icon: '\u2705' },\n { match: '\u6210\u529F', icon: '\u2705' },\n { match: '\u5931\u8D25', icon: '\u274C' },\n { match: '\u8DF3\u8FC7', icon: '\u23ED\uFE0F' },\n { match: '\u91CD\u8BD5', icon: '\uD83D\uDD01' },\n { match: '\u7A33\u5B9A', icon: '\uD83D\uDFE2' },\n];\n\nconst ATTENTION_RANK = {\n low: 1,\n medium: 2,\n high: 3,\n critical: 4,\n};\n\nconst DEFAULT_ATTENTION_RANK = ATTENTION_RANK.high;\n\nconst toErrorMessage = (error) => {\n if (!error) return '';\n if (error instanceof Error) return error.message;\n if (typeof error === 'string') return error;\n try {\n return JSON.stringify(error);\n } catch {\n return String(error);\n }\n};\n\nconst detailToParts = (detail) => {\n if (detail == null || detail === '') return [];\n if (detail instanceof Error) return [`err=${detail.message}`];\n if (typeof detail === 'string') return [detail];\n if (Array.isArray(detail)) return detail.flatMap(detailToParts).filter(Boolean);\n if (typeof detail === 'object') {\n return Object.entries(detail)\n .filter(([, value]) => value !== undefined && value !== null && value !== '')\n .map(([key, value]) => `${key}=${typeof value === 'object' ? safeJson(value) : String(value)}`);\n }\n return [String(detail)];\n};\n\nconst LOG_DEFINITIONS = [\n {\n key: 'task_start',\n method: 'taskStart',\n label: '\u4EFB\u52A1\u5F00\u59CB',\n group: '\u4EFB\u52A1',\n step: '\u4EFB\u52A1',\n status: '\u5F00\u59CB',\n level: 'start',\n attention: 'low',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'task_success',\n method: 'taskSuccess',\n label: '\u4EFB\u52A1\u5B8C\u6210',\n group: '\u4EFB\u52A1',\n step: '\u4EFB\u52A1',\n status: '\u5B8C\u6210',\n level: 'success',\n attention: 'high',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'task_fail',\n method: 'taskFail',\n label: '\u4EFB\u52A1\u5931\u8D25',\n group: '\u4EFB\u52A1',\n step: '\u4EFB\u52A1',\n status: '\u5931\u8D25',\n level: 'error',\n attention: 'critical',\n buildDetails: (detail, error) => [...detailToParts(detail), error ? `err=${toErrorMessage(error)}` : ''],\n },\n {\n key: 'launch_start',\n method: 'launchStart',\n label: 'Launch \u5F00\u59CB',\n group: 'Launch',\n step: 'Launch.run',\n status: '\u5F00\u59CB',\n level: 'start',\n attention: 'low',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'launch_success',\n method: 'launchSuccess',\n label: 'Launch \u5B8C\u6210',\n group: 'Launch',\n step: 'Launch.run',\n status: '\u5B8C\u6210',\n level: 'success',\n attention: 'high',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'launch_fail',\n method: 'launchFail',\n label: 'Launch \u5931\u8D25',\n group: 'Launch',\n step: 'Launch.run',\n status: '\u5931\u8D25',\n level: 'error',\n attention: 'critical',\n buildDetails: (detail, error) => [...detailToParts(detail), error ? `err=${toErrorMessage(error)}` : ''],\n },\n {\n key: 'input_method_snapshot_fail',\n method: 'inputMethodSnapshotFail',\n label: '\u8F93\u5165\u6CD5\u5FEB\u7167\u5931\u8D25',\n group: '\u8F93\u5165\u6CD5',\n step: '\u8F93\u5165\u6CD5\u5FEB\u7167',\n status: '\u5931\u8D25',\n level: 'warning',\n attention: 'medium',\n buildDetails: (error) => [error ? `err=${toErrorMessage(error)}` : ''],\n },\n {\n key: 'input_method_restore_fail',\n method: 'inputMethodRestoreFail',\n label: '\u8F93\u5165\u6CD5\u6062\u590D\u5931\u8D25',\n group: '\u8F93\u5165\u6CD5',\n step: '\u8F93\u5165\u6CD5\u6062\u590D',\n status: '\u5931\u8D25',\n level: 'warning',\n attention: 'medium',\n buildDetails: (error) => [error ? `err=${toErrorMessage(error)}` : ''],\n },\n {\n key: 'step_start',\n method: 'stepStart',\n label: '\u6B65\u9AA4\u5F00\u59CB',\n group: 'Step',\n step: 'Step',\n status: '\u5F00\u59CB',\n level: 'start',\n attention: 'low',\n buildDetails: (step, detail) => [step ? `name=${step}` : '', ...detailToParts(detail)],\n },\n {\n key: 'step_success',\n method: 'stepSuccess',\n label: '\u6B65\u9AA4\u5B8C\u6210',\n group: 'Step',\n step: 'Step',\n status: '\u5B8C\u6210',\n level: 'success',\n attention: 'high',\n buildDetails: (step, detail) => [step ? `name=${step}` : '', ...detailToParts(detail)],\n },\n {\n key: 'step_fail',\n method: 'stepFail',\n label: '\u6B65\u9AA4\u5931\u8D25',\n group: 'Step',\n step: 'Step',\n status: '\u5931\u8D25',\n level: 'error',\n attention: 'critical',\n buildDetails: (step, error) => [step ? `name=${step}` : '', error ? `err=${toErrorMessage(error)}` : ''],\n },\n {\n key: 'step_retry',\n method: 'stepRetry',\n label: '\u6B65\u9AA4\u91CD\u8BD5',\n group: 'Step',\n step: 'Step',\n status: '\u91CD\u8BD5',\n level: 'warning',\n attention: 'medium',\n buildDetails: (step, attempt) => [step ? `name=${step}` : '', attempt !== undefined ? `attempt=${attempt}` : ''],\n },\n {\n key: 'adb_exec',\n method: 'adbExec',\n label: 'ADB \u6267\u884C',\n group: 'ADB',\n step: 'ADB',\n status: '\u5B8C\u6210',\n level: 'debug',\n attention: 'low',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'adb_retry',\n method: 'adbRetry',\n label: 'ADB \u91CD\u8BD5',\n group: 'ADB',\n step: 'ADB',\n status: '\u91CD\u8BD5',\n level: 'warning',\n attention: 'medium',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'mutation_wait_start',\n method: 'mutationWaitStart',\n label: 'Mutation \u7B49\u5F85\u5F00\u59CB',\n group: 'Mutation',\n step: 'Mutation',\n status: '\u5F00\u59CB',\n level: 'start',\n attention: 'low',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'mutation_wait_success',\n method: 'mutationWaitSuccess',\n label: 'Mutation \u7A33\u5B9A',\n group: 'Mutation',\n step: 'Mutation',\n status: '\u7A33\u5B9A',\n level: 'success',\n attention: 'medium',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'mutation_wait_warn',\n method: 'mutationWaitWarn',\n label: 'Mutation \u7B49\u5F85\u544A\u8B66',\n group: 'Mutation',\n step: 'Mutation',\n status: '\u8DF3\u8FC7',\n level: 'warning',\n attention: 'medium',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'webview_command',\n method: 'webViewCommand',\n label: 'WebView \u547D\u4EE4',\n group: 'WebView',\n step: 'WebView',\n status: '\u5F00\u59CB',\n level: 'start',\n attention: 'low',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'webview_success',\n method: 'webViewSuccess',\n label: 'WebView \u5B8C\u6210',\n group: 'WebView',\n step: 'WebView',\n status: '\u5B8C\u6210',\n level: 'success',\n attention: 'medium',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'webview_warn',\n method: 'webViewWarn',\n label: 'WebView \u544A\u8B66',\n group: 'WebView',\n step: 'WebView',\n status: '\u8DF3\u8FC7',\n level: 'warning',\n attention: 'medium',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'webview_fail',\n method: 'webViewFail',\n label: 'WebView \u5931\u8D25',\n group: 'WebView',\n step: 'WebView',\n status: '\u5931\u8D25',\n level: 'error',\n attention: 'high',\n buildDetails: (error) => [error ? `err=${toErrorMessage(error)}` : ''],\n },\n {\n key: 'screenshot_start',\n method: 'screenshotStart',\n label: '\u622A\u56FE\u5F00\u59CB',\n group: '\u622A\u56FE',\n step: '\u622A\u56FE',\n status: '\u5F00\u59CB',\n level: 'start',\n attention: 'low',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'screenshot_success',\n method: 'screenshotDone',\n label: '\u622A\u56FE\u6210\u529F',\n group: '\u622A\u56FE',\n step: '\u622A\u56FE',\n status: '\u6210\u529F',\n level: 'success',\n attention: 'high',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'share_start',\n method: 'shareStart',\n label: '\u5206\u4EAB\u5F00\u59CB',\n group: '\u5206\u4EAB',\n step: '\u5206\u4EAB',\n status: '\u5F00\u59CB',\n level: 'start',\n attention: 'low',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'share_success',\n method: 'shareSuccess',\n label: '\u5206\u4EAB\u6210\u529F',\n group: '\u5206\u4EAB',\n step: '\u5206\u4EAB',\n status: '\u6210\u529F',\n level: 'success',\n attention: 'high',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'share_fail',\n method: 'shareFail',\n label: '\u5206\u4EAB\u5931\u8D25',\n group: '\u5206\u4EAB',\n step: '\u5206\u4EAB',\n status: '\u5931\u8D25',\n level: 'warning',\n attention: 'high',\n buildDetails: (error) => [error ? `err=${toErrorMessage(error)}` : ''],\n },\n {\n key: 'data_push_success',\n method: 'dataPush',\n label: '\u6570\u636E\u63A8\u9001\u6210\u529F',\n group: '\u6570\u636E',\n step: '\u6570\u636E\u63A8\u9001',\n status: '\u6210\u529F',\n level: 'success',\n attention: 'high',\n buildDetails: (detail) => detailToParts(detail),\n },\n {\n key: 'data_push_fail',\n method: 'dataPushFail',\n label: '\u6570\u636E\u63A8\u9001\u5931\u8D25',\n group: '\u6570\u636E',\n step: '\u6570\u636E\u63A8\u9001',\n status: '\u5931\u8D25',\n level: 'error',\n attention: 'high',\n buildDetails: (error) => [error ? `err=${toErrorMessage(error)}` : ''],\n },\n];\n\nconst buildLogTag = (key) => `${LOG_TAG_PREFIX}${key}${LOG_TAG_SUFFIX}`;\nconst escapeRegExp = (value) => String(value).replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\nconst buildStepPattern = (step, status) => {\n if (!step) return null;\n let pattern = `${STEP_PREFIX} .*${escapeRegExp(step)}`;\n if (status) pattern += `.*${escapeRegExp(status)}`;\n return new RegExp(pattern);\n};\n\nexport const LOG_TEMPLATES = Object.freeze(LOG_DEFINITIONS.map((definition) => {\n const attention = definition.attention || 'medium';\n const attentionRank = ATTENTION_RANK[attention] || ATTENTION_RANK.medium;\n const patterns = [new RegExp(`\\\\[#log:${escapeRegExp(definition.key)}\\\\]`)];\n const fallback = buildStepPattern(definition.step, definition.status);\n if (fallback) patterns.push(fallback);\n return {\n key: definition.key,\n label: definition.label,\n group: definition.group,\n attention,\n patterns,\n defaultSelected: attentionRank >= DEFAULT_ATTENTION_RANK,\n };\n}));\n\nexport const Logger = {\n setLogger(logger) {\n activeLogger = logger || defaultLogger;\n },\n createLogger(scope) {\n const prefix = scope ? String(scope) : '';\n return {\n start: (message, detail) => createBaseLogger(prefix).start(formatMessage(message, detail)),\n success: (message, detail) => createBaseLogger(prefix).success(formatMessage(message, detail)),\n fail: (message, error) => createBaseLogger(prefix).error(formatMessage(message, error?.message || error)),\n warn: (message, detail) => createBaseLogger(prefix).warning(formatMessage(message, detail)),\n warning: (message, detail) => createBaseLogger(prefix).warning(formatMessage(message, detail)),\n info: (message, detail) => createBaseLogger(prefix).info(formatMessage(message, detail)),\n debug: (message, detail) => createBaseLogger(prefix).debug(formatMessage(message, detail)),\n useTemplate: () => createTemplateLogger(createBaseLogger(prefix)),\n };\n },\n useTemplate(logger) {\n if (logger) return createTemplateLogger(createBaseLogger('', logger));\n return createTemplateLogger(createBaseLogger(''));\n },\n start(message, detail = '') {\n createBaseLogger('').start(formatMessage(message, detail));\n },\n success(message, detail = '') {\n createBaseLogger('').success(formatMessage(message, detail));\n },\n fail(message, error = '') {\n createBaseLogger('').error(formatMessage(message, error?.message || error));\n },\n warn(message, detail = '') {\n createBaseLogger('').warning(formatMessage(message, detail));\n },\n warning(message, detail = '') {\n Logger.warn(message, detail);\n },\n error(message, detail = '') {\n createBaseLogger('').error(formatMessage(message, detail));\n },\n info(message, detail = '') {\n createBaseLogger('').info(formatMessage(message, detail));\n },\n debug(message, detail = '') {\n createBaseLogger('').debug(formatMessage(message, detail));\n },\n duration(startedAt) {\n return `${((Date.now() - startedAt) / 1000).toFixed(2)}s`;\n },\n};\n\nexport function stripAnsi(value) {\n return String(value || '').replace(/\\u001b\\[[0-9;]*m/g, '');\n}\n\nexport function sleep(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction createBaseLogger(prefix = '', explicitLogger = null) {\n const name = prefix ? String(prefix) : '';\n const dispatch = (methodName, icon, message, color) => {\n const timestamp = colorize(`[${formatTimestamp()}]`, ANSI.gray);\n const line = formatLine(name, icon, message);\n const coloredLine = colorize(line, color);\n const writer = resolveLogMethod(resolveLogger(explicitLogger), methodName);\n writer(`${timestamp} ${coloredLine}`.trim());\n };\n\n return {\n info: (message) => dispatch('info', '\uD83D\uDCD6', message, ANSI.cyan),\n success: (message) => dispatch('info', '\u2705', message, ANSI.green),\n warning: (message) => dispatch('warning', '\u26A0\uFE0F', message, ANSI.yellow),\n warn: (message) => dispatch('warning', '\u26A0\uFE0F', message, ANSI.yellow),\n error: (message) => dispatch('error', '\u274C', message, ANSI.red),\n debug: (message) => dispatch('debug', '\uD83D\uDD39', message, ANSI.gray),\n start: (message) => dispatch('info', '\uD83D\uDD37', message, ANSI.blue),\n };\n}\n\nfunction createTemplateLogger(baseLogger) {\n const handlers = {\n info: (line) => baseLogger.info(line),\n success: (line) => baseLogger.success(line),\n warning: (line) => baseLogger.warning(line),\n warn: (line) => baseLogger.warning(line),\n error: (line) => baseLogger.error(line),\n debug: (line) => baseLogger.debug(line),\n start: (line) => baseLogger.start(line),\n };\n\n const emitDefinition = (definition, details = []) => {\n const handler = handlers[definition.level] || handlers.info;\n handler(buildStepLine(definition.step, definition.status, [...details, buildLogTag(definition.key)]));\n };\n\n const definitionMethods = {};\n for (const definition of LOG_DEFINITIONS) {\n if (!definition.method) continue;\n definitionMethods[definition.method] = (...args) => {\n const details = definition.buildDetails ? definition.buildDetails(...args) : [];\n emitDefinition(definition, details.filter(Boolean));\n };\n }\n\n return {\n step: (step, status, details, level = 'info') => {\n const handler = handlers[level] || handlers.info;\n handler(buildStepLine(step, status, detailToParts(details)));\n },\n info: (message, detail) => baseLogger.info(formatMessage(message, detail)),\n success: (message, detail) => baseLogger.success(formatMessage(message, detail)),\n warning: (message, detail) => baseLogger.warning(formatMessage(message, detail)),\n warn: (message, detail) => baseLogger.warning(formatMessage(message, detail)),\n error: (message, detail) => baseLogger.error(formatMessage(message, detail)),\n debug: (message, detail) => baseLogger.debug(formatMessage(message, detail)),\n start: (message, detail) => baseLogger.start(formatMessage(message, detail)),\n ...definitionMethods,\n };\n}\n\nfunction buildStepLine(step, status, details = []) {\n const parts = [];\n const decoratedStep = step ? decorateLabel(step, STEP_ICONS) : '';\n parts.push(decoratedStep ? `${STEP_PREFIX} ${decoratedStep}` : STEP_PREFIX);\n if (status) parts.push(decorateLabel(status, STATUS_ICONS));\n const detailParts = details.flatMap(detailToParts).filter(Boolean);\n parts.push(...detailParts);\n return parts.join(STEP_SEPARATOR);\n}\n\nfunction decorateLabel(label, mappings) {\n if (!label) return '';\n const mapping = mappings.find((item) => String(label).includes(item.match));\n if (!mapping) return label;\n return `${mapping.icon} ${label}`;\n}\n\nfunction resolveLogger(explicitLogger) {\n if (explicitLogger && typeof explicitLogger.info === 'function') return explicitLogger;\n return activeLogger || defaultLogger;\n}\n\nfunction resolveLogMethod(logger, name) {\n if (logger && typeof logger[name] === 'function') return logger[name].bind(logger);\n if (name === 'warning' && logger && typeof logger.warn === 'function') return logger.warn.bind(logger);\n return defaultLogger[name] || defaultLogger.info;\n}\n\nfunction formatLine(prefix, icon, message) {\n const parts = [];\n if (prefix) parts.push(`[${prefix}]`);\n if (icon) parts.push(icon);\n if (message) parts.push(message);\n return parts.join(' ').trim();\n}\n\nfunction formatMessage(message, detail = '') {\n const detailText = formatDetail(detail);\n return detailText ? `${message} ${detailText}` : String(message || '');\n}\n\nfunction formatTimestamp(date = new Date()) {\n const pad = (value, size = 2) => String(value).padStart(size, '0');\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}.${pad(date.getMilliseconds(), 3)}`;\n}\n\nfunction formatDetail(detail) {\n return detailToParts(detail).join(' ');\n}\n\nfunction colorize(text, color) {\n if (!text || !color) return text;\n return `${color}${text}${ANSI.reset}`;\n}\n\nfunction safeJson(value) {\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}\n", "import * as Constants from '../src/constants.js';\nimport * as Errors from '../src/errors.js';\nimport { Logger, LOG_TEMPLATES, stripAnsi } from '../src/logger.js';\n\nconst ToolkitMode = Object.freeze({\n default: 'default',\n});\n\nexport const useAndroidToolKit = () => {\n return {\n Constants,\n Errors,\n Logger,\n LOG_TEMPLATES,\n $Internals: { LOG_TEMPLATES, stripAnsi },\n };\n};\n\nuseAndroidToolKit.Mode = ToolkitMode;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }