@figma/code-connect 1.0.6 → 1.1.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 (167) hide show
  1. package/README.md +48 -541
  2. package/dist/client/figma_client.d.ts +1 -1
  3. package/dist/client/figma_client.js +9 -7
  4. package/dist/client/figma_client.js.map +1 -1
  5. package/dist/commands/connect.d.ts +4 -2
  6. package/dist/commands/connect.d.ts.map +1 -1
  7. package/dist/commands/connect.js +97 -49
  8. package/dist/commands/connect.js.map +1 -1
  9. package/dist/{common → connect}/api.d.ts +6 -87
  10. package/dist/connect/api.d.ts.map +1 -0
  11. package/dist/{common → connect}/api.js.map +1 -1
  12. package/dist/connect/create.d.ts.map +1 -1
  13. package/dist/connect/create.js +4 -0
  14. package/dist/connect/create.js.map +1 -1
  15. package/dist/connect/create_common.d.ts +7 -0
  16. package/dist/connect/create_common.d.ts.map +1 -0
  17. package/dist/connect/create_common.js +19 -0
  18. package/dist/connect/create_common.js.map +1 -0
  19. package/dist/connect/external_types.d.ts +8 -0
  20. package/dist/connect/external_types.d.ts.map +1 -0
  21. package/dist/connect/external_types.js +31 -0
  22. package/dist/connect/external_types.js.map +1 -0
  23. package/dist/connect/figma_connect.d.ts.map +1 -0
  24. package/dist/connect/figma_connect.js.map +1 -0
  25. package/dist/connect/figma_rest_api.d.ts +7 -0
  26. package/dist/connect/figma_rest_api.d.ts.map +1 -1
  27. package/dist/connect/figma_rest_api.js.map +1 -1
  28. package/dist/connect/index_common.d.ts +3 -0
  29. package/dist/connect/index_common.d.ts.map +1 -0
  30. package/dist/connect/index_common.js +23 -0
  31. package/dist/connect/index_common.js.map +1 -0
  32. package/dist/{common → connect}/intrinsics.d.ts +4 -3
  33. package/dist/connect/intrinsics.d.ts.map +1 -0
  34. package/dist/{common → connect}/intrinsics.js +48 -24
  35. package/dist/connect/intrinsics.js.map +1 -0
  36. package/dist/connect/parser_common.d.ts +144 -0
  37. package/dist/connect/parser_common.d.ts.map +1 -0
  38. package/dist/connect/parser_common.js +297 -0
  39. package/dist/connect/parser_common.js.map +1 -0
  40. package/dist/connect/parser_executable_types.d.ts +20 -23
  41. package/dist/connect/parser_executable_types.d.ts.map +1 -1
  42. package/dist/connect/parser_executable_types.js.map +1 -1
  43. package/dist/connect/parser_executables.js +1 -1
  44. package/dist/connect/parser_executables.js.map +1 -1
  45. package/dist/connect/project.d.ts +20 -5
  46. package/dist/connect/project.d.ts.map +1 -1
  47. package/dist/connect/project.js +79 -16
  48. package/dist/connect/project.js.map +1 -1
  49. package/dist/connect/upload.d.ts +1 -1
  50. package/dist/connect/upload.d.ts.map +1 -1
  51. package/dist/connect/validation.d.ts +1 -1
  52. package/dist/connect/validation.d.ts.map +1 -1
  53. package/dist/connect/wizard/helpers.d.ts.map +1 -1
  54. package/dist/connect/wizard/helpers.js +18 -14
  55. package/dist/connect/wizard/helpers.js.map +1 -1
  56. package/dist/connect/wizard/prop_mapping.d.ts +12 -7
  57. package/dist/connect/wizard/prop_mapping.d.ts.map +1 -1
  58. package/dist/connect/wizard/prop_mapping.js +88 -89
  59. package/dist/connect/wizard/prop_mapping.js.map +1 -1
  60. package/dist/connect/wizard/run_wizard.d.ts.map +1 -1
  61. package/dist/connect/wizard/run_wizard.js +8 -3
  62. package/dist/connect/wizard/run_wizard.js.map +1 -1
  63. package/dist/connect/wizard/signature_extraction.d.ts +7 -0
  64. package/dist/connect/wizard/signature_extraction.d.ts.map +1 -0
  65. package/dist/connect/wizard/signature_extraction.js +46 -0
  66. package/dist/connect/wizard/signature_extraction.js.map +1 -0
  67. package/dist/html/__test__/parser/examples/NoConfigObject.figma.d.ts +2 -0
  68. package/dist/html/__test__/parser/examples/NoConfigObject.figma.d.ts.map +1 -0
  69. package/dist/html/__test__/parser/examples/NoConfigObject.figma.js +9 -0
  70. package/dist/html/__test__/parser/examples/NoConfigObject.figma.js.map +1 -0
  71. package/dist/html/__test__/parser/examples/NoExample.figma.d.ts +2 -0
  72. package/dist/html/__test__/parser/examples/NoExample.figma.d.ts.map +1 -0
  73. package/dist/html/__test__/parser/examples/NoExample.figma.js +9 -0
  74. package/dist/html/__test__/parser/examples/NoExample.figma.js.map +1 -0
  75. package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.d.ts +2 -0
  76. package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.d.ts.map +1 -0
  77. package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.js +33 -0
  78. package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.js.map +1 -0
  79. package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.d.ts +2 -0
  80. package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.d.ts.map +1 -0
  81. package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.js +15 -0
  82. package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.js.map +1 -0
  83. package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.d.ts +2 -0
  84. package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.d.ts.map +1 -0
  85. package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.js +15 -0
  86. package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.js.map +1 -0
  87. package/dist/html/__test__/parser/parser.test.d.ts +2 -0
  88. package/dist/html/__test__/parser/parser.test.d.ts.map +1 -0
  89. package/dist/html/__test__/parser/parser.test.js +50 -0
  90. package/dist/html/__test__/parser/parser.test.js.map +1 -0
  91. package/dist/html/create.d.ts +4 -0
  92. package/dist/html/create.d.ts.map +1 -0
  93. package/dist/html/create.js +81 -0
  94. package/dist/html/create.js.map +1 -0
  95. package/dist/html/external.d.ts +8 -0
  96. package/dist/html/external.d.ts.map +1 -0
  97. package/dist/html/external.js +25 -0
  98. package/dist/html/external.js.map +1 -0
  99. package/dist/html/index_html.d.ts +77 -0
  100. package/dist/html/index_html.d.ts.map +1 -0
  101. package/dist/html/index_html.js +42 -0
  102. package/dist/html/index_html.js.map +1 -0
  103. package/dist/html/parser.d.ts +19 -0
  104. package/dist/html/parser.d.ts.map +1 -0
  105. package/dist/html/parser.js +487 -0
  106. package/dist/html/parser.js.map +1 -0
  107. package/dist/html/parser_template_helpers.d.ts +2 -0
  108. package/dist/html/parser_template_helpers.d.ts.map +1 -0
  109. package/dist/html/parser_template_helpers.js +68 -0
  110. package/dist/html/parser_template_helpers.js.map +1 -0
  111. package/dist/html/template_literal.d.ts +5 -0
  112. package/dist/html/template_literal.d.ts.map +1 -0
  113. package/dist/html/template_literal.js +8 -0
  114. package/dist/html/template_literal.js.map +1 -0
  115. package/dist/parser_scripts/get_swift_parser_dir.d.ts +1 -1
  116. package/dist/parser_scripts/get_swift_parser_dir.d.ts.map +1 -1
  117. package/dist/parser_scripts/get_swift_parser_dir.js +38 -10
  118. package/dist/parser_scripts/get_swift_parser_dir.js.map +1 -1
  119. package/dist/react/create.d.ts +5 -0
  120. package/dist/react/create.d.ts.map +1 -1
  121. package/dist/react/create.js +144 -42
  122. package/dist/react/create.js.map +1 -1
  123. package/dist/react/external.d.ts +9 -0
  124. package/dist/react/external.d.ts.map +1 -0
  125. package/dist/{common → react}/external.js +8 -28
  126. package/dist/react/external.js.map +1 -0
  127. package/dist/react/index_react.d.ts +94 -0
  128. package/dist/react/index_react.d.ts.map +1 -0
  129. package/dist/{index.js → react/index_react.js} +5 -19
  130. package/dist/react/index_react.js.map +1 -0
  131. package/dist/react/parser.d.ts +6 -38
  132. package/dist/react/parser.d.ts.map +1 -1
  133. package/dist/react/parser.js +137 -295
  134. package/dist/react/parser.js.map +1 -1
  135. package/dist/react/parser_template_helpers.d.ts +15 -15
  136. package/dist/react/parser_template_helpers.d.ts.map +1 -1
  137. package/dist/react/parser_template_helpers.js +51 -35
  138. package/dist/react/parser_template_helpers.js.map +1 -1
  139. package/dist/storybook/convert.d.ts +1 -1
  140. package/dist/storybook/convert.d.ts.map +1 -1
  141. package/dist/storybook/convert.js +6 -4
  142. package/dist/storybook/convert.js.map +1 -1
  143. package/dist/storybook/external.d.ts +1 -1
  144. package/dist/storybook/external.d.ts.map +1 -1
  145. package/dist/typescript/compiler.d.ts +2 -2
  146. package/dist/typescript/compiler.d.ts.map +1 -1
  147. package/dist/typescript/compiler.js +50 -23
  148. package/dist/typescript/compiler.js.map +1 -1
  149. package/package.json +28 -8
  150. package/dist/common/__test__/project.test.d.ts +0 -2
  151. package/dist/common/__test__/project.test.d.ts.map +0 -1
  152. package/dist/common/__test__/project.test.js +0 -14
  153. package/dist/common/__test__/project.test.js.map +0 -1
  154. package/dist/common/api.d.ts.map +0 -1
  155. package/dist/common/external.d.ts +0 -14
  156. package/dist/common/external.d.ts.map +0 -1
  157. package/dist/common/external.js.map +0 -1
  158. package/dist/common/figma_connect.d.ts.map +0 -1
  159. package/dist/common/figma_connect.js.map +0 -1
  160. package/dist/common/intrinsics.d.ts.map +0 -1
  161. package/dist/common/intrinsics.js.map +0 -1
  162. package/dist/index.d.ts +0 -9
  163. package/dist/index.d.ts.map +0 -1
  164. package/dist/index.js.map +0 -1
  165. /package/dist/{common → connect}/api.js +0 -0
  166. /package/dist/{common → connect}/figma_connect.d.ts +0 -0
  167. /package/dist/{common → connect}/figma_connect.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figma_connect.d.ts","sourceRoot":"","sources":["../../src/connect/figma_connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG;IACpD,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figma_connect.js","sourceRoot":"","sources":["../../src/connect/figma_connect.ts"],"names":[],"mappings":""}
