figma-inspect-cli 0.1.0

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 (430) hide show
  1. package/README.md +156 -0
  2. package/dist/bin/figma-inspect.d.ts +3 -0
  3. package/dist/bin/figma-inspect.d.ts.map +1 -0
  4. package/dist/bin/figma-inspect.js +19 -0
  5. package/dist/bin/figma-inspect.js.map +1 -0
  6. package/dist/cli/errors.d.ts +3 -0
  7. package/dist/cli/errors.d.ts.map +1 -0
  8. package/dist/cli/errors.js +3 -0
  9. package/dist/cli/errors.js.map +1 -0
  10. package/dist/cli/export-component-set.d.ts +21 -0
  11. package/dist/cli/export-component-set.d.ts.map +1 -0
  12. package/dist/cli/export-component-set.js +173 -0
  13. package/dist/cli/export-component-set.js.map +1 -0
  14. package/dist/cli/export-contract.d.ts +20 -0
  15. package/dist/cli/export-contract.d.ts.map +1 -0
  16. package/dist/cli/export-contract.js +48 -0
  17. package/dist/cli/export-contract.js.map +1 -0
  18. package/dist/cli/export-node-contract.d.ts +17 -0
  19. package/dist/cli/export-node-contract.d.ts.map +1 -0
  20. package/dist/cli/export-node-contract.js +93 -0
  21. package/dist/cli/export-node-contract.js.map +1 -0
  22. package/dist/cli/export-result.d.ts +17 -0
  23. package/dist/cli/export-result.d.ts.map +1 -0
  24. package/dist/cli/export-result.js +22 -0
  25. package/dist/cli/export-result.js.map +1 -0
  26. package/dist/cli/export-team-index.d.ts +18 -0
  27. package/dist/cli/export-team-index.d.ts.map +1 -0
  28. package/dist/cli/export-team-index.js +121 -0
  29. package/dist/cli/export-team-index.js.map +1 -0
  30. package/dist/cli/index.d.ts +3 -0
  31. package/dist/cli/index.d.ts.map +1 -0
  32. package/dist/cli/index.js +3 -0
  33. package/dist/cli/index.js.map +1 -0
  34. package/dist/cli/output.d.ts +13 -0
  35. package/dist/cli/output.d.ts.map +1 -0
  36. package/dist/cli/output.js +26 -0
  37. package/dist/cli/output.js.map +1 -0
  38. package/dist/cli/parse-args.d.ts +3 -0
  39. package/dist/cli/parse-args.d.ts.map +1 -0
  40. package/dist/cli/parse-args.js +790 -0
  41. package/dist/cli/parse-args.js.map +1 -0
  42. package/dist/cli/run-cli.d.ts +3 -0
  43. package/dist/cli/run-cli.d.ts.map +1 -0
  44. package/dist/cli/run-cli.js +416 -0
  45. package/dist/cli/run-cli.js.map +1 -0
  46. package/dist/cli/types.d.ts +114 -0
  47. package/dist/cli/types.d.ts.map +1 -0
  48. package/dist/cli/types.js +2 -0
  49. package/dist/cli/types.js.map +1 -0
  50. package/dist/cli/usage.d.ts +2 -0
  51. package/dist/cli/usage.d.ts.map +1 -0
  52. package/dist/cli/usage.js +75 -0
  53. package/dist/cli/usage.js.map +1 -0
  54. package/dist/figma-api/cache/cached-request.d.ts +8 -0
  55. package/dist/figma-api/cache/cached-request.d.ts.map +1 -0
  56. package/dist/figma-api/cache/cached-request.js +100 -0
  57. package/dist/figma-api/cache/cached-request.js.map +1 -0
  58. package/dist/figma-api/cache/constants.d.ts +5 -0
  59. package/dist/figma-api/cache/constants.d.ts.map +1 -0
  60. package/dist/figma-api/cache/constants.js +5 -0
  61. package/dist/figma-api/cache/constants.js.map +1 -0
  62. package/dist/figma-api/cache/extract-metadata.d.ts +3 -0
  63. package/dist/figma-api/cache/extract-metadata.d.ts.map +1 -0
  64. package/dist/figma-api/cache/extract-metadata.js +13 -0
  65. package/dist/figma-api/cache/extract-metadata.js.map +1 -0
  66. package/dist/figma-api/cache/index.d.ts +3 -0
  67. package/dist/figma-api/cache/index.d.ts.map +1 -0
  68. package/dist/figma-api/cache/index.js +3 -0
  69. package/dist/figma-api/cache/index.js.map +1 -0
  70. package/dist/figma-api/cache/store.d.ts +10 -0
  71. package/dist/figma-api/cache/store.d.ts.map +1 -0
  72. package/dist/figma-api/cache/store.js +53 -0
  73. package/dist/figma-api/cache/store.js.map +1 -0
  74. package/dist/figma-api/cache/types.d.ts +20 -0
  75. package/dist/figma-api/cache/types.d.ts.map +1 -0
  76. package/dist/figma-api/cache/types.js +2 -0
  77. package/dist/figma-api/cache/types.js.map +1 -0
  78. package/dist/figma-api/cache/url.d.ts +5 -0
  79. package/dist/figma-api/cache/url.d.ts.map +1 -0
  80. package/dist/figma-api/cache/url.js +20 -0
  81. package/dist/figma-api/cache/url.js.map +1 -0
  82. package/dist/figma-api/constants.d.ts +2 -0
  83. package/dist/figma-api/constants.d.ts.map +1 -0
  84. package/dist/figma-api/constants.js +2 -0
  85. package/dist/figma-api/constants.js.map +1 -0
  86. package/dist/figma-api/fetch-with-retry.d.ts +2 -0
  87. package/dist/figma-api/fetch-with-retry.d.ts.map +1 -0
  88. package/dist/figma-api/fetch-with-retry.js +48 -0
  89. package/dist/figma-api/fetch-with-retry.js.map +1 -0
  90. package/dist/figma-api/figma-api-error.d.ts +4 -0
  91. package/dist/figma-api/figma-api-error.d.ts.map +1 -0
  92. package/dist/figma-api/figma-api-error.js +7 -0
  93. package/dist/figma-api/figma-api-error.js.map +1 -0
  94. package/dist/figma-api/figma-request.d.ts +2 -0
  95. package/dist/figma-api/figma-request.d.ts.map +1 -0
  96. package/dist/figma-api/figma-request.js +21 -0
  97. package/dist/figma-api/figma-request.js.map +1 -0
  98. package/dist/figma-api/format-figma-error.d.ts +2 -0
  99. package/dist/figma-api/format-figma-error.d.ts.map +1 -0
  100. package/dist/figma-api/format-figma-error.js +24 -0
  101. package/dist/figma-api/format-figma-error.js.map +1 -0
  102. package/dist/figma-api/get-component-set.d.ts +4 -0
  103. package/dist/figma-api/get-component-set.d.ts.map +1 -0
  104. package/dist/figma-api/get-component-set.js +8 -0
  105. package/dist/figma-api/get-component-set.js.map +1 -0
  106. package/dist/figma-api/get-file-images.d.ts +4 -0
  107. package/dist/figma-api/get-file-images.d.ts.map +1 -0
  108. package/dist/figma-api/get-file-images.js +45 -0
  109. package/dist/figma-api/get-file-images.js.map +1 -0
  110. package/dist/figma-api/get-file-node.d.ts +3 -0
  111. package/dist/figma-api/get-file-node.d.ts.map +1 -0
  112. package/dist/figma-api/get-file-node.js +8 -0
  113. package/dist/figma-api/get-file-node.js.map +1 -0
  114. package/dist/figma-api/get-file.d.ts +3 -0
  115. package/dist/figma-api/get-file.d.ts.map +1 -0
  116. package/dist/figma-api/get-file.js +6 -0
  117. package/dist/figma-api/get-file.js.map +1 -0
  118. package/dist/figma-api/index.d.ts +11 -0
  119. package/dist/figma-api/index.d.ts.map +1 -0
  120. package/dist/figma-api/index.js +11 -0
  121. package/dist/figma-api/index.js.map +1 -0
  122. package/dist/figma-api/list-file-component-sets.d.ts +4 -0
  123. package/dist/figma-api/list-file-component-sets.d.ts.map +1 -0
  124. package/dist/figma-api/list-file-component-sets.js +8 -0
  125. package/dist/figma-api/list-file-component-sets.js.map +1 -0
  126. package/dist/figma-api/list-file-components.d.ts +5 -0
  127. package/dist/figma-api/list-file-components.d.ts.map +1 -0
  128. package/dist/figma-api/list-file-components.js +13 -0
  129. package/dist/figma-api/list-file-components.js.map +1 -0
  130. package/dist/figma-api/list-file-pages.d.ts +4 -0
  131. package/dist/figma-api/list-file-pages.d.ts.map +1 -0
  132. package/dist/figma-api/list-file-pages.js +10 -0
  133. package/dist/figma-api/list-file-pages.js.map +1 -0
  134. package/dist/figma-api/list-project-files.d.ts +4 -0
  135. package/dist/figma-api/list-project-files.d.ts.map +1 -0
  136. package/dist/figma-api/list-project-files.js +8 -0
  137. package/dist/figma-api/list-project-files.js.map +1 -0
  138. package/dist/figma-api/list-team-component-sets.d.ts +4 -0
  139. package/dist/figma-api/list-team-component-sets.d.ts.map +1 -0
  140. package/dist/figma-api/list-team-component-sets.js +19 -0
  141. package/dist/figma-api/list-team-component-sets.js.map +1 -0
  142. package/dist/figma-api/list-team-project-files.d.ts +4 -0
  143. package/dist/figma-api/list-team-project-files.d.ts.map +1 -0
  144. package/dist/figma-api/list-team-project-files.js +19 -0
  145. package/dist/figma-api/list-team-project-files.js.map +1 -0
  146. package/dist/figma-api/list-team-projects.d.ts +4 -0
  147. package/dist/figma-api/list-team-projects.d.ts.map +1 -0
  148. package/dist/figma-api/list-team-projects.js +8 -0
  149. package/dist/figma-api/list-team-projects.js.map +1 -0
  150. package/dist/figma-api/schemas.d.ts +95 -0
  151. package/dist/figma-api/schemas.d.ts.map +1 -0
  152. package/dist/figma-api/schemas.js +154 -0
  153. package/dist/figma-api/schemas.js.map +1 -0
  154. package/dist/figma-api/types.d.ts +60 -0
  155. package/dist/figma-api/types.d.ts.map +1 -0
  156. package/dist/figma-api/types.js +2 -0
  157. package/dist/figma-api/types.js.map +1 -0
  158. package/dist/inspect/component-set-context.d.ts +11 -0
  159. package/dist/inspect/component-set-context.d.ts.map +1 -0
  160. package/dist/inspect/component-set-context.js +71 -0
  161. package/dist/inspect/component-set-context.js.map +1 -0
  162. package/dist/inspect/component-set-lookup.d.ts +6 -0
  163. package/dist/inspect/component-set-lookup.d.ts.map +1 -0
  164. package/dist/inspect/component-set-lookup.js +40 -0
  165. package/dist/inspect/component-set-lookup.js.map +1 -0
  166. package/dist/inspect/component-set-pseudocode/asset-backed-contract.d.ts +3 -0
  167. package/dist/inspect/component-set-pseudocode/asset-backed-contract.d.ts.map +1 -0
  168. package/dist/inspect/component-set-pseudocode/asset-backed-contract.js +34 -0
  169. package/dist/inspect/component-set-pseudocode/asset-backed-contract.js.map +1 -0
  170. package/dist/inspect/component-set-pseudocode/assets-contract.d.ts +9 -0
  171. package/dist/inspect/component-set-pseudocode/assets-contract.d.ts.map +1 -0
  172. package/dist/inspect/component-set-pseudocode/assets-contract.js +4 -0
  173. package/dist/inspect/component-set-pseudocode/assets-contract.js.map +1 -0
  174. package/dist/inspect/component-set-pseudocode/baseline-contract.d.ts +17 -0
  175. package/dist/inspect/component-set-pseudocode/baseline-contract.d.ts.map +1 -0
  176. package/dist/inspect/component-set-pseudocode/baseline-contract.js +67 -0
  177. package/dist/inspect/component-set-pseudocode/baseline-contract.js.map +1 -0
  178. package/dist/inspect/component-set-pseudocode/build-pseudocode.d.ts +24 -0
  179. package/dist/inspect/component-set-pseudocode/build-pseudocode.d.ts.map +1 -0
  180. package/dist/inspect/component-set-pseudocode/build-pseudocode.js +83 -0
  181. package/dist/inspect/component-set-pseudocode/build-pseudocode.js.map +1 -0
  182. package/dist/inspect/component-set-pseudocode/index.d.ts +2 -0
  183. package/dist/inspect/component-set-pseudocode/index.d.ts.map +1 -0
  184. package/dist/inspect/component-set-pseudocode/index.js +2 -0
  185. package/dist/inspect/component-set-pseudocode/index.js.map +1 -0
  186. package/dist/inspect/component-set-pseudocode/infer.d.ts +4 -0
  187. package/dist/inspect/component-set-pseudocode/infer.d.ts.map +1 -0
  188. package/dist/inspect/component-set-pseudocode/infer.js +426 -0
  189. package/dist/inspect/component-set-pseudocode/infer.js.map +1 -0
  190. package/dist/inspect/component-set-pseudocode/meta-contract.d.ts +27 -0
  191. package/dist/inspect/component-set-pseudocode/meta-contract.d.ts.map +1 -0
  192. package/dist/inspect/component-set-pseudocode/meta-contract.js +136 -0
  193. package/dist/inspect/component-set-pseudocode/meta-contract.js.map +1 -0
  194. package/dist/inspect/component-set-pseudocode/slim-node-guards.d.ts +14 -0
  195. package/dist/inspect/component-set-pseudocode/slim-node-guards.d.ts.map +1 -0
  196. package/dist/inspect/component-set-pseudocode/slim-node-guards.js +28 -0
  197. package/dist/inspect/component-set-pseudocode/slim-node-guards.js.map +1 -0
  198. package/dist/inspect/component-set-pseudocode/structure-contract.d.ts +71 -0
  199. package/dist/inspect/component-set-pseudocode/structure-contract.d.ts.map +1 -0
  200. package/dist/inspect/component-set-pseudocode/structure-contract.js +281 -0
  201. package/dist/inspect/component-set-pseudocode/structure-contract.js.map +1 -0
  202. package/dist/inspect/component-set-pseudocode/structure-dsl.d.ts +3 -0
  203. package/dist/inspect/component-set-pseudocode/structure-dsl.d.ts.map +1 -0
  204. package/dist/inspect/component-set-pseudocode/structure-dsl.js +170 -0
  205. package/dist/inspect/component-set-pseudocode/structure-dsl.js.map +1 -0
  206. package/dist/inspect/component-set-pseudocode/types.d.ts +44 -0
  207. package/dist/inspect/component-set-pseudocode/types.d.ts.map +1 -0
  208. package/dist/inspect/component-set-pseudocode/types.js +2 -0
  209. package/dist/inspect/component-set-pseudocode/types.js.map +1 -0
  210. package/dist/inspect/component-set-pseudocode/universal.d.ts +14 -0
  211. package/dist/inspect/component-set-pseudocode/universal.d.ts.map +1 -0
  212. package/dist/inspect/component-set-pseudocode/universal.js +393 -0
  213. package/dist/inspect/component-set-pseudocode/universal.js.map +1 -0
  214. package/dist/inspect/component-set-spec/bound-variables.d.ts +14 -0
  215. package/dist/inspect/component-set-spec/bound-variables.d.ts.map +1 -0
  216. package/dist/inspect/component-set-spec/bound-variables.js +53 -0
  217. package/dist/inspect/component-set-spec/bound-variables.js.map +1 -0
  218. package/dist/inspect/component-set-spec/build-spec.d.ts +9 -0
  219. package/dist/inspect/component-set-spec/build-spec.d.ts.map +1 -0
  220. package/dist/inspect/component-set-spec/build-spec.js +102 -0
  221. package/dist/inspect/component-set-spec/build-spec.js.map +1 -0
  222. package/dist/inspect/component-set-spec/compact-spec.d.ts +3 -0
  223. package/dist/inspect/component-set-spec/compact-spec.d.ts.map +1 -0
  224. package/dist/inspect/component-set-spec/compact-spec.js +357 -0
  225. package/dist/inspect/component-set-spec/compact-spec.js.map +1 -0
  226. package/dist/inspect/component-set-spec/extract-slots.d.ts +5 -0
  227. package/dist/inspect/component-set-spec/extract-slots.d.ts.map +1 -0
  228. package/dist/inspect/component-set-spec/extract-slots.js +57 -0
  229. package/dist/inspect/component-set-spec/extract-slots.js.map +1 -0
  230. package/dist/inspect/component-set-spec/figma-node.d.ts +9 -0
  231. package/dist/inspect/component-set-spec/figma-node.d.ts.map +1 -0
  232. package/dist/inspect/component-set-spec/figma-node.js +31 -0
  233. package/dist/inspect/component-set-spec/figma-node.js.map +1 -0
  234. package/dist/inspect/component-set-spec/index.d.ts +2 -0
  235. package/dist/inspect/component-set-spec/index.d.ts.map +1 -0
  236. package/dist/inspect/component-set-spec/index.js +2 -0
  237. package/dist/inspect/component-set-spec/index.js.map +1 -0
  238. package/dist/inspect/component-set-spec/parse-props.d.ts +9 -0
  239. package/dist/inspect/component-set-spec/parse-props.d.ts.map +1 -0
  240. package/dist/inspect/component-set-spec/parse-props.js +96 -0
  241. package/dist/inspect/component-set-spec/parse-props.js.map +1 -0
  242. package/dist/inspect/component-set-spec/prop-name.d.ts +5 -0
  243. package/dist/inspect/component-set-spec/prop-name.d.ts.map +1 -0
  244. package/dist/inspect/component-set-spec/prop-name.js +26 -0
  245. package/dist/inspect/component-set-spec/prop-name.js.map +1 -0
  246. package/dist/inspect/component-set-spec/resolve-tokens.d.ts +4 -0
  247. package/dist/inspect/component-set-spec/resolve-tokens.d.ts.map +1 -0
  248. package/dist/inspect/component-set-spec/resolve-tokens.js +42 -0
  249. package/dist/inspect/component-set-spec/resolve-tokens.js.map +1 -0
  250. package/dist/inspect/component-set-spec/slim-context.d.ts +6 -0
  251. package/dist/inspect/component-set-spec/slim-context.d.ts.map +1 -0
  252. package/dist/inspect/component-set-spec/slim-context.js +2 -0
  253. package/dist/inspect/component-set-spec/slim-context.js.map +1 -0
  254. package/dist/inspect/component-set-spec/slim-node.d.ts +5 -0
  255. package/dist/inspect/component-set-spec/slim-node.d.ts.map +1 -0
  256. package/dist/inspect/component-set-spec/slim-node.js +393 -0
  257. package/dist/inspect/component-set-spec/slim-node.js.map +1 -0
  258. package/dist/inspect/component-set-spec/slim-text-export.d.ts +8 -0
  259. package/dist/inspect/component-set-spec/slim-text-export.d.ts.map +1 -0
  260. package/dist/inspect/component-set-spec/slim-text-export.js +74 -0
  261. package/dist/inspect/component-set-spec/slim-text-export.js.map +1 -0
  262. package/dist/inspect/component-set-spec/team-component-registry.d.ts +19 -0
  263. package/dist/inspect/component-set-spec/team-component-registry.d.ts.map +1 -0
  264. package/dist/inspect/component-set-spec/team-component-registry.js +96 -0
  265. package/dist/inspect/component-set-spec/team-component-registry.js.map +1 -0
  266. package/dist/inspect/component-set-spec/types.d.ts +127 -0
  267. package/dist/inspect/component-set-spec/types.d.ts.map +1 -0
  268. package/dist/inspect/component-set-spec/types.js +2 -0
  269. package/dist/inspect/component-set-spec/types.js.map +1 -0
  270. package/dist/inspect/component-set-spec/variable-registry.d.ts +8 -0
  271. package/dist/inspect/component-set-spec/variable-registry.d.ts.map +1 -0
  272. package/dist/inspect/component-set-spec/variable-registry.js +74 -0
  273. package/dist/inspect/component-set-spec/variable-registry.js.map +1 -0
  274. package/dist/inspect/component-set-spec/variant-axes.d.ts +2 -0
  275. package/dist/inspect/component-set-spec/variant-axes.d.ts.map +1 -0
  276. package/dist/inspect/component-set-spec/variant-axes.js +14 -0
  277. package/dist/inspect/component-set-spec/variant-axes.js.map +1 -0
  278. package/dist/inspect/contract/contract-format.d.ts +5 -0
  279. package/dist/inspect/contract/contract-format.d.ts.map +1 -0
  280. package/dist/inspect/contract/contract-format.js +26 -0
  281. package/dist/inspect/contract/contract-format.js.map +1 -0
  282. package/dist/inspect/contract/contract-lock.d.ts +75 -0
  283. package/dist/inspect/contract/contract-lock.d.ts.map +1 -0
  284. package/dist/inspect/contract/contract-lock.js +326 -0
  285. package/dist/inspect/contract/contract-lock.js.map +1 -0
  286. package/dist/inspect/contract/contract-schema.d.ts +51 -0
  287. package/dist/inspect/contract/contract-schema.d.ts.map +1 -0
  288. package/dist/inspect/contract/contract-schema.js +130 -0
  289. package/dist/inspect/contract/contract-schema.js.map +1 -0
  290. package/dist/inspect/contract/fingerprint.d.ts +9 -0
  291. package/dist/inspect/contract/fingerprint.d.ts.map +1 -0
  292. package/dist/inspect/contract/fingerprint.js +301 -0
  293. package/dist/inspect/contract/fingerprint.js.map +1 -0
  294. package/dist/inspect/contract/lock-metadata.d.ts +30 -0
  295. package/dist/inspect/contract/lock-metadata.d.ts.map +1 -0
  296. package/dist/inspect/contract/lock-metadata.js +101 -0
  297. package/dist/inspect/contract/lock-metadata.js.map +1 -0
  298. package/dist/inspect/contract/stable-stringify.d.ts +2 -0
  299. package/dist/inspect/contract/stable-stringify.d.ts.map +1 -0
  300. package/dist/inspect/contract/stable-stringify.js +14 -0
  301. package/dist/inspect/contract/stable-stringify.js.map +1 -0
  302. package/dist/inspect/contract/verify-component-contract.d.ts +19 -0
  303. package/dist/inspect/contract/verify-component-contract.d.ts.map +1 -0
  304. package/dist/inspect/contract/verify-component-contract.js +126 -0
  305. package/dist/inspect/contract/verify-component-contract.js.map +1 -0
  306. package/dist/inspect/errors.d.ts +4 -0
  307. package/dist/inspect/errors.d.ts.map +1 -0
  308. package/dist/inspect/errors.js +7 -0
  309. package/dist/inspect/errors.js.map +1 -0
  310. package/dist/inspect/export/assert-asset-exportable.d.ts +3 -0
  311. package/dist/inspect/export/assert-asset-exportable.d.ts.map +1 -0
  312. package/dist/inspect/export/assert-asset-exportable.js +45 -0
  313. package/dist/inspect/export/assert-asset-exportable.js.map +1 -0
  314. package/dist/inspect/export/export-nested-assets.d.ts +94 -0
  315. package/dist/inspect/export/export-nested-assets.d.ts.map +1 -0
  316. package/dist/inspect/export/export-nested-assets.js +333 -0
  317. package/dist/inspect/export/export-nested-assets.js.map +1 -0
  318. package/dist/inspect/export/export-node-preview.d.ts +24 -0
  319. package/dist/inspect/export/export-node-preview.d.ts.map +1 -0
  320. package/dist/inspect/export/export-node-preview.js +34 -0
  321. package/dist/inspect/export/export-node-preview.js.map +1 -0
  322. package/dist/inspect/export/export-variant-assets.d.ts +18 -0
  323. package/dist/inspect/export/export-variant-assets.d.ts.map +1 -0
  324. package/dist/inspect/export/export-variant-assets.js +127 -0
  325. package/dist/inspect/export/export-variant-assets.js.map +1 -0
  326. package/dist/inspect/export/normalize-exported-svg.d.ts +2 -0
  327. package/dist/inspect/export/normalize-exported-svg.d.ts.map +1 -0
  328. package/dist/inspect/export/normalize-exported-svg.js +15 -0
  329. package/dist/inspect/export/normalize-exported-svg.js.map +1 -0
  330. package/dist/inspect/export/rendered-image-bytes.d.ts +4 -0
  331. package/dist/inspect/export/rendered-image-bytes.d.ts.map +1 -0
  332. package/dist/inspect/export/rendered-image-bytes.js +24 -0
  333. package/dist/inspect/export/rendered-image-bytes.js.map +1 -0
  334. package/dist/inspect/export-contract-target.d.ts +7 -0
  335. package/dist/inspect/export-contract-target.d.ts.map +1 -0
  336. package/dist/inspect/export-contract-target.js +33 -0
  337. package/dist/inspect/export-contract-target.js.map +1 -0
  338. package/dist/inspect/fetch-file-entry.d.ts +4 -0
  339. package/dist/inspect/fetch-file-entry.d.ts.map +1 -0
  340. package/dist/inspect/fetch-file-entry.js +7 -0
  341. package/dist/inspect/fetch-file-entry.js.map +1 -0
  342. package/dist/inspect/fetch-file-node-entry.d.ts +4 -0
  343. package/dist/inspect/fetch-file-node-entry.d.ts.map +1 -0
  344. package/dist/inspect/fetch-file-node-entry.js +7 -0
  345. package/dist/inspect/fetch-file-node-entry.js.map +1 -0
  346. package/dist/inspect/figma-node-url.d.ts +3 -0
  347. package/dist/inspect/figma-node-url.d.ts.map +1 -0
  348. package/dist/inspect/figma-node-url.js +30 -0
  349. package/dist/inspect/figma-node-url.js.map +1 -0
  350. package/dist/inspect/get-node-component-set.d.ts +5 -0
  351. package/dist/inspect/get-node-component-set.d.ts.map +1 -0
  352. package/dist/inspect/get-node-component-set.js +10 -0
  353. package/dist/inspect/get-node-component-set.js.map +1 -0
  354. package/dist/inspect/index.d.ts +17 -0
  355. package/dist/inspect/index.d.ts.map +1 -0
  356. package/dist/inspect/index.js +17 -0
  357. package/dist/inspect/index.js.map +1 -0
  358. package/dist/inspect/list-all-component-sets.d.ts +3 -0
  359. package/dist/inspect/list-all-component-sets.d.ts.map +1 -0
  360. package/dist/inspect/list-all-component-sets.js +27 -0
  361. package/dist/inspect/list-all-component-sets.js.map +1 -0
  362. package/dist/inspect/list-component-set-properties.d.ts +4 -0
  363. package/dist/inspect/list-component-set-properties.d.ts.map +1 -0
  364. package/dist/inspect/list-component-set-properties.js +73 -0
  365. package/dist/inspect/list-component-set-properties.js.map +1 -0
  366. package/dist/inspect/node-contract/build-node-contract.d.ts +12 -0
  367. package/dist/inspect/node-contract/build-node-contract.d.ts.map +1 -0
  368. package/dist/inspect/node-contract/build-node-contract.js +212 -0
  369. package/dist/inspect/node-contract/build-node-contract.js.map +1 -0
  370. package/dist/inspect/node-contract/dependencies.d.ts +5 -0
  371. package/dist/inspect/node-contract/dependencies.d.ts.map +1 -0
  372. package/dist/inspect/node-contract/dependencies.js +84 -0
  373. package/dist/inspect/node-contract/dependencies.js.map +1 -0
  374. package/dist/inspect/node-contract/index.d.ts +6 -0
  375. package/dist/inspect/node-contract/index.d.ts.map +1 -0
  376. package/dist/inspect/node-contract/index.js +6 -0
  377. package/dist/inspect/node-contract/index.js.map +1 -0
  378. package/dist/inspect/node-contract/node-kind.d.ts +9 -0
  379. package/dist/inspect/node-contract/node-kind.d.ts.map +1 -0
  380. package/dist/inspect/node-contract/node-kind.js +31 -0
  381. package/dist/inspect/node-contract/node-kind.js.map +1 -0
  382. package/dist/inspect/node-contract/node-lock.d.ts +6 -0
  383. package/dist/inspect/node-contract/node-lock.d.ts.map +1 -0
  384. package/dist/inspect/node-contract/node-lock.js +181 -0
  385. package/dist/inspect/node-contract/node-lock.js.map +1 -0
  386. package/dist/inspect/node-contract/node-schema.d.ts +14 -0
  387. package/dist/inspect/node-contract/node-schema.d.ts.map +1 -0
  388. package/dist/inspect/node-contract/node-schema.js +137 -0
  389. package/dist/inspect/node-contract/node-schema.js.map +1 -0
  390. package/dist/inspect/node-contract/paths.d.ts +10 -0
  391. package/dist/inspect/node-contract/paths.d.ts.map +1 -0
  392. package/dist/inspect/node-contract/paths.js +29 -0
  393. package/dist/inspect/node-contract/paths.js.map +1 -0
  394. package/dist/inspect/node-contract/tokens.d.ts +4 -0
  395. package/dist/inspect/node-contract/tokens.d.ts.map +1 -0
  396. package/dist/inspect/node-contract/tokens.js +30 -0
  397. package/dist/inspect/node-contract/tokens.js.map +1 -0
  398. package/dist/inspect/node-contract/types.d.ts +84 -0
  399. package/dist/inspect/node-contract/types.d.ts.map +1 -0
  400. package/dist/inspect/node-contract/types.js +2 -0
  401. package/dist/inspect/node-contract/types.js.map +1 -0
  402. package/dist/inspect/node-contract/verify-node-contract.d.ts +20 -0
  403. package/dist/inspect/node-contract/verify-node-contract.d.ts.map +1 -0
  404. package/dist/inspect/node-contract/verify-node-contract.js +131 -0
  405. package/dist/inspect/node-contract/verify-node-contract.js.map +1 -0
  406. package/dist/inspect/resolve-team-component-set.d.ts +14 -0
  407. package/dist/inspect/resolve-team-component-set.d.ts.map +1 -0
  408. package/dist/inspect/resolve-team-component-set.js +77 -0
  409. package/dist/inspect/resolve-team-component-set.js.map +1 -0
  410. package/dist/inspect/schemas.d.ts +37 -0
  411. package/dist/inspect/schemas.d.ts.map +1 -0
  412. package/dist/inspect/schemas.js +79 -0
  413. package/dist/inspect/schemas.js.map +1 -0
  414. package/dist/inspect/team-index.d.ts +76 -0
  415. package/dist/inspect/team-index.d.ts.map +1 -0
  416. package/dist/inspect/team-index.js +361 -0
  417. package/dist/inspect/team-index.js.map +1 -0
  418. package/dist/inspect/types.d.ts +46 -0
  419. package/dist/inspect/types.d.ts.map +1 -0
  420. package/dist/inspect/types.js +2 -0
  421. package/dist/inspect/types.js.map +1 -0
  422. package/dist/test/fixtures.d.ts +3 -0
  423. package/dist/test/fixtures.d.ts.map +1 -0
  424. package/dist/test/fixtures.js +6 -0
  425. package/dist/test/fixtures.js.map +1 -0
  426. package/dist/zod/parse-valid-entries.d.ts +4 -0
  427. package/dist/zod/parse-valid-entries.d.ts.map +1 -0
  428. package/dist/zod/parse-valid-entries.js +20 -0
  429. package/dist/zod/parse-valid-entries.js.map +1 -0
  430. package/package.json +39 -0
