apcore-js 0.13.1 → 0.14.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/dist/index.d.ts CHANGED
@@ -55,5 +55,5 @@ export { computeModuleErrorRate, estimateP99FromHistogram, matchesModuleId, METR
55
55
  export type { UsageRecord, CallerUsageSummary, HourlyBucket, ModuleUsageSummary, ModuleUsageDetail } from './observability/usage.js';
56
56
  export { TraceContext } from './trace-context.js';
57
57
  export type { TraceParent } from './trace-context.js';
58
- export declare const VERSION = "0.13.1";
58
+ export declare const VERSION = "0.14.0";
59
59
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -57,5 +57,5 @@ export { UsageCollector, UsageMiddleware, bucketKey } from './observability/usag
57
57
  export { computeModuleErrorRate, estimateP99FromHistogram, matchesModuleId, METRIC_CALLS_TOTAL, METRIC_DURATION_SECONDS } from './observability/metrics-utils.js';
58
58
  // Trace Context
59
59
  export { TraceContext } from './trace-context.js';
60
- export const VERSION = '0.13.1';
60
+ export const VERSION = '0.14.0';
61
61
  //# sourceMappingURL=index.js.map
@@ -7,12 +7,12 @@ export type BeforeCallback = (moduleId: string, inputs: Record<string, unknown>,
7
7
  export type AfterCallback = (moduleId: string, inputs: Record<string, unknown>, output: Record<string, unknown>, context: Context) => Record<string, unknown> | null;
8
8
  export declare class BeforeMiddleware extends Middleware {
9
9
  private _callback;
10
- constructor(callback: BeforeCallback);
10
+ constructor(callback: BeforeCallback, priority?: number);
11
11
  before(moduleId: string, inputs: Record<string, unknown>, context: Context): Record<string, unknown> | null;
12
12
  }
13
13
  export declare class AfterMiddleware extends Middleware {
14
14
  private _callback;
15
- constructor(callback: AfterCallback);
15
+ constructor(callback: AfterCallback, priority?: number);
16
16
  after(moduleId: string, inputs: Record<string, unknown>, output: Record<string, unknown>, context: Context): Record<string, unknown> | null;
17
17
  }
18
18
  //# sourceMappingURL=adapters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/middleware/adapters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,MAAM,cAAc,GAAG,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,CAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAEpC,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,OAAO,CAAC,SAAS,CAAiB;gBAEtB,QAAQ,EAAE,cAAc;IAK3B,MAAM,CACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAGlC;AAED,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,OAAO,CAAC,SAAS,CAAgB;gBAErB,QAAQ,EAAE,aAAa;IAK1B,KAAK,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAGlC"}
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/middleware/adapters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,MAAM,cAAc,GAAG,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,CAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAEpC,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,OAAO,CAAC,SAAS,CAAiB;gBAEtB,QAAQ,EAAE,cAAc,EAAE,QAAQ,GAAE,MAAY;IAKnD,MAAM,CACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAGlC;AAED,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,OAAO,CAAC,SAAS,CAAgB;gBAErB,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAE,MAAY;IAKlD,KAAK,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAGlC"}
@@ -4,8 +4,8 @@
4
4
  import { Middleware } from './base.js';
5
5
  export class BeforeMiddleware extends Middleware {
6
6
  _callback;
7
- constructor(callback) {
8
- super();
7
+ constructor(callback, priority = 100) {
8
+ super(priority);
9
9
  this._callback = callback;
10
10
  }
11
11
  before(moduleId, inputs, context) {
@@ -14,8 +14,8 @@ export class BeforeMiddleware extends Middleware {
14
14
  }
15
15
  export class AfterMiddleware extends Middleware {
16
16
  _callback;
17
- constructor(callback) {
18
- super();
17
+ constructor(callback, priority = 100) {
18
+ super(priority);
19
19
  this._callback = callback;
20
20
  }
21
21
  after(moduleId, inputs, output, context) {
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/middleware/adapters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAevC,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IACtC,SAAS,CAAiB;IAElC,YAAY,QAAwB;QAClC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEQ,MAAM,CACb,QAAgB,EAChB,MAA+B,EAC/B,OAAgB;QAEhB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IACrC,SAAS,CAAgB;IAEjC,YAAY,QAAuB;QACjC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEQ,KAAK,CACZ,QAAgB,EAChB,MAA+B,EAC/B,MAA+B,EAC/B,OAAgB;QAEhB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACF"}
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/middleware/adapters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAevC,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IACtC,SAAS,CAAiB;IAElC,YAAY,QAAwB,EAAE,WAAmB,GAAG;QAC1D,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEQ,MAAM,CACb,QAAgB,EAChB,MAA+B,EAC/B,OAAgB;QAEhB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IACrC,SAAS,CAAgB;IAEjC,YAAY,QAAuB,EAAE,WAAmB,GAAG;QACzD,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEQ,KAAK,CACZ,QAAgB,EAChB,MAA+B,EAC/B,MAA+B,EAC/B,OAAgB;QAEhB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;CACF"}
@@ -3,6 +3,12 @@
3
3
  */
4
4
  import type { Context } from '../context.js';
5
5
  export declare class Middleware {
6
+ /**
7
+ * Execution priority (0-1000). Higher priority executes first.
8
+ * When priorities are equal, registration order is used as tiebreaker.
9
+ */
10
+ readonly priority: number;
11
+ constructor(priority?: number);
6
12
  before(_moduleId: string, _inputs: Record<string, unknown>, _context: Context): Record<string, unknown> | null;
7
13
  after(_moduleId: string, _inputs: Record<string, unknown>, _output: Record<string, unknown>, _context: Context): Record<string, unknown> | null;
8
14
  onError(_moduleId: string, _inputs: Record<string, unknown>, _error: Error, _context: Context): Record<string, unknown> | null;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/middleware/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,qBAAa,UAAU;IACrB,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIjC,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIjC,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,EAAE,KAAK,EACb,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAGlC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/middleware/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,qBAAa,UAAU;IACrB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,QAAQ,GAAE,MAAY;IASlC,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIjC,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIjC,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,EAAE,KAAK,EACb,QAAQ,EAAE,OAAO,GAChB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAGlC"}
@@ -2,6 +2,17 @@
2
2
  * Middleware base class for apcore.
3
3
  */
4
4
  export class Middleware {
5
+ /**
6
+ * Execution priority (0-1000). Higher priority executes first.
7
+ * When priorities are equal, registration order is used as tiebreaker.
8
+ */
9
+ priority;
10
+ constructor(priority = 100) {
11
+ if (priority < 0 || priority > 1000) {
12
+ throw new RangeError(`priority must be between 0 and 1000, got ${priority}`);
13
+ }
14
+ this.priority = priority;
15
+ }
5
16
  before(_moduleId, _inputs, _context) {
6
17
  return null;
7
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/middleware/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,OAAO,UAAU;IACrB,MAAM,CACJ,SAAiB,EACjB,OAAgC,EAChC,QAAiB;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CACH,SAAiB,EACjB,OAAgC,EAChC,OAAgC,EAChC,QAAiB;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,SAAiB,EACjB,OAAgC,EAChC,MAAa,EACb,QAAiB;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/middleware/base.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,OAAO,UAAU;IACrB;;;OAGG;IACM,QAAQ,CAAS;IAE1B,YAAY,WAAmB,GAAG;QAChC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,UAAU,CAClB,4CAA4C,QAAQ,EAAE,CACvD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM,CACJ,SAAiB,EACjB,OAAgC,EAChC,QAAiB;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CACH,SAAiB,EACjB,OAAgC,EAChC,OAAgC,EAChC,QAAiB;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,SAAiB,EACjB,OAAgC,EAChC,MAAa,EACb,QAAiB;QAEjB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -16,7 +16,7 @@ export class LoggingMiddleware extends Middleware {
16
16
  _logOutputs;
17
17
  _logErrors;
18
18
  constructor(options) {
19
- super();
19
+ super(700);
20
20
  this._logger = options?.logger ?? defaultLogger;
21
21
  this._logInputs = options?.logInputs ?? true;
22
22
  this._logOutputs = options?.logOutputs ?? true;
@@ -1 +1 @@
1
- {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/middleware/logging.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAOvC,MAAM,aAAa,GAAW;IAC5B,IAAI,CAAC,OAAe,EAAE,KAA+B;QACnD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,OAAe,EAAE,KAA+B;QACpD,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;CACF,CAAC;AAEF,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IACvC,OAAO,CAAS;IAChB,UAAU,CAAU;IACpB,WAAW,CAAU;IACrB,UAAU,CAAU;IAE5B,YAAY,OAKX;QACC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,IAAI,aAAa,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;IAC/C,CAAC;IAEQ,MAAM,CACb,QAAgB,EAChB,MAA+B,EAC/B,OAAgB;QAEhB,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAElE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,WAAW,QAAQ,EAAE,EAAE;gBAC1D,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ;gBACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,KAAK,CACZ,QAAgB,EAChB,OAAgC,EAChC,MAA+B,EAC/B,OAAgB;QAEhB,MAAM,SAAS,GAAI,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAY,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;QACjG,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEjD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,IAAI,OAAO,CAAC,OAAO,SAAS,QAAQ,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EACnE;gBACE,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ;gBACR,UAAU;gBACV,MAAM;aACP,CACF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,OAAO,CACd,QAAgB,EAChB,MAA+B,EAC/B,KAAY,EACZ,OAAgB;QAEhB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,WAAW,QAAQ,KAAK,KAAK,EAAE,EAAE;gBACrE,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ;gBACR,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;gBACpB,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/middleware/logging.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAOvC,MAAM,aAAa,GAAW;IAC5B,IAAI,CAAC,OAAe,EAAE,KAA+B;QACnD,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,OAAe,EAAE,KAA+B;QACpD,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;CACF,CAAC;AAEF,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IACvC,OAAO,CAAS;IAChB,UAAU,CAAU;IACpB,WAAW,CAAU;IACrB,UAAU,CAAU;IAE5B,YAAY,OAKX;QACC,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,IAAI,aAAa,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC;IAC/C,CAAC;IAEQ,MAAM,CACb,QAAgB,EAChB,MAA+B,EAC/B,OAAgB;QAEhB,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAElE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,WAAW,QAAQ,EAAE,EAAE;gBAC1D,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ;gBACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,KAAK,CACZ,QAAgB,EAChB,OAAgC,EAChC,MAA+B,EAC/B,OAAgB;QAEhB,MAAM,SAAS,GAAI,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAY,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;QACjG,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEjD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,IAAI,OAAO,CAAC,OAAO,SAAS,QAAQ,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EACnE;gBACE,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ;gBACR,UAAU;gBACV,MAAM;aACP,CACF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,OAAO,CACd,QAAgB,EAChB,MAA+B,EAC/B,KAAY,EACZ,OAAgB;QAEhB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,WAAW,QAAQ,KAAK,KAAK,EAAE,EAAE;gBACrE,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,QAAQ;gBACR,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;gBACpB,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/middleware/manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,gBAAyB,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAS;IAEnE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,mBAAmB,EAAE,UAAU,EAAE,CAAC;gBAE/B,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE;CAM/D;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAoB;IAExC,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIjC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAUvC,QAAQ,IAAI,UAAU,EAAE;IAIxB,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,GACf,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IAoB1C,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAc1B,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,UAAU,EAAE,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAclC"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/middleware/manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,gBAAyB,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAS;IAEnE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,mBAAmB,EAAE,UAAU,EAAE,CAAC;gBAE/B,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE;CAM/D;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAoB;IAExC,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAcjC,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAUvC,QAAQ,IAAI,UAAU,EAAE;IAIxB,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,GACf,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IAoB1C,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,OAAO,GACf,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAc1B,cAAc,CACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,UAAU,EAAE,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAclC"}
@@ -16,7 +16,17 @@ export class MiddlewareChainError extends ModuleError {
16
16
  export class MiddlewareManager {
17
17
  _middlewares = [];
18
18
  add(middleware) {
19
- this._middlewares.push(middleware);
19
+ // Stable insertion: find the first middleware with a strictly lower priority
20
+ // and insert before it. This keeps higher-priority middlewares first and
21
+ // preserves registration order among equal priorities.
22
+ let insertAt = this._middlewares.length;
23
+ for (let i = 0; i < this._middlewares.length; i++) {
24
+ if (this._middlewares[i].priority < middleware.priority) {
25
+ insertAt = i;
26
+ break;
27
+ }
28
+ }
29
+ this._middlewares.splice(insertAt, 0, middleware);
20
30
  }
21
31
  remove(middleware) {
22
32
  for (let i = 0; i < this._middlewares.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/middleware/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/middleware/manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apcore-js",
3
- "version": "0.13.1",
3
+ "version": "0.14.0",
4
4
  "description": "AI-Perceivable Core — schema-driven module standard",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",