@effect-app/infra 4.0.0-beta.248 → 4.0.0-beta.249

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 (377) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/dist/ContextProvider.d.ts +34 -0
  3. package/dist/ContextProvider.d.ts.map +1 -0
  4. package/dist/ContextProvider.js +40 -0
  5. package/dist/Emailer/Sendgrid.d.ts +109 -145
  6. package/dist/Emailer/Sendgrid.d.ts.map +1 -1
  7. package/dist/Emailer/Sendgrid.js +4 -3
  8. package/dist/Emailer/fake.d.ts +2 -2
  9. package/dist/Emailer/fake.d.ts.map +1 -1
  10. package/dist/Emailer/fake.js +2 -2
  11. package/dist/QueueMaker/SQLQueue.d.ts +2 -2
  12. package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
  13. package/dist/QueueMaker/SQLQueue.js +4 -4
  14. package/dist/QueueMaker/memQueue.d.ts +2 -2
  15. package/dist/QueueMaker/memQueue.d.ts.map +1 -1
  16. package/dist/QueueMaker/memQueue.js +4 -4
  17. package/dist/QueueMaker/sbqueue.d.ts +2 -2
  18. package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
  19. package/dist/QueueMaker/sbqueue.js +4 -4
  20. package/dist/RequestFiberSet.js +2 -2
  21. package/dist/{adapters/SQL → SQL}/Model.d.ts +2 -2
  22. package/dist/SQL/Model.d.ts.map +1 -0
  23. package/dist/SQL/Model.js +469 -0
  24. package/dist/{adapters/SQL.d.ts → SQL.d.ts} +1 -1
  25. package/dist/SQL.d.ts.map +1 -0
  26. package/dist/{adapters/SQL.js → SQL.js} +1 -1
  27. package/dist/{adapters/ServiceBus.d.ts → ServiceBus.d.ts} +1 -1
  28. package/dist/ServiceBus.d.ts.map +1 -0
  29. package/dist/ServiceBus.js +108 -0
  30. package/dist/Store/ContextMapContainer.d.ts +2 -2
  31. package/dist/Store/ContextMapContainer.d.ts.map +1 -1
  32. package/dist/Store/ContextMapContainer.js +2 -2
  33. package/dist/Store/Cosmos/query.d.ts +4 -4
  34. package/dist/Store/Cosmos/query.d.ts.map +1 -1
  35. package/dist/Store/Cosmos/query.js +1 -1
  36. package/dist/Store/Cosmos.d.ts +2 -2
  37. package/dist/Store/Cosmos.d.ts.map +1 -1
  38. package/dist/Store/Cosmos.js +3 -3
  39. package/dist/Store/Disk.d.ts +3 -3
  40. package/dist/Store/Disk.d.ts.map +1 -1
  41. package/dist/Store/Disk.js +2 -2
  42. package/dist/Store/Memory.d.ts +3 -3
  43. package/dist/Store/Memory.d.ts.map +1 -1
  44. package/dist/Store/Memory.js +2 -2
  45. package/dist/Store/SQL/Pg.d.ts +2 -2
  46. package/dist/Store/SQL/Pg.d.ts.map +1 -1
  47. package/dist/Store/SQL/Pg.js +2 -2
  48. package/dist/Store/SQL/query.d.ts +3 -3
  49. package/dist/Store/SQL/query.d.ts.map +1 -1
  50. package/dist/Store/SQL/query.js +1 -1
  51. package/dist/Store/SQL.d.ts +3 -3
  52. package/dist/Store/SQL.d.ts.map +1 -1
  53. package/dist/Store/SQL.js +2 -2
  54. package/dist/Store/codeFilter.d.ts +4 -4
  55. package/dist/Store/codeFilter.d.ts.map +1 -1
  56. package/dist/Store/codeFilter.js +1 -1
  57. package/dist/Store/index.d.ts +3 -4
  58. package/dist/Store/index.d.ts.map +1 -1
  59. package/dist/Store/index.js +2 -3
  60. package/dist/Store/utils.d.ts +2 -2
  61. package/dist/Store/utils.d.ts.map +1 -1
  62. package/dist/Store/utils.js +1 -1
  63. package/dist/{api/codec.d.ts → codec.d.ts} +1 -1
  64. package/dist/codec.d.ts.map +1 -0
  65. package/dist/codec.js +5 -0
  66. package/dist/{adapters/cosmos-client.d.ts → cosmos-client.d.ts} +1 -1
  67. package/dist/cosmos-client.d.ts.map +1 -0
  68. package/dist/cosmos-client.js +11 -0
  69. package/dist/errorReporter.d.ts +1 -1
  70. package/dist/errorReporter.d.ts.map +1 -1
  71. package/dist/errorReporter.js +2 -2
  72. package/dist/index.d.ts +3 -2
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +3 -2
  75. package/dist/{api/internal → internal}/RequestContextMiddleware.d.ts +2 -2
  76. package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
  77. package/dist/internal/RequestContextMiddleware.js +46 -0
  78. package/dist/{api/internal → internal}/auth.d.ts +1 -1
  79. package/dist/internal/auth.d.ts.map +1 -0
  80. package/dist/internal/auth.js +180 -0
  81. package/dist/{api/internal → internal}/events.d.ts +1 -1
  82. package/dist/internal/events.d.ts.map +1 -0
  83. package/dist/internal/events.js +49 -0
  84. package/dist/{api/internal → internal}/health.d.ts +1 -1
  85. package/dist/internal/health.d.ts.map +1 -0
  86. package/dist/internal/health.js +5 -0
  87. package/dist/layerUtils.d.ts +32 -0
  88. package/dist/layerUtils.d.ts.map +1 -0
  89. package/dist/layerUtils.js +17 -0
  90. package/dist/logger/jsonLogger.d.ts +1 -1
  91. package/dist/logger/jsonLogger.d.ts.map +1 -1
  92. package/dist/logger/jsonLogger.js +2 -2
  93. package/dist/logger/logFmtLogger.d.ts +1 -1
  94. package/dist/logger/logFmtLogger.d.ts.map +1 -1
  95. package/dist/logger/logFmtLogger.js +2 -2
  96. package/dist/logger/shared.d.ts +2 -2
  97. package/dist/logger/shared.d.ts.map +1 -1
  98. package/dist/logger/shared.js +2 -2
  99. package/dist/{adapters/memQueue.d.ts → memQueue.d.ts} +1 -1
  100. package/dist/memQueue.d.ts.map +1 -0
  101. package/dist/memQueue.js +21 -0
  102. package/dist/{api/middlewares.d.ts → middlewares.d.ts} +1 -1
  103. package/dist/middlewares.d.ts.map +1 -0
  104. package/dist/{api/middlewares.js → middlewares.js} +1 -1
  105. package/dist/{adapters/mongo-client.d.ts → mongo-client.d.ts} +1 -1
  106. package/dist/mongo-client.d.ts.map +1 -0
  107. package/dist/mongo-client.js +15 -0
  108. package/dist/{adapters/redis-client.d.ts → redis-client.d.ts} +1 -1
  109. package/dist/redis-client.d.ts.map +1 -0
  110. package/dist/redis-client.js +98 -0
  111. package/dist/reportError.d.ts +4 -0
  112. package/dist/reportError.d.ts.map +1 -0
  113. package/dist/reportError.js +28 -0
  114. package/dist/{api/routing → routing}/middleware/RouterMiddleware.d.ts +1 -1
  115. package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
  116. package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
  117. package/dist/{api/routing → routing}/middleware/middleware.d.ts +2 -2
  118. package/dist/routing/middleware/middleware.d.ts.map +1 -0
  119. package/dist/routing/middleware/middleware.js +128 -0
  120. package/dist/{api/routing → routing}/middleware.d.ts +1 -1
  121. package/dist/routing/middleware.d.ts.map +1 -0
  122. package/dist/{api/routing → routing}/middleware.js +1 -1
  123. package/dist/{api/routing → routing}/schema/jwt.d.ts +1 -1
  124. package/dist/routing/schema/jwt.d.ts.map +1 -0
  125. package/dist/routing/schema/jwt.js +13 -0
  126. package/dist/routing/tsort.d.ts +8 -0
  127. package/dist/routing/tsort.d.ts.map +1 -0
  128. package/dist/routing/tsort.js +51 -0
  129. package/dist/{api/routing → routing}/utils.d.ts +1 -1
  130. package/dist/routing/utils.d.ts.map +1 -0
  131. package/dist/routing/utils.js +45 -0
  132. package/dist/routing.d.ts +184 -0
  133. package/dist/routing.d.ts.map +1 -0
  134. package/dist/{api/routing.js → routing.js} +1 -1
  135. package/dist/{api/setupRequest.d.ts → setupRequest.d.ts} +2 -2
  136. package/dist/setupRequest.d.ts.map +1 -0
  137. package/dist/setupRequest.js +70 -0
  138. package/dist/{api/util.d.ts → util.d.ts} +1 -1
  139. package/dist/util.d.ts.map +1 -0
  140. package/dist/util.js +14 -0
  141. package/examples/query.ts +2 -2
  142. package/package.json +84 -200
  143. package/src/Emailer/Sendgrid.ts +20 -5
  144. package/src/Emailer/fake.ts +1 -1
  145. package/src/QueueMaker/SQLQueue.ts +3 -3
  146. package/src/QueueMaker/memQueue.ts +3 -3
  147. package/src/QueueMaker/sbqueue.ts +3 -3
  148. package/src/RequestFiberSet.ts +1 -1
  149. package/src/{adapters/SQL → SQL}/Model.ts +1 -1
  150. package/src/{adapters/ServiceBus.ts → ServiceBus.ts} +1 -1
  151. package/src/Store/ContextMapContainer.ts +1 -1
  152. package/src/Store/Cosmos/query.ts +3 -3
  153. package/src/Store/Cosmos.ts +4 -4
  154. package/src/Store/Disk.ts +2 -2
  155. package/src/Store/Memory.ts +4 -4
  156. package/src/Store/SQL/Pg.ts +3 -3
  157. package/src/Store/SQL/query.ts +2 -2
  158. package/src/Store/SQL.ts +3 -3
  159. package/src/Store/codeFilter.ts +3 -3
  160. package/src/Store/index.ts +2 -4
  161. package/src/Store/utils.ts +1 -1
  162. package/src/errorReporter.ts +1 -1
  163. package/src/index.ts +2 -1
  164. package/src/{api/internal → internal}/RequestContextMiddleware.ts +3 -3
  165. package/src/{api/internal → internal}/events.ts +2 -2
  166. package/src/{api/layerUtils.ts → layerUtils.ts} +1 -1
  167. package/src/logger/jsonLogger.ts +1 -1
  168. package/src/logger/logFmtLogger.ts +1 -1
  169. package/src/logger/shared.ts +1 -1
  170. package/src/{adapters/redis-client.ts → redis-client.ts} +1 -1
  171. package/src/{api/reportError.ts → reportError.ts} +1 -1
  172. package/src/{api/routing → routing}/middleware/middleware.ts +4 -4
  173. package/src/{api/setupRequest.ts → setupRequest.ts} +3 -3
  174. package/test/auth.test.ts +1 -1
  175. package/test/contextProvider.test.ts +1 -1
  176. package/test/controller.test.ts +3 -3
  177. package/test/cosmos-query.test.ts +1 -1
  178. package/test/dist/controller.test.d.ts.map +1 -1
  179. package/test/dist/query.test.d.ts.map +1 -1
  180. package/test/dist/rawQuery.test.d.ts.map +1 -1
  181. package/test/layerUtils.test.ts +1 -1
  182. package/test/query.test.ts +4 -4
  183. package/test/rawQuery.test.ts +4 -4
  184. package/test/repository-ext.test.ts +3 -3
  185. package/test/router-generator.test.ts +3 -3
  186. package/test/routing-interruptibility.test.ts +2 -2
  187. package/test/rpc-context-map-streaming.test.ts +3 -3
  188. package/test/rpc-e2e-invalidation.test.ts +2 -2
  189. package/test/rpc-multi-middleware.test.ts +1 -1
  190. package/test/rpc-stream-fullstack.test.ts +2 -2
  191. package/test/validateSample.test.ts +3 -3
  192. package/dist/Emailer/service.d.ts +0 -64
  193. package/dist/Emailer/service.d.ts.map +0 -1
  194. package/dist/Emailer/service.js +0 -7
  195. package/dist/Emailer.d.ts +0 -2
  196. package/dist/Emailer.d.ts.map +0 -1
  197. package/dist/Emailer.js +0 -2
  198. package/dist/Model/Repository/Registry.d.ts +0 -21
  199. package/dist/Model/Repository/Registry.d.ts.map +0 -1
  200. package/dist/Model/Repository/Registry.js +0 -18
  201. package/dist/Model/Repository/ext.d.ts +0 -60
  202. package/dist/Model/Repository/ext.d.ts.map +0 -1
  203. package/dist/Model/Repository/ext.js +0 -122
  204. package/dist/Model/Repository/internal/internal.d.ts +0 -62
  205. package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
  206. package/dist/Model/Repository/internal/internal.js +0 -398
  207. package/dist/Model/Repository/legacy.d.ts +0 -21
  208. package/dist/Model/Repository/legacy.d.ts.map +0 -1
  209. package/dist/Model/Repository/legacy.js +0 -2
  210. package/dist/Model/Repository/makeRepo.d.ts +0 -53
  211. package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
  212. package/dist/Model/Repository/makeRepo.js +0 -27
  213. package/dist/Model/Repository/service.d.ts +0 -97
  214. package/dist/Model/Repository/service.d.ts.map +0 -1
  215. package/dist/Model/Repository/service.js +0 -2
  216. package/dist/Model/Repository/validation.d.ts +0 -71
  217. package/dist/Model/Repository/validation.d.ts.map +0 -1
  218. package/dist/Model/Repository/validation.js +0 -32
  219. package/dist/Model/Repository.d.ts +0 -7
  220. package/dist/Model/Repository.d.ts.map +0 -1
  221. package/dist/Model/Repository.js +0 -7
  222. package/dist/Model/dsl.d.ts +0 -33
  223. package/dist/Model/dsl.d.ts.map +0 -1
  224. package/dist/Model/dsl.js +0 -43
  225. package/dist/Model/filter/filterApi.d.ts +0 -30
  226. package/dist/Model/filter/filterApi.d.ts.map +0 -1
  227. package/dist/Model/filter/filterApi.js +0 -2
  228. package/dist/Model/filter/types/errors.d.ts +0 -29
  229. package/dist/Model/filter/types/errors.d.ts.map +0 -1
  230. package/dist/Model/filter/types/errors.js +0 -2
  231. package/dist/Model/filter/types/fields.d.ts +0 -15
  232. package/dist/Model/filter/types/fields.d.ts.map +0 -1
  233. package/dist/Model/filter/types/fields.js +0 -2
  234. package/dist/Model/filter/types/path/common.d.ts +0 -316
  235. package/dist/Model/filter/types/path/common.d.ts.map +0 -1
  236. package/dist/Model/filter/types/path/common.js +0 -2
  237. package/dist/Model/filter/types/path/eager.d.ts +0 -95
  238. package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
  239. package/dist/Model/filter/types/path/eager.js +0 -31
  240. package/dist/Model/filter/types/path/index.d.ts +0 -4
  241. package/dist/Model/filter/types/path/index.d.ts.map +0 -1
  242. package/dist/Model/filter/types/path/index.js +0 -3
  243. package/dist/Model/filter/types/utils.d.ts +0 -79
  244. package/dist/Model/filter/types/utils.d.ts.map +0 -1
  245. package/dist/Model/filter/types/utils.js +0 -2
  246. package/dist/Model/filter/types/validator.d.ts +0 -30
  247. package/dist/Model/filter/types/validator.d.ts.map +0 -1
  248. package/dist/Model/filter/types/validator.js +0 -2
  249. package/dist/Model/filter/types.d.ts +0 -5
  250. package/dist/Model/filter/types.d.ts.map +0 -1
  251. package/dist/Model/filter/types.js +0 -7
  252. package/dist/Model/query/dsl.d.ts +0 -446
  253. package/dist/Model/query/dsl.d.ts.map +0 -1
  254. package/dist/Model/query/dsl.js +0 -339
  255. package/dist/Model/query/new-kid-interpreter.d.ts +0 -136
  256. package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
  257. package/dist/Model/query/new-kid-interpreter.js +0 -336
  258. package/dist/Model/query.d.ts +0 -15
  259. package/dist/Model/query.d.ts.map +0 -1
  260. package/dist/Model/query.js +0 -3
  261. package/dist/Model.d.ts +0 -5
  262. package/dist/Model.d.ts.map +0 -1
  263. package/dist/Model.js +0 -5
  264. package/dist/QueueMaker/service.d.ts +0 -13
  265. package/dist/QueueMaker/service.d.ts.map +0 -1
  266. package/dist/QueueMaker/service.js +0 -4
  267. package/dist/RequestContext.d.ts +0 -103
  268. package/dist/RequestContext.d.ts.map +0 -1
  269. package/dist/RequestContext.js +0 -49
  270. package/dist/Store/service.d.ts +0 -138
  271. package/dist/Store/service.d.ts.map +0 -1
  272. package/dist/Store/service.js +0 -95
  273. package/dist/Store.d.ts +0 -2
  274. package/dist/Store.d.ts.map +0 -1
  275. package/dist/Store.js +0 -2
  276. package/dist/adapters/SQL/Model.d.ts.map +0 -1
  277. package/dist/adapters/SQL/Model.js +0 -469
  278. package/dist/adapters/SQL.d.ts.map +0 -1
  279. package/dist/adapters/ServiceBus.d.ts.map +0 -1
  280. package/dist/adapters/ServiceBus.js +0 -108
  281. package/dist/adapters/cosmos-client.d.ts.map +0 -1
  282. package/dist/adapters/cosmos-client.js +0 -11
  283. package/dist/adapters/index.d.ts +0 -8
  284. package/dist/adapters/index.d.ts.map +0 -1
  285. package/dist/adapters/index.js +0 -8
  286. package/dist/adapters/logger.d.ts +0 -9
  287. package/dist/adapters/logger.d.ts.map +0 -1
  288. package/dist/adapters/logger.js +0 -3
  289. package/dist/adapters/memQueue.d.ts.map +0 -1
  290. package/dist/adapters/memQueue.js +0 -21
  291. package/dist/adapters/mongo-client.d.ts.map +0 -1
  292. package/dist/adapters/mongo-client.js +0 -15
  293. package/dist/adapters/redis-client.d.ts.map +0 -1
  294. package/dist/adapters/redis-client.js +0 -98
  295. package/dist/api/ContextProvider.d.ts +0 -34
  296. package/dist/api/ContextProvider.d.ts.map +0 -1
  297. package/dist/api/ContextProvider.js +0 -40
  298. package/dist/api/codec.d.ts.map +0 -1
  299. package/dist/api/codec.js +0 -5
  300. package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
  301. package/dist/api/internal/RequestContextMiddleware.js +0 -46
  302. package/dist/api/internal/auth.d.ts.map +0 -1
  303. package/dist/api/internal/auth.js +0 -180
  304. package/dist/api/internal/events.d.ts.map +0 -1
  305. package/dist/api/internal/events.js +0 -49
  306. package/dist/api/internal/health.d.ts.map +0 -1
  307. package/dist/api/internal/health.js +0 -5
  308. package/dist/api/layerUtils.d.ts +0 -32
  309. package/dist/api/layerUtils.d.ts.map +0 -1
  310. package/dist/api/layerUtils.js +0 -17
  311. package/dist/api/middlewares.d.ts.map +0 -1
  312. package/dist/api/reportError.d.ts +0 -4
  313. package/dist/api/reportError.d.ts.map +0 -1
  314. package/dist/api/reportError.js +0 -28
  315. package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
  316. package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
  317. package/dist/api/routing/middleware/middleware.js +0 -128
  318. package/dist/api/routing/middleware.d.ts.map +0 -1
  319. package/dist/api/routing/schema/jwt.d.ts.map +0 -1
  320. package/dist/api/routing/schema/jwt.js +0 -13
  321. package/dist/api/routing/tsort.d.ts +0 -8
  322. package/dist/api/routing/tsort.d.ts.map +0 -1
  323. package/dist/api/routing/tsort.js +0 -51
  324. package/dist/api/routing/utils.d.ts.map +0 -1
  325. package/dist/api/routing/utils.js +0 -45
  326. package/dist/api/routing.d.ts +0 -184
  327. package/dist/api/routing.d.ts.map +0 -1
  328. package/dist/api/setupRequest.d.ts.map +0 -1
  329. package/dist/api/setupRequest.js +0 -70
  330. package/dist/api/util.d.ts.map +0 -1
  331. package/dist/api/util.js +0 -14
  332. package/src/Emailer/service.ts +0 -62
  333. package/src/Emailer.ts +0 -1
  334. package/src/Model/Repository/Registry.ts +0 -34
  335. package/src/Model/Repository/ext.ts +0 -375
  336. package/src/Model/Repository/internal/internal.ts +0 -692
  337. package/src/Model/Repository/legacy.ts +0 -29
  338. package/src/Model/Repository/makeRepo.ts +0 -144
  339. package/src/Model/Repository/service.ts +0 -639
  340. package/src/Model/Repository/validation.ts +0 -31
  341. package/src/Model/Repository.ts +0 -6
  342. package/src/Model/dsl.ts +0 -129
  343. package/src/Model/filter/filterApi.ts +0 -60
  344. package/src/Model/filter/types/errors.ts +0 -47
  345. package/src/Model/filter/types/fields.ts +0 -50
  346. package/src/Model/filter/types/path/common.ts +0 -404
  347. package/src/Model/filter/types/path/eager.ts +0 -297
  348. package/src/Model/filter/types/path/index.ts +0 -4
  349. package/src/Model/filter/types/utils.ts +0 -128
  350. package/src/Model/filter/types/validator.ts +0 -46
  351. package/src/Model/filter/types.ts +0 -6
  352. package/src/Model/query/dsl.ts +0 -2546
  353. package/src/Model/query/new-kid-interpreter.ts +0 -484
  354. package/src/Model/query.ts +0 -13
  355. package/src/Model.ts +0 -4
  356. package/src/QueueMaker/service.ts +0 -19
  357. package/src/RequestContext.ts +0 -62
  358. package/src/Store/service.ts +0 -233
  359. package/src/Store.ts +0 -1
  360. package/src/adapters/index.ts +0 -7
  361. package/src/adapters/logger.ts +0 -3
  362. /package/src/{api/ContextProvider.ts → ContextProvider.ts} +0 -0
  363. /package/src/{adapters/SQL.ts → SQL.ts} +0 -0
  364. /package/src/{api/codec.ts → codec.ts} +0 -0
  365. /package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +0 -0
  366. /package/src/{api/internal → internal}/auth.ts +0 -0
  367. /package/src/{api/internal → internal}/health.ts +0 -0
  368. /package/src/{adapters/memQueue.ts → memQueue.ts} +0 -0
  369. /package/src/{api/middlewares.ts → middlewares.ts} +0 -0
  370. /package/src/{adapters/mongo-client.ts → mongo-client.ts} +0 -0
  371. /package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +0 -0
  372. /package/src/{api/routing → routing}/middleware.ts +0 -0
  373. /package/src/{api/routing → routing}/schema/jwt.ts +0 -0
  374. /package/src/{api/routing → routing}/tsort.ts +0 -0
  375. /package/src/{api/routing → routing}/utils.ts +0 -0
  376. /package/src/{api/routing.ts → routing.ts} +0 -0
  377. /package/src/{api/util.ts → util.ts} +0 -0
