@signal24/dk-server-foundation 26.213.615

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 (666) hide show
  1. package/.gitattributes +2 -0
  2. package/.gitlab-ci.yml +49 -0
  3. package/.oxlintrc.json +40 -0
  4. package/.prettierignore +3 -0
  5. package/.prettierrc.json +15 -0
  6. package/.serena/project.yml +111 -0
  7. package/.vscode/launch.json +15 -0
  8. package/.vscode/settings.json +12 -0
  9. package/.yarnrc.yml +5 -0
  10. package/CLAUDE.md +279 -0
  11. package/LICENSE +21 -0
  12. package/README.md +439 -0
  13. package/TEST_MIGRATION_GUIDE.md +348 -0
  14. package/dist/resources/proto/generated/test/test.d.ts +224 -0
  15. package/dist/resources/proto/generated/test/test.d.ts.map +1 -0
  16. package/dist/resources/proto/generated/test/test.js +2376 -0
  17. package/dist/resources/proto/generated/test/test.js.map +1 -0
  18. package/dist/src/app/base.d.ts +37 -0
  19. package/dist/src/app/base.d.ts.map +1 -0
  20. package/dist/src/app/base.js +244 -0
  21. package/dist/src/app/base.js.map +1 -0
  22. package/dist/src/app/config.d.ts +91 -0
  23. package/dist/src/app/config.d.ts.map +1 -0
  24. package/dist/src/app/config.js +33 -0
  25. package/dist/src/app/config.js.map +1 -0
  26. package/dist/src/app/config.loader.d.ts +14 -0
  27. package/dist/src/app/config.loader.d.ts.map +1 -0
  28. package/dist/src/app/config.loader.js +67 -0
  29. package/dist/src/app/config.loader.js.map +1 -0
  30. package/dist/src/app/const.d.ts +3 -0
  31. package/dist/src/app/const.d.ts.map +1 -0
  32. package/dist/src/app/const.js +6 -0
  33. package/dist/src/app/const.js.map +1 -0
  34. package/dist/src/app/dev.d.ts +6 -0
  35. package/dist/src/app/dev.d.ts.map +1 -0
  36. package/dist/src/app/dev.js +78 -0
  37. package/dist/src/app/dev.js.map +1 -0
  38. package/dist/src/app/index.d.ts +7 -0
  39. package/dist/src/app/index.d.ts.map +1 -0
  40. package/dist/src/app/index.js +12 -0
  41. package/dist/src/app/index.js.map +1 -0
  42. package/dist/src/app/openapi.d.ts +4 -0
  43. package/dist/src/app/openapi.d.ts.map +1 -0
  44. package/dist/src/app/openapi.js +6 -0
  45. package/dist/src/app/openapi.js.map +1 -0
  46. package/dist/src/app/resolver.d.ts +11 -0
  47. package/dist/src/app/resolver.d.ts.map +1 -0
  48. package/dist/src/app/resolver.js +60 -0
  49. package/dist/src/app/resolver.js.map +1 -0
  50. package/dist/src/app/shutdown.d.ts +12 -0
  51. package/dist/src/app/shutdown.d.ts.map +1 -0
  52. package/dist/src/app/shutdown.js +63 -0
  53. package/dist/src/app/shutdown.js.map +1 -0
  54. package/dist/src/app/state.d.ts +16 -0
  55. package/dist/src/app/state.d.ts.map +1 -0
  56. package/dist/src/app/state.js +12 -0
  57. package/dist/src/app/state.js.map +1 -0
  58. package/dist/src/auth/index.d.ts +3 -0
  59. package/dist/src/auth/index.d.ts.map +1 -0
  60. package/dist/src/auth/index.js +6 -0
  61. package/dist/src/auth/index.js.map +1 -0
  62. package/dist/src/auth/jwt.d.ts +76 -0
  63. package/dist/src/auth/jwt.d.ts.map +1 -0
  64. package/dist/src/auth/jwt.js +218 -0
  65. package/dist/src/auth/jwt.js.map +1 -0
  66. package/dist/src/auth/provider.d.ts +15 -0
  67. package/dist/src/auth/provider.d.ts.map +1 -0
  68. package/dist/src/auth/provider.js +50 -0
  69. package/dist/src/auth/provider.js.map +1 -0
  70. package/dist/src/cli/dksf-dev.d.ts +3 -0
  71. package/dist/src/cli/dksf-dev.d.ts.map +1 -0
  72. package/dist/src/cli/dksf-dev.js +359 -0
  73. package/dist/src/cli/dksf-dev.js.map +1 -0
  74. package/dist/src/cli/dksf-gen-proto.d.ts +3 -0
  75. package/dist/src/cli/dksf-gen-proto.d.ts.map +1 -0
  76. package/dist/src/cli/dksf-gen-proto.js +164 -0
  77. package/dist/src/cli/dksf-gen-proto.js.map +1 -0
  78. package/dist/src/cli/dksf-install.d.ts +3 -0
  79. package/dist/src/cli/dksf-install.d.ts.map +1 -0
  80. package/dist/src/cli/dksf-install.js +10 -0
  81. package/dist/src/cli/dksf-install.js.map +1 -0
  82. package/dist/src/cli/dksf-test.d.ts +3 -0
  83. package/dist/src/cli/dksf-test.d.ts.map +1 -0
  84. package/dist/src/cli/dksf-test.js +91 -0
  85. package/dist/src/cli/dksf-test.js.map +1 -0
  86. package/dist/src/cli/dksf-update.d.ts +3 -0
  87. package/dist/src/cli/dksf-update.d.ts.map +1 -0
  88. package/dist/src/cli/dksf-update.js +86 -0
  89. package/dist/src/cli/dksf-update.js.map +1 -0
  90. package/dist/src/database/common.d.ts +84 -0
  91. package/dist/src/database/common.d.ts.map +1 -0
  92. package/dist/src/database/common.js +380 -0
  93. package/dist/src/database/common.js.map +1 -0
  94. package/dist/src/database/dialect.d.ts +10 -0
  95. package/dist/src/database/dialect.d.ts.map +1 -0
  96. package/dist/src/database/dialect.js +56 -0
  97. package/dist/src/database/dialect.js.map +1 -0
  98. package/dist/src/database/entity.d.ts +62 -0
  99. package/dist/src/database/entity.d.ts.map +1 -0
  100. package/dist/src/database/entity.js +198 -0
  101. package/dist/src/database/entity.js.map +1 -0
  102. package/dist/src/database/index.d.ts +8 -0
  103. package/dist/src/database/index.d.ts.map +1 -0
  104. package/dist/src/database/index.js +15 -0
  105. package/dist/src/database/index.js.map +1 -0
  106. package/dist/src/database/migration/MigrationResetCommand.d.ts +11 -0
  107. package/dist/src/database/migration/MigrationResetCommand.d.ts.map +1 -0
  108. package/dist/src/database/migration/MigrationResetCommand.js +149 -0
  109. package/dist/src/database/migration/MigrationResetCommand.js.map +1 -0
  110. package/dist/src/database/migration/MigrationRunCommand.d.ts +11 -0
  111. package/dist/src/database/migration/MigrationRunCommand.d.ts.map +1 -0
  112. package/dist/src/database/migration/MigrationRunCommand.js +118 -0
  113. package/dist/src/database/migration/MigrationRunCommand.js.map +1 -0
  114. package/dist/src/database/migration/characters.d.ts +14 -0
  115. package/dist/src/database/migration/characters.d.ts.map +1 -0
  116. package/dist/src/database/migration/characters.js +56 -0
  117. package/dist/src/database/migration/characters.js.map +1 -0
  118. package/dist/src/database/migration/create/MigrationCreateCommand.d.ts +11 -0
  119. package/dist/src/database/migration/create/MigrationCreateCommand.d.ts.map +1 -0
  120. package/dist/src/database/migration/create/MigrationCreateCommand.js +104 -0
  121. package/dist/src/database/migration/create/MigrationCreateCommand.js.map +1 -0
  122. package/dist/src/database/migration/create/comparator.d.ts +3 -0
  123. package/dist/src/database/migration/create/comparator.d.ts.map +1 -0
  124. package/dist/src/database/migration/create/comparator.js +408 -0
  125. package/dist/src/database/migration/create/comparator.js.map +1 -0
  126. package/dist/src/database/migration/create/db-reader.d.ts +5 -0
  127. package/dist/src/database/migration/create/db-reader.d.ts.map +1 -0
  128. package/dist/src/database/migration/create/db-reader.js +473 -0
  129. package/dist/src/database/migration/create/db-reader.js.map +1 -0
  130. package/dist/src/database/migration/create/ddl-generator.d.ts +3 -0
  131. package/dist/src/database/migration/create/ddl-generator.d.ts.map +1 -0
  132. package/dist/src/database/migration/create/ddl-generator.js +725 -0
  133. package/dist/src/database/migration/create/ddl-generator.js.map +1 -0
  134. package/dist/src/database/migration/create/entity-reader.d.ts +4 -0
  135. package/dist/src/database/migration/create/entity-reader.d.ts.map +1 -0
  136. package/dist/src/database/migration/create/entity-reader.js +408 -0
  137. package/dist/src/database/migration/create/entity-reader.js.map +1 -0
  138. package/dist/src/database/migration/create/file-generator.d.ts +2 -0
  139. package/dist/src/database/migration/create/file-generator.d.ts.map +1 -0
  140. package/dist/src/database/migration/create/file-generator.js +55 -0
  141. package/dist/src/database/migration/create/file-generator.js.map +1 -0
  142. package/dist/src/database/migration/create/prompt.d.ts +4 -0
  143. package/dist/src/database/migration/create/prompt.d.ts.map +1 -0
  144. package/dist/src/database/migration/create/prompt.js +55 -0
  145. package/dist/src/database/migration/create/prompt.js.map +1 -0
  146. package/dist/src/database/migration/create/schema-model.d.ts +109 -0
  147. package/dist/src/database/migration/create/schema-model.d.ts.map +1 -0
  148. package/dist/src/database/migration/create/schema-model.js +24 -0
  149. package/dist/src/database/migration/create/schema-model.js.map +1 -0
  150. package/dist/src/database/migration/helpers.d.ts +2 -0
  151. package/dist/src/database/migration/helpers.d.ts.map +1 -0
  152. package/dist/src/database/migration/helpers.js +8 -0
  153. package/dist/src/database/migration/helpers.js.map +1 -0
  154. package/dist/src/database/migration/index.d.ts +9 -0
  155. package/dist/src/database/migration/index.d.ts.map +1 -0
  156. package/dist/src/database/migration/index.js +43 -0
  157. package/dist/src/database/migration/index.js.map +1 -0
  158. package/dist/src/database/migration/migration.entity.d.ts +8 -0
  159. package/dist/src/database/migration/migration.entity.d.ts.map +1 -0
  160. package/dist/src/database/migration/migration.entity.js +16 -0
  161. package/dist/src/database/migration/migration.entity.js.map +1 -0
  162. package/dist/src/database/mysql.d.ts +16 -0
  163. package/dist/src/database/mysql.d.ts.map +1 -0
  164. package/dist/src/database/mysql.js +140 -0
  165. package/dist/src/database/mysql.js.map +1 -0
  166. package/dist/src/database/postgres.d.ts +16 -0
  167. package/dist/src/database/postgres.d.ts.map +1 -0
  168. package/dist/src/database/postgres.js +91 -0
  169. package/dist/src/database/postgres.js.map +1 -0
  170. package/dist/src/database/types.d.ts +21 -0
  171. package/dist/src/database/types.d.ts.map +1 -0
  172. package/dist/src/database/types.js +27 -0
  173. package/dist/src/database/types.js.map +1 -0
  174. package/dist/src/health/health.module.d.ts +6 -0
  175. package/dist/src/health/health.module.d.ts.map +1 -0
  176. package/dist/src/health/health.module.js +32 -0
  177. package/dist/src/health/health.module.js.map +1 -0
  178. package/dist/src/health/healthcheck.controller.d.ts +10 -0
  179. package/dist/src/health/healthcheck.controller.d.ts.map +1 -0
  180. package/dist/src/health/healthcheck.controller.js +30 -0
  181. package/dist/src/health/healthcheck.controller.js.map +1 -0
  182. package/dist/src/health/healthcheck.service.d.ts +8 -0
  183. package/dist/src/health/healthcheck.service.d.ts.map +1 -0
  184. package/dist/src/health/healthcheck.service.js +20 -0
  185. package/dist/src/health/healthcheck.service.js.map +1 -0
  186. package/dist/src/health/index.d.ts +3 -0
  187. package/dist/src/health/index.d.ts.map +1 -0
  188. package/dist/src/health/index.js +6 -0
  189. package/dist/src/health/index.js.map +1 -0
  190. package/dist/src/helpers/async/context.d.ts +11 -0
  191. package/dist/src/helpers/async/context.d.ts.map +1 -0
  192. package/dist/src/helpers/async/context.js +75 -0
  193. package/dist/src/helpers/async/context.js.map +1 -0
  194. package/dist/src/helpers/async/process.d.ts +16 -0
  195. package/dist/src/helpers/async/process.d.ts.map +1 -0
  196. package/dist/src/helpers/async/process.js +44 -0
  197. package/dist/src/helpers/async/process.js.map +1 -0
  198. package/dist/src/helpers/async/promise.d.ts +5 -0
  199. package/dist/src/helpers/async/promise.d.ts.map +1 -0
  200. package/dist/src/helpers/async/promise.js +27 -0
  201. package/dist/src/helpers/async/promise.js.map +1 -0
  202. package/dist/src/helpers/data/array.d.ts +3 -0
  203. package/dist/src/helpers/data/array.d.ts.map +1 -0
  204. package/dist/src/helpers/data/array.js +17 -0
  205. package/dist/src/helpers/data/array.js.map +1 -0
  206. package/dist/src/helpers/data/objects.d.ts +12 -0
  207. package/dist/src/helpers/data/objects.d.ts.map +1 -0
  208. package/dist/src/helpers/data/objects.js +75 -0
  209. package/dist/src/helpers/data/objects.js.map +1 -0
  210. package/dist/src/helpers/data/serialization.d.ts +4 -0
  211. package/dist/src/helpers/data/serialization.d.ts.map +1 -0
  212. package/dist/src/helpers/data/serialization.js +15 -0
  213. package/dist/src/helpers/data/serialization.js.map +1 -0
  214. package/dist/src/helpers/data/transformer.d.ts +13 -0
  215. package/dist/src/helpers/data/transformer.d.ts.map +1 -0
  216. package/dist/src/helpers/data/transformer.js +55 -0
  217. package/dist/src/helpers/data/transformer.js.map +1 -0
  218. package/dist/src/helpers/framework/decorators.d.ts +5 -0
  219. package/dist/src/helpers/framework/decorators.d.ts.map +1 -0
  220. package/dist/src/helpers/framework/decorators.js +39 -0
  221. package/dist/src/helpers/framework/decorators.js.map +1 -0
  222. package/dist/src/helpers/framework/event.d.ts +3 -0
  223. package/dist/src/helpers/framework/event.d.ts.map +1 -0
  224. package/dist/src/helpers/framework/event.js +20 -0
  225. package/dist/src/helpers/framework/event.js.map +1 -0
  226. package/dist/src/helpers/framework/injection.d.ts +7 -0
  227. package/dist/src/helpers/framework/injection.d.ts.map +1 -0
  228. package/dist/src/helpers/framework/injection.js +52 -0
  229. package/dist/src/helpers/framework/injection.js.map +1 -0
  230. package/dist/src/helpers/index.d.ts +22 -0
  231. package/dist/src/helpers/index.d.ts.map +1 -0
  232. package/dist/src/helpers/index.js +32 -0
  233. package/dist/src/helpers/index.js.map +1 -0
  234. package/dist/src/helpers/io/package.d.ts +5 -0
  235. package/dist/src/helpers/io/package.d.ts.map +1 -0
  236. package/dist/src/helpers/io/package.js +31 -0
  237. package/dist/src/helpers/io/package.js.map +1 -0
  238. package/dist/src/helpers/io/stream.d.ts +18 -0
  239. package/dist/src/helpers/io/stream.d.ts.map +1 -0
  240. package/dist/src/helpers/io/stream.js +91 -0
  241. package/dist/src/helpers/io/stream.js.map +1 -0
  242. package/dist/src/helpers/redis/broadcast.d.ts +12 -0
  243. package/dist/src/helpers/redis/broadcast.d.ts.map +1 -0
  244. package/dist/src/helpers/redis/broadcast.js +99 -0
  245. package/dist/src/helpers/redis/broadcast.js.map +1 -0
  246. package/dist/src/helpers/redis/cache.d.ts +7 -0
  247. package/dist/src/helpers/redis/cache.d.ts.map +1 -0
  248. package/dist/src/helpers/redis/cache.js +28 -0
  249. package/dist/src/helpers/redis/cache.js.map +1 -0
  250. package/dist/src/helpers/redis/mutex.d.ts +24 -0
  251. package/dist/src/helpers/redis/mutex.d.ts.map +1 -0
  252. package/dist/src/helpers/redis/mutex.js +240 -0
  253. package/dist/src/helpers/redis/mutex.js.map +1 -0
  254. package/dist/src/helpers/redis/redis.d.ts +11 -0
  255. package/dist/src/helpers/redis/redis.d.ts.map +1 -0
  256. package/dist/src/helpers/redis/redis.js +59 -0
  257. package/dist/src/helpers/redis/redis.js.map +1 -0
  258. package/dist/src/helpers/security/crypto.d.ts +26 -0
  259. package/dist/src/helpers/security/crypto.d.ts.map +1 -0
  260. package/dist/src/helpers/security/crypto.js +121 -0
  261. package/dist/src/helpers/security/crypto.js.map +1 -0
  262. package/dist/src/helpers/security/validation.d.ts +4 -0
  263. package/dist/src/helpers/security/validation.d.ts.map +1 -0
  264. package/dist/src/helpers/security/validation.js +25 -0
  265. package/dist/src/helpers/security/validation.js.map +1 -0
  266. package/dist/src/helpers/utils/date.d.ts +4 -0
  267. package/dist/src/helpers/utils/date.d.ts.map +1 -0
  268. package/dist/src/helpers/utils/date.js +23 -0
  269. package/dist/src/helpers/utils/date.js.map +1 -0
  270. package/dist/src/helpers/utils/error.d.ts +24 -0
  271. package/dist/src/helpers/utils/error.d.ts.map +1 -0
  272. package/dist/src/helpers/utils/error.js +168 -0
  273. package/dist/src/helpers/utils/error.js.map +1 -0
  274. package/dist/src/helpers/utils/jsx.d.ts +3 -0
  275. package/dist/src/helpers/utils/jsx.d.ts.map +1 -0
  276. package/dist/src/helpers/utils/jsx.js +13 -0
  277. package/dist/src/helpers/utils/jsx.js.map +1 -0
  278. package/dist/src/helpers/utils/uuid.d.ts +3 -0
  279. package/dist/src/helpers/utils/uuid.d.ts.map +1 -0
  280. package/dist/src/helpers/utils/uuid.js +14 -0
  281. package/dist/src/helpers/utils/uuid.js.map +1 -0
  282. package/dist/src/http/auth.d.ts +46 -0
  283. package/dist/src/http/auth.d.ts.map +1 -0
  284. package/dist/src/http/auth.js +162 -0
  285. package/dist/src/http/auth.js.map +1 -0
  286. package/dist/src/http/context.d.ts +5 -0
  287. package/dist/src/http/context.d.ts.map +1 -0
  288. package/dist/src/http/context.js +22 -0
  289. package/dist/src/http/context.js.map +1 -0
  290. package/dist/src/http/cors.d.ts +36 -0
  291. package/dist/src/http/cors.d.ts.map +1 -0
  292. package/dist/src/http/cors.js +171 -0
  293. package/dist/src/http/cors.js.map +1 -0
  294. package/dist/src/http/errors.d.ts +3 -0
  295. package/dist/src/http/errors.d.ts.map +1 -0
  296. package/dist/src/http/errors.js +10 -0
  297. package/dist/src/http/errors.js.map +1 -0
  298. package/dist/src/http/index.d.ts +24 -0
  299. package/dist/src/http/index.d.ts.map +1 -0
  300. package/dist/src/http/index.js +25 -0
  301. package/dist/src/http/index.js.map +1 -0
  302. package/dist/src/http/kernel.d.ts +17 -0
  303. package/dist/src/http/kernel.d.ts.map +1 -0
  304. package/dist/src/http/kernel.js +133 -0
  305. package/dist/src/http/kernel.js.map +1 -0
  306. package/dist/src/http/middleware.d.ts +12 -0
  307. package/dist/src/http/middleware.d.ts.map +1 -0
  308. package/dist/src/http/middleware.js +61 -0
  309. package/dist/src/http/middleware.js.map +1 -0
  310. package/dist/src/http/overrides.d.ts +2 -0
  311. package/dist/src/http/overrides.d.ts.map +1 -0
  312. package/dist/src/http/overrides.js +19 -0
  313. package/dist/src/http/overrides.js.map +1 -0
  314. package/dist/src/http/store.d.ts +33 -0
  315. package/dist/src/http/store.d.ts.map +1 -0
  316. package/dist/src/http/store.js +102 -0
  317. package/dist/src/http/store.js.map +1 -0
  318. package/dist/src/http/uploads.d.ts +7 -0
  319. package/dist/src/http/uploads.d.ts.map +1 -0
  320. package/dist/src/http/uploads.js +8 -0
  321. package/dist/src/http/uploads.js.map +1 -0
  322. package/dist/src/http/workflow.d.ts +18 -0
  323. package/dist/src/http/workflow.d.ts.map +1 -0
  324. package/dist/src/http/workflow.js +181 -0
  325. package/dist/src/http/workflow.js.map +1 -0
  326. package/dist/src/index.d.ts +13 -0
  327. package/dist/src/index.d.ts.map +1 -0
  328. package/dist/src/index.js +25 -0
  329. package/dist/src/index.js.map +1 -0
  330. package/dist/src/services/cli/invoke.d.ts +5 -0
  331. package/dist/src/services/cli/invoke.d.ts.map +1 -0
  332. package/dist/src/services/cli/invoke.js +45 -0
  333. package/dist/src/services/cli/invoke.js.map +1 -0
  334. package/dist/src/services/cli/repl.d.ts +5 -0
  335. package/dist/src/services/cli/repl.d.ts.map +1 -0
  336. package/dist/src/services/cli/repl.js +71 -0
  337. package/dist/src/services/cli/repl.js.map +1 -0
  338. package/dist/src/services/cli.d.ts +12 -0
  339. package/dist/src/services/cli.d.ts.map +1 -0
  340. package/dist/src/services/cli.js +76 -0
  341. package/dist/src/services/cli.js.map +1 -0
  342. package/dist/src/services/index.d.ts +7 -0
  343. package/dist/src/services/index.d.ts.map +1 -0
  344. package/dist/src/services/index.js +10 -0
  345. package/dist/src/services/index.js.map +1 -0
  346. package/dist/src/services/leader.d.ts +32 -0
  347. package/dist/src/services/leader.d.ts.map +1 -0
  348. package/dist/src/services/leader.js +174 -0
  349. package/dist/src/services/leader.js.map +1 -0
  350. package/dist/src/services/logger.d.ts +35 -0
  351. package/dist/src/services/logger.d.ts.map +1 -0
  352. package/dist/src/services/logger.js +245 -0
  353. package/dist/src/services/logger.js.map +1 -0
  354. package/dist/src/services/mail/index.d.ts +61 -0
  355. package/dist/src/services/mail/index.d.ts.map +1 -0
  356. package/dist/src/services/mail/index.js +90 -0
  357. package/dist/src/services/mail/index.js.map +1 -0
  358. package/dist/src/services/mail/postmark.d.ts +11 -0
  359. package/dist/src/services/mail/postmark.d.ts.map +1 -0
  360. package/dist/src/services/mail/postmark.js +42 -0
  361. package/dist/src/services/mail/postmark.js.map +1 -0
  362. package/dist/src/services/mail/smtp.d.ts +11 -0
  363. package/dist/src/services/mail/smtp.d.ts.map +1 -0
  364. package/dist/src/services/mail/smtp.js +61 -0
  365. package/dist/src/services/mail/smtp.js.map +1 -0
  366. package/dist/src/services/mesh.d.ts +65 -0
  367. package/dist/src/services/mesh.d.ts.map +1 -0
  368. package/dist/src/services/mesh.js +422 -0
  369. package/dist/src/services/mesh.js.map +1 -0
  370. package/dist/src/services/worker/bootstrap.d.ts +3 -0
  371. package/dist/src/services/worker/bootstrap.d.ts.map +1 -0
  372. package/dist/src/services/worker/bootstrap.js +70 -0
  373. package/dist/src/services/worker/bootstrap.js.map +1 -0
  374. package/dist/src/services/worker/cli.d.ts +23 -0
  375. package/dist/src/services/worker/cli.d.ts.map +1 -0
  376. package/dist/src/services/worker/cli.js +81 -0
  377. package/dist/src/services/worker/cli.js.map +1 -0
  378. package/dist/src/services/worker/entity.d.ts +18 -0
  379. package/dist/src/services/worker/entity.d.ts.map +1 -0
  380. package/dist/src/services/worker/entity.js +16 -0
  381. package/dist/src/services/worker/entity.js.map +1 -0
  382. package/dist/src/services/worker/index.d.ts +9 -0
  383. package/dist/src/services/worker/index.d.ts.map +1 -0
  384. package/dist/src/services/worker/index.js +40 -0
  385. package/dist/src/services/worker/index.js.map +1 -0
  386. package/dist/src/services/worker/observer.d.ts +18 -0
  387. package/dist/src/services/worker/observer.d.ts.map +1 -0
  388. package/dist/src/services/worker/observer.js +172 -0
  389. package/dist/src/services/worker/observer.js.map +1 -0
  390. package/dist/src/services/worker/queue.d.ts +8 -0
  391. package/dist/src/services/worker/queue.d.ts.map +1 -0
  392. package/dist/src/services/worker/queue.js +31 -0
  393. package/dist/src/services/worker/queue.js.map +1 -0
  394. package/dist/src/services/worker/runner.d.ts +17 -0
  395. package/dist/src/services/worker/runner.d.ts.map +1 -0
  396. package/dist/src/services/worker/runner.js +131 -0
  397. package/dist/src/services/worker/runner.js.map +1 -0
  398. package/dist/src/services/worker/types.d.ts +26 -0
  399. package/dist/src/services/worker/types.d.ts.map +1 -0
  400. package/dist/src/services/worker/types.js +29 -0
  401. package/dist/src/services/worker/types.js.map +1 -0
  402. package/dist/src/srpc/SrpcByteStream.d.ts +67 -0
  403. package/dist/src/srpc/SrpcByteStream.d.ts.map +1 -0
  404. package/dist/src/srpc/SrpcByteStream.js +319 -0
  405. package/dist/src/srpc/SrpcByteStream.js.map +1 -0
  406. package/dist/src/srpc/SrpcClient.d.ts +75 -0
  407. package/dist/src/srpc/SrpcClient.d.ts.map +1 -0
  408. package/dist/src/srpc/SrpcClient.js +445 -0
  409. package/dist/src/srpc/SrpcClient.js.map +1 -0
  410. package/dist/src/srpc/SrpcServer.d.ts +54 -0
  411. package/dist/src/srpc/SrpcServer.d.ts.map +1 -0
  412. package/dist/src/srpc/SrpcServer.js +456 -0
  413. package/dist/src/srpc/SrpcServer.js.map +1 -0
  414. package/dist/src/srpc/index.d.ts +7 -0
  415. package/dist/src/srpc/index.d.ts.map +1 -0
  416. package/dist/src/srpc/index.js +12 -0
  417. package/dist/src/srpc/index.js.map +1 -0
  418. package/dist/src/srpc/types.d.ts +129 -0
  419. package/dist/src/srpc/types.d.ts.map +1 -0
  420. package/dist/src/srpc/types.js +65 -0
  421. package/dist/src/srpc/types.js.map +1 -0
  422. package/dist/src/telemetry/index.d.ts +2 -0
  423. package/dist/src/telemetry/index.d.ts.map +1 -0
  424. package/dist/src/telemetry/index.js +5 -0
  425. package/dist/src/telemetry/index.js.map +1 -0
  426. package/dist/src/telemetry/otel/MariaDBInstrumentation.d.ts +22 -0
  427. package/dist/src/telemetry/otel/MariaDBInstrumentation.d.ts.map +1 -0
  428. package/dist/src/telemetry/otel/MariaDBInstrumentation.js +248 -0
  429. package/dist/src/telemetry/otel/MariaDBInstrumentation.js.map +1 -0
  430. package/dist/src/telemetry/otel/helpers.d.ts +27 -0
  431. package/dist/src/telemetry/otel/helpers.d.ts.map +1 -0
  432. package/dist/src/telemetry/otel/helpers.js +126 -0
  433. package/dist/src/telemetry/otel/helpers.js.map +1 -0
  434. package/dist/src/telemetry/otel/index.d.ts +14 -0
  435. package/dist/src/telemetry/otel/index.d.ts.map +1 -0
  436. package/dist/src/telemetry/otel/index.js +132 -0
  437. package/dist/src/telemetry/otel/index.js.map +1 -0
  438. package/dist/src/telemetry/otel/metrics.controller.d.ts +6 -0
  439. package/dist/src/telemetry/otel/metrics.controller.d.ts.map +1 -0
  440. package/dist/src/telemetry/otel/metrics.controller.js +63 -0
  441. package/dist/src/telemetry/otel/metrics.controller.js.map +1 -0
  442. package/dist/src/telemetry/sentry.d.ts +9 -0
  443. package/dist/src/telemetry/sentry.d.ts.map +1 -0
  444. package/dist/src/telemetry/sentry.js +62 -0
  445. package/dist/src/telemetry/sentry.js.map +1 -0
  446. package/dist/src/testapp/bootstrap.d.ts +1 -0
  447. package/dist/src/testapp/bootstrap.d.ts.map +1 -0
  448. package/dist/src/testapp/bootstrap.js +18 -0
  449. package/dist/src/testapp/bootstrap.js.map +1 -0
  450. package/dist/src/testapp/sample.d.ts +6 -0
  451. package/dist/src/testapp/sample.d.ts.map +1 -0
  452. package/dist/src/testapp/sample.js +228 -0
  453. package/dist/src/testapp/sample.js.map +1 -0
  454. package/dist/src/testapp/srpc-test.d.ts +27 -0
  455. package/dist/src/testapp/srpc-test.d.ts.map +1 -0
  456. package/dist/src/testapp/srpc-test.js +570 -0
  457. package/dist/src/testapp/srpc-test.js.map +1 -0
  458. package/dist/src/testing/expect.d.ts +25 -0
  459. package/dist/src/testing/expect.d.ts.map +1 -0
  460. package/dist/src/testing/expect.js +151 -0
  461. package/dist/src/testing/expect.js.map +1 -0
  462. package/dist/src/testing/fixtures.d.ts +19 -0
  463. package/dist/src/testing/fixtures.d.ts.map +1 -0
  464. package/dist/src/testing/fixtures.js +69 -0
  465. package/dist/src/testing/fixtures.js.map +1 -0
  466. package/dist/src/testing/index.d.ts +260 -0
  467. package/dist/src/testing/index.d.ts.map +1 -0
  468. package/dist/src/testing/index.js +345 -0
  469. package/dist/src/testing/index.js.map +1 -0
  470. package/dist/src/testing/requests.d.ts +10 -0
  471. package/dist/src/testing/requests.d.ts.map +1 -0
  472. package/dist/src/testing/requests.js +56 -0
  473. package/dist/src/testing/requests.js.map +1 -0
  474. package/dist/src/testing/sql.d.ts +11 -0
  475. package/dist/src/testing/sql.d.ts.map +1 -0
  476. package/dist/src/testing/sql.js +55 -0
  477. package/dist/src/testing/sql.js.map +1 -0
  478. package/dist/src/types/index.d.ts +57 -0
  479. package/dist/src/types/index.d.ts.map +1 -0
  480. package/dist/src/types/index.js +73 -0
  481. package/dist/src/types/index.js.map +1 -0
  482. package/dist/src/types/phone.d.ts +11 -0
  483. package/dist/src/types/phone.d.ts.map +1 -0
  484. package/dist/src/types/phone.js +73 -0
  485. package/dist/src/types/phone.js.map +1 -0
  486. package/dist/tsconfig.tsbuildinfo +1 -0
  487. package/docs/README.md +38 -0
  488. package/docs/authentication.md +215 -0
  489. package/docs/cli.md +302 -0
  490. package/docs/configuration.md +176 -0
  491. package/docs/database.md +422 -0
  492. package/docs/getting-started.md +154 -0
  493. package/docs/health.md +53 -0
  494. package/docs/helpers.md +436 -0
  495. package/docs/http.md +253 -0
  496. package/docs/leader-service.md +98 -0
  497. package/docs/logging.md +150 -0
  498. package/docs/mail.md +161 -0
  499. package/docs/mesh-service.md +204 -0
  500. package/docs/srpc.md +261 -0
  501. package/docs/telemetry.md +166 -0
  502. package/docs/testing.md +222 -0
  503. package/docs/types.md +215 -0
  504. package/docs/worker.md +174 -0
  505. package/lefthook.yml +12 -0
  506. package/openapi.yaml +109 -0
  507. package/package.json +133 -0
  508. package/patches/@deepkit+type+1.0.19.patch +38 -0
  509. package/resources/proto/generated/test/test.ts +2721 -0
  510. package/resources/proto/sample.proto +85 -0
  511. package/resources/proto/test.proto +178 -0
  512. package/src/app/base.ts +257 -0
  513. package/src/app/config.loader.ts +66 -0
  514. package/src/app/config.ts +120 -0
  515. package/src/app/const.ts +4 -0
  516. package/src/app/dev.ts +70 -0
  517. package/src/app/index.ts +6 -0
  518. package/src/app/openapi.ts +3 -0
  519. package/src/app/resolver.ts +49 -0
  520. package/src/app/shutdown.ts +55 -0
  521. package/src/app/state.ts +19 -0
  522. package/src/auth/index.ts +2 -0
  523. package/src/auth/jwt.ts +275 -0
  524. package/src/auth/provider.ts +57 -0
  525. package/src/cli/dksf-dev.ts +363 -0
  526. package/src/cli/dksf-gen-proto.ts +176 -0
  527. package/src/cli/dksf-install.ts +11 -0
  528. package/src/cli/dksf-test.ts +95 -0
  529. package/src/cli/dksf-update.ts +101 -0
  530. package/src/database/CLAUDE.md +390 -0
  531. package/src/database/common.ts +385 -0
  532. package/src/database/dialect.ts +43 -0
  533. package/src/database/entity.ts +285 -0
  534. package/src/database/index.ts +7 -0
  535. package/src/database/migration/MigrationResetCommand.ts +152 -0
  536. package/src/database/migration/MigrationRunCommand.ts +118 -0
  537. package/src/database/migration/characters.ts +53 -0
  538. package/src/database/migration/create/MigrationCreateCommand.ts +94 -0
  539. package/src/database/migration/create/comparator.ts +467 -0
  540. package/src/database/migration/create/db-reader.ts +510 -0
  541. package/src/database/migration/create/ddl-generator.ts +755 -0
  542. package/src/database/migration/create/entity-reader.ts +462 -0
  543. package/src/database/migration/create/file-generator.ts +52 -0
  544. package/src/database/migration/create/prompt.ts +49 -0
  545. package/src/database/migration/create/schema-model.ts +102 -0
  546. package/src/database/migration/helpers.ts +3 -0
  547. package/src/database/migration/index.ts +35 -0
  548. package/src/database/migration/migration.entity.ts +10 -0
  549. package/src/database/mysql.ts +140 -0
  550. package/src/database/postgres.ts +97 -0
  551. package/src/database/types.ts +18 -0
  552. package/src/health/health.module.ts +30 -0
  553. package/src/health/healthcheck.controller.ts +17 -0
  554. package/src/health/healthcheck.service.ts +15 -0
  555. package/src/health/index.ts +2 -0
  556. package/src/helpers/CLAUDE.md +71 -0
  557. package/src/helpers/async/context.ts +67 -0
  558. package/src/helpers/async/process.ts +49 -0
  559. package/src/helpers/async/promise.ts +16 -0
  560. package/src/helpers/data/array.ts +11 -0
  561. package/src/helpers/data/objects.ts +64 -0
  562. package/src/helpers/data/serialization.ts +11 -0
  563. package/src/helpers/data/transformer.ts +54 -0
  564. package/src/helpers/framework/decorators.ts +27 -0
  565. package/src/helpers/framework/event.ts +11 -0
  566. package/src/helpers/framework/injection.ts +47 -0
  567. package/src/helpers/index.ts +34 -0
  568. package/src/helpers/io/package.ts +26 -0
  569. package/src/helpers/io/stream.ts +79 -0
  570. package/src/helpers/redis/broadcast.ts +94 -0
  571. package/src/helpers/redis/cache.ts +28 -0
  572. package/src/helpers/redis/mutex.ts +260 -0
  573. package/src/helpers/redis/redis.ts +60 -0
  574. package/src/helpers/security/crypto.ts +133 -0
  575. package/src/helpers/security/validation.ts +16 -0
  576. package/src/helpers/utils/date.ts +13 -0
  577. package/src/helpers/utils/error.ts +155 -0
  578. package/src/helpers/utils/jsx.ts +8 -0
  579. package/src/helpers/utils/uuid.ts +8 -0
  580. package/src/http/auth.ts +156 -0
  581. package/src/http/context.ts +15 -0
  582. package/src/http/cors.ts +159 -0
  583. package/src/http/errors.ts +9 -0
  584. package/src/http/index.ts +19 -0
  585. package/src/http/kernel.ts +138 -0
  586. package/src/http/middleware.ts +59 -0
  587. package/src/http/overrides.ts +20 -0
  588. package/src/http/store.ts +86 -0
  589. package/src/http/uploads.ts +6 -0
  590. package/src/http/workflow.ts +167 -0
  591. package/src/index.ts +19 -0
  592. package/src/services/cli/invoke.ts +39 -0
  593. package/src/services/cli/repl.ts +67 -0
  594. package/src/services/cli.ts +74 -0
  595. package/src/services/index.ts +6 -0
  596. package/src/services/leader.ts +201 -0
  597. package/src/services/logger.ts +258 -0
  598. package/src/services/mail/index.ts +117 -0
  599. package/src/services/mail/postmark.ts +37 -0
  600. package/src/services/mail/smtp.ts +46 -0
  601. package/src/services/mesh.ts +508 -0
  602. package/src/services/worker/CLAUDE.md +77 -0
  603. package/src/services/worker/bootstrap.ts +58 -0
  604. package/src/services/worker/cli.ts +63 -0
  605. package/src/services/worker/entity.ts +22 -0
  606. package/src/services/worker/index.ts +30 -0
  607. package/src/services/worker/observer.ts +180 -0
  608. package/src/services/worker/queue.ts +34 -0
  609. package/src/services/worker/runner.ts +146 -0
  610. package/src/services/worker/types.ts +32 -0
  611. package/src/srpc/CLAUDE.md +194 -0
  612. package/src/srpc/SRPC_MIGRATION_GUIDE.md +348 -0
  613. package/src/srpc/SrpcByteStream.ts +382 -0
  614. package/src/srpc/SrpcClient.ts +512 -0
  615. package/src/srpc/SrpcServer.ts +575 -0
  616. package/src/srpc/index.ts +15 -0
  617. package/src/srpc/types.ts +144 -0
  618. package/src/telemetry/index.ts +1 -0
  619. package/src/telemetry/otel/MariaDBInstrumentation.ts +297 -0
  620. package/src/telemetry/otel/helpers.ts +117 -0
  621. package/src/telemetry/otel/index.ts +150 -0
  622. package/src/telemetry/otel/metrics.controller.ts +50 -0
  623. package/src/telemetry/sentry.ts +58 -0
  624. package/src/testapp/bootstrap.ts +17 -0
  625. package/src/testapp/sample.ts +220 -0
  626. package/src/testapp/srpc-test.ts +684 -0
  627. package/src/testing/expect.ts +148 -0
  628. package/src/testing/fixtures.ts +62 -0
  629. package/src/testing/index.ts +355 -0
  630. package/src/testing/requests.ts +68 -0
  631. package/src/testing/sql.ts +50 -0
  632. package/src/types/index.ts +64 -0
  633. package/src/types/phone.ts +64 -0
  634. package/tests/app/app.spec.ts +53 -0
  635. package/tests/app/type.spec.ts +22 -0
  636. package/tests/auth/jwt.spec.ts +90 -0
  637. package/tests/database/entity.spec.ts +382 -0
  638. package/tests/database/locks.spec.ts +142 -0
  639. package/tests/database/migration-create-integration.spec.ts +234 -0
  640. package/tests/database/migration-create-unit.spec.ts +3896 -0
  641. package/tests/helpers/array.spec.ts +80 -0
  642. package/tests/helpers/cache.spec.ts +202 -0
  643. package/tests/helpers/crypto.spec.ts +236 -0
  644. package/tests/helpers/date.spec.ts +94 -0
  645. package/tests/helpers/error.spec.ts +233 -0
  646. package/tests/helpers/mutex.spec.ts +354 -0
  647. package/tests/helpers/objects.spec.ts +212 -0
  648. package/tests/helpers/package.spec.ts +90 -0
  649. package/tests/helpers/promise.spec.ts +119 -0
  650. package/tests/helpers/redis.spec.ts +50 -0
  651. package/tests/helpers/serialization.spec.ts +150 -0
  652. package/tests/helpers/stream.spec.ts +225 -0
  653. package/tests/helpers/validation.spec.ts +133 -0
  654. package/tests/services/leader.spec.ts +257 -0
  655. package/tests/services/logger.spec.ts +269 -0
  656. package/tests/services/mesh.spec.ts +814 -0
  657. package/tests/shared/db.ts +105 -0
  658. package/tests/shared/globalSetup.ts +48 -0
  659. package/tests/shared/helpers.ts +40 -0
  660. package/tests/srpc/SrpcByteStream.spec.ts +542 -0
  661. package/tests/tsconfig.json +4 -0
  662. package/tests/types/index.spec.ts +60 -0
  663. package/tests/types/phone.spec.ts +140 -0
  664. package/tsconfig.json +106 -0
  665. package/tsconfig.test.json +8 -0
  666. package/types.d.ts +6 -0
