cafe-utility 27.15.0 → 27.16.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/index.d.ts CHANGED
@@ -653,6 +653,14 @@ export declare class AsyncQueue {
653
653
  enqueue(fn: () => Promise<void>): Promise<void>;
654
654
  drain(): Promise<void>;
655
655
  }
656
+ type RouterFn<Q, S> = (request: Q, response: S, context: Map<string, string>) => Promise<void>;
657
+ export declare class TrieRouter<Q, S> {
658
+ private forks;
659
+ private handler?;
660
+ private variableName?;
661
+ insert(pathSegments: string[], handler: RouterFn<Q, S>): void;
662
+ handle(pathSegments: string[], request: Q, response: S, context: Map<string, string>): Promise<boolean>;
663
+ }
656
664
  export declare const Binary: {
657
665
  hexToUint8Array: typeof hexToUint8Array;
658
666
  uint8ArrayToHex: typeof uint8ArrayToHex;
package/index.js CHANGED
@@ -15,6 +15,7 @@ Object.defineProperty(exports, '__esModule', { value: !0 }),
15
15
  exports.Random =
16
16
  exports.Elliptic =
17
17
  exports.Binary =
18
+ exports.TrieRouter =
18
19
  exports.AsyncQueue =
19
20
  exports.PubSubChannel =
20
21
  exports.FixedPointNumber =
@@ -2265,12 +2266,12 @@ function keccakPermutate(n) {
2265
2266
  m = t ^ $n,
2266
2267
  g = r ^ An,
2267
2268
  En = (c << 1) | (f >>> 31),
2268
- On = (f << 1) | (c >>> 31),
2269
+ Mn = (f << 1) | (c >>> 31),
2269
2270
  w = o ^ En,
2270
- y = i ^ On,
2271
- Mn = (l << 1) | (a >>> 31),
2271
+ y = i ^ Mn,
2272
+ On = (l << 1) | (a >>> 31),
2272
2273
  kn = (a << 1) | (l >>> 31),
2273
- x = u ^ Mn,
2274
+ x = u ^ On,
2274
2275
  b = s ^ kn,
2275
2276
  Tn = (t << 1) | (r >>> 31),
2276
2277
  Sn = (r << 1) | (t >>> 31),
@@ -2327,8 +2328,8 @@ function keccakPermutate(n) {
2327
2328
  (n[48] ^= $),
2328
2329
  (n[49] ^= A)
2329
2330
  const E = n[0],
2330
- O = n[1],
2331
- M = (n[2] << 1) | (n[3] >>> 31),
2331
+ M = n[1],
2332
+ O = (n[2] << 1) | (n[3] >>> 31),
2332
2333
  k = (n[3] << 1) | (n[2] >>> 31),
2333
2334
  T = (n[5] << 30) | (n[4] >>> 2),
2334
2335
  S = (n[4] << 30) | (n[5] >>> 2),
@@ -2341,20 +2342,20 @@ function keccakPermutate(n) {
2341
2342
  v = (n[13] << 12) | (n[12] >>> 20),
2342
2343
  U = (n[12] << 12) | (n[13] >>> 20),
2343
2344
  L = (n[14] << 6) | (n[15] >>> 26),
2344
- j = (n[15] << 6) | (n[14] >>> 26),
2345
- N = (n[17] << 23) | (n[16] >>> 9),
2345
+ N = (n[15] << 6) | (n[14] >>> 26),
2346
+ j = (n[17] << 23) | (n[16] >>> 9),
2346
2347
  z = (n[16] << 23) | (n[17] >>> 9),
2347
2348
  F = (n[18] << 20) | (n[19] >>> 12),
2348
- q = (n[19] << 20) | (n[18] >>> 12),
2349
- W = (n[20] << 3) | (n[21] >>> 29),
2349
+ W = (n[19] << 20) | (n[18] >>> 12),
2350
+ q = (n[20] << 3) | (n[21] >>> 29),
2350
2351
  H = (n[21] << 3) | (n[20] >>> 29),
2351
2352
  V = (n[22] << 10) | (n[23] >>> 22),
2352
2353
  J = (n[23] << 10) | (n[22] >>> 22),
2353
2354
  K = (n[25] << 11) | (n[24] >>> 21),
2354
2355
  Z = (n[24] << 11) | (n[25] >>> 21),
2355
2356
  Q = (n[26] << 25) | (n[27] >>> 7),
2356
- _ = (n[27] << 25) | (n[26] >>> 7),
2357
- G = (n[29] << 7) | (n[28] >>> 25),
2357
+ G = (n[27] << 25) | (n[26] >>> 7),
2358
+ _ = (n[29] << 7) | (n[28] >>> 25),
2358
2359
  Y = (n[28] << 7) | (n[29] >>> 25),
2359
2360
  X = (n[31] << 9) | (n[30] >>> 23),
2360
2361
  nn = (n[30] << 9) | (n[31] >>> 23),
@@ -2377,35 +2378,35 @@ function keccakPermutate(n) {
2377
2378
  yn = (n[48] << 14) | (n[49] >>> 18),
2378
2379
  xn = (n[49] << 14) | (n[48] >>> 18)
2379
2380
  ;(n[0] = E ^ (~v & K)),
2380
- (n[1] = O ^ (~U & Z)),
2381
+ (n[1] = M ^ (~U & Z)),
2381
2382
  (n[2] = v ^ (~K & un)),
2382
2383
  (n[3] = U ^ (~Z & cn)),
2383
2384
  (n[4] = K ^ (~un & yn)),
2384
2385
  (n[5] = Z ^ (~cn & xn)),
2385
2386
  (n[6] = un ^ (~yn & E)),
2386
- (n[7] = cn ^ (~xn & O)),
2387
+ (n[7] = cn ^ (~xn & M)),
2387
2388
  (n[8] = yn ^ (~E & v)),
2388
- (n[9] = xn ^ (~O & U)),
2389
- (n[10] = R ^ (~F & W)),
2390
- (n[11] = D ^ (~q & H)),
2391
- (n[12] = F ^ (~W & en)),
2392
- (n[13] = q ^ (~H & tn)),
2393
- (n[14] = W ^ (~en & pn)),
2389
+ (n[9] = xn ^ (~M & U)),
2390
+ (n[10] = R ^ (~F & q)),
2391
+ (n[11] = D ^ (~W & H)),
2392
+ (n[12] = F ^ (~q & en)),
2393
+ (n[13] = W ^ (~H & tn)),
2394
+ (n[14] = q ^ (~en & pn)),
2394
2395
  (n[15] = H ^ (~tn & mn)),
2395
2396
  (n[16] = en ^ (~pn & R)),
2396
2397
  (n[17] = tn ^ (~mn & D)),
2397
2398
  (n[18] = pn ^ (~R & F)),
2398
- (n[19] = mn ^ (~D & q)),
2399
- (n[20] = M ^ (~L & Q)),
2400
- (n[21] = k ^ (~j & _)),
2399
+ (n[19] = mn ^ (~D & W)),
2400
+ (n[20] = O ^ (~L & Q)),
2401
+ (n[21] = k ^ (~N & G)),
2401
2402
  (n[22] = L ^ (~Q & sn)),
2402
- (n[23] = j ^ (~_ & fn)),
2403
+ (n[23] = N ^ (~G & fn)),
2403
2404
  (n[24] = Q ^ (~sn & ln)),
2404
- (n[25] = _ ^ (~fn & an)),
2405
- (n[26] = sn ^ (~ln & M)),
2405
+ (n[25] = G ^ (~fn & an)),
2406
+ (n[26] = sn ^ (~ln & O)),
2406
2407
  (n[27] = fn ^ (~an & k)),
2407
- (n[28] = ln ^ (~M & L)),
2408
- (n[29] = an ^ (~k & j)),
2408
+ (n[28] = ln ^ (~O & L)),
2409
+ (n[29] = an ^ (~k & N)),
2409
2410
  (n[30] = I ^ (~B & V)),
2410
2411
  (n[31] = C ^ (~P & J)),
2411
2412
  (n[32] = B ^ (~V & rn)),
@@ -2416,15 +2417,15 @@ function keccakPermutate(n) {
2416
2417
  (n[37] = on ^ (~wn & C)),
2417
2418
  (n[38] = gn ^ (~I & B)),
2418
2419
  (n[39] = wn ^ (~C & P)),
2419
- (n[40] = T ^ (~N & G)),
2420
+ (n[40] = T ^ (~j & _)),
2420
2421
  (n[41] = S ^ (~z & Y)),
2421
- (n[42] = N ^ (~G & X)),
2422
+ (n[42] = j ^ (~_ & X)),
2422
2423
  (n[43] = z ^ (~Y & nn)),
2423
- (n[44] = G ^ (~X & hn)),
2424
+ (n[44] = _ ^ (~X & hn)),
2424
2425
  (n[45] = Y ^ (~nn & dn)),
2425
2426
  (n[46] = X ^ (~hn & T)),
2426
2427
  (n[47] = nn ^ (~dn & S)),
2427
- (n[48] = hn ^ (~T & N)),
2428
+ (n[48] = hn ^ (~T & j)),
2428
2429
  (n[49] = dn ^ (~S & z)),
2429
2430
  (n[0] ^= IOTA_CONSTANTS[e * 2]),
2430
2431
  (n[1] ^= IOTA_CONSTANTS[e * 2 + 1])
@@ -3079,7 +3080,37 @@ class AsyncQueue {
3079
3080
  })
3080
3081
  }
3081
3082
  }
3082
- ;(exports.AsyncQueue = AsyncQueue),
3083
+ exports.AsyncQueue = AsyncQueue
3084
+ class TrieRouter {
3085
+ constructor() {
3086
+ this.forks = new Map()
3087
+ }
3088
+ insert(e, t) {
3089
+ if (e.length === 0) {
3090
+ this.handler = t
3091
+ return
3092
+ }
3093
+ const r = e[0]
3094
+ let o = r,
3095
+ i
3096
+ if ((r.startsWith(':') && ((o = ':'), (i = r.slice(1))), !this.forks.has(o))) {
3097
+ const u = new TrieRouter()
3098
+ i && (u.variableName = i), this.forks.set(o, u)
3099
+ }
3100
+ this.forks.get(o).insert(e.slice(1), t)
3101
+ }
3102
+ async handle(e, t, r, o) {
3103
+ if (e.length === 0) return this.handler ? (await this.handler(t, r, o), !0) : !1
3104
+ const i = e[0],
3105
+ u = this.forks.get(i)
3106
+ if (u) return u.handle(e.slice(1), t, r, o)
3107
+ const s = this.forks.get(':')
3108
+ if (s) return s.variableName && o.set(s.variableName, i), s.handle(e.slice(1), t, r, o)
3109
+ const c = this.forks.get('*')
3110
+ return c ? (o.set('wildcard', e.join('/')), c.handler ? (await c.handler(t, r, o), !0) : !1) : !1
3111
+ }
3112
+ }
3113
+ ;(exports.TrieRouter = TrieRouter),
3083
3114
  (exports.Binary = {
3084
3115
  hexToUint8Array,
3085
3116
  uint8ArrayToHex,
package/module.mjs CHANGED
@@ -25,3 +25,4 @@ export const AsyncLazy = utility.AsyncLazy
25
25
  export const AsyncQueue = utility.AsyncQueue
26
26
  export const Uint8ArrayReader = utility.Uint8ArrayReader
27
27
  export const Uint8ArrayWriter = utility.Uint8ArrayWriter
28
+ export const TrieRouter = utility.TrieRouter
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cafe-utility",
3
- "version": "27.15.0",
3
+ "version": "27.16.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "exports": {