@technomoron/api-server-base 2.0.0-beta.22 → 2.0.0-beta.24

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 (114) hide show
  1. package/dist/cjs/api-module.cjs +8 -0
  2. package/dist/cjs/api-module.d.ts +12 -0
  3. package/dist/cjs/api-server-base.cjs +573 -615
  4. package/dist/cjs/api-server-base.d.ts +97 -87
  5. package/dist/cjs/auth-api/{auth-module.js → auth-module.cjs} +96 -76
  6. package/dist/cjs/auth-api/auth-module.d.ts +1 -1
  7. package/dist/cjs/auth-api/{compat-auth-storage.js → compat-auth-storage.cjs} +4 -4
  8. package/dist/cjs/auth-api/{mem-auth-store.js → mem-auth-store.cjs} +7 -7
  9. package/dist/cjs/auth-api/{module.js → module.cjs} +1 -1
  10. package/dist/cjs/auth-api/schemas.cjs +171 -0
  11. package/dist/cjs/auth-api/schemas.d.ts +21 -0
  12. package/dist/cjs/auth-api/{sql-auth-store.js → sql-auth-store.cjs} +8 -8
  13. package/dist/cjs/auth-api/{user-id.js → user-id.cjs} +12 -3
  14. package/dist/cjs/auth-cookie-options.d.ts +5 -3
  15. package/dist/cjs/base/client-info.cjs +285 -0
  16. package/dist/cjs/base/client-info.d.ts +27 -0
  17. package/dist/cjs/base/error-utils.cjs +50 -0
  18. package/dist/cjs/base/error-utils.d.ts +16 -0
  19. package/dist/cjs/base/request-utils.cjs +27 -0
  20. package/dist/cjs/base/request-utils.d.ts +8 -0
  21. package/dist/cjs/index.cjs +24 -15
  22. package/dist/cjs/index.d.ts +7 -0
  23. package/dist/cjs/limiter/auth-rate-limiter.cjs +35 -0
  24. package/dist/cjs/limiter/auth-rate-limiter.d.ts +12 -0
  25. package/dist/cjs/limiter/fixed-window.cjs +41 -0
  26. package/dist/cjs/limiter/fixed-window.d.ts +11 -0
  27. package/dist/cjs/oauth/{base.js → base.cjs} +1 -0
  28. package/dist/cjs/oauth/base.d.ts +8 -1
  29. package/dist/cjs/oauth/{memory.js → memory.cjs} +7 -4
  30. package/dist/cjs/oauth/memory.d.ts +1 -1
  31. package/dist/cjs/oauth/{models.js → models.cjs} +2 -2
  32. package/dist/cjs/oauth/{sequelize.js → sequelize.cjs} +11 -7
  33. package/dist/cjs/oauth/sequelize.d.ts +1 -1
  34. package/dist/cjs/passkey/{base.js → base.cjs} +1 -0
  35. package/dist/cjs/passkey/base.d.ts +11 -0
  36. package/dist/cjs/passkey/{memory.js → memory.cjs} +2 -2
  37. package/dist/cjs/passkey/{models.js → models.cjs} +1 -1
  38. package/dist/cjs/passkey/{sequelize.js → sequelize.cjs} +3 -3
  39. package/dist/cjs/passkey/{service.js → service.cjs} +17 -3
  40. package/dist/cjs/passkey/service.d.ts +1 -1
  41. package/dist/cjs/{sequelize-utils.js → sequelize-utils.cjs} +4 -5
  42. package/dist/cjs/token/{base.js → base.cjs} +4 -0
  43. package/dist/cjs/token/base.d.ts +7 -0
  44. package/dist/cjs/token/{memory.js → memory.cjs} +15 -20
  45. package/dist/cjs/token/{sequelize.js → sequelize.cjs} +25 -11
  46. package/dist/cjs/upload/memory.cjs +92 -0
  47. package/dist/cjs/upload/memory.d.ts +17 -0
  48. package/dist/cjs/upload/tus-module.cjs +270 -0
  49. package/dist/cjs/upload/tus-module.d.ts +38 -0
  50. package/dist/cjs/upload/types.d.ts +28 -0
  51. package/dist/cjs/user/{base.js → base.cjs} +1 -0
  52. package/dist/cjs/user/base.d.ts +9 -0
  53. package/dist/cjs/user/{memory.js → memory.cjs} +29 -7
  54. package/dist/cjs/user/{sequelize.js → sequelize.cjs} +33 -8
  55. package/dist/cjs/user/types.cjs +2 -0
  56. package/dist/esm/api-module.d.ts +12 -0
  57. package/dist/esm/api-module.js +8 -0
  58. package/dist/esm/api-server-base.d.ts +97 -87
  59. package/dist/esm/api-server-base.js +562 -604
  60. package/dist/esm/auth-api/auth-module.d.ts +1 -1
  61. package/dist/esm/auth-api/auth-module.js +92 -72
  62. package/dist/esm/auth-api/compat-auth-storage.js +3 -3
  63. package/dist/esm/auth-api/schemas.d.ts +21 -0
  64. package/dist/esm/auth-api/schemas.js +168 -0
  65. package/dist/esm/auth-api/user-id.js +12 -3
  66. package/dist/esm/auth-cookie-options.d.ts +5 -3
  67. package/dist/esm/base/client-info.d.ts +27 -0
  68. package/dist/esm/base/client-info.js +282 -0
  69. package/dist/esm/base/error-utils.d.ts +16 -0
  70. package/dist/esm/base/error-utils.js +44 -0
  71. package/dist/esm/base/request-utils.d.ts +8 -0
  72. package/dist/esm/base/request-utils.js +23 -0
  73. package/dist/esm/index.d.ts +7 -0
  74. package/dist/esm/index.js +4 -0
  75. package/dist/esm/limiter/auth-rate-limiter.d.ts +12 -0
  76. package/dist/esm/limiter/auth-rate-limiter.js +32 -0
  77. package/dist/esm/limiter/fixed-window.d.ts +11 -0
  78. package/dist/esm/limiter/fixed-window.js +37 -0
  79. package/dist/esm/oauth/base.d.ts +8 -1
  80. package/dist/esm/oauth/base.js +1 -0
  81. package/dist/esm/oauth/memory.d.ts +1 -1
  82. package/dist/esm/oauth/memory.js +5 -2
  83. package/dist/esm/oauth/sequelize.d.ts +1 -1
  84. package/dist/esm/oauth/sequelize.js +6 -2
  85. package/dist/esm/passkey/base.d.ts +11 -0
  86. package/dist/esm/passkey/base.js +1 -0
  87. package/dist/esm/passkey/service.d.ts +1 -1
  88. package/dist/esm/passkey/service.js +17 -3
  89. package/dist/esm/sequelize-utils.js +4 -5
  90. package/dist/esm/token/base.d.ts +7 -0
  91. package/dist/esm/token/base.js +4 -0
  92. package/dist/esm/token/memory.js +14 -19
  93. package/dist/esm/token/sequelize.js +22 -8
  94. package/dist/esm/upload/memory.d.ts +17 -0
  95. package/dist/esm/upload/memory.js +86 -0
  96. package/dist/esm/upload/tus-module.d.ts +38 -0
  97. package/dist/esm/upload/tus-module.js +266 -0
  98. package/dist/esm/upload/types.d.ts +28 -0
  99. package/dist/esm/upload/types.js +1 -0
  100. package/dist/esm/user/base.d.ts +9 -0
  101. package/dist/esm/user/base.js +1 -0
  102. package/dist/esm/user/memory.js +27 -5
  103. package/dist/esm/user/sequelize.js +30 -5
  104. package/docs/swagger/openapi.json +1 -1
  105. package/package.json +18 -17
  106. package/README.txt +0 -216
  107. /package/dist/cjs/auth-api/{storage.js → storage.cjs} +0 -0
  108. /package/dist/cjs/auth-api/{types.js → types.cjs} +0 -0
  109. /package/dist/cjs/{auth-cookie-options.js → auth-cookie-options.cjs} +0 -0
  110. /package/dist/cjs/oauth/{types.js → types.cjs} +0 -0
  111. /package/dist/cjs/passkey/{config.js → config.cjs} +0 -0
  112. /package/dist/cjs/passkey/{types.js → types.cjs} +0 -0
  113. /package/dist/cjs/token/{types.js → types.cjs} +0 -0
  114. /package/dist/cjs/{user/types.js → upload/types.cjs} +0 -0
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ApiModule = void 0;
4
+ /** Base class for feature modules mounted into {@link ApiServer}. */
4
5
  class ApiModule {
6
+ /** The server instance this module is mounted on. */
5
7
  get server() {
6
8
  if (this._server === undefined) {
7
9
  throw new Error('ApiModule.server is not set. Mount the module with ApiServer.api(...) before using it.');
@@ -15,12 +17,18 @@ class ApiModule {
15
17
  this.mountpath = '';
16
18
  this.namespace = opts.namespace ?? this.constructor.defaultNamespace ?? '';
17
19
  }
20
+ /** Optional pre-mount configuration validation hook. */
18
21
  checkConfig() {
19
22
  return true;
20
23
  }
24
+ /** Return all routes exposed by this module. */
21
25
  defineRoutes() {
22
26
  return [];
23
27
  }
28
+ /** Optional mount-time hook for modules that need direct server integration. */
29
+ onMount() {
30
+ return;
31
+ }
24
32
  }
25
33
  exports.ApiModule = ApiModule;
26
34
  ApiModule.defaultNamespace = '';
@@ -17,17 +17,29 @@ export type ApiRoute = {
17
17
  type: ApiAuthType;
18
18
  req: ApiAuthClass;
19
19
  };
20
+ schema?: {
21
+ body?: Record<string, unknown>;
22
+ querystring?: Record<string, unknown>;
23
+ params?: Record<string, unknown>;
24
+ };
20
25
  };
26
+ /** Base class for feature modules mounted into {@link ApiServer}. */
21
27
  export declare class ApiModule<T = unknown> {
22
28
  private _server?;
29
+ /** The server instance this module is mounted on. */
23
30
  get server(): T;
24
31
  set server(value: T);
32
+ /** Route namespace under `apiBasePath`. */
25
33
  namespace: string;
26
34
  mountpath: string;
27
35
  static defaultNamespace: string;
28
36
  constructor(opts?: {
29
37
  namespace?: string;
30
38
  });
39
+ /** Optional pre-mount configuration validation hook. */
31
40
  checkConfig(): boolean;
41
+ /** Return all routes exposed by this module. */
32
42
  defineRoutes(): ApiRoute[];
43
+ /** Optional mount-time hook for modules that need direct server integration. */
44
+ onMount(): void;
33
45
  }