@@ -0,0 +1,570 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SrpcTesterService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const __ΩError = ['name', 'message', 'stack', 'Error', 'P&4!&4"&4#8Mw$y'];
6
+ function __assignType(fn, args) {
7
+ fn.__type = args;
8
+ return fn;
9
+ }
10
+ /*@ts-ignore*/
11
+ var { __ΩScopedLogger } = require('@deepkit/logger');
12
+ const logger_1 = require("@deepkit/logger");
13
+ const crypto_1 = require("crypto");
14
+ const stream_1 = require("stream");
15
+ const ws_1 = tslib_1.__importDefault(require("ws"));
16
+ const framework_1 = require("@deepkit/framework");
17
+ /*@ts-ignore*/
18
+ var { __ΩClientMessage, __ΩServerMessage } = require('../../resources/proto/generated/test/test');
19
+ const test_1 = require("../../resources/proto/generated/test/test");
20
+ const app_1 = require("../app");
21
+ const helpers_1 = require("../helpers");
22
+ /*@ts-ignore*/
23
+ var { __ΩSrpcMeta, __ΩSrpcStream } = require('../srpc');
24
+ const srpc_1 = require("../srpc");
25
+ const TEST_WS_PATH = '/srpc-test';
26
+ const __ΩTestClientOutput = [() => __ΩClientMessage, 'TestClientOutput', 'n!w"y'];
27
+ const __ΩTestServerOutput = [() => __ΩServerMessage, 'TestServerOutput', 'n!w"y'];
28
+ let SrpcTesterService = class SrpcTesterService {
29
+ constructor(logger, appConfig, appServer) {
30
+ this.logger = logger;
31
+ this.appConfig = appConfig;
32
+ this.appServer = appServer;
33
+ this.testsCompleted = false;
34
+ this.testsFailed = false;
35
+ // Expand clock drift to keep tests stable on slower systems
36
+ this.appConfig.SRPC_AUTH_CLOCK_DRIFT_MS = 60_000;
37
+ // Debug: Log what secrets are available via config (not env)
38
+ this.logger.info('Configuration check:', {
39
+ SRPC_AUTH_SECRET: this.appConfig.SRPC_AUTH_SECRET ? '***set***' : 'NOT SET'
40
+ });
41
+ // Create and configure server
42
+ this.logger.info('Bootstrapping SrpcServer transport', { wsPath: TEST_WS_PATH });
43
+ this.server = (srpc_1.SrpcServer.Ω = [[() => __ΩSrpcMeta, 'n!'], [() => __ΩTestClientOutput, 'n!'], [() => __ΩTestServerOutput, 'n!']], new srpc_1.SrpcServer({
44
+ logger: this.logger.scoped('SrpcServer'),
45
+ clientMessage: test_1.ClientMessage,
46
+ serverMessage: test_1.ServerMessage,
47
+ wsPath: TEST_WS_PATH,
48
+ debug: false
49
+ }));
50
+ // Use custom key fetcher to read from app config
51
+ this.server.setClientKeyFetcher(__assignType(async (clientId) => {
52
+ const secret = this.getServerSecret();
53
+ this.logger.info('Server fetching key for client:', { clientId, hasSecret: !!secret });
54
+ return secret || false;
55
+ }, ['clientId', '', 'P"2!"/"']));
56
+ this.setupServerHandlers();
57
+ // Track connected streams for server-to-client tests
58
+ this.server.registerConnectionHandler(__assignType(stream => {
59
+ this.connectedStream = stream;
60
+ }, ['stream', '', 'P"2!"/"']));
61
+ // Run tests after a short delay to ensure server is ready
62
+ setTimeout(() => this.runTests()
63
+ .then(() => {
64
+ this.logger.info('SRPC tests completed successfully!');
65
+ this.testsCompleted = true;
66
+ })
67
+ .catch(__assignType(err => {
68
+ this.logger.error('SRPC tests failed:', err);
69
+ this.testsFailed = true;
70
+ throw err;
71
+ }, ['err', '', 'P"2!"/"'])), 1000);
72
+ }
73
+ get httpPort() {
74
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
75
+ return this.appServer.getHttpWorker()['server'].address().port;
76
+ }
77
+ setupServerHandlers() {
78
+ // Echo handler
79
+ this.server.registerMessageHandler('uEcho', __assignType(async (_stream, data) => {
80
+ return { message: `Echo: ${data.message}` };
81
+ }, ['_stream', 'data', '', 'P"2!"2""/#']));
82
+ // Complex data types handler
83
+ this.server.registerMessageHandler('uComplex', __assignType(async (_stream, data) => {
84
+ const result = `Processed: ${data.stringField}, ${data.intField}, ${data.boolField}`;
85
+ const count = data.arrayField.length + Object.keys(data.mapField).length;
86
+ return { result, count };
87
+ }, ['_stream', 'data', '', 'P"2!"2""/#']));
88
+ // Error handler
89
+ this.server.registerMessageHandler('uError', __assignType(async (_stream, data) => {
90
+ throw new srpc_1.SrpcError(data.errorMessage, data.userError);
91
+ }, ['_stream', 'data', '', 'P"2!"2""/#']));
92
+ // Upload handler (client to server byte stream)
93
+ this.server.registerMessageHandler('uUpload', __assignType(async (stream, data) => {
94
+ const receiver = srpc_1.SrpcByteStream.createReceiver(stream, data.streamId);
95
+ const chunks = [];
96
+ for await (const chunk of receiver) {
97
+ chunks.push(chunk);
98
+ }
99
+ const totalBytes = Buffer.concat(chunks).length;
100
+ return { message: `Uploaded ${data.filename}`, bytesReceived: totalBytes };
101
+ }, ['stream', 'data', '', 'P"2!"2""/#']));
102
+ // Download handler (server to client byte stream)
103
+ this.server.registerMessageHandler('uDownload', __assignType(async (stream, data) => {
104
+ const testData = Buffer.from(`Test file contents for ${data.filename}`, 'utf-8');
105
+ const sender = srpc_1.SrpcByteStream.createSender(stream);
106
+ setTimeout(() => {
107
+ sender.write(testData);
108
+ sender.end();
109
+ }, 10);
110
+ return { streamId: sender.id, bytesTotal: testData.length };
111
+ }, ['stream', 'data', '', 'P"2!"2""/#']));
112
+ // Slow request handler
113
+ this.server.registerMessageHandler('uSlow', __assignType(async (_stream, data) => {
114
+ const start = Date.now();
115
+ await new Promise(__assignType(resolve => setTimeout(resolve, data.delayMs), ['resolve', '', 'P"2!"/"']));
116
+ const actualDelay = Date.now() - start;
117
+ return { message: 'Completed', actualDelayMs: actualDelay };
118
+ }, ['_stream', 'data', '', 'P"2!"2""/#']));
119
+ }
120
+ createClient(clientId, autoConnect = true) {
121
+ const secret = this.getServerSecret();
122
+ const client = (srpc_1.SrpcClient.Ω = [[() => __ΩTestClientOutput, 'n!'], [() => __ΩTestServerOutput, 'n!']], new srpc_1.SrpcClient(this.logger.scoped('WsClient'), `ws://localhost:${this.httpPort}${TEST_WS_PATH}`, test_1.ClientMessage, test_1.ServerMessage, clientId, { testEnv: 'testapp' }, secret, { enableReconnect: false }));
123
+ if (!autoConnect) {
124
+ return Promise.resolve(client);
125
+ }
126
+ return (Promise.Ω = [[() => __ΩTestClientOutput, () => __ΩTestServerOutput, () => srpc_1.SrpcClient, 'Pn!n"7#']], new Promise(__assignType(resolve => {
127
+ client.registerConnectionHandler(() => resolve(client));
128
+ client.connect();
129
+ }, ['resolve', '', 'P"2!"/"'])));
130
+ }
131
+ async runTests() {
132
+ this.logger.info('Starting SRPC tests...');
133
+ // Give server time to start
134
+ await (0, helpers_1.sleepSecs)(0.5);
135
+ await this.testConnectionAndAuthentication();
136
+ await this.testClientToServerRPC();
137
+ await this.testServerToClientRPC();
138
+ await this.testByteStreams();
139
+ await this.testConnectionLifecycle();
140
+ await this.testCustomMetadata();
141
+ // Run legacy raw WebSocket test for backwards compatibility
142
+ await this.testRawWebsocketClient();
143
+ this.logger.info('All SRPC tests passed!');
144
+ }
145
+ async testConnectionAndAuthentication() {
146
+ this.logger.info('[Test Start] Connection and Authentication');
147
+ // Test: Valid connection
148
+ this.logger.info('Creating SRPC client with valid credentials');
149
+ const client = await this.createClient(`test-ws-${Date.now()}`);
150
+ if (!client.isConnected) {
151
+ throw new Error('Client should be connected');
152
+ }
153
+ this.logger.info(' ✓ Valid credentials connection');
154
+ // Clean up for next test
155
+ this.logger.info('Disconnecting valid client before invalid auth test');
156
+ client.disconnect();
157
+ await (0, helpers_1.sleepSecs)(0.2);
158
+ // Test: Invalid signature
159
+ this.logger.info('Attempting connection with invalid signature to ensure rejection');
160
+ let connectedWithBadSecret = false;
161
+ const badClient = (srpc_1.SrpcClient.Ω = [[() => __ΩTestClientOutput, 'n!'], [() => __ΩTestServerOutput, 'n!']], new srpc_1.SrpcClient(this.logger.scoped('BadWsClient'), `ws://localhost:${this.httpPort}${TEST_WS_PATH}`, test_1.ClientMessage, test_1.ServerMessage, 'bad-client', {}, 'wrong-secret', { enableReconnect: false }));
162
+ badClient.registerConnectionHandler(() => {
163
+ connectedWithBadSecret = true;
164
+ });
165
+ badClient.connect();
166
+ await (0, helpers_1.sleepSecs)(1);
167
+ if (connectedWithBadSecret) {
168
+ throw new Error('Should not connect with invalid signature');
169
+ }
170
+ this.logger.info('Bad client was rejected as expected');
171
+ this.logger.info(' ✓ Invalid signature rejection');
172
+ badClient.disconnect();
173
+ this.logger.info('[Test End] Connection and Authentication');
174
+ }
175
+ async testClientToServerRPC() {
176
+ this.logger.info('[Test Start] Client-to-Server RPC');
177
+ const client = await this.createClient(`test-rpc-ws-${Date.now()}`);
178
+ // Test: Simple echo (using simplified invoke syntax)
179
+ this.logger.info('Sending uEchoRequest payload');
180
+ const echoResponse = await client.invoke('uEcho', {
181
+ message: 'Hello, SRPC!'
182
+ });
183
+ if (echoResponse.message !== 'Echo: Hello, SRPC!') {
184
+ throw new Error('Echo response mismatch');
185
+ }
186
+ this.logger.info('Received expected uEchoResponse payload');
187
+ this.logger.info(' ✓ Simple echo request');
188
+ // Test: Complex data types (using simplified invoke syntax)
189
+ this.logger.info('Sending uComplexRequest payload');
190
+ const complexResponse = await client.invoke('uComplex', {
191
+ stringField: 'test',
192
+ intField: 42,
193
+ doubleField: 3.14,
194
+ boolField: true,
195
+ arrayField: ['a', 'b', 'c'],
196
+ mapField: { key1: 'value1', key2: 'value2' }
197
+ });
198
+ if (!complexResponse.result?.includes('test') || complexResponse.count !== 5) {
199
+ throw new Error('Complex data type handling failed');
200
+ }
201
+ this.logger.info('Complex response validated', { response: complexResponse });
202
+ this.logger.info(' ✓ Complex data types');
203
+ // Test: Error propagation
204
+ this.logger.info('Triggering uErrorRequest to confirm error propagation');
205
+ try {
206
+ await client.invoke('uError', {
207
+ errorMessage: 'Test error',
208
+ userError: false
209
+ });
210
+ throw new Error('Should have thrown error');
211
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
212
+ }
213
+ catch (err) {
214
+ const errorMsg = err?.message || String(err);
215
+ if (!errorMsg || !errorMsg.includes('Test error')) {
216
+ throw new Error(`Error message not propagated correctly. Got: ${errorMsg}`);
217
+ }
218
+ }
219
+ this.logger.info(' ✓ Application error propagation');
220
+ // Test: Async request completion
221
+ this.logger.info('Invoking uSlowRequest with 100ms delay');
222
+ const asyncResponse = await client.invoke('uSlow', { delayMs: 100 }, 5000);
223
+ if (asyncResponse.message !== 'Completed') {
224
+ throw new Error(`Async request failed: expected message 'Completed' but got '${asyncResponse.message}'`);
225
+ }
226
+ if (asyncResponse.actualDelayMs < 90) {
227
+ throw new Error(`Async request failed: expected delay >= 90ms but got ${asyncResponse.actualDelayMs}ms`);
228
+ }
229
+ this.logger.info(' ✓ Async request completion');
230
+ // Test: Request timeout
231
+ this.logger.info('Invoking uSlowRequest with 2000ms delay and 500ms timeout');
232
+ try {
233
+ await client.invoke('uSlow', { delayMs: 2000 }, 500);
234
+ throw new Error('Request should have timed out');
235
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
236
+ }
237
+ catch (err) {
238
+ const errorMsg = err?.message || String(err);
239
+ if (!errorMsg.toLowerCase().includes('timeout') && !errorMsg.includes('Request should have timed out')) {
240
+ throw new Error(`Expected timeout error but got: ${errorMsg}`);
241
+ }
242
+ if (errorMsg.includes('Request should have timed out')) {
243
+ throw new Error('Request did not timeout as expected');
244
+ }
245
+ }
246
+ this.logger.info(' ✓ Request timeout');
247
+ // Test: Concurrent requests
248
+ this.logger.info('Scheduling 10 concurrent uEchoRequest invocations');
249
+ const requests = Array.from({ length: 10 }, __assignType((_, i) => client.invoke('uEcho', { message: `Message ${i}` }), ['_', 'i', '', 'P"2!"2""/#']));
250
+ const responses = await Promise.all(requests);
251
+ if (responses.length !== 10) {
252
+ throw new Error('Concurrent requests failed');
253
+ }
254
+ this.logger.info('All concurrent responses received');
255
+ this.logger.info(' ✓ Concurrent requests (10)');
256
+ client.disconnect();
257
+ await (0, helpers_1.sleepSecs)(0.2);
258
+ this.logger.info('[Test End] Client-to-Server RPC');
259
+ }
260
+ async testServerToClientRPC() {
261
+ this.logger.info('[Test Start] Server-to-Client RPC');
262
+ const client = await this.createClient(`test-s2c-ws-${Date.now()}`);
263
+ // Wait for server to register the stream
264
+ this.logger.info('Waiting for server to register inbound stream');
265
+ await (0, helpers_1.sleepSecs)(0.2);
266
+ if (!this.connectedStream) {
267
+ throw new Error('Server should have registered connected stream');
268
+ }
269
+ // Test: Server invoking client
270
+ this.logger.info('Registering notify handler on client for server invocation');
271
+ client.registerMessageHandler('dNotify', __assignType(async (data) => {
272
+ if (data.notification !== 'Test notification') {
273
+ throw new Error('Notification content mismatch');
274
+ }
275
+ return { acknowledged: true };
276
+ }, ['data', '', 'P"2!"/"']));
277
+ this.logger.info('Invoking server->client notify workflow (using simplified invoke syntax)');
278
+ const notifyResponse = await this.server.invoke(this.connectedStream, 'dNotify', {
279
+ notification: 'Test notification'
280
+ });
281
+ if (!notifyResponse.acknowledged) {
282
+ throw new Error('Server-to-client invocation failed');
283
+ }
284
+ this.logger.info(' ✓ Server invoking client');
285
+ // Test: Client computation (using simplified invoke syntax)
286
+ this.logger.info('Registering compute handler on client');
287
+ client.registerMessageHandler('dCompute', __assignType(async (data) => {
288
+ let result = data.number;
289
+ if (data.operation === 'square')
290
+ result = data.number * data.number;
291
+ if (data.operation === 'double')
292
+ result = data.number * 2;
293
+ return { result };
294
+ }, ['data', '', 'P"2!"/"']));
295
+ this.logger.info('Invoking compute handler from server');
296
+ const squareResponse = await this.server.invoke(this.connectedStream, 'dCompute', {
297
+ number: 5,
298
+ operation: 'square'
299
+ });
300
+ if (squareResponse.result !== 25) {
301
+ throw new Error('Client computation failed');
302
+ }
303
+ this.logger.info(' ✓ Client computation requests');
304
+ client.disconnect();
305
+ await (0, helpers_1.sleepSecs)(0.2);
306
+ this.logger.info('[Test End] Server-to-Client RPC');
307
+ }
308
+ async testByteStreams() {
309
+ this.logger.info('[Test Start] Byte Streams');
310
+ const client = await this.createClient(`test-bytes-ws-${Date.now()}`);
311
+ // Test: Upload (client to server)
312
+ this.logger.info('Starting client->server byte stream upload');
313
+ const uploadData = Buffer.from('Hello from client byte stream!', 'utf-8');
314
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
315
+ const sender = srpc_1.SrpcByteStream.createSender(client);
316
+ const uploadPromise = client.invoke('uUpload', {
317
+ streamId: sender.id,
318
+ filename: 'test.txt'
319
+ });
320
+ this.logger.info('Sending upload payload to server');
321
+ sender.write(uploadData);
322
+ sender.end();
323
+ const uploadResponse = await uploadPromise;
324
+ if (uploadResponse.bytesReceived !== uploadData.length) {
325
+ throw new Error('Upload byte count mismatch');
326
+ }
327
+ this.logger.info(' ✓ Upload via byte stream');
328
+ // Test: Download (server to client)
329
+ this.logger.info('Requesting server->client byte stream download');
330
+ const downloadResponse = await client.invoke('uDownload', {
331
+ filename: 'download.txt'
332
+ });
333
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
334
+ const receiver = srpc_1.SrpcByteStream.createReceiver(client, downloadResponse.streamId);
335
+ const downloadChunks = [];
336
+ for await (const chunk of receiver) {
337
+ downloadChunks.push(chunk);
338
+ }
339
+ const receivedData = Buffer.concat(downloadChunks);
340
+ if (receivedData.length !== downloadResponse.bytesTotal) {
341
+ throw new Error('Download byte count mismatch');
342
+ }
343
+ this.logger.info(' ✓ Download via byte stream');
344
+ // Test: Large stream (1MB)
345
+ const largeData = Buffer.alloc(1024 * 1024);
346
+ for (let i = 0; i < largeData.length; i++) {
347
+ largeData[i] = i % 256;
348
+ }
349
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
350
+ const largeSender = srpc_1.SrpcByteStream.createSender(client);
351
+ const largeUploadPromise = client.invoke('uUpload', {
352
+ streamId: largeSender.id,
353
+ filename: 'large.bin'
354
+ });
355
+ this.logger.info('Streaming 1MB payload to server for stress test');
356
+ largeSender.write(largeData);
357
+ largeSender.end();
358
+ const largeResponse = await largeUploadPromise;
359
+ if (largeResponse.bytesReceived !== largeData.length) {
360
+ throw new Error('Large stream byte count mismatch');
361
+ }
362
+ this.logger.info(' ✓ Large byte stream (1MB)');
363
+ // Test: Chunked streaming
364
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
365
+ const chunkSender = srpc_1.SrpcByteStream.createSender(client);
366
+ const textChunks = ['Hello ', 'from ', 'chunked ', 'stream!'];
367
+ const chunkUploadPromise = client.invoke('uUpload', {
368
+ streamId: chunkSender.id,
369
+ filename: 'chunked.txt'
370
+ });
371
+ this.logger.info('Writing text chunks sequentially');
372
+ for (const chunk of textChunks) {
373
+ chunkSender.write(Buffer.from(chunk, 'utf-8'));
374
+ }
375
+ chunkSender.end();
376
+ const chunkResponse = await chunkUploadPromise;
377
+ if (chunkResponse.bytesReceived !== textChunks.join('').length) {
378
+ throw new Error('Chunked stream byte count mismatch');
379
+ }
380
+ this.logger.info(' ✓ Chunked streaming');
381
+ // Test: Node.js Readable stream
382
+ const readableData = 'Stream from Readable!';
383
+ const readable = stream_1.Readable.from([Buffer.from(readableData, 'utf-8')]);
384
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
385
+ const pipedSender = srpc_1.SrpcByteStream.createSender(client);
386
+ const pipedUploadPromise = client.invoke('uUpload', {
387
+ streamId: pipedSender.id,
388
+ filename: 'piped.txt'
389
+ });
390
+ readable.pipe(pipedSender);
391
+ this.logger.info('Piping readable stream into SRPC sender');
392
+ await new Promise(__assignType((resolve, reject) => {
393
+ pipedSender.on('finish', resolve);
394
+ pipedSender.on('error', reject);
395
+ }, ['resolve', 'reject', '', 'P"2!"2""/#']));
396
+ const pipedResponse = await pipedUploadPromise;
397
+ if (pipedResponse.bytesReceived !== readableData.length) {
398
+ throw new Error('Piped stream byte count mismatch');
399
+ }
400
+ this.logger.info(' ✓ Node.js Readable stream integration');
401
+ client.disconnect();
402
+ await (0, helpers_1.sleepSecs)(0.2);
403
+ this.logger.info('[Test End] Byte Streams');
404
+ }
405
+ async testConnectionLifecycle() {
406
+ this.logger.info('[Test Start] Connection Lifecycle');
407
+ const events = [];
408
+ const clientId = `test-lifecycle-ws-${Date.now()}`;
409
+ this.server.registerConnectionHandler(__assignType(stream => {
410
+ events.push(`server-connected:${stream.clientId}`);
411
+ }, ['stream', '', 'P"2!"/"']));
412
+ this.server.registerDisconnectHandler(__assignType((stream, cause) => {
413
+ events.push(`server-disconnected:${stream.clientId}:${cause}`);
414
+ }, ['stream', 'cause', '', 'P"2!"2""/#']));
415
+ const client = await this.createClient(clientId, false);
416
+ client.registerConnectionHandler(() => {
417
+ events.push('client-connected');
418
+ });
419
+ client.registerDisconnectHandler(() => {
420
+ events.push('client-disconnected');
421
+ });
422
+ client.connect();
423
+ this.logger.info('Connection lifecycle client initiated', { clientId });
424
+ await this.waitForEvent(() => events.includes('client-connected'), 2_000, 'Client connection event not fired');
425
+ await this.waitForEvent(() => events.some(__assignType(e => e === `server-connected:${clientId}`, ['e', '', 'P"2!"/"'])), 2_000, 'Server connection event not fired');
426
+ this.logger.info(' ✓ Connection handlers');
427
+ client.disconnect();
428
+ await this.waitForEvent(() => events.includes('client-disconnected'), 2_000, 'Client disconnection event not fired');
429
+ await this.waitForEvent(() => events.some(__assignType(e => e.startsWith(`server-disconnected:${clientId}:`), ['e', '', 'P"2!"/"'])), 2_000, 'Server disconnection event not fired');
430
+ this.logger.info(' ✓ Disconnection handlers');
431
+ this.logger.info('[Test End] Connection Lifecycle');
432
+ }
433
+ async testCustomMetadata() {
434
+ this.logger.info('[Test Start] Custom Metadata');
435
+ const customMeta = { appVersion: '1.2.3', userId: 'test-user' };
436
+ const clientId = `custom-meta-ws-${Date.now()}`;
437
+ const metaPromise = (Promise.Ω = [[() => __ΩSrpcMeta, 'n!']], new Promise(__assignType((resolve, reject) => {
438
+ const timeout = setTimeout(() => reject(new Error('Timeout waiting for metadata')), 3000);
439
+ this.server.registerConnectionHandler(__assignType(stream => {
440
+ if (stream.clientId === clientId) {
441
+ clearTimeout(timeout);
442
+ resolve(stream.meta);
443
+ }
444
+ }, ['stream', '', 'P"2!"/"']));
445
+ }, ['resolve', 'reject', '', 'P"2!"2""/#'])));
446
+ const customClient = (srpc_1.SrpcClient.Ω = [[() => __ΩTestClientOutput, 'n!'], [() => __ΩTestServerOutput, 'n!']], new srpc_1.SrpcClient(this.logger.scoped('CustomMetaWsClient'), `ws://localhost:${this.httpPort}${TEST_WS_PATH}`, test_1.ClientMessage, test_1.ServerMessage, clientId, customMeta, this.getServerSecret(), { enableReconnect: false }));
447
+ this.logger.info('Connecting custom metadata client');
448
+ await (Promise.Ω = [['$']], new Promise(__assignType(resolve => {
449
+ customClient.registerConnectionHandler(() => resolve());
450
+ customClient.connect();
451
+ }, ['resolve', '', 'P"2!"/"'])));
452
+ this.logger.info('Awaiting metadata capture from server-side connection handler');
453
+ const receivedMeta = await metaPromise;
454
+ const normalizedMeta = Object.fromEntries(Object.entries(receivedMeta).map(__assignType(([key, value]) => [key.toLowerCase(), value], ['param0', '', 'P"2!"/"'])));
455
+ if (normalizedMeta.appversion !== '1.2.3' || normalizedMeta.userid !== 'test-user') {
456
+ throw new Error(`Custom metadata not passed correctly. Got: ${JSON.stringify(normalizedMeta)}`);
457
+ }
458
+ this.logger.info(' ✓ Custom metadata passing');
459
+ customClient.disconnect();
460
+ await (0, helpers_1.sleepSecs)(0.2);
461
+ this.logger.info('[Test End] Custom Metadata');
462
+ }
463
+ async testRawWebsocketClient() {
464
+ this.logger.info('[Test Start] Raw WebSocket Client (backwards compatibility)');
465
+ const secret = this.getServerSecret();
466
+ const clientId = `ws-raw-${Date.now()}`;
467
+ const streamId = (0, helpers_1.uuid7)();
468
+ const authv = 1;
469
+ const appv = '0.0.0';
470
+ const ts = Date.now().toString();
471
+ const signable = `${authv}\n${appv}\n${ts}\n${streamId}\n${clientId}\n`;
472
+ const signature = (0, crypto_1.createHmac)('sha256', secret).update(signable).digest('hex');
473
+ const params = new URLSearchParams({
474
+ authv: String(authv),
475
+ appv,
476
+ ts,
477
+ id: streamId,
478
+ cid: clientId,
479
+ signature
480
+ });
481
+ params.set('m--testEnv', 'testapp-ws');
482
+ const requestId = (0, helpers_1.uuid7)();
483
+ const requestBuffer = test_1.ClientMessage.encode({
484
+ requestId,
485
+ reply: false,
486
+ uEchoRequest: { message: 'Hello via raw WS' }
487
+ }).finish();
488
+ const pongBuffer = test_1.ClientMessage.encode({ requestId: '', reply: false, pingPong: {} }).finish();
489
+ await (Promise.Ω = [['$']], new Promise(__assignType((resolve, reject) => {
490
+ const wsUrl = `ws://localhost:${this.httpPort}${TEST_WS_PATH}?${params.toString()}`;
491
+ const ws = new ws_1.default(wsUrl);
492
+ const finish = __assignType((err) => {
493
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
494
+ if (ws._finished)
495
+ return;
496
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
497
+ ws._finished = true;
498
+ clearTimeout(timeout);
499
+ if (err) {
500
+ reject(err);
501
+ }
502
+ else {
503
+ resolve();
504
+ }
505
+ }, [() => __ΩError, 'err', '', 'Pn!2"8"/#']);
506
+ ws.once('error', __assignType(err => {
507
+ finish(err instanceof Error ? err : new Error(String(err)));
508
+ }, ['err', '', 'P"2!"/"']));
509
+ ws.on('close', __assignType(code => {
510
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
511
+ if (!ws._finished) {
512
+ finish(new Error(`WebSocket closed prematurely (code: ${code})`));
513
+ }
514
+ }, ['code', '', 'P"2!"/"']));
515
+ let requestSent = false;
516
+ ws.on('message', __assignType(data => {
517
+ if (!(data instanceof Buffer))
518
+ return;
519
+ const message = test_1.ServerMessage.decode(data);
520
+ if (message.pingPong) {
521
+ ws.send(pongBuffer);
522
+ if (!requestSent) {
523
+ ws.send(requestBuffer);
524
+ requestSent = true;
525
+ }
526
+ return;
527
+ }
528
+ if (message.reply && message.uEchoResponse) {
529
+ if (message.uEchoResponse.message !== 'Echo: Hello via raw WS') {
530
+ finish(new Error(`Unexpected WebSocket echo response: ${message.uEchoResponse.message}`));
531
+ ws.close();
532
+ return;
533
+ }
534
+ ws.close(1000);
535
+ finish();
536
+ }
537
+ }, ['data', '', 'P"2!"/"']));
538
+ const timeout = setTimeout(() => {
539
+ ws.close();
540
+ finish(new Error('WebSocket SRPC test timed out'));
541
+ }, 5000);
542
+ }, ['resolve', 'reject', '', 'P"2!"2""/#'])));
543
+ this.logger.info(' ✓ Raw WebSocket echo request');
544
+ this.logger.info('[Test End] Raw WebSocket Client (backwards compatibility)');
545
+ }
546
+ getServerSecret() {
547
+ const secret = this.appConfig.SRPC_AUTH_SECRET;
548
+ if (!secret) {
549
+ throw new Error('SRPC authentication secret is not configured in AppConfig');
550
+ }
551
+ return secret;
552
+ }
553
+ async waitForEvent(predicate, timeoutMs, errorMessage) {
554
+ const deadline = Date.now() + timeoutMs;
555
+ while (Date.now() < deadline) {
556
+ if (predicate())
557
+ return;
558
+ await (0, helpers_1.sleepSecs)(0.05);
559
+ }
560
+ throw new Error(errorMessage);
561
+ }
562
+ };
563
+ exports.SrpcTesterService = SrpcTesterService;
564
+ SrpcTesterService.__type = [() => __ΩSrpcMeta, () => __ΩTestClientOutput, () => __ΩTestServerOutput, () => srpc_1.SrpcServer, 'server', () => __ΩSrpcStream, 'connectedStream', 'testsCompleted', function () { return false; }, 'testsFailed', function () { return false; }, () => __ΩScopedLogger, 'logger', () => app_1.BaseAppConfig, 'appConfig', () => framework_1.ApplicationServer, 'appServer', 'constructor', 'setupServerHandlers', 'clientId', 'autoConnect', () => __ΩTestClientOutput, () => __ΩTestServerOutput, () => srpc_1.SrpcClient, 'createClient', 'runTests', 'testConnectionAndAuthentication', 'testClientToServerRPC', 'testServerToClientRPC', 'testByteStreams', 'testConnectionLifecycle', 'testCustomMetadata', 'testRawWebsocketClient', 'getServerSecret', '', 'predicate', 'timeoutMs', 'errorMessage', 'waitForEvent', 'SrpcTesterService', 'Pn!n"n#7$3%;Pn&-J3\';)3(>))3*>+Pn,2-;P7.2/;P7021;"02!P"03;P&24"25Pn6n778`09;P"0:;P"0;;P"0<;P"0=;P"0>;P"0?;P"0@;P"0A;P"0B;PP)/C2D\'2E&2F"0G;5wH'];
565
+ exports.SrpcTesterService = SrpcTesterService = tslib_1.__decorate([
566
+ (0, app_1.AutoStart)(),
567
+ tslib_1.__metadata("design:paramtypes", [Object, app_1.BaseAppConfig,
568
+ framework_1.ApplicationServer])
569
+ ], SrpcTesterService);
570
+ //# sourceMappingURL=srpc-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srpc-test.js","sourceRoot":"","sources":["../../../src/testapp/srpc-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ declare const ASYMMETRIC_MATCHER: unique symbol;
2
+ interface AsymmetricMatcher {
3
+ [ASYMMETRIC_MATCHER]: true;
4
+ check(value: unknown): boolean;
5
+ toString(): string;
6
+ }
7
+ export declare function matchesObject(actual: unknown, expected: unknown): void;
8
+ export declare function anyOf(Type: new (...args: any[]) => any): AsymmetricMatcher;
9
+ export declare function arrayContaining(expected: unknown[]): AsymmetricMatcher;
10
+ export declare function stringContaining(expected: string): AsymmetricMatcher;
11
+ export declare function objectContaining(expected: Record<string, unknown>): AsymmetricMatcher;
12
+ export declare function anything(): AsymmetricMatcher;
13
+ /**
14
+ * Assert that a mock was called with the given arguments at least once.
15
+ * Works with node:test mock.fn() and mock.method() return values.
16
+ */
17
+ export declare function assertCalledWith(mockFn: {
18
+ mock: {
19
+ calls: {
20
+ arguments: unknown[];
21
+ }[];
22
+ };
23
+ }, ...expectedArgs: unknown[]): void;
24
+ export {};
25
+ //# sourceMappingURL=expect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../../src/testing/expect.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,kBAAkB,eAAkC,CAAC;AAE3D,UAAU,iBAAiB;IACvB,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;IAC3B,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/B,QAAQ,IAAI,MAAM,CAAC;CACtB;AA4CD,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAMtE;AAGD,wBAAgB,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,iBAAiB,CAY1E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAWtE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAUpE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAWrF;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAU5C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE;QAAE,KAAK,EAAE;YAAE,SAAS,EAAE,OAAO,EAAE,CAAA;SAAE,EAAE,CAAA;KAAE,CAAA;CAAE,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,GAAG,IAAI,CAiB1H"}