@takeshape/schema 11.144.1 → 11.154.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (537) hide show
  1. package/examples/latest/all-fields-shapes-inline.json +1 -1
  2. package/examples/latest/all-fields-shapes.json +1 -1
  3. package/examples/latest/betzino.json +1 -1
  4. package/examples/latest/blog-schema.json +1 -1
  5. package/examples/latest/brewery-schema.json +1 -1
  6. package/examples/latest/chat-agent-schema.json +1 -1
  7. package/examples/latest/clear-cache-schema.json +1 -1
  8. package/examples/latest/complex-project-schema.json +1 -1
  9. package/examples/latest/complex-schema.json +1 -1
  10. package/examples/latest/edit-schema.json +1 -1
  11. package/examples/latest/frank-and-fred-schema.json +1 -1
  12. package/examples/latest/generate-agent-schema.json +1 -1
  13. package/examples/latest/klirr-schema.json +1 -1
  14. package/examples/latest/layers/rick-and-morty-layer.json +1 -1
  15. package/examples/latest/layers/shopify-layer-2023-01.json +1 -1
  16. package/examples/latest/layers/shopify-storefront-2023-04.json +1 -1
  17. package/examples/latest/layers/wordpress-2024-01.json +1 -1
  18. package/examples/latest/massive-schema.json +1 -1
  19. package/examples/latest/mill-components-schema.json +1 -1
  20. package/examples/latest/nested-shape-arrays.json +1 -1
  21. package/examples/latest/one-earth.json +1 -1
  22. package/examples/latest/pet-oneof-array.json +1 -1
  23. package/examples/latest/post-schema.json +1 -1
  24. package/examples/latest/pruned-shopify-product-schema.json +1 -1
  25. package/examples/latest/rag-example.json +1 -1
  26. package/examples/latest/real-world-schema.json +1 -1
  27. package/examples/latest/recursive-repeater-schema.json +1 -1
  28. package/examples/latest/recursive-schema.json +1 -1
  29. package/examples/latest/rick-and-morty-ast.json +1 -1
  30. package/examples/latest/rick-and-morty-graphql.json +1 -1
  31. package/examples/latest/rick-and-morty-rest.json +1 -1
  32. package/examples/latest/rick-and-morty-user-schema.json +1 -1
  33. package/examples/latest/rick-and-morty-with-indexing.json +1 -1
  34. package/examples/latest/schema-where-filter.json +1 -1
  35. package/examples/latest/schema-with-repeater-draftjs.json +1 -1
  36. package/examples/latest/schema-with-rick-and-morty.json +1 -1
  37. package/examples/latest/shape-books-v3_2_0.json +1 -1
  38. package/examples/latest/shape-books.json +1 -1
  39. package/examples/latest/shape-editor-schema-edited.json +1 -1
  40. package/examples/latest/shape-editor-schema-initial.json +1 -1
  41. package/examples/latest/shapedb-crud-every-prop-type.json +1 -1
  42. package/examples/latest/shopify-lookbook.json +1 -1
  43. package/examples/latest/shopify-product-2022-07.json +1 -1
  44. package/examples/latest/shopify-product-2023-04.json +1 -1
  45. package/examples/latest/shopify-store-with-widget.json +1 -1
  46. package/examples/latest/stripe-product-runtime-schema.json +1 -1
  47. package/examples/latest/stripe-starter-resolved.json +1 -1
  48. package/examples/latest/user-schema-no-required.json +1 -1
  49. package/examples/latest/user-schema-with-defaults.json +1 -1
  50. package/examples/latest/valvoline-ai-demo.json +1461 -1421
  51. package/examples/latest/vector-search-schema.json +1 -1
  52. package/package.json +10 -9
  53. package/dist/agents.d.ts +0 -62
  54. package/dist/agents.js +0 -338
  55. package/dist/api-version.d.ts +0 -5
  56. package/dist/api-version.js +0 -17
  57. package/dist/auth-schemas.d.ts +0 -128
  58. package/dist/auth-schemas.js +0 -7
  59. package/dist/auth-utils.d.ts +0 -5
  60. package/dist/auth-utils.js +0 -6
  61. package/dist/builtin-schema.d.ts +0 -18
  62. package/dist/builtin-schema.js +0 -683
  63. package/dist/constants.d.ts +0 -1
  64. package/dist/constants.js +0 -1
  65. package/dist/content-schema-transform.d.ts +0 -35
  66. package/dist/content-schema-transform.js +0 -162
  67. package/dist/create-input-schema.d.ts +0 -9
  68. package/dist/create-input-schema.js +0 -68
  69. package/dist/enum.d.ts +0 -2
  70. package/dist/enum.js +0 -9
  71. package/dist/flatten-templates.d.ts +0 -2
  72. package/dist/flatten-templates.js +0 -20
  73. package/dist/get-is-leaf.d.ts +0 -3
  74. package/dist/get-is-leaf.js +0 -56
  75. package/dist/index.d.ts +0 -62
  76. package/dist/index.js +0 -59
  77. package/dist/interfaces.d.ts +0 -14
  78. package/dist/interfaces.js +0 -86
  79. package/dist/layers/layers.d.ts +0 -26
  80. package/dist/layers/layers.js +0 -301
  81. package/dist/layers/refs.d.ts +0 -102
  82. package/dist/layers/refs.js +0 -220
  83. package/dist/layers/type-utils.d.ts +0 -59
  84. package/dist/layers/type-utils.js +0 -118
  85. package/dist/layers/visitor.d.ts +0 -5
  86. package/dist/layers/visitor.js +0 -38
  87. package/dist/migration/index.d.ts +0 -73
  88. package/dist/migration/index.js +0 -103
  89. package/dist/migration/to/v3.0.0.d.ts +0 -4
  90. package/dist/migration/to/v3.0.0.js +0 -212
  91. package/dist/migration/to/v3.1.0.d.ts +0 -4
  92. package/dist/migration/to/v3.1.0.js +0 -194
  93. package/dist/migration/to/v3.10.0.d.ts +0 -4
  94. package/dist/migration/to/v3.10.0.js +0 -67
  95. package/dist/migration/to/v3.11.0.d.ts +0 -4
  96. package/dist/migration/to/v3.11.0.js +0 -85
  97. package/dist/migration/to/v3.12.3.d.ts +0 -4
  98. package/dist/migration/to/v3.12.3.js +0 -87
  99. package/dist/migration/to/v3.13.0.d.ts +0 -4
  100. package/dist/migration/to/v3.13.0.js +0 -17
  101. package/dist/migration/to/v3.17.0.d.ts +0 -4
  102. package/dist/migration/to/v3.17.0.js +0 -22
  103. package/dist/migration/to/v3.18.0.d.ts +0 -4
  104. package/dist/migration/to/v3.18.0.js +0 -64
  105. package/dist/migration/to/v3.18.1.d.ts +0 -4
  106. package/dist/migration/to/v3.18.1.js +0 -12
  107. package/dist/migration/to/v3.18.2.d.ts +0 -4
  108. package/dist/migration/to/v3.18.2.js +0 -19
  109. package/dist/migration/to/v3.20.0.d.ts +0 -4
  110. package/dist/migration/to/v3.20.0.js +0 -24
  111. package/dist/migration/to/v3.22.0.d.ts +0 -4
  112. package/dist/migration/to/v3.22.0.js +0 -25
  113. package/dist/migration/to/v3.24.0.d.ts +0 -4
  114. package/dist/migration/to/v3.24.0.js +0 -11
  115. package/dist/migration/to/v3.25.0.d.ts +0 -4
  116. package/dist/migration/to/v3.25.0.js +0 -11
  117. package/dist/migration/to/v3.3.0.d.ts +0 -4
  118. package/dist/migration/to/v3.3.0.js +0 -13
  119. package/dist/migration/to/v3.31.0.d.ts +0 -4
  120. package/dist/migration/to/v3.31.0.js +0 -38
  121. package/dist/migration/to/v3.32.0.d.ts +0 -4
  122. package/dist/migration/to/v3.32.0.js +0 -59
  123. package/dist/migration/to/v3.34.0.d.ts +0 -6
  124. package/dist/migration/to/v3.34.0.js +0 -111
  125. package/dist/migration/to/v3.36.0.d.ts +0 -4
  126. package/dist/migration/to/v3.36.0.js +0 -22
  127. package/dist/migration/to/v3.39.0.d.ts +0 -4
  128. package/dist/migration/to/v3.39.0.js +0 -45
  129. package/dist/migration/to/v3.40.0.d.ts +0 -4
  130. package/dist/migration/to/v3.40.0.js +0 -26
  131. package/dist/migration/to/v3.46.0.d.ts +0 -4
  132. package/dist/migration/to/v3.46.0.js +0 -35
  133. package/dist/migration/to/v3.57.0.d.ts +0 -4
  134. package/dist/migration/to/v3.57.0.js +0 -18
  135. package/dist/migration/to/v3.9.0.d.ts +0 -4
  136. package/dist/migration/to/v3.9.0.js +0 -79
  137. package/dist/migration/types.d.ts +0 -26
  138. package/dist/migration/types.js +0 -3
  139. package/dist/migration/utils.d.ts +0 -2
  140. package/dist/migration/utils.js +0 -6
  141. package/dist/mocks.d.ts +0 -14
  142. package/dist/mocks.js +0 -58
  143. package/dist/models/agent.d.ts +0 -3
  144. package/dist/models/agent.js +0 -29
  145. package/dist/models/project-schema.d.ts +0 -18
  146. package/dist/models/project-schema.js +0 -119
  147. package/dist/models/query.d.ts +0 -3
  148. package/dist/models/query.js +0 -38
  149. package/dist/models/runtime-schema.d.ts +0 -9
  150. package/dist/models/runtime-schema.js +0 -20
  151. package/dist/models/shape.d.ts +0 -4
  152. package/dist/models/shape.js +0 -36
  153. package/dist/models/types.d.ts +0 -36
  154. package/dist/models/types.js +0 -1
  155. package/dist/models/user-schema.d.ts +0 -7
  156. package/dist/models/user-schema.js +0 -9
  157. package/dist/patterns.d.ts +0 -12
  158. package/dist/patterns.js +0 -1
  159. package/dist/project-schema/index.d.ts +0 -211
  160. package/dist/project-schema/index.js +0 -83
  161. package/dist/project-schema/latest.d.ts +0 -2619
  162. package/dist/project-schema/latest.js +0 -7
  163. package/dist/project-schema/migrate.d.ts +0 -4
  164. package/dist/project-schema/migrate.js +0 -218
  165. package/dist/project-schema/v1.0.0.d.ts +0 -299
  166. package/dist/project-schema/v1.0.0.js +0 -7
  167. package/dist/project-schema/v3.0.0.d.ts +0 -478
  168. package/dist/project-schema/v3.0.0.js +0 -7
  169. package/dist/project-schema/v3.1.0.d.ts +0 -621
  170. package/dist/project-schema/v3.1.0.js +0 -7
  171. package/dist/project-schema/v3.10.0.d.ts +0 -1201
  172. package/dist/project-schema/v3.10.0.js +0 -7
  173. package/dist/project-schema/v3.11.0.d.ts +0 -1210
  174. package/dist/project-schema/v3.11.0.js +0 -7
  175. package/dist/project-schema/v3.12.0.d.ts +0 -1214
  176. package/dist/project-schema/v3.12.0.js +0 -7
  177. package/dist/project-schema/v3.12.1.d.ts +0 -1273
  178. package/dist/project-schema/v3.12.1.js +0 -7
  179. package/dist/project-schema/v3.12.2.d.ts +0 -1283
  180. package/dist/project-schema/v3.12.2.js +0 -7
  181. package/dist/project-schema/v3.12.3.d.ts +0 -1306
  182. package/dist/project-schema/v3.12.3.js +0 -7
  183. package/dist/project-schema/v3.13.0.d.ts +0 -1317
  184. package/dist/project-schema/v3.13.0.js +0 -7
  185. package/dist/project-schema/v3.13.1.d.ts +0 -1412
  186. package/dist/project-schema/v3.13.1.js +0 -7
  187. package/dist/project-schema/v3.14.0.d.ts +0 -1436
  188. package/dist/project-schema/v3.14.0.js +0 -7
  189. package/dist/project-schema/v3.15.0.d.ts +0 -1458
  190. package/dist/project-schema/v3.15.0.js +0 -7
  191. package/dist/project-schema/v3.16.0.d.ts +0 -1470
  192. package/dist/project-schema/v3.16.0.js +0 -7
  193. package/dist/project-schema/v3.17.0.d.ts +0 -1467
  194. package/dist/project-schema/v3.17.0.js +0 -7
  195. package/dist/project-schema/v3.17.1.d.ts +0 -1468
  196. package/dist/project-schema/v3.17.1.js +0 -7
  197. package/dist/project-schema/v3.18.0.d.ts +0 -1333
  198. package/dist/project-schema/v3.18.0.js +0 -7
  199. package/dist/project-schema/v3.18.1.d.ts +0 -1332
  200. package/dist/project-schema/v3.18.1.js +0 -7
  201. package/dist/project-schema/v3.18.2.d.ts +0 -1332
  202. package/dist/project-schema/v3.18.2.js +0 -7
  203. package/dist/project-schema/v3.19.0.d.ts +0 -1336
  204. package/dist/project-schema/v3.19.0.js +0 -7
  205. package/dist/project-schema/v3.2.0.d.ts +0 -632
  206. package/dist/project-schema/v3.2.0.js +0 -7
  207. package/dist/project-schema/v3.20.0.d.ts +0 -1336
  208. package/dist/project-schema/v3.20.0.js +0 -7
  209. package/dist/project-schema/v3.21.0.d.ts +0 -1338
  210. package/dist/project-schema/v3.21.0.js +0 -7
  211. package/dist/project-schema/v3.22.0.d.ts +0 -1344
  212. package/dist/project-schema/v3.22.0.js +0 -7
  213. package/dist/project-schema/v3.23.0.d.ts +0 -1376
  214. package/dist/project-schema/v3.23.0.js +0 -7
  215. package/dist/project-schema/v3.24.0.d.ts +0 -1364
  216. package/dist/project-schema/v3.24.0.js +0 -7
  217. package/dist/project-schema/v3.25.0.d.ts +0 -1363
  218. package/dist/project-schema/v3.25.0.js +0 -7
  219. package/dist/project-schema/v3.26.0.d.ts +0 -1388
  220. package/dist/project-schema/v3.26.0.js +0 -7
  221. package/dist/project-schema/v3.27.0.d.ts +0 -1397
  222. package/dist/project-schema/v3.27.0.js +0 -7
  223. package/dist/project-schema/v3.28.0.d.ts +0 -1416
  224. package/dist/project-schema/v3.28.0.js +0 -7
  225. package/dist/project-schema/v3.29.0.d.ts +0 -1423
  226. package/dist/project-schema/v3.29.0.js +0 -7
  227. package/dist/project-schema/v3.3.0.d.ts +0 -632
  228. package/dist/project-schema/v3.3.0.js +0 -7
  229. package/dist/project-schema/v3.30.0.d.ts +0 -1416
  230. package/dist/project-schema/v3.30.0.js +0 -7
  231. package/dist/project-schema/v3.31.0.d.ts +0 -1448
  232. package/dist/project-schema/v3.31.0.js +0 -7
  233. package/dist/project-schema/v3.32.0.d.ts +0 -1439
  234. package/dist/project-schema/v3.32.0.js +0 -7
  235. package/dist/project-schema/v3.33.0.d.ts +0 -1445
  236. package/dist/project-schema/v3.33.0.js +0 -7
  237. package/dist/project-schema/v3.34.0.d.ts +0 -1445
  238. package/dist/project-schema/v3.34.0.js +0 -7
  239. package/dist/project-schema/v3.35.0.d.ts +0 -1464
  240. package/dist/project-schema/v3.35.0.js +0 -7
  241. package/dist/project-schema/v3.36.0.d.ts +0 -1470
  242. package/dist/project-schema/v3.36.0.js +0 -7
  243. package/dist/project-schema/v3.37.0.d.ts +0 -1522
  244. package/dist/project-schema/v3.37.0.js +0 -7
  245. package/dist/project-schema/v3.38.0.d.ts +0 -1522
  246. package/dist/project-schema/v3.38.0.js +0 -7
  247. package/dist/project-schema/v3.39.0.d.ts +0 -1529
  248. package/dist/project-schema/v3.39.0.js +0 -7
  249. package/dist/project-schema/v3.4.0.d.ts +0 -624
  250. package/dist/project-schema/v3.4.0.js +0 -7
  251. package/dist/project-schema/v3.40.0.d.ts +0 -1530
  252. package/dist/project-schema/v3.40.0.js +0 -7
  253. package/dist/project-schema/v3.41.0.d.ts +0 -1530
  254. package/dist/project-schema/v3.41.0.js +0 -7
  255. package/dist/project-schema/v3.42.0.d.ts +0 -1534
  256. package/dist/project-schema/v3.42.0.js +0 -7
  257. package/dist/project-schema/v3.43.0.d.ts +0 -1536
  258. package/dist/project-schema/v3.43.0.js +0 -7
  259. package/dist/project-schema/v3.44.0.d.ts +0 -1621
  260. package/dist/project-schema/v3.44.0.js +0 -7
  261. package/dist/project-schema/v3.45.0.d.ts +0 -1650
  262. package/dist/project-schema/v3.45.0.js +0 -7
  263. package/dist/project-schema/v3.46.0.d.ts +0 -1703
  264. package/dist/project-schema/v3.46.0.js +0 -7
  265. package/dist/project-schema/v3.47.0.d.ts +0 -1736
  266. package/dist/project-schema/v3.47.0.js +0 -7
  267. package/dist/project-schema/v3.48.0.d.ts +0 -2208
  268. package/dist/project-schema/v3.48.0.js +0 -7
  269. package/dist/project-schema/v3.49.0.d.ts +0 -2217
  270. package/dist/project-schema/v3.49.0.js +0 -7
  271. package/dist/project-schema/v3.5.0.d.ts +0 -649
  272. package/dist/project-schema/v3.5.0.js +0 -7
  273. package/dist/project-schema/v3.5.1.d.ts +0 -649
  274. package/dist/project-schema/v3.5.1.js +0 -7
  275. package/dist/project-schema/v3.50.0.d.ts +0 -2269
  276. package/dist/project-schema/v3.50.0.js +0 -7
  277. package/dist/project-schema/v3.51.0.d.ts +0 -2269
  278. package/dist/project-schema/v3.51.0.js +0 -7
  279. package/dist/project-schema/v3.52.0.d.ts +0 -2269
  280. package/dist/project-schema/v3.52.0.js +0 -7
  281. package/dist/project-schema/v3.53.0.d.ts +0 -2350
  282. package/dist/project-schema/v3.53.0.js +0 -7
  283. package/dist/project-schema/v3.54.0.d.ts +0 -2369
  284. package/dist/project-schema/v3.54.0.js +0 -7
  285. package/dist/project-schema/v3.55.0.d.ts +0 -2369
  286. package/dist/project-schema/v3.55.0.js +0 -7
  287. package/dist/project-schema/v3.56.0.d.ts +0 -2405
  288. package/dist/project-schema/v3.56.0.js +0 -7
  289. package/dist/project-schema/v3.57.0.d.ts +0 -2601
  290. package/dist/project-schema/v3.57.0.js +0 -7
  291. package/dist/project-schema/v3.58.0.d.ts +0 -2601
  292. package/dist/project-schema/v3.58.0.js +0 -7
  293. package/dist/project-schema/v3.59.0.d.ts +0 -2619
  294. package/dist/project-schema/v3.59.0.js +0 -7
  295. package/dist/project-schema/v3.6.0.d.ts +0 -658
  296. package/dist/project-schema/v3.6.0.js +0 -7
  297. package/dist/project-schema/v3.7.0.d.ts +0 -961
  298. package/dist/project-schema/v3.7.0.js +0 -7
  299. package/dist/project-schema/v3.8.0.d.ts +0 -979
  300. package/dist/project-schema/v3.8.0.js +0 -7
  301. package/dist/project-schema/v3.9.0.d.ts +0 -1178
  302. package/dist/project-schema/v3.9.0.js +0 -7
  303. package/dist/project-schema/v4.0.0.d.ts +0 -1328
  304. package/dist/project-schema/v4.0.0.js +0 -7
  305. package/dist/refs.d.ts +0 -218
  306. package/dist/refs.js +0 -616
  307. package/dist/relationships.d.ts +0 -40
  308. package/dist/relationships.js +0 -302
  309. package/dist/resolvers/ai/abort-agent-message-args.d.ts +0 -16
  310. package/dist/resolvers/ai/abort-agent-message-args.js +0 -13
  311. package/dist/resolvers/ai/abort-agent-message-response.d.ts +0 -39
  312. package/dist/resolvers/ai/abort-agent-message-response.js +0 -19
  313. package/dist/resolvers/ai/agent-chat-args.d.ts +0 -17
  314. package/dist/resolvers/ai/agent-chat-args.js +0 -14
  315. package/dist/resolvers/ai/agent-chat-payload.d.ts +0 -35
  316. package/dist/resolvers/ai/agent-chat-payload.js +0 -26
  317. package/dist/resolvers/ai/agent-chat-response.d.ts +0 -289
  318. package/dist/resolvers/ai/agent-chat-response.js +0 -21
  319. package/dist/resolvers/ai/agent-generate-args.d.ts +0 -17
  320. package/dist/resolvers/ai/agent-generate-args.js +0 -14
  321. package/dist/resolvers/ai/agent-message-input.d.ts +0 -73
  322. package/dist/resolvers/ai/agent-message-input.js +0 -39
  323. package/dist/resolvers/ai/agent-message-output.d.ts +0 -169
  324. package/dist/resolvers/ai/agent-message-output.js +0 -77
  325. package/dist/resolvers/ai/agent-message-payload.d.ts +0 -507
  326. package/dist/resolvers/ai/agent-message-payload.js +0 -156
  327. package/dist/resolvers/ai/agent-run-mode.d.ts +0 -7
  328. package/dist/resolvers/ai/agent-run-mode.js +0 -9
  329. package/dist/resolvers/ai/agent-session-payload.d.ts +0 -515
  330. package/dist/resolvers/ai/agent-session-payload.js +0 -175
  331. package/dist/resolvers/ai/create-agent-session-response.d.ts +0 -199
  332. package/dist/resolvers/ai/create-agent-session-response.js +0 -9
  333. package/dist/resolvers/ai/embedding-search.d.ts +0 -54
  334. package/dist/resolvers/ai/embedding-search.js +0 -46
  335. package/dist/resolvers/ai/get-agent-message-args.d.ts +0 -16
  336. package/dist/resolvers/ai/get-agent-message-args.js +0 -13
  337. package/dist/resolvers/ai/get-agent-message-response.d.ts +0 -805
  338. package/dist/resolvers/ai/get-agent-message-response.js +0 -63
  339. package/dist/resolvers/ai/inspect-agent-args.d.ts +0 -16
  340. package/dist/resolvers/ai/inspect-agent-args.js +0 -13
  341. package/dist/resolvers/ai/inspect-agent-response.d.ts +0 -504
  342. package/dist/resolvers/ai/inspect-agent-response.js +0 -48
  343. package/dist/resolvers/ai/send-agent-feedback-args.d.ts +0 -52
  344. package/dist/resolvers/ai/send-agent-feedback-args.js +0 -16
  345. package/dist/resolvers/ai/send-agent-message-args.d.ts +0 -48
  346. package/dist/resolvers/ai/send-agent-message-args.js +0 -36
  347. package/dist/resolvers/ai/send-agent-message-response.d.ts +0 -353
  348. package/dist/resolvers/ai/send-agent-message-response.js +0 -51
  349. package/dist/resolvers/ai/types.d.ts +0 -6
  350. package/dist/resolvers/ai/types.js +0 -1
  351. package/dist/resolvers/takeshape/assets/asset-image-meta.d.ts +0 -79
  352. package/dist/resolvers/takeshape/assets/asset-image-meta.js +0 -98
  353. package/dist/resolvers/takeshape/assets/asset-image-params.d.ts +0 -901
  354. package/dist/resolvers/takeshape/assets/asset-image-params.js +0 -726
  355. package/dist/resolvers/takeshape/assets/asset-image.d.ts +0 -17
  356. package/dist/resolvers/takeshape/assets/asset-image.js +0 -15
  357. package/dist/resolvers/takeshape/assets/asset.d.ts +0 -125
  358. package/dist/resolvers/takeshape/assets/asset.js +0 -107
  359. package/dist/resolvers/takeshape/assets/constants.d.ts +0 -11
  360. package/dist/resolvers/takeshape/assets/constants.js +0 -11
  361. package/dist/resolvers/takeshape/builtins/constants.d.ts +0 -1
  362. package/dist/resolvers/takeshape/builtins/constants.js +0 -1
  363. package/dist/runtime-schema.d.ts +0 -6
  364. package/dist/runtime-schema.js +0 -85
  365. package/dist/scalars.d.ts +0 -2
  366. package/dist/scalars.js +0 -4
  367. package/dist/schema-transform.d.ts +0 -19
  368. package/dist/schema-transform.js +0 -74
  369. package/dist/schema-util.d.ts +0 -266
  370. package/dist/schema-util.js +0 -1127
  371. package/dist/schemas/auth-schemas.json +0 -374
  372. package/dist/schemas/index.d.ts +0 -4
  373. package/dist/schemas/index.js +0 -170
  374. package/dist/schemas/project-schema/experimental-2025-07.json +0 -1297
  375. package/dist/schemas/project-schema/latest.d.ts +0 -180
  376. package/dist/schemas/project-schema/latest.js +0 -11
  377. package/dist/schemas/project-schema/latest.json +0 -4846
  378. package/dist/schemas/project-schema/meta-schema-v1.0.0.json +0 -193
  379. package/dist/schemas/project-schema/meta-schema-v3.0.0.json +0 -608
  380. package/dist/schemas/project-schema/meta-schema-v3.1.0.json +0 -608
  381. package/dist/schemas/project-schema/meta-schema-v3.2.0.json +0 -612
  382. package/dist/schemas/project-schema/meta-schema-v3.3.0.json +0 -612
  383. package/dist/schemas/project-schema/meta-schema-v3.4.0.json +0 -637
  384. package/dist/schemas/project-schema/meta-schema-v3.5.0.json +0 -626
  385. package/dist/schemas/project-schema/meta-schema-v3.5.1.json +0 -626
  386. package/dist/schemas/project-schema/meta-schema-v3.6.0.json +0 -629
  387. package/dist/schemas/project-schema/meta-schema-v3.7.0.json +0 -1137
  388. package/dist/schemas/project-schema/meta-schema-v3.8.0.json +0 -1137
  389. package/dist/schemas/project-schema/meta-schema-v3.9.0.json +0 -1477
  390. package/dist/schemas/project-schema/v1.0.0.json +0 -321
  391. package/dist/schemas/project-schema/v3.0.0.json +0 -414
  392. package/dist/schemas/project-schema/v3.1.0.json +0 -572
  393. package/dist/schemas/project-schema/v3.10.0.json +0 -2097
  394. package/dist/schemas/project-schema/v3.11.0.json +0 -2141
  395. package/dist/schemas/project-schema/v3.12.0.json +0 -2144
  396. package/dist/schemas/project-schema/v3.12.1.json +0 -2282
  397. package/dist/schemas/project-schema/v3.12.2.json +0 -2304
  398. package/dist/schemas/project-schema/v3.12.3.json +0 -2357
  399. package/dist/schemas/project-schema/v3.13.0.json +0 -2377
  400. package/dist/schemas/project-schema/v3.14.0.json +0 -2385
  401. package/dist/schemas/project-schema/v3.15.0.json +0 -2365
  402. package/dist/schemas/project-schema/v3.16.0.json +0 -2373
  403. package/dist/schemas/project-schema/v3.17.0.json +0 -2378
  404. package/dist/schemas/project-schema/v3.17.1.json +0 -2380
  405. package/dist/schemas/project-schema/v3.18.0.json +0 -2356
  406. package/dist/schemas/project-schema/v3.18.1.json +0 -2357
  407. package/dist/schemas/project-schema/v3.18.2.json +0 -2357
  408. package/dist/schemas/project-schema/v3.19.0.json +0 -2369
  409. package/dist/schemas/project-schema/v3.2.0.json +0 -580
  410. package/dist/schemas/project-schema/v3.20.0.json +0 -2369
  411. package/dist/schemas/project-schema/v3.21.0.json +0 -2376
  412. package/dist/schemas/project-schema/v3.22.0.json +0 -2381
  413. package/dist/schemas/project-schema/v3.23.0.json +0 -2456
  414. package/dist/schemas/project-schema/v3.24.0.json +0 -2556
  415. package/dist/schemas/project-schema/v3.25.0.json +0 -2552
  416. package/dist/schemas/project-schema/v3.26.0.json +0 -2599
  417. package/dist/schemas/project-schema/v3.27.0.json +0 -2611
  418. package/dist/schemas/project-schema/v3.28.0.json +0 -2656
  419. package/dist/schemas/project-schema/v3.29.0.json +0 -2670
  420. package/dist/schemas/project-schema/v3.3.0.json +0 -581
  421. package/dist/schemas/project-schema/v3.30.0.json +0 -2656
  422. package/dist/schemas/project-schema/v3.31.0.json +0 -2714
  423. package/dist/schemas/project-schema/v3.32.0.json +0 -2708
  424. package/dist/schemas/project-schema/v3.33.0.json +0 -2715
  425. package/dist/schemas/project-schema/v3.34.0.json +0 -2715
  426. package/dist/schemas/project-schema/v3.35.0.json +0 -2748
  427. package/dist/schemas/project-schema/v3.36.0.json +0 -2756
  428. package/dist/schemas/project-schema/v3.37.0.json +0 -2821
  429. package/dist/schemas/project-schema/v3.38.0.json +0 -2819
  430. package/dist/schemas/project-schema/v3.39.0.json +0 -2827
  431. package/dist/schemas/project-schema/v3.4.0.json +0 -571
  432. package/dist/schemas/project-schema/v3.40.0.json +0 -2830
  433. package/dist/schemas/project-schema/v3.41.0.json +0 -2830
  434. package/dist/schemas/project-schema/v3.42.0.json +0 -2835
  435. package/dist/schemas/project-schema/v3.43.0.json +0 -2841
  436. package/dist/schemas/project-schema/v3.44.0.json +0 -3013
  437. package/dist/schemas/project-schema/v3.45.0.json +0 -3064
  438. package/dist/schemas/project-schema/v3.46.0.json +0 -3136
  439. package/dist/schemas/project-schema/v3.47.0.json +0 -3189
  440. package/dist/schemas/project-schema/v3.48.0.json +0 -3196
  441. package/dist/schemas/project-schema/v3.49.0.json +0 -3239
  442. package/dist/schemas/project-schema/v3.5.0.json +0 -571
  443. package/dist/schemas/project-schema/v3.5.1.json +0 -571
  444. package/dist/schemas/project-schema/v3.50.0.json +0 -3320
  445. package/dist/schemas/project-schema/v3.51.0.json +0 -3326
  446. package/dist/schemas/project-schema/v3.52.0.json +0 -3326
  447. package/dist/schemas/project-schema/v3.53.0.json +0 -3476
  448. package/dist/schemas/project-schema/v3.54.0.json +0 -3512
  449. package/dist/schemas/project-schema/v3.55.0.json +0 -3515
  450. package/dist/schemas/project-schema/v3.56.0.json +0 -3530
  451. package/dist/schemas/project-schema/v3.57.0.json +0 -4815
  452. package/dist/schemas/project-schema/v3.58.0.json +0 -4815
  453. package/dist/schemas/project-schema/v3.59.0.json +0 -4846
  454. package/dist/schemas/project-schema/v3.6.0.json +0 -587
  455. package/dist/schemas/project-schema/v3.7.0.json +0 -587
  456. package/dist/schemas/project-schema/v3.8.0.json +0 -604
  457. package/dist/schemas/project-schema/v3.9.0.json +0 -604
  458. package/dist/schemas/project-schema/v4.0.0.json +0 -2316
  459. package/dist/schemas/project-schema.json +0 -214
  460. package/dist/service-dependencies.d.ts +0 -13
  461. package/dist/service-dependencies.js +0 -165
  462. package/dist/services/services.d.ts +0 -31
  463. package/dist/services/services.js +0 -145
  464. package/dist/services/types.d.ts +0 -11
  465. package/dist/services/types.js +0 -1
  466. package/dist/services/util.d.ts +0 -16
  467. package/dist/services/util.js +0 -36
  468. package/dist/shape-paths.d.ts +0 -7
  469. package/dist/shape-paths.js +0 -28
  470. package/dist/taxonomies.d.ts +0 -15
  471. package/dist/taxonomies.js +0 -24
  472. package/dist/template-shapes/index.d.ts +0 -7
  473. package/dist/template-shapes/index.js +0 -33
  474. package/dist/template-shapes/names.d.ts +0 -10
  475. package/dist/template-shapes/names.js +0 -21
  476. package/dist/template-shapes/templates.d.ts +0 -32
  477. package/dist/template-shapes/templates.js +0 -316
  478. package/dist/template-shapes/types.d.ts +0 -15
  479. package/dist/template-shapes/types.js +0 -7
  480. package/dist/template-shapes/where.d.ts +0 -37
  481. package/dist/template-shapes/where.js +0 -400
  482. package/dist/types/index.d.ts +0 -3
  483. package/dist/types/index.js +0 -2
  484. package/dist/types/transforms.d.ts +0 -15
  485. package/dist/types/transforms.js +0 -1
  486. package/dist/types/types.d.ts +0 -200
  487. package/dist/types/types.js +0 -10
  488. package/dist/types/utils.d.ts +0 -112
  489. package/dist/types/utils.js +0 -269
  490. package/dist/unions.d.ts +0 -14
  491. package/dist/unions.js +0 -77
  492. package/dist/util/ai-tools.d.ts +0 -2
  493. package/dist/util/ai-tools.js +0 -14
  494. package/dist/util/api-indexing.d.ts +0 -9
  495. package/dist/util/api-indexing.js +0 -57
  496. package/dist/util/coerce-value.d.ts +0 -9
  497. package/dist/util/coerce-value.js +0 -32
  498. package/dist/util/detect-cycles.d.ts +0 -7
  499. package/dist/util/detect-cycles.js +0 -45
  500. package/dist/util/expressions.d.ts +0 -34
  501. package/dist/util/expressions.js +0 -350
  502. package/dist/util/find-shape-at-path.d.ts +0 -21
  503. package/dist/util/find-shape-at-path.js +0 -53
  504. package/dist/util/form-config.d.ts +0 -11
  505. package/dist/util/form-config.js +0 -62
  506. package/dist/util/get-conflicting-properties.d.ts +0 -6
  507. package/dist/util/get-conflicting-properties.js +0 -55
  508. package/dist/util/get-return-shape.d.ts +0 -4
  509. package/dist/util/get-return-shape.js +0 -30
  510. package/dist/util/has-arg.d.ts +0 -6
  511. package/dist/util/has-arg.js +0 -25
  512. package/dist/util/is-asset-property.d.ts +0 -3
  513. package/dist/util/is-asset-property.js +0 -11
  514. package/dist/util/mcp.d.ts +0 -8
  515. package/dist/util/mcp.js +0 -21
  516. package/dist/util/merge.d.ts +0 -15
  517. package/dist/util/merge.js +0 -254
  518. package/dist/util/patch-schema.d.ts +0 -8
  519. package/dist/util/patch-schema.js +0 -51
  520. package/dist/util/query-field-path.d.ts +0 -9
  521. package/dist/util/query-field-path.js +0 -23
  522. package/dist/util/shapes.d.ts +0 -5
  523. package/dist/util/shapes.js +0 -22
  524. package/dist/validate/ai.d.ts +0 -6
  525. package/dist/validate/ai.js +0 -183
  526. package/dist/validate/errors.d.ts +0 -3
  527. package/dist/validate/errors.js +0 -20
  528. package/dist/validate/types.d.ts +0 -1
  529. package/dist/validate/types.js +0 -1
  530. package/dist/validate/util.d.ts +0 -3
  531. package/dist/validate/util.js +0 -28
  532. package/dist/validate/validate.d.ts +0 -80
  533. package/dist/validate/validate.js +0 -1058
  534. package/dist/versions.d.ts +0 -4
  535. package/dist/versions.js +0 -4
  536. package/dist/workflows.d.ts +0 -14
  537. package/dist/workflows.js +0 -66
