@authup/server-kit 1.0.0-beta.46 → 1.0.0-beta.47

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.
Files changed (92) hide show
  1. package/dist/cache/adapters/index.d.ts.map +1 -0
  2. package/dist/cache/adapters/memory.d.ts.map +1 -0
  3. package/dist/cache/adapters/redis.d.ts.map +1 -0
  4. package/dist/cache/helper.d.ts.map +1 -0
  5. package/dist/cache/index.d.ts.map +1 -0
  6. package/dist/cache/types.d.ts.map +1 -0
  7. package/dist/crypto/json-web-token/index.d.ts +1 -1
  8. package/dist/crypto/json-web-token/index.d.ts.map +1 -1
  9. package/dist/crypto/json-web-token/sign/types.d.ts +1 -1
  10. package/dist/crypto/json-web-token/sign/types.d.ts.map +1 -1
  11. package/dist/crypto/json-web-token/{type.d.ts → types.d.ts} +1 -1
  12. package/dist/crypto/json-web-token/types.d.ts.map +1 -0
  13. package/dist/crypto/json-web-token/verify/types.d.ts +1 -1
  14. package/dist/crypto/json-web-token/verify/types.d.ts.map +1 -1
  15. package/dist/domain-event/handlers/index.d.ts +3 -0
  16. package/dist/domain-event/handlers/index.d.ts.map +1 -0
  17. package/dist/domain-event/handlers/redis/index.d.ts.map +1 -0
  18. package/dist/domain-event/handlers/redis/module.d.ts +9 -0
  19. package/dist/domain-event/handlers/redis/module.d.ts.map +1 -0
  20. package/dist/domain-event/handlers/socket/index.d.ts.map +1 -0
  21. package/dist/domain-event/handlers/socket/module.d.ts +9 -0
  22. package/dist/domain-event/handlers/socket/module.d.ts.map +1 -0
  23. package/dist/domain-event/index.d.ts +2 -3
  24. package/dist/domain-event/index.d.ts.map +1 -1
  25. package/dist/domain-event/module.d.ts +11 -4
  26. package/dist/domain-event/module.d.ts.map +1 -1
  27. package/dist/domain-event/{type.d.ts → types.d.ts} +6 -1
  28. package/dist/domain-event/types.d.ts.map +1 -0
  29. package/dist/domain-event/utils.d.ts +1 -1
  30. package/dist/domain-event/utils.d.ts.map +1 -1
  31. package/dist/index.d.mts +109 -100
  32. package/dist/index.d.mts.map +1 -1
  33. package/dist/index.d.ts +3 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.mjs +199 -210
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/logger/index.d.ts +3 -0
  38. package/dist/logger/index.d.ts.map +1 -0
  39. package/dist/logger/module.d.ts.map +1 -0
  40. package/dist/logger/types.d.ts +17 -0
  41. package/dist/logger/types.d.ts.map +1 -0
  42. package/dist/redis/check.d.ts.map +1 -0
  43. package/dist/redis/factory.d.ts.map +1 -0
  44. package/dist/redis/index.d.ts.map +1 -0
  45. package/dist/redis/module.d.ts.map +1 -0
  46. package/package.json +13 -15
  47. package/dist/crypto/json-web-token/type.d.ts.map +0 -1
  48. package/dist/domain-event/redis/index.d.ts.map +0 -1
  49. package/dist/domain-event/redis/module.d.ts +0 -9
  50. package/dist/domain-event/redis/module.d.ts.map +0 -1
  51. package/dist/domain-event/socket/index.d.ts.map +0 -1
  52. package/dist/domain-event/socket/module.d.ts +0 -9
  53. package/dist/domain-event/socket/module.d.ts.map +0 -1
  54. package/dist/domain-event/type.d.ts.map +0 -1
  55. package/dist/services/cache/adapters/index.d.ts.map +0 -1
  56. package/dist/services/cache/adapters/memory.d.ts.map +0 -1
  57. package/dist/services/cache/adapters/redis.d.ts.map +0 -1
  58. package/dist/services/cache/helper.d.ts.map +0 -1
  59. package/dist/services/cache/index.d.ts.map +0 -1
  60. package/dist/services/cache/types.d.ts.map +0 -1
  61. package/dist/services/index.d.ts +0 -5
  62. package/dist/services/index.d.ts.map +0 -1
  63. package/dist/services/logger/index.d.ts +0 -4
  64. package/dist/services/logger/index.d.ts.map +0 -1
  65. package/dist/services/logger/module.d.ts.map +0 -1
  66. package/dist/services/logger/singleton.d.ts +0 -7
  67. package/dist/services/logger/singleton.d.ts.map +0 -1
  68. package/dist/services/logger/types.d.ts +0 -7
  69. package/dist/services/logger/types.d.ts.map +0 -1
  70. package/dist/services/redis/check.d.ts.map +0 -1
  71. package/dist/services/redis/factory.d.ts.map +0 -1
  72. package/dist/services/redis/index.d.ts.map +0 -1
  73. package/dist/services/redis/module.d.ts.map +0 -1
  74. package/dist/services/vault/index.d.ts +0 -3
  75. package/dist/services/vault/index.d.ts.map +0 -1
  76. package/dist/services/vault/module.d.ts +0 -3
  77. package/dist/services/vault/module.d.ts.map +0 -1
  78. package/dist/services/vault/singleton.d.ts +0 -6
  79. package/dist/services/vault/singleton.d.ts.map +0 -1
  80. /package/dist/{services/cache → cache}/adapters/index.d.ts +0 -0
  81. /package/dist/{services/cache → cache}/adapters/memory.d.ts +0 -0
  82. /package/dist/{services/cache → cache}/adapters/redis.d.ts +0 -0
  83. /package/dist/{services/cache → cache}/helper.d.ts +0 -0
  84. /package/dist/{services/cache → cache}/index.d.ts +0 -0
  85. /package/dist/{services/cache → cache}/types.d.ts +0 -0
  86. /package/dist/domain-event/{redis → handlers/redis}/index.d.ts +0 -0
  87. /package/dist/domain-event/{socket → handlers/socket}/index.d.ts +0 -0
  88. /package/dist/{services/logger → logger}/module.d.ts +0 -0
  89. /package/dist/{services/redis → redis}/check.d.ts +0 -0
  90. /package/dist/{services/redis → redis}/factory.d.ts +0 -0
  91. /package/dist/{services/redis → redis}/index.d.ts +0 -0
  92. /package/dist/{services/redis → redis}/module.d.ts +0 -0
