@jaypie/logger 1.2.11 → 1.2.13
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/dist/cjs/JaypieLogger.d.ts +7 -0
- package/dist/cjs/index.cjs +330 -86
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/pipelines.d.ts +7 -1
- package/dist/esm/JaypieLogger.d.ts +7 -0
- package/dist/esm/index.js +330 -86
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pipelines.d.ts +7 -1
- package/package.json +1 -1
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/constants.ts","../../../src/sanitizeAuth.ts","../../../src/datadogTransport.ts","../../../src/utils.ts","../../../src/Logger.ts","../../../src/logTags.ts","../../../src/forceVar.ts","../../../src/pipelines.ts","../../../src/logVar.ts","../../../src/JaypieLogger.ts","../../../src/index.ts"],"sourcesContent":["export const DEFAULT = {\n LEVEL: \"debug\",\n VAR_LEVEL: \"debug\",\n};\n\nexport const ERROR_PREFIX = \"[logger]\";\n\nexport const ERROR = {\n VAR: {\n EMPTY_OBJECT: `${ERROR_PREFIX} Logger.var() called with empty object`,\n MULTIPLE_KEYS: `${ERROR_PREFIX} Logger.var() called with multiple keys`,\n NULL_OBJECT: `${ERROR_PREFIX} Logger.var() called with null`,\n UNDEFINED_MESSAGE: `${ERROR_PREFIX} Logger.var() called with \\`undefined\\` message`,\n },\n};\n\nexport const FORMAT = {\n JSON: \"json\",\n TEXT: \"text\",\n} as const;\n\nexport const LEVEL = {\n ALL: \"all\",\n DEBUG: \"debug\",\n ERROR: \"error\",\n FATAL: \"fatal\",\n INFO: \"info\",\n SILENT: \"silent\",\n TRACE: \"trace\",\n WARN: \"warn\",\n} as const;\n\nexport const LEVEL_VALUES: Record<string, number> = {\n all: 100,\n debug: 70,\n error: 10,\n fatal: 1,\n info: 50,\n none: 0,\n silent: 0,\n trace: 90,\n warn: 30,\n};\n\nexport const DATADOG_TRANSPORT = {\n ENV: {\n API_KEY: \"DATADOG_API_KEY\",\n DD_ENV: \"DD_ENV\",\n DD_HOST: \"DD_HOST\",\n DD_SERVICE: \"DD_SERVICE\",\n DD_SITE: \"DD_SITE\",\n DD_SOURCE: \"DD_SOURCE\",\n FORWARDING: \"DATADOG_LOCAL_FORWARDING\",\n PROJECT_ENV: \"PROJECT_ENV\",\n PROJECT_HOST: \"PROJECT_HOST\",\n PROJECT_SERVICE: \"PROJECT_SERVICE\",\n PROJECT_SOURCE: \"PROJECT_SOURCE\",\n },\n FLUSH_INTERVAL_MS: 5000,\n INTAKE_PATH: \"/api/v2/logs\",\n MAX_BATCH_SIZE: 100,\n} as const;\n\nexport const PSEUDO_LEVELS = [\"ALL\", \"SILENT\"];\n","import { createHash } from \"node:crypto\";\n\n//\n//\n// Helper\n//\n\nexport function redactAuth(value: unknown): string {\n const str = String(value);\n if (/sk\\S+/.test(str)) {\n return `sk_${str.slice(-4)}`;\n }\n const hash = createHash(\"md5\").update(str).digest(\"hex\");\n return `md5_${hash.slice(-4)}`;\n}\n\n//\n//\n// Main\n//\n\nexport function sanitizeAuth(value: unknown): unknown {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return value;\n }\n\n const obj = value as Record<string, unknown>;\n let clone: Record<string, unknown> | undefined;\n\n for (const key of Object.keys(obj)) {\n const lower = key.toLowerCase();\n\n if (lower === \"authorization\") {\n if (!clone) clone = { ...obj };\n clone[key] = redactAuth(obj[key]);\n } else if (lower === \"headers\") {\n const headers = obj[key];\n if (\n typeof headers === \"object\" &&\n headers !== null &&\n !Array.isArray(headers)\n ) {\n const hdrs = headers as Record<string, unknown>;\n for (const hKey of Object.keys(hdrs)) {\n if (hKey.toLowerCase() === \"authorization\") {\n if (!clone) clone = { ...obj };\n const clonedHeaders = { ...hdrs };\n clonedHeaders[hKey] = redactAuth(hdrs[hKey]);\n clone[key] = clonedHeaders;\n break;\n }\n }\n }\n }\n }\n\n return clone ?? value;\n}\n","import { hostname } from \"node:os\";\nimport { request } from \"node:https\";\n\nimport { DATADOG_TRANSPORT, LEVEL } from \"./constants\";\n\n// Level-to-Datadog status mapping\nconst LEVEL_TO_STATUS: Record<string, string> = {\n [LEVEL.TRACE]: \"debug\",\n [LEVEL.DEBUG]: \"debug\",\n [LEVEL.INFO]: \"info\",\n [LEVEL.WARN]: \"warn\",\n [LEVEL.ERROR]: \"error\",\n [LEVEL.FATAL]: \"critical\",\n};\n\nfunction envBoolean(\n key: string,\n { defaultValue }: { defaultValue: boolean },\n): boolean {\n const value = process.env[key];\n if (value === undefined) return defaultValue;\n const lower = value.toLowerCase();\n return !(\n lower === \"\" ||\n lower === \"0\" ||\n lower === \"f\" ||\n lower === \"false\" ||\n lower === \"n\" ||\n lower === \"no\"\n );\n}\n\nexport function isDatadogForwardingEnabled(): boolean {\n return (\n envBoolean(DATADOG_TRANSPORT.ENV.FORWARDING, { defaultValue: false }) &&\n !!process.env[DATADOG_TRANSPORT.ENV.API_KEY]\n );\n}\n\ninterface DatadogLogEntry {\n ddsource: string;\n ddtags: string;\n hostname: string;\n message: string;\n service: string;\n status: string;\n [key: string]: unknown;\n}\n\nclass DatadogLogTransport {\n private _beforeExitHandler: (() => void) | null = null;\n private _buffer: DatadogLogEntry[] = [];\n private _flushTimer: ReturnType<typeof setInterval> | null = null;\n private _ddsource: string;\n private _env: string;\n private _hostname: string;\n private _service: string;\n private _site: string;\n\n constructor() {\n const env = process.env;\n this._ddsource =\n env[DATADOG_TRANSPORT.ENV.DD_SOURCE] ||\n env[DATADOG_TRANSPORT.ENV.PROJECT_SOURCE] ||\n \"nodejs\";\n this._env =\n env[DATADOG_TRANSPORT.ENV.DD_ENV] ||\n env[DATADOG_TRANSPORT.ENV.PROJECT_ENV] ||\n \"local\";\n this._hostname =\n env[DATADOG_TRANSPORT.ENV.DD_HOST] ||\n env[DATADOG_TRANSPORT.ENV.PROJECT_HOST] ||\n hostname();\n this._service =\n env[DATADOG_TRANSPORT.ENV.DD_SERVICE] ||\n env[DATADOG_TRANSPORT.ENV.PROJECT_SERVICE] ||\n \"unknown\";\n this._site = env[DATADOG_TRANSPORT.ENV.DD_SITE] || \"datadoghq.com\";\n\n this._flushTimer = setInterval(() => {\n this.flush();\n }, DATADOG_TRANSPORT.FLUSH_INTERVAL_MS);\n // Unref so timer doesn't keep process alive\n if (this._flushTimer && typeof this._flushTimer.unref === \"function\") {\n this._flushTimer.unref();\n }\n\n // Best-effort flush on exit\n this._beforeExitHandler = () => this.flush();\n process.on(\"beforeExit\", this._beforeExitHandler);\n }\n\n send(line: string, level: string): void {\n let message: string = line;\n let extra: Record<string, unknown> = {};\n if (typeof line === \"string\") {\n try {\n const parsed = JSON.parse(line);\n if (parsed && typeof parsed === \"object\") {\n if (parsed.message) {\n message = parsed.message;\n const { message: __, status: _, ...rest } = parsed;\n extra = rest;\n }\n }\n } catch {\n // Not JSON — use line as-is\n }\n }\n const entry: DatadogLogEntry = {\n ddsource: this._ddsource,\n ddtags: `env:${this._env}`,\n hostname: this._hostname,\n message,\n service: this._service,\n status: LEVEL_TO_STATUS[level] || \"info\",\n ...extra,\n };\n this._buffer.push(entry);\n if (this._buffer.length >= DATADOG_TRANSPORT.MAX_BATCH_SIZE) {\n this.flush();\n }\n }\n\n flush(): void {\n if (this._buffer.length === 0) return;\n\n // Atomic swap\n const batch = this._buffer;\n this._buffer = [];\n\n const apiKey = process.env[DATADOG_TRANSPORT.ENV.API_KEY];\n if (!apiKey) return;\n\n const body = JSON.stringify(batch);\n const options = {\n headers: {\n \"Content-Type\": \"application/json\",\n \"DD-API-KEY\": apiKey,\n },\n hostname: `http-intake.logs.${this._site}`,\n method: \"POST\",\n path: DATADOG_TRANSPORT.INTAKE_PATH,\n };\n\n try {\n const req = request(options, () => {\n // Response intentionally ignored\n });\n req.on(\"error\", () => {\n // Silently swallow transport errors\n });\n req.write(body);\n req.end();\n } catch {\n // Transport must never throw\n }\n }\n\n destroy(): void {\n if (this._flushTimer) {\n clearInterval(this._flushTimer);\n this._flushTimer = null;\n }\n if (this._beforeExitHandler) {\n process.removeListener(\"beforeExit\", this._beforeExitHandler);\n this._beforeExitHandler = null;\n }\n try {\n this.flush();\n } catch {\n // Best-effort\n }\n }\n}\n\nlet _instance: DatadogLogTransport | null = null;\n\nexport function getDatadogTransport(): DatadogLogTransport | null {\n if (!isDatadogForwardingEnabled()) return null;\n if (!_instance) {\n _instance = new DatadogLogTransport();\n }\n return _instance;\n}\n\nexport function _resetDatadogTransport(): void {\n if (_instance) {\n _instance.destroy();\n _instance = null;\n }\n}\n","import { LEVEL } from \"./constants\";\nimport { getDatadogTransport } from \"./datadogTransport\";\n\nexport function forceString(value: unknown, defaultValue = \"\"): string {\n if (value === null) return \"null\";\n if (value === undefined) return String(defaultValue);\n if (typeof value === \"object\") return JSON.stringify(value);\n return String(value);\n}\n\nexport function formatAsJsonString(subject: unknown): string {\n const SPACES = 0;\n const UNUSED_PARAM = null;\n\n switch (typeof subject) {\n case \"string\":\n if (subject === \"\") return `\"\"`;\n try {\n return JSON.stringify(JSON.parse(subject), UNUSED_PARAM, SPACES);\n } catch {\n return subject;\n }\n\n case \"object\":\n try {\n if (\n subject &&\n subject instanceof Object &&\n !Array.isArray(subject) &&\n subject.constructor &&\n subject.constructor !== Object &&\n \"toString\" in subject &&\n typeof subject.toString === \"function\"\n ) {\n return subject.toString();\n }\n return JSON.stringify(subject, UNUSED_PARAM, SPACES);\n } catch (error) {\n if (error instanceof TypeError) {\n const truncatedSubject = Object.keys(subject as object).reduce(\n (newSubject: Record<string, string>, key: string) => {\n const nextSubject = { ...newSubject };\n nextSubject[key] = String(\n (subject as Record<string, unknown>)[key],\n );\n return nextSubject;\n },\n {},\n );\n return formatAsJsonString(truncatedSubject);\n }\n throw error;\n }\n\n default:\n return String(subject);\n }\n}\n\nexport function stringify(...params: unknown[]): string {\n if (params.length === 0) return \"\";\n if (params.length === 1) {\n return formatAsJsonString(params[0]);\n }\n\n const formatted = params.map(formatAsJsonString);\n return formatted.join(\" \");\n}\n\nexport function out(\n line: string | unknown,\n { level = \"debug\" }: { level?: string } = {},\n): void {\n let lineStr: string;\n if (typeof line !== \"string\") {\n lineStr = stringify(line);\n } else {\n lineStr = line;\n }\n\n let outputFunction: (...args: unknown[]) => void;\n\n switch (level) {\n case LEVEL.INFO:\n outputFunction = console.info;\n break;\n case LEVEL.WARN:\n outputFunction = console.warn;\n break;\n case LEVEL.ERROR:\n case LEVEL.FATAL:\n outputFunction = console.error;\n break;\n case LEVEL.TRACE:\n case LEVEL.DEBUG:\n outputFunction = console.debug;\n break;\n default:\n outputFunction = console.log;\n break;\n }\n\n try {\n outputFunction(lineStr);\n } catch (error) {\n console.warn(error);\n console.log(lineStr);\n }\n\n try {\n const transport = getDatadogTransport();\n if (transport) {\n transport.send(lineStr, level);\n }\n } catch {\n // Transport errors must never affect logging\n }\n}\n\nexport function parse(message: unknown): unknown {\n if (typeof message !== \"string\") {\n return message;\n }\n try {\n return JSON.parse(message);\n } catch {\n return message;\n }\n}\n\nexport function parsesTo(message: unknown): {\n parses: boolean;\n message: unknown;\n} {\n if (typeof message !== \"string\") {\n return {\n parses: false,\n message,\n };\n }\n try {\n return {\n parses: true,\n message: JSON.parse(message),\n };\n } catch {\n return {\n parses: false,\n message,\n };\n }\n}\n","import {\n DEFAULT,\n ERROR,\n FORMAT,\n LEVEL,\n LEVEL_VALUES,\n PSEUDO_LEVELS,\n} from \"./constants\";\nimport { sanitizeAuth } from \"./sanitizeAuth\";\nimport { forceString, out, parse, parsesTo, stringify } from \"./utils\";\n\ntype LogLevel = string;\ntype LogFormat = \"json\" | \"text\";\ntype Tags = Record<string, string>;\n\ninterface LoggerOptions {\n format?: LogFormat;\n level?: LogLevel;\n levelField?: boolean | string;\n tags?: Tags;\n varLevel?: LogLevel;\n}\n\ninterface LogJson {\n data?: unknown;\n dataType?: string;\n message: string;\n var?: string;\n [key: string]: unknown;\n}\n\ntype LogMethod = {\n (...messages: unknown[]): void;\n var: (messageObject: unknown, messageValue?: unknown) => void;\n};\n\nfunction resolveLevelField(\n value?: boolean | string,\n): false | string {\n if (value === undefined) {\n const env = process.env.LOG_LEVEL_FIELD;\n if (env === undefined || env === \"\") return false;\n if (env === \"false\" || env === \"0\" || env === \"no\") return false;\n if (env === \"true\" || env === \"1\" || env === \"yes\") return \"level\";\n return env;\n }\n if (value === false) return false;\n if (value === true) return \"level\";\n return value;\n}\n\nclass Logger {\n public debug: LogMethod;\n public error: LogMethod;\n public fatal: LogMethod;\n public info: LogMethod;\n public options: LoggerOptions;\n public tags: Tags;\n public trace: LogMethod;\n public var: (messageObject: unknown, messageValue?: unknown) => void;\n public warn: LogMethod;\n private levelField: false | string;\n\n constructor({\n format = (process.env.LOG_FORMAT as LogFormat) || DEFAULT.LEVEL,\n level = process.env.LOG_LEVEL || DEFAULT.LEVEL,\n levelField,\n tags = {},\n varLevel = process.env.LOG_VAR_LEVEL || DEFAULT.VAR_LEVEL,\n }: LoggerOptions = {}) {\n this.levelField = resolveLevelField(levelField);\n this.options = {\n format,\n level,\n levelField: this.levelField || undefined,\n varLevel,\n };\n\n this.tags = {};\n Object.keys(tags).forEach((key) => {\n this.tags[key] = forceString(tags[key]);\n });\n\n this.debug = this.createLogMethod(LEVEL.DEBUG, format, level);\n this.error = this.createLogMethod(LEVEL.ERROR, format, level);\n this.fatal = this.createLogMethod(LEVEL.FATAL, format, level);\n this.info = this.createLogMethod(LEVEL.INFO, format, level);\n this.trace = this.createLogMethod(LEVEL.TRACE, format, level);\n this.warn = this.createLogMethod(LEVEL.WARN, format, level);\n\n const varLevelMethod =\n this[varLevel as \"debug\" | \"error\" | \"fatal\" | \"info\" | \"trace\" | \"warn\"];\n this.var = (varLevelMethod as LogMethod)?.var || this.debug.var;\n }\n\n private createLogMethod(\n logLevel: string,\n format: LogFormat,\n checkLevel: string,\n ): LogMethod {\n const logFn = (...messages: unknown[]): void => {\n if (LEVEL_VALUES[logLevel] <= LEVEL_VALUES[checkLevel]) {\n const sanitized = messages.map(sanitizeAuth);\n if (format === FORMAT.JSON) {\n const message = stringify(...sanitized);\n const parses = parsesTo(message);\n const json: LogJson = {\n message,\n ...this.tags,\n };\n if (parses.parses) {\n json.data = parses.message;\n }\n if (this.levelField) {\n json[this.levelField] = logLevel;\n }\n out(json, { level: logLevel });\n } else {\n const message = stringify(...sanitized);\n out(message, { level: logLevel });\n }\n }\n };\n\n logFn.var = (messageObject: unknown, messageValue?: unknown): void => {\n if (messageObject === undefined) {\n this.warn(ERROR.VAR.UNDEFINED_MESSAGE);\n }\n\n let msgObj: Record<string, unknown>;\n\n if (typeof messageObject !== \"object\" || messageObject === null) {\n if (typeof messageObject !== \"object\") {\n if (messageValue === undefined) messageValue = \"undefined\";\n msgObj = { [String(messageObject)]: messageValue };\n } else {\n this.warn(ERROR.VAR.NULL_OBJECT);\n return logFn(messageObject);\n }\n } else {\n msgObj = sanitizeAuth(messageObject) as Record<string, unknown>;\n }\n\n const keys = Object.keys(msgObj);\n if (keys.length === 0) {\n this.warn(ERROR.VAR.EMPTY_OBJECT);\n return logFn(msgObj);\n }\n\n if (keys.length > 1) {\n this.warn(ERROR.VAR.MULTIPLE_KEYS);\n return logFn(msgObj);\n }\n\n if (format === FORMAT.JSON) {\n const messageKey = keys[0];\n const messageVal = msgObj[messageKey];\n\n const json: LogJson = {\n data: parse(messageVal),\n dataType: typeof messageVal,\n message: stringify(messageVal),\n var: messageKey,\n ...this.tags,\n };\n if (this.levelField) {\n json[this.levelField] = logLevel;\n }\n\n if (LEVEL_VALUES[logLevel] <= LEVEL_VALUES[checkLevel]) {\n out(json, { level: logLevel });\n }\n } else {\n return logFn(msgObj);\n }\n };\n\n return logFn as LogMethod;\n }\n\n public tag(key: unknown, value?: unknown): void {\n if (value) {\n this.tags[forceString(key)] = forceString(value);\n return;\n }\n\n if (Array.isArray(key)) {\n key.forEach((k) => {\n this.tags[forceString(k)] = \"\";\n });\n return;\n }\n\n if (key === null) {\n this.tags.null = \"\";\n return;\n }\n\n if (typeof key === \"object\") {\n Object.keys(key).forEach((k) => {\n this.tags[forceString(k)] = forceString(\n (key as Record<string, unknown>)[k],\n );\n });\n } else {\n this.tags[forceString(key)] = \"\";\n }\n }\n\n public untag(key: unknown): void {\n if (Array.isArray(key)) {\n key.forEach((k) => {\n delete this.tags[forceString(k)];\n });\n return;\n }\n\n if (key === null) {\n delete this.tags.null;\n return;\n }\n\n if (typeof key === \"object\") {\n Object.keys(key as object).forEach((k) => {\n delete this.tags[forceString(k)];\n });\n } else {\n delete this.tags[forceString(key)];\n }\n }\n\n public with(key: unknown, value?: unknown): Logger {\n const logger = new Logger(this.options);\n logger.tag(this.tags);\n logger.tag(key, value);\n return logger;\n }\n}\n\nexport default Logger;\n","export function logTags(\n withTags?: Record<string, string>,\n): Record<string, string> {\n if (withTags && typeof withTags !== \"object\") {\n withTags = {};\n }\n\n const {\n PROJECT_COMMIT,\n PROJECT_ENV,\n PROJECT_KEY,\n PROJECT_SERVICE,\n PROJECT_SPONSOR,\n PROJECT_VERSION,\n } = process.env;\n\n const tags: Record<string, string> = {};\n\n if (PROJECT_COMMIT) {\n tags.commit = PROJECT_COMMIT;\n }\n if (PROJECT_ENV) {\n tags.env = PROJECT_ENV;\n }\n if (PROJECT_KEY) {\n tags.project = PROJECT_KEY;\n }\n if (PROJECT_SERVICE) {\n tags.service = PROJECT_SERVICE;\n }\n if (PROJECT_SPONSOR) {\n tags.sponsor = PROJECT_SPONSOR;\n }\n if (process.env.npm_package_version || PROJECT_VERSION) {\n tags.version = (process.env.npm_package_version ||\n PROJECT_VERSION) as string;\n }\n\n return {\n ...tags,\n ...withTags,\n };\n}\n","import { forceString } from \"./utils\";\n\nexport function forceVar(\n key: unknown,\n value?: unknown,\n): Record<string, unknown> {\n if (typeof key === \"undefined\") {\n return {};\n }\n if (typeof key === \"object\" && key !== null) {\n if (Object.keys(key).length === 1) {\n return key as Record<string, unknown>;\n } else {\n return { value: key };\n }\n }\n const keyStr = forceString(key);\n if (typeof value === \"undefined\") {\n return { [keyStr]: \"\" };\n } else {\n return { [keyStr]: value };\n }\n}\n","interface Pipeline {\n key: string;\n filter: (value: unknown) => unknown;\n}\n\nfunction isAxiosResponse(response: unknown): boolean {\n if (typeof response !== \"object\" || response === null) {\n return false;\n }\n const r = response as Record<string, unknown>;\n return !!(\n r &&\n r.config &&\n r.data &&\n r.headers &&\n r.request &&\n r.status &&\n r.statusText\n );\n}\n\nfunction filterAxiosResponse(response: unknown): unknown {\n if (!isAxiosResponse(response)) {\n return response;\n }\n const r = response as Record<string, unknown>;\n const newResponse: Record<string, unknown> = {\n data: r.data,\n headers: r.headers,\n status: r.status,\n statusText: r.statusText,\n };\n if (r.isAxiosError) {\n newResponse.isAxiosError = r.isAxiosError;\n }\n return newResponse;\n}\n\nexport const axiosResponseVarPipeline: Pipeline = {\n filter: filterAxiosResponse,\n key: \"response\",\n};\n\nfunction isError(item: unknown): boolean {\n if (typeof item !== \"object\" || item === null) {\n return false;\n }\n if (item instanceof Error) {\n return true;\n }\n const i = item as Record<string, unknown>;\n if (i.isProjectError) {\n return true;\n }\n return false;\n}\n\nfunction filterErrorVar(item: unknown): unknown {\n if (!isError(item)) {\n return item;\n }\n const e = item as Error & Record<string, unknown>;\n const newItem: Record<string, unknown> = {\n message: e.message,\n name: e.name,\n };\n if (e.cause) {\n newItem.cause = e.cause;\n }\n if (e.stack) {\n newItem.stack = e.stack;\n }\n if (e.isProjectError) {\n newItem.isProjectError = e.isProjectError;\n newItem.title = e.title;\n newItem.detail = e.detail;\n newItem.status = e.status;\n }\n return newItem;\n}\n\nexport const errorVarPipeline: Pipeline = {\n filter: filterErrorVar,\n key: \"error\",\n};\n\nexport const pipelines = [axiosResponseVarPipeline, errorVarPipeline];\n","import { forceVar } from \"./forceVar\";\nimport { pipelines } from \"./pipelines\";\n\nfunction keyValueToArray(keyValue: Record<string, unknown>): [string, unknown] {\n const key = Object.keys(keyValue)[0];\n return [key, keyValue[key]];\n}\n\nexport function logVar(key: unknown, value?: unknown): Record<string, unknown> {\n let [k, v] = keyValueToArray(forceVar(key, value));\n\n for (const pipeline of pipelines) {\n if (k === pipeline.key) {\n v = pipeline.filter(v);\n }\n }\n\n return { [k]: v };\n}\n","import Logger from \"./Logger\";\nimport { DEFAULT, FORMAT, LEVEL } from \"./constants\";\nimport { _resetDatadogTransport } from \"./datadogTransport\";\nimport { logTags } from \"./logTags\";\nimport { logVar } from \"./logVar\";\n\ninterface JaypieLoggerOptions {\n level?: string;\n tags?: Record<string, string>;\n}\n\nfunction envBoolean(\n key: string,\n { defaultValue }: { defaultValue: boolean },\n): boolean {\n const value = process.env[key];\n if (value === undefined) return defaultValue;\n const lower = value.toLowerCase();\n return !(\n lower === \"\" ||\n lower === \"0\" ||\n lower === \"f\" ||\n lower === \"false\" ||\n lower === \"n\" ||\n lower === \"no\"\n );\n}\n\nclass JaypieLogger {\n public debug: Logger[\"debug\"];\n public error: Logger[\"error\"];\n public fatal: Logger[\"fatal\"];\n public info: Logger[\"info\"];\n public level: string;\n public trace: Logger[\"trace\"];\n public var: Logger[\"var\"];\n public warn: Logger[\"warn\"];\n\n private _logger: Logger;\n private _loggers: Logger[];\n private _params: JaypieLoggerOptions;\n private _tags: Record<string, string>;\n private _withLoggers: Record<string, JaypieLogger>;\n\n constructor({\n level = process.env.LOG_LEVEL,\n tags = {},\n }: JaypieLoggerOptions = {}) {\n this._params = { level, tags };\n this._loggers = [];\n this._tags = {};\n this._withLoggers = {};\n\n this.level = level || DEFAULT.LEVEL;\n\n this._tags = { ...logTags(), ...tags };\n this._logger = new Logger({\n format: FORMAT.JSON,\n level: this.level,\n tags: this._tags,\n });\n this._loggers = [this._logger];\n\n this.debug = ((...args: any[]) =>\n this._logger.debug(...args)) as Logger[\"debug\"];\n this.debug.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.debug.var(messageObject, messageValue);\n\n this.error = ((...args: any[]) =>\n this._logger.error(...args)) as Logger[\"error\"];\n this.error.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.error.var(messageObject, messageValue);\n\n this.fatal = ((...args: any[]) =>\n this._logger.fatal(...args)) as Logger[\"fatal\"];\n this.fatal.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.fatal.var(messageObject, messageValue);\n\n this.info = ((...args: any[]) =>\n this._logger.info(...args)) as Logger[\"info\"];\n this.info.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.info.var(messageObject, messageValue);\n\n this.trace = ((...args: any[]) =>\n this._logger.trace(...args)) as Logger[\"trace\"];\n this.trace.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.trace.var(messageObject, messageValue);\n\n this.warn = ((...args: any[]) =>\n this._logger.warn(...args)) as Logger[\"warn\"];\n this.warn.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.warn.var(messageObject, messageValue);\n\n this.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.var(logVar(messageObject, messageValue));\n }\n\n public init(): void {\n _resetDatadogTransport();\n for (const logger of this._loggers) {\n if (\"init\" in logger && typeof logger.init === \"function\") {\n (logger as Logger & { init: () => void }).init();\n }\n }\n const level = this._params.level;\n const tags = this._params.tags;\n this.level = level || DEFAULT.LEVEL;\n this._tags = { ...logTags(), ...tags };\n this._logger = new Logger({\n format: FORMAT.JSON,\n level: this.level,\n tags: this._tags,\n });\n this._loggers = [this._logger];\n this._withLoggers = {};\n\n const levels = [\n \"debug\",\n \"error\",\n \"fatal\",\n \"info\",\n \"trace\",\n \"warn\",\n ] as const;\n levels.forEach((lvl) => {\n this[lvl] = ((...args: any[]) => {\n this._logger[lvl](...args);\n }) as any;\n this[lvl].var = (messageObject: unknown, messageValue?: unknown) => {\n this._logger[lvl].var(messageObject, messageValue);\n };\n });\n }\n\n public lib({\n level,\n lib,\n tags = {},\n }: {\n level?: string;\n lib?: string;\n tags?: Record<string, string>;\n } = {}): JaypieLogger {\n const newTags = Object.assign({}, this._tags, tags);\n if (lib) {\n newTags.lib = lib;\n }\n\n const logger = new JaypieLogger({\n level: (() => {\n if (level) {\n return level;\n }\n if (process.env.MODULE_LOG_LEVEL) {\n return process.env.MODULE_LOG_LEVEL;\n }\n if (envBoolean(\"MODULE_LOGGER\", { defaultValue: false })) {\n return process.env.LOG_LEVEL;\n }\n return LEVEL.SILENT;\n })(),\n tags: newTags,\n });\n this._loggers.push(logger._logger);\n return logger;\n }\n\n public tag(tags: Record<string, unknown>): void {\n for (const logger of this._loggers) {\n logger.tag(tags);\n }\n Object.assign(this._tags, tags);\n }\n\n public untag(key: unknown): void {\n for (const logger of this._loggers) {\n logger.untag(key);\n }\n if (Array.isArray(key)) {\n key.forEach((k) => {\n delete this._tags[String(k)];\n });\n } else if (typeof key === \"object\" && key !== null) {\n Object.keys(key).forEach((k) => {\n delete this._tags[k];\n });\n } else {\n delete this._tags[String(key)];\n }\n }\n\n public with(key: unknown, value?: unknown): JaypieLogger {\n if (!key || (typeof key !== \"object\" && value === undefined)) {\n throw new Error(\n \"ConfigurationError: with() requires an object argument or key-value pair\",\n );\n }\n const loggerKey = JSON.stringify([key, value]);\n if (Object.keys(this._withLoggers).includes(loggerKey)) {\n return this._withLoggers[loggerKey];\n }\n const logger = new JaypieLogger({\n level: this.level,\n tags: { ...this._tags },\n });\n logger._logger = this._logger.with(key, value);\n logger._loggers = [logger._logger];\n this._withLoggers[loggerKey] = logger;\n this._loggers.push(logger._logger);\n return logger;\n }\n}\n\nexport function createLogger(tags: Record<string, string> = {}): JaypieLogger {\n const jaypieLogger = new JaypieLogger({\n tags,\n });\n return jaypieLogger;\n}\n\nexport default JaypieLogger;\n","import Logger from \"./Logger\";\nimport { createLogger } from \"./JaypieLogger\";\nimport { FORMAT, LEVEL } from \"./constants\";\nimport {\n _resetDatadogTransport,\n getDatadogTransport,\n isDatadogForwardingEnabled,\n} from \"./datadogTransport\";\nimport { redactAuth, sanitizeAuth } from \"./sanitizeAuth\";\n\nexport {\n FORMAT,\n LEVEL,\n Logger,\n _resetDatadogTransport,\n createLogger,\n getDatadogTransport,\n isDatadogForwardingEnabled,\n redactAuth,\n sanitizeAuth,\n};\n\nexport const log = createLogger();\n\nexport default log;\n"],"names":["envBoolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/constants.ts","../../../src/pipelines.ts","../../../src/sanitizeAuth.ts","../../../src/datadogTransport.ts","../../../src/utils.ts","../../../src/Logger.ts","../../../src/logTags.ts","../../../src/forceVar.ts","../../../src/logVar.ts","../../../src/JaypieLogger.ts","../../../src/index.ts"],"sourcesContent":["export const DEFAULT = {\n LEVEL: \"debug\",\n VAR_LEVEL: \"debug\",\n};\n\nexport const ERROR_PREFIX = \"[logger]\";\n\nexport const ERROR = {\n VAR: {\n EMPTY_OBJECT: `${ERROR_PREFIX} Logger.var() called with empty object`,\n MULTIPLE_KEYS: `${ERROR_PREFIX} Logger.var() called with multiple keys`,\n NULL_OBJECT: `${ERROR_PREFIX} Logger.var() called with null`,\n UNDEFINED_MESSAGE: `${ERROR_PREFIX} Logger.var() called with \\`undefined\\` message`,\n },\n};\n\nexport const FORMAT = {\n JSON: \"json\",\n TEXT: \"text\",\n} as const;\n\nexport const LEVEL = {\n ALL: \"all\",\n DEBUG: \"debug\",\n ERROR: \"error\",\n FATAL: \"fatal\",\n INFO: \"info\",\n SILENT: \"silent\",\n TRACE: \"trace\",\n WARN: \"warn\",\n} as const;\n\nexport const LEVEL_VALUES: Record<string, number> = {\n all: 100,\n debug: 70,\n error: 10,\n fatal: 1,\n info: 50,\n none: 0,\n silent: 0,\n trace: 90,\n warn: 30,\n};\n\nexport const DATADOG_TRANSPORT = {\n ENV: {\n API_KEY: \"DATADOG_API_KEY\",\n DD_ENV: \"DD_ENV\",\n DD_HOST: \"DD_HOST\",\n DD_SERVICE: \"DD_SERVICE\",\n DD_SITE: \"DD_SITE\",\n DD_SOURCE: \"DD_SOURCE\",\n FORWARDING: \"DATADOG_LOCAL_FORWARDING\",\n PROJECT_ENV: \"PROJECT_ENV\",\n PROJECT_HOST: \"PROJECT_HOST\",\n PROJECT_SERVICE: \"PROJECT_SERVICE\",\n PROJECT_SOURCE: \"PROJECT_SOURCE\",\n },\n FLUSH_INTERVAL_MS: 5000,\n INTAKE_PATH: \"/api/v2/logs\",\n MAX_BATCH_SIZE: 100,\n} as const;\n\nexport const PSEUDO_LEVELS = [\"ALL\", \"SILENT\"];\n","interface Pipeline {\n key: string;\n filter: (value: unknown) => unknown;\n}\n\n//\n// Key-based pipelines (match on var key name)\n//\n\nfunction isAxiosResponse(response: unknown): boolean {\n if (typeof response !== \"object\" || response === null) {\n return false;\n }\n const r = response as Record<string, unknown>;\n return !!(\n r &&\n r.config &&\n r.data &&\n r.headers &&\n r.request &&\n r.status &&\n r.statusText\n );\n}\n\nfunction filterAxiosResponse(response: unknown): unknown {\n if (!isAxiosResponse(response)) {\n return response;\n }\n const r = response as Record<string, unknown>;\n const newResponse: Record<string, unknown> = {\n data: r.data,\n headers: r.headers,\n status: r.status,\n statusText: r.statusText,\n };\n if (r.isAxiosError) {\n newResponse.isAxiosError = r.isAxiosError;\n }\n return newResponse;\n}\n\nexport const axiosResponseVarPipeline: Pipeline = {\n filter: filterAxiosResponse,\n key: \"response\",\n};\n\nexport const pipelines = [axiosResponseVarPipeline];\n\n//\n// Type-based filters (run on any key, match on value shape)\n//\n\ninterface TypeFilter {\n detect: (value: unknown) => boolean;\n filter: (value: unknown) => unknown;\n}\n\n// Fetch Response\n\nfunction isFetchResponse(value: unknown): boolean {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n const r = value as Record<string, unknown>;\n return !!(\n typeof r.ok === \"boolean\" &&\n typeof r.status === \"number\" &&\n typeof r.statusText === \"string\" &&\n \"headers\" in r &&\n \"body\" in r &&\n typeof r.url === \"string\" &&\n !(\"config\" in r) &&\n !(\"request\" in r)\n );\n}\n\nfunction headersToObject(headers: unknown): Record<string, string> | unknown {\n if (\n headers &&\n typeof headers === \"object\" &&\n typeof (headers as Record<string, unknown>).entries === \"function\"\n ) {\n const result: Record<string, string> = {};\n for (const [key, value] of (headers as Headers).entries()) {\n result[key] = value;\n }\n return result;\n }\n return headers;\n}\n\nfunction filterFetchResponse(value: unknown): unknown {\n const r = value as Record<string, unknown>;\n return {\n headers: headersToObject(r.headers),\n ok: r.ok,\n redirected: r.redirected,\n status: r.status,\n statusText: r.statusText,\n type: r.type,\n url: r.url,\n };\n}\n\n// Error\n\nfunction isError(value: unknown): boolean {\n if (typeof value !== \"object\" || value === null) {\n return false;\n }\n if (value instanceof Error) {\n return true;\n }\n const i = value as Record<string, unknown>;\n if (i.isProjectError) {\n return true;\n }\n return false;\n}\n\nfunction filterError(value: unknown): unknown {\n const e = value as Error & Record<string, unknown>;\n const newItem: Record<string, unknown> = {\n message: e.message,\n name: e.name,\n };\n if (e.cause) {\n newItem.cause = e.cause;\n }\n if (e.stack) {\n newItem.stack = e.stack;\n }\n if (e.isProjectError) {\n newItem.isProjectError = e.isProjectError;\n newItem.title = e.title;\n newItem.detail = e.detail;\n newItem.status = e.status;\n }\n return newItem;\n}\n\n// Type filter registry (order matters — first match wins)\n\nconst typeFilters: TypeFilter[] = [\n { detect: isFetchResponse, filter: filterFetchResponse },\n { detect: isError, filter: filterError },\n];\n\n//\n// Opaque object detection and generic extraction\n//\n\nfunction isOpaqueObject(value: unknown): boolean {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return false;\n }\n // Plain objects are fine\n if (value.constructor === Object || value.constructor === undefined) {\n return false;\n }\n // If JSON.stringify produces \"{}\" the object has no own enumerable properties\n // and will log as useless \"[object Type]\"\n try {\n const json = JSON.stringify(value);\n return json === \"{}\" || json === \"[]\";\n } catch {\n return true;\n }\n}\n\nfunction extractOpaqueObject(value: unknown): Record<string, unknown> {\n const obj = value as object;\n const result: Record<string, unknown> = {};\n\n const ctorName = obj.constructor?.name;\n if (ctorName && ctorName !== \"Object\") {\n result._type = ctorName;\n }\n\n // If the object itself is map-like (Headers, URLSearchParams, FormData, etc.),\n // convert its entries directly\n const mapLike = obj as Record<string, unknown>;\n if (\n typeof mapLike.entries === \"function\" &&\n typeof mapLike.forEach === \"function\"\n ) {\n try {\n const entries = Object.fromEntries(\n (mapLike as { entries: () => Iterable<[string, unknown]> }).entries(),\n );\n return { ...result, ...entries };\n } catch {\n // Fall through to generic extraction\n }\n }\n\n // Collect readable non-function properties from the prototype chain\n let proto: object | null = obj;\n while (proto && proto !== Object.prototype) {\n for (const key of Object.getOwnPropertyNames(proto)) {\n if (key === \"constructor\" || key in result) {\n continue;\n }\n try {\n const desc = Object.getOwnPropertyDescriptor(proto, key);\n if (!desc) continue;\n // Read getters and value properties from the original object\n const val = (obj as Record<string, unknown>)[key];\n if (typeof val === \"function\" || typeof val === \"symbol\") {\n continue;\n }\n // Skip streams and other non-serializable objects\n if (\n val &&\n typeof val === \"object\" &&\n typeof (val as Record<string, unknown>).pipe === \"function\"\n ) {\n continue;\n }\n // Convert iterable map-like objects (Headers, URLSearchParams, etc.)\n if (\n val &&\n typeof val === \"object\" &&\n typeof (val as Record<string, unknown>).entries === \"function\" &&\n typeof (val as Record<string, unknown>).forEach === \"function\"\n ) {\n result[key] = Object.fromEntries(\n (val as { entries: () => Iterable<[string, unknown]> }).entries(),\n );\n continue;\n }\n result[key] = val;\n } catch {\n // Property threw on access — skip\n }\n }\n proto = Object.getPrototypeOf(proto);\n }\n\n return result;\n}\n\n//\n// Public API\n//\n\n/**\n * Filter a value by type, regardless of var key name.\n * Tries known type filters first, then falls back to generic\n * opaque object extraction for anything that would log as [object Type].\n */\nexport function filterByType(value: unknown): unknown {\n // Try known type filters\n for (const tf of typeFilters) {\n if (tf.detect(value)) {\n return tf.filter(value);\n }\n }\n // Generic fallback for opaque objects\n if (isOpaqueObject(value)) {\n return extractOpaqueObject(value);\n }\n return value;\n}\n\n// Legacy exports for key-based pipeline (axios only now)\nexport const errorVarPipeline: Pipeline = {\n filter: (item: unknown) => {\n if (!isError(item)) return item;\n return filterError(item);\n },\n key: \"error\",\n};\n","import { createHash } from \"node:crypto\";\n\n//\n//\n// Helper\n//\n\nexport function redactAuth(value: unknown): string {\n const str = String(value);\n if (/sk\\S+/.test(str)) {\n return `sk_${str.slice(-4)}`;\n }\n const hash = createHash(\"md5\").update(str).digest(\"hex\");\n return `md5_${hash.slice(-4)}`;\n}\n\n//\n//\n// Main\n//\n\nexport function sanitizeAuth(value: unknown): unknown {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n return value;\n }\n\n const obj = value as Record<string, unknown>;\n let clone: Record<string, unknown> | undefined;\n\n for (const key of Object.keys(obj)) {\n const lower = key.toLowerCase();\n\n if (lower === \"authorization\") {\n if (!clone) clone = { ...obj };\n clone[key] = redactAuth(obj[key]);\n } else if (lower === \"headers\") {\n const headers = obj[key];\n if (\n typeof headers === \"object\" &&\n headers !== null &&\n !Array.isArray(headers)\n ) {\n const hdrs = headers as Record<string, unknown>;\n for (const hKey of Object.keys(hdrs)) {\n if (hKey.toLowerCase() === \"authorization\") {\n if (!clone) clone = { ...obj };\n const clonedHeaders = { ...hdrs };\n clonedHeaders[hKey] = redactAuth(hdrs[hKey]);\n clone[key] = clonedHeaders;\n break;\n }\n }\n }\n }\n }\n\n return clone ?? value;\n}\n","import { hostname } from \"node:os\";\nimport { request } from \"node:https\";\n\nimport { DATADOG_TRANSPORT, LEVEL } from \"./constants\";\n\n// Level-to-Datadog status mapping\nconst LEVEL_TO_STATUS: Record<string, string> = {\n [LEVEL.TRACE]: \"debug\",\n [LEVEL.DEBUG]: \"debug\",\n [LEVEL.INFO]: \"info\",\n [LEVEL.WARN]: \"warn\",\n [LEVEL.ERROR]: \"error\",\n [LEVEL.FATAL]: \"critical\",\n};\n\nfunction envBoolean(\n key: string,\n { defaultValue }: { defaultValue: boolean },\n): boolean {\n const value = process.env[key];\n if (value === undefined) return defaultValue;\n const lower = value.toLowerCase();\n return !(\n lower === \"\" ||\n lower === \"0\" ||\n lower === \"f\" ||\n lower === \"false\" ||\n lower === \"n\" ||\n lower === \"no\"\n );\n}\n\nexport function isDatadogForwardingEnabled(): boolean {\n return (\n envBoolean(DATADOG_TRANSPORT.ENV.FORWARDING, { defaultValue: false }) &&\n !!process.env[DATADOG_TRANSPORT.ENV.API_KEY]\n );\n}\n\ninterface DatadogLogEntry {\n ddsource: string;\n ddtags: string;\n hostname: string;\n message: string;\n service: string;\n status: string;\n [key: string]: unknown;\n}\n\nclass DatadogLogTransport {\n private _beforeExitHandler: (() => void) | null = null;\n private _buffer: DatadogLogEntry[] = [];\n private _flushTimer: ReturnType<typeof setInterval> | null = null;\n private _ddsource: string;\n private _env: string;\n private _hostname: string;\n private _service: string;\n private _site: string;\n\n constructor() {\n const env = process.env;\n this._ddsource =\n env[DATADOG_TRANSPORT.ENV.DD_SOURCE] ||\n env[DATADOG_TRANSPORT.ENV.PROJECT_SOURCE] ||\n \"nodejs\";\n this._env =\n env[DATADOG_TRANSPORT.ENV.DD_ENV] ||\n env[DATADOG_TRANSPORT.ENV.PROJECT_ENV] ||\n \"local\";\n this._hostname =\n env[DATADOG_TRANSPORT.ENV.DD_HOST] ||\n env[DATADOG_TRANSPORT.ENV.PROJECT_HOST] ||\n hostname();\n this._service =\n env[DATADOG_TRANSPORT.ENV.DD_SERVICE] ||\n env[DATADOG_TRANSPORT.ENV.PROJECT_SERVICE] ||\n \"unknown\";\n this._site = env[DATADOG_TRANSPORT.ENV.DD_SITE] || \"datadoghq.com\";\n\n this._flushTimer = setInterval(() => {\n this.flush();\n }, DATADOG_TRANSPORT.FLUSH_INTERVAL_MS);\n // Unref so timer doesn't keep process alive\n if (this._flushTimer && typeof this._flushTimer.unref === \"function\") {\n this._flushTimer.unref();\n }\n\n // Best-effort flush on exit\n this._beforeExitHandler = () => this.flush();\n process.on(\"beforeExit\", this._beforeExitHandler);\n }\n\n send(line: string, level: string): void {\n let message: string = line;\n let extra: Record<string, unknown> = {};\n if (typeof line === \"string\") {\n try {\n const parsed = JSON.parse(line);\n if (parsed && typeof parsed === \"object\") {\n if (parsed.message) {\n message = parsed.message;\n const { message: __, status: _, ...rest } = parsed;\n extra = rest;\n }\n }\n } catch {\n // Not JSON — use line as-is\n }\n }\n const entry: DatadogLogEntry = {\n ddsource: this._ddsource,\n ddtags: `env:${this._env}`,\n hostname: this._hostname,\n message,\n service: this._service,\n status: LEVEL_TO_STATUS[level] || \"info\",\n ...extra,\n };\n this._buffer.push(entry);\n if (this._buffer.length >= DATADOG_TRANSPORT.MAX_BATCH_SIZE) {\n this.flush();\n }\n }\n\n flush(): void {\n if (this._buffer.length === 0) return;\n\n // Atomic swap\n const batch = this._buffer;\n this._buffer = [];\n\n const apiKey = process.env[DATADOG_TRANSPORT.ENV.API_KEY];\n if (!apiKey) return;\n\n const body = JSON.stringify(batch);\n const options = {\n headers: {\n \"Content-Type\": \"application/json\",\n \"DD-API-KEY\": apiKey,\n },\n hostname: `http-intake.logs.${this._site}`,\n method: \"POST\",\n path: DATADOG_TRANSPORT.INTAKE_PATH,\n };\n\n try {\n const req = request(options, () => {\n // Response intentionally ignored\n });\n req.on(\"error\", () => {\n // Silently swallow transport errors\n });\n req.write(body);\n req.end();\n } catch {\n // Transport must never throw\n }\n }\n\n destroy(): void {\n if (this._flushTimer) {\n clearInterval(this._flushTimer);\n this._flushTimer = null;\n }\n if (this._beforeExitHandler) {\n process.removeListener(\"beforeExit\", this._beforeExitHandler);\n this._beforeExitHandler = null;\n }\n try {\n this.flush();\n } catch {\n // Best-effort\n }\n }\n}\n\nlet _instance: DatadogLogTransport | null = null;\n\nexport function getDatadogTransport(): DatadogLogTransport | null {\n if (!isDatadogForwardingEnabled()) return null;\n if (!_instance) {\n _instance = new DatadogLogTransport();\n }\n return _instance;\n}\n\nexport function _resetDatadogTransport(): void {\n if (_instance) {\n _instance.destroy();\n _instance = null;\n }\n}\n","import { LEVEL } from \"./constants\";\nimport { getDatadogTransport } from \"./datadogTransport\";\n\nexport function forceString(value: unknown, defaultValue = \"\"): string {\n if (value === null) return \"null\";\n if (value === undefined) return String(defaultValue);\n if (typeof value === \"object\") return JSON.stringify(value);\n return String(value);\n}\n\nexport function formatAsJsonString(subject: unknown): string {\n const SPACES = 0;\n const UNUSED_PARAM = null;\n\n switch (typeof subject) {\n case \"string\":\n if (subject === \"\") return `\"\"`;\n try {\n return JSON.stringify(JSON.parse(subject), UNUSED_PARAM, SPACES);\n } catch {\n return subject;\n }\n\n case \"object\":\n try {\n if (\n subject &&\n subject instanceof Object &&\n !Array.isArray(subject) &&\n subject.constructor &&\n subject.constructor !== Object &&\n \"toString\" in subject &&\n typeof subject.toString === \"function\"\n ) {\n return subject.toString();\n }\n return JSON.stringify(subject, UNUSED_PARAM, SPACES);\n } catch (error) {\n if (error instanceof TypeError) {\n const truncatedSubject = Object.keys(subject as object).reduce(\n (newSubject: Record<string, string>, key: string) => {\n const nextSubject = { ...newSubject };\n nextSubject[key] = String(\n (subject as Record<string, unknown>)[key],\n );\n return nextSubject;\n },\n {},\n );\n return formatAsJsonString(truncatedSubject);\n }\n throw error;\n }\n\n default:\n return String(subject);\n }\n}\n\nexport function stringify(...params: unknown[]): string {\n if (params.length === 0) return \"\";\n if (params.length === 1) {\n return formatAsJsonString(params[0]);\n }\n\n const formatted = params.map(formatAsJsonString);\n return formatted.join(\" \");\n}\n\nexport function out(\n line: string | unknown,\n { level = \"debug\" }: { level?: string } = {},\n): void {\n let lineStr: string;\n if (typeof line !== \"string\") {\n lineStr = stringify(line);\n } else {\n lineStr = line;\n }\n\n let outputFunction: (...args: unknown[]) => void;\n\n switch (level) {\n case LEVEL.INFO:\n outputFunction = console.info;\n break;\n case LEVEL.WARN:\n outputFunction = console.warn;\n break;\n case LEVEL.ERROR:\n case LEVEL.FATAL:\n outputFunction = console.error;\n break;\n case LEVEL.TRACE:\n case LEVEL.DEBUG:\n outputFunction = console.debug;\n break;\n default:\n outputFunction = console.log;\n break;\n }\n\n try {\n outputFunction(lineStr);\n } catch (error) {\n console.warn(error);\n console.log(lineStr);\n }\n\n try {\n const transport = getDatadogTransport();\n if (transport) {\n transport.send(lineStr, level);\n }\n } catch {\n // Transport errors must never affect logging\n }\n}\n\nexport function parse(message: unknown): unknown {\n if (typeof message !== \"string\") {\n return message;\n }\n try {\n return JSON.parse(message);\n } catch {\n return message;\n }\n}\n\nexport function parsesTo(message: unknown): {\n parses: boolean;\n message: unknown;\n} {\n if (typeof message !== \"string\") {\n return {\n parses: false,\n message,\n };\n }\n try {\n return {\n parses: true,\n message: JSON.parse(message),\n };\n } catch {\n return {\n parses: false,\n message,\n };\n }\n}\n","import {\n DEFAULT,\n ERROR,\n FORMAT,\n LEVEL,\n LEVEL_VALUES,\n PSEUDO_LEVELS,\n} from \"./constants\";\nimport { filterByType, pipelines } from \"./pipelines\";\nimport { sanitizeAuth } from \"./sanitizeAuth\";\nimport { forceString, out, parse, parsesTo, stringify } from \"./utils\";\n\ntype LogLevel = string;\ntype LogFormat = \"json\" | \"text\";\ntype Tags = Record<string, string>;\n\ninterface LoggerOptions {\n format?: LogFormat;\n level?: LogLevel;\n levelField?: boolean | string;\n tags?: Tags;\n varLevel?: LogLevel;\n}\n\ninterface LogJson {\n data?: unknown;\n dataType?: string;\n message: string;\n var?: string;\n [key: string]: unknown;\n}\n\ntype LogMethod = {\n (...messages: unknown[]): void;\n var: (messageObject: unknown, messageValue?: unknown) => void;\n};\n\nfunction resolveLevelField(value?: boolean | string): false | string {\n if (value === undefined) {\n const env = process.env.LOG_LEVEL_FIELD;\n if (env === undefined || env === \"\") return false;\n if (env === \"false\" || env === \"0\" || env === \"no\") return false;\n if (env === \"true\" || env === \"1\" || env === \"yes\") return \"level\";\n return env;\n }\n if (value === false) return false;\n if (value === true) return \"level\";\n return value;\n}\n\nclass Logger {\n public debug: LogMethod;\n public error: LogMethod;\n public fatal: LogMethod;\n public info: LogMethod;\n public options: LoggerOptions;\n public tags: Tags;\n public trace: LogMethod;\n public var: (messageObject: unknown, messageValue?: unknown) => void;\n public warn: LogMethod;\n private levelField: false | string;\n\n constructor({\n format = (process.env.LOG_FORMAT as LogFormat) || DEFAULT.LEVEL,\n level = process.env.LOG_LEVEL || DEFAULT.LEVEL,\n levelField,\n tags = {},\n varLevel = process.env.LOG_VAR_LEVEL || DEFAULT.VAR_LEVEL,\n }: LoggerOptions = {}) {\n this.levelField = resolveLevelField(levelField);\n this.options = {\n format,\n level,\n levelField: this.levelField || undefined,\n varLevel,\n };\n\n this.tags = {};\n Object.keys(tags).forEach((key) => {\n this.tags[key] = forceString(tags[key]);\n });\n\n this.debug = this.createLogMethod(LEVEL.DEBUG, format, level);\n this.error = this.createLogMethod(LEVEL.ERROR, format, level);\n this.fatal = this.createLogMethod(LEVEL.FATAL, format, level);\n this.info = this.createLogMethod(LEVEL.INFO, format, level);\n this.trace = this.createLogMethod(LEVEL.TRACE, format, level);\n this.warn = this.createLogMethod(LEVEL.WARN, format, level);\n\n const varLevelMethod =\n this[varLevel as \"debug\" | \"error\" | \"fatal\" | \"info\" | \"trace\" | \"warn\"];\n this.var = (varLevelMethod as LogMethod)?.var || this.debug.var;\n }\n\n private createLogMethod(\n logLevel: string,\n format: LogFormat,\n checkLevel: string,\n ): LogMethod {\n const logFn = (...messages: unknown[]): void => {\n if (LEVEL_VALUES[logLevel] <= LEVEL_VALUES[checkLevel]) {\n const sanitized = messages.map(sanitizeAuth);\n if (format === FORMAT.JSON) {\n const message = stringify(...sanitized);\n const parses = parsesTo(message);\n const json: LogJson = {\n message,\n ...this.tags,\n };\n if (parses.parses) {\n json.data = parses.message;\n }\n if (this.levelField) {\n json[this.levelField] = logLevel;\n }\n out(json, { level: logLevel });\n } else {\n const message = stringify(...sanitized);\n out(message, { level: logLevel });\n }\n }\n };\n\n logFn.var = (messageObject: unknown, messageValue?: unknown): void => {\n if (messageObject === undefined) {\n this.warn(ERROR.VAR.UNDEFINED_MESSAGE);\n }\n\n let msgObj: Record<string, unknown>;\n\n if (typeof messageObject !== \"object\" || messageObject === null) {\n if (typeof messageObject !== \"object\") {\n if (messageValue === undefined) messageValue = \"undefined\";\n msgObj = { [String(messageObject)]: messageValue };\n } else {\n this.warn(ERROR.VAR.NULL_OBJECT);\n return logFn(messageObject);\n }\n } else {\n msgObj = sanitizeAuth(messageObject) as Record<string, unknown>;\n }\n\n const keys = Object.keys(msgObj);\n if (keys.length === 0) {\n this.warn(ERROR.VAR.EMPTY_OBJECT);\n return logFn(msgObj);\n }\n\n if (keys.length > 1) {\n this.warn(ERROR.VAR.MULTIPLE_KEYS);\n return logFn(msgObj);\n }\n\n if (format === FORMAT.JSON) {\n const messageKey = keys[0];\n let messageVal = msgObj[messageKey];\n\n for (const pipeline of pipelines) {\n if (messageKey === pipeline.key) {\n messageVal = pipeline.filter(messageVal);\n }\n }\n messageVal = filterByType(messageVal);\n\n const json: LogJson = {\n data: parse(messageVal),\n dataType: typeof messageVal,\n message: stringify(messageVal),\n var: messageKey,\n ...this.tags,\n };\n if (this.levelField) {\n json[this.levelField] = logLevel;\n }\n\n if (LEVEL_VALUES[logLevel] <= LEVEL_VALUES[checkLevel]) {\n out(json, { level: logLevel });\n }\n } else {\n return logFn(msgObj);\n }\n };\n\n return logFn as LogMethod;\n }\n\n public tag(key: unknown, value?: unknown): void {\n if (value) {\n this.tags[forceString(key)] = forceString(value);\n return;\n }\n\n if (Array.isArray(key)) {\n key.forEach((k) => {\n this.tags[forceString(k)] = \"\";\n });\n return;\n }\n\n if (key === null) {\n this.tags.null = \"\";\n return;\n }\n\n if (typeof key === \"object\") {\n Object.keys(key).forEach((k) => {\n this.tags[forceString(k)] = forceString(\n (key as Record<string, unknown>)[k],\n );\n });\n } else {\n this.tags[forceString(key)] = \"\";\n }\n }\n\n public untag(key: unknown): void {\n if (Array.isArray(key)) {\n key.forEach((k) => {\n delete this.tags[forceString(k)];\n });\n return;\n }\n\n if (key === null) {\n delete this.tags.null;\n return;\n }\n\n if (typeof key === \"object\") {\n Object.keys(key as object).forEach((k) => {\n delete this.tags[forceString(k)];\n });\n } else {\n delete this.tags[forceString(key)];\n }\n }\n\n public with(key: unknown, value?: unknown): Logger {\n const logger = new Logger(this.options);\n logger.tag(this.tags);\n logger.tag(key, value);\n return logger;\n }\n}\n\nexport default Logger;\n","export function logTags(\n withTags?: Record<string, string>,\n): Record<string, string> {\n if (withTags && typeof withTags !== \"object\") {\n withTags = {};\n }\n\n const {\n PROJECT_COMMIT,\n PROJECT_ENV,\n PROJECT_KEY,\n PROJECT_SERVICE,\n PROJECT_SPONSOR,\n PROJECT_VERSION,\n } = process.env;\n\n const tags: Record<string, string> = {};\n\n if (PROJECT_COMMIT) {\n tags.commit = PROJECT_COMMIT;\n }\n if (PROJECT_ENV) {\n tags.env = PROJECT_ENV;\n }\n if (PROJECT_KEY) {\n tags.project = PROJECT_KEY;\n }\n if (PROJECT_SERVICE) {\n tags.service = PROJECT_SERVICE;\n }\n if (PROJECT_SPONSOR) {\n tags.sponsor = PROJECT_SPONSOR;\n }\n if (process.env.npm_package_version || PROJECT_VERSION) {\n tags.version = (process.env.npm_package_version ||\n PROJECT_VERSION) as string;\n }\n\n return {\n ...tags,\n ...withTags,\n };\n}\n","import { forceString } from \"./utils\";\n\nexport function forceVar(\n key: unknown,\n value?: unknown,\n): Record<string, unknown> {\n if (typeof key === \"undefined\") {\n return {};\n }\n if (typeof key === \"object\" && key !== null) {\n if (Object.keys(key).length === 1) {\n return key as Record<string, unknown>;\n } else {\n return { value: key };\n }\n }\n const keyStr = forceString(key);\n if (typeof value === \"undefined\") {\n return { [keyStr]: \"\" };\n } else {\n return { [keyStr]: value };\n }\n}\n","import { forceVar } from \"./forceVar\";\nimport { filterByType, pipelines } from \"./pipelines\";\n\nfunction keyValueToArray(keyValue: Record<string, unknown>): [string, unknown] {\n const key = Object.keys(keyValue)[0];\n return [key, keyValue[key]];\n}\n\nexport function logVar(key: unknown, value?: unknown): Record<string, unknown> {\n let [k, v] = keyValueToArray(forceVar(key, value));\n\n for (const pipeline of pipelines) {\n if (k === pipeline.key) {\n v = pipeline.filter(v);\n }\n }\n v = filterByType(v);\n\n return { [k]: v };\n}\n","import Logger from \"./Logger\";\nimport { DEFAULT, FORMAT, LEVEL } from \"./constants\";\nimport { _resetDatadogTransport } from \"./datadogTransport\";\nimport { logTags } from \"./logTags\";\nimport { logVar } from \"./logVar\";\n\ninterface JaypieLoggerOptions {\n level?: string;\n tags?: Record<string, string>;\n}\n\nfunction envBoolean(\n key: string,\n { defaultValue }: { defaultValue: boolean },\n): boolean {\n const value = process.env[key];\n if (value === undefined) return defaultValue;\n const lower = value.toLowerCase();\n return !(\n lower === \"\" ||\n lower === \"0\" ||\n lower === \"f\" ||\n lower === \"false\" ||\n lower === \"n\" ||\n lower === \"no\"\n );\n}\n\nclass JaypieLogger {\n public debug: Logger[\"debug\"];\n public error: Logger[\"error\"];\n public fatal: Logger[\"fatal\"];\n public info: Logger[\"info\"];\n public level: string;\n public trace: Logger[\"trace\"];\n public var: Logger[\"var\"];\n public warn: Logger[\"warn\"];\n\n private _errorCount: number = 0;\n private _logger: Logger;\n private _loggers: Logger[];\n private _params: JaypieLoggerOptions;\n private _report: Record<string, unknown> = {};\n private _sessionActive: boolean = false;\n private _tags: Record<string, string>;\n private _warnCount: number = 0;\n private _withLoggers: Record<string, JaypieLogger>;\n\n constructor({\n level = process.env.LOG_LEVEL,\n tags = {},\n }: JaypieLoggerOptions = {}) {\n this._params = { level, tags };\n this._loggers = [];\n this._tags = {};\n this._withLoggers = {};\n\n this.level = level || DEFAULT.LEVEL;\n\n this._tags = { ...logTags(), ...tags };\n this._logger = new Logger({\n format: FORMAT.JSON,\n level: this.level,\n tags: this._tags,\n });\n this._loggers = [this._logger];\n\n this.debug = ((...args: any[]) =>\n this._logger.debug(...args)) as Logger[\"debug\"];\n this.debug.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.debug.var(messageObject, messageValue);\n\n this.error = ((...args: any[]) => {\n if (this._sessionActive) this._errorCount++;\n this._logger.error(...args);\n }) as Logger[\"error\"];\n this.error.var = (messageObject: unknown, messageValue?: unknown) => {\n if (this._sessionActive) this._errorCount++;\n this._logger.error.var(messageObject, messageValue);\n };\n\n this.fatal = ((...args: any[]) =>\n this._logger.fatal(...args)) as Logger[\"fatal\"];\n this.fatal.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.fatal.var(messageObject, messageValue);\n\n this.info = ((...args: any[]) =>\n this._logger.info(...args)) as Logger[\"info\"];\n this.info.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.info.var(messageObject, messageValue);\n\n this.trace = ((...args: any[]) =>\n this._logger.trace(...args)) as Logger[\"trace\"];\n this.trace.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.trace.var(messageObject, messageValue);\n\n this.warn = ((...args: any[]) => {\n if (this._sessionActive) this._warnCount++;\n this._logger.warn(...args);\n }) as Logger[\"warn\"];\n this.warn.var = (messageObject: unknown, messageValue?: unknown) => {\n if (this._sessionActive) this._warnCount++;\n this._logger.warn.var(messageObject, messageValue);\n };\n\n this.var = (messageObject: unknown, messageValue?: unknown) =>\n this._logger.var(logVar(messageObject, messageValue));\n }\n\n public init(): void {\n _resetDatadogTransport();\n for (const logger of this._loggers) {\n if (\"init\" in logger && typeof logger.init === \"function\") {\n (logger as Logger & { init: () => void }).init();\n }\n }\n const level = this._params.level;\n const tags = this._params.tags;\n this.level = level || DEFAULT.LEVEL;\n this._tags = { ...logTags(), ...tags };\n this._logger = new Logger({\n format: FORMAT.JSON,\n level: this.level,\n tags: this._tags,\n });\n this._loggers = [this._logger];\n this._withLoggers = {};\n\n // Reset session state\n this._errorCount = 0;\n this._report = {};\n this._sessionActive = false;\n this._warnCount = 0;\n\n const levels = [\n \"debug\",\n \"error\",\n \"fatal\",\n \"info\",\n \"trace\",\n \"warn\",\n ] as const;\n levels.forEach((lvl) => {\n if (lvl === \"error\") {\n this.error = ((...args: any[]) => {\n if (this._sessionActive) this._errorCount++;\n this._logger.error(...args);\n }) as any;\n this.error.var = (messageObject: unknown, messageValue?: unknown) => {\n if (this._sessionActive) this._errorCount++;\n this._logger.error.var(messageObject, messageValue);\n };\n } else if (lvl === \"warn\") {\n this.warn = ((...args: any[]) => {\n if (this._sessionActive) this._warnCount++;\n this._logger.warn(...args);\n }) as any;\n this.warn.var = (messageObject: unknown, messageValue?: unknown) => {\n if (this._sessionActive) this._warnCount++;\n this._logger.warn.var(messageObject, messageValue);\n };\n } else {\n this[lvl] = ((...args: any[]) => {\n this._logger[lvl](...args);\n }) as any;\n this[lvl].var = (messageObject: unknown, messageValue?: unknown) => {\n this._logger[lvl].var(messageObject, messageValue);\n };\n }\n });\n }\n\n public lib({\n level,\n lib,\n tags = {},\n }: {\n level?: string;\n lib?: string;\n tags?: Record<string, string>;\n } = {}): JaypieLogger {\n const newTags = Object.assign({}, this._tags, tags);\n if (lib) {\n newTags.lib = lib;\n }\n\n const logger = new JaypieLogger({\n level: (() => {\n if (level) {\n return level;\n }\n if (process.env.MODULE_LOG_LEVEL) {\n return process.env.MODULE_LOG_LEVEL;\n }\n if (envBoolean(\"MODULE_LOGGER\", { defaultValue: false })) {\n return process.env.LOG_LEVEL;\n }\n return LEVEL.SILENT;\n })(),\n tags: newTags,\n });\n this._loggers.push(logger._logger);\n return logger;\n }\n\n public report(data: Record<string, unknown>): void {\n if (!this._sessionActive) {\n this.warn(\"[logger] report() called without active session\");\n return;\n }\n for (const key of Object.keys(data)) {\n if (key in this._report) {\n this.warn(`[logger] Overwriting report key: ${key}`);\n }\n }\n Object.assign(this._report, data);\n }\n\n public setup(tags?: Record<string, unknown>): void {\n if (this._sessionActive) {\n this.warn(\"[logger] setup() called while session already active\");\n }\n this._errorCount = 0;\n this._report = {};\n this._sessionActive = true;\n this._warnCount = 0;\n if (tags) {\n this.tag(tags);\n }\n }\n\n public tag(tags: Record<string, unknown>): void {\n for (const logger of this._loggers) {\n logger.tag(tags);\n }\n Object.assign(this._tags, tags);\n }\n\n public teardown(): void {\n if (!this._sessionActive) {\n return;\n }\n const finalReport = {\n ...this._report,\n log: {\n error: this._errorCount > 0,\n errors: this._errorCount,\n warn: this._warnCount > 0,\n warns: this._warnCount,\n },\n };\n this.info.var({ report: finalReport });\n this._errorCount = 0;\n this._report = {};\n this._sessionActive = false;\n this._warnCount = 0;\n }\n\n public untag(key: unknown): void {\n for (const logger of this._loggers) {\n logger.untag(key);\n }\n if (Array.isArray(key)) {\n key.forEach((k) => {\n delete this._tags[String(k)];\n });\n } else if (typeof key === \"object\" && key !== null) {\n Object.keys(key).forEach((k) => {\n delete this._tags[k];\n });\n } else {\n delete this._tags[String(key)];\n }\n }\n\n public with(key: unknown, value?: unknown): JaypieLogger {\n if (!key || (typeof key !== \"object\" && value === undefined)) {\n throw new Error(\n \"ConfigurationError: with() requires an object argument or key-value pair\",\n );\n }\n const loggerKey = JSON.stringify([key, value]);\n if (Object.keys(this._withLoggers).includes(loggerKey)) {\n return this._withLoggers[loggerKey];\n }\n const logger = new JaypieLogger({\n level: this.level,\n tags: { ...this._tags },\n });\n logger._logger = this._logger.with(key, value);\n logger._loggers = [logger._logger];\n this._withLoggers[loggerKey] = logger;\n this._loggers.push(logger._logger);\n return logger;\n }\n}\n\nexport function createLogger(tags: Record<string, string> = {}): JaypieLogger {\n const jaypieLogger = new JaypieLogger({\n tags,\n });\n return jaypieLogger;\n}\n\nexport default JaypieLogger;\n","import Logger from \"./Logger\";\nimport { createLogger } from \"./JaypieLogger\";\nimport { FORMAT, LEVEL } from \"./constants\";\nimport {\n _resetDatadogTransport,\n getDatadogTransport,\n isDatadogForwardingEnabled,\n} from \"./datadogTransport\";\nimport { redactAuth, sanitizeAuth } from \"./sanitizeAuth\";\n\nexport {\n FORMAT,\n LEVEL,\n Logger,\n _resetDatadogTransport,\n createLogger,\n getDatadogTransport,\n isDatadogForwardingEnabled,\n redactAuth,\n sanitizeAuth,\n};\n\nexport const log = createLogger();\n\nexport default log;\n"],"names":["envBoolean"],"mappings":";;;;AAAO,MAAM,OAAO,GAAG;AACrB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,SAAS,EAAE,OAAO;CACnB;AAEM,MAAM,YAAY,GAAG,UAAU;AAE/B,MAAM,KAAK,GAAG;AACnB,IAAA,GAAG,EAAE;QACH,YAAY,EAAE,CAAA,EAAG,YAAY,CAAA,sCAAA,CAAwC;QACrE,aAAa,EAAE,CAAA,EAAG,YAAY,CAAA,uCAAA,CAAyC;QACvE,WAAW,EAAE,CAAA,EAAG,YAAY,CAAA,8BAAA,CAAgC;QAC5D,iBAAiB,EAAE,CAAA,EAAG,YAAY,CAAA,+CAAA,CAAiD;AACpF,KAAA;CACF;AAEM,MAAM,MAAM,GAAG;AACpB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;;AAGP,MAAM,KAAK,GAAG;AACnB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,MAAM;;AAGP,MAAM,YAAY,GAA2B;AAClD,IAAA,GAAG,EAAE,GAAG;AACR,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,IAAI,EAAE,EAAE;AACR,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,IAAI,EAAE,EAAE;CACT;AAEM,MAAM,iBAAiB,GAAG;AAC/B,IAAA,GAAG,EAAE;AACH,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,UAAU,EAAE,0BAA0B;AACtC,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,cAAc,EAAE,gBAAgB;AACjC,KAAA;AACD,IAAA,iBAAiB,EAAE,IAAI;AACvB,IAAA,WAAW,EAAE,cAAc;AAC3B,IAAA,cAAc,EAAE,GAAG;CACX;;ACxDV;AACA;AACA;AAEA,SAAS,eAAe,CAAC,QAAiB,EAAA;IACxC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;AACrD,QAAA,OAAO,KAAK;IACd;IACA,MAAM,CAAC,GAAG,QAAmC;IAC7C,OAAO,CAAC,EACN,CAAC;AACD,QAAA,CAAC,CAAC,MAAM;AACR,QAAA,CAAC,CAAC,IAAI;AACN,QAAA,CAAC,CAAC,OAAO;AACT,QAAA,CAAC,CAAC,OAAO;AACT,QAAA,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,UAAU,CACb;AACH;AAEA,SAAS,mBAAmB,CAAC,QAAiB,EAAA;AAC5C,IAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;AAC9B,QAAA,OAAO,QAAQ;IACjB;IACA,MAAM,CAAC,GAAG,QAAmC;AAC7C,IAAA,MAAM,WAAW,GAA4B;QAC3C,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,UAAU,EAAE,CAAC,CAAC,UAAU;KACzB;AACD,IAAA,IAAI,CAAC,CAAC,YAAY,EAAE;AAClB,QAAA,WAAW,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;IAC3C;AACA,IAAA,OAAO,WAAW;AACpB;AAEO,MAAM,wBAAwB,GAAa;AAChD,IAAA,MAAM,EAAE,mBAAmB;AAC3B,IAAA,GAAG,EAAE,UAAU;CAChB;AAEM,MAAM,SAAS,GAAG,CAAC,wBAAwB,CAAC;AAWnD;AAEA,SAAS,eAAe,CAAC,KAAc,EAAA;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AAC/C,QAAA,OAAO,KAAK;IACd;IACA,MAAM,CAAC,GAAG,KAAgC;IAC1C,OAAO,CAAC,EACN,OAAO,CAAC,CAAC,EAAE,KAAK,SAAS;AACzB,QAAA,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;AAC5B,QAAA,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ;AAChC,QAAA,SAAS,IAAI,CAAC;AACd,QAAA,MAAM,IAAI,CAAC;AACX,QAAA,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;AACzB,QAAA,EAAE,QAAQ,IAAI,CAAC,CAAC;AAChB,QAAA,EAAE,SAAS,IAAI,CAAC,CAAC,CAClB;AACH;AAEA,SAAS,eAAe,CAAC,OAAgB,EAAA;AACvC,IAAA,IACE,OAAO;QACP,OAAO,OAAO,KAAK,QAAQ;AAC3B,QAAA,OAAQ,OAAmC,CAAC,OAAO,KAAK,UAAU,EAClE;QACA,MAAM,MAAM,GAA2B,EAAE;AACzC,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAK,OAAmB,CAAC,OAAO,EAAE,EAAE;AACzD,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;QACrB;AACA,QAAA,OAAO,MAAM;IACf;AACA,IAAA,OAAO,OAAO;AAChB;AAEA,SAAS,mBAAmB,CAAC,KAAc,EAAA;IACzC,MAAM,CAAC,GAAG,KAAgC;IAC1C,OAAO;AACL,QAAA,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;QACnC,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,GAAG,EAAE,CAAC,CAAC,GAAG;KACX;AACH;AAEA;AAEA,SAAS,OAAO,CAAC,KAAc,EAAA;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;AAC/C,QAAA,OAAO,KAAK;IACd;AACA,IAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AAC1B,QAAA,OAAO,IAAI;IACb;IACA,MAAM,CAAC,GAAG,KAAgC;AAC1C,IAAA,IAAI,CAAC,CAAC,cAAc,EAAE;AACpB,QAAA,OAAO,IAAI;IACb;AACA,IAAA,OAAO,KAAK;AACd;AAEA,SAAS,WAAW,CAAC,KAAc,EAAA;IACjC,MAAM,CAAC,GAAG,KAAwC;AAClD,IAAA,MAAM,OAAO,GAA4B;QACvC,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;KACb;AACD,IAAA,IAAI,CAAC,CAAC,KAAK,EAAE;AACX,QAAA,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;IACzB;AACA,IAAA,IAAI,CAAC,CAAC,KAAK,EAAE;AACX,QAAA,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;IACzB;AACA,IAAA,IAAI,CAAC,CAAC,cAAc,EAAE;AACpB,QAAA,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc;AACzC,QAAA,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;AACvB,QAAA,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;AACzB,QAAA,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM;IAC3B;AACA,IAAA,OAAO,OAAO;AAChB;AAEA;AAEA,MAAM,WAAW,GAAiB;AAChC,IAAA,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,mBAAmB,EAAE;AACxD,IAAA,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE;CACzC;AAED;AACA;AACA;AAEA,SAAS,cAAc,CAAC,KAAc,EAAA;AACpC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACvE,QAAA,OAAO,KAAK;IACd;;AAEA,IAAA,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE;AACnE,QAAA,OAAO,KAAK;IACd;;;AAGA,IAAA,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAClC,QAAA,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;IACvC;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;AAEA,SAAS,mBAAmB,CAAC,KAAc,EAAA;IACzC,MAAM,GAAG,GAAG,KAAe;IAC3B,MAAM,MAAM,GAA4B,EAAE;AAE1C,IAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI;AACtC,IAAA,IAAI,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE;AACrC,QAAA,MAAM,CAAC,KAAK,GAAG,QAAQ;IACzB;;;IAIA,MAAM,OAAO,GAAG,GAA8B;AAC9C,IAAA,IACE,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU;AACrC,QAAA,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EACrC;AACA,QAAA,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAC/B,OAA0D,CAAC,OAAO,EAAE,CACtE;AACD,YAAA,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE;QAClC;AAAE,QAAA,MAAM;;QAER;IACF;;IAGA,IAAI,KAAK,GAAkB,GAAG;IAC9B,OAAO,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,EAAE;QAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;YACnD,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,IAAI,MAAM,EAAE;gBAC1C;YACF;AACA,YAAA,IAAI;gBACF,MAAM,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC;AACxD,gBAAA,IAAI,CAAC,IAAI;oBAAE;;AAEX,gBAAA,MAAM,GAAG,GAAI,GAA+B,CAAC,GAAG,CAAC;gBACjD,IAAI,OAAO,GAAG,KAAK,UAAU,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;oBACxD;gBACF;;AAEA,gBAAA,IACE,GAAG;oBACH,OAAO,GAAG,KAAK,QAAQ;AACvB,oBAAA,OAAQ,GAA+B,CAAC,IAAI,KAAK,UAAU,EAC3D;oBACA;gBACF;;AAEA,gBAAA,IACE,GAAG;oBACH,OAAO,GAAG,KAAK,QAAQ;AACvB,oBAAA,OAAQ,GAA+B,CAAC,OAAO,KAAK,UAAU;AAC9D,oBAAA,OAAQ,GAA+B,CAAC,OAAO,KAAK,UAAU,EAC9D;AACA,oBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAC7B,GAAsD,CAAC,OAAO,EAAE,CAClE;oBACD;gBACF;AACA,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG;YACnB;AAAE,YAAA,MAAM;;YAER;QACF;AACA,QAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC;IACtC;AAEA,IAAA,OAAO,MAAM;AACf;AAEA;AACA;AACA;AAEA;;;;AAIG;AACG,SAAU,YAAY,CAAC,KAAc,EAAA;;AAEzC,IAAA,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE;AAC5B,QAAA,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACpB,YAAA,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;QACzB;IACF;;AAEA,IAAA,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;AACzB,QAAA,OAAO,mBAAmB,CAAC,KAAK,CAAC;IACnC;AACA,IAAA,OAAO,KAAK;AACd;;ACtQA;AACA;AACA;AACA;AAEM,SAAU,UAAU,CAAC,KAAc,EAAA;AACvC,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;AACzB,IAAA,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrB,OAAO,CAAA,GAAA,EAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,CAAE;IAC9B;AACA,IAAA,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IACxD,OAAO,CAAA,IAAA,EAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA,CAAE;AAChC;AAEA;AACA;AACA;AACA;AAEM,SAAU,YAAY,CAAC,KAAc,EAAA;AACzC,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACvE,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,GAAG,GAAG,KAAgC;AAC5C,IAAA,IAAI,KAA0C;IAE9C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAClC,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE;AAE/B,QAAA,IAAI,KAAK,KAAK,eAAe,EAAE;AAC7B,YAAA,IAAI,CAAC,KAAK;AAAE,gBAAA,KAAK,GAAG,EAAE,GAAG,GAAG,EAAE;YAC9B,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC;AAAO,aAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAC9B,YAAA,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC;YACxB,IACE,OAAO,OAAO,KAAK,QAAQ;AAC3B,gBAAA,OAAO,KAAK,IAAI;AAChB,gBAAA,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EACvB;gBACA,MAAM,IAAI,GAAG,OAAkC;gBAC/C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACpC,oBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE;AAC1C,wBAAA,IAAI,CAAC,KAAK;AAAE,4BAAA,KAAK,GAAG,EAAE,GAAG,GAAG,EAAE;AAC9B,wBAAA,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,EAAE;wBACjC,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,wBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa;wBAC1B;oBACF;gBACF;YACF;QACF;IACF;IAEA,OAAO,KAAK,IAAI,KAAK;AACvB;;ACpDA;AACA,MAAM,eAAe,GAA2B;AAC9C,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO;AACtB,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO;AACtB,IAAA,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;AACpB,IAAA,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM;AACpB,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO;AACtB,IAAA,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU;CAC1B;AAED,SAASA,YAAU,CACjB,GAAW,EACX,EAAE,YAAY,EAA6B,EAAA;IAE3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;AAAE,QAAA,OAAO,YAAY;AAC5C,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;AACjC,IAAA,OAAO,EACL,KAAK,KAAK,EAAE;AACZ,QAAA,KAAK,KAAK,GAAG;AACb,QAAA,KAAK,KAAK,GAAG;AACb,QAAA,KAAK,KAAK,OAAO;AACjB,QAAA,KAAK,KAAK,GAAG;QACb,KAAK,KAAK,IAAI,CACf;AACH;SAEgB,0BAA0B,GAAA;AACxC,IAAA,QACEA,YAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AACrE,QAAA,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;AAEhD;AAYA,MAAM,mBAAmB,CAAA;AAUvB,IAAA,WAAA,GAAA;QATQ,IAAA,CAAA,kBAAkB,GAAwB,IAAI;QAC9C,IAAA,CAAA,OAAO,GAAsB,EAAE;QAC/B,IAAA,CAAA,WAAW,GAA0C,IAAI;AAQ/D,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG;AACvB,QAAA,IAAI,CAAC,SAAS;AACZ,YAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;AACpC,gBAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;AACzC,gBAAA,QAAQ;AACV,QAAA,IAAI,CAAC,IAAI;AACP,YAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;AACjC,gBAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC;AACtC,gBAAA,OAAO;AACT,QAAA,IAAI,CAAC,SAAS;AACZ,YAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;AAClC,gBAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC;AACvC,gBAAA,QAAQ,EAAE;AACZ,QAAA,IAAI,CAAC,QAAQ;AACX,YAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;AACrC,gBAAA,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC;AAC1C,gBAAA,SAAS;AACX,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,eAAe;AAElE,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,MAAK;YAClC,IAAI,CAAC,KAAK,EAAE;AACd,QAAA,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;;AAEvC,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,UAAU,EAAE;AACpE,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;QAC1B;;QAGA,IAAI,CAAC,kBAAkB,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE;QAC5C,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC;IACnD;IAEA,IAAI,CAAC,IAAY,EAAE,KAAa,EAAA;QAC9B,IAAI,OAAO,GAAW,IAAI;QAC1B,IAAI,KAAK,GAA4B,EAAE;AACvC,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,YAAA,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/B,gBAAA,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACxC,oBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,wBAAA,OAAO,GAAG,MAAM,CAAC,OAAO;AACxB,wBAAA,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM;wBAClD,KAAK,GAAG,IAAI;oBACd;gBACF;YACF;AAAE,YAAA,MAAM;;YAER;QACF;AACA,QAAA,MAAM,KAAK,GAAoB;YAC7B,QAAQ,EAAE,IAAI,CAAC,SAAS;AACxB,YAAA,MAAM,EAAE,CAAA,IAAA,EAAO,IAAI,CAAC,IAAI,CAAA,CAAE;YAC1B,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,QAAQ;AACtB,YAAA,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,MAAM;AACxC,YAAA,GAAG,KAAK;SACT;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,cAAc,EAAE;YAC3D,IAAI,CAAC,KAAK,EAAE;QACd;IACF;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE;;AAG/B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AAEjB,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;AACzD,QAAA,IAAI,CAAC,MAAM;YAAE;QAEb,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAClC,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,YAAY,EAAE,MAAM;AACrB,aAAA;AACD,YAAA,QAAQ,EAAE,CAAA,iBAAA,EAAoB,IAAI,CAAC,KAAK,CAAA,CAAE;AAC1C,YAAA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,iBAAiB,CAAC,WAAW;SACpC;AAED,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,MAAK;;AAElC,YAAA,CAAC,CAAC;AACF,YAAA,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAK;;AAErB,YAAA,CAAC,CAAC;AACF,YAAA,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YACf,GAAG,CAAC,GAAG,EAAE;QACX;AAAE,QAAA,MAAM;;QAER;IACF;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI;QACzB;AACA,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC;AAC7D,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAChC;AACA,QAAA,IAAI;YACF,IAAI,CAAC,KAAK,EAAE;QACd;AAAE,QAAA,MAAM;;QAER;IACF;AACD;AAED,IAAI,SAAS,GAA+B,IAAI;SAEhC,mBAAmB,GAAA;IACjC,IAAI,CAAC,0BAA0B,EAAE;AAAE,QAAA,OAAO,IAAI;IAC9C,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,SAAS,GAAG,IAAI,mBAAmB,EAAE;IACvC;AACA,IAAA,OAAO,SAAS;AAClB;SAEgB,sBAAsB,GAAA;IACpC,IAAI,SAAS,EAAE;QACb,SAAS,CAAC,OAAO,EAAE;QACnB,SAAS,GAAG,IAAI;IAClB;AACF;;SC5LgB,WAAW,CAAC,KAAc,EAAE,YAAY,GAAG,EAAE,EAAA;IAC3D,IAAI,KAAK,KAAK,IAAI;AAAE,QAAA,OAAO,MAAM;IACjC,IAAI,KAAK,KAAK,SAAS;AAAE,QAAA,OAAO,MAAM,CAAC,YAAY,CAAC;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC3D,IAAA,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB;AAEM,SAAU,kBAAkB,CAAC,OAAgB,EAAA;IACjD,MAAM,MAAM,GAAG,CAAC;IAChB,MAAM,YAAY,GAAG,IAAI;IAEzB,QAAQ,OAAO,OAAO;AACpB,QAAA,KAAK,QAAQ;YACX,IAAI,OAAO,KAAK,EAAE;AAAE,gBAAA,OAAO,IAAI;AAC/B,YAAA,IAAI;AACF,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC;YAClE;AAAE,YAAA,MAAM;AACN,gBAAA,OAAO,OAAO;YAChB;AAEF,QAAA,KAAK,QAAQ;AACX,YAAA,IAAI;AACF,gBAAA,IACE,OAAO;AACP,oBAAA,OAAO,YAAY,MAAM;AACzB,oBAAA,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;AACvB,oBAAA,OAAO,CAAC,WAAW;oBACnB,OAAO,CAAC,WAAW,KAAK,MAAM;AAC9B,oBAAA,UAAU,IAAI,OAAO;AACrB,oBAAA,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EACtC;AACA,oBAAA,OAAO,OAAO,CAAC,QAAQ,EAAE;gBAC3B;gBACA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC;YACtD;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI,KAAK,YAAY,SAAS,EAAE;AAC9B,oBAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAiB,CAAC,CAAC,MAAM,CAC5D,CAAC,UAAkC,EAAE,GAAW,KAAI;AAClD,wBAAA,MAAM,WAAW,GAAG,EAAE,GAAG,UAAU,EAAE;wBACrC,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM,CACtB,OAAmC,CAAC,GAAG,CAAC,CAC1C;AACD,wBAAA,OAAO,WAAW;oBACpB,CAAC,EACD,EAAE,CACH;AACD,oBAAA,OAAO,kBAAkB,CAAC,gBAAgB,CAAC;gBAC7C;AACA,gBAAA,MAAM,KAAK;YACb;AAEF,QAAA;AACE,YAAA,OAAO,MAAM,CAAC,OAAO,CAAC;;AAE5B;AAEM,SAAU,SAAS,CAAC,GAAG,MAAiB,EAAA;AAC5C,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,EAAE;AAClC,IAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACvB,QAAA,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtC;IAEA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAChD,IAAA,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5B;AAEM,SAAU,GAAG,CACjB,IAAsB,EACtB,EAAE,KAAK,GAAG,OAAO,EAAA,GAAyB,EAAE,EAAA;AAE5C,IAAA,IAAI,OAAe;AACnB,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,QAAA,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC;IAC3B;SAAO;QACL,OAAO,GAAG,IAAI;IAChB;AAEA,IAAA,IAAI,cAA4C;IAEhD,QAAQ,KAAK;QACX,KAAK,KAAK,CAAC,IAAI;AACb,YAAA,cAAc,GAAG,OAAO,CAAC,IAAI;YAC7B;QACF,KAAK,KAAK,CAAC,IAAI;AACb,YAAA,cAAc,GAAG,OAAO,CAAC,IAAI;YAC7B;QACF,KAAK,KAAK,CAAC,KAAK;QAChB,KAAK,KAAK,CAAC,KAAK;AACd,YAAA,cAAc,GAAG,OAAO,CAAC,KAAK;YAC9B;QACF,KAAK,KAAK,CAAC,KAAK;QAChB,KAAK,KAAK,CAAC,KAAK;AACd,YAAA,cAAc,GAAG,OAAO,CAAC,KAAK;YAC9B;AACF,QAAA;AACE,YAAA,cAAc,GAAG,OAAO,CAAC,GAAG;YAC5B;;AAGJ,IAAA,IAAI;QACF,cAAc,CAAC,OAAO,CAAC;IACzB;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACnB,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;IACtB;AAEA,IAAA,IAAI;AACF,QAAA,MAAM,SAAS,GAAG,mBAAmB,EAAE;QACvC,IAAI,SAAS,EAAE;AACb,YAAA,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;QAChC;IACF;AAAE,IAAA,MAAM;;IAER;AACF;AAEM,SAAU,KAAK,CAAC,OAAgB,EAAA;AACpC,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/B,QAAA,OAAO,OAAO;IAChB;AACA,IAAA,IAAI;AACF,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,OAAO;IAChB;AACF;AAEM,SAAU,QAAQ,CAAC,OAAgB,EAAA;AAIvC,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO;AACL,YAAA,MAAM,EAAE,KAAK;YACb,OAAO;SACR;IACH;AACA,IAAA,IAAI;QACF,OAAO;AACL,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;SAC7B;IACH;AAAE,IAAA,MAAM;QACN,OAAO;AACL,YAAA,MAAM,EAAE,KAAK;YACb,OAAO;SACR;IACH;AACF;;AClHA,SAAS,iBAAiB,CAAC,KAAwB,EAAA;AACjD,IAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe;AACvC,QAAA,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;AAAE,YAAA,OAAO,KAAK;QACjD,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK;QAChE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,KAAK;AAAE,YAAA,OAAO,OAAO;AAClE,QAAA,OAAO,GAAG;IACZ;IACA,IAAI,KAAK,KAAK,KAAK;AAAE,QAAA,OAAO,KAAK;IACjC,IAAI,KAAK,KAAK,IAAI;AAAE,QAAA,OAAO,OAAO;AAClC,IAAA,OAAO,KAAK;AACd;AAEA,MAAM,MAAM,CAAA;AAYV,IAAA,WAAA,CAAY,EACV,MAAM,GAAI,OAAO,CAAC,GAAG,CAAC,UAAwB,IAAI,OAAO,CAAC,KAAK,EAC/D,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,EAC9C,UAAU,EACV,IAAI,GAAG,EAAE,EACT,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,MACxC,EAAE,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,UAAU,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG;YACb,MAAM;YACN,KAAK;AACL,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;YACxC,QAAQ;SACT;AAED,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;QACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;AAC7D,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;AAC7D,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;AAC7D,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;AAC3D,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;AAC7D,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;AAE3D,QAAA,MAAM,cAAc,GAClB,IAAI,CAAC,QAAmE,CAAC;AAC3E,QAAA,IAAI,CAAC,GAAG,GAAI,cAA4B,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG;IACjE;AAEQ,IAAA,eAAe,CACrB,QAAgB,EAChB,MAAiB,EACjB,UAAkB,EAAA;AAElB,QAAA,MAAM,KAAK,GAAG,CAAC,GAAG,QAAmB,KAAU;YAC7C,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;gBACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;AAC5C,gBAAA,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE;AAC1B,oBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;AACvC,oBAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;AAChC,oBAAA,MAAM,IAAI,GAAY;wBACpB,OAAO;wBACP,GAAG,IAAI,CAAC,IAAI;qBACb;AACD,oBAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,wBAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO;oBAC5B;AACA,oBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,wBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ;oBAClC;oBACA,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;gBAChC;qBAAO;AACL,oBAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;oBACvC,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;gBACnC;YACF;AACF,QAAA,CAAC;QAED,KAAK,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KAAU;AACnE,YAAA,IAAI,aAAa,KAAK,SAAS,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACxC;AAEA,YAAA,IAAI,MAA+B;YAEnC,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI,EAAE;AAC/D,gBAAA,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;oBACrC,IAAI,YAAY,KAAK,SAAS;wBAAE,YAAY,GAAG,WAAW;oBAC1D,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE;gBACpD;qBAAO;oBACL,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;AAChC,oBAAA,OAAO,KAAK,CAAC,aAAa,CAAC;gBAC7B;YACF;iBAAO;AACL,gBAAA,MAAM,GAAG,YAAY,CAAC,aAAa,CAA4B;YACjE;YAEA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAChC,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;AACjC,gBAAA,OAAO,KAAK,CAAC,MAAM,CAAC;YACtB;AAEA,YAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;AAClC,gBAAA,OAAO,KAAK,CAAC,MAAM,CAAC;YACtB;AAEA,YAAA,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE;AAC1B,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1B,gBAAA,IAAI,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEnC,gBAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AAChC,oBAAA,IAAI,UAAU,KAAK,QAAQ,CAAC,GAAG,EAAE;AAC/B,wBAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;oBAC1C;gBACF;AACA,gBAAA,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;AAErC,gBAAA,MAAM,IAAI,GAAY;AACpB,oBAAA,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;oBACvB,QAAQ,EAAE,OAAO,UAAU;AAC3B,oBAAA,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC;AAC9B,oBAAA,GAAG,EAAE,UAAU;oBACf,GAAG,IAAI,CAAC,IAAI;iBACb;AACD,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,oBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,QAAQ;gBAClC;gBAEA,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;oBACtD,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;gBAChC;YACF;iBAAO;AACL,gBAAA,OAAO,KAAK,CAAC,MAAM,CAAC;YACtB;AACF,QAAA,CAAC;AAED,QAAA,OAAO,KAAkB;IAC3B;IAEO,GAAG,CAAC,GAAY,EAAE,KAAe,EAAA;QACtC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;YAChD;QACF;AAEA,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;gBAChB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;AAChC,YAAA,CAAC,CAAC;YACF;QACF;AAEA,QAAA,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE;YACnB;QACF;AAEA,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC7B,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CACpC,GAA+B,CAAC,CAAC,CAAC,CACpC;AACH,YAAA,CAAC,CAAC;QACJ;aAAO;YACL,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;QAClC;IACF;AAEO,IAAA,KAAK,CAAC,GAAY,EAAA;AACvB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;gBAChB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAClC,YAAA,CAAC,CAAC;YACF;QACF;AAEA,QAAA,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI;YACrB;QACF;AAEA,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,CAAC,IAAI,CAAC,GAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;gBACvC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAClC,YAAA,CAAC,CAAC;QACJ;aAAO;YACL,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC;IACF;IAEO,IAAI,CAAC,GAAY,EAAE,KAAe,EAAA;QACvC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACvC,QAAA,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACrB,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;AACtB,QAAA,OAAO,MAAM;IACf;AACD;;ACnPK,SAAU,OAAO,CACrB,QAAiC,EAAA;AAMjC,IAAA,MAAM,EACJ,cAAc,EACd,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,GAChB,GAAG,OAAO,CAAC,GAAG;IAEf,MAAM,IAAI,GAA2B,EAAE;IAEvC,IAAI,cAAc,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,cAAc;IAC9B;IACA,IAAI,WAAW,EAAE;AACf,QAAA,IAAI,CAAC,GAAG,GAAG,WAAW;IACxB;IACA,IAAI,WAAW,EAAE;AACf,QAAA,IAAI,CAAC,OAAO,GAAG,WAAW;IAC5B;IACA,IAAI,eAAe,EAAE;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,eAAe;IAChC;IACA,IAAI,eAAe,EAAE;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,eAAe;IAChC;IACA,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,eAAe,EAAE;QACtD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB;AAC7C,YAAA,eAAe,CAAW;IAC9B;IAEA,OAAO;AACL,QAAA,GAAG,IAAI;AACP,QAAA,GAAG,QAAQ;KACZ;AACH;;ACxCM,SAAU,QAAQ,CACtB,GAAY,EACZ,KAAe,EAAA;AAEf,IAAA,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;AAC9B,QAAA,OAAO,EAAE;IACX;IACA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;QAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAA,OAAO,GAA8B;QACvC;aAAO;AACL,YAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE;QACvB;IACF;AACA,IAAA,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC;AAC/B,IAAA,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;AAChC,QAAA,OAAO,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE;IACzB;SAAO;AACL,QAAA,OAAO,EAAE,CAAC,MAAM,GAAG,KAAK,EAAE;IAC5B;AACF;;ACnBA,SAAS,eAAe,CAAC,QAAiC,EAAA;IACxD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC7B;AAEM,SAAU,MAAM,CAAC,GAAY,EAAE,KAAe,EAAA;AAClD,IAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAElD,IAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AAChC,QAAA,IAAI,CAAC,KAAK,QAAQ,CAAC,GAAG,EAAE;AACtB,YAAA,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACxB;IACF;AACA,IAAA,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;AAEnB,IAAA,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE;AACnB;;ACRA,SAAS,UAAU,CACjB,GAAW,EACX,EAAE,YAAY,EAA6B,EAAA;IAE3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;AAAE,QAAA,OAAO,YAAY;AAC5C,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;AACjC,IAAA,OAAO,EACL,KAAK,KAAK,EAAE;AACZ,QAAA,KAAK,KAAK,GAAG;AACb,QAAA,KAAK,KAAK,GAAG;AACb,QAAA,KAAK,KAAK,OAAO;AACjB,QAAA,KAAK,KAAK,GAAG;QACb,KAAK,KAAK,IAAI,CACf;AACH;AAEA,MAAM,YAAY,CAAA;AAoBhB,IAAA,WAAA,CAAY,EACV,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAC7B,IAAI,GAAG,EAAE,MACc,EAAE,EAAA;QAbnB,IAAA,CAAA,WAAW,GAAW,CAAC;QAIvB,IAAA,CAAA,OAAO,GAA4B,EAAE;QACrC,IAAA,CAAA,cAAc,GAAY,KAAK;QAE/B,IAAA,CAAA,UAAU,GAAW,CAAC;QAO5B,IAAI,CAAC,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;QAEtB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK;QAEnC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC;YACxB,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,KAAK;AACjB,SAAA,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAE9B,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAW,KAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAoB;QACjD,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;QAErD,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAW,KAAI;YAC/B,IAAI,IAAI,CAAC,cAAc;gBAAE,IAAI,CAAC,WAAW,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC7B,QAAA,CAAC,CAAoB;QACrB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KAAI;YAClE,IAAI,IAAI,CAAC,cAAc;gBAAE,IAAI,CAAC,WAAW,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;AACrD,QAAA,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAW,KAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAoB;QACjD,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;QAErD,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAW,KAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAmB;QAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;QAEpD,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAW,KAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAoB;QACjD,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KAC9D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;QAErD,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAW,KAAI;YAC9B,IAAI,IAAI,CAAC,cAAc;gBAAE,IAAI,CAAC,UAAU,EAAE;YAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5B,QAAA,CAAC,CAAmB;QACpB,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KAAI;YACjE,IAAI,IAAI,CAAC,cAAc;gBAAE,IAAI,CAAC,UAAU,EAAE;YAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;AACpD,QAAA,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KACxD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACzD;IAEO,IAAI,GAAA;AACT,QAAA,sBAAsB,EAAE;AACxB,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;gBACxD,MAAwC,CAAC,IAAI,EAAE;YAClD;QACF;AACA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;AAChC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK;QACnC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC;YACxB,MAAM,EAAE,MAAM,CAAC,IAAI;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,KAAK;AACjB,SAAA,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE;;AAGtB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;AAEnB,QAAA,MAAM,MAAM,GAAG;YACb,OAAO;YACP,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;YACP,MAAM;SACE;AACV,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACrB,YAAA,IAAI,GAAG,KAAK,OAAO,EAAE;gBACnB,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAW,KAAI;oBAC/B,IAAI,IAAI,CAAC,cAAc;wBAAE,IAAI,CAAC,WAAW,EAAE;oBAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;AAC7B,gBAAA,CAAC,CAAQ;gBACT,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KAAI;oBAClE,IAAI,IAAI,CAAC,cAAc;wBAAE,IAAI,CAAC,WAAW,EAAE;oBAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;AACrD,gBAAA,CAAC;YACH;AAAO,iBAAA,IAAI,GAAG,KAAK,MAAM,EAAE;gBACzB,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAW,KAAI;oBAC9B,IAAI,IAAI,CAAC,cAAc;wBAAE,IAAI,CAAC,UAAU,EAAE;oBAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5B,gBAAA,CAAC,CAAQ;gBACT,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KAAI;oBACjE,IAAI,IAAI,CAAC,cAAc;wBAAE,IAAI,CAAC,UAAU,EAAE;oBAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;AACpD,gBAAA,CAAC;YACH;iBAAO;gBACL,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAW,KAAI;oBAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC5B,gBAAA,CAAC,CAAQ;gBACT,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,aAAsB,EAAE,YAAsB,KAAI;AACjE,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC;AACpD,gBAAA,CAAC;YACH;AACF,QAAA,CAAC,CAAC;IACJ;IAEO,GAAG,CAAC,EACT,KAAK,EACL,GAAG,EACH,IAAI,GAAG,EAAE,GAAA,GAKP,EAAE,EAAA;AACJ,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;QACnD,IAAI,GAAG,EAAE;AACP,YAAA,OAAO,CAAC,GAAG,GAAG,GAAG;QACnB;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;YAC9B,KAAK,EAAE,CAAC,MAAK;gBACX,IAAI,KAAK,EAAE;AACT,oBAAA,OAAO,KAAK;gBACd;AACA,gBAAA,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;AAChC,oBAAA,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB;gBACrC;gBACA,IAAI,UAAU,CAAC,eAAe,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE;AACxD,oBAAA,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS;gBAC9B;gBACA,OAAO,KAAK,CAAC,MAAM;AACrB,YAAA,CAAC,GAAG;AACJ,YAAA,IAAI,EAAE,OAAO;AACd,SAAA,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAClC,QAAA,OAAO,MAAM;IACf;AAEO,IAAA,MAAM,CAAC,IAA6B,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC;YAC5D;QACF;QACA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACnC,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;AACvB,gBAAA,IAAI,CAAC,IAAI,CAAC,oCAAoC,GAAG,CAAA,CAAE,CAAC;YACtD;QACF;QACA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;IACnC;AAEO,IAAA,KAAK,CAAC,IAA8B,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,CAAC,sDAAsD,CAAC;QACnE;AACA,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;QACnB,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAChB;IACF;AAEO,IAAA,GAAG,CAAC,IAA6B,EAAA;AACtC,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClC,YAAA,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAClB;QACA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IACjC;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB;QACF;AACA,QAAA,MAAM,WAAW,GAAG;YAClB,GAAG,IAAI,CAAC,OAAO;AACf,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC;gBAC3B,MAAM,EAAE,IAAI,CAAC,WAAW;AACxB,gBAAA,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC;gBACzB,KAAK,EAAE,IAAI,CAAC,UAAU;AACvB,aAAA;SACF;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC;IACrB;AAEO,IAAA,KAAK,CAAC,GAAY,EAAA;AACvB,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AAClC,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB;AACA,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;gBAChB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAA,CAAC,CAAC;QACJ;aAAO,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;YAClD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC7B,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACtB,YAAA,CAAC,CAAC;QACJ;aAAO;YACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC;IACF;IAEO,IAAI,CAAC,GAAY,EAAE,KAAe,EAAA;AACvC,QAAA,IAAI,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE;AAC5D,YAAA,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E;QACH;AACA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9C,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACtD,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QACrC;AACA,QAAA,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,YAAA,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;AACxB,SAAA,CAAC;AACF,QAAA,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;QAC9C,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;AAClC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,MAAM;QACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAClC,QAAA,OAAO,MAAM;IACf;AACD;AAEK,SAAU,YAAY,CAAC,IAAA,GAA+B,EAAE,EAAA;AAC5D,IAAA,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,IAAI;AACL,KAAA,CAAC;AACF,IAAA,OAAO,YAAY;AACrB;;ACxRO,MAAM,GAAG,GAAG,YAAY;;;;"}
|
package/dist/esm/pipelines.d.ts
CHANGED
|
@@ -3,6 +3,12 @@ interface Pipeline {
|
|
|
3
3
|
filter: (value: unknown) => unknown;
|
|
4
4
|
}
|
|
5
5
|
export declare const axiosResponseVarPipeline: Pipeline;
|
|
6
|
-
export declare const errorVarPipeline: Pipeline;
|
|
7
6
|
export declare const pipelines: Pipeline[];
|
|
7
|
+
/**
|
|
8
|
+
* Filter a value by type, regardless of var key name.
|
|
9
|
+
* Tries known type filters first, then falls back to generic
|
|
10
|
+
* opaque object extraction for anything that would log as [object Type].
|
|
11
|
+
*/
|
|
12
|
+
export declare function filterByType(value: unknown): unknown;
|
|
13
|
+
export declare const errorVarPipeline: Pipeline;
|
|
8
14
|
export {};
|