@abyss-project/monitor 12.1.0 → 12.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"logger-endpoint.middleware.js","sourceRoot":"","sources":["../../src/middlewares/logger-endpoint.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger-endpoint.middleware.js","sourceRoot":"","sources":["../../src/middlewares/logger-endpoint.middleware.ts"],"names":[],"mappings":"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"}
@@ -15,4 +15,5 @@ export type ResolvedIdentifier = {
15
15
  kind: 'ip';
16
16
  ip: string;
17
17
  };
18
+ export declare function hashCredential(value: string): string;
18
19
  export declare function resolveIdentifiers(req: Request, res: Response): ResolvedIdentifier;
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hashCredential = hashCredential;
3
4
  exports.resolveIdentifiers = resolveIdentifiers;
4
5
  const node_require_1 = require("../../utils/node-require");
5
- function hashApiKey(value) {
6
+ function hashCredential(value) {
6
7
  const { createHash } = (0, node_require_1.nodeRequire)('crypto');
7
8
  return createHash('sha256').update(value).digest('hex').slice(0, 16);
8
9
  }
@@ -12,7 +13,7 @@ function resolveIdentifiers(req, res) {
12
13
  return { kind: 'admin' };
13
14
  const apiKey = req.header?.('abyss-api-key');
14
15
  if (apiKey)
15
- return { kind: 'apikey', apiKeyId: hashApiKey(apiKey) };
16
+ return { kind: 'apikey', apiKeyId: hashCredential(apiKey) };
16
17
  if (locals.currentUser?.id) {
17
18
  if (locals.organization?.id) {
18
19
  return { kind: 'userOrg', userId: locals.currentUser.id, orgId: locals.organization.id };
@@ -1 +1 @@
1
- {"version":3,"file":"identifier-resolver.js","sourceRoot":"","sources":["../../../src/middlewares/rate-limit/identifier-resolver.ts"],"names":[],"mappings":";;AAsBA,gDAoBC;AAzCD,2DAAuD;AAavD,SAAS,UAAU,CAAC,KAAa;IAI/B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,0BAAW,EAA0B,QAAQ,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAY,EAAE,GAAa;IAC5D,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAI/B,CAAC;IAEF,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAE7C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IAEpE,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC;YAC5B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QAC3F,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,SAAS,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"identifier-resolver.js","sourceRoot":"","sources":["../../../src/middlewares/rate-limit/identifier-resolver.ts"],"names":[],"mappings":";;AAcA,wCAMC;AAED,gDAoBC;AAzCD,2DAAuD;AAavD,SAAgB,cAAc,CAAC,KAAa;IAI1C,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,0BAAW,EAA0B,QAAQ,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAY,EAAE,GAAa;IAC5D,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAI/B,CAAC;IAEF,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAE7C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC;IAC7C,IAAI,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;IAExE,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC;YAC5B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QAC3F,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,SAAS,EAAE,CAAC;AACjD,CAAC"}
@@ -1 +1 @@
1
- export declare const RATE_LIMIT_LUA = "\nlocal function load_bucket(key, capacity, refill, now)\n local data = redis.call('HMGET', key, 'tokens', 'ts')\n local tokens = tonumber(data[1])\n local ts = tonumber(data[2])\n if tokens == nil then tokens = capacity end\n if ts == nil then ts = now end\n local elapsed = (now - ts) / 1000.0\n if elapsed < 0 then elapsed = 0 end\n tokens = math.min(capacity, tokens + elapsed * refill)\n return tokens\nend\n\nlocal function save_bucket(key, tokens, capacity, refill, now)\n redis.call('HSET', key, 'tokens', tokens, 'ts', now)\n local ttl = math.ceil(capacity / refill) * 2\n redis.call('EXPIRE', key, ttl)\nend\n\nlocal function reset_sec(tokens, capacity, refill, cost)\n if tokens >= cost then return 0 end\n return math.ceil((cost - tokens) / refill)\nend\n\nlocal primary_cap = tonumber(ARGV[1])\nlocal primary_rate = tonumber(ARGV[2])\nlocal secondary_cap = tonumber(ARGV[3])\nlocal secondary_rate = tonumber(ARGV[4])\nlocal now = tonumber(ARGV[5])\nlocal cost = tonumber(ARGV[6])\n\nlocal primary_tokens = load_bucket(KEYS[1], primary_cap, primary_rate, now)\nlocal secondary_tokens = 0\nlocal has_secondary = KEYS[2] ~= nil and KEYS[2] ~= ''\nif has_secondary then\n secondary_tokens = load_bucket(KEYS[2], secondary_cap, secondary_rate, now)\nend\n\nlocal allowed = 1\nif primary_tokens < cost then allowed = 0 end\nif has_secondary and secondary_tokens < cost then allowed = 0 end\n\nif allowed == 1 then\n primary_tokens = primary_tokens - cost\n save_bucket(KEYS[1], primary_tokens, primary_cap, primary_rate, now)\n if has_secondary then\n secondary_tokens = secondary_tokens - cost\n save_bucket(KEYS[2], secondary_tokens, secondary_cap, secondary_rate, now)\n end\nelse\n -- Refresh ts so refill math stays correct on next call without consuming tokens.\n save_bucket(KEYS[1], primary_tokens, primary_cap, primary_rate, now)\n if has_secondary then\n save_bucket(KEYS[2], secondary_tokens, secondary_cap, secondary_rate, now)\n end\nend\n\nlocal primary_reset = reset_sec(primary_tokens, primary_cap, primary_rate, cost)\nlocal secondary_reset = 0\nif has_secondary then\n secondary_reset = reset_sec(secondary_tokens, secondary_cap, secondary_rate, cost)\nend\n\nreturn {\n allowed,\n math.floor(primary_tokens),\n primary_cap,\n primary_reset,\n math.floor(secondary_tokens),\n secondary_cap,\n secondary_reset,\n}\n";
1
+ export declare const RATE_LIMIT_LUA = "\nlocal function load_bucket(key, capacity, refill, now)\n local data = redis.call('HMGET', key, 'tokens', 'ts')\n local tokens = tonumber(data[1])\n local ts = tonumber(data[2])\n if tokens == nil then tokens = capacity end\n if ts == nil then ts = now end\n local elapsed = (now - ts) / 1000.0\n if elapsed < 0 then elapsed = 0 end\n tokens = math.min(capacity, tokens + elapsed * refill)\n return tokens\nend\n\nlocal function save_bucket(key, tokens, capacity, refill, now)\n redis.call('HSET', key, 'tokens', tokens, 'ts', now)\n local ttl = math.ceil(capacity / refill) * 2\n redis.call('EXPIRE', key, ttl)\nend\n\nlocal function reset_sec(tokens, capacity, refill, cost)\n if tokens >= cost then return 0 end\n return math.ceil((cost - tokens) / refill)\nend\n\nlocal primary_cap = tonumber(ARGV[1])\nlocal primary_rate = tonumber(ARGV[2])\nlocal secondary_cap = tonumber(ARGV[3])\nlocal secondary_rate = tonumber(ARGV[4])\nlocal now = tonumber(ARGV[5])\nlocal cost = tonumber(ARGV[6])\n\nlocal primary_tokens = load_bucket(KEYS[1], primary_cap, primary_rate, now)\nlocal secondary_tokens = 0\nlocal has_secondary = KEYS[2] ~= nil and KEYS[2] ~= ''\nif has_secondary then\n secondary_tokens = load_bucket(KEYS[2], secondary_cap, secondary_rate, now)\nend\n\nlocal allowed = 1\nif primary_tokens < cost then allowed = 0 end\nif has_secondary and secondary_tokens < cost then allowed = 0 end\n\nif allowed == 1 then\n primary_tokens = primary_tokens - cost\n save_bucket(KEYS[1], primary_tokens, primary_cap, primary_rate, now)\n if has_secondary then\n secondary_tokens = secondary_tokens - cost\n save_bucket(KEYS[2], secondary_tokens, secondary_cap, secondary_rate, now)\n end\nend\n-- A refusal writes nothing: load_bucket recomputes the refill from the stored ts, so persisting\n-- the unchanged state would add nothing, and an absent key already reads as a full bucket. Above\n-- all, a refused call must not create a key: invented tokens stopped by a per-IP backstop would\n-- otherwise each leave a token bucket behind (ADR-0176).\n\nlocal primary_reset = reset_sec(primary_tokens, primary_cap, primary_rate, cost)\nlocal secondary_reset = 0\nif has_secondary then\n secondary_reset = reset_sec(secondary_tokens, secondary_cap, secondary_rate, cost)\nend\n\nreturn {\n allowed,\n math.floor(primary_tokens),\n primary_cap,\n primary_reset,\n math.floor(secondary_tokens),\n secondary_cap,\n secondary_reset,\n}\n";
@@ -50,13 +50,11 @@ if allowed == 1 then
50
50
  secondary_tokens = secondary_tokens - cost
51
51
  save_bucket(KEYS[2], secondary_tokens, secondary_cap, secondary_rate, now)
52
52
  end
53
- else
54
- -- Refresh ts so refill math stays correct on next call without consuming tokens.
55
- save_bucket(KEYS[1], primary_tokens, primary_cap, primary_rate, now)
56
- if has_secondary then
57
- save_bucket(KEYS[2], secondary_tokens, secondary_cap, secondary_rate, now)
58
- end
59
53
  end
54
+ -- A refusal writes nothing: load_bucket recomputes the refill from the stored ts, so persisting
55
+ -- the unchanged state would add nothing, and an absent key already reads as a full bucket. Above
56
+ -- all, a refused call must not create a key: invented tokens stopped by a per-IP backstop would
57
+ -- otherwise each leave a token bucket behind (ADR-0176).
60
58
 
61
59
  local primary_reset = reset_sec(primary_tokens, primary_cap, primary_rate, cost)
62
60
  local secondary_reset = 0
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.lua.js","sourceRoot":"","sources":["../../../src/middlewares/rate-limit/rate-limit.lua.ts"],"names":[],"mappings":";;;AAca,QAAA,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwE7B,CAAC"}
1
+ {"version":3,"file":"rate-limit.lua.js","sourceRoot":"","sources":["../../../src/middlewares/rate-limit/rate-limit.lua.ts"],"names":[],"mappings":";;;AAca,QAAA,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsE7B,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createRouteRateLimiter = createRouteRateLimiter;
4
4
  const identifier_resolver_1 = require("./identifier-resolver");
5
5
  const parse_window_1 = require("./parse-window");
6
+ const rate_limit_1 = require("../../types/interface/rate-limit");
6
7
  function buildKey(prefix, scope, id) {
7
8
  return `rl:${prefix}:${scope}:${id}`;
8
9
  }
@@ -69,6 +70,27 @@ function buildBuckets(identifier, config, override) {
69
70
  }
70
71
  }
71
72
  }
73
+ function queryToken(req) {
74
+ const value = req.query?.[rate_limit_1.RATE_LIMIT_TOKEN_QUERY_PARAM];
75
+ return typeof value === 'string' && value !== '' ? value : undefined;
76
+ }
77
+ function buildTokenBuckets(token, ip, config, override) {
78
+ const tokenEff = applyOverride(config.apikey, override);
79
+ return {
80
+ primary: {
81
+ scope: 'token',
82
+ key: buildKey(config.redisPrefix, 'token', (0, identifier_resolver_1.hashCredential)(token)),
83
+ max: tokenEff.max,
84
+ windowSec: tokenEff.windowSec,
85
+ },
86
+ secondary: {
87
+ scope: 'ip',
88
+ key: `rl:${config.redisPrefix}:token-ip:${ip}`,
89
+ max: override.ipBackstop.max,
90
+ windowSec: (0, parse_window_1.parseWindow)(override.ipBackstop.window),
91
+ },
92
+ };
93
+ }
72
94
  function setSuccessHeaders(res, bucket, remaining, resetSec) {
73
95
  res.setHeader('RateLimit-Limit', bucket.max);
74
96
  res.setHeader('RateLimit-Remaining', remaining);
@@ -89,11 +111,21 @@ function createRouteRateLimiter(routeOptions, ctx) {
89
111
  }
90
112
  const override = routeOptions;
91
113
  const cost = override?.cost ?? 1;
92
- let effectiveIdentifier = identifier;
93
- if (override?.scope === 'ip') {
94
- effectiveIdentifier = { kind: 'ip', ip: req.ip ?? '0.0.0.0' };
114
+ let buckets;
115
+ if (override?.scope === 'token') {
116
+ const ip = req.ip ?? '0.0.0.0';
117
+ const token = queryToken(req);
118
+ buckets = token
119
+ ? buildTokenBuckets(token, ip, config, override)
120
+ : buildBuckets({ kind: 'ip', ip }, config, undefined);
121
+ }
122
+ else {
123
+ let effectiveIdentifier = identifier;
124
+ if (override?.scope === 'ip') {
125
+ effectiveIdentifier = { kind: 'ip', ip: req.ip ?? '0.0.0.0' };
126
+ }
127
+ buckets = buildBuckets(effectiveIdentifier, config, override);
95
128
  }
96
- const buckets = buildBuckets(effectiveIdentifier, config, override);
97
129
  if (!buckets.primary) {
98
130
  next();
99
131
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.middleware.js","sourceRoot":"","sources":["../../../src/middlewares/rate-limit/rate-limit.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rate-limit.middleware.js","sourceRoot":"","sources":["../../../src/middlewares/rate-limit/rate-limit.middleware.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Logger } from '../../models';
2
2
  import type { RateLimitWindow } from '../../middlewares/rate-limit/parse-window';
3
- export type RateLimitScope = 'admin' | 'apikey' | 'user' | 'org' | 'ip';
3
+ export type RateLimitScope = 'admin' | 'apikey' | 'user' | 'org' | 'ip' | 'token';
4
4
  export interface RateLimitBucketConfig {
5
5
  max: number;
6
6
  window: RateLimitWindow;
@@ -13,12 +13,20 @@ export interface RateLimitConfig {
13
13
  apikey: RateLimitBucketConfig;
14
14
  ip: RateLimitBucketConfig;
15
15
  }
16
- export interface RateLimitDecoratorOptions {
17
- scope?: Exclude<RateLimitScope, 'admin'>;
16
+ interface RateLimitOverride {
18
17
  max?: number;
19
18
  window?: RateLimitWindow;
20
19
  cost?: number;
21
20
  }
21
+ export interface RateLimitIdentityScopeOptions extends RateLimitOverride {
22
+ scope?: Exclude<RateLimitScope, 'admin' | 'token'>;
23
+ }
24
+ export interface RateLimitTokenScopeOptions extends RateLimitOverride {
25
+ scope: 'token';
26
+ ipBackstop: RateLimitBucketConfig;
27
+ }
28
+ export type RateLimitDecoratorOptions = RateLimitIdentityScopeOptions | RateLimitTokenScopeOptions;
29
+ export declare const RATE_LIMIT_TOKEN_QUERY_PARAM = "token";
22
30
  export interface RateLimitMiddlewareOptions {
23
31
  config: RateLimitConfig;
24
32
  logger?: Logger;
@@ -41,3 +49,4 @@ export interface RateLimitConsumeResult {
41
49
  resetSeconds: number;
42
50
  }
43
51
  export declare const DEFAULT_RATE_LIMITS: Omit<RateLimitConfig, 'enabled' | 'redisPrefix'>;
52
+ export {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_RATE_LIMITS = void 0;
3
+ exports.DEFAULT_RATE_LIMITS = exports.RATE_LIMIT_TOKEN_QUERY_PARAM = void 0;
4
+ exports.RATE_LIMIT_TOKEN_QUERY_PARAM = 'token';
4
5
  exports.DEFAULT_RATE_LIMITS = {
5
6
  user: { max: 120, window: '1m' },
6
7
  org: { max: 1200, window: '1m' },
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/types/interface/rate-limit.ts"],"names":[],"mappings":";;;AAkDa,QAAA,mBAAmB,GAAqD;IACnF,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;CAC9B,CAAC"}
1
+ {"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../src/types/interface/rate-limit.ts"],"names":[],"mappings":";;;AA4Ca,QAAA,4BAA4B,GAAG,OAAO,CAAC;AA0BvC,QAAA,mBAAmB,GAAqD;IACnF,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAChC,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAClC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;CAC9B,CAAC"}
@@ -2,4 +2,5 @@ export declare const DEFAULT_HEADER_ALLOWLIST: readonly string[];
2
2
  export declare const NEVER_CAPTURE_HEADERS: ReadonlySet<string>;
3
3
  export declare function headerMatches(name: string, patterns: readonly string[]): boolean;
4
4
  export declare function shouldCaptureHeader(name: string, allowlist: readonly string[]): boolean;
5
- export declare function filterCapturedHeaders(source: Record<string, string | string[] | undefined>, config: boolean | string[] | undefined): Record<string, string> | null;
5
+ export type CapturableHeaderValue = string | number | readonly (string | number)[];
6
+ export declare function filterCapturedHeaders(source: Record<string, CapturableHeaderValue | undefined>, config: boolean | string[] | undefined): Record<string, string> | null;
@@ -39,6 +39,9 @@ function shouldCaptureHeader(name, allowlist) {
39
39
  return false;
40
40
  return headerMatches(lower, allowlist);
41
41
  }
42
+ function headerValueToString(value) {
43
+ return Array.isArray(value) ? value.map(String).join(', ') : String(value);
44
+ }
42
45
  function filterCapturedHeaders(source, config) {
43
46
  if (config === false || config === undefined)
44
47
  return null;
@@ -49,8 +52,7 @@ function filterCapturedHeaders(source, config) {
49
52
  continue;
50
53
  if (!shouldCaptureHeader(rawName, allowlist))
51
54
  continue;
52
- const value = Array.isArray(rawValue) ? rawValue.join(', ') : rawValue;
53
- out[rawName.toLowerCase()] = value;
55
+ out[rawName.toLowerCase()] = headerValueToString(rawValue);
54
56
  }
55
57
  return out;
56
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"header-pattern.js","sourceRoot":"","sources":["../../src/utils/header-pattern.ts"],"names":[],"mappings":";;;AAuBA,sCAOC;AAED,kDAIC;AAED,sDAiBC;AAvDY,QAAA,wBAAwB,GAAsB;IACzD,aAAa;IACb,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,YAAY;IACZ,SAAS;CACV,CAAC;AAEW,QAAA,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,eAAe;IACf,qBAAqB;IACrB,cAAc;IAEd,mBAAmB;CACpB,CAAC,CAAC;AAEH,SAAgB,aAAa,CAAC,IAAY,EAAE,QAA2B;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,KAAK,KAAK,GAAG,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAY,EAAE,SAA4B;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,6BAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,qBAAqB,CACnC,MAAqD,EACrD,MAAsC;IAEtC,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAE1D,MAAM,SAAS,GACb,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,gCAAwB,CAAC,CAAC,CAAC,CAAC,GAAG,gCAAwB,EAAE,GAAG,MAAM,CAAC,CAAC;IAExF,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS;QACrC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC;YAAE,SAAS;QACvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvE,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"header-pattern.js","sourceRoot":"","sources":["../../src/utils/header-pattern.ts"],"names":[],"mappings":";;;AAuBA,sCAOC;AAED,kDAIC;AAaD,sDAgBC;AAjEY,QAAA,wBAAwB,GAAsB;IACzD,aAAa;IACb,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,YAAY;IACZ,SAAS;CACV,CAAC;AAEW,QAAA,qBAAqB,GAAwB,IAAI,GAAG,CAAC;IAChE,eAAe;IACf,QAAQ;IACR,YAAY;IACZ,eAAe;IACf,qBAAqB;IACrB,cAAc;IAEd,mBAAmB;CACpB,CAAC,CAAC;AAEH,SAAgB,aAAa,CAAC,IAAY,EAAE,QAA2B;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,KAAK,KAAK,GAAG,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAY,EAAE,SAA4B;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,6BAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC;AASD,SAAS,mBAAmB,CAAC,KAA4B;IACvD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,SAAgB,qBAAqB,CACnC,MAAyD,EACzD,MAAsC;IAEtC,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAE1D,MAAM,SAAS,GACb,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,gCAAwB,CAAC,CAAC,CAAC,CAAC,GAAG,gCAAwB,EAAE,GAAG,MAAM,CAAC,CAAC;IAExF,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS;YAAE,SAAS;QACrC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC;YAAE,SAAS;QACvD,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abyss-project/monitor",
3
- "version": "12.1.0",
3
+ "version": "12.2.0",
4
4
  "description": "Core package to interact with Abyss-Monitor",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",