liminal 0.5.1 → 0.5.3

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 (673) hide show
  1. package/Agent.ts +28 -0
  2. package/CHANGELOG.md +16 -0
  3. package/Fiber.ts +117 -0
  4. package/Globals.ts +10 -0
  5. package/Handler.ts +0 -0
  6. package/L/L.ts +13 -0
  7. package/L/_infer.ts +35 -0
  8. package/L/_message.ts +18 -0
  9. package/L/all.ts +11 -0
  10. package/L/assistant.ts +34 -0
  11. package/L/branch.ts +45 -0
  12. package/L/emit.ts +11 -0
  13. package/L/fork.ts +18 -0
  14. package/L/join.ts +9 -0
  15. package/L/model.ts +11 -0
  16. package/L/namespace.ts +11 -0
  17. package/L/rune.ts +19 -0
  18. package/L/self.ts +13 -0
  19. package/L/state.ts +20 -0
  20. package/L/system.ts +13 -0
  21. package/L/user.ts +13 -0
  22. package/LEvent.ts +35 -0
  23. package/Message.ts +11 -90
  24. package/Model.ts +10 -17
  25. package/Rune.ts +17 -0
  26. package/Runic.ts +22 -0
  27. package/cli/main.ts +1 -19
  28. package/dist/Agent.d.ts +12 -0
  29. package/dist/Agent.js +16 -0
  30. package/dist/Agent.js.map +1 -0
  31. package/dist/Fiber.d.ts +38 -0
  32. package/dist/Fiber.js +79 -0
  33. package/dist/Fiber.js.map +1 -0
  34. package/dist/Globals.d.ts +7 -0
  35. package/dist/Globals.js +2 -0
  36. package/dist/Globals.js.map +1 -0
  37. package/dist/Handler.js +2 -0
  38. package/dist/Handler.js.map +1 -0
  39. package/dist/L/L.d.ts +13 -0
  40. package/dist/L/L.js +14 -0
  41. package/dist/L/L.js.map +1 -0
  42. package/dist/L/_infer.d.ts +4 -0
  43. package/dist/L/_infer.js +29 -0
  44. package/dist/L/_infer.js.map +1 -0
  45. package/dist/L/_message.d.ts +6 -0
  46. package/dist/L/_message.js +14 -0
  47. package/dist/L/_message.js.map +1 -0
  48. package/dist/L/all.d.ts +7 -0
  49. package/dist/L/all.js +5 -0
  50. package/dist/L/all.js.map +1 -0
  51. package/dist/L/assistant.d.ts +7 -0
  52. package/dist/L/assistant.js +23 -0
  53. package/dist/L/assistant.js.map +1 -0
  54. package/dist/L/branch.d.ts +11 -0
  55. package/dist/L/branch.js +32 -0
  56. package/dist/L/branch.js.map +1 -0
  57. package/dist/L/emit.d.ts +5 -0
  58. package/dist/L/emit.js +7 -0
  59. package/dist/L/emit.js.map +1 -0
  60. package/dist/L/fork.d.ts +7 -0
  61. package/dist/L/fork.js +11 -0
  62. package/dist/L/fork.js.map +1 -0
  63. package/dist/L/join.d.ts +5 -0
  64. package/dist/L/join.js +5 -0
  65. package/dist/L/join.js.map +1 -0
  66. package/dist/L/model.d.ts +5 -0
  67. package/dist/L/model.js +7 -0
  68. package/dist/L/model.js.map +1 -0
  69. package/dist/L/namespace.js +12 -0
  70. package/dist/L/namespace.js.map +1 -0
  71. package/dist/L/rune.d.ts +6 -0
  72. package/dist/L/rune.js +11 -0
  73. package/dist/L/rune.js.map +1 -0
  74. package/dist/L/self.d.ts +6 -0
  75. package/dist/L/self.js +7 -0
  76. package/dist/L/self.js.map +1 -0
  77. package/dist/L/state.d.ts +7 -0
  78. package/dist/L/state.js +14 -0
  79. package/dist/L/state.js.map +1 -0
  80. package/dist/L/system.d.ts +6 -0
  81. package/dist/L/system.js +7 -0
  82. package/dist/L/system.js.map +1 -0
  83. package/dist/L/user.d.ts +6 -0
  84. package/dist/L/user.js +7 -0
  85. package/dist/L/user.js.map +1 -0
  86. package/dist/LEvent.d.ts +28 -0
  87. package/dist/LEvent.js +5 -0
  88. package/dist/LEvent.js.map +1 -0
  89. package/dist/Message.d.ts +12 -81
  90. package/dist/Model.d.ts +4 -15
  91. package/dist/Model.js +6 -0
  92. package/dist/Model.js.map +1 -1
  93. package/dist/Rune.d.ts +11 -0
  94. package/dist/Rune.js +5 -0
  95. package/dist/Rune.js.map +1 -0
  96. package/dist/Runic.d.ts +9 -0
  97. package/dist/Runic.js +18 -0
  98. package/dist/Runic.js.map +1 -0
  99. package/dist/cli/main.d.ts +0 -1
  100. package/dist/cli/main.js +2 -14
  101. package/dist/cli/main.js.map +1 -1
  102. package/dist/index.d.ts +10 -40
  103. package/dist/index.js +10 -40
  104. package/dist/index.js.map +1 -1
  105. package/dist/state/Counter.d.ts +6 -0
  106. package/dist/state/Counter.js +13 -0
  107. package/dist/state/Counter.js.map +1 -0
  108. package/dist/state/DefaultStateMap.d.ts +4 -0
  109. package/dist/state/DefaultStateMap.js +14 -0
  110. package/dist/state/DefaultStateMap.js.map +1 -0
  111. package/dist/state/MessageRegistry.d.ts +7 -0
  112. package/dist/state/MessageRegistry.js +14 -0
  113. package/dist/state/MessageRegistry.js.map +1 -0
  114. package/dist/state/ModelConfig.d.ts +49 -0
  115. package/dist/state/ModelConfig.js +18 -0
  116. package/dist/state/ModelConfig.js.map +1 -0
  117. package/dist/state/ModelRegistry.d.ts +15 -0
  118. package/dist/state/ModelRegistry.js +43 -0
  119. package/dist/state/ModelRegistry.js.map +1 -0
  120. package/dist/state/StateMap.d.ts +7 -0
  121. package/dist/state/StateMap.js +10 -0
  122. package/dist/state/StateMap.js.map +1 -0
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/index.ts +10 -40
  125. package/package.json +6 -9
  126. package/state/Counter.ts +11 -0
  127. package/state/DefaultStateMap.ts +14 -0
  128. package/state/MessageRegistry.ts +17 -0
  129. package/state/ModelConfig.ts +49 -0
  130. package/state/ModelRegistry.ts +55 -0
  131. package/state/StateMap.ts +15 -0
  132. package/tsconfig.json +5 -1
  133. package/Action.ts +0 -29
  134. package/Actor.ts +0 -20
  135. package/Exec.ts +0 -63
  136. package/L.ts +0 -27
  137. package/LiminalAssertionError.ts +0 -3
  138. package/LiminalConfig.ts +0 -7
  139. package/PathLike.ts +0 -19
  140. package/Scope.ts +0 -133
  141. package/Spec.ts +0 -29
  142. package/Tool.ts +0 -58
  143. package/_.ts +0 -11
  144. package/actions/abort.ts +0 -23
  145. package/actions/actions_common/updateModels.ts +0 -23
  146. package/actions/actions_derived/__snapshots__/declareModel.test.ts.snap +0 -89
  147. package/actions/actions_derived/clear.ts +0 -6
  148. package/actions/actions_derived/declareModel.test.ts +0 -33
  149. package/actions/actions_derived/declareModel.ts +0 -9
  150. package/actions/actions_derived/declareModel.type-test.ts +0 -70
  151. package/actions/actions_derived/getMessages.ts +0 -9
  152. package/actions/actions_derived/messages.test.ts +0 -88
  153. package/actions/actions_derived/messages.ts +0 -19
  154. package/actions/actions_derived/metatype.ts +0 -9
  155. package/actions/appendMessage.ts +0 -30
  156. package/actions/await.ts +0 -13
  157. package/actions/branch.ts +0 -108
  158. package/actions/catch.ts +0 -42
  159. package/actions/declareArg.ts +0 -14
  160. package/actions/disableTool.ts +0 -26
  161. package/actions/embed.ts +0 -28
  162. package/actions/emit.ts +0 -21
  163. package/actions/enableTool.ts +0 -75
  164. package/actions/enableTool.type-test.ts +0 -118
  165. package/actions/getScope.ts +0 -11
  166. package/actions/getSignal.ts +0 -10
  167. package/actions/getTools.ts +0 -11
  168. package/actions/infer.ts +0 -37
  169. package/actions/pushModel.ts +0 -32
  170. package/actions/removeMessage.ts +0 -22
  171. package/actions/removeModel.ts +0 -31
  172. package/actions/setMessages.ts +0 -66
  173. package/actions/throw.ts +0 -18
  174. package/cli/WriteHandler.ts +0 -35
  175. package/cli/cli_common.ts +0 -3
  176. package/cli/runExec.ts +0 -68
  177. package/dist/Action.d.ts +0 -15
  178. package/dist/Action.js +0 -13
  179. package/dist/Action.js.map +0 -1
  180. package/dist/Actor.d.ts +0 -14
  181. package/dist/Actor.js +0 -2
  182. package/dist/Actor.js.map +0 -1
  183. package/dist/Exec.d.ts +0 -27
  184. package/dist/Exec.js +0 -22
  185. package/dist/Exec.js.map +0 -1
  186. package/dist/L.d.ts +0 -26
  187. package/dist/L.js +0 -27
  188. package/dist/L.js.map +0 -1
  189. package/dist/LiminalAssertionError.d.ts +0 -3
  190. package/dist/LiminalAssertionError.js +0 -4
  191. package/dist/LiminalAssertionError.js.map +0 -1
  192. package/dist/LiminalConfig.d.ts +0 -6
  193. package/dist/LiminalConfig.js +0 -2
  194. package/dist/LiminalConfig.js.map +0 -1
  195. package/dist/PathLike.d.ts +0 -14
  196. package/dist/PathLike.js +0 -2
  197. package/dist/PathLike.js.map +0 -1
  198. package/dist/Scope.d.ts +0 -36
  199. package/dist/Scope.js +0 -90
  200. package/dist/Scope.js.map +0 -1
  201. package/dist/Spec.d.ts +0 -20
  202. package/dist/Spec.js +0 -2
  203. package/dist/Spec.js.map +0 -1
  204. package/dist/Tool.d.ts +0 -21
  205. package/dist/Tool.js +0 -32
  206. package/dist/Tool.js.map +0 -1
  207. package/dist/_.d.ts +0 -5
  208. package/dist/_.js +0 -7
  209. package/dist/_.js.map +0 -1
  210. package/dist/actions/abort.d.ts +0 -9
  211. package/dist/actions/abort.js +0 -15
  212. package/dist/actions/abort.js.map +0 -1
  213. package/dist/actions/actions_common/updateModels.d.ts +0 -3
  214. package/dist/actions/actions_common/updateModels.js +0 -17
  215. package/dist/actions/actions_common/updateModels.js.map +0 -1
  216. package/dist/actions/actions_derived/clear.d.ts +0 -8
  217. package/dist/actions/actions_derived/clear.js +0 -5
  218. package/dist/actions/actions_derived/clear.js.map +0 -1
  219. package/dist/actions/actions_derived/declareModel.d.ts +0 -5
  220. package/dist/actions/actions_derived/declareModel.js +0 -7
  221. package/dist/actions/actions_derived/declareModel.js.map +0 -1
  222. package/dist/actions/actions_derived/declareModel.test.js +0 -32
  223. package/dist/actions/actions_derived/declareModel.test.js.map +0 -1
  224. package/dist/actions/actions_derived/declareModel.type-test.js +0 -66
  225. package/dist/actions/actions_derived/declareModel.type-test.js.map +0 -1
  226. package/dist/actions/actions_derived/getMessages.d.ts +0 -3
  227. package/dist/actions/actions_derived/getMessages.js +0 -8
  228. package/dist/actions/actions_derived/getMessages.js.map +0 -1
  229. package/dist/actions/actions_derived/messages.d.ts +0 -6
  230. package/dist/actions/actions_derived/messages.js +0 -15
  231. package/dist/actions/actions_derived/messages.js.map +0 -1
  232. package/dist/actions/actions_derived/messages.test.d.ts +0 -1
  233. package/dist/actions/actions_derived/messages.test.js +0 -72
  234. package/dist/actions/actions_derived/messages.test.js.map +0 -1
  235. package/dist/actions/actions_derived/metatype.d.ts +0 -9
  236. package/dist/actions/actions_derived/metatype.js +0 -7
  237. package/dist/actions/actions_derived/metatype.js.map +0 -1
  238. package/dist/actions/appendMessage.d.ts +0 -10
  239. package/dist/actions/appendMessage.js +0 -20
  240. package/dist/actions/appendMessage.js.map +0 -1
  241. package/dist/actions/await.d.ts +0 -5
  242. package/dist/actions/await.js +0 -10
  243. package/dist/actions/await.js.map +0 -1
  244. package/dist/actions/branch.d.ts +0 -35
  245. package/dist/actions/branch.js +0 -40
  246. package/dist/actions/branch.js.map +0 -1
  247. package/dist/actions/catch.d.ts +0 -10
  248. package/dist/actions/catch.js +0 -27
  249. package/dist/actions/catch.js.map +0 -1
  250. package/dist/actions/declareArg.d.ts +0 -8
  251. package/dist/actions/declareArg.js +0 -10
  252. package/dist/actions/declareArg.js.map +0 -1
  253. package/dist/actions/disableTool.d.ts +0 -10
  254. package/dist/actions/disableTool.js +0 -17
  255. package/dist/actions/disableTool.js.map +0 -1
  256. package/dist/actions/embed.d.ts +0 -9
  257. package/dist/actions/embed.js +0 -23
  258. package/dist/actions/embed.js.map +0 -1
  259. package/dist/actions/emit.d.ts +0 -9
  260. package/dist/actions/emit.js +0 -14
  261. package/dist/actions/emit.js.map +0 -1
  262. package/dist/actions/enableTool.d.ts +0 -20
  263. package/dist/actions/enableTool.js +0 -26
  264. package/dist/actions/enableTool.js.map +0 -1
  265. package/dist/actions/enableTool.type-test.d.ts +0 -1
  266. package/dist/actions/enableTool.type-test.js +0 -30
  267. package/dist/actions/enableTool.type-test.js.map +0 -1
  268. package/dist/actions/getScope.d.ts +0 -5
  269. package/dist/actions/getScope.js +0 -8
  270. package/dist/actions/getScope.js.map +0 -1
  271. package/dist/actions/getSignal.d.ts +0 -4
  272. package/dist/actions/getSignal.js +0 -8
  273. package/dist/actions/getSignal.js.map +0 -1
  274. package/dist/actions/getTools.d.ts +0 -5
  275. package/dist/actions/getTools.js +0 -8
  276. package/dist/actions/getTools.js.map +0 -1
  277. package/dist/actions/infer.d.ts +0 -13
  278. package/dist/actions/infer.js +0 -21
  279. package/dist/actions/infer.js.map +0 -1
  280. package/dist/actions/pushModel.d.ts +0 -11
  281. package/dist/actions/pushModel.js +0 -21
  282. package/dist/actions/pushModel.js.map +0 -1
  283. package/dist/actions/removeMessage.d.ts +0 -9
  284. package/dist/actions/removeMessage.js +0 -17
  285. package/dist/actions/removeMessage.js.map +0 -1
  286. package/dist/actions/removeModel.d.ts +0 -10
  287. package/dist/actions/removeModel.js +0 -20
  288. package/dist/actions/removeModel.js.map +0 -1
  289. package/dist/actions/setMessages.d.ts +0 -16
  290. package/dist/actions/setMessages.js +0 -31
  291. package/dist/actions/setMessages.js.map +0 -1
  292. package/dist/actions/throw.d.ts +0 -9
  293. package/dist/actions/throw.js +0 -13
  294. package/dist/actions/throw.js.map +0 -1
  295. package/dist/cli/WriteHandler.d.ts +0 -9
  296. package/dist/cli/WriteHandler.js +0 -24
  297. package/dist/cli/WriteHandler.js.map +0 -1
  298. package/dist/cli/cli_common.d.ts +0 -3
  299. package/dist/cli/cli_common.js +0 -2
  300. package/dist/cli/cli_common.js.map +0 -1
  301. package/dist/cli/runExec.d.ts +0 -2
  302. package/dist/cli/runExec.js +0 -69
  303. package/dist/cli/runExec.js.map +0 -1
  304. package/dist/events/Aborted.d.ts +0 -4
  305. package/dist/events/Aborted.js +0 -2
  306. package/dist/events/Aborted.js.map +0 -1
  307. package/dist/events/Embedded.d.ts +0 -5
  308. package/dist/events/Embedded.js +0 -2
  309. package/dist/events/Embedded.js.map +0 -1
  310. package/dist/events/EmbeddingRequested.d.ts +0 -4
  311. package/dist/events/EmbeddingRequested.js +0 -2
  312. package/dist/events/EmbeddingRequested.js.map +0 -1
  313. package/dist/events/Emitted.d.ts +0 -4
  314. package/dist/events/Emitted.js +0 -2
  315. package/dist/events/Emitted.js.map +0 -1
  316. package/dist/events/EventBase.d.ts +0 -3
  317. package/dist/events/EventBase.js +0 -2
  318. package/dist/events/EventBase.js.map +0 -1
  319. package/dist/events/EventHandler.d.ts +0 -2
  320. package/dist/events/EventHandler.js +0 -2
  321. package/dist/events/EventHandler.js.map +0 -1
  322. package/dist/events/EventResolved.d.ts +0 -19
  323. package/dist/events/EventResolved.js +0 -2
  324. package/dist/events/EventResolved.js.map +0 -1
  325. package/dist/events/Forked.d.ts +0 -3
  326. package/dist/events/Forked.js +0 -2
  327. package/dist/events/Forked.js.map +0 -1
  328. package/dist/events/InferenceRequested.d.ts +0 -3
  329. package/dist/events/InferenceRequested.js +0 -2
  330. package/dist/events/InferenceRequested.js.map +0 -1
  331. package/dist/events/Inferred.d.ts +0 -5
  332. package/dist/events/Inferred.js +0 -2
  333. package/dist/events/Inferred.js.map +0 -1
  334. package/dist/events/LEvent.d.ts +0 -18
  335. package/dist/events/LEvent.js +0 -2
  336. package/dist/events/LEvent.js.map +0 -1
  337. package/dist/events/MessageAppended.d.ts +0 -5
  338. package/dist/events/MessageAppended.js +0 -2
  339. package/dist/events/MessageAppended.js.map +0 -1
  340. package/dist/events/MessageRemoved.d.ts +0 -5
  341. package/dist/events/MessageRemoved.js +0 -2
  342. package/dist/events/MessageRemoved.js.map +0 -1
  343. package/dist/events/MessagesSet.d.ts +0 -5
  344. package/dist/events/MessagesSet.js +0 -2
  345. package/dist/events/MessagesSet.js.map +0 -1
  346. package/dist/events/ModelPushed.d.ts +0 -7
  347. package/dist/events/ModelPushed.js +0 -2
  348. package/dist/events/ModelPushed.js.map +0 -1
  349. package/dist/events/ModelRemoved.d.ts +0 -7
  350. package/dist/events/ModelRemoved.js +0 -2
  351. package/dist/events/ModelRemoved.js.map +0 -1
  352. package/dist/events/Returned.d.ts +0 -4
  353. package/dist/events/Returned.js +0 -2
  354. package/dist/events/Returned.js.map +0 -1
  355. package/dist/events/Threw.d.ts +0 -4
  356. package/dist/events/Threw.js +0 -2
  357. package/dist/events/Threw.js.map +0 -1
  358. package/dist/events/ToolCalled.d.ts +0 -6
  359. package/dist/events/ToolCalled.js +0 -2
  360. package/dist/events/ToolCalled.js.map +0 -1
  361. package/dist/events/ToolDisabled.d.ts +0 -5
  362. package/dist/events/ToolDisabled.js +0 -2
  363. package/dist/events/ToolDisabled.js.map +0 -1
  364. package/dist/events/ToolEnabled.d.ts +0 -7
  365. package/dist/events/ToolEnabled.js +0 -2
  366. package/dist/events/ToolEnabled.js.map +0 -1
  367. package/dist/events/isScopeChildEvent.d.ts +0 -6
  368. package/dist/events/isScopeChildEvent.js +0 -9
  369. package/dist/events/isScopeChildEvent.js.map +0 -1
  370. package/dist/events/isScopeDescendantEvent.d.ts +0 -14
  371. package/dist/events/isScopeDescendantEvent.js +0 -12
  372. package/dist/events/isScopeDescendantEvent.js.map +0 -1
  373. package/dist/testing/ActorAssertions.d.ts +0 -9
  374. package/dist/testing/ActorAssertions.js +0 -6
  375. package/dist/testing/ActorAssertions.js.map +0 -1
  376. package/dist/testing/TestEmbeddingModel.d.ts +0 -6
  377. package/dist/testing/TestEmbeddingModel.js +0 -10
  378. package/dist/testing/TestEmbeddingModel.js.map +0 -1
  379. package/dist/testing/TestLanguageModel.d.ts +0 -8
  380. package/dist/testing/TestLanguageModel.js +0 -21
  381. package/dist/testing/TestLanguageModel.js.map +0 -1
  382. package/dist/testing/index.d.ts +0 -4
  383. package/dist/testing/index.js +0 -5
  384. package/dist/testing/index.js.map +0 -1
  385. package/dist/testing/takeFirstAction.d.ts +0 -3
  386. package/dist/testing/takeFirstAction.js +0 -6
  387. package/dist/testing/takeFirstAction.js.map +0 -1
  388. package/dist/types/AssertDiagnostics.d.ts +0 -18
  389. package/dist/types/AssertDiagnostics.js +0 -152
  390. package/dist/types/AssertDiagnostics.js.map +0 -1
  391. package/dist/types/JSONRootType.d.ts +0 -6
  392. package/dist/types/JSONRootType.js +0 -2
  393. package/dist/types/JSONRootType.js.map +0 -1
  394. package/dist/types/JSONType.d.ts +0 -16
  395. package/dist/types/JSONType.js +0 -2
  396. package/dist/types/JSONType.js.map +0 -1
  397. package/dist/types/JSONTypeBase.d.ts +0 -3
  398. package/dist/types/JSONTypeBase.js +0 -2
  399. package/dist/types/JSONTypeBase.js.map +0 -1
  400. package/dist/types/Metatype/MetatypeDescriptor.d.ts +0 -41
  401. package/dist/types/Metatype/MetatypeDescriptor.js +0 -38
  402. package/dist/types/Metatype/MetatypeDescriptor.js.map +0 -1
  403. package/dist/types/Metatype/fromMetatypeDescriptor.d.ts +0 -6
  404. package/dist/types/Metatype/fromMetatypeDescriptor.js +0 -43
  405. package/dist/types/Metatype/fromMetatypeDescriptor.js.map +0 -1
  406. package/dist/types/Type.d.ts +0 -30
  407. package/dist/types/Type.js +0 -5
  408. package/dist/types/Type.js.map +0 -1
  409. package/dist/types/TypeContext.d.ts +0 -7
  410. package/dist/types/TypeContext.js +0 -17
  411. package/dist/types/TypeContext.js.map +0 -1
  412. package/dist/types/TypeLike.d.ts +0 -23
  413. package/dist/types/TypeLike.js +0 -23
  414. package/dist/types/TypeLike.js.map +0 -1
  415. package/dist/types/TypeVisitor.d.ts +0 -14
  416. package/dist/types/TypeVisitor.js +0 -12
  417. package/dist/types/TypeVisitor.js.map +0 -1
  418. package/dist/types/array.d.ts +0 -10
  419. package/dist/types/array.js +0 -9
  420. package/dist/types/array.js.map +0 -1
  421. package/dist/types/boolean.d.ts +0 -6
  422. package/dist/types/boolean.js +0 -3
  423. package/dist/types/boolean.js.map +0 -1
  424. package/dist/types/const.d.ts +0 -8
  425. package/dist/types/const.js +0 -7
  426. package/dist/types/const.js.map +0 -1
  427. package/dist/types/declareType.d.ts +0 -2
  428. package/dist/types/declareType.js +0 -57
  429. package/dist/types/declareType.js.map +0 -1
  430. package/dist/types/enum.d.ts +0 -8
  431. package/dist/types/enum.js +0 -7
  432. package/dist/types/enum.js.map +0 -1
  433. package/dist/types/factories.d.ts +0 -8
  434. package/dist/types/factories.js +0 -9
  435. package/dist/types/factories.js.map +0 -1
  436. package/dist/types/index.d.ts +0 -2
  437. package/dist/types/index.js +0 -3
  438. package/dist/types/index.js.map +0 -1
  439. package/dist/types/integer.d.ts +0 -6
  440. package/dist/types/integer.js +0 -3
  441. package/dist/types/integer.js.map +0 -1
  442. package/dist/types/intrinsics.d.ts +0 -11
  443. package/dist/types/intrinsics.js +0 -12
  444. package/dist/types/intrinsics.js.map +0 -1
  445. package/dist/types/match.d.ts +0 -3
  446. package/dist/types/match.js +0 -11
  447. package/dist/types/match.js.map +0 -1
  448. package/dist/types/non_factories.d.ts +0 -21
  449. package/dist/types/non_factories.js +0 -9
  450. package/dist/types/non_factories.js.map +0 -1
  451. package/dist/types/null.d.ts +0 -7
  452. package/dist/types/null.js +0 -4
  453. package/dist/types/null.js.map +0 -1
  454. package/dist/types/number.d.ts +0 -6
  455. package/dist/types/number.js +0 -3
  456. package/dist/types/number.js.map +0 -1
  457. package/dist/types/object.d.ts +0 -16
  458. package/dist/types/object.js +0 -10
  459. package/dist/types/object.js.map +0 -1
  460. package/dist/types/ref.d.ts +0 -7
  461. package/dist/types/ref.js +0 -5
  462. package/dist/types/ref.js.map +0 -1
  463. package/dist/types/string.d.ts +0 -6
  464. package/dist/types/string.js +0 -3
  465. package/dist/types/string.js.map +0 -1
  466. package/dist/types/toJSON.d.ts +0 -5
  467. package/dist/types/toJSON.js +0 -97
  468. package/dist/types/toJSON.js.map +0 -1
  469. package/dist/types/type_common.d.ts +0 -10
  470. package/dist/types/type_common.js +0 -12
  471. package/dist/types/type_common.js.map +0 -1
  472. package/dist/types/types_derived/option.d.ts +0 -5
  473. package/dist/types/types_derived/option.js +0 -6
  474. package/dist/types/types_derived/option.js.map +0 -1
  475. package/dist/types/types_derived/taggedUnion.d.ts +0 -19
  476. package/dist/types/types_derived/taggedUnion.js +0 -8
  477. package/dist/types/types_derived/taggedUnion.js.map +0 -1
  478. package/dist/types/types_derived/wrapper.d.ts +0 -8
  479. package/dist/types/types_derived/wrapper.js +0 -5
  480. package/dist/types/types_derived/wrapper.js.map +0 -1
  481. package/dist/types/union.d.ts +0 -9
  482. package/dist/types/union.js +0 -9
  483. package/dist/types/union.js.map +0 -1
  484. package/dist/util/ArrayOfLength.d.ts +0 -1
  485. package/dist/util/ArrayOfLength.js +0 -2
  486. package/dist/util/ArrayOfLength.js.map +0 -1
  487. package/dist/util/DeferredOr.d.ts +0 -1
  488. package/dist/util/DeferredOr.js +0 -2
  489. package/dist/util/DeferredOr.js.map +0 -1
  490. package/dist/util/EnsureNarrow.d.ts +0 -2
  491. package/dist/util/EnsureNarrow.js +0 -2
  492. package/dist/util/EnsureNarrow.js.map +0 -1
  493. package/dist/util/EnsureRecord.d.ts +0 -2
  494. package/dist/util/EnsureRecord.js +0 -2
  495. package/dist/util/EnsureRecord.js.map +0 -1
  496. package/dist/util/Expand.d.ts +0 -3
  497. package/dist/util/Expand.js +0 -2
  498. package/dist/util/Expand.js.map +0 -1
  499. package/dist/util/Falsy.d.ts +0 -1
  500. package/dist/util/Falsy.js +0 -2
  501. package/dist/util/Falsy.js.map +0 -1
  502. package/dist/util/FromEntries.d.ts +0 -3
  503. package/dist/util/FromEntries.js +0 -2
  504. package/dist/util/FromEntries.js.map +0 -1
  505. package/dist/util/IteratorLike.d.ts +0 -1
  506. package/dist/util/IteratorLike.js +0 -2
  507. package/dist/util/IteratorLike.js.map +0 -1
  508. package/dist/util/JSONEntry.d.ts +0 -2
  509. package/dist/util/JSONEntry.js +0 -2
  510. package/dist/util/JSONEntry.js.map +0 -1
  511. package/dist/util/JSONKey.d.ts +0 -1
  512. package/dist/util/JSONKey.js +0 -2
  513. package/dist/util/JSONKey.js.map +0 -1
  514. package/dist/util/JSONObject.d.ts +0 -5
  515. package/dist/util/JSONObject.js +0 -2
  516. package/dist/util/JSONObject.js.map +0 -1
  517. package/dist/util/JSONSchemaMemo.d.ts +0 -2
  518. package/dist/util/JSONSchemaMemo.js +0 -13
  519. package/dist/util/JSONSchemaMemo.js.map +0 -1
  520. package/dist/util/JSONValue.d.ts +0 -2
  521. package/dist/util/JSONValue.js +0 -2
  522. package/dist/util/JSONValue.js.map +0 -1
  523. package/dist/util/PromiseOr.d.ts +0 -1
  524. package/dist/util/PromiseOr.js +0 -2
  525. package/dist/util/PromiseOr.js.map +0 -1
  526. package/dist/util/Result.d.ts +0 -7
  527. package/dist/util/Result.js +0 -2
  528. package/dist/util/Result.js.map +0 -1
  529. package/dist/util/Taggable.d.ts +0 -9
  530. package/dist/util/Taggable.js +0 -8
  531. package/dist/util/Taggable.js.map +0 -1
  532. package/dist/util/TupleToRecord.d.ts +0 -5
  533. package/dist/util/TupleToRecord.js +0 -2
  534. package/dist/util/TupleToRecord.js.map +0 -1
  535. package/dist/util/assert.d.ts +0 -1
  536. package/dist/util/assert.js +0 -7
  537. package/dist/util/assert.js.map +0 -1
  538. package/dist/util/dedent.d.ts +0 -1
  539. package/dist/util/dedent.js +0 -5
  540. package/dist/util/dedent.js.map +0 -1
  541. package/dist/util/fixTemplateStrings.d.ts +0 -11
  542. package/dist/util/fixTemplateStrings.js +0 -83
  543. package/dist/util/fixTemplateStrings.js.map +0 -1
  544. package/dist/util/fixTemplateStrings.test.d.ts +0 -1
  545. package/dist/util/fixTemplateStrings.test.js +0 -221
  546. package/dist/util/fixTemplateStrings.test.js.map +0 -1
  547. package/dist/util/isAsyncIterator.d.ts +0 -1
  548. package/dist/util/isAsyncIterator.js +0 -7
  549. package/dist/util/isAsyncIterator.js.map +0 -1
  550. package/dist/util/isIterator.d.ts +0 -1
  551. package/dist/util/isIterator.js +0 -7
  552. package/dist/util/isIterator.js.map +0 -1
  553. package/dist/util/isJSONValue.d.ts +0 -2
  554. package/dist/util/isJSONValue.js +0 -16
  555. package/dist/util/isJSONValue.js.map +0 -1
  556. package/dist/util/isPropertyKey.d.ts +0 -1
  557. package/dist/util/isPropertyKey.js +0 -4
  558. package/dist/util/isPropertyKey.js.map +0 -1
  559. package/dist/util/isTemplateStringsArray.d.ts +0 -1
  560. package/dist/util/isTemplateStringsArray.js +0 -4
  561. package/dist/util/isTemplateStringsArray.js.map +0 -1
  562. package/dist/util/jsonEquals.d.ts +0 -2
  563. package/dist/util/jsonEquals.js +0 -33
  564. package/dist/util/jsonEquals.js.map +0 -1
  565. package/dist/util/nullaryMemo.d.ts +0 -1
  566. package/dist/util/nullaryMemo.js +0 -12
  567. package/dist/util/nullaryMemo.js.map +0 -1
  568. package/dist/util/unimplemented.d.ts +0 -1
  569. package/dist/util/unimplemented.js +0 -5
  570. package/dist/util/unimplemented.js.map +0 -1
  571. package/dist/util/unreachable.d.ts +0 -1
  572. package/dist/util/unreachable.js +0 -5
  573. package/dist/util/unreachable.js.map +0 -1
  574. package/dist/util/unwrapDeferred.d.ts +0 -2
  575. package/dist/util/unwrapDeferred.js +0 -4
  576. package/dist/util/unwrapDeferred.js.map +0 -1
  577. package/dist/util/util.d.ts +0 -10
  578. package/dist/util/util.js +0 -11
  579. package/dist/util/util.js.map +0 -1
  580. package/events/Aborted.ts +0 -5
  581. package/events/Embedded.ts +0 -6
  582. package/events/EmbeddingRequested.ts +0 -5
  583. package/events/Emitted.ts +0 -5
  584. package/events/EventBase.ts +0 -3
  585. package/events/EventHandler.ts +0 -3
  586. package/events/EventResolved.ts +0 -30
  587. package/events/Forked.ts +0 -3
  588. package/events/InferenceRequested.ts +0 -3
  589. package/events/Inferred.ts +0 -6
  590. package/events/LEvent.ts +0 -36
  591. package/events/MessageAppended.ts +0 -6
  592. package/events/MessageRemoved.ts +0 -6
  593. package/events/MessagesSet.ts +0 -6
  594. package/events/ModelPushed.ts +0 -10
  595. package/events/ModelRemoved.ts +0 -10
  596. package/events/Returned.ts +0 -5
  597. package/events/Threw.ts +0 -5
  598. package/events/ToolCalled.ts +0 -7
  599. package/events/ToolDisabled.ts +0 -6
  600. package/events/ToolEnabled.ts +0 -8
  601. package/events/isScopeChildEvent.ts +0 -15
  602. package/events/isScopeDescendantEvent.ts +0 -30
  603. package/testing/ActorAssertions.ts +0 -19
  604. package/testing/TestEmbeddingModel.ts +0 -18
  605. package/testing/TestLanguageModel.ts +0 -32
  606. package/testing/index.ts +0 -4
  607. package/testing/takeFirstAction.ts +0 -8
  608. package/types/AssertDiagnostics.ts +0 -183
  609. package/types/JSONRootType.ts +0 -8
  610. package/types/JSONType.ts +0 -27
  611. package/types/JSONTypeBase.ts +0 -3
  612. package/types/Metatype/MetatypeDescriptor.ts +0 -80
  613. package/types/Metatype/fromMetatypeDescriptor.ts +0 -52
  614. package/types/Type.ts +0 -46
  615. package/types/TypeContext.ts +0 -19
  616. package/types/TypeLike.ts +0 -60
  617. package/types/TypeVisitor.ts +0 -49
  618. package/types/array.ts +0 -20
  619. package/types/boolean.ts +0 -9
  620. package/types/const.ts +0 -17
  621. package/types/declareType.ts +0 -71
  622. package/types/enum.ts +0 -14
  623. package/types/factories.ts +0 -8
  624. package/types/index.ts +0 -2
  625. package/types/integer.ts +0 -9
  626. package/types/intrinsics.ts +0 -11
  627. package/types/match.ts +0 -13
  628. package/types/non_factories.ts +0 -26
  629. package/types/null.ts +0 -10
  630. package/types/number.ts +0 -9
  631. package/types/object.ts +0 -27
  632. package/types/ref.ts +0 -12
  633. package/types/string.ts +0 -9
  634. package/types/toJSON.ts +0 -111
  635. package/types/type_common.ts +0 -21
  636. package/types/types_derived/option.ts +0 -10
  637. package/types/types_derived/taggedUnion.ts +0 -30
  638. package/types/types_derived/wrapper.ts +0 -10
  639. package/types/union.ts +0 -19
  640. package/util/ArrayOfLength.ts +0 -5
  641. package/util/DeferredOr.ts +0 -1
  642. package/util/EnsureNarrow.ts +0 -5
  643. package/util/EnsureRecord.ts +0 -3
  644. package/util/Expand.ts +0 -1
  645. package/util/Falsy.ts +0 -1
  646. package/util/FromEntries.ts +0 -3
  647. package/util/IteratorLike.ts +0 -1
  648. package/util/JSONEntry.ts +0 -3
  649. package/util/JSONKey.ts +0 -1
  650. package/util/JSONObject.ts +0 -6
  651. package/util/JSONSchemaMemo.ts +0 -15
  652. package/util/JSONValue.ts +0 -3
  653. package/util/PromiseOr.ts +0 -1
  654. package/util/Result.ts +0 -7
  655. package/util/Taggable.ts +0 -18
  656. package/util/TupleToRecord.ts +0 -5
  657. package/util/assert.ts +0 -7
  658. package/util/dedent.ts +0 -5
  659. package/util/fixTemplateStrings.test.ts +0 -250
  660. package/util/fixTemplateStrings.ts +0 -99
  661. package/util/isAsyncIterator.ts +0 -6
  662. package/util/isIterator.ts +0 -6
  663. package/util/isJSONValue.ts +0 -20
  664. package/util/isPropertyKey.ts +0 -3
  665. package/util/isTemplateStringsArray.ts +0 -3
  666. package/util/jsonEquals.ts +0 -41
  667. package/util/nullaryMemo.ts +0 -11
  668. package/util/unimplemented.ts +0 -5
  669. package/util/unreachable.ts +0 -5
  670. package/util/unwrapDeferred.ts +0 -5
  671. package/util/util.ts +0 -10
  672. /package/dist/{actions/actions_derived/declareModel.test.d.ts → Handler.d.ts} +0 -0
  673. /package/dist/{actions/actions_derived/declareModel.type-test.d.ts → L/namespace.d.ts} +0 -0
@@ -1,49 +0,0 @@
1
- import type { Type } from "./Type.ts"
2
- import { type IntrinsicTypes, typeName } from "./type_common.ts"
3
-
4
- export type VisitorArms<S, R> =
5
- & {
6
- hook?: (
7
- next: (state: S, type: Type) => R,
8
- state: S,
9
- type: Type,
10
- ) => R
11
- }
12
- & (
13
- | (
14
- & IntrinsicVisitorArms<S, R>
15
- & { fallback?: never }
16
- )
17
- | (
18
- & Partial<IntrinsicVisitorArms<S, R>>
19
- & { fallback: () => R }
20
- )
21
- )
22
-
23
- export type IntrinsicVisitorArms<S, R> = {
24
- [K in keyof IntrinsicTypes]: (
25
- state: S,
26
- ...args: IntrinsicTypes[K] extends Type ? [IntrinsicTypes[K]]
27
- : IntrinsicTypes[K] extends (...args: infer A) => infer T ? [T, ...A]
28
- : never
29
- ) => R
30
- }
31
-
32
- export type TypeVisitor<S, R> = (state: S, type: Type) => R
33
-
34
- export function TypeVisitor<S, R>(arms: VisitorArms<S, R>): (state: S, type: Type) => R {
35
- const { hook } = arms
36
- if (hook) {
37
- return (state, type) => hook(next, state, type)
38
- }
39
-
40
- return next
41
-
42
- function next(state: S, type: Type): R {
43
- return (arms[typeName(type)] as any ?? arms.fallback)(
44
- state,
45
- type,
46
- ...(type.args ?? []),
47
- )
48
- }
49
- }
package/types/array.ts DELETED
@@ -1,20 +0,0 @@
1
- import { declareType } from "./declareType.ts"
2
- import type { JSONType } from "./JSONType.ts"
3
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
4
- import type { Type } from "./Type.ts"
5
- import { normalizeTypeLike, type NormalizeTypeLikeJ, type NormalizeTypeLikeT, type TypeLike } from "./TypeLike.ts"
6
-
7
- export function array<const F extends TypeLike>(
8
- element: F,
9
- ): Type<Array<NormalizeTypeLikeT<F>>, JSONArrayType<NormalizeTypeLikeJ<F>>> {
10
- return _array(normalizeTypeLike(element)) as never
11
- }
12
-
13
- export function _array(element: Type): Type {
14
- return declareType(() => _array, [element])
15
- }
16
-
17
- export interface JSONArrayType<E extends JSONType = any> extends JSONTypeBase {
18
- type: "array"
19
- items: E
20
- }
package/types/boolean.ts DELETED
@@ -1,9 +0,0 @@
1
- import { declareType } from "./declareType.ts"
2
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export const boolean: Type<boolean, JSONBooleanType> = declareType(() => boolean)
6
-
7
- export interface JSONBooleanType extends JSONTypeBase {
8
- type: "boolean"
9
- }
package/types/const.ts DELETED
@@ -1,17 +0,0 @@
1
- import type { JSONValue } from "../util/JSONValue.ts"
2
- import { declareType } from "./declareType.ts"
3
- import type { ConstableType } from "./JSONType.ts"
4
- import type { Type } from "./Type.ts"
5
-
6
- function const_<T extends JSONValue, J extends ConstableType, const V extends T>(
7
- type: Type<T, J>,
8
- value: V,
9
- ): Type<V, JSONConstType<J, V>> {
10
- return declareType(() => const_<T, J, V>, [type, value])
11
- }
12
- Object.defineProperty(const_, "name", { value: "const" })
13
- export { const_ as const }
14
-
15
- export type JSONConstType<J extends ConstableType = any, V extends JSONValue = JSONValue> = J & {
16
- const: V
17
- }
@@ -1,71 +0,0 @@
1
- import type { StandardSchemaV1 } from "@standard-schema/spec"
2
- import { infer } from "../actions/infer.ts"
3
- import { LiminalAssertionError } from "../LiminalAssertionError.ts"
4
- import type { Falsy } from "../util/Falsy.ts"
5
- import { applyTemplateWithIndentation } from "../util/fixTemplateStrings.ts"
6
- import { isTemplateStringsArray } from "../util/isTemplateStringsArray.ts"
7
- import type { JSONObject } from "../util/JSONObject.ts"
8
- import { AssertDiagnostics, formatAssertDiagnostics } from "./AssertDiagnostics.ts"
9
- import type { JSONObjectType } from "./object.ts"
10
- import { toJSON } from "./toJSON.ts"
11
- import { type Type, TypeKey, type TypeMembers } from "./Type.ts"
12
-
13
- export function declareType<X extends Type>(
14
- declaration: () => X | ((...args: any) => X),
15
- args?: Array<unknown>,
16
- descriptions: Array<string> = [],
17
- ): X {
18
- const type = Object.assign(
19
- Type,
20
- {
21
- [TypeKey]: true,
22
- declaration,
23
- args,
24
- descriptions,
25
- description() {
26
- return descriptions.join("\n")
27
- },
28
- "~standard": {
29
- vendor: "liminal",
30
- version: 1,
31
- validate: (value) => {
32
- const diagnostics = AssertDiagnostics({}, type as never, value)
33
- if (diagnostics.length) {
34
- return {
35
- issues: diagnostics.map(({ path, error }): StandardSchemaV1.Issue => ({
36
- path,
37
- message: JSON.stringify(error),
38
- })),
39
- }
40
- }
41
- return { value: value as X["T"] }
42
- },
43
- },
44
- toJSON,
45
- assert: (value) => {
46
- const diagnostics = AssertDiagnostics({}, type as never, value)
47
- if (diagnostics.length) {
48
- throw new LiminalAssertionError(formatAssertDiagnostics(diagnostics))
49
- }
50
- return value as never
51
- },
52
- ...{
53
- *[Symbol.iterator](this: Type<JSONObject, JSONObjectType>) {
54
- return yield* infer(this)
55
- },
56
- },
57
- } satisfies TypeMembers<X["T"], X["J"]>,
58
- ) as never as X
59
- return type
60
-
61
- function Type(template: TemplateStringsArray, ...substitutions: Array<string>): X
62
- function Type(...values: Array<Falsy | string>): X
63
- function Type(e0: TemplateStringsArray | Falsy | string, ...eRest: Array<Falsy | string>): X {
64
- return declareType(declaration, args, [
65
- ...descriptions,
66
- ...isTemplateStringsArray(e0)
67
- ? [applyTemplateWithIndentation(e0, ...eRest)]
68
- : [e0, ...eRest].filter((v): v is string => !!v),
69
- ])
70
- }
71
- }
package/types/enum.ts DELETED
@@ -1,14 +0,0 @@
1
- import { declareType } from "./declareType.ts"
2
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export { enum_ as enum }
6
- function enum_<A extends Array<string>>(...values: A): Type<A[number], JSONEnumType<A[number]>> {
7
- return declareType(() => enum_<A>, values)
8
- }
9
- Object.defineProperty(enum_, "name", { value: "enum" })
10
-
11
- export interface JSONEnumType<K extends string = string> extends JSONTypeBase {
12
- type: "string"
13
- enum: Array<K>
14
- }
@@ -1,8 +0,0 @@
1
- export { array } from "./array.ts"
2
- export { boolean, const, enum, integer, null, number, ref, string } from "./intrinsics.ts"
3
- export { MetatypeDescriptor, MetatypeRootDescriptor } from "./Metatype/MetatypeDescriptor.ts"
4
- export { object } from "./object.ts"
5
- export { option } from "./types_derived/option.ts"
6
- export { taggedUnion } from "./types_derived/taggedUnion.ts"
7
- export { wrapper } from "./types_derived/wrapper.ts"
8
- export { union } from "./union.ts"
package/types/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./factories.ts"
2
- export * from "./non_factories.ts"
package/types/integer.ts DELETED
@@ -1,9 +0,0 @@
1
- import { declareType } from "./declareType.ts"
2
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export const integer: Type<number, JSONIntegerType> = declareType(() => integer)
6
-
7
- export interface JSONIntegerType extends JSONTypeBase {
8
- type: "integer"
9
- }
@@ -1,11 +0,0 @@
1
- export { _array } from "./array.ts"
2
- export { boolean } from "./boolean.ts"
3
- export { const } from "./const.ts"
4
- export { enum } from "./enum.ts"
5
- export { integer } from "./integer.ts"
6
- export { null } from "./null.ts"
7
- export { number } from "./number.ts"
8
- export { _object } from "./object.ts"
9
- export { ref } from "./ref.ts"
10
- export { string } from "./string.ts"
11
- export { _union } from "./union.ts"
package/types/match.ts DELETED
@@ -1,13 +0,0 @@
1
- import type { JSONValue } from "../util/JSONValue.ts"
2
- import { AssertDiagnostics } from "./AssertDiagnostics.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export function match(value: JSONValue, members: Array<Type>): Type | undefined {
6
- for (const member of members) {
7
- const diagnostics = AssertDiagnostics({}, member, value)
8
- if (!diagnostics.length) {
9
- return member
10
- }
11
- }
12
- return
13
- }
@@ -1,26 +0,0 @@
1
- export type { JSONArrayType } from "./array.ts"
2
- export type { JSONBooleanType } from "./boolean.ts"
3
- export type { JSONConstType } from "./const.ts"
4
- export type { JSONEnumType } from "./enum.ts"
5
- export type { JSONIntegerType } from "./integer.ts"
6
- export * from "./JSONRootType.ts"
7
- export * from "./JSONType.ts"
8
- export { match } from "./match.ts"
9
- export * from "./Metatype/fromMetatypeDescriptor.ts"
10
- export type { MetatypeDescriptor, MetatypeRootDescriptor } from "./Metatype/MetatypeDescriptor.ts"
11
- export type { JSONNullType } from "./null.ts"
12
- export type { JSONNumberType } from "./number.ts"
13
- export type {
14
- JSONObjectType,
15
- ObjectFields as _ObjectFields,
16
- RecordFields as _RecordFields,
17
- TupleFields as _TupleFields,
18
- } from "./object.ts"
19
- export type { JSONRefType } from "./ref.ts"
20
- export type { JSONStringType } from "./string.ts"
21
- export * from "./Type.ts"
22
- export * from "./TypeContext.ts"
23
- export * from "./TypeLike.ts"
24
- export type { TaggedUnionMembers } from "./types_derived/taggedUnion.ts"
25
- export * from "./TypeVisitor.ts"
26
- export type { JSONUnionType } from "./union.ts"
package/types/null.ts DELETED
@@ -1,10 +0,0 @@
1
- import { declareType } from "./declareType.ts"
2
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- const null_: Type<null, JSONNullType> = declareType(() => null_)
6
- export { null_ as null }
7
-
8
- export interface JSONNullType extends JSONTypeBase {
9
- type: "null"
10
- }
package/types/number.ts DELETED
@@ -1,9 +0,0 @@
1
- import { declareType } from "./declareType.ts"
2
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export const number: Type<number, JSONNumberType> = declareType(() => number)
6
-
7
- export interface JSONNumberType extends JSONTypeBase {
8
- type: "number"
9
- }
package/types/object.ts DELETED
@@ -1,27 +0,0 @@
1
- import type { JSONKey } from "../util/JSONKey.ts"
2
- import { declareType } from "./declareType.ts"
3
- import type { JSONType } from "./JSONType.ts"
4
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
5
- import { type Type } from "./Type.ts"
6
- import { normalizeTypeLikes, type NormalizeTypeLikesJ, type NormalizeTypeLikesT, type TypeLikes } from "./TypeLike.ts"
7
-
8
- export function object<const F extends TypeLikes>(
9
- fields: F,
10
- ): Type<NormalizeTypeLikesT<F>, JSONObjectType<NormalizeTypeLikesJ<F>>> {
11
- return normalizeTypeLikes(fields) as never
12
- }
13
-
14
- export function _object(fields: ObjectFields): Type {
15
- return declareType(() => _object, [fields])
16
- }
17
-
18
- export interface JSONObjectType<F extends Record<JSONKey, JSONType> = any> extends JSONTypeBase {
19
- type: "object"
20
- properties: F
21
- required: Array<keyof F>
22
- additionalProperties: false
23
- }
24
-
25
- export type ObjectFields = TupleFields | RecordFields
26
- export type TupleFields = Array<Type>
27
- export type RecordFields = Record<JSONKey, Type>
package/types/ref.ts DELETED
@@ -1,12 +0,0 @@
1
- import type { JSONValue } from "../util/JSONValue.ts"
2
- import { declareType } from "./declareType.ts"
3
- import type { ConstableType } from "./JSONType.ts"
4
- import type { Type } from "./Type.ts"
5
-
6
- export function ref<T extends JSONValue, J extends ConstableType>(getType: () => Type<T, J>): Type<T, JSONRefType> {
7
- return declareType(() => ref<T, J>, [getType])
8
- }
9
-
10
- export interface JSONRefType {
11
- $ref: string
12
- }
package/types/string.ts DELETED
@@ -1,9 +0,0 @@
1
- import { declareType } from "./declareType.ts"
2
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export const string: Type<string, JSONStringType> = declareType(() => string)
6
-
7
- export interface JSONStringType extends JSONTypeBase {
8
- type: "string"
9
- }
package/types/toJSON.ts DELETED
@@ -1,111 +0,0 @@
1
- import type { JSONValue } from "../util/JSONValue.ts"
2
- import type { JSONArrayType } from "./array.ts"
3
- import type { JSONBooleanType } from "./boolean.ts"
4
- import { type JSONConstType } from "./const.ts"
5
- import type { JSONEnumType } from "./enum.ts"
6
- import type { JSONIntegerType } from "./integer.ts"
7
- import type { JSONRootType } from "./JSONRootType.ts"
8
- import { JSONSchema$schema } from "./JSONRootType.ts"
9
- import type { JSONRootableType, JSONType } from "./JSONType"
10
- import type { JSONNullType } from "./null.ts"
11
- import type { JSONNumberType } from "./number.ts"
12
- import { _object, type JSONObjectType } from "./object.ts"
13
- import { type JSONStringType } from "./string.ts"
14
- import { type Type } from "./Type.ts"
15
- import { PARENT_TYPE_NAMES, typeName } from "./type_common.ts"
16
- import { TypeContext } from "./TypeContext.ts"
17
- import { TypeVisitor } from "./TypeVisitor.ts"
18
- import type { JSONUnionType } from "./union.ts"
19
-
20
- export function toJSON<T extends JSONValue, J extends JSONRootableType>(this: Type<T, J>): JSONRootType<J> {
21
- const { $defs: { 0: root, ...$defs } } = new ToJSONState(this)
22
- return {
23
- $schema: JSONSchema$schema,
24
- ...root,
25
- $defs,
26
- } as never
27
- }
28
-
29
- class ToJSONState extends TypeContext {
30
- readonly $defs: Record<string, JSONType | undefined> = {}
31
- constructor(root: Type) {
32
- super(root)
33
- visit(this, root)
34
- }
35
- }
36
-
37
- const visit: TypeVisitor<ToJSONState, JSONType> = TypeVisitor({
38
- hook(next, state, type) {
39
- const which = typeName(type)
40
- if (PARENT_TYPE_NAMES[which]) {
41
- const id = state.id(type)
42
- if (!(id in state.$defs)) {
43
- state.$defs[id] = undefined
44
- state.$defs[id] = next(state, type)
45
- }
46
- return type === state.root ? { $ref: "$" } : { $ref: `#/$defs/${id}` }
47
- }
48
- if (which === "ref") {
49
- if (state.ids.has(type)) {
50
- const getType = type.args?.[0] as () => Type
51
- return { $ref: `#/$defs/${state.id(getType())}` }
52
- }
53
- state.id(type)
54
- return next(state, type)
55
- }
56
- return next(state, type)
57
- },
58
- null(): JSONNullType {
59
- return { type: "null" }
60
- },
61
- boolean(): JSONBooleanType {
62
- return { type: "boolean" }
63
- },
64
- integer(): JSONIntegerType {
65
- return { type: "integer" }
66
- },
67
- number(): JSONNumberType {
68
- return { type: "number" }
69
- },
70
- string(): JSONStringType {
71
- return { type: "string" }
72
- },
73
- const(state, _type, valueType, value): JSONConstType {
74
- return {
75
- ...visit(state, valueType),
76
- const: value,
77
- } as never
78
- },
79
- _array(state, _type, element): JSONArrayType {
80
- return {
81
- type: "array",
82
- items: visit(state, element),
83
- }
84
- },
85
- enum(_state, _type, ...values): JSONEnumType {
86
- return {
87
- type: "string",
88
- enum: values,
89
- }
90
- },
91
- _union(state, _type, ...members): JSONUnionType {
92
- return {
93
- anyOf: members.map((m) => visit(state, m)),
94
- }
95
- },
96
- _object(state, _type, fields): JSONObjectType {
97
- return {
98
- type: "object",
99
- properties: Object.fromEntries(
100
- Array.isArray(fields)
101
- ? fields.map((v, i) => [i, visit(state, v)])
102
- : Object.entries(fields).map(([k, v]) => [k, visit(state, v)]),
103
- ),
104
- required: Object.keys(fields),
105
- additionalProperties: false,
106
- }
107
- },
108
- ref(state, _type, getType) {
109
- return visit(state, getType())
110
- },
111
- })
@@ -1,21 +0,0 @@
1
- import { nullaryMemo } from "../util/nullaryMemo.ts"
2
- import * as I from "./intrinsics.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export type IntrinsicTypes = typeof I
6
- export type IntrinsicTypeName = keyof IntrinsicTypes
7
- export type IntrinsicType = IntrinsicTypes[IntrinsicTypeName]
8
-
9
- export const getIntrinsicNameLookup = nullaryMemo(() =>
10
- new Map(Object.entries(I).map((entry) => entry.reverse() as [IntrinsicType, keyof IntrinsicTypes]))
11
- )
12
-
13
- export function typeName(type: Type): IntrinsicTypeName {
14
- return getIntrinsicNameLookup().get(type.declaration() as IntrinsicType)!
15
- }
16
-
17
- export const PARENT_TYPE_NAMES: { [K in IntrinsicTypeName]?: true } = {
18
- _object: true,
19
- _array: true,
20
- _union: true,
21
- }
@@ -1,10 +0,0 @@
1
- import { type JSONNullType, null as null_ } from "../null.ts"
2
- import type { Type } from "../Type.ts"
3
- import type { NormalizeTypeLikeJ, NormalizeTypeLikeT, TypeLike } from "../TypeLike.ts"
4
- import { _union, type JSONUnionType, union } from "../union.ts"
5
-
6
- export function option<const X extends TypeLike>(
7
- of: X,
8
- ): Type<null | NormalizeTypeLikeT<X>, JSONUnionType<JSONNullType | NormalizeTypeLikeJ<X>>> {
9
- return union(null_, of)
10
- }
@@ -1,30 +0,0 @@
1
- import type { JSONKey } from "../../util/JSONKey.ts"
2
- import type { JSONConstType } from "../const.ts"
3
- import { type JSONObjectType, object } from "../object.ts"
4
- import type { JSONStringType } from "../string.ts"
5
- import { type Type } from "../Type.ts"
6
- import { type NormalizeTypeLikeJ, type NormalizeTypeLikeT, type TypeLike } from "../TypeLike.ts"
7
- import { _union, type JSONUnionType, union } from "../union.ts"
8
-
9
- export function taggedUnion<const M extends TaggedUnionMembers, K extends Extract<keyof M, string>>(members: M): Type<
10
- {
11
- [L in K]: {
12
- type: L
13
- value: NormalizeTypeLikeT<M[L]>
14
- }
15
- }[K],
16
- JSONUnionType<
17
- {
18
- [L in K]: JSONObjectType<{
19
- type: JSONConstType<JSONStringType, L>
20
- value: NormalizeTypeLikeJ<M[L]>
21
- }>
22
- }[K]
23
- >
24
- > {
25
- return union(
26
- ...Object.entries(members).map(([type, value]) => object({ type, value })),
27
- ) as never
28
- }
29
-
30
- export type TaggedUnionMembers = Record<JSONKey, TypeLike>
@@ -1,10 +0,0 @@
1
- import { type JSONObjectType, object } from "../object.ts"
2
- import type { Type } from "../Type.ts"
3
- import type { NormalizeTypeLikeJ, NormalizeTypeLikeT, TypeLike } from "../TypeLike.ts"
4
-
5
- export function wrapper<X extends TypeLike>(value: X): Type<
6
- { value: NormalizeTypeLikeT<X> },
7
- JSONObjectType<{ value: NormalizeTypeLikeJ<X> }>
8
- > {
9
- return object({ value }) as never
10
- }
package/types/union.ts DELETED
@@ -1,19 +0,0 @@
1
- import { declareType } from "./declareType.ts"
2
- import type { JSONType } from "./JSONType.ts"
3
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
4
- import type { Type } from "./Type.ts"
5
- import { normalizeTypeLike, type NormalizeTypeLikeJ, type NormalizeTypeLikeT, type TypeLike } from "./TypeLike.ts"
6
-
7
- export function union<const M extends Array<TypeLike>>(
8
- ...members: M
9
- ): Type<NormalizeTypeLikeT<M[number]>, JSONUnionType<NormalizeTypeLikeJ<M[number]>>> {
10
- return _union(...members.map(normalizeTypeLike)) as never
11
- }
12
-
13
- export function _union(...members: Array<Type>): Type {
14
- return declareType(() => _union, members)
15
- }
16
-
17
- export interface JSONUnionType<M extends JSONType = any> extends JSONTypeBase {
18
- anyOf: Array<M>
19
- }
@@ -1,5 +0,0 @@
1
- export type ArrayOfLength<
2
- T,
3
- L extends number,
4
- A extends Array<T> = [],
5
- > = number extends L ? Array<T> : L extends A["length"] ? A : ArrayOfLength<T, L, [...A, T]>
@@ -1 +0,0 @@
1
- export type DeferredOr<T> = T | (() => T)
@@ -1,5 +0,0 @@
1
- export type EnsureNarrow<V> = unknown extends V ? [error: typeof WIDENING_TYPE_DISALLOWED]
2
- : [V] extends [never] ? [error: typeof WIDENING_TYPE_DISALLOWED]
3
- : []
4
-
5
- export declare const WIDENING_TYPE_DISALLOWED: unique symbol
@@ -1,3 +0,0 @@
1
- import type { TupleToRecord } from "./TupleToRecord.ts"
2
-
3
- export type EnsureRecord<T> = T extends Array<any> ? TupleToRecord<T> : T
package/util/Expand.ts DELETED
@@ -1 +0,0 @@
1
- export type Expand<T> = T extends T ? { [K in keyof T]: T[K] } : never
package/util/Falsy.ts DELETED
@@ -1 +0,0 @@
1
- export type Falsy = false | 0 | 0n | "" | null | undefined
@@ -1,3 +0,0 @@
1
- export type FromEntries<E extends [keyof any, any]> = {
2
- [K in E[0]]: Extract<E, [K, any]> extends [K, infer V] ? V : never
3
- }
@@ -1 +0,0 @@
1
- export type IteratorLike<Y = any, O = any> = Iterator<Y, O> | AsyncIterator<Y, O>
package/util/JSONEntry.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { JSONKey } from "./JSONKey.ts"
2
-
3
- export type JSONEntry<V = any> = [JSONKey, V]
package/util/JSONKey.ts DELETED
@@ -1 +0,0 @@
1
- export type JSONKey = number | string
@@ -1,6 +0,0 @@
1
- import type { JSONKey } from "./JSONKey.ts"
2
- import type { JSONValue } from "./JSONValue.ts"
3
-
4
- export type JSONObject = {
5
- [value: JSONKey]: JSONValue
6
- }
@@ -1,15 +0,0 @@
1
- import type { StandardSchemaV1 } from "@standard-schema/spec"
2
- import { toJSONSchema } from "standard-json-schema"
3
- import { isType } from "../types/Type.ts"
4
-
5
- const memo = new WeakMap<StandardSchemaV1, Promise<object>>()
6
-
7
- export function JSONSchemaMemo(type: StandardSchemaV1): Promise<object> {
8
- let pending = memo.get(type)
9
- if (pending) {
10
- return pending
11
- }
12
- pending = isType(type) ? Promise.resolve(type.toJSON()) : toJSONSchema(type)
13
- memo.set(type, pending)
14
- return pending
15
- }
package/util/JSONValue.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { JSONObject } from "./JSONObject.ts"
2
-
3
- export type JSONValue = null | boolean | number | string | Array<JSONValue> | JSONObject
package/util/PromiseOr.ts DELETED
@@ -1 +0,0 @@
1
- export type PromiseOr<T> = T | Promise<T>
package/util/Result.ts DELETED
@@ -1,7 +0,0 @@
1
- export type Result<T, E> = {
2
- value: T
3
- thrown?: never
4
- } | {
5
- value?: never
6
- thrown: E
7
- }
package/util/Taggable.ts DELETED
@@ -1,18 +0,0 @@
1
- import { applyTemplateWithIndentation } from "./fixTemplateStrings.ts"
2
- import { isTemplateStringsArray } from "./isTemplateStringsArray.ts"
3
-
4
- export interface Taggable<A extends Array<any>> {
5
- (template: TemplateStringsArray, ...substitutions: Array<string>): this
6
- (...values: A): this
7
- }
8
-
9
- export type TaggableArgs<A extends Array<any>> = A | [
10
- raw: TemplateStringsArray,
11
- ...substitutions: Array<string>,
12
- ]
13
-
14
- export function normalizeTaggableArgs<A extends Array<unknown>>(...[e0, ...eRest]: TaggableArgs<A>) {
15
- return isTemplateStringsArray(e0)
16
- ? [applyTemplateWithIndentation(e0, ...eRest)] as [string]
17
- : [e0, ...eRest] as A
18
- }