package/dist/index.mjs CHANGED
@@ -1,19 +1,133 @@
1
+ import { TTLCache } from "@isaacs/ttlcache";
2
+ import { Client as RedisClient, JsonAdapter, JsonAdapter as RedisJsonAdapter, Watcher as RedisWatcher, buildKeyPath as buildRedisKeyPath, createClient, escapeKey as escapeRedisKey, parseKeyPath as parseRedisKeyPath } from "redis-extension";
3
+ import { isObject } from "smob";
1
4
  import { REALM_MASTER_NAME } from "@authup/core-kit";
2
- import { arrayBufferToBase64, base64ToArrayBuffer, isObject } from "@authup/kit";
5
+ import { arrayBufferToBase64, base64ToArrayBuffer, isObject as isObject$1 } from "@authup/kit";
3
6
  import { compare as compare$1, hash as hash$1 } from "@node-rs/bcrypt";
4
7
  import { JWKType, JWTAlgorithm, JWTError } from "@authup/specs";
5
8
  import { subtle } from "uncrypto";
6
9
  import { Algorithm, sign, verify } from "@node-rs/jsonwebtoken";
7
- import { isObject as isObject$1 } from "smob";
8
- import { TTLCache } from "@isaacs/ttlcache";
9
- import { Client as RedisClient, JsonAdapter, JsonAdapter as RedisJsonAdapter, Watcher as RedisWatcher, buildKeyPath as buildRedisKeyPath, createClient, escapeKey as escapeRedisKey, parseKeyPath as parseRedisKeyPath } from "redis-extension";
10
- import path from "node:path";
11
- import process from "node:process";
12
- import { Logger, createLogger as createLogger$1, format, transports } from "winston";
13
- import { singa } from "singa";
14
- import { VaultClient, createClient as createVaultClient } from "@hapic/vault";
15
10
  import { buildEventFullName } from "@authup/core-realtime-kit";
