@takeshape/schema 11.143.2 → 11.154.1

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
@@ -1,301 +0,0 @@
1
- import { deepClone, isDefined, isRecord } from '@takeshape/util';
2
- import set from 'lodash/set.js';
3
- import uniq from 'lodash/uniq.js';
4
- import minimatch from 'minimatch';
5
- import { parseTemplateShape } from "../refs.js";
6
- import { dereferenceSchema, getArgsReferenceWithPath, getRefOrItemsRef, parseReturnShape, refItemToString, splitAtRef } from "./refs.js";
7
- import { isAllOfSchema, isObjectSchema, isOneOfSchema, isRefSchema } from "./type-utils.js";
8
- import { visitSchemaProperties } from "./visitor.js";
9
- const layerDefaults = {
10
- namespace: '',
11
- visibility: []
12
- };
13
- function filterMap(prefix, fields, filters) {
14
- const result = {};
15
- for (const [name, value] of Object.entries(fields)) {
16
- for (const filter of filters) {
17
- if (minimatch(`${prefix}.${name}`, filter)) {
18
- result[name] = value;
19
- }
20
- }
21
- }
22
- return result;
23
- }
24
- function filterLayer(layerSchema, filters) {
25
- return {
26
- ...layerSchema,
27
- queries: filterMap('queries', layerSchema.queries ?? {}, filters),
28
- mutations: filterMap('mutations', layerSchema.mutations ?? {}, filters),
29
- shapes: filterMap('shapes', layerSchema.shapes ?? {}, filters),
30
- workflows: filterMap('workflows', layerSchema.workflows ?? {}, filters)
31
- };
32
- }
33
- // TODO use non-versioned util eventually
34
- export function isObjectSchemaV4_0_0(maybeObjectSchema) {
35
- return maybeObjectSchema.type === 'object' && isRecord(maybeObjectSchema.properties);
36
- }
37
- function mergeShape(a, b) {
38
- if (b.override === 'extend') {
39
- if (isObjectSchemaV4_0_0(a.schema) && isObjectSchemaV4_0_0(b.schema)) {
40
- const combinedRequired = uniq((a.schema.required ?? []).concat(b.schema.required ?? []));
41
- const combinedSchema = {
42
- type: 'object',
43
- properties: {
44
- ...a.schema.properties,
45
- ...b.schema.properties
46
- }
47
- };
48
- if (combinedRequired.length) {
49
- combinedSchema.required = combinedRequired;
50
- }
51
- return { ...a, ...b, schema: combinedSchema };
52
- }
53
- }
54
- return b;
55
- }
56
- function assignShapes(flattenedShapes, layerShapes) {
57
- for (const [shapeName, shape] of Object.entries(layerShapes)) {
58
- flattenedShapes[shapeName] = flattenedShapes[shapeName] ? mergeShape(flattenedShapes[shapeName], shape) : shape;
59
- }
60
- }
61
- function addRef(refs, ref, predicate) {
62
- if (ref && (!predicate || predicate(ref))) {
63
- refs.push(ref);
64
- }
65
- }
66
- /**
67
- * Walk through a `ProjectSchema` and collect all the `ref`s.
68
- */
69
- export function getAllRefsInShapes(shapes, predicate) {
70
- const items = [];
71
- const shapeVisitor = (schema, schemaPath) => {
72
- if (schema['@args'] && typeof schema['@args'] === 'object') {
73
- visitSchemaProperties(schema['@args'], schemaPath.concat(['@args']), (argSchema, argPath) => {
74
- addRef(items, getRefOrItemsRef(argSchema, argPath), predicate);
75
- });
76
- }
77
- addRef(items, getArgsReferenceWithPath(schema, schemaPath), predicate);
78
- const newPath = schema.items ? schemaPath.concat('items') : schemaPath;
79
- const newSchema = schema.items ?? schema;
80
- if (isRefSchema(newSchema)) {
81
- addRef(items, getRefOrItemsRef(newSchema, newPath), predicate);
82
- }
83
- else if (isObjectSchema(newSchema) || isAllOfSchema(newSchema) || isOneOfSchema(newSchema)) {
84
- visitSchemaProperties(newSchema, newPath, shapeVisitor);
85
- }
86
- };
87
- for (const [shapeName, shape] of Object.entries(shapes)) {
88
- visitSchemaProperties(shape.schema, ['shapes', shapeName, 'schema'], shapeVisitor);
89
- }
90
- return items;
91
- }
92
- /**
93
- * Get all refs
94
- */
95
- export function getAllRefsInQuery(shapes, queryPath, query, predicate) {
96
- const refItems = [];
97
- const propertyVisitor = (propSchema, propSchemaPath) => {
98
- addRef(refItems, getRefOrItemsRef(propSchema, propSchemaPath), predicate);
99
- };
100
- if (query.args && typeof query.args === 'string') {
101
- addRef(refItems, getArgsReferenceWithPath(query, queryPath), predicate);
102
- }
103
- if (query.args && typeof query.args === 'object') {
104
- visitSchemaProperties(dereferenceSchema(shapes, query.args), queryPath, propertyVisitor);
105
- }
106
- if (query.shape) {
107
- const refItem = parseReturnShape(query.shape).ref;
108
- if (refItem) {
109
- addRef(refItems, {
110
- ...refItem,
111
- path: queryPath.concat(['shape'])
112
- }, predicate);
113
- }
114
- }
115
- return refItems;
116
- }
117
- /**
118
- * Collect refs from `queries` or `mutations`.
119
- */
120
- export function getAllRefsInQueries(context, rootPropertyName, predicate) {
121
- const refItems = [];
122
- const rootPath = [rootPropertyName];
123
- for (const [queryName, query] of Object.entries(context[rootPropertyName])) {
124
- const queryPath = rootPath.concat([queryName]);
125
- const queryRefs = getAllRefsInQuery(context.shapes, queryPath, query, predicate);
126
- if (queryRefs.length) {
127
- refItems.push(...queryRefs);
128
- }
129
- }
130
- return refItems;
131
- }
132
- /**
133
- * Get all refs in a ProjectSchema
134
- * @param predicate return true to include the ref in
135
- */
136
- export function getAllRefs(projectSchema, predicate) {
137
- return [
138
- ...getAllRefsInShapes(projectSchema.shapes, predicate),
139
- ...getAllRefsInQueries(projectSchema, 'queries', predicate),
140
- ...getAllRefsInQueries(projectSchema, 'mutations', predicate)
141
- ];
142
- }
143
- export function collectReferencedShapeNames(layerId, refSet) {
144
- const addLayerId = (ref) => ({ ...ref, layerId });
145
- const collect = (schema) => {
146
- const args = schema['@args'];
147
- if (args && typeof args === 'object') {
148
- Object.values(args.properties).forEach(collect);
149
- }
150
- const argsRefItem = getArgsReferenceWithPath(schema);
151
- if (argsRefItem) {
152
- refSet.add(refItemToString(addLayerId(argsRefItem)));
153
- }
154
- const refItem = getRefOrItemsRef(schema);
155
- if (refItem) {
156
- refSet.add(refItemToString(addLayerId(refItem)));
157
- }
158
- };
159
- return collect;
160
- }
161
- function collectServiceRefs(flattenedSchema, getLayer) {
162
- const refs = new Set(getAllRefs(flattenedSchema, (refItem) => refItem.layerId !== 'local').map(refItemToString));
163
- if (refs.size) {
164
- for (const ref of refs) {
165
- const [layerId, shapeName] = splitAtRef(ref);
166
- if (layerId !== 'local') {
167
- const layer = getLayer(layerId);
168
- const shape = layer?.shapes?.[shapeName];
169
- if (shape) {
170
- visitSchemaProperties(shape.schema, ['schema'], collectReferencedShapeNames(layerId, refs));
171
- }
172
- }
173
- }
174
- }
175
- return refs;
176
- }
177
- function ensureServiceLayer(flattenedSchema, layerId) {
178
- flattenedSchema.serviceLayers ||= {};
179
- let serviceLayer = flattenedSchema.serviceLayers[layerId];
180
- if (!serviceLayer) {
181
- serviceLayer = {
182
- layerId,
183
- schemaVersion: '4.0.0',
184
- shapes: {},
185
- queries: {},
186
- mutations: {}
187
- };
188
- flattenedSchema.serviceLayers[layerId] = serviceLayer;
189
- }
190
- return serviceLayer;
191
- }
192
- function rewriteLayerId(localShapes, layerId, query) {
193
- const newQuery = deepClone(query);
194
- const propertyVisitor = (propSchema, propSchemaPath) => {
195
- const ref = (propSchema.items ?? propSchema)['@ref'];
196
- if (ref) {
197
- const [argsLayerId, shapeName] = splitAtRef(ref);
198
- if (argsLayerId === 'local' && !localShapes[shapeName]) {
199
- const path = propSchemaPath.concat(propSchema.items ? ['items', '@ref'] : ['@ref']);
200
- set(newQuery, path, `${layerId}:${shapeName}`);
201
- }
202
- }
203
- };
204
- if (query.args) {
205
- if (typeof query.args === 'string') {
206
- const [argsLayerId, shapeName] = splitAtRef(parseTemplateShape(query.args).shapeName);
207
- if (argsLayerId === 'local' && !localShapes[shapeName]) {
208
- newQuery.args = `${layerId}:${shapeName}`;
209
- }
210
- }
211
- else {
212
- visitSchemaProperties(query.args, ['args'], propertyVisitor);
213
- }
214
- }
215
- if (typeof query.shape === 'string') {
216
- const [argsLayerId, shapeName] = splitAtRef(parseTemplateShape(query.shape).shapeName);
217
- if (argsLayerId === 'local' && !localShapes[shapeName]) {
218
- newQuery.shape = `${layerId}:${shapeName}`;
219
- }
220
- }
221
- else {
222
- const ref = query.shape.items['@ref'];
223
- if (ref) {
224
- const [argsLayerId, shapeName] = splitAtRef(ref);
225
- if (argsLayerId === 'local' && !localShapes[shapeName]) {
226
- set(newQuery, ['shape', 'items', '@ref'], `${layerId}:${shapeName}`);
227
- }
228
- }
229
- }
230
- return newQuery;
231
- }
232
- function assignQueries(localShapes, queries, layerId, layerQueries) {
233
- for (const [queryName, query] of Object.entries(layerQueries)) {
234
- queries[queryName] = rewriteLayerId(localShapes, layerId, query);
235
- }
236
- }
237
- export function flattenSchema(projectSchema, getLayer) {
238
- const { layers, ...rest } = projectSchema;
239
- const flattenedSchema = {
240
- ...rest,
241
- shapes: {},
242
- queries: {},
243
- mutations: {},
244
- workflows: {},
245
- forms: {}
246
- };
247
- const filteredLayers = layers
248
- .reverse()
249
- .map((layer) => {
250
- const config = typeof layer === 'string' ? { ...layerDefaults, id: layer } : layer;
251
- const layerSchema = getLayer(config.id);
252
- if (!layerSchema) {
253
- throw new Error(`Unable to flatten schema for project ${projectSchema.projectId}. Cannot get layer ${config.id}`);
254
- }
255
- return config.visibility?.length ? filterLayer(layerSchema, config.visibility) : undefined;
256
- })
257
- .filter(isDefined);
258
- for (const filteredLayer of filteredLayers) {
259
- const { layerId } = filteredLayer;
260
- // Preserve original queries
261
- if (projectSchema.services?.[layerId]) {
262
- const serviceLayer = ensureServiceLayer(flattenedSchema, layerId);
263
- if (serviceLayer.queries && filteredLayer.queries) {
264
- Object.assign(serviceLayer.queries, filteredLayer.queries);
265
- }
266
- if (serviceLayer.mutations && filteredLayer.mutations) {
267
- Object.assign(serviceLayer.mutations, filteredLayer.mutations);
268
- }
269
- }
270
- if (filteredLayer.workflows) {
271
- Object.assign(flattenedSchema.workflows, filteredLayer.workflows);
272
- }
273
- if (flattenedSchema.forms && filteredLayer.forms) {
274
- Object.assign(flattenedSchema.forms, filteredLayer.forms);
275
- }
276
- if (filteredLayer.shapes) {
277
- assignShapes(flattenedSchema.shapes, filteredLayer.shapes);
278
- }
279
- }
280
- for (const filteredLayer of filteredLayers) {
281
- if (filteredLayer.queries) {
282
- assignQueries(flattenedSchema.shapes, flattenedSchema.queries, filteredLayer.layerId, filteredLayer.queries);
283
- }
284
- if (filteredLayer.mutations) {
285
- assignQueries(flattenedSchema.shapes, flattenedSchema.mutations, filteredLayer.layerId, filteredLayer.mutations);
286
- }
287
- }
288
- // Preserve original service schema shapes
289
- for (const refStr of collectServiceRefs(flattenedSchema, getLayer)) {
290
- const [layerId, shapeName] = splitAtRef(refStr);
291
- if (layerId !== 'local') {
292
- const shape = getLayer(layerId)?.shapes?.[shapeName];
293
- if (shape) {
294
- const serviceLayer = ensureServiceLayer(flattenedSchema, layerId);
295
- serviceLayer.shapes ||= {};
296
- serviceLayer.shapes[shapeName] = shape;
297
- }
298
- }
299
- }
300
- return flattenedSchema;
301
- }
@@ -1,102 +0,0 @@
1
- import type { Maybe } from '@takeshape/util';
2
- import type { PropertySchemaV4_0_0, QueryJSONV4_0_0, ReturnShapeV4_0_0, ShapeJSONV4_0_0, ShapeMapV4_0_0 } from '../project-schema/index.ts';
3
- import type { SchemaPath } from '../types/index.ts';
4
- /**
5
- * This interface describes a parsed `@ref` or `$ref`.
6
- * The intended usage is to convert a schema with a ref to a RefItem which can then
7
- * be passed to the various rich utilities in this file.
8
- */
9
- export type RefItem = {
10
- typeName: string;
11
- layerId: string;
12
- template?: string;
13
- };
14
- /**
15
- * Adds a schema path, needed when visiting a whole schema to report errors.
16
- */
17
- export type RefItemWithPath = {
18
- path: SchemaPath;
19
- } & RefItem;
20
- /**
21
- * Safely turn a "template" shape reference (`@args`, `args`, `shape`) into a `RefItem`
22
- *
23
- * @param context A partial project schema
24
- * @param refExpression
25
- * A ref expression might include "template" name and refer to a local or remote
26
- * shape, `Foo` or `CreateArgs<Foo>` or `CreateArgs<remote:Foo>`.*
27
- */
28
- export declare function refExpressionToRefItem(refExpression: string): RefItem;
29
- /**
30
- * Sugar for converting a `refExpression` directly into a shape, without the
31
- * intermediate `refItem`.
32
- *
33
- * @param context A partial project schema
34
- * @param refExpression
35
- * A ref expression might include "template" name and refer to a local or remote
36
- * shape, `Foo` or `CreateArgs<Foo>` or `CreateArgs<remote:Foo>`.
37
- */
38
- export declare function refExpressionToShape(shapes: ShapeMapV4_0_0, refExpression: string): Maybe<ShapeJSONV4_0_0>;
39
- /**
40
- * Provided a service name and a referenced type. Supports 2 or 3 part
41
- * references, e.g., `shopify:my-store:ProductInput` or `my-store:ProductInput`.
42
- *
43
- * @returns
44
- * A 2 member array, where 0 is the service name, 1 is the referenced type.
45
- */
46
- export declare function splitAtRef(atRef: string): [string, string];
47
- /**
48
- * Parses and returns a typeName, serviceKey, and potentially a namespace for
49
- * the type.
50
- */
51
- export declare function atRefToRefItem(atRef: string, template?: string): RefItem;
52
- /**
53
- * Given a content schema and project schema, finds a `@ref` or `$ref` and
54
- * returns a `RefItem` suitable for loading a referenced schema...
55
- */
56
- export declare function getRef(refSchema: PropertySchemaV4_0_0): Maybe<RefItem>;
57
- export declare function getRefWithPath(refSchema: PropertySchemaV4_0_0, schemaPath?: SchemaPath): Maybe<RefItemWithPath>;
58
- /**
59
- * Tests for a `@ref` or `$ref` property directly on the passed schema.
60
- *
61
- * @param schema Any schema that might could have a ref property.
62
- */
63
- export declare function hasRefProperty(schema: PropertySchemaV4_0_0): boolean;
64
- /**
65
- * From a schema with a ref, will return the top-level ref, and potentially
66
- * a ref item from a nested `items` property.
67
- */
68
- export declare function getRefOrItemsRef(refSchema: PropertySchemaV4_0_0, schemaPath?: SchemaPath): Maybe<RefItemWithPath>;
69
- /**
70
- * Turns a `RefItem` into an `@ref`.
71
- */
72
- export declare function refItemToString(refItem: RefItem): string;
73
- /**
74
- * Get a Shape referenced by a `RefItem`.
75
- */
76
- export declare function refItemToShape(shapes: ShapeMapV4_0_0, refItem: RefItem): Maybe<ShapeJSONV4_0_0>;
77
- /**
78
- * Helper fn to omit `ref` props from the target schema, and then extend it with the source schema.
79
- */
80
- export declare const omitRefAndExtend: (targetSchema: PropertySchemaV4_0_0, sourceSchema: PropertySchemaV4_0_0) => import("lodash").Omit<PropertySchemaV4_0_0, "@ref" | "$ref"> & PropertySchemaV4_0_0;
81
- /**
82
- * If there is a $ref, this will insert a content schema from the top level
83
- * in place of the reference.
84
- */
85
- export declare function followRef(shapes: ShapeMapV4_0_0, contentSchema: PropertySchemaV4_0_0): PropertySchemaV4_0_0;
86
- /**
87
- * Returns whether a schema has refs.
88
- */
89
- export declare function hasRef(contentSchema: PropertySchemaV4_0_0): boolean;
90
- /**
91
- * Returns whether a schema has refs which can be followed.
92
- */
93
- export declare function hasResolvableRef(shapes: ShapeMapV4_0_0, contentSchema: PropertySchemaV4_0_0): boolean;
94
- export declare function getArgsReferenceWithPath(argsSchema: PropertySchemaV4_0_0 | QueryJSONV4_0_0, schemaPath?: SchemaPath): Maybe<RefItemWithPath>;
95
- export declare function dereferenceSchema(shapes: ShapeMapV4_0_0, shapeOrFieldSchema: PropertySchemaV4_0_0, schemaPath?: SchemaPath): PropertySchemaV4_0_0;
96
- export type ParsedReturnShape = {
97
- isArray: boolean;
98
- template?: string;
99
- shapeName: string;
100
- ref?: RefItem;
101
- };
102
- export declare function parseReturnShape(shape: ReturnShapeV4_0_0): ParsedReturnShape;
@@ -1,220 +0,0 @@
1
- import { mergeWithArrayConcat } from '@takeshape/util';
2
- import assign from 'lodash/fp/assign.js';
3
- import omit from 'lodash/fp/omit.js';
4
- import isEmpty from 'lodash/isEmpty.js';
5
- import { parseTemplateShape } from "../refs.js";
6
- import { isAllOfSchema, isOneOfSchema, isRefSchema } from "./type-utils.js";
7
- /**
8
- * Safely turn a "template" shape reference (`@args`, `args`, `shape`) into a `RefItem`
9
- *
10
- * @param context A partial project schema
11
- * @param refExpression
12
- * A ref expression might include "template" name and refer to a local or remote
13
- * shape, `Foo` or `CreateArgs<Foo>` or `CreateArgs<remote:Foo>`.*
14
- */
15
- export function refExpressionToRefItem(refExpression) {
16
- const { shapeName, template } = parseTemplateShape(refExpression);
17
- return atRefToRefItem(shapeName, template);
18
- }
19
- /**
20
- * Sugar for converting a `refExpression` directly into a shape, without the
21
- * intermediate `refItem`.
22
- *
23
- * @param context A partial project schema
24
- * @param refExpression
25
- * A ref expression might include "template" name and refer to a local or remote
26
- * shape, `Foo` or `CreateArgs<Foo>` or `CreateArgs<remote:Foo>`.
27
- */
28
- export function refExpressionToShape(shapes, refExpression) {
29
- return refItemToShape(shapes, refExpressionToRefItem(refExpression));
30
- }
31
- /**
32
- * Provided a service name and a referenced type. Supports 2 or 3 part
33
- * references, e.g., `shopify:my-store:ProductInput` or `my-store:ProductInput`.
34
- *
35
- * @returns
36
- * A 2 member array, where 0 is the service name, 1 is the referenced type.
37
- */
38
- export function splitAtRef(atRef) {
39
- const refParts = atRef.split(':');
40
- if (refParts.length === 1) {
41
- return ['local', atRef];
42
- }
43
- if (refParts.length === 2) {
44
- return [refParts[0], refParts[1]];
45
- }
46
- throw new Error(`Invalid ref string ${atRef}`);
47
- }
48
- /**
49
- * Parses and returns a typeName, serviceKey, and potentially a namespace for
50
- * the type.
51
- */
52
- export function atRefToRefItem(atRef, template) {
53
- const [serviceKey, typeName] = splitAtRef(atRef);
54
- return {
55
- typeName,
56
- layerId: serviceKey,
57
- template
58
- };
59
- }
60
- /**
61
- * Given a content schema and project schema, finds a `@ref` or `$ref` and
62
- * returns a `RefItem` suitable for loading a referenced schema...
63
- */
64
- export function getRef(refSchema) {
65
- if (refSchema['@ref']) {
66
- // @ref: my-service:ShapeName
67
- return atRefToRefItem(refSchema['@ref']);
68
- }
69
- }
70
- export function getRefWithPath(refSchema, schemaPath = []) {
71
- const refItem = getRef(refSchema);
72
- if (refItem) {
73
- return {
74
- ...refItem,
75
- path: schemaPath.concat(['@ref'])
76
- };
77
- }
78
- }
79
- /**
80
- * Tests for a `@ref` or `$ref` property directly on the passed schema.
81
- *
82
- * @param schema Any schema that might could have a ref property.
83
- */
84
- export function hasRefProperty(schema) {
85
- return Boolean(schema['@ref'] ?? schema.$ref);
86
- }
87
- /**
88
- * From a schema with a ref, will return the top-level ref, and potentially
89
- * a ref item from a nested `items` property.
90
- */
91
- export function getRefOrItemsRef(refSchema, schemaPath = []) {
92
- const refItem = getRefWithPath(refSchema, schemaPath);
93
- if (refItem) {
94
- return refItem;
95
- }
96
- if (refSchema.items) {
97
- return getRefOrItemsRef(refSchema.items, schemaPath.concat(['items']));
98
- }
99
- }
100
- /**
101
- * Turns a `RefItem` into an `@ref`.
102
- */
103
- export function refItemToString(refItem) {
104
- return `${refItem.layerId}:${refItem.typeName}`;
105
- }
106
- /**
107
- * Get a Shape referenced by a `RefItem`.
108
- */
109
- export function refItemToShape(shapes, refItem) {
110
- return shapes[refItemToString(refItem)];
111
- }
112
- /**
113
- * Helper fn to omit `ref` props from the target schema, and then extend it with the source schema.
114
- */
115
- export const omitRefAndExtend = (targetSchema, sourceSchema) => assign(omit(['@ref', '$ref'], targetSchema), sourceSchema);
116
- /**
117
- * If there is a $ref, this will insert a content schema from the top level
118
- * in place of the reference.
119
- */
120
- export function followRef(shapes, contentSchema) {
121
- const refItem = getRef(contentSchema);
122
- if (refItem) {
123
- const referencedSchema = refItemToShape(shapes, refItem)?.schema;
124
- if (referencedSchema) {
125
- return omitRefAndExtend(contentSchema, referencedSchema);
126
- }
127
- }
128
- return contentSchema;
129
- }
130
- /**
131
- * Returns whether a schema has refs.
132
- */
133
- export function hasRef(contentSchema) {
134
- if (isRefSchema(contentSchema)) {
135
- return true;
136
- }
137
- if (isAllOfSchema(contentSchema)) {
138
- return Boolean(contentSchema.allOf.find(hasRef));
139
- }
140
- if (isOneOfSchema(contentSchema)) {
141
- return Boolean(contentSchema.oneOf.find(hasRef));
142
- }
143
- return false;
144
- }
145
- /**
146
- * Returns whether a schema has refs which can be followed.
147
- */
148
- export function hasResolvableRef(shapes, contentSchema) {
149
- if (isRefSchema(contentSchema)) {
150
- return Boolean(refItemToShape(shapes, getRef(contentSchema)));
151
- }
152
- if (isAllOfSchema(contentSchema)) {
153
- return Boolean(contentSchema.allOf.find((s) => hasResolvableRef(shapes, s)));
154
- }
155
- if (isOneOfSchema(contentSchema)) {
156
- return Boolean(contentSchema.oneOf.find((s) => hasResolvableRef(shapes, s)));
157
- }
158
- return false;
159
- }
160
- export function getArgsReferenceWithPath(argsSchema, schemaPath = []) {
161
- const isQuery = 'args' in argsSchema;
162
- const args = isQuery ? argsSchema.args : argsSchema['@args'];
163
- const refItem = typeof args === 'string' ? refExpressionToRefItem(args) : undefined;
164
- if (refItem) {
165
- return {
166
- ...refItem,
167
- path: schemaPath.concat([isQuery ? 'args' : '@args'])
168
- };
169
- }
170
- }
171
- /*
172
- * Helper fn to omit `allOf` props from the target schema, and then extend it with the source schema.
173
- */
174
- const omitAllOfAndExtend = (targetSchema, sourceSchema) => assign(omit(['allOf'], targetSchema), sourceSchema);
175
- export function dereferenceSchema(shapes, shapeOrFieldSchema, schemaPath = []) {
176
- const resolveAll = (resolveSchema, resolvePath) => {
177
- try {
178
- if (isAllOfSchema(resolveSchema)) {
179
- const allOfSchema = resolveSchema.allOf
180
- .map((stub, index) => resolveAll(stub, [...resolvePath, 'allOf', index]))
181
- .reduce((prev, curr) => mergeWithArrayConcat(prev, curr), {});
182
- return isEmpty(allOfSchema) ? undefined : omitAllOfAndExtend(resolveSchema, allOfSchema);
183
- }
184
- if (isRefSchema(resolveSchema)) {
185
- const refItem = getRefWithPath(resolveSchema);
186
- if (!refItem) {
187
- throw new Error('ref could not be parsed');
188
- }
189
- const refSchema = refItemToShape(shapes, refItem);
190
- if (refSchema) {
191
- return resolveAll(omitRefAndExtend(resolveSchema, refSchema), refItem.path);
192
- }
193
- return;
194
- }
195
- return resolveSchema;
196
- }
197
- catch (err) {
198
- throw new Error(`error at '${resolvePath.join('.')}', ${err.message}`);
199
- }
200
- };
201
- return resolveAll(shapeOrFieldSchema, schemaPath) ?? shapeOrFieldSchema;
202
- }
203
- export function parseReturnShape(shape) {
204
- if (typeof shape === 'object') {
205
- if (isRefSchema(shape.items)) {
206
- const ref = getRef(shape.items);
207
- if (!ref) {
208
- throw new Error(`Could not parse ${JSON.stringify(shape.items)}: invalid ref`);
209
- }
210
- return { isArray: true, ref, shapeName: refItemToString(ref) };
211
- }
212
- if (typeof shape.items.type !== 'string') {
213
- throw new Error(`Could not parse ${JSON.stringify(shape.items)}: invalid type`);
214
- }
215
- return { isArray: true, shapeName: shape.items.type };
216
- }
217
- const ref = refExpressionToRefItem(shape);
218
- const shapeName = refItemToString(ref);
219
- return { isArray: false, shapeName, ref, template: ref.template };
220
- }
@@ -1,59 +0,0 @@
1
- import type { AllOfSchemaV4_0_0, AwsLambdaResolverV4_0_0, BasicResolverV4_0_0, ComposeResolverV4_0_0, DirectiveConfigV4_0_0, DirectiveMappingArrayV4_0_0, DirectiveMappingMapV4_0_0, GraphqlResolverV4_0_0, ObjectSchemaV4_0_0, OneOfSchemaV4_0_0, ParameterOpMappingV4_0_0, ParameterOpNestedV4_0_0, ParameterOpOpV4_0_0, ParameterOpV4_0_0, ParameterOpValueV4_0_0, ParameterSerializeContentOptionsV4_0_0, ParameterSerializeOptionsV4_0_0, ParameterSerializeStyleOptionsV4_0_0, PropertySchemaV4_0_0, RefSchemaLegacyV4_0_0, RefSchemaV4_0_0, RestResolverV4_0_0, ReturnShapeArraySchemaV4_0_0, TakeshapeResolverV4_0_0, UtilResolverV4_0_0 } from '../project-schema/index.ts';
2
- /** Resolver Type Utils **/
3
- /**
4
- * Only tests that the shape is right, not that the name is correct. That's a job for the validator.
5
- */
6
- export declare function isBasicResolver(resolver: unknown): resolver is BasicResolverV4_0_0;
7
- export declare function isComposeResolver(resolver: unknown): resolver is ComposeResolverV4_0_0;
8
- export declare function isTakeshapeResolver(resolver: BasicResolverV4_0_0): resolver is TakeshapeResolverV4_0_0;
9
- export declare function isGraphqlResolver(resolver: BasicResolverV4_0_0): resolver is GraphqlResolverV4_0_0;
10
- export declare function isRestResolver(resolver: BasicResolverV4_0_0): resolver is RestResolverV4_0_0;
11
- export declare function isAwsLambdaResolver(resolver: BasicResolverV4_0_0): resolver is AwsLambdaResolverV4_0_0;
12
- export declare function isUtilResolver(resolver: BasicResolverV4_0_0): resolver is UtilResolverV4_0_0;
13
- /** Directive Mapping Utils **/
14
- /**
15
- * Determine whether the ambiguous Directive structure is a DirectiveMappingMap
16
- */
17
- export declare function isDirectiveMappingMap(maybeMap: DirectiveMappingMapV4_0_0 | DirectiveMappingArrayV4_0_0 | DirectiveConfigV4_0_0): maybeMap is DirectiveMappingMapV4_0_0;
18
- /**
19
- * Determine whether the ambiguous Directive structure is a DirectiveMappingArray
20
- */
21
- export declare function isDirectiveMappingArray(maybeArray: DirectiveMappingMapV4_0_0 | DirectiveMappingArrayV4_0_0 | DirectiveConfigV4_0_0): maybeArray is DirectiveMappingArrayV4_0_0;
22
- /**
23
- * Determine whether the ambiguous Directive structure is a DirectiveConfig array
24
- */
25
- export declare function isDirectiveConfig(maybeConfig: DirectiveMappingMapV4_0_0 | DirectiveMappingArrayV4_0_0 | DirectiveConfigV4_0_0): maybeConfig is DirectiveConfigV4_0_0;
26
- /**
27
- * Determine whether a ParameterSerializeOption is a content type serializer
28
- */
29
- export declare function isParameterSerializeContentOptions(maybeContent: ParameterSerializeOptionsV4_0_0): maybeContent is ParameterSerializeContentOptionsV4_0_0;
30
- /**
31
- * Determine whether an unknown variable is a `ParameterOp`
32
- */
33
- export declare function isParameterOp(maybeOp: unknown): maybeOp is ParameterOpV4_0_0;
34
- /**
35
- * Determine whether a `ParameterOp` is a `ParameterOpNested`
36
- */
37
- export declare function isParameterOpNested(maybeOp: ParameterOpV4_0_0): maybeOp is ParameterOpNestedV4_0_0;
38
- /**
39
- * Determine whether a `ParameterOp` is a `ParameterOpMapping`
40
- */
41
- export declare function isParameterOpMapping(maybeOp: ParameterOpV4_0_0): maybeOp is ParameterOpMappingV4_0_0;
42
- /**
43
- * Determine whether a `ParameterOp` is a `ParameterOpMapping`
44
- */
45
- export declare function isParameterOpValue(maybeOp: ParameterOpV4_0_0): maybeOp is ParameterOpValueV4_0_0;
46
- /**
47
- * Determine whether a `ParameterOp` is a `ParameterOpOp`
48
- */
49
- export declare function isParameterOpOp(maybeOp: ParameterOpV4_0_0): maybeOp is ParameterOpOpV4_0_0;
50
- /**
51
- * Determine whether a ParameterSerializeOption is a style serializer
52
- */
53
- export declare function isParameterSerializeStyleOptions(maybeStyle: ParameterSerializeOptionsV4_0_0): maybeStyle is ParameterSerializeStyleOptionsV4_0_0;
54
- /** Typeguards for different types of shape schemas **/
55
- export declare function isRefSchema(maybeRefSchema: PropertySchemaV4_0_0): maybeRefSchema is RefSchemaV4_0_0 | RefSchemaLegacyV4_0_0;
56
- export declare function isAllOfSchema(schema: PropertySchemaV4_0_0): schema is AllOfSchemaV4_0_0;
57
- export declare function isOneOfSchema(schema: PropertySchemaV4_0_0): schema is OneOfSchemaV4_0_0;
58
- export declare function isArraySchema(schema: PropertySchemaV4_0_0): schema is ReturnShapeArraySchemaV4_0_0;
59
- export declare function isObjectSchema(schema: PropertySchemaV4_0_0): schema is ObjectSchemaV4_0_0;