@@ -0,0 +1,136 @@
1
+ import { instanceSlotKey } from "../component-set-spec/extract-slots.js";
2
+ import { isRecord, readArray, readChildren, readRecord, readString, } from "../component-set-spec/figma-node.js";
3
+ import { FigmaInspectError } from "../errors.js";
4
+ function readPublishedComponentSetKey(definition) {
5
+ const preferredValues = readArray(definition, "preferredValues");
6
+ const first = preferredValues?.find(isRecord);
7
+ if (!first) {
8
+ return undefined;
9
+ }
10
+ if (readString(first, "type") !== "COMPONENT_SET") {
11
+ return undefined;
12
+ }
13
+ return readString(first, "key");
14
+ }
15
+ function addTeamDependency(seen, entry) {
16
+ if (!entry) {
17
+ return;
18
+ }
19
+ seen.set(entry.id, entry);
20
+ }
21
+ function collectPublishedComponentSetDependencies(node, teamComponents, seen) {
22
+ if (readString(node, "type") === "INSTANCE") {
23
+ const name = readString(node, "name");
24
+ if (name) {
25
+ addTeamDependency(seen, teamComponents.findByName(name));
26
+ }
27
+ }
28
+ for (const child of readChildren(node)) {
29
+ collectPublishedComponentSetDependencies(child, teamComponents, seen);
30
+ }
31
+ }
32
+ function resolveComponentEntry(spec, componentSetId, teamComponents) {
33
+ if (!teamComponents) {
34
+ return undefined;
35
+ }
36
+ return (teamComponents.findByName(spec.name) ??
37
+ teamComponents.findById(componentSetId));
38
+ }
39
+ function buildProps(spec) {
40
+ const props = {};
41
+ for (const [name, definition] of Object.entries(spec.props)) {
42
+ const entry = { type: definition.type };
43
+ if (definition.type === "instance") {
44
+ entry.default = name;
45
+ }
46
+ else if (definition.default !== undefined) {
47
+ entry.default = definition.default;
48
+ }
49
+ if (definition.type === "variant" && definition.options) {
50
+ entry.options = [...definition.options];
51
+ }
52
+ props[name] = entry;
53
+ }
54
+ return Object.keys(props).length > 0 ? props : undefined;
55
+ }
56
+ function collectNestedInstanceSlots(node, slots, swapSlotKeys) {
57
+ if (readString(node, "type") === "INSTANCE") {
58
+ const name = readString(node, "name");
59
+ if (name) {
60
+ const slotKey = instanceSlotKey(name);
61
+ if (!swapSlotKeys.has(slotKey) && !slots[slotKey]) {
62
+ slots[slotKey] = {
63
+ kind: "nested",
64
+ component: name,
65
+ };
66
+ }
67
+ }
68
+ }
69
+ for (const child of readChildren(node)) {
70
+ collectNestedInstanceSlots(child, slots, swapSlotKeys);
71
+ }
72
+ }
73
+ function buildSlots(componentSet, spec) {
74
+ const slots = {};
75
+ for (const [name, definition] of Object.entries(spec.props)) {
76
+ if (definition.type === "instance") {
77
+ slots[name] = {
78
+ kind: "swap",
79
+ component: name,
80
+ };
81
+ }
82
+ }
83
+ const swapSlotKeys = new Set(Object.keys(slots));
84
+ for (const variant of readChildren(componentSet)) {
85
+ if (readString(variant, "type") !== "COMPONENT") {
86
+ continue;
87
+ }
88
+ collectNestedInstanceSlots(variant, slots, swapSlotKeys);
89
+ }
90
+ return Object.keys(slots).length > 0 ? slots : undefined;
91
+ }
92
+ function buildDependencies(componentSet, teamComponents, componentEntry) {
93
+ if (!teamComponents) {
94
+ return undefined;
95
+ }
96
+ const seen = new Map();
97
+ const definitions = readRecord(componentSet, "componentPropertyDefinitions");
98
+ if (definitions) {
99
+ for (const rawDefinition of Object.values(definitions)) {
100
+ if (!isRecord(rawDefinition)) {
101
+ continue;
102
+ }
103
+ const componentSetKey = readPublishedComponentSetKey(rawDefinition);
104
+ if (componentSetKey) {
105
+ addTeamDependency(seen, teamComponents.findByKey(componentSetKey));
106
+ }
107
+ }
108
+ }
109
+ collectPublishedComponentSetDependencies(componentSet, teamComponents, seen);
110
+ if (componentEntry) {
111
+ seen.delete(componentEntry.id);
112
+ }
113
+ if (seen.size === 0) {
114
+ return undefined;
115
+ }
116
+ return [...seen.values()].sort((left, right) => left.name.localeCompare(right.name));
117
+ }
118
+ export function buildMetaContract(componentSet, spec, context) {
119
+ const componentSetId = readString(componentSet, "id");
120
+ if (!componentSetId) {
121
+ throw new FigmaInspectError("COMPONENT_SET is missing id.");
122
+ }
123
+ const component = context?.component ??
124
+ resolveComponentEntry(spec, componentSetId, context?.teamComponents);
125
+ const props = buildProps(spec);
126
+ const slots = buildSlots(componentSet, spec);
127
+ const dependencies = buildDependencies(componentSet, context?.teamComponents, component);
128
+ return {
129
+ version: 1,
130
+ ...(component ? { component } : {}),
131
+ ...(props ? { props } : {}),
132
+ ...(slots ? { slots } : {}),
133
+ ...(dependencies ? { dependencies } : {}),
134
+ };
135
+ }
136
+ //# sourceMappingURL=meta-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meta-contract.js","sourceRoot":"","sources":["../../../src/inspect/component-set-pseudocode/meta-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { isRecord } from "../component-set-spec/figma-node.js";
2
+ import type { SlimNode } from "../component-set-spec/types.js";
3
+ export { isRecord };
4
+ export declare function isRef(value: unknown): value is {
5
+ $ref: string;
6
+ };
7
+ export declare function isVar(value: unknown): value is {
8
+ $var: string;
9
+ };
10
+ export declare function isNode(value: unknown): value is SlimNode;
11
+ export declare function nodeKey(node: SlimNode, options?: {
12
+ root?: boolean;
13
+ }): string;
14
+ //# sourceMappingURL=slim-node-guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slim-node-guards.d.ts","sourceRoot":"","sources":["../../../src/inspect/component-set-pseudocode/slim-node-guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAE/D;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAE/D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAExD;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,QAAQ,EACd,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,MAAM,CAcR"}
@@ -0,0 +1,28 @@
1
+ import { isRecord } from "../component-set-spec/figma-node.js";
2
+ import { normalizePropName } from "../component-set-spec/prop-name.js";
3
+ export { isRecord };
4
+ export function isRef(value) {
5
+ return isRecord(value) && typeof value.$ref === "string";
6
+ }
7
+ export function isVar(value) {
8
+ return isRecord(value) && typeof value.$var === "string";
9
+ }
10
+ export function isNode(value) {
11
+ return isRecord(value) && typeof value.type === "string";
12
+ }
13
+ export function nodeKey(node, options = {}) {
14
+ if (options.root) {
15
+ return "root";
16
+ }
17
+ if (typeof node.name === "string" && node.name.length > 0) {
18
+ return normalizePropName(node.name);
19
+ }
20
+ if (typeof node.prop === "string" && node.prop.length > 0) {
21
+ return normalizePropName(node.prop);
22
+ }
23
+ if (node.component && typeof node.component !== "string") {
24
+ return normalizePropName(node.component.name ?? "instance");
25
+ }
26
+ return node.type;
27
+ }
28
+ //# sourceMappingURL=slim-node-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slim-node-guards.js","sourceRoot":"","sources":["../../../src/inspect/component-set-pseudocode/slim-node-guards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAGvE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAEpB,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,IAAc,EACd,UAA8B,EAAE;IAEhC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzD,OAAO,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC"}
@@ -0,0 +1,71 @@
1
+ import type { ComponentSetPropDefinition, ComponentSetSpec } from "../component-set-spec/types.js";
2
+ import type { ContractFormat } from "../contract/contract-format.js";
3
+ import type { PseudocodeModel } from "./types.js";
4
+ export interface StructureContract {
5
+ version: 1;
6
+ component: string;
7
+ contracts: {
8
+ visuals: string;
9
+ geometry: string;
10
+ meta: string;
11
+ };
12
+ props?: Record<string, ComponentSetPropDefinition>;
13
+ variantAxes: Record<string, string[]>;
14
+ baseVariant: Record<string, string>;
15
+ instances: Record<string, {
16
+ swapSet?: string;
17
+ default?: string;
18
+ component?: string;
19
+ }>;
20
+ fragments: Record<string, StructureFragment>;
21
+ templates: Record<string, StructureTemplate>;
22
+ dispatch: StructureDispatchEntry[];
23
+ fallback: string | null;
24
+ assetBacked?: boolean;
25
+ }
26
+ interface StructureFragment {
27
+ when?: StructureWhen[];
28
+ node: StructureNode;
29
+ }
30
+ interface StructureTemplate {
31
+ when?: Record<string, string>;
32
+ root: StructureNode;
33
+ }
34
+ interface StructureDispatchEntry {
35
+ when: Record<string, string>;
36
+ template: string;
37
+ }
38
+ interface StructureWhen {
39
+ prop: string;
40
+ }
41
+ export type StructureNode = StructureElementNode | StructureUseNode | StructureSlotNode;
42
+ interface StructureBinding {
43
+ $ref: string;
44
+ }
45
+ interface StructurePropRef {
46
+ $prop: string;
47
+ }
48
+ interface StructureUseNode {
49
+ $use: string;
50
+ }
51
+ interface StructureSlotNode {
52
+ $slot: string;
53
+ }
54
+ interface StructureElementNode {
55
+ type: string;
56
+ name?: string;
57
+ key: string;
58
+ when?: StructureWhen[];
59
+ content?: StructurePropRef | string;
60
+ instance?: StructurePropRef | string;
61
+ asset?: StructureBinding;
62
+ style?: StructureBinding;
63
+ layout?: StructureBinding;
64
+ children?: StructureNode[];
65
+ }
66
+ export declare function buildStructureContract(model: PseudocodeModel, spec: ComponentSetSpec, options?: {
67
+ assetBacked?: boolean;
68
+ format?: ContractFormat;
69
+ }): StructureContract;
70
+ export {};
71
+ //# sourceMappingURL=structure-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure-contract.d.ts","sourceRoot":"","sources":["../../../src/inspect/component-set-pseudocode/structure-contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,0BAA0B,EAC1B,gBAAgB,EAEjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACnD,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CACf,MAAM,EACN;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAC3D,CAAC;IACF,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC7C,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,aAAa,GACrB,oBAAoB,GACpB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACpC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IACrC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAgRD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,gBAAgB,EACtB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,CAAA;CAAO,GAC/D,iBAAiB,CAqEnB"}
@@ -0,0 +1,281 @@
1
+ import { normalizePropName } from "../component-set-spec/prop-name.js";
2
+ import { contractArtifactFileName } from "../contract/contract-format.js";
3
+ import { isNode, isRef, isVar, nodeKey } from "./slim-node-guards.js";
4
+ function toTagName(raw, fallback) {
5
+ if (!raw) {
6
+ return fallback;
7
+ }
8
+ const words = raw
9
+ .replace(/[^A-Za-z0-9]+/g, " ")
10
+ .trim()
11
+ .split(/\s+/)
12
+ .filter((word) => word.length > 0);
13
+ if (words.length === 0) {
14
+ return fallback;
15
+ }
16
+ return words
17
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
18
+ .join("");
19
+ }
20
+ function stackType(node) {
21
+ const layout = node.layout;
22
+ if (layout?.mode === "row") {
23
+ return "HStack";
24
+ }
25
+ if (layout?.mode === "column") {
26
+ return "VStack";
27
+ }
28
+ return "Box";
29
+ }
30
+ function structureType(node) {
31
+ if (node.type === "text") {
32
+ return "Text";
33
+ }
34
+ if (node.icon) {
35
+ return "Icon";
36
+ }
37
+ if (node.type === "component" && node.component) {
38
+ if (typeof node.component === "string") {
39
+ return toTagName(node.component, "Component");
40
+ }
41
+ return toTagName(node.component.name, "Component");
42
+ }
43
+ if (node.type === "instance" && node.component) {
44
+ if (node.icon) {
45
+ return "Icon";
46
+ }
47
+ if (typeof node.component === "string") {
48
+ return toTagName(node.component, "Instance");
49
+ }
50
+ return toTagName(node.component.name, "Instance");
51
+ }
52
+ if (node.type === "line" ||
53
+ node.type === "vector" ||
54
+ node.type === "rectangle" ||
55
+ node.type === "ellipse") {
56
+ return "Shape";
57
+ }
58
+ if (node.type === "component") {
59
+ return stackType(node);
60
+ }
61
+ return stackType(node);
62
+ }
63
+ function visibleWhen(visible) {
64
+ if (typeof visible !== "string" || visible.length === 0) {
65
+ return undefined;
66
+ }
67
+ return [{ prop: normalizePropName(visible) }];
68
+ }
69
+ function schemeRef(key) {
70
+ return { $ref: `scheme.${key}` };
71
+ }
72
+ function geometryRef(key) {
73
+ return { $ref: `geometry.${key}` };
74
+ }
75
+ function contentRef(node) {
76
+ if (typeof node.prop === "string" && node.prop.length > 0) {
77
+ return { $prop: normalizePropName(node.prop) };
78
+ }
79
+ if (node.text && typeof node.text.content === "string") {
80
+ return node.text.content;
81
+ }
82
+ return undefined;
83
+ }
84
+ function instanceRef(node) {
85
+ if (typeof node.prop === "string" && node.prop.length > 0) {
86
+ return { $prop: normalizePropName(node.prop) };
87
+ }
88
+ if (node.component && typeof node.component !== "string") {
89
+ return node.component.name;
90
+ }
91
+ if (typeof node.component === "string") {
92
+ return node.component;
93
+ }
94
+ if (typeof node.name === "string") {
95
+ return node.name;
96
+ }
97
+ return undefined;
98
+ }
99
+ function convertChild(child, definitions) {
100
+ if (isRef(child)) {
101
+ return { $use: child.$ref };
102
+ }
103
+ if (isVar(child)) {
104
+ return { $slot: child.$var };
105
+ }
106
+ if (!isNode(child)) {
107
+ return { $slot: "unknown" };
108
+ }
109
+ return convertNode(child, definitions);
110
+ }
111
+ function convertNode(node, definitions, options = {}) {
112
+ const key = nodeKey(node, options);
113
+ const element = {
114
+ type: structureType(node),
115
+ key,
116
+ style: schemeRef(key),
117
+ layout: geometryRef(key),
118
+ };
119
+ if (typeof node.name === "string") {
120
+ element.name = node.name;
121
+ }
122
+ const when = visibleWhen(node.visible);
123
+ if (when) {
124
+ element.when = when;
125
+ }
126
+ if (element.type === "Text") {
127
+ const content = contentRef(node);
128
+ if (content !== undefined) {
129
+ element.content = content;
130
+ }
131
+ }
132
+ else if (element.type === "Icon") {
133
+ const instance = instanceRef(node);
134
+ if (instance !== undefined) {
135
+ element.instance = instance;
136
+ }
137
+ }
138
+ else if (element.type !== "HStack" &&
139
+ element.type !== "VStack" &&
140
+ element.type !== "Box" &&
141
+ element.type !== "Shape") {
142
+ const instance = instanceRef(node);
143
+ if (instance !== undefined) {
144
+ element.instance = instance;
145
+ }
146
+ }
147
+ const children = Array.isArray(node.children) ? node.children : [];
148
+ if (children.length > 0) {
149
+ element.children = children.map((child) => convertChild(child, definitions));
150
+ }
151
+ return element;
152
+ }
153
+ function unwrapRoot(node) {
154
+ if (node.type === "component") {
155
+ return {
156
+ ...node,
157
+ type: "frame",
158
+ };
159
+ }
160
+ return node;
161
+ }
162
+ function convertRoot(node, definitions) {
163
+ return convertNode(unwrapRoot(node), definitions, { root: true });
164
+ }
165
+ function findRepresentativeLayout(spec, when) {
166
+ if (!when || Object.keys(when).length === 0) {
167
+ return spec.variants[0]?.layout;
168
+ }
169
+ return spec.variants.find((variant) => Object.entries(when).every(([axis, value]) => variant.when[axis] === value))?.layout;
170
+ }
171
+ function collectInstances(model) {
172
+ const instances = {};
173
+ for (const [name, definition] of Object.entries(model.props)) {
174
+ if (definition.type !== "instance") {
175
+ continue;
176
+ }
177
+ instances[normalizePropName(name)] = {
178
+ default: typeof definition.default === "string" ? definition.default : undefined,
179
+ swapSet: definition.swapSet,
180
+ };
181
+ }
182
+ return instances;
183
+ }
184
+ function convertFragment(node, definitions) {
185
+ const converted = convertNode(unwrapRoot(node), definitions);
186
+ const when = visibleWhen(node.visible);
187
+ return {
188
+ when,
189
+ node: converted,
190
+ };
191
+ }
192
+ function buildAssetBackedStructureContract(model, format) {
193
+ const templateName = "allVariants";
194
+ const root = {
195
+ type: "Asset",
196
+ key: "root",
197
+ asset: { $ref: "asset" },
198
+ layout: geometryRef("root"),
199
+ };
200
+ return {
201
+ version: 1,
202
+ component: model.name,
203
+ contracts: {
204
+ visuals: contractArtifactFileName(model.name, "visuals", format),
205
+ geometry: contractArtifactFileName(model.name, "geometry", format),
206
+ meta: contractArtifactFileName(model.name, "meta", format),
207
+ },
208
+ props: model.props,
209
+ variantAxes: model.variantAxes,
210
+ baseVariant: model.baseVariant,
211
+ instances: collectInstances(model),
212
+ fragments: {},
213
+ templates: {
214
+ [templateName]: {
215
+ root,
216
+ },
217
+ },
218
+ dispatch: [],
219
+ fallback: templateName,
220
+ assetBacked: true,
221
+ };
222
+ }
223
+ export function buildStructureContract(model, spec, options = {}) {
224
+ const format = options.format ?? "yaml";
225
+ if (options.assetBacked) {
226
+ return buildAssetBackedStructureContract(model, format);
227
+ }
228
+ const definitions = {
229
+ ...model.definitions,
230
+ ...Object.fromEntries(model.definitionTemplates.map((template) => [
231
+ template.name,
232
+ template.node,
233
+ ])),
234
+ };
235
+ const fragments = {};
236
+ for (const template of model.definitionTemplates) {
237
+ fragments[template.name] = convertFragment(template.node, definitions);
238
+ }
239
+ for (const [id, node] of Object.entries(model.definitions)) {
240
+ if (fragments[id]) {
241
+ continue;
242
+ }
243
+ fragments[id] = convertFragment(node, definitions);
244
+ }
245
+ const templates = {};
246
+ for (const template of model.templates) {
247
+ const layout = findRepresentativeLayout(spec, template.when);
248
+ if (!layout) {
249
+ continue;
250
+ }
251
+ templates[template.name] = {
252
+ when: template.when,
253
+ root: convertRoot(layout, definitions),
254
+ };
255
+ }
256
+ const dispatch = model.templates
257
+ .filter((template) => template.when && Object.keys(template.when).length > 0)
258
+ .map((template) => ({
259
+ when: template.when ?? {},
260
+ template: template.name,
261
+ }));
262
+ const fallback = model.templates[0]?.name ?? null;
263
+ return {
264
+ version: 1,
265
+ component: model.name,
266
+ contracts: {
267
+ visuals: contractArtifactFileName(model.name, "visuals", format),
268
+ geometry: contractArtifactFileName(model.name, "geometry", format),
269
+ meta: contractArtifactFileName(model.name, "meta", format),
270
+ },
271
+ props: model.props,
272
+ variantAxes: model.variantAxes,
273
+ baseVariant: model.baseVariant,
274
+ instances: collectInstances(model),
275
+ fragments,
276
+ templates,
277
+ dispatch,
278
+ fallback,
279
+ };
280
+ }
281
+ //# sourceMappingURL=structure-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure-contract.js","sourceRoot":"","sources":["../../../src/inspect/component-set-pseudocode/structure-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { StructureContract } from "./structure-contract.js";
2
+ export declare function renderStructureDsl(contract: StructureContract): string;
3
+ //# sourceMappingURL=structure-dsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure-dsl.d.ts","sourceRoot":"","sources":["../../../src/inspect/component-set-pseudocode/structure-dsl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,yBAAyB,CAAC;AA6JhF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CA8DtE"}