@@ -18,6 +18,13 @@ export declare namespace FigmaRestApi {
18
18
  * All possible values for this property. Only exists on VARIANT properties
19
19
  */
20
20
  variantOptions?: string[];
21
+ /**
22
+ * Only exists on INSTANCE_SWAP properties
23
+ */
24
+ preferredValues?: {
25
+ type: string;
26
+ key: string;
27
+ }[];
21
28
  }
22
29
  interface Node {
23
30
  type: 'COMPONENT' | 'COMPONENT_SET' | 'OTHER';
@@ -1 +1 @@
1
- {"version":3,"file":"figma_rest_api.d.ts","sourceRoot":"","sources":["../../src/connect/figma_rest_api.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,UAE1C;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM;;;;EAM7C;AAGD,yBAAiB,YAAY,CAAC;IAC5B,KAAY,qBAAqB;QAC/B,OAAO,YAAY;QACnB,YAAY,kBAAkB;QAC9B,IAAI,SAAS;QACb,OAAO,YAAY;KACpB;IAED,UAAiB,2BAA2B;QAC1C,YAAY,EAAE,OAAO,GAAG,MAAM,CAAA;QAC9B,IAAI,EAAE,qBAAqB,CAAA;QAC3B;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;KAC1B;IAED,UAAiB,IAAI;QAEnB,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,OAAO,CAAA;QAC7C,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,QAAQ,EAAE,IAAI,EAAE,CAAA;KACjB;IAED,UAAiB,SAAU,SAAQ,IAAI;QACrC,IAAI,EAAE,WAAW,GAAG,eAAe,CAAA;QACnC,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;KAC1E;CACF;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CA8B9F"}
1
+ {"version":3,"file":"figma_rest_api.d.ts","sourceRoot":"","sources":["../../src/connect/figma_rest_api.ts"],"names":[],"mappings":"AAKA,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,UAE1C;AAED,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM;;;;EAM7C;AAGD,yBAAiB,YAAY,CAAC;IAC5B,KAAY,qBAAqB;QAC/B,OAAO,YAAY;QACnB,YAAY,kBAAkB;QAC9B,IAAI,SAAS;QACb,OAAO,YAAY;KACpB;IAED,UAAiB,2BAA2B;QAC1C,YAAY,EAAE,OAAO,GAAG,MAAM,CAAA;QAC9B,IAAI,EAAE,qBAAqB,CAAA;QAC3B;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;QACzB;;WAEG;QACH,eAAe,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAClD;IAED,UAAiB,IAAI;QAEnB,IAAI,EAAE,WAAW,GAAG,eAAe,GAAG,OAAO,CAAA;QAC7C,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,QAAQ,EAAE,IAAI,EAAE,CAAA;KACjB;IAED,UAAiB,SAAU,SAAQ,IAAI;QACrC,IAAI,EAAE,WAAW,GAAG,eAAe,CAAA;QACnC,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAA;KAC1E;CACF;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CA8B9F"}
@@ -1 +1 @@
1
- {"version":3,"file":"figma_rest_api.js","sourceRoot":"","sources":["../../src/connect/figma_rest_api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAC3C,+CAA0C;AAE1C,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAA;AAErD,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,0BAA0B,CAAA;AACnC,CAAC;AAFD,8BAEC;AAED,SAAgB,UAAU,CAAC,WAAmB;IAC5C,OAAO;QACL,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,kBAAkB;QAClC,YAAY,EAAE,oBAAoB,OAAO,EAAE;KAC5C,CAAA;AACH,CAAC;AAND,gCAMC;AAED,mDAAmD;AACnD,IAAiB,YAAY,CA6B5B;AA7BD,WAAiB,YAAY;IAC3B,IAAY,qBAKX;IALD,WAAY,qBAAqB;QAC/B,4CAAmB,CAAA;QACnB,uDAA8B,CAAA;QAC9B,sCAAa,CAAA;QACb,4CAAmB,CAAA;IACrB,CAAC,EALW,qBAAqB,GAArB,kCAAqB,KAArB,kCAAqB,QAKhC;AAuBH,CAAC,EA7BgB,YAAY,4BAAZ,YAAY,QA6B5B;AAEM,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,WAAmB;IAChE,IAAI,CAAC;QACH,gBAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACpC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;SACjC,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,gBAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;YACpE,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CAAC,0DAA0D,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;YACzF,gBAAM,CAAC,KAAK,CAAC,sDAAsD,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;YACnF,OAAO,OAAO,CAAC,MAAM,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAA,oBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,gBAAM,CAAC,KAAK,CACV,uCAAuC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CACtI,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,gBAAM,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YACpE,CAAC;YACD,gBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,EAAE,CAAA;IACzB,CAAC;AACH,CAAC;AA9BD,kCA8BC"}
1
+ {"version":3,"file":"figma_rest_api.js","sourceRoot":"","sources":["../../src/connect/figma_rest_api.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAC3C,+CAA0C;AAE1C,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAA;AAErD,SAAgB,SAAS,CAAC,SAAiB;IACzC,OAAO,0BAA0B,CAAA;AACnC,CAAC;AAFD,8BAEC;AAED,SAAgB,UAAU,CAAC,WAAmB;IAC5C,OAAO;QACL,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,kBAAkB;QAClC,YAAY,EAAE,oBAAoB,OAAO,EAAE;KAC5C,CAAA;AACH,CAAC;AAND,gCAMC;AAED,mDAAmD;AACnD,IAAiB,YAAY,CAiC5B;AAjCD,WAAiB,YAAY;IAC3B,IAAY,qBAKX;IALD,WAAY,qBAAqB;QAC/B,4CAAmB,CAAA;QACnB,uDAA8B,CAAA;QAC9B,sCAAa,CAAA;QACb,4CAAmB,CAAA;IACrB,CAAC,EALW,qBAAqB,GAArB,kCAAqB,KAArB,kCAAqB,QAKhC;AA2BH,CAAC,EAjCgB,YAAY,4BAAZ,YAAY,QAiC5B;AAEM,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,WAAmB;IAChE,IAAI,CAAC;QACH,gBAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACpC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC;SACjC,CAAC,CAAA;QAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,gBAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;YACpE,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CAAC,0DAA0D,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;YACzF,gBAAM,CAAC,KAAK,CAAC,sDAAsD,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;YACnF,OAAO,OAAO,CAAC,MAAM,EAAE,CAAA;QACzB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,IAAA,oBAAY,EAAC,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,gBAAM,CAAC,KAAK,CACV,uCAAuC,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CACtI,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,gBAAM,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YACpE,CAAC;YACD,gBAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,gBAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;QAC1C,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,EAAE,CAAA;IACzB,CAAC;AACH,CAAC;AA9BD,kCA8BC"}
@@ -0,0 +1,3 @@
1
+ import { FigmaConnectClient } from '../client/figma_client';
2
+ export declare function getClient(): FigmaConnectClient;
3
+ //# sourceMappingURL=index_common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index_common.d.ts","sourceRoot":"","sources":["../../src/connect/index_common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAc3D,wBAAgB,SAAS,uBAMxB"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getClient = void 0;
4
+ // `client/external`'s dependency chain ends up including code which is not safe
5
+ // in a browser context, e.g. `child_process`. This would mean that if you
6
+ // co-locate your Code Connect with React components, your app will be broken in
7
+ // a browser, because of this import chain.
8
+ //
9
+ // To get around this, we only import `client/external` if you are in a Node
10
+ // context – it is only used for the icon script, so none of the code which runs
11
+ // in the browser should touch it.
12
+ //
13
+ // Note that you may still see messages from the JS bundler about Node modules,
14
+ // but these won't be included at runtime.
15
+ function getClient() {
16
+ let client = {};
17
+ if (typeof process !== 'undefined' && process.versions && process.versions.node) {
18
+ client = require('./client/external');
19
+ }
20
+ return client;
21
+ }
22
+ exports.getClient = getClient;
23
+ //# sourceMappingURL=index_common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index_common.js","sourceRoot":"","sources":["../../src/connect/index_common.ts"],"names":[],"mappings":";;;AAEA,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAChF,2CAA2C;AAC3C,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,kCAAkC;AAClC,EAAE;AACF,+EAA+E;AAC/E,0CAA0C;AAE1C,SAAgB,SAAS;IACvB,IAAI,MAAM,GAAuB,EAAS,CAAA;IAC1C,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChF,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACvC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAND,8BAMC"}
@@ -1,5 +1,5 @@
1
1
  import * as ts from 'typescript';
2
- import { ParserContext } from '../react/parser';
2
+ import { ParserContext } from './parser_common';
3
3
  import { FCCValue } from '../react/parser_template_helpers';
4
4
  export declare const API_PREFIX = "figma";
5
5
  export declare const FIGMA_CONNECT_CALL = "figma.connect";
@@ -25,11 +25,12 @@ export interface FigmaBoolean extends IntrinsicBase {
25
25
  valueMapping?: Record<'true' | 'false', ValueMappingKind>;
26
26
  };
27
27
  }
28
+ export type ValueMapping = Record<string, ValueMappingKind>;
28
29
  export interface FigmaEnum extends IntrinsicBase {
29
30
  kind: IntrinsicKind.Enum;
30
31
  args: {
31
32
  figmaPropName: string;
32
- valueMapping: Record<string, ValueMappingKind>;
33
+ valueMapping: ValueMapping;
33
34
  };
34
35
  }
35
36
  export interface FigmaString extends IntrinsicBase {
@@ -78,7 +79,7 @@ export type Intrinsic = FigmaBoolean | FigmaEnum | FigmaString | FigmaInstance |
78
79
  * @returns
79
80
  */
80
81
  export declare function parseIntrinsic(exp: ts.CallExpression, parserContext: ParserContext): Intrinsic;
81
- export declare function valueMappingToString(valueMapping: Record<string, ValueMappingKind>, childLayer?: string): string;
82
+ export declare function valueMappingToString(valueMapping: ValueMapping, childLayer?: string): string;
82
83
  export declare function intrinsicToString({ kind, args }: Intrinsic, childLayer?: string): string;
83
84
  /**
84
85
  * Parses the `props` field in a `figma.connect()` call, returning a mapping of
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intrinsics.d.ts","sourceRoot":"","sources":["../../src/connect/intrinsics.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.parsePropsObject = exports.intrinsicToString = exports.valueMappingToString = exports.parseIntrinsic = exports.IntrinsicKind = exports.FIGMA_CONNECT_CALL = exports.API_PREFIX = void 0;
27
27
  const ts = __importStar(require("typescript"));
28
- const parser_1 = require("../react/parser");
28
+ const parser_common_1 = require("./parser_common");
29
29
  const compiler_1 = require("../typescript/compiler");
30
30
  const compiler_2 = require("../typescript/compiler");
31
31
  const compiler_3 = require("../typescript/compiler");
@@ -77,7 +77,7 @@ makeIntrinsic('boolean', (name) => {
77
77
  return {
78
78
  kind: IntrinsicKind.Boolean,
79
79
  args: {
80
- figmaPropName: (0, compiler_1.stripQuotes)(figmaPropNameIdentifier),
80
+ figmaPropName: (0, compiler_1.stripQuotesFromNode)(figmaPropNameIdentifier),
81
81
  valueMapping,
82
82
  },
83
83
  };
@@ -95,7 +95,7 @@ makeIntrinsic('enum', (name) => {
95
95
  return {
96
96
  kind: IntrinsicKind.Enum,
97
97
  args: {
98
- figmaPropName: (0, compiler_1.stripQuotes)(figmaPropNameIdentifier),
98
+ figmaPropName: (0, compiler_1.stripQuotesFromNode)(figmaPropNameIdentifier),
99
99
  valueMapping: parsePropsObject(valueMapping, ctx),
100
100
  },
101
101
  };
@@ -111,7 +111,7 @@ makeIntrinsic('string', (name) => {
111
111
  return {
112
112
  kind: IntrinsicKind.String,
113
113
  args: {
114
- figmaPropName: (0, compiler_1.stripQuotes)(figmaPropNameIdentifier),
114
+ figmaPropName: (0, compiler_1.stripQuotesFromNode)(figmaPropNameIdentifier),
115
115
  },
116
116
  };
117
117
  },
@@ -126,7 +126,7 @@ makeIntrinsic('instance', (name) => {
126
126
  return {
127
127
  kind: IntrinsicKind.Instance,
128
128
  args: {
129
- figmaPropName: (0, compiler_1.stripQuotes)(figmaPropNameIdentifier),
129
+ figmaPropName: (0, compiler_1.stripQuotesFromNode)(figmaPropNameIdentifier),
130
130
  },
131
131
  };
132
132
  },
@@ -139,23 +139,23 @@ makeIntrinsic('children', (name) => {
139
139
  const layerName = exp.arguments?.[0];
140
140
  const layers = [];
141
141
  if (ts.isStringLiteral(layerName)) {
142
- layers.push((0, compiler_1.stripQuotes)(layerName));
142
+ layers.push((0, compiler_1.stripQuotesFromNode)(layerName));
143
143
  }
144
144
  else if (ts.isArrayLiteralExpression(layerName) && layerName.elements.length > 0) {
145
145
  layerName.elements.forEach((el) => {
146
146
  (0, compiler_1.assertIsStringLiteral)(el, sourceFile);
147
- const name = (0, compiler_1.stripQuotes)(el);
147
+ const name = (0, compiler_1.stripQuotesFromNode)(el);
148
148
  if (name.includes('*')) {
149
- throw new parser_1.ParserError(`Wildcards can not be used with an array of strings. Use a single string literal instead.`, {
149
+ throw new parser_common_1.ParserError(`Wildcards can not be used with an array of strings. Use a single string literal instead.`, {
150
150
  node: layerName,
151
151
  sourceFile,
152
152
  });
153
153
  }
154
- layers.push((0, compiler_1.stripQuotes)(el));
154
+ layers.push((0, compiler_1.stripQuotesFromNode)(el));
155
155
  });
156
156
  }
157
157
  else {
158
- throw new parser_1.ParserError(`Invalid argument to ${name}, should be a string literal or an array of strings`, {
158
+ throw new parser_common_1.ParserError(`Invalid argument to ${name}, should be a string literal or an array of strings`, {
159
159
  node: layerName,
160
160
  sourceFile,
161
161
  });
@@ -177,10 +177,17 @@ makeIntrinsic('nestedProps', (name) => {
177
177
  const mapping = exp.arguments?.[1];
178
178
  (0, compiler_1.assertIsStringLiteral)(layerName, sourceFile, `Invalid argument to ${name}, \`layerName\` should be a string literal`);
179
179
  (0, compiler_3.assertIsObjectLiteralExpression)(mapping, sourceFile, `Invalid argument to ${name}, \`props\` should be an object literal`);
180
+ ts.forEachChild(mapping, (node) => {
181
+ if (ts.isPropertyAssignment(node) &&
182
+ ts.isCallExpression(node.initializer) &&
183
+ node.initializer.getText().startsWith('figma.nestedProps')) {
184
+ throw new parser_common_1.ParserError(`nestedProps can not be nested inside another nestedProps call, instead, pass the deeply nested layer name at the top level`);
185
+ }
186
+ });
180
187
  return {
181
188
  kind: IntrinsicKind.NestedProps,
182
189
  args: {
183
- layer: (0, compiler_1.stripQuotes)(layerName),
190
+ layer: (0, compiler_1.stripQuotesFromNode)(layerName),
184
191
  props: parsePropsObject(mapping, ctx),
185
192
  },
186
193
  };
@@ -196,7 +203,7 @@ makeIntrinsic('className', (name) => {
196
203
  (0, compiler_1.assertIsArrayLiteralExpression)(classNameArg, sourceFile, `${name} takes an array of strings`);
197
204
  classNameArg.elements.forEach((el) => {
198
205
  if (ts.isStringLiteral(el)) {
199
- className.push((0, compiler_1.stripQuotes)(el));
206
+ className.push((0, compiler_1.stripQuotesFromNode)(el));
200
207
  }
201
208
  else if (ts.isCallExpression(el)) {
202
209
  className.push(parseIntrinsic(el, ctx));
@@ -220,7 +227,7 @@ makeIntrinsic('textContent', (name) => {
220
227
  return {
221
228
  kind: IntrinsicKind.TextContent,
222
229
  args: {
223
- layer: (0, compiler_1.stripQuotes)(layerNameArg),
230
+ layer: (0, compiler_1.stripQuotesFromNode)(layerNameArg),
224
231
  },
225
232
  };
226
233
  },
@@ -239,7 +246,7 @@ function parseIntrinsic(exp, parserContext) {
239
246
  return Intrinsics[key].parse(exp, parserContext);
240
247
  }
241
248
  }
242
- throw new parser_1.ParserError(`Unknown intrinsic: ${exp.getText()}`, {
249
+ throw new parser_common_1.ParserError(`Unknown intrinsic: ${exp.getText()}`, {
243
250
  node: exp,
244
251
  sourceFile: parserContext.sourceFile,
245
252
  });
@@ -270,26 +277,31 @@ function valueMappingToString(valueMapping, childLayer) {
270
277
  // Mappings can be nested, e.g. an enum value can be figma.instance(...)
271
278
  return `"${key}": ${intrinsicToString(value, childLayer)}`;
272
279
  }
273
- const v = replaceNewlines(value.value);
274
- switch (value.type) {
280
+ // Convert objects to strings
281
+ const str = typeof value.$value === 'string' ? value.$value : `${JSON.stringify(value.$value)}`;
282
+ const v = replaceNewlines(str);
283
+ switch (value.$type) {
275
284
  case 'function':
276
285
  return `"${key}": _fcc_function('${v}')`;
277
286
  case 'identifier':
278
287
  return `"${key}": _fcc_identifier('${v}')`;
279
288
  case 'object':
280
- return `"${key}": _fcc_object('${v}')`;
289
+ // Don't pass the object itself wrapped in quotes - this helper needs to instantiate the actual
290
+ // object, as it may be used in the snippet code
291
+ return `"${key}": _fcc_object(${v})`;
281
292
  case 'template-string':
282
293
  return `"${key}": _fcc_templateString('${v}')`;
283
294
  case 'jsx-element':
284
295
  return `"${key}": _fcc_jsxElement('${v}')`;
285
296
  default:
286
- throw new parser_1.InternalError(`Unknown helper type: ${value}`);
297
+ throw new parser_common_1.InternalError(`Unknown helper type: ${value}`);
287
298
  }
288
299
  })
289
300
  .join(',\n') +
290
301
  '}');
291
302
  }
292
303
  exports.valueMappingToString = valueMappingToString;
304
+ let nestedLayerCount = 0;
293
305
  function intrinsicToString({ kind, args }, childLayer) {
294
306
  const selector = childLayer ?? `figma.currentLayer`;
295
307
  switch (kind) {
@@ -326,16 +338,27 @@ function intrinsicToString({ kind, args }, childLayer) {
326
338
  return `${selector}.__findChildWithCriteria__({ name: '${args.layer}', type: "TEXT" }).__render__()`;
327
339
  }
328
340
  case IntrinsicKind.NestedProps: {
329
- throw new parser_1.ParserError(`Deeply nested props should be expressed on the root level by passing the name of the inner layer`);
341
+ let body = '';
342
+ // the actual layer name in figma could have a bunch of special characters in it,
343
+ // and if we try to normalize it to a valid JS identifier, it could conflict with
344
+ // other variables in the template code. So we generate a unique variable name
345
+ // for each nested layer reference instead. The only reason it's wrapped in a funciton
346
+ // currently is to keep the error checking out of global scope
347
+ const nestedLayerRef = `nestedLayer${nestedLayerCount++}`;
348
+ body += `const ${nestedLayerRef} = figma.currentLayer.__find__("${args.layer}")\n`;
349
+ body += `return ${nestedLayerRef}.type === "ERROR" ? ${nestedLayerRef} : {
350
+ ${Object.entries(args.props).map(([key, intrinsic]) => `${key}: ${intrinsicToString(intrinsic, nestedLayerRef)}\n`)}
351
+ }\n`;
352
+ return `(function () {${body}})()`;
330
353
  }
331
354
  default:
332
- throw new parser_1.InternalError(`Unknown intrinsic: ${kind}`);
355
+ throw new parser_common_1.InternalError(`Unknown intrinsic: ${kind}`);
333
356
  }
334
357
  }
335
358
  exports.intrinsicToString = intrinsicToString;
336
- function expressionToFccEnumValue(valueNode, sourceFile) {
359
+ function expressionToFccEnumValue(valueNode, parserContext) {
337
360
  if (ts.isParenthesizedExpression(valueNode)) {
338
- return expressionToFccEnumValue(valueNode.expression, sourceFile);
361
+ return expressionToFccEnumValue(valueNode.expression, parserContext);
339
362
  }
340
363
  if (ts.isJsxElement(valueNode) || ts.isJsxSelfClosingElement(valueNode)) {
341
364
  return (0, parser_template_helpers_1._fcc_jsxElement)(valueNode.getText());
@@ -344,7 +367,8 @@ function expressionToFccEnumValue(valueNode, sourceFile) {
344
367
  return (0, parser_template_helpers_1._fcc_function)(valueNode.getText());
345
368
  }
346
369
  if (ts.isObjectLiteralExpression(valueNode)) {
347
- return (0, parser_template_helpers_1._fcc_object)(valueNode.getText());
370
+ // should recursively convert to FCC
371
+ return (0, parser_template_helpers_1._fcc_object)(parsePropsObject(valueNode, parserContext));
348
372
  }
349
373
  if (ts.isTemplateLiteral(valueNode)) {
350
374
  const str = valueNode.getText().replaceAll('`', '');
@@ -370,7 +394,7 @@ function parsePropsObject(objectLiteral, parserContext) {
370
394
  if (ts.isCallExpression(valueNode)) {
371
395
  return parseIntrinsic(valueNode, parserContext);
372
396
  }
373
- return expressionToFccEnumValue(valueNode, sourceFile);
397
+ return expressionToFccEnumValue(valueNode, parserContext);
374
398
  });
375
399
  }
376
400
  exports.parsePropsObject = parsePropsObject;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intrinsics.js","sourceRoot":"","sources":["../../src/connect/intrinsics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ import ts from 'typescript';
2
+ import { PropMappings } from './intrinsics';
3
+ import { BaseCodeConnectConfig } from './project';
4
+ import { CodeConnectJSON } from './figma_connect';
5
+ interface ParserErrorContext {
6
+ sourceFile: ts.SourceFile;
7
+ node: ts.Node | undefined;
8
+ }
9
+ export declare function getPositionInSourceFile(node: ts.Node, sourceFile: ts.SourceFile): ts.LineAndCharacter;
10
+ export declare class ParserError extends Error {
11
+ sourceFilePosition: ts.LineAndCharacter | null;
12
+ sourceFileName: string;
13
+ constructor(message: string, context?: ParserErrorContext);
14
+ toString(): string;
15
+ toDebugString(): string;
16
+ }
17
+ export declare class InternalError extends ParserError {
18
+ constructor(message: string);
19
+ }
20
+ export interface ParserContext {
21
+ checker: ts.TypeChecker;
22
+ sourceFile: ts.SourceFile;
23
+ resolvedImports: Record<string, string>;
24
+ config: any;
25
+ absPath: string;
26
+ }
27
+ /**
28
+ * Factory to create a function that is used to create `__PROP__(propName)`
29
+ * function nodes, which are used to replace prop references and ultimately
30
+ * replaced.
31
+ *
32
+ * @returns Function to create `__PROP__(propName)` function nodes
33
+ */
34
+ export declare function makeCreatePropPlaceholder({ propMappings, referencedProps, sourceFile, }: {
35
+ /** The prop mappings object */
36
+ propMappings: PropMappings | undefined;
37
+ /** The set of referenced props in the current example */
38
+ referencedProps: Set<string>;
39
+ /** The source file */
40
+ sourceFile: ts.SourceFile;
41
+ }): ({ name, node, wrapInJsxExpression, }: {
42
+ /** The prop name */
43
+ name: string;
44
+ /** The props node, used for error reporting */
45
+ node: ts.Node;
46
+ /** Whether to wrap the placeholder in a JSX expression node */
47
+ wrapInJsxExpression?: boolean | undefined;
48
+ }) => ts.CallExpression | ts.JsxExpression;
49
+ /**
50
+ * TS AST visitor function for use with example functions, which replaces
51
+ * references to the `props` argument in various forms in the example code with
52
+ * `__PROP__(propName)` placeholders (created with a createPropPlaceholder
53
+ * function).
54
+ *
55
+ * This is called when transforming the TS AST, and allows us to normalise the
56
+ * different forms of supported prop references into a single representation,
57
+ * which we can then handle consistently (currently we replace the placeholders,
58
+ * using a regex).
59
+ *
60
+ * @returns Placeholder node, or undefined if the node is not a supported prop
61
+ * reference (which results in no transformation)
62
+ */
63
+ export declare function visitPropReferencingNode({ propsParameter, node, createPropPlaceholder, useJsx, }: {
64
+ /** The props function parameter node */
65
+ propsParameter: ts.ParameterDeclaration;
66
+ /** The node to visit */
67
+ node: ts.Node;
68
+ /**
69
+ * The function to create `__PROP__(propName)` function nodes, created by
70
+ * `baseCreatePropPlaceholder`
71
+ * */
72
+ createPropPlaceholder: ReturnType<typeof makeCreatePropPlaceholder>;
73
+ /** Whether to support JSX syntax or not */
74
+ useJsx?: boolean;
75
+ }): ts.Expression | undefined;
76
+ /**
77
+ * Get template code to create variables referencing the props in the prop
78
+ * mappings. This converts the prop mappings into JS calls like `const propName
79
+ * = figma.properties.string('Prop Name')`, which can then be prepended to the
80
+ * template code.
81
+ *
82
+ * @returns Template code string
83
+ */
84
+ export declare function getReferencedPropsForTemplate({ propMappings, referencedProps, exp, sourceFile, }: {
85
+ /** The prop mappings object */
86
+ propMappings: PropMappings | undefined;
87
+ /** The set of referenced props */
88
+ referencedProps: Set<string>;
89
+ /** The top level node, used for error reporting */
90
+ exp: ts.Node;
91
+ /** The source file */
92
+ sourceFile: ts.SourceFile;
93
+ }): string;
94
+ /**
95
+ * Checks if a file contains Code Connect by looking for the `figma.connect()` function call
96
+ */
97
+ export declare function isFigmaConnectFile(program: ts.Program, file: string, extension: string): boolean;
98
+ /**
99
+ * Checks if an AST node is a `figma.connect()` call
100
+ *
101
+ * @param node AST node
102
+ * @param sourceFile Source file
103
+ * @returns True if the node is a `figma.connect()` call
104
+ */
105
+ export declare function isFigmaConnectCall(node: ts.Node, sourceFile: ts.SourceFile): node is ts.CallExpression;
106
+ export declare function findDescendants(node: ts.Node, cb: (node: ts.Node) => boolean): ts.Node[];
107
+ /**
108
+ * Parses the `links` field of a `figma.connect()` call
109
+ *
110
+ * @param linksArray an ArrayLiteralExpression
111
+ * @param parserContext Parser context
112
+ * @returns An array of link objects
113
+ */
114
+ export declare function parseLinks(linksArray: ts.ArrayLiteralExpression, parserContext: ParserContext): {
115
+ name: string;
116
+ url: string;
117
+ }[];
118
+ export declare function parseVariant(variantMap: ts.ObjectLiteralExpression, sourceFile: ts.SourceFile, checker: ts.TypeChecker): Record<string, any>;
119
+ /**
120
+ * Parses the `imports` field of a `figma.connect()` call
121
+ *
122
+ * @param importsArray an ArrayLiteralExpression
123
+ * @param parserContext Parser context
124
+ * @returns An array of link objects
125
+ */
126
+ export declare function parseImports(importsArray: ts.ArrayLiteralExpression, parserContext: ParserContext): string[];
127
+ export type ParseOptions = {
128
+ repoUrl?: string;
129
+ debug?: boolean;
130
+ silent?: boolean;
131
+ };
132
+ export type ParseFn = (node: ts.CallExpression, parserContext: ParserContext, { repoUrl, silent }: ParseOptions) => Promise<CodeConnectJSON>;
133
+ export type ResolveImportsFn = (program: ts.Program, sourceFile: ts.SourceFile) => Record<string, string>;
134
+ export declare function parseCodeConnect<T extends BaseCodeConnectConfig>({ program, file, config, absPath, parseFn, resolveImportsFn, parseOptions, }: {
135
+ program: ts.Program;
136
+ file: string;
137
+ config: T;
138
+ absPath: string;
139
+ parseFn: ParseFn;
140
+ resolveImportsFn?: ResolveImportsFn;
141
+ parseOptions?: ParseOptions;
142
+ }): Promise<any[]>;
143
+ export {};
144
+ //# sourceMappingURL=parser_common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser_common.d.ts","sourceRoot":"","sources":["../../src/connect/parser_common.ts"],"names":[],"mappings":"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"}