liminal 0.4.1 → 0.5.2

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 (562) hide show
  1. package/Action.ts +29 -0
  2. package/Agent.ts +10 -0
  3. package/CHANGELOG.md +20 -0
  4. package/Exec.ts +51 -0
  5. package/L.ts +24 -0
  6. package/LiminalAssertionError.ts +3 -0
  7. package/LiminalConfig.ts +7 -0
  8. package/Message.ts +94 -0
  9. package/Model.ts +26 -0
  10. package/PathLike.ts +17 -0
  11. package/Scope.ts +152 -0
  12. package/Spec.ts +29 -0
  13. package/Tool.ts +58 -0
  14. package/_.ts +11 -0
  15. package/actions/abort.ts +23 -0
  16. package/actions/actions_common/updateModels.ts +23 -0
  17. package/actions/actions_derived/__snapshots__/declareModel.test.ts.snap +89 -0
  18. package/actions/actions_derived/clear.ts +6 -0
  19. package/actions/actions_derived/declareModel.test.ts +36 -0
  20. package/actions/actions_derived/declareModel.ts +9 -0
  21. package/actions/actions_derived/declareModel.type-test.ts +70 -0
  22. package/actions/actions_derived/messages.test.ts +88 -0
  23. package/actions/actions_derived/messages.ts +18 -0
  24. package/actions/actions_derived/metatype.ts +9 -0
  25. package/actions/actions_derived/readers_derived.ts +15 -0
  26. package/actions/appendMessage.ts +54 -0
  27. package/actions/await.ts +13 -0
  28. package/actions/branch.ts +106 -0
  29. package/actions/catch.ts +42 -0
  30. package/actions/declareArg.ts +14 -0
  31. package/actions/disableTool.ts +26 -0
  32. package/actions/embed.ts +29 -0
  33. package/actions/emit.ts +21 -0
  34. package/actions/enableTool.ts +75 -0
  35. package/actions/enableTool.type-test.ts +118 -0
  36. package/actions/infer.ts +49 -0
  37. package/actions/messages.ts +62 -0
  38. package/actions/pushModel.ts +52 -0
  39. package/actions/scope.ts +13 -0
  40. package/actions/section.ts +105 -0
  41. package/actions/throw.ts +18 -0
  42. package/cli/WriteHandler.ts +35 -0
  43. package/cli/cli_common.ts +4 -0
  44. package/cli/main.ts +24 -0
  45. package/cli/runExec.ts +72 -0
  46. package/dist/Action.d.ts +15 -0
  47. package/dist/Action.js +13 -0
  48. package/dist/Action.js.map +1 -0
  49. package/dist/Agent.d.ts +7 -0
  50. package/dist/Agent.js +2 -0
  51. package/dist/Agent.js.map +1 -0
  52. package/dist/Exec.d.ts +25 -0
  53. package/dist/Exec.js +19 -0
  54. package/dist/Exec.js.map +1 -0
  55. package/dist/L.d.ts +23 -0
  56. package/dist/L.js +24 -0
  57. package/dist/L.js.map +1 -0
  58. package/dist/LiminalAssertionError.d.ts +3 -0
  59. package/dist/LiminalAssertionError.js +4 -0
  60. package/dist/LiminalAssertionError.js.map +1 -0
  61. package/dist/LiminalConfig.d.ts +6 -0
  62. package/dist/LiminalConfig.js +2 -0
  63. package/dist/LiminalConfig.js.map +1 -0
  64. package/dist/Message.d.ts +82 -0
  65. package/dist/Message.js +2 -0
  66. package/dist/Message.js.map +1 -0
  67. package/dist/Model.d.ts +21 -0
  68. package/dist/Model.js +2 -0
  69. package/dist/Model.js.map +1 -0
  70. package/dist/PathLike.d.ts +11 -0
  71. package/dist/PathLike.js +2 -0
  72. package/dist/PathLike.js.map +1 -0
  73. package/dist/Scope.d.ts +42 -0
  74. package/dist/Scope.js +93 -0
  75. package/dist/Scope.js.map +1 -0
  76. package/dist/Spec.d.ts +20 -0
  77. package/dist/Spec.js +2 -0
  78. package/dist/Spec.js.map +1 -0
  79. package/dist/Tool.d.ts +21 -0
  80. package/dist/Tool.js +32 -0
  81. package/dist/Tool.js.map +1 -0
  82. package/dist/_.d.ts +5 -0
  83. package/dist/_.js +7 -0
  84. package/dist/_.js.map +1 -0
  85. package/dist/actions/abort.d.ts +9 -0
  86. package/dist/actions/abort.js +15 -0
  87. package/dist/actions/abort.js.map +1 -0
  88. package/dist/actions/actions_common/updateModels.d.ts +3 -0
  89. package/dist/actions/actions_common/updateModels.js +17 -0
  90. package/dist/actions/actions_common/updateModels.js.map +1 -0
  91. package/dist/actions/actions_derived/clear.d.ts +8 -0
  92. package/dist/actions/actions_derived/clear.js +5 -0
  93. package/dist/actions/actions_derived/clear.js.map +1 -0
  94. package/dist/actions/actions_derived/declareModel.d.ts +5 -0
  95. package/dist/actions/actions_derived/declareModel.js +7 -0
  96. package/dist/actions/actions_derived/declareModel.js.map +1 -0
  97. package/dist/actions/actions_derived/declareModel.test.d.ts +1 -0
  98. package/dist/actions/actions_derived/declareModel.test.js +35 -0
  99. package/dist/actions/actions_derived/declareModel.test.js.map +1 -0
  100. package/dist/actions/actions_derived/declareModel.type-test.d.ts +1 -0
  101. package/dist/actions/actions_derived/declareModel.type-test.js +66 -0
  102. package/dist/actions/actions_derived/declareModel.type-test.js.map +1 -0
  103. package/dist/actions/actions_derived/messages.d.ts +6 -0
  104. package/dist/actions/actions_derived/messages.js +15 -0
  105. package/dist/actions/actions_derived/messages.js.map +1 -0
  106. package/dist/actions/actions_derived/messages.test.d.ts +1 -0
  107. package/dist/actions/actions_derived/messages.test.js +72 -0
  108. package/dist/actions/actions_derived/messages.test.js.map +1 -0
  109. package/dist/actions/actions_derived/metatype.d.ts +9 -0
  110. package/dist/actions/actions_derived/metatype.js +7 -0
  111. package/dist/actions/actions_derived/metatype.js.map +1 -0
  112. package/dist/actions/actions_derived/readers_derived.d.ts +6 -0
  113. package/dist/actions/actions_derived/readers_derived.js +14 -0
  114. package/dist/actions/actions_derived/readers_derived.js.map +1 -0
  115. package/dist/actions/appendMessage.d.ts +14 -0
  116. package/dist/actions/appendMessage.js +41 -0
  117. package/dist/actions/appendMessage.js.map +1 -0
  118. package/dist/actions/await.d.ts +5 -0
  119. package/dist/actions/await.js +10 -0
  120. package/dist/actions/await.js.map +1 -0
  121. package/dist/actions/branch.d.ts +39 -0
  122. package/dist/actions/branch.js +40 -0
  123. package/dist/actions/branch.js.map +1 -0
  124. package/dist/actions/catch.d.ts +10 -0
  125. package/dist/actions/catch.js +27 -0
  126. package/dist/actions/catch.js.map +1 -0
  127. package/dist/actions/declareArg.d.ts +8 -0
  128. package/dist/actions/declareArg.js +10 -0
  129. package/dist/actions/declareArg.js.map +1 -0
  130. package/dist/actions/disableTool.d.ts +10 -0
  131. package/dist/actions/disableTool.js +17 -0
  132. package/dist/actions/disableTool.js.map +1 -0
  133. package/dist/actions/embed.d.ts +9 -0
  134. package/dist/actions/embed.js +24 -0
  135. package/dist/actions/embed.js.map +1 -0
  136. package/dist/actions/emit.d.ts +9 -0
  137. package/dist/actions/emit.js +14 -0
  138. package/dist/actions/emit.js.map +1 -0
  139. package/dist/actions/enableTool.d.ts +20 -0
  140. package/dist/actions/enableTool.js +26 -0
  141. package/dist/actions/enableTool.js.map +1 -0
  142. package/dist/actions/enableTool.type-test.d.ts +1 -0
  143. package/dist/actions/enableTool.type-test.js +30 -0
  144. package/dist/actions/enableTool.type-test.js.map +1 -0
  145. package/dist/actions/infer.d.ts +15 -0
  146. package/dist/actions/infer.js +29 -0
  147. package/dist/actions/infer.js.map +1 -0
  148. package/dist/actions/messages.d.ts +24 -0
  149. package/dist/actions/messages.js +35 -0
  150. package/dist/actions/messages.js.map +1 -0
  151. package/dist/actions/pushModel.d.ts +15 -0
  152. package/dist/actions/pushModel.js +36 -0
  153. package/dist/actions/pushModel.js.map +1 -0
  154. package/dist/actions/scope.d.ts +7 -0
  155. package/dist/actions/scope.js +10 -0
  156. package/dist/actions/scope.js.map +1 -0
  157. package/dist/actions/section.d.ts +23 -0
  158. package/dist/actions/section.js +64 -0
  159. package/dist/actions/section.js.map +1 -0
  160. package/dist/actions/throw.d.ts +9 -0
  161. package/dist/actions/throw.js +13 -0
  162. package/dist/actions/throw.js.map +1 -0
  163. package/dist/cli/WriteHandler.d.ts +9 -0
  164. package/dist/cli/WriteHandler.js +24 -0
  165. package/dist/cli/WriteHandler.js.map +1 -0
  166. package/dist/cli/cli_common.d.ts +4 -0
  167. package/dist/cli/cli_common.js +2 -0
  168. package/dist/cli/cli_common.js.map +1 -0
  169. package/dist/cli/main.d.ts +2 -0
  170. package/dist/cli/main.js +20 -0
  171. package/dist/cli/main.js.map +1 -0
  172. package/dist/cli/runExec.d.ts +2 -0
  173. package/dist/cli/runExec.js +74 -0
  174. package/dist/cli/runExec.js.map +1 -0
  175. package/dist/events/Aborted.d.ts +4 -0
  176. package/dist/events/Aborted.js +2 -0
  177. package/dist/events/Aborted.js.map +1 -0
  178. package/dist/events/Embedded.d.ts +5 -0
  179. package/dist/events/Embedded.js +2 -0
  180. package/dist/events/Embedded.js.map +1 -0
  181. package/dist/events/EmbeddingRequested.d.ts +4 -0
  182. package/dist/events/EmbeddingRequested.js +2 -0
  183. package/dist/events/EmbeddingRequested.js.map +1 -0
  184. package/dist/events/Emitted.d.ts +4 -0
  185. package/dist/events/Emitted.js +2 -0
  186. package/dist/events/Emitted.js.map +1 -0
  187. package/dist/events/EventBase.d.ts +3 -0
  188. package/dist/events/EventBase.js +2 -0
  189. package/dist/events/EventBase.js.map +1 -0
  190. package/dist/events/EventHandler.d.ts +2 -0
  191. package/dist/events/EventHandler.js +2 -0
  192. package/dist/events/EventHandler.js.map +1 -0
  193. package/dist/events/EventResolved.d.ts +19 -0
  194. package/dist/events/EventResolved.js +2 -0
  195. package/dist/events/EventResolved.js.map +1 -0
  196. package/dist/events/Forked.d.ts +3 -0
  197. package/dist/events/Forked.js +2 -0
  198. package/dist/events/Forked.js.map +1 -0
  199. package/dist/events/InferenceRequested.d.ts +3 -0
  200. package/dist/events/InferenceRequested.js +2 -0
  201. package/dist/events/InferenceRequested.js.map +1 -0
  202. package/dist/events/Inferred.d.ts +5 -0
  203. package/dist/events/Inferred.js +2 -0
  204. package/dist/events/Inferred.js.map +1 -0
  205. package/dist/events/LEvent.d.ts +20 -0
  206. package/dist/events/LEvent.js +2 -0
  207. package/dist/events/LEvent.js.map +1 -0
  208. package/dist/events/MessageAppended.d.ts +5 -0
  209. package/dist/events/MessageAppended.js +2 -0
  210. package/dist/events/MessageAppended.js.map +1 -0
  211. package/dist/events/MessageRemoved.d.ts +5 -0
  212. package/dist/events/MessageRemoved.js +2 -0
  213. package/dist/events/MessageRemoved.js.map +1 -0
  214. package/dist/events/MessagesSet.d.ts +5 -0
  215. package/dist/events/MessagesSet.js +2 -0
  216. package/dist/events/MessagesSet.js.map +1 -0
  217. package/dist/events/ModelPushed.d.ts +7 -0
  218. package/dist/events/ModelPushed.js +2 -0
  219. package/dist/events/ModelPushed.js.map +1 -0
  220. package/dist/events/ModelRemoved.d.ts +7 -0
  221. package/dist/events/ModelRemoved.js +2 -0
  222. package/dist/events/ModelRemoved.js.map +1 -0
  223. package/dist/events/Returned.d.ts +4 -0
  224. package/dist/events/Returned.js +2 -0
  225. package/dist/events/Returned.js.map +1 -0
  226. package/dist/events/SectionCleared.d.ts +5 -0
  227. package/dist/events/SectionCleared.js +2 -0
  228. package/dist/events/SectionCleared.js.map +1 -0
  229. package/dist/events/Sectioned.d.ts +5 -0
  230. package/dist/events/Sectioned.js +2 -0
  231. package/dist/events/Sectioned.js.map +1 -0
  232. package/dist/events/Threw.d.ts +4 -0
  233. package/dist/events/Threw.js +2 -0
  234. package/dist/events/Threw.js.map +1 -0
  235. package/dist/events/ToolCalled.d.ts +6 -0
  236. package/dist/events/ToolCalled.js +2 -0
  237. package/dist/events/ToolCalled.js.map +1 -0
  238. package/dist/events/ToolDisabled.d.ts +5 -0
  239. package/dist/events/ToolDisabled.js +2 -0
  240. package/dist/events/ToolDisabled.js.map +1 -0
  241. package/dist/events/ToolEnabled.d.ts +7 -0
  242. package/dist/events/ToolEnabled.js +2 -0
  243. package/dist/events/ToolEnabled.js.map +1 -0
  244. package/dist/events/isScopeChildEvent.d.ts +6 -0
  245. package/dist/events/isScopeChildEvent.js +9 -0
  246. package/dist/events/isScopeChildEvent.js.map +1 -0
  247. package/dist/events/isScopeDescendantEvent.d.ts +14 -0
  248. package/dist/events/isScopeDescendantEvent.js +12 -0
  249. package/dist/events/isScopeDescendantEvent.js.map +1 -0
  250. package/dist/index.d.ts +41 -0
  251. package/dist/index.js +42 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/testing/AgentAssertions.d.ts +9 -0
  254. package/dist/testing/AgentAssertions.js +6 -0
  255. package/dist/testing/AgentAssertions.js.map +1 -0
  256. package/dist/testing/TestEmbeddingModel.d.ts +6 -0
  257. package/dist/testing/TestEmbeddingModel.js +11 -0
  258. package/dist/testing/TestEmbeddingModel.js.map +1 -0
  259. package/dist/testing/TestLanguageModel.d.ts +8 -0
  260. package/dist/testing/TestLanguageModel.js +22 -0
  261. package/dist/testing/TestLanguageModel.js.map +1 -0
  262. package/dist/testing/index.d.ts +4 -0
  263. package/dist/testing/index.js +5 -0
  264. package/dist/testing/index.js.map +1 -0
  265. package/dist/testing/takeFirstAction.d.ts +3 -0
  266. package/dist/testing/takeFirstAction.js +6 -0
  267. package/dist/testing/takeFirstAction.js.map +1 -0
  268. package/dist/tsconfig.tsbuildinfo +1 -0
  269. package/dist/types/AssertDiagnostics.d.ts +18 -0
  270. package/dist/types/AssertDiagnostics.js +152 -0
  271. package/dist/types/AssertDiagnostics.js.map +1 -0
  272. package/dist/types/JSONRootType.d.ts +6 -0
  273. package/dist/types/JSONRootType.js +2 -0
  274. package/dist/types/JSONRootType.js.map +1 -0
  275. package/dist/types/JSONType.d.ts +16 -0
  276. package/dist/types/JSONType.js +2 -0
  277. package/dist/types/JSONType.js.map +1 -0
  278. package/dist/types/JSONTypeBase.d.ts +3 -0
  279. package/dist/types/JSONTypeBase.js +2 -0
  280. package/dist/types/JSONTypeBase.js.map +1 -0
  281. package/dist/types/Metatype/MetatypeDescriptor.d.ts +41 -0
  282. package/dist/types/Metatype/MetatypeDescriptor.js +38 -0
  283. package/dist/types/Metatype/MetatypeDescriptor.js.map +1 -0
  284. package/dist/types/Metatype/fromMetatypeDescriptor.d.ts +6 -0
  285. package/dist/types/Metatype/fromMetatypeDescriptor.js +43 -0
  286. package/dist/types/Metatype/fromMetatypeDescriptor.js.map +1 -0
  287. package/dist/types/Type.d.ts +31 -0
  288. package/dist/types/Type.js +5 -0
  289. package/dist/types/Type.js.map +1 -0
  290. package/dist/types/TypeContext.d.ts +7 -0
  291. package/dist/types/TypeContext.js +17 -0
  292. package/dist/types/TypeContext.js.map +1 -0
  293. package/dist/types/TypeLike.d.ts +23 -0
  294. package/dist/types/TypeLike.js +23 -0
  295. package/dist/types/TypeLike.js.map +1 -0
  296. package/dist/types/TypeVisitor.d.ts +14 -0
  297. package/dist/types/TypeVisitor.js +12 -0
  298. package/dist/types/TypeVisitor.js.map +1 -0
  299. package/dist/types/array.d.ts +10 -0
  300. package/dist/types/array.js +9 -0
  301. package/dist/types/array.js.map +1 -0
  302. package/dist/types/boolean.d.ts +6 -0
  303. package/dist/types/boolean.js +3 -0
  304. package/dist/types/boolean.js.map +1 -0
  305. package/dist/types/const.d.ts +8 -0
  306. package/dist/types/const.js +7 -0
  307. package/dist/types/const.js.map +1 -0
  308. package/dist/types/enum.d.ts +8 -0
  309. package/dist/types/enum.js +7 -0
  310. package/dist/types/enum.js.map +1 -0
  311. package/dist/types/factories.d.ts +8 -0
  312. package/dist/types/factories.js +9 -0
  313. package/dist/types/factories.js.map +1 -0
  314. package/dist/types/index.d.ts +2 -0
  315. package/dist/types/index.js +3 -0
  316. package/dist/types/index.js.map +1 -0
  317. package/dist/types/integer.d.ts +6 -0
  318. package/dist/types/integer.js +3 -0
  319. package/dist/types/integer.js.map +1 -0
  320. package/dist/types/intrinsics.d.ts +11 -0
  321. package/dist/types/intrinsics.js +12 -0
  322. package/dist/types/intrinsics.js.map +1 -0
  323. package/dist/types/makeType.d.ts +2 -0
  324. package/dist/types/makeType.js +58 -0
  325. package/dist/types/makeType.js.map +1 -0
  326. package/dist/types/match.d.ts +3 -0
  327. package/dist/types/match.js +11 -0
  328. package/dist/types/match.js.map +1 -0
  329. package/dist/types/non_factories.d.ts +21 -0
  330. package/dist/types/non_factories.js +9 -0
  331. package/dist/types/non_factories.js.map +1 -0
  332. package/dist/types/null.d.ts +7 -0
  333. package/dist/types/null.js +4 -0
  334. package/dist/types/null.js.map +1 -0
  335. package/dist/types/number.d.ts +6 -0
  336. package/dist/types/number.js +3 -0
  337. package/dist/types/number.js.map +1 -0
  338. package/dist/types/object.d.ts +16 -0
  339. package/dist/types/object.js +10 -0
  340. package/dist/types/object.js.map +1 -0
  341. package/dist/types/ref.d.ts +7 -0
  342. package/dist/types/ref.js +5 -0
  343. package/dist/types/ref.js.map +1 -0
  344. package/dist/types/string.d.ts +6 -0
  345. package/dist/types/string.js +3 -0
  346. package/dist/types/string.js.map +1 -0
  347. package/dist/types/toJSON.d.ts +5 -0
  348. package/dist/types/toJSON.js +97 -0
  349. package/dist/types/toJSON.js.map +1 -0
  350. package/dist/types/type_common.d.ts +10 -0
  351. package/dist/types/type_common.js +12 -0
  352. package/dist/types/type_common.js.map +1 -0
  353. package/dist/types/types_derived/option.d.ts +5 -0
  354. package/dist/types/types_derived/option.js +6 -0
  355. package/dist/types/types_derived/option.js.map +1 -0
  356. package/dist/types/types_derived/taggedUnion.d.ts +19 -0
  357. package/dist/types/types_derived/taggedUnion.js +8 -0
  358. package/dist/types/types_derived/taggedUnion.js.map +1 -0
  359. package/dist/types/types_derived/wrapper.d.ts +8 -0
  360. package/dist/types/types_derived/wrapper.js +5 -0
  361. package/dist/types/types_derived/wrapper.js.map +1 -0
  362. package/dist/types/union.d.ts +9 -0
  363. package/dist/types/union.js +9 -0
  364. package/dist/types/union.js.map +1 -0
  365. package/dist/util/ArrayOfLength.d.ts +1 -0
  366. package/dist/util/ArrayOfLength.js +2 -0
  367. package/dist/util/ArrayOfLength.js.map +1 -0
  368. package/dist/util/DeferredOr.d.ts +1 -0
  369. package/dist/util/DeferredOr.js +2 -0
  370. package/dist/util/DeferredOr.js.map +1 -0
  371. package/dist/util/EnsureNarrow.d.ts +2 -0
  372. package/dist/util/EnsureNarrow.js +2 -0
  373. package/dist/util/EnsureNarrow.js.map +1 -0
  374. package/dist/util/EnsureRecord.d.ts +2 -0
  375. package/dist/util/EnsureRecord.js +2 -0
  376. package/dist/util/EnsureRecord.js.map +1 -0
  377. package/dist/util/Expand.d.ts +3 -0
  378. package/dist/util/Expand.js +2 -0
  379. package/dist/util/Expand.js.map +1 -0
  380. package/dist/util/Falsy.d.ts +1 -0
  381. package/dist/util/Falsy.js +2 -0
  382. package/dist/util/Falsy.js.map +1 -0
  383. package/dist/util/FromEntries.d.ts +3 -0
  384. package/dist/util/FromEntries.js +2 -0
  385. package/dist/util/FromEntries.js.map +1 -0
  386. package/dist/util/IteratorLike.d.ts +1 -0
  387. package/dist/util/IteratorLike.js +2 -0
  388. package/dist/util/IteratorLike.js.map +1 -0
  389. package/dist/util/JSONEntry.d.ts +2 -0
  390. package/dist/util/JSONEntry.js +2 -0
  391. package/dist/util/JSONEntry.js.map +1 -0
  392. package/dist/util/JSONKey.d.ts +1 -0
  393. package/dist/util/JSONKey.js +2 -0
  394. package/dist/util/JSONKey.js.map +1 -0
  395. package/dist/util/JSONObject.d.ts +5 -0
  396. package/dist/util/JSONObject.js +2 -0
  397. package/dist/util/JSONObject.js.map +1 -0
  398. package/dist/util/JSONSchemaMemo.d.ts +2 -0
  399. package/dist/util/JSONSchemaMemo.js +13 -0
  400. package/dist/util/JSONSchemaMemo.js.map +1 -0
  401. package/dist/util/JSONValue.d.ts +2 -0
  402. package/dist/util/JSONValue.js +2 -0
  403. package/dist/util/JSONValue.js.map +1 -0
  404. package/dist/util/PromiseOr.d.ts +1 -0
  405. package/dist/util/PromiseOr.js +2 -0
  406. package/dist/util/PromiseOr.js.map +1 -0
  407. package/dist/util/Result.d.ts +7 -0
  408. package/dist/util/Result.js +2 -0
  409. package/dist/util/Result.js.map +1 -0
  410. package/dist/util/Taggable.d.ts +9 -0
  411. package/dist/util/Taggable.js +8 -0
  412. package/dist/util/Taggable.js.map +1 -0
  413. package/dist/util/TupleToRecord.d.ts +5 -0
  414. package/dist/util/TupleToRecord.js +2 -0
  415. package/dist/util/TupleToRecord.js.map +1 -0
  416. package/dist/util/assert.d.ts +1 -0
  417. package/dist/util/assert.js +7 -0
  418. package/dist/util/assert.js.map +1 -0
  419. package/dist/util/dedent.d.ts +1 -0
  420. package/dist/util/dedent.js +5 -0
  421. package/dist/util/dedent.js.map +1 -0
  422. package/dist/util/fixTemplateStrings.d.ts +11 -0
  423. package/dist/util/fixTemplateStrings.js +83 -0
  424. package/dist/util/fixTemplateStrings.js.map +1 -0
  425. package/dist/util/fixTemplateStrings.test.d.ts +1 -0
  426. package/dist/util/fixTemplateStrings.test.js +221 -0
  427. package/dist/util/fixTemplateStrings.test.js.map +1 -0
  428. package/dist/util/isAsyncIterator.d.ts +1 -0
  429. package/dist/util/isAsyncIterator.js +7 -0
  430. package/dist/util/isAsyncIterator.js.map +1 -0
  431. package/dist/util/isIterator.d.ts +1 -0
  432. package/dist/util/isIterator.js +7 -0
  433. package/dist/util/isIterator.js.map +1 -0
  434. package/dist/util/isJSONValue.d.ts +2 -0
  435. package/dist/util/isJSONValue.js +16 -0
  436. package/dist/util/isJSONValue.js.map +1 -0
  437. package/dist/util/isPropertyKey.d.ts +1 -0
  438. package/dist/util/isPropertyKey.js +4 -0
  439. package/dist/util/isPropertyKey.js.map +1 -0
  440. package/dist/util/isTemplateStringsArray.d.ts +1 -0
  441. package/dist/util/isTemplateStringsArray.js +4 -0
  442. package/dist/util/isTemplateStringsArray.js.map +1 -0
  443. package/dist/util/jsonEquals.d.ts +2 -0
  444. package/dist/util/jsonEquals.js +33 -0
  445. package/dist/util/jsonEquals.js.map +1 -0
  446. package/dist/util/nullaryMemo.d.ts +1 -0
  447. package/dist/util/nullaryMemo.js +12 -0
  448. package/dist/util/nullaryMemo.js.map +1 -0
  449. package/dist/util/peekLast.d.ts +1 -0
  450. package/dist/util/peekLast.js +4 -0
  451. package/dist/util/peekLast.js.map +1 -0
  452. package/dist/util/unimplemented.d.ts +1 -0
  453. package/dist/util/unimplemented.js +5 -0
  454. package/dist/util/unimplemented.js.map +1 -0
  455. package/dist/util/unreachable.d.ts +1 -0
  456. package/dist/util/unreachable.js +5 -0
  457. package/dist/util/unreachable.js.map +1 -0
  458. package/dist/util/unwrapDeferred.d.ts +2 -0
  459. package/dist/util/unwrapDeferred.js +4 -0
  460. package/dist/util/unwrapDeferred.js.map +1 -0
  461. package/dist/util/util.d.ts +10 -0
  462. package/dist/util/util.js +11 -0
  463. package/dist/util/util.js.map +1 -0
  464. package/events/Aborted.ts +5 -0
  465. package/events/Embedded.ts +6 -0
  466. package/events/EmbeddingRequested.ts +5 -0
  467. package/events/Emitted.ts +5 -0
  468. package/events/EventBase.ts +3 -0
  469. package/events/EventHandler.ts +3 -0
  470. package/events/EventResolved.ts +30 -0
  471. package/events/Forked.ts +3 -0
  472. package/events/InferenceRequested.ts +3 -0
  473. package/events/Inferred.ts +6 -0
  474. package/events/LEvent.ts +40 -0
  475. package/events/MessageAppended.ts +6 -0
  476. package/events/MessageRemoved.ts +6 -0
  477. package/events/MessagesSet.ts +6 -0
  478. package/events/ModelPushed.ts +10 -0
  479. package/events/ModelRemoved.ts +10 -0
  480. package/events/Returned.ts +5 -0
  481. package/events/SectionCleared.ts +6 -0
  482. package/events/Sectioned.ts +6 -0
  483. package/events/Threw.ts +5 -0
  484. package/events/ToolCalled.ts +7 -0
  485. package/events/ToolDisabled.ts +6 -0
  486. package/events/ToolEnabled.ts +8 -0
  487. package/events/isScopeChildEvent.ts +15 -0
  488. package/events/isScopeDescendantEvent.ts +30 -0
  489. package/index.ts +41 -0
  490. package/package.json +32 -9
  491. package/testing/AgentAssertions.ts +17 -0
  492. package/testing/TestEmbeddingModel.ts +19 -0
  493. package/testing/TestLanguageModel.ts +33 -0
  494. package/testing/index.ts +4 -0
  495. package/testing/takeFirstAction.ts +8 -0
  496. package/tsconfig.json +8 -0
  497. package/types/AssertDiagnostics.ts +183 -0
  498. package/types/JSONRootType.ts +8 -0
  499. package/types/JSONType.ts +27 -0
  500. package/types/JSONTypeBase.ts +3 -0
  501. package/types/Metatype/MetatypeDescriptor.ts +80 -0
  502. package/types/Metatype/fromMetatypeDescriptor.ts +52 -0
  503. package/types/Type.ts +47 -0
  504. package/types/TypeContext.ts +19 -0
  505. package/types/TypeLike.ts +60 -0
  506. package/types/TypeVisitor.ts +49 -0
  507. package/types/array.ts +20 -0
  508. package/types/boolean.ts +9 -0
  509. package/types/const.ts +17 -0
  510. package/types/enum.ts +14 -0
  511. package/types/factories.ts +8 -0
  512. package/types/index.ts +2 -0
  513. package/types/integer.ts +9 -0
  514. package/types/intrinsics.ts +11 -0
  515. package/types/makeType.ts +72 -0
  516. package/types/match.ts +13 -0
  517. package/types/non_factories.ts +26 -0
  518. package/types/null.ts +10 -0
  519. package/types/number.ts +9 -0
  520. package/types/object.ts +27 -0
  521. package/types/ref.ts +12 -0
  522. package/types/string.ts +9 -0
  523. package/types/toJSON.ts +111 -0
  524. package/types/type_common.ts +21 -0
  525. package/types/types_derived/option.ts +10 -0
  526. package/types/types_derived/taggedUnion.ts +30 -0
  527. package/types/types_derived/wrapper.ts +10 -0
  528. package/types/union.ts +19 -0
  529. package/util/ArrayOfLength.ts +5 -0
  530. package/util/DeferredOr.ts +1 -0
  531. package/util/EnsureNarrow.ts +5 -0
  532. package/util/EnsureRecord.ts +3 -0
  533. package/util/Expand.ts +1 -0
  534. package/util/Falsy.ts +1 -0
  535. package/util/FromEntries.ts +3 -0
  536. package/util/IteratorLike.ts +1 -0
  537. package/util/JSONEntry.ts +3 -0
  538. package/util/JSONKey.ts +1 -0
  539. package/util/JSONObject.ts +6 -0
  540. package/util/JSONSchemaMemo.ts +15 -0
  541. package/util/JSONValue.ts +3 -0
  542. package/util/PromiseOr.ts +1 -0
  543. package/util/Result.ts +7 -0
  544. package/util/Taggable.ts +18 -0
  545. package/util/TupleToRecord.ts +5 -0
  546. package/util/assert.ts +7 -0
  547. package/util/dedent.ts +5 -0
  548. package/util/fixTemplateStrings.test.ts +250 -0
  549. package/util/fixTemplateStrings.ts +99 -0
  550. package/util/isAsyncIterator.ts +6 -0
  551. package/util/isIterator.ts +6 -0
  552. package/util/isJSONValue.ts +20 -0
  553. package/util/isPropertyKey.ts +3 -0
  554. package/util/isTemplateStringsArray.ts +3 -0
  555. package/util/jsonEquals.ts +41 -0
  556. package/util/nullaryMemo.ts +11 -0
  557. package/util/peekLast.ts +3 -0
  558. package/util/unimplemented.ts +5 -0
  559. package/util/unreachable.ts +5 -0
  560. package/util/unwrapDeferred.ts +5 -0
  561. package/util/util.ts +10 -0
  562. package/lib/index.js +0 -1
