@geekmidas/constructs 10.0.0-alpha.1 → 10.0.0-alpha.100

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 (422) hide show
  1. package/README.md +223 -158
  2. package/dist/{Construct-CdhThxDI.mjs → Construct-B1vGBPme.mjs} +45 -33
  3. package/dist/Construct-B1vGBPme.mjs.map +1 -0
  4. package/dist/Construct-BQALFCh2.d.cts +230 -0
  5. package/dist/Construct-BQALFCh2.d.cts.map +1 -0
  6. package/dist/{Construct-roId57cU.cjs → Construct-DUSXuTHP.cjs} +65 -47
  7. package/dist/Construct-DUSXuTHP.cjs.map +1 -0
  8. package/dist/Construct-QXnl3VqT.d.mts +230 -0
  9. package/dist/Construct-QXnl3VqT.d.mts.map +1 -0
  10. package/dist/Cron-DI3nKoic.d.cts +45 -0
  11. package/dist/Cron-DI3nKoic.d.cts.map +1 -0
  12. package/dist/Cron-uYAHPnp7.d.mts +45 -0
  13. package/dist/Cron-uYAHPnp7.d.mts.map +1 -0
  14. package/dist/CronBuilder-C0Ek1-RA.cjs +121 -0
  15. package/dist/CronBuilder-C0Ek1-RA.cjs.map +1 -0
  16. package/dist/CronBuilder-DaSUm2Na.d.mts +47 -0
  17. package/dist/CronBuilder-DaSUm2Na.d.mts.map +1 -0
  18. package/dist/CronBuilder-Dmix_Pen.mjs +109 -0
  19. package/dist/CronBuilder-Dmix_Pen.mjs.map +1 -0
  20. package/dist/CronBuilder-g1lZLWyG.d.cts +47 -0
  21. package/dist/CronBuilder-g1lZLWyG.d.cts.map +1 -0
  22. package/dist/{Endpoint-BTj58Gob.mjs → Endpoint-BG4UJ9oA.mjs} +146 -109
  23. package/dist/Endpoint-BG4UJ9oA.mjs.map +1 -0
  24. package/dist/{Endpoint-BBkV6l0k.cjs → Endpoint-BoUg8ocM.cjs} +174 -131
  25. package/dist/Endpoint-BoUg8ocM.cjs.map +1 -0
  26. package/dist/{Endpoint-BKR5QH6O.d.mts → Endpoint-Du-NwPX2.d.mts} +83 -91
  27. package/dist/Endpoint-Du-NwPX2.d.mts.map +1 -0
  28. package/dist/{Endpoint-BQ9O0P1w.d.cts → Endpoint-aCvBMPoH.d.cts} +82 -90
  29. package/dist/Endpoint-aCvBMPoH.d.cts.map +1 -0
  30. package/dist/{EndpointFactory-BejSTzbB.mjs → EndpointFactory-BDtsrEvJ.mjs} +60 -77
  31. package/dist/EndpointFactory-BDtsrEvJ.mjs.map +1 -0
  32. package/dist/{EndpointFactory-DYoGLaIT.cjs → EndpointFactory-DJ7gXLpR.cjs} +96 -113
  33. package/dist/EndpointFactory-DJ7gXLpR.cjs.map +1 -0
  34. package/dist/{index-D5zqAJ2e.d.cts → EndpointFactory-DMYdJCOj.d.mts} +78 -134
  35. package/dist/EndpointFactory-DMYdJCOj.d.mts.map +1 -0
  36. package/dist/{index-Cvz551AO.d.mts → EndpointFactory-I7s1co3Y.d.cts} +79 -135
  37. package/dist/EndpointFactory-I7s1co3Y.d.cts.map +1 -0
  38. package/dist/Function-DuqGcbOI.d.mts +76 -0
  39. package/dist/Function-DuqGcbOI.d.mts.map +1 -0
  40. package/dist/Function-Pu-1kKZz.d.cts +76 -0
  41. package/dist/Function-Pu-1kKZz.d.cts.map +1 -0
  42. package/dist/{HonoEndpointAdaptor-7aYNdqJq.mjs → HonoEndpointAdaptor-PtPlbeKY.mjs} +75 -57
  43. package/dist/HonoEndpointAdaptor-PtPlbeKY.mjs.map +1 -0
  44. package/dist/{HonoEndpointAdaptor-wMsCyMgt.cjs → HonoEndpointAdaptor-zVzVLJEO.cjs} +83 -62
  45. package/dist/HonoEndpointAdaptor-zVzVLJEO.cjs.map +1 -0
  46. package/dist/Queue-A3wfD0it.cjs +109 -0
  47. package/dist/Queue-A3wfD0it.cjs.map +1 -0
  48. package/dist/Queue-D6USGS4q.mjs +104 -0
  49. package/dist/Queue-D6USGS4q.mjs.map +1 -0
  50. package/dist/{Queue-D6WeziRD.d.cts → Queue-DlsHRzUp.d.mts} +48 -48
  51. package/dist/Queue-DlsHRzUp.d.mts.map +1 -0
  52. package/dist/{Queue-DpUeqdC8.d.mts → Queue-HPyi0e1i.d.cts} +49 -49
  53. package/dist/Queue-HPyi0e1i.d.cts.map +1 -0
  54. package/dist/QueueBuilder-BjuF0UBl.cjs +135 -0
  55. package/dist/QueueBuilder-BjuF0UBl.cjs.map +1 -0
  56. package/dist/QueueBuilder-Cue73M4t.mjs +118 -0
  57. package/dist/QueueBuilder-Cue73M4t.mjs.map +1 -0
  58. package/dist/QueueBuilder-OSi6LkV9.d.cts +75 -0
  59. package/dist/QueueBuilder-OSi6LkV9.d.cts.map +1 -0
  60. package/dist/QueueBuilder-QHsnVt1P.d.mts +75 -0
  61. package/dist/QueueBuilder-QHsnVt1P.d.mts.map +1 -0
  62. package/dist/{Subscriber-4rBJgDKI.d.mts → Subscriber-Bpp02cGr.d.cts} +30 -21
  63. package/dist/Subscriber-Bpp02cGr.d.cts.map +1 -0
  64. package/dist/{Subscriber-DVQowdyj.d.cts → Subscriber-CtN9R48-.d.mts} +29 -20
  65. package/dist/Subscriber-CtN9R48-.d.mts.map +1 -0
  66. package/dist/SubscriberBuilder-CDy4nHCz.mjs +134 -0
  67. package/dist/SubscriberBuilder-CDy4nHCz.mjs.map +1 -0
  68. package/dist/SubscriberBuilder-CuCMFpYW.d.mts +67 -0
  69. package/dist/SubscriberBuilder-CuCMFpYW.d.mts.map +1 -0
  70. package/dist/SubscriberBuilder-D_owVoHo.cjs +145 -0
  71. package/dist/SubscriberBuilder-D_owVoHo.cjs.map +1 -0
  72. package/dist/SubscriberBuilder-g3fAVWgs.d.cts +67 -0
  73. package/dist/SubscriberBuilder-g3fAVWgs.d.cts.map +1 -0
  74. package/dist/Topic-D74b5cgs.mjs +99 -0
  75. package/dist/Topic-D74b5cgs.mjs.map +1 -0
  76. package/dist/Topic-GHxcU8AG.cjs +104 -0
  77. package/dist/Topic-GHxcU8AG.cjs.map +1 -0
  78. package/dist/adaptors/aws.cjs +332 -188
  79. package/dist/adaptors/aws.cjs.map +1 -1
  80. package/dist/adaptors/aws.d.cts +114 -44
  81. package/dist/adaptors/aws.d.cts.map +1 -1
  82. package/dist/adaptors/aws.d.mts +114 -44
  83. package/dist/adaptors/aws.d.mts.map +1 -1
  84. package/dist/adaptors/aws.mjs +308 -166
  85. package/dist/adaptors/aws.mjs.map +1 -1
  86. package/dist/adaptors/hono.cjs +3 -11
  87. package/dist/adaptors/hono.d.cts +7 -16
  88. package/dist/adaptors/hono.d.cts.map +1 -1
  89. package/dist/adaptors/hono.d.mts +8 -17
  90. package/dist/adaptors/hono.d.mts.map +1 -1
  91. package/dist/adaptors/hono.mjs +2 -11
  92. package/dist/adaptors/testing.cjs +743 -90
  93. package/dist/adaptors/testing.cjs.map +1 -1
  94. package/dist/adaptors/testing.d.cts +351 -54
  95. package/dist/adaptors/testing.d.cts.map +1 -1
  96. package/dist/adaptors/testing.d.mts +351 -54
  97. package/dist/adaptors/testing.d.mts.map +1 -1
  98. package/dist/adaptors/testing.mjs +706 -71
  99. package/dist/adaptors/testing.mjs.map +1 -1
  100. package/dist/auth-BMCJN30Y.d.cts +268 -0
  101. package/dist/auth-BMCJN30Y.d.cts.map +1 -0
  102. package/dist/auth-CcuceLYo.d.mts +268 -0
  103. package/dist/auth-CcuceLYo.d.mts.map +1 -0
  104. package/dist/auth.cjs +302 -34
  105. package/dist/auth.cjs.map +1 -1
  106. package/dist/auth.d.cts +2 -108
  107. package/dist/auth.d.mts +2 -108
  108. package/dist/auth.mjs +290 -28
  109. package/dist/auth.mjs.map +1 -1
  110. package/dist/{cache-CdQ7OLpR.d.cts → cache-CXh6GIgb.d.mts} +4 -7
  111. package/dist/cache-CXh6GIgb.d.mts.map +1 -0
  112. package/dist/{cache-DYoJFcfd.d.mts → cache-DnGDGly3.d.cts} +4 -7
  113. package/dist/cache-DnGDGly3.d.cts.map +1 -0
  114. package/dist/cache.cjs +68 -2
  115. package/dist/cache.cjs.map +1 -0
  116. package/dist/cache.d.cts +1 -2
  117. package/dist/cache.d.mts +1 -2
  118. package/dist/cache.mjs +67 -2
  119. package/dist/cache.mjs.map +1 -0
  120. package/dist/cipher-C1lEFX63.mjs +225 -0
  121. package/dist/cipher-C1lEFX63.mjs.map +1 -0
  122. package/dist/cipher-CVxfwLjk.cjs +332 -0
  123. package/dist/cipher-CVxfwLjk.cjs.map +1 -0
  124. package/dist/{clone-DblgEZZa.mjs → clone-EKNovYHu.mjs} +3 -3
  125. package/dist/clone-EKNovYHu.mjs.map +1 -0
  126. package/dist/{clone-Dy0cR2SZ.cjs → clone-UGJpvQnL.cjs} +7 -8
  127. package/dist/clone-UGJpvQnL.cjs.map +1 -0
  128. package/dist/{construct-interface-BqwRNYA2.d.mts → construct-interface-B1AfqRl4.d.cts} +43 -12
  129. package/dist/construct-interface-B1AfqRl4.d.cts.map +1 -0
  130. package/dist/{construct-interface-D2nNkHUN.d.cts → construct-interface-DluK3_da.d.mts} +43 -12
  131. package/dist/construct-interface-DluK3_da.d.mts.map +1 -0
  132. package/dist/construct-interface.cjs +113 -7
  133. package/dist/construct-interface.cjs.map +1 -0
  134. package/dist/construct-interface.d.cts +2 -2
  135. package/dist/construct-interface.d.mts +2 -2
  136. package/dist/construct-interface.mjs +106 -2
  137. package/dist/construct-interface.mjs.map +1 -0
  138. package/dist/credential.cjs +77 -17
  139. package/dist/credential.cjs.map +1 -1
  140. package/dist/credential.d.cts +34 -9
  141. package/dist/credential.d.cts.map +1 -1
  142. package/dist/credential.d.mts +34 -9
  143. package/dist/credential.d.mts.map +1 -1
  144. package/dist/credential.mjs +71 -13
  145. package/dist/credential.mjs.map +1 -1
  146. package/dist/crons/index.cjs +189 -85
  147. package/dist/crons/index.cjs.map +1 -1
  148. package/dist/crons/index.d.cts +70 -48
  149. package/dist/crons/index.d.cts.map +1 -1
  150. package/dist/crons/index.d.mts +70 -48
  151. package/dist/crons/index.d.mts.map +1 -1
  152. package/dist/crons/index.mjs +183 -81
  153. package/dist/crons/index.mjs.map +1 -1
  154. package/dist/database/kysely.cjs +4 -181
  155. package/dist/database/kysely.d.cts +2 -152
  156. package/dist/database/kysely.d.mts +2 -152
  157. package/dist/database/kysely.mjs +2 -180
  158. package/dist/email.cjs +25 -12
  159. package/dist/email.cjs.map +1 -1
  160. package/dist/email.d.cts +3 -7
  161. package/dist/email.d.cts.map +1 -1
  162. package/dist/email.d.mts +3 -7
  163. package/dist/email.d.mts.map +1 -1
  164. package/dist/email.mjs +16 -3
  165. package/dist/email.mjs.map +1 -1
  166. package/dist/encryption.cjs +96 -0
  167. package/dist/encryption.cjs.map +1 -0
  168. package/dist/encryption.d.cts +117 -0
  169. package/dist/encryption.d.cts.map +1 -0
  170. package/dist/encryption.d.mts +117 -0
  171. package/dist/encryption.d.mts.map +1 -0
  172. package/dist/encryption.mjs +83 -0
  173. package/dist/encryption.mjs.map +1 -0
  174. package/dist/endpoints/index.cjs +8 -11
  175. package/dist/endpoints/index.d.cts +51 -7
  176. package/dist/endpoints/index.d.cts.map +1 -0
  177. package/dist/endpoints/index.d.mts +51 -7
  178. package/dist/endpoints/index.d.mts.map +1 -0
  179. package/dist/endpoints/index.mjs +6 -11
  180. package/dist/external-api-MJ8id87V.d.mts +105 -0
  181. package/dist/external-api-MJ8id87V.d.mts.map +1 -0
  182. package/dist/external-api-O107yzZJ.d.cts +105 -0
  183. package/dist/external-api-O107yzZJ.d.cts.map +1 -0
  184. package/dist/external-api.cjs +142 -0
  185. package/dist/external-api.cjs.map +1 -0
  186. package/dist/external-api.d.cts +2 -0
  187. package/dist/external-api.d.mts +2 -0
  188. package/dist/external-api.mjs +139 -0
  189. package/dist/external-api.mjs.map +1 -0
  190. package/dist/file-server.cjs +42 -10
  191. package/dist/file-server.cjs.map +1 -1
  192. package/dist/file-server.d.cts +6 -10
  193. package/dist/file-server.d.cts.map +1 -1
  194. package/dist/file-server.d.mts +6 -10
  195. package/dist/file-server.d.mts.map +1 -1
  196. package/dist/file-server.mjs +34 -2
  197. package/dist/file-server.mjs.map +1 -1
  198. package/dist/functions/index.cjs +2 -6
  199. package/dist/functions/index.d.cts +3 -4
  200. package/dist/functions/index.d.mts +3 -4
  201. package/dist/functions/index.mjs +2 -6
  202. package/dist/{functions-Cpff1uZH.mjs → functions-BFizikJU.mjs} +394 -243
  203. package/dist/functions-BFizikJU.mjs.map +1 -0
  204. package/dist/{functions-DukjG8ov.cjs → functions-CfzJG9hK.cjs} +432 -275
  205. package/dist/functions-CfzJG9hK.cjs.map +1 -0
  206. package/dist/index-BuzRvKOQ.d.cts +115 -0
  207. package/dist/index-BuzRvKOQ.d.cts.map +1 -0
  208. package/dist/index-CTkKOer4.d.mts +115 -0
  209. package/dist/index-CTkKOer4.d.mts.map +1 -0
  210. package/dist/index-CeEtxDmK.d.cts +79 -0
  211. package/dist/index-CeEtxDmK.d.cts.map +1 -0
  212. package/dist/index-CeEtxDmK.d.mts +79 -0
  213. package/dist/index-CeEtxDmK.d.mts.map +1 -0
  214. package/dist/index.cjs +6 -3
  215. package/dist/index.d.cts +27 -4
  216. package/dist/index.d.cts.map +1 -0
  217. package/dist/index.d.mts +27 -4
  218. package/dist/index.d.mts.map +1 -0
  219. package/dist/index.mjs +3 -3
  220. package/dist/kms-B-Hm3d5r.cjs +85 -0
  221. package/dist/kms-B-Hm3d5r.cjs.map +1 -0
  222. package/dist/kms-BdUlMJEZ.mjs +85 -0
  223. package/dist/kms-BdUlMJEZ.mjs.map +1 -0
  224. package/dist/kysely-Bii4l6eP.mjs +370 -0
  225. package/dist/kysely-Bii4l6eP.mjs.map +1 -0
  226. package/dist/kysely-CO_Dk43W.cjs +383 -0
  227. package/dist/kysely-CO_Dk43W.cjs.map +1 -0
  228. package/dist/kysely-D0bpzgPs.d.cts +175 -0
  229. package/dist/kysely-D0bpzgPs.d.cts.map +1 -0
  230. package/dist/kysely-DUqC3Ie0.d.mts +175 -0
  231. package/dist/kysely-DUqC3Ie0.d.mts.map +1 -0
  232. package/dist/{telemetry-C3L0iS28.d.cts → lambdaTelemetry-8vnmVZQ5.d.cts} +3 -6
  233. package/dist/lambdaTelemetry-8vnmVZQ5.d.cts.map +1 -0
  234. package/dist/{telemetry-D7bVFLGi.d.mts → lambdaTelemetry-8vnmVZQ5.d.mts} +3 -6
  235. package/dist/lambdaTelemetry-8vnmVZQ5.d.mts.map +1 -0
  236. package/dist/{lazyAccessors-DM6HcXQk.mjs → lazyAccessors-CFanua0O.mjs} +20 -21
  237. package/dist/lazyAccessors-CFanua0O.mjs.map +1 -0
  238. package/dist/{lazyAccessors-DrJj8NpA.cjs → lazyAccessors-hJKGv8Ay.cjs} +60 -62
  239. package/dist/lazyAccessors-hJKGv8Ay.cjs.map +1 -0
  240. package/dist/mobile-app.cjs +73 -0
  241. package/dist/mobile-app.cjs.map +1 -0
  242. package/dist/mobile-app.d.cts +61 -0
  243. package/dist/mobile-app.d.cts.map +1 -0
  244. package/dist/mobile-app.d.mts +61 -0
  245. package/dist/mobile-app.d.mts.map +1 -0
  246. package/dist/mobile-app.mjs +72 -0
  247. package/dist/mobile-app.mjs.map +1 -0
  248. package/dist/object-storage.cjs +18 -10
  249. package/dist/object-storage.cjs.map +1 -1
  250. package/dist/object-storage.d.cts +3 -7
  251. package/dist/object-storage.d.cts.map +1 -1
  252. package/dist/object-storage.d.mts +3 -7
  253. package/dist/object-storage.d.mts.map +1 -1
  254. package/dist/object-storage.mjs +11 -3
  255. package/dist/object-storage.mjs.map +1 -1
  256. package/dist/processAudits-BRRVVHUB.mjs +131 -0
  257. package/dist/processAudits-BRRVVHUB.mjs.map +1 -0
  258. package/dist/processAudits-DasOZjPl.cjs +154 -0
  259. package/dist/processAudits-DasOZjPl.cjs.map +1 -0
  260. package/dist/queue/index.cjs +6 -189
  261. package/dist/queue/index.d.cts +3 -60
  262. package/dist/queue/index.d.mts +3 -60
  263. package/dist/queue/index.mjs +3 -186
  264. package/dist/rest-api.cjs +92 -63
  265. package/dist/rest-api.cjs.map +1 -1
  266. package/dist/rest-api.d.cts +81 -61
  267. package/dist/rest-api.d.cts.map +1 -1
  268. package/dist/rest-api.d.mts +81 -61
  269. package/dist/rest-api.d.mts.map +1 -1
  270. package/dist/rest-api.mjs +84 -55
  271. package/dist/rest-api.mjs.map +1 -1
  272. package/dist/{chunk-DWy1uDak.cjs → rolldown-runtime-y5ARvAq5.cjs} +14 -18
  273. package/dist/runSubscriber-BHvJ8POr.mjs +109 -0
  274. package/dist/runSubscriber-BHvJ8POr.mjs.map +1 -0
  275. package/dist/runSubscriber-D8nLXIv1.cjs +126 -0
  276. package/dist/runSubscriber-D8nLXIv1.cjs.map +1 -0
  277. package/dist/shutdown-BMJmAhSt.cjs +38 -0
  278. package/dist/shutdown-BMJmAhSt.cjs.map +1 -0
  279. package/dist/shutdown-C7xa8x9S.mjs +27 -0
  280. package/dist/shutdown-C7xa8x9S.mjs.map +1 -0
  281. package/dist/site.cjs +35 -9
  282. package/dist/site.cjs.map +1 -1
  283. package/dist/site.d.cts +25 -22
  284. package/dist/site.d.cts.map +1 -1
  285. package/dist/site.d.mts +25 -22
  286. package/dist/site.d.mts.map +1 -1
  287. package/dist/site.mjs +31 -5
  288. package/dist/site.mjs.map +1 -1
  289. package/dist/stages-BSCF19o2.d.cts +56 -0
  290. package/dist/stages-BSCF19o2.d.cts.map +1 -0
  291. package/dist/stages-BSCF19o2.d.mts +56 -0
  292. package/dist/stages-BSCF19o2.d.mts.map +1 -0
  293. package/dist/subscribers/index.cjs +111 -101
  294. package/dist/subscribers/index.cjs.map +1 -1
  295. package/dist/subscribers/index.d.cts +44 -56
  296. package/dist/subscribers/index.d.cts.map +1 -1
  297. package/dist/subscribers/index.d.mts +44 -56
  298. package/dist/subscribers/index.d.mts.map +1 -1
  299. package/dist/subscribers/index.mjs +108 -98
  300. package/dist/subscribers/index.mjs.map +1 -1
  301. package/dist/surfaceEnv-CNimK76p.cjs +56 -0
  302. package/dist/surfaceEnv-CNimK76p.cjs.map +1 -0
  303. package/dist/surfaceEnv-wMT5QzgZ.mjs +45 -0
  304. package/dist/surfaceEnv-wMT5QzgZ.mjs.map +1 -0
  305. package/dist/telemetry-B48RLjyk.d.cts +40 -0
  306. package/dist/telemetry-B48RLjyk.d.cts.map +1 -0
  307. package/dist/telemetry-DRtT1_0A.d.mts +40 -0
  308. package/dist/telemetry-DRtT1_0A.d.mts.map +1 -0
  309. package/dist/telemetry.cjs +56 -0
  310. package/dist/telemetry.cjs.map +1 -0
  311. package/dist/telemetry.d.cts +2 -0
  312. package/dist/telemetry.d.mts +2 -0
  313. package/dist/telemetry.mjs +55 -0
  314. package/dist/telemetry.mjs.map +1 -0
  315. package/dist/topic/index.cjs +3 -137
  316. package/dist/topic/index.d.cts +2 -32
  317. package/dist/topic/index.d.mts +2 -32
  318. package/dist/topic/index.mjs +2 -134
  319. package/dist/tracing-CxaZ98IB.mjs +110 -0
  320. package/dist/tracing-CxaZ98IB.mjs.map +1 -0
  321. package/dist/tracing-DPMidF_r.cjs +127 -0
  322. package/dist/tracing-DPMidF_r.cjs.map +1 -0
  323. package/dist/{types-BlAkSuGI.d.cts → types-DMuSQeLL.d.cts} +3 -5
  324. package/dist/types-DMuSQeLL.d.cts.map +1 -0
  325. package/dist/{types-aKksMEWL.d.mts → types-DMuSQeLL.d.mts} +3 -5
  326. package/dist/types-DMuSQeLL.d.mts.map +1 -0
  327. package/dist/types.d.cts +1 -1
  328. package/dist/types.d.mts +1 -1
  329. package/dist/types.mjs +1 -0
  330. package/dist/worker.cjs +191 -0
  331. package/dist/worker.cjs.map +1 -0
  332. package/dist/worker.d.cts +171 -0
  333. package/dist/worker.d.cts.map +1 -0
  334. package/dist/worker.d.mts +171 -0
  335. package/dist/worker.d.mts.map +1 -0
  336. package/dist/worker.mjs +190 -0
  337. package/dist/worker.mjs.map +1 -0
  338. package/package.json +116 -70
  339. package/dist/AWSScheduledFunction-9bJS4WdJ.d.cts +0 -122
  340. package/dist/AWSScheduledFunction-9bJS4WdJ.d.cts.map +0 -1
  341. package/dist/AWSScheduledFunction-BJjj8B5V.mjs +0 -243
  342. package/dist/AWSScheduledFunction-BJjj8B5V.mjs.map +0 -1
  343. package/dist/AWSScheduledFunction-BO5iEMSh.d.mts +0 -122
  344. package/dist/AWSScheduledFunction-BO5iEMSh.d.mts.map +0 -1
  345. package/dist/AWSScheduledFunction-qu4ieRZR.cjs +0 -255
  346. package/dist/AWSScheduledFunction-qu4ieRZR.cjs.map +0 -1
  347. package/dist/Construct-B-xc0SE9.d.mts +0 -104
  348. package/dist/Construct-B-xc0SE9.d.mts.map +0 -1
  349. package/dist/Construct-CdhThxDI.mjs.map +0 -1
  350. package/dist/Construct-WhCXIOPV.d.cts +0 -104
  351. package/dist/Construct-WhCXIOPV.d.cts.map +0 -1
  352. package/dist/Construct-roId57cU.cjs.map +0 -1
  353. package/dist/Endpoint-BBkV6l0k.cjs.map +0 -1
  354. package/dist/Endpoint-BKR5QH6O.d.mts.map +0 -1
  355. package/dist/Endpoint-BQ9O0P1w.d.cts.map +0 -1
  356. package/dist/Endpoint-BTj58Gob.mjs.map +0 -1
  357. package/dist/EndpointFactory-BejSTzbB.mjs.map +0 -1
  358. package/dist/EndpointFactory-DYoGLaIT.cjs.map +0 -1
  359. package/dist/HonoEndpointAdaptor-7aYNdqJq.mjs.map +0 -1
  360. package/dist/HonoEndpointAdaptor-wMsCyMgt.cjs.map +0 -1
  361. package/dist/Queue-D6WeziRD.d.cts.map +0 -1
  362. package/dist/Queue-DpUeqdC8.d.mts.map +0 -1
  363. package/dist/Subscriber-4rBJgDKI.d.mts.map +0 -1
  364. package/dist/Subscriber-DVQowdyj.d.cts.map +0 -1
  365. package/dist/Topic-Ohx9dvWr.d.cts +0 -91
  366. package/dist/Topic-Ohx9dvWr.d.cts.map +0 -1
  367. package/dist/Topic-cmy2jOUy.d.mts +0 -91
  368. package/dist/Topic-cmy2jOUy.d.mts.map +0 -1
  369. package/dist/auth.d.cts.map +0 -1
  370. package/dist/auth.d.mts.map +0 -1
  371. package/dist/cache-0ANvRQnD.mjs +0 -51
  372. package/dist/cache-0ANvRQnD.mjs.map +0 -1
  373. package/dist/cache-3WSvAulx.cjs +0 -57
  374. package/dist/cache-3WSvAulx.cjs.map +0 -1
  375. package/dist/cache-CdQ7OLpR.d.cts.map +0 -1
  376. package/dist/cache-DYoJFcfd.d.mts.map +0 -1
  377. package/dist/clone-DblgEZZa.mjs.map +0 -1
  378. package/dist/clone-Dy0cR2SZ.cjs.map +0 -1
  379. package/dist/construct-interface-BfjcOD_E.cjs +0 -117
  380. package/dist/construct-interface-BfjcOD_E.cjs.map +0 -1
  381. package/dist/construct-interface-BqwRNYA2.d.mts.map +0 -1
  382. package/dist/construct-interface-D2nNkHUN.d.cts.map +0 -1
  383. package/dist/construct-interface-Z4CpS8tK.mjs +0 -81
  384. package/dist/construct-interface-Z4CpS8tK.mjs.map +0 -1
  385. package/dist/database/kysely.cjs.map +0 -1
  386. package/dist/database/kysely.d.cts.map +0 -1
  387. package/dist/database/kysely.d.mts.map +0 -1
  388. package/dist/database/kysely.mjs.map +0 -1
  389. package/dist/functions-Cpff1uZH.mjs.map +0 -1
  390. package/dist/functions-DukjG8ov.cjs.map +0 -1
  391. package/dist/index-BTvozlUD.d.cts +0 -163
  392. package/dist/index-BTvozlUD.d.cts.map +0 -1
  393. package/dist/index-Cvz551AO.d.mts.map +0 -1
  394. package/dist/index-D5zqAJ2e.d.cts.map +0 -1
  395. package/dist/index-L7pz0R0T.d.mts +0 -162
  396. package/dist/index-L7pz0R0T.d.mts.map +0 -1
  397. package/dist/lazyAccessors-DM6HcXQk.mjs.map +0 -1
  398. package/dist/lazyAccessors-DrJj8NpA.cjs.map +0 -1
  399. package/dist/processAudits-Bc8rz6Ev.cjs +0 -92
  400. package/dist/processAudits-Bc8rz6Ev.cjs.map +0 -1
  401. package/dist/processAudits-D89tICM4.mjs +0 -80
  402. package/dist/processAudits-D89tICM4.mjs.map +0 -1
  403. package/dist/publisher-CGEo8UKD.mjs +0 -41
  404. package/dist/publisher-CGEo8UKD.mjs.map +0 -1
  405. package/dist/publisher-CqGsXB2X.cjs +0 -53
  406. package/dist/publisher-CqGsXB2X.cjs.map +0 -1
  407. package/dist/queue/index.cjs.map +0 -1
  408. package/dist/queue/index.d.cts.map +0 -1
  409. package/dist/queue/index.d.mts.map +0 -1
  410. package/dist/queue/index.mjs.map +0 -1
  411. package/dist/surfaceEnv-BFXEms2f.cjs +0 -39
  412. package/dist/surfaceEnv-BFXEms2f.cjs.map +0 -1
  413. package/dist/surfaceEnv-C3Ktahea.mjs +0 -27
  414. package/dist/surfaceEnv-C3Ktahea.mjs.map +0 -1
  415. package/dist/telemetry-C3L0iS28.d.cts.map +0 -1
  416. package/dist/telemetry-D7bVFLGi.d.mts.map +0 -1
  417. package/dist/topic/index.cjs.map +0 -1
  418. package/dist/topic/index.d.cts.map +0 -1
  419. package/dist/topic/index.d.mts.map +0 -1
  420. package/dist/topic/index.mjs.map +0 -1
  421. package/dist/types-BlAkSuGI.d.cts.map +0 -1
  422. package/dist/types-aKksMEWL.d.mts.map +0 -1
@@ -1,37 +1,33 @@
1
- import "./Construct-WhCXIOPV.cjs";
2
- import "./index-BTvozlUD.cjs";
3
- import { Declarable } from "./construct-interface-D2nNkHUN.cjs";
4
- import "./types-BlAkSuGI.cjs";
5
- import { BuiltInSecuritySchemeId } from "./Endpoint-BQ9O0P1w.cjs";
6
- import { EndpointBuilder, EndpointFactory, RemoveTrailingSlash } from "./index-D5zqAJ2e.cjs";
1
+ import { i as Declarable, t as Authenticator } from "./construct-interface-B1AfqRl4.cjs";
2
+ import { n as Telemetry } from "./telemetry-B48RLjyk.cjs";
3
+ import { T as BuiltInSecuritySchemeId } from "./Endpoint-aCvBMPoH.cjs";
4
+ import { t as EndpointFactory } from "./EndpointFactory-I7s1co3Y.cjs";
7
5
  import { EnvironmentParser } from "@geekmidas/envkit";
8
6
  import { Logger } from "@geekmidas/logger";
9
- import { AppSpec, ConstructName, Declaration, Dependency } from "@geekmidas/manifest";
7
+ import { ConstructName, Declaration, Dependency } from "@geekmidas/manifest";
10
8
  import { Telescope } from "@geekmidas/telescope";
11
-
12
9
  //#region src/rest-api.d.ts
13
-
14
- interface RestApiConfig<TAuthorizers extends readonly string[] = readonly []> {
10
+ /** The factory a surface builds its endpoints from. */
11
+ type Endpoints = EndpointFactory<[], '', Logger>;
12
+ export interface RestApiConfig<TAuthorizers extends readonly string[] = readonly []> {
15
13
  /**
16
- * The app that serves this surface: where its source lives, which globs
17
- * find its code, how it is run.
18
- *
19
- * What makes a surface a deploy unit rather than something a deploy has to
20
- * be told about separately: one `RestApi` is one server. A `StaticSite` says
21
- * the same thing, and the two are the same kind of statement.
22
- *
23
- * Normally omitted. One RestApi is one server, always — there is no mode in
24
- * which a surface shares somebody else's container, because a surface that
25
- * gets its process by inference gets it from whatever happened to reference
26
- * it, and that was the thing worth removing.
27
- *
28
- * So this is an override and nothing else. Everything in it follows from
29
- * this construct's id — `apps/<kebab-id>` where that directory exists, the
30
- * conventional code directories under it, a port assigned in a stable
31
- * order. Write one when the layout genuinely differs:
32
- * `app: { path: 'services/api' }`.
14
+ * The app that serves this surface, relative to the workspace root —
15
+ * `'apps/api'`, or `'.'` in a single-app project.
16
+ *
17
+ * Required. It was inferred from the id (`apps/<kebab-id>`, or the root
18
+ * when no such directory existed), which meant a surface's home was
19
+ * whatever happened to be on disk. It is where the app's `package.json`
20
+ * and base `tsconfig.json` are, and which build serves this surface. It
21
+ * does not change discovery: constructs still load from the workspace's
22
+ * `constructs` glob.
33
23
  */
34
- app?: AppSpec;
24
+ path: string;
25
+ /**
26
+ * The label it answers on under a stage's domain — `api` for
27
+ * `api.myapp.com`, from `domains` — and under the project locally,
28
+ * `api.myapp.localhost`. Absent, its id kebab-cased.
29
+ */
30
+ subdomain?: string;
35
31
  /**
36
32
  * CORS tunables. The *origins* are never here — they are read off the
37
33
  * constructs that declared an edge to this surface, which is the whole point
@@ -94,23 +90,35 @@ interface RestApiConfig<TAuthorizers extends readonly string[] = readonly []> {
94
90
  * printed an import for. The entry already imports the surface.
95
91
  */
96
92
  telescope?: Telescope;
93
+ /**
94
+ * What this surface's process emits — the `Telemetry` construct, passed
95
+ * like the logger: a fact about the process, not a grant to a route.
96
+ *
97
+ * An edge to the node, so the deploy hands this process the `OTEL_*` keys
98
+ * its stage resolves, and the build fails without the OpenTelemetry
99
+ * packages. Where the telemetry goes is never here: it is the deploy's,
100
+ * per stage.
101
+ */
102
+ telemetry?: Telemetry;
97
103
  }
98
104
  /**
99
105
  * What is *not* here, and why.
100
106
  *
101
- * `dependsOn`, `database`, `auditor` and `publisher` all inject a capability
107
+ * `dependsOn`, `database`, `auditor` and `.event(topic, …)` all inject a capability
102
108
  * into a handler. Putting one on the surface hands it to every route the
103
109
  * surface serves — a health check gets the database because a report needed it
104
110
  * — which is the thing least privilege forbids and the reason `.calls()` is not
105
- * spelled `dependsOn`. They belong to the endpoint, or to a factory branched
106
- * from `api.endpoints` for a group of endpoints that genuinely share them.
111
+ * spelled `dependsOn`. They belong to the endpoint, or to a branch —
112
+ * `api.database(db)` — for a group of endpoints that genuinely share them. A
113
+ * branch is a new factory; the surface config stays free of grants.
107
114
  *
108
115
  * `auth` is not here either: `.auth(construct)` already declares it, and a
109
116
  * second way to say the same thing is the duplication this whole model removes.
110
117
  *
111
118
  * What is left is what the *process* is rather than what a route may reach.
112
119
  */
113
- declare class RestApi<TName extends string = string, const TAuthorizers extends readonly string[] = readonly []> implements Declarable<TName> {
120
+ export declare class RestApi<TName extends string = string, const TAuthorizers extends readonly string[] = readonly []> implements Declarable<TName> {
121
+ #private;
114
122
  private readonly config;
115
123
  /** Internal: how `.calls()` carries edges into the copy it returns. */
116
124
  private readonly dependencies;
@@ -146,34 +154,46 @@ declare class RestApi<TName extends string = string, const TAuthorizers extends
146
154
  readonly envParser: EnvironmentParser<{}>;
147
155
  /** The Telescope instance, when this surface was given one. */
148
156
  readonly telescope?: Telescope;
149
- constructor(id: ConstructName<TName>, config: RestApiConfig<TAuthorizers>, /** Internal: how `.calls()` carries edges into the copy it returns. */
150
- dependencies?: readonly Dependency[], /** Internal: how `.auth()` carries the authenticator into its copy. */
151
- authenticator?: string | undefined);
157
+ /** What this surface's process emits, when it was given a `Telemetry`. */
158
+ readonly telemetry?: Telemetry;
159
+ constructor(id: ConstructName<TName>, config: RestApiConfig<TAuthorizers>,
160
+ /** Internal: how `.calls()` carries edges into the copy it returns. */
161
+ dependencies?: readonly Dependency[],
162
+ /** Internal: how `.auth()` carries the authenticator into its copy. */
163
+ authenticator?: Authenticator | undefined);
164
+ /** `api.get('/users')` — one route on this surface. */
165
+ readonly get: Endpoints['get'];
166
+ readonly post: Endpoints['post'];
167
+ readonly put: Endpoints['put'];
168
+ readonly patch: Endpoints['patch'];
169
+ readonly delete: Endpoints['delete'];
170
+ readonly options: Endpoints['options'];
152
171
  /**
153
- * This surface's endpoint factory.
154
- *
155
- * `api.get('/users')` is the short form and covers most routes. Reach for
156
- * this one when a *group* of endpoints shares something a single route would
157
- * otherwise repeat — a database, an auditor, a publisher:
172
+ * A branch for a *group* of endpoints that shares what a single route would
173
+ * otherwise repeat — a database, an auditor, a publisher, a session:
158
174
  *
159
175
  * ```ts
160
- * const audited = api.endpoints.database(db).auditor(AuditStore);
161
- * export const createUser = audited.post('/users').handle(...);
176
+ * export const router = api.database(database);
177
+ * export const createUser = router.post('/users').handle(({ db }) => …);
162
178
  * ```
163
179
  *
164
- * A factory branched from here keeps the surface, so its endpoints still
165
- * know which API serves them. That is deliberately narrower than putting the
166
- * same thing in the surface's own config: a group opts in, where a surface
167
- * would grant it to every route it serves.
180
+ * Each returns a new factory and leaves the surface as it was. That is the
181
+ * whole difference from putting the same thing in the surface's config: a
182
+ * group opts in, where the surface would grant it to every route it serves —
183
+ * a health check handed the database because a profile endpoint needed it.
184
+ *
185
+ * `dependsOn` is deliberately not here. It is per endpoint, and on the
186
+ * surface it would read as the API depending on something, which is what
187
+ * `.calls()` and `.auth()` say instead.
168
188
  */
169
- readonly endpoints: EndpointFactory<[], '', Logger>;
170
- /** `api.get('/users')` — sugar for `api.endpoints.get('/users')`. */
171
- get<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "GET", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, never, undefined, string>;
172
- post<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "POST", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, never, undefined, string>;
173
- put<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "PUT", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, never, undefined, string>;
174
- patch<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "PATCH", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, never, undefined, string>;
175
- delete<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "DELETE", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, never, undefined, string>;
176
- options<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "OPTIONS", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, never, undefined, string>;
189
+ readonly database: Endpoints['database'];
190
+ readonly session: Endpoints['session'];
191
+ readonly auditor: Endpoints['auditor'];
192
+ readonly actor: Endpoints['actor'];
193
+ readonly authorizer: Endpoints['authorizer'];
194
+ readonly authorize: Endpoints['authorize'];
195
+ readonly rls: Endpoints['rls'];
196
+ readonly route: Endpoints['route'];
177
197
  /**
178
198
  * What authenticates this surface.
179
199
  *
@@ -183,12 +203,13 @@ declare class RestApi<TName extends string = string, const TAuthorizers extends
183
203
  * what a request is allowed to be. A surface with two of the first is a
184
204
  * mistake; two of the second is Tuesday.
185
205
  *
186
- * It records the id, not a client. Every endpoint consumes the same thing —
187
- * `verify(request) → Session | null` — and that is what every provider
188
- * shares, whether the server is mounted in this process, deployed beside it,
189
- * or an OIDC issuer somebody else runs.
206
+ * It declares the id, and keeps the construct: a session callback reads from
207
+ * it as `auth` — `session(async ({ auth }) => auth.getSession())` — which
208
+ * calls the construct's `verify(headers)`. That is the one thing every
209
+ * provider shares, whether the server is mounted in this process, deployed
210
+ * beside it, or an OIDC issuer somebody else runs.
190
211
  */
191
- auth(construct: Declarable): RestApi<TName, TAuthorizers>;
212
+ auth(construct: Authenticator): RestApi<TName, TAuthorizers>;
192
213
  /**
193
214
  * Other surfaces this one calls.
194
215
  *
@@ -215,7 +236,6 @@ declare class RestApi<TName extends string = string, const TAuthorizers extends
215
236
  */
216
237
  declare(): Declaration[];
217
238
  }
218
- //# sourceMappingURL=rest-api.d.ts.map
219
239
  //#endregion
220
- export { RestApi, RestApiConfig };
240
+ export type { Authenticator };
221
241
  //# sourceMappingURL=rest-api.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rest-api.d.cts","names":[],"sources":["../src/rest-api.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AA2LoB,UAnJH,aAmJG,CAAA,qBAAA,SAAA,MAAA,EAAA,GAAA,SAAA,EAAA,CAAA,CAAA;EAAK;;;;;;;;;;;;;;;;;;;EAqEa,GAAA,CAAA,EA/L/B,OA+L+B;EAAA;;;;;EAIE,IAAA,CAAA,EAAA;IAIJ,MAAA,CAAA,EAAA,MAAA;IAAK,WAAA,CAAA,EAAA,OAAA;IAAA,YAAA,CAAA,EAAA,SAAA,MAAA,EAAA;IAAA,aAAA,CAAA,EAAA,SAAA,MAAA,EAAA;EAAA,CAAA;EAAA;;;;;EAIC,WAkBzB,CAAA,EA5MF,YA4ME;EAAU;;;;;;;;;AAzIJ;;;;;;;;;qBAhDH,uBAAuB;;;;;;;;;;WAUjC;;;;;;;;cAQG;;;;;;;;cAQA;;;;;;;;;;;;;;;;;cAmBA,8GAGA,WAAW;;;;;;eAEV;;;;;;;;;;;;;;;;;;mBAoBI;;;;;;;;;sBAUG;;uBAGC;kBAGhB,cAAc,gBACO,cAAc;0BAEC;;;;;;;;;;;;;;;;;;;sBAuDrB,wBAAwB;;kCAGZ,QAAK,gBAAA,oBAAA,uBAAA;mCAIJ,QAAK,gBAAA,oBAAA,wBAAA;kCAIN,QAAK,gBAAA,oBAAA,uBAAA;oCAIH,QAAK,gBAAA,oBAAA,yBAAA;qCAIJ,QAAK,gBAAA,oBAAA,0BAAA;sCAIJ,QAAK,gBAAA,oBAAA,2BAAA;;;;;;;;;;;;;;;kBAkBzB,aAAa,QAAQ,OAAO;;;;;;;;;;;;;;;6BAuBjB,eAAe,QAAQ,OAAO;;;;;;;;;;aAkB9C"}
1
+ {"version":3,"file":"rest-api.d.cts","names":[],"sources":["../src/rest-api.ts"],"mappings":";;;;;;;;;;KAmDK,YAAY,wBAAwB;iBAExB,cAIhB;;;;;;;;;;;;EAaA;;;;;;EAMA;;;;;;EAMA;IACC;IACA;IACA;IACA;;;;;;;EAOD,cAAc;;;;;;;;;;;;;;;;;;;EAmBd,mBAAmB,uBAAuB;;;;;;;;;;EAU1C,SAAS;;;;;;;;EAQT,YAAY;;;;;;;;EAQZ,YAAY;;;;;;;;;;EAUZ,YAAY;;;;;;;;;;;;;;;;;;qBAoBA,QACZ,qCACM,iEACM,WAAW;;mBA0CL;;mBAEA;;mBAEA;WA5CT,IAAI;;;;;;WAOJ;IACR;IACA;IACA;;;;;;;;;WAUQ,QAAQ;;;;;;;;;WAUR,WAAW;;WAGX,YAAY;;WAGZ,YAAY;EAErB,YACC,IAAI,cAAc,QACD,QAAQ,cAAc,eAEtB;;EAAA,wBAAuB,cAEvB;;EAAA,gBAAgB;;WAyEzB,KAAK;WACL,MAAM;WACN,KAAK;WACL,OAAO;WACP,QAAQ;WACR,SAAS;;;;;;;;;;;;;;;;;;;WAoBT,UAAU;WACV,SAAS;WACT,SAAS;WACT,OAAO;WACP,YAAY;WACZ,WAAW;WACX,KAAK;WACL,OAAO;;;;;;;;;;;;;;;;EAiBhB,KAAK,WAAW,gBAAgB,QAAQ,OAAO;;;;;;;;;;;;;;;EAuB/C,MAAM,qBAAqB,eAAe,QAAQ,OAAO;;;;;;;;;;EAkBzD,WAAW"}
@@ -1,37 +1,33 @@
1
- import "./Construct-B-xc0SE9.mjs";
2
- import "./index-L7pz0R0T.mjs";
3
- import { Declarable } from "./construct-interface-BqwRNYA2.mjs";
4
- import "./types-aKksMEWL.mjs";
5
- import { BuiltInSecuritySchemeId } from "./Endpoint-BKR5QH6O.mjs";
6
- import { EndpointBuilder, EndpointFactory, RemoveTrailingSlash } from "./index-Cvz551AO.mjs";
7
- import { AppSpec, ConstructName, Declaration, Dependency } from "@geekmidas/manifest";
1
+ import { i as Declarable, t as Authenticator } from "./construct-interface-DluK3_da.mjs";
2
+ import { n as Telemetry } from "./telemetry-DRtT1_0A.mjs";
3
+ import { T as BuiltInSecuritySchemeId } from "./Endpoint-Du-NwPX2.mjs";
4
+ import { t as EndpointFactory } from "./EndpointFactory-DMYdJCOj.mjs";
5
+ import { ConstructName, Declaration, Dependency } from "@geekmidas/manifest";
8
6
  import { EnvironmentParser } from "@geekmidas/envkit";
9
7
  import { Logger } from "@geekmidas/logger";
10
8
  import { Telescope } from "@geekmidas/telescope";
11
-
12
9
  //#region src/rest-api.d.ts
13
-
14
- interface RestApiConfig<TAuthorizers extends readonly string[] = readonly []> {
10
+ /** The factory a surface builds its endpoints from. */
11
+ type Endpoints = EndpointFactory<[], '', Logger>;
12
+ export interface RestApiConfig<TAuthorizers extends readonly string[] = readonly []> {
15
13
  /**
16
- * The app that serves this surface: where its source lives, which globs
17
- * find its code, how it is run.
18
- *
19
- * What makes a surface a deploy unit rather than something a deploy has to
20
- * be told about separately: one `RestApi` is one server. A `StaticSite` says
21
- * the same thing, and the two are the same kind of statement.
22
- *
23
- * Normally omitted. One RestApi is one server, always — there is no mode in
24
- * which a surface shares somebody else's container, because a surface that
25
- * gets its process by inference gets it from whatever happened to reference
26
- * it, and that was the thing worth removing.
27
- *
28
- * So this is an override and nothing else. Everything in it follows from
29
- * this construct's id — `apps/<kebab-id>` where that directory exists, the
30
- * conventional code directories under it, a port assigned in a stable
31
- * order. Write one when the layout genuinely differs:
32
- * `app: { path: 'services/api' }`.
14
+ * The app that serves this surface, relative to the workspace root —
15
+ * `'apps/api'`, or `'.'` in a single-app project.
16
+ *
17
+ * Required. It was inferred from the id (`apps/<kebab-id>`, or the root
18
+ * when no such directory existed), which meant a surface's home was
19
+ * whatever happened to be on disk. It is where the app's `package.json`
20
+ * and base `tsconfig.json` are, and which build serves this surface. It
21
+ * does not change discovery: constructs still load from the workspace's
22
+ * `constructs` glob.
33
23
  */
34
- app?: AppSpec;
24
+ path: string;
25
+ /**
26
+ * The label it answers on under a stage's domain — `api` for
27
+ * `api.myapp.com`, from `domains` — and under the project locally,
28
+ * `api.myapp.localhost`. Absent, its id kebab-cased.
29
+ */
30
+ subdomain?: string;
35
31
  /**
36
32
  * CORS tunables. The *origins* are never here — they are read off the
37
33
  * constructs that declared an edge to this surface, which is the whole point
@@ -94,23 +90,35 @@ interface RestApiConfig<TAuthorizers extends readonly string[] = readonly []> {
94
90
  * printed an import for. The entry already imports the surface.
95
91
  */
96
92
  telescope?: Telescope;
93
+ /**
94
+ * What this surface's process emits — the `Telemetry` construct, passed
95
+ * like the logger: a fact about the process, not a grant to a route.
96
+ *
97
+ * An edge to the node, so the deploy hands this process the `OTEL_*` keys
98
+ * its stage resolves, and the build fails without the OpenTelemetry
99
+ * packages. Where the telemetry goes is never here: it is the deploy's,
100
+ * per stage.
101
+ */
102
+ telemetry?: Telemetry;
97
103
  }
98
104
  /**
99
105
  * What is *not* here, and why.
100
106
  *
101
- * `dependsOn`, `database`, `auditor` and `publisher` all inject a capability
107
+ * `dependsOn`, `database`, `auditor` and `.event(topic, …)` all inject a capability
102
108
  * into a handler. Putting one on the surface hands it to every route the
103
109
  * surface serves — a health check gets the database because a report needed it
104
110
  * — which is the thing least privilege forbids and the reason `.calls()` is not
105
- * spelled `dependsOn`. They belong to the endpoint, or to a factory branched
106
- * from `api.endpoints` for a group of endpoints that genuinely share them.
111
+ * spelled `dependsOn`. They belong to the endpoint, or to a branch —
112
+ * `api.database(db)` — for a group of endpoints that genuinely share them. A
113
+ * branch is a new factory; the surface config stays free of grants.
107
114
  *
108
115
  * `auth` is not here either: `.auth(construct)` already declares it, and a
109
116
  * second way to say the same thing is the duplication this whole model removes.
110
117
  *
111
118
  * What is left is what the *process* is rather than what a route may reach.
112
119
  */
113
- declare class RestApi<TName extends string = string, const TAuthorizers extends readonly string[] = readonly []> implements Declarable<TName> {
120
+ export declare class RestApi<TName extends string = string, const TAuthorizers extends readonly string[] = readonly []> implements Declarable<TName> {
121
+ #private;
114
122
  private readonly config;
115
123
  /** Internal: how `.calls()` carries edges into the copy it returns. */
116
124
  private readonly dependencies;
@@ -146,34 +154,46 @@ declare class RestApi<TName extends string = string, const TAuthorizers extends
146
154
  readonly envParser: EnvironmentParser<{}>;
147
155
  /** The Telescope instance, when this surface was given one. */
148
156
  readonly telescope?: Telescope;
149
- constructor(id: ConstructName<TName>, config: RestApiConfig<TAuthorizers>, /** Internal: how `.calls()` carries edges into the copy it returns. */
150
- dependencies?: readonly Dependency[], /** Internal: how `.auth()` carries the authenticator into its copy. */
151
- authenticator?: string | undefined);
157
+ /** What this surface's process emits, when it was given a `Telemetry`. */
158
+ readonly telemetry?: Telemetry;
159
+ constructor(id: ConstructName<TName>, config: RestApiConfig<TAuthorizers>,
160
+ /** Internal: how `.calls()` carries edges into the copy it returns. */
161
+ dependencies?: readonly Dependency[],
162
+ /** Internal: how `.auth()` carries the authenticator into its copy. */
163
+ authenticator?: Authenticator | undefined);
164
+ /** `api.get('/users')` — one route on this surface. */
165
+ readonly get: Endpoints['get'];
166
+ readonly post: Endpoints['post'];
167
+ readonly put: Endpoints['put'];
168
+ readonly patch: Endpoints['patch'];
169
+ readonly delete: Endpoints['delete'];
170
+ readonly options: Endpoints['options'];
152
171
  /**
153
- * This surface's endpoint factory.
154
- *
155
- * `api.get('/users')` is the short form and covers most routes. Reach for
156
- * this one when a *group* of endpoints shares something a single route would
157
- * otherwise repeat — a database, an auditor, a publisher:
172
+ * A branch for a *group* of endpoints that shares what a single route would
173
+ * otherwise repeat — a database, an auditor, a publisher, a session:
158
174
  *
159
175
  * ```ts
160
- * const audited = api.endpoints.database(db).auditor(AuditStore);
161
- * export const createUser = audited.post('/users').handle(...);
176
+ * export const router = api.database(database);
177
+ * export const createUser = router.post('/users').handle(({ db }) => …);
162
178
  * ```
163
179
  *
164
- * A factory branched from here keeps the surface, so its endpoints still
165
- * know which API serves them. That is deliberately narrower than putting the
166
- * same thing in the surface's own config: a group opts in, where a surface
167
- * would grant it to every route it serves.
180
+ * Each returns a new factory and leaves the surface as it was. That is the
181
+ * whole difference from putting the same thing in the surface's config: a
182
+ * group opts in, where the surface would grant it to every route it serves —
183
+ * a health check handed the database because a profile endpoint needed it.
184
+ *
185
+ * `dependsOn` is deliberately not here. It is per endpoint, and on the
186
+ * surface it would read as the API depending on something, which is what
187
+ * `.calls()` and `.auth()` say instead.
168
188
  */
169
- readonly endpoints: EndpointFactory<[], '', Logger>;
170
- /** `api.get('/users')` — sugar for `api.endpoints.get('/users')`. */
171
- get<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "GET", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, ExtractStorageAuditAction<NonNullable<TAuditStorage>>, undefined, string>;
172
- post<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "POST", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, ExtractStorageAuditAction<NonNullable<TAuditStorage>>, undefined, string>;
173
- put<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "PUT", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, ExtractStorageAuditAction<NonNullable<TAuditStorage>>, undefined, string>;
174
- patch<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "PATCH", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, ExtractStorageAuditAction<NonNullable<TAuditStorage>>, undefined, string>;
175
- delete<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "DELETE", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, ExtractStorageAuditAction<NonNullable<TAuditStorage>>, undefined, string>;
176
- options<TPath extends string>(path: TPath): EndpointBuilder<RemoveTrailingSlash<TPath>, "OPTIONS", {}, [], Logger, undefined, unknown, undefined, string, readonly string[], undefined, string, ExtractStorageAuditAction<NonNullable<TAuditStorage>>, undefined, string>;
189
+ readonly database: Endpoints['database'];
190
+ readonly session: Endpoints['session'];
191
+ readonly auditor: Endpoints['auditor'];
192
+ readonly actor: Endpoints['actor'];
193
+ readonly authorizer: Endpoints['authorizer'];
194
+ readonly authorize: Endpoints['authorize'];
195
+ readonly rls: Endpoints['rls'];
196
+ readonly route: Endpoints['route'];
177
197
  /**
178
198
  * What authenticates this surface.
179
199
  *
@@ -183,12 +203,13 @@ declare class RestApi<TName extends string = string, const TAuthorizers extends
183
203
  * what a request is allowed to be. A surface with two of the first is a
184
204
  * mistake; two of the second is Tuesday.
185
205
  *
186
- * It records the id, not a client. Every endpoint consumes the same thing —
187
- * `verify(request) → Session | null` — and that is what every provider
188
- * shares, whether the server is mounted in this process, deployed beside it,
189
- * or an OIDC issuer somebody else runs.
206
+ * It declares the id, and keeps the construct: a session callback reads from
207
+ * it as `auth` — `session(async ({ auth }) => auth.getSession())` — which
208
+ * calls the construct's `verify(headers)`. That is the one thing every
209
+ * provider shares, whether the server is mounted in this process, deployed
210
+ * beside it, or an OIDC issuer somebody else runs.
190
211
  */
191
- auth(construct: Declarable): RestApi<TName, TAuthorizers>;
212
+ auth(construct: Authenticator): RestApi<TName, TAuthorizers>;
192
213
  /**
193
214
  * Other surfaces this one calls.
194
215
  *
@@ -215,7 +236,6 @@ declare class RestApi<TName extends string = string, const TAuthorizers extends
215
236
  */
216
237
  declare(): Declaration[];
217
238
  }
218
- //# sourceMappingURL=rest-api.d.ts.map
219
239
  //#endregion
220
- export { RestApi, RestApiConfig };
240
+ export type { Authenticator };
221
241
  //# sourceMappingURL=rest-api.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rest-api.d.mts","names":[],"sources":["../src/rest-api.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AA2LoB,UAnJH,aAmJG,CAAA,qBAAA,SAAA,MAAA,EAAA,GAAA,SAAA,EAAA,CAAA,CAAA;EAAK;;;;;;;;;;;;;;;;;;;EAiEc,GAAA,CAAA,EA3LhC,OA2LgC;EAAA;;;;;EAID,IAAA,CAAA,EAAA;IAAA,MAAA,CAAA,EAAA,MAAA;IAAA,WAAA,CAAA,EAAA,OAAA;IAAA,YAAA,CAAA,EAAA,SAAA,MAAA,EAAA;IAAA,aAAA,CAAA,EAAA,SAAA,MAAA,EAAA;EAAA,CAAA;EAIE;;;;;EAAA,WAAA,CAAA,EAlLzB,YAkLyB;EAAA;;;;;;;;;;;;;;;;;;EA0Bb,iBAAW,EAzLlB,YAyLkB,CAAA,MAAA,CAAA,GAzLK,uBAyLL,GAAA,MAAA;EAAK;;;;;;;;AAzIpB;WAtCb;;;;;;;;cAQG;;;;;;;;cAQA;;;;;;;;;;;;;;;;;cAmBA,8GAGA,WAAW;;;;;;eAEV;;;;;;;;;;;;;;;;;;mBAoBI;;;;;;;;;sBAUG;;uBAGC;kBAGhB,cAAc,gBACO,cAAc;0BAEC;;;;;;;;;;;;;;;;;;;sBAuDrB,wBAAwB;;kCAGZ,QAAK,gBAAA,oBAAA,uBAAA,qFAAA,0BAAA,YAAA;mCAIJ,QAAK,gBAAA,oBAAA,wBAAA,qFAAA,0BAAA,YAAA;kCAIN,QAAK,gBAAA,oBAAA,uBAAA,qFAAA,0BAAA,YAAA;oCAIH,QAAK,gBAAA,oBAAA,yBAAA,qFAAA,0BAAA,YAAA;qCAIJ,QAAK,gBAAA,oBAAA,0BAAA,qFAAA,0BAAA,YAAA;sCAIJ,QAAK,gBAAA,oBAAA,2BAAA,qFAAA,0BAAA,YAAA;;;;;;;;;;;;;;;kBAkBzB,aAAa,QAAQ,OAAO;;;;;;;;;;;;;;;6BAuBjB,eAAe,QAAQ,OAAO;;;;;;;;;;aAkB9C"}
1
+ {"version":3,"file":"rest-api.d.mts","names":[],"sources":["../src/rest-api.ts"],"mappings":";;;;;;;;;;KAmDK,YAAY,wBAAwB;iBAExB,cAIhB;;;;;;;;;;;;EAaA;;;;;;EAMA;;;;;;EAMA;IACC;IACA;IACA;IACA;;;;;;;EAOD,cAAc;;;;;;;;;;;;;;;;;;;EAmBd,mBAAmB,uBAAuB;;;;;;;;;;EAU1C,SAAS;;;;;;;;EAQT,YAAY;;;;;;;;EAQZ,YAAY;;;;;;;;;;EAUZ,YAAY;;;;;;;;;;;;;;;;;;qBAoBA,QACZ,qCACM,iEACM,WAAW;;mBA0CL;;mBAEA;;mBAEA;WA5CT,IAAI;;;;;;WAOJ;IACR;IACA;IACA;;;;;;;;;WAUQ,QAAQ;;;;;;;;;WAUR,WAAW;;WAGX,YAAY;;WAGZ,YAAY;EAErB,YACC,IAAI,cAAc,QACD,QAAQ,cAAc,eAEtB;;EAAA,wBAAuB,cAEvB;;EAAA,gBAAgB;;WAyEzB,KAAK;WACL,MAAM;WACN,KAAK;WACL,OAAO;WACP,QAAQ;WACR,SAAS;;;;;;;;;;;;;;;;;;;WAoBT,UAAU;WACV,SAAS;WACT,SAAS;WACT,OAAO;WACP,YAAY;WACZ,WAAW;WACX,KAAK;WACL,OAAO;;;;;;;;;;;;;;;;EAiBhB,KAAK,WAAW,gBAAgB,QAAQ,OAAO;;;;;;;;;;;;;;;EAuB/C,MAAM,qBAAqB,eAAe,QAAQ,OAAO;;;;;;;;;;EAkBzD,WAAW"}