@@ -1,297 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { expectTypeOf } from "@effect/vitest"
3
- import type { FieldValues } from "../fields.js"
4
- import type { BrowserNativeObject, Equals, IsLiteral, IsNever, Primitive } from "../utils.js"
5
-
6
- import type { ArrayKey, IsTuple, TupleKeys } from "./common.js"
7
-
8
- /**
9
- * Helper type for recursively constructing paths through a type.
10
- * See {@link Path}
11
- */
12
- type PathImpl<K extends string | number, V> = V extends
13
- | Primitive
14
- | BrowserNativeObject ? `${K}`
15
- : `${K}` | `${K}.${Path<V>}`
16
-
17
- /**
18
- * Type which eagerly collects all paths through a type
19
- * @typeParam T - type which should be introspected
20
- * @example
21
- * ```
22
- * Path<{foo: {bar: string}}> = 'foo' | 'foo.bar'
23
- * ```
24
- */
25
- export type Path<T> = T extends ReadonlyArray<infer V> ? IsTuple<T> extends true ? {
26
- [K in TupleKeys<T>]-?: PathImpl<K & string, T[K]> | "length"
27
- }[TupleKeys<T>]
28
- : PathImpl<ArrayKey, V> | "length"
29
- : {
30
- [K in keyof T]-?: PathImpl<K & string, T[K]>
31
- }[keyof T]
32
-
33
- /**
34
- * See {@link Path}
35
- */
36
- export type FieldPath<TFieldValues extends FieldValues> = Path<TFieldValues>
37
-
38
- /**
39
- * Type to evaluate the type which the given path points to.
40
- * @typeParam T - deeply nested type which is indexed by the path
41
- * @typeParam P - path into the deeply nested type
42
- * @example
43
- * ```
44
- * PathValue<{foo: {bar: string}}, 'foo.bar'> = string
45
- * PathValue<[number, string], '1'> = string
46
- * ```
47
- */
48
- /* dprint-ignore-start */
49
- export type PathValue<T, P extends Path<T>> =
50
- T extends any
51
- ? P extends `${infer K}.${infer R}`
52
- ? K extends keyof T
53
- ? R extends Path<T[K]>
54
- ? PathValue<T[K], R>
55
- : never
56
- : K extends `${ArrayKey}`
57
- ? T extends ReadonlyArray<infer V>
58
- ? PathValue<V, R & Path<V>>
59
- : never
60
- : never
61
- : P extends keyof T
62
- ? T[P]
63
- : P extends `${ArrayKey}`
64
- ? T extends ReadonlyArray<infer V>
65
- ? V
66
- : never
67
- : never
68
- : never
69
- /* dprint-ignore-end */
70
-
71
- /**
72
- * See {@link PathValue}
73
- */
74
- export type FieldPathValue<
75
- TFieldValues extends FieldValues,
76
- TFieldPath extends FieldPath<TFieldValues>
77
- > = PathValue<TFieldValues, TFieldPath>
78
-
79
- /* dprint-ignore-start */
80
- export type SetPathValue<T, P extends Path<T>, X> =
81
- T extends any
82
- ? P extends `${infer K}.${infer R}`
83
- ? K extends keyof T
84
- ? R extends Path<T[K]>
85
- ? { [_ in keyof T]: _ extends K ? SetPathValue<T[K], R, X> : T[_] }
86
- : never
87
- : K extends `${ArrayKey}`
88
- ? T extends ReadonlyArray<infer V>
89
- ? { [_ in keyof T]: SetPathValue<V, R & Path<V>, X> }
90
- : never
91
- : never
92
- : P extends keyof T
93
- ? { [_ in keyof T]: _ extends P ? X : T[_] }
94
- : P extends `${ArrayKey}`
95
- ? T extends ReadonlyArray<any>
96
- ? { [_ in keyof T]: X }
97
- : never
98
- : never
99
- : never
100
- /* dprint-ignore-end */
101
-
102
- export type SetFieldPathValue<
103
- TFieldValues extends FieldValues,
104
- TFieldPath extends FieldPath<TFieldValues>,
105
- X
106
- > = SetPathValue<TFieldValues, TFieldPath, X>
107
-
108
- /* dprint-ignore-start */
109
- export type RefinePathValue<T, P extends Path<T>, X extends string | number | boolean | null | bigint, Exclde extends boolean = false> =
110
- T extends any
111
- // recursive cases
112
- ? P extends `${infer K}.${infer R}`
113
- ? K extends keyof T
114
- ? R extends Path<T[K]>
115
- ? { [_ in keyof T]: _ extends K ? RefinePathValue<T[K], R, X, Exclde> : T[_] }
116
- : never
117
- : K extends `${ArrayKey}`
118
- ? T extends ReadonlyArray<infer V>
119
- ? { [_ in keyof T]: RefinePathValue<V, R & Path<V>, X, Exclde> }
120
- : never
121
- : never
122
- // base cases
123
- : P extends keyof T
124
- ? X extends T[P]
125
- ? ({ [_ in keyof T]: _ extends P
126
- ? Equals<
127
- Exclde,
128
- true,
129
- Exclude<T[_], X>,
130
- IsLiteral<T[_], X, Equals<X, null, null, NonNullable<T[_]>>>
131
- >
132
- : T[_]
133
- }) extends infer $T
134
- ? Equals<IsNever<$T[P & keyof $T]>, true, never, $T>
135
- : never
136
- : Equals<Exclde, true, T, never>
137
- : P extends `${ArrayKey}`
138
- ? T extends ReadonlyArray<infer V>
139
- ? X extends V
140
- ? { [_ in keyof T]: Equals<
141
- Exclde,
142
- true,
143
- Exclude<T[_], X>,
144
- IsLiteral<T[_], X, Equals<X, null, null, NonNullable<T[_]>>>
145
- > }
146
- : never
147
- : never
148
- : never
149
- : never
150
- /* dprint-ignore-end */
151
-
152
- export type EraseNeverContainingUnionElements<T> = T extends any ? {
153
- [K in keyof T]: IsNever<T[K]> extends true ? true : false
154
- } extends infer $NC ? true extends $NC[keyof $NC] ? never : T
155
- : never : never
156
-
157
- export type RefineFieldPathValue<
158
- TFieldValues extends FieldValues,
159
- TFieldPath extends FieldPath<TFieldValues>,
160
- X extends string | number | boolean | null | bigint,
161
- Exclde extends boolean = false
162
- > = EraseNeverContainingUnionElements<RefinePathValue<TFieldValues, TFieldPath, X, Exclde>>
163
-
164
- export namespace RefinePathValueTests {
165
- type test1 = RefineFieldPathValue<{ a: { b: "tag1"; v1: string } | { b: "tag2"; v2: number } }, "a.b", "tag1">
166
- expectTypeOf<test1>().toEqualTypeOf<{ a: { b: "tag1"; v1: string } }>()
167
-
168
- type test2 = RefineFieldPathValue<{ b: "tag1"; v1: string } | { b: "tag2"; v2: number }, "b", "tag1">
169
- expectTypeOf<test2>().toEqualTypeOf<{ b: "tag1"; v1: string }>()
170
-
171
- type test3 = RefineFieldPathValue<{ b: "tag1" | "tag2" }, "b", "tag1">
172
- expectTypeOf<test3>().toEqualTypeOf<{ b: "tag1" }>()
173
-
174
- type test4 = RefineFieldPathValue<{ b: ("tag1" | "tag2")[] }, `b.${number}`, "tag1">
175
- expectTypeOf<test4>().toEqualTypeOf<{ b: "tag1"[] }>()
176
-
177
- type test5 = RefineFieldPathValue<{ b: "tag1"; v1: unknown } | { b: "tag2"; v2: unknown }, "b", "tag1">
178
- expectTypeOf<test5>().toEqualTypeOf<{ b: "tag1"; v1: unknown }>()
179
-
180
- type test6 = RefineFieldPathValue<
181
- { a: { b: "tag1"; v1: string } | { b: "tag2"; v2: number } } | { something: "else " },
182
- "a.b",
183
- "tag2"
184
- >
185
- expectTypeOf<test6>().toEqualTypeOf<{ a: { b: "tag2"; v2: number } }>()
186
-
187
- type test7 = RefineFieldPathValue<{ b: string | null }, "b", "tag1">
188
- expectTypeOf<test7>().toEqualTypeOf<{ b: string }>()
189
-
190
- type test8 = RefineFieldPathValue<{ b: string | null }, "b", null>
191
- expectTypeOf<test8>().toEqualTypeOf<{ b: null }>()
192
-
193
- type test1E = RefineFieldPathValue<{ a: { b: "tag1"; v1: string } | { b: "tag2"; v2: number } }, "a.b", "tag1", true>
194
- expectTypeOf<test1E>().toEqualTypeOf<{ a: { b: "tag2"; v2: number } }>()
195
-
196
- type test2E = RefineFieldPathValue<{ b: "tag1"; v1: string } | { b: "tag2"; v2: number }, "b", "tag2", true>
197
- expectTypeOf<test2E>().toEqualTypeOf<{ b: "tag1"; v1: string }>()
198
-
199
- type test3E = RefineFieldPathValue<{ b: "tag1" | "tag2" | null }, "b", null, true>
200
- expectTypeOf<test3E>().toEqualTypeOf<{ b: "tag1" | "tag2" }>()
201
-
202
- type test4E = RefineFieldPathValue<{ b: ("tag1" | "tag2")[] }, `b.${number}`, "tag1", true>
203
- expectTypeOf<test4E>().toEqualTypeOf<{ b: "tag2"[] }>()
204
-
205
- type test5E = RefineFieldPathValue<{ b: "tag1"; v1: unknown } | { b: "tag2"; v2: unknown }, "b", "tag1", true>
206
- expectTypeOf<test5E>().toEqualTypeOf<{ b: "tag2"; v2: unknown }>()
207
-
208
- type test6E = RefineFieldPathValue<
209
- { a: { b: "tag1"; v1: string } | { b: "tag2"; v2: number } } | { something: "else " },
210
- "a.b",
211
- "tag2",
212
- true
213
- >
214
- expectTypeOf<test6E>().toEqualTypeOf<{ a: { b: "tag1"; v1: string } }>()
215
-
216
- type test10 = RefineFieldPathValue<
217
- | { nested: { a: string; _tag: "a" } | { b: number; _tag: "b" }; _tag: "ab" }
218
- | { nested: { b: number; _tag: "b" } | { c: boolean; _tag: "c" }; _tag: "bc" },
219
- "nested._tag",
220
- "a"
221
- >
222
-
223
- expectTypeOf<test10>().toEqualTypeOf<{
224
- nested: {
225
- a: string
226
- _tag: "a"
227
- }
228
- _tag: "ab"
229
- }>()
230
- }
231
-
232
- export namespace SetFieldPathValueTests {
233
- type test1 = SetFieldPathValue<{ foo: { bar: string[] } }, `foo.bar`, boolean>
234
- expectTypeOf<test1>().toEqualTypeOf<{ foo: { bar: boolean } }>()
235
-
236
- type test1a = SetFieldPathValue<{ foo: { bar: string[]; baz: 12 } }, `foo.bar`, boolean>
237
- expectTypeOf<test1a>().toEqualTypeOf<{ foo: { bar: boolean; baz: 12 } }>()
238
-
239
- type test2 = SetFieldPathValue<{ foo: { bar: string[] } }, `foo.bar.${number}`, boolean>
240
- expectTypeOf<test2>().toEqualTypeOf<{ foo: { bar: boolean[] } }>()
241
-
242
- type test2a = SetFieldPathValue<{ foo: { bar: readonly string[]; baz: 3 }; ban: 123 }, `foo.bar.${number}`, boolean>
243
- expectTypeOf<test2a>().toEqualTypeOf<{ foo: { bar: readonly boolean[]; baz: 3 }; ban: 123 }>()
244
-
245
- type test2b = SetFieldPathValue<
246
- { foo: { bar: readonly { a: 1; b: 2 }[]; baz: 3 }; ban: 123 },
247
- `foo.bar.${number}.b`,
248
- "b"
249
- >
250
- expectTypeOf<test2b>().toEqualTypeOf<{ foo: { bar: readonly { a: 1; b: "b" }[]; baz: 3 }; ban: 123 }>()
251
-
252
- type test3 = SetFieldPathValue<{ foo: ["a", "b"] }, `foo.0`, boolean>
253
- expectTypeOf<test3>().toEqualTypeOf<{ foo: [boolean, "b"] }>()
254
-
255
- type test3a = SetFieldPathValue<{ foo: [{ a: 123 }, "b"] }, `foo.0.a`, boolean>
256
- expectTypeOf<test3a>().toEqualTypeOf<{ foo: [{ a: boolean }, "b"] }>()
257
- }
258
-
259
- /**
260
- * Type to evaluate the type which the given paths point to.
261
- * @typeParam TFieldValues - field values which are indexed by the paths
262
- * @typeParam TPath - paths into the deeply nested field values
263
- * @example
264
- * ```
265
- * FieldPathValues<{foo: {bar: string}}, ['foo', 'foo.bar']>
266
- * = [{bar: string}, string]
267
- * ```
268
- */
269
- export type FieldPathValues<
270
- TFieldValues extends FieldValues,
271
- TPath extends FieldPath<TFieldValues>[] | readonly FieldPath<TFieldValues>[]
272
- > =
273
- & {}
274
- & {
275
- [K in keyof TPath]: FieldPathValue<
276
- TFieldValues,
277
- TPath[K] & FieldPath<TFieldValues>
278
- >
279
- }
280
-
281
- /**
282
- * Type which eagerly collects all paths through a fieldType that matches a give type
283
- * @typeParam TFieldValues - field values which are indexed by the paths
284
- * @typeParam TValue - the value you want to match into each type
285
- * @example
286
- * ```typescript
287
- * FieldPathByValue<{foo: {bar: number}, baz: number, bar: string}, number>
288
- * = 'foo.bar' | 'baz'
289
- * ```
290
- */
291
- export type FieldPathByValue<TFieldValues extends FieldValues, TValue> = {
292
- [Key in FieldPath<TFieldValues>]: FieldPathValue<
293
- TFieldValues,
294
- Key
295
- > extends TValue ? Key
296
- : never
297
- }[FieldPath<TFieldValues>]
@@ -1,4 +0,0 @@
1
- /** Re-export public API */
2
-
3
- export type { PathString } from "./common.js"
4
- export type { FieldPath, FieldPathByValue, FieldPathValue, FieldPathValues, Path, PathValue } from "./eager.js"
@@ -1,128 +0,0 @@
1
- declare const $NestedValue: unique symbol
2
-
3
- /**
4
- * @deprecated to be removed in the next major version
5
- */
6
- export type NestedValue<TValue extends object = object> = {
7
- [$NestedValue]: never
8
- } & TValue
9
-
10
- /**
11
- * @deprecated to be removed in the next major version
12
- */
13
- export type UnpackNestedValue<T> = T extends NestedValue<infer U> ? U
14
- : T extends Date | FileList | File | Blob ? T
15
- : T extends object ? { [K in keyof T]: UnpackNestedValue<T[K]> }
16
- : T
17
-
18
- /*
19
- Projects that React Hook Form installed don't include the DOM library need these interfaces to compile.
20
- React Native applications is no DOM available. The JavaScript runtime is ES6/ES2015 only.
21
- These definitions allow such projects to compile with only --lib ES6.
22
-
23
- Warning: all of these interfaces are empty.
24
- If you want type definitions for various properties, you need to add `--lib DOM` (via command line or tsconfig.json).
25
- */
26
-
27
- export type Noop = () => void
28
-
29
- interface File extends Blob {
30
- readonly lastModified: number
31
- readonly name: string
32
- }
33
-
34
- interface FileList {
35
- readonly length: number
36
- item(index: number): File | null
37
- [index: number]: File
38
- }
39
-
40
- export type Primitive =
41
- | null
42
- | undefined
43
- | string
44
- | number
45
- | boolean
46
- | symbol
47
- | bigint
48
-
49
- export type BrowserNativeObject = Date | FileList | File
50
-
51
- export type EmptyObject = { [K in string | number]: never }
52
-
53
- export type NonUndefined<T> = T extends undefined ? never : T
54
-
55
- export type LiteralUnion<T extends U, U extends Primitive> =
56
- | T
57
- | (U & { _?: never })
58
-
59
- export type DeepPartial<T> = T extends BrowserNativeObject | NestedValue ? T
60
- : { [K in keyof T]?: DeepPartial<T[K]> }
61
-
62
- export type DeepPartialSkipArrayKey<T> = T extends
63
- | BrowserNativeObject
64
- | NestedValue ? T
65
- : T extends ReadonlyArray<any> ? { [K in keyof T]: DeepPartialSkipArrayKey<T[K]> }
66
- : { [K in keyof T]?: DeepPartialSkipArrayKey<T[K]> }
67
-
68
- /**
69
- * Checks whether the type is any
70
- * See {@link https://stackoverflow.com/a/49928360/3406963}
71
- * @typeParam T - type which may be any
72
- * ```
73
- * IsAny<any> = true
74
- * IsAny<string> = false
75
- * ```
76
- */
77
- export type IsAny<T> = 0 extends 1 & T ? true : false
78
-
79
- /**
80
- * Checks whether the type is never
81
- * @typeParam T - type which may be never
82
- * ```
83
- * IsAny<never> = true
84
- * IsAny<string> = false
85
- * ```
86
- */
87
- export type IsNever<T> = [T] extends [never] ? true : false
88
-
89
- export type DeepMap<T, TValue> = IsAny<T> extends true ? any
90
- : T extends BrowserNativeObject | NestedValue ? TValue
91
- : T extends object ? { [K in keyof T]: DeepMap<NonUndefined<T[K]>, TValue> }
92
- : TValue
93
-
94
- export type IsFlatObject<T extends object> = Extract<
95
- Exclude<T[keyof T], NestedValue | Date | FileList>,
96
- any[] | object
97
- > extends never ? true
98
- : false
99
-
100
- export type Merge<A, B> = {
101
- [K in keyof A | keyof B]?: K extends keyof A & keyof B ? [A[K], B[K]] extends [object, object] ? Merge<A[K], B[K]>
102
- : A[K] | B[K]
103
- : K extends keyof A ? A[K]
104
- : K extends keyof B ? B[K]
105
- : never
106
- }
107
-
108
- export type Resolve<T> =
109
- & {
110
- [K in keyof T]: Resolve<T[K]>
111
- }
112
- & {}
113
-
114
- export type ResolveFirstLevel<T> =
115
- & {
116
- [K in keyof T]: T[K]
117
- }
118
- & {}
119
-
120
- export type Cast<T, U> = T extends U ? T : U
121
-
122
- export type IsLiteral<T, True, False> = string extends T ? False : number extends T ? False : True
123
-
124
- export type Extends<T, U, True, False> = T extends U ? True : False
125
-
126
- export type IsEqual<T, U> = (<_>() => _ extends T ? 1 : 2) extends (<_>() => _ extends U ? 1 : 2) ? true : false
127
-
128
- export type Equals<T, U, True, False> = IsEqual<T, U> extends true ? True : False
@@ -1,46 +0,0 @@
1
- import type { Message } from "./errors.js"
2
- import type { FieldValues, InternalFieldName } from "./fields.js"
3
- import type { FieldPath, FieldPathValue } from "./path/index.js"
4
-
5
- export type ValidationValue = boolean | number | string | RegExp
6
-
7
- export type ValidationRule<
8
- TValidationValue extends ValidationValue = ValidationValue
9
- > = TValidationValue | ValidationValueMessage<TValidationValue>
10
-
11
- export type ValidationValueMessage<
12
- TValidationValue extends ValidationValue = ValidationValue
13
- > = {
14
- value: TValidationValue
15
- message: Message
16
- }
17
-
18
- export type ValidateResult = Message | Message[] | boolean | undefined
19
-
20
- export type Validate<TFieldValue> = (
21
- value: TFieldValue
22
- ) => ValidateResult | Promise<ValidateResult>
23
-
24
- export type RegisterOptions<
25
- TFieldValues extends FieldValues = FieldValues,
26
- TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>
27
- > = Partial<{
28
- required: Message | ValidationRule<boolean>
29
- min: ValidationRule<number | string>
30
- max: ValidationRule<number | string>
31
- maxLength: ValidationRule<number>
32
- minLength: ValidationRule<number>
33
- pattern: ValidationRule<RegExp>
34
- validate:
35
- | Validate<FieldPathValue<TFieldValues, TFieldName>>
36
- | Record<string, Validate<FieldPathValue<TFieldValues, TFieldName>>>
37
- valueAsNumber: boolean
38
- valueAsDate: boolean
39
- value: FieldPathValue<TFieldValues, TFieldName>
40
- setValueAs: (value: any) => any
41
- shouldUnregister?: boolean
42
- onChange?: (event: any) => void
43
- onBlur?: (event: any) => void
44
- disabled: boolean
45
- deps: InternalFieldName | InternalFieldName[]
46
- }>
@@ -1,6 +0,0 @@
1
- // codegen:start {preset: barrel, include: ./types/*.ts}
2
- export * from "./types/errors.ts"
3
- export * from "./types/fields.ts"
4
- export * from "./types/utils.ts"
5
- export * from "./types/validator.ts"
6
- // codegen:end