16
11
  import { Emitter } from "@socket.io/redis-emitter";
12
+ import path from "node:path";
13
+ import process from "node:process";
14
+ import { createLogger as createLogger$1, format, transports } from "winston";
15
+ //#region src/cache/adapters/memory.ts
16
+ var MemoryCache = class {
17
+ instance;
18
+ constructor(options = {}) {
19
+ this.instance = new TTLCache({
20
+ checkAgeOnGet: true,
21
+ ttl: Infinity,
22
+ ...options || {}
23
+ });
24
+ }
25
+ async pop(key) {
26
+ if (this.instance.has(key)) {
27
+ const output = this.instance.get(key);
28
+ this.instance.delete(key);
29
+ return output;
30
+ }
31
+ return null;
32
+ }
33
+ async has(key) {
34
+ return this.instance.has(key);
35
+ }
36
+ async get(key) {
37
+ const output = await this.instance.get(key);
38
+ if (output) return output;
39
+ return null;
40
+ }
41
+ async set(key, value, options) {
42
+ this.instance.set(key, value, { ttl: options.ttl });
43
+ }
44
+ async drop(key) {
45
+ this.instance.delete(key);
46
+ }
47
+ async dropMany(keys) {
48
+ for (const key of keys) this.instance.delete(key);
49
+ }
50
+ async clear(options = {}) {
51
+ if (options.prefix) {
52
+ const keys = this.instance.keys();
53
+ let iterator = keys.next();
54
+ while (!iterator.done) {
55
+ if (typeof iterator.value !== "string") continue;
56
+ if (iterator.value.startsWith(options.prefix)) this.instance.delete(iterator.value);
57
+ iterator = keys.next();
58
+ }
59
+ return;
60
+ }
61
+ this.instance.clear();
62
+ }
63
+ };
64
+ //#endregion
65
+ //#region src/redis/check.ts
66
+ function isRedisClient(data) {
67
+ return isObject(data) && typeof data.connect === "function" && typeof data.disconnect === "function";
68
+ }
69
+ //#endregion
70
+ //#region src/redis/factory.ts
71
+ function createRedisClient(input) {
72
+ if (typeof input === "boolean") return createClient({ connectionString: "redis://127.0.0.1" });
73
+ if (typeof input === "string") return createClient({ connectionString: input });
74
+ if (!isRedisClient(input)) return createClient({ options: input });
75
+ return input;
76
+ }
77
+ //#endregion
78
+ //#region src/cache/adapters/redis.ts
79
+ var RedisCache = class {
80
+ client;
81
+ jsonAdapter;
82
+ constructor(input) {
83
+ this.client = createRedisClient(input);
84
+ this.jsonAdapter = new JsonAdapter(this.client);
85
+ }
86
+ async get(key) {
87
+ const output = await this.jsonAdapter.get(key);
88
+ if (output) return output;
89
+ return null;
90
+ }
91
+ async pop(key) {
92
+ const raw = await this.client.getdel(key);
93
+ if (!raw) return null;
94
+ try {
95
+ return JSON.parse(raw);
96
+ } catch {
97
+ return null;
98
+ }
99
+ }
100
+ async has(key) {
101
+ return !!await this.get(key);
102
+ }
103
+ async set(key, value, options) {
104
+ await this.jsonAdapter.set(key, value, { milliseconds: options.ttl });
105
+ }
106
+ async drop(key) {
107
+ await this.jsonAdapter.drop(key);
108
+ }
109
+ async dropMany(keys) {
110
+ const pipeline = this.client.pipeline();
111
+ for (const key of keys) pipeline.del(key);
112
+ await pipeline.exec();
113
+ }
114
+ async clear(options = {}) {
115
+ if (options.prefix) {
116
+ const pipeline = this.client.pipeline();
117
+ const keys = await this.client.keys(`${options.prefix}*`);
118
+ for (const key of keys) pipeline.del(key);
119
+ await pipeline.exec();
120
+ return;
121
+ }
122
+ await this.client.flushdb();
123
+ }
124
+ };
125
+ //#endregion
126
+ //#region src/cache/helper.ts
127
+ function buildCacheKey(options) {
128
+ return buildRedisKeyPath(options);
129
+ }
130
+ //#endregion
17
131
  //#region src/core/service.ts