@@ -0,0 +1,8 @@
1
+ import { applyTemplateWithIndentation } from "./fixTemplateStrings.js";
2
+ import { isTemplateStringsArray } from "./isTemplateStringsArray.js";
3
+ export function normalizeTaggableArgs(...[e0, ...eRest]) {
4
+ return isTemplateStringsArray(e0)
5
+ ? [applyTemplateWithIndentation(e0, ...eRest)]
6
+ : [e0, ...eRest];
7
+ }
8
+ //# sourceMappingURL=Taggable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Taggable.js","sourceRoot":"","sources":["../../util/Taggable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAYpE,MAAM,UAAU,qBAAqB,CAA2B,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAkB;IAChG,OAAO,sBAAsB,CAAC,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC,4BAA4B,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAa;QAC1D,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,CAAM,CAAA;AACzB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type TupleToRecord<T extends Array<any>> = [
2
+ {
3
+ [K in keyof T as K extends `${number}` ? K : never]: T[K];
4
+ }
5
+ ][0];
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TupleToRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TupleToRecord.js","sourceRoot":"","sources":["../../util/TupleToRecord.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export declare function assert(expr: unknown, msg?: string): asserts expr;
@@ -0,0 +1,7 @@
1
+ import { LiminalAssertionError } from "../LiminalAssertionError.js";
2
+ export function assert(expr, msg = "") {
3
+ if (!expr) {
4
+ throw new LiminalAssertionError(msg);
5
+ }
6
+ }
7
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../util/assert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,MAAM,UAAU,MAAM,CAAC,IAAa,EAAE,GAAG,GAAG,EAAE;IAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function dedent(input: TemplateStringsArray, ...values: Array<unknown>): string;
@@ -0,0 +1,5 @@
1
+ import { fixTemplateStrings } from "./fixTemplateStrings.js";
2
+ export function dedent(input, ...values) {
3
+ return String.raw(fixTemplateStrings(input), ...values);
4
+ }
5
+ //# sourceMappingURL=dedent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dedent.js","sourceRoot":"","sources":["../../util/dedent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,UAAU,MAAM,CAAC,KAA2B,EAAE,GAAG,MAAsB;IAC3E,OAAO,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;AACzD,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare function fixTemplateStrings(template: TemplateStringsArray): {
2
+ readonly raw: readonly string[];
3
+ };
4
+ /**
5
+ * Applies template string indentation to substituted values with line breaks
6
+ *
7
+ * @param strings - The template strings array (processed through fixTemplateStrings)
8
+ * @param values - The substitution values
9
+ * @returns - The formatted string with properly indented substitutions
10
+ */
11
+ export declare function applyTemplateWithIndentation(strings: TemplateStringsArray, ...values: any[]): string;
@@ -0,0 +1,83 @@
1
+ const INDENTATION_RE = /^\n([ \t]+)/;
2
+ const ESCAPE_SEQ_RE = /\\([`${\\]|\n)/g;
3
+ const LAST_INDENTATION_RE = /\n[ \t]+$/;
4
+ export function fixTemplateStrings(template) {
5
+ const firstSegment = template.raw[0];
6
+ const leadingIndentMatch = INDENTATION_RE.exec(firstSegment);
7
+ const indentation = leadingIndentMatch?.[1];
8
+ const rawLength = template.raw.length;
9
+ const result = new Array(rawLength);
10
+ for (let i = 0; i < rawLength; i++) {
11
+ let str = template.raw[i];
12
+ // Only perform common indentation replacements if needed
13
+ if (indentation) {
14
+ // Remove leading newline and indentation in the first segment
15
+ if (i === 0) {
16
+ str = str.slice(indentation.length + 1);
17
+ }
18
+ // Use a simple string replacement with a regular expression for better performance
19
+ str = str.replaceAll(`\n${indentation}`, "\n");
20
+ }
21
+ // Replace common escape sequences in a single pass
22
+ str = str.replace(ESCAPE_SEQ_RE, (_match, char) => {
23
+ // Keep the escaped newline replacement separate for clarity
24
+ return char === "\n" ? "" : char;
25
+ });
26
+ // Handle trailing spaces only for the last segment
27
+ if (indentation && i === rawLength - 1) {
28
+ str = str.replace(LAST_INDENTATION_RE, "");
29
+ }
30
+ result[i] = str;
31
+ }
32
+ return { raw: result };
33
+ }
34
+ const LEADING_SPACE_RE = /^([ \t]*)/;
35
+ /**
36
+ * Applies template string indentation to substituted values with line breaks
37
+ *
38
+ * @param strings - The template strings array (processed through fixTemplateStrings)
39
+ * @param values - The substitution values
40
+ * @returns - The formatted string with properly indented substitutions
41
+ */
42
+ export function applyTemplateWithIndentation(strings, ...values) {
43
+ const fixedStrings = fixTemplateStrings(strings);
44
+ const rawArr = fixedStrings.raw;
45
+ const valuesLength = values.length;
46
+ const resultParts = new Array(Math.max(1, rawArr.length * 2 - 1));
47
+ let resultIndex = 0;
48
+ for (let i = 0; i < rawArr.length; i++) {
49
+ const str = rawArr[i] || "";
50
+ resultParts[resultIndex++] = str;
51
+ // Only process values for non-final segments
52
+ if (i < valuesLength) {
53
+ const value = String(values[i]);
54
+ // If value has line breaks, we should indent it
55
+ if (value.includes("\n")) {
56
+ const lastNewlineIndex = str.lastIndexOf("\n");
57
+ if (lastNewlineIndex !== -1) {
58
+ // Extract the indentation after the last newline
59
+ const textAfterLastNewline = str.substring(lastNewlineIndex + 1);
60
+ const leadingSpaceMatch = LEADING_SPACE_RE.exec(textAfterLastNewline);
61
+ const indentationToApply = leadingSpaceMatch && leadingSpaceMatch[1] ? leadingSpaceMatch[1] : "";
62
+ if (indentationToApply) {
63
+ // Split the value into lines once
64
+ const lines = value.split("\n");
65
+ const linesLength = lines.length;
66
+ // First line doesn't need indentation
67
+ resultParts[resultIndex++] = lines[0];
68
+ // Apply indentation to subsequent lines
69
+ for (let j = 1; j < linesLength; j++) {
70
+ resultParts[resultIndex++] = "\n" + indentationToApply + lines[j];
71
+ }
72
+ continue;
73
+ }
74
+ }
75
+ }
76
+ // For simple values or when no indentation is needed
77
+ resultParts[resultIndex++] = value;
78
+ }
79
+ }
80
+ // Combine all parts at once
81
+ return resultParts.slice(0, resultIndex).join("");
82
+ }
83
+ //# sourceMappingURL=fixTemplateStrings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixTemplateStrings.js","sourceRoot":"","sources":["../../util/fixTemplateStrings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,221 @@
1
+ import { describe, expect, test } from "bun:test";
2
+ import { applyTemplateWithIndentation, fixTemplateStrings } from "./fixTemplateStrings";
3
+ // Helper to create a mock TemplateStringsArray
4
+ function createTemplateArray(strings) {
5
+ const arr = [...strings];
6
+ Object.defineProperty(arr, "raw", { value: strings });
7
+ return arr;
8
+ }
9
+ // A template tag function that applies indentation to substitutions
10
+ function templateTag(strings, ...values) {
11
+ return applyTemplateWithIndentation(strings, ...values);
12
+ }
13
+ describe("fixTemplateStrings", () => {
14
+ test("handles basic template strings without indentation", () => {
15
+ const template = createTemplateArray(["hello", "world", "!"]);
16
+ const result = fixTemplateStrings(template);
17
+ expect(result.raw).toEqual(["hello", "world", "!"]);
18
+ });
19
+ test("removes common indentation from multiline strings", () => {
20
+ const template = createTemplateArray([`
21
+ first line
22
+ second line
23
+ third line`]);
24
+ const result = fixTemplateStrings(template);
25
+ // Leading newline should be removed
26
+ expect(result.raw[0]).toBe("first line\nsecond line\nthird line");
27
+ });
28
+ test("handles escaped characters", () => {
29
+ const template = createTemplateArray(["\\`template\\$\\{with\\}escaped\\nchars"]);
30
+ const result = fixTemplateStrings(template);
31
+ // The function only unescapes backticks, dollar signs, and opening braces
32
+ expect(result.raw[0]).toBe("`template${with\\}escaped\\nchars");
33
+ });
34
+ test("preserves intended backticks and dollar signs", () => {
35
+ const template = createTemplateArray(["const code = `const value = ${'test'}`"]);
36
+ const result = fixTemplateStrings(template);
37
+ expect(result.raw[0]).toBe("const code = `const value = ${'test'}`");
38
+ });
39
+ test("removes trailing spaces in last segment", () => {
40
+ const template = createTemplateArray([`
41
+ some text
42
+ with trailing spaces
43
+ `]);
44
+ const result = fixTemplateStrings(template);
45
+ // The function only removes trailing spaces after a newline at the end
46
+ // And only if indentation is detected
47
+ // Leading newline should be removed
48
+ expect(result.raw[0]).toBe("some text\nwith trailing spaces \n");
49
+ });
50
+ test("handles mixed indentation", () => {
51
+ const template = createTemplateArray([`
52
+ spaces here
53
+ more spaces
54
+ less spaces
55
+ most spaces`]);
56
+ const result = fixTemplateStrings(template);
57
+ // The function uses the indentation of the first line as the baseline
58
+ // Leading newline should be removed
59
+ expect(result.raw[0]).toBe("spaces here\n more spaces\n less spaces\n most spaces");
60
+ });
61
+ test("removes escaped newlines", () => {
62
+ const template = createTemplateArray(["first line\\\nsecond line\\\nthird line"]);
63
+ const result = fixTemplateStrings(template);
64
+ expect(result.raw[0]).toBe("first linesecond linethird line");
65
+ });
66
+ test("handles multiple segments with indentation", () => {
67
+ const template = createTemplateArray([
68
+ `
69
+ first \${`,
70
+ `}
71
+ second \${`,
72
+ `}
73
+ third
74
+ `,
75
+ ]);
76
+ const result = fixTemplateStrings(template);
77
+ // Leading newline should be removed in first segment only
78
+ expect(result.raw).toEqual([
79
+ "first ${",
80
+ "}\nsecond ${",
81
+ "}\nthird",
82
+ ]);
83
+ });
84
+ });
85
+ describe("templateTag with indentation", () => {
86
+ test("basic template with substitution", () => {
87
+ const result = templateTag `Hello ${"world"}!`;
88
+ expect(result).toBe("Hello world!");
89
+ });
90
+ test("multiline template with indentation", () => {
91
+ const result = templateTag `
92
+ This is a multiline
93
+ string with proper indentation
94
+ `;
95
+ // Leading newline should be removed
96
+ expect(result).toBe("This is a multiline\nstring with proper indentation");
97
+ });
98
+ test("template with multiline substitution without indentation", () => {
99
+ const multilineValue = "line1\nline2\nline3";
100
+ const result = templateTag `Value: ${multilineValue}`;
101
+ // The substitution doesn't get indentation because there's no preceding newline
102
+ expect(result).toBe("Value: line1\nline2\nline3");
103
+ });
104
+ test("template with multiline substitution with indentation", () => {
105
+ const multilineValue = "line1\nline2\nline3";
106
+ const result = templateTag `
107
+ Values:
108
+ ${multilineValue}
109
+ End of values
110
+ `;
111
+ // The substitution should get the indentation from before the ${}
112
+ // Leading newline should be removed
113
+ expect(result).toBe("Values:\n line1\n line2\n line3\nEnd of values");
114
+ });
115
+ test("nested indentation with multiline values", () => {
116
+ const codeBlock = "function example() {\n console.log('test');\n}";
117
+ const result = templateTag `
118
+ Here is some code:
119
+ ${codeBlock}
120
+ End of code
121
+ `;
122
+ // The function should preserve the internal indentation of the code block
123
+ // Leading newline should be removed
124
+ expect(result).toBe("Here is some code:\n function example() {\n console.log('test');\n }\nEnd of code");
125
+ });
126
+ test("mixed indentation with tabs and spaces", () => {
127
+ const tabIndentedValue = "line1\n\tline2\n\t\tline3";
128
+ const result = templateTag `
129
+ Tab indented:
130
+ ${tabIndentedValue}
131
+ End
132
+ `;
133
+ // Space indentation should be applied to all lines including those with tabs
134
+ // Leading newline should be removed
135
+ expect(result).toBe("Tab indented:\n line1\n \tline2\n \t\tline3\nEnd");
136
+ });
137
+ test("numbered list with indented content", () => {
138
+ const listItems = "1\n2\n3";
139
+ const result = templateTag `
140
+ 1. Part one:
141
+ ${listItems}
142
+ 2. Part two
143
+ `;
144
+ // This is specifically testing the case mentioned by the user
145
+ // Leading newline should be removed
146
+ expect(result).toBe("1. Part one:\n 1\n 2\n 3\n2. Part two");
147
+ });
148
+ test("complex nested structures", () => {
149
+ const jsonData = `{
150
+ "name": "example",
151
+ "values": [1, 2, 3]
152
+ }`;
153
+ const code = `function test() {
154
+ if (condition) {
155
+ return true;
156
+ }
157
+ return false;
158
+ }`;
159
+ const result = templateTag `
160
+ JSON data:
161
+ ${jsonData}
162
+
163
+ Code:
164
+ ${code}
165
+
166
+ End of examples
167
+ `;
168
+ // The code gets additional indentation due to the spacing before the interpolation
169
+ // Leading newline should be removed
170
+ expect(result).toBe(`JSON data:
171
+ {
172
+ "name": "example",
173
+ "values": [1, 2, 3]
174
+ }
175
+
176
+ Code:
177
+ function test() {
178
+ if (condition) {
179
+ return true;
180
+ }
181
+ return false;
182
+ }
183
+
184
+ End of examples`);
185
+ });
186
+ test("preserves indentation within code blocks", () => {
187
+ const code = `if (true) {
188
+ console.log("indented");
189
+ console.log("double indented");
190
+ }`;
191
+ const result = templateTag `
192
+ Code example:
193
+ ${code}
194
+ End
195
+ `;
196
+ // The indentation is applied to each line based on the template's indentation
197
+ // Leading newline should be removed
198
+ expect(result).toBe(`Code example:
199
+ if (true) {
200
+ console.log("indented");
201
+ console.log("double indented");
202
+ }
203
+ End`);
204
+ });
205
+ test("handles empty lines in substitutions", () => {
206
+ const textWithEmptyLines = "line1\n\nline3";
207
+ const result = templateTag `
208
+ Text:
209
+ ${textWithEmptyLines}
210
+ End
211
+ `;
212
+ // Empty lines also get indentation
213
+ // Leading newline should be removed
214
+ expect(result).toBe(`Text:
215
+ line1
216
+
217
+ line3
218
+ End`);
219
+ });
220
+ });
221
+ //# sourceMappingURL=fixTemplateStrings.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixTemplateStrings.test.js","sourceRoot":"","sources":["../../util/fixTemplateStrings.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEvF,+CAA+C;AAC/C,SAAS,mBAAmB,CAAC,OAAiB;IAC5C,MAAM,GAAG,GAAG,CAAC,GAAG,OAAO,CAAoC,CAAA;IAC3D,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IACrD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,oEAAoE;AACpE,SAAS,WAAW,CAAC,OAA6B,EAAE,GAAG,MAAa;IAClE,OAAO,4BAA4B,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAA;AACzD,CAAC;AAED,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC9D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;IACrD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC7D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC;;;mBAGvB,CAAC,CAAC,CAAA;QAEjB,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAC3C,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACtC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAA;QACjF,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAC3C,0EAA0E;QAC1E,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACzD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAA;QAChF,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC;;;SAGjC,CAAC,CAAC,CAAA;QAEP,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAC3C,uEAAuE;QACvE,sCAAsC;QACtC,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC;;;;wBAIlB,CAAC,CAAC,CAAA;QAEtB,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAC3C,sEAAsE;QACtE,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAA;IAC9F,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAA;QACjF,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACtD,MAAM,QAAQ,GAAG,mBAAmB,CAAC;YACnC;kBACY;YACZ;mBACa;YACb;;OAEC;SACF,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAC3C,0DAA0D;QAC1D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YACzB,UAAU;YACV,cAAc;YACd,UAAU;SACX,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,WAAW,CAAA,SAAS,OAAO,GAAG,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,WAAW,CAAA;;;KAGzB,CAAA;QACD,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACpE,MAAM,cAAc,GAAG,qBAAqB,CAAA;QAC5C,MAAM,MAAM,GAAG,WAAW,CAAA,UAAU,cAAc,EAAE,CAAA;QACpD,gFAAgF;QAChF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;QACjE,MAAM,cAAc,GAAG,qBAAqB,CAAA;QAC5C,MAAM,MAAM,GAAG,WAAW,CAAA;;UAEpB,cAAc;;KAEnB,CAAA;QACD,kEAAkE;QAClE,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,MAAM,SAAS,GAAG,iDAAiD,CAAA;QACnE,MAAM,MAAM,GAAG,WAAW,CAAA;;UAEpB,SAAS;;KAEd,CAAA;QACD,0EAA0E;QAC1E,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAA;IAC/G,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAClD,MAAM,gBAAgB,GAAG,2BAA2B,CAAA;QACpD,MAAM,MAAM,GAAG,WAAW,CAAA;;UAEpB,gBAAgB;;KAErB,CAAA;QACD,6EAA6E;QAC7E,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAA;IAC5E,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC/C,MAAM,SAAS,GAAG,SAAS,CAAA;QAC3B,MAAM,MAAM,GAAG,WAAW,CAAA;;UAEpB,SAAS;;KAEd,CAAA;QACD,8DAA8D;QAC9D,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,MAAM,QAAQ,GAAG;;;EAGnB,CAAA;QACE,MAAM,IAAI,GAAG;;;;;EAKf,CAAA;QAEE,MAAM,MAAM,GAAG,WAAW,CAAA;;UAEpB,QAAQ;;;UAGR,IAAI;;;KAGT,CAAA;QAED,mFAAmF;QACnF,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;;;;;;;;;;;;;;gBAcR,CAAC,CAAA;IACf,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG;;;EAGf,CAAA;QAEE,MAAM,MAAM,GAAG,WAAW,CAAA;;UAEpB,IAAI;;KAET,CAAA;QAED,8EAA8E;QAC9E,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;;;;;IAKpB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAChD,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;QAE3C,MAAM,MAAM,GAAG,WAAW,CAAA;;UAEpB,kBAAkB;;KAEvB,CAAA;QAED,mCAAmC;QACnC,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;;;;IAIpB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export declare function isAsyncIterator(value: unknown): value is AsyncIteratorObject<unknown, unknown, unknown>;
@@ -0,0 +1,7 @@
1
+ export function isAsyncIterator(value) {
2
+ return typeof value === "object"
3
+ && value != null
4
+ && Symbol.asyncIterator in value
5
+ && typeof value[Symbol.asyncIterator] === "function";
6
+ }
7
+ //# sourceMappingURL=isAsyncIterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAsyncIterator.js","sourceRoot":"","sources":["../../util/isAsyncIterator.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,IAAI,IAAI;WACb,MAAM,CAAC,aAAa,IAAI,KAAK;WAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,UAAU,CAAA;AACxD,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function isIterator(value: unknown): value is IteratorObject<unknown, unknown, unknown>;
@@ -0,0 +1,7 @@
1
+ export function isIterator(value) {
2
+ return typeof value === "object"
3
+ && value != null
4
+ && Symbol.iterator in value
5
+ && typeof value[Symbol.iterator] === "function";
6
+ }
7
+ //# sourceMappingURL=isIterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isIterator.js","sourceRoot":"","sources":["../../util/isIterator.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,IAAI,IAAI;WACb,MAAM,CAAC,QAAQ,IAAI,KAAK;WACxB,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAA;AACnD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { JSONValue } from "./JSONValue.ts";
2
+ export declare function isJSONValue(value: unknown): value is JSONValue;
@@ -0,0 +1,16 @@
1
+ export function isJSONValue(value) {
2
+ if (value === null) {
3
+ return true;
4
+ }
5
+ if (Array.isArray(value)) {
6
+ return value.every((item) => isJSONValue(item));
7
+ }
8
+ if (typeof value === "object") {
9
+ if (value === null) {
10
+ return true;
11
+ }
12
+ return Object.values(value).every((v) => isJSONValue(v));
13
+ }
14
+ return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
15
+ }
16
+ //# sourceMappingURL=isJSONValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isJSONValue.js","sourceRoot":"","sources":["../../util/isJSONValue.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAA;AAC7F,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function isPropertyKey(value: unknown): value is number | string | symbol;
@@ -0,0 +1,4 @@
1
+ export function isPropertyKey(value) {
2
+ return typeof value === "number" || typeof value === "string" || typeof value === "symbol";
3
+ }
4
+ //# sourceMappingURL=isPropertyKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPropertyKey.js","sourceRoot":"","sources":["../../util/isPropertyKey.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAA;AAC5F,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function isTemplateStringsArray(value: unknown): value is TemplateStringsArray;
@@ -0,0 +1,4 @@
1
+ export function isTemplateStringsArray(value) {
2
+ return Array.isArray(value) && "raw" in value && Array.isArray(value.raw);
3
+ }
4
+ //# sourceMappingURL=isTemplateStringsArray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isTemplateStringsArray.js","sourceRoot":"","sources":["../../util/isTemplateStringsArray.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAC3E,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { JSONValue } from "./JSONValue";
2
+ export declare function jsonEquals(actual: JSONValue, expected: JSONValue): boolean;
@@ -0,0 +1,33 @@
1
+ export function jsonEquals(actual, expected) {
2
+ if (actual === expected) {
3
+ return true;
4
+ }
5
+ if (typeof actual !== typeof expected) {
6
+ return false;
7
+ }
8
+ if (actual === null || expected === null) {
9
+ return actual === expected;
10
+ }
11
+ if (Array.isArray(actual)) {
12
+ if (!Array.isArray(expected)) {
13
+ return false;
14
+ }
15
+ if (actual.length !== expected.length) {
16
+ return false;
17
+ }
18
+ return actual.every((e, i) => jsonEquals(e, expected[i]));
19
+ }
20
+ if (typeof actual === "object") {
21
+ if (typeof expected !== "object" || Array.isArray(expected)) {
22
+ return false;
23
+ }
24
+ const keys = Object.keys(actual);
25
+ if (keys.length !== Object.keys(expected).length) {
26
+ return false;
27
+ }
28
+ return keys.every((key) => Object.prototype.hasOwnProperty.call(expected, key)
29
+ && jsonEquals(actual[key], expected[key]));
30
+ }
31
+ return actual === expected;
32
+ }
33
+ //# sourceMappingURL=jsonEquals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonEquals.js","sourceRoot":"","sources":["../../util/jsonEquals.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,QAAmB;IAC/D,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,OAAO,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACzC,OAAO,MAAM,KAAK,QAAQ,CAAA;IAC5B,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5D,OAAO,KAAK,CAAA;QACd,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAChC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;YACjD,OAAO,KAAK,CAAA;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACxB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;eAChD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAE,EAAE,QAAQ,CAAC,GAAG,CAAE,CAAC,CAC5C,CAAA;IACH,CAAC;IAED,OAAO,MAAM,KAAK,QAAQ,CAAA;AAC5B,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function nullaryMemo<T>(f: () => T): () => T;
@@ -0,0 +1,12 @@
1
+ export function nullaryMemo(f) {
2
+ let initialized = false;
3
+ let value = undefined;
4
+ return () => {
5
+ if (!initialized) {
6
+ value = f();
7
+ initialized = true;
8
+ }
9
+ return value;
10
+ };
11
+ }
12
+ //# sourceMappingURL=nullaryMemo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullaryMemo.js","sourceRoot":"","sources":["../../util/nullaryMemo.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAI,CAAU;IACvC,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,KAAK,GAAkB,SAAS,CAAA;IACpC,OAAO,GAAG,EAAE;QACV,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,KAAK,GAAG,CAAC,EAAE,CAAA;YACX,WAAW,GAAG,IAAI,CAAA;QACpB,CAAC;QACD,OAAO,KAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function peekLast<T>(set: Set<T>): T | undefined;
@@ -0,0 +1,4 @@
1
+ export function peekLast(set) {
2
+ return [...set][set.size - 1];
3
+ }
4
+ //# sourceMappingURL=peekLast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peekLast.js","sourceRoot":"","sources":["../../util/peekLast.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAI,GAAW;IACrC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;AAC/B,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function unimplemented(): never;
@@ -0,0 +1,5 @@
1
+ import { LiminalAssertionError } from "../LiminalAssertionError.js";
2
+ export function unimplemented() {
3
+ throw new LiminalAssertionError("Unimplemented");
4
+ }
5
+ //# sourceMappingURL=unimplemented.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unimplemented.js","sourceRoot":"","sources":["../../util/unimplemented.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,MAAM,UAAU,aAAa;IAC3B,MAAM,IAAI,qBAAqB,CAAC,eAAe,CAAC,CAAA;AAClD,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function unreachable(): never;
@@ -0,0 +1,5 @@
1
+ import { LiminalAssertionError } from "../LiminalAssertionError.js";
2
+ export function unreachable() {
3
+ throw new LiminalAssertionError("Unreachable");
4
+ }
5
+ //# sourceMappingURL=unreachable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unreachable.js","sourceRoot":"","sources":["../../util/unreachable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,MAAM,UAAU,WAAW;IACzB,MAAM,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAA;AAChD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { DeferredOr } from "./DeferredOr.ts";
2
+ export declare function unwrapDeferred<T>(deferred: DeferredOr<T>): T;
@@ -0,0 +1,4 @@
1
+ export function unwrapDeferred(deferred) {
2
+ return typeof deferred === "function" ? deferred() : deferred;
3
+ }
4
+ //# sourceMappingURL=unwrapDeferred.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unwrapDeferred.js","sourceRoot":"","sources":["../../util/unwrapDeferred.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAI,QAAuB;IACvD,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,QAAoB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;AAC5E,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from "./assert.ts";
2
+ export * from "./dedent.ts";
3
+ export * from "./DeferredOr.ts";
4
+ export * from "./isAsyncIterator.ts";
5
+ export * from "./isIterator.ts";
6
+ export * from "./JSONKey.ts";
7
+ export * from "./JSONSchemaMemo.ts";
8
+ export * from "./JSONValue.ts";
9
+ export * from "./unimplemented.ts";
10
+ export * from "./unwrapDeferred.ts";
@@ -0,0 +1,11 @@
1
+ export * from "./assert.js";
2
+ export * from "./dedent.js";
3
+ export * from "./DeferredOr.js";
4
+ export * from "./isAsyncIterator.js";
5
+ export * from "./isIterator.js";
6
+ export * from "./JSONKey.js";
7
+ export * from "./JSONSchemaMemo.js";
8
+ export * from "./JSONValue.js";
9
+ export * from "./unimplemented.js";
10
+ export * from "./unwrapDeferred.js";
11
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../util/util.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}