@tinyrack/tinyauth-server 0.0.14 → 0.0.16

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 (172) hide show
  1. package/dist/entities/background-job.entity.d.ts +111 -0
  2. package/dist/entities/background-job.entity.d.ts.map +1 -0
  3. package/dist/entities/background-job.entity.js +41 -0
  4. package/dist/entities/background-job.entity.js.map +1 -0
  5. package/dist/entities/scheduler-job.entity.d.ts +134 -0
  6. package/dist/entities/scheduler-job.entity.d.ts.map +1 -0
  7. package/dist/entities/scheduler-job.entity.js +48 -0
  8. package/dist/entities/scheduler-job.entity.js.map +1 -0
  9. package/dist/entrypoints/app.d.ts +42 -2
  10. package/dist/entrypoints/app.d.ts.map +1 -1
  11. package/dist/entrypoints/database/postgres/compiled-functions.d.ts +280 -170
  12. package/dist/entrypoints/database/postgres/compiled-functions.d.ts.map +1 -1
  13. package/dist/entrypoints/database/postgres/compiled-functions.js +3442 -2124
  14. package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -1
  15. package/dist/entrypoints/database/postgres/postgres.d.ts +7 -2
  16. package/dist/entrypoints/database/postgres/postgres.d.ts.map +1 -1
  17. package/dist/entrypoints/database/postgres/postgres.js +3 -2
  18. package/dist/entrypoints/database/postgres/postgres.js.map +1 -1
  19. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +280 -170
  20. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts.map +1 -1
  21. package/dist/entrypoints/database/sqlite/compiled-functions.js +3442 -2124
  22. package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -1
  23. package/dist/entrypoints/database/sqlite/sqlite.d.ts +6 -2
  24. package/dist/entrypoints/database/sqlite/sqlite.d.ts.map +1 -1
  25. package/dist/entrypoints/database/sqlite/sqlite.js +2 -1
  26. package/dist/entrypoints/database/sqlite/sqlite.js.map +1 -1
  27. package/dist/entrypoints/identity-providers/apple.d.ts +1 -0
  28. package/dist/entrypoints/identity-providers/apple.d.ts.map +1 -1
  29. package/dist/entrypoints/identity-providers/apple.js +1 -0
  30. package/dist/entrypoints/identity-providers/apple.js.map +1 -1
  31. package/dist/entrypoints/identity-providers/generic-oauth.d.ts +2 -0
  32. package/dist/entrypoints/identity-providers/generic-oauth.d.ts.map +1 -1
  33. package/dist/entrypoints/identity-providers/generic-oauth.js +2 -0
  34. package/dist/entrypoints/identity-providers/generic-oauth.js.map +1 -1
  35. package/dist/entrypoints/scheduler/cron.d.ts +3 -0
  36. package/dist/entrypoints/scheduler/cron.d.ts.map +1 -0
  37. package/dist/entrypoints/scheduler/cron.js +34 -0
  38. package/dist/entrypoints/scheduler/cron.js.map +1 -0
  39. package/dist/entrypoints/scheduler/croner.d.ts +1 -1
  40. package/dist/entrypoints/scheduler/croner.d.ts.map +1 -1
  41. package/dist/entrypoints/scheduler/croner.js +27 -7
  42. package/dist/entrypoints/scheduler/croner.js.map +1 -1
  43. package/dist/entrypoints/scheduler/database.d.ts +38 -0
  44. package/dist/entrypoints/scheduler/database.d.ts.map +1 -0
  45. package/dist/entrypoints/scheduler/database.js +444 -0
  46. package/dist/entrypoints/scheduler/database.js.map +1 -0
  47. package/dist/entrypoints/scheduler/distributed-runner.d.ts +134 -0
  48. package/dist/entrypoints/scheduler/distributed-runner.d.ts.map +1 -0
  49. package/dist/entrypoints/scheduler/distributed-runner.js +327 -0
  50. package/dist/entrypoints/scheduler/distributed-runner.js.map +1 -0
  51. package/dist/lib/config/identity-providers.d.ts +4 -0
  52. package/dist/lib/config/identity-providers.d.ts.map +1 -1
  53. package/dist/lib/config/identity-providers.js +40 -0
  54. package/dist/lib/config/identity-providers.js.map +1 -1
  55. package/dist/lib/config/index.d.ts +2 -2
  56. package/dist/lib/config/index.d.ts.map +1 -1
  57. package/dist/lib/config/index.js +1 -1
  58. package/dist/lib/config/index.js.map +1 -1
  59. package/dist/lib/config/resolved.d.ts +3 -1
  60. package/dist/lib/config/resolved.d.ts.map +1 -1
  61. package/dist/lib/config/resolved.js +1 -1
  62. package/dist/lib/config/resolved.js.map +1 -1
  63. package/dist/lib/config/scheduler.d.ts +41 -2
  64. package/dist/lib/config/scheduler.d.ts.map +1 -1
  65. package/dist/lib/config/scheduler.js +9 -3
  66. package/dist/lib/config/scheduler.js.map +1 -1
  67. package/dist/lib/database/entities.d.ts.map +1 -1
  68. package/dist/lib/database/entities.js +4 -0
  69. package/dist/lib/database/entities.js.map +1 -1
  70. package/dist/lib/pkce.d.ts.map +1 -1
  71. package/dist/lib/pkce.js +5 -1
  72. package/dist/lib/pkce.js.map +1 -1
  73. package/dist/middleware/session.d.ts.map +1 -1
  74. package/dist/middleware/session.js +2 -0
  75. package/dist/middleware/session.js.map +1 -1
  76. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.d.ts +5 -0
  77. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.d.ts.map +1 -0
  78. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.js +15 -0
  79. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.js.map +1 -0
  80. package/dist/migrations/postgres/index.d.ts.map +1 -1
  81. package/dist/migrations/postgres/index.js +5 -1
  82. package/dist/migrations/postgres/index.js.map +1 -1
  83. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.d.ts +5 -0
  84. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.d.ts.map +1 -0
  85. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.js +13 -0
  86. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.js.map +1 -0
  87. package/dist/migrations/sqlite/index.d.ts.map +1 -1
  88. package/dist/migrations/sqlite/index.js +5 -1
  89. package/dist/migrations/sqlite/index.js.map +1 -1
  90. package/dist/repositories/background-job.repository.d.ts +5 -0
  91. package/dist/repositories/background-job.repository.d.ts.map +1 -0
  92. package/dist/repositories/background-job.repository.js +4 -0
  93. package/dist/repositories/background-job.repository.js.map +1 -0
  94. package/dist/repositories/scheduler-job.repository.d.ts +5 -0
  95. package/dist/repositories/scheduler-job.repository.d.ts.map +1 -0
  96. package/dist/repositories/scheduler-job.repository.js +4 -0
  97. package/dist/repositories/scheduler-job.repository.js.map +1 -0
  98. package/dist/routes/api/auth/passkey/verify/post.d.ts.map +1 -1
  99. package/dist/routes/api/auth/passkey/verify/post.js +1 -1
  100. package/dist/routes/api/auth/passkey/verify/post.js.map +1 -1
  101. package/dist/routes/api/index.d.ts +38 -0
  102. package/dist/routes/api/index.d.ts.map +1 -1
  103. package/dist/routes/api/oauth/_provider/callback/get.d.ts +19 -0
  104. package/dist/routes/api/oauth/_provider/callback/get.d.ts.map +1 -1
  105. package/dist/routes/api/oauth/_provider/callback/get.js +19 -10
  106. package/dist/routes/api/oauth/_provider/callback/get.js.map +1 -1
  107. package/dist/routes/api/oauth/_provider/callback/post.d.ts +19 -0
  108. package/dist/routes/api/oauth/_provider/callback/post.d.ts.map +1 -1
  109. package/dist/routes/api/oauth/_provider/callback/post.js +19 -10
  110. package/dist/routes/api/oauth/_provider/callback/post.js.map +1 -1
  111. package/dist/routes/api/oauth/index.d.ts +38 -0
  112. package/dist/routes/api/oauth/index.d.ts.map +1 -1
  113. package/dist/routes/index.d.ts +39 -1
  114. package/dist/routes/index.d.ts.map +1 -1
  115. package/dist/routes/oauth/client-auth.d.ts +10 -0
  116. package/dist/routes/oauth/client-auth.d.ts.map +1 -0
  117. package/dist/routes/oauth/client-auth.js +57 -0
  118. package/dist/routes/oauth/client-auth.js.map +1 -0
  119. package/dist/routes/oauth/index.d.ts +1 -1
  120. package/dist/routes/oauth/introspect/post.d.ts.map +1 -1
  121. package/dist/routes/oauth/introspect/post.js +36 -12
  122. package/dist/routes/oauth/introspect/post.js.map +1 -1
  123. package/dist/routes/oauth/revoke/post.d.ts.map +1 -1
  124. package/dist/routes/oauth/revoke/post.js +30 -12
  125. package/dist/routes/oauth/revoke/post.js.map +1 -1
  126. package/dist/routes/oauth/token/post.d.ts +1 -1
  127. package/dist/routes/oauth/token/post.d.ts.map +1 -1
  128. package/dist/routes/oauth/token/post.js +31 -9
  129. package/dist/routes/oauth/token/post.js.map +1 -1
  130. package/dist/schemas/field.d.ts.map +1 -1
  131. package/dist/schemas/field.js +4 -0
  132. package/dist/schemas/field.js.map +1 -1
  133. package/dist/services/container.d.ts +4 -2
  134. package/dist/services/container.d.ts.map +1 -1
  135. package/dist/services/container.js +7 -1
  136. package/dist/services/container.js.map +1 -1
  137. package/dist/services/jwt.service.d.ts +1 -0
  138. package/dist/services/jwt.service.d.ts.map +1 -1
  139. package/dist/services/jwt.service.js +29 -18
  140. package/dist/services/jwt.service.js.map +1 -1
  141. package/dist/services/mikro.service.d.ts +4 -0
  142. package/dist/services/mikro.service.d.ts.map +1 -1
  143. package/dist/services/mikro.service.js +6 -0
  144. package/dist/services/mikro.service.js.map +1 -1
  145. package/dist/services/oauth-authorize.service.d.ts +1 -0
  146. package/dist/services/oauth-authorize.service.d.ts.map +1 -1
  147. package/dist/services/oauth-authorize.service.js +10 -1
  148. package/dist/services/oauth-authorize.service.js.map +1 -1
  149. package/dist/services/oauth-client.service.d.ts +2 -0
  150. package/dist/services/oauth-client.service.d.ts.map +1 -1
  151. package/dist/services/oauth-client.service.js +26 -0
  152. package/dist/services/oauth-client.service.js.map +1 -1
  153. package/dist/services/oauth-connect.service.d.ts +5 -8
  154. package/dist/services/oauth-connect.service.d.ts.map +1 -1
  155. package/dist/services/oauth-connect.service.js +99 -15
  156. package/dist/services/oauth-connect.service.js.map +1 -1
  157. package/dist/services/oauth-token.service.d.ts +3 -2
  158. package/dist/services/oauth-token.service.d.ts.map +1 -1
  159. package/dist/services/oauth-token.service.js +44 -22
  160. package/dist/services/oauth-token.service.js.map +1 -1
  161. package/dist/services/passkey.service.d.ts +1 -1
  162. package/dist/services/passkey.service.d.ts.map +1 -1
  163. package/dist/services/passkey.service.js +11 -3
  164. package/dist/services/passkey.service.js.map +1 -1
  165. package/dist/services/scheduler.service.d.ts +6 -1
  166. package/dist/services/scheduler.service.d.ts.map +1 -1
  167. package/dist/services/scheduler.service.js +44 -11
  168. package/dist/services/scheduler.service.js.map +1 -1
  169. package/package.json +5 -1
  170. package/public/assets/{index-KMvNrUPy.js → index-CLq6d6iO.js} +22 -22
  171. package/public/assets/{index-KMvNrUPy.js.map → index-CLq6d6iO.js.map} +1 -1
  172. package/public/index.html +1 -1
