@takeshape/schema 12.1.1 → 12.1.5

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 @@
1
+ export declare const SERVICE_OBJECT_PATTERN_NAME = "pattern:service-object";
@@ -0,0 +1 @@
1
+ export const SERVICE_OBJECT_PATTERN_NAME = 'pattern:service-object';
@@ -0,0 +1,35 @@
1
+ import type { ProjectSchemaJSON, PropertySchema, ShapeJSON } from './project-schema/index.ts';
2
+ import type { ContentTransform, KeyTransform, PropertyTransform, PropertyTransformMap, SchemaType, SourceKeyTransform } from './types/index.ts';
3
+ export declare function getType(schema: Pick<PropertySchema, 'type'>): SchemaType;
4
+ export declare function preferKey(name: string, schema: PropertySchema): string;
5
+ /**
6
+ * A key transform to select the field name
7
+ */
8
+ export declare const preferName: KeyTransform;
9
+ export declare function preferSourceKey(name: string, schema: PropertySchema): string[];
10
+ export declare function findTransforms(pluginMap: PropertyTransformMap | undefined, schema: PropertySchema, name: string, shape?: ShapeJSON): PropertyTransform | undefined;
11
+ export type Accumulator<T = unknown> = {
12
+ accumulate(value: unknown, schema: PropertySchema, name: string): void;
13
+ getResults(): T;
14
+ };
15
+ export type ContentTransformParams = {
16
+ transforms?: PropertyTransformMap;
17
+ accumulators?: Accumulator[];
18
+ projectSchema: ProjectSchemaJSON;
19
+ keyTransform?: KeyTransform;
20
+ sourceKeyTransform?: SourceKeyTransform;
21
+ passThrough?: boolean;
22
+ allowNullObjects?: boolean;
23
+ };
24
+ export declare function getContentTransform({ transforms, accumulators, keyTransform, sourceKeyTransform, passThrough, allowNullObjects, projectSchema }: ContentTransformParams): ContentTransform;
25
+ export type PropertyInfo = {
26
+ schema: PropertySchema;
27
+ key: string;
28
+ isRequired: boolean;
29
+ };
30
+ export type GetPropertyInfoContext = {
31
+ projectSchema: ProjectSchemaJSON;
32
+ transforms?: PropertyTransformMap;
33
+ keyTransform?: KeyTransform;
34
+ };
35
+ export declare function getPropertyInfo(context: GetPropertyInfoContext, schema: PropertySchema, path: string): PropertyInfo[];
@@ -0,0 +1,162 @@
1
+ import difference from 'lodash/difference.js';
2
+ import forEach from 'lodash/forEach.js';
3
+ import get from 'lodash/get.js';
4
+ import pick from 'lodash/pick.js';
5
+ import { dereferenceSchema, getRefShapeName } from "./refs.js";
6
+ import { getStorageKey } from "./schema-util.js";
7
+ import { isArraySchema, isObjectSchema } from "./types/utils.js";
8
+ import { enumerateOneOfKeys, isUnionSchema } from "./unions.js";
9
+ const typeCache = new WeakMap();
10
+ export function getType(schema) {
11
+ let type = typeCache.get(schema);
12
+ if (type) {
13
+ return type;
14
+ }
15
+ type = schema.type;
16
+ // Handle nullable types for example: ['object', 'null']
17
+ if (Array.isArray(type)) {
18
+ const filtered = type.filter((name) => name !== 'null');
19
+ if (!filtered.length) {
20
+ throw new Error('Invalid schema');
21
+ }
22
+ type = filtered[0];
23
+ }
24
+ typeCache.set(schema, type);
25
+ return type;
26
+ }
27
+ function ensureArray(value) {
28
+ return Array.isArray(value) ? value : [value];
29
+ }
30
+ export function preferKey(name, schema) {
31
+ return getStorageKey(schema) ?? name;
32
+ }
33
+ /**
34
+ * A key transform to select the field name
35
+ */
36
+ export const preferName = (name) => name;
37
+ function getLocalizedKey(key, locale) {
38
+ return locale ? `${key}:${locale}` : key;
39
+ }
40
+ function getNonDefaultLocales(projectSchema) {
41
+ return projectSchema.locales.filter((locale) => locale !== projectSchema.defaultLocale);
42
+ }
43
+ function getLocalizedSourceKeys(keys, locales) {
44
+ return keys.flatMap((key) => [{ key }, ...locales.map((locale) => ({ key: `${key}:${locale}`, locale }))]);
45
+ }
46
+ export function preferSourceKey(name, schema) {
47
+ const key = getStorageKey(schema);
48
+ return key ? [key, name] : [name];
49
+ }
50
+ export function findTransforms(pluginMap, schema, name, shape) {
51
+ const type = getType(schema);
52
+ if (pluginMap && (pluginMap[type] ?? pluginMap['*'])) {
53
+ const plugins = (pluginMap[type] ?? []).concat(pluginMap['*'] ?? []);
54
+ return plugins.find((plugin) => plugin.filter(schema, name, shape));
55
+ }
56
+ return undefined;
57
+ }
58
+ export function getContentTransform({ transforms, accumulators, keyTransform = preferKey, sourceKeyTransform = preferSourceKey, passThrough = true, allowNullObjects = false, projectSchema }) {
59
+ const nonDefaultLocales = getNonDefaultLocales(projectSchema);
60
+ const prepare = (schema, obj, name = '', parent) => {
61
+ const shapeName = getRefShapeName(projectSchema, schema);
62
+ schema = dereferenceSchema(projectSchema, schema);
63
+ if (accumulators) {
64
+ for (const accumulator of accumulators) {
65
+ accumulator.accumulate(obj, schema, name);
66
+ }
67
+ }
68
+ const shape = shapeName ? projectSchema.shapes[shapeName] : undefined;
69
+ const transform = findTransforms(transforms, schema, name, shape);
70
+ if (transform) {
71
+ const next = (value, schema, name, parent) => prepare(schema, value, name, parent);
72
+ return transform.process(obj, { ...schema, $parent: parent }, name, shape, next);
73
+ }
74
+ if (obj && isUnionSchema(schema)) {
75
+ for (const { shapeId, propSchema } of enumerateOneOfKeys(projectSchema, schema.oneOf)) {
76
+ if (obj._shapeId === shapeId) {
77
+ return prepare(propSchema, obj, name, schema);
78
+ }
79
+ }
80
+ }
81
+ if (obj && isObjectSchema(schema)) {
82
+ const result = {};
83
+ const assigned = new Set();
84
+ forEach(schema.properties, (fieldSchema, name) => {
85
+ const sourceKeys = ensureArray(sourceKeyTransform(name, fieldSchema, obj));
86
+ const localizedSourceKeys = getLocalizedSourceKeys(sourceKeys, nonDefaultLocales);
87
+ for (const { key: sourceKey, locale } of localizedSourceKeys) {
88
+ const value = prepare(fieldSchema, get(obj, sourceKey), name, schema);
89
+ if (value !== undefined) {
90
+ assigned.add(sourceKey);
91
+ const transform = findTransforms(transforms, dereferenceSchema(projectSchema, fieldSchema), name);
92
+ const getKey = transform?.keyTransform ? transform.keyTransform : keyTransform;
93
+ const key = getLocalizedKey(getKey(name, fieldSchema, sourceKey), locale);
94
+ result[key] = value;
95
+ }
96
+ }
97
+ });
98
+ if (passThrough && obj) {
99
+ const keys = difference(Object.keys(obj), [...assigned]);
100
+ if (keys.length) {
101
+ Object.assign(result, pick(obj, keys));
102
+ }
103
+ }
104
+ return result;
105
+ }
106
+ if (isArraySchema(schema)) {
107
+ const itemSchema = schema.items;
108
+ if (Array.isArray(obj)) {
109
+ return obj.map((item) => prepare(itemSchema, item, name, schema));
110
+ }
111
+ if (obj === undefined) {
112
+ prepare(itemSchema, obj, name, parent);
113
+ }
114
+ }
115
+ if (allowNullObjects && isObjectSchema(schema) && obj === null) {
116
+ return null;
117
+ }
118
+ // Allow properties that have not been transformed
119
+ return passThrough ? obj : undefined;
120
+ };
121
+ return prepare;
122
+ }
123
+ function transformKey(transforms, propSchema, name, transform = preferKey) {
124
+ const schemaTransform = findTransforms(transforms, propSchema, name);
125
+ if (schemaTransform?.keyTransform) {
126
+ transform = schemaTransform.keyTransform;
127
+ }
128
+ return transform(name, propSchema);
129
+ }
130
+ export function getPropertyInfo(context, schema, path) {
131
+ const { projectSchema, transforms, keyTransform } = context;
132
+ const result = [];
133
+ const findProperty = (currentSchema, name, rest, path) => {
134
+ if (isObjectSchema(currentSchema)) {
135
+ const propSchema = currentSchema.properties[name];
136
+ const isRequired = currentSchema.required?.includes(name) ?? false;
137
+ if (!propSchema) {
138
+ return;
139
+ }
140
+ const refSchema = dereferenceSchema(projectSchema, propSchema);
141
+ const nextPath = path.concat(transformKey(transforms, refSchema, name, keyTransform));
142
+ if (rest.length) {
143
+ const [nextName, ...nextRest] = rest;
144
+ findProperty(refSchema, nextName, nextRest, nextPath);
145
+ }
146
+ else {
147
+ result.push({ schema: refSchema, key: nextPath.join('.'), isRequired });
148
+ }
149
+ }
150
+ else if (isUnionSchema(currentSchema)) {
151
+ for (const optionSchema of currentSchema.oneOf) {
152
+ findProperty(dereferenceSchema(projectSchema, optionSchema), name, rest, path);
153
+ }
154
+ }
155
+ else if (isArraySchema(currentSchema)) {
156
+ findProperty(dereferenceSchema(projectSchema, currentSchema.items), name, rest, path);
157
+ }
158
+ };
159
+ const [first, ...rest] = path.split('.');
160
+ findProperty(dereferenceSchema(projectSchema, schema), first, rest, []);
161
+ return result;
162
+ }
@@ -0,0 +1,9 @@
1
+ import type { ProjectSchemaJSON, PropertySchema, ShapeSchema } from './project-schema/index.ts';
2
+ export type CreateInputSchemaOptions = {
3
+ isUpdate?: boolean;
4
+ };
5
+ /**
6
+ * Convert all output properties in the schema to be input properties,
7
+ * For an update, remove `required` and `default` fields as well.
8
+ */
9
+ export declare function createInputSchema<T extends ProjectSchemaJSON | ShapeSchema | PropertySchema>(schema: T, options?: CreateInputSchemaOptions): T;
@@ -0,0 +1,68 @@
1
+ import { deepCloneWith, isIterableObject, REMOVE } from '@takeshape/util';
2
+ import defaults from 'lodash/fp/defaults.js';
3
+ const inputSchemaCache = new Map();
4
+ function getInputSchemaCache(options) {
5
+ // Ensure key order does not invalidate the cache
6
+ const key = JSON.stringify(options, Object.keys(options).sort());
7
+ let cache = inputSchemaCache.get(key);
8
+ if (!cache) {
9
+ cache = new WeakMap();
10
+ inputSchemaCache.set(key, cache);
11
+ }
12
+ return cache;
13
+ }
14
+ /**
15
+ * Convert all output properties in the schema to be input properties,
16
+ * For an update, remove `required` and `default` fields as well.
17
+ */
18
+ export function createInputSchema(schema, options = {}) {
19
+ const inputSchemaCache = getInputSchemaCache(defaults({ isUpdate: false }, options));
20
+ let rewrittenSchema = inputSchemaCache.get(schema);
21
+ if (rewrittenSchema) {
22
+ return rewrittenSchema;
23
+ }
24
+ rewrittenSchema = deepCloneWith(schema, (value, key, parent, clone) => {
25
+ // Remove required
26
+ if (options.isUpdate && key === 'required' && Array.isArray(value) && value.length) {
27
+ return REMOVE;
28
+ }
29
+ // Remove default
30
+ if (options.isUpdate &&
31
+ key === 'default' &&
32
+ value !== undefined &&
33
+ isIterableObject(parent) &&
34
+ parent.type !== undefined) {
35
+ return REMOVE;
36
+ }
37
+ if (isIterableObject(value) && value.type === 'object' && isIterableObject(value.properties)) {
38
+ const properties = {};
39
+ for (const [key, prop] of Object.entries(value.properties)) {
40
+ if (isIterableObject(prop) && (!prop['@resolver'] || prop['@input'])) {
41
+ properties[key] = clone(prop, key, value);
42
+ }
43
+ }
44
+ let required;
45
+ if (!options.isUpdate && Array.isArray(value.required)) {
46
+ required = value.required.filter((key) => Boolean(properties[key]));
47
+ }
48
+ return {
49
+ ...value,
50
+ properties,
51
+ required
52
+ };
53
+ }
54
+ if (isIterableObject(value) && isIterableObject(value['@input'])) {
55
+ const { '@input': input, '@l10n': l10n, '@syncLocaleStructure': syncLocaleStructure, '@mapping': mapping, title, ...output } = value;
56
+ return {
57
+ ...clone(input, '@input', value),
58
+ title,
59
+ '@l10n': l10n,
60
+ '@syncLocaleStructure': syncLocaleStructure,
61
+ '@mapping': mapping,
62
+ '@output': output
63
+ };
64
+ }
65
+ });
66
+ inputSchemaCache.set(schema, rewrittenSchema);
67
+ return rewrittenSchema;
68
+ }
package/dist/enum.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import type { PropertySchema } from './project-schema/index.ts';
2
+ export declare function isEnumLikeSchema(schema: PropertySchema): boolean;
package/dist/enum.js ADDED
@@ -0,0 +1,9 @@
1
+ export function isEnumLikeSchema(schema) {
2
+ if (schema.enum) {
3
+ return true;
4
+ }
5
+ if (schema.oneOf) {
6
+ return schema.oneOf.every((optionSchema) => optionSchema.title !== undefined && (optionSchema.enum ?? optionSchema.const));
7
+ }
8
+ return false;
9
+ }
@@ -0,0 +1,2 @@
1
+ import type { ProjectSchemaJSON } from './project-schema/index.ts';
2
+ export declare function flattenTemplates<T extends ProjectSchemaJSON>(projectSchema: T): T;
@@ -0,0 +1,20 @@
1
+ import { deepClone } from '@takeshape/util';
2
+ import set from 'lodash/set.js';
3
+ import { refItemToNamespacedShapeName } from "./refs.js";
4
+ import { getAllRefs } from "./schema-util.js";
5
+ import { isValidTemplate, resolveTemplate } from "./template-shapes/index.js";
6
+ export function flattenTemplates(projectSchema) {
7
+ const templateRefs = getAllRefs(projectSchema, (ref) => Boolean(ref.template));
8
+ if (!templateRefs.length) {
9
+ return projectSchema;
10
+ }
11
+ const newSchema = deepClone(projectSchema);
12
+ for (const ref of templateRefs) {
13
+ if (ref.template && isValidTemplate(ref.template)) {
14
+ const { shapeName, dependencies } = resolveTemplate(newSchema, ref.template, refItemToNamespacedShapeName(newSchema, ref));
15
+ set(newSchema, ref.path, ref.path[ref.path.length - 1] === '@ref' ? `local:${shapeName}` : shapeName);
16
+ Object.assign(newSchema.shapes, dependencies);
17
+ }
18
+ }
19
+ return newSchema;
20
+ }
@@ -0,0 +1,3 @@
1
+ import type { ProjectSchemaJSON, PropertySchema } from './project-schema/index.ts';
2
+ export type IsLeaf = (key?: string) => boolean;
3
+ export declare function getIsLeaf(projectSchema: ProjectSchemaJSON, shapeSchema: PropertySchema): IsLeaf;
@@ -0,0 +1,56 @@
1
+ import { getType } from "./content-schema-transform.js";
2
+ import { followRef, getRefShapeName } from "./refs.js";
3
+ import { getStorageKey, isBuiltinType } from "./schema-util.js";
4
+ import { isPropertySchemaWithRelationship } from "./types/index.js";
5
+ const scalarTags = new Set(['draftjs']);
6
+ function isLeafTypeV3(projectSchema, propertySchema) {
7
+ const type = getType(propertySchema);
8
+ return Boolean(
9
+ // Must have key
10
+ getStorageKey(propertySchema) &&
11
+ // If is not a structure, then is a leaf
12
+ (!['object', 'array'].includes(type) ||
13
+ // If is relationship, then is a leaf
14
+ isPropertySchemaWithRelationship(propertySchema['@output'] ?? propertySchema) ||
15
+ Boolean(propertySchema['@tag'] && scalarTags.has(propertySchema['@tag'])) ||
16
+ // If is array, then should not be a synchronized structure
17
+ (type === 'array' && !propertySchema['@syncLocaleStructure']) ||
18
+ isBuiltinType(projectSchema, propertySchema)));
19
+ }
20
+ export function getIsLeaf(projectSchema, shapeSchema) {
21
+ const leafMap = new Set();
22
+ const shapesSeen = new Set();
23
+ const collectLeaves = (schema) => {
24
+ const shapeName = getRefShapeName(projectSchema, schema);
25
+ schema = shapeName ? followRef(projectSchema, schema) : schema;
26
+ const key = getStorageKey(schema);
27
+ if (key && isLeafTypeV3(projectSchema, schema)) {
28
+ leafMap.add(key);
29
+ }
30
+ if (shapeName) {
31
+ // Skip shapes we have already seen to avoid cycles
32
+ if (shapesSeen.has(shapeName)) {
33
+ return;
34
+ }
35
+ shapesSeen.add(shapeName);
36
+ }
37
+ const combo = schema.oneOf ?? schema.allOf;
38
+ if (combo) {
39
+ combo.map(collectLeaves);
40
+ }
41
+ else if (schema.properties) {
42
+ for (const name of Object.keys(schema.properties)) {
43
+ collectLeaves(schema.properties[name]);
44
+ }
45
+ }
46
+ else if (schema.items) {
47
+ collectLeaves(schema.items);
48
+ }
49
+ };
50
+ collectLeaves(shapeSchema);
51
+ return (key) => {
52
+ // Remove locale suffix
53
+ key = key ? key.split(':')[0] : key;
54
+ return Boolean(key && leafMap.has(key));
55
+ };
56
+ }
@@ -0,0 +1,64 @@
1
+ export * from './agents.ts';
2
+ export * from './api-version.ts';
3
+ export type { AccessPolicyDocument, ApiKey, Condition, Role, RoleImport, RoleInput, Statement, User, UserPermission } from './auth-schemas.ts';
4
+ export * from './auth-utils.ts';
5
+ export * from './builtin-schema.ts';
6
+ export * from './constants.ts';
7
+ export * from './content-schema-transform.ts';
8
+ export * from './create-input-schema.ts';
9
+ export * from './enum.ts';
10
+ export * from './flatten-templates.ts';
11
+ export * from './get-is-leaf.ts';
12
+ export * from './interfaces.ts';
13
+ export * from './migration/index.ts';
14
+ export type { ProjectSchemaUpdate } from './migration/types.ts';
15
+ export { AGENTS_UPDATE_KEY, GUARDS_UPDATE_KEY, TOOLS_UPDATE_KEY } from './migration/types.ts';
16
+ export * from './mocks.ts';
17
+ export * from './models/agent.ts';
18
+ export * from './models/runtime-schema.ts';
19
+ export * from './models/types.ts';
20
+ export * from './models/user-schema.ts';
21
+ export * from './patterns.ts';
22
+ export * from './project-schema/index.ts';
23
+ export * from './project-schema/migrate.ts';
24
+ export * from './refs.ts';
25
+ export * from './relationships.ts';
26
+ export * from './resolvers/ai/agent-message-payload.ts';
27
+ export type { AgentSessionPayload } from './resolvers/ai/agent-session-payload.ts';
28
+ export * from './resolvers/ai/types.ts';
29
+ export * from './resolvers/takeshape/assets/constants.ts';
30
+ export * from './runtime-schema.ts';
31
+ export * from './scalars.ts';
32
+ export * from './schema-transform.ts';
33
+ export * from './schema-util.ts';
34
+ export * from './service-dependencies.ts';
35
+ export * from './services/services.ts';
36
+ export * from './services/types.ts';
37
+ export * from './services/util.ts';
38
+ export * from './shape-paths.ts';
39
+ export * from './taxonomies.ts';
40
+ export * from './template-shapes/index.ts';
41
+ export * from './types/transforms.ts';
42
+ export * from './types/types.ts';
43
+ export * from './types/utils.ts';
44
+ export * from './unions.ts';
45
+ export * from './util/api-indexing.ts';
46
+ export * from './util/coerce-value.ts';
47
+ export * from './util/detect-cycles.ts';
48
+ export * from './util/expressions.ts';
49
+ export * from './util/find-shape-at-path.ts';
50
+ export * from './util/form-config.ts';
51
+ export * from './util/get-conflicting-properties.ts';
52
+ export * from './util/get-return-shape.ts';
53
+ export * from './util/has-arg.ts';
54
+ export * from './util/is-asset-property.ts';
55
+ export * from './util/merge.ts';
56
+ export * from './util/patch-schema.ts';
57
+ export * from './util/query-field-path.ts';
58
+ export * from './util/shapes.ts';
59
+ export * from './util/tools.ts';
60
+ export * from './validate/errors.ts';
61
+ export * from './validate/types.ts';
62
+ export * from './validate/validate.ts';
63
+ export * from './versions.ts';
64
+ export * from './workflows.ts';
package/dist/index.js ADDED
@@ -0,0 +1,61 @@
1
+ export * from "./agents.js";
2
+ export * from "./api-version.js";
3
+ export * from "./auth-utils.js";
4
+ export * from "./builtin-schema.js";
5
+ export * from "./constants.js";
6
+ export * from "./content-schema-transform.js";
7
+ export * from "./create-input-schema.js";
8
+ export * from "./enum.js";
9
+ export * from "./flatten-templates.js";
10
+ export * from "./get-is-leaf.js";
11
+ export * from "./interfaces.js";
12
+ export * from "./migration/index.js";
13
+ export { AGENTS_UPDATE_KEY, GUARDS_UPDATE_KEY, TOOLS_UPDATE_KEY } from "./migration/types.js";
14
+ export * from "./mocks.js";
15
+ export * from "./models/agent.js";
16
+ export * from "./models/runtime-schema.js";
17
+ export * from "./models/types.js";
18
+ export * from "./models/user-schema.js";
19
+ export * from "./patterns.js";
20
+ export * from "./project-schema/index.js";
21
+ export * from "./project-schema/migrate.js";
22
+ export * from "./refs.js";
23
+ export * from "./relationships.js";
24
+ export * from "./resolvers/ai/agent-message-payload.js";
25
+ export * from "./resolvers/ai/types.js";
26
+ export * from "./resolvers/takeshape/assets/constants.js";
27
+ export * from "./runtime-schema.js";
28
+ export * from "./scalars.js";
29
+ export * from "./schema-transform.js";
30
+ export * from "./schema-util.js";
31
+ export * from "./service-dependencies.js";
32
+ export * from "./services/services.js";
33
+ export * from "./services/types.js";
34
+ export * from "./services/util.js";
35
+ export * from "./shape-paths.js";
36
+ export * from "./taxonomies.js";
37
+ export * from "./template-shapes/index.js";
38
+ export * from "./types/transforms.js";
39
+ export * from "./types/types.js";
40
+ export * from "./types/utils.js";
41
+ export * from "./unions.js";
42
+ export * from "./util/api-indexing.js";
43
+ export * from "./util/coerce-value.js";
44
+ export * from "./util/detect-cycles.js";
45
+ export * from "./util/expressions.js";
46
+ export * from "./util/find-shape-at-path.js";
47
+ export * from "./util/form-config.js";
48
+ export * from "./util/get-conflicting-properties.js";
49
+ export * from "./util/get-return-shape.js";
50
+ export * from "./util/has-arg.js";
51
+ export * from "./util/is-asset-property.js";
52
+ export * from "./util/merge.js";
53
+ export * from "./util/patch-schema.js";
54
+ export * from "./util/query-field-path.js";
55
+ export * from "./util/shapes.js";
56
+ export * from "./util/tools.js";
57
+ export * from "./validate/errors.js";
58
+ export * from "./validate/types.js";
59
+ export * from "./validate/validate.js";
60
+ export * from "./versions.js";
61
+ export * from "./workflows.js";
@@ -0,0 +1,14 @@
1
+ import type { OneOfSchema, ProjectSchemaJSON, PropertySchema, ShapeJSON, ShapeMap } from './project-schema/index.ts';
2
+ import { type RefItem, type ServicesShapesContext } from './refs.ts';
3
+ export declare function isInterfaceShape(shape?: ShapeJSON): shape is ShapeJSON & {
4
+ type: 'interface';
5
+ };
6
+ export type ImplementationShapeMap = Record<string, Set<ShapeJSON>>;
7
+ export type ImplementationShapeNameMap = Record<string, Set<string>>;
8
+ export declare function isInterfaceRef(context: ServicesShapesContext, propertySchema: PropertySchema): boolean;
9
+ export declare function getImplementationShapeMap(shapeMap: ShapeMap): ImplementationShapeMap;
10
+ export declare function getImplementationShapeNameMap(shapeMap: ShapeMap): ImplementationShapeNameMap;
11
+ export declare function pruneUnusedInterfaces(projectSchema: ProjectSchemaJSON, shapeMap: ShapeMap): ShapeMap;
12
+ export declare function getImplementingShapes(context: Pick<ProjectSchemaJSON, 'services' | 'shapes'>, interfaceRef: RefItem): ShapeJSON[];
13
+ export declare function interfaceToUnion(context: Pick<ProjectSchemaJSON, 'shapes' | 'services'>, interfaceRef: RefItem): OneOfSchema;
14
+ export declare function getPossibleShapeNames(projectSchema: ProjectSchemaJSON, shape: ShapeJSON): string[];
@@ -0,0 +1,86 @@
1
+ import { isDefined } from '@takeshape/util';
2
+ import mapValues from 'lodash/mapValues.js';
3
+ import { getRef, getShapeByRef, normalizeRefExpression, parseRef, refItemToNamespacedShapeName, refItemToShape, shapeToRefItem } from "./refs.js";
4
+ import { isUnionSchema } from "./unions.js";
5
+ export function isInterfaceShape(shape) {
6
+ return shape?.type === 'interface';
7
+ }
8
+ export function isInterfaceRef(context, propertySchema) {
9
+ const ref = getRef(context, propertySchema);
10
+ return Boolean(ref && isInterfaceShape(refItemToShape(context, ref)));
11
+ }
12
+ function add(record, key, value) {
13
+ if (!record[key]) {
14
+ record[key] = new Set([value]);
15
+ }
16
+ else {
17
+ record[key].add(value);
18
+ }
19
+ }
20
+ function getImplementationsHelper(shapeMap, mapFn) {
21
+ const result = {};
22
+ for (const shape of Object.values(shapeMap)) {
23
+ for (const interfaceName of shape.interfaces ?? []) {
24
+ add(result, interfaceName, mapFn(shape));
25
+ }
26
+ }
27
+ return result;
28
+ }
29
+ export function getImplementationShapeMap(shapeMap) {
30
+ return getImplementationsHelper(shapeMap, (x) => x);
31
+ }
32
+ export function getImplementationShapeNameMap(shapeMap) {
33
+ return getImplementationsHelper(shapeMap, (shape) => shape.name);
34
+ }
35
+ export function pruneUnusedInterfaces(projectSchema, shapeMap) {
36
+ return mapValues(shapeMap, (shape) => {
37
+ const { interfaces } = shape;
38
+ if (interfaces?.length) {
39
+ const context = { ...projectSchema, shapes: shapeMap };
40
+ const filteredInterfaces = interfaces.filter((refExpression) => getShapeByRef(context, refExpression));
41
+ if (interfaces.length !== filteredInterfaces.length) {
42
+ return { ...shape, interfaces: filteredInterfaces };
43
+ }
44
+ }
45
+ return shape;
46
+ });
47
+ }
48
+ function compareRefItems(refItem1, refItem2) {
49
+ return refItem1.shapeName === refItem2.shapeName && refItem1.layerId === refItem2.layerId;
50
+ }
51
+ export function getImplementingShapes(context, interfaceRef) {
52
+ const shapeMap = context.shapes;
53
+ const implementingShapes = [];
54
+ for (const shape of Object.values(shapeMap)) {
55
+ if (shape.interfaces?.find((interfaceRefExpression) => compareRefItems(parseRef(context, interfaceRefExpression), interfaceRef))) {
56
+ implementingShapes.push(shape);
57
+ }
58
+ }
59
+ return implementingShapes;
60
+ }
61
+ export function interfaceToUnion(context, interfaceRef) {
62
+ const shapes = getImplementingShapes(context, interfaceRef);
63
+ return {
64
+ oneOf: shapes.map((shape) => ({
65
+ '@ref': normalizeRefExpression(context, shape.name)
66
+ }))
67
+ };
68
+ }
69
+ export function getPossibleShapeNames(projectSchema, shape) {
70
+ let names;
71
+ if (isInterfaceShape(shape)) {
72
+ names = getImplementingShapes(projectSchema, shapeToRefItem(projectSchema, shape)).map((shape) => shape.name);
73
+ }
74
+ else if (isUnionSchema(shape.schema)) {
75
+ names = shape.schema.oneOf
76
+ .map((member) => {
77
+ const ref = getRef(projectSchema, member);
78
+ return ref && refItemToNamespacedShapeName(projectSchema, ref);
79
+ })
80
+ .filter(isDefined);
81
+ }
82
+ else {
83
+ names = [shape.name];
84
+ }
85
+ return names;
86
+ }
@@ -0,0 +1,26 @@
1
+ import type { FlattenedSchemaV4_0_0, LayerSchemaV4_0_0, ObjectSchemaV4_0_0, ProjectSchemaJSONV4_0_0, PropertySchemaV4_0_0, QueryJSONV4_0_0, ShapeMapV4_0_0 } from '../project-schema/index.ts';
2
+ import { type RefItemWithPath } from './refs.ts';
3
+ export type GetLayer = (layerId: string) => LayerSchemaV4_0_0 | undefined;
4
+ export declare function isObjectSchemaV4_0_0(maybeObjectSchema: PropertySchemaV4_0_0): maybeObjectSchema is ObjectSchemaV4_0_0;
5
+ export type RefPredicate = (ref: RefItemWithPath) => boolean;
6
+ /**
7
+ * Walk through a `ProjectSchema` and collect all the `ref`s.
8
+ */
9
+ export declare function getAllRefsInShapes(shapes: ShapeMapV4_0_0, predicate?: RefPredicate): RefItemWithPath[];
10
+ /**
11
+ * Get all refs
12
+ */
13
+ export declare function getAllRefsInQuery(shapes: ShapeMapV4_0_0, queryPath: string[], query: QueryJSONV4_0_0, predicate?: (ref: RefItemWithPath) => boolean): RefItemWithPath[];
14
+ type SchemaContext = Pick<FlattenedSchemaV4_0_0, 'shapes' | 'queries' | 'mutations'>;
15
+ /**
16
+ * Collect refs from `queries` or `mutations`.
17
+ */
18
+ export declare function getAllRefsInQueries(context: SchemaContext, rootPropertyName: 'queries' | 'mutations', predicate?: RefPredicate): RefItemWithPath[];
19
+ /**
20
+ * Get all refs in a ProjectSchema
21
+ * @param predicate return true to include the ref in
22
+ */
23
+ export declare function getAllRefs(projectSchema: SchemaContext, predicate?: RefPredicate): RefItemWithPath[];
24
+ export declare function collectReferencedShapeNames(layerId: string, refSet: Set<string>): (schema: PropertySchemaV4_0_0) => void;
25
+ export declare function flattenSchema(projectSchema: ProjectSchemaJSONV4_0_0, getLayer: GetLayer): FlattenedSchemaV4_0_0;
26
+ export {};