@figma/code-connect 1.3.12 → 1.4.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 (128) hide show
  1. package/dist/cli.js.map +1 -1
  2. package/dist/client/external.js.map +1 -1
  3. package/dist/client/figma_client.js +1 -1
  4. package/dist/client/figma_client.js.map +1 -1
  5. package/dist/commands/connect.d.ts +5 -4
  6. package/dist/commands/connect.d.ts.map +1 -1
  7. package/dist/commands/connect.js +242 -24
  8. package/dist/commands/connect.js.map +1 -1
  9. package/dist/common/error_formatting.d.ts +34 -0
  10. package/dist/common/error_formatting.d.ts.map +1 -0
  11. package/dist/common/error_formatting.js +115 -0
  12. package/dist/common/error_formatting.js.map +1 -0
  13. package/dist/common/fetch.js.map +1 -1
  14. package/dist/common/logging.js.map +1 -1
  15. package/dist/common/tsconfig.js.map +1 -1
  16. package/dist/common/updates.js.map +1 -1
  17. package/dist/connect/api.d.ts +13 -0
  18. package/dist/connect/api.d.ts.map +1 -1
  19. package/dist/connect/api.js.map +1 -1
  20. package/dist/connect/create.d.ts.map +1 -1
  21. package/dist/connect/create.js +2 -1
  22. package/dist/connect/create.js.map +1 -1
  23. package/dist/connect/create_common.js.map +1 -1
  24. package/dist/connect/delete_docs.d.ts +2 -1
  25. package/dist/connect/delete_docs.d.ts.map +1 -1
  26. package/dist/connect/delete_docs.js +2 -2
  27. package/dist/connect/delete_docs.js.map +1 -1
  28. package/dist/connect/external_types.d.ts +1 -0
  29. package/dist/connect/external_types.d.ts.map +1 -1
  30. package/dist/connect/external_types.js +4 -0
  31. package/dist/connect/external_types.js.map +1 -1
  32. package/dist/connect/figma_connect.d.ts +4 -1
  33. package/dist/connect/figma_connect.d.ts.map +1 -1
  34. package/dist/connect/figma_connect.js.map +1 -1
  35. package/dist/connect/figma_rest_api.d.ts +1 -1
  36. package/dist/connect/figma_rest_api.d.ts.map +1 -1
  37. package/dist/connect/figma_rest_api.js +5 -1
  38. package/dist/connect/figma_rest_api.js.map +1 -1
  39. package/dist/connect/helpers.js.map +1 -1
  40. package/dist/connect/index_common.js.map +1 -1
  41. package/dist/connect/intrinsics.d.ts +9 -2
  42. package/dist/connect/intrinsics.d.ts.map +1 -1
  43. package/dist/connect/intrinsics.js +19 -0
  44. package/dist/connect/intrinsics.js.map +1 -1
  45. package/dist/connect/label_language_mapping.d.ts +48 -0
  46. package/dist/connect/label_language_mapping.d.ts.map +1 -0
  47. package/dist/connect/label_language_mapping.js +76 -0
  48. package/dist/connect/label_language_mapping.js.map +1 -0
  49. package/dist/connect/migration_helpers.d.ts +41 -0
  50. package/dist/connect/migration_helpers.d.ts.map +1 -0
  51. package/dist/connect/migration_helpers.js +339 -0
  52. package/dist/connect/migration_helpers.js.map +1 -0
  53. package/dist/connect/modifiers.js.map +1 -1
  54. package/dist/connect/parser_common.d.ts +1 -0
  55. package/dist/connect/parser_common.d.ts.map +1 -1
  56. package/dist/connect/parser_common.js +1 -0
  57. package/dist/connect/parser_common.js.map +1 -1
  58. package/dist/connect/parser_executable_types.d.ts +11 -5
  59. package/dist/connect/parser_executable_types.d.ts.map +1 -1
  60. package/dist/connect/parser_executable_types.js +5 -1
  61. package/dist/connect/parser_executable_types.js.map +1 -1
  62. package/dist/connect/parser_executables.js.map +1 -1
  63. package/dist/connect/project.d.ts +11 -0
  64. package/dist/connect/project.d.ts.map +1 -1
  65. package/dist/connect/project.js +22 -4
  66. package/dist/connect/project.js.map +1 -1
  67. package/dist/connect/upload.d.ts +2 -1
  68. package/dist/connect/upload.d.ts.map +1 -1
  69. package/dist/connect/upload.js +12 -6
  70. package/dist/connect/upload.js.map +1 -1
  71. package/dist/connect/validation.d.ts +1 -1
  72. package/dist/connect/validation.d.ts.map +1 -1
  73. package/dist/connect/validation.js +2 -2
  74. package/dist/connect/validation.js.map +1 -1
  75. package/dist/connect/wizard/autolinking.js.map +1 -1
  76. package/dist/connect/wizard/embeddings.d.ts +2 -1
  77. package/dist/connect/wizard/embeddings.d.ts.map +1 -1
  78. package/dist/connect/wizard/embeddings.js +2 -2
  79. package/dist/connect/wizard/embeddings.js.map +1 -1
  80. package/dist/connect/wizard/helpers.js.map +1 -1
  81. package/dist/connect/wizard/prop_mapping.js.map +1 -1
  82. package/dist/connect/wizard/prop_mapping_helpers.d.ts +2 -1
  83. package/dist/connect/wizard/prop_mapping_helpers.d.ts.map +1 -1
  84. package/dist/connect/wizard/prop_mapping_helpers.js +5 -3
  85. package/dist/connect/wizard/prop_mapping_helpers.js.map +1 -1
  86. package/dist/connect/wizard/run_wizard.d.ts.map +1 -1
  87. package/dist/connect/wizard/run_wizard.js +6 -3
  88. package/dist/connect/wizard/run_wizard.js.map +1 -1
  89. package/dist/connect/wizard/signature_extraction.js.map +1 -1
  90. package/dist/html/create.js.map +1 -1
  91. package/dist/html/external.d.ts +1 -1
  92. package/dist/html/external.d.ts.map +1 -1
  93. package/dist/html/external.js +1 -0
  94. package/dist/html/external.js.map +1 -1
  95. package/dist/html/index_html.js.map +1 -1
  96. package/dist/html/parser.d.ts +2 -2
  97. package/dist/html/parser.d.ts.map +1 -1
  98. package/dist/html/parser.js +15 -6
  99. package/dist/html/parser.js.map +1 -1
  100. package/dist/html/parser_template_helpers.js.map +1 -1
  101. package/dist/html/template_literal.js.map +1 -1
  102. package/dist/html/types.js.map +1 -1
  103. package/dist/parser_scripts/compose_errors.js.map +1 -1
  104. package/dist/parser_scripts/get_file_if_exists.js.map +1 -1
  105. package/dist/parser_scripts/get_gradlew_path.js.map +1 -1
  106. package/dist/parser_scripts/get_swift_parser_dir.js.map +1 -1
  107. package/dist/react/create.d.ts.map +1 -1
  108. package/dist/react/create.js +3 -0
  109. package/dist/react/create.js.map +1 -1
  110. package/dist/react/external.d.ts +2 -2
  111. package/dist/react/external.d.ts.map +1 -1
  112. package/dist/react/external.js +2 -1
  113. package/dist/react/external.js.map +1 -1
  114. package/dist/react/index_react.js.map +1 -1
  115. package/dist/react/parser.d.ts +3 -3
  116. package/dist/react/parser.d.ts.map +1 -1
  117. package/dist/react/parser.js +13 -8
  118. package/dist/react/parser.js.map +1 -1
  119. package/dist/react/parser_template_helpers.d.ts.map +1 -1
  120. package/dist/react/parser_template_helpers.js +4 -1
  121. package/dist/react/parser_template_helpers.js.map +1 -1
  122. package/dist/react/types.js.map +1 -1
  123. package/dist/storybook/convert.d.ts.map +1 -1
  124. package/dist/storybook/convert.js +3 -2
  125. package/dist/storybook/convert.js.map +1 -1
  126. package/dist/storybook/external.js.map +1 -1
  127. package/dist/typescript/compiler.js.map +1 -1
  128. package/package.json +7 -5
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/connect/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/connect/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import * as url from 'url'\nimport { chunk } from 'lodash'\n\nimport { CodeConnectJSON } from '../connect/figma_connect'\nimport { logger } from '../common/logging'\nimport { validateNodeId } from './helpers'\nimport { getApiUrl, getHeaders } from './figma_rest_api'\nimport { BaseCommand } from '../commands/connect'\nimport { isFetchError, request } from '../common/fetch'\n\nexport function parseFigmaNode(\n verbose: boolean,\n doc: CodeConnectJSON,\n silent: boolean = false,\n): { fileKey: string; nodeId: string } | null {\n const figmaNodeUrl = url.parse(doc.figmaNode, true)\n const fileKeyMatch = figmaNodeUrl.path?.match(/(file|design)\\/([a-zA-Z0-9]+)/)\n if (!fileKeyMatch) {\n if (!silent || verbose) {\n logger.error(`Failed to parse ${doc.figmaNode}`)\n }\n return null\n }\n const fileKey = fileKeyMatch[2]\n const nodeId = figmaNodeUrl.query['node-id']\n if (nodeId && typeof nodeId === 'string') {\n const figmaNodeId = validateNodeId(nodeId)\n return { fileKey, nodeId: figmaNodeId }\n } else {\n if (!silent || verbose) {\n logger.error(`Failed to get node-id from ${doc.figmaNode}`)\n }\n return null\n }\n}\n\nasync function fetchNodeInfo(\n baseApiUrl: string,\n fileKey: string,\n nodeIdsChunk: string[],\n accessToken: string,\n): Promise<any> {\n try {\n const response = await request.get<{ message: string; nodes: any }>(\n `${baseApiUrl}${fileKey}/nodes?ids=${nodeIdsChunk.join(',')}`,\n { headers: getHeaders(accessToken) },\n )\n if (response.response.status !== 200) {\n logger.error(\n 'Failed to fetch node info: ' + response.response.status + ' ' + response.data?.message,\n )\n return null\n }\n return response.data.nodes\n } catch (err) {\n if (isFetchError(err)) {\n if (err.response) {\n logger.error(\n `Failed to to fetch node info (${err.response.status}): ${err.response.status} ${err.data?.err ?? err.data?.message}`,\n )\n } else {\n logger.error(`Failed to to fetch node info: ${err.message}`)\n }\n logger.debug(JSON.stringify(err.data))\n } else {\n logger.error(`Failed to to fetch node info: ${err}`)\n }\n return null\n }\n}\n\nfunction validateProps(doc: CodeConnectJSON, document: any): boolean {\n if (doc.templateData && doc.templateData?.props) {\n let propsValid = true\n const codeConnectProps = Object.keys(doc.templateData.props ?? {})\n\n for (let i = 0; i < codeConnectProps.length; i++) {\n const codeConnectProp = doc.templateData?.props[codeConnectProps[i]]\n if (codeConnectProp.kind === 'children') {\n const codeConnectLayerNames = codeConnectProp.args.layers\n // Get all layer names in the figma doc\n const figmaLayerNames: string[] = []\n const getLayerNames = (layer: any) => {\n if (layer.name) {\n figmaLayerNames.push(layer.name)\n }\n if (layer.children) {\n layer.children.forEach((child: any) => getLayerNames(child))\n }\n }\n getLayerNames(document)\n // And make sure that the layer names in the code connect file are present in the figma doc\n for (const codeConnectLayerName of codeConnectLayerNames) {\n const regex = new RegExp('^' + codeConnectLayerName.replace('*', '.*'))\n if (figmaLayerNames.every((name) => !regex.test(name))) {\n logger.error(\n `Validation failed for ${doc.component} (${doc.figmaNode}): The layer \"${codeConnectLayerName}\" does not exist on the Figma component`,\n )\n propsValid = false\n }\n }\n continue\n }\n if (\n codeConnectProp.kind === 'boolean' ||\n codeConnectProp.kind === 'enum' ||\n codeConnectProp.kind === 'string'\n ) {\n const codeConnectFigmaPropName = codeConnectProp?.args?.figmaPropName\n\n if (\n !document.componentPropertyDefinitions ||\n !Object.keys(document.componentPropertyDefinitions).find((figmaProp) =>\n propMatches(figmaProp, codeConnectFigmaPropName, document.componentPropertyDefinitions),\n )\n ) {\n logger.error(\n `Validation failed for ${doc.component} (${doc.figmaNode}): The property \"${codeConnectFigmaPropName}\" does not exist on the Figma component`,\n )\n propsValid = false\n }\n }\n }\n\n if (!propsValid) {\n return false\n }\n }\n return true\n}\n\nfunction getPropName(componentPropertyDefinitions: any, propName: string): string {\n const prop = componentPropertyDefinitions[propName]\n if (prop.type === 'VARIANT') {\n return propName\n }\n\n // non Variant Keys are of the form \"name#id\"\n // We have to take the last one in case the name contains #'s\n const lastIndex = propName.lastIndexOf('#')\n if (lastIndex !== -1) {\n return propName.substring(0, lastIndex)\n }\n return propName\n}\n\nfunction propMatches(\n figmaProp: any,\n codeConnectPropName: string,\n componentPropertyDefinitions: any,\n): boolean {\n const figmaPropName = getPropName(componentPropertyDefinitions, figmaProp)\n return figmaPropName === codeConnectPropName\n}\n\n\n\n\nexport const STATE_BOOLEAN_VALUE_PAIRS = [\n ['yes', 'no'],\n ['true', 'false'],\n ['on', 'off'],\n]\n\nfunction isVariantBoolean(variantPossibleValues: string[]) {\n if (variantPossibleValues.length === 2) {\n const lowerCaseOptions = variantPossibleValues.map((p) => p.toLowerCase())\n for (const pair of STATE_BOOLEAN_VALUE_PAIRS) {\n const i = lowerCaseOptions.indexOf(pair[0]!)\n const j = lowerCaseOptions.indexOf(pair[1]!)\n if (i !== -1 && j !== -1) {\n return true\n }\n }\n }\n return false\n}\n\nfunction validateVariantRestrictions(doc: CodeConnectJSON, document: any): boolean {\n if (doc.variant) {\n let variantRestrictionsValid = true\n const codeConnectVariantRestrictions = Object.keys(doc.variant)\n\n for (let i = 0; i < codeConnectVariantRestrictions.length; i++) {\n const variantRestriction: any = codeConnectVariantRestrictions[i]\n\n const match = Object.keys(document.componentPropertyDefinitions ?? {}).find((figmaProp) =>\n propMatches(figmaProp, variantRestriction, document.componentPropertyDefinitions),\n )\n if (!match) {\n logger.error(\n `Validation failed for ${doc.component} (${doc.figmaNode}): The property \"${variantRestriction}\" does not exist on the Figma component`,\n )\n variantRestrictionsValid = false\n continue\n }\n\n const variantRestrictionValue = doc.variant[variantRestriction]\n const variantOrProp = document.componentPropertyDefinitions[match]\n\n // Only check `variantOptions` for Variants, and not for props, since props\n // don't have a set of possible values we can check against\n const isValidBooleanVariant =\n typeof variantRestrictionValue === 'boolean' &&\n Array.isArray(variantOrProp.variantOptions) &&\n isVariantBoolean(variantOrProp.variantOptions)\n\n const isValidVariantValue =\n variantOrProp.variantOptions?.includes(variantRestrictionValue) || isValidBooleanVariant\n\n if (variantOrProp.type === 'VARIANT' && !isValidVariantValue) {\n logger.error(\n `Validation failed for ${doc.component} (${doc.figmaNode}): The Figma Variant \"${match}\" does not have an option for ${variantRestrictionValue}`,\n )\n variantRestrictionsValid = false\n continue\n }\n }\n\n if (!variantRestrictionsValid) {\n return false\n }\n }\n return true\n}\n\nexport function validateDoc(doc: CodeConnectJSON, figmaNode: any, nodeId: string): boolean {\n if (!figmaNode || !figmaNode.document) {\n logger.error(\n `Validation failed for ${doc.component} (${doc.figmaNode}): node not found in file`,\n )\n return false\n }\n\n const document = figmaNode.document\n if (document.type !== 'COMPONENT' && document.type !== 'COMPONENT_SET') {\n logger.error(\n `Validation failed for ${doc.component} (${doc.figmaNode}): corresponding node is not a component or component set`,\n )\n return false\n }\n\n const component = figmaNode.components[nodeId]\n if (component && component.componentSetId) {\n logger.error(\n `Validation failed for ${doc.component} (${doc.figmaNode}): node is not a top level component or component set. Please check that the node is not a variant`,\n )\n return false\n }\n\n const propsValid = validateProps(doc, document)\n if (!propsValid) {\n return false\n }\n\n const variantRestrictionsValid = validateVariantRestrictions(doc, document)\n if (!variantRestrictionsValid) {\n return false\n }\n\n return true\n}\n\nexport async function validateDocs(\n cmd: BaseCommand,\n accessToken: string,\n docs: CodeConnectJSON[],\n apiUrlOverride?: string,\n): Promise<boolean> {\n let baseApiUrl = getApiUrl(docs?.[0]?.figmaNode ?? '', apiUrlOverride) + '/files/'\n\n const fileKeyToNodeIds: { [key: string]: any } = {}\n let valid = true\n docs.forEach((doc) => {\n const parsedNode = parseFigmaNode(cmd.verbose, doc)\n if (!parsedNode) {\n valid = false\n return\n }\n fileKeyToNodeIds[parsedNode.fileKey] ||= {}\n fileKeyToNodeIds[parsedNode.fileKey][parsedNode.nodeId] ||= []\n fileKeyToNodeIds[parsedNode.fileKey][parsedNode.nodeId].push(doc)\n })\n\n if (!valid) {\n return false\n }\n\n logger.debug('fileKeyToNodeIds')\n logger.debug(JSON.stringify(fileKeyToNodeIds, null, 2))\n\n const fileKeys = Object.keys(fileKeyToNodeIds)\n for (let i = 0; i < fileKeys.length; i++) {\n const fileKey = fileKeys[i]\n logger.debug(`Validating file ${fileKey}`)\n const nodeMap = fileKeyToNodeIds[fileKey]\n const nodeIds = Object.keys(nodeMap)\n logger.debug(`Validating ${nodeIds.length} nodes`)\n const chunks = chunk(nodeIds, 400)\n\n for (let batch = 0; batch < chunks.length; batch++) {\n const nodeIdsChunk = chunks[batch]\n logger.debug(`Running for ${baseApiUrl + fileKey + '/nodes?ids=' + nodeIdsChunk.join(',')}`)\n const nodeMapRet = await fetchNodeInfo(baseApiUrl, fileKey, nodeIdsChunk, accessToken)\n if (!nodeMapRet) {\n return false\n }\n\n valid =\n valid &&\n nodeIdsChunk\n .map((nodeId: string) => {\n return nodeMap[nodeId]\n .map((doc: CodeConnectJSON) => validateDoc(doc, nodeMapRet[nodeId], nodeId))\n .every(Boolean)\n })\n .every(Boolean)\n }\n }\n return valid\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"autolinking.js","sourceRoot":"","sources":["../../../src/connect/wizard/autolinking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autolinking.js","sourceRoot":"","sources":["../../../src/connect/wizard/autolinking.ts"],"names":[],"mappings":"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","sourcesContent":["import { MatchData, Searcher, search } from 'fast-fuzzy'\nimport { FigmaRestApi } from '../figma_rest_api'\nimport path from 'path'\nimport { getComponentOptionsMap } from './helpers'\nimport prompts from 'prompts'\n\nconst FILENAME_MINIMUM_MATCH_THRESHOLD = 0.8\nconst EXPORT_NAME_MINIMUM_MATCH_THRESHOLD = 0.8\n\n/**\n * Guesses which export to use for a given file. Prioritizes default then search term.\n * @param args\n * @param args.filepath current file\n * @param args.exportOptions exported members of current file\n * @param args.nameToMatch name of Figma component\n * @returns filepathExport to use\n */\nexport function getBestMatchingExportWithinFile({\n filepath,\n exportOptions,\n nameToMatch,\n}: {\n filepath: string\n exportOptions: prompts.Choice[]\n nameToMatch: string\n}): string {\n // Don't append export if no known exports\n if (exportOptions.length === 0) {\n return filepath\n }\n\n if (exportOptions.length === 1) {\n return exportOptions[0].value\n }\n const defaultOption = exportOptions.find((o) => o.title === 'default')\n if (defaultOption) {\n return defaultOption.value\n }\n\n const matches = search(\n nameToMatch,\n exportOptions.map((opt) => opt.title),\n {\n threshold: EXPORT_NAME_MINIMUM_MATCH_THRESHOLD,\n },\n )\n\n if (matches.length > 0) {\n /**\n * fuzzy.search searches for string inside another, meaning e.g. \"Button\" and \"ButtonProps\" rank equally for \"Button\".\n * We counter this by looking for shortest string in matches\n */\n const shortestMatch = matches.reduce(function (a, b) {\n return a.length <= b.length ? a : b\n })\n\n if (shortestMatch) {\n return exportOptions.find((o) => o.title === shortestMatch)!.value\n }\n }\n\n // use anything\n return exportOptions[0].value\n}\n\n/**\n * Autolinks components/paths based on fuzzy matching of name and writes mappings to linkedNodeIdsToPaths.\n *\n * Matching is done by fast-fuzzy\n */\nexport function autoLinkComponents({\n unconnectedComponents,\n linkedNodeIdsToFilepathExports,\n filepathExports,\n}: {\n unconnectedComponents: FigmaRestApi.Component[]\n linkedNodeIdsToFilepathExports: Record<string, string>\n filepathExports: string[]\n}) {\n const componentOptionsMap = getComponentOptionsMap(filepathExports)\n\n const pathMatchScores: Record<string, { nodeId: string; score: number }> = {}\n /**\n * fast-fuzzy finds best match in filenames for a given component - this function\n * allows us to replace that link if a closer match is found\n */\n function isBestMatchForPath(match: MatchData<string>) {\n return !pathMatchScores[match.item] || match.score > pathMatchScores[match.item].score\n }\n\n const matchableFilenameToPathMap = Object.keys(componentOptionsMap).reduce(\n (acc, componentPath) => {\n const { name, dir } = path.parse(componentPath)\n // For index.ts files, match on the directory name\n const matchableName = name === 'index' ? path.basename(dir) : name\n acc[matchableName] = componentPath\n return acc\n },\n {} as Record<string, string>,\n )\n\n const searchSpace = Object.keys(matchableFilenameToPathMap)\n const searcher = new Searcher(searchSpace)\n\n unconnectedComponents.forEach((component) => {\n const matchableName = component.name\n const results = searcher.search(matchableName, { returnMatchData: true })\n const bestMatch = results[0]\n const filename = bestMatch?.item\n if (\n bestMatch &&\n bestMatch.score > FILENAME_MINIMUM_MATCH_THRESHOLD &&\n filename in matchableFilenameToPathMap &&\n isBestMatchForPath(bestMatch)\n ) {\n const filepath = matchableFilenameToPathMap[bestMatch.item]\n linkedNodeIdsToFilepathExports[component.id] = getBestMatchingExportWithinFile({\n filepath,\n exportOptions: componentOptionsMap[filepath],\n nameToMatch: component.name,\n })\n pathMatchScores[bestMatch.item] = { nodeId: component.id, score: bestMatch.score }\n }\n })\n}\n"]}
@@ -5,9 +5,10 @@ export type EmbeddingsResponse = {
5
5
  embeddings: number[][];
6
6
  };
7
7
  };
8
- export declare function fetchEmbeddings({ uniqueMatchableNames, accessToken, figmaUrl, }: {
8
+ export declare function fetchEmbeddings({ uniqueMatchableNames, accessToken, figmaUrl, apiUrlOverride, }: {
9
9
  uniqueMatchableNames: string[];
10
10
  accessToken: string;
11
11
  figmaUrl: string;
12
+ apiUrlOverride?: string;
12
13
  }): Promise<EmbeddingsResponse>;
13
14
  //# sourceMappingURL=embeddings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../../src/connect/wizard/embeddings.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,EAAE,EAAE,CAAA;KACvB,CAAA;CACF,CAAA;AAED,wBAAsB,eAAe,CAAC,EACpC,oBAAoB,EACpB,WAAW,EACX,QAAQ,GACT,EAAE;IACD,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,+BAgBA"}
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../../src/connect/wizard/embeddings.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,EAAE,EAAE,CAAA;KACvB,CAAA;CACF,CAAA;AAED,wBAAsB,eAAe,CAAC,EACpC,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,cAAc,GACf,EAAE;IACD,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,+BAgBA"}
@@ -4,8 +4,8 @@ exports.fetchEmbeddings = fetchEmbeddings;
4
4
  const fetch_1 = require("../../common/fetch");
5
5
  const figma_rest_api_1 = require("../figma_rest_api");
6
6
  const helpers_1 = require("../helpers");
7
- async function fetchEmbeddings({ uniqueMatchableNames, accessToken, figmaUrl, }) {
8
- const apiUrl = (0, figma_rest_api_1.getApiUrl)(figmaUrl);
7
+ async function fetchEmbeddings({ uniqueMatchableNames, accessToken, figmaUrl, apiUrlOverride, }) {
8
+ const apiUrl = (0, figma_rest_api_1.getApiUrl)(figmaUrl, apiUrlOverride);
9
9
  const fileKey = (0, helpers_1.parseFileKey)(figmaUrl);
10
10
  const result = await fetch_1.request.post(apiUrl + '/code_connect/name_embeddings', uniqueMatchableNames, {
11
11
  headers: (0, figma_rest_api_1.getHeaders)(accessToken),
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../../src/connect/wizard/embeddings.ts"],"names":[],"mappings":";;AAYA,0CAwBC;AApCD,8CAA4C;AAC5C,sDAAyD;AACzD,wCAAyC;AAUlC,KAAK,UAAU,eAAe,CAAC,EACpC,oBAAoB,EACpB,WAAW,EACX,QAAQ,GAKT;IACC,MAAM,MAAM,GAAG,IAAA,0BAAS,EAAC,QAAQ,CAAC,CAAA;IAClC,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,QAAQ,CAAC,CAAA;IAEtC,MAAM,MAAM,GAAG,MAAM,eAAO,CAAC,IAAI,CAC/B,MAAM,GAAG,+BAA+B,EACxC,oBAAoB,EACpB;QACE,OAAO,EAAE,IAAA,2BAAU,EAAC,WAAW,CAAC;QAChC,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;SAClB;KACF,CACF,CAAA;IAED,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../../src/connect/wizard/embeddings.ts"],"names":[],"mappings":";;AAYA,0CA0BC;AAtCD,8CAA4C;AAC5C,sDAAyD;AACzD,wCAAyC;AAUlC,KAAK,UAAU,eAAe,CAAC,EACpC,oBAAoB,EACpB,WAAW,EACX,QAAQ,EACR,cAAc,GAMf;IACC,MAAM,MAAM,GAAG,IAAA,0BAAS,EAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,QAAQ,CAAC,CAAA;IAEtC,MAAM,MAAM,GAAG,MAAM,eAAO,CAAC,IAAI,CAC/B,MAAM,GAAG,+BAA+B,EACxC,oBAAoB,EACpB;QACE,OAAO,EAAE,IAAA,2BAAU,EAAC,WAAW,CAAC;QAChC,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;SAClB;KACF,CACF,CAAA;IAED,OAAO,MAAM,CAAC,IAAI,CAAA;AACpB,CAAC","sourcesContent":["import { request } from '../../common/fetch'\nimport { getApiUrl, getHeaders } from '../figma_rest_api'\nimport { parseFileKey } from '../helpers'\n\nexport type EmbeddingsResponse = {\n status: number\n error: boolean\n meta: {\n embeddings: number[][]\n }\n}\n\nexport async function fetchEmbeddings({\n uniqueMatchableNames,\n accessToken,\n figmaUrl,\n apiUrlOverride,\n}: {\n uniqueMatchableNames: string[]\n accessToken: string\n figmaUrl: string\n apiUrlOverride?: string\n}) {\n const apiUrl = getApiUrl(figmaUrl, apiUrlOverride)\n const fileKey = parseFileKey(figmaUrl)\n\n const result = await request.post<EmbeddingsResponse>(\n apiUrl + '/code_connect/name_embeddings',\n uniqueMatchableNames,\n {\n headers: getHeaders(accessToken),\n query: {\n file_key: fileKey,\n },\n },\n )\n\n return result.data\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/connect/wizard/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,sFAKC;AAWD,0CAoBC;AAED,sCAKC;AAED,8CAIC;AAED,0DAqCC;AAID,kDAaC;AAED,8CAEC;AAQD,wDAeC;AAQD,kEAgCC;AAED,0CAaC;AA9MD,mDAAoC;AACpC,4CAAmB;AACnB,wCASmB;AACnB,kDAAqE;AACrE,gDAAuB;AACvB,sDAAyC;AAEzC,oDAAqD;AACrD,wCAAyC;AAEzC,SAAgB,qCAAqC;IACnD,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC;QACxE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;QAC5F,iBAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAC/B,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,kBAAkB,EAClB,MAAM,GAKP;IACC,IAAI,kBAAkB,EAAE,CAAC;QACvB,4CAA4C;QAC5C,MAAM,mBAAmB,GAAG,cAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,UAAU,CAAC,cAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC5F,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,yCAA+B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CACvD,CAAC,kBAAkB,EAAE,EAAE,CAAC,GAAG,mBAAmB,IAAI,kBAAkB,EAAE,CACvE,CAAA;IACH,CAAC;IACD,OAAO,yCAA+B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACvD,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,EAAE,GAAG,EAAE,WAAW,EAAyC;IAC7F,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAA,8BAAoB,EAAC,GAAG,CAAC,CAAA;IAC1C,YAAE,CAAC,aAAa,CAAC,IAAA,oBAAU,EAAC,GAAG,CAAC,EAAE,uBAAuB,WAAW,GAAG,CAAC,CAAA;IACxE,gBAAM,CAAC,IAAI,CAAC,IAAA,iBAAO,EAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,SAAgB,iBAAiB,CAAC,EAAE,GAAG,EAAE,WAAW,EAAyC;IAC3F,MAAM,QAAQ,GAAG,IAAA,8BAAoB,EAAC,GAAG,CAAC,CAAA;IAC1C,YAAE,CAAC,cAAc,CAAC,IAAA,oBAAU,EAAC,GAAG,CAAC,EAAE,yBAAyB,WAAW,GAAG,CAAC,CAAA;IAC3E,gBAAM,CAAC,IAAI,CAAC,IAAA,iBAAO,EAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC9D,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,EAC5C,GAAG,EACH,kBAAkB,EAClB,MAAM,EACN,QAAQ,GAMT;IACC,MAAM,KAAK,GAAG,kCAAwB,CAAC,MAAM,CAAC,MAA2B,CAAC,CAAA;IAC1E,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAA;IAEzE,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC;;mBAEa,YAAY;gBACf,KAAK;uCACkB,QAAQ;;EAE7C;QACE,CAAC,CAAC;;mBAEa,YAAY;uCACQ,QAAQ;;EAE7C,CAAA;IAEA,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE;QAClD,MAAM,EAAE,MAAM;KACf,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,IAAA,8BAAoB,EAAC,GAAG,CAAC,CAAA;IAE1C,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAErC,gBAAM,CAAC,IAAI,CAAC,IAAA,iBAAO,EAAC,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,yBAAyB,GAAG,GAAG,CAAA;AAErC,SAAgB,mBAAmB,CAAC,cAAsB;IACxD,MAAM,kBAAkB,GAAG,cAAc,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAA;IAEhF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE,cAAc;YACxB,UAAU,EAAE,IAAI;SACjB,CAAA;IACH,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,CAAC;QACzD,UAAU,EAAE,cAAc,CAAC,SAAS,CAAC,kBAAkB,GAAG,CAAC,CAAC;KAC7D,CAAA;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,GAAW;IAC7D,OAAO,GAAG,QAAQ,GAAG,yBAAyB,GAAG,GAAG,EAAE,CAAA;AACxD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,eAAyB;IAC9D,OAAO,eAAe,CAAC,MAAM,CAC3B,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE;QACtB,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAA;QACpE,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;gBACjB,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC;aAC/C,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EACD,EAA8B,CAC/B,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,WAAwB,EAAE,GAAgB;IACpF,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QACpD,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,WAA+B,CAAA;YACrD,IAAI,CAAC,IAAA,kCAAkB,EAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,EAAE,CAAA;gBAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;gBACpD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;wBAChB,gBAAM,CAAC,IAAI,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAA;oBACjE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC;wBACH,MAAM,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAE,CAAA;wBACjE,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;wBAE5D,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;4BACtB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;wBAC1D,CAAC,CAAC,CAAA;oBACJ,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;4BAChB,gBAAM,CAAC,IAAI,CAAC,oCAAoC,QAAQ,EAAE,CAAC,CAAA;wBAC7D,CAAC;wBACD,uBAAuB;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACxB,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,EAAE,EAAc,CAAC,CAAA;AACpB,CAAC;AAED,SAAgB,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,IACE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAC/B,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,CAAC,CAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/connect/wizard/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import * as prettier from 'prettier'\nimport fs from 'fs'\nimport {\n CodeConnectConfig,\n CodeConnectParser,\n DEFAULT_INCLUDE_GLOBS_BY_PARSER,\n DEFAULT_LABEL_PER_PARSER,\n ProjectInfo,\n ReactProjectInfo,\n getDefaultConfigPath,\n getEnvPath,\n} from '../project'\nimport { exitWithError, logger, success } from '../../common/logging'\nimport path from 'path'\nimport prompts, { Choice } from 'prompts'\nimport { BaseCommand } from '../../commands/connect'\nimport { isFigmaConnectFile } from '../parser_common'\nimport { parseFileKey } from '../helpers'\n\nexport function maybePrefillWizardQuestionsForTesting() {\n if (process.env.JEST_WORKER_ID && process.env.WIZARD_ANSWERS_TO_PREFILL) {\n const unescapedJson = JSON.parse(process.env.WIZARD_ANSWERS_TO_PREFILL.replace(/\\\\\"/g, '\"'))\n prompts.inject(unescapedJson)\n }\n}\n\n/**\n *\n * Gets the default include globs for config.parser with componentDirectory prepended\n * @param args\n * @param args.dir project root path\n * @param args.componentDirectory optional path to where includes should be limited to\n * @param args.config CodeConnectConfig\n * @returns array of include globs\n */\nexport function getIncludesGlob({\n dir,\n componentDirectory,\n config,\n}: {\n dir: string\n componentDirectory: string | null\n config: CodeConnectConfig\n}) {\n if (componentDirectory) {\n // use unix separators for config file globs\n const pathToComponentsDir = path.relative(dir, componentDirectory).replaceAll(path.sep, '/')\n if (config.parser === 'custom') {\n return []\n }\n return DEFAULT_INCLUDE_GLOBS_BY_PARSER[config.parser].map(\n (defaultIncludeGlob) => `${pathToComponentsDir}/${defaultIncludeGlob}`,\n )\n }\n return DEFAULT_INCLUDE_GLOBS_BY_PARSER[config.parser]\n}\n\nexport async function createEnvFile({ dir, accessToken }: { dir: string; accessToken?: string }) {\n // Create .env file\n const filePath = getDefaultConfigPath(dir)\n fs.writeFileSync(getEnvPath(dir), `FIGMA_ACCESS_TOKEN=\"${accessToken}\"`)\n logger.info(success(`Created ${filePath}`))\n}\n\nexport function addTokenToEnvFile({ dir, accessToken }: { dir: string; accessToken?: string }) {\n const filePath = getDefaultConfigPath(dir)\n fs.appendFileSync(getEnvPath(dir), `\\nFIGMA_ACCESS_TOKEN=\"${accessToken}\"`)\n logger.info(success(`Appended access token to ${filePath}`))\n}\n\nexport async function createCodeConnectConfig({\n dir,\n componentDirectory,\n config,\n figmaUrl,\n}: {\n dir: string\n componentDirectory: string | null\n config: CodeConnectConfig\n figmaUrl: string\n}) {\n const label = DEFAULT_LABEL_PER_PARSER[config.parser as CodeConnectParser]\n const includesGlob = getIncludesGlob({ dir, componentDirectory, config })\n\n const configJson = label\n ? `{\n \"codeConnect\": {\n \"include\": [\"${includesGlob}\"],\n \"label\": \"${label}\",\n \"interactiveSetupFigmaFileUrl\": \"${figmaUrl}\",\n}\n}`\n : `{\n \"codeConnect\": {\n \"include\": [\"${includesGlob}\"],\n \"interactiveSetupFigmaFileUrl\": \"${figmaUrl}\",\n }\n}`\n\n const formatted = await prettier.format(configJson, {\n parser: 'json',\n })\n const filePath = getDefaultConfigPath(dir)\n\n fs.writeFileSync(filePath, formatted)\n\n logger.info(success(`Created ${filePath}`))\n}\n\nconst FILEPATH_EXPORT_DELIMITER = '~'\n\nexport function parseFilepathExport(filepathExport: string) {\n const delimiterLastIndex = filepathExport.lastIndexOf(FILEPATH_EXPORT_DELIMITER)\n\n if (delimiterLastIndex === -1) {\n return {\n filepath: filepathExport,\n exportName: null,\n }\n }\n return {\n filepath: filepathExport.substring(0, delimiterLastIndex),\n exportName: filepathExport.substring(delimiterLastIndex + 1),\n }\n}\n\nexport function getFilepathExport(filepath: string, exp: string) {\n return `${filepath}${FILEPATH_EXPORT_DELIMITER}${exp}`\n}\n\n/**\n * Formats an array of filepathExports into a map of filepaths->exports\n *\n * @param filepathExports an array of components in the format `${filepath}~${componentName}\n * @returns a map of filepaths to an array of their exports. Array is empty if no exports found\n */\nexport function getComponentOptionsMap(filepathExports: string[]) {\n return filepathExports.reduce(\n (acc, filepathExport) => {\n const { filepath, exportName } = parseFilepathExport(filepathExport)\n acc[filepath] = acc[filepath] || []\n if (exportName) {\n acc[filepath].push({\n title: exportName,\n value: getFilepathExport(filepath, exportName),\n })\n }\n return acc\n },\n {} as Record<string, Choice[]>,\n )\n}\n\n/**\n * Parses a ProjectInfo for any TS exports (or filepaths if not a TS project)\n *\n * @param projectInfo\n * @returns an array of components in the format `${filepath}~${componentName}\n */\nexport function getFilepathExportsFromFiles(projectInfo: ProjectInfo, cmd: BaseCommand) {\n return projectInfo.files.reduce((options, filepath) => {\n if (projectInfo.config.parser === 'react') {\n const { tsProgram } = projectInfo as ReactProjectInfo\n if (!isFigmaConnectFile(tsProgram, filepath, 'tsx')) {\n const checker = tsProgram.getTypeChecker()\n const sourceFile = tsProgram.getSourceFile(filepath)\n if (!sourceFile) {\n if (cmd.verbose) {\n logger.warn(`Could not parse file for TypeScript: ${filepath}`)\n }\n } else {\n try {\n const sourceFileSymbol = checker.getSymbolAtLocation(sourceFile)!\n const exports = checker.getExportsOfModule(sourceFileSymbol)\n\n exports.forEach((exp) => {\n options.push(getFilepathExport(filepath, exp.getName()))\n })\n } catch (e) {\n if (cmd.verbose) {\n logger.warn(`Could not parse exports of file: ${filepath}`)\n }\n // ignore invalid files\n }\n }\n }\n } else {\n options.push(filepath)\n }\n return options\n }, [] as string[])\n}\n\nexport function isValidFigmaUrl(url: string) {\n try {\n const { hostname } = new URL(url)\n if (\n !hostname.includes('figma.com')\n ) {\n return false\n }\n\n return !!parseFileKey(url)\n } catch (e) {\n return false\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"prop_mapping.js","sourceRoot":"","sources":["../../../src/connect/wizard/prop_mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prop_mapping.js","sourceRoot":"","sources":["../../../src/connect/wizard/prop_mapping.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentTypeSignature } from '../../react/parser'\nimport { FigmaRestApi } from '../figma_rest_api'\nimport { PropMapping } from '../parser_executable_types'\nimport { Searcher } from 'fast-fuzzy'\nimport { Intrinsic, IntrinsicKind, ValueMapping } from '../../connect/intrinsics'\nimport { isBooleanKind } from '../../react/create'\nimport { ComponentMatchResults, MatchableNamesMap, PropMatchResult } from './prop_mapping_helpers'\n\n/**\n * These thresholds were come up with by running the benchmarking\n * and tweaking until high positives + acceptable false positives\n * were achieved. It's worth repeating this process whenever making\n * changes to the mapping algorithm.\n */\nconst MININUM_MATCH_SCORES = {\n fuzzy: {\n property: 0.65,\n variantValue: 0.8,\n },\n embeddings: {\n property: 0.84,\n variantValue: 0.87,\n },\n}\n\n/**\n * Used when we should output a placeholder for an unknown value in prop mapping.\n */\nexport const PROPERTY_PLACEHOLDER = 'PROPERTY_PLACEHOLDER'\n\nexport function generateValueMapping(\n propSignature: string,\n figmaPropDef: FigmaRestApi.ComponentPropertyDefinition,\n): ValueMapping {\n const searchableCodeEnumOptions: Record<string, string | boolean | number> = {}\n propSignature.split(' | ').forEach((str) => {\n if (str.startsWith('\"') && str.endsWith('\"')) {\n const withoutQuotes = str.substring(1, str.length - 1)\n searchableCodeEnumOptions[withoutQuotes] = withoutQuotes\n } else if (str === 'true') {\n searchableCodeEnumOptions[str] = true\n } else if (str === 'false') {\n searchableCodeEnumOptions[str] = false\n } else if (!isNaN(Number(str))) {\n searchableCodeEnumOptions[str] = Number(str)\n }\n })\n const searcher = new Searcher(figmaPropDef.variantOptions)\n return Object.entries(searchableCodeEnumOptions).reduce(\n (valueMapping, [codeEnumValue, mappedValue]) => {\n const results = searcher.search(codeEnumValue, { returnMatchData: true })\n if (results.length && results[0].score > 0.5) {\n valueMapping[results[0].item] = mappedValue\n }\n return valueMapping\n },\n {} as ValueMapping,\n )\n}\n\nfunction signatureIsJsxLike(signature: string) {\n return (\n signature.includes('ElementType') ||\n signature.includes('ReactElement') ||\n signature.includes('ReactNode')\n )\n}\n\n/**\n * Attempts to create a mapping between a code prop and figma prop.\n * These props have been matched by name and aren't guaranteed to\n * actually be related, so we return null if no suitable mapping\n */\nfunction generateIntrinsic({\n propSignature,\n figmaPropName: figmaPropNameWithNodeId,\n figmaPropDef,\n}: {\n propSignature: string\n figmaPropName: string\n figmaPropDef: FigmaRestApi.ComponentPropertyDefinition\n}): Intrinsic | null {\n const figmaPropName = stripNodeIdFromPropertyName(figmaPropNameWithNodeId)\n if (propSignature === 'string' && figmaPropDef.type === FigmaRestApi.ComponentPropertyType.Text) {\n return {\n kind: IntrinsicKind.String,\n args: {\n figmaPropName,\n },\n }\n }\n if (\n propSignature === 'false | true' &&\n (figmaPropDef.type === FigmaRestApi.ComponentPropertyType.Boolean ||\n (figmaPropDef.type === FigmaRestApi.ComponentPropertyType.Variant &&\n figmaPropDef.variantOptions?.length === 2 &&\n figmaPropDef.variantOptions?.every(isBooleanKind)))\n ) {\n return {\n kind: IntrinsicKind.Boolean,\n args: {\n figmaPropName,\n },\n }\n }\n if (\n propSignature.includes(' | ') &&\n figmaPropDef.type === FigmaRestApi.ComponentPropertyType.Variant\n ) {\n const valueMapping = generateValueMapping(propSignature, figmaPropDef)\n // Only valuable if some values were mapped\n if (Object.keys(valueMapping).length > 0) {\n return {\n kind: IntrinsicKind.Enum,\n args: {\n figmaPropName,\n valueMapping,\n },\n }\n }\n }\n if (\n signatureIsJsxLike(propSignature) &&\n figmaPropDef.type === FigmaRestApi.ComponentPropertyType.InstanceSwap\n ) {\n return {\n kind: IntrinsicKind.Instance,\n args: {\n figmaPropName,\n },\n }\n }\n return null\n}\n\nfunction stripNodeIdFromPropertyName(propertyName: string) {\n return propertyName.replace(/#\\d+:\\d+/, '')\n}\n\nexport enum MatchableNameTypes {\n Property,\n VariantValue,\n // ChildLayer, // TODO\n}\n\nconst MATCHABLE_NAME_TYPES_PRIORITY = [\n MatchableNameTypes.Property,\n MatchableNameTypes.VariantValue,\n] as const\n\nexport type MatchableName = {\n type: MatchableNameTypes\n name: string\n variantProperty?: string // Only for VariantValue\n}\n\n/**\n * Builds a map of all properties and enum values, indexed by name.\n * @param componentPropertyDefinitions\n * @returns A map of {name: values[]}. Each value is an array to avoid\n * collisions between properties / enum values\n */\nexport function buildMatchableNamesMap(\n componentPropertyDefinitions?: FigmaRestApi.Component['componentPropertyDefinitions'],\n) {\n const matchableValues: MatchableNamesMap = {}\n\n function add(name: string, definition: MatchableName) {\n matchableValues[name] = matchableValues[name] || []\n matchableValues[name].push(definition)\n }\n\n Object.entries(componentPropertyDefinitions || {}).forEach(([propName, propDef]) => {\n const name = stripNodeIdFromPropertyName(propName)\n\n add(name, {\n type: MatchableNameTypes.Property,\n name: propName,\n })\n\n if (propDef.type === FigmaRestApi.ComponentPropertyType.Variant) {\n propDef.variantOptions?.forEach((variantValue) => {\n add(variantValue, {\n type: MatchableNameTypes.VariantValue,\n name: variantValue,\n variantProperty: propName,\n })\n })\n }\n })\n\n return matchableValues\n}\n\nexport function generatePropMapping({\n componentPropertyDefinitions,\n signature,\n componentMatchResults,\n matchableNamesMap,\n}: {\n componentPropertyDefinitions: FigmaRestApi.Component['componentPropertyDefinitions']\n signature: ComponentTypeSignature\n componentMatchResults?: ComponentMatchResults\n matchableNamesMap: MatchableNamesMap\n}): PropMapping {\n const propMapping: PropMapping = {}\n\n const searchSpace = Object.keys(matchableNamesMap)\n const searcher = new Searcher(searchSpace)\n\n let minimumMatchScores = MININUM_MATCH_SCORES.fuzzy\n\n const useEmbeddings = !!componentMatchResults\n if (useEmbeddings) {\n minimumMatchScores = MININUM_MATCH_SCORES.embeddings\n }\n\n function attemptGetIntrinsicForProp({\n propMatch,\n propSignature,\n }: {\n propMatch: PropMatchResult\n propSignature: string\n }) {\n const itemsInPriorityOrder = [...matchableNamesMap[propMatch.item]].sort(\n (a, b) =>\n MATCHABLE_NAME_TYPES_PRIORITY.indexOf(a.type) -\n MATCHABLE_NAME_TYPES_PRIORITY.indexOf(b.type),\n )\n\n for (const item of itemsInPriorityOrder) {\n /**\n * First, look for matching property names with compatible types\n */\n if (\n item.type === MatchableNameTypes.Property &&\n propMatch.score > minimumMatchScores.property\n ) {\n const intrinsic = generateIntrinsic({\n propSignature,\n figmaPropName: item.name,\n figmaPropDef: componentPropertyDefinitions[item.name],\n })\n if (intrinsic) {\n return intrinsic\n }\n /**\n * Then if no match AND a boolean prop, look for matching variant values, e.g:\n *\n * disabled: figma.enum('State', {\n * Disabled: true,\n * })\n */\n } else if (\n item.type === MatchableNameTypes.VariantValue &&\n propSignature === 'false | true' &&\n propMatch.score > minimumMatchScores.variantValue\n ) {\n return {\n kind: IntrinsicKind.Enum,\n args: {\n figmaPropName: item.variantProperty,\n valueMapping: {\n [item.name]: true,\n },\n },\n } as Intrinsic\n }\n }\n\n return null\n }\n\n /**\n * Attempt to generate an intrinsic for a given property name by looking\n * for name matches with a minimum threshold\n *\n * Embeddings are priorized over fuzzy matching if present (they\n * may be missing if gated or missing permissions).\n */\n for (const [propName, propSignatureWithOptionalModifier] of Object.entries(signature)) {\n const propSignature = propSignatureWithOptionalModifier.startsWith('?')\n ? propSignatureWithOptionalModifier.substring(1)\n : propSignatureWithOptionalModifier\n\n let matches = searcher.search(propName, { returnMatchData: true }) as PropMatchResult[]\n\n if (useEmbeddings) {\n matches = componentMatchResults[propName]\n }\n\n if (matches.length === 0) {\n continue\n }\n\n for (const match of matches) {\n const intrinsic = attemptGetIntrinsicForProp({\n propMatch: match,\n propSignature,\n })\n if (intrinsic) {\n propMapping[propName] = intrinsic\n break\n }\n }\n }\n\n return propMapping\n}\n"]}
@@ -35,12 +35,13 @@ type MatchableNameEmbeddings = {
35
35
  [matchableName: string]: number[];
36
36
  };
37
37
  export declare function buildAllEmbeddingsMatchResults(propMappingData: PropMappingData, matchableNameEmbeddings: MatchableNameEmbeddings): AllMatchResults;
38
- export declare function generateAllPropsMappings({ propMappingData, accessToken, figmaUrl, useAi, mockResponseName, }: {
38
+ export declare function generateAllPropsMappings({ propMappingData, accessToken, figmaUrl, useAi, mockResponseName, apiUrlOverride, }: {
39
39
  propMappingData: PropMappingData;
40
40
  accessToken: string;
41
41
  figmaUrl: string;
42
42
  useAi: boolean;
43
43
  mockResponseName?: string;
44
+ apiUrlOverride?: string;
44
45
  }): Promise<{
45
46
  [filepathExport: string]: PropMapping;
46
47
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"prop_mapping_helpers.d.ts","sourceRoot":"","sources":["../../../src/connect/wizard/prop_mapping_helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,aAAa,EAA+C,MAAM,gBAAgB,CAAA;AAE3F,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAIxD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,cAAc,EAAE,MAAM,GAAG;QACxB,SAAS,EAAE,sBAAsB,CAAA;QACjC,iBAAiB,EAAE,iBAAiB,CAAA;QACpC,4BAA4B,EAAE,YAAY,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAA;KACrF,CAAA;CACF,CAAA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,2BAA2B,EAC3B,WAAW,EACX,GAAG,GACJ,EAAE;IACD,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACnE,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,WAAW,CAAA;CACjB,mBA+BA;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,eAAe,YAMvE;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7D,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAAA;CACtC,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,CAAC,cAAc,EAAE,MAAM,GAAG,qBAAqB,CAAA;CAChD,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAClC,CAAA;AASD,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,eAAe,EAChC,uBAAuB,EAAE,uBAAuB,mBAiBjD;AAiED,wBAAsB,wBAAwB,CAAC,EAC7C,eAAe,EACf,WAAW,EACX,QAAQ,EACR,KAAK,EACL,gBAAgB,GACjB,EAAE;IACD,eAAe,EAAE,eAAe,CAAA;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;;GAmCA;AAED;;;;;;;;;GASG;AACH,wBAAsB,sCAAsC,CAAC,EAC3D,2BAA2B,EAC3B,WAAW,EACX,GAAG,EACH,QAAQ,EACR,WAAW,EACX,KAAK,GACN,EAAE;IACD,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACnE,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;CACf;;;;;GAeA"}
1
+ {"version":3,"file":"prop_mapping_helpers.d.ts","sourceRoot":"","sources":["../../../src/connect/wizard/prop_mapping_helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,aAAa,EAA+C,MAAM,gBAAgB,CAAA;AAE3F,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAIxD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,cAAc,EAAE,MAAM,GAAG;QACxB,SAAS,EAAE,sBAAsB,CAAA;QACjC,iBAAiB,EAAE,iBAAiB,CAAA;QACpC,4BAA4B,EAAE,YAAY,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAA;KACrF,CAAA;CACF,CAAA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,2BAA2B,EAC3B,WAAW,EACX,GAAG,GACJ,EAAE;IACD,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACnE,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,WAAW,CAAA;CACjB,mBA+BA;AAED,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,eAAe,YAMvE;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7D,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAAA;CACtC,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,CAAC,cAAc,EAAE,MAAM,GAAG,qBAAqB,CAAA;CAChD,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAClC,CAAA;AASD,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,eAAe,EAChC,uBAAuB,EAAE,uBAAuB,mBAiBjD;AAmED,wBAAsB,wBAAwB,CAAC,EAC7C,eAAe,EACf,WAAW,EACX,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,cAAc,GACf,EAAE;IACD,eAAe,EAAE,eAAe,CAAA;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;;GAoCA;AAED;;;;;;;;;GASG;AACH,wBAAsB,sCAAsC,CAAC,EAC3D,2BAA2B,EAC3B,WAAW,EACX,GAAG,EACH,QAAQ,EACR,WAAW,EACX,KAAK,GACN,EAAE;IACD,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IACnE,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;CACf;;;;;GAgBA"}
@@ -103,20 +103,20 @@ async function getMockEmbeddingsResponse(uniqueMatchableNames, mockResponseName)
103
103
  return JSON.parse(fs_1.default.readFileSync(mockResponsePath, 'utf-8'));
104
104
  }
105
105
  }
106
- async function getEmbeddingsMatchResults({ propMappingData, accessToken, figmaUrl, mockResponseName, }) {
106
+ async function getEmbeddingsMatchResults({ propMappingData, accessToken, figmaUrl, mockResponseName, apiUrlOverride, }) {
107
107
  const uniqueMatchableNames = getUniqueMatchableNames(propMappingData);
108
108
  const matchableNamesEmbeddings = {};
109
109
  if (uniqueMatchableNames.length > 0) {
110
110
  const res = mockResponseName
111
111
  ? await getMockEmbeddingsResponse(uniqueMatchableNames, mockResponseName)
112
- : await (0, embeddings_1.fetchEmbeddings)({ uniqueMatchableNames, accessToken, figmaUrl });
112
+ : await (0, embeddings_1.fetchEmbeddings)({ uniqueMatchableNames, accessToken, figmaUrl, apiUrlOverride });
113
113
  res?.meta.embeddings.forEach((embedding, index) => {
114
114
  matchableNamesEmbeddings[uniqueMatchableNames[index]] = embedding;
115
115
  });
116
116
  }
117
117
  return buildAllEmbeddingsMatchResults(propMappingData, matchableNamesEmbeddings);
118
118
  }
119
- async function generateAllPropsMappings({ propMappingData, accessToken, figmaUrl, useAi, mockResponseName, }) {
119
+ async function generateAllPropsMappings({ propMappingData, accessToken, figmaUrl, useAi, mockResponseName, apiUrlOverride, }) {
120
120
  let allMatchResults = {};
121
121
  if (useAi) {
122
122
  try {
@@ -125,6 +125,7 @@ async function generateAllPropsMappings({ propMappingData, accessToken, figmaUrl
125
125
  accessToken,
126
126
  figmaUrl,
127
127
  mockResponseName,
128
+ apiUrlOverride,
128
129
  });
129
130
  }
130
131
  catch (e) {
@@ -171,6 +172,7 @@ async function extractDataAndGenerateAllPropsMappings({ filepathExportsToCompone
171
172
  accessToken,
172
173
  figmaUrl,
173
174
  useAi,
175
+ apiUrlOverride: cmd.apiUrl || projectInfo.config.apiUrl,
174
176
  }),
175
177
  };
176
178
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prop_mapping_helpers.js","sourceRoot":"","sources":["../../../src/connect/wizard/prop_mapping_helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prop_mapping_helpers.js","sourceRoot":"","sources":["../../../src/connect/wizard/prop_mapping_helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport { BaseCommand } from '../../commands/connect'\nimport { logger } from '../../common/logging'\nimport { ComponentTypeSignature } from '../../react/parser'\nimport { FigmaRestApi } from '../figma_rest_api'\nimport { ProjectInfo } from '../project'\nimport { parseFilepathExport } from './helpers'\nimport { MatchableName, buildMatchableNamesMap, generatePropMapping } from './prop_mapping'\nimport { extractSignature } from './signature_extraction'\nimport { PropMapping } from '../parser_executable_types'\nimport { EmbeddingsResponse, fetchEmbeddings } from './embeddings'\nimport { isFetchError } from '../../common/fetch'\n\nexport type MatchableNamesMap = Record<string, MatchableName[]>\n\nexport type PropMappingData = {\n [filepathExport: string]: {\n signature: ComponentTypeSignature\n matchableNamesMap: MatchableNamesMap\n componentPropertyDefinitions: FigmaRestApi.Component['componentPropertyDefinitions']\n }\n}\n\n/**\n * Preprocess signatures and matchable names for all components\n */\nexport function getPropMappingData({\n filepathExportsToComponents,\n projectInfo,\n cmd,\n}: {\n filepathExportsToComponents: Record<string, FigmaRestApi.Component>\n projectInfo: ProjectInfo\n cmd: BaseCommand\n}) {\n const propMappingData: PropMappingData = {}\n\n for (const [filepathExport, { componentPropertyDefinitions }] of Object.entries(\n filepathExportsToComponents,\n )) {\n const { filepath, exportName } = parseFilepathExport(filepathExport)\n\n if (projectInfo.config.parser === 'react' && filepath && exportName) {\n try {\n const signature = extractSignature({\n nameToFind: exportName,\n sourceFilePath: filepath,\n })\n if (cmd.verbose && Object.keys(signature).length === 0) {\n logger.warn(`No TS signature found for \"${exportName}\" in ${filepath}`)\n }\n propMappingData[filepathExport] = {\n signature,\n componentPropertyDefinitions,\n matchableNamesMap: buildMatchableNamesMap(componentPropertyDefinitions),\n }\n } catch (e) {\n if (cmd.verbose) {\n logger.warn(`Could not extract signature for \"${exportName}\" in ${filepath}`)\n }\n }\n }\n }\n\n return propMappingData\n}\n\nexport function getUniqueMatchableNames(propMappingData: PropMappingData) {\n const allNames = Object.values(propMappingData).flatMap((d) => [\n ...Object.keys(d.signature),\n ...Object.keys(d.matchableNamesMap),\n ])\n return Array.from(new Set(allNames))\n}\n\nexport type PropMatchResult = { item: string; score: number }\n\nexport type ComponentMatchResults = {\n [propName: string]: PropMatchResult[]\n}\n\ntype AllMatchResults = {\n [filepathExport: string]: ComponentMatchResults\n}\n\ntype MatchableNameEmbeddings = {\n [matchableName: string]: number[]\n}\n\nfunction cosineSimilarity(a: number[], b: number[]) {\n const dot_product = a.reduce((acc, val, i) => acc + val * b[i], 0)\n const magnitude_a = Math.sqrt(a.reduce((acc, val) => acc + val * val, 0))\n const magnitude_b = Math.sqrt(b.reduce((acc, val) => acc + val * val, 0))\n return dot_product / (magnitude_a * magnitude_b)\n}\n\nexport function buildAllEmbeddingsMatchResults(\n propMappingData: PropMappingData,\n matchableNameEmbeddings: MatchableNameEmbeddings,\n) {\n const allMatchResults: AllMatchResults = {}\n\n Object.entries(propMappingData).forEach(([filepathExport, { signature, matchableNamesMap }]) => {\n allMatchResults[filepathExport] = {}\n Object.keys(signature).forEach((propName) => {\n allMatchResults[filepathExport][propName] = Object.keys(matchableNamesMap)\n .map((item) => ({\n item,\n score: cosineSimilarity(matchableNameEmbeddings[propName], matchableNameEmbeddings[item]),\n }))\n .sort((a, b) => b.score - a.score)\n })\n })\n\n return allMatchResults\n}\n\nasync function getMockEmbeddingsResponse(uniqueMatchableNames: string[], mockResponseName: string) {\n /**\n * Refetch and write local mock responses.\n * This should be done whenever any upstream changes are made to e.g. TS signature extraction\n */\n const updateMockFiles = false\n\n // Return mock response or update local mocks\n const mockResponsePath =\n mockResponseName &&\n path.join(\n __dirname,\n `__test__/prop_mapping/test_cases/embeddings_responses/${mockResponseName}.json`,\n )\n if (updateMockFiles) {\n if (!process.env.FIGMA_ACCESS_TOKEN) {\n throw new Error('process.env.FIGMA_ACCESS_TOKEN required to fetch embeddings')\n }\n if (!process.env.FILE_URL) {\n throw new Error(\n \"process.env.FILE_URL required to fetch embeddings (note: contents of file don't matter)\",\n )\n }\n const res = await fetchEmbeddings({\n uniqueMatchableNames,\n accessToken: process.env.FIGMA_ACCESS_TOKEN,\n figmaUrl: process.env.FILE_URL,\n })\n fs.writeFileSync(mockResponsePath, JSON.stringify(res))\n return res\n } else {\n return JSON.parse(fs.readFileSync(mockResponsePath, 'utf-8')) as EmbeddingsResponse\n }\n}\n\nasync function getEmbeddingsMatchResults({\n propMappingData,\n accessToken,\n figmaUrl,\n mockResponseName,\n apiUrlOverride,\n}: {\n propMappingData: PropMappingData\n accessToken: string\n figmaUrl: string\n mockResponseName?: string\n apiUrlOverride?: string\n}) {\n const uniqueMatchableNames = getUniqueMatchableNames(propMappingData)\n\n const matchableNamesEmbeddings: MatchableNameEmbeddings = {}\n\n if (uniqueMatchableNames.length > 0) {\n const res = mockResponseName\n ? await getMockEmbeddingsResponse(uniqueMatchableNames, mockResponseName)\n : await fetchEmbeddings({ uniqueMatchableNames, accessToken, figmaUrl, apiUrlOverride })\n\n res?.meta.embeddings.forEach((embedding: number[], index: number) => {\n matchableNamesEmbeddings[uniqueMatchableNames[index]] = embedding\n })\n }\n\n return buildAllEmbeddingsMatchResults(propMappingData, matchableNamesEmbeddings)\n}\n\nexport async function generateAllPropsMappings({\n propMappingData,\n accessToken,\n figmaUrl,\n useAi,\n mockResponseName,\n apiUrlOverride,\n}: {\n propMappingData: PropMappingData\n accessToken: string\n figmaUrl: string\n useAi: boolean\n mockResponseName?: string\n apiUrlOverride?: string\n}) {\n let allMatchResults: AllMatchResults = {}\n\n if (useAi) {\n try {\n allMatchResults = await getEmbeddingsMatchResults({\n propMappingData,\n accessToken,\n figmaUrl,\n mockResponseName,\n apiUrlOverride,\n })\n } catch (e) {\n if (isFetchError(e)) {\n logger.error(`Failed to fetch embeddings: ${e.data?.message || e.response?.status}`)\n } else {\n logger.error(`Failed to compute embeddings: ${e}`)\n }\n logger.info('Falling back to using fuzzy matching')\n }\n }\n\n const propMappings: { [filepathExport: string]: PropMapping } = {}\n\n Object.entries(propMappingData).forEach(\n ([filepathExport, { signature, componentPropertyDefinitions, matchableNamesMap }]) => {\n propMappings[filepathExport] = generatePropMapping({\n matchableNamesMap,\n componentPropertyDefinitions,\n signature,\n componentMatchResults: allMatchResults[filepathExport],\n })\n },\n )\n\n return propMappings\n}\n\n/**\n * This is the top level function that takes a map of filepathExports to components and generates prop mappings.\n * It does the following:\n *\n * 1. For each component we want to match, extract their TS signature and all figma properties\n * 2. Make an array of all strings we want embeddings for (react props, figma properties, variant values)\n * 3. Call embeddings endpoint with above and create a map of names => embeddings\n * 4. For each component, build a map of code props to an list of matchable names + scores, sorted by their calculated embedding distance to the code prop\n * 5. Finally, pass those name matches and component data to the prop mapping algorithm to generate the mapping\n */\nexport async function extractDataAndGenerateAllPropsMappings({\n filepathExportsToComponents,\n projectInfo,\n cmd,\n figmaUrl,\n accessToken,\n useAi,\n}: {\n filepathExportsToComponents: Record<string, FigmaRestApi.Component>\n projectInfo: ProjectInfo\n cmd: BaseCommand\n figmaUrl: string\n accessToken: string\n useAi: boolean\n}) {\n const propMappingData = getPropMappingData({\n filepathExportsToComponents,\n projectInfo,\n cmd,\n })\n return {\n propMappingData,\n propMappings: await generateAllPropsMappings({\n propMappingData,\n accessToken,\n figmaUrl,\n useAi,\n apiUrlOverride: cmd.apiUrl || projectInfo.config.apiUrl,\n }),\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"run_wizard.d.ts","sourceRoot":"","sources":["../../../src/connect/wizard/run_wizard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiD,MAAM,wBAAwB,CAAA;AACnG,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B,OAAO,EAAE,YAAY,EAAa,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EACL,gBAAgB,EAKhB,iBAAiB,EACjB,WAAW,EAGZ,MAAM,uBAAuB,CAAA;AAI9B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAGzB,WAAW,EACZ,MAAM,4BAA4B,CAAA;AAuBnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,KAAK,0BAA0B,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,EAAE,CAAA;AA6FrF;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,YAAY,CAAC,SAAS,EAAE,EACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,qCA0C9B;AA+ED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,YAAY,CAAC,SAAS,EAAE,EACpC,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACtD,2BAA2B,EAAE,0BAA0B,EACvD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,CA2ClB;AA4ND,UAAU,cAAc;IACtB,WAAW,EAAE,cAAc,GAAG,eAAe,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,sBAAsB,CAAA;IAC3C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,YAAY,CAAC,SAAS,CAAA;IAC1C,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,iBAAiB,CAAA;CAC1B;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,oBAAoB,CAAC,EAC1E,IAAI,EAAE,cAAc,iBAwDrB;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,8BAA8B,EAC9B,YAAY,EACZ,wBAAwB,EACxB,MAAM,EAAE,SAAS,EACjB,WAAW,EACX,GAAG,EACH,WAAW,EACX,KAAK,GACN,EAAE;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtD,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IAChE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,WAAW,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;CACf,oBAoGA;AAED,wBAAgB,kCAAkC,CAAC,EACjD,aAAa,EACb,WAAW,EACX,GAAG,GACJ,EAAE;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;CACZ,iBAYA;AAED,wBAAsB,qDAAqD,CACzE,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,YAAY,CAAC,SAAS,EAAE,EAC5C,WAAW,EAAE,WAAW,CAAC,iBAAiB,CAAC,GAAG,gBAAgB;;;GA8C/D;AAsFD,wBAAsB,SAAS,CAAC,GAAG,EAAE,WAAW,iBAyQ/C"}
1
+ {"version":3,"file":"run_wizard.d.ts","sourceRoot":"","sources":["../../../src/connect/wizard/run_wizard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiD,MAAM,wBAAwB,CAAA;AACnG,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B,OAAO,EAAE,YAAY,EAAa,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EACL,gBAAgB,EAKhB,iBAAiB,EACjB,WAAW,EAGZ,MAAM,uBAAuB,CAAA;AAI9B,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EAGzB,WAAW,EACZ,MAAM,4BAA4B,CAAA;AAuBnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,KAAK,0BAA0B,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,EAAE,CAAA;AAiGrF;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,YAAY,CAAC,SAAS,EAAE,EACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,qCA0C9B;AA+ED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,YAAY,CAAC,SAAS,EAAE,EACpC,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACtD,2BAA2B,EAAE,0BAA0B,EACvD,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,CA2ClB;AA4ND,UAAU,cAAc;IACtB,WAAW,EAAE,cAAc,GAAG,eAAe,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,CAAC,EAAE,sBAAsB,CAAA;IAC3C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,kBAAkB,EAAE,YAAY,CAAC,SAAS,CAAA;IAC1C,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,iBAAiB,CAAA;CAC1B;AAED,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,yBAAyB,GAAG,oBAAoB,CAAC,EAC1E,IAAI,EAAE,cAAc,iBAwDrB;AAED,wBAAsB,sBAAsB,CAAC,EAC3C,8BAA8B,EAC9B,YAAY,EACZ,wBAAwB,EACxB,MAAM,EAAE,SAAS,EACjB,WAAW,EACX,GAAG,EACH,WAAW,EACX,KAAK,GACN,EAAE;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,8BAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtD,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;IAChE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,WAAW,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;CACf,oBAoGA;AAED,wBAAgB,kCAAkC,CAAC,EACjD,aAAa,EACb,WAAW,EACX,GAAG,GACJ,EAAE;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;CACZ,iBAYA;AAED,wBAAsB,qDAAqD,CACzE,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,YAAY,CAAC,SAAS,EAAE,EAC5C,WAAW,EAAE,WAAW,CAAC,iBAAiB,CAAC,GAAG,gBAAgB;;;GA8C/D;AAsFD,wBAAsB,SAAS,CAAC,GAAG,EAAE,WAAW,iBA2Q/C"}
@@ -42,10 +42,11 @@ function clearQuestion(prompt, answer) {
42
42
  process.stdout.moveCursor(0, -rowsToRemove);
43
43
  process.stdout.clearScreenDown();
44
44
  }
45
- async function fetchTopLevelComponentsFromFile({ accessToken, figmaUrl, cmd, }) {
45
+ async function fetchTopLevelComponentsFromFile({ accessToken, figmaUrl, cmd, projectInfo, }) {
46
46
  // TODO enter create flow if node-id specified
47
47
  const fileKey = (0, helpers_1.parseFileKey)(figmaUrl);
48
- const apiUrl = (0, figma_rest_api_1.getApiUrl)(figmaUrl ?? '') + `/code_connect/${fileKey}/cli_data`;
48
+ const apiUrl = (0, figma_rest_api_1.getApiUrl)(figmaUrl ?? '', cmd.apiUrl || projectInfo?.config.apiUrl) +
49
+ `/code_connect/${fileKey}/cli_data`;
49
50
  try {
50
51
  const spinner = (0, ora_1.default)({
51
52
  text: `Fetching component information from ${cmd.verbose ? `${apiUrl}\n` : 'Figma...'}`,
@@ -729,8 +730,10 @@ async function runWizard(cmd) {
729
730
  accessToken,
730
731
  figmaUrl: figmaFileUrl,
731
732
  cmd,
733
+ projectInfo,
732
734
  });
733
- if (!componentsFromFile) {
735
+ if (!componentsFromFile || componentsFromFile.length === 0) {
736
+ logging_1.logger.info('No components found in the provided Figma file.');
734
737
  (0, helpers_1.exitWithFeedbackMessage)(1);
735
738
  }
736
739
  if (!hasConfigFile) {