package/dist/refs.js DELETED
@@ -1,616 +0,0 @@
1
- import { NotFoundError } from '@takeshape/errors';
2
- import { deepCloneWith, ensureArray, isDefined, isIntegerLike, isIterableObject, isRecord, visit } from '@takeshape/util';
3
- import compact from 'lodash/compact.js';
4
- import assign from 'lodash/fp/assign.js';
5
- import omit from 'lodash/fp/omit.js';
6
- import get from 'lodash/get.js';
7
- import isString from 'lodash/isString.js';
8
- import { isScalar } from "./scalars.js";
9
- import { getServiceNamespaces } from "./services/util.js";
10
- import { isAllOfSchema, isExtendsSchema, isObjectSchema, isOneOfSchema, isRefSchema, isRefSchemaLegacy } from "./types/index.js";
11
- import { mergeDeepObjectSchemas, mergeObjectSchemas } from "./util/merge.js";
12
- import { getShape } from "./util/shapes.js";
13
- export const LOCAL_LAYER_ID = 'local';
14
- const templateShapeRegex = /^(\w+)<([\w:-]+)>$/;
15
- /**
16
- * Parse a template like `PaginatedList<Post>` and return both the template and the shape name.
17
- */
18
- export function parseTemplateShape(shapeExpression) {
19
- const matches = templateShapeRegex.exec(shapeExpression);
20
- if (matches) {
21
- return { shapeName: matches[2], template: matches[1] };
22
- }
23
- return { shapeName: shapeExpression, template: undefined };
24
- }
25
- export function parseReturnShape(context, shape) {
26
- if (typeof shape === 'object') {
27
- if (isRefSchema(shape.items)) {
28
- const ref = getRef(context, shape.items);
29
- if (!ref) {
30
- throw new Error(`Could not parse ${JSON.stringify(shape.items)}: invalid ref`);
31
- }
32
- return {
33
- isArray: true,
34
- ref,
35
- shapeName: refItemToNamespacedShapeName(context, ref)
36
- };
37
- }
38
- if (typeof shape.items.type !== 'string') {
39
- throw new Error(`Could not parse ${JSON.stringify(shape.items)}: invalid type`);
40
- }
41
- return { isArray: true, shapeName: shape.items.type };
42
- }
43
- const ref = parseRef(context, shape);
44
- const shapeName = refItemToNamespacedShapeName(context, ref);
45
- return { isArray: false, shapeName, ref, template: ref.template };
46
- }
47
- /**
48
- * Convert Query.shape to a PropertySchema
49
- */
50
- export function returnShapeToSchema(projectSchema, returnShape) {
51
- if (typeof returnShape === 'string') {
52
- if (isScalar(returnShape) || returnShape === 'object') {
53
- return { type: returnShape };
54
- }
55
- return {
56
- '@ref': serializeRef(parseRef(projectSchema, returnShape))
57
- };
58
- }
59
- return returnShape;
60
- }
61
- /**
62
- * Create a template string like `PaginatedList<Post>` from a template and shape name.
63
- */
64
- export function createTemplateShapeName(template, shapeName) {
65
- return `${template}<${shapeName}>`;
66
- }
67
- /**
68
- * If the string is a template like `PaginatedList<Post>`, return the shape name,
69
- * in this case `Post`. Otherwise return the input.
70
- */
71
- export const untemplate = (input) => {
72
- return parseTemplateShape(input).shapeName;
73
- };
74
- export function getFlattenedTemplateShapeName(shapeName, template) {
75
- return `${shapeName}${template ?? ''}`;
76
- }
77
- function $refToPath(ref) {
78
- return ref.substr(2).split('/');
79
- }
80
- function $refToShapeName(ref) {
81
- return $refToPath(ref)[1];
82
- }
83
- export function refSchemaToPath(context, refSchema) {
84
- const refItem = getRef(context, refSchema);
85
- if (refItem === undefined) {
86
- throw new Error('Invalid ref in refSchemaToPath');
87
- }
88
- return refItemToShapePath(context, refItem);
89
- }
90
- /**
91
- * Safely turn a "template" shape reference (`@args`, `args`, `shape`) into a `RefItem`
92
- *
93
- * @param context A partial project schema
94
- * @param refExpression
95
- * A ref expression might include "template" name and refer to a local or remote
96
- * shape, `Foo` or `CreateArgs<Foo>` or `CreateArgs<remote:Foo>`.*
97
- */
98
- export function parseRef(context, refExpression) {
99
- const { shapeName, template } = parseTemplateShape(refExpression);
100
- if (shapeName.includes(':')) {
101
- return refExpressionToRefItem(shapeName, template);
102
- }
103
- return shapeNameToRefItem(context, shapeName, template);
104
- }
105
- export function isRefEqual(context, a, b) {
106
- const parsedA = typeof a === 'string' ? parseRef(context, a) : a;
107
- const parsedB = typeof b === 'string' ? parseRef(context, b) : b;
108
- return (parsedA.shapeName === parsedB.shapeName &&
109
- parsedA.layerId === parsedB.layerId &&
110
- parsedA.template === parsedB.template);
111
- }
112
- /**
113
- * Converts a list of ref expressions into a list of ref items.
114
- */
115
- export function refExpressionListToRefItemList(context, refExpressionList) {
116
- return refExpressionList.map((ref) => parseRef(context, ref));
117
- }
118
- /**
119
- * Sugar for converting a `refExpression` directly into a shape, without the
120
- * intermediate `refItem`.
121
- *
122
- * @param context A partial project schema
123
- * @param refExpression
124
- * A ref expression might include "template" name and refer to a local or remote
125
- * shape, `Foo` or `CreateArgs<Foo>` or `CreateArgs<remote:Foo>`.
126
- */
127
- export function getShapeByRef(context, refExpression) {
128
- return refItemToShape(context, parseRef(context, refExpression));
129
- }
130
- /**
131
- * Provided a service name and a referenced type. Supports 2 or 3 part
132
- * references, e.g., `shopify:my-store:ProductInput` or `my-store:ProductInput`.
133
- *
134
- * @returns
135
- * A 2 member array, where 0 is the service name, 1 is the referenced type.
136
- */
137
- function splitRefExpression(ref) {
138
- const index = ref.lastIndexOf(':');
139
- const serviceKey = index === -1 ? LOCAL_LAYER_ID : ref.substring(0, index);
140
- const referencedType = index === -1 ? ref : ref.substring(index + 1);
141
- return [serviceKey, referencedType];
142
- }
143
- export function isValidServiceId(context, serviceId) {
144
- return serviceId === LOCAL_LAYER_ID || Boolean(context.services?.[serviceId]);
145
- }
146
- export function isValidRefItem(context) {
147
- return (refItem) => {
148
- return isValidServiceId(context, refItem.layerId);
149
- };
150
- }
151
- /**
152
- * Parses and returns a typeName, serviceKey, and potentially a namespace for
153
- * the type.
154
- */
155
- function refExpressionToRefItem(ref, template) {
156
- const [serviceKey, typeName] = splitRefExpression(ref);
157
- return {
158
- shapeName: typeName,
159
- layerId: serviceKey,
160
- template
161
- };
162
- }
163
- export function refToRefItem(context, $ref, template) {
164
- return shapeNameToRefItem(context, $refToShapeName($ref), template);
165
- }
166
- /**
167
- * Parse a name (query, shape, etc) that might have a namespace and find the corresponding service layer id
168
- */
169
- export function parseName(context, name) {
170
- const shapeNameParts = name.split('_');
171
- let layerId;
172
- if (shapeNameParts.length > 1) {
173
- const namespaces = getServiceNamespaces(context);
174
- const maybeNamespace = shapeNameParts[0];
175
- layerId = namespaces.get(maybeNamespace);
176
- if (layerId) {
177
- name = shapeNameParts.slice(1).join('_');
178
- }
179
- }
180
- return {
181
- name,
182
- layerId: layerId ?? LOCAL_LAYER_ID
183
- };
184
- }
185
- function shapeNameToRefItem(context, shapeName, template) {
186
- const parsed = parseName(context, shapeName);
187
- return {
188
- shapeName: parsed.name,
189
- layerId: parsed.layerId,
190
- template
191
- };
192
- }
193
- export function shapeToRefItem(context, shape) {
194
- return shapeNameToRefItem(context, shape.name);
195
- }
196
- export function shapeToRefString(context, shape) {
197
- return serializeRef(shapeNameToRefItem(context, shape.name));
198
- }
199
- /**
200
- * Given a property schema and project schema, finds a `@ref` or `$ref` and
201
- * returns a `RefItem` suitable for loading a referenced schema...
202
- */
203
- export function getRef(context, refSchema) {
204
- if (refSchema['@ref']) {
205
- // @ref: my-service:ShapeName
206
- const { shapeName, template } = parseTemplateShape(refSchema['@ref']);
207
- return refExpressionToRefItem(shapeName, template);
208
- }
209
- if (refSchema.$ref) {
210
- // $ref: #/shapes/[ShapeName OR Namespace_TypeName]/schema
211
- return refToRefItem(context, refSchema.$ref);
212
- }
213
- }
214
- export function getRefWithPath(context, refSchema, schemaPath = []) {
215
- const refItem = getRef(context, refSchema);
216
- if (refItem) {
217
- const refType = refSchema['@ref'] ? '@ref' : '$ref';
218
- return {
219
- ...refItem,
220
- path: schemaPath.concat([refType])
221
- };
222
- }
223
- }
224
- /**
225
- * Tests for a `@ref` or `$ref` property directly on the passed schema.
226
- *
227
- * @param schema Any schema that might could have a ref property.
228
- */
229
- export function hasRefProperty(schema) {
230
- return Boolean(schema['@ref'] ?? schema.$ref);
231
- }
232
- /**
233
- * From a property that has oneOf or items with oneOf, get all refs
234
- */
235
- export function getOneOfRefs(context, propertySchema, schemaPath = []) {
236
- const oneOf = propertySchema.oneOf ?? propertySchema.items?.oneOf;
237
- const path = propertySchema.oneOf ? schemaPath : [...schemaPath, 'items'];
238
- if (oneOf) {
239
- return compact(oneOf.map((one) => {
240
- return getRefWithPath(context, one, path);
241
- }));
242
- }
243
- return [];
244
- }
245
- /**
246
- * From a schema with a ref, will return the top-level ref, and potentially
247
- * a ref item from a nested `items` property.
248
- */
249
- export function getRefOrItemsRef(context, refSchema, schemaPath = []) {
250
- const refItem = getRefWithPath(context, refSchema, schemaPath);
251
- if (refItem) {
252
- return refItem;
253
- }
254
- if (refSchema.items) {
255
- return getRefOrItemsRef(context, refSchema.items, schemaPath.concat(['items']));
256
- }
257
- }
258
- /**
259
- * Turns a `RefItem` into an `@ref`.
260
- */
261
- export function serializeRef(refItem) {
262
- const shapeRef = formatShapeRef(refItem.layerId, refItem.shapeName);
263
- return refItem.template ? createTemplateShapeName(refItem.template, shapeRef) : shapeRef;
264
- }
265
- /**
266
- * Turns a `RefItem` into a standard shape name, namespacing if present.
267
- */
268
- export function refItemToNamespacedShapeName(context, refItem) {
269
- const { shapeName, layerId } = refItem;
270
- const namespace = getNamespace(context, layerId);
271
- return namespace ? `${namespace}_${shapeName}` : shapeName;
272
- }
273
- export function refExpressionToNamespacedName(context, refExpression) {
274
- return refItemToNamespacedShapeName(context, parseRef(context, refExpression));
275
- }
276
- /**
277
- * Turns a `RefItem` into a path suitable for `lodash.get`.
278
- */
279
- export function refItemToShapePath(context, refItem) {
280
- return ['shapes', refItemToNamespacedShapeName(context, refItem)];
281
- }
282
- /**
283
- * Get a Shape referenced by a `RefItem`.
284
- */
285
- export function refItemToShape(context, refItem) {
286
- const shapePath = refItemToShapePath(context, refItem);
287
- return get(context, shapePath);
288
- }
289
- /**
290
- * Get all shapes referenced by a RefItem array.
291
- */
292
- export function refItemListToShapeList(context, refItems) {
293
- return refItems.map((ref) => refItemToShape(context, ref)).filter(isDefined);
294
- }
295
- /**
296
- * Get a shape referenced by a `RefItem`, also returning the path to the new shape.
297
- */
298
- export function refItemToShapeWithPath(context, refItem) {
299
- const shapePath = refItemToShapePath(context, refItem);
300
- const shape = get(context, shapePath);
301
- return shape ? { shape, path: shapePath } : undefined;
302
- }
303
- /**
304
- * Get a Shape schema referenced by a `RefItem`.
305
- */
306
- export function refItemToShapeSchema(context, refItem) {
307
- const shapePath = refItemToShapePath(context, refItem);
308
- return get(context, [...shapePath, 'schema']);
309
- }
310
- /**
311
- * Sugar, for when you really just need a string...
312
- */
313
- export function getRefShapeName(context, refSchema) {
314
- const refItem = getRef(context, refSchema);
315
- return refItem ? refItemToNamespacedShapeName(context, refItem) : undefined;
316
- }
317
- /**
318
- * Sugar, for when you really just need a path...
319
- */
320
- export function refSchemaToShapeSchemaPath(context, refSchema) {
321
- const refItem = getRef(context, refSchema);
322
- return refItem ? [...refItemToShapePath(context, refItem), 'schema'] : undefined;
323
- }
324
- /**
325
- * Helper fn to omit `ref` props from the target schema, and then extend it with the source schema.
326
- */
327
- export const omitRefAndExtend = (targetSchema, sourceSchema) => assign(omit(['@ref', '$ref'], targetSchema), sourceSchema);
328
- /**
329
- * If there is a $ref, this will insert a property schema from the top level
330
- * in place of the reference.
331
- */
332
- export function followRef(context, schema, ref) {
333
- const refItem = ref ?? getRef(context, schema);
334
- if (refItem) {
335
- const referencedSchema = refItemToShapeSchema(context, refItem);
336
- if (referencedSchema) {
337
- return omitRefAndExtend(schema, referencedSchema);
338
- }
339
- }
340
- return schema;
341
- }
342
- /**
343
- * Returns whether a schema has refs.
344
- */
345
- export function hasRef(schema) {
346
- if (isRefSchema(schema) || isRefSchemaLegacy(schema)) {
347
- return true;
348
- }
349
- if (isAllOfSchema(schema)) {
350
- return Boolean(schema.allOf.find(hasRef));
351
- }
352
- if (isOneOfSchema(schema)) {
353
- return Boolean(schema.oneOf.find(hasRef));
354
- }
355
- return false;
356
- }
357
- /**
358
- * Returns whether a schema has refs which can be followed.
359
- */
360
- export function hasResolvableRef(context, schema) {
361
- if (isRefSchema(schema) || isRefSchemaLegacy(schema)) {
362
- const ref = getRef(context, schema);
363
- return Boolean(ref && refItemToShapeSchema(context, ref));
364
- }
365
- if (isAllOfSchema(schema)) {
366
- return Boolean(schema.allOf.find((s) => hasResolvableRef(context, s)));
367
- }
368
- if (isOneOfSchema(schema)) {
369
- return Boolean(schema.oneOf.find((s) => hasResolvableRef(context, s)));
370
- }
371
- return false;
372
- }
373
- function isSelfReferential(path, shapeName) {
374
- if (path[0] !== 'shapes' || path[1] !== shapeName) {
375
- return false;
376
- }
377
- const index = path.findIndex((part) => part === 'allOf' || part === 'extends');
378
- return index !== -1 && isIntegerLike(path[Number(index) + 1]);
379
- }
380
- /**
381
- * Given a schema, will resolve any `allOf` or `ref` objects. This function has
382
- * to fully resolve all refs, because attempting to extend an object schema with
383
- * a ref property would create an invalid schema, potentially containing both
384
- * a ref and properties.
385
- *
386
- * If it can't create a valid schema it returns the input.
387
- */
388
- export function dereferenceSchema(context, shapeOrFieldSchema, schemaPath = []) {
389
- const resolveAll = (propertySchema, resolvePath) => {
390
- try {
391
- if (isAllOfSchema(propertySchema)) {
392
- return merge(propertySchema.allOf, 'allOf', resolvePath);
393
- }
394
- if (isExtendsSchema(propertySchema)) {
395
- return merge(propertySchema.extends, 'extends', resolvePath);
396
- }
397
- if (isRefSchema(propertySchema)) {
398
- const refItem = getRefWithPath(context, propertySchema);
399
- if (!refItem) {
400
- throw new Error('ref could not be parsed');
401
- }
402
- const shapeWithPath = refItemToShapeWithPath(context, refItem);
403
- if (shapeWithPath && !isSelfReferential(resolvePath, shapeWithPath.shape.name)) {
404
- /**
405
- * Pass the new shape's path rather than the parent's path, which
406
- * will have been truncated to something opaque, like `@ref`.
407
- */
408
- return resolveAll(omitRefAndExtend(propertySchema, shapeWithPath.shape.schema), shapeWithPath.path);
409
- }
410
- return;
411
- }
412
- return propertySchema;
413
- }
414
- catch (err) {
415
- throw new Error(`error at '${resolvePath.join('.')}', ${err.message}`);
416
- }
417
- };
418
- const merge = (schemas, propName, path) => {
419
- const resolvedSchemas = schemas.map((schema, index) => {
420
- const resolved = resolveAll(schema, [...path, propName, index]);
421
- return resolved && isObjectSchema(resolved) ? resolved : undefined;
422
- });
423
- return (propName === 'allOf' ? mergeDeepObjectSchemas : mergeObjectSchemas)(...resolvedSchemas);
424
- };
425
- return resolveAll(shapeOrFieldSchema, schemaPath) ?? shapeOrFieldSchema;
426
- }
427
- export function dereferenceObjectSchema(context, shapeOrFieldSchema, schemaPath = []) {
428
- const schema = dereferenceSchema(context, shapeOrFieldSchema, schemaPath);
429
- if (!isObjectSchema(schema)) {
430
- throw new Error(`provided schema at '${schemaPath.join('.')}' could not be resolved to an object schema`);
431
- }
432
- return schema;
433
- }
434
- function getNamespace(context, layerId) {
435
- return context.services?.[layerId]?.namespace;
436
- }
437
- export function createGetNamespace(context) {
438
- return (layerId) => getNamespace(context, layerId);
439
- }
440
- export function parsePropertyRef(refStr) {
441
- const [layerId, coordinate] = splitRefExpression(refStr);
442
- const coordinateParts = coordinate.split('.');
443
- if (coordinateParts.length === 1 && coordinateParts[0]) {
444
- return { layerId, shapeName: 'Query', propertyName: coordinateParts[0] };
445
- }
446
- if (coordinateParts.length === 2) {
447
- return {
448
- layerId,
449
- shapeName: coordinateParts[0],
450
- propertyName: coordinateParts[1]
451
- };
452
- }
453
- }
454
- export function serializePropertyRef({ shapeName, propertyName, layerId }) {
455
- return formatShapeRef(layerId, `${shapeName}.${propertyName}`);
456
- }
457
- export function normalizePropertyRef(refStr) {
458
- const parsed = parsePropertyRef(refStr);
459
- return parsed ? serializePropertyRef(parsed) : refStr;
460
- }
461
- export function propertyRefToShapeRef(propertyRef) {
462
- const parsed = parsePropertyRef(propertyRef);
463
- return parsed && formatShapeRef(parsed.layerId, parsed.shapeName);
464
- }
465
- export function mappingToShapeRefs(prop) {
466
- const mappings = prop['@mapping'];
467
- if (mappings) {
468
- const result = [];
469
- for (const mapping of ensureArray(mappings)) {
470
- const shapeRef = propertyRefToShapeRef(mapping);
471
- if (shapeRef) {
472
- result.push(shapeRef);
473
- }
474
- }
475
- return result;
476
- }
477
- return [];
478
- }
479
- export function formatShapeRef(layerId, shapeName) {
480
- return layerId === LOCAL_LAYER_ID ? shapeName : `${layerId}:${shapeName}`;
481
- }
482
- export function applyNamespace(namespace, name) {
483
- return namespace ? `${namespace}_${name}` : name;
484
- }
485
- export function propertyRefItemToResolverPath(getNamespace, item) {
486
- const path = propertyRefItemToPath(getNamespace, item);
487
- return path.concat(path[0] === 'shapes' ? '@resolver' : 'resolver');
488
- }
489
- export function propertyRefItemToArgsPath(getNamespace, item) {
490
- const path = propertyRefItemToPath(getNamespace, item);
491
- return path.concat(path[0] === 'shapes' ? '@args' : 'args');
492
- }
493
- export function propertyRefItemToPath(getNamespace, item) {
494
- const { shapeName, layerId, propertyName } = item;
495
- const namespace = getNamespace(layerId);
496
- if (shapeName === 'Query' || shapeName === 'Mutation') {
497
- return [shapeName === 'Query' ? 'queries' : 'mutations', applyNamespace(namespace, propertyName)];
498
- }
499
- return ['shapes', applyNamespace(namespace, shapeName), 'schema', 'properties', propertyName];
500
- }
501
- export function propertyRefToArgs(projectSchema, ref) {
502
- const parsed = typeof ref === 'object' ? ref : parsePropertyRef(ref);
503
- if (parsed) {
504
- const path = propertyRefItemToArgsPath(createGetNamespace(projectSchema), parsed);
505
- return get(projectSchema, path);
506
- }
507
- }
508
- /**
509
- * Get a ref to the given shape.
510
- */
511
- export function normalizeRefExpression(context, refExpression) {
512
- return serializeRef(parseRef(context, refExpression));
513
- }
514
- export function normalizeLocalRefString(ref) {
515
- return ref.startsWith('local:') ? ref.substring(6) : ref;
516
- }
517
- export function getAllPropertyRefs(projectSchema) {
518
- const result = [];
519
- const parentIsResolver = (path, resolverName) => {
520
- const parent = get(projectSchema, path.slice(0, -1));
521
- return (isRecord(parent) &&
522
- (Array.isArray(resolverName) ? resolverName.some((name) => name === parent.name) : parent.name === resolverName));
523
- };
524
- const parentIsGenerateState = (path) => {
525
- if (path[0] !== 'agents' || path[path.length - 2] !== 'execution') {
526
- return false;
527
- }
528
- const parent = get(projectSchema, path.slice(0, -1));
529
- return isRecord(parent) && (parent.type === 'generate' || parent.type === 'chat');
530
- };
531
- const pushRef = (refStr) => {
532
- const parsed = parsePropertyRef(refStr);
533
- if (parsed) {
534
- result.push(parsed);
535
- }
536
- };
537
- visit(projectSchema, ['to', 'tools'], (value, path) => {
538
- const propName = path[path.length - 1];
539
- if (propName === 'to' && isString(value) && parentIsResolver(path, 'delegate')) {
540
- pushRef(value);
541
- }
542
- else if (propName === 'tools') {
543
- if (Array.isArray(value) &&
544
- (parentIsGenerateState(path) || parentIsResolver(path, ['ai:generateText', 'ai:chat']))) {
545
- const tools = value;
546
- for (const tool of tools) {
547
- pushRef(getToolRef(tool));
548
- }
549
- }
550
- else if (isRecord(value) && (path[0] === 'agents' || path[0] === 'mcp')) {
551
- for (const tool of Object.values(value)) {
552
- pushRef(tool.ref);
553
- }
554
- }
555
- }
556
- });
557
- return result;
558
- }
559
- export function getQuery(projectSchema, queryRef) {
560
- const propertyRef = parsePropertyRef(queryRef);
561
- if (!propertyRef || (propertyRef.shapeName !== 'Query' && propertyRef.shapeName !== 'Mutation')) {
562
- throw new Error(`Invalid query ref "${queryRef}"`);
563
- }
564
- const path = propertyRefItemToPath(createGetNamespace(projectSchema), propertyRef);
565
- const query = get(projectSchema, path);
566
- return query ? { name: path[path.length - 1], query, ref: propertyRef } : undefined;
567
- }
568
- export function ensureQuery(projectSchema, queryRef) {
569
- const query = getQuery(projectSchema, queryRef);
570
- if (!query) {
571
- throw new NotFoundError(`Query "${queryRef}" not found`);
572
- }
573
- return query;
574
- }
575
- export function normalizeRefs(projectSchema, property) {
576
- return deepCloneWith(property ?? projectSchema, (value, _key, _parent, clone) => {
577
- if (isIterableObject(value)) {
578
- const ref = getRef(projectSchema, value);
579
- if (ref) {
580
- const { $ref, '@output': output, '@input': input, ...newRefSchema } = value;
581
- newRefSchema['@ref'] = serializeRef(ref);
582
- if (output) {
583
- newRefSchema['@output'] = clone(output, '@output', value);
584
- }
585
- if (input) {
586
- newRefSchema['@input'] = clone(input, '@input', value);
587
- }
588
- return newRefSchema;
589
- }
590
- }
591
- });
592
- }
593
- /**
594
- * Get a ShapeJSON from a RefItem, with the schema dereferenced.
595
- */
596
- export function getReferencedShape(projectSchema, refItem, namespace) {
597
- const shape = getShape(projectSchema, applyNamespace(namespace ?? getNamespace(projectSchema, refItem.layerId), refItem.shapeName));
598
- if (shape) {
599
- return {
600
- ...shape,
601
- schema: dereferenceSchema(projectSchema, shape.schema, ['shapes', shape.name])
602
- };
603
- }
604
- }
605
- /**
606
- * Get a PropertySchema from a RefItem.
607
- */
608
- export function getReferencedShapeProperty(projectSchema, refItem, namespace) {
609
- const shape = getReferencedShape(projectSchema, refItem, namespace ?? getNamespace(projectSchema, refItem.layerId));
610
- if (shape && isObjectSchema(shape.schema)) {
611
- return shape.schema.properties[refItem.propertyName];
612
- }
613
- }
614
- export function getToolRef(tool) {
615
- return typeof tool === 'string' ? tool : tool.ref;
616
- }
@@ -1,40 +0,0 @@
1
- import type { Maybe } from '@takeshape/util';
2
- import type { ProjectSchemaJSON, PropertySchema, ShapeJSON, ShapeMap } from './project-schema/index.ts';
3
- import type { LegacyRelationship, PropertySchemaWithRelationship, Relationship, RelationshipEnv, ShapeRefs } from './types/index.ts';
4
- /**
5
- * Turn a LegacyRelationship into a partial PropertySchemaWithRelationship.
6
- */
7
- export declare function getRelationshipSchema(projectSchema: ProjectSchemaJSON, relationship: LegacyRelationship | Relationship): PropertySchemaWithRelationship;
8
- /**
9
- * Get a list of refs given a property schema with a relationship resolver.
10
- */
11
- export declare function getRelationshipShapeRefs(propertySchema: PropertySchemaWithRelationship): ShapeRefs;
12
- /**
13
- * Get a list of shapes given a property schema with a relationship resolver.
14
- */
15
- export declare function getRelationshipShapes(shapes: ShapeMap, refs: ShapeRefs): ShapeJSON[];
16
- /**
17
- * Get a list of shape ids given a property schema with a relationship resolver.
18
- */
19
- export declare function getRelationshipShapeIds(shapes: ShapeMap, refs: ShapeRefs): string[];
20
- /**
21
- * Turn a Relationship into a LegacyRelationship object.
22
- */
23
- export declare function getLegacyRelationship(projectSchema: ProjectSchemaJSON, relationship: Relationship): LegacyRelationship;
24
- /**
25
- * Get relationship details from a PropertySchema.
26
- */
27
- export declare function getRelationship(propertySchema: PropertySchema): Maybe<Relationship>;
28
- export declare function findExistingRelationships(projectSchema: ProjectSchemaJSON, shapes: ShapeMap): Record<string, RelationshipEnv[]>;
29
- /**
30
- * Test whether two PropertySchemas have equal relationships
31
- */
32
- export declare function isEqualRelationship(a: PropertySchema, b: PropertySchema): boolean;
33
- /**
34
- * Test whether an array of PropertySchemas have unequal relationships
35
- */
36
- export declare function hasUnequalRelationships(relationships: PropertySchema[]): boolean;
37
- /**
38
- * Adds backreference fields to the schema.
39
- */
40
- export declare function addRelatedFields(projectSchema: ProjectSchemaJSON, allRelationships: Record<string, RelationshipEnv[]>): ProjectSchemaJSON;