@@ -1,6 +1,10 @@
1
+ import { type Options } from '@mikro-orm/core';
1
2
  import type { DatabaseConfig } from '../../../lib/config/index.ts';
2
- export declare function sqlite(database: {
3
+ type SqliteDatabaseConfig = {
3
4
  path: string;
4
5
  test: boolean;
5
- }): DatabaseConfig;
6
+ debug?: Options['debug'];
7
+ };
8
+ export declare function sqlite(database: SqliteDatabaseConfig): DatabaseConfig;
9
+ export {};
6
10
  //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/database/sqlite/sqlite.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKnE,wBAAgB,MAAM,CAAC,QAAQ,EAAE;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,cAAc,CA0BjB"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/database/sqlite/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKnE,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1B,CAAC;AAEF,wBAAgB,MAAM,CAAC,QAAQ,EAAE,oBAAoB,GAAG,cAAc,CA2BrE"}
@@ -18,8 +18,9 @@ export function sqlite(database) {
18
18
  extensions: [SeedManager, Migrator],
19
19
  migrations: {
20
20
  migrationsList: SQLITE_MIGRATIONS,
21
+ snapshot: false,
21
22
  },
22
- debug: false,
23
+ debug: database.debug ?? false,
23
24
  });
24
25
  },
25
26
  initialize: async (orm) => {
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../../src/entrypoints/database/sqlite/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAExD,MAAM,UAAU,MAAM,CAAC,QAGtB;IACC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAE1D,OAAO;QACL,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAC7B,OAAO,YAAY,CAAC;gBAClB,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,IAAI,iBAAiB,CAAC,MAAM,CAAC;gBAC5C,iBAAiB,EAAE,iBAAiB;gBACpC,QAAQ,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC;gBACpC,UAAU,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;gBACnC,UAAU,EAAE;oBACV,cAAc,EAAE,iBAAiB;iBAClC;gBACD,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,GAAa,EAAE,EAAE;YAClC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../../src/entrypoints/database/sqlite/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA+B,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAQxD,MAAM,UAAU,MAAM,CAAC,QAA8B;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAE1D,OAAO;QACL,kBAAkB,EAAE,KAAK,IAAI,EAAE;YAC7B,OAAO,YAAY,CAAC;gBAClB,MAAM,EAAE,YAAY;gBACpB,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,IAAI,iBAAiB,CAAC,MAAM,CAAC;gBAC5C,iBAAiB,EAAE,iBAAiB;gBACpC,QAAQ,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC;gBACpC,UAAU,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;gBACnC,UAAU,EAAE;oBACV,cAAc,EAAE,iBAAiB;oBACjC,QAAQ,EAAE,KAAK;iBAChB;gBACD,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,KAAK;aAC/B,CAAC,CAAC;QACL,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,GAAa,EAAE,EAAE;YAClC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -6,6 +6,7 @@ export interface AppleOAuthConfig {
6
6
  icon_url?: string | undefined;
7
7
  client_id: string;
8
8
  client_secret: string;
9
+ unsafe_jwks_url_for_tests?: string | undefined;
9
10
  scopes?: string[] | undefined;
10
11
  response_mode?: 'query' | 'fragment' | 'form_post' | undefined;
11
12
  email_conflict_strategy: 'auto_link' | 'require_link';
@@ -1 +1 @@
1
- {"version":3,"file":"apple.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/identity-providers/apple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC/D,uBAAuB,EAAE,WAAW,GAAG,cAAc,CAAC;CACvD;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,sBAAsB,CAqBtE"}
1
+ {"version":3,"file":"apple.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/identity-providers/apple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC/D,uBAAuB,EAAE,WAAW,GAAG,cAAc,CAAC;CACvD;AAED,wBAAgB,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,sBAAsB,CAsBtE"}
@@ -10,6 +10,7 @@ export function apple(config) {
10
10
  authorization_url: 'https://appleid.apple.com/auth/authorize',
11
11
  token_url: 'https://appleid.apple.com/auth/token',
12
12
  userinfo_url: null,
13
+ jwks_url: config.unsafe_jwks_url_for_tests,
13
14
  scopes: config.scopes || ['openid', 'email', 'name'],
14
15
  response_mode: config.response_mode || 'form_post',
15
16
  email_conflict_strategy: config.email_conflict_strategy,
@@ -1 +1 @@
1
- {"version":3,"file":"apple.js","sourceRoot":"","sources":["../../../src/entrypoints/identity-providers/apple.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,KAAK,CAAC,MAAwB;IAC5C,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,EAAE;QAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,iBAAiB,EAAE,0CAA0C;QAC7D,SAAS,EAAE,sCAAsC;QACjD,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;QACpD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,WAAW;QAClD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,gBAAgB,EAAE;YAChB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,OAAO;YACd,cAAc,EAAE,gBAAgB;SACjC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"apple.js","sourceRoot":"","sources":["../../../src/entrypoints/identity-providers/apple.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,KAAK,CAAC,MAAwB;IAC5C,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,EAAE;QAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,iBAAiB,EAAE,0CAA0C;QAC7D,SAAS,EAAE,sCAAsC;QACjD,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,MAAM,CAAC,yBAAyB;QAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;QACpD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,WAAW;QAClD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,gBAAgB,EAAE;YAChB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,OAAO;YACd,cAAc,EAAE,gBAAgB;SACjC;KACF,CAAC;AACJ,CAAC"}
@@ -9,6 +9,8 @@ export interface GenericOAuthConfig {
9
9
  authorization_url: string;
10
10
  token_url: string;
11
11
  userinfo_url?: string | null | undefined;
12
+ jwks_url?: string | undefined;
13
+ issuer?: string | undefined;
12
14
  email_url?: string | undefined;
13
15
  scopes: string[];
14
16
  response_mode?: 'query' | 'fragment' | 'form_post' | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"generic-oauth.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/identity-providers/generic-oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC/D,uBAAuB,EAAE,WAAW,GAAG,cAAc,CAAC;IACtD,gBAAgB,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;CACH;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,GACzB,sBAAsB,CAkBxB"}
1
+ {"version":3,"file":"generic-oauth.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/identity-providers/generic-oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC/D,uBAAuB,EAAE,WAAW,GAAG,cAAc,CAAC;IACtD,gBAAgB,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;CACH;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,GACzB,sBAAsB,CAoBxB"}
@@ -10,6 +10,8 @@ export function genericOAuth(config) {
10
10
  authorization_url: config.authorization_url,
11
11
  token_url: config.token_url,
12
12
  userinfo_url: config.userinfo_url ?? null,
13
+ jwks_url: config.jwks_url,
14
+ issuer: config.issuer,
13
15
  email_url: config.email_url,
14
16
  scopes: config.scopes,
15
17
  response_mode: config.response_mode,
@@ -1 +1 @@
1
- {"version":3,"file":"generic-oauth.js","sourceRoot":"","sources":["../../../src/entrypoints/identity-providers/generic-oauth.ts"],"names":[],"mappings":"AAyBA,MAAM,UAAU,YAAY,CAC1B,MAA0B;IAE1B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;QACzC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC1C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"generic-oauth.js","sourceRoot":"","sources":["../../../src/entrypoints/identity-providers/generic-oauth.ts"],"names":[],"mappings":"AA2BA,MAAM,UAAU,YAAY,CAC1B,MAA0B;IAE1B,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;QACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function validateCronExpression(expression: string): string;
2
+ export declare function getNextCronRunAt(expression: string, from: Date): Date;
3
+ //# sourceMappingURL=cron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/scheduler/cron.ts"],"names":[],"mappings":"AAEA,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAgBjE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAcrE"}
@@ -0,0 +1,34 @@
1
+ import { Cron } from 'croner';
2
+ export function validateCronExpression(expression) {
3
+ let job;
4
+ try {
5
+ job = new Cron(expression, { paused: true });
6
+ const nextRunAt = job.nextRun(new Date()) ?? null;
7
+ if (!nextRunAt) {
8
+ throw new Error('Cron expression has no future run');
9
+ }
10
+ }
11
+ catch (err) {
12
+ const message = err instanceof Error ? err.message : String(err);
13
+ throw new Error(`Invalid cron expression "${expression}": ${message}`);
14
+ }
15
+ finally {
16
+ job?.stop();
17
+ }
18
+ return expression;
19
+ }
20
+ export function getNextCronRunAt(expression, from) {
21
+ let job;
22
+ try {
23
+ job = new Cron(expression, { paused: true });
24
+ const nextRunAt = job.nextRun(from) ?? null;
25
+ if (!nextRunAt) {
26
+ throw new Error(`Cron expression has no future run: ${expression}`);
27
+ }
28
+ return nextRunAt;
29
+ }
30
+ finally {
31
+ job?.stop();
32
+ }
33
+ }
34
+ //# sourceMappingURL=cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../../src/entrypoints/scheduler/cron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,IAAI,GAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,MAAM,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;YAAS,CAAC;QACT,GAAG,EAAE,IAAI,EAAE,CAAC;IACd,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,IAAU;IAC7D,IAAI,GAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,GAAG,EAAE,IAAI,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { SchedulerConfig } from '../../lib/config/index.ts';
2
2
  export interface CronerSchedulerOptions {
3
- cron?: string | undefined;
3
+ cleanupCron?: string | undefined;
4
4
  }
5
5
  export declare function croner(options?: CronerSchedulerOptions): SchedulerConfig;
6
6
  //# sourceMappingURL=croner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"croner.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/scheduler/croner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,2BAA2B,CAAC;AAInC,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,wBAAgB,MAAM,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CAqB5E"}
1
+ {"version":3,"file":"croner.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/scheduler/croner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,2BAA2B,CAAC;AAKnC,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,wBAAgB,MAAM,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CAgD5E"}
@@ -1,18 +1,38 @@
1
1
  import { Cron } from 'croner';
2
+ import { validateCronExpression } from "./cron.js";
2
3
  const DEFAULT_CRON = '0 2 * * *';
3
4
  export function croner(options = {}) {
4
- const cron = options.cron ?? DEFAULT_CRON;
5
+ const cleanupCron = validateCronExpression(options.cleanupCron ?? DEFAULT_CRON);
5
6
  return {
6
- start({ runCleanup }) {
7
- const job = new Cron(cron, async () => {
8
- await runCleanup();
9
- });
7
+ cleanupCron,
8
+ start({ scheduledJobs, logger }) {
9
+ const cronJobs = scheduledJobs.map((job) => new Cron(job.schedule.expression, async () => {
10
+ try {
11
+ await job.handler({ logger });
12
+ }
13
+ catch (err) {
14
+ logger?.error({ err, jobId: job.id }, 'Scheduled job failed');
15
+ }
16
+ }));
10
17
  const handle = {
11
18
  stop() {
12
- job.stop();
19
+ for (const cronJob of cronJobs) {
20
+ cronJob.stop();
21
+ }
13
22
  },
14
23
  getNextRunAt() {
15
- return job.nextRun() ?? null;
24
+ const nextRuns = cronJobs
25
+ .map((cronJob) => cronJob.nextRun() ?? null)
26
+ .filter((nextRun) => nextRun !== null);
27
+ return nextRuns.reduce((earliest, nextRun) => {
28
+ if (!earliest || nextRun.getTime() < earliest.getTime()) {
29
+ return nextRun;
30
+ }
31
+ return earliest;
32
+ }, null);
33
+ },
34
+ async enqueue() {
35
+ throw new Error('Background jobs require a durable scheduler backend');
16
36
  },
17
37
  };
18
38
  return handle;
@@ -1 +1 @@
1
- {"version":3,"file":"croner.js","sourceRoot":"","sources":["../../../src/entrypoints/scheduler/croner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAM9B,MAAM,YAAY,GAAG,WAAW,CAAC;AAMjC,MAAM,UAAU,MAAM,CAAC,UAAkC,EAAE;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IAE1C,OAAO;QACL,KAAK,CAAC,EAAE,UAAU,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;gBACpC,MAAM,UAAU,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,GAAoB;gBAC9B,IAAI;oBACF,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,CAAC;gBACD,YAAY;oBACV,OAAO,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC;gBAC/B,CAAC;aACF,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"croner.js","sourceRoot":"","sources":["../../../src/entrypoints/scheduler/croner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAK9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,YAAY,GAAG,WAAW,CAAC;AAMjC,MAAM,UAAU,MAAM,CAAC,UAAkC,EAAE;IACzD,MAAM,WAAW,GAAG,sBAAsB,CACxC,OAAO,CAAC,WAAW,IAAI,YAAY,CACpC,CAAC;IAEF,OAAO;QACL,WAAW;QACX,KAAK,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;YAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAChC,CAAC,GAAG,EAAE,EAAE,CACN,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;gBAC3C,IAAI,CAAC;oBACH,MAAM,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAChC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,sBAAsB,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC,CAAC,CACL,CAAC;YAEF,MAAM,MAAM,GAAoB;gBAC9B,IAAI;oBACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;wBAC/B,OAAO,CAAC,IAAI,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC;gBACD,YAAY;oBACV,MAAM,QAAQ,GAAG,QAAQ;yBACtB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC;yBAC3C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;oBAEzC,OAAO,QAAQ,CAAC,MAAM,CAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;wBACxD,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;4BACxD,OAAO,OAAO,CAAC;wBACjB,CAAC;wBAED,OAAO,QAAQ,CAAC;oBAClB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC;gBACD,KAAK,CAAC,OAAO;oBACX,MAAM,IAAI,KAAK,CACb,qDAAqD,CACtD,CAAC;gBACJ,CAAC;aACF,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { SchedulerConfig, SchedulerConfigResolver } from '../../lib/config/index.ts';
2
+ import type { MikroService } from '../../services/mikro.service.ts';
3
+ import { type AcquiredBackgroundJob, type AcquiredSchedulerJob, type BackgroundJobCompletionInput, type BackgroundJobEnqueueInput, type BackgroundJobFailureCompletionInput, type DistributedBackgroundJobStore, type DistributedSchedulerStore, type PersistedSchedulerJobDefinition, type SchedulerCompletionInput, type SchedulerFailureCompletionInput } from './distributed-runner.ts';
4
+ export interface DatabaseSchedulerOptions {
5
+ cleanupCron?: string | undefined;
6
+ pollIntervalMs?: number | undefined;
7
+ lockTtlMs?: number | undefined;
8
+ backgroundRetryDelayMs?: number | undefined;
9
+ backgroundMaxAttempts?: number | undefined;
10
+ backgroundRetentionMs?: number | undefined;
11
+ instanceId?: string | undefined;
12
+ }
13
+ export interface BoundDatabaseSchedulerOptions extends DatabaseSchedulerOptions {
14
+ mikro: MikroService;
15
+ }
16
+ export declare class DatabaseSchedulerStore implements DistributedSchedulerStore {
17
+ private readonly mikro;
18
+ constructor(mikro: MikroService);
19
+ reconcileJobs(jobs: readonly PersistedSchedulerJobDefinition[], now: Date): Promise<void>;
20
+ acquireDueJob(now: Date, lockedUntil: Date, instanceId: string): Promise<AcquiredSchedulerJob | null>;
21
+ renewLease(jobId: string, instanceId: string, lockedUntil: Date, now: Date): Promise<boolean>;
22
+ completeJobSuccess(input: SchedulerCompletionInput): Promise<boolean>;
23
+ completeJobFailure(input: SchedulerFailureCompletionInput): Promise<boolean>;
24
+ findNextRunAt(): Promise<Date | null>;
25
+ }
26
+ export declare class DatabaseBackgroundJobStore implements DistributedBackgroundJobStore {
27
+ private readonly mikro;
28
+ constructor(mikro: MikroService);
29
+ enqueue(input: BackgroundJobEnqueueInput): Promise<string>;
30
+ acquireDueJob(now: Date, lockedUntil: Date, instanceId: string): Promise<AcquiredBackgroundJob | null>;
31
+ renewLease(id: string, instanceId: string, lockedUntil: Date, now: Date): Promise<boolean>;
32
+ completeJobSuccess(input: BackgroundJobCompletionInput): Promise<boolean>;
33
+ completeJobFailure(input: BackgroundJobFailureCompletionInput): Promise<boolean>;
34
+ cleanupCompletedJobs(before: Date): Promise<number>;
35
+ }
36
+ export declare function database(options: BoundDatabaseSchedulerOptions): SchedulerConfig;
37
+ export declare function database(options?: DatabaseSchedulerOptions): SchedulerConfigResolver;
38
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/scheduler/database.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,eAAe,EACf,uBAAuB,EAExB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,mCAAmC,EAExC,KAAK,6BAA6B,EAElC,KAAK,yBAAyB,EAE9B,KAAK,+BAA+B,EACpC,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACrC,MAAM,yBAAyB,CAAC;AAWjC,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,6BACf,SAAQ,wBAAwB;IAChC,KAAK,EAAE,YAAY,CAAC;CACrB;AAkKD,qBAAa,sBAAuB,YAAW,yBAAyB;IACtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,KAAK,EAAE,YAAY;IAIzB,aAAa,CACjB,IAAI,EAAE,SAAS,+BAA+B,EAAE,EAChD,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,IAAI,CAAC;IAkCV,aAAa,CACjB,GAAG,EAAE,IAAI,EACT,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAmDjC,UAAU,CACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,IAAI,EACjB,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,OAAO,CAAC;IAeb,kBAAkB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBrE,kBAAkB,CACtB,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,OAAO,CAAC;IAwBb,aAAa,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CAU5C;AAED,qBAAa,0BACX,YAAW,6BAA6B;IAExC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;gBAEzB,KAAK,EAAE,YAAY;IAIzB,OAAO,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyB1D,aAAa,CACjB,GAAG,EAAE,IAAI,EACT,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IAqGlC,UAAU,CACd,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,IAAI,EACjB,GAAG,EAAE,IAAI,GACR,OAAO,CAAC,OAAO,CAAC;IAgBb,kBAAkB,CACtB,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,OAAO,CAAC;IAqBb,kBAAkB,CACtB,KAAK,EAAE,mCAAmC,GACzC,OAAO,CAAC,OAAO,CAAC;IAwBb,oBAAoB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CAS1D;AA2DD,wBAAgB,QAAQ,CACtB,OAAO,EAAE,6BAA6B,GACrC,eAAe,CAAC;AACnB,wBAAgB,QAAQ,CACtB,OAAO,CAAC,EAAE,wBAAwB,GACjC,uBAAuB,CAAC"}