@cloudcare/cocos-sdk 0.1.1-alpha.3 → 0.1.1-alpha.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"auto-tracking.js","sourceRoot":"","sources":["../../../../../src/core/auto-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { FTLogger, FTRUM, FTTrace } from './modules.js';\nimport type { FTAutoTrackingController, FTAutoTrackingScope } from './client.js';\nimport type { FTAutoTrackingConfig, FTAttributes } from './types.js';\nimport type { FTJsbErrorGlobal } from '../native/jsb-errors.js';\nimport { FTObservationQueue, observationState } from './observation.js';\n\nexport interface FTEngineTrackingHooks {\n onSceneChanged(callback: (name: string) => void, includeCurrent?: boolean): () => void;\n onAction(callback: (name: string, attributes?: FTAttributes) => void): () => void;\n}\n\ninterface FTGlobalWithFetch extends FTJsbErrorGlobal {\n fetch?: typeof fetch;\n XMLHttpRequest?: typeof XMLHttpRequest;\n console?: Console;\n addEventListener?: typeof globalThis.addEventListener;\n removeEventListener?: typeof globalThis.removeEventListener;\n}\n\nexport class FTDefaultAutoTracking implements FTAutoTrackingController {\n private stops: Array<() => void> = [];\n private networkStops: Array<() => void> = [];\n private activeView: string | undefined;\n private readonly observations: FTObservationQueue;\n\n constructor(\n private readonly rum: FTRUM,\n private readonly logger: FTLogger,\n private readonly trace: FTTrace,\n private readonly hooks: FTEngineTrackingHooks,\n private readonly target: FTGlobalWithFetch = globalThis,\n ) {\n this.observations = new FTObservationQueue(target);\n }\n\n start(config: FTAutoTrackingConfig, viewName?: string, scope: FTAutoTrackingScope = 'all'): void {\n this.stop(scope);\n try {\n if (scope !== 'network') {\n if (viewName) this.switchView(viewName);\n if (config.scenes) this.installSceneTracking(viewName === undefined);\n if (config.actions) this.installActionTracking();\n if (config.errors) this.installErrorTracking();\n if (config.console) this.installConsoleTracking();\n }\n if (scope !== 'page' && config.network) {\n this.installFetchTracking();\n this.installXhrTracking();\n }\n } catch (error) {\n try { this.stop(scope); } catch { /* Preserve the installation error. */ }\n throw error;\n }\n }\n\n stop(scope: FTAutoTrackingScope = 'all'): void {\n let failure: unknown;\n const cleanup = (stop: () => void): void => {\n try { stop(); } catch (error) { if (failure === undefined) failure = error; }\n };\n if (scope !== 'page') this.networkStops.splice(0).reverse().forEach(cleanup);\n if (scope !== 'network') {\n this.observations.stop();\n this.stops.splice(0).reverse().forEach(cleanup);\n if (this.activeView) {\n cleanup(() => this.rum.stopView());\n this.activeView = undefined;\n }\n }\n if (failure !== undefined) throw failure;\n }\n\n private installSceneTracking(includeCurrent: boolean): void {\n this.stops.push(\n this.hooks.onSceneChanged((name) => {\n this.switchView(name);\n }, includeCurrent),\n );\n }\n\n private switchView(name: string): void {\n if (this.activeView) this.rum.stopView();\n this.activeView = name;\n this.rum.startView(name);\n }\n\n private installActionTracking(): void {\n this.stops.push(\n this.hooks.onAction((name, attributes) => this.rum.startAction(name, 'click', attributes)),\n );\n }\n\n private installErrorTracking(): void {\n const nativeErrors = this.target.__FT_COCOS_JSB_ERRORS__;\n if (nativeErrors?.protocol === 2) {\n this.stops.push(nativeErrors.subscribe((location, message, stack) => {\n // Creator 2 also reports promise bookkeeping notifications through onError.\n if (message === 'handlerAddedAfterPromiseRejected' || message === 'rejectAfterPromiseResolved'\n || message === 'resolveAfterPromiseResolved') return;\n const rejection = message === 'unhandledRejectedPromise';\n const reason = rejection ? stack.split(/\\r?\\n/, 1)[0]?.replace(/^Error:\\s*/, '') : message;\n const errorMessage = reason || message || 'Uncaught JavaScript error';\n const errorStack = stack || location || '';\n const type = rejection ? 'unhandled_promise_rejection' : 'cocos_error';\n this.observations.enqueue(() => {\n this.rum.addError(errorMessage, errorStack, type);\n }, 2 * (location.length + message.length + stack.length));\n }));\n return;\n }\n if (nativeErrors || typeof this.target.jsb?.onError === 'function') {\n throw new Error('Cocos native error bootstrap is missing. Rerun the SDK installer and rebuild the native project.');\n }\n if (!this.target.addEventListener || !this.target.removeEventListener) return;\n const errorListener = (event: Event): void => {\n const errorEvent = event as ErrorEvent;\n this.rum.addError(\n errorEvent.message || 'Uncaught JavaScript error',\n errorEvent.error?.stack || `${errorEvent.filename || ''}:${errorEvent.lineno || 0}`,\n );\n };\n const rejectionListener = (event: Event): void => {\n const reason = (event as PromiseRejectionEvent).reason;\n this.rum.addError(\n reason instanceof Error ? reason.message : String(reason),\n reason instanceof Error ? reason.stack || '' : '',\n 'unhandled_promise_rejection',\n );\n };\n this.target.addEventListener('error', errorListener);\n this.target.addEventListener('unhandledrejection', rejectionListener);\n this.stops.push(() => {\n this.target.removeEventListener?.('error', errorListener);\n this.target.removeEventListener?.('unhandledrejection', rejectionListener);\n });\n }\n\n private installConsoleTracking(): void {\n const consoleObject = this.target.console;\n if (!consoleObject) return;\n const methods: Array<keyof Pick<Console, 'log' | 'info' | 'warn' | 'error'>> = [\n 'log',\n 'info',\n 'warn',\n 'error',\n ];\n const observations = this.observations;\n const state = observationState(this.target);\n const originals = new Map<string, (...args: unknown[]) => void>();\n const wrappers = new Map<string, (...args: unknown[]) => unknown>();\n let active = true;\n methods.forEach((method) => {\n const original = consoleObject[method];\n originals.set(method, original);\n const logger = this.logger;\n consoleObject[method] = function (this: unknown, ...args: unknown[]): unknown {\n let snapshot: { timestampMs: number; values: unknown[] } | undefined;\n try {\n if (active && !state.reporting) snapshot = { timestampMs: Date.now(), values: args.slice(0, 16) };\n } catch { /* Snapshot failures cannot prevent the original console call. */ }\n // Keep the original receiver, result and thrown value. No SDK work can\n // escape this finally block and replace the original console outcome.\n try { return original.apply(this, args); }\n finally {\n try {\n if (active && snapshot) {\n const { timestampMs, values } = snapshot;\n observations.enqueue(() => {\n const level = method === 'warn' ? 'warning' : method === 'error' ? 'error' : 'info';\n logger.log(values.map(stringifyLogValue).join(' '), level, { cocos_observed_at_ms: timestampMs });\n }, values.reduce<number>((size, value) => size + (typeof value === 'string' ? value.length * 2 : 64), 0));\n }\n } catch { /* Logging must never change application console behavior. */ }\n }\n } as Console[typeof method];\n wrappers.set(method, consoleObject[method]);\n });\n this.stops.push(() => {\n active = false;\n methods.forEach((method) => {\n const original = originals.get(method);\n if (original && consoleObject[method] === wrappers.get(method)) consoleObject[method] = original as Console[typeof method];\n });\n });\n }\n\n private installFetchTracking(): void {\n const original = this.target.fetch;\n if (!original) return;\n const tracked = (async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {\n const inputObject = typeof input === 'object' ? input as { url?: string; method?: string; headers?: HeadersInit } : undefined;\n const url = typeof input === 'string' ? input : inputObject?.url || String(input);\n const method = init?.method || inputObject?.method || 'GET';\n const key = resourceKey();\n const headers = createHeaders(init?.headers || inputObject?.headers);\n forEachOwn(this.trace.getHeaders(url, key), (name, value) => setHeader(headers, name, value));\n this.rum.startResource(key);\n const start = nowNs();\n try {\n const response = await original(input, { ...init, headers });\n const end = nowNs();\n this.rum.stopResource(key);\n this.rum.addResource(\n key,\n {\n url,\n httpMethod: method,\n requestHeaders: headersToObject(headers),\n responseHeaders: headersToObject(response.headers),\n statusCode: response.status,\n },\n { fetchStartTime: start, responseStartTime: end, responseEndTime: end },\n );\n return response;\n } catch (error) {\n this.rum.stopResource(key);\n this.rum.addError(String(error), error instanceof Error ? error.stack || '' : '', 'network_error');\n throw error;\n }\n }) as typeof fetch;\n this.networkStops.push(() => {\n this.target.fetch = original;\n });\n this.target.fetch = tracked;\n }\n\n private installXhrTracking(): void {\n const Xhr = this.target.XMLHttpRequest;\n if (!Xhr) return;\n const open = Xhr.prototype.open;\n const send = Xhr.prototype.send;\n const setRequestHeader = Xhr.prototype.setRequestHeader;\n const metadata = new WeakMap<XMLHttpRequest, { key: string; method: string; url: string; headers: Record<string, string> }>();\n const rum = this.rum;\n const trace = this.trace;\n\n // Register each restore before assignment so partial installation can roll back.\n this.networkStops.push(() => { Xhr.prototype.open = open; });\n\n Xhr.prototype.open = function trackedOpen(this: XMLHttpRequest, method: string, url: string | URL, ...rest: unknown[]): void {\n metadata.set(this, { key: resourceKey(), method, url: String(url), headers: {} });\n (open as (...args: unknown[]) => void).call(this, method, url, ...rest);\n } as typeof open;\n this.networkStops.push(() => { Xhr.prototype.setRequestHeader = setRequestHeader; });\n Xhr.prototype.setRequestHeader = function trackedHeader(this: XMLHttpRequest, name: string, value: string): void {\n const data = metadata.get(this);\n if (data) data.headers[name] = value;\n setRequestHeader.call(this, name, value);\n };\n this.networkStops.push(() => { Xhr.prototype.send = send; });\n Xhr.prototype.send = function trackedSend(this: XMLHttpRequest, body?: Document | XMLHttpRequestBodyInit | null): void {\n const data = metadata.get(this);\n if (!data) return send.call(this, body);\n forEachOwn(trace.getHeaders(data.url, data.key), (name, value) => {\n data.headers[name] = value;\n setRequestHeader.call(this, name, value);\n });\n const started = nowNs();\n rum.startResource(data.key);\n let completed = false;\n const report = (): void => {\n if (completed) return;\n completed = true;\n const ended = nowNs();\n rum.stopResource(data.key);\n rum.addResource(\n data.key,\n {\n url: data.url,\n httpMethod: data.method,\n requestHeaders: data.headers,\n responseHeaders: parseXhrHeaders(this.getAllResponseHeaders()),\n statusCode: this.status,\n },\n { fetchStartTime: started, responseStartTime: ended, responseEndTime: ended },\n );\n };\n const originalLoadEnd = this.onloadend;\n this.addEventListener('loadend', report, { once: true });\n // Creator 2 JSB implements addEventListener by assigning the on* property.\n // Preserve the business handler there; DOM runtimes already keep both listeners.\n if (this.onloadend === report) {\n const xhr = this;\n const handler: NonNullable<XMLHttpRequest['onloadend']> = function (event): void {\n if (xhr.onloadend === handler) xhr.onloadend = originalLoadEnd;\n try { originalLoadEnd?.call(xhr, event); } finally { report(); }\n };\n this.onloadend = handler;\n }\n send.call(this, body);\n };\n }\n}\n\nfunction nowNs(): number {\n return Date.now() * 1_000_000;\n}\n\nlet resourceSequence = 0;\nfunction resourceKey(): string {\n resourceSequence = (resourceSequence + 1) % Number.MAX_SAFE_INTEGER;\n return `cocos-${Date.now().toString(36)}-${resourceSequence.toString(36)}`;\n}\n\nfunction createHeaders(source?: HeadersInit): Headers | Record<string, string> {\n const HeadersConstructor = (globalThis as unknown as { Headers?: typeof Headers }).Headers;\n if (HeadersConstructor) return new HeadersConstructor(source);\n const result: Record<string, string> = {};\n if (Array.isArray(source)) {\n source.forEach(([name, value]) => { result[name] = String(value); });\n } else if (source && typeof (source as Headers).forEach === 'function') {\n (source as Headers).forEach((value, name) => { result[name] = value; });\n } else if (source) {\n forEachOwn(source as Record<string, string>, (name, value) => { result[name] = String(value); });\n }\n return result;\n}\n\nfunction setHeader(headers: Headers | Record<string, string>, name: string, value: string): void {\n if (typeof (headers as Headers).set === 'function') (headers as Headers).set(name, value);\n else (headers as Record<string, string>)[name] = value;\n}\n\nfunction headersToObject(headers: Headers | Record<string, string>): Record<string, string> {\n const result: Record<string, string> = {};\n if (typeof (headers as Headers).forEach === 'function') {\n (headers as Headers).forEach((value, key) => { result[key] = value; });\n } else {\n forEachOwn(headers as Record<string, string>, (key, value) => { result[key] = value; });\n }\n return result;\n}\n\nfunction forEachOwn<T>(value: Record<string, T>, callback: (key: string, item: T) => void): void {\n Object.keys(value).forEach((key) => callback(key, value[key] as T));\n}\n\nfunction parseXhrHeaders(raw: string): Record<string, string> {\n const result: Record<string, string> = {};\n raw.trim().split(/[\\r\\n]+/).forEach((line) => {\n const index = line.indexOf(':');\n if (index > 0) result[line.slice(0, index).trim()] = line.slice(index + 1).trim();\n });\n return result;\n}\n\nfunction stringifyLogValue(value: unknown): string {\n if (typeof value === 'string') return value;\n if (value instanceof Error) return `${value.message}\\n${value.stack || ''}`;\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}\n"]}
1
+ {"version":3,"file":"auto-tracking.js","sourceRoot":"","sources":["../../../../../src/core/auto-tracking.ts"],"names":[],"mappings":"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","sourcesContent":["import { FTLogger, FTRUM, FTTrace } from './modules.js';\nimport type { FTAutoTrackingController, FTAutoTrackingScope } from './client.js';\nimport type { FTAutoTrackingConfig, FTAttributes } from './types.js';\nimport type { FTJsbErrorGlobal } from '../native/jsb-errors.js';\nimport { FTObservationQueue, observationState } from './observation.js';\n\nexport interface FTEngineTrackingHooks {\n onSceneChanged(callback: (name: string) => void, includeCurrent?: boolean): () => void;\n onAction(callback: (name: string, attributes?: FTAttributes) => void): () => void;\n}\n\ninterface FTGlobalWithFetch extends FTJsbErrorGlobal {\n fetch?: typeof fetch;\n XMLHttpRequest?: typeof XMLHttpRequest;\n console?: Console;\n addEventListener?: typeof globalThis.addEventListener;\n removeEventListener?: typeof globalThis.removeEventListener;\n}\n\nexport class FTDefaultAutoTracking implements FTAutoTrackingController {\n private stops: Array<() => void> = [];\n private networkStops: Array<() => void> = [];\n private activeView: string | undefined;\n private readonly observations: FTObservationQueue;\n\n constructor(\n private readonly rum: FTRUM,\n private readonly logger: FTLogger,\n private readonly trace: FTTrace,\n private readonly hooks: FTEngineTrackingHooks,\n private readonly target: FTGlobalWithFetch = globalThis,\n ) {\n this.observations = new FTObservationQueue(target);\n }\n\n start(config: FTAutoTrackingConfig, viewName?: string, scope: FTAutoTrackingScope = 'all'): void {\n this.stop(scope);\n try {\n if (scope !== 'network') {\n if (viewName) this.switchView(viewName);\n if (config.scenes) this.installSceneTracking(viewName === undefined);\n if (config.actions) this.installActionTracking();\n if (config.errors) this.installErrorTracking();\n if (config.console) this.installConsoleTracking();\n }\n if (scope !== 'page' && config.network) {\n this.installFetchTracking();\n this.installXhrTracking();\n }\n } catch (error) {\n try { this.stop(scope); } catch { /* Preserve the installation error. */ }\n throw error;\n }\n }\n\n stop(scope: FTAutoTrackingScope = 'all'): void {\n let failure: unknown;\n const cleanup = (stop: () => void): void => {\n try { stop(); } catch (error) { if (failure === undefined) failure = error; }\n };\n if (scope !== 'page') this.networkStops.splice(0).reverse().forEach(cleanup);\n if (scope !== 'network') {\n this.observations.stop();\n this.stops.splice(0).reverse().forEach(cleanup);\n if (this.activeView) {\n cleanup(() => this.rum.stopView());\n this.activeView = undefined;\n }\n }\n if (failure !== undefined) throw failure;\n }\n\n private installSceneTracking(includeCurrent: boolean): void {\n this.stops.push(\n this.hooks.onSceneChanged((name) => {\n this.switchView(name);\n }, includeCurrent),\n );\n }\n\n private switchView(name: string): void {\n if (this.activeView) this.rum.stopView();\n this.activeView = name;\n this.rum.startView(name);\n }\n\n private installActionTracking(): void {\n this.stops.push(\n this.hooks.onAction((name, attributes) => this.rum.startAction(name, 'click', attributes)),\n );\n }\n\n private installErrorTracking(): void {\n const nativeErrors = this.target.__FT_COCOS_JSB_ERRORS__;\n if (nativeErrors?.protocol === 2) {\n this.stops.push(nativeErrors.subscribe((location, message, stack) => {\n // Creator 2 also reports promise bookkeeping notifications through onError.\n if (message === 'handlerAddedAfterPromiseRejected' || message === 'rejectAfterPromiseResolved'\n || message === 'resolveAfterPromiseResolved') return;\n const rejection = message === 'unhandledRejectedPromise';\n const reason = rejection ? stack.split(/\\r?\\n/, 1)[0]?.replace(/^Error:\\s*/, '') : message;\n const errorMessage = reason || message || 'Uncaught JavaScript error';\n const errorStack = stack || location || '';\n const type = rejection ? 'unhandled_promise_rejection' : 'cocos_error';\n this.observations.enqueue(() => {\n this.rum.addError(errorMessage, errorStack, type);\n }, 2 * (location.length + message.length + stack.length));\n }));\n return;\n }\n if (nativeErrors || typeof this.target.jsb?.onError === 'function') {\n throw new Error('Cocos native error bootstrap is missing. Rerun the SDK installer and rebuild the native project.');\n }\n if (!this.target.addEventListener || !this.target.removeEventListener) return;\n const errorListener = (event: Event): void => {\n const errorEvent = event as ErrorEvent;\n this.rum.addError(\n errorEvent.message || 'Uncaught JavaScript error',\n errorEvent.error?.stack || `${errorEvent.filename || ''}:${errorEvent.lineno || 0}`,\n );\n };\n const rejectionListener = (event: Event): void => {\n const reason = (event as PromiseRejectionEvent).reason;\n this.rum.addError(\n reason instanceof Error ? reason.message : String(reason),\n reason instanceof Error ? reason.stack || '' : '',\n 'unhandled_promise_rejection',\n );\n };\n this.target.addEventListener('error', errorListener);\n this.target.addEventListener('unhandledrejection', rejectionListener);\n this.stops.push(() => {\n this.target.removeEventListener?.('error', errorListener);\n this.target.removeEventListener?.('unhandledrejection', rejectionListener);\n });\n }\n\n private installConsoleTracking(): void {\n const consoleObject = this.target.console;\n if (!consoleObject) return;\n const methods: Array<keyof Pick<Console, 'log' | 'info' | 'warn' | 'error'>> = [\n 'log',\n 'info',\n 'warn',\n 'error',\n ];\n const observations = this.observations;\n const state = observationState(this.target);\n const originals = new Map<string, (...args: unknown[]) => void>();\n const wrappers = new Map<string, (...args: unknown[]) => unknown>();\n let active = true;\n methods.forEach((method) => {\n const original = consoleObject[method];\n originals.set(method, original);\n const logger = this.logger;\n consoleObject[method] = function (this: unknown, ...args: unknown[]): unknown {\n let snapshot: { timestampMs: number; values: unknown[] } | undefined;\n try {\n if (active && !state.reporting) snapshot = { timestampMs: Date.now(), values: args.slice(0, 16) };\n } catch { /* Snapshot failures cannot prevent the original console call. */ }\n // Keep the original receiver, result and thrown value. No SDK work can\n // escape this finally block and replace the original console outcome.\n try { return original.apply(this, args); }\n finally {\n try {\n if (active && snapshot) {\n const { timestampMs, values } = snapshot;\n observations.enqueue(() => {\n const level = method === 'warn' ? 'warning' : method === 'error' ? 'error' : 'info';\n logger.log(values.map(stringifyLogValue).join(' '), level, { cocos_observed_at_ms: timestampMs });\n }, values.reduce<number>((size, value) => size + (typeof value === 'string' ? value.length * 2 : 64), 0));\n }\n } catch { /* Logging must never change application console behavior. */ }\n }\n } as Console[typeof method];\n wrappers.set(method, consoleObject[method]);\n });\n this.stops.push(() => {\n active = false;\n methods.forEach((method) => {\n const original = originals.get(method);\n if (original && consoleObject[method] === wrappers.get(method)) consoleObject[method] = original as Console[typeof method];\n });\n });\n }\n\n private installFetchTracking(): void {\n const original = this.target.fetch;\n if (!original) return;\n const rum = this.rum;\n const trace = this.trace;\n let active = true;\n const tracked = function (this: unknown, ...args: Parameters<typeof fetch>): Promise<Response> {\n if (!active) return original.apply(this, args);\n let outgoing = args;\n let data: { key: string; url: string; method: string; start: number; headers?: FTNetworkHeaders } | undefined;\n observeNetwork(() => {\n const [input, init] = args;\n const inputObject = networkInput(input);\n if (!inputObject) return;\n const { url } = inputObject;\n const method = networkOption(init, 'method') as string | undefined;\n const sourceHeaders = networkOption(init, 'headers') as HeadersInit | undefined;\n const record = { key: resourceKey(), url, method: method || inputObject.method || 'GET',\n start: nowNs(), headers: undefined as FTNetworkHeaders | undefined };\n data = record;\n try {\n const headers = createHeaders(sourceHeaders === undefined ? inputObject.headers : sourceHeaders);\n let appended = false;\n forEachOwn(trace.getHeaders(url, record.key), (name, value) => {\n if (!hasHeader(headers, name)) {\n appendHeader(headers, name, value);\n appended = true;\n }\n });\n if (appended) {\n outgoing = args.slice() as Parameters<typeof fetch>;\n outgoing[1] = withRequestHeaders(init, headers);\n }\n record.headers = headers;\n } catch { /* Failed instrumentation leaves the original fetch arguments intact. */ }\n observeNetwork(() => rum.startResource(record.key));\n });\n const reportFailure = (error: unknown): void => {\n if (!data) return;\n const { key } = data;\n observeNetwork(() => rum.stopResource(key));\n observeNetwork(() => rum.addError(String(error), error instanceof Error ? error.stack || '' : '', 'network_error'));\n };\n let result: Promise<Response>;\n // Invoke the application request once. Observation failures must never retry it.\n try {\n result = original.apply(this, outgoing);\n } catch (error) {\n reportFailure(error);\n throw error;\n }\n if (!data) return result;\n const record = data;\n try {\n return result.then((response) => {\n observeNetwork(() => rum.stopResource(record.key));\n observeNetwork(() => {\n const end = nowNs();\n rum.addResource(record.key, {\n url: record.url,\n httpMethod: record.method,\n requestHeaders: record.headers && headersToObject(record.headers),\n responseHeaders: headersToObject(response.headers),\n statusCode: response.status,\n }, { fetchStartTime: record.start, responseStartTime: end, responseEndTime: end });\n });\n return response;\n }, (error: unknown) => {\n reportFailure(error);\n throw error;\n });\n } catch { return result; }\n } as typeof fetch;\n this.networkStops.push(() => {\n active = false;\n if (this.target.fetch === tracked) this.target.fetch = original;\n });\n this.target.fetch = tracked;\n }\n\n private installXhrTracking(): void {\n const Xhr = this.target.XMLHttpRequest;\n if (!Xhr) return;\n const open = Xhr.prototype.open;\n const send = Xhr.prototype.send;\n const setRequestHeader = Xhr.prototype.setRequestHeader;\n const metadata = new WeakMap<XMLHttpRequest, {\n key: string; method: string; url: string; headers: Record<string, string>; headersKnown: boolean;\n }>();\n const rum = this.rum;\n const trace = this.trace;\n let active = true;\n\n const trackedOpen = function (this: XMLHttpRequest, ...args: unknown[]): void {\n if (!active) return (open as (...args: unknown[]) => void).apply(this, args);\n const previous = metadata.get(this);\n observeNetwork(() => {\n metadata.delete(this);\n if (typeof args[0] !== 'string' || typeof args[1] !== 'string') return;\n metadata.set(this, { key: resourceKey(), method: args[0] as string, url: String(args[1]),\n headers: Object.create(null) as Record<string, string>, headersKnown: true });\n });\n try { return (open as (...args: unknown[]) => void).apply(this, args); }\n catch (error) {\n observeNetwork(() => { if (previous) metadata.set(this, previous); else metadata.delete(this); });\n throw error;\n }\n } as typeof open;\n // Register each restore before assignment so partial installation can roll back.\n this.networkStops.push(() => { active = false; if (Xhr.prototype.open === trackedOpen) Xhr.prototype.open = open; });\n Xhr.prototype.open = trackedOpen;\n const trackedHeader = function (this: XMLHttpRequest, ...args: Parameters<typeof setRequestHeader>): void {\n const result = setRequestHeader.apply(this, args);\n observeNetwork(() => {\n const data = active && metadata.get(this);\n if (!data) return;\n const [name, value] = args;\n if (typeof name !== 'string' || typeof value !== 'string') { data.headersKnown = false; return; }\n const key = name.toLowerCase();\n data.headers[key] = key in data.headers ? `${data.headers[key]}, ${value}` : value;\n });\n return result;\n };\n this.networkStops.push(() => {\n active = false;\n if (Xhr.prototype.setRequestHeader === trackedHeader) Xhr.prototype.setRequestHeader = setRequestHeader;\n });\n Xhr.prototype.setRequestHeader = trackedHeader;\n const trackedSend = function (this: XMLHttpRequest, ...args: Parameters<typeof send>): void {\n const data = active && metadata.get(this);\n if (!data) return send.apply(this, args);\n observeNetwork(() => {\n if (!data.headersKnown) return;\n forEachOwn(trace.getHeaders(data.url, data.key), (name, value) => {\n if (!validTraceHeader(name, value)) return;\n const key = name.toLowerCase();\n if (key in data.headers) return;\n setRequestHeader.call(this, name, value);\n data.headers[key] = value;\n });\n });\n let started = 0;\n observeNetwork(() => { started = nowNs(); rum.startResource(data.key); });\n let completed = false;\n let cleanup: (() => void) | undefined;\n const report = (): void => {\n if (completed) return;\n completed = true;\n observeNetwork(() => cleanup?.());\n observeNetwork(() => rum.stopResource(data.key));\n observeNetwork(() => {\n const ended = nowNs();\n rum.addResource(data.key, {\n url: data.url,\n httpMethod: data.method,\n requestHeaders: data.headers,\n responseHeaders: parseXhrHeaders(this.getAllResponseHeaders()),\n statusCode: this.status,\n }, { fetchStartTime: started, responseStartTime: ended, responseEndTime: ended });\n });\n };\n observeNetwork(() => {\n const originalLoadEnd = this.onloadend;\n try {\n this.addEventListener('loadend', report, { once: true });\n // Creator 2 JSB assigns the on* property instead of keeping a listener list.\n if (this.onloadend === report) {\n const xhr = this;\n const handler: NonNullable<XMLHttpRequest['onloadend']> = function (...events): unknown {\n observeNetwork(() => cleanup?.());\n try { return originalLoadEnd?.apply(this, events); } finally { report(); }\n };\n cleanup = () => { if (xhr.onloadend === handler) xhr.onloadend = originalLoadEnd; };\n this.onloadend = handler;\n } else {\n cleanup = () => this.removeEventListener('loadend', report);\n }\n } catch {\n observeNetwork(() => cleanup?.());\n observeNetwork(() => { if (this.onloadend === report) this.onloadend = originalLoadEnd; });\n }\n });\n try { return send.apply(this, args); }\n catch (error) {\n completed = true;\n observeNetwork(() => cleanup?.());\n observeNetwork(() => rum.stopResource(data.key));\n throw error;\n }\n };\n this.networkStops.push(() => { active = false; if (Xhr.prototype.send === trackedSend) Xhr.prototype.send = send; });\n Xhr.prototype.send = trackedSend;\n }\n}\n\nfunction nowNs(): number {\n return Date.now() * 1_000_000;\n}\n\nlet resourceSequence = 0;\nfunction resourceKey(): string {\n resourceSequence = (resourceSequence + 1) % Number.MAX_SAFE_INTEGER;\n return `cocos-${Date.now().toString(36)}-${resourceSequence.toString(36)}`;\n}\n\ntype FTNetworkHeaders = Headers | Array<[string, string]>;\n\nfunction observeNetwork(observe: () => void): void {\n try { observe(); } catch { /* Monitoring cannot change the application's network result. */ }\n}\n\nfunction networkOption(init: RequestInit | undefined, name: string): unknown {\n for (let source = init; source; source = Object.getPrototypeOf(source) as RequestInit | undefined) {\n const descriptor = Object.getOwnPropertyDescriptor(source, name);\n if (!descriptor) continue;\n // Accessors may refresh tokens or mutate options. Leave them to the original fetch.\n if (descriptor.get || descriptor.set) throw new TypeError('Network option requires its original receiver');\n return descriptor.value;\n }\n return undefined;\n}\n\nfunction networkInput(input: RequestInfo | URL): { url: string; method?: string; headers?: HeadersInit } | undefined {\n if (typeof input === 'string') return { url: input };\n if (typeof Request === 'function' && input instanceof Request) {\n const read = (name: string): unknown => {\n const descriptor = Object.getOwnPropertyDescriptor(Request.prototype, name);\n return descriptor?.get ? descriptor.get.call(input) : networkOption(input, name);\n };\n return { url: read('url') as string, method: read('method') as string, headers: read('headers') as HeadersInit };\n }\n if (typeof URL === 'function' && input instanceof URL) return { url: URL.prototype.toString.call(input) };\n // Custom string conversion belongs to the application request and must only run there.\n return undefined;\n}\n\nfunction withRequestHeaders(init: RequestInit | undefined, headers: FTNetworkHeaders): RequestInit {\n const result = Object.create(init || null) as RequestInit;\n // Forward getters to their original receiver, including inherited/non-enumerable options.\n for (let source = init; source && source !== Object.prototype; source = Object.getPrototypeOf(source) as RequestInit | undefined) {\n Object.getOwnPropertyNames(source).forEach((name) => {\n if (name === 'headers' || Object.prototype.hasOwnProperty.call(result, name)) return;\n const descriptor = Object.getOwnPropertyDescriptor(source, name);\n Object.defineProperty(result, name, { enumerable: descriptor?.enumerable, configurable: true,\n get: () => (init as Record<string, unknown>)[name] });\n });\n }\n Object.defineProperty(result, 'headers', { value: headers, enumerable: true, configurable: true, writable: true });\n return result;\n}\n\nfunction createHeaders(source?: HeadersInit): FTNetworkHeaders {\n const HeadersConstructor = (globalThis as unknown as { Headers?: typeof Headers }).Headers;\n if (HeadersConstructor) return new HeadersConstructor(source);\n const result: Array<[string, string]> = [];\n if (Array.isArray(source)) {\n source.forEach(([name, value]) => { result.push([String(name), String(value)]); });\n } else if (source && typeof (source as Headers).forEach === 'function') {\n (source as Headers).forEach((value, name) => { result.push([name, value]); });\n } else if (source) {\n forEachOwn(source as Record<string, string>, (name, value) => { result.push([name, String(value)]); });\n }\n return result;\n}\n\nfunction hasHeader(headers: FTNetworkHeaders, name: string): boolean {\n return Array.isArray(headers) ? headers.some(([key]) => key.toLowerCase() === name.toLowerCase()) : headers.has(name);\n}\n\nfunction appendHeader(headers: FTNetworkHeaders, name: string, value: string): void {\n if (!validTraceHeader(name, value)) throw new TypeError('Invalid trace header');\n if (Array.isArray(headers)) headers.push([name, value]);\n else headers.append(name, value);\n}\n\nfunction validTraceHeader(name: string, value: string): boolean {\n return /^[!#$%&'*+\\-.^_`|~0-9A-Za-z]+$/.test(name) && typeof value === 'string'\n && !/[\\x00-\\x08\\x0a-\\x1f\\x7f\\u0100-\\uffff]/.test(value);\n}\n\nfunction headersToObject(headers: FTNetworkHeaders): Record<string, string> {\n const result: Record<string, string> = Object.create(null) as Record<string, string>;\n const append = (value: string, name: string): void => {\n const key = name.toLowerCase();\n result[key] = key in result ? `${result[key]}, ${value}` : value;\n };\n if (Array.isArray(headers)) headers.forEach(([name, value]) => append(value, name));\n else headers.forEach(append);\n return result;\n}\n\nfunction forEachOwn<T>(value: Record<string, T>, callback: (key: string, item: T) => void): void {\n Object.keys(value).forEach((key) => callback(key, value[key] as T));\n}\n\nfunction parseXhrHeaders(raw: string): Record<string, string> {\n const result: Record<string, string> = {};\n raw.trim().split(/[\\r\\n]+/).forEach((line) => {\n const index = line.indexOf(':');\n if (index > 0) result[line.slice(0, index).trim()] = line.slice(index + 1).trim();\n });\n return result;\n}\n\nfunction stringifyLogValue(value: unknown): string {\n if (typeof value === 'string') return value;\n if (value instanceof Error) return `${value.message}\\n${value.stack || ''}`;\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  /** Version of the installed Cocos SDK package. */
2
- export declare const FT_COCOS_SDK_VERSION = "0.1.1-alpha.3";
2
+ export declare const FT_COCOS_SDK_VERSION = "0.1.1-alpha.4";
3
3
  /** Event attribute used to identify data emitted through a framework bridge. */
4
4
  export declare const FT_COCOS_SDK_BRIDGE_INFO_KEY = "sdk_bridge_info";
5
5
  /** Serialized bridge metadata expected by the native SDK data model. */
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FT_COCOS_SDK_BRIDGE_INFO = exports.FT_COCOS_SDK_BRIDGE_INFO_KEY = exports.FT_COCOS_SDK_VERSION = void 0;
4
4
  /** Version of the installed Cocos SDK package. */
5
- exports.FT_COCOS_SDK_VERSION = '0.1.1-alpha.3';
5
+ exports.FT_COCOS_SDK_VERSION = '0.1.1-alpha.4';
6
6
  /** Event attribute used to identify data emitted through a framework bridge. */
7
7
  exports.FT_COCOS_SDK_BRIDGE_INFO_KEY = 'sdk_bridge_info';
8
8
  /** Serialized bridge metadata expected by the native SDK data model. */
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../../src/core/version.ts"],"names":[],"mappings":";;;AAAA,kDAAkD;AACrC,QAAA,oBAAoB,GAAG,eAAe,CAAC;AAEpD,gFAAgF;AACnE,QAAA,4BAA4B,GAAG,iBAAiB,CAAC;AAE9D,wEAAwE;AAC3D,QAAA,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC;IACrD,KAAK,EAAE,4BAAoB;CAC5B,CAAC,CAAC","sourcesContent":["/** Version of the installed Cocos SDK package. */\nexport const FT_COCOS_SDK_VERSION = '0.1.1-alpha.3';\n\n/** Event attribute used to identify data emitted through a framework bridge. */\nexport const FT_COCOS_SDK_BRIDGE_INFO_KEY = 'sdk_bridge_info';\n\n/** Serialized bridge metadata expected by the native SDK data model. */\nexport const FT_COCOS_SDK_BRIDGE_INFO = JSON.stringify({\n cocos: FT_COCOS_SDK_VERSION,\n});\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../../src/core/version.ts"],"names":[],"mappings":";;;AAAA,kDAAkD;AACrC,QAAA,oBAAoB,GAAG,eAAe,CAAC;AAEpD,gFAAgF;AACnE,QAAA,4BAA4B,GAAG,iBAAiB,CAAC;AAE9D,wEAAwE;AAC3D,QAAA,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC;IACrD,KAAK,EAAE,4BAAoB;CAC5B,CAAC,CAAC","sourcesContent":["/** Version of the installed Cocos SDK package. */\nexport const FT_COCOS_SDK_VERSION = '0.1.1-alpha.4';\n\n/** Event attribute used to identify data emitted through a framework bridge. */\nexport const FT_COCOS_SDK_BRIDGE_INFO_KEY = 'sdk_bridge_info';\n\n/** Serialized bridge metadata expected by the native SDK data model. */\nexport const FT_COCOS_SDK_BRIDGE_INFO = JSON.stringify({\n cocos: FT_COCOS_SDK_VERSION,\n});\n"]}
@@ -24,17 +24,26 @@ var FTCreator2TrackingHooks = /** @class */ (function () {
24
24
  }());
25
25
  exports.FTCreator2TrackingHooks = FTCreator2TrackingHooks;
26
26
  function onSceneTouch(type, handler) {
27
- var scene;
27
+ var detach = function () { };
28
28
  var bind = function () {
29
- scene === null || scene === void 0 ? void 0 : scene.off(type, handler, undefined, true);
30
- scene = cc.director.getScene();
31
- scene === null || scene === void 0 ? void 0 : scene.on(type, handler, undefined, true);
29
+ detach();
30
+ var scene = cc.director.getScene();
31
+ if (!scene) {
32
+ detach = function () { };
33
+ return;
34
+ }
35
+ // Capture descendant events without installing a native hit-test listener on Scene.
36
+ var dispatchOnly = typeof scene._onDispatch === 'function' && typeof scene._offDispatch === 'function';
37
+ var on = dispatchOnly ? scene._onDispatch : scene.on;
38
+ var off = dispatchOnly ? scene._offDispatch : scene.off;
39
+ on.call(scene, type, handler, undefined, true);
40
+ detach = function () { return off.call(scene, type, handler, undefined, true); };
32
41
  };
33
42
  cc.director.on(cc.Director.EVENT_AFTER_SCENE_LAUNCH, bind);
34
43
  bind();
35
44
  return function () {
36
45
  cc.director.off(cc.Director.EVENT_AFTER_SCENE_LAUNCH, bind);
37
- scene === null || scene === void 0 ? void 0 : scene.off(type, handler, undefined, true);
46
+ detach();
38
47
  };
39
48
  }
40
49
  //# sourceMappingURL=auto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../../../../src/creator2/auto.ts"],"names":[],"mappings":";;;AAGA;IAAA;IAeA,CAAC;IAdC,gDAAc,GAAd,UAAe,QAAgC,EAAE,cAAqB;QAArB,+BAAA,EAAA,qBAAqB;QACpE,IAAM,OAAO,GAAG,sBAAY,OAAA,QAAQ,CAAC,CAAA,MAAA,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,0CAAE,IAAI,KAAI,cAAc,CAAC,CAAA,EAAA,CAAC;QACrF,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,cAAc,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAAE,OAAO,EAAE,CAAC;QACxD,OAAO,cAAM,OAAA,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC,EAA9D,CAA8D,CAAC;IAC9E,CAAC;IAED,0CAAQ,GAAR,UAAS,QAA2D;QAClE,IAAM,OAAO,GAAG,UAAC,KAAU;;YACzB,IAAM,QAAQ,GAAG,MAAA,KAAK,CAAC,WAAW,qDAAI,CAAC;YACvC,QAAQ,CAAC,CAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,IAAI,KAAI,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxG,CAAC,CAAC;QACF,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IACH,8BAAC;AAAD,CAAC,AAfD,IAeC;AAfY,0DAAuB;AAiBpC,SAAS,YAAY,CAAC,IAAY,EAAE,OAA6B;IAC/D,IAAI,KAAU,CAAC;IACf,IAAM,IAAI,GAAG;QACX,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3C,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC/B,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC;IACP,OAAO;QACL,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QAC5D,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { FTEngineTrackingHooks } from '../core/auto-tracking.js';\nimport type { FTAttributes } from '../core/types.js';\n\nexport class FTCreator2TrackingHooks implements FTEngineTrackingHooks {\n onSceneChanged(callback: (name: string) => void, includeCurrent = true): () => void {\n const handler = (): void => callback(cc.director.getScene()?.name || 'UnknownScene');\n cc.director.on(cc.Director.EVENT_AFTER_SCENE_LAUNCH, handler);\n if (includeCurrent && cc.director.getScene()) handler();\n return () => cc.director.off(cc.Director.EVENT_AFTER_SCENE_LAUNCH, handler);\n }\n\n onAction(callback: (name: string, attributes?: FTAttributes) => void): () => void {\n const handler = (event: any): void => {\n const location = event.getLocation?.();\n callback(event.target?.name || 'CocosTouch', location ? { x: location.x, y: location.y } : undefined);\n };\n return onSceneTouch(cc.Node.EventType.TOUCH_END, handler);\n }\n}\n\nfunction onSceneTouch(type: string, handler: (event: any) => void): () => void {\n let scene: any;\n const bind = (): void => {\n scene?.off(type, handler, undefined, true);\n scene = cc.director.getScene();\n scene?.on(type, handler, undefined, true);\n };\n cc.director.on(cc.Director.EVENT_AFTER_SCENE_LAUNCH, bind);\n bind();\n return () => {\n cc.director.off(cc.Director.EVENT_AFTER_SCENE_LAUNCH, bind);\n scene?.off(type, handler, undefined, true);\n };\n}\n"]}
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../../../../../src/creator2/auto.ts"],"names":[],"mappings":";;;AAGA;IAAA;IAeA,CAAC;IAdC,gDAAc,GAAd,UAAe,QAAgC,EAAE,cAAqB;QAArB,+BAAA,EAAA,qBAAqB;QACpE,IAAM,OAAO,GAAG,sBAAY,OAAA,QAAQ,CAAC,CAAA,MAAA,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,0CAAE,IAAI,KAAI,cAAc,CAAC,CAAA,EAAA,CAAC;QACrF,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,cAAc,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAAE,OAAO,EAAE,CAAC;QACxD,OAAO,cAAM,OAAA,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAC,EAA9D,CAA8D,CAAC;IAC9E,CAAC;IAED,0CAAQ,GAAR,UAAS,QAA2D;QAClE,IAAM,OAAO,GAAG,UAAC,KAAU;;YACzB,IAAM,QAAQ,GAAG,MAAA,KAAK,CAAC,WAAW,qDAAI,CAAC;YACvC,QAAQ,CAAC,CAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,IAAI,KAAI,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxG,CAAC,CAAC;QACF,OAAO,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IACH,8BAAC;AAAD,CAAC,AAfD,IAeC;AAfY,0DAAuB;AAiBpC,SAAS,YAAY,CAAC,IAAY,EAAE,OAA6B;IAC/D,IAAI,MAAM,GAAG,cAAO,CAAC,CAAC;IACtB,IAAM,IAAI,GAAG;QACX,MAAM,EAAE,CAAC;QACT,IAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,EAAE,CAAC;YAAC,MAAM,GAAG,cAAO,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC1C,oFAAoF;QACpF,IAAM,YAAY,GAAG,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,UAAU,CAAC;QACzG,IAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,IAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAC1D,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC/C,MAAM,GAAG,cAAM,OAAA,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAA/C,CAA+C,CAAC;IACjE,CAAC,CAAC;IACF,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC;IACP,OAAO;QACL,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { FTEngineTrackingHooks } from '../core/auto-tracking.js';\nimport type { FTAttributes } from '../core/types.js';\n\nexport class FTCreator2TrackingHooks implements FTEngineTrackingHooks {\n onSceneChanged(callback: (name: string) => void, includeCurrent = true): () => void {\n const handler = (): void => callback(cc.director.getScene()?.name || 'UnknownScene');\n cc.director.on(cc.Director.EVENT_AFTER_SCENE_LAUNCH, handler);\n if (includeCurrent && cc.director.getScene()) handler();\n return () => cc.director.off(cc.Director.EVENT_AFTER_SCENE_LAUNCH, handler);\n }\n\n onAction(callback: (name: string, attributes?: FTAttributes) => void): () => void {\n const handler = (event: any): void => {\n const location = event.getLocation?.();\n callback(event.target?.name || 'CocosTouch', location ? { x: location.x, y: location.y } : undefined);\n };\n return onSceneTouch(cc.Node.EventType.TOUCH_END, handler);\n }\n}\n\nfunction onSceneTouch(type: string, handler: (event: any) => void): () => void {\n let detach = () => {};\n const bind = (): void => {\n detach();\n const scene = cc.director.getScene();\n if (!scene) { detach = () => {}; return; }\n // Capture descendant events without installing a native hit-test listener on Scene.\n const dispatchOnly = typeof scene._onDispatch === 'function' && typeof scene._offDispatch === 'function';\n const on = dispatchOnly ? scene._onDispatch : scene.on;\n const off = dispatchOnly ? scene._offDispatch : scene.off;\n on.call(scene, type, handler, undefined, true);\n detach = () => off.call(scene, type, handler, undefined, true);\n };\n cc.director.on(cc.Director.EVENT_AFTER_SCENE_LAUNCH, bind);\n bind();\n return () => {\n cc.director.off(cc.Director.EVENT_AFTER_SCENE_LAUNCH, bind);\n detach();\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-tracking.d.ts","sourceRoot":"","sources":["../../../../../src/core/auto-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,IAAI,CAAC;IACvF,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACnF;AAED,UAAU,iBAAkB,SAAQ,gBAAgB;IAClD,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACtD,mBAAmB,CAAC,EAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC;CAC7D;AAED,qBAAa,qBAAsB,YAAW,wBAAwB;IAOlE,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAG/B,GAAG,EAAE,KAAK,EACV,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,qBAAqB,EAC5B,MAAM,GAAE,iBAA8B;IAKzD,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,mBAA2B,GAAG,IAAI;IAoBhG,IAAI,CAAC,KAAK,GAAE,mBAA2B,GAAG,IAAI;IAiB9C,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,oBAAoB;IA6C5B,OAAO,CAAC,sBAAsB;IAiD9B,OAAO,CAAC,oBAAoB;IAwC5B,OAAO,CAAC,kBAAkB;CAkE3B"}
1
+ {"version":3,"file":"auto-tracking.d.ts","sourceRoot":"","sources":["../../../../../src/core/auto-tracking.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,IAAI,CAAC;IACvF,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,YAAY,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACnF;AAED,UAAU,iBAAkB,SAAQ,gBAAgB;IAClD,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,UAAU,CAAC,gBAAgB,CAAC;IACtD,mBAAmB,CAAC,EAAE,OAAO,UAAU,CAAC,mBAAmB,CAAC;CAC7D;AAED,qBAAa,qBAAsB,YAAW,wBAAwB;IAOlE,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVzB,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAG/B,GAAG,EAAE,KAAK,EACV,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,qBAAqB,EAC5B,MAAM,GAAE,iBAA8B;IAKzD,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,mBAA2B,GAAG,IAAI;IAoBhG,IAAI,CAAC,KAAK,GAAE,mBAA2B,GAAG,IAAI;IAiB9C,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,oBAAoB;IA6C5B,OAAO,CAAC,sBAAsB;IAiD9B,OAAO,CAAC,oBAAoB;IAgF5B,OAAO,CAAC,kBAAkB;CAiH3B"}