@figma/code-connect 1.0.6 → 1.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 (156) hide show
  1. package/README.md +2 -595
  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/project.d.ts +86 -0
  10. package/dist/common/project.d.ts.map +1 -0
  11. package/dist/common/project.js +138 -0
  12. package/dist/common/project.js.map +1 -0
  13. package/dist/connect/api.d.ts +143 -0
  14. package/dist/connect/api.d.ts.map +1 -0
  15. package/dist/connect/api.js +3 -0
  16. package/dist/connect/api.js.map +1 -0
  17. package/dist/connect/create.d.ts.map +1 -1
  18. package/dist/connect/create.js +4 -0
  19. package/dist/connect/create.js.map +1 -1
  20. package/dist/connect/create_common.d.ts +7 -0
  21. package/dist/connect/create_common.d.ts.map +1 -0
  22. package/dist/connect/create_common.js +19 -0
  23. package/dist/connect/create_common.js.map +1 -0
  24. package/dist/connect/external_types.d.ts +8 -0
  25. package/dist/connect/external_types.d.ts.map +1 -0
  26. package/dist/connect/external_types.js +31 -0
  27. package/dist/connect/external_types.js.map +1 -0
  28. package/dist/connect/figma_connect.d.ts +26 -0
  29. package/dist/connect/figma_connect.d.ts.map +1 -0
  30. package/dist/connect/figma_connect.js +3 -0
  31. package/dist/connect/figma_connect.js.map +1 -0
  32. package/dist/connect/figma_rest_api.d.ts +7 -0
  33. package/dist/connect/figma_rest_api.d.ts.map +1 -1
  34. package/dist/connect/figma_rest_api.js.map +1 -1
  35. package/dist/connect/index_common.d.ts +3 -0
  36. package/dist/connect/index_common.d.ts.map +1 -0
  37. package/dist/connect/index_common.js +23 -0
  38. package/dist/connect/index_common.js.map +1 -0
  39. package/dist/connect/intrinsics.d.ts +94 -0
  40. package/dist/connect/intrinsics.d.ts.map +1 -0
  41. package/dist/connect/intrinsics.js +401 -0
  42. package/dist/connect/intrinsics.js.map +1 -0
  43. package/dist/connect/parser_common.d.ts +144 -0
  44. package/dist/connect/parser_common.d.ts.map +1 -0
  45. package/dist/connect/parser_common.js +297 -0
  46. package/dist/connect/parser_common.js.map +1 -0
  47. package/dist/connect/parser_executable_types.d.ts +20 -23
  48. package/dist/connect/parser_executable_types.d.ts.map +1 -1
  49. package/dist/connect/parser_executable_types.js.map +1 -1
  50. package/dist/connect/parser_executables.js +1 -1
  51. package/dist/connect/parser_executables.js.map +1 -1
  52. package/dist/connect/project.d.ts +20 -5
  53. package/dist/connect/project.d.ts.map +1 -1
  54. package/dist/connect/project.js +79 -16
  55. package/dist/connect/project.js.map +1 -1
  56. package/dist/connect/upload.d.ts +1 -1
  57. package/dist/connect/upload.d.ts.map +1 -1
  58. package/dist/connect/validation.d.ts +1 -1
  59. package/dist/connect/validation.d.ts.map +1 -1
  60. package/dist/connect/wizard/helpers.d.ts.map +1 -1
  61. package/dist/connect/wizard/helpers.js +18 -14
  62. package/dist/connect/wizard/helpers.js.map +1 -1
  63. package/dist/connect/wizard/prop_mapping.d.ts +12 -7
  64. package/dist/connect/wizard/prop_mapping.d.ts.map +1 -1
  65. package/dist/connect/wizard/prop_mapping.js +88 -89
  66. package/dist/connect/wizard/prop_mapping.js.map +1 -1
  67. package/dist/connect/wizard/run_wizard.d.ts.map +1 -1
  68. package/dist/connect/wizard/run_wizard.js +8 -3
  69. package/dist/connect/wizard/run_wizard.js.map +1 -1
  70. package/dist/connect/wizard/signature_extraction.d.ts +7 -0
  71. package/dist/connect/wizard/signature_extraction.d.ts.map +1 -0
  72. package/dist/connect/wizard/signature_extraction.js +46 -0
  73. package/dist/connect/wizard/signature_extraction.js.map +1 -0
  74. package/dist/html/__test__/parser/examples/NoConfigObject.figma.d.ts +2 -0
  75. package/dist/html/__test__/parser/examples/NoConfigObject.figma.d.ts.map +1 -0
  76. package/dist/html/__test__/parser/examples/NoConfigObject.figma.js +9 -0
  77. package/dist/html/__test__/parser/examples/NoConfigObject.figma.js.map +1 -0
  78. package/dist/html/__test__/parser/examples/NoExample.figma.d.ts +2 -0
  79. package/dist/html/__test__/parser/examples/NoExample.figma.d.ts.map +1 -0
  80. package/dist/html/__test__/parser/examples/NoExample.figma.js +9 -0
  81. package/dist/html/__test__/parser/examples/NoExample.figma.js.map +1 -0
  82. package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.d.ts +2 -0
  83. package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.d.ts.map +1 -0
  84. package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.js +33 -0
  85. package/dist/html/__test__/parser/examples/RegularFunctionExampleWithExtraCode.figma.js.map +1 -0
  86. package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.d.ts +2 -0
  87. package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.d.ts.map +1 -0
  88. package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.js +15 -0
  89. package/dist/html/__test__/parser/examples/WrongSignatureJsx.figma.js.map +1 -0
  90. package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.d.ts +2 -0
  91. package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.d.ts.map +1 -0
  92. package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.js +15 -0
  93. package/dist/html/__test__/parser/examples/WrongSignatureNoHtmlTag.figma.js.map +1 -0
  94. package/dist/html/__test__/parser/parser.test.d.ts +2 -0
  95. package/dist/html/__test__/parser/parser.test.d.ts.map +1 -0
  96. package/dist/html/__test__/parser/parser.test.js +50 -0
  97. package/dist/html/__test__/parser/parser.test.js.map +1 -0
  98. package/dist/html/create.d.ts +4 -0
  99. package/dist/html/create.d.ts.map +1 -0
  100. package/dist/html/create.js +81 -0
  101. package/dist/html/create.js.map +1 -0
  102. package/dist/html/external.d.ts +8 -0
  103. package/dist/html/external.d.ts.map +1 -0
  104. package/dist/html/external.js +25 -0
  105. package/dist/html/external.js.map +1 -0
  106. package/dist/html/index_html.d.ts +77 -0
  107. package/dist/html/index_html.d.ts.map +1 -0
  108. package/dist/html/index_html.js +42 -0
  109. package/dist/html/index_html.js.map +1 -0
  110. package/dist/html/parser.d.ts +19 -0
  111. package/dist/html/parser.d.ts.map +1 -0
  112. package/dist/html/parser.js +487 -0
  113. package/dist/html/parser.js.map +1 -0
  114. package/dist/html/parser_template_helpers.d.ts +2 -0
  115. package/dist/html/parser_template_helpers.d.ts.map +1 -0
  116. package/dist/html/parser_template_helpers.js +68 -0
  117. package/dist/html/parser_template_helpers.js.map +1 -0
  118. package/dist/html/template_literal.d.ts +5 -0
  119. package/dist/html/template_literal.d.ts.map +1 -0
  120. package/dist/html/template_literal.js +8 -0
  121. package/dist/html/template_literal.js.map +1 -0
  122. package/dist/parser_scripts/get_swift_parser_dir.d.ts +1 -1
  123. package/dist/parser_scripts/get_swift_parser_dir.d.ts.map +1 -1
  124. package/dist/parser_scripts/get_swift_parser_dir.js +38 -10
  125. package/dist/parser_scripts/get_swift_parser_dir.js.map +1 -1
  126. package/dist/react/create.d.ts +5 -0
  127. package/dist/react/create.d.ts.map +1 -1
  128. package/dist/react/create.js +144 -42
  129. package/dist/react/create.js.map +1 -1
  130. package/dist/react/external.d.ts +9 -0
  131. package/dist/react/external.d.ts.map +1 -0
  132. package/dist/react/external.js +45 -0
  133. package/dist/react/external.js.map +1 -0
  134. package/dist/react/index_react.d.ts +94 -0
  135. package/dist/react/index_react.d.ts.map +1 -0
  136. package/dist/react/index_react.js +39 -0
  137. package/dist/react/index_react.js.map +1 -0
  138. package/dist/react/parser.d.ts +6 -38
  139. package/dist/react/parser.d.ts.map +1 -1
  140. package/dist/react/parser.js +137 -295
  141. package/dist/react/parser.js.map +1 -1
  142. package/dist/react/parser_template_helpers.d.ts +15 -15
  143. package/dist/react/parser_template_helpers.d.ts.map +1 -1
  144. package/dist/react/parser_template_helpers.js +51 -35
  145. package/dist/react/parser_template_helpers.js.map +1 -1
  146. package/dist/storybook/convert.d.ts +1 -1
  147. package/dist/storybook/convert.d.ts.map +1 -1
  148. package/dist/storybook/convert.js +6 -4
  149. package/dist/storybook/convert.js.map +1 -1
  150. package/dist/storybook/external.d.ts +1 -1
  151. package/dist/storybook/external.d.ts.map +1 -1
  152. package/dist/typescript/compiler.d.ts +2 -2
  153. package/dist/typescript/compiler.d.ts.map +1 -1
  154. package/dist/typescript/compiler.js +50 -23
  155. package/dist/typescript/compiler.js.map +1 -1
  156. package/package.json +27 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/html/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function getParsedTemplateHelpersString(): string;
