@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.
- package/dist/cli.js.map +1 -1
- package/dist/client/external.js.map +1 -1
- package/dist/client/figma_client.js +1 -1
- package/dist/client/figma_client.js.map +1 -1
- package/dist/commands/connect.d.ts +5 -4
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +242 -24
- package/dist/commands/connect.js.map +1 -1
- package/dist/common/error_formatting.d.ts +34 -0
- package/dist/common/error_formatting.d.ts.map +1 -0
- package/dist/common/error_formatting.js +115 -0
- package/dist/common/error_formatting.js.map +1 -0
- package/dist/common/fetch.js.map +1 -1
- package/dist/common/logging.js.map +1 -1
- package/dist/common/tsconfig.js.map +1 -1
- package/dist/common/updates.js.map +1 -1
- package/dist/connect/api.d.ts +13 -0
- package/dist/connect/api.d.ts.map +1 -1
- package/dist/connect/api.js.map +1 -1
- package/dist/connect/create.d.ts.map +1 -1
- package/dist/connect/create.js +2 -1
- package/dist/connect/create.js.map +1 -1
- package/dist/connect/create_common.js.map +1 -1
- package/dist/connect/delete_docs.d.ts +2 -1
- package/dist/connect/delete_docs.d.ts.map +1 -1
- package/dist/connect/delete_docs.js +2 -2
- package/dist/connect/delete_docs.js.map +1 -1
- package/dist/connect/external_types.d.ts +1 -0
- package/dist/connect/external_types.d.ts.map +1 -1
- package/dist/connect/external_types.js +4 -0
- package/dist/connect/external_types.js.map +1 -1
- package/dist/connect/figma_connect.d.ts +4 -1
- package/dist/connect/figma_connect.d.ts.map +1 -1
- package/dist/connect/figma_connect.js.map +1 -1
- package/dist/connect/figma_rest_api.d.ts +1 -1
- package/dist/connect/figma_rest_api.d.ts.map +1 -1
- package/dist/connect/figma_rest_api.js +5 -1
- package/dist/connect/figma_rest_api.js.map +1 -1
- package/dist/connect/helpers.js.map +1 -1
- package/dist/connect/index_common.js.map +1 -1
- package/dist/connect/intrinsics.d.ts +9 -2
- package/dist/connect/intrinsics.d.ts.map +1 -1
- package/dist/connect/intrinsics.js +19 -0
- package/dist/connect/intrinsics.js.map +1 -1
- package/dist/connect/label_language_mapping.d.ts +48 -0
- package/dist/connect/label_language_mapping.d.ts.map +1 -0
- package/dist/connect/label_language_mapping.js +76 -0
- package/dist/connect/label_language_mapping.js.map +1 -0
- package/dist/connect/migration_helpers.d.ts +41 -0
- package/dist/connect/migration_helpers.d.ts.map +1 -0
- package/dist/connect/migration_helpers.js +339 -0
- package/dist/connect/migration_helpers.js.map +1 -0
- package/dist/connect/modifiers.js.map +1 -1
- package/dist/connect/parser_common.d.ts +1 -0
- package/dist/connect/parser_common.d.ts.map +1 -1
- package/dist/connect/parser_common.js +1 -0
- package/dist/connect/parser_common.js.map +1 -1
- package/dist/connect/parser_executable_types.d.ts +11 -5
- package/dist/connect/parser_executable_types.d.ts.map +1 -1
- package/dist/connect/parser_executable_types.js +5 -1
- package/dist/connect/parser_executable_types.js.map +1 -1
- package/dist/connect/parser_executables.js.map +1 -1
- package/dist/connect/project.d.ts +11 -0
- package/dist/connect/project.d.ts.map +1 -1
- package/dist/connect/project.js +22 -4
- package/dist/connect/project.js.map +1 -1
- package/dist/connect/upload.d.ts +2 -1
- package/dist/connect/upload.d.ts.map +1 -1
- package/dist/connect/upload.js +12 -6
- package/dist/connect/upload.js.map +1 -1
- package/dist/connect/validation.d.ts +1 -1
- package/dist/connect/validation.d.ts.map +1 -1
- package/dist/connect/validation.js +2 -2
- package/dist/connect/validation.js.map +1 -1
- package/dist/connect/wizard/autolinking.js.map +1 -1
- package/dist/connect/wizard/embeddings.d.ts +2 -1
- package/dist/connect/wizard/embeddings.d.ts.map +1 -1
- package/dist/connect/wizard/embeddings.js +2 -2
- package/dist/connect/wizard/embeddings.js.map +1 -1
- package/dist/connect/wizard/helpers.js.map +1 -1
- package/dist/connect/wizard/prop_mapping.js.map +1 -1
- package/dist/connect/wizard/prop_mapping_helpers.d.ts +2 -1
- package/dist/connect/wizard/prop_mapping_helpers.d.ts.map +1 -1
- package/dist/connect/wizard/prop_mapping_helpers.js +5 -3
- package/dist/connect/wizard/prop_mapping_helpers.js.map +1 -1
- package/dist/connect/wizard/run_wizard.d.ts.map +1 -1
- package/dist/connect/wizard/run_wizard.js +6 -3
- package/dist/connect/wizard/run_wizard.js.map +1 -1
- package/dist/connect/wizard/signature_extraction.js.map +1 -1
- package/dist/html/create.js.map +1 -1
- package/dist/html/external.d.ts +1 -1
- package/dist/html/external.d.ts.map +1 -1
- package/dist/html/external.js +1 -0
- package/dist/html/external.js.map +1 -1
- package/dist/html/index_html.js.map +1 -1
- package/dist/html/parser.d.ts +2 -2
- package/dist/html/parser.d.ts.map +1 -1
- package/dist/html/parser.js +15 -6
- package/dist/html/parser.js.map +1 -1
- package/dist/html/parser_template_helpers.js.map +1 -1
- package/dist/html/template_literal.js.map +1 -1
- package/dist/html/types.js.map +1 -1
- package/dist/parser_scripts/compose_errors.js.map +1 -1
- package/dist/parser_scripts/get_file_if_exists.js.map +1 -1
- package/dist/parser_scripts/get_gradlew_path.js.map +1 -1
- package/dist/parser_scripts/get_swift_parser_dir.js.map +1 -1
- package/dist/react/create.d.ts.map +1 -1
- package/dist/react/create.js +3 -0
- package/dist/react/create.js.map +1 -1
- package/dist/react/external.d.ts +2 -2
- package/dist/react/external.d.ts.map +1 -1
- package/dist/react/external.js +2 -1
- package/dist/react/external.js.map +1 -1
- package/dist/react/index_react.js.map +1 -1
- package/dist/react/parser.d.ts +3 -3
- package/dist/react/parser.d.ts.map +1 -1
- package/dist/react/parser.js +13 -8
- package/dist/react/parser.js.map +1 -1
- package/dist/react/parser_template_helpers.d.ts.map +1 -1
- package/dist/react/parser_template_helpers.js +4 -1
- package/dist/react/parser_template_helpers.js.map +1 -1
- package/dist/react/types.js.map +1 -1
- package/dist/storybook/convert.d.ts.map +1 -1
- package/dist/storybook/convert.js +3 -2
- package/dist/storybook/convert.js.map +1 -1
- package/dist/storybook/external.js.map +1 -1
- package/dist/typescript/compiler.js.map +1 -1
- package/package.json +7 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run_wizard.js","sourceRoot":"","sources":["../../../src/connect/wizard/run_wizard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run_wizard.js","sourceRoot":"","sources":["../../../src/connect/wizard/run_wizard.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseCommand, getAccessToken, getCodeConnectObjects, getDir } from '../../commands/connect'\nimport prompts from 'prompts'\nimport fs from 'fs'\nimport { exitWithFeedbackMessage, findComponentsInDocument, parseFileKey } from '../helpers'\nimport { FigmaRestApi, getApiUrl } from '../figma_rest_api'\nimport { exitWithError, logger, success } from '../../common/logging'\nimport {\n ReactProjectInfo,\n getReactProjectInfo,\n getGitRepoAbsolutePath,\n parseOrDetermineConfig,\n getProjectInfoFromConfig,\n CodeConnectConfig,\n ProjectInfo,\n CodeConnectExecutableParserConfig,\n checkForEnvAndToken,\n} from '../../connect/project'\nimport { parseFigmaNode } from '../validation'\nimport chalk from 'chalk'\nimport path from 'path'\nimport {\n CreateRequestPayload,\n CreateRequestPayloadMulti,\n CreateResponsePayload,\n FigmaConnection,\n PropMapping,\n} from '../parser_executable_types'\nimport { normalizeComponentName } from '../create'\nimport { createReactCodeConnect } from '../../react/create'\nimport { CodeConnectJSON } from '../../connect/figma_connect'\nimport boxen from 'boxen'\nimport {\n createCodeConnectConfig,\n getComponentOptionsMap,\n getFilepathExportsFromFiles,\n parseFilepathExport,\n getIncludesGlob,\n isValidFigmaUrl,\n createEnvFile,\n addTokenToEnvFile,\n} from './helpers'\nimport stripAnsi from 'strip-ansi'\nimport { callParser, handleMessages } from '../parser_executables'\nimport ora from 'ora'\nimport { z } from 'zod'\nimport { fromError } from 'zod-validation-error'\nimport { autoLinkComponents } from './autolinking'\nimport { extractDataAndGenerateAllPropsMappings } from './prop_mapping_helpers'\nimport { isFetchError, request } from '../../common/fetch'\nimport { ComponentTypeSignature } from '../../react/parser'\n\ntype ConnectedComponentMappings = { componentName: string; filepathExport: string }[]\n\nconst NONE = '(None)'\nconst MAX_COMPONENTS_TO_MAP = 40\n\nfunction clearQuestion(prompt: prompts.PromptObject<string>, answer: string) {\n const displayedAnswer =\n (Array.isArray(prompt.choices) && prompt.choices.find((c) => c.value === answer)?.title) ||\n answer\n const lengthOfDisplayedQuestion =\n stripAnsi(prompt.message as string).length + stripAnsi(displayedAnswer).length + 5 // 2 chars before, 3 chars between Q + A\n const rowsToRemove = Math.ceil(lengthOfDisplayedQuestion / process.stdout.columns)\n\n process.stdout.moveCursor(0, -rowsToRemove)\n process.stdout.clearScreenDown()\n}\n\ntype CliDataResponse = {\n document: FigmaRestApi.Node\n componentSets: string[]\n components: Record<string, { componentSetId: string }>\n}\n\nasync function fetchTopLevelComponentsFromFile({\n accessToken,\n figmaUrl,\n cmd,\n projectInfo,\n}: {\n accessToken: string\n figmaUrl: string\n cmd: BaseCommand\n projectInfo?: ProjectInfo\n}) {\n // TODO enter create flow if node-id specified\n const fileKey = parseFileKey(figmaUrl)\n\n const apiUrl =\n getApiUrl(figmaUrl ?? '', cmd.apiUrl || projectInfo?.config.apiUrl) +\n `/code_connect/${fileKey}/cli_data`\n\n try {\n const spinner = ora({\n text: `Fetching component information from ${cmd.verbose ? `${apiUrl}\\n` : 'Figma...'}`,\n color: 'green',\n }).start()\n\n const response = await (\n process.env.CODE_CONNECT_MOCK_DOC_RESPONSE\n ? Promise.resolve({\n response: { status: 200 },\n data: JSON.parse(\n fs.readFileSync(process.env.CODE_CONNECT_MOCK_DOC_RESPONSE, 'utf-8'),\n ) as CliDataResponse,\n })\n : request.get<CliDataResponse>(apiUrl, {\n headers: {\n 'X-Figma-Token': accessToken,\n 'Content-Type': 'application/json',\n },\n })\n ).finally(() => {\n if (cmd.verbose) {\n spinner.stopAndPersist()\n } else {\n spinner.stop()\n }\n })\n\n if (response.response.status === 200) {\n return findComponentsInDocument(response.data.document).filter(\n ({ id }) =>\n id in response.data.componentSets || !response.data.components[id].componentSetId,\n )\n } else {\n logger.error(`Failed to fetch components from Figma with status: ${response.response.status}`)\n logger.debug('Failed to fetch components from Figma with Body:', response.data)\n }\n } catch (err) {\n if (isFetchError(err)) {\n if (err.response) {\n logger.error(\n `Failed to fetch components from Figma (${err.response.status}): ${err.response.status} ${\n err.data?.err ?? err.data?.message\n }`,\n )\n } else {\n logger.error(`Failed to fetch components from Figma: ${err.message}`)\n }\n logger.debug(JSON.stringify(err.data))\n } else {\n logger.error(err)\n }\n exitWithFeedbackMessage(1)\n }\n}\n\n/**\n * enable selection of a subset of components per page\n * @param components to narrow down from\n * @returns components narrowed down to the selected pages\n */\nexport async function narrowDownComponentsPerPage(\n components: FigmaRestApi.Component[],\n pages: Record<string, string>,\n) {\n const createTitle = (name: string, id: string, pad: number) => {\n const componentsInPage = components.filter((c) => c.pageId === id)\n let namesPreview = componentsInPage\n .slice(0, 4)\n .map((c) => c.name)\n .join(', ')\n\n namesPreview = componentsInPage.length > 4 ? `${namesPreview}, ...` : `${namesPreview}`\n const componentWord = componentsInPage.length === 1 ? 'Component' : 'Components'\n\n return `${name.padEnd(pad, ' ')} - ${componentsInPage.length} ${componentWord} ${chalk.dim(\n `(${namesPreview})`,\n )}`\n }\n\n const longestPageName = Math.max(...Object.values(pages).map((name) => name.length))\n\n let pagesToMap: string[] = []\n console.info('')\n while (true) {\n const { pagesToMap_temp } = await askQuestion({\n type: 'multiselect',\n name: 'pagesToMap_temp',\n message: `Select the pages with the Figma components you'd like to map (Press ${chalk.green('space')} to select and ${chalk.green('enter')} to continue)`,\n instructions: false,\n choices: Object.entries(pages).map(([id, name]) => ({\n title: createTitle(name, id, longestPageName),\n value: id,\n })),\n })\n\n if (!pagesToMap_temp || pagesToMap_temp.length === 0) {\n logger.warn('Select at least one page to continue.')\n continue\n }\n pagesToMap = pagesToMap_temp\n break\n }\n\n return components.filter((c) => pagesToMap.includes(c.pageId))\n}\n\n/**\n * Asks a Prompts question and adds spacing\n * @param question Prompts question\n * @returns Prompts answer\n */\nasync function askQuestion<T extends string = string>(\n question: prompts.PromptObject<T>,\n): Promise<prompts.Answers<T>> {\n const answers = await prompts(question)\n logger.info('')\n return answers\n}\n\n/**\n * Asks a Prompts question and exits the process if user cancels\n * @param question Prompts question\n * @returns Prompts answer\n */\nasync function askQuestionOrExit<T extends string = string>(\n question: prompts.PromptObject<T>,\n): Promise<prompts.Answers<T>> {\n const answers = await askQuestion(question)\n if (!Object.keys(answers).length) {\n return process.exit(0)\n }\n return answers\n}\n\n/**\n * Asks a Prompts question and shows an exit confirmation if user cancels.\n * This should be used for questions further along in the wizard.\n * @param question Prompts question\n * @returns Prompts answer\n */\nasync function askQuestionWithExitConfirmation<T extends string = string>(\n question: prompts.PromptObject<T>,\n): Promise<prompts.Answers<T>> {\n while (true) {\n const answers = await askQuestion(question)\n\n if (Object.keys(answers).length) {\n return answers\n }\n\n const { shouldExit } = await askQuestion({\n type: 'select',\n name: 'shouldExit',\n message: 'Are you sure you want to exit?',\n choices: [\n {\n title: 'Yes',\n value: 'yes',\n },\n {\n title: 'No',\n value: 'no',\n },\n ],\n })\n // also exit if no answer provided (esc / ctrl+c)\n if (!shouldExit || shouldExit === 'yes') {\n process.exit(0)\n }\n }\n}\n\nfunction formatComponentTitle(componentName: string, filepathExport: string | null, pad: number) {\n const fileExport = filepathExport ? parseFilepathExport(filepathExport) : null\n const nameLabel = `${chalk.dim('Figma component:')} ${componentName.padEnd(pad, ' ')}`\n\n const filepathLabel = fileExport ? fileExport.filepath : '-'\n const exportNote = fileExport?.exportName ? ` (${fileExport.exportName})` : ''\n\n const linkedLabel = `↔️ ${chalk.dim('Code Definition:')} ${filepathLabel}${exportNote}`\n return `${nameLabel} ${linkedLabel}`\n}\n\nexport function getComponentChoicesForPrompt(\n components: FigmaRestApi.Component[],\n linkedNodeIdsToFilepathExports: Record<string, string>,\n connectedComponentsMappings: ConnectedComponentMappings,\n dir: string,\n): prompts.Choice[] {\n const longestNameLength = [...components, ...connectedComponentsMappings].reduce(\n (longest, component) =>\n Math.max(\n longest,\n 'name' in component ? component.name.length : component.componentName.length,\n ),\n 0,\n )\n\n const nameCompare = (a: FigmaRestApi.Component, b: FigmaRestApi.Component) =>\n a.name.localeCompare(b.name)\n\n const linkedComponents = components\n .filter((c) => !!linkedNodeIdsToFilepathExports[c.id])\n .sort(nameCompare)\n const unlinkedComponents = components\n .filter((c) => !linkedNodeIdsToFilepathExports[c.id])\n .sort(nameCompare)\n\n const formatComponentChoice = (c: FigmaRestApi.Component) => {\n const filepathExport = linkedNodeIdsToFilepathExports[c.id]\n ? path.relative(dir, linkedNodeIdsToFilepathExports[c.id])\n : null\n return {\n title: formatComponentTitle(c.name, filepathExport, longestNameLength),\n value: c.id,\n description: `${chalk.green('Edit Match')}`,\n }\n }\n\n return [\n ...linkedComponents.map(formatComponentChoice),\n ...unlinkedComponents.map(formatComponentChoice),\n ...connectedComponentsMappings.map((connectedComponent) => ({\n title: formatComponentTitle(\n connectedComponent.componentName,\n connectedComponent.filepathExport,\n longestNameLength,\n ),\n disabled: true,\n })),\n ]\n}\n\nfunction getUnconnectedComponentChoices(componentPaths: string[], dir: string) {\n return [\n {\n title: NONE,\n value: NONE,\n },\n ...componentPaths.map((absPath) => {\n return {\n title: path.relative(dir, absPath),\n value: absPath,\n }\n }),\n ]\n}\n\ntype ManualLinkingArgs = {\n unconnectedComponents: FigmaRestApi.Component[]\n connectedComponentsMappings: ConnectedComponentMappings\n linkedNodeIdsToFilepathExports: Record<string, string>\n filepathExports: string[]\n cmd: BaseCommand\n}\n\nconst escapeHandler = () => {\n let escPressed = false\n const keypressListener = (_: any, key: { name: string }) => {\n if (key.name === 'escape') {\n escPressed = true\n }\n }\n process.stdin.on('keypress', keypressListener)\n return {\n escPressed: () => escPressed,\n reset: () => {\n escPressed = false\n },\n destroy: () => {\n process.stdin.removeListener('keypress', keypressListener)\n },\n }\n}\n\nasync function runManualLinking({\n unconnectedComponents,\n linkedNodeIdsToFilepathExports,\n filepathExports,\n connectedComponentsMappings,\n cmd,\n}: ManualLinkingArgs) {\n const filesToComponentOptionsMap = getComponentOptionsMap(filepathExports)\n const dir = getDir(cmd)\n const escHandler = escapeHandler()\n while (true) {\n // Don't show exit confirmation as we're relying on esc behavior\n const { nodeId } = await prompts(\n {\n type: 'select',\n name: 'nodeId',\n message: `Select a Figma component match you'd like to edit (Press ${chalk.green(\n 'esc',\n )} when you're ready to continue on)`,\n choices: getComponentChoicesForPrompt(\n unconnectedComponents,\n linkedNodeIdsToFilepathExports,\n connectedComponentsMappings,\n dir,\n ),\n warn: 'This component already has a local Code Connect file.',\n hint: ' ',\n },\n {\n onSubmit: clearQuestion,\n },\n )\n if (!nodeId) {\n break\n }\n const pathChoices = getUnconnectedComponentChoices(Object.keys(filesToComponentOptionsMap), dir)\n const prevSelectedKey = linkedNodeIdsToFilepathExports[nodeId]\n\n const { filepath: prevSelectedFilepath, exportName: prevSelectedComponent } = prevSelectedKey\n ? parseFilepathExport(prevSelectedKey)\n : {\n filepath: null,\n exportName: null,\n }\n\n escHandler.reset()\n const { pathToComponent } = await prompts(\n {\n type: 'autocomplete',\n name: 'pathToComponent',\n message: 'Choose a path to your code component (type to filter results)',\n choices: pathChoices,\n // default suggest uses .startsWith(input) which isn't very useful for full paths\n suggest: (input, choices) =>\n Promise.resolve(\n choices.filter((i) => i.value.toUpperCase().includes(input.toUpperCase())),\n ),\n // preselect if editing an existing choice\n initial: prevSelectedFilepath\n ? pathChoices.findIndex(({ value }) => value === prevSelectedFilepath)\n : 0,\n },\n {\n onSubmit: clearQuestion,\n },\n )\n if (escHandler.escPressed()) {\n continue\n }\n if (pathToComponent) {\n if (pathToComponent === NONE) {\n delete linkedNodeIdsToFilepathExports[nodeId]\n } else {\n const fileExports = filesToComponentOptionsMap[pathToComponent]\n if (fileExports.length === 0) {\n // Not TS, default to filepath\n linkedNodeIdsToFilepathExports[nodeId] = pathToComponent\n } else {\n escHandler.reset()\n const { filepathExport } = await prompts(\n {\n type: 'autocomplete',\n name: 'filepathExport',\n message: `Choose an export of ${path.parse(pathToComponent).base} (type to filter results)`,\n choices: fileExports,\n // default suggest uses .startsWith(input)\n suggest: (input, choices) =>\n Promise.resolve(\n choices.filter((i) => i.value.toUpperCase().includes(input.toUpperCase())),\n ),\n // preselect if editing an existing choice\n initial:\n prevSelectedComponent && prevSelectedFilepath === pathToComponent\n ? fileExports.findIndex(({ title }) => title === prevSelectedComponent)\n : 0,\n },\n {\n onSubmit: clearQuestion,\n },\n )\n if (escHandler.escPressed()) {\n continue\n }\n linkedNodeIdsToFilepathExports[nodeId] = filepathExport\n }\n }\n }\n }\n escHandler.destroy()\n}\n\nasync function runManualLinkingWithConfirmation(manualLinkingArgs: ManualLinkingArgs) {\n let outDir = manualLinkingArgs.cmd.outDir || null\n\n while (true) {\n await runManualLinking(manualLinkingArgs)\n\n if (!outDir) {\n console.info(\n '\\nA Code Connect file is created for each Figma component to code definition match.',\n )\n const { outputDirectory } = await askQuestionWithExitConfirmation({\n type: 'text',\n name: 'outputDirectory',\n message: `In which directory would you like to store Code Connect files? (Press ${chalk.green('enter')} to co-locate your files alongside your component files)`,\n })\n outDir = outputDirectory\n }\n\n const linkedNodes = Object.keys(manualLinkingArgs.linkedNodeIdsToFilepathExports)\n if (!linkedNodes.length) {\n const { confirmation } = await askQuestionOrExit({\n type: 'select',\n name: 'confirmation',\n message: `No Code Connect files linked. Are you sure you want to exit?`,\n choices: [\n {\n title: 'Back to edit',\n value: 'backToEdit',\n },\n {\n title: 'Exit',\n value: 'exit',\n },\n ],\n })\n if (confirmation === 'exit') {\n process.exit(0)\n }\n } else {\n const { confirmation } = await askQuestionWithExitConfirmation({\n type: 'select',\n name: 'confirmation',\n message: `You're ready to create ${chalk.green(linkedNodes.length)} Code Connect file${\n linkedNodes.length == 1 ? '' : 's'\n }. Continue?`,\n choices: [\n {\n title: 'Create files',\n value: 'create',\n },\n {\n title: 'Back to editing',\n value: 'backToEdit',\n },\n ],\n })\n if (confirmation === 'backToEdit') {\n outDir = manualLinkingArgs.cmd.outDir || null\n } else {\n return outDir\n }\n }\n }\n}\n\ninterface AddPayloadArgs {\n payloadType: 'MULTI_EXPORT' | 'SINGLE_EXPORT'\n filepath: string\n sourceExport: string\n reactTypeSignature?: ComponentTypeSignature\n propMapping?: PropMapping\n figmaNodeUrl: string\n moreComponentProps: FigmaRestApi.Component\n destinationDir: string\n sourceFilepath: string\n normalizedName: string\n config: CodeConnectConfig\n}\n\nexport async function addPayload(\n payloads: Record<string, CreateRequestPayloadMulti | CreateRequestPayload>,\n args: AddPayloadArgs,\n) {\n const {\n payloadType,\n filepath,\n sourceExport,\n reactTypeSignature,\n propMapping,\n figmaNodeUrl,\n moreComponentProps,\n destinationDir,\n sourceFilepath,\n normalizedName,\n config,\n } = args\n\n if (payloadType === 'MULTI_EXPORT') {\n const figmaConnection: FigmaConnection = {\n sourceExport,\n reactTypeSignature,\n propMapping,\n component: {\n figmaNodeUrl,\n ...moreComponentProps,\n },\n }\n\n if (payloads[filepath]) {\n ;(payloads[filepath] as CreateRequestPayloadMulti).figmaConnections.push(figmaConnection)\n } else {\n const payload: CreateRequestPayloadMulti = {\n mode: 'CREATE',\n destinationDir,\n sourceFilepath,\n normalizedName,\n figmaConnections: [figmaConnection],\n config,\n }\n payloads[filepath] = payload\n }\n }\n\n if (payloadType === 'SINGLE_EXPORT') {\n const payload: CreateRequestPayload = {\n mode: 'CREATE',\n destinationDir,\n sourceFilepath,\n component: {\n figmaNodeUrl,\n normalizedName,\n ...moreComponentProps,\n },\n config,\n }\n payloads[filepath] = payload\n }\n}\n\nexport async function createCodeConnectFiles({\n linkedNodeIdsToFilepathExports,\n figmaFileUrl,\n unconnectedComponentsMap,\n outDir: outDirArg,\n projectInfo,\n cmd,\n accessToken,\n useAi,\n}: {\n figmaFileUrl: string\n linkedNodeIdsToFilepathExports: Record<string, string>\n unconnectedComponentsMap: Record<string, FigmaRestApi.Component>\n outDir: string | null\n projectInfo: ProjectInfo\n cmd: BaseCommand\n accessToken: string\n useAi: boolean\n}) {\n const filepathExportsToComponents = Object.entries(linkedNodeIdsToFilepathExports).reduce(\n (map, [nodeId, filepathExport]) => {\n map[filepathExport] = unconnectedComponentsMap[nodeId]\n return map\n },\n {} as Record<string, FigmaRestApi.Component>,\n )\n\n let embeddingsFetchSpinner: ora.Ora | null = null\n\n if (useAi) {\n embeddingsFetchSpinner = ora({\n text: 'Computing embeddings...',\n color: 'green',\n }).start()\n }\n\n const propMappingsAndData =\n projectInfo.config.parser === 'react'\n ? await extractDataAndGenerateAllPropsMappings({\n filepathExportsToComponents,\n projectInfo,\n cmd,\n figmaUrl: figmaFileUrl,\n accessToken,\n useAi,\n })\n : null\n\n if (embeddingsFetchSpinner) {\n embeddingsFetchSpinner.stop()\n }\n\n let allFilesCreated = true\n\n const payloads: Record<string, CreateRequestPayloadMulti | CreateRequestPayload> = {}\n\n for (const [nodeId, filepathExport] of Object.entries(linkedNodeIdsToFilepathExports)) {\n const urlObj = new URL(figmaFileUrl)\n urlObj.search = ''\n urlObj.searchParams.append('node-id', nodeId)\n const { filepath, exportName } = parseFilepathExport(filepathExport)\n\n const { name } = path.parse(filepath)\n\n const outDir = outDirArg || path.dirname(filepath)\n\n const payloadType =\n projectInfo.config.parser === 'react' || projectInfo.config.parser === 'html'\n ? 'MULTI_EXPORT'\n : 'SINGLE_EXPORT'\n\n addPayload(payloads, {\n payloadType,\n filepath,\n sourceExport: exportName || '?',\n reactTypeSignature: propMappingsAndData?.propMappingData[filepathExport]?.signature,\n propMapping: propMappingsAndData?.propMappings[filepathExport],\n figmaNodeUrl: urlObj.toString(),\n moreComponentProps: unconnectedComponentsMap[nodeId],\n destinationDir: outDir,\n sourceFilepath: filepath,\n normalizedName: normalizeComponentName(name),\n config: projectInfo.config,\n })\n }\n\n for (const payloadKey of Object.keys(payloads)) {\n const payload = payloads[payloadKey]\n let result: z.infer<typeof CreateResponsePayload>\n if (projectInfo.config.parser === 'react') {\n result = await createReactCodeConnect(payload as CreateRequestPayloadMulti)\n } else {\n try {\n const stdout = await callParser(\n // We use `as` because the React parser makes the types difficult\n // TODO remove once React is an executable parser\n projectInfo.config as CodeConnectExecutableParserConfig,\n payload as CreateRequestPayload,\n projectInfo.absPath,\n )\n\n result = CreateResponsePayload.parse(stdout)\n } catch (e) {\n throw fromError(e)\n }\n }\n\n const { hasErrors } = handleMessages(result.messages)\n\n if (!hasErrors) {\n result.createdFiles.forEach((file) => {\n logger.info(success(`Created ${file.filePath}`))\n })\n } else {\n allFilesCreated = false\n }\n }\n return allFilesCreated\n}\n\nexport function convertRemoteFileUrlToRelativePath({\n remoteFileUrl,\n gitRootPath,\n dir,\n}: {\n remoteFileUrl: string\n gitRootPath: string\n dir: string\n}) {\n if (!gitRootPath) {\n return null\n }\n const pathWithinRepo = remoteFileUrl.replace(new RegExp(`.*?(tree|blob)/[^/]*`), '')\n\n if (!pathWithinRepo) {\n return null\n }\n const absPath = path.join(gitRootPath, pathWithinRepo)\n\n return path.relative(dir, absPath)\n}\n\nexport async function getUnconnectedComponentsAndConnectedComponentMappings(\n cmd: BaseCommand,\n figmaFileUrl: string,\n componentsFromFile: FigmaRestApi.Component[],\n projectInfo: ProjectInfo<CodeConnectConfig> | ReactProjectInfo,\n) {\n const dir = getDir(cmd)\n const fileKey = parseFileKey(figmaFileUrl)\n\n const codeConnectObjects = await getCodeConnectObjects(cmd, projectInfo, true)\n\n const connectedNodeIdsInFileToCodeConnectObjectMap = codeConnectObjects.reduce(\n (map, codeConnectJson) => {\n const parsedNode = parseFigmaNode(cmd.verbose, codeConnectJson, true)\n\n if (parsedNode && parsedNode.fileKey === fileKey) {\n map[parsedNode.nodeId] = codeConnectJson\n }\n\n return map\n },\n {} as Record<string, CodeConnectJSON>,\n )\n\n const unconnectedComponents: FigmaRestApi.Component[] = []\n const connectedComponentsMappings: ConnectedComponentMappings = []\n\n const gitRootPath = getGitRepoAbsolutePath(dir)\n\n componentsFromFile.map((c) => {\n if (c.id in connectedNodeIdsInFileToCodeConnectObjectMap) {\n const cc = connectedNodeIdsInFileToCodeConnectObjectMap[c.id]\n const relativePath = convertRemoteFileUrlToRelativePath({\n remoteFileUrl: cc.source!,\n gitRootPath,\n dir,\n })\n connectedComponentsMappings.push({\n componentName: c.name,\n filepathExport: relativePath ?? '(Unknown file)',\n })\n } else {\n unconnectedComponents.push(c)\n }\n })\n\n return {\n unconnectedComponents,\n connectedComponentsMappings,\n }\n}\n\nasync function askForTopLevelDirectoryOrDetermineFromConfig({\n dir,\n hasConfigFile,\n config,\n cmd,\n}: {\n dir: string\n hasConfigFile: boolean\n config: CodeConnectConfig\n cmd: BaseCommand\n}) {\n let componentDirectory: string | null = null\n\n while (true) {\n if (!hasConfigFile) {\n const { componentDirectory: componentDirectoryAnswer } = await askQuestionOrExit({\n type: 'text',\n message: `Which top-level directory contains the code to be connected to your Figma design system? (Press ${chalk.green(\n 'enter',\n )} to use current directory)`,\n name: 'componentDirectory',\n format: (val) => val || process.cwd(), // should this be || dir?\n validate: (value) => {\n if (!value) {\n return true\n }\n const isValidDir = fs.existsSync(value) && fs.lstatSync(value).isDirectory()\n\n if (!isValidDir) return 'Please enter a valid directory path.'\n return true\n },\n })\n componentDirectory = componentDirectoryAnswer\n }\n\n const configToUse: CodeConnectConfig = componentDirectory\n ? {\n ...config,\n include: getIncludesGlob({\n dir,\n componentDirectory,\n config,\n }),\n }\n : config\n\n const spinner = ora({\n text: 'Parsing local files...',\n color: 'green',\n spinner: {\n // Don't show spinner as ts.createProgram blocks thread\n frames: [''],\n },\n }).start()\n\n let projectInfo = await getProjectInfoFromConfig(dir, configToUse)\n if (projectInfo.config.parser === 'react') {\n projectInfo = getReactProjectInfo(projectInfo as ReactProjectInfo)\n }\n\n const filepathExports = getFilepathExportsFromFiles(projectInfo, cmd)\n spinner.stop()\n\n if (!filepathExports.length) {\n if (hasConfigFile) {\n logger.error(\n 'No files found. Please update the include/exclude globs in your config file and try again.',\n )\n exitWithFeedbackMessage(1)\n } else {\n logger.error(\n 'No files for your project type could be found in that directory. Please enter a different directory.',\n )\n }\n } else {\n return {\n projectInfo,\n componentDirectory,\n filepathExports,\n }\n }\n }\n}\n\nexport async function runWizard(cmd: BaseCommand) {\n logger.info(\n boxen(\n `${chalk.bold(`Welcome to ${chalk.green('Code Connect')}`)}\\n\\n` +\n `Follow a few simple steps to connect your Figma design system to your codebase.\\n` +\n `When you're done, you'll be able to see your component code while inspecting in\\n` +\n `Figma's Dev Mode.\\n\\n` +\n `Learn more at ${chalk.cyan('https://www.figma.com/developers/code-connect')}.\\n\\n` +\n `Please raise bugs or feedback at ${chalk.cyan(\n 'https://github.com/figma/code-connect/issues',\n )}.\\n\\n` +\n `${chalk.red.bold(\n 'Note: ',\n )}This process will create and modify Code Connect files. Make sure you've\\n` +\n `committed necessary changes in your codebase first.`,\n {\n padding: 1,\n margin: 1,\n textAlignment: 'center',\n },\n ),\n )\n\n const dir = getDir(cmd)\n const { hasConfigFile, config } = await parseOrDetermineConfig(dir, cmd.config)\n const { hasEnvFile, envHasFigmaToken } = await checkForEnvAndToken(dir)\n\n // This isn't ideal as you see the intro text followed by an error, but we'll\n // add support for this soon so I think it's OK\n if (config.parser === 'html') {\n exitWithError(\n 'HTML projects are currently not supported by Code Connect interactive setup. Please use the \"npx figma connect create\" command instead.',\n )\n }\n\n let accessToken = getAccessToken(cmd)\n\n if (!accessToken) {\n const { accessTokenEntered } = await askQuestionOrExit({\n type: 'text',\n message: `No access token detected. Visit https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens\n for instructions on how to do this, ensuring you have both the File Content and Code Connect Write scopes \\n\\n Please enter your access token:`,\n name: 'accessTokenEntered',\n validate: (value) => !!value || 'Please enter an access token.',\n })\n accessToken = accessTokenEntered\n }\n\n logger.info('')\n\n if (!hasEnvFile) {\n // If there is no .env file, we should ask the user if they want to create one\n // to store the Figma token.\n\n const { createConfigFile } = await askQuestionOrExit({\n type: 'select',\n name: 'createConfigFile',\n message:\n \"It looks like you don't have a .env file. Would you like to generate one now to store the Figma access token?\",\n choices: [\n {\n title: 'Yes',\n value: 'yes',\n },\n {\n title: 'No',\n value: 'no',\n },\n ],\n })\n\n if (createConfigFile === 'yes') {\n await createEnvFile({ dir, accessToken })\n }\n } else if (!envHasFigmaToken) {\n // If there is a .env file but no Figma token, we should ask the user if they want to add it.\n const { addFigmaToken } = await askQuestionOrExit({\n type: 'select',\n name: 'addFigmaToken',\n message: 'Would you like to add your Figma access token to your .env file?',\n choices: [\n {\n title: 'Yes',\n value: 'yes',\n },\n {\n title: 'No',\n value: 'no',\n },\n ],\n })\n\n if (addFigmaToken === 'yes') {\n addTokenToEnvFile({ dir, accessToken })\n }\n }\n\n const { componentDirectory, projectInfo, filepathExports } =\n await askForTopLevelDirectoryOrDetermineFromConfig({\n dir,\n hasConfigFile,\n config,\n cmd,\n })\n\n let figmaFileUrl: any\n if (config.interactiveSetupFigmaFileUrl) {\n logger.info(`Using Figma file URL from config: ${config.interactiveSetupFigmaFileUrl}\\n`)\n figmaFileUrl = config.interactiveSetupFigmaFileUrl\n } else {\n let { figmaFileUrl: answer } = await askQuestionOrExit({\n type: 'text',\n message:\n \"What is the URL of the Figma file containing design components you'd like to connect?\",\n name: 'figmaFileUrl',\n validate: (value: string) => isValidFigmaUrl(value) || 'Please enter a valid Figma file URL.',\n })\n\n figmaFileUrl = answer\n }\n\n let componentsFromFile = await fetchTopLevelComponentsFromFile({\n accessToken,\n figmaUrl: figmaFileUrl,\n cmd,\n projectInfo,\n })\n\n if (!componentsFromFile || componentsFromFile.length === 0) {\n logger.info('No components found in the provided Figma file.')\n exitWithFeedbackMessage(1)\n }\n\n if (!hasConfigFile) {\n const { createConfigFile } = await askQuestionOrExit({\n type: 'select',\n name: 'createConfigFile',\n message:\n \"It looks like you don't have a Code Connect config file (figma.config.json). Would you like to generate one now from your provided answers?\",\n choices: [\n {\n title: 'Yes',\n value: 'yes',\n },\n {\n title: 'No',\n value: 'no',\n },\n ],\n })\n if (createConfigFile === 'yes') {\n await createCodeConnectConfig({ dir, componentDirectory, config, figmaUrl: figmaFileUrl })\n }\n }\n\n let useAi = false\n\n if (projectInfo.config.parser === 'react') {\n const { useAi: useAiSelection } = await askQuestionOrExit({\n type: 'select',\n name: 'useAi',\n message:\n 'Code Connect offers AI support to map properties between the Figma file and components in your codebase. Data is used only for mapping and is not stored or used for AI training. To learn more, visit https://help.figma.com/hc/en-us/articles/23920389749655-Code-Connect',\n choices: [\n {\n title: 'Do not use AI for prop mapping (default)',\n value: 'no',\n },\n {\n title: 'Use AI for prop mapping',\n value: 'yes',\n },\n ],\n })\n\n useAi = useAiSelection === 'yes'\n }\n\n const pagesFromFile: Record<string, string> = componentsFromFile.reduce(\n (acc, c) => {\n acc[c.pageId] = c.pageName\n return acc\n },\n {} as Record<string, string>,\n )\n const pagesFromFileCount = Object.keys(pagesFromFile).length\n\n if (componentsFromFile.length > MAX_COMPONENTS_TO_MAP && pagesFromFileCount > 1) {\n logger.info(\n `${componentsFromFile.length} Figma components found in the Figma file across ${pagesFromFileCount} pages.`,\n )\n componentsFromFile = await narrowDownComponentsPerPage(componentsFromFile, pagesFromFile)\n }\n\n const linkedNodeIdsToFilepathExports = {}\n\n const { unconnectedComponents, connectedComponentsMappings } =\n await getUnconnectedComponentsAndConnectedComponentMappings(\n cmd,\n figmaFileUrl,\n componentsFromFile,\n projectInfo,\n )\n\n autoLinkComponents({\n unconnectedComponents,\n linkedNodeIdsToFilepathExports,\n filepathExports,\n })\n\n logger.info(\n boxen(\n `${chalk.bold(`Connecting your Figma components`)}\\n\\n` +\n `${chalk.green(\n `${chalk.bold(Object.keys(linkedNodeIdsToFilepathExports).length)} ${\n Object.keys(linkedNodeIdsToFilepathExports).length === 1\n ? 'component was automatically matched based on its name'\n : 'components were automatically matched based on their names'\n }`,\n )}\\n` +\n `${chalk.yellow(\n `${chalk.bold(unconnectedComponents.length)} ${\n unconnectedComponents.length === 1\n ? 'component has not been matched'\n : 'components have not been matched'\n }`,\n )}\\n\\n` +\n `Match up Figma components with their code definitions. When you're finished, you\\n` +\n `can specify the directory you want to create Code Connect files in.`,\n {\n padding: 1,\n margin: 1,\n textAlignment: 'center',\n },\n ),\n )\n\n const outDir = await runManualLinkingWithConfirmation({\n unconnectedComponents,\n connectedComponentsMappings,\n linkedNodeIdsToFilepathExports,\n filepathExports,\n cmd,\n })\n\n const unconnectedComponentsMap = unconnectedComponents.reduce(\n (map, component) => {\n map[component.id] = component\n return map\n },\n {} as Record<string, FigmaRestApi.Component>,\n )\n\n const success = await createCodeConnectFiles({\n linkedNodeIdsToFilepathExports,\n unconnectedComponentsMap,\n figmaFileUrl,\n outDir,\n projectInfo,\n cmd,\n accessToken,\n useAi,\n })\n\n if (success) {\n logger.info(`\\nUse the 'publish' command to make mappings visible in Figma Dev Mode.`)\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature_extraction.js","sourceRoot":"","sources":["../../../src/connect/wizard/signature_extraction.ts"],"names":[],"mappings":";;;;;AAaA,4CA+BC;AAED,kEAqEC;AAnHD,gDAAuB;AACvB,uCAAwE;AACxE,oDAAwD;AAExD,MAAM,iBAAiB,GAAG,kBAAkB,CAAA;AAC5C,MAAM,qBAAqB,GAAG,CAAC,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAA;AACjG,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAEzC;;;GAGG;AACH,IAAI,oBAA6B,CAAA;AACjC,SAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,cAAc,GAIf;IACC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAA;QACvE,MAAM,OAAO,GAAG,gBAAgB;YAC9B,CAAC,CAAC,EAAE,gBAAgB,EAAE;YACtB,CAAC,CAAC;gBACE,eAAe,EAAE;oBACf,MAAM,EAAE,uBAAY,CAAC,MAAM;oBAC3B,MAAM,EAAE,aAAE,CAAC,UAAU,CAAC,QAAQ;oBAC9B,GAAG,EAAE,aAAE,CAAC,OAAO,CAAC,KAAK;oBACrB,eAAe,EAAE,IAAI;oBACrB,YAAY,EAAE,IAAI;oBAClB,GAAG,EAAE,CAAC,QAAQ,CAAC;oBACf,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,KAAK;iBACf;aACF,CAAA;QACL,oBAAoB,GAAG,IAAI,kBAAO,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED,OAAO,2BAA2B,CAAC;QACjC,cAAc,EAAE,oBAAoB;QACpC,cAAc;QACd,UAAU;KACX,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,2BAA2B,CAAC,EAC1C,cAAc,EACd,cAAc,EACd,UAAU,GAKX;IACC,cAAc,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAA;IAElD,MAAM,mBAAmB,GAAG,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,wBAAwB,CAAC,CAAA;IAE7F,MAAM,mBAAmB,GAAG,cAAc,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAA;IAEhF,MAAM,QAAQ,GAAG,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,mBAAmB,CAAC,oBAAoB,CAAC;YACvC,aAAa,EAAE,iBAAiB;YAChC,eAAe,EAAE,KAAK,QAAQ,EAAE;SACjC,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,mBAAmB,CAAC,oBAAoB,CAAC;YACvC,YAAY,EAAE,CAAC,UAAU,CAAC;YAC1B,eAAe,EAAE,KAAK,QAAQ,EAAE;SACjC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,YAAY,CAAC;QAC/B,IAAI,EAAE,kBAAkB;QACxB,cAAc,EAAE,CAAC,GAAG,CAAC;QACrB,IAAI,EAAE,sDAAsD;KAC7D,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,mBAAmB,CAAC,YAAY,CAAC;QACjD,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,gDAAgD,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,IAAI;KACpH,CAAC,CAAA;IAEF,IAAI,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAA;IAE9B,mEAAmE;IACnE,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACnB,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACrB,cAAc,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAA;QACpD,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3D,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QAElC,MAAM,MAAM,GAA2B,EAAE,CAAA;QAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,aAAa,CAAC,cAAc,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAA;YAC3E,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAA;YACrC,CAAC;QACH,CAAC;QAED,cAAc,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAA;QACpD,OAAO,MAAM,CAAA;IACf,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,cAAuB,EAAE,IAAY,EAAE,UAAsB;IAClF,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;IAE5C,MAAM,MAAM,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAA;IAE1D,IAAI,aAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;QAEjD,iDAAiD;QACjD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7F,6EAA6E;YAC7E,0GAA0G;YAC1G,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBACtE,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAA;IAExC,MAAM,OAAO,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC,cAAc,CAAA;IAE9D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,YAAY,CAAA;IAChE,IAAI,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IAEnD,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;QACvB,6BAA6B;QAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAA;QAEjC,oEAAoE;QACpE,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnF,CAAC;IAED,OAAO,YAAY,CAAC,KAAK,GAAG,aAAE,CAAC,WAAW,CAAC,QAAQ;QACjD,CAAC,CAAC,IAAI,cAAc,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE;QACpD,CAAC,CAAC,cAAc,CAAA;AACpB,CAAC"}
|
|
1
|
+
{"version":3,"file":"signature_extraction.js","sourceRoot":"","sources":["../../../src/connect/wizard/signature_extraction.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path'\nimport { Project, ScriptTarget, SourceFile, Symbol, ts } from 'ts-morph'\nimport { findTsConfigPath } from '../../common/tsconfig'\n\nconst DEFAULT_COMPONENT = 'DefaultComponent'\nconst REACT_INTERFACE_NAMES = ['HTMLAttributes', 'Attributes', 'AriaAttributes', 'DOMAttributes']\nconst IGNORE_REACT_PROPS = ['ref', 'key']\n\n/**\n * Initializing a ts-morph project can take time so lets cache it.\n * We are assuming the underlying project does not change during the course of the CLI run.\n */\nlet cachedTsMorphProject: Project\nexport function extractSignature({\n nameToFind,\n sourceFilePath,\n}: {\n nameToFind: string\n sourceFilePath: string\n}) {\n if (!cachedTsMorphProject) {\n const tsConfigFilePath = findTsConfigPath(path.dirname(sourceFilePath))\n const options = tsConfigFilePath\n ? { tsConfigFilePath }\n : {\n compilerOptions: {\n target: ScriptTarget.ESNext,\n module: ts.ModuleKind.CommonJS,\n jsx: ts.JsxEmit.React,\n esModuleInterop: true,\n skipLibCheck: true,\n lib: ['ES2021'],\n strict: true,\n rootDir: 'src',\n },\n }\n cachedTsMorphProject = new Project(options)\n }\n\n return extractSignatureFromProject({\n tsMorphProject: cachedTsMorphProject,\n sourceFilePath,\n nameToFind,\n })\n}\n\nexport function extractSignatureFromProject({\n tsMorphProject,\n sourceFilePath,\n nameToFind,\n}: {\n tsMorphProject: Project\n sourceFilePath: string\n nameToFind: string\n}) {\n tsMorphProject.addSourceFileAtPath(sourceFilePath)\n\n const signatureSourcePath = path.join(path.dirname(sourceFilePath), 'extracted_signature.ts')\n\n const signatureSourceFile = tsMorphProject.createSourceFile(signatureSourcePath)\n\n const filename = path.parse(sourceFilePath).name.split('.')[0]\n if (nameToFind === 'default') {\n signatureSourceFile.addImportDeclaration({\n defaultImport: DEFAULT_COMPONENT,\n moduleSpecifier: `./${filename}`,\n })\n } else {\n signatureSourceFile.addImportDeclaration({\n namedImports: [nameToFind],\n moduleSpecifier: `./${filename}`,\n })\n }\n\n /**\n * Flatten the component's props type by creating a virtual TS source file\n * and adding this type alias, which has the effect of flattening any inherited\n * types down to a single type, then extract the final type from this new type\n */\n signatureSourceFile.addTypeAlias({\n name: 'ExtractFinalType',\n typeParameters: ['T'],\n type: 'T extends infer R ? { [K in keyof R]: R[K] } : never',\n })\n\n const typeAlias = signatureSourceFile.addTypeAlias({\n name: '__FinalType',\n type: `ExtractFinalType<React.ComponentProps<typeof ${nameToFind === 'default' ? DEFAULT_COMPONENT : nameToFind}>>`,\n })\n\n let type = typeAlias.getType()\n\n // For simplicity, if top-level type is a union, use the first type\n if (type.isUnion()) {\n type = type.getUnionTypes()[0]\n }\n\n if (!type.isObject()) {\n tsMorphProject.removeSourceFile(signatureSourceFile)\n throw new Error('Props not an object: ' + type.getText())\n } else {\n const props = type.getProperties()\n\n const result: Record<string, string> = {}\n\n for (const prop of props) {\n const propString = getPropString(tsMorphProject, prop, signatureSourceFile)\n if (propString) {\n result[prop.getName()] = propString\n }\n }\n\n tsMorphProject.removeSourceFile(signatureSourceFile)\n return result\n }\n}\n\nfunction getPropString(tsMorphProject: Project, prop: Symbol, sourceFile: SourceFile) {\n if (IGNORE_REACT_PROPS.includes(prop.getName())) {\n return null\n }\n\n const [declaration] = prop.getDeclarations()\n\n const parent = declaration.getParentOrThrow().compilerNode\n\n if (ts.isInterfaceDeclaration(parent)) {\n const parentInterfaceName = parent.name.getText()\n\n // Skip props that are inherited from React types\n if (REACT_INTERFACE_NAMES.includes(parentInterfaceName)) {\n return null\n }\n\n if (parent.heritageClauses && parent.heritageClauses[0].getText().includes('HTMLAttributes')) {\n // If interface extends HTMLAttributes, only allow props defined in interface\n // TODO will fail if extends multiple interfaces and prop defined in one of them - could recursively check\n if (!parent.members.some((m) => m.name?.getText() === prop.getName())) {\n return null\n }\n }\n }\n\n const compilerProp = prop.compilerSymbol\n\n const checker = tsMorphProject.getTypeChecker().compilerObject\n\n const propType = prop.getTypeAtLocation(sourceFile).compilerType\n let propTypeString = checker.typeToString(propType)\n\n if (propType.isUnion()) {\n // Get the types of the union\n const unionTypes = propType.types\n\n // Map each type to its string representation and join them with a |\n propTypeString = unionTypes.map((type) => checker.typeToString(type)).join(' | ')\n }\n\n return compilerProp.flags & ts.SymbolFlags.Optional\n ? `?${propTypeString.replace(/undefined \\| /g, '')}`\n : propTypeString\n}\n"]}
|
package/dist/html/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/html/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,sDAsDC;AA7DD,gDAAuB;AACvB,4CAAmB;AACnB,4CAA+C;AAC/C,mDAAoC;AACpC,mCAAkC;AAClC,4DAAyD;AAElD,KAAK,UAAU,qBAAqB,CACzC,OAAkC;IAElC,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,GACzF,OAAO,CAAA;IACT,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/C,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,CAAA;IAElC,MAAM,gBAAgB,GAAG,IAAA,kBAAS,EAAC,cAAc,CAAC,CAAA;IAElD,MAAM,cAAc,GAAG,cAAc;QACnC,CAAC,CAAC,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,gBAAgB,CAAA;IAEpB,MAAM,QAAQ,GAAG,IAAA,8BAAc,EAAC;QAC9B,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,cAAc;QACtB,cAAc;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG;;;;;;;;;;;iBAWL,YAAY;WAClB,IAAA,sBAAa,EAAC,SAAS,CAAC;+BACJ,gBAAgB;;CAE9C,CAAA;IAEC,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE;QAC3C,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,KAAK;QACX,aAAa,EAAE,KAAK;KACrB,CAAC,CAAA;IAEF,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,QAAQ,oCAAoC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SAC9F,CAAA;IACH,CAAC;IACD,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAErC,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/html/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,sDAsDC;AA7DD,gDAAuB;AACvB,4CAAmB;AACnB,4CAA+C;AAC/C,mDAAoC;AACpC,mCAAkC;AAClC,4DAAyD;AAElD,KAAK,UAAU,qBAAqB,CACzC,OAAkC;IAElC,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,GACzF,OAAO,CAAA;IACT,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/C,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,CAAA;IAElC,MAAM,gBAAgB,GAAG,IAAA,kBAAS,EAAC,cAAc,CAAC,CAAA;IAElD,MAAM,cAAc,GAAG,cAAc;QACnC,CAAC,CAAC,cAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,gBAAgB,CAAA;IAEpB,MAAM,QAAQ,GAAG,IAAA,8BAAc,EAAC;QAC9B,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,cAAc;QACtB,cAAc;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG;;;;;;;;;;;iBAWL,YAAY;WAClB,IAAA,sBAAa,EAAC,SAAS,CAAC;+BACJ,gBAAgB;;CAE9C,CAAA;IAEC,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE;QAC3C,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE,KAAK;QACX,aAAa,EAAE,KAAK;KACrB,CAAC,CAAA;IAEF,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,QAAQ,oCAAoC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SAC9F,CAAA;IACH,CAAC;IACD,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;IAErC,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACvD,CAAC","sourcesContent":["import { z } from 'zod'\nimport {\n CreateResponsePayload,\n CreateRequestPayloadMulti,\n} from '../connect/parser_executable_types'\nimport path from 'path'\nimport fs from 'fs'\nimport { generateProps } from '../react/create'\nimport * as prettier from 'prettier'\nimport { kebabCase } from 'lodash'\nimport { getOutFileName } from '../connect/create_common'\n\nexport async function createHtmlCodeConnect(\n payload: CreateRequestPayloadMulti,\n): Promise<z.infer<typeof CreateResponsePayload>> {\n const { figmaConnections, normalizedName, destinationFile, destinationDir, sourceFilepath } =\n payload\n const component = figmaConnections[0].component\n const { figmaNodeUrl } = component\n\n const webComponentName = kebabCase(normalizedName)\n\n const sourceFilename = sourceFilepath\n ? path.parse(sourceFilepath).name.split('.')[0]\n : webComponentName\n\n const filePath = getOutFileName({\n outFile: destinationFile,\n outDir: destinationDir,\n sourceFilename,\n extension: 'ts',\n })\n\n const codeConnect = `\nimport figma, { html } from '@figma/code-connect/html'\n\n/**\n * -- This file was auto-generated by \\`figma connect create\\` --\n * \\`props\\` includes a mapping from Figma properties and variants to\n * suggested values. You should update this to match the props of your\n * code component, and update the \\`example\\` function to return the\n * code example you'd like to see in Figma\n*/\n\nfigma.connect(\"${figmaNodeUrl}\", {\n props: ${generateProps(component)},\n example: (props) => html\\`<${webComponentName} />\\`\n})\n`\n\n let formatted = prettier.format(codeConnect, {\n parser: 'typescript',\n semi: false,\n trailingComma: 'all',\n })\n\n if (fs.existsSync(filePath)) {\n return {\n createdFiles: [],\n messages: [{ message: `File ${filePath} already exists, skipping creation`, level: 'ERROR' }],\n }\n }\n fs.mkdirSync(path.dirname(filePath), { recursive: true })\n fs.writeFileSync(filePath, formatted)\n\n return { createdFiles: [{ filePath }], messages: [] }\n}\n"]}
|
package/dist/html/external.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ import { HtmlMeta } from './types';
|
|
|
4
4
|
declare function connectType<P = {}>(_figmaNodeUrl: string, _meta?: HtmlMeta<P>): void;
|
|
5
5
|
declare function childrenType(_layers: string | string[]): HtmlTemplateString;
|
|
6
6
|
export declare function instanceType<T = HtmlTemplateString>(_figmaPropName: string): T;
|
|
7
|
-
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, };
|
|
7
|
+
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, instanceType as slot, };
|
|
8
8
|
//# sourceMappingURL=external.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../src/html/external.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,iBAAS,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAG;AAEjF,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,kBAAkB,CAIpE;AAED,wBAAgB,YAAY,CAAC,CAAC,GAAG,kBAAkB,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,CAI9E;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,
|
|
1
|
+
{"version":3,"file":"external.d.ts","sourceRoot":"","sources":["../../src/html/external.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,iBAAS,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAG;AAEjF,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,kBAAkB,CAIpE;AAED,wBAAgB,YAAY,CAAC,CAAC,GAAG,kBAAkB,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,CAI9E;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,EACxB,YAAY,IAAI,IAAI,GACrB,CAAA"}
|
package/dist/html/external.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.textContent = exports.className = exports.nestedProps = exports.string = exports.enum = exports.boolean = void 0;
|
|
4
4
|
exports.instanceType = instanceType;
|
|
5
5
|
exports.instance = instanceType;
|
|
6
|
+
exports.slot = instanceType;
|
|
6
7
|
exports.connect = connectType;
|
|
7
8
|
exports.children = childrenType;
|
|
8
9
|
const external_types_1 = require("../connect/external_types");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../src/html/external.ts"],"names":[],"mappings":";;;AAmBA,oCAIC;AAUiB,gCAAQ;
|
|
1
|
+
{"version":3,"file":"external.js","sourceRoot":"","sources":["../../src/html/external.ts"],"names":[],"mappings":";;;AAmBA,oCAIC;AAUiB,gCAAQ;AAER,4BAAI;AAHL,8BAAO;AAEN,gCAAQ;AAlC1B,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;AApBhC,SAAS,WAAW,CAAS,aAAqB,EAAE,KAAmB,IAAS,CAAC;AAEjF,SAAS,YAAY,CAAC,OAA0B;IAC9C,OAAO;QACL,KAAK,EAAE,oBAAoB;KAC5B,CAAA;AACH,CAAC;AAED,SAAgB,YAAY,CAAyB,cAAsB;IACzE,OAAO;QACL,KAAK,EAAE,oBAAoB;KACvB,CAAA;AACR,CAAC","sourcesContent":["import {\n booleanType,\n enumType,\n stringType,\n nestedPropsType,\n classNameType,\n textContentType,\n} from '../connect/external_types'\nimport { HtmlTemplateString } from './template_literal'\nimport { HtmlMeta } from './types'\n\nfunction connectType<P = {}>(_figmaNodeUrl: string, _meta?: HtmlMeta<P>): void {}\n\nfunction childrenType(_layers: string | string[]): HtmlTemplateString {\n return {\n __tag: 'HtmlTemplateString',\n }\n}\n\nexport function instanceType<T = HtmlTemplateString>(_figmaPropName: string): T {\n return {\n __tag: 'HtmlTemplateString',\n } as T\n}\n\nexport {\n booleanType as boolean,\n enumType as enum,\n stringType as string,\n nestedPropsType as nestedProps,\n classNameType as className,\n textContentType as textContent,\n connectType as connect,\n instanceType as instance,\n childrenType as children,\n instanceType as slot,\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index_html.js","sourceRoot":"","sources":["../../src/html/index_html.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,uEAAuE;AACvE,yEAAyE;AACzE,qEAAqE;AACrE,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGvC,kDAAmC;AAEnC,yDAA6D;AAC7D,0DAAmD;AAGnD,MAAM,OAAO,GAAuB,IAAA,wBAAS,GAAE,CAAA;AA+EV,yBAAM;AA9E3C,MAAM,MAAM,GA2ER,KAAK,CAAA;AAGU,uBAAK;AAFxB,MAAM,KAAK,GAAG,uBAAI,CAAA;AAEoC,qBAAI;AAC1D,kBAAe,MAAM,CAAA"}
|
|
1
|
+
{"version":3,"file":"index_html.js","sourceRoot":"","sources":["../../src/html/index_html.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,uEAAuE;AACvE,yEAAyE;AACzE,qEAAqE;AACrE,uCAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGvC,kDAAmC;AAEnC,yDAA6D;AAC7D,0DAAmD;AAGnD,MAAM,OAAO,GAAuB,IAAA,wBAAS,GAAE,CAAA;AA+EV,yBAAM;AA9E3C,MAAM,MAAM,GA2ER,KAAK,CAAA;AAGU,uBAAK;AAFxB,MAAM,KAAK,GAAG,uBAAI,CAAA;AAEoC,qBAAI;AAC1D,kBAAe,MAAM,CAAA","sourcesContent":["// IMPORTANT: be careful to ensure you don't accidentally add code which has a\n// dependency on Node.js-only modules here, as it will break co-located\n// components. We don't have a test for this yet. Any such code should be\n// conditionally required - see `client` for an example. Reach out in\n// #feat-code-connect if you're unsure.\n\nimport { EnumValue, FigmaConnectAPI, FigmaConnectMeta, ValueOf } from '../connect/api'\nimport * as figma from './external'\nimport { FigmaConnectClient } from '../client/figma_client'\nimport { html, HtmlTemplateString } from './template_literal'\nimport { getClient } from '../connect/index_common'\nimport { HtmlMeta } from './types'\n\nconst _client: FigmaConnectClient = getClient()\nconst _figma: FigmaConnectAPI<HtmlTemplateString, HtmlTemplateString> & {\n /**\n * Defines a code snippet that displays in Figma when a component is selected.\n *\n * @param figmaNodeUrl A link to the node in Figma, for example:`https://www.figma.com/file/123abc/My-Component?node-id=123:456`\n * @param meta {@link FigmaConnectMeta}\n */\n connect<P = {}>(figmaNodeUrl: string, meta: HtmlMeta<P>): void\n\n /**\n * Maps a Figma property to a boolean value for the connected component. This prop is replaced\n * with values from the Figma instance when viewed in Dev Mode. For example:\n * ```ts\n * props: {\n * disabled: figma.boolean('Disabled'),\n * }\n * ```\n * Would show the `disabled` property if the Figma property \"Disabled\" is true.\n *\n * @param figmaPropName The name of the property on the Figma component\n */\n boolean(figmaPropName: string): boolean\n\n /**\n * Maps a Figma boolean property to a set of values for the connected\n * component, providing a value mapping for `true` and `false`. This prop is\n * replaced with values from the Figma instance when viewed in Dev Mode.\n * Example:\n * ```ts\n * props: {\n * label: figma.boolean('Disabled', {\n * true: <my-label></my-label>,\n * false: <my-disabled-label></my-disabled-label>,\n * }),\n * }\n * ```\n * Would replace `label` with `<my-label></my-label>` if the Figma property\n * \"Disabled\" is true.\n *\n * @param figmaPropName The name of the property on the Figma component\n * @param valueMapping A mapping of values for `true` and `false`\n */\n boolean<TrueT extends EnumValue, FalseT extends EnumValue>(\n figmaPropName: string,\n valueMapping?: {\n true?: TrueT\n false?: FalseT\n },\n ): ValueOf<Record<'true' | 'false', TrueT | FalseT>>\n\n /**\n * Maps nested properties from a Figma instance layer. The first argument\n * should be the layer name of the nested instance. The mapping object passed\n * in is in the same format as the `props` object in the `connect` function.\n * For example:\n * ```ts\n * props: {\n * nested: figma.nestedProps('Nested', {\n * label: figma.string('Text'),\n * icon: figma.instance('Icon'),\n * }),\n * }\n * ```\n *\n * Which would then allow you to access the nested properties in the `example` function like so:\n * ```ts\n * (props) => html`<my-button label=${props.nested.label}>${props.nested.icon}</my-button>`\n * ```\n */\n nestedProps<V>(layer: string, input: V): V\n\n /**\n * A list of import statements that will render in the Code Snippet in Figma.\n */\n imports?: string[]\n} = figma\nconst _html = html\n\nexport { _figma as figma, _client as client, _html as html }\nexport default _figma\n"]}
|
package/dist/html/parser.d.ts
CHANGED
|
@@ -11,9 +11,9 @@ import { ParserContext, ParseOptions } from '../connect/parser_common';
|
|
|
11
11
|
*
|
|
12
12
|
* @returns The code of the render function and a list of imports
|
|
13
13
|
*/
|
|
14
|
-
export declare function parseExampleTemplate(exp: ts.ArrowFunction, parserContext: ParserContext, propMappings?: PropMappings): {
|
|
14
|
+
export declare function parseExampleTemplate(exp: ts.ArrowFunction, parserContext: ParserContext, propMappings?: PropMappings, skipTemplateHelpers?: boolean): {
|
|
15
15
|
code: string;
|
|
16
16
|
nestable: boolean;
|
|
17
17
|
};
|
|
18
|
-
export declare function parseHtmlDoc(node: ts.CallExpression, parserContext: ParserContext,
|
|
18
|
+
export declare function parseHtmlDoc(node: ts.CallExpression, parserContext: ParserContext, { skipTemplateHelpers }: ParseOptions): Promise<CodeConnectJSON>;
|
|
19
19
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/html/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,MAAM,YAAY,CAAA;AAMpF,OAAO,EAAsB,YAAY,EAAoB,MAAM,uBAAuB,CAAA;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAI1D,OAAO,EAEL,aAAa,EAOb,YAAY,EACb,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/html/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,MAAM,YAAY,CAAA;AAMpF,OAAO,EAAsB,YAAY,EAAoB,MAAM,uBAAuB,CAAA;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAI1D,OAAO,EAEL,aAAa,EAOb,YAAY,EACb,MAAM,0BAA0B,CAAA;AA2KjC;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,EAAE,CAAC,aAAa,EACrB,aAAa,EAAE,aAAa,EAC5B,YAAY,CAAC,EAAE,YAAY,EAC3B,mBAAmB,CAAC,EAAE,OAAO;;;EA6O9B;AAiID,wBAAsB,YAAY,CAChC,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,aAAa,EAAE,aAAa,EAC5B,EAAE,mBAAmB,EAAE,EAAE,YAAY,GACpC,OAAO,CAAC,eAAe,CAAC,CA+D1B"}
|
package/dist/html/parser.js
CHANGED
|
@@ -43,6 +43,7 @@ const jsdom_1 = require("jsdom");
|
|
|
43
43
|
const parse5_1 = require("parse5");
|
|
44
44
|
const parser_common_1 = require("../connect/parser_common");
|
|
45
45
|
const project_1 = require("../connect/project");
|
|
46
|
+
const label_language_mapping_1 = require("../connect/label_language_mapping");
|
|
46
47
|
const prettier_1 = require("prettier");
|
|
47
48
|
function getHtmlTaggedTemplateNode(node) {
|
|
48
49
|
if (typescript_1.default.isTaggedTemplateExpression(node)) {
|
|
@@ -195,7 +196,7 @@ function escapeTemplateString(code) {
|
|
|
195
196
|
*
|
|
196
197
|
* @returns The code of the render function and a list of imports
|
|
197
198
|
*/
|
|
198
|
-
function parseExampleTemplate(exp, parserContext, propMappings) {
|
|
199
|
+
function parseExampleTemplate(exp, parserContext, propMappings, skipTemplateHelpers) {
|
|
199
200
|
const { sourceFile } = parserContext;
|
|
200
201
|
if (exp.parameters.length > 1) {
|
|
201
202
|
throw new parser_common_1.ParserError(`Expected a single props parameter for the render function, got ${exp.parameters.length} parameters`, { sourceFile, node: exp });
|
|
@@ -215,7 +216,10 @@ function parseExampleTemplate(exp, parserContext, propMappings) {
|
|
|
215
216
|
});
|
|
216
217
|
}
|
|
217
218
|
let exampleCode = printer.printNode(typescript_1.default.EmitHint.Unspecified, exp.body, sourceFile);
|
|
218
|
-
let templateCode =
|
|
219
|
+
let templateCode = '';
|
|
220
|
+
if (!skipTemplateHelpers) {
|
|
221
|
+
templateCode = (0, parser_template_helpers_1.getParsedTemplateHelpersString)() + '\n\n';
|
|
222
|
+
}
|
|
219
223
|
templateCode += `const figma = require('figma')\n\n`;
|
|
220
224
|
templateCode += (0, parser_common_1.getReferencedPropsForTemplate)({
|
|
221
225
|
propMappings,
|
|
@@ -359,7 +363,10 @@ function parseExampleTemplate(exp, parserContext, propMappings) {
|
|
|
359
363
|
else {
|
|
360
364
|
throw new parser_common_1.ParserError(`Expected a template expression as the body of the render function, got ${typescript_1.SyntaxKind[templateNode.template.kind]}`, { sourceFile, node: templateNode.template });
|
|
361
365
|
}
|
|
362
|
-
let templateCode =
|
|
366
|
+
let templateCode = '';
|
|
367
|
+
if (!skipTemplateHelpers) {
|
|
368
|
+
templateCode = (0, parser_template_helpers_1.getParsedTemplateHelpersString)() + '\n\n';
|
|
369
|
+
}
|
|
363
370
|
templateCode += `const figma = require('figma')\n\n`;
|
|
364
371
|
templateCode += (0, parser_common_1.getReferencedPropsForTemplate)({
|
|
365
372
|
propMappings,
|
|
@@ -471,7 +478,7 @@ function parseConfigObjectArg(configArg, parserContext) {
|
|
|
471
478
|
importsArg,
|
|
472
479
|
};
|
|
473
480
|
}
|
|
474
|
-
async function parseHtmlDoc(node, parserContext,
|
|
481
|
+
async function parseHtmlDoc(node, parserContext, { skipTemplateHelpers }) {
|
|
475
482
|
const { checker, sourceFile, config } = parserContext;
|
|
476
483
|
// Parse the arguments to the `figma.connect()` call
|
|
477
484
|
const { figmaNodeUrlArg, configObjArg } = parseFigmaConnectArgs(node, parserContext);
|
|
@@ -486,7 +493,9 @@ async function parseHtmlDoc(node, parserContext, _) {
|
|
|
486
493
|
}
|
|
487
494
|
const metadata = undefined;
|
|
488
495
|
const props = propsArg ? (0, intrinsics_1.parsePropsObject)(propsArg, parserContext) : undefined;
|
|
489
|
-
const render = exampleArg
|
|
496
|
+
const render = exampleArg
|
|
497
|
+
? parseExampleTemplate(exampleArg, parserContext, props, skipTemplateHelpers)
|
|
498
|
+
: undefined;
|
|
490
499
|
const variant = variantArg ? (0, parser_common_1.parseVariant)(variantArg, sourceFile, checker) : undefined;
|
|
491
500
|
const links = linksArg ? (0, parser_common_1.parseLinks)(linksArg, parserContext) : undefined;
|
|
492
501
|
let imports = importsArg ? (0, parser_common_1.parseImports)(importsArg, parserContext) : undefined;
|
|
@@ -503,7 +512,7 @@ async function parseHtmlDoc(node, parserContext, _) {
|
|
|
503
512
|
return {
|
|
504
513
|
figmaNode,
|
|
505
514
|
label: project_1.DEFAULT_LABEL_PER_PARSER.html,
|
|
506
|
-
language:
|
|
515
|
+
language: label_language_mapping_1.SyntaxHighlightLanguage.HTML,
|
|
507
516
|
component: metadata?.component,
|
|
508
517
|
source: '',
|
|
509
518
|
sourceLocation: { line: -1 },
|
package/dist/html/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/html/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/html/parser.ts"],"names":[],"mappings":"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","sourcesContent":["import ts, { isReturnStatement, isTemplateExpression, SyntaxKind } from 'typescript'\nimport {\n stripQuotesFromNode,\n parsePropertyOfType,\n parseFunctionArgument,\n} from '../typescript/compiler'\nimport { FIGMA_CONNECT_CALL, PropMappings, parsePropsObject } from '../connect/intrinsics'\nimport { CodeConnectJSON } from '../connect/figma_connect'\nimport { getParsedTemplateHelpersString } from './parser_template_helpers'\nimport { JSDOM } from 'jsdom'\nimport { parse } from 'parse5'\nimport {\n makeCreatePropPlaceholder,\n ParserContext,\n visitPropReferencingNode,\n getReferencedPropsForTemplate,\n ParserError,\n parseLinks,\n parseVariant,\n parseImports,\n ParseOptions,\n} from '../connect/parser_common'\nimport { CodeConnectParser, DEFAULT_LABEL_PER_PARSER } from '../connect/project'\nimport { SyntaxHighlightLanguage } from '../connect/label_language_mapping'\nimport { format } from 'prettier'\n\nfunction getHtmlTaggedTemplateNode(node: ts.Node): ts.TaggedTemplateExpression | undefined {\n if (ts.isTaggedTemplateExpression(node)) {\n const tag = node.tag\n if (ts.isIdentifier(tag) && tag.text === 'html') {\n return node\n }\n } else if (\n ts.isBlock(node) &&\n node.statements.length === 1 &&\n ts.isReturnStatement(node.statements[0]) &&\n node.statements[0].expression &&\n ts.isTaggedTemplateExpression(node.statements[0].expression) &&\n ts.isIdentifier(node.statements[0].expression.tag) &&\n node.statements[0].expression.tag.text === 'html'\n ) {\n return node.statements[0].expression\n }\n\n return undefined\n}\n\n/**\n * This function converts the HTML template literal into a DOM (using JSDOM) to\n * extract information which is used in generating the template:\n * 1. A dictionary of template placeholders which correspond to HTML attribute\n * values. The key is the placeholder index, and the value is the attribute\n * name. The attribute name is unused (it used to be used in the output, but\n * we need to preserve case to support Angular, which JSDOM can't do unless\n * you use XHTML mode, and that doesn't support attributes without a value).\n * 2. Whether the template is \"nestable\" or not. A template is considered\n * nestable if it has only one top level element.\n *\n * For finding the attribute placeholders, the algorithm is as follows:\n * 1. Build up a full string from the template literal, replacing any value\n * ${placeholders} with `__FIGMA_PLACEHOLDER_0`, where 0 is the placeholder\n * index. This results in a valid HTML string, with placeholders we can later\n * detect.\n * 2. Use JSDOM to turn this into a DOM.\n * 3. Iterate over every node in the DOM, and if the node has any attributes\n * starting `__FIGMA_PLACEHOLDER`, store the info of these attributes. This\n * allows us to know which template literal placeholders correspond to HTML\n * attributes when we construct the template.\n */\nfunction getInfoFromDom(\n templateExp: ts.TemplateExpression | ts.TaggedTemplateExpression,\n parserContext: ParserContext,\n): {\n attributePlaceholders: Record<number, string>\n nestable: boolean\n} {\n let htmlString: string\n\n if (ts.isTemplateExpression(templateExp)) {\n // If this is a template expression, build up the HTML string with\n // identifiable placeholders as described above\n htmlString = templateExp.head.text\n templateExp.templateSpans.forEach((part, index) => {\n htmlString += `__FIGMA_PLACEHOLDER_${index}` + part.literal.text\n })\n } else if (templateExp.template.kind === ts.SyntaxKind.FirstTemplateToken) {\n // This is just a template literal with no placeholders\n htmlString = templateExp.template.text\n } else {\n // This should never happen as we check the type in the calling function\n throw new Error(`Unsupported template type: ${SyntaxKind[templateExp.template.kind]}`)\n }\n\n // First, check for HTML which we cannot handle. JSDOM is quite forgiving,\n // like a browser, but we need to be stricter\n //\n // Duplicate attribute names are handled gracefully by JSDOM (it just keeps\n // one of the attributes), but this breaks our algorithm because some of the\n // placeholders are no longer in the DOM. JSDOM has no way to detect this, but\n // parse5 (which is a library JSDOM uses under the hood) can detect this. We\n // just thrown an error in this case as there's no use case for doing this.\n parse(htmlString, {\n onParseError: (error) => {\n if (error.code === 'duplicate-attribute') {\n throw new ParserError(`Duplicate attribute name in example HTML`, {\n node: templateExp,\n sourceFile: parserContext.sourceFile,\n })\n }\n },\n })\n\n // Try to format the HTML with prettier, to catch any errors due to invalid\n // HTML which would otherwise result in broken formatting in the UI as\n // prettier is less forgiving\n try {\n // pluginSearchDirs: false is needed as otherwise prettier picks up other\n // prettier plugins in our monorepo and fails on CI\n format(htmlString, { parser: 'html', pluginSearchDirs: false })\n } catch (e) {\n throw new ParserError(`Error parsing example HTML. Check the HTML is valid.`, {\n node: templateExp,\n sourceFile: parserContext.sourceFile,\n })\n }\n\n // Create a DOM with JSDOM.\n //\n // JSDOM doesn't work properly in all cases if we parse a DOM without a full\n // document, e.g. Vue templates - when traversing with NodeIterator, it\n // doesn't find all elements. We create a Fragment then append it to a full\n // DOM to work around this. The extra wrapping elements don't matter, as we're\n // only interested in the attributes.\n const fragment = JSDOM.fragment(htmlString)\n const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>')\n dom.window.document.body.appendChild(fragment)\n\n const document = dom.window.document\n const NodeFilter = dom.window.NodeFilter\n\n const attributePlaceholders: Record<number, string> = {}\n\n function iterateNodeIterator(nodeIterator: NodeIterator) {\n let currentNode: Node | null\n\n while ((currentNode = nodeIterator.nextNode())) {\n // I couldn't work out how to do this in a way which satisfies TypeScript,\n // so using a check and a cast\n if (currentNode.nodeType === dom.window.Node.ELEMENT_NODE) {\n // Check for any attributes which correspond to placeholders in the\n // template literal, and store their index and name\n for (let attr of (currentNode as Element).attributes) {\n if (attr.value.startsWith('__FIGMA_PLACEHOLDER_')) {\n attributePlaceholders[parseInt(attr.value.split('__FIGMA_PLACEHOLDER_')[1])] = attr.name\n }\n }\n }\n\n // <TEMPLATE> nodes are not iterated over by default, as they are a way to\n // store a fragment which is not rendered immediately. These are used in\n // e.g. Vue templates, so we need to iterate over them explicitly.\n if (currentNode.nodeName === 'TEMPLATE') {\n const templateContent = (currentNode as HTMLTemplateElement).content\n const templateNodeIterator = document.createNodeIterator(\n templateContent,\n NodeFilter.SHOW_ELEMENT,\n null,\n )\n iterateNodeIterator(templateNodeIterator)\n }\n }\n }\n\n // Iterate over all the nodes in the DOM\n const nodeIterator = document.createNodeIterator(document.body, NodeFilter.SHOW_ELEMENT, null)\n iterateNodeIterator(nodeIterator)\n\n // We check if there is more than one top level child, as we use this as a\n // signal that the template is not \"nestable\" (and so we render an instance\n // pill rather than render the child's code inline in the UI)\n const topLevelChildrenCount = document.body.children.length\n\n return {\n attributePlaceholders,\n nestable: topLevelChildrenCount === 1,\n }\n}\n\nfunction escapeTemplateString(code: string) {\n return code.replace(/`/g, '\\\\`').replace(/\\$\\{/g, '\\\\${')\n}\n\n/**\n * Parses the example template string passed to `figma.connect()`.\n *\n * @param exp A function or arrow function expression\n * @param parserContext Parser context\n * @param propMappings Prop mappings object as returned by parseProps\n *\n * @returns The code of the render function and a list of imports\n */\nexport function parseExampleTemplate(\n exp: ts.ArrowFunction,\n parserContext: ParserContext,\n propMappings?: PropMappings,\n skipTemplateHelpers?: boolean,\n) {\n const { sourceFile } = parserContext\n\n if (exp.parameters.length > 1) {\n throw new ParserError(\n `Expected a single props parameter for the render function, got ${exp.parameters.length} parameters`,\n { sourceFile, node: exp },\n )\n }\n\n const propsParameter = exp.parameters[0]\n\n if (!exp.body) {\n throw new ParserError(`Expected a body for the render function`, { sourceFile, node: exp })\n }\n\n // If the body is a string literal, we generate a `figma.value` statement instead, which just\n // renders the string as-is in code examples\n if (ts.isStringLiteral(exp.body)) {\n const printer = ts.createPrinter()\n if (!exp.body) {\n throw new ParserError('Expected a function body', {\n sourceFile: parserContext.sourceFile,\n node: exp,\n })\n }\n let exampleCode = printer.printNode(ts.EmitHint.Unspecified, exp.body, sourceFile)\n\n let templateCode = ''\n if (!skipTemplateHelpers) {\n templateCode = getParsedTemplateHelpersString() + '\\n\\n'\n }\n\n templateCode += `const figma = require('figma')\\n\\n`\n\n templateCode += getReferencedPropsForTemplate({\n propMappings,\n exp,\n sourceFile,\n })\n\n exampleCode = exampleCode.replace(/`/g, '\\\\`')\n\n // Body is a string literal, so there aren't any placeholders\n templateCode += `export default figma.value(${exampleCode})\\n`\n\n return {\n code: templateCode,\n nestable: true,\n }\n }\n\n const templateNode = getHtmlTaggedTemplateNode(exp.body)\n\n if (!templateNode) {\n throw new ParserError(\n `Expected only a tagged template literal as the body of the render function`,\n { sourceFile, node: templateNode },\n )\n }\n\n // Keep track of any props which are referenced in the example so that we can\n // insert the appropriate `figma.properties` call in the JS template\n const referencedProps = new Set<string>()\n let exampleCode = ''\n let nestable = true\n\n if (isTemplateExpression(templateNode.template)) {\n // This is a template expression with placeholders\n\n const createPropPlaceholder = makeCreatePropPlaceholder({\n propMappings,\n referencedProps,\n sourceFile,\n })\n\n // Transform the template to replace any props references with placeholder\n // function calls, normalising the different types of props references\n const transformedTemplate = ts.transform(templateNode.template, [\n (context) => (rootNode) => {\n function visit(node: ts.Node): ts.Node {\n if (ts.isTemplateSpan(node)) {\n const visitResult = visitPropReferencingNode({\n propsParameter,\n node: node.expression,\n createPropPlaceholder,\n useJsx: false,\n })\n\n if (visitResult) {\n return ts.factory.createTemplateSpan(visitResult, node.literal)\n }\n }\n\n return ts.visitEachChild(node, visit, context)\n }\n return ts.visitNode(rootNode, visit) as typeof templateNode.template\n },\n ]).transformed[0] as typeof templateNode.template\n\n // Iterate over the template string spans (i.e. the interleaved strings and\n // placeholders) to build up our example code.\n //\n // Each time we encounter a placeholder (which by this point has been\n // normalised to a __PROP__ placeholder function call), we check if it\n // corresponds to a HTML attribute based on our previous DOM analysis (see\n // getInfoFromDom).\n //\n // If it does, we replace it with a call to\n // `_fcc_renderHtmlAttribute(\"attributeName\", propVariableName), otherwise\n // we replace it with a call to `_fcc_renderHtmlValue(propVariableName)`.\n //\n // We have some additional logic to handle cases where the user accidentally\n // writes `attribute=\"${props.prop}\"` rather than `attribute=${props.prop}`\n // (which is what we show in the docs), as it's easy to make this mistake\n // when copy/pasting.\n\n // Keep track of whether we're inside an attribute value that is wrapped in quotes,\n // so that we can strip the trailing quote if we are\n let insideAttributeWithQuotes = false\n\n const infoFromDom = getInfoFromDom(transformedTemplate, parserContext)\n const { attributePlaceholders } = infoFromDom\n nestable = infoFromDom.nestable\n\n // Handle a chunk of HTML, i.e. a text section of the template string. If\n // the next placeholder is an attribute and this chunk ends with a HTML\n // attribute (i.e. matches a regex like ` text=` or ` text=\"`), we remove the\n // attribute name so that it's not present in the low level template before the\n // call to _fcc_renderHtmlAttribute.\n function handleHtmlChunk(html: string, nextPlaceholderIsAttribute: boolean) {\n // If we were previously inside an attribute value placeholder with quotes\n // surrounding it, remove the leading quote. We do it like this rather\n // than always removing the leading quote to avoid situations where we\n // mistakenly remove a quote that is part of the actual content.\n if (insideAttributeWithQuotes) {\n html = html.replace(/^\"/g, '')\n }\n\n // If the next placeholder is an attribute, then match the start of the\n // attribute (`attribute=`) at the end of this chunk, so that we can\n // remove it from the example code and store the attribute name\n const attributeMatches = html.match(/(.*\\s)([^\\s]+)=\"?$/s)\n if (nextPlaceholderIsAttribute && attributeMatches) {\n // attributeMatches should always have matched here, but we check it\n // anyway so we can fail gracefully if not\n\n // Add the code up to the attribute, not including the ` attribute=`\n // part, as _fcc_renderHtmlAttribute is responsible for (maybe)\n // rendering that\n exampleCode += escapeTemplateString(attributeMatches[1])\n\n // If we are in this block, we know that we've matched an attribute, so\n // store whether it ends with a quote\n insideAttributeWithQuotes = html.endsWith('\"')\n\n // Return the attribute name so we can use it to construct the attribute\n // in the output. We do this rather than extract it from the HTML with\n // JSDOM because we want to preserve case, but do not want to parse the\n // doc as XHTML, so there's no way to do it otherwise.\n return attributeMatches[2]\n } else {\n // No attribute to remove, just add the code\n exampleCode += escapeTemplateString(html)\n insideAttributeWithQuotes = false\n }\n }\n\n // Process the first chunk, which is a special case as it is not in templateSpans\n let maybeAttributeName = handleHtmlChunk(\n transformedTemplate.head.text,\n attributePlaceholders[0] !== undefined,\n )\n\n // For each section of the template string, check that the expression is a\n // prop placeholder, then add the appropriate template function call\n transformedTemplate.templateSpans.forEach((part, index) => {\n if (!ts.isCallExpression(part.expression)) {\n throw new ParserError(\n `Expected a call expression as a placeholder in the template, got ${SyntaxKind[part.expression.kind]}`,\n { sourceFile, node: part.expression },\n )\n }\n\n const propNameArg = part.expression.arguments[0]\n if (!ts.isStringLiteral(propNameArg)) {\n throw new ParserError(\n `Expected a string literal as the argument to the placeholder call, got ${SyntaxKind[propNameArg.kind]}`,\n { sourceFile, node: propNameArg },\n )\n }\n\n const propVariableName = propNameArg.text\n\n if (attributePlaceholders[index]) {\n exampleCode += `\\${_fcc_renderHtmlAttribute('${maybeAttributeName}', ${propVariableName})}`\n } else {\n exampleCode += `\\${_fcc_renderHtmlValue(${propVariableName})}`\n }\n\n // Process the next chunk\n maybeAttributeName = handleHtmlChunk(\n part.literal.text,\n attributePlaceholders[index + 1] !== undefined,\n )\n })\n } else if (templateNode.template.kind === ts.SyntaxKind.FirstTemplateToken) {\n // Template string with no placeholders\n nestable = getInfoFromDom(templateNode, parserContext).nestable\n exampleCode = escapeTemplateString(templateNode.template.text)\n } else {\n throw new ParserError(\n `Expected a template expression as the body of the render function, got ${SyntaxKind[(templateNode.template as any).kind]}`,\n { sourceFile, node: templateNode.template },\n )\n }\n\n let templateCode = ''\n if (!skipTemplateHelpers) {\n templateCode = getParsedTemplateHelpersString() + '\\n\\n'\n }\n\n templateCode += `const figma = require('figma')\\n\\n`\n\n templateCode += getReferencedPropsForTemplate({\n propMappings,\n exp,\n sourceFile,\n })\n\n templateCode += `export default figma.html\\`${exampleCode}\\`\\n`\n\n return {\n code: templateCode,\n nestable,\n }\n}\n\nfunction parseFigmaConnectArgs(node: ts.CallExpression, parserContext: ParserContext) {\n const required = true\n\n const figmaNodeUrlArg = parseFunctionArgument(\n node,\n parserContext,\n 0,\n ts.isStringLiteral,\n required,\n `\\`${FIGMA_CONNECT_CALL}\\` must be called with a Figma Component URL as the first argument. Example usage:\n\\`${FIGMA_CONNECT_CALL}('https://www.figma.com/file/123?node-id=1-1', {\n example: () => html\\`<button />\\`\n})\\``,\n )!\n\n const configObjArg = parseFunctionArgument(\n node,\n parserContext,\n 1,\n ts.isObjectLiteralExpression,\n true,\n `The second argument to ${FIGMA_CONNECT_CALL}() must be an object literal. Example usage:\n\\`${FIGMA_CONNECT_CALL}('https://www.figma.com/file/123?node-id=1-1', {\n example: () => html\\`<button />\\`\n})\\``,\n )\n\n return {\n figmaNodeUrlArg,\n configObjArg,\n }\n}\n\nfunction parseConfigObjectArg(\n configArg: ts.ObjectLiteralExpression | undefined,\n parserContext: ParserContext,\n) {\n if (!configArg) {\n return {\n propsArg: undefined,\n exampleArg: undefined,\n variantArg: undefined,\n importsArg: undefined,\n linksArg: undefined,\n }\n }\n\n const propsArg = parsePropertyOfType({\n objectLiteralNode: configArg,\n propertyName: 'props',\n predicate: ts.isObjectLiteralExpression,\n parserContext,\n required: false,\n errorMessage: `The 'props' property must be an object literal. Example usage:\n\\`${FIGMA_CONNECT_CALL}('https://www.figma.com/file/123?node-id=1-1', {\n props: {\n disabled: figma.boolean('Disabled'),\n text: figma.string('TextContent'),\n },\n example: (props) => html\\`<my-button disabled=\\${props.disabled} label=\\${props.text} />\\`\n})\\``,\n })\n\n const exampleArg = parsePropertyOfType({\n objectLiteralNode: configArg,\n propertyName: 'example',\n predicate: ts.isArrowFunction,\n parserContext,\n required: true,\n errorMessage: `The 'example' property must be an arrow function which returns a html tagged template string. Example usage:\n\\`${FIGMA_CONNECT_CALL}('https://www.figma.com/file/123?node-id=1-1', {\n example: (props) => html\\`<my-button />\\`\n})\\``,\n })\n\n const variantArg = parsePropertyOfType({\n objectLiteralNode: configArg,\n propertyName: 'variant',\n predicate: ts.isObjectLiteralExpression,\n parserContext,\n required: false,\n errorMessage: `The 'variant' property must be an object literal. Example usage:\n\\`${FIGMA_CONNECT_CALL}('https://www.figma.com/file/123?node-id=1-1', {\n variant: {\n \"Has Icon\": true\n },\n example: (props) => html\\`<my-button />\\`\n})\\``,\n })\n\n const linksArg = parsePropertyOfType({\n objectLiteralNode: configArg,\n propertyName: 'links',\n predicate: ts.isArrayLiteralExpression,\n parserContext,\n required: false,\n errorMessage: `The 'links' property must be an array literal. Example usage:\n\\`${FIGMA_CONNECT_CALL}('https://www.figma.com/file/123?node-id=1-1', {\n links: [\n { name: 'Storybook', url: 'https://storybook.com' }\n ],\n example: (props) => html\\`<my-button />\\`\n})\\``,\n })\n\n const importsArg = parsePropertyOfType({\n objectLiteralNode: configArg,\n propertyName: 'imports',\n predicate: ts.isArrayLiteralExpression,\n parserContext,\n required: false,\n errorMessage: `The 'imports' property must be an array literal. Example usage:\n\\`${FIGMA_CONNECT_CALL}('https://www.figma.com/file/123?node-id=1-1', {\n imports: ['import { Button } from \"./Button\"']\n example: (props) => html\\`<my-button />\\`,\n})\\``,\n })\n\n return {\n propsArg,\n exampleArg,\n variantArg,\n linksArg,\n importsArg,\n }\n}\n\nexport async function parseHtmlDoc(\n node: ts.CallExpression,\n parserContext: ParserContext,\n { skipTemplateHelpers }: ParseOptions,\n): Promise<CodeConnectJSON> {\n const { checker, sourceFile, config } = parserContext\n\n // Parse the arguments to the `figma.connect()` call\n const { figmaNodeUrlArg, configObjArg } = parseFigmaConnectArgs(node, parserContext)\n\n const { propsArg, exampleArg, variantArg, linksArg, importsArg } = parseConfigObjectArg(\n configObjArg,\n parserContext,\n )\n\n let figmaNode = stripQuotesFromNode(figmaNodeUrlArg)\n // TODO This logic is duplicated in connect.ts transformDocFromParser due to some type issues\n if (config.documentUrlSubstitutions) {\n Object.entries(config.documentUrlSubstitutions).forEach(([from, to]) => {\n // @ts-expect-error\n figmaNode = figmaNode.replace(from, to)\n })\n }\n\n const metadata: any = undefined\n\n const props = propsArg ? parsePropsObject(propsArg, parserContext) : undefined\n const render = exampleArg\n ? parseExampleTemplate(exampleArg, parserContext, props, skipTemplateHelpers)\n : undefined\n const variant = variantArg ? parseVariant(variantArg, sourceFile, checker) : undefined\n const links = linksArg ? parseLinks(linksArg, parserContext) : undefined\n\n let imports = importsArg ? parseImports(importsArg, parserContext) : undefined\n\n let template\n if (render?.code) {\n template = render.code\n } else {\n throw new ParserError(`${FIGMA_CONNECT_CALL}() requires an example function`, {\n sourceFile,\n node,\n })\n }\n\n return {\n figmaNode,\n label: DEFAULT_LABEL_PER_PARSER.html!,\n language: SyntaxHighlightLanguage.HTML,\n component: metadata?.component,\n source: '',\n sourceLocation: { line: -1 },\n variant,\n template,\n templateData: {\n // TODO: `props` here is currently only used for validation purposes,\n // we should eventually remove it from the JSON payload\n props,\n imports,\n // If there's no render function, the default example is always nestable\n nestable: render ? render.nestable : true,\n },\n links,\n metadata: {\n cliVersion: require('../../package.json').version,\n },\n }\n}\n"]}
|
|
@@ -1 +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;;AAWnB,kDAKC;AAED,kCAMC;AAED,0CAKC;AAuDD,wEAUC;AArFD,SAAgB,mBAAmB,CAAC,MAAc;IAChD,OAAO;QACL,MAAM;QACN,KAAK,EAAE,iBAAiB;KAChB,CAAA;AACZ,CAAC;AAED,SAAgB,WAAW,CAAC,MAA2B;IACrD,OAAO;QACL,MAAM;QACN,KAAK,EAAE,QAAQ;QACf,GAAG,MAAM;KACD,CAAA;AACZ,CAAC;AAED,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAO;QACL,MAAM;QACN,KAAK,EAAE,YAAY;KACX,CAAA;AACZ,CAAC;AAED;;;;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,KAAe;IAC7D,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,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,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;QACxC,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,MAAM,GAAG,CAAA;IACpC,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;QACL,mBAAmB;QACnB,WAAW;QACX,oBAAoB;QACpB,wBAAwB;QACxB,eAAe;KAChB;SACE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC"}
|
|
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;;AAWnB,kDAKC;AAED,kCAMC;AAED,0CAKC;AAuDD,wEAUC;AArFD,SAAgB,mBAAmB,CAAC,MAAc;IAChD,OAAO;QACL,MAAM;QACN,KAAK,EAAE,iBAAiB;KAChB,CAAA;AACZ,CAAC;AAED,SAAgB,WAAW,CAAC,MAA2B;IACrD,OAAO;QACL,MAAM;QACN,KAAK,EAAE,QAAQ;QACf,GAAG,MAAM;KACD,CAAA;AACZ,CAAC;AAED,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAO;QACL,MAAM;QACN,KAAK,EAAE,YAAY;KACX,CAAA;AACZ,CAAC;AAED;;;;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,KAAe;IAC7D,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,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,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;QACxC,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC,MAAM,GAAG,CAAA;IACpC,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;QACL,mBAAmB;QACnB,WAAW;QACX,oBAAoB;QACpB,wBAAwB;QACxB,eAAe;KAChB;SACE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;SAC1B,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC","sourcesContent":["/* istanbul ignore file */\n// This file needs to be ignored from code coverage, as Istanbul adds extra calls\n// to `cov_*` functions which are used to track coverage, but these functions\n// can't be resolved when executing the templates from the unit tests inside\n// `new Function()`\n\ndeclare const figma: { html: (template: TemplateStringsArray, ...args: any[]) => string }\n\nexport type FCCValue =\n | string\n | number\n | boolean\n | undefined\n | ReturnType<typeof _fcc_identifier | typeof _fcc_object | typeof _fcc_templateString>\n\nexport function _fcc_templateString($value: string) {\n return {\n $value,\n $type: 'template-string',\n } as const\n}\n\nexport function _fcc_object($value: Record<string, any>) {\n return {\n $value,\n $type: 'object',\n ...$value,\n } as const\n}\n\nexport function _fcc_identifier($value: string) {\n return {\n $value,\n $type: 'identifier',\n } as const\n}\n\n/**\n * Render a value to HTML, following sensible rules according to the type.\n *\n * @param value The value to render\n */\nfunction _fcc_renderHtmlValue(value: any): string {\n // If the value is an array, then it's an array of objects representing React\n // children (either of type INSTANCE for pills, or CODE for inline code). The\n // template string handler in the template API handles extracting the instance\n // objects in a way the UI can handle.\n const isComponentArray = Array.isArray(value)\n if (isComponentArray) {\n return figma.html`${value}`\n }\n\n if (typeof value === 'object') {\n return JSON.stringify(value)\n } else if (typeof value === 'undefined') {\n return ''\n } else {\n return value.toString()\n }\n}\n\n/**\n * Render a value as an HTML attribute. This renders as a string wrapped in\n * quotes, unless the value is a boolean, in which case we output just the\n * attribute name if the value is true, or nothing if the value is false or\n * undefined.\n *\n * @param name The name of the attribute\n * @param value The value of the attribute\n */\nfunction _fcc_renderHtmlAttribute(name: string, value: FCCValue) {\n // figma.boolean returns undefined instead of false in some cases\n if (typeof value === 'undefined') {\n return ''\n } else if (typeof value === 'boolean') {\n if (value) {\n return name\n } else {\n return ''\n }\n } else if (typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint') {\n return `${name}=\"${value.toString().replaceAll('\\n', '\\\\n').replaceAll('\"', '\\\\\"')}\"`\n } else if (value.$type === 'identifier') {\n return `${name}=\"${value.$value}\"`\n } else {\n // TODO make this show a proper error in the UI\n return `${name}=\"Code Connect Error: Unsupported type '${typeof value}' for attribute\"`\n }\n}\n\nexport function getParsedTemplateHelpersString() {\n return [\n _fcc_templateString,\n _fcc_object,\n _fcc_renderHtmlValue,\n _fcc_renderHtmlAttribute,\n _fcc_identifier,\n ]\n .map((fn) => fn.toString())\n .join('\\n')\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template_literal.js","sourceRoot":"","sources":["../../src/html/template_literal.ts"],"names":[],"mappings":";;AAOA,oBAGC;AAHD,SAAgB,IAAI,CAAC,OAA6B,EAAE,GAAG,MAAa;IAClE,CAAC;IAAA,CAAC,KAAK,OAAO,EAAE,MAAM,CAAC,CAAA,CAAC,uBAAuB;IAC/C,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;AACxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"template_literal.js","sourceRoot":"","sources":["../../src/html/template_literal.ts"],"names":[],"mappings":";;AAOA,oBAGC;AAHD,SAAgB,IAAI,CAAC,OAA6B,EAAE,GAAG,MAAa;IAClE,CAAC;IAAA,CAAC,KAAK,OAAO,EAAE,MAAM,CAAC,CAAA,CAAC,uBAAuB;IAC/C,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;AACxC,CAAC","sourcesContent":["// This type never actually gets instantiated because we parse the file with the\n// TypeScript compiler API and don't run the code, so it's just here to be a\n// unique type we can use.\nexport type HtmlTemplateString = {\n __tag: 'HtmlTemplateString'\n}\n\nexport function html(strings: TemplateStringsArray, ...values: any[]): HtmlTemplateString {\n ;(void strings, values) // intentionally unused\n return { __tag: 'HtmlTemplateString' }\n}\n"]}
|
package/dist/html/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/html/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/html/types.ts"],"names":[],"mappings":"","sourcesContent":["import { FigmaConnectMeta } from '../connect/api'\nimport { HtmlTemplateString } from './template_literal'\n\nexport type HtmlMeta<P> = Required<\n Pick<FigmaConnectMeta<P, P, HtmlTemplateString | string>, 'example'>\n> &\n FigmaConnectMeta<P, P, HtmlTemplateString | string> & {\n /**\n * A list of import statements that will render in the Code Snippet in Figma.\n */\n imports?: string[]\n }\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose_errors.js","sourceRoot":"","sources":["../../src/parser_scripts/compose_errors.ts"],"names":[],"mappings":";;AAGA,8DAKC;AARD,MAAM,yBAAyB,GAC7B,uHAAuH,CAAA;AAEzH,SAAgB,yBAAyB,CAAC,MAAc;IACtD,IAAI,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC/C,OAAO,4IAA4I,CAAA;IACrJ,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"compose_errors.js","sourceRoot":"","sources":["../../src/parser_scripts/compose_errors.ts"],"names":[],"mappings":";;AAGA,8DAKC;AARD,MAAM,yBAAyB,GAC7B,uHAAuH,CAAA;AAEzH,SAAgB,yBAAyB,CAAC,MAAc;IACtD,IAAI,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC/C,OAAO,4IAA4I,CAAA;IACrJ,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC","sourcesContent":["const java17CompatabilityString =\n 'Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component'\n\nexport function getComposeErrorSuggestion(stderr: string): string | null {\n if (stderr.includes(java17CompatabilityString)) {\n return 'Code Connect requires a minimum java version of Java 17, please update JAVA_HOME to point to a Java version that is greater or equal to 17'\n }\n return null\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_file_if_exists.js","sourceRoot":"","sources":["../../src/parser_scripts/get_file_if_exists.ts"],"names":[],"mappings":";;AAIA,0CAaC;AAjBD,2BAAgC;AAChC,iDAAwC;AAExC,qFAAqF;AACrF,SAAgB,eAAe,CAAC,GAAW,EAAE,MAAc;IACzD,gEAAgE;IAChE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACjE,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAAA;QAExC,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAEpD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAClC,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,wBAAQ,EAAC,4BAA4B,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACjG,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"get_file_if_exists.js","sourceRoot":"","sources":["../../src/parser_scripts/get_file_if_exists.ts"],"names":[],"mappings":";;AAIA,0CAaC;AAjBD,2BAAgC;AAChC,iDAAwC;AAExC,qFAAqF;AACrF,SAAgB,eAAe,CAAC,GAAW,EAAE,MAAc;IACzD,gEAAgE;IAChE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACjE,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,CAAC,CAAA;QAExC,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAEpD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAClC,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,wBAAQ,EAAC,4BAA4B,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACjG,CAAC;AACH,CAAC","sourcesContent":["import { readdirSync } from 'fs'\nimport { execSync } from 'child_process'\n\n// Check if a file matching a search pattern exists, and return the first match if so\nexport function getFileIfExists(cwd: string, search: string): string {\n // \"find\" command is not available on Windows. Use a fs instead.\n if (process.platform === 'win32') {\n const pattern = search.replace(/\\./g, '\\\\.').replace(/\\*/g, '.*')\n const regex = new RegExp(`^${pattern}$`)\n\n const files = readdirSync(cwd)\n const match = files.find((file) => regex.test(file))\n\n return match ? `./${match}` : ''\n } else {\n return execSync(`find . -maxdepth 1 -name ${search}`, { cwd }).toString().trim().split('\\n')[0]\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_gradlew_path.js","sourceRoot":"","sources":["../../src/parser_scripts/get_gradlew_path.ts"],"names":[],"mappings":";;;;;AAKA,oDASC;AAGD,wEAEC;AAnBD,+CAAiD;AACjD,6DAAsD;AACtD,gDAAuB;AAEvB,oDAAoD;AAC7C,KAAK,UAAU,oBAAoB,CAAC,GAAW,EAAE,iBAA0B;IAChF,MAAM,UAAU,GAAG,iBAAiB,IAAI,IAAA,oCAAe,EAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACvE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAA,uBAAa,EACX,2JAA2J,CAC5J,CAAA;IACH,CAAC;IAED,OAAO,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AACjC,CAAC;AAED,kCAAkC;AAClC,SAAgB,8BAA8B,CAAC,gBAAwB;IACrE,OAAO,gBAAgB,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;AACxF,CAAC"}
|
|
1
|
+
{"version":3,"file":"get_gradlew_path.js","sourceRoot":"","sources":["../../src/parser_scripts/get_gradlew_path.ts"],"names":[],"mappings":";;;;;AAKA,oDASC;AAGD,wEAEC;AAnBD,+CAAiD;AACjD,6DAAsD;AACtD,gDAAuB;AAEvB,oDAAoD;AAC7C,KAAK,UAAU,oBAAoB,CAAC,GAAW,EAAE,iBAA0B;IAChF,MAAM,UAAU,GAAG,iBAAiB,IAAI,IAAA,oCAAe,EAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACvE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,IAAA,uBAAa,EACX,2JAA2J,CAC5J,CAAA;IACH,CAAC;IAED,OAAO,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AACjC,CAAC;AAED,kCAAkC;AAClC,SAAgB,8BAA8B,CAAC,gBAAwB;IACrE,OAAO,gBAAgB,KAAK,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAA;AACxF,CAAC","sourcesContent":["import { exitWithError } from '../common/logging'\nimport { getFileIfExists } from './get_file_if_exists'\nimport path from 'path'\n\n// Get the enclosing directory of the gradle wrapper\nexport async function getGradleWrapperPath(cwd: string, gradleWrapperPath?: string) {\n const gradlePath = gradleWrapperPath || getFileIfExists(cwd, 'gradlew')\n if (!gradlePath) {\n exitWithError(\n 'Could not find the location of the gradlew in your project. You can specify the location of your gradlew file with the `gradleWrapperPath` config option.',\n )\n }\n\n return path.dirname(gradlePath)\n}\n\n// Get the path for the executable\nexport function getGradleWrapperExecutablePath(gradleWrapperDir: string) {\n return gradleWrapperDir === '.' ? './gradlew' : path.join(gradleWrapperDir, 'gradlew')\n}\n"]}
|