18
132
  var AbstractEntityService = class {
19
133
  isActorMasterRealmMember(actor) {
@@ -26,7 +140,7 @@ var AbstractEntityService = class {
26
140
  if (!actor.identity) return;
27
141
  const { data } = actor.identity;
28
142
  if (data.realm_id) return data.realm_id;
29
- if (isObject(data.realm) && data.realm.id) return data.realm.id;
143
+ if (isObject$1(data.realm) && data.realm.id) return data.realm.id;
30
144
  }
31
145
  };
32
146
  //#endregion
@@ -351,7 +465,7 @@ function extractTokenPayload(token) {
351
465
  //#endregion
352
466
  //#region src/crypto/json-web-token/utils.ts
353
467
  function createErrorForJWTError(e) {
354
- if (isObject$1(e)) {
468
+ if (isObject(e)) {
355
469
  if (typeof e.name === "string") switch (e.name) {
356
470
  case "TokenExpiredError": return JWTError.expired();
357
471
  case "NotBeforeError":
@@ -481,204 +595,13 @@ async function verifyToken(token, context) {
481
595
  return output;
482
596
  }
483
597
  //#endregion
484
- //#region src/domain-event/module.ts
485
- var DomainEventPublisher = class {
486
- publishers;
487
- constructor() {
488
- this.publishers = /* @__PURE__ */ new Set();
489
- }
490
- mount(publisher) {
491
- this.publishers.add(publisher);
492
- }
493
- async publish(ctx) {
494
- const publishers = this.publishers.values();
495
- while (true) {
496
- const it = publishers.next();
497
- if (it.done) return;
498
- await it.value.publish(ctx);
499
- }
500
- }
501
- };
502
- //#endregion
503
- //#region src/services/cache/adapters/memory.ts
504
- var MemoryCache = class {
505
- instance;
506
- constructor(options = {}) {
507
- this.instance = new TTLCache({
508
- checkAgeOnGet: true,
509
- ttl: Infinity,
510
- ...options || {}
511
- });
512
- }
513
- async pop(key) {
514
- if (this.instance.has(key)) {
515
- const output = this.instance.get(key);
516
- this.instance.delete(key);
517
- return output;
518
- }
519
- return null;
520
- }
521
- async has(key) {
522
- return this.instance.has(key);
523
- }
524
- async get(key) {
525
- const output = await this.instance.get(key);
526
- if (output) return output;
527
- return null;
528
- }
529
- async set(key, value, options) {
530
- this.instance.set(key, value, { ttl: options.ttl });
531
- }
532
- async drop(key) {
533
- this.instance.delete(key);
534
- }
535
- async dropMany(keys) {
536
- for (const key of keys) this.instance.delete(key);
537
- }
538
- async clear(options = {}) {
539
- if (options.prefix) {
540
- const keys = this.instance.keys();
541
- let iterator = keys.next();
542
- while (!iterator.done) {
543
- if (typeof iterator.value !== "string") continue;
544
- if (iterator.value.startsWith(options.prefix)) this.instance.delete(iterator.value);
545
- iterator = keys.next();
546
- }
547
- return;
548
- }
549
- this.instance.clear();
550
- }
551
- };
552
- //#endregion
553
- //#region src/services/redis/check.ts
554
- function isRedisClient(data) {
555
- return isObject$1(data) && typeof data.connect === "function" && typeof data.disconnect === "function";
556
- }
557
- //#endregion
558
- //#region src/services/redis/factory.ts
559
- function createRedisClient(input) {
560
- if (typeof input === "boolean") return createClient({ connectionString: "redis://127.0.0.1" });
561
- if (typeof input === "string") return createClient({ connectionString: input });
562
- if (!isRedisClient(input)) return createClient({ options: input });
563
- return input;
564
- }
565
- //#endregion
566
- //#region src/services/cache/adapters/redis.ts
567
- var RedisCache = class {
568
- client;
569
- jsonAdapter;
570
- constructor(input) {
571
- this.client = createRedisClient(input);
572
- this.jsonAdapter = new JsonAdapter(this.client);
573
- }
574
- async get(key) {
575
- const output = await this.jsonAdapter.get(key);
576
- if (output) return output;
577
- return null;
578
- }
579
- async pop(key) {
580
- const raw = await this.client.getdel(key);
581
- if (!raw) return null;
582
- try {
583
- return JSON.parse(raw);
584
- } catch {
585
- return null;
586
- }
587
- }
588
- async has(key) {
589
- return !!await this.get(key);
590
- }
591
- async set(key, value, options) {
592
- await this.jsonAdapter.set(key, value, { milliseconds: options.ttl });
593
- }
594
- async drop(key) {
595
- await this.jsonAdapter.drop(key);
596
- }
597
- async dropMany(keys) {
598
- const pipeline = this.client.pipeline();
599
- for (const key of keys) pipeline.del(key);
600
- await pipeline.exec();
601
- }
602
- async clear(options = {}) {
603
- if (options.prefix) {
604
- const pipeline = this.client.pipeline();
605
- const keys = await this.client.keys(`${options.prefix}*`);
606
- for (const key of keys) pipeline.del(key);
607
- await pipeline.exec();
608
- return;
609
- }
610
- await this.client.flushdb();
611
- }
612
- };
613
- //#endregion
614
- //#region src/services/cache/helper.ts
615
- function buildCacheKey(options) {
616
- return buildRedisKeyPath(options);
617
- }
618
- //#endregion
619
- //#region src/services/logger/module.ts
620
- function createNoopLogger() {
621
- return createLogger$1({ silent: true });
622
- }
623
- function createLogger(context) {
624
- let items;
625
- const cwd = context.directory || process.cwd();
626
- if (context.env === "production") items = [
627
- new transports.Console({ level: "info" }),
628
- new transports.File({
629
- filename: path.join(cwd, "http.log"),
630
- level: "http",
631
- maxsize: 10 * 1024 * 1024,
632
- maxFiles: 5
633
- }),
634
- new transports.File({
635
- filename: path.join(cwd, "error.log"),
636
- level: "warn",
637
- maxsize: 10 * 1024 * 1024,
638
- maxFiles: 5
639
- })
640
- ];
641
- else items = [new transports.Console({ level: "debug" })];
642
- return createLogger$1({
643
- format: format.combine(format.errors({ stack: true }), format.timestamp(), format.colorize(), format.simple()),
644
- transports: items
645
- });
646
- }
647
- //#endregion
648
- //#region src/services/logger/singleton.ts
649
- const instance$1 = singa({ name: "logger" });
650
- function setLoggerFactory(factory) {
651
- instance$1.setFactory(factory);
652
- }
653
- function isLoggerUsable() {
654
- return instance$1.has() || instance$1.hasFactory();
655
- }
656
- function setLogger(input) {
657
- instance$1.set(input);
658
- }
659
- function useLogger() {
660
- return instance$1.use();
661
- }
662
- //#endregion
663
- //#region src/services/vault/singleton.ts
664
- const instance = singa({ name: "vault" });
665
- function setVaultFactory(factory) {
666
- instance.setFactory(factory);
667
- }
668
- function isVaultClientUsable() {
669
- return instance.has() || instance.hasFactory();
670
- }
671
- function useVaultClient() {
672
- return instance.use();
673
- }
674
- //#endregion
675
598
  //#region src/domain-event/utils.ts
676
599
  function transformDomainEventData(input) {
677
600
  const keys = Object.keys(input);
678
601
  for (const key_ of keys) {
679
602
  const key = key_;
680
603
  const value = input[key];
681
- if (!isObject(value)) continue;
604
+ if (!isObject$1(value)) continue;
682
605
  if (value instanceof Date) input[key] = value.toISOString();
683
606
  }
684
607
  return input;
@@ -688,13 +611,13 @@ function buildDomainEventChannelName(input, id) {
688
611
  return input(id);
689
612
  }
690
613
  //#endregion
691
- //#region src/domain-event/redis/module.ts
692
- var DomainEventRedisPublisher = class {
614
+ //#region src/domain-event/handlers/redis/module.ts
615
+ var DomainEventRedisHandler = class {
693
616
  driver;
694
617
  constructor(input) {
695
618
  this.driver = createRedisClient(input);
696
619
  }
697
- async publish(ctx) {
620
+ async handle(ctx) {
698
621
  const data = JSON.stringify(transformDomainEventData(ctx.content));
699
622
  const pipeline = this.driver.pipeline();
700
623
  for (let i = 0; i < ctx.destinations.length; i++) {
@@ -711,14 +634,14 @@ var DomainEventRedisPublisher = class {
711
634
  }
712
635
  };
713
636
  //#endregion
714
- //#region src/domain-event/socket/module.ts
715
- var DomainEventSocketPublisher = class {
637
+ //#region src/domain-event/handlers/socket/module.ts
638
+ var DomainEventSocketHandler = class {
716
639
  driver;
717
640
  constructor(input) {
718
641
  const client = createRedisClient(input);
719
642
  this.driver = new Emitter(client);
720
643
  }
721
- async publish(ctx) {
644
+ async handle(ctx) {
722
645
  ctx.content = transformDomainEventData(ctx.content);
723
646
  for (let i = 0; i < ctx.destinations.length; i++) {
724
647
  const destination = ctx.destinations[i];
@@ -745,11 +668,77 @@ var DomainEventSocketPublisher = class {
745
668
  }
746
669
  };
747
670
  //#endregion
671
+ //#region src/domain-event/module.ts
672
+ var DomainEventPublisher = class {
673
+ handlers;
674
+ logger;
675
+ constructor(ctx = {}) {
676
+ this.handlers = /* @__PURE__ */ new Set();
677
+ this.logger = ctx.logger;
678
+ }
679
+ register(handler) {
680
+ this.handlers.add(handler);
681
+ }
682
+ async dispose() {
683
+ for (const handler of this.handlers) if (handler.dispose) await handler.dispose();
684
+ this.handlers.clear();
685
+ }
686
+ async safePublish(ctx) {
687
+ try {
688
+ await this.publish(ctx);
689
+ } catch (e) {
690
+ if (this.logger) {
691
+ this.logger.error(`Publishing event ${buildEventFullName(ctx.content.type, ctx.content.event)} failed.`);
692
+ this.logger.error(e);
693
+ }
694
+ }
695
+ }
696
+ async publish(ctx) {
697
+ if (this.handlers.size === 0) return;
698
+ if (this.logger) this.logger.debug(`Publishing event ${buildEventFullName(ctx.content.type, ctx.content.event)}...`);
699
+ const handlers = this.handlers.values();
700
+ while (true) {
701
+ const it = handlers.next();
702
+ if (it.done) return;
703
+ await it.value.handle(ctx);
704
+ }
705
+ }
706
+ };
707
+ //#endregion
708
+ //#region src/logger/module.ts
709
+ function createNoopLogger() {
710
+ return createLogger$1({ silent: true });
711
+ }
712
+ function createLogger(context) {
713
+ let items;
714
+ const cwd = context.directory || process.cwd();
715
+ if (context.env === "production") items = [
716
+ new transports.Console({ level: "info" }),
717
+ new transports.File({
718
+ filename: path.join(cwd, "http.log"),
719
+ level: "http",
720
+ maxsize: 10 * 1024 * 1024,
721
+ maxFiles: 5
722
+ }),
723
+ new transports.File({
724
+ filename: path.join(cwd, "error.log"),
725
+ level: "warn",
726
+ maxsize: 10 * 1024 * 1024,
727
+ maxFiles: 5
728
+ })
729
+ ];
730
+ else items = [new transports.Console({ level: "debug" })];
731
+ return createLogger$1({
732
+ format: format.combine(format.errors({ stack: true }), format.timestamp(), format.colorize(), format.simple()),
733
+ transports: items
734
+ });
735
+ }
736
+ //#endregion
748
737
  //#region src/utils/has-property.ts
749
738
  function hasOwnProperty(obj, prop) {
750
739
  return Object.prototype.hasOwnProperty.call(obj, prop);
751
740
  }
752
741
  //#endregion
753
- export { AbstractEntityService, AsymmetricKey, BaseKey, CryptoAsymmetricAlgorithm, DomainEventPublisher, DomainEventRedisPublisher, DomainEventSocketPublisher, Logger, MemoryCache, RedisCache, RedisClient, RedisJsonAdapter, RedisWatcher, SymmetricAlgorithm, SymmetricKey, VaultClient, buildCacheKey, buildRedisKeyPath, compare, createAsymmetricKeyPair, createLogger, createNoopLogger, createRedisClient, createSymmetricKey, createVaultClient, decodePemToPKCS8, decodePemToSpki, encodePKCS8ToPEM, encodeSPKIToPem, escapeRedisKey, extractTokenHeader, extractTokenPayload, getKeyUsagesForAsymmetricAlgorithm, getKeyUsagesForSymmetricAlgorithm, hasOwnProperty, hash, isAsymmetricAlgorithm, isLoggerUsable, isRedisClient, isSymmetricAlgorithm, isVaultClientUsable, normalizeAsymmetricKeyImportOptions, normalizeAsymmetricKeyPairCreateOptions, parseRedisKeyPath, setLogger, setLoggerFactory, setVaultFactory, signToken, useLogger, useVaultClient, verifyToken };
742
+ export { AbstractEntityService, AsymmetricKey, BaseKey, CryptoAsymmetricAlgorithm, DomainEventPublisher, DomainEventRedisHandler, DomainEventSocketHandler, MemoryCache, RedisCache, RedisClient, RedisJsonAdapter, RedisWatcher, SymmetricAlgorithm, SymmetricKey, buildCacheKey, buildRedisKeyPath, compare, createAsymmetricKeyPair, createLogger, createNoopLogger, createRedisClient, createSymmetricKey, decodePemToPKCS8, decodePemToSpki, encodePKCS8ToPEM, encodeSPKIToPem, escapeRedisKey, extractTokenHeader, extractTokenPayload, getKeyUsagesForAsymmetricAlgorithm, getKeyUsagesForSymmetricAlgorithm, hasOwnProperty, hash, isAsymmetricAlgorithm, isRedisClient, isSymmetricAlgorithm, normalizeAsymmetricKeyImportOptions, normalizeAsymmetricKeyPairCreateOptions, parseRedisKeyPath, signToken, verifyToken };
754
743
 
755
744
  //# sourceMappingURL=index.mjs.map