2
+ //# sourceMappingURL=parser_template_helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser_template_helpers.d.ts","sourceRoot":"","sources":["../../src/html/parser_template_helpers.ts"],"names":[],"mappings":"AA4DA,wBAAgB,8BAA8B,WAE7C"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ /* istanbul ignore file */
3
+ // This file needs to be ignored from code coverage, as Istanbul adds extra calls
4
+ // to `cov_*` functions which are used to track coverage, but these functions
5
+ // can't be resolved when executing the templates from the unit tests inside
6
+ // `new Function()`
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.getParsedTemplateHelpersString = void 0;
9
+ /**
10
+ * Render a value to HTML, following sensible rules according to the type.
11
+ *
12
+ * @param value The value to render
13
+ */
14
+ function _fcc_renderHtmlValue(value) {
15
+ // If the value is an array, then it's an array of objects representing React
16
+ // children (either of type INSTANCE for pills, or CODE for inline code). The
17
+ // template string handler in the template API handles extracting the instance
18
+ // objects in a way the UI can handle.
19
+ const isComponentArray = Array.isArray(value);
20
+ if (isComponentArray) {
21
+ return figma.html `${value}`;
22
+ }
23
+ if (typeof value === 'object') {
24
+ return JSON.stringify(value);
25
+ }
26
+ else if (typeof value === 'undefined') {
27
+ return '';
28
+ }
29
+ else {
30
+ return value.toString();
31
+ }
32
+ }
33
+ /**
34
+ * Render a value as an HTML attribute. This renders as a string wrapped in
35
+ * quotes, unless the value is a boolean, in which case we output just the
36
+ * attribute name if the value is true, or nothing if the value is false or
37
+ * undefined.
38
+ *
39
+ * @param name The name of the attribute
40
+ * @param value The value of the attribute
41
+ */
42
+ function _fcc_renderHtmlAttribute(name, value) {
43
+ // figma.boolean returns undefined instead of false in some cases
44
+ if (typeof value === 'undefined') {
45
+ return '';
46
+ }
47
+ else if (typeof value === 'boolean') {
48
+ if (value) {
49
+ return name;
50
+ }
51
+ else {
52
+ return '';
53
+ }
54
+ }
55
+ else if (typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint') {
56
+ // Some types might not make sense here but we'll allow anything to be stringified
57
+ return `${name}="${value.toString().replaceAll('\n', '\\n').replaceAll('"', '\\"')}"`;
58
+ }
59
+ else {
60
+ // TODO make this show a proper error in the UI
61
+ return `${name}="Code Connect Error: Unsupported type '${typeof value}' for attribute"`;
62
+ }
63
+ }
64
+ function getParsedTemplateHelpersString() {
65
+ return [_fcc_renderHtmlValue, _fcc_renderHtmlAttribute].map((fn) => fn.toString()).join('\n');
66
+ }
67
+ exports.getParsedTemplateHelpersString = getParsedTemplateHelpersString;
68
+ //# sourceMappingURL=parser_template_helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser_template_helpers.js","sourceRoot":"","sources":["../../src/html/parser_template_helpers.ts"],"names":[],"mappings":";AAAA,0BAA0B;AAC1B,iFAAiF;AACjF,6EAA6E;AAC7E,4EAA4E;AAC5E,mBAAmB;;;AAInB;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,KAAU;IACtC,6EAA6E;IAC7E,6EAA6E;IAC7E,8EAA8E;IAC9E,sCAAsC;IACtC,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC7C,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,IAAI,CAAA,GAAG,KAAK,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;QACxC,OAAO,EAAE,CAAA;IACX,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;IACzB,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAU;IACxD,iEAAiE;IACjE,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,EAAE,CAAA;IACX,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/F,kFAAkF;QAClF,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAA;IACvF,CAAC;SAAM,CAAC;QACN,+CAA+C;QAC/C,OAAO,GAAG,IAAI,2CAA2C,OAAO,KAAK,kBAAkB,CAAA;IACzF,CAAC;AACH,CAAC;AAED,SAAgB,8BAA8B;IAC5C,OAAO,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC/F,CAAC;AAFD,wEAEC"}
@@ -0,0 +1,5 @@
1
+ export type HtmlTemplateString = {
2
+ __tag: 'HtmlTemplateString';
3
+ };
4
+ export declare function html(strings: TemplateStringsArray, ...values: any[]): HtmlTemplateString;
5
+ //# sourceMappingURL=template_literal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template_literal.d.ts","sourceRoot":"","sources":["../../src/html/template_literal.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,oBAAoB,CAAA;CAC5B,CAAA;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAExF"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.html = void 0;
4
+ function html(strings, ...values) {
5
+ return { __tag: 'HtmlTemplateString' };
6
+ }
7
+ exports.html = html;
8
+ //# sourceMappingURL=template_literal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template_literal.js","sourceRoot":"","sources":["../../src/html/template_literal.ts"],"names":[],"mappings":";;;AAOA,SAAgB,IAAI,CAAC,OAA6B,EAAE,GAAG,MAAa;IAClE,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;AACxC,CAAC;AAFD,oBAEC"}
@@ -1,2 +1,2 @@
1
- export declare function getSwiftParserDir(cwd: string, xcodeprojPath?: string): Promise<string>;
1
+ export declare function getSwiftParserDir(cwd: string, xcodeprojPath?: string, swiftPackagePath?: string): Promise<string>;
2
2
  //# sourceMappingURL=get_swift_parser_dir.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get_swift_parser_dir.d.ts","sourceRoot":"","sources":["../../src/parser_scripts/get_swift_parser_dir.ts"],"names":[],"mappings":"AAYA,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,mBA0F1E"}
