apcore-js 0.18.0 → 0.20.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 +112 -9
- package/dist/acl-handlers.d.ts +14 -0
- package/dist/acl-handlers.d.ts.map +1 -1
- package/dist/acl-handlers.js +37 -4
- package/dist/acl-handlers.js.map +1 -1
- package/dist/acl.d.ts +22 -1
- package/dist/acl.d.ts.map +1 -1
- package/dist/acl.js +90 -34
- package/dist/acl.js.map +1 -1
- package/dist/async-task.d.ts +70 -16
- package/dist/async-task.d.ts.map +1 -1
- package/dist/async-task.js +212 -72
- package/dist/async-task.js.map +1 -1
- package/dist/bindings.d.ts.map +1 -1
- package/dist/bindings.js +113 -11
- package/dist/bindings.js.map +1 -1
- package/dist/builtin-steps.d.ts +33 -8
- package/dist/builtin-steps.d.ts.map +1 -1
- package/dist/builtin-steps.js +119 -47
- package/dist/builtin-steps.js.map +1 -1
- package/dist/client.d.ts +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +38 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +163 -33
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +34 -7
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +108 -40
- package/dist/context.js.map +1 -1
- package/dist/decorator.d.ts +3 -0
- package/dist/decorator.d.ts.map +1 -1
- package/dist/decorator.js +3 -0
- package/dist/decorator.js.map +1 -1
- package/dist/errors.d.ts +88 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +231 -56
- package/dist/errors.js.map +1 -1
- package/dist/events/circuit-breaker.d.ts +45 -0
- package/dist/events/circuit-breaker.d.ts.map +1 -0
- package/dist/events/circuit-breaker.js +115 -0
- package/dist/events/circuit-breaker.js.map +1 -0
- package/dist/events/emitter.d.ts +24 -1
- package/dist/events/emitter.d.ts.map +1 -1
- package/dist/events/emitter.js +86 -12
- package/dist/events/emitter.js.map +1 -1
- package/dist/events/index.d.ts +4 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +3 -2
- package/dist/events/index.js.map +1 -1
- package/dist/events/subscribers.d.ts +33 -1
- package/dist/events/subscribers.d.ts.map +1 -1
- package/dist/events/subscribers.js +124 -1
- package/dist/events/subscribers.js.map +1 -1
- package/dist/executor.d.ts +14 -3
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +155 -48
- package/dist/executor.js.map +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/index.d.ts +47 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -18
- package/dist/index.js.map +1 -1
- package/dist/middleware/base.d.ts +25 -3
- package/dist/middleware/base.d.ts.map +1 -1
- package/dist/middleware/base.js +24 -0
- package/dist/middleware/base.js.map +1 -1
- package/dist/middleware/circuit-breaker.d.ts +54 -0
- package/dist/middleware/circuit-breaker.d.ts.map +1 -0
- package/dist/middleware/circuit-breaker.js +168 -0
- package/dist/middleware/circuit-breaker.js.map +1 -0
- package/dist/middleware/context-namespace.d.ts +30 -0
- package/dist/middleware/context-namespace.d.ts.map +1 -0
- package/dist/middleware/context-namespace.js +38 -0
- package/dist/middleware/context-namespace.js.map +1 -0
- package/dist/middleware/index.d.ts +8 -2
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +5 -2
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/logging.d.ts +6 -0
- package/dist/middleware/logging.d.ts.map +1 -1
- package/dist/middleware/logging.js +13 -3
- package/dist/middleware/logging.js.map +1 -1
- package/dist/middleware/manager.d.ts +11 -4
- package/dist/middleware/manager.d.ts.map +1 -1
- package/dist/middleware/manager.js +26 -9
- package/dist/middleware/manager.js.map +1 -1
- package/dist/middleware/platform-notify.d.ts +8 -4
- package/dist/middleware/platform-notify.d.ts.map +1 -1
- package/dist/middleware/platform-notify.js +15 -7
- package/dist/middleware/platform-notify.js.map +1 -1
- package/dist/middleware/retry.d.ts +16 -7
- package/dist/middleware/retry.d.ts.map +1 -1
- package/dist/middleware/retry.js +21 -15
- package/dist/middleware/retry.js.map +1 -1
- package/dist/middleware/tracing.d.ts +50 -0
- package/dist/middleware/tracing.d.ts.map +1 -0
- package/dist/middleware/tracing.js +89 -0
- package/dist/middleware/tracing.js.map +1 -0
- package/dist/observability/batch-span-processor.d.ts +48 -0
- package/dist/observability/batch-span-processor.d.ts.map +1 -0
- package/dist/observability/batch-span-processor.js +89 -0
- package/dist/observability/batch-span-processor.js.map +1 -0
- package/dist/observability/context-logger.d.ts +54 -1
- package/dist/observability/context-logger.d.ts.map +1 -1
- package/dist/observability/context-logger.js +287 -10
- package/dist/observability/context-logger.js.map +1 -1
- package/dist/observability/error-history.d.ts +36 -7
- package/dist/observability/error-history.d.ts.map +1 -1
- package/dist/observability/error-history.js +169 -50
- package/dist/observability/error-history.js.map +1 -1
- package/dist/observability/index.d.ts +16 -5
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +8 -3
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/metrics-utils.d.ts.map +1 -1
- package/dist/observability/metrics-utils.js +3 -5
- package/dist/observability/metrics-utils.js.map +1 -1
- package/dist/observability/metrics.d.ts +15 -1
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/metrics.js +37 -3
- package/dist/observability/metrics.js.map +1 -1
- package/dist/observability/prometheus-exporter.d.ts +37 -0
- package/dist/observability/prometheus-exporter.d.ts.map +1 -0
- package/dist/observability/prometheus-exporter.js +135 -0
- package/dist/observability/prometheus-exporter.js.map +1 -0
- package/dist/observability/storage.d.ts +43 -0
- package/dist/observability/storage.d.ts.map +1 -0
- package/dist/observability/storage.js +58 -0
- package/dist/observability/storage.js.map +1 -0
- package/dist/observability/store.d.ts +29 -0
- package/dist/observability/store.d.ts.map +1 -0
- package/dist/observability/store.js +36 -0
- package/dist/observability/store.js.map +1 -0
- package/dist/observability/tracing.d.ts +2 -0
- package/dist/observability/tracing.d.ts.map +1 -1
- package/dist/observability/tracing.js +12 -2
- package/dist/observability/tracing.js.map +1 -1
- package/dist/observability/usage-exporter.d.ts +58 -0
- package/dist/observability/usage-exporter.d.ts.map +1 -0
- package/dist/observability/usage-exporter.js +86 -0
- package/dist/observability/usage-exporter.js.map +1 -0
- package/dist/observability/usage.d.ts +18 -1
- package/dist/observability/usage.d.ts.map +1 -1
- package/dist/observability/usage.js +35 -4
- package/dist/observability/usage.js.map +1 -1
- package/dist/pipeline-config.d.ts +24 -7
- package/dist/pipeline-config.d.ts.map +1 -1
- package/dist/pipeline-config.js +113 -19
- package/dist/pipeline-config.js.map +1 -1
- package/dist/pipeline.d.ts +123 -2
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +249 -50
- package/dist/pipeline.js.map +1 -1
- package/dist/registry/conflicts.d.ts +2 -2
- package/dist/registry/conflicts.d.ts.map +1 -1
- package/dist/registry/conflicts.js +10 -11
- package/dist/registry/conflicts.js.map +1 -1
- package/dist/registry/dependencies.d.ts +1 -1
- package/dist/registry/dependencies.d.ts.map +1 -1
- package/dist/registry/dependencies.js +69 -20
- package/dist/registry/dependencies.js.map +1 -1
- package/dist/registry/index.d.ts +2 -0
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -0
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/multi-class.d.ts +57 -0
- package/dist/registry/multi-class.d.ts.map +1 -0
- package/dist/registry/multi-class.js +120 -0
- package/dist/registry/multi-class.js.map +1 -0
- package/dist/registry/registry.d.ts +99 -4
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +291 -33
- package/dist/registry/registry.js.map +1 -1
- package/dist/registry/scanner.d.ts.map +1 -1
- package/dist/registry/scanner.js +6 -0
- package/dist/registry/scanner.js.map +1 -1
- package/dist/registry/version.d.ts +1 -0
- package/dist/registry/version.d.ts.map +1 -1
- package/dist/registry/version.js +33 -4
- package/dist/registry/version.js.map +1 -1
- package/dist/schema/constants.d.ts +9 -0
- package/dist/schema/constants.d.ts.map +1 -0
- package/dist/schema/constants.js +9 -0
- package/dist/schema/constants.js.map +1 -0
- package/dist/schema/extractor.d.ts +69 -0
- package/dist/schema/extractor.d.ts.map +1 -0
- package/dist/schema/extractor.js +142 -0
- package/dist/schema/extractor.js.map +1 -0
- package/dist/schema/index.d.ts +3 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +2 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/loader.d.ts +27 -3
- package/dist/schema/loader.d.ts.map +1 -1
- package/dist/schema/loader.js +137 -32
- package/dist/schema/loader.js.map +1 -1
- package/dist/schema/ref-resolver.d.ts.map +1 -1
- package/dist/schema/ref-resolver.js +10 -1
- package/dist/schema/ref-resolver.js.map +1 -1
- package/dist/schema/types.d.ts +4 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js.map +1 -1
- package/dist/schema/validator.d.ts +9 -0
- package/dist/schema/validator.d.ts.map +1 -1
- package/dist/schema/validator.js +153 -4
- package/dist/schema/validator.js.map +1 -1
- package/dist/sys-modules/audit.d.ts +50 -0
- package/dist/sys-modules/audit.d.ts.map +1 -0
- package/dist/sys-modules/audit.js +89 -0
- package/dist/sys-modules/audit.js.map +1 -0
- package/dist/sys-modules/control.d.ts +32 -4
- package/dist/sys-modules/control.d.ts.map +1 -1
- package/dist/sys-modules/control.js +197 -23
- package/dist/sys-modules/control.js.map +1 -1
- package/dist/sys-modules/index.d.ts +7 -2
- package/dist/sys-modules/index.d.ts.map +1 -1
- package/dist/sys-modules/index.js +3 -1
- package/dist/sys-modules/index.js.map +1 -1
- package/dist/sys-modules/overrides.d.ts +58 -0
- package/dist/sys-modules/overrides.d.ts.map +1 -0
- package/dist/sys-modules/overrides.js +106 -0
- package/dist/sys-modules/overrides.js.map +1 -0
- package/dist/sys-modules/registration.d.ts +18 -1
- package/dist/sys-modules/registration.d.ts.map +1 -1
- package/dist/sys-modules/registration.js +115 -11
- package/dist/sys-modules/registration.js.map +1 -1
- package/dist/sys-modules/toggle.d.ts +7 -2
- package/dist/sys-modules/toggle.d.ts.map +1 -1
- package/dist/sys-modules/toggle.js +61 -5
- package/dist/sys-modules/toggle.js.map +1 -1
- package/dist/trace-context.d.ts +47 -9
- package/dist/trace-context.d.ts.map +1 -1
- package/dist/trace-context.js +139 -16
- package/dist/trace-context.js.map +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-registration of sys.* modules and middleware from config.
|
|
3
3
|
*/
|
|
4
|
+
import * as fs from 'node:fs';
|
|
5
|
+
import * as yaml from 'js-yaml';
|
|
6
|
+
import { SysModuleRegistrationError } from '../errors.js';
|
|
4
7
|
import { ErrorHistory } from '../observability/error-history.js';
|
|
5
8
|
import { ErrorHistoryMiddleware } from '../middleware/error-history.js';
|
|
6
9
|
import { UsageCollector, UsageMiddleware } from '../observability/usage.js';
|
|
7
|
-
import { EventEmitter,
|
|
8
|
-
import { WebhookSubscriber, A2ASubscriber } from '../events/subscribers.js';
|
|
10
|
+
import { EventEmitter, emitWithLegacy } from '../events/emitter.js';
|
|
11
|
+
import { WebhookSubscriber, A2ASubscriber, FileSubscriber, StdoutSubscriber, FilterSubscriber } from '../events/subscribers.js';
|
|
9
12
|
import { PlatformNotifyMiddleware } from '../middleware/platform-notify.js';
|
|
10
13
|
import { HealthSummaryModule, HealthModule } from './health.js';
|
|
11
14
|
import { ManifestFullModule, ManifestModule } from './manifest.js';
|
|
@@ -56,22 +59,70 @@ function _registerBuiltInFactories() {
|
|
|
56
59
|
const timeoutMs = config['timeout_ms'];
|
|
57
60
|
return new A2ASubscriber(platformUrl, auth, timeoutMs);
|
|
58
61
|
});
|
|
62
|
+
_subscriberFactories.set('file', (config) => {
|
|
63
|
+
const path = config['path'];
|
|
64
|
+
if (typeof path !== 'string' || path.length === 0) {
|
|
65
|
+
throw new Error(`file subscriber requires a non-empty "path" string field`);
|
|
66
|
+
}
|
|
67
|
+
const append = config['append'];
|
|
68
|
+
const format = config['format'];
|
|
69
|
+
const rotateBytes = config['rotate_bytes'];
|
|
70
|
+
return new FileSubscriber(path, append, format, rotateBytes);
|
|
71
|
+
});
|
|
72
|
+
_subscriberFactories.set('stdout', (config) => {
|
|
73
|
+
const format = config['format'];
|
|
74
|
+
const levelFilter = config['level_filter'];
|
|
75
|
+
return new StdoutSubscriber(format, levelFilter);
|
|
76
|
+
});
|
|
77
|
+
_subscriberFactories.set('filter', (config) => {
|
|
78
|
+
const delegateType = config['delegate_type'];
|
|
79
|
+
if (typeof delegateType !== 'string') {
|
|
80
|
+
throw new Error(`filter subscriber requires a "delegate_type" string field`);
|
|
81
|
+
}
|
|
82
|
+
const delegateConfig = (config['delegate_config'] ?? {});
|
|
83
|
+
const delegateFactory = _subscriberFactories.get(delegateType);
|
|
84
|
+
if (delegateFactory === undefined) {
|
|
85
|
+
throw new Error(`Unknown delegate subscriber type '${delegateType}' for filter subscriber`);
|
|
86
|
+
}
|
|
87
|
+
const delegate = delegateFactory(delegateConfig);
|
|
88
|
+
const includeEvents = config['include_events'];
|
|
89
|
+
const excludeEvents = config['exclude_events'];
|
|
90
|
+
return new FilterSubscriber(delegate, includeEvents, excludeEvents);
|
|
91
|
+
});
|
|
59
92
|
}
|
|
60
93
|
// Register built-in factories on module load
|
|
61
94
|
_registerBuiltInFactories();
|
|
95
|
+
/** Register a custom subscriber type for config-driven instantiation. */
|
|
62
96
|
export function registerSubscriberType(typeName, factory) {
|
|
63
97
|
_subscriberFactories.set(typeName, factory);
|
|
64
98
|
}
|
|
99
|
+
/** Remove a previously registered subscriber type. */
|
|
65
100
|
export function unregisterSubscriberType(typeName) {
|
|
66
101
|
if (!_subscriberFactories.has(typeName)) {
|
|
67
102
|
throw new Error(`Subscriber type '${typeName}' is not registered`);
|
|
68
103
|
}
|
|
69
104
|
_subscriberFactories.delete(typeName);
|
|
70
105
|
}
|
|
106
|
+
/** Reset the registry to built-in types only. Intended for test teardown. */
|
|
71
107
|
export function resetSubscriberRegistry() {
|
|
72
108
|
_subscriberFactories.clear();
|
|
73
109
|
_registerBuiltInFactories();
|
|
74
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Instantiate a single subscriber from a config object.
|
|
113
|
+
* The `type` field selects the factory; all other fields are passed as config.
|
|
114
|
+
*/
|
|
115
|
+
export function createSubscriberFromConfig(config) {
|
|
116
|
+
const typeName = config['type'];
|
|
117
|
+
if (typeof typeName !== 'string') {
|
|
118
|
+
throw new Error('Subscriber config missing "type" field');
|
|
119
|
+
}
|
|
120
|
+
const factory = _subscriberFactories.get(typeName);
|
|
121
|
+
if (factory === undefined) {
|
|
122
|
+
throw new Error(`Unknown subscriber type '${typeName}'`);
|
|
123
|
+
}
|
|
124
|
+
return factory(config);
|
|
125
|
+
}
|
|
75
126
|
/**
|
|
76
127
|
* Instantiate subscribers from config and subscribe them to the emitter.
|
|
77
128
|
*/
|
|
@@ -100,17 +151,54 @@ export function _instantiateSubscribers(config, eventEmitter, sysCfg = null) {
|
|
|
100
151
|
/**
|
|
101
152
|
* Auto-register all sys.* modules and middleware based on config.
|
|
102
153
|
*/
|
|
103
|
-
export function registerSysModules(registry, executor, config, metricsCollector) {
|
|
154
|
+
export function registerSysModules(registry, executor, config, metricsCollector, options) {
|
|
104
155
|
const result = {};
|
|
156
|
+
const failOnError = options?.failOnError ?? false;
|
|
157
|
+
const overridesPath = options?.overridesPath ?? null;
|
|
158
|
+
const overridesStore = options?.overridesStore ?? null;
|
|
159
|
+
const auditStore = options?.auditStore ?? null;
|
|
105
160
|
// §9.15.3: prefer config.namespace('sys_modules') in namespace mode
|
|
106
161
|
const sysCfg = _resolveSysCfg(config);
|
|
107
162
|
if (!_cfgGet(sysCfg, config, 'enabled', false)) {
|
|
108
163
|
return result;
|
|
109
164
|
}
|
|
165
|
+
// Load overrides file and apply after base config
|
|
166
|
+
if (overridesPath !== null && fs.existsSync(overridesPath)) {
|
|
167
|
+
try {
|
|
168
|
+
const content = fs.readFileSync(overridesPath, 'utf-8');
|
|
169
|
+
const parsed = yaml.load(content);
|
|
170
|
+
if (typeof parsed === 'object' && parsed !== null) {
|
|
171
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
172
|
+
config.set(key, value);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
console.warn('[apcore:sys-modules] Failed to load overrides file:', err);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
// Apply overrides from the OverridesStore (Issue #45.1) — async stores are
|
|
181
|
+
// not supported here; if `load()` returns a Promise we log and skip.
|
|
182
|
+
if (overridesStore !== null) {
|
|
183
|
+
try {
|
|
184
|
+
const loaded = overridesStore.load();
|
|
185
|
+
if (loaded !== null && typeof loaded.then === 'function') {
|
|
186
|
+
console.warn('[apcore:sys-modules] OverridesStore.load() returned a Promise; async stores cannot be applied during synchronous registerSysModules. Pre-load and inject into Config directly.');
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
for (const [key, value] of Object.entries(loaded)) {
|
|
190
|
+
config.set(key, value);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
console.warn('[apcore:sys-modules] Failed to load overrides from OverridesStore:', err);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
110
198
|
// Error history
|
|
111
199
|
const maxPerModule = Number(_cfgGet(sysCfg, config, 'error_history.max_entries_per_module', 50));
|
|
112
200
|
const maxTotal = Number(_cfgGet(sysCfg, config, 'error_history.max_total_entries', 1000));
|
|
113
|
-
const errorHistory = new ErrorHistory(maxPerModule, maxTotal);
|
|
201
|
+
const errorHistory = new ErrorHistory({ maxEntriesPerModule: maxPerModule, maxTotalEntries: maxTotal });
|
|
114
202
|
result.errorHistory = errorHistory;
|
|
115
203
|
const ehMiddleware = new ErrorHistoryMiddleware(errorHistory);
|
|
116
204
|
executor.use(ehMiddleware);
|
|
@@ -123,7 +211,16 @@ export function registerSysModules(registry, executor, config, metricsCollector)
|
|
|
123
211
|
result.usageMiddleware = usageMiddleware;
|
|
124
212
|
// Register sys modules via registerInternal to bypass reserved-word checks
|
|
125
213
|
const reg = (id, mod) => {
|
|
126
|
-
|
|
214
|
+
try {
|
|
215
|
+
registry.registerInternal(id, mod);
|
|
216
|
+
}
|
|
217
|
+
catch (err) {
|
|
218
|
+
const cause = err instanceof Error ? err : new Error(String(err));
|
|
219
|
+
if (failOnError) {
|
|
220
|
+
throw new SysModuleRegistrationError(id, cause);
|
|
221
|
+
}
|
|
222
|
+
console.error(`[apcore:sys-modules] Failed to register system module '${id}':`, err);
|
|
223
|
+
}
|
|
127
224
|
};
|
|
128
225
|
// Health modules
|
|
129
226
|
reg('system.health.summary', new HealthSummaryModule(registry, metricsCollector ?? null, errorHistory, config));
|
|
@@ -147,15 +244,22 @@ export function registerSysModules(registry, executor, config, metricsCollector)
|
|
|
147
244
|
executor.use(pnMiddleware);
|
|
148
245
|
result.platformNotifyMiddleware = pnMiddleware;
|
|
149
246
|
// Control modules (require EventEmitter)
|
|
150
|
-
reg('system.control.toggle_feature', new ToggleFeatureModule(registry, eventEmitter));
|
|
151
|
-
reg('system.control.update_config', new UpdateConfigModule(config, eventEmitter
|
|
152
|
-
|
|
153
|
-
|
|
247
|
+
reg('system.control.toggle_feature', new ToggleFeatureModule(registry, eventEmitter, undefined, auditStore ?? undefined, overridesStore ?? undefined));
|
|
248
|
+
reg('system.control.update_config', new UpdateConfigModule(config, eventEmitter, {
|
|
249
|
+
auditStore: auditStore ?? undefined,
|
|
250
|
+
overridesPath: overridesPath ?? undefined,
|
|
251
|
+
overridesStore: overridesStore ?? undefined,
|
|
252
|
+
}));
|
|
253
|
+
reg('system.control.reload_module', new ReloadModule(registry, eventEmitter, auditStore ?? undefined));
|
|
254
|
+
// Bridge registry events.
|
|
255
|
+
// §Issue #36: emit canonical apcore.registry.* names and legacy aliases
|
|
256
|
+
// (with deprecated: true) during the deprecation window. Once the legacy
|
|
257
|
+
// names are removed, drop the emitWithLegacy() wrapper for direct emit().
|
|
154
258
|
registry.on('register', (moduleId) => {
|
|
155
|
-
eventEmitter.
|
|
259
|
+
emitWithLegacy(eventEmitter, 'apcore.registry.module_registered', 'module_registered', moduleId, 'info', {});
|
|
156
260
|
});
|
|
157
261
|
registry.on('unregister', (moduleId) => {
|
|
158
|
-
eventEmitter.
|
|
262
|
+
emitWithLegacy(eventEmitter, 'apcore.registry.module_unregistered', 'module_unregistered', moduleId, 'info', {});
|
|
159
263
|
});
|
|
160
264
|
}
|
|
161
265
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../src/sys-modules/registration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registration.js","sourceRoot":"","sources":["../../src/sys-modules/registration.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { Registry } from '../registry/registry.js';
|
|
10
10
|
import type { EventEmitter } from '../events/emitter.js';
|
|
11
|
+
import type { AuditStore } from './audit.js';
|
|
12
|
+
import type { OverridesStore } from './overrides.js';
|
|
11
13
|
/**
|
|
12
14
|
* Toggle state container. Tracks which modules are disabled.
|
|
13
15
|
* State survives module reload since it lives outside the Registry.
|
|
@@ -84,8 +86,11 @@ export declare class ToggleFeatureModule {
|
|
|
84
86
|
private readonly _registry;
|
|
85
87
|
private readonly _emitter;
|
|
86
88
|
private readonly _toggleState;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
+
private readonly _auditStore;
|
|
90
|
+
private readonly _overridesStore;
|
|
91
|
+
constructor(registry: Registry, eventEmitter: EventEmitter, toggleState?: ToggleState, auditStore?: AuditStore, overridesStore?: OverridesStore);
|
|
92
|
+
execute(inputs: Record<string, unknown>, context: unknown): Record<string, unknown>;
|
|
93
|
+
private _persistToggleOverride;
|
|
89
94
|
private _validateInputs;
|
|
90
95
|
}
|
|
91
96
|
//# sourceMappingURL=toggle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../src/sys-modules/toggle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIrC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI/B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9B,KAAK,IAAI,IAAI;CAGd;AAED,mCAAmC;AACnC,eAAO,MAAM,oBAAoB,aAAoB,CAAC;AAEtD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,2DAA2D;AAC3D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAI1D;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,WAAW,qDAAqD;IACzE,QAAQ,CAAC,WAAW;;;;;;;;;;;;MAAoO;IACxP,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;MAQlB;IACF,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;MAQnB;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;
|
|
1
|
+
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../src/sys-modules/toggle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IAEpD,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIrC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI/B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9B,KAAK,IAAI,IAAI;CAGd;AAED,mCAAmC;AACnC,eAAO,MAAM,oBAAoB,aAAoB,CAAC;AAEtD,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED,2DAA2D;AAC3D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAI1D;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,WAAW,qDAAqD;IACzE,QAAQ,CAAC,WAAW;;;;;;;;;;;;MAAoO;IACxP,QAAQ,CAAC,WAAW;;;;;;;;;;;;;;;;;MAQlB;IACF,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;MAQnB;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;gBAGtD,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,CAAC,EAAE,UAAU,EACvB,cAAc,CAAC,EAAE,cAAc;IASjC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IA0CnF,OAAO,CAAC,sBAAsB;IA6B9B,OAAO,CAAC,eAAe;CAexB"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { InvalidInputError, ModuleNotFoundError, ModuleDisabledError } from '../errors.js';
|
|
10
10
|
import { createEvent } from '../events/emitter.js';
|
|
11
|
+
import { buildAuditEntry, extractAuditIdentity } from './audit.js';
|
|
11
12
|
/**
|
|
12
13
|
* Toggle state container. Tracks which modules are disabled.
|
|
13
14
|
* State survives module reload since it lives outside the Registry.
|
|
@@ -68,27 +69,82 @@ export class ToggleFeatureModule {
|
|
|
68
69
|
_registry;
|
|
69
70
|
_emitter;
|
|
70
71
|
_toggleState;
|
|
71
|
-
|
|
72
|
+
_auditStore;
|
|
73
|
+
_overridesStore;
|
|
74
|
+
constructor(registry, eventEmitter, toggleState, auditStore, overridesStore) {
|
|
72
75
|
this._registry = registry;
|
|
73
76
|
this._emitter = eventEmitter;
|
|
74
77
|
this._toggleState = toggleState ?? DEFAULT_TOGGLE_STATE;
|
|
78
|
+
this._auditStore = auditStore ?? null;
|
|
79
|
+
this._overridesStore = overridesStore ?? null;
|
|
75
80
|
}
|
|
76
|
-
execute(inputs,
|
|
81
|
+
execute(inputs, context) {
|
|
77
82
|
const { moduleId, enabled, reason } = this._validateInputs(inputs);
|
|
83
|
+
const ctx = context;
|
|
78
84
|
if (!this._registry.has(moduleId)) {
|
|
79
85
|
throw new ModuleNotFoundError(moduleId);
|
|
80
86
|
}
|
|
87
|
+
const before = !this._toggleState.isDisabled(moduleId);
|
|
81
88
|
if (enabled) {
|
|
82
89
|
this._toggleState.enable(moduleId);
|
|
83
90
|
}
|
|
84
91
|
else {
|
|
85
92
|
this._toggleState.disable(moduleId);
|
|
86
93
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
const entry = buildAuditEntry('toggle_feature', moduleId, ctx, { before, after: enabled });
|
|
95
|
+
if (this._auditStore !== null) {
|
|
96
|
+
this._auditStore.append(entry);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
console.warn(`[apcore:audit] toggle_feature ${moduleId} actor=${entry.actorId} before=${before} after=${enabled} reason=${reason}`);
|
|
100
|
+
}
|
|
101
|
+
// W-12: Event payload carries `enabled` (Python parity) plus requester
|
|
102
|
+
// identity per Issue #45.2 so subscribers can attribute the toggle. The
|
|
103
|
+
// `reason` field is returned in the module output but not in the event.
|
|
104
|
+
const { caller_id, identity } = extractAuditIdentity(ctx);
|
|
105
|
+
const toggledPayload = {
|
|
106
|
+
module_id: moduleId,
|
|
107
|
+
enabled,
|
|
108
|
+
caller_id,
|
|
109
|
+
};
|
|
110
|
+
if (identity !== null)
|
|
111
|
+
toggledPayload['identity'] = identity;
|
|
112
|
+
this._emitter.emit(createEvent('apcore.module.toggled', moduleId, 'info', toggledPayload));
|
|
113
|
+
console.warn(`[apcore:control] Feature toggled: module_id=${moduleId} enabled=${enabled} reason=${reason}`);
|
|
114
|
+
if (this._overridesStore !== null) {
|
|
115
|
+
this._persistToggleOverride(moduleId, enabled);
|
|
116
|
+
}
|
|
90
117
|
return { success: true, module_id: moduleId, enabled };
|
|
91
118
|
}
|
|
119
|
+
_persistToggleOverride(moduleId, enabled) {
|
|
120
|
+
const store = this._overridesStore;
|
|
121
|
+
const overrideKey = `toggle.${moduleId}`;
|
|
122
|
+
try {
|
|
123
|
+
const loaded = store.load();
|
|
124
|
+
if (loaded !== null && typeof loaded.then === 'function') {
|
|
125
|
+
loaded
|
|
126
|
+
.then((existing) => {
|
|
127
|
+
existing[overrideKey] = enabled;
|
|
128
|
+
return store.save(existing);
|
|
129
|
+
})
|
|
130
|
+
.catch((err) => {
|
|
131
|
+
console.warn(`[apcore:control] Failed to persist toggle override for '${moduleId}':`, err);
|
|
132
|
+
});
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const existing = loaded;
|
|
136
|
+
existing[overrideKey] = enabled;
|
|
137
|
+
const saveResult = store.save(existing);
|
|
138
|
+
if (saveResult !== undefined && typeof saveResult.then === 'function') {
|
|
139
|
+
saveResult.catch((err) => {
|
|
140
|
+
console.warn(`[apcore:control] Failed to persist toggle override for '${moduleId}':`, err);
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
console.warn(`[apcore:control] Failed to persist toggle override for '${moduleId}':`, err);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
92
148
|
_validateInputs(inputs) {
|
|
93
149
|
const moduleId = inputs['module_id'];
|
|
94
150
|
if (typeof moduleId !== 'string' || !moduleId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../src/sys-modules/toggle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAG3F,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../src/sys-modules/toggle.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAG3F,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGnE;;;GAGG;AACH,MAAM,OAAO,WAAW;IACL,SAAS,GAAgB,IAAI,GAAG,EAAE,CAAC;IAEpD,UAAU,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,QAAgB;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,QAAgB;QACrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;AAED,mCAAmC;AACnC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtD,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,OAAO,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IACrB,WAAW,GAAG,iDAAiD,CAAC;IAChE,WAAW,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,QAAiB,EAAE,CAAC;IAC/O,WAAW,GAAG;QACrB,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,4BAA4B,EAAE;YACjF,OAAO,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,WAAW,EAAE,kCAAkC,EAAE;YACtF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,6BAA6B,EAAE;SAChF;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC;KAC7C,CAAC;IACO,YAAY,GAAG;QACtB,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,WAAW,EAAE,8BAA8B,EAAE;YAClF,SAAS,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,WAAW,EAAE,0BAA0B,EAAE;YAC/E,OAAO,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,WAAW,EAAE,uBAAuB,EAAE;SAC5E;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;KAC9C,CAAC;IAEe,SAAS,CAAW;IACpB,QAAQ,CAAe;IACvB,YAAY,CAAc;IAC1B,WAAW,CAAoB;IAC/B,eAAe,CAAwB;IAExD,YACE,QAAkB,EAClB,YAA0B,EAC1B,WAAyB,EACzB,UAAuB,EACvB,cAA+B;QAE/B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,oBAAoB,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,eAAe,GAAG,cAAc,IAAI,IAAI,CAAC;IAChD,CAAC;IAED,OAAO,CAAC,MAA+B,EAAE,OAAgB;QACvD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,OAAyB,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,CAAC,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3F,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,iCAAiC,QAAQ,UAAU,KAAK,CAAC,OAAO,WAAW,MAAM,UAAU,OAAO,WAAW,MAAM,EAAE,CAAC,CAAC;QACtI,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,cAAc,GAA4B;YAC9C,SAAS,EAAE,QAAQ;YACnB,OAAO;YACP,SAAS;SACV,CAAC;QACF,IAAI,QAAQ,KAAK,IAAI;YAAE,cAAc,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,+CAA+C,QAAQ,YAAY,OAAO,WAAW,MAAM,EAAE,CAAC,CAAC;QAE5G,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACzD,CAAC;IAEO,sBAAsB,CAAC,QAAgB,EAAE,OAAgB;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,eAAgB,CAAC;QACpC,MAAM,WAAW,GAAG,UAAU,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,MAAM,KAAK,IAAI,IAAI,OAAQ,MAA6B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAChF,MAA2C;qBACzC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACjB,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;oBAChC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBACtB,OAAO,CAAC,IAAI,CAAC,2DAA2D,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7F,CAAC,CAAC,CAAC;gBACL,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,MAAiC,CAAC;YACnD,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC;YAChC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,UAAU,KAAK,SAAS,IAAI,OAAQ,UAAiC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC7F,UAA4B,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;oBACnD,OAAO,CAAC,IAAI,CAAC,2DAA2D,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC7F,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,2DAA2D,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,MAA+B;QACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9C,MAAM,IAAI,iBAAiB,CAAC,wDAAwD,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,iBAAiB,CAAC,6CAA6C,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,IAAI,iBAAiB,CAAC,qDAAqD,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;CACF"}
|
package/dist/trace-context.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* W3C Trace Context support: TraceParent parsing and TraceContext
|
|
2
|
+
* W3C Trace Context support: TraceParent + tracestate parsing and TraceContext
|
|
3
|
+
* injection/extraction.
|
|
3
4
|
*/
|
|
4
5
|
import type { Context } from './context.js';
|
|
5
6
|
export interface TraceParent {
|
|
@@ -7,22 +8,41 @@ export interface TraceParent {
|
|
|
7
8
|
readonly traceId: string;
|
|
8
9
|
readonly parentId: string;
|
|
9
10
|
readonly traceFlags: string;
|
|
11
|
+
/** Parsed `tracestate` entries. Empty array when the header is absent. */
|
|
12
|
+
readonly tracestate: ReadonlyArray<readonly [string, string]>;
|
|
10
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Headers container the extractor accepts. Plain dict, fetch `Headers`, or `Map`.
|
|
16
|
+
*
|
|
17
|
+
* For plain objects, lookup folds keys to lowercase. For `Headers`, the platform
|
|
18
|
+
* already performs case-insensitive matching. For `Map`, lookup folds keys.
|
|
19
|
+
*/
|
|
20
|
+
export type HeadersLike = Record<string, unknown> | Headers | Map<string, string>;
|
|
11
21
|
export declare class TraceContext {
|
|
12
22
|
/**
|
|
13
|
-
* Build
|
|
23
|
+
* Build outbound trace headers from an apcore Context.
|
|
24
|
+
*
|
|
25
|
+
* Behavior:
|
|
26
|
+
* - Uses `context.traceId` (already 32-hex) as the traceparent trace_id.
|
|
27
|
+
* - When `parentId` is supplied it is used verbatim and MUST match `^[0-9a-f]{16}$`;
|
|
28
|
+
* otherwise the last span on the tracing stack provides the id, falling back
|
|
29
|
+
* to a fresh random 16-hex value.
|
|
30
|
+
* - When the Context carries an inbound TraceParent under
|
|
31
|
+
* `data['_apcore.trace.inbound']`, its `traceFlags` and `tracestate` are
|
|
32
|
+
* propagated; otherwise traceFlags defaults to `"01"` (sampled) for new roots.
|
|
14
33
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
34
|
+
* @param context apcore Context
|
|
35
|
+
* @param parentId optional 16-hex parent id override
|
|
36
|
+
* @throws {Error} if `parentId` is provided but malformed
|
|
18
37
|
*/
|
|
19
|
-
static inject(context: Context): Record<string, string>;
|
|
38
|
+
static inject(context: Context, parentId?: string): Record<string, string>;
|
|
20
39
|
/**
|
|
21
|
-
* Parse the `traceparent` header from
|
|
40
|
+
* Parse the `traceparent` (and optional `tracestate`) header from a header
|
|
41
|
+
* container, performing case-insensitive header name lookup.
|
|
22
42
|
*
|
|
23
|
-
* Returns `null` if the header is missing or malformed.
|
|
43
|
+
* Returns `null` if the traceparent header is missing or malformed.
|
|
24
44
|
*/
|
|
25
|
-
static extract(headers:
|
|
45
|
+
static extract(headers: HeadersLike): TraceParent | null;
|
|
26
46
|
/**
|
|
27
47
|
* Strictly parse a traceparent string, throwing on invalid format.
|
|
28
48
|
*
|
|
@@ -30,5 +50,23 @@ export declare class TraceContext {
|
|
|
30
50
|
* `00-<32 hex>-<16 hex>-<2 hex>` format.
|
|
31
51
|
*/
|
|
32
52
|
static fromTraceparent(traceparent: string): TraceParent;
|
|
53
|
+
/**
|
|
54
|
+
* Parse a W3C `tracestate` header value.
|
|
55
|
+
*
|
|
56
|
+
* Splits on commas, trims each member, and accepts only entries shaped as
|
|
57
|
+
* `key=value` (the value may contain `=`). Malformed members are dropped
|
|
58
|
+
* silently. The list is truncated to {@link MAX_TRACESTATE_ENTRIES} (32).
|
|
59
|
+
*/
|
|
60
|
+
static parseTracestate(raw: string): Array<[string, string]>;
|
|
61
|
+
/**
|
|
62
|
+
* Format tracestate entries to a comma-separated header value.
|
|
63
|
+
*/
|
|
64
|
+
static formatTracestate(entries: ReadonlyArray<readonly [string, string]>): string;
|
|
65
|
+
/**
|
|
66
|
+
* Case-insensitive header lookup across plain objects, `Headers`, and `Map`.
|
|
67
|
+
*
|
|
68
|
+
* @returns the header value (or `undefined` if not present).
|
|
69
|
+
*/
|
|
70
|
+
static lookupHeaderCi(headers: HeadersLike, name: string): string | undefined;
|
|
33
71
|
}
|
|
34
72
|
//# sourceMappingURL=trace-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-context.d.ts","sourceRoot":"","sources":["../src/trace-context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"trace-context.d.ts","sourceRoot":"","sources":["../src/trace-context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAY5C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC/D;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,OAAO,GACP,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAExB,qBAAa,YAAY;IACvB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAoC1E;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IA+BxD;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW;IAyBxD;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAqC5D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM;IAIlF;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CA0B9E"}
|