@takeshape/schema 12.1.0 → 12.1.4

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 (514) hide show
  1. package/dist/agents.d.ts +62 -0
  2. package/dist/agents.js +346 -0
  3. package/dist/api-version.d.ts +5 -0
  4. package/dist/api-version.js +17 -0
  5. package/dist/auth-schemas.d.ts +144 -0
  6. package/dist/auth-schemas.js +7 -0
  7. package/dist/auth-utils.d.ts +19 -0
  8. package/dist/auth-utils.js +26 -0
  9. package/dist/builtin-schema.d.ts +18 -0
  10. package/dist/builtin-schema.js +710 -0
  11. package/dist/constants.d.ts +1 -0
  12. package/dist/constants.js +1 -0
  13. package/dist/content-schema-transform.d.ts +35 -0
  14. package/dist/content-schema-transform.js +162 -0
  15. package/dist/create-input-schema.d.ts +9 -0
  16. package/dist/create-input-schema.js +68 -0
  17. package/dist/enum.d.ts +2 -0
  18. package/dist/enum.js +9 -0
  19. package/dist/flatten-templates.d.ts +2 -0
  20. package/dist/flatten-templates.js +20 -0
  21. package/dist/get-is-leaf.d.ts +3 -0
  22. package/dist/get-is-leaf.js +56 -0
  23. package/dist/index.d.ts +64 -0
  24. package/dist/index.js +61 -0
  25. package/dist/interfaces.d.ts +14 -0
  26. package/dist/interfaces.js +86 -0
  27. package/dist/layers/layers.d.ts +26 -0
  28. package/dist/layers/layers.js +301 -0
  29. package/dist/layers/refs.d.ts +102 -0
  30. package/dist/layers/refs.js +220 -0
  31. package/dist/layers/type-utils.d.ts +59 -0
  32. package/dist/layers/type-utils.js +118 -0
  33. package/dist/layers/visitor.d.ts +5 -0
  34. package/dist/layers/visitor.js +38 -0
  35. package/dist/migration/index.d.ts +79 -0
  36. package/dist/migration/index.js +110 -0
  37. package/dist/migration/to/v3.0.0.d.ts +4 -0
  38. package/dist/migration/to/v3.0.0.js +212 -0
  39. package/dist/migration/to/v3.1.0.d.ts +4 -0
  40. package/dist/migration/to/v3.1.0.js +194 -0
  41. package/dist/migration/to/v3.10.0.d.ts +4 -0
  42. package/dist/migration/to/v3.10.0.js +67 -0
  43. package/dist/migration/to/v3.11.0.d.ts +4 -0
  44. package/dist/migration/to/v3.11.0.js +85 -0
  45. package/dist/migration/to/v3.12.3.d.ts +4 -0
  46. package/dist/migration/to/v3.12.3.js +87 -0
  47. package/dist/migration/to/v3.13.0.d.ts +4 -0
  48. package/dist/migration/to/v3.13.0.js +17 -0
  49. package/dist/migration/to/v3.17.0.d.ts +4 -0
  50. package/dist/migration/to/v3.17.0.js +22 -0
  51. package/dist/migration/to/v3.18.0.d.ts +4 -0
  52. package/dist/migration/to/v3.18.0.js +64 -0
  53. package/dist/migration/to/v3.18.1.d.ts +4 -0
  54. package/dist/migration/to/v3.18.1.js +12 -0
  55. package/dist/migration/to/v3.18.2.d.ts +4 -0
  56. package/dist/migration/to/v3.18.2.js +19 -0
  57. package/dist/migration/to/v3.20.0.d.ts +4 -0
  58. package/dist/migration/to/v3.20.0.js +24 -0
  59. package/dist/migration/to/v3.22.0.d.ts +4 -0
  60. package/dist/migration/to/v3.22.0.js +25 -0
  61. package/dist/migration/to/v3.24.0.d.ts +4 -0
  62. package/dist/migration/to/v3.24.0.js +11 -0
  63. package/dist/migration/to/v3.25.0.d.ts +4 -0
  64. package/dist/migration/to/v3.25.0.js +11 -0
  65. package/dist/migration/to/v3.3.0.d.ts +4 -0
  66. package/dist/migration/to/v3.3.0.js +13 -0
  67. package/dist/migration/to/v3.31.0.d.ts +4 -0
  68. package/dist/migration/to/v3.31.0.js +38 -0
  69. package/dist/migration/to/v3.32.0.d.ts +4 -0
  70. package/dist/migration/to/v3.32.0.js +59 -0
  71. package/dist/migration/to/v3.34.0.d.ts +6 -0
  72. package/dist/migration/to/v3.34.0.js +111 -0
  73. package/dist/migration/to/v3.36.0.d.ts +4 -0
  74. package/dist/migration/to/v3.36.0.js +22 -0
  75. package/dist/migration/to/v3.39.0.d.ts +4 -0
  76. package/dist/migration/to/v3.39.0.js +45 -0
  77. package/dist/migration/to/v3.40.0.d.ts +4 -0
  78. package/dist/migration/to/v3.40.0.js +26 -0
  79. package/dist/migration/to/v3.46.0.d.ts +4 -0
  80. package/dist/migration/to/v3.46.0.js +35 -0
  81. package/dist/migration/to/v3.57.0.d.ts +4 -0
  82. package/dist/migration/to/v3.57.0.js +18 -0
  83. package/dist/migration/to/v3.60.0.d.ts +4 -0
  84. package/dist/migration/to/v3.60.0.js +129 -0
  85. package/dist/migration/to/v3.9.0.d.ts +4 -0
  86. package/dist/migration/to/v3.9.0.js +79 -0
  87. package/dist/migration/types.d.ts +26 -0
  88. package/dist/migration/types.js +3 -0
  89. package/dist/migration/utils.d.ts +2 -0
  90. package/dist/migration/utils.js +6 -0
  91. package/dist/mocks.d.ts +14 -0
  92. package/dist/mocks.js +58 -0
  93. package/dist/models/agent.d.ts +3 -0
  94. package/dist/models/agent.js +73 -0
  95. package/dist/models/project-schema.d.ts +28 -0
  96. package/dist/models/project-schema.js +186 -0
  97. package/dist/models/query.d.ts +3 -0
  98. package/dist/models/query.js +46 -0
  99. package/dist/models/runtime-schema.d.ts +9 -0
  100. package/dist/models/runtime-schema.js +20 -0
  101. package/dist/models/shape.d.ts +4 -0
  102. package/dist/models/shape.js +36 -0
  103. package/dist/models/tool.d.ts +4 -0
  104. package/dist/models/tool.js +147 -0
  105. package/dist/models/types.d.ts +97 -0
  106. package/dist/models/types.js +1 -0
  107. package/dist/models/user-schema.d.ts +7 -0
  108. package/dist/models/user-schema.js +9 -0
  109. package/dist/patterns.d.ts +12 -0
  110. package/dist/patterns.js +1 -0
  111. package/dist/project-schema/index.d.ts +229 -0
  112. package/dist/project-schema/index.js +89 -0
  113. package/dist/project-schema/latest.d.ts +2762 -0
  114. package/dist/project-schema/latest.js +7 -0
  115. package/dist/project-schema/migrate.d.ts +4 -0
  116. package/dist/project-schema/migrate.js +236 -0
  117. package/dist/project-schema/v1.0.0.d.ts +299 -0
  118. package/dist/project-schema/v1.0.0.js +7 -0
  119. package/dist/project-schema/v3.0.0.d.ts +478 -0
  120. package/dist/project-schema/v3.0.0.js +7 -0
  121. package/dist/project-schema/v3.1.0.d.ts +621 -0
  122. package/dist/project-schema/v3.1.0.js +7 -0
  123. package/dist/project-schema/v3.10.0.d.ts +1201 -0
  124. package/dist/project-schema/v3.10.0.js +7 -0
  125. package/dist/project-schema/v3.11.0.d.ts +1210 -0
  126. package/dist/project-schema/v3.11.0.js +7 -0
  127. package/dist/project-schema/v3.12.0.d.ts +1214 -0
  128. package/dist/project-schema/v3.12.0.js +7 -0
  129. package/dist/project-schema/v3.12.1.d.ts +1273 -0
  130. package/dist/project-schema/v3.12.1.js +7 -0
  131. package/dist/project-schema/v3.12.2.d.ts +1283 -0
  132. package/dist/project-schema/v3.12.2.js +7 -0
  133. package/dist/project-schema/v3.12.3.d.ts +1306 -0
  134. package/dist/project-schema/v3.12.3.js +7 -0
  135. package/dist/project-schema/v3.13.0.d.ts +1317 -0
  136. package/dist/project-schema/v3.13.0.js +7 -0
  137. package/dist/project-schema/v3.13.1.d.ts +1412 -0
  138. package/dist/project-schema/v3.13.1.js +7 -0
  139. package/dist/project-schema/v3.14.0.d.ts +1436 -0
  140. package/dist/project-schema/v3.14.0.js +7 -0
  141. package/dist/project-schema/v3.15.0.d.ts +1458 -0
  142. package/dist/project-schema/v3.15.0.js +7 -0
  143. package/dist/project-schema/v3.16.0.d.ts +1470 -0
  144. package/dist/project-schema/v3.16.0.js +7 -0
  145. package/dist/project-schema/v3.17.0.d.ts +1467 -0
  146. package/dist/project-schema/v3.17.0.js +7 -0
  147. package/dist/project-schema/v3.17.1.d.ts +1468 -0
  148. package/dist/project-schema/v3.17.1.js +7 -0
  149. package/dist/project-schema/v3.18.0.d.ts +1333 -0
  150. package/dist/project-schema/v3.18.0.js +7 -0
  151. package/dist/project-schema/v3.18.1.d.ts +1332 -0
  152. package/dist/project-schema/v3.18.1.js +7 -0
  153. package/dist/project-schema/v3.18.2.d.ts +1332 -0
  154. package/dist/project-schema/v3.18.2.js +7 -0
  155. package/dist/project-schema/v3.19.0.d.ts +1336 -0
  156. package/dist/project-schema/v3.19.0.js +7 -0
  157. package/dist/project-schema/v3.2.0.d.ts +632 -0
  158. package/dist/project-schema/v3.2.0.js +7 -0
  159. package/dist/project-schema/v3.20.0.d.ts +1336 -0
  160. package/dist/project-schema/v3.20.0.js +7 -0
  161. package/dist/project-schema/v3.21.0.d.ts +1338 -0
  162. package/dist/project-schema/v3.21.0.js +7 -0
  163. package/dist/project-schema/v3.22.0.d.ts +1344 -0
  164. package/dist/project-schema/v3.22.0.js +7 -0
  165. package/dist/project-schema/v3.23.0.d.ts +1376 -0
  166. package/dist/project-schema/v3.23.0.js +7 -0
  167. package/dist/project-schema/v3.24.0.d.ts +1364 -0
  168. package/dist/project-schema/v3.24.0.js +7 -0
  169. package/dist/project-schema/v3.25.0.d.ts +1363 -0
  170. package/dist/project-schema/v3.25.0.js +7 -0
  171. package/dist/project-schema/v3.26.0.d.ts +1388 -0
  172. package/dist/project-schema/v3.26.0.js +7 -0
  173. package/dist/project-schema/v3.27.0.d.ts +1397 -0
  174. package/dist/project-schema/v3.27.0.js +7 -0
  175. package/dist/project-schema/v3.28.0.d.ts +1416 -0
  176. package/dist/project-schema/v3.28.0.js +7 -0
  177. package/dist/project-schema/v3.29.0.d.ts +1423 -0
  178. package/dist/project-schema/v3.29.0.js +7 -0
  179. package/dist/project-schema/v3.3.0.d.ts +632 -0
  180. package/dist/project-schema/v3.3.0.js +7 -0
  181. package/dist/project-schema/v3.30.0.d.ts +1416 -0
  182. package/dist/project-schema/v3.30.0.js +7 -0
  183. package/dist/project-schema/v3.31.0.d.ts +1448 -0
  184. package/dist/project-schema/v3.31.0.js +7 -0
  185. package/dist/project-schema/v3.32.0.d.ts +1439 -0
  186. package/dist/project-schema/v3.32.0.js +7 -0
  187. package/dist/project-schema/v3.33.0.d.ts +1445 -0
  188. package/dist/project-schema/v3.33.0.js +7 -0
  189. package/dist/project-schema/v3.34.0.d.ts +1445 -0
  190. package/dist/project-schema/v3.34.0.js +7 -0
  191. package/dist/project-schema/v3.35.0.d.ts +1464 -0
  192. package/dist/project-schema/v3.35.0.js +7 -0
  193. package/dist/project-schema/v3.36.0.d.ts +1470 -0
  194. package/dist/project-schema/v3.36.0.js +7 -0
  195. package/dist/project-schema/v3.37.0.d.ts +1522 -0
  196. package/dist/project-schema/v3.37.0.js +7 -0
  197. package/dist/project-schema/v3.38.0.d.ts +1522 -0
  198. package/dist/project-schema/v3.38.0.js +7 -0
  199. package/dist/project-schema/v3.39.0.d.ts +1529 -0
  200. package/dist/project-schema/v3.39.0.js +7 -0
  201. package/dist/project-schema/v3.4.0.d.ts +624 -0
  202. package/dist/project-schema/v3.4.0.js +7 -0
  203. package/dist/project-schema/v3.40.0.d.ts +1530 -0
  204. package/dist/project-schema/v3.40.0.js +7 -0
  205. package/dist/project-schema/v3.41.0.d.ts +1530 -0
  206. package/dist/project-schema/v3.41.0.js +7 -0
  207. package/dist/project-schema/v3.42.0.d.ts +1534 -0
  208. package/dist/project-schema/v3.42.0.js +7 -0
  209. package/dist/project-schema/v3.43.0.d.ts +1536 -0
  210. package/dist/project-schema/v3.43.0.js +7 -0
  211. package/dist/project-schema/v3.44.0.d.ts +1621 -0
  212. package/dist/project-schema/v3.44.0.js +7 -0
  213. package/dist/project-schema/v3.45.0.d.ts +1650 -0
  214. package/dist/project-schema/v3.45.0.js +7 -0
  215. package/dist/project-schema/v3.46.0.d.ts +1703 -0
  216. package/dist/project-schema/v3.46.0.js +7 -0
  217. package/dist/project-schema/v3.47.0.d.ts +1736 -0
  218. package/dist/project-schema/v3.47.0.js +7 -0
  219. package/dist/project-schema/v3.48.0.d.ts +2208 -0
  220. package/dist/project-schema/v3.48.0.js +7 -0
  221. package/dist/project-schema/v3.49.0.d.ts +2217 -0
  222. package/dist/project-schema/v3.49.0.js +7 -0
  223. package/dist/project-schema/v3.5.0.d.ts +649 -0
  224. package/dist/project-schema/v3.5.0.js +7 -0
  225. package/dist/project-schema/v3.5.1.d.ts +649 -0
  226. package/dist/project-schema/v3.5.1.js +7 -0
  227. package/dist/project-schema/v3.50.0.d.ts +2269 -0
  228. package/dist/project-schema/v3.50.0.js +7 -0
  229. package/dist/project-schema/v3.51.0.d.ts +2269 -0
  230. package/dist/project-schema/v3.51.0.js +7 -0
  231. package/dist/project-schema/v3.52.0.d.ts +2269 -0
  232. package/dist/project-schema/v3.52.0.js +7 -0
  233. package/dist/project-schema/v3.53.0.d.ts +2350 -0
  234. package/dist/project-schema/v3.53.0.js +7 -0
  235. package/dist/project-schema/v3.54.0.d.ts +2369 -0
  236. package/dist/project-schema/v3.54.0.js +7 -0
  237. package/dist/project-schema/v3.55.0.d.ts +2369 -0
  238. package/dist/project-schema/v3.55.0.js +7 -0
  239. package/dist/project-schema/v3.56.0.d.ts +2405 -0
  240. package/dist/project-schema/v3.56.0.js +7 -0
  241. package/dist/project-schema/v3.57.0.d.ts +2601 -0
  242. package/dist/project-schema/v3.57.0.js +7 -0
  243. package/dist/project-schema/v3.58.0.d.ts +2601 -0
  244. package/dist/project-schema/v3.58.0.js +7 -0
  245. package/dist/project-schema/v3.59.0.d.ts +2650 -0
  246. package/dist/project-schema/v3.59.0.js +7 -0
  247. package/dist/project-schema/v3.6.0.d.ts +658 -0
  248. package/dist/project-schema/v3.6.0.js +7 -0
  249. package/dist/project-schema/v3.60.0.d.ts +2678 -0
  250. package/dist/project-schema/v3.60.0.js +7 -0
  251. package/dist/project-schema/v3.61.0.d.ts +2678 -0
  252. package/dist/project-schema/v3.61.0.js +7 -0
  253. package/dist/project-schema/v3.62.0.d.ts +2693 -0
  254. package/dist/project-schema/v3.62.0.js +7 -0
  255. package/dist/project-schema/v3.63.0.d.ts +2701 -0
  256. package/dist/project-schema/v3.63.0.js +7 -0
  257. package/dist/project-schema/v3.64.0.d.ts +2710 -0
  258. package/dist/project-schema/v3.64.0.js +7 -0
  259. package/dist/project-schema/v3.65.0.d.ts +2762 -0
  260. package/dist/project-schema/v3.65.0.js +7 -0
  261. package/dist/project-schema/v3.7.0.d.ts +961 -0
  262. package/dist/project-schema/v3.7.0.js +7 -0
  263. package/dist/project-schema/v3.8.0.d.ts +979 -0
  264. package/dist/project-schema/v3.8.0.js +7 -0
  265. package/dist/project-schema/v3.9.0.d.ts +1178 -0
  266. package/dist/project-schema/v3.9.0.js +7 -0
  267. package/dist/project-schema/v4.0.0.d.ts +1328 -0
  268. package/dist/project-schema/v4.0.0.js +7 -0
  269. package/dist/refs.d.ts +220 -0
  270. package/dist/refs.js +648 -0
  271. package/dist/relationships.d.ts +40 -0
  272. package/dist/relationships.js +302 -0
  273. package/dist/resolvers/ai/abort-agent-message-args.d.ts +16 -0
  274. package/dist/resolvers/ai/abort-agent-message-args.js +13 -0
  275. package/dist/resolvers/ai/abort-agent-message-response.d.ts +39 -0
  276. package/dist/resolvers/ai/abort-agent-message-response.js +19 -0
  277. package/dist/resolvers/ai/agent-attachment.d.ts +27 -0
  278. package/dist/resolvers/ai/agent-attachment.js +22 -0
  279. package/dist/resolvers/ai/agent-chat-args.d.ts +62 -0
  280. package/dist/resolvers/ai/agent-chat-args.js +30 -0
  281. package/dist/resolvers/ai/agent-chat-payload.d.ts +35 -0
  282. package/dist/resolvers/ai/agent-chat-payload.js +26 -0
  283. package/dist/resolvers/ai/agent-chat-response.d.ts +366 -0
  284. package/dist/resolvers/ai/agent-chat-response.js +21 -0
  285. package/dist/resolvers/ai/agent-generate-args.d.ts +62 -0
  286. package/dist/resolvers/ai/agent-generate-args.js +30 -0
  287. package/dist/resolvers/ai/agent-message-input.d.ts +73 -0
  288. package/dist/resolvers/ai/agent-message-input.js +39 -0
  289. package/dist/resolvers/ai/agent-message-output.d.ts +169 -0
  290. package/dist/resolvers/ai/agent-message-output.js +77 -0
  291. package/dist/resolvers/ai/agent-message-payload.d.ts +849 -0
  292. package/dist/resolvers/ai/agent-message-payload.js +167 -0
  293. package/dist/resolvers/ai/agent-run-mode.d.ts +8 -0
  294. package/dist/resolvers/ai/agent-run-mode.js +9 -0
  295. package/dist/resolvers/ai/agent-session-payload.d.ts +840 -0
  296. package/dist/resolvers/ai/agent-session-payload.js +218 -0
  297. package/dist/resolvers/ai/ai-usage-item.d.ts +70 -0
  298. package/dist/resolvers/ai/ai-usage-item.js +70 -0
  299. package/dist/resolvers/ai/create-agent-session-response.d.ts +276 -0
  300. package/dist/resolvers/ai/create-agent-session-response.js +9 -0
  301. package/dist/resolvers/ai/embedding-search.d.ts +54 -0
  302. package/dist/resolvers/ai/embedding-search.js +46 -0
  303. package/dist/resolvers/ai/get-agent-message-args.d.ts +16 -0
  304. package/dist/resolvers/ai/get-agent-message-args.js +13 -0
  305. package/dist/resolvers/ai/get-agent-message-response.d.ts +1253 -0
  306. package/dist/resolvers/ai/get-agent-message-response.js +79 -0
  307. package/dist/resolvers/ai/inspect-agent-args.d.ts +16 -0
  308. package/dist/resolvers/ai/inspect-agent-args.js +13 -0
  309. package/dist/resolvers/ai/inspect-agent-response.d.ts +631 -0
  310. package/dist/resolvers/ai/inspect-agent-response.js +48 -0
  311. package/dist/resolvers/ai/send-agent-feedback-args.d.ts +52 -0
  312. package/dist/resolvers/ai/send-agent-feedback-args.js +16 -0
  313. package/dist/resolvers/ai/send-agent-message-args.d.ts +48 -0
  314. package/dist/resolvers/ai/send-agent-message-args.js +36 -0
  315. package/dist/resolvers/ai/send-agent-message-response.d.ts +432 -0
  316. package/dist/resolvers/ai/send-agent-message-response.js +51 -0
  317. package/dist/resolvers/ai/types.d.ts +8 -0
  318. package/dist/resolvers/ai/types.js +1 -0
  319. package/dist/resolvers/takeshape/assets/asset-image-meta.d.ts +79 -0
  320. package/dist/resolvers/takeshape/assets/asset-image-meta.js +98 -0
  321. package/dist/resolvers/takeshape/assets/asset-image-params.d.ts +901 -0
  322. package/dist/resolvers/takeshape/assets/asset-image-params.js +726 -0
  323. package/dist/resolvers/takeshape/assets/asset-image.d.ts +17 -0
  324. package/dist/resolvers/takeshape/assets/asset-image.js +15 -0
  325. package/dist/resolvers/takeshape/assets/asset.d.ts +125 -0
  326. package/dist/resolvers/takeshape/assets/asset.js +107 -0
  327. package/dist/resolvers/takeshape/assets/constants.d.ts +11 -0
  328. package/dist/resolvers/takeshape/assets/constants.js +11 -0
  329. package/dist/resolvers/takeshape/builtins/constants.d.ts +1 -0
  330. package/dist/resolvers/takeshape/builtins/constants.js +1 -0
  331. package/dist/runtime-schema.d.ts +6 -0
  332. package/dist/runtime-schema.js +85 -0
  333. package/dist/scalars.d.ts +2 -0
  334. package/dist/scalars.js +4 -0
  335. package/dist/schema-transform.d.ts +19 -0
  336. package/dist/schema-transform.js +74 -0
  337. package/dist/schema-util.d.ts +266 -0
  338. package/dist/schema-util.js +1127 -0
  339. package/dist/schemas/auth-schemas.json +400 -0
  340. package/dist/schemas/index.d.ts +4 -0
  341. package/dist/schemas/index.js +182 -0
  342. package/dist/schemas/project-schema/experimental-2025-07.json +1297 -0
  343. package/dist/schemas/project-schema/latest.d.ts +245 -0
  344. package/dist/schemas/project-schema/latest.js +25 -0
  345. package/dist/schemas/project-schema/latest.json +5109 -0
  346. package/dist/schemas/project-schema/meta-schema-v1.0.0.json +193 -0
  347. package/dist/schemas/project-schema/meta-schema-v3.0.0.json +608 -0
  348. package/dist/schemas/project-schema/meta-schema-v3.1.0.json +608 -0
  349. package/dist/schemas/project-schema/meta-schema-v3.2.0.json +612 -0
  350. package/dist/schemas/project-schema/meta-schema-v3.3.0.json +612 -0
  351. package/dist/schemas/project-schema/meta-schema-v3.4.0.json +637 -0
  352. package/dist/schemas/project-schema/meta-schema-v3.5.0.json +626 -0
  353. package/dist/schemas/project-schema/meta-schema-v3.5.1.json +626 -0
  354. package/dist/schemas/project-schema/meta-schema-v3.6.0.json +629 -0
  355. package/dist/schemas/project-schema/meta-schema-v3.7.0.json +1137 -0
  356. package/dist/schemas/project-schema/meta-schema-v3.8.0.json +1137 -0
  357. package/dist/schemas/project-schema/meta-schema-v3.9.0.json +1477 -0
  358. package/dist/schemas/project-schema/v1.0.0.json +321 -0
  359. package/dist/schemas/project-schema/v3.0.0.json +414 -0
  360. package/dist/schemas/project-schema/v3.1.0.json +572 -0
  361. package/dist/schemas/project-schema/v3.10.0.json +2097 -0
  362. package/dist/schemas/project-schema/v3.11.0.json +2141 -0
  363. package/dist/schemas/project-schema/v3.12.0.json +2144 -0
  364. package/dist/schemas/project-schema/v3.12.1.json +2282 -0
  365. package/dist/schemas/project-schema/v3.12.2.json +2304 -0
  366. package/dist/schemas/project-schema/v3.12.3.json +2357 -0
  367. package/dist/schemas/project-schema/v3.13.0.json +2377 -0
  368. package/dist/schemas/project-schema/v3.14.0.json +2385 -0
  369. package/dist/schemas/project-schema/v3.15.0.json +2365 -0
  370. package/dist/schemas/project-schema/v3.16.0.json +2373 -0
  371. package/dist/schemas/project-schema/v3.17.0.json +2378 -0
  372. package/dist/schemas/project-schema/v3.17.1.json +2380 -0
  373. package/dist/schemas/project-schema/v3.18.0.json +2356 -0
  374. package/dist/schemas/project-schema/v3.18.1.json +2357 -0
  375. package/dist/schemas/project-schema/v3.18.2.json +2357 -0
  376. package/dist/schemas/project-schema/v3.19.0.json +2369 -0
  377. package/dist/schemas/project-schema/v3.2.0.json +580 -0
  378. package/dist/schemas/project-schema/v3.20.0.json +2369 -0
  379. package/dist/schemas/project-schema/v3.21.0.json +2376 -0
  380. package/dist/schemas/project-schema/v3.22.0.json +2381 -0
  381. package/dist/schemas/project-schema/v3.23.0.json +2456 -0
  382. package/dist/schemas/project-schema/v3.24.0.json +2556 -0
  383. package/dist/schemas/project-schema/v3.25.0.json +2552 -0
  384. package/dist/schemas/project-schema/v3.26.0.json +2599 -0
  385. package/dist/schemas/project-schema/v3.27.0.json +2611 -0
  386. package/dist/schemas/project-schema/v3.28.0.json +2656 -0
  387. package/dist/schemas/project-schema/v3.29.0.json +2670 -0
  388. package/dist/schemas/project-schema/v3.3.0.json +581 -0
  389. package/dist/schemas/project-schema/v3.30.0.json +2656 -0
  390. package/dist/schemas/project-schema/v3.31.0.json +2714 -0
  391. package/dist/schemas/project-schema/v3.32.0.json +2708 -0
  392. package/dist/schemas/project-schema/v3.33.0.json +2715 -0
  393. package/dist/schemas/project-schema/v3.34.0.json +2715 -0
  394. package/dist/schemas/project-schema/v3.35.0.json +2748 -0
  395. package/dist/schemas/project-schema/v3.36.0.json +2756 -0
  396. package/dist/schemas/project-schema/v3.37.0.json +2821 -0
  397. package/dist/schemas/project-schema/v3.38.0.json +2819 -0
  398. package/dist/schemas/project-schema/v3.39.0.json +2827 -0
  399. package/dist/schemas/project-schema/v3.4.0.json +571 -0
  400. package/dist/schemas/project-schema/v3.40.0.json +2830 -0
  401. package/dist/schemas/project-schema/v3.41.0.json +2830 -0
  402. package/dist/schemas/project-schema/v3.42.0.json +2835 -0
  403. package/dist/schemas/project-schema/v3.43.0.json +2841 -0
  404. package/dist/schemas/project-schema/v3.44.0.json +3013 -0
  405. package/dist/schemas/project-schema/v3.45.0.json +3064 -0
  406. package/dist/schemas/project-schema/v3.46.0.json +3136 -0
  407. package/dist/schemas/project-schema/v3.47.0.json +3189 -0
  408. package/dist/schemas/project-schema/v3.48.0.json +3196 -0
  409. package/dist/schemas/project-schema/v3.49.0.json +3239 -0
  410. package/dist/schemas/project-schema/v3.5.0.json +571 -0
  411. package/dist/schemas/project-schema/v3.5.1.json +571 -0
  412. package/dist/schemas/project-schema/v3.50.0.json +3320 -0
  413. package/dist/schemas/project-schema/v3.51.0.json +3326 -0
  414. package/dist/schemas/project-schema/v3.52.0.json +3326 -0
  415. package/dist/schemas/project-schema/v3.53.0.json +3476 -0
  416. package/dist/schemas/project-schema/v3.54.0.json +3512 -0
  417. package/dist/schemas/project-schema/v3.55.0.json +3515 -0
  418. package/dist/schemas/project-schema/v3.56.0.json +3530 -0
  419. package/dist/schemas/project-schema/v3.57.0.json +4815 -0
  420. package/dist/schemas/project-schema/v3.58.0.json +4815 -0
  421. package/dist/schemas/project-schema/v3.59.0.json +4912 -0
  422. package/dist/schemas/project-schema/v3.6.0.json +587 -0
  423. package/dist/schemas/project-schema/v3.60.0.json +4974 -0
  424. package/dist/schemas/project-schema/v3.61.0.json +4974 -0
  425. package/dist/schemas/project-schema/v3.62.0.json +5007 -0
  426. package/dist/schemas/project-schema/v3.63.0.json +5020 -0
  427. package/dist/schemas/project-schema/v3.64.0.json +5032 -0
  428. package/dist/schemas/project-schema/v3.65.0.json +5109 -0
  429. package/dist/schemas/project-schema/v3.7.0.json +587 -0
  430. package/dist/schemas/project-schema/v3.8.0.json +604 -0
  431. package/dist/schemas/project-schema/v3.9.0.json +604 -0
  432. package/dist/schemas/project-schema/v4.0.0.json +2316 -0
  433. package/dist/schemas/project-schema.json +232 -0
  434. package/dist/service-dependencies.d.ts +13 -0
  435. package/dist/service-dependencies.js +165 -0
  436. package/dist/services/services.d.ts +31 -0
  437. package/dist/services/services.js +145 -0
  438. package/dist/services/types.d.ts +11 -0
  439. package/dist/services/types.js +1 -0
  440. package/dist/services/util.d.ts +16 -0
  441. package/dist/services/util.js +36 -0
  442. package/dist/shape-paths.d.ts +7 -0
  443. package/dist/shape-paths.js +40 -0
  444. package/dist/taxonomies.d.ts +15 -0
  445. package/dist/taxonomies.js +24 -0
  446. package/dist/template-shapes/index.d.ts +7 -0
  447. package/dist/template-shapes/index.js +33 -0
  448. package/dist/template-shapes/names.d.ts +10 -0
  449. package/dist/template-shapes/names.js +21 -0
  450. package/dist/template-shapes/templates.d.ts +32 -0
  451. package/dist/template-shapes/templates.js +316 -0
  452. package/dist/template-shapes/types.d.ts +15 -0
  453. package/dist/template-shapes/types.js +7 -0
  454. package/dist/template-shapes/where.d.ts +37 -0
  455. package/dist/template-shapes/where.js +415 -0
  456. package/dist/types/index.d.ts +3 -0
  457. package/dist/types/index.js +2 -0
  458. package/dist/types/transforms.d.ts +15 -0
  459. package/dist/types/transforms.js +1 -0
  460. package/dist/types/types.d.ts +206 -0
  461. package/dist/types/types.js +10 -0
  462. package/dist/types/utils.d.ts +112 -0
  463. package/dist/types/utils.js +269 -0
  464. package/dist/unions.d.ts +14 -0
  465. package/dist/unions.js +77 -0
  466. package/dist/util/agent-utils.d.ts +2 -0
  467. package/dist/util/agent-utils.js +7 -0
  468. package/dist/util/api-indexing.d.ts +9 -0
  469. package/dist/util/api-indexing.js +57 -0
  470. package/dist/util/coerce-value.d.ts +9 -0
  471. package/dist/util/coerce-value.js +32 -0
  472. package/dist/util/detect-cycles.d.ts +7 -0
  473. package/dist/util/detect-cycles.js +45 -0
  474. package/dist/util/expressions.d.ts +34 -0
  475. package/dist/util/expressions.js +350 -0
  476. package/dist/util/find-shape-at-path.d.ts +21 -0
  477. package/dist/util/find-shape-at-path.js +53 -0
  478. package/dist/util/form-config.d.ts +11 -0
  479. package/dist/util/form-config.js +62 -0
  480. package/dist/util/get-conflicting-properties.d.ts +6 -0
  481. package/dist/util/get-conflicting-properties.js +55 -0
  482. package/dist/util/get-return-shape.d.ts +4 -0
  483. package/dist/util/get-return-shape.js +30 -0
  484. package/dist/util/graphql-string.d.ts +6 -0
  485. package/dist/util/graphql-string.js +75 -0
  486. package/dist/util/has-arg.d.ts +6 -0
  487. package/dist/util/has-arg.js +25 -0
  488. package/dist/util/is-asset-property.d.ts +3 -0
  489. package/dist/util/is-asset-property.js +11 -0
  490. package/dist/util/merge.d.ts +17 -0
  491. package/dist/util/merge.js +278 -0
  492. package/dist/util/patch-schema.d.ts +13 -0
  493. package/dist/util/patch-schema.js +89 -0
  494. package/dist/util/query-field-path.d.ts +9 -0
  495. package/dist/util/query-field-path.js +23 -0
  496. package/dist/util/shapes.d.ts +5 -0
  497. package/dist/util/shapes.js +22 -0
  498. package/dist/util/tools.d.ts +10 -0
  499. package/dist/util/tools.js +39 -0
  500. package/dist/validate/ai.d.ts +6 -0
  501. package/dist/validate/ai.js +221 -0
  502. package/dist/validate/errors.d.ts +3 -0
  503. package/dist/validate/errors.js +20 -0
  504. package/dist/validate/types.d.ts +43 -0
  505. package/dist/validate/types.js +1 -0
  506. package/dist/validate/util.d.ts +9 -0
  507. package/dist/validate/util.js +62 -0
  508. package/dist/validate/validate.d.ts +41 -0
  509. package/dist/validate/validate.js +1042 -0
  510. package/dist/versions.d.ts +4 -0
  511. package/dist/versions.js +4 -0
  512. package/dist/workflows.d.ts +14 -0
  513. package/dist/workflows.js +66 -0
  514. package/package.json +6 -6
@@ -0,0 +1,34 @@
1
+ import jsep, { type Expression } from 'jsep';
2
+ export interface ObjectExpression extends Expression {
3
+ type: 'ObjectExpression';
4
+ properties: PropertyExpression[];
5
+ }
6
+ export interface PropertyExpression extends Expression {
7
+ type: 'Property';
8
+ computed: boolean;
9
+ key: AnyExpression;
10
+ value: AnyExpression;
11
+ shorthand: boolean;
12
+ }
13
+ type AnyExpression = jsep.ArrayExpression | jsep.BinaryExpression | jsep.MemberExpression | jsep.CallExpression | jsep.ConditionalExpression | jsep.Identifier | jsep.Literal | jsep.ThisExpression | jsep.UnaryExpression | ObjectExpression | PropertyExpression;
14
+ export declare const METHODS_NOT_SUPPORTED = "Methods are not supported in expressions";
15
+ export declare const THIS_NOT_SUPPORTED = "This is not supported in expressions";
16
+ export declare function parseExpression(expression: string): AnyExpression;
17
+ export type ExpressionContext = {
18
+ currentStateId: string;
19
+ previousStateId?: string;
20
+ currentStateOutput?: unknown;
21
+ sessionMemory: Record<string, unknown>;
22
+ claims: Record<string, unknown>;
23
+ args: Record<string, unknown>;
24
+ vars: Record<string, unknown>;
25
+ };
26
+ export declare function validateExpression(expression: string): {
27
+ valid: true;
28
+ } | {
29
+ valid: false;
30
+ errors: string[];
31
+ };
32
+ export declare function compileExpression(expression: string): (context: Record<string, unknown>) => unknown;
33
+ export declare function expressionToString(_node: jsep.Expression | null, parent?: AnyExpression): string;
34
+ export {};
@@ -0,0 +1,350 @@
1
+ import object from '@jsep-plugin/object';
2
+ import jsep from 'jsep';
3
+ jsep.plugins.register(object);
4
+ // Default operator precedence from https://github.com/EricSmekens/jsep/blob/master/src/jsep.js#L55
5
+ const DEFAULT_PRECEDENCE = {
6
+ '||': 1,
7
+ '&&': 2,
8
+ '|': 3,
9
+ '^': 4,
10
+ '&': 5,
11
+ '==': 6,
12
+ '!=': 6,
13
+ '===': 6,
14
+ '!==': 6,
15
+ '<': 7,
16
+ '>': 7,
17
+ '<=': 7,
18
+ '>=': 7,
19
+ '<<': 8,
20
+ '>>': 8,
21
+ '>>>': 8,
22
+ '+': 9,
23
+ '-': 9,
24
+ '*': 10,
25
+ '/': 10,
26
+ '%': 10
27
+ };
28
+ /**
29
+ * Evaluation code from JSEP project, under MIT License.
30
+ * Copyright (c) 2013 Stephen Oney, http://jsep.from.so/
31
+ */
32
+ const binops = {
33
+ // '|'(a, b) {
34
+ // return a | b;
35
+ // },
36
+ // '^'(a, b) {
37
+ // return a ^ b;
38
+ // },
39
+ // '&'(a, b) {
40
+ // return a & b;
41
+ // },
42
+ '=='(a, b) {
43
+ // biome-ignore lint/suspicious/noDoubleEquals: ignore
44
+ return a == b;
45
+ },
46
+ '!='(a, b) {
47
+ // biome-ignore lint/suspicious/noDoubleEquals: ignore
48
+ return a != b;
49
+ },
50
+ '==='(a, b) {
51
+ return a === b;
52
+ },
53
+ '!=='(a, b) {
54
+ return a !== b;
55
+ },
56
+ '<'(a, b) {
57
+ return a < b;
58
+ },
59
+ '>'(a, b) {
60
+ return a > b;
61
+ },
62
+ '<='(a, b) {
63
+ return a <= b;
64
+ },
65
+ '>='(a, b) {
66
+ return a >= b;
67
+ },
68
+ // '<<'(a, b) {
69
+ // return a << b;
70
+ // },
71
+ // '>>'(a, b) {
72
+ // return a >> b;
73
+ // },
74
+ // '>>>'(a, b) {
75
+ // return a >>> b;
76
+ // },
77
+ '+'(a, b) {
78
+ return a + b;
79
+ },
80
+ '-'(a, b) {
81
+ return a - b;
82
+ },
83
+ '*'(a, b) {
84
+ return a * b;
85
+ },
86
+ '/'(a, b) {
87
+ return a / b;
88
+ },
89
+ '%'(a, b) {
90
+ return a % b;
91
+ }
92
+ };
93
+ const unops = {
94
+ '-'(a) {
95
+ return -a;
96
+ },
97
+ '+'(a) {
98
+ return Number(a);
99
+ },
100
+ // '~'(a) {
101
+ // return ~a;
102
+ // },
103
+ '!'(a) {
104
+ return !a;
105
+ }
106
+ };
107
+ function evaluateArray(list, context) {
108
+ return list.map((v) => (v ? evaluate(v, context) : undefined));
109
+ }
110
+ function evaluateObject(properties, context) {
111
+ const obj = {};
112
+ for (const node of properties) {
113
+ const key = !node.computed && node.key.type === 'Identifier' ? node.key.name : evaluate(node.key, context);
114
+ obj[key] = evaluate(node.value, context);
115
+ }
116
+ return obj;
117
+ }
118
+ function isObject(x) {
119
+ return Boolean(x) && typeof x === 'object';
120
+ }
121
+ export const METHODS_NOT_SUPPORTED = 'Methods are not supported in expressions';
122
+ export const THIS_NOT_SUPPORTED = 'This is not supported in expressions';
123
+ function evaluateMember(node, context) {
124
+ const object = evaluate(node.object, context);
125
+ let key;
126
+ if (node.computed) {
127
+ key = evaluate(node.property, context);
128
+ }
129
+ else {
130
+ key = node.property.name;
131
+ }
132
+ if (typeof key === 'string' && /^__proto__|prototype|constructor$/.test(key)) {
133
+ throw Error(`Access to member "${key}" disallowed.`);
134
+ }
135
+ if (isObject(object) && Object.hasOwn(object, key)) {
136
+ return [object, object[key]];
137
+ }
138
+ }
139
+ function evaluate(_node, context) {
140
+ const node = _node;
141
+ switch (node.type) {
142
+ case 'ArrayExpression':
143
+ return evaluateArray(node.elements, context);
144
+ case 'ObjectExpression':
145
+ return evaluateObject(node.properties, context);
146
+ case 'CallExpression': {
147
+ if (node.callee.type === 'MemberExpression') {
148
+ throw Error(METHODS_NOT_SUPPORTED);
149
+ }
150
+ const fn = evaluate(node.callee, context);
151
+ if (typeof fn !== 'function') {
152
+ return undefined;
153
+ }
154
+ return fn.apply(null, evaluateArray(node.arguments, context));
155
+ }
156
+ case 'ConditionalExpression':
157
+ return evaluate(node.test, context) ? evaluate(node.consequent, context) : evaluate(node.alternate, context);
158
+ case 'Identifier':
159
+ return context[node.name];
160
+ case 'Literal':
161
+ return node.value;
162
+ case 'BinaryExpression': {
163
+ if (node.operator === '||') {
164
+ return evaluate(node.left, context) || evaluate(node.right, context);
165
+ }
166
+ if (node.operator === '&&') {
167
+ return evaluate(node.left, context) && evaluate(node.right, context);
168
+ }
169
+ const op = binops[node.operator];
170
+ if (!op) {
171
+ throw new Error(`Unsupported operator ${node.operator}`);
172
+ }
173
+ return op(evaluate(node.left, context), evaluate(node.right, context));
174
+ }
175
+ case 'UnaryExpression': {
176
+ const op = unops[node.operator];
177
+ if (!op) {
178
+ throw new Error(`Unsupported operator ${node.operator}`);
179
+ }
180
+ return op(evaluate(node.argument, context));
181
+ }
182
+ case 'MemberExpression':
183
+ return evaluateMember(node, context)?.[1];
184
+ case 'ThisExpression':
185
+ return context;
186
+ default:
187
+ return undefined;
188
+ }
189
+ }
190
+ export function parseExpression(expression) {
191
+ return jsep(expression);
192
+ }
193
+ function validateAST(options, rootNode) {
194
+ const validate = (_node, parent, parentKey) => {
195
+ const node = _node;
196
+ switch (node.type) {
197
+ case 'ArrayExpression':
198
+ return node.elements.flatMap((v) => (v ? validate(v, node, 'elements') : []));
199
+ case 'ObjectExpression':
200
+ return node.properties.flatMap((v) => validate(v, node, 'properties'));
201
+ case 'Property': {
202
+ {
203
+ const keyErrors = !node.computed && node.key.type === 'Identifier' ? undefined : validate(node.key, node, 'key');
204
+ const valueErrors = validate(node.value, node, 'value');
205
+ return keyErrors ? [...keyErrors, ...valueErrors] : valueErrors;
206
+ }
207
+ }
208
+ case 'CallExpression': {
209
+ if (node.callee.type === 'MemberExpression') {
210
+ return [{ message: METHODS_NOT_SUPPORTED }];
211
+ }
212
+ return [
213
+ ...validate(node.callee, node, 'callee'),
214
+ ...node.arguments.flatMap((v) => (v ? validate(v, node, 'arguments') : []))
215
+ ];
216
+ }
217
+ case 'ConditionalExpression':
218
+ return [
219
+ ...validate(node.test, node, 'test'),
220
+ ...validate(node.consequent, node, 'consequent'),
221
+ ...validate(node.alternate, node, 'alternate')
222
+ ];
223
+ case 'Identifier': {
224
+ const errors = [];
225
+ if (parent?.type === 'CallExpression' && parentKey === 'callee' && options.allowedFunctions) {
226
+ if (!options.allowedFunctions.includes(node.name)) {
227
+ errors.push({ message: `Unknown function "${node.name}"` });
228
+ }
229
+ }
230
+ else {
231
+ if (parent?.type === 'MemberExpression' && !parent.computed && parentKey === 'property') {
232
+ return errors;
233
+ }
234
+ if (options.allowedVars && !options.allowedVars.includes(node.name)) {
235
+ errors.push({ message: `Unknown variable "${node.name}"` });
236
+ }
237
+ }
238
+ return errors;
239
+ }
240
+ case 'Literal':
241
+ return [];
242
+ case 'BinaryExpression': {
243
+ const op = binops[node.operator];
244
+ if (!op) {
245
+ throw new Error(`Unsupported operator ${node.operator}`);
246
+ }
247
+ return [...validate(node.left, node, 'left'), ...validate(node.right, node, 'right')];
248
+ }
249
+ case 'UnaryExpression': {
250
+ const op = unops[node.operator];
251
+ if (!op) {
252
+ return [{ message: `Unsupported operator ${node.operator}` }];
253
+ }
254
+ return validate(node.argument, node, 'argument');
255
+ }
256
+ case 'MemberExpression':
257
+ return [
258
+ ...validate(node.object, node, 'object'),
259
+ ...(node.computed ? validate(node.property, node, 'property') : [])
260
+ ];
261
+ case 'ThisExpression':
262
+ return [{ message: THIS_NOT_SUPPORTED }];
263
+ }
264
+ };
265
+ return validate(rootNode, undefined, undefined);
266
+ }
267
+ const contextKeys = [
268
+ 'currentStateId',
269
+ 'previousStateId',
270
+ 'currentStateOutput',
271
+ 'sessionMemory',
272
+ 'claims',
273
+ 'args',
274
+ 'vars'
275
+ ];
276
+ export function validateExpression(expression) {
277
+ try {
278
+ const ast = parseExpression(expression);
279
+ const errors = validateAST({
280
+ allowedVars: contextKeys,
281
+ allowedFunctions: ['contains']
282
+ }, ast);
283
+ if (errors.length) {
284
+ return {
285
+ valid: false,
286
+ errors: errors.map((e) => e.message)
287
+ };
288
+ }
289
+ return { valid: true };
290
+ }
291
+ catch (e) {
292
+ return { valid: false, errors: [e.message] };
293
+ }
294
+ }
295
+ export function compileExpression(expression) {
296
+ const ast = parseExpression(expression);
297
+ return (context) => evaluate(ast, context);
298
+ }
299
+ export function expressionToString(_node, parent) {
300
+ if (!_node) {
301
+ return '';
302
+ }
303
+ const node = _node;
304
+ if (node.type === 'BinaryExpression') {
305
+ const wrap = parent?.type === 'BinaryExpression' && DEFAULT_PRECEDENCE[parent.operator] > DEFAULT_PRECEDENCE[node.operator];
306
+ const str = `${expressionToString(node.left, node)} ${node.operator} ${expressionToString(node.right, node)}`;
307
+ return wrap ? `(${str})` : str;
308
+ }
309
+ if (node.type === 'CallExpression') {
310
+ const args = node.arguments.map((arg) => expressionToString(arg, node));
311
+ return `${expressionToString(node.callee, node)}(${args.join(', ')})`;
312
+ }
313
+ if (node.type === 'UnaryExpression') {
314
+ return node.operator + expressionToString(node.argument, node);
315
+ }
316
+ if (node.type === 'MemberExpression') {
317
+ if (node.computed) {
318
+ return `${expressionToString(node.object, node)}[${expressionToString(node.property, node)}]`;
319
+ }
320
+ return `${expressionToString(node.object, node)}.${expressionToString(node.property, node)}`;
321
+ }
322
+ if (node.type === 'ArrayExpression') {
323
+ const arr = node.elements.map((element) => expressionToString(element, node)).join(',');
324
+ return `[${arr}]`;
325
+ }
326
+ if (node.type === 'Property') {
327
+ const keyStr = expressionToString(node.key, node);
328
+ if (node.shorthand) {
329
+ return keyStr;
330
+ }
331
+ return `${node.computed ? `[${keyStr}]` : keyStr}: ${expressionToString(node.value, node)}`;
332
+ }
333
+ if (node.type === 'ObjectExpression') {
334
+ const props = node.properties.map((element) => expressionToString(element, node)).join(',');
335
+ return `{ ${props} }`;
336
+ }
337
+ if (node.type === 'Literal') {
338
+ return node.raw;
339
+ }
340
+ if (node.type === 'Identifier') {
341
+ return node.name;
342
+ }
343
+ if (node.type === 'ConditionalExpression') {
344
+ return `${expressionToString(node.test, node)} ? ${expressionToString(node.consequent, node)} : ${expressionToString(node.alternate, node)}`;
345
+ }
346
+ if (node.type === 'ThisExpression') {
347
+ return 'this';
348
+ }
349
+ return '';
350
+ }
@@ -0,0 +1,21 @@
1
+ import type { ProjectSchemaJSON, PropertySchema, ShapeJSON } from '../project-schema/index.ts';
2
+ /**
3
+ *
4
+ * @param projectSchema
5
+ * @param schema
6
+ * @param queryPath
7
+ *
8
+ * @example
9
+ * findShapeAtPath(projectSchema, projectSchema.shapes.Shopify_ProductConnection.shape, ['edges', 'node']) // finds {'@ref': Shopify_Product}
10
+ */
11
+ export declare function findSchemaAtPath(projectSchema: Pick<ProjectSchemaJSON, 'services' | 'shapes'>, schema: PropertySchema, queryPath: string[]): PropertySchema | undefined;
12
+ /**
13
+ *
14
+ * @param projectSchema
15
+ * @param propSchema
16
+ * @param queryPath
17
+ *
18
+ * @example
19
+ * findShapeAtPath(projectSchema, projectSchema.shapes.Shopify_ProductConnection.shape, ['edges', 'node']) // finds Shopify_Product
20
+ */
21
+ export declare function findShapeAtPath(projectSchema: Pick<ProjectSchemaJSON, 'services' | 'shapes'>, propSchema: PropertySchema, queryPath: string[]): ShapeJSON | undefined;
@@ -0,0 +1,53 @@
1
+ import { getRef, refItemToShape, refItemToShapeSchema } from "../refs.js";
2
+ import { isArraySchema, isObjectSchema, isRefSchema } from "../types/index.js";
3
+ /**
4
+ *
5
+ * @param projectSchema
6
+ * @param schema
7
+ * @param queryPath
8
+ *
9
+ * @example
10
+ * findShapeAtPath(projectSchema, projectSchema.shapes.Shopify_ProductConnection.shape, ['edges', 'node']) // finds {'@ref': Shopify_Product}
11
+ */
12
+ export function findSchemaAtPath(projectSchema, schema, queryPath) {
13
+ if (queryPath.length === 0) {
14
+ return schema;
15
+ }
16
+ const [prop, ...rest] = queryPath;
17
+ if (isRefSchema(schema)) {
18
+ const ref = getRef(projectSchema, schema);
19
+ if (ref) {
20
+ const shapeSchema = refItemToShapeSchema(projectSchema, ref);
21
+ if (shapeSchema) {
22
+ return findSchemaAtPath(projectSchema, shapeSchema, queryPath);
23
+ }
24
+ }
25
+ return undefined;
26
+ }
27
+ if (isArraySchema(schema)) {
28
+ return findSchemaAtPath(projectSchema, schema.items, queryPath);
29
+ }
30
+ if (isObjectSchema(schema)) {
31
+ const propSchema = schema.properties[prop];
32
+ if (propSchema) {
33
+ return findSchemaAtPath(projectSchema, propSchema, rest);
34
+ }
35
+ }
36
+ return undefined;
37
+ }
38
+ /**
39
+ *
40
+ * @param projectSchema
41
+ * @param propSchema
42
+ * @param queryPath
43
+ *
44
+ * @example
45
+ * findShapeAtPath(projectSchema, projectSchema.shapes.Shopify_ProductConnection.shape, ['edges', 'node']) // finds Shopify_Product
46
+ */
47
+ export function findShapeAtPath(projectSchema, propSchema, queryPath) {
48
+ const result = findSchemaAtPath(projectSchema, propSchema, queryPath);
49
+ if (result) {
50
+ const refItem = getRef(projectSchema, result.items ?? result);
51
+ return refItem && refItemToShape(projectSchema, refItem);
52
+ }
53
+ }
@@ -0,0 +1,11 @@
1
+ import { type Maybe } from '@takeshape/util';
2
+ import type { FormConfig, FormMap, ProjectSchemaJSON } from '../project-schema/index.ts';
3
+ /**
4
+ * If there any non-normal (nested) forms in the schema, create forms for referenced shapes.
5
+ * The original forms are left intact.
6
+ */
7
+ export declare function normalizeForms(projectSchema: ProjectSchemaJSON): FormMap;
8
+ /**
9
+ * Find the form config for a given shape name and the form key.
10
+ */
11
+ export declare function findShapeFormConfig(projectSchema: ProjectSchemaJSON, shapeName: string, formName: string): Maybe<FormConfig>;
@@ -0,0 +1,62 @@
1
+ import { deepClone } from '@takeshape/util';
2
+ import { getRefOrItemsRef, refItemToNamespacedShapeName } from "../refs.js";
3
+ import { createSchemaPropertyAccessor } from "../schema-util.js";
4
+ /**
5
+ * If there any non-normal (nested) forms in the schema, create forms for referenced shapes.
6
+ * The original forms are left intact.
7
+ */
8
+ export function normalizeForms(projectSchema) {
9
+ const normalizedForms = {};
10
+ const { forms = {} } = projectSchema;
11
+ const storeSourceForm = (shapeName, formConfig, propName) => {
12
+ // Leave original forms intact for backwards compatibility
13
+ if (!forms[shapeName]) {
14
+ normalizedForms[shapeName] ||= { default: deepClone(formConfig) };
15
+ // Remove prop now that it has been normalized
16
+ delete normalizedForms[shapeName].default.properties[propName];
17
+ }
18
+ };
19
+ const normalizeNested = (shapeName, formConfig) => {
20
+ const shape = projectSchema.shapes[shapeName];
21
+ if (!shape || !formConfig.properties) {
22
+ return;
23
+ }
24
+ const propertyAccessor = createSchemaPropertyAccessor(projectSchema, shape);
25
+ for (const propName of Object.keys(formConfig.properties)) {
26
+ const propConfig = formConfig.properties[propName];
27
+ const propSchema = propertyAccessor.getValue(propName);
28
+ if (propSchema) {
29
+ const ref = getRefOrItemsRef(projectSchema, propSchema);
30
+ if (ref && propConfig.properties) {
31
+ const nestedShapeName = refItemToNamespacedShapeName(projectSchema, ref);
32
+ normalizedForms[nestedShapeName] = { default: deepClone(propConfig) };
33
+ storeSourceForm(shapeName, formConfig, propName);
34
+ normalizeNested(nestedShapeName, propConfig);
35
+ }
36
+ }
37
+ }
38
+ };
39
+ if (forms) {
40
+ for (const shapeName of Object.keys(forms)) {
41
+ normalizeNested(shapeName, forms[shapeName].default);
42
+ // copy forms with no changes
43
+ normalizedForms[shapeName] ||= forms[shapeName];
44
+ }
45
+ }
46
+ return normalizedForms;
47
+ }
48
+ const cache = new WeakMap();
49
+ /**
50
+ * Find the form config for a given shape name and the form key.
51
+ */
52
+ export function findShapeFormConfig(projectSchema, shapeName, formName) {
53
+ if (!projectSchema.forms) {
54
+ return;
55
+ }
56
+ let normalizedForms = cache.get(projectSchema);
57
+ if (!normalizedForms) {
58
+ normalizedForms = normalizeForms(projectSchema);
59
+ cache.set(projectSchema, normalizedForms);
60
+ }
61
+ return normalizedForms[shapeName]?.[formName];
62
+ }
@@ -0,0 +1,6 @@
1
+ import type { ShapeJSON } from '../project-schema/index.ts';
2
+ import { type ServicesShapesContext } from '../refs.ts';
3
+ /**
4
+ * Given a list of shapes find the conflicting props
5
+ */
6
+ export declare function getConflictingProperties(context: ServicesShapesContext, shapes: ShapeJSON[]): Set<string>;
@@ -0,0 +1,55 @@
1
+ import { isDefined, setIsEqual } from '@takeshape/util';
2
+ import { dereferenceSchema, getRef, serializeRef } from "../refs.js";
3
+ import { isObjectSchema } from "../types/index.js";
4
+ /**
5
+ * Normalize ref, oneOf and array schemas and get a list of @ref expressions
6
+ */
7
+ function getRefStrings(context, propertySchema) {
8
+ const schema = propertySchema.items ?? propertySchema;
9
+ const schemas = schema.oneOf ? schema.oneOf : [schema];
10
+ return schemas
11
+ .map((propertySchema) => {
12
+ const ref = getRef(context, propertySchema);
13
+ return ref ? serializeRef(ref) : undefined;
14
+ })
15
+ .filter(isDefined);
16
+ }
17
+ function isRefEqual(context, a, b) {
18
+ return setIsEqual(getRefStrings(context, a), getRefStrings(context, b));
19
+ }
20
+ /**
21
+ * Given a list of shapes find the conflicting props
22
+ */
23
+ export function getConflictingProperties(context, shapes) {
24
+ const conflicts = new Set();
25
+ const allProps = {};
26
+ for (const shape of Object.values(shapes)) {
27
+ const schema = dereferenceSchema(context, shape.schema, ['shapes', shape.name]);
28
+ if (!isObjectSchema(schema)) {
29
+ continue;
30
+ }
31
+ const required = new Set(schema.required ?? []);
32
+ for (const [name, prop] of Object.entries(schema.properties)) {
33
+ // skip props that we know already have conflict
34
+ if (conflicts.has(name)) {
35
+ continue;
36
+ }
37
+ const isRequired = required.has(name);
38
+ if (allProps[name]) {
39
+ if (
40
+ // same type
41
+ allProps[name][0].type !== prop.type ||
42
+ // same refs
43
+ !isRefEqual(context, allProps[name][0], prop) ||
44
+ // same nullability
45
+ isRequired !== allProps[name][1]) {
46
+ conflicts.add(name);
47
+ }
48
+ }
49
+ else {
50
+ allProps[name] = [prop, isRequired];
51
+ }
52
+ }
53
+ }
54
+ return conflicts;
55
+ }
@@ -0,0 +1,4 @@
1
+ import type { ProjectSchemaJSON, PropertySchema, QueryJSON, ShapeJSON } from '../project-schema/index.ts';
2
+ import { type ServicesShapesContext } from '../refs.ts';
3
+ export declare function getReturnShapeRef(context: ServicesShapesContext, propOrQuery: PropertySchema | QueryJSON): import("@takeshape/util").Maybe<import("../refs.ts").RefItem>;
4
+ export declare function getReturnShape(projectSchema: Pick<ProjectSchemaJSON, 'services' | 'shapes'>, propOrQuery: PropertySchema | QueryJSON): ShapeJSON | undefined;
@@ -0,0 +1,30 @@
1
+ import { getRef, parseReturnShape, refItemToShape } from "../refs.js";
2
+ function isQuery(propOrQuery) {
3
+ return 'shape' in propOrQuery && 'resolver' in propOrQuery;
4
+ }
5
+ function getReturnShapeHelper(projectSchema, propOrQuery) {
6
+ let shape;
7
+ if (isQuery(propOrQuery)) {
8
+ const { shapeName } = parseReturnShape(projectSchema, propOrQuery.shape);
9
+ shape = projectSchema.shapes[shapeName];
10
+ }
11
+ else {
12
+ const ref = getRef(projectSchema, propOrQuery);
13
+ if (ref) {
14
+ shape = refItemToShape(projectSchema, ref);
15
+ }
16
+ }
17
+ return shape;
18
+ }
19
+ export function getReturnShapeRef(context, propOrQuery) {
20
+ return isQuery(propOrQuery) ? parseReturnShape(context, propOrQuery.shape).ref : getRef(context, propOrQuery);
21
+ }
22
+ const cache = new WeakMap();
23
+ export function getReturnShape(projectSchema, propOrQuery) {
24
+ let result = cache.get(propOrQuery);
25
+ if (result === undefined) {
26
+ result = getReturnShapeHelper(projectSchema, propOrQuery);
27
+ cache.set(propOrQuery, result ?? null);
28
+ }
29
+ return result ?? undefined;
30
+ }
@@ -0,0 +1,6 @@
1
+ import type { ProjectSchema } from '../models/types.ts';
2
+ import type { ObjectSchema } from '../project-schema/index.ts';
3
+ export declare function getVariablesSchema(runtimeSchema: ProjectSchema, queryStr: string): {
4
+ argsSchema: ObjectSchema;
5
+ argsAreFromShape: boolean;
6
+ } | undefined;