1
+ {"version":3,"file":"get_swift_parser_dir.d.ts","sourceRoot":"","sources":["../../src/parser_scripts/get_swift_parser_dir.ts"],"names":[],"mappings":"AAaA,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,EACtB,gBAAgB,CAAC,EAAE,MAAM,mBAuH1B"}
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.getSwiftParserDir = void 0;
4
7
  const child_process_1 = require("child_process");
5
8
  const logging_1 = require("../common/logging");
6
9
  const get_file_if_exists_1 = require("./get_file_if_exists");
10
+ const path_1 = __importDefault(require("path"));
7
11
  // Find the location of the Code Connect Swift package on disk, so that we can
8
12
  // call `swift run figma-swift` from the correct location. This requires parsing
9
13
  // the output of xcodebuild for .xcodeproj projects, or parsing Package.swift
@@ -12,20 +16,35 @@ const get_file_if_exists_1 = require("./get_file_if_exists");
12
16
  // As this is a first party parser, we do this in TypeScript and call it as part
13
17
  // of our code. For third party parsers, logic like this would need to be
14
18
  // implemented in a script/binary which the user points Code Connect to.
15
- async function getSwiftParserDir(cwd, xcodeprojPath) {
19
+ async function getSwiftParserDir(cwd, xcodeprojPath, swiftPackagePath) {
16
20
  let figmaPackageDir;
17
- // Check for the supported project types.
18
- const xcodeProjFile = (xcodeprojPath || (0, get_file_if_exists_1.getFileIfExists)(cwd, '*.xcodeproj')).replace(/\s/g, '\\ ');
19
- const packageSwiftFile = (0, get_file_if_exists_1.getFileIfExists)(cwd, 'Package.swift');
20
- if (!(xcodeProjFile || packageSwiftFile)) {
21
+ let xcodeprojFile;
22
+ let packageSwiftFile;
23
+ // // Check for the supported project types giving precedence top the user provided path
24
+ if (xcodeprojPath) {
25
+ xcodeprojFile = xcodeprojPath.replace(/\s/g, '\\ ');
26
+ }
27
+ else if (swiftPackagePath) {
28
+ packageSwiftFile = path_1.default.dirname(swiftPackagePath).replace(/\s/g, '\\ ');
29
+ }
30
+ else {
31
+ xcodeprojFile = (0, get_file_if_exists_1.getFileIfExists)(cwd, '*.xcodeproj').replace(/\s/g, '\\ ');
32
+ packageSwiftFile = (0, get_file_if_exists_1.getFileIfExists)(cwd, 'Package.swift').replace(/\s/g, '\\ ');
33
+ }
34
+ if (!(xcodeprojFile || packageSwiftFile)) {
21
35
  (0, logging_1.exitWithError)('No supported project found. Supported project types are .xcodeproj or Package.swift. You can specify the location of your .xcodeproj file with the `xcodeprojPath` config option.');
22
36
  }
23
- if (xcodeProjFile) {
37
+ if (xcodeprojFile) {
24
38
  // Use xcodebuild to get the build settings, so we can find where the Code
25
39
  // Connect Swift package is installed
26
- const buildSettings = (0, child_process_1.execSync)(`xcodebuild -project ${xcodeProjFile} -showBuildSettings`, {
40
+ const result = (0, child_process_1.spawnSync)('xcodebuild', ['-project', xcodeprojFile, '-showBuildSettings'], {
27
41
  cwd,
28
- }).toString();
42
+ encoding: 'utf-8',
43
+ });
44
+ if (result.error) {
45
+ throw result.error;
46
+ }
47
+ const buildSettings = result.stdout;
29
48
  // Extract the source and version of the Code Connect Swift package from the
30
49
  // xcodebuild output, which can be in any of the following formats depending
31
50
  // on how it is installed:
@@ -61,9 +80,18 @@ async function getSwiftParserDir(cwd, xcodeprojPath) {
61
80
  }
62
81
  }
63
82
  else if (packageSwiftFile) {
83
+ const swiftPackageDir = swiftPackagePath ? path_1.default.dirname(swiftPackagePath) : undefined;
84
+ const packageDir = swiftPackageDir || cwd;
64
85
  // Use the Swift command to determine if the package is installed locally or from Git
65
86
  try {
66
- const packageInfo = JSON.parse((0, child_process_1.execSync)('swift package describe --type json', { cwd }).toString());
87
+ const result = (0, child_process_1.spawnSync)('swift', ['package', '--package-path', packageDir, 'describe', '--type', 'json'], {
88
+ cwd,
89
+ encoding: 'utf-8',
90
+ });
91
+ if (result.error) {
92
+ throw result.error;
93
+ }
94
+ const packageInfo = JSON.parse(result.stdout);
67
95
  const codeConnectPackage = packageInfo.dependencies.find((p) => p.identity === 'code-connect') ??
68
96
  // Our local directory is called figmadoc, so this is what swift outputs as the identity
69
97
  packageInfo.dependencies.find((p) => p.identity === 'figmadoc');
@@ -71,7 +99,7 @@ async function getSwiftParserDir(cwd, xcodeprojPath) {
71
99
  (0, logging_1.exitWithError)('Code Connect Swift package not found in Package.swift. Please add a dependency to https://github.com/figma/code-connect to your Package.swift file.');
72
100
  }
73
101
  // We can run directly from the directory of the package swift file
74
- figmaPackageDir = cwd;
102
+ figmaPackageDir = packageDir;
75
103
  }
76
104
  catch (e) {
77
105
  (0, logging_1.exitWithError)(`Error calling Swift command: ${e}`);
@@ -1 +1 @@
1
- {"version":3,"file":"get_swift_parser_dir.js","sourceRoot":"","sources":["../../src/parser_scripts/get_swift_parser_dir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get_swift_parser_dir.js","sourceRoot":"","sources":["../../src/parser_scripts/get_swift_parser_dir.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  import z from 'zod';
2
2
  import { CreateRequestPayload, CreateResponsePayload } from '../connect/parser_executable_types';
3
+ import { Intrinsic } from '../connect/intrinsics';
4
+ export declare function isBooleanKind(propValue: string): boolean;
5
+ export declare function generateExpressionFromIntrinsic({ kind, args }: Intrinsic): string | never;
6
+ export declare function getSetOfAllPropsReferencedInPropMapping(obj: Object): Set<string>;
7
+ export declare function generateProps(component: CreateRequestPayload['component']): string;
3
8
  export declare function createReactCodeConnect(payload: CreateRequestPayload): Promise<z.infer<typeof CreateResponsePayload>>;
4
9
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/react/create.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,oCAAoC,CAAA;AA8H3C,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC,CA8DhD"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/react/create.ts"],"names":[],"mappings":"AAGA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAEL,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,oCAAoC,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAmC,MAAM,uBAAuB,CAAA;AAGlF,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,WAU9C;AA8CD,wBAAgB,+BAA+B,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,CAqBzF;AAgCD,wBAAgB,uCAAuC,CAAC,GAAG,EAAE,MAAM,eAWlE;AA2CD,wBAAgB,aAAa,CAAC,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,UAkBzE;AAkCD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC,CA0EhD"}
@@ -26,12 +26,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.createReactCodeConnect = void 0;
29
+ exports.createReactCodeConnect = exports.generateProps = exports.getSetOfAllPropsReferencedInPropMapping = exports.generateExpressionFromIntrinsic = exports.isBooleanKind = void 0;
30
30
  const lodash_1 = require("lodash");
31
31
  const prettier = __importStar(require("prettier"));
32
32
  const fs_1 = __importDefault(require("fs"));
33
33
  const path_1 = __importDefault(require("path"));
34
34
  const create_1 = require("../connect/create");
35
+ const intrinsics_1 = require("../connect/intrinsics");
36
+ const create_common_1 = require("../connect/create_common");
35
37
  function isBooleanKind(propValue) {
36
38
  const normalized = propValue.toLowerCase();
37
39
  return (normalized === 'true' ||
@@ -41,62 +43,153 @@ function isBooleanKind(propValue) {
41
43
  normalized === 'on' ||
42
44
  normalized === 'off');
43
45
  }
46
+ exports.isBooleanKind = isBooleanKind;
44
47
  function normalizePropName(name) {
45
48
  return name.replace(/#[0-9:]*/g, '');
46
49
  }
47
50
  function generateCodePropName(name) {
48
- return (0, lodash_1.camelCase)(name.replace(/[^a-zA-Z0-9]/g, ''));
51
+ const cleanedName = name
52
+ // Remove any #node:id from the end of the string
53
+ .replace(/#[0-9:]+$/g, '')
54
+ // Remove any special characters
55
+ .replace(/[^a-zA-Z0-9\s]/g, '');
56
+ return (0, lodash_1.camelCase)(cleanedName);
49
57
  }
50
58
  function normalizePropValue(name) {
51
59
  // Convert the string to kebab-case
52
60
  return name.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase();
53
61
  }
54
- function generateProps(component, propMapping) {
62
+ function generateExpressionValueMappingKind(valueMappingKind) {
63
+ if (valueMappingKind && typeof valueMappingKind === 'object' && 'kind' in valueMappingKind) {
64
+ return generateExpressionFromIntrinsic(valueMappingKind);
65
+ }
66
+ if (typeof valueMappingKind === 'string') {
67
+ return `"${valueMappingKind}"`;
68
+ }
69
+ if (typeof valueMappingKind === 'number' ||
70
+ typeof valueMappingKind === 'boolean' ||
71
+ typeof valueMappingKind === 'undefined') {
72
+ return `${valueMappingKind}`;
73
+ }
74
+ }
75
+ function generateExpressionValueMapping(valueMapping) {
76
+ return `{
77
+ ${Object.entries(valueMapping)
78
+ .map(([k, v]) => `"${k}": ${generateExpressionValueMappingKind(v)}`)
79
+ .join(`,\n`)}
80
+ }`;
81
+ }
82
+ // Not an exhaustive list of intrinsics but can add others as/when they're supported in prop mapping gen
83
+ function generateExpressionFromIntrinsic({ kind, args }) {
84
+ if (kind === intrinsics_1.IntrinsicKind.String) {
85
+ return `figma.string("${args.figmaPropName}")`;
86
+ }
87
+ if (kind === intrinsics_1.IntrinsicKind.Boolean) {
88
+ return `figma.boolean("${args.figmaPropName}"${args.valueMapping ? `, ${generateExpressionValueMapping(args.valueMapping)}` : ''})`;
89
+ }
90
+ if (kind === intrinsics_1.IntrinsicKind.Enum) {
91
+ return `figma.enum("${args.figmaPropName}"${args.valueMapping ? `, ${generateExpressionValueMapping(args.valueMapping)}` : ''})`;
92
+ }
93
+ if (kind === intrinsics_1.IntrinsicKind.Instance) {
94
+ return `figma.instance("${args.figmaPropName}")`;
95
+ }
96
+ if (kind === intrinsics_1.IntrinsicKind.Children) {
97
+ return `figma.children(${args.layers.length > 1 ? `[${args.layers.map((layer) => `"${layer}"`).join(', ')}]` : `"${args.layers[0]}"`})`;
98
+ }
99
+ if (kind === intrinsics_1.IntrinsicKind.TextContent) {
100
+ return `figma.textContent("${args.layer}")`;
101
+ }
102
+ // should never reach here as we create prop mappings.
103
+ throw new Error(`kind ${kind} not supported for prop mapping`);
104
+ }
105
+ exports.generateExpressionFromIntrinsic = generateExpressionFromIntrinsic;
106
+ function generateSinglePropMappingFromFigmaProp(propName, propDef) {
107
+ const codePropName = generateCodePropName(propName);
108
+ const figmaPropName = normalizePropName(propName);
109
+ if (propDef.type === 'BOOLEAN') {
110
+ return `"${codePropName}": figma.boolean('${figmaPropName}')`;
111
+ }
112
+ if (propDef.type === 'TEXT') {
113
+ return `"${codePropName}": figma.string('${figmaPropName}')`;
114
+ }
115
+ if (propDef.type === 'VARIANT') {
116
+ const isBooleanVariant = propDef.variantOptions?.length === 2 && propDef.variantOptions.every(isBooleanKind);
117
+ if (isBooleanVariant) {
118
+ return `"${codePropName}": figma.boolean('${figmaPropName}')`;
119
+ }
120
+ else {
121
+ return `"${codePropName}": figma.enum('${figmaPropName}', { \n${propDef.variantOptions
122
+ ?.map((value) => ` "${value}": "${normalizePropValue(value)}"`)
123
+ .join(',\n')}})`;
124
+ }
125
+ }
126
+ if (propDef.type === 'INSTANCE_SWAP') {
127
+ return `"${codePropName}": figma.instance('${figmaPropName}')`;
128
+ }
129
+ return null;
130
+ }
131
+ function getSetOfAllPropsReferencedInPropMapping(obj) {
132
+ const mappedProps = [];
133
+ Object.entries(obj).forEach(([k, v]) => {
134
+ if (k === 'figmaPropName') {
135
+ mappedProps.push(v);
136
+ }
137
+ if (typeof v === 'object') {
138
+ mappedProps.push(...getSetOfAllPropsReferencedInPropMapping(v));
139
+ }
140
+ });
141
+ return new Set(mappedProps);
142
+ }
143
+ exports.getSetOfAllPropsReferencedInPropMapping = getSetOfAllPropsReferencedInPropMapping;
144
+ function generatePropsFromMapping(component, propMapping) {
145
+ const mappedProps = [];
146
+ const unmappedProps = [];
147
+ for (const [propName, intrinsic] of Object.entries(propMapping)) {
148
+ const expr = generateExpressionFromIntrinsic(intrinsic);
149
+ if (expr) {
150
+ mappedProps.push(`"${propName}": ${expr}`);
151
+ }
152
+ }
153
+ const usedFigmaPropsSet = getSetOfAllPropsReferencedInPropMapping(propMapping);
154
+ for (const [propName, propDef] of Object.entries(component.componentPropertyDefinitions)) {
155
+ if (!usedFigmaPropsSet.has(propName)) {
156
+ const propMapping = generateSinglePropMappingFromFigmaProp(propName, propDef);
157
+ if (propMapping) {
158
+ unmappedProps.push(propMapping);
159
+ }
160
+ }
161
+ }
162
+ return `{
163
+ // These props were automatically mapped based on your linked code:
164
+ ${mappedProps.join(',\n')},
165
+ ${unmappedProps.length
166
+ ? `// No matching props could be found for these Figma properties:
167
+ ${unmappedProps
168
+ .map((prop) => {
169
+ // Comment out to make clear these are suggested. Singly-commented out lines for ease of uncommenting
170
+ return `// ${prop}`;
171
+ })
172
+ .join(',\n')}`
173
+ : ''}
174
+ }`;
175
+ }
176
+ function generateProps(component) {
55
177
  const props = [];
56
178
  if (!component.componentPropertyDefinitions ||
57
179
  Object.keys(component.componentPropertyDefinitions).length === 0) {
58
180
  return `{}`;
59
181
  }
60
182
  for (const [propName, propDef] of Object.entries(component.componentPropertyDefinitions)) {
61
- const mappedProp = propMapping && propMapping[propName];
62
- const codePropName = mappedProp ? mappedProp.codePropName : generateCodePropName(propName);
63
- const type = mappedProp ? mappedProp.mapping : propDef.type;
64
- const figmaPropName = normalizePropName(propName);
65
- if (type === 'BOOLEAN') {
66
- props.push(`"${codePropName}": figma.boolean('${figmaPropName}')`);
67
- }
68
- if (type === 'TEXT') {
69
- props.push(`"${codePropName}": figma.string('${figmaPropName}')`);
70
- }
71
- if (type === 'VARIANT') {
72
- const isBooleanVariant = propDef.variantOptions?.length === 2 && propDef.variantOptions.every(isBooleanKind);
73
- if (isBooleanVariant) {
74
- props.push(`"${codePropName}": figma.boolean('${figmaPropName}')`);
75
- }
76
- else {
77
- props.push(`"${codePropName}": figma.enum('${figmaPropName}', { \n${propDef.variantOptions
78
- ?.map((value) => ` "${value}": "${normalizePropValue(value)}"`)
79
- .join(',\n')}})`);
80
- }
81
- }
82
- if (type === 'INSTANCE_SWAP') {
83
- props.push(`"${codePropName}": figma.instance('${figmaPropName}')`);
183
+ const propMapping = generateSinglePropMappingFromFigmaProp(propName, propDef);
184
+ if (propMapping) {
185
+ props.push(propMapping);
84
186
  }
85
187
  }
86
188
  return `{
87
189
  ${props.join(',\n ')}
88
190
  }`;
89
191
  }
90
- function getOutFileName({ outFile, outDir, sourceFilename, }) {
91
- if (outFile) {
92
- return outFile;
93
- }
94
- const baseName = `${sourceFilename}.figma.tsx`;
95
- if (outDir) {
96
- return path_1.default.join(outDir, baseName);
97
- }
98
- return path_1.default.join(process.env.INIT_CWD ?? process.cwd(), baseName);
99
- }
192
+ exports.generateProps = generateProps;
100
193
  // returns ES-style import path from given system path
101
194
  function formatImportPath(systemPath) {
102
195
  // use forward slashes for import paths
@@ -122,16 +215,18 @@ async function createReactCodeConnect(payload) {
122
215
  const sourceFilename = sourceFilepath
123
216
  ? path_1.default.parse(sourceFilepath).name.split('.')[0]
124
217
  : normalizedName;
125
- const filePath = getOutFileName({
218
+ const filePath = (0, create_common_1.getOutFileName)({
126
219
  outFile: destinationFile,
127
220
  outDir: destinationDir,
128
221
  sourceFilename,
222
+ extension: 'tsx',
129
223
  });
130
224
  const importsPath = getImportsPath({
131
225
  codeConnectFilePath: filePath,
132
226
  sourceFilepath,
133
227
  normalizedName,
134
228
  });
229
+ const hasPropMapping = propMapping && Object.keys(propMapping).length > 0;
135
230
  const importName = sourceFilepath && sourceExport
136
231
  ? sourceExport === 'default'
137
232
  ? (0, create_1.normalizeComponentName)(sourceFilename)
@@ -142,20 +237,27 @@ import React from 'react'
142
237
  import ${sourceExport === 'default' ? importName : `{ ${importName} }`} from '${importsPath}'
143
238
  import figma from '@figma/code-connect'
144
239
 
145
- /**
146
- * -- This file was auto-generated by \`figma connect create\` --
240
+ ${hasPropMapping
241
+ ? `/**
242
+ * -- This file was auto-generated by Code Connect --
243
+ * \`props\` includes a mapping from your code props to Figma properties.
244
+ * You should check this is correct, and update the \`example\` function
245
+ * to return the code example you'd like to see in Figma
246
+ */`
247
+ : `/**
248
+ * -- This file was auto-generated by Code Connect --
147
249
  * \`props\` includes a mapping from Figma properties and variants to
148
250
  * suggested values. You should update this to match the props of your
149
251
  * code component, and update the \`example\` function to return the
150
252
  * code example you'd like to see in Figma
151
- */
253
+ */`}
152
254
 
153
255
  figma.connect(${importName}, "${figmaNodeUrl}", {
154
- props: ${generateProps(component, propMapping)},
256
+ props: ${hasPropMapping ? generatePropsFromMapping(component, propMapping) : generateProps(component)},
155
257
  example: (props) => <${importName} />
156
258
  })
157
259
  `;
158
- let formatted = await prettier.format(codeConnect, {
260
+ let formatted = prettier.format(codeConnect, {
159
261
  parser: 'typescript',
160
262
  semi: false,
161
263
  trailingComma: 'all',
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/react/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/react/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { FigmaConnectMeta } from '../connect/api';
2
+ import * as React from 'react';
3
+ import { booleanType, enumType, stringType, nestedPropsType, classNameType, textContentType } from '../connect/external_types';
4
+ declare function connectType<P = {}>(_figmaNodeUrl: string, _meta?: FigmaConnectMeta<P>): void;
5
+ declare function connectType<P = {}>(_component: any, _figmaNodeUrl: string, _meta?: FigmaConnectMeta<P>): void;
6
+ declare function instanceType(_figmaPropName: string): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement>;
7
+ declare function childrenType(_layers: string | string[]): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement>;
8
+ export { booleanType as boolean, enumType as enum, stringType as string, nestedPropsType as nestedProps, classNameType as className, textContentType as textContent, connectType as connect, instanceType as instance, childrenType as children, };
9
+ //# sourceMappingURL=external.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../src/react/external.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAmC,MAAM,gBAAgB,CAAA;AAClF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAElC,iBAAS,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;AACtF,iBAAS,WAAW,CAAC,CAAC,GAAG,EAAE,EACzB,UAAU,EAAE,GAAG,EACf,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC1B,IAAI,CAAA;AAGP,iBAAS,YAAY,CAAC,cAAc,EAAE,MAAM,kFAE3C;AAED,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,kFAE/C;AAED,OAAO,EACL,WAAW,IAAI,OAAO,EACtB,QAAQ,IAAI,IAAI,EAChB,UAAU,IAAI,MAAM,EACpB,eAAe,IAAI,WAAW,EAC9B,aAAa,IAAI,SAAS,EAC1B,eAAe,IAAI,WAAW,EAC9B,WAAW,IAAI,OAAO,EACtB,YAAY,IAAI,QAAQ,EACxB,YAAY,IAAI,QAAQ,GACzB,CAAA"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.children = exports.instance = exports.connect = exports.textContent = exports.className = exports.nestedProps = exports.string = exports.enum = exports.boolean = void 0;
27
+ const React = __importStar(require("react"));
28
+ const external_types_1 = require("../connect/external_types");
29
+ Object.defineProperty(exports, "boolean", { enumerable: true, get: function () { return external_types_1.booleanType; } });
30
+ Object.defineProperty(exports, "enum", { enumerable: true, get: function () { return external_types_1.enumType; } });
31
+ Object.defineProperty(exports, "string", { enumerable: true, get: function () { return external_types_1.stringType; } });
32
+ Object.defineProperty(exports, "nestedProps", { enumerable: true, get: function () { return external_types_1.nestedPropsType; } });
33
+ Object.defineProperty(exports, "className", { enumerable: true, get: function () { return external_types_1.classNameType; } });
34
+ Object.defineProperty(exports, "textContent", { enumerable: true, get: function () { return external_types_1.textContentType; } });
35
+ function connectType(_component, _figmaNodeUrl, _meta) { }
36
+ exports.connect = connectType;
37
+ function instanceType(_figmaPropName) {
38
+ return React.createElement('div');
39
+ }
40
+ exports.instance = instanceType;
41
+ function childrenType(_layers) {
42
+ return React.createElement('div');
43
+ }
44
+ exports.children = childrenType;
45
+ //# sourceMappingURL=external.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../src/react/external.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,6CAA8B;AAC9B,8DAOkC;AAmBjB,wFAzBf,4BAAW,OAyBW;AACV,qFAzBZ,yBAAQ,OAyBQ;AACF,uFAzBd,2BAAU,OAyBU;AACD,4FAzBnB,gCAAe,OAyBe;AACb,0FAzBjB,8BAAa,OAyBa;AACP,4FAzBnB,gCAAe,OAyBe;AAhBhC,SAAS,WAAW,CAAC,UAAmB,EAAE,aAAsB,EAAE,KAAe,IAAS,CAAC;AAiB1E,8BAAO;AAfxB,SAAS,YAAY,CAAC,cAAsB;IAC1C,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC;AAciB,gCAAQ;AAZ1B,SAAS,YAAY,CAAC,OAA0B;IAC9C,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;AACnC,CAAC;AAWiB,gCAAQ"}