tnega 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +115 -189
- package/dist/agent.js +2907 -0
- package/dist/agent.js.map +7 -0
- package/dist/bin.js +32512 -4419
- package/dist/bin.js.map +4 -4
- package/dist/cli-runtime.js +33404 -0
- package/dist/cli-runtime.js.map +7 -0
- package/dist/coding-agent.js +19088 -0
- package/dist/coding-agent.js.map +7 -0
- package/dist/core.js +1398 -0
- package/dist/core.js.map +7 -0
- package/dist/eval.js +23905 -0
- package/dist/eval.js.map +7 -0
- package/dist/events.js +1215 -0
- package/dist/events.js.map +7 -0
- package/dist/evolve.js +18303 -0
- package/dist/evolve.js.map +7 -0
- package/dist/index.js +33087 -4450
- package/dist/index.js.map +4 -4
- package/dist/llm.js +1016 -0
- package/dist/llm.js.map +7 -0
- package/dist/services.js +1142 -0
- package/dist/services.js.map +7 -0
- package/dist/session.js +1045 -0
- package/dist/session.js.map +7 -0
- package/dist/tools.js +2577 -0
- package/dist/tools.js.map +7 -0
- package/dist/types/packages/agent/src/definition.d.ts +17 -0
- package/dist/types/packages/agent/src/inbox-durable.d.ts +54 -0
- package/dist/types/packages/agent/src/index.d.ts +7 -0
- package/dist/types/packages/agent/src/live.d.ts +115 -0
- package/dist/types/packages/agent/src/llm-service.d.ts +32 -0
- package/dist/types/packages/agent/src/prompt.d.ts +55 -0
- package/dist/types/packages/agent/src/service.d.ts +68 -0
- package/dist/types/packages/agent/src/types.d.ts +215 -0
- package/dist/types/packages/benchmark/src/bigcodebench.d.ts +6 -0
- package/dist/types/packages/benchmark/src/humaneval.d.ts +11 -0
- package/dist/types/packages/benchmark/src/index.d.ts +9 -0
- package/dist/types/packages/benchmark/src/manifest.d.ts +10 -0
- package/dist/types/packages/benchmark/src/mbpp.d.ts +10 -0
- package/dist/types/packages/benchmark/src/parquet.d.ts +2 -0
- package/dist/types/packages/benchmark/src/stdlib.d.ts +3 -0
- package/dist/types/packages/benchmark/src/swebench.d.ts +2 -0
- package/dist/types/packages/benchmark/src/types.d.ts +58 -0
- package/dist/types/packages/cli/src/bin.d.ts +2 -0
- package/dist/types/packages/cli/src/commands.d.ts +146 -0
- package/dist/types/packages/cli/src/config.d.ts +28 -0
- package/dist/types/packages/cli/src/index.d.ts +9 -0
- package/dist/types/packages/cli/src/profile-file.d.ts +26 -0
- package/dist/types/packages/cli/src/profile.d.ts +9 -0
- package/dist/types/packages/cli/src/server.d.ts +14 -0
- package/dist/types/packages/cli/src/store.d.ts +60 -0
- package/dist/types/packages/cli/src/yaml.d.ts +1 -0
- package/dist/types/packages/coding-agent/src/codingAgent.d.ts +25 -0
- package/dist/types/packages/coding-agent/src/index.d.ts +6 -0
- package/dist/types/packages/coding-agent/src/mcp.d.ts +24 -0
- package/dist/types/packages/coding-agent/src/plan.d.ts +13 -0
- package/dist/types/packages/coding-agent/src/skills.d.ts +12 -0
- package/dist/types/packages/coding-agent/src/slash.d.ts +28 -0
- package/dist/types/packages/coding-agent/src/types.d.ts +41 -0
- package/dist/types/packages/core/src/context.d.ts +28 -0
- package/dist/types/packages/core/src/events.d.ts +57 -0
- package/dist/types/packages/core/src/fiber.d.ts +79 -0
- package/dist/types/packages/core/src/index.d.ts +10 -0
- package/dist/types/packages/core/src/invariant.d.ts +45 -0
- package/dist/types/packages/core/src/logger.d.ts +48 -0
- package/dist/types/packages/core/src/reflect.d.ts +42 -0
- package/dist/types/packages/core/src/registry.d.ts +54 -0
- package/dist/types/packages/core/src/service.d.ts +19 -0
- package/dist/types/packages/core/src/utils.d.ts +54 -0
- package/dist/types/packages/eval/src/codingRuntime.d.ts +18 -0
- package/dist/types/packages/eval/src/index.d.ts +5 -0
- package/dist/types/packages/eval/src/policy.d.ts +8 -0
- package/dist/types/packages/eval/src/runner.d.ts +31 -0
- package/dist/types/packages/eval/src/service.d.ts +23 -0
- package/dist/types/packages/eval/src/strategies.d.ts +58 -0
- package/dist/types/packages/eval/src/trace.d.ts +7 -0
- package/dist/types/packages/eval/src/types.d.ts +281 -0
- package/dist/types/packages/eval/src/utils.d.ts +5 -0
- package/dist/types/packages/eval/src/workspace.d.ts +17 -0
- package/dist/types/packages/evolve/src/diagnose.d.ts +9 -0
- package/dist/types/packages/evolve/src/index.d.ts +7 -0
- package/dist/types/packages/evolve/src/llm.d.ts +39 -0
- package/dist/types/packages/evolve/src/log.d.ts +26 -0
- package/dist/types/packages/evolve/src/select.d.ts +3 -0
- package/dist/types/packages/evolve/src/service.d.ts +29 -0
- package/dist/types/packages/evolve/src/types.d.ts +176 -0
- package/dist/types/packages/llm/src/anthropic-messages.d.ts +4 -0
- package/dist/types/packages/llm/src/errors.d.ts +6 -0
- package/dist/types/packages/llm/src/index.d.ts +7 -0
- package/dist/types/packages/llm/src/models.d.ts +29 -0
- package/dist/types/packages/llm/src/openai.d.ts +4 -0
- package/dist/types/packages/llm/src/provider.d.ts +3 -0
- package/dist/types/packages/llm/src/shared.d.ts +15 -0
- package/dist/types/packages/llm/src/types.d.ts +13 -0
- package/dist/types/packages/session/src/index.d.ts +500 -0
- package/dist/types/packages/session/src/invariant.d.ts +33 -0
- package/dist/types/packages/tools/src/builtins.d.ts +25 -0
- package/dist/types/packages/tools/src/calc.d.ts +4 -0
- package/dist/types/packages/tools/src/execution.d.ts +31 -0
- package/dist/types/packages/tools/src/index.d.ts +107 -0
- package/dist/types/packages/tools/src/path.d.ts +4 -0
- package/dist/types/packages/tools/src/policy.d.ts +14 -0
- package/dist/types/src/events.d.ts +1 -0
- package/dist/types/src/index.d.ts +15 -0
- package/dist/types/src/services.d.ts +4 -0
- package/dist/web/assets/index-45pokiBH.js +270 -0
- package/dist/web/assets/index-DCLL69Kz.css +1 -0
- package/dist/web/index.html +13 -0
- package/package.json +92 -35
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../packages/core/src/utils.ts", "../packages/core/src/service.ts", "../packages/core/src/fiber.ts", "../packages/core/src/registry.ts", "../packages/core/src/reflect.ts", "../packages/core/src/logger.ts"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nexport type Any = any\nexport type AnyFunction = (...args: Any[]) => Any\nexport type Dict<T = Any, K extends PropertyKey = string> = Record<K, T>\n\nexport class DisposableList<T extends WeakKey> {\n private sn = 0\n private map = new Map<number, T>()\n private weak = new WeakMap<T, number>()\n\n get length() {\n return this.map.size\n }\n\n push(value: T) {\n const sn = ++this.sn\n this.map.set(sn, value)\n this.weak.set(value, sn)\n return () => this.map.delete(sn)\n }\n\n unshift(value: T) {\n const sn = ++this.sn\n const entries = [...this.map.entries()]\n this.map.clear()\n this.map.set(sn, value)\n this.weak.set(value, sn)\n for (const [oldSn, oldValue] of entries) {\n this.map.set(oldSn, oldValue)\n }\n return () => this.map.delete(sn)\n }\n\n delete(value: T) {\n const sn = this.weak.get(value)\n if (!sn) return false\n return this.map.delete(sn)\n }\n\n clear() {\n const values = [...this.map.values()]\n this.map.clear()\n return values.reverse()\n }\n\n [Symbol.iterator]() {\n return this.map.values()\n }\n\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return [...this]\n }\n}\n\nexport interface Tracker {\n associate?: string\n property?: string\n noShadow?: boolean\n}\n\nexport const symbols = {\n shadow: Symbol.for('tnega.shadow'),\n caller: Symbol.for('tnega.caller'),\n receiver: Symbol.for('tnega.receiver'),\n original: Symbol.for('tnega.original'),\n metadata: Symbol.for('tnega.metadata'),\n initHooks: Symbol.for('tnega.initHooks'),\n checkProto: Symbol.for('tnega.checkProto'),\n effect: Symbol.for('tnega.effect'),\n filter: Symbol.for('tnega.filter'),\n isolate: Symbol.for('tnega.isolate'),\n intercept: Symbol.for('tnega.intercept'),\n init: Symbol.for('tnega.init'),\n check: Symbol.for('tnega.check'),\n config: Symbol.for('tnega.config'),\n invoke: Symbol.for('tnega.invoke'),\n extend: Symbol.for('tnega.extend'),\n tracker: Symbol.for('tnega.tracker'),\n resolveConfig: Symbol.for('tnega.resolveConfig'),\n} as const\n\nconst GeneratorFunction = function* () {}.constructor\nconst AsyncGeneratorFunction = async function* () {}.constructor\n\nexport function isConstructor(func: Any): func is new (...args: Any[]) => Any {\n if (typeof func !== 'function') return false\n if (func instanceof GeneratorFunction) return false\n if (AsyncGeneratorFunction !== Function && func instanceof AsyncGeneratorFunction) return false\n return /^class\\s/.test(Function.prototype.toString.call(func))\n}\n\nexport function isObject(value: Any): value is object {\n return !!value && (typeof value === 'object' || typeof value === 'function')\n}\n\nexport function isNullable(value: Any) {\n return value == null\n}\n\nexport function joinPrototype(proto1: object, proto2: object): object {\n if (proto1 === Object.prototype) return proto2\n const result: object = Object.create(joinPrototype(Object.getPrototypeOf(proto1), proto2))\n for (const key of Reflect.ownKeys(proto1)) {\n Object.defineProperty(result, key, Reflect.getOwnPropertyDescriptor(proto1, key)!)\n }\n return result\n}\n\nexport function getPropertyDescriptor(target: Any, prop: string | symbol) {\n let proto = target\n while (proto) {\n const desc = Reflect.getOwnPropertyDescriptor(proto, prop)\n if (desc) return desc\n proto = Object.getPrototypeOf(proto)\n }\n}\n\nexport function getTraceable<T>(ctx: Any, value: T): T {\n if (!isObject(value)) return value\n if (Object.hasOwn(value, symbols.shadow)) {\n return Object.getPrototypeOf(value)\n }\n const tracker = (value as Any)[symbols.tracker]\n if (!tracker) return value\n return createTraceable(ctx, value, tracker)\n}\n\nexport function withProps(target: Any, props?: Any) {\n if (!props) return target\n return new Proxy(target, {\n get: (target, prop, receiver) => {\n if (prop in props && prop !== 'constructor') return Reflect.get(props, prop, receiver)\n return Reflect.get(target, prop, receiver)\n },\n set: (target, prop, value, receiver) => {\n if (prop in props && prop !== 'constructor') return Reflect.set(props, prop, value, receiver)\n return Reflect.set(target, prop, value, receiver)\n },\n })\n}\n\nfunction withProp(target: Any, prop: string | symbol, value: Any) {\n return withProps(target, Object.defineProperty(Object.create(null), prop, {\n value,\n writable: false,\n }))\n}\n\nfunction createShadow(ctx: Any, target: Any, property: string | undefined, receiver: Any) {\n if (!property) return receiver\n const origin = getPropertyDescriptor(target, property)?.value\n if (!origin) return receiver\n return withProp(receiver, property, ctx.extend({ [symbols.shadow]: origin }))\n}\n\nfunction createShadowMethod(ctx: Any, value: Any, outer: Any, shadow: Any) {\n const proxy = new Proxy(value, {\n apply: (target, thisArg, args) => {\n if (thisArg === outer) thisArg = shadow\n return getTraceable(ctx, Reflect.apply(target, thisArg, args))\n },\n })\n return proxy\n}\n\nfunction createTraceable(ctx: Any, value: Any, tracker: Tracker) {\n const caller = ctx[symbols.shadow] ?? ctx\n if (ctx[symbols.shadow]) {\n ctx = Object.getPrototypeOf(ctx)\n }\n const proxy = new Proxy(value, {\n get: (target, prop, receiver) => {\n if (prop === symbols.original) return target\n if (prop === symbols.caller) return caller\n if (prop === tracker.property) return ctx\n if (typeof prop === 'symbol') {\n return Reflect.get(target, prop, receiver)\n }\n if (tracker.associate && ctx.reflect.props[`${tracker.associate}.${prop}`]) {\n return Reflect.get(ctx, `${tracker.associate}.${prop}`, withProp(ctx, symbols.receiver, receiver))\n }\n let shadow: Any\n let innerValue: Any\n const desc = getPropertyDescriptor(target, prop)\n if (desc?.value !== undefined) {\n innerValue = desc.value\n } else {\n shadow = createShadow(ctx, target, tracker.property, receiver)\n innerValue = Reflect.get(target, prop, shadow)\n }\n const innerTracker = innerValue?.[symbols.tracker]\n if (innerTracker) {\n return createTraceable(ctx, innerValue, innerTracker)\n } else if (!tracker.noShadow && typeof innerValue === 'function') {\n shadow ??= createShadow(ctx, target, tracker.property, receiver)\n return createShadowMethod(ctx, innerValue, receiver, shadow)\n } else {\n return innerValue\n }\n },\n set: (target, prop, value, receiver) => {\n if (prop === symbols.original || prop === symbols.caller || prop === tracker.property) return false\n if (typeof prop === 'symbol') {\n return Reflect.set(target, prop, value, receiver)\n }\n if (tracker.associate && ctx.reflect.props[`${tracker.associate}.${prop}`]) {\n return Reflect.set(ctx, `${tracker.associate}.${prop}`, value, withProp(ctx, symbols.receiver, receiver))\n }\n const shadow = createShadow(ctx, target, tracker.property, receiver)\n return Reflect.set(target, prop, value, shadow)\n },\n apply: (target, thisArg, args) => {\n const receiver = tracker.noShadow\n ? proxy\n : createShadow(ctx, target, tracker.property, proxy)\n return applyTraceable(receiver, target, thisArg, args)\n },\n })\n return proxy\n}\n\nfunction applyTraceable(proxy: Any, value: Any, thisArg: Any, args: Any[]) {\n if (!value[symbols.invoke]) return Reflect.apply(value, thisArg, args)\n return value[symbols.invoke].apply(proxy, args)\n}\n\nexport function createCallable(name: string, proto: object, tracker: Tracker) {\n const self: Any = function (this: Any, ...args: Any[]) {\n const proxy = createTraceable(self.ctx, self, tracker)\n return Reflect.apply(proxy, this, args)\n }\n Object.defineProperty(self, 'name', { value: name, configurable: true, writable: true })\n return Object.setPrototypeOf(self, proto)\n}\n\ninterface StackInfo {\n offset: number\n error: Error\n}\n\nfunction handleError(info: StackInfo, reason: Any, getOuterStack: () => string[]): never {\n const innerLines = info.error.stack!.split('\\n')\n if (typeof reason?.stack !== 'string') {\n const outerError = new Error(reason)\n const lines = outerError.stack!.split('\\n')\n lines.splice(1, Infinity, ...getOuterStack())\n outerError.stack = lines.join('\\n')\n throw outerError\n }\n const lines: string[] = reason.stack.split('\\n')\n const index = lines.indexOf(innerLines[2]!)\n if (index === -1) throw reason\n lines.splice(index - info.offset, Infinity, ...getOuterStack())\n reason.stack = lines.join('\\n')\n throw reason\n}\n\nexport function composeError<T>(callback: (info: StackInfo) => T, getOuterStack = buildOuterStack()): T {\n const info: StackInfo = { offset: 1, error: new Error() }\n try {\n const result: Any = callback(info)\n if (isObject(result) && 'then' in result) {\n return (result as Any).then(undefined, (reason: Any) => handleError(info, reason, getOuterStack)) as T\n }\n return result\n } catch (reason: Any) {\n handleError(info, reason, getOuterStack)\n }\n}\n\nexport function buildOuterStack(offset = 0) {\n const outerError = new Error()\n return () => outerError.stack!.split('\\n').slice(3 + offset)\n}\n", "import type { Context } from './context.js'\nimport { createCallable, joinPrototype, symbols, type Any, type Tracker } from './utils.js'\n\nexport abstract class Service<out T = never> {\n static readonly init: symbol = symbols.init\n static readonly check: symbol = symbols.check\n static readonly config: symbol = symbols.config\n static readonly invoke: symbol = symbols.invoke\n static readonly extend: symbol = symbols.extend\n static readonly tracker: symbol = symbols.tracker\n static readonly resolveConfig: symbol = symbols.resolveConfig\n\n declare [symbols.config]: T\n\n public name!: string\n\n constructor(protected ctx: Context, name?: string) {\n name ??= (this.constructor as Any).provide as string\n\n const tracker: Tracker = {\n associate: name,\n property: 'ctx',\n }\n const self: Any = (this as Any)[symbols.invoke]\n ? createCallable(name, joinPrototype(Object.getPrototypeOf(this), Function.prototype), tracker)\n : this\n\n self.ctx = ctx\n self.name = name\n Object.defineProperty(self, symbols.tracker, { value: tracker })\n\n self.ctx.reflect.provide(name, self, (this as Any)[symbols.check])\n return self\n }\n\n protected [symbols.filter](ctx: Context) {\n return ctx[symbols.isolate]![this.name] === this.ctx[symbols.isolate]![this.name]\n }\n\n protected [symbols.extend](props?: Any) {\n let self: Any\n if ((this as Any)[Service.invoke]) {\n self = createCallable(this.name, this, (this as Any)[symbols.tracker])\n } else {\n self = Object.create(this)\n }\n return Object.assign(self, props)\n }\n\n [symbols.resolveConfig](base?: T, head?: T): T {\n let intercept: Any = this.ctx[symbols.intercept]!\n const configs: Any[] = []\n while (this.name in intercept) {\n if (Object.hasOwn(intercept, this.name)) {\n configs.unshift(intercept[this.name])\n }\n intercept = Object.getPrototypeOf(intercept)\n }\n if (base) configs.unshift(base)\n if (head) configs.push(head)\n if ((this as Any)['Config']?.merge) {\n return (this as Any)['Config'].merge(...configs)\n } else {\n return Object.assign({}, ...configs)\n }\n }\n\n static [Symbol.hasInstance](instance: Any) {\n if (!instance) return false\n let constructor = instance.constructor\n while (constructor) {\n constructor = constructor.prototype?.constructor\n if (constructor === this) return true\n constructor &&= Object.getPrototypeOf(constructor)\n }\n return false\n }\n}\n", "import type { Context } from './context.js'\nimport type { PluginRuntime } from './registry.js'\nimport type { Impl } from './reflect.js'\nimport {\n buildOuterStack,\n composeError,\n DisposableList,\n getTraceable,\n isConstructor,\n isNullable,\n isObject,\n symbols,\n type Any,\n type AnyFunction,\n type Dict,\n} from './utils.js'\n\ndeclare module './context.js' {\n interface Context extends Pick<Fiber, 'effect'> {\n fiber: Fiber\n }\n}\n\nconst INACTIVE = '__INACTIVE__'\n\nexport class ValidationError extends TypeError {\n override name = 'ValidationError'\n\n constructor(issues: readonly Any[]) {\n super('invalid config:\\n' + issues.map(issue => {\n if (issue.path) {\n return ` - ${issue.message} (at ${issue.path.join('.')})`\n }\n return ` - ${issue.message}`\n }).join('\\n'))\n }\n}\n\nexport function resolveConfig(runtime: PluginRuntime, config: Any) {\n if (!runtime.Config) return config\n const schema = runtime.Config\n if (typeof schema === 'function') return schema(config)\n const validate = schema?.['~standard']?.validate\n if (typeof validate === 'function') {\n const result = validate(config)\n if ('then' in result) {\n throw new TypeError('Async config validation is not supported')\n }\n if (result.issues) {\n throw new ValidationError(result.issues)\n }\n return result.value\n }\n return config\n}\n\nexport type Disposable = () => Any\nexport type SyncEffect = Disposable | Iterable<Disposable> | null | undefined\nexport type AsyncEffect = Promise<Disposable> | AsyncIterable<Disposable> | null | undefined\nexport type Effect = SyncEffect | AsyncEffect\n\ninterface AsyncDisposable extends PromiseLike<() => Promise<void>> {\n (): Any\n}\n\nexport interface EffectMeta {\n label: string\n children: EffectMeta[]\n}\n\ninterface EffectRunner<T> {\n epoch: T\n execute: () => Any\n collect: (dispose: Disposable) => void\n getOuterStack: () => string[]\n}\n\nexport const enum FiberState {\n PENDING,\n LOADING,\n ACTIVE,\n FAILED,\n DISPOSED,\n UNLOADING,\n}\n\nexport const CordisErrorCode = {\n INACTIVE_EFFECT: 'cannot create effect on inactive context',\n} as const\n\nexport type CordisErrorCode = keyof typeof CordisErrorCode\n\nexport class CordisError extends Error {\n constructor(public code: CordisErrorCode, message?: string) {\n super(message ?? CordisErrorCode[code])\n }\n}\n\nexport class Fiber {\n public uid: number | null\n public readonly ctx: Context\n public config: Any\n public state = FiberState.PENDING\n public readonly dispose: () => Promise<void>\n public store: Dict<Impl> | undefined\n public inertia: Promise<void> | undefined\n\n public readonly _hooks: Dict<DisposableList<AnyFunction>> = Object.create(null)\n public readonly _disposables = new DisposableList<Disposable>()\n\n protected context: Context\n\n private _error: Any = undefined\n private _runner: EffectRunner<string>\n private _store: Dict<Impl> = Object.create(null)\n private _restarting: Promise<void> | undefined\n\n constructor(\n public parent: Context,\n config: Any,\n public inject: Dict<Any>,\n public runtime: PluginRuntime | null,\n getOuterStack: () => string[],\n ) {\n const collect = (dispose: Disposable) => {\n this._disposables.push(dispose)\n }\n\n if (runtime) {\n this.uid = parent.registry.counter\n this.ctx = this.context = parent.extend({ fiber: this })\n\n const injectEntries = Object.entries(this.inject)\n if (injectEntries.length) {\n this.ctx[symbols.intercept] = Object.create(parent[symbols.intercept]!)\n for (const [name, config] of injectEntries) {\n if (isNullable(config)) continue\n this.ctx[symbols.intercept]![name] = config\n }\n }\n\n this._runner = {\n epoch: INACTIVE,\n getOuterStack,\n execute: () => {\n if (isConstructor(runtime.callback)) {\n const instance = new runtime.callback(this.ctx, this.config)\n for (const hook of instance?.[symbols.initHooks] ?? []) {\n hook()\n }\n return instance?.[symbols.init]?.()\n } else {\n return runtime.callback(this.ctx, this.config)\n }\n },\n collect,\n }\n\n this.context.emit(this, 'internal/plugin')\n\n for (const name of Object.keys(this.inject)) {\n this._checkImpl(name)\n }\n\n this.dispose = parent.fiber.effect(() => {\n const remove = runtime.fibers.push(this)\n try {\n this.config = resolveConfig(runtime, config)\n this._refresh()\n } catch (error) {\n this.ctx.logger.error(error)\n this._error = error\n }\n return async () => {\n this.uid = null\n this.context.emit(this, 'internal/plugin')\n if (this.ctx.registry.has(runtime.callback)) {\n remove()\n if (!runtime.fibers.length) {\n this.ctx.registry.delete(runtime.callback)\n }\n }\n this._setEpoch(INACTIVE)\n while (this.inertia) {\n await this.inertia\n }\n }\n }, 'ctx.plugin()')\n } else {\n this.uid = 0\n this.ctx = this.context = parent\n this.state = FiberState.ACTIVE\n this.store = Object.create(null)\n this._runner = {\n epoch: '',\n getOuterStack,\n execute: () => {},\n collect,\n }\n this.dispose = () => this.restart()\n }\n }\n\n get name() {\n if (this.runtime?.name) return this.runtime.name\n let fiber = this.parent.fiber\n while (fiber !== fiber.parent.fiber) {\n if (fiber.runtime?.name) return fiber.runtime.name\n fiber = fiber.parent.fiber\n }\n return 'root'\n }\n\n assertActive() {\n if (this.uid !== null) return\n throw new CordisError('INACTIVE_EFFECT')\n }\n\n private _execute<T>(runner: EffectRunner<T>) {\n const oldEpoch = runner.epoch\n return composeError((info: Any) => {\n const safeCollect = (dispose: Any) => {\n if (typeof dispose === 'function') {\n runner.collect(dispose)\n } else if (!isNullable(dispose)) {\n throw new TypeError('Invalid effect')\n }\n }\n const effect: Effect = runner.execute.call(this)\n if (typeof effect === 'function') {\n return runner.collect(effect)\n } else if (isNullable(effect)) {\n return\n } else if (!isObject(effect)) {\n throw new TypeError('Invalid effect')\n } else if ('then' in effect) {\n return (effect as Any).then(safeCollect)\n } else if (Symbol.iterator in effect) {\n info.error = new Error()\n const iter = (effect as Any)[Symbol.iterator]()\n while (true) {\n const result = iter.next()\n safeCollect(result.value)\n if (result.done) return\n }\n } else if (Symbol.asyncIterator in effect) {\n const iter = (effect as Any)[Symbol.asyncIterator]()\n return (async () => {\n await Promise.resolve()\n info.error = new Error()\n while (true) {\n if (runner.epoch !== oldEpoch) return\n const result = await iter.next()\n safeCollect(result.value)\n if (result.done) return\n }\n })()\n } else {\n throw new TypeError('Invalid effect')\n }\n }, runner.getOuterStack)\n }\n\n effect(execute: () => SyncEffect, label?: string): Disposable\n effect(execute: () => Effect, label?: string): AsyncDisposable\n effect(execute: () => Effect, label = 'anonymous'): Any {\n this.assertActive()\n\n const disposables: Disposable[] = []\n const dispose = () => {\n let task: Any\n for (const dispose of disposables.splice(0).reverse()) {\n if (task) {\n task = task.then(dispose)\n } else {\n const result = dispose()\n if (isObject(result) && 'then' in result) {\n task = result\n }\n }\n }\n return task\n }\n\n const meta: EffectMeta = { label, children: [] }\n const runner: EffectRunner<boolean> = {\n execute,\n epoch: true,\n collect: (dispose) => {\n disposables.push(dispose)\n this._disposables.delete(dispose)\n if ((dispose as Any)[symbols.effect]) {\n meta.children.push((dispose as Any)[symbols.effect])\n }\n },\n getOuterStack: buildOuterStack(),\n }\n\n let task: Any\n try {\n task = this._execute(runner)\n } catch (reason) {\n dispose()\n throw reason\n }\n\n task?.catch(dispose).catch((error: Any) => this.ctx.logger.error(error))\n\n const wrapper = Object.defineProperty(() => {\n if (!runner.epoch) return\n runner.epoch = false\n return task ? task.then(dispose) : dispose()\n }, symbols.effect, { value: meta }) as AsyncDisposable\n\n const disposeAsync = () => {\n if (!runner.epoch) return\n runner.epoch = false\n return dispose()\n }\n wrapper.then = async (onFulfilled, onRejected) => {\n return Promise.resolve(task)\n .then(() => disposeAsync)\n .then(onFulfilled, onRejected)\n }\n disposables.push(this._disposables.push(wrapper))\n return wrapper\n }\n\n getEffects() {\n return [...this._disposables]\n .map<EffectMeta>(dispose => (dispose as Any)[symbols.effect])\n .filter(Boolean)\n }\n\n private _getState() {\n if (this.uid === null) return FiberState.DISPOSED\n if (this._error) return FiberState.FAILED\n if (this._runner.epoch !== INACTIVE) return FiberState.ACTIVE\n return FiberState.PENDING\n }\n\n private _updateState(callback?: () => void | FiberState) {\n const oldState = this.state\n this.state = callback?.() ?? this._getState()\n if (oldState === this.state) return\n this.context.emit(this, 'internal/status', oldState)\n\n if (oldState !== FiberState.ACTIVE && this.state !== FiberState.ACTIVE) return\n for (const key of Reflect.ownKeys(this.ctx.reflect.store)) {\n const impl = this.ctx.reflect.store[key as symbol]\n if (!impl) continue\n if (impl.fiber !== this) continue\n this.ctx.reflect.notify([impl.name])\n }\n }\n\n _checkImpl(name: string) {\n const impl = this.ctx.reflect._getImpl(name, true)\n if (!impl) return delete this._store[name]\n try {\n if (impl.check && !impl.check.call(getTraceable(this.ctx, impl.value))) {\n return delete this._store[name]\n }\n } catch (error) {\n impl.fiber.ctx.logger.error(error)\n return delete this._store[name]\n }\n this._store[name] = impl\n }\n\n _refresh() {\n let epoch: string = ''\n for (const name of Object.keys(this.inject)) {\n const impl = this._store[name]\n if (!impl) {\n epoch = INACTIVE\n break\n }\n epoch += ':' + impl.fiber.uid\n }\n this._setEpoch(epoch)\n }\n\n private _setEpoch(epoch: string) {\n const oldEpoch = this._runner.epoch\n if (epoch === oldEpoch) return\n this._runner.epoch = epoch\n if (this.inertia) return\n this._updateState(() => {\n if (epoch !== INACTIVE && oldEpoch === INACTIVE) {\n this.inertia = this._reload()\n return FiberState.LOADING\n } else {\n this.inertia = this._unload()\n return FiberState.UNLOADING\n }\n })\n }\n\n private async _reload() {\n this.store = { ...this._store }\n const oldEpoch = this._runner.epoch\n try {\n await Promise.resolve()\n await this._execute(this._runner)\n } catch (reason) {\n this.ctx.logger.error(reason)\n this._error = reason\n this._runner.epoch = INACTIVE\n }\n this._updateState(() => {\n if (this._runner.epoch === oldEpoch) {\n this.inertia = undefined\n } else {\n this.inertia = this._unload()\n return FiberState.UNLOADING\n }\n })\n }\n\n private async _unload() {\n await Promise.all(this._disposables.clear().map(async (dispose: Disposable) => {\n try {\n await composeError(async (info: Any) => {\n await Promise.resolve()\n info.error = new Error()\n await dispose()\n }, this._runner.getOuterStack)\n } catch (reason) {\n this.ctx.logger.error(reason)\n }\n }))\n this.store = undefined\n this._updateState(() => {\n if (this._runner.epoch === INACTIVE) {\n this.inertia = undefined\n } else {\n this.inertia = this._reload()\n return FiberState.LOADING\n }\n })\n }\n\n async await() {\n while (this.inertia || this._restarting) {\n await Promise.all([this.inertia, this._restarting]\n .filter((task): task is Promise<void> => !!task))\n }\n if (this._error) throw this._error\n return this\n }\n\n async restart() {\n const fiber = this.ctx.fiber\n fiber.assertActive()\n if (fiber._restarting) return fiber._restarting.then(() => undefined)\n let resolve!: () => void\n const restarting = new Promise<void>((resolvePromise) => {\n resolve = resolvePromise\n })\n fiber._restarting = restarting\n try {\n await this._runRestart(fiber)\n } finally {\n fiber._restarting = undefined\n resolve()\n }\n }\n\n private async _runRestart(fiber: Fiber) {\n if (fiber.inertia) {\n fiber._setEpoch(INACTIVE)\n while (fiber.inertia) await fiber.inertia\n }\n fiber._setEpoch(INACTIVE)\n fiber._refresh()\n while (fiber.inertia) await fiber.inertia\n }\n\n update(config: Any, noSave = false) {\n const fiber = this.ctx.fiber\n fiber.assertActive()\n config = resolveConfig(fiber.runtime!, config)\n fiber.context.waterfall(fiber.context, 'internal/update', config, noSave, () => {\n fiber.config = config\n fiber._error = undefined\n return fiber.restart()\n })\n }\n}\n", "import type { Context } from './context.js'\nimport { Fiber } from './fiber.js'\nimport { buildOuterStack, DisposableList, symbols, withProps, type Any, type AnyFunction, type Dict } from './utils.js'\n\ndeclare module './context.js' {\n interface Context {\n inject(deps: Inject, callback: FunctionPlugin): Fiber & PromiseLike<Fiber>\n plugin<P extends Plugin>(plugin: P, ...args: Any[]): Fiber & PromiseLike<Fiber>\n }\n}\n\nfunction isApplicable(object: Plugin) {\n return object && typeof object === 'object' && typeof object.apply === 'function'\n}\n\nexport type Inject = string[] | Dict<Any>\nexport type InjectKey = string & keyof Context\n\nexport function Inject(name: string, config?: Any) {\n return function (value: Any, decorator: Any) {\n if (decorator.kind === 'class') {\n if (!Object.hasOwn(value, 'inject')) {\n Object.defineProperty(value, 'inject', {\n value: Object.create(Object.getPrototypeOf(value).inject ?? null),\n })\n Object.defineProperty(value.inject, symbols.checkProto, { value: true })\n }\n value.inject[name] = config\n } else if (decorator.kind === 'method') {\n const inject = (value[symbols.metadata] ??= {}).inject ??= Object.create(null)\n inject[name] = config\n decorator.addInitializer(function (this: Any) {\n const property = this[symbols.tracker]?.property\n ;(this[symbols.initHooks] ??= []).push(() => {\n (this.ctx as Context).inject(inject, (ctx) => {\n return value.call(property ? withProps(this, { [property]: ctx }) : this)\n })\n })\n })\n } else {\n throw new Error('@Inject() can only be used on class or class methods')\n }\n }\n}\n\nexport function resolveInject(inject: Inject | null | undefined, result: Dict = Object.create(null)) {\n if (!inject) return result\n if (Array.isArray(inject)) {\n for (const name of inject) {\n result[name] = null\n }\n } else if (Reflect.has(inject, symbols.checkProto)) {\n Object.assign(result, resolveInject(Object.getPrototypeOf(inject)))\n for (const name of Object.keys(inject)) {\n result[name] = inject[name] ?? null\n }\n } else {\n for (const name of Object.keys(inject)) {\n result[name] = inject[name] ?? null\n }\n }\n return result\n}\n\nexport type Plugin = FunctionPlugin | ConstructorPlugin | ObjectPlugin\n\nexport interface PluginBase {\n name?: string\n Config?: Any\n inject?: Inject\n provide?: string | string[]\n intercept?: Dict<boolean>\n}\n\nexport interface FunctionPlugin extends PluginBase {\n (ctx: Context, config: Any): Any\n}\n\nexport interface ConstructorPlugin extends PluginBase {\n new (ctx: Context, config: Any): Any\n}\n\nexport interface ObjectPlugin extends PluginBase {\n apply(ctx: Context, config: Any): Any\n}\n\nexport interface PluginRuntime {\n name?: string\n fibers: DisposableList<Fiber>\n callback: Any\n Config?: Any\n}\n\nexport class RegistryService {\n private _counter = 0\n private _internal = new Map<AnyFunction, PluginRuntime>()\n\n constructor(public ctx: Context) {\n Object.defineProperty(this, symbols.tracker, {\n value: { property: 'ctx', noShadow: true },\n })\n }\n\n get counter() {\n return ++this._counter\n }\n\n get size() {\n return this._internal.size\n }\n\n resolve(plugin: Plugin): AnyFunction | undefined {\n try {\n if (typeof plugin === 'function') return plugin as AnyFunction\n if (isApplicable(plugin)) return plugin.apply\n } catch {\n // getters on plugin objects may throw during resolution\n }\n }\n\n get(plugin: Plugin) {\n const key = this.resolve(plugin)\n return key && this._internal.get(key)\n }\n\n has(plugin: Plugin) {\n const key = this.resolve(plugin)\n return !!key && this._internal.has(key)\n }\n\n delete(plugin: Plugin) {\n const key = this.resolve(plugin)\n const runtime = key && this._internal.get(key)\n if (!runtime) return\n this._internal.delete(key)\n for (const fiber of [...runtime.fibers]) {\n fiber.dispose()\n }\n return runtime\n }\n\n keys() {\n return this._internal.keys()\n }\n\n values() {\n return this._internal.values()\n }\n\n entries() {\n return this._internal.entries()\n }\n\n forEach(callback: (value: PluginRuntime, key: AnyFunction) => void) {\n return this._internal.forEach(callback)\n }\n\n inject(inject: Inject, callback: FunctionPlugin) {\n const name = callback.name || undefined\n return this.plugin(Object.assign(\n { inject, apply: callback },\n name ? { name } : {},\n ))\n }\n\n plugin(plugin: Plugin, config?: Any, getOuterStack = buildOuterStack()) {\n const callback = this.resolve(plugin)\n if (!callback) throw new Error('invalid plugin, expect function or object with an \"apply\" method, received ' + typeof plugin)\n this.ctx.fiber.assertActive()\n\n let runtime = this._internal.get(callback)\n if (!runtime) {\n let name = plugin.name\n if (name === 'apply') name = undefined\n runtime = {\n callback,\n fibers: new DisposableList(),\n ...(name ? { name } : {}),\n ...(plugin.Config ? { Config: plugin.Config } : {}),\n }\n this._internal.set(callback, runtime)\n }\n\n const fiber = new Fiber(this.ctx, config, resolveInject(plugin.inject), runtime, getOuterStack)\n const wrapped = Object.create(fiber) as Fiber & PromiseLike<Fiber>\n wrapped.then = (onFulfilled: Any, onRejected: Any) => {\n return fiber.await().then(onFulfilled, onRejected)\n }\n return wrapped\n }\n}\n", "import type { Context } from './context.js'\r\nimport { FiberState } from './fiber.js'\r\nimport { getTraceable, symbols, withProps, type Any, type AnyFunction, type Dict } from './utils.js'\r\n\r\ndeclare module './context.js' {\r\n interface Context {\r\n get(name: string, strict?: boolean): Any\r\n set(name: string, value: Any): void\r\n provide(name: string, value?: Any, check?: () => boolean): () => Any\r\n accessor(name: string, options: Omit<AccessorProperty, 'type'>): () => Any\r\n mixin(source: Any, mixins: string[] | Dict<string>): void\r\n }\r\n}\r\n\r\nfunction enhanceError(error: Error) {\r\n const lines = error.stack!.split('\\n')\r\n lines.splice(0, 2, `Error: ${error.message}`)\r\n error.stack = lines.join('\\n')\r\n return error\r\n}\r\n\r\nconst RESERVED_WORDS = ['prototype', 'then']\r\n\r\nfunction isSpecialProperty(prop: string | symbol) {\r\n return typeof prop === 'symbol'\r\n || RESERVED_WORDS.includes(prop as string)\r\n || parseInt(prop as string).toString() === prop\r\n || (prop as string).startsWith('_')\r\n}\r\n\r\nexport interface ServiceProperty {\r\n type: 'service'\r\n}\r\n\r\nexport interface AccessorProperty {\r\n type: 'accessor'\r\n get: (this: Context, receiver: Any, error: Error) => Any\r\n set?: (this: Context, value: Any, receiver: Any, error: Error) => boolean\r\n}\r\n\r\nexport type ReflectProperty = ServiceProperty | AccessorProperty\r\n\r\nexport interface Impl {\r\n name: string\r\n fiber: Any\r\n value?: Any\r\n check?: () => boolean\r\n}\r\n\r\nexport class ReflectService {\r\n static handler: ProxyHandler<Context> = {\r\n get: (target, prop, ctx: Context) => {\r\n if (isSpecialProperty(prop)) {\r\n return Reflect.get(target, prop, ctx)\r\n }\r\n if (Reflect.has(target, prop)) {\r\n return getTraceable(ctx, Reflect.get(target, prop, ctx))\r\n }\r\n\r\n const error = new Error(`cannot get property \"${String(prop)}\" without inject`)\r\n try {\r\n const def = target.reflect.props[prop as string]\r\n if (def?.type === 'accessor') {\r\n return def.get.call(ctx, ctx[symbols.receiver], error)\r\n }\r\n\r\n if (!ctx.fiber.runtime) return ctx.reflect.get(prop as string, false)\r\n return ctx.events.waterfall(ctx, 'internal/get', prop, error, () => {\r\n const key = target[symbols.isolate]![prop as string]\r\n let fiber = ((ctx[symbols.shadow] as Context) ?? ctx).fiber\r\n while (true) {\r\n const impl = fiber.store?.[prop as string]\r\n if (impl) return getTraceable(ctx, impl.value)\r\n if (prop in fiber.inject) {\r\n error.message = `cannot get required service \"${String(prop)}\" in inactive context`\r\n throw error\r\n }\r\n if (!fiber.runtime) throw error\r\n if (fiber.parent[symbols.isolate]![prop as string] !== key) throw error\r\n fiber = fiber.parent.fiber\r\n }\r\n })\r\n } catch (e: Any) {\r\n throw e === error ? enhanceError(e) : e\r\n }\r\n },\r\n\r\n set: (target, prop, value, ctx: Context) => {\r\n if (isSpecialProperty(prop)) {\r\n return Reflect.set(target, prop, value, ctx)\r\n }\r\n\r\n const error = new Error(`cannot set property \"${String(prop)}\" without provide`)\r\n const def = target.reflect.props[prop as string]\r\n\r\n try {\r\n if (def?.type === 'accessor') {\r\n if (!def.set) return false\r\n return def.set.call(ctx, value, ctx[symbols.receiver], error)\r\n }\r\n\r\n if (!def && !ctx.fiber.runtime) {\r\n return Reflect.set(target, prop, value, ctx)\r\n }\r\n\r\n return ctx.events.waterfall(ctx, 'internal/set', prop, value, error, () => {\r\n if (!def) throw error\r\n return ctx.reflect.set(prop as string, value)\r\n })\r\n } catch (e: Any) {\r\n throw e === error ? enhanceError(e) : e\r\n }\r\n },\r\n\r\n has: (target, prop) => {\r\n if (isSpecialProperty(prop)) {\r\n return Reflect.has(target, prop)\r\n }\r\n if (Reflect.has(target, prop)) return true\r\n return !!target.reflect.props[prop as string]\r\n },\r\n }\r\n\r\n public store: Dict<Impl, symbol> = Object.create(null)\r\n public props: Dict<ReflectProperty> = Object.create(null)\r\n\r\n constructor(public ctx: Context) {\r\n Object.defineProperty(this, symbols.tracker, {\r\n value: { property: 'ctx', noShadow: true },\r\n })\r\n\r\n this.mixin('reflect', ['get', 'set', 'provide', 'accessor', 'mixin'])\r\n this.mixin('fiber', ['runtime', 'effect'])\r\n this.mixin('registry', ['inject', 'plugin'])\r\n this.mixin('events', [\r\n 'on',\r\n 'once',\r\n 'parallel',\r\n 'emit',\r\n 'serial',\r\n 'bail',\r\n 'waterfall',\r\n 'waterfallAsync',\r\n ])\r\n }\r\n\r\n get(name: string, strict = true) {\r\n return getTraceable(this.ctx, this._getImpl(name, strict)?.value)\r\n }\r\n\r\n _getImpl(name: string, strict = true) {\r\n const key = this.ctx[symbols.isolate]![name]\r\n const impl = key && this.store[key as symbol]\r\n if (!impl) return\r\n if (strict && impl.fiber.state !== FiberState.ACTIVE) return\r\n return impl\r\n }\r\n\r\n set(name: string, value: Any) {\r\n const key = this.ctx[symbols.isolate]![name]\r\n const impl = key && this.store[key as symbol]\r\n if (!impl) {\r\n throw new Error(`cannot set property \"${name}\" without provide`)\r\n }\r\n if (impl.fiber !== this.ctx.fiber) {\r\n throw new Error(`cannot set property \"${name}\" in multiple fibers`)\r\n }\r\n impl.value = value\r\n return true\r\n }\r\n\r\n provide(name: string, value?: Any, check?: () => boolean) {\r\n return this.ctx.fiber.effect(() => {\r\n if (!this.props[name]) {\r\n this.props[name] = { type: 'service' }\r\n } else if (this.props[name].type !== 'service') {\r\n throw new Error(`property \"${name}\" is already declared as ${this.props[name].type}`)\r\n }\r\n this.props[name] = { type: 'service' }\r\n\r\n this.ctx.root[symbols.isolate]![name] ??= Symbol(name)\r\n const key = this.ctx[symbols.isolate]![name]\r\n const impl: Impl = {\r\n name,\r\n value,\r\n fiber: this.ctx.fiber,\r\n ...(check ? { check } : {}),\r\n }\r\n if (key && this.store[key]) {\r\n throw new Error(`service \"${name}\" has been registered at <${this.store[key].fiber.name}>`)\r\n }\r\n this.store[key as symbol] = impl\r\n this.ctx.fiber.store![name] = impl\r\n if (this.ctx.fiber.state === FiberState.ACTIVE) {\r\n this.notify([name])\r\n }\r\n return async () => {\r\n delete this.store[key as symbol]\r\n const fibers = this.notify([name])\r\n await Promise.allSettled(fibers.map(fiber => fiber.await()))\r\n delete this.ctx.fiber.store![name]\r\n }\r\n }, `ctx.provide(${JSON.stringify(name)})`)\r\n }\r\n\r\n notify(\r\n names: string[],\r\n filter = (ctx: Context, name: string) => ctx[symbols.isolate]![name] === this.ctx[symbols.isolate]![name],\r\n ) {\r\n const fibers: Any[] = []\r\n for (const runtime of this.ctx.registry.values()) {\r\n for (const fiber of runtime.fibers) {\r\n let hasUpdate = false\r\n for (const name of names) {\r\n if (!(name in fiber.inject)) continue\r\n if (!filter(fiber.ctx, name)) continue\r\n hasUpdate = true\r\n fiber._checkImpl(name)\r\n }\r\n if (!hasUpdate) continue\r\n fiber._refresh()\r\n fibers.push(fiber)\r\n }\r\n }\r\n for (const name of names) {\r\n const self: Any = Object.create(this.ctx)\r\n self[symbols.filter] = (target: Context) => filter(target, name)\r\n this.ctx.events.emit(self, 'internal/service', name, this._getImpl(name, false)?.value)\r\n }\r\n return fibers\r\n }\r\n\r\n accessor(name: string, options: Omit<AccessorProperty, 'type'>) {\r\n return this.ctx.fiber.effect(() => {\r\n if (name in this.props) {\r\n throw new Error(`property \"${name}\" is already declared as ${this.props[name]!.type}`)\r\n }\r\n this.props[name] = { type: 'accessor', ...options }\r\n return () => delete this.props[name]\r\n }, `ctx.accessor(${JSON.stringify(name)})`)\r\n }\r\n\r\n mixin(source: Any, mixins: string[] | Dict<string>) {\r\n return this.ctx.fiber.effect(() => {\r\n const entries: [string, string][] = Array.isArray(mixins)\r\n ? mixins.map(key => [key, key] as [string, string])\r\n : Object.entries(mixins)\r\n const getTarget = (target: Context): Any => target[source]\r\n return entries.map(([key, value]) => {\r\n return this.accessor(value, {\r\n get(receiver) {\r\n const service: Any = getTarget(this)\r\n if (service == null) return service\r\n const mixin = receiver ? withProps(receiver, service) : service\r\n const result = Reflect.get(service, key, mixin)\r\n if (typeof result !== 'function') return result\r\n return result.bind(mixin ?? service)\r\n },\r\n set(value, receiver) {\r\n const service: Any = getTarget(this)\r\n const mixin = receiver ? withProps(receiver, service) : service\r\n return Reflect.set(service, key, value, mixin)\r\n },\r\n })\r\n })\r\n }, `ctx.mixin(${JSON.stringify(source)})`)\r\n }\r\n\r\n trace<T>(value: T) {\r\n return getTraceable(this.ctx, value)\r\n }\r\n\r\n bind<T extends AnyFunction>(callback: T) {\r\n return new Proxy(callback, {\r\n apply: (target, thisArg, args) => {\r\n return Reflect.apply(target, this.trace(thisArg), args.map(arg => this.trace(arg)))\r\n },\r\n construct: (target, args, newTarget) => {\r\n return Reflect.construct(target, args.map(arg => this.trace(arg)), newTarget)\r\n },\r\n })\r\n }\r\n}\r\n", "/* eslint-disable @typescript-eslint/no-unsafe-declaration-merging */\nimport type { Context } from './context.js'\nimport { createCallable, joinPrototype, symbols, type Any } from './utils.js'\n\nexport type LoggerType = 'error' | 'info' | 'warn' | 'debug'\nexport type LoggerMethod = (format: Any, ...param: Any[]) => void\n\nexport interface Message {\n sn: number\n ts: number\n name: string\n type: LoggerType\n args: Any[]\n}\n\nexport interface Exporter {\n level?: number\n export(message: Message): void\n}\n\nexport interface LoggerOptions {\n name: string\n level?: number\n}\n\nexport interface LoggerService {\n (name?: string): Logger\n}\n\nexport class Logger {\n public name: string\n public level: number | undefined\n error!: LoggerMethod\n info!: LoggerMethod\n warn!: LoggerMethod\n debug!: LoggerMethod\n\n constructor(options: LoggerOptions, private service: LoggerService) {\n this.name = options.name\n this.level = options.level\n this.error = this._method('error')\n this.info = this._method('info')\n this.warn = this._method('warn')\n this.debug = this._method('debug')\n }\n\n private _method(type: LoggerType): LoggerMethod {\n return (...args: Any[]) => this.service._log({ name: this.name, type, args })\n }\n}\n\nexport class LoggerService {\n buffer: Message[] = []\n ctx!: Context\n _snMessage = 0\n _snExporter = 0\n exporters = new Map<number, Exporter>()\n\n constructor(ctx: Context) {\n const tracker = {\n property: 'ctx',\n noShadow: true,\n }\n const self = createCallable('logger', joinPrototype(Object.getPrototypeOf(this), Function.prototype), tracker) as unknown as LoggerService\n Object.assign(self, this)\n self.ctx = ctx\n Object.defineProperty(self, symbols.tracker, { value: tracker })\n self.exporter({\n export: (message) => {\n self.buffer.push(message)\n },\n })\n ctx.reflect.provide('logger', self)\n return self\n }\n\n exporter(exporter: Exporter) {\n return this.ctx.fiber.effect(() => {\n const id = ++this._snExporter\n this.exporters.set(id, exporter)\n return () => this.exporters.delete(id)\n }, 'ctx.logger.exporter()')\n }\n\n [symbols.invoke](name?: string): Logger {\n const caller = (this as Any)[symbols.caller] as Context | undefined\n const fiber = (caller ?? this.ctx).fiber\n return new Logger({\n name: name ?? fiber.name,\n }, this)\n }\n\n _log(message: Omit<Message, 'sn' | 'ts'>) {\n const sn = ++this._snMessage\n const ts = Date.now()\n for (const exporter of this.exporters.values()) {\n if (exporter.level != null && exporter.level < 0) continue\n exporter.export({ sn, ts, ...message })\n }\n }\n\n error(...args: Any[]) {\n return (this as Any)().error(...args)\n }\n\n info(...args: Any[]) {\n return (this as Any)().info(...args)\n }\n\n warn(...args: Any[]) {\n return (this as Any)().warn(...args)\n }\n\n debug(...args: Any[]) {\n return (this as Any)().debug(...args)\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["target", "value", "lines", "config", "task", "dispose", "value"]
|
|
7
|
+
}
|