@abloatai/transaction 0.37.0

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 (723) hide show
  1. package/CONVENTIONS.md +83 -0
  2. package/README.md +48 -0
  3. package/dist/ablo.d.ts +90 -0
  4. package/dist/ablo.d.ts.map +1 -0
  5. package/dist/ablo.js +34 -0
  6. package/dist/ablo.js.map +1 -0
  7. package/dist/ai-sdk/coordinatedTool.d.ts +123 -0
  8. package/dist/ai-sdk/coordinatedTool.d.ts.map +1 -0
  9. package/dist/ai-sdk/coordinatedTool.js +135 -0
  10. package/dist/ai-sdk/coordinatedTool.js.map +1 -0
  11. package/dist/ai-sdk/index.d.ts +2 -0
  12. package/dist/ai-sdk/index.d.ts.map +1 -0
  13. package/dist/ai-sdk/index.js +2 -0
  14. package/dist/ai-sdk/index.js.map +1 -0
  15. package/dist/auth/apiKey.d.ts +154 -0
  16. package/dist/auth/apiKey.d.ts.map +1 -0
  17. package/dist/auth/apiKey.js +408 -0
  18. package/dist/auth/apiKey.js.map +1 -0
  19. package/dist/auth/bootstrapScope.d.ts +16 -0
  20. package/dist/auth/bootstrapScope.d.ts.map +1 -0
  21. package/dist/auth/bootstrapScope.js +2 -0
  22. package/dist/auth/bootstrapScope.js.map +1 -0
  23. package/dist/auth/browserCredentialSafety.d.ts +7 -0
  24. package/dist/auth/browserCredentialSafety.d.ts.map +1 -0
  25. package/dist/auth/browserCredentialSafety.js +29 -0
  26. package/dist/auth/browserCredentialSafety.js.map +1 -0
  27. package/dist/auth/capability.d.ts +241 -0
  28. package/dist/auth/capability.d.ts.map +1 -0
  29. package/dist/auth/capability.js +253 -0
  30. package/dist/auth/capability.js.map +1 -0
  31. package/dist/auth/capabilityLifecycle.d.ts +47 -0
  32. package/dist/auth/capabilityLifecycle.d.ts.map +1 -0
  33. package/dist/auth/capabilityLifecycle.js +108 -0
  34. package/dist/auth/capabilityLifecycle.js.map +1 -0
  35. package/dist/auth/credentialEndpoint.d.ts +10 -0
  36. package/dist/auth/credentialEndpoint.d.ts.map +1 -0
  37. package/dist/auth/credentialEndpoint.js +58 -0
  38. package/dist/auth/credentialEndpoint.js.map +1 -0
  39. package/dist/auth/credentialEndpointProtocol.d.ts +24 -0
  40. package/dist/auth/credentialEndpointProtocol.d.ts.map +1 -0
  41. package/dist/auth/credentialEndpointProtocol.js +34 -0
  42. package/dist/auth/credentialEndpointProtocol.js.map +1 -0
  43. package/dist/auth/credentialKind.d.ts +4 -0
  44. package/dist/auth/credentialKind.d.ts.map +1 -0
  45. package/dist/auth/credentialKind.js +15 -0
  46. package/dist/auth/credentialKind.js.map +1 -0
  47. package/dist/auth/credentialPolicy.d.ts +141 -0
  48. package/dist/auth/credentialPolicy.d.ts.map +1 -0
  49. package/dist/auth/credentialPolicy.js +113 -0
  50. package/dist/auth/credentialPolicy.js.map +1 -0
  51. package/dist/auth/credentialResult.d.ts +7 -0
  52. package/dist/auth/credentialResult.d.ts.map +1 -0
  53. package/dist/auth/credentialResult.js +9 -0
  54. package/dist/auth/credentialResult.js.map +1 -0
  55. package/dist/auth/credentialSource.d.ts +31 -0
  56. package/dist/auth/credentialSource.d.ts.map +1 -0
  57. package/dist/auth/credentialSource.js +56 -0
  58. package/dist/auth/credentialSource.js.map +1 -0
  59. package/dist/auth/hostedEndpoints.d.ts +22 -0
  60. package/dist/auth/hostedEndpoints.d.ts.map +1 -0
  61. package/dist/auth/hostedEndpoints.js +22 -0
  62. package/dist/auth/hostedEndpoints.js.map +1 -0
  63. package/dist/auth/identity.d.ts +62 -0
  64. package/dist/auth/identity.d.ts.map +1 -0
  65. package/dist/auth/identity.js +224 -0
  66. package/dist/auth/identity.js.map +1 -0
  67. package/dist/auth/index.d.ts +189 -0
  68. package/dist/auth/index.d.ts.map +1 -0
  69. package/dist/auth/index.js +312 -0
  70. package/dist/auth/index.js.map +1 -0
  71. package/dist/auth/schemas.d.ts +41 -0
  72. package/dist/auth/schemas.d.ts.map +1 -0
  73. package/dist/auth/schemas.js +69 -0
  74. package/dist/auth/schemas.js.map +1 -0
  75. package/dist/auth/sessionMint.d.ts +29 -0
  76. package/dist/auth/sessionMint.d.ts.map +1 -0
  77. package/dist/auth/sessionMint.js +92 -0
  78. package/dist/auth/sessionMint.js.map +1 -0
  79. package/dist/auth/token.d.ts +4 -0
  80. package/dist/auth/token.d.ts.map +1 -0
  81. package/dist/auth/token.js +4 -0
  82. package/dist/auth/token.js.map +1 -0
  83. package/dist/batching/index.d.ts +56 -0
  84. package/dist/batching/index.d.ts.map +1 -0
  85. package/dist/batching/index.js +148 -0
  86. package/dist/batching/index.js.map +1 -0
  87. package/dist/coordination/awaitClaimGrant.d.ts +57 -0
  88. package/dist/coordination/awaitClaimGrant.d.ts.map +1 -0
  89. package/dist/coordination/awaitClaimGrant.js +138 -0
  90. package/dist/coordination/awaitClaimGrant.js.map +1 -0
  91. package/dist/coordination/claimHeartbeatLoop.d.ts +85 -0
  92. package/dist/coordination/claimHeartbeatLoop.d.ts.map +1 -0
  93. package/dist/coordination/claimHeartbeatLoop.js +109 -0
  94. package/dist/coordination/claimHeartbeatLoop.js.map +1 -0
  95. package/dist/coordination/claimMeta.d.ts +50 -0
  96. package/dist/coordination/claimMeta.d.ts.map +1 -0
  97. package/dist/coordination/claimMeta.js +53 -0
  98. package/dist/coordination/claimMeta.js.map +1 -0
  99. package/dist/coordination/events.d.ts +75 -0
  100. package/dist/coordination/events.d.ts.map +1 -0
  101. package/dist/coordination/events.js +8 -0
  102. package/dist/coordination/events.js.map +1 -0
  103. package/dist/coordination/index.d.ts +20 -0
  104. package/dist/coordination/index.d.ts.map +1 -0
  105. package/dist/coordination/index.js +46 -0
  106. package/dist/coordination/index.js.map +1 -0
  107. package/dist/coordination/locator.d.ts +106 -0
  108. package/dist/coordination/locator.d.ts.map +1 -0
  109. package/dist/coordination/locator.js +110 -0
  110. package/dist/coordination/locator.js.map +1 -0
  111. package/dist/coordination/schema.d.ts +1332 -0
  112. package/dist/coordination/schema.d.ts.map +1 -0
  113. package/dist/coordination/schema.js +1137 -0
  114. package/dist/coordination/schema.js.map +1 -0
  115. package/dist/coordination/targetConflict.d.ts +3 -0
  116. package/dist/coordination/targetConflict.d.ts.map +1 -0
  117. package/dist/coordination/targetConflict.js +74 -0
  118. package/dist/coordination/targetConflict.js.map +1 -0
  119. package/dist/coordination/trace.d.ts +79 -0
  120. package/dist/coordination/trace.d.ts.map +1 -0
  121. package/dist/coordination/trace.js +139 -0
  122. package/dist/coordination/trace.js.map +1 -0
  123. package/dist/docs/catalog.d.ts +73 -0
  124. package/dist/docs/catalog.d.ts.map +1 -0
  125. package/dist/docs/catalog.js +231 -0
  126. package/dist/docs/catalog.js.map +1 -0
  127. package/dist/docs/index.d.ts +11 -0
  128. package/dist/docs/index.d.ts.map +1 -0
  129. package/dist/docs/index.js +11 -0
  130. package/dist/docs/index.js.map +1 -0
  131. package/dist/durableWrites.d.ts +63 -0
  132. package/dist/durableWrites.d.ts.map +1 -0
  133. package/dist/durableWrites.js +72 -0
  134. package/dist/durableWrites.js.map +1 -0
  135. package/dist/environment.d.ts +106 -0
  136. package/dist/environment.d.ts.map +1 -0
  137. package/dist/environment.js +109 -0
  138. package/dist/environment.js.map +1 -0
  139. package/dist/errorCodes.d.ts +411 -0
  140. package/dist/errorCodes.d.ts.map +1 -0
  141. package/dist/errorCodes.js +500 -0
  142. package/dist/errorCodes.js.map +1 -0
  143. package/dist/errors.d.ts +429 -0
  144. package/dist/errors.d.ts.map +1 -0
  145. package/dist/errors.js +687 -0
  146. package/dist/errors.js.map +1 -0
  147. package/dist/footprint.d.ts +112 -0
  148. package/dist/footprint.d.ts.map +1 -0
  149. package/dist/footprint.js +0 -0
  150. package/dist/footprint.js.map +1 -0
  151. package/dist/headlessClient.d.ts +10 -0
  152. package/dist/headlessClient.d.ts.map +1 -0
  153. package/dist/headlessClient.js +114 -0
  154. package/dist/headlessClient.js.map +1 -0
  155. package/dist/index.d.ts +21 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +21 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/keys/index.d.ts +88 -0
  160. package/dist/keys/index.d.ts.map +1 -0
  161. package/dist/keys/index.js +208 -0
  162. package/dist/keys/index.js.map +1 -0
  163. package/dist/log/syncDeltaRow.d.ts +159 -0
  164. package/dist/log/syncDeltaRow.d.ts.map +1 -0
  165. package/dist/log/syncDeltaRow.js +96 -0
  166. package/dist/log/syncDeltaRow.js.map +1 -0
  167. package/dist/logger.d.ts +17 -0
  168. package/dist/logger.d.ts.map +1 -0
  169. package/dist/logger.js +8 -0
  170. package/dist/logger.js.map +1 -0
  171. package/dist/observability.d.ts +54 -0
  172. package/dist/observability.d.ts.map +1 -0
  173. package/dist/observability.js +20 -0
  174. package/dist/observability.js.map +1 -0
  175. package/dist/policy/types.d.ts +218 -0
  176. package/dist/policy/types.d.ts.map +1 -0
  177. package/dist/policy/types.js +127 -0
  178. package/dist/policy/types.js.map +1 -0
  179. package/dist/resources/functionalUpdate.d.ts +80 -0
  180. package/dist/resources/functionalUpdate.d.ts.map +1 -0
  181. package/dist/resources/functionalUpdate.js +88 -0
  182. package/dist/resources/functionalUpdate.js.map +1 -0
  183. package/dist/resources/httpResources.d.ts +449 -0
  184. package/dist/resources/httpResources.d.ts.map +1 -0
  185. package/dist/resources/httpResources.js +8 -0
  186. package/dist/resources/httpResources.js.map +1 -0
  187. package/dist/resources/modelOperations.d.ts +380 -0
  188. package/dist/resources/modelOperations.d.ts.map +1 -0
  189. package/dist/resources/modelOperations.js +13 -0
  190. package/dist/resources/modelOperations.js.map +1 -0
  191. package/dist/resources/mutationOptions.d.ts +67 -0
  192. package/dist/resources/mutationOptions.d.ts.map +1 -0
  193. package/dist/resources/mutationOptions.js +10 -0
  194. package/dist/resources/mutationOptions.js.map +1 -0
  195. package/dist/resources/where.d.ts +102 -0
  196. package/dist/resources/where.d.ts.map +1 -0
  197. package/dist/resources/where.js +116 -0
  198. package/dist/resources/where.js.map +1 -0
  199. package/dist/resources/writeOptionsSchema.d.ts +48 -0
  200. package/dist/resources/writeOptionsSchema.d.ts.map +1 -0
  201. package/dist/resources/writeOptionsSchema.js +74 -0
  202. package/dist/resources/writeOptionsSchema.js.map +1 -0
  203. package/dist/schema/coordination.d.ts +113 -0
  204. package/dist/schema/coordination.d.ts.map +1 -0
  205. package/dist/schema/coordination.js +134 -0
  206. package/dist/schema/coordination.js.map +1 -0
  207. package/dist/schema/ddl.d.ts +98 -0
  208. package/dist/schema/ddl.d.ts.map +1 -0
  209. package/dist/schema/ddl.js +492 -0
  210. package/dist/schema/ddl.js.map +1 -0
  211. package/dist/schema/ddlLock.d.ts +36 -0
  212. package/dist/schema/ddlLock.d.ts.map +1 -0
  213. package/dist/schema/ddlLock.js +47 -0
  214. package/dist/schema/ddlLock.js.map +1 -0
  215. package/dist/schema/diff.d.ts +226 -0
  216. package/dist/schema/diff.d.ts.map +1 -0
  217. package/dist/schema/diff.js +290 -0
  218. package/dist/schema/diff.js.map +1 -0
  219. package/dist/schema/field.d.ts +121 -0
  220. package/dist/schema/field.d.ts.map +1 -0
  221. package/dist/schema/field.js +266 -0
  222. package/dist/schema/field.js.map +1 -0
  223. package/dist/schema/fieldRef.d.ts +58 -0
  224. package/dist/schema/fieldRef.d.ts.map +1 -0
  225. package/dist/schema/fieldRef.js +26 -0
  226. package/dist/schema/fieldRef.js.map +1 -0
  227. package/dist/schema/generate.d.ts +20 -0
  228. package/dist/schema/generate.d.ts.map +1 -0
  229. package/dist/schema/generate.js +87 -0
  230. package/dist/schema/generate.js.map +1 -0
  231. package/dist/schema/index.d.ts +43 -0
  232. package/dist/schema/index.d.ts.map +1 -0
  233. package/dist/schema/index.js +81 -0
  234. package/dist/schema/index.js.map +1 -0
  235. package/dist/schema/loadStrategy.d.ts +46 -0
  236. package/dist/schema/loadStrategy.d.ts.map +1 -0
  237. package/dist/schema/loadStrategy.js +47 -0
  238. package/dist/schema/loadStrategy.js.map +1 -0
  239. package/dist/schema/model.d.ts +380 -0
  240. package/dist/schema/model.d.ts.map +1 -0
  241. package/dist/schema/model.js +124 -0
  242. package/dist/schema/model.js.map +1 -0
  243. package/dist/schema/openapi.d.ts +59 -0
  244. package/dist/schema/openapi.d.ts.map +1 -0
  245. package/dist/schema/openapi.js +508 -0
  246. package/dist/schema/openapi.js.map +1 -0
  247. package/dist/schema/queries.d.ts +202 -0
  248. package/dist/schema/queries.d.ts.map +1 -0
  249. package/dist/schema/queries.js +144 -0
  250. package/dist/schema/queries.js.map +1 -0
  251. package/dist/schema/relation.d.ts +205 -0
  252. package/dist/schema/relation.d.ts.map +1 -0
  253. package/dist/schema/relation.js +105 -0
  254. package/dist/schema/relation.js.map +1 -0
  255. package/dist/schema/residency.d.ts +30 -0
  256. package/dist/schema/residency.d.ts.map +1 -0
  257. package/dist/schema/residency.js +26 -0
  258. package/dist/schema/residency.js.map +1 -0
  259. package/dist/schema/roles.d.ts +250 -0
  260. package/dist/schema/roles.d.ts.map +1 -0
  261. package/dist/schema/roles.js +231 -0
  262. package/dist/schema/roles.js.map +1 -0
  263. package/dist/schema/schema.d.ts +352 -0
  264. package/dist/schema/schema.d.ts.map +1 -0
  265. package/dist/schema/schema.js +326 -0
  266. package/dist/schema/schema.js.map +1 -0
  267. package/dist/schema/select.d.ts +41 -0
  268. package/dist/schema/select.d.ts.map +1 -0
  269. package/dist/schema/select.js +91 -0
  270. package/dist/schema/select.js.map +1 -0
  271. package/dist/schema/serialize.d.ts +116 -0
  272. package/dist/schema/serialize.d.ts.map +1 -0
  273. package/dist/schema/serialize.js +278 -0
  274. package/dist/schema/serialize.js.map +1 -0
  275. package/dist/schema/sugar.d.ts +110 -0
  276. package/dist/schema/sugar.d.ts.map +1 -0
  277. package/dist/schema/sugar.js +84 -0
  278. package/dist/schema/sugar.js.map +1 -0
  279. package/dist/schema/tenancy.d.ts +140 -0
  280. package/dist/schema/tenancy.d.ts.map +1 -0
  281. package/dist/schema/tenancy.js +191 -0
  282. package/dist/schema/tenancy.js.map +1 -0
  283. package/dist/server/adapter.d.ts +174 -0
  284. package/dist/server/adapter.d.ts.map +1 -0
  285. package/dist/server/adapter.js +19 -0
  286. package/dist/server/adapter.js.map +1 -0
  287. package/dist/server/commit.d.ts +108 -0
  288. package/dist/server/commit.d.ts.map +1 -0
  289. package/dist/server/commit.js +2 -0
  290. package/dist/server/commit.js.map +1 -0
  291. package/dist/server/index.d.ts +15 -0
  292. package/dist/server/index.d.ts.map +1 -0
  293. package/dist/server/index.js +3 -0
  294. package/dist/server/index.js.map +1 -0
  295. package/dist/server/readConfig.d.ts +81 -0
  296. package/dist/server/readConfig.d.ts.map +1 -0
  297. package/dist/server/readConfig.js +9 -0
  298. package/dist/server/readConfig.js.map +1 -0
  299. package/dist/server/storageMode.d.ts +24 -0
  300. package/dist/server/storageMode.d.ts.map +1 -0
  301. package/dist/server/storageMode.js +18 -0
  302. package/dist/server/storageMode.js.map +1 -0
  303. package/dist/source/adapter.d.ts +84 -0
  304. package/dist/source/adapter.d.ts.map +1 -0
  305. package/dist/source/adapter.js +25 -0
  306. package/dist/source/adapter.js.map +1 -0
  307. package/dist/source/adapters/drizzle.d.ts +49 -0
  308. package/dist/source/adapters/drizzle.d.ts.map +1 -0
  309. package/dist/source/adapters/drizzle.js +220 -0
  310. package/dist/source/adapters/drizzle.js.map +1 -0
  311. package/dist/source/adapters/kysely.d.ts +43 -0
  312. package/dist/source/adapters/kysely.d.ts.map +1 -0
  313. package/dist/source/adapters/kysely.js +206 -0
  314. package/dist/source/adapters/kysely.js.map +1 -0
  315. package/dist/source/adapters/kyselyMutationCore.d.ts +77 -0
  316. package/dist/source/adapters/kyselyMutationCore.d.ts.map +1 -0
  317. package/dist/source/adapters/kyselyMutationCore.js +126 -0
  318. package/dist/source/adapters/kyselyMutationCore.js.map +1 -0
  319. package/dist/source/adapters/memory.d.ts +14 -0
  320. package/dist/source/adapters/memory.d.ts.map +1 -0
  321. package/dist/source/adapters/memory.js +131 -0
  322. package/dist/source/adapters/memory.js.map +1 -0
  323. package/dist/source/adapters/prisma.d.ts +64 -0
  324. package/dist/source/adapters/prisma.d.ts.map +1 -0
  325. package/dist/source/adapters/prisma.js +203 -0
  326. package/dist/source/adapters/prisma.js.map +1 -0
  327. package/dist/source/conformance.d.ts +38 -0
  328. package/dist/source/conformance.d.ts.map +1 -0
  329. package/dist/source/conformance.js +216 -0
  330. package/dist/source/conformance.js.map +1 -0
  331. package/dist/source/connector.d.ts +96 -0
  332. package/dist/source/connector.d.ts.map +1 -0
  333. package/dist/source/connector.js +267 -0
  334. package/dist/source/connector.js.map +1 -0
  335. package/dist/source/connectorProtocol.d.ts +155 -0
  336. package/dist/source/connectorProtocol.d.ts.map +1 -0
  337. package/dist/source/connectorProtocol.js +164 -0
  338. package/dist/source/connectorProtocol.js.map +1 -0
  339. package/dist/source/contract.d.ts +196 -0
  340. package/dist/source/contract.d.ts.map +1 -0
  341. package/dist/source/contract.js +165 -0
  342. package/dist/source/contract.js.map +1 -0
  343. package/dist/source/drizzle.d.ts +2 -0
  344. package/dist/source/drizzle.d.ts.map +1 -0
  345. package/dist/source/drizzle.js +2 -0
  346. package/dist/source/drizzle.js.map +1 -0
  347. package/dist/source/factory.d.ts +93 -0
  348. package/dist/source/factory.d.ts.map +1 -0
  349. package/dist/source/factory.js +287 -0
  350. package/dist/source/factory.js.map +1 -0
  351. package/dist/source/idempotency.d.ts +62 -0
  352. package/dist/source/idempotency.d.ts.map +1 -0
  353. package/dist/source/idempotency.js +145 -0
  354. package/dist/source/idempotency.js.map +1 -0
  355. package/dist/source/index.d.ts +24 -0
  356. package/dist/source/index.d.ts.map +1 -0
  357. package/dist/source/index.js +29 -0
  358. package/dist/source/index.js.map +1 -0
  359. package/dist/source/kysely.d.ts +3 -0
  360. package/dist/source/kysely.d.ts.map +1 -0
  361. package/dist/source/kysely.js +3 -0
  362. package/dist/source/kysely.js.map +1 -0
  363. package/dist/source/migrations.d.ts +22 -0
  364. package/dist/source/migrations.d.ts.map +1 -0
  365. package/dist/source/migrations.js +104 -0
  366. package/dist/source/migrations.js.map +1 -0
  367. package/dist/source/next.d.ts +33 -0
  368. package/dist/source/next.d.ts.map +1 -0
  369. package/dist/source/next.js +26 -0
  370. package/dist/source/next.js.map +1 -0
  371. package/dist/source/pushQueue.d.ts +135 -0
  372. package/dist/source/pushQueue.d.ts.map +1 -0
  373. package/dist/source/pushQueue.js +257 -0
  374. package/dist/source/pushQueue.js.map +1 -0
  375. package/dist/source/signing.d.ts +93 -0
  376. package/dist/source/signing.d.ts.map +1 -0
  377. package/dist/source/signing.js +163 -0
  378. package/dist/source/signing.js.map +1 -0
  379. package/dist/source/types.d.ts +402 -0
  380. package/dist/source/types.d.ts.map +1 -0
  381. package/dist/source/types.js +60 -0
  382. package/dist/source/types.js.map +1 -0
  383. package/dist/syncLog/contract.d.ts +21 -0
  384. package/dist/syncLog/contract.d.ts.map +1 -0
  385. package/dist/syncLog/contract.js +20 -0
  386. package/dist/syncLog/contract.js.map +1 -0
  387. package/dist/syncLog/index.d.ts +2 -0
  388. package/dist/syncLog/index.d.ts.map +1 -0
  389. package/dist/syncLog/index.js +2 -0
  390. package/dist/syncLog/index.js.map +1 -0
  391. package/dist/testing/fixtures/httpResponses.d.ts +74 -0
  392. package/dist/testing/fixtures/httpResponses.d.ts.map +1 -0
  393. package/dist/testing/fixtures/httpResponses.js +102 -0
  394. package/dist/testing/fixtures/httpResponses.js.map +1 -0
  395. package/dist/transactionLayer.d.ts +110 -0
  396. package/dist/transactionLayer.d.ts.map +1 -0
  397. package/dist/transactionLayer.js +25 -0
  398. package/dist/transactionLayer.js.map +1 -0
  399. package/dist/transactions/settlement/commitEnvelope.d.ts +144 -0
  400. package/dist/transactions/settlement/commitEnvelope.d.ts.map +1 -0
  401. package/dist/transactions/settlement/commitEnvelope.js +162 -0
  402. package/dist/transactions/settlement/commitEnvelope.js.map +1 -0
  403. package/dist/transactions/settlement/httpCommitEnvelope.d.ts +54 -0
  404. package/dist/transactions/settlement/httpCommitEnvelope.d.ts.map +1 -0
  405. package/dist/transactions/settlement/httpCommitEnvelope.js +208 -0
  406. package/dist/transactions/settlement/httpCommitEnvelope.js.map +1 -0
  407. package/dist/transactions/settlement/idempotencyKey.d.ts +11 -0
  408. package/dist/transactions/settlement/idempotencyKey.d.ts.map +1 -0
  409. package/dist/transactions/settlement/idempotencyKey.js +10 -0
  410. package/dist/transactions/settlement/idempotencyKey.js.map +1 -0
  411. package/dist/transactions/settlement/pendingWrite.d.ts +113 -0
  412. package/dist/transactions/settlement/pendingWrite.d.ts.map +1 -0
  413. package/dist/transactions/settlement/pendingWrite.js +21 -0
  414. package/dist/transactions/settlement/pendingWrite.js.map +1 -0
  415. package/dist/transport/commitFrames.d.ts +91 -0
  416. package/dist/transport/commitFrames.d.ts.map +1 -0
  417. package/dist/transport/commitFrames.js +135 -0
  418. package/dist/transport/commitFrames.js.map +1 -0
  419. package/dist/transport/connectionManager.d.ts +216 -0
  420. package/dist/transport/connectionManager.d.ts.map +1 -0
  421. package/dist/transport/connectionManager.js +674 -0
  422. package/dist/transport/connectionManager.js.map +1 -0
  423. package/dist/transport/credentialLifecycle.d.ts +178 -0
  424. package/dist/transport/credentialLifecycle.d.ts.map +1 -0
  425. package/dist/transport/credentialLifecycle.js +324 -0
  426. package/dist/transport/credentialLifecycle.js.map +1 -0
  427. package/dist/transport/heartbeat.d.ts +66 -0
  428. package/dist/transport/heartbeat.d.ts.map +1 -0
  429. package/dist/transport/heartbeat.js +94 -0
  430. package/dist/transport/heartbeat.js.map +1 -0
  431. package/dist/transport/httpClient.d.ts +143 -0
  432. package/dist/transport/httpClient.d.ts.map +1 -0
  433. package/dist/transport/httpClient.js +150 -0
  434. package/dist/transport/httpClient.js.map +1 -0
  435. package/dist/transport/httpFeed.d.ts +4 -0
  436. package/dist/transport/httpFeed.d.ts.map +1 -0
  437. package/dist/transport/httpFeed.js +94 -0
  438. package/dist/transport/httpFeed.js.map +1 -0
  439. package/dist/transport/httpOptions.d.ts +34 -0
  440. package/dist/transport/httpOptions.d.ts.map +1 -0
  441. package/dist/transport/httpOptions.js +13 -0
  442. package/dist/transport/httpOptions.js.map +1 -0
  443. package/dist/transport/httpTransport.d.ts +68 -0
  444. package/dist/transport/httpTransport.d.ts.map +1 -0
  445. package/dist/transport/httpTransport.js +1433 -0
  446. package/dist/transport/httpTransport.js.map +1 -0
  447. package/dist/transport/networkProbe.d.ts +85 -0
  448. package/dist/transport/networkProbe.d.ts.map +1 -0
  449. package/dist/transport/networkProbe.js +208 -0
  450. package/dist/transport/networkProbe.js.map +1 -0
  451. package/dist/transport/wsFrameHandlers.d.ts +129 -0
  452. package/dist/transport/wsFrameHandlers.d.ts.map +1 -0
  453. package/dist/transport/wsFrameHandlers.js +429 -0
  454. package/dist/transport/wsFrameHandlers.js.map +1 -0
  455. package/dist/transport/wsTransport.d.ts +575 -0
  456. package/dist/transport/wsTransport.d.ts.map +1 -0
  457. package/dist/transport/wsTransport.js +1024 -0
  458. package/dist/transport/wsTransport.js.map +1 -0
  459. package/dist/types/assertExact.d.ts +18 -0
  460. package/dist/types/assertExact.d.ts.map +1 -0
  461. package/dist/types/assertExact.js +2 -0
  462. package/dist/types/assertExact.js.map +1 -0
  463. package/dist/types/global.d.ts +108 -0
  464. package/dist/types/global.d.ts.map +1 -0
  465. package/dist/types/global.js +41 -0
  466. package/dist/types/global.js.map +1 -0
  467. package/dist/types/index.d.ts +206 -0
  468. package/dist/types/index.d.ts.map +1 -0
  469. package/dist/types/index.js +57 -0
  470. package/dist/types/index.js.map +1 -0
  471. package/dist/types/modelData.d.ts +11 -0
  472. package/dist/types/modelData.d.ts.map +1 -0
  473. package/dist/types/modelData.js +10 -0
  474. package/dist/types/modelData.js.map +1 -0
  475. package/dist/types/participant.d.ts +21 -0
  476. package/dist/types/participant.d.ts.map +1 -0
  477. package/dist/types/participant.js +11 -0
  478. package/dist/types/participant.js.map +1 -0
  479. package/dist/types/streams.d.ts +545 -0
  480. package/dist/types/streams.d.ts.map +1 -0
  481. package/dist/types/streams.js +12 -0
  482. package/dist/types/streams.js.map +1 -0
  483. package/dist/utils/asyncIterator.d.ts +35 -0
  484. package/dist/utils/asyncIterator.d.ts.map +1 -0
  485. package/dist/utils/asyncIterator.js +136 -0
  486. package/dist/utils/asyncIterator.js.map +1 -0
  487. package/dist/utils/duration.d.ts +51 -0
  488. package/dist/utils/duration.d.ts.map +1 -0
  489. package/dist/utils/duration.js +78 -0
  490. package/dist/utils/duration.js.map +1 -0
  491. package/dist/utils/json.d.ts +58 -0
  492. package/dist/utils/json.d.ts.map +1 -0
  493. package/dist/utils/json.js +277 -0
  494. package/dist/utils/json.js.map +1 -0
  495. package/dist/webhooks/events.d.ts +44 -0
  496. package/dist/webhooks/events.d.ts.map +1 -0
  497. package/dist/webhooks/events.js +43 -0
  498. package/dist/webhooks/events.js.map +1 -0
  499. package/dist/webhooks/index.d.ts +9 -0
  500. package/dist/webhooks/index.d.ts.map +1 -0
  501. package/dist/webhooks/index.js +9 -0
  502. package/dist/webhooks/index.js.map +1 -0
  503. package/dist/wire/accountResponses.d.ts +463 -0
  504. package/dist/wire/accountResponses.d.ts.map +1 -0
  505. package/dist/wire/accountResponses.js +294 -0
  506. package/dist/wire/accountResponses.js.map +1 -0
  507. package/dist/wire/auth.d.ts +57 -0
  508. package/dist/wire/auth.d.ts.map +1 -0
  509. package/dist/wire/auth.js +71 -0
  510. package/dist/wire/auth.js.map +1 -0
  511. package/dist/wire/bootstrapReason.d.ts +10 -0
  512. package/dist/wire/bootstrapReason.d.ts.map +1 -0
  513. package/dist/wire/bootstrapReason.js +9 -0
  514. package/dist/wire/bootstrapReason.js.map +1 -0
  515. package/dist/wire/claimEvent.d.ts +70 -0
  516. package/dist/wire/claimEvent.d.ts.map +1 -0
  517. package/dist/wire/claimEvent.js +74 -0
  518. package/dist/wire/claimEvent.js.map +1 -0
  519. package/dist/wire/claims.d.ts +475 -0
  520. package/dist/wire/claims.d.ts.map +1 -0
  521. package/dist/wire/claims.js +326 -0
  522. package/dist/wire/claims.js.map +1 -0
  523. package/dist/wire/commit.d.ts +604 -0
  524. package/dist/wire/commit.d.ts.map +1 -0
  525. package/dist/wire/commit.js +322 -0
  526. package/dist/wire/commit.js.map +1 -0
  527. package/dist/wire/delta.d.ts +251 -0
  528. package/dist/wire/delta.d.ts.map +1 -0
  529. package/dist/wire/delta.js +148 -0
  530. package/dist/wire/delta.js.map +1 -0
  531. package/dist/wire/errorEnvelope.d.ts +73 -0
  532. package/dist/wire/errorEnvelope.d.ts.map +1 -0
  533. package/dist/wire/errorEnvelope.js +124 -0
  534. package/dist/wire/errorEnvelope.js.map +1 -0
  535. package/dist/wire/feedCursor.d.ts +61 -0
  536. package/dist/wire/feedCursor.d.ts.map +1 -0
  537. package/dist/wire/feedCursor.js +83 -0
  538. package/dist/wire/feedCursor.js.map +1 -0
  539. package/dist/wire/feedEvent.d.ts +264 -0
  540. package/dist/wire/feedEvent.d.ts.map +1 -0
  541. package/dist/wire/feedEvent.js +66 -0
  542. package/dist/wire/feedEvent.js.map +1 -0
  543. package/dist/wire/frames.d.ts +195 -0
  544. package/dist/wire/frames.d.ts.map +1 -0
  545. package/dist/wire/frames.js +51 -0
  546. package/dist/wire/frames.js.map +1 -0
  547. package/dist/wire/inboundFrames.d.ts +490 -0
  548. package/dist/wire/inboundFrames.d.ts.map +1 -0
  549. package/dist/wire/inboundFrames.js +117 -0
  550. package/dist/wire/inboundFrames.js.map +1 -0
  551. package/dist/wire/index.d.ts +55 -0
  552. package/dist/wire/index.d.ts.map +1 -0
  553. package/dist/wire/index.js +84 -0
  554. package/dist/wire/index.js.map +1 -0
  555. package/dist/wire/listEnvelope.d.ts +38 -0
  556. package/dist/wire/listEnvelope.d.ts.map +1 -0
  557. package/dist/wire/listEnvelope.js +43 -0
  558. package/dist/wire/listEnvelope.js.map +1 -0
  559. package/dist/wire/modelMutations.d.ts +32 -0
  560. package/dist/wire/modelMutations.d.ts.map +1 -0
  561. package/dist/wire/modelMutations.js +53 -0
  562. package/dist/wire/modelMutations.js.map +1 -0
  563. package/dist/wire/modelResponses.d.ts +79 -0
  564. package/dist/wire/modelResponses.d.ts.map +1 -0
  565. package/dist/wire/modelResponses.js +44 -0
  566. package/dist/wire/modelResponses.js.map +1 -0
  567. package/dist/wire/modelShape.d.ts +79 -0
  568. package/dist/wire/modelShape.d.ts.map +1 -0
  569. package/dist/wire/modelShape.js +75 -0
  570. package/dist/wire/modelShape.js.map +1 -0
  571. package/dist/wire/protocol.d.ts +39 -0
  572. package/dist/wire/protocol.d.ts.map +1 -0
  573. package/dist/wire/protocol.js +39 -0
  574. package/dist/wire/protocol.js.map +1 -0
  575. package/dist/wire/protocolVersion.d.ts +74 -0
  576. package/dist/wire/protocolVersion.d.ts.map +1 -0
  577. package/dist/wire/protocolVersion.js +84 -0
  578. package/dist/wire/protocolVersion.js.map +1 -0
  579. package/package.json +187 -0
  580. package/src/ablo.ts +139 -0
  581. package/src/ai-sdk/coordinatedTool.ts +214 -0
  582. package/src/ai-sdk/index.ts +7 -0
  583. package/src/auth/apiKey.ts +540 -0
  584. package/src/auth/bootstrapScope.ts +15 -0
  585. package/src/auth/browserCredentialSafety.ts +48 -0
  586. package/src/auth/capability.ts +326 -0
  587. package/src/auth/capabilityLifecycle.ts +174 -0
  588. package/src/auth/credentialEndpoint.ts +79 -0
  589. package/src/auth/credentialEndpointProtocol.ts +51 -0
  590. package/src/auth/credentialKind.ts +20 -0
  591. package/src/auth/credentialPolicy.ts +244 -0
  592. package/src/auth/credentialResult.ts +23 -0
  593. package/src/auth/credentialSource.ts +99 -0
  594. package/src/auth/hostedEndpoints.ts +24 -0
  595. package/src/auth/identity.ts +330 -0
  596. package/src/auth/index.ts +592 -0
  597. package/src/auth/schemas.ts +94 -0
  598. package/src/auth/sessionMint.ts +126 -0
  599. package/src/auth/token.ts +4 -0
  600. package/src/batching/index.ts +200 -0
  601. package/src/coordination/awaitClaimGrant.ts +243 -0
  602. package/src/coordination/claimHeartbeatLoop.ts +165 -0
  603. package/src/coordination/claimMeta.ts +56 -0
  604. package/src/coordination/events.ts +86 -0
  605. package/src/coordination/index.ts +181 -0
  606. package/src/coordination/locator.ts +200 -0
  607. package/src/coordination/schema.ts +1346 -0
  608. package/src/coordination/targetConflict.ts +85 -0
  609. package/src/coordination/trace.ts +173 -0
  610. package/src/docs/catalog.ts +274 -0
  611. package/src/docs/index.ts +18 -0
  612. package/src/durableWrites.ts +134 -0
  613. package/src/environment.ts +132 -0
  614. package/src/errorCodes.ts +1591 -0
  615. package/src/errors.ts +918 -0
  616. package/src/footprint.ts +0 -0
  617. package/src/headlessClient.ts +161 -0
  618. package/src/index.ts +52 -0
  619. package/src/keys/index.ts +254 -0
  620. package/src/log/syncDeltaRow.ts +119 -0
  621. package/src/logger.ts +22 -0
  622. package/src/observability.ts +85 -0
  623. package/src/policy/types.ts +292 -0
  624. package/src/resources/functionalUpdate.ts +151 -0
  625. package/src/resources/httpResources.ts +520 -0
  626. package/src/resources/modelOperations.ts +444 -0
  627. package/src/resources/mutationOptions.ts +66 -0
  628. package/src/resources/where.ts +160 -0
  629. package/src/resources/writeOptionsSchema.ts +91 -0
  630. package/src/schema/coordination.ts +161 -0
  631. package/src/schema/ddl.ts +593 -0
  632. package/src/schema/ddlLock.ts +53 -0
  633. package/src/schema/diff.ts +489 -0
  634. package/src/schema/field.ts +321 -0
  635. package/src/schema/fieldRef.ts +88 -0
  636. package/src/schema/generate.ts +95 -0
  637. package/src/schema/index.ts +278 -0
  638. package/src/schema/loadStrategy.ts +52 -0
  639. package/src/schema/model.ts +476 -0
  640. package/src/schema/openapi.ts +658 -0
  641. package/src/schema/queries.ts +273 -0
  642. package/src/schema/relation.ts +291 -0
  643. package/src/schema/residency.ts +30 -0
  644. package/src/schema/roles.ts +325 -0
  645. package/src/schema/schema.ts +825 -0
  646. package/src/schema/select.ts +115 -0
  647. package/src/schema/serialize.ts +373 -0
  648. package/src/schema/sugar.ts +194 -0
  649. package/src/schema/tenancy.ts +221 -0
  650. package/src/server/adapter.ts +203 -0
  651. package/src/server/commit.ts +109 -0
  652. package/src/server/index.ts +26 -0
  653. package/src/server/readConfig.ts +82 -0
  654. package/src/server/storageMode.ts +20 -0
  655. package/src/source/adapter.ts +85 -0
  656. package/src/source/adapters/drizzle.ts +291 -0
  657. package/src/source/adapters/kysely.ts +346 -0
  658. package/src/source/adapters/kyselyMutationCore.ts +220 -0
  659. package/src/source/adapters/memory.ts +154 -0
  660. package/src/source/adapters/prisma.ts +282 -0
  661. package/src/source/conformance.ts +287 -0
  662. package/src/source/connector.ts +394 -0
  663. package/src/source/connectorProtocol.ts +189 -0
  664. package/src/source/contract.ts +221 -0
  665. package/src/source/drizzle.ts +1 -0
  666. package/src/source/factory.ts +444 -0
  667. package/src/source/idempotency.ts +189 -0
  668. package/src/source/index.ts +182 -0
  669. package/src/source/kysely.ts +2 -0
  670. package/src/source/migrations.ts +109 -0
  671. package/src/source/next.ts +38 -0
  672. package/src/source/pushQueue.ts +368 -0
  673. package/src/source/signing.ts +279 -0
  674. package/src/source/types.ts +502 -0
  675. package/src/syncLog/contract.ts +32 -0
  676. package/src/syncLog/index.ts +1 -0
  677. package/src/testing/fixtures/httpResponses.ts +155 -0
  678. package/src/transactionLayer.ts +122 -0
  679. package/src/transactions/settlement/commitEnvelope.ts +192 -0
  680. package/src/transactions/settlement/httpCommitEnvelope.ts +250 -0
  681. package/src/transactions/settlement/idempotencyKey.ts +11 -0
  682. package/src/transactions/settlement/pendingWrite.ts +24 -0
  683. package/src/transport/commitFrames.ts +225 -0
  684. package/src/transport/connectionManager.ts +856 -0
  685. package/src/transport/credentialLifecycle.ts +389 -0
  686. package/src/transport/heartbeat.ts +118 -0
  687. package/src/transport/httpClient.ts +354 -0
  688. package/src/transport/httpFeed.ts +111 -0
  689. package/src/transport/httpOptions.ts +41 -0
  690. package/src/transport/httpTransport.ts +1976 -0
  691. package/src/transport/networkProbe.ts +249 -0
  692. package/src/transport/wsFrameHandlers.ts +619 -0
  693. package/src/transport/wsTransport.ts +1491 -0
  694. package/src/types/assertExact.ts +17 -0
  695. package/src/types/global.ts +123 -0
  696. package/src/types/index.ts +270 -0
  697. package/src/types/modelData.ts +11 -0
  698. package/src/types/participant.ts +22 -0
  699. package/src/types/streams.ts +702 -0
  700. package/src/utils/asyncIterator.ts +141 -0
  701. package/src/utils/duration.ts +88 -0
  702. package/src/utils/json.ts +281 -0
  703. package/src/webhooks/events.ts +96 -0
  704. package/src/webhooks/index.ts +12 -0
  705. package/src/wire/accountResponses.ts +328 -0
  706. package/src/wire/auth.ts +86 -0
  707. package/src/wire/bootstrapReason.ts +10 -0
  708. package/src/wire/claimEvent.ts +85 -0
  709. package/src/wire/claims.ts +370 -0
  710. package/src/wire/commit.ts +379 -0
  711. package/src/wire/delta.ts +173 -0
  712. package/src/wire/errorEnvelope.ts +133 -0
  713. package/src/wire/feedCursor.ts +91 -0
  714. package/src/wire/feedEvent.ts +74 -0
  715. package/src/wire/frames.ts +77 -0
  716. package/src/wire/inboundFrames.ts +182 -0
  717. package/src/wire/index.ts +328 -0
  718. package/src/wire/listEnvelope.ts +51 -0
  719. package/src/wire/modelMutations.ts +55 -0
  720. package/src/wire/modelResponses.ts +48 -0
  721. package/src/wire/modelShape.ts +83 -0
  722. package/src/wire/protocol.ts +39 -0
  723. package/src/wire/protocolVersion.ts +97 -0
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Authentication and URL resolution for the `Ablo()` client.
3
+ *
4
+ * Each function here makes one decision: it resolves a configuration value with
5
+ * the right precedence, or fails with an actionable message. Together they let
6
+ * the client constructor read as a sequence of named steps rather than a chain
7
+ * of fallbacks.
8
+ *
9
+ * The environment surface is deliberately small: `ABLO_API_KEY` is the only
10
+ * value read from the environment. Every other routing or authentication
11
+ * override is an explicit option, so an app never picks up hidden behavior from
12
+ * a stray environment variable.
13
+ */
14
+ import type { KeyEnvironment } from '../environment.js';
15
+ import { type CredentialProvider } from './credentialResult.js';
16
+ import { assertBrowserSafety } from './browserCredentialSafety.js';
17
+ export { assertBrowserSafety };
18
+ /**
19
+ * The credential-resolver callable type. It is defined alongside
20
+ * {@link createEndpointCredentialResolver} in `./credentialEndpoint` and
21
+ * re-exported here so importers of this module keep working. See that module
22
+ * for the full contract.
23
+ */
24
+ export type { CredentialProvider } from './credentialResult.js';
25
+ /**
26
+ * The client options that decide a credential.
27
+ *
28
+ * This is the ONE declaration of that set. The resolvers below read it, and the
29
+ * transport configs that accept these options derive from it rather than listing
30
+ * the fields again — a second list is how `authEndpoint` came to be supported at
31
+ * runtime, named in an error message, and absent from the type a caller writes
32
+ * against.
33
+ */
34
+ export interface AuthClientOptions {
35
+ readonly apiKey?: string | CredentialProvider | null;
36
+ /** A route that mints the token, instead of a key the process holds. */
37
+ readonly authEndpoint?: string | CredentialProvider | null;
38
+ /** A token the caller already has, used as-is. */
39
+ readonly authToken?: string | null;
40
+ readonly baseURL?: string | null;
41
+ readonly dangerouslyAllowBrowser?: boolean;
42
+ readonly fetch?: typeof globalThis.fetch;
43
+ readonly authTimeoutMs?: number;
44
+ readonly allowCrossOriginAuthEndpoint?: boolean;
45
+ }
46
+ export interface AuthResolveInput {
47
+ /**
48
+ * The full set of options the caller passed to the client constructor. Each
49
+ * resolver reads only the fields it needs; passing the whole object avoids
50
+ * threading many separate parameters through every helper.
51
+ */
52
+ readonly options: AuthClientOptions;
53
+ readonly env: Record<string, string | undefined>;
54
+ }
55
+ /**
56
+ * Read `process.env` defensively. Works in browser (where `process`
57
+ * is undefined), Node, and edge runtimes that expose a partial
58
+ * process polyfill.
59
+ */
60
+ export declare function readProcessEnv(): Record<string, string | undefined>;
61
+ export declare function resolveApiKey(input: AuthResolveInput): string | CredentialProvider | null;
62
+ /**
63
+ * Narrow a resolved `apiKey` to the single resolver the credential lifecycle
64
+ * needs: an async `() => token | null`, or `null` when auth is static — a plain
65
+ * long-lived key string with no refresh, which is the common case.
66
+ *
67
+ * The short-lived per-user browser path passes a credential provider, and the
68
+ * SDK then drives the whole credential lifecycle
69
+ * from it: mint-before-connect, the proactive refresh timer with its
70
+ * wake/online/focus re-mint, and the reactive `credential_stale` re-mint. The
71
+ * resolver follows the provider contract end to end: resolve a token,
72
+ * resolve `null` when the login is gone (terminal — surfaces `session_expired`
73
+ * and signs the user out), or throw on a transient failure (backs off, without
74
+ * signing out).
75
+ */
76
+ export declare function resolveCredentialResolver(apiKey: string | CredentialProvider | null): CredentialProvider | null;
77
+ export declare function resolveAuthToken(input: AuthResolveInput): string | null;
78
+ /**
79
+ * The credential axis, not a second copy of it. `environment.ts` documents two
80
+ * incidents caused by conflating the plane a request runs on with the mode a
81
+ * credential was minted in, and states the credential axis must not grow when
82
+ * planes do — so the CLI mismatch path reads the canonical vocabulary rather
83
+ * than restating its members here.
84
+ */
85
+ type CliMode = KeyEnvironment;
86
+ type StaticApiKeySource = 'option' | 'env';
87
+ interface StaticApiKey {
88
+ readonly key: string;
89
+ readonly source: StaticApiKeySource;
90
+ }
91
+ interface CliCredentialSnapshot {
92
+ readonly mode: CliMode;
93
+ readonly activeProfile: string;
94
+ readonly storedKey?: string;
95
+ }
96
+ export interface CliKeyMismatch {
97
+ readonly source: StaticApiKeySource;
98
+ readonly configuredKeyPrefix: string;
99
+ readonly configuredMode?: CliMode;
100
+ readonly cliMode: CliMode;
101
+ readonly storedKeyPrefix?: string;
102
+ readonly kind: 'mode_mismatch' | 'key_override';
103
+ readonly message: string;
104
+ }
105
+ /** Infer the sandbox or production mode from an Ablo key's prefix. */
106
+ export declare function modeFromApiKey(key: string): CliMode | undefined;
107
+ export declare function describeCliKeyMismatch(configured: StaticApiKey, cli: CliCredentialSnapshot): CliKeyMismatch | null;
108
+ export declare function warnIfCliKeyMismatch(input: AuthResolveInput, warn?: (message: string) => void): Promise<void>;
109
+ export { ABLO_HOSTED_API_DOMAIN, ABLO_HOSTED_HTTP_BASE_URL, ABLO_DEFAULT_BASE_URL } from './hostedEndpoints.js';
110
+ /**
111
+ * Normalizes older hosted host names to the current public API domain.
112
+ * Self-hosted or custom URLs pass through unchanged; only the retired
113
+ * first-party host names are rewritten.
114
+ */
115
+ export declare function normalizeAbloHostedBaseUrl(rawUrl: string): string;
116
+ export declare function resolveBaseURL(input: AuthResolveInput): string;
117
+ /**
118
+ * Guards against using a secret `apiKey` in a browser. A secret key is
119
+ * server-side only by default: shipping an `sk_live_...` key to a browser would
120
+ * expose it in every visitor's network tab. Callers opt in explicitly when the
121
+ * browser instead holds a minted session token (`ek_`/`rk_`) or routes through a
122
+ * server proxy. Throws {@link AbloAuthenticationError} when a secret key is
123
+ * detected in a browser without opt-in.
124
+ */
125
+ /**
126
+ * Rejects the REMOVED `databaseUrl` dial-in option loudly. The option is gone
127
+ * from the types, but an untyped or stale caller could still pass it — and
128
+ * silently ignoring it would reroute their writes to Ablo-hosted storage,
129
+ * the opposite of what that option used to promise. A construction-time throw
130
+ * turns a wrong-storage surprise into a clear migration instruction.
131
+ */
132
+ export declare function rejectRemovedDatabaseUrlOption(options: object): void;
133
+ /**
134
+ * Resolves a credential provider to its current string value, or
135
+ * returns a plain string key as-is. Called at request time so a rotating
136
+ * credential picks up new values between requests. Returns `null` when no key
137
+ * was configured.
138
+ */
139
+ export declare function resolveApiKeyValue(apiKey: string | CredentialProvider | null): Promise<string | null>;
140
+ /**
141
+ * Translates a WebSocket URL into the matching HTTP API base URL, defaulting to
142
+ * `${url}/api` when the caller has not overridden `bootstrapBaseUrl`. The
143
+ * bootstrap helper, the hydration coordinator, the credential-exchange flow, and
144
+ * the identity flow all derive their base URL through this one function, so the
145
+ * derivation stays consistent across them.
146
+ *
147
+ * When both `wss://` and `https://` are valid, the ws-to-http rewrite preserves
148
+ * the protocol family: ws becomes http and wss becomes https.
149
+ */
150
+ export declare function resolveBootstrapBaseUrl(input: {
151
+ readonly url: string;
152
+ readonly bootstrapBaseUrl?: string;
153
+ }): string;
154
+ //# sourceMappingURL=apiKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiKey.d.ts","sourceRoot":"","sources":["../../src/auth/apiKey.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,408 @@
1
+ /**
2
+ * Authentication and URL resolution for the `Ablo()` client.
3
+ *
4
+ * Each function here makes one decision: it resolves a configuration value with
5
+ * the right precedence, or fails with an actionable message. Together they let
6
+ * the client constructor read as a sequence of named steps rather than a chain
7
+ * of fallbacks.
8
+ *
9
+ * The environment surface is deliberately small: `ABLO_API_KEY` is the only
10
+ * value read from the environment. Every other routing or authentication
11
+ * override is an explicit option, so an app never picks up hidden behavior from
12
+ * a stray environment variable.
13
+ */
14
+ import { AbloValidationError } from '../errors.js';
15
+ import { ABLO_HOSTED_API_DOMAIN, ABLO_DEFAULT_BASE_URL } from './hostedEndpoints.js';
16
+ import { isCredentialEndpoint, createEndpointCredentialResolver } from './credentialEndpoint.js';
17
+ import { credentialToken, } from './credentialResult.js';
18
+ import { assertBrowserSafety, protectBrowserCredentialProvider, } from './browserCredentialSafety.js';
19
+ export { assertBrowserSafety };
20
+ /**
21
+ * Read `process.env` defensively. Works in browser (where `process`
22
+ * is undefined), Node, and edge runtimes that expose a partial
23
+ * process polyfill.
24
+ */
25
+ export function readProcessEnv() {
26
+ const maybeGlobal = globalThis;
27
+ return maybeGlobal.process?.env ?? {};
28
+ }
29
+ export function resolveApiKey(input) {
30
+ // `authEndpoint` is the option that names a session-mint route: a URL the
31
+ // client exchanges for a short-lived token, or an async resolver for custom
32
+ // exchanges. It is resolved into a `CredentialProvider` here — the single point
33
+ // shared by every client variant (WebSocket, HTTP, and protocol clients) — so
34
+ // every downstream consumer sees the same resolver and the credential
35
+ // lifecycle drives renewal off it.
36
+ const endpoint = input.options.authEndpoint;
37
+ const configured = input.options.apiKey;
38
+ if (endpoint != null) {
39
+ if (configured != null) {
40
+ throw new AbloValidationError('Ablo: pass either `apiKey` (a key the process holds) or `authEndpoint` ' +
41
+ '(a route that mints the token) — not both; the client cannot know ' +
42
+ 'which credential to use.', { code: 'invalid_options', param: 'authEndpoint' });
43
+ }
44
+ if (typeof endpoint === 'function') {
45
+ return protectBrowserCredentialProvider(endpoint, input.options.dangerouslyAllowBrowser);
46
+ }
47
+ if (!isCredentialEndpoint(endpoint)) {
48
+ throw new AbloValidationError('`authEndpoint` expects a URL or path (e.g. \'/api/ablo-session\') or an ' +
49
+ 'async resolver — a key string belongs in `apiKey`.', { code: 'invalid_options', param: 'authEndpoint' });
50
+ }
51
+ return protectBrowserCredentialProvider(createEndpointCredentialResolver(endpoint, {
52
+ fetch: input.options.fetch,
53
+ timeoutMs: input.options.authTimeoutMs,
54
+ allowCrossOrigin: input.options.allowCrossOriginAuthEndpoint,
55
+ }), input.options.dangerouslyAllowBrowser);
56
+ }
57
+ if (typeof configured === 'string' && isCredentialEndpoint(configured)) {
58
+ throw new AbloValidationError('`apiKey` no longer accepts an endpoint. Move this value to `authEndpoint`.', { code: 'invalid_options', param: 'apiKey' });
59
+ }
60
+ if (typeof configured === 'function') {
61
+ return protectBrowserCredentialProvider(configured, input.options.dangerouslyAllowBrowser);
62
+ }
63
+ return configured ?? input.env.ABLO_API_KEY ?? null;
64
+ }
65
+ /**
66
+ * Narrow a resolved `apiKey` to the single resolver the credential lifecycle
67
+ * needs: an async `() => token | null`, or `null` when auth is static — a plain
68
+ * long-lived key string with no refresh, which is the common case.
69
+ *
70
+ * The short-lived per-user browser path passes a credential provider, and the
71
+ * SDK then drives the whole credential lifecycle
72
+ * from it: mint-before-connect, the proactive refresh timer with its
73
+ * wake/online/focus re-mint, and the reactive `credential_stale` re-mint. The
74
+ * resolver follows the provider contract end to end: resolve a token,
75
+ * resolve `null` when the login is gone (terminal — surfaces `session_expired`
76
+ * and signs the user out), or throw on a transient failure (backs off, without
77
+ * signing out).
78
+ */
79
+ export function resolveCredentialResolver(apiKey) {
80
+ if (typeof apiKey === 'function')
81
+ return apiKey;
82
+ return null;
83
+ }
84
+ export function resolveAuthToken(input) {
85
+ return input.options.authToken ?? null;
86
+ }
87
+ function keyPrefix(key) {
88
+ return `${key.slice(0, 12)}…`;
89
+ }
90
+ /** Infer the sandbox or production mode from an Ablo key's prefix. */
91
+ export function modeFromApiKey(key) {
92
+ if (/^(sk|rk)_test_/.test(key))
93
+ return 'sandbox';
94
+ if (/^(sk|rk)_live_/.test(key))
95
+ return 'production';
96
+ return undefined;
97
+ }
98
+ function resolveStaticApiKey(input) {
99
+ if (typeof input.options.apiKey === 'string') {
100
+ return { key: input.options.apiKey, source: 'option' };
101
+ }
102
+ if (input.options.apiKey !== undefined && input.options.apiKey !== null) {
103
+ return null;
104
+ }
105
+ const envKey = input.env.ABLO_API_KEY;
106
+ if (typeof envKey === 'string' && envKey.length > 0) {
107
+ return { key: envKey, source: 'env' };
108
+ }
109
+ return null;
110
+ }
111
+ function readProfileKeys(value) {
112
+ if (!value || typeof value !== 'object')
113
+ return {};
114
+ const profiles = {};
115
+ for (const [name, raw] of Object.entries(value)) {
116
+ if (!raw || typeof raw !== 'object')
117
+ continue;
118
+ const row = raw;
119
+ const sandbox = row.sandbox;
120
+ const production = row.production;
121
+ profiles[name] = {
122
+ sandbox: sandbox && typeof sandbox === 'object' ? sandbox : undefined,
123
+ production: production && typeof production === 'object' ? production : undefined,
124
+ };
125
+ }
126
+ return profiles;
127
+ }
128
+ function legacyProfileKeys(value) {
129
+ if (!value)
130
+ return { sandbox: undefined, production: undefined };
131
+ const sandbox = value.sandbox;
132
+ const production = value.production;
133
+ if ((sandbox && typeof sandbox === 'object') ||
134
+ (production && typeof production === 'object')) {
135
+ return {
136
+ sandbox: sandbox && typeof sandbox === 'object' ? sandbox : undefined,
137
+ production: production && typeof production === 'object' ? production : undefined,
138
+ };
139
+ }
140
+ if (typeof value.apiKey === 'string') {
141
+ return { sandbox: { apiKey: value.apiKey }, production: undefined };
142
+ }
143
+ return { sandbox: undefined, production: undefined };
144
+ }
145
+ function normalizeCliMode(value) {
146
+ return value === 'sandbox' || value === 'production' ? value : undefined;
147
+ }
148
+ function activeProjectSlug(value) {
149
+ if (!value || typeof value !== 'object')
150
+ return undefined;
151
+ const slug = value.slug;
152
+ return typeof slug === 'string' && slug.length > 0 ? slug : undefined;
153
+ }
154
+ function importNodeBuiltin(specifier) {
155
+ // Node-only runtime import (CLI credential snapshot). The call is dead in
156
+ // browser/edge builds — guarded by `process.versions.node` and `window`
157
+ // checks in the callers — but bundlers still try to resolve the dynamic
158
+ // `import()` and Turbopack fails the build on the unanalyzable specifier.
159
+ // The magic comments tell each bundler to emit the import verbatim and never
160
+ // resolve it. Keep both so webpack and Turbopack consumers are covered.
161
+ return import(/* webpackIgnore: true */ /* turbopackIgnore: true */ specifier);
162
+ }
163
+ async function readJsonIfPresent(path) {
164
+ try {
165
+ const { readFile } = await importNodeBuiltin('node:fs/promises');
166
+ const text = await readFile(path, 'utf8');
167
+ const parsed = JSON.parse(text);
168
+ return parsed && typeof parsed === 'object' ? parsed : null;
169
+ }
170
+ catch {
171
+ return null;
172
+ }
173
+ }
174
+ async function readCliCredentialSnapshot(env) {
175
+ const processLike = globalThis.process;
176
+ if (!processLike?.versions?.node)
177
+ return null;
178
+ if (typeof window !== 'undefined')
179
+ return null;
180
+ const [{ homedir }, { join }] = await Promise.all([
181
+ importNodeBuiltin('node:os'),
182
+ importNodeBuiltin('node:path'),
183
+ ]);
184
+ const dir = env.ABLO_CONFIG_DIR
185
+ ?? (env.XDG_CONFIG_HOME ? join(env.XDG_CONFIG_HOME, 'ablo') : join(homedir(), '.config', 'ablo'));
186
+ const [cfg, creds] = await Promise.all([
187
+ readJsonIfPresent(join(dir, 'config.json')),
188
+ readJsonIfPresent(join(dir, 'credentials.json')),
189
+ ]);
190
+ const mode = normalizeCliMode(cfg?.mode) ?? normalizeCliMode(creds?.mode);
191
+ const activeProfile = activeProjectSlug(cfg?.activeProject) ?? 'default';
192
+ const profiles = {
193
+ ...readProfileKeys(creds?.profiles),
194
+ ...readProfileKeys(cfg?.profiles),
195
+ };
196
+ if (!profiles[activeProfile]) {
197
+ const legacy = { ...legacyProfileKeys(cfg), ...legacyProfileKeys(creds) };
198
+ if (legacy.sandbox?.apiKey || legacy.production?.apiKey) {
199
+ profiles[activeProfile] = legacy;
200
+ }
201
+ }
202
+ const effectiveMode = mode ?? (Object.keys(profiles).length > 0 ? 'sandbox' : undefined);
203
+ if (!effectiveMode)
204
+ return null;
205
+ return {
206
+ mode: effectiveMode,
207
+ activeProfile,
208
+ ...(profiles[activeProfile]?.[effectiveMode]?.apiKey
209
+ ? { storedKey: profiles[activeProfile][effectiveMode].apiKey }
210
+ : {}),
211
+ };
212
+ }
213
+ export function describeCliKeyMismatch(configured, cli) {
214
+ const configuredMode = modeFromApiKey(configured.key);
215
+ const configuredKeyPrefix = keyPrefix(configured.key);
216
+ const storedKeyPrefix = cli.storedKey ? keyPrefix(cli.storedKey) : undefined;
217
+ const sourceLabel = configured.source === 'env' ? 'ABLO_API_KEY' : 'configured apiKey';
218
+ if (configuredMode && configuredMode !== cli.mode) {
219
+ return {
220
+ source: configured.source,
221
+ configuredKeyPrefix,
222
+ configuredMode,
223
+ cliMode: cli.mode,
224
+ ...(storedKeyPrefix ? { storedKeyPrefix } : {}),
225
+ kind: 'mode_mismatch',
226
+ message: `${sourceLabel} is a ${configuredMode} key (${configuredKeyPrefix}) but the Ablo CLI is in ` +
227
+ `${cli.mode} mode${storedKeyPrefix ? ` (active stored key ${storedKeyPrefix})` : ''}. ` +
228
+ `Requests will use ${configuredMode}. Use the ${cli.mode} key, unset ABLO_API_KEY, ` +
229
+ `or run \`ablo mode ${configuredMode}\` intentionally.`,
230
+ };
231
+ }
232
+ if (configured.source === 'env' && cli.storedKey && configured.key !== cli.storedKey) {
233
+ return {
234
+ source: configured.source,
235
+ configuredKeyPrefix,
236
+ ...(configuredMode ? { configuredMode } : {}),
237
+ cliMode: cli.mode,
238
+ storedKeyPrefix,
239
+ kind: 'key_override',
240
+ message: `ABLO_API_KEY (${configuredKeyPrefix}) overrides the CLI's stored active ${cli.mode} key ` +
241
+ `(${storedKeyPrefix}). Requests will use the environment key. Unset ABLO_API_KEY to use ` +
242
+ '`ablo status` / `ablo mode` credentials.',
243
+ };
244
+ }
245
+ return null;
246
+ }
247
+ let warnedCliKeyMismatch = false;
248
+ export async function warnIfCliKeyMismatch(input, warn) {
249
+ if (warnedCliKeyMismatch)
250
+ return;
251
+ if (input.env.NODE_ENV === 'production')
252
+ return;
253
+ const configured = resolveStaticApiKey(input);
254
+ if (!configured)
255
+ return;
256
+ const cli = await readCliCredentialSnapshot(input.env);
257
+ if (!cli)
258
+ return;
259
+ const mismatch = describeCliKeyMismatch(configured, cli);
260
+ if (!mismatch)
261
+ return;
262
+ warnedCliKeyMismatch = true;
263
+ if (warn)
264
+ warn(mismatch.message);
265
+ else if (typeof console !== 'undefined')
266
+ console.warn('[Ablo]', mismatch.message);
267
+ }
268
+ // Declared in `./hostedEndpoints`, the single source of the hosted domain, and
269
+ // re-exported here so existing import paths keep working.
270
+ export { ABLO_HOSTED_API_DOMAIN, ABLO_HOSTED_HTTP_BASE_URL, ABLO_DEFAULT_BASE_URL } from './hostedEndpoints.js';
271
+ const LEGACY_HOSTED_API_HOSTS = new Set([
272
+ 'mesh.ablo.finance',
273
+ 'mesh-staging.ablo.finance',
274
+ 'api.ablo.finance',
275
+ 'sync-staging.ablo.finance',
276
+ ]);
277
+ /**
278
+ * Normalizes older hosted host names to the current public API domain.
279
+ * Self-hosted or custom URLs pass through unchanged; only the retired
280
+ * first-party host names are rewritten.
281
+ */
282
+ export function normalizeAbloHostedBaseUrl(rawUrl) {
283
+ const trimmed = rawUrl.trim();
284
+ if (!trimmed)
285
+ return trimmed;
286
+ // A scheme-less value (e.g. `api-staging.abloatai.com`) is treated as a
287
+ // relative URL: `new URL()` throws on it, and a later `fetch` would resolve it
288
+ // against the current page — producing a 404 from the app's own origin.
289
+ // Prepending a scheme makes the base absolute. `https` matches
290
+ // {@link ABLO_HOSTED_HTTP_BASE_URL}; the socket layer derives `wss` from it.
291
+ // An existing scheme (ws, wss, http, or https) is preserved untouched.
292
+ const schemed = /^[a-z][a-z0-9+.-]*:\/\//i.test(trimmed) ? trimmed : `https://${trimmed}`;
293
+ try {
294
+ const url = new URL(schemed);
295
+ // Canonicalize the scheme to the HTTP family: accept all four schemes
296
+ // (http, https, ws, wss), normalize at this single entry point, and let
297
+ // each layer derive its own protocol (the socket layer maps http to ws and
298
+ // https to wss; fetch uses the URL as-is). Without this, a `ws://` base URL
299
+ // reaches HTTP consumers un-normalized and the client fails at startup
300
+ // instead of connecting.
301
+ if (url.protocol === 'ws:')
302
+ url.protocol = 'http:';
303
+ if (url.protocol === 'wss:')
304
+ url.protocol = 'https:';
305
+ if (!LEGACY_HOSTED_API_HOSTS.has(url.hostname)) {
306
+ return url.toString().replace(/\/+$/, '');
307
+ }
308
+ url.hostname = ABLO_HOSTED_API_DOMAIN;
309
+ if (url.protocol === 'http:')
310
+ url.protocol = 'https:';
311
+ return url.toString().replace(/\/+$/, '');
312
+ }
313
+ catch {
314
+ return schemed;
315
+ }
316
+ }
317
+ export function resolveBaseURL(input) {
318
+ return normalizeAbloHostedBaseUrl(input.options.baseURL ?? ABLO_DEFAULT_BASE_URL);
319
+ }
320
+ /**
321
+ * Guards against using a secret `apiKey` in a browser. A secret key is
322
+ * server-side only by default: shipping an `sk_live_...` key to a browser would
323
+ * expose it in every visitor's network tab. Callers opt in explicitly when the
324
+ * browser instead holds a minted session token (`ek_`/`rk_`) or routes through a
325
+ * server proxy. Throws {@link AbloAuthenticationError} when a secret key is
326
+ * detected in a browser without opt-in.
327
+ */
328
+ /**
329
+ * Rejects the REMOVED `databaseUrl` dial-in option loudly. The option is gone
330
+ * from the types, but an untyped or stale caller could still pass it — and
331
+ * silently ignoring it would reroute their writes to Ablo-hosted storage,
332
+ * the opposite of what that option used to promise. A construction-time throw
333
+ * turns a wrong-storage surprise into a clear migration instruction.
334
+ */
335
+ export function rejectRemovedDatabaseUrlOption(options) {
336
+ const legacyValue = Reflect.get(options, 'databaseUrl');
337
+ if (legacyValue == null)
338
+ return;
339
+ throw new AbloValidationError('The `databaseUrl` option was removed. Your database connects through ' +
340
+ '`ablo connect` now: Ablo writes it directly with a scoped DML role and ' +
341
+ 'confirms through its replication stream. Run `npx ablo connect` to ' +
342
+ 'register it, then construct the client with your API key only.', { code: 'invalid_body' });
343
+ }
344
+ /**
345
+ * Resolves a credential provider to its current string value, or
346
+ * returns a plain string key as-is. Called at request time so a rotating
347
+ * credential picks up new values between requests. Returns `null` when no key
348
+ * was configured.
349
+ */
350
+ export async function resolveApiKeyValue(apiKey) {
351
+ if (apiKey == null)
352
+ return null;
353
+ if (typeof apiKey === 'function')
354
+ return credentialToken(await apiKey());
355
+ return apiKey;
356
+ }
357
+ /**
358
+ * Translates a WebSocket URL into the matching HTTP API base URL, defaulting to
359
+ * `${url}/api` when the caller has not overridden `bootstrapBaseUrl`. The
360
+ * bootstrap helper, the hydration coordinator, the credential-exchange flow, and
361
+ * the identity flow all derive their base URL through this one function, so the
362
+ * derivation stays consistent across them.
363
+ *
364
+ * When both `wss://` and `https://` are valid, the ws-to-http rewrite preserves
365
+ * the protocol family: ws becomes http and wss becomes https.
366
+ */
367
+ export function resolveBootstrapBaseUrl(input) {
368
+ if (input.bootstrapBaseUrl) {
369
+ // Coerce ws/wss to http/https on the override path as well. This base URL is
370
+ // used for HTTP fetches (identity resolution, credential exchange, and
371
+ // bootstrap), and the browser `fetch` rejects ws and wss schemes outright.
372
+ // The override can legitimately arrive with a WebSocket scheme when a caller
373
+ // derives it as `${baseUrl}/api` from a WebSocket base URL, so normalize it
374
+ // here rather than failing at fetch time.
375
+ return ensureApiSuffix(normalizeAbloHostedBaseUrl(input.bootstrapBaseUrl).replace(/^ws/, 'http'));
376
+ }
377
+ const url = normalizeAbloHostedBaseUrl(input.url);
378
+ return ensureApiSuffix(url.replace(/^ws/, 'http'));
379
+ }
380
+ /**
381
+ * Ensures the HTTP base ends in the `/api` route segment that every endpoint is
382
+ * mounted under.
383
+ *
384
+ * A hosted deployment that sets a custom `baseURL` or `bootstrapBaseUrl` (a
385
+ * custom subdomain, a staging host, and so on) without the `/api` suffix would
386
+ * send every credential exchange to `…/v1/capabilities` instead of
387
+ * `…/api/v1/capabilities`, producing a 404 that surfaces as `exchange_failed`.
388
+ * Since the client builds routes relative to this base and no valid deployment
389
+ * serves them from the root, appending a single trailing `/api` here is always
390
+ * correct, and it is idempotent for callers who already include it.
391
+ */
392
+ function ensureApiSuffix(httpBase) {
393
+ const trimmed = httpBase.replace(/\/+$/, '');
394
+ try {
395
+ const u = new URL(trimmed);
396
+ const segments = u.pathname.split('/').filter(Boolean);
397
+ if (segments[segments.length - 1] === 'api')
398
+ return trimmed;
399
+ u.pathname = `${u.pathname.replace(/\/+$/, '')}/api`;
400
+ return u.toString().replace(/\/+$/, '');
401
+ }
402
+ catch {
403
+ // Should be unreachable after `normalizeAbloHostedBaseUrl`, which yields an
404
+ // absolute URL, but fall back to a string check rather than throwing.
405
+ return trimmed.endsWith("/api") ? trimmed : `${trimmed}/api`;
406
+ }
407
+ }
408
+ //# sourceMappingURL=apiKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiKey.js","sourceRoot":"","sources":["../../src/auth/apiKey.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The hand-off the identity flow performs once a credential resolves: it names
3
+ * the account scope and the sync groups everything downstream should read under.
4
+ *
5
+ * The core defines the port; the consumer supplies the implementation. That
6
+ * keeps identity resolution — which is settlement's business — from depending on
7
+ * whatever happens to materialise rows on the other side of it (ADR 0016). The
8
+ * reactive engine's `BootstrapFetcher` satisfies this structurally.
9
+ */
10
+ export interface BootstrapScope {
11
+ /** Bind subsequent reads to one account's cache partition. */
12
+ setCacheScope(cacheScope: string): void;
13
+ /** Narrow subsequent reads to the sync groups the credential authorises. */
14
+ setSyncGroups(syncGroups: readonly string[] | undefined): void;
15
+ }
16
+ //# sourceMappingURL=bootstrapScope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapScope.d.ts","sourceRoot":"","sources":["../../src/auth/bootstrapScope.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,4EAA4E;IAC5E,aAAa,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC;CAChE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=bootstrapScope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrapScope.js","sourceRoot":"","sources":["../../src/auth/bootstrapScope.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { type CredentialProvider } from './credentialResult.js';
2
+ export declare function assertBrowserSafety(input: {
3
+ readonly apiKey: string | CredentialProvider | null;
4
+ readonly dangerouslyAllowBrowser: boolean | undefined;
5
+ }): void;
6
+ export declare function protectBrowserCredentialProvider(provider: CredentialProvider, dangerouslyAllowBrowser: boolean | undefined): CredentialProvider;
7
+ //# sourceMappingURL=browserCredentialSafety.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserCredentialSafety.d.ts","sourceRoot":"","sources":["../../src/auth/browserCredentialSafety.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,uBAAuB,EAAE,OAAO,GAAG,SAAS,CAAC;CACvD,GAAG,IAAI,CASP;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,kBAAkB,EAC5B,uBAAuB,EAAE,OAAO,GAAG,SAAS,GAC3C,kBAAkB,CAcpB"}