@payloadcms/figma 0.0.1-alpha.34 → 0.0.1-alpha.35
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/auth/oauth-flow.d.ts.map +1 -1
- package/dist/auth/oauth-flow.js +6 -5
- package/dist/auth/oauth-flow.js.map +1 -1
- package/dist/auth/refresh.d.ts.map +1 -1
- package/dist/auth/refresh.js +14 -9
- package/dist/auth/refresh.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +19 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/build-lambda-zip.d.ts +5 -0
- package/dist/commands/build-lambda-zip.d.ts.map +1 -0
- package/dist/commands/build-lambda-zip.js +19 -0
- package/dist/commands/build-lambda-zip.js.map +1 -0
- package/dist/commands/deploy.js +3 -3
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/init.js +2 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list-tokens.d.ts.map +1 -1
- package/dist/commands/list-tokens.js +3 -1
- package/dist/commands/list-tokens.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +8 -5
- package/dist/commands/login.js.map +1 -1
- package/dist/config/oauth.d.ts +3 -17
- package/dist/config/oauth.d.ts.map +1 -1
- package/dist/config/oauth.js +18 -34
- package/dist/config/oauth.js.map +1 -1
- package/dist/constants.d.ts +7 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +13 -5
- package/dist/constants.js.map +1 -1
- package/dist/db-content-api/README.md +0 -10
- package/dist/db-content-api/generated/content-api-types.d.ts +171 -25
- package/dist/db-content-api/generated/content-api-types.d.ts.map +1 -1
- package/dist/db-content-api/generated/content-api-types.js.map +1 -1
- package/dist/db-content-api/index.d.ts.map +1 -1
- package/dist/db-content-api/index.js +7 -8
- package/dist/db-content-api/index.js.map +1 -1
- package/dist/db-content-api/temp-utilities/sorting.d.ts +2 -6
- package/dist/db-content-api/temp-utilities/sorting.d.ts.map +1 -1
- package/dist/db-content-api/temp-utilities/sorting.js +2 -41
- package/dist/db-content-api/temp-utilities/sorting.js.map +1 -1
- package/dist/db-content-api/utilities/data/index.d.ts +2 -0
- package/dist/db-content-api/utilities/data/index.d.ts.map +1 -1
- package/dist/db-content-api/utilities/data/index.js +7 -0
- package/dist/db-content-api/utilities/data/index.js.map +1 -1
- package/dist/db-content-api/utilities/data/removeVirtualFields.d.ts +12 -0
- package/dist/db-content-api/utilities/data/removeVirtualFields.d.ts.map +1 -0
- package/dist/db-content-api/utilities/data/removeVirtualFields.js +54 -0
- package/dist/db-content-api/utilities/data/removeVirtualFields.js.map +1 -0
- package/dist/db-content-api/utilities/joins.d.ts +4 -4
- package/dist/db-content-api/utilities/joins.d.ts.map +1 -1
- package/dist/db-content-api/utilities/joins.js +12 -6
- package/dist/db-content-api/utilities/joins.js.map +1 -1
- package/dist/oauth/strategy/index.d.ts.map +1 -1
- package/dist/oauth/strategy/index.js +33 -12
- package/dist/oauth/strategy/index.js.map +1 -1
- package/dist/plugin/build-config.d.ts.map +1 -1
- package/dist/plugin/build-config.js +7 -0
- package/dist/plugin/build-config.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/asset-collection.d.ts +3 -6
- package/dist/utils/asset-collection.d.ts.map +1 -1
- package/dist/utils/asset-collection.js +10 -34
- package/dist/utils/asset-collection.js.map +1 -1
- package/dist/utils/build-lambda-zip.d.ts +14 -0
- package/dist/utils/build-lambda-zip.d.ts.map +1 -0
- package/dist/utils/build-lambda-zip.js +81 -0
- package/dist/utils/build-lambda-zip.js.map +1 -0
- package/dist/utils/config.js +1 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/env-management.js +2 -2
- package/dist/utils/env-management.js.map +1 -1
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +7 -3
- package/dist/utils/formatter.js.map +1 -1
- package/dist/utils/lambda-config.d.ts +3 -1
- package/dist/utils/lambda-config.d.ts.map +1 -1
- package/dist/utils/lambda-config.js +13 -22
- package/dist/utils/lambda-config.js.map +1 -1
- package/dist/utils/messages.d.ts.map +1 -1
- package/dist/utils/messages.js +2 -0
- package/dist/utils/messages.js.map +1 -1
- package/dist/utils/payload-config-modifier.d.ts.map +1 -1
- package/dist/utils/payload-config-modifier.js +7 -4
- package/dist/utils/payload-config-modifier.js.map +1 -1
- package/dist/utils/payload-package-check.d.ts +7 -1
- package/dist/utils/payload-package-check.d.ts.map +1 -1
- package/dist/utils/payload-package-check.js +29 -15
- package/dist/utils/payload-package-check.js.map +1 -1
- package/dist/utils/project.d.ts.map +1 -1
- package/dist/utils/project.js +4 -3
- package/dist/utils/project.js.map +1 -1
- package/dist/utils/typescript-validator.d.ts.map +1 -1
- package/dist/utils/typescript-validator.js +7 -4
- package/dist/utils/typescript-validator.js.map +1 -1
- package/package.json +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/payload-package-check.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../src/utils/payload-package-check.ts"],"sourcesContent":["import spawn from 'cross-spawn'\nimport fs from 'fs/promises'\nimport path from 'path'\n\nimport type { PackageManager } from './package-manager.js'\n\nimport * as log from './log.js'\n\n/**\n * Check if a package is installed in dependencies (not devDependencies)\n */\nexport async function checkPackageInstalled(\n projectPath: string,\n packageName: string,\n): Promise<boolean> {\n try {\n const pkgJsonPath = path.join(projectPath, 'package.json')\n log.debug(`Checking if ${packageName} is installed in: ${pkgJsonPath}`)\n const pkgJsonContent = await fs.readFile(pkgJsonPath, 'utf-8')\n const pkgJson = JSON.parse(pkgJsonContent)\n const isInstalled = !!pkgJson.dependencies?.[packageName]\n log.debug(`${packageName} is ${isInstalled ? 'installed' : 'not installed'}`)\n return isInstalled\n } catch (error) {\n log.debug(\n `Error checking package installation: ${error instanceof Error ? error.message : 'Unknown error'}`,\n )\n return false\n }\n}\n\n/**\n * Get the payload version from project's package.json (without range specifiers)\n * Returns the clean version number (e.g., \"3.71.1\") or undefined if not found\n */\nexport async function getPayloadVersion(projectPath: string): Promise<string | undefined> {\n try {\n const pkgJsonPath = path.join(projectPath, 'package.json')\n const pkgJsonContent = await fs.readFile(pkgJsonPath, 'utf-8')\n const pkgJson = JSON.parse(pkgJsonContent)\n const rawVersion = pkgJson.dependencies?.payload || pkgJson.devDependencies?.payload\n if (!rawVersion) {\n return undefined\n }\n // Strip range specifiers (^, ~, >=, etc.) to get clean version\n return rawVersion.replace(/^[\\^~>=<]+/, '')\n } catch {\n return undefined\n }\n}\n\n/**\n * Install a package as a production dependency\n * @param version - Version to install (without caret). Defaults to 'latest'.\n */\nexport async function installPackage(\n projectPath: string,\n packageName: string,\n packageManager: PackageManager,\n version: string = 'latest',\n): Promise<void> {\n return new Promise((resolve, reject) => {\n const command = packageManager\n const packageSpec = `${packageName}@${version}`\n const args = ['add', packageSpec]\n\n // npm uses 'install' instead of 'add'\n if (packageManager === 'npm') {\n args[0] = 'install'\n }\n\n log.debug(`Running: ${command} ${args.join(' ')} in ${projectPath}`)\n\n let stderr = ''\n\n const child = spawn(command, args, {\n cwd: projectPath,\n stdio: 'pipe',\n })\n\n // Capture stderr for debug logging\n if (child.stderr) {\n child.stderr.on('data', (data) => {\n stderr += data.toString()\n })\n }\n\n child.on('error', (error) => {\n log.debug(`Spawn error for ${command}: ${error.message}`)\n reject(new Error(`Failed to spawn ${command}: ${error.message}`))\n })\n\n child.on('close', (code) => {\n if (code === 0) {\n log.debug(`Successfully installed ${packageName}`)\n resolve()\n } else {\n log.debug(`Failed to install ${packageName} (exit code: ${code})`)\n if (stderr) {\n log.debug(`stderr: ${stderr}`)\n }\n reject(new Error(`Failed to install ${packageName}`))\n }\n })\n })\n}\n\n/**\n * Uninstall a package\n * Does not throw on failure - orphaned package is better than broken config\n */\nexport async function uninstallPackage(\n projectPath: string,\n packageName: string,\n packageManager: PackageManager,\n): Promise<void> {\n return new Promise((resolve) => {\n const command = packageManager\n const args = ['remove', packageName]\n\n // npm uses 'uninstall' instead of 'remove'\n if (packageManager === 'npm') {\n args[0] = 'uninstall'\n }\n\n log.debug(`Running: ${command} ${args.join(' ')} in ${projectPath}`)\n\n const child = spawn(command, args, {\n cwd: projectPath,\n stdio: 'pipe',\n })\n\n child.on('close', (code) => {\n if (code === 0) {\n log.debug(`Successfully uninstalled ${packageName}`)\n } else {\n log.debug(`Failed to uninstall ${packageName} (exit code: ${code}), continuing anyway`)\n }\n // Always resolve, even on error\n resolve()\n })\n })\n}\n\n/**\n * Run an npm script from package.json\n * Does not throw on failure - logs warning and continues\n */\nexport async function runScript(\n projectPath: string,\n scriptName: string,\n packageManager: PackageManager,\n): Promise<boolean> {\n return new Promise((resolve) => {\n const command = packageManager\n // yarn doesn't need 'run' prefix, but it works with it too\n const args = ['run', scriptName]\n\n log.debug(`Running script: ${command} ${args.join(' ')} in ${projectPath}`)\n\n let stderr = ''\n\n const child = spawn(command, args, {\n cwd: projectPath,\n stdio: 'pipe',\n })\n\n if (child.stderr) {\n child.stderr.on('data', (data) => {\n stderr += data.toString()\n })\n }\n\n child.on('error', (error) => {\n log.debug(`Failed to run script ${scriptName}: ${error.message}`)\n resolve(false)\n })\n\n child.on('close', (code) => {\n if (code === 0) {\n log.debug(`Successfully ran script: ${scriptName}`)\n resolve(true)\n } else {\n log.debug(`Script ${scriptName} failed (exit code: ${code})`)\n if (stderr) {\n log.debug(`stderr: ${stderr}`)\n }\n resolve(false)\n }\n })\n })\n}\n"],"names":["spawn","fs","path","log","checkPackageInstalled","projectPath","packageName","pkgJsonPath","join","debug","pkgJsonContent","readFile","pkgJson","JSON","parse","isInstalled","dependencies","error","Error","message","getPayloadVersion","rawVersion","payload","devDependencies","undefined","replace","installPackage","packageManager","version","Promise","resolve","reject","command","packageSpec","args","stderr","child","cwd","stdio","on","data","toString","code","uninstallPackage","runScript","scriptName"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOrD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,WAAW,CAAC,CAwCtB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAS/D;AAiED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C7F;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,KAAK,GAAG,MAAM,GAAG,MAAc,GAC9C,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/utils/project.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOrD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,WAAW,CAAC,CAwCtB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAS/D;AAiED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C7F;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,KAAK,GAAG,MAAM,GAAG,MAAc,GAC9C,OAAO,CAAC,IAAI,CAAC,CAqCf;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAenF;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAQhG"}
|
package/dist/utils/project.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Project detection and scaffolding utilities
|
|
3
|
-
*/ import
|
|
3
|
+
*/ import spawn from 'cross-spawn';
|
|
4
4
|
import fs from 'fs/promises';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { fileURLToPath } from 'url';
|
|
@@ -181,9 +181,10 @@ import { applyLambdaModifications } from './lambda-config.js';
|
|
|
181
181
|
* @returns Promise that resolves when installation completes
|
|
182
182
|
*/ export async function installDependencies(projectPath, packageManager = 'npm') {
|
|
183
183
|
return new Promise((resolve, reject)=>{
|
|
184
|
-
const child = spawn(
|
|
184
|
+
const child = spawn(packageManager, [
|
|
185
|
+
'install'
|
|
186
|
+
], {
|
|
185
187
|
cwd: projectPath,
|
|
186
|
-
shell: true,
|
|
187
188
|
stdio: 'pipe'
|
|
188
189
|
});
|
|
189
190
|
let stdout = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/project.ts"],"sourcesContent":["/**\n * Project detection and scaffolding utilities\n */\n\nimport { spawn } from 'child_process'\nimport fs from 'fs/promises'\nimport path from 'path'\nimport { fileURLToPath } from 'url'\n\nimport type { ProjectInfo } from '../types/config.js'\n\nimport { ensureGitignore } from './config.js'\nimport { downloadTemplateFromGitHub } from './download-template.js'\nimport { tryInitRepoAndCommit } from './git.js'\nimport { applyLambdaModifications } from './lambda-config.js'\n\n/**\n * Detect if current directory has a Payload project\n *\n * @param projectPath - Path to check (defaults to cwd)\n * @returns Project information\n */\nexport async function detectPayloadProject(\n projectPath: string = process.cwd(),\n): Promise<ProjectInfo> {\n const packageJsonPath = path.join(projectPath, 'package.json')\n\n try {\n const content = await fs.readFile(packageJsonPath, 'utf-8')\n const packageJson = JSON.parse(content)\n\n // Check for payload in dependencies or devDependencies\n const payloadVersion = packageJson.dependencies?.payload || packageJson.devDependencies?.payload\n\n // Detect package manager\n let packageManager: 'npm' | 'pnpm' | 'yarn' = 'npm'\n try {\n await fs.access(path.join(projectPath, 'pnpm-lock.yaml'))\n packageManager = 'pnpm'\n } catch {\n try {\n await fs.access(path.join(projectPath, 'yarn.lock'))\n packageManager = 'yarn'\n } catch {\n packageManager = 'npm'\n }\n }\n\n return {\n hasPayload: !!payloadVersion,\n packageManager,\n path: projectPath,\n payloadVersion: payloadVersion || undefined,\n }\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code === 'ENOENT') {\n // No package.json found\n return {\n hasPayload: false,\n path: projectPath,\n }\n }\n throw new Error(`Failed to read package.json: ${(error as Error).message}`)\n }\n}\n\n/**\n * Validate Payload version (must be 3.x)\n *\n * @param version - Version string from package.json\n * @returns True if version is valid\n */\nexport function validatePayloadVersion(version: string): boolean {\n // Extract major version (handle ^3.0.0, ~3.0.0, 3.0.0, etc.)\n const match = version.match(/(\\d+)/)\n if (!match) {\n return false\n }\n\n const majorVersion = parseInt(match[1], 10)\n return majorVersion === 3\n}\n\n/**\n * Fetch the latest version of a package from npm registry\n *\n * @param packageName - Package name to fetch version for\n * @returns Latest version string\n */\nasync function getLatestPackageVersion(packageName: string): Promise<string> {\n const response = await fetch(`https://registry.npmjs.org/-/package/${packageName}/dist-tags`)\n\n if (!response.ok) {\n throw new Error(`Failed to fetch version for ${packageName}: ${response.statusText}`)\n }\n\n const data = (await response.json()) as Record<string, unknown>\n\n if (typeof data.latest !== 'string') {\n throw new Error(`Invalid version data received for ${packageName}`)\n }\n\n return data.latest\n}\n\n/**\n * Replace workspace versions in package.json with actual versions\n *\n * @param packageJson - Package JSON object to update\n * @param latestVersion - Latest Payload version to use\n */\nfunction replaceWorkspaceVersions(\n packageJson: Record<string, unknown>,\n latestVersion: string,\n): void {\n const deps = packageJson.dependencies as Record<string, string> | undefined\n if (!deps) {\n return\n }\n\n for (const [key, value] of Object.entries(deps)) {\n // Replace workspace:* or workspace:^ with actual version\n if (typeof value === 'string' && value.startsWith('workspace:')) {\n deps[key] = latestVersion\n }\n // Ensure all payload packages use the same version\n else if (key === 'payload' || key.startsWith('@payloadcms/')) {\n deps[key] = latestVersion\n }\n }\n\n // Also handle devDependencies if present\n const devDeps = packageJson.devDependencies as Record<string, string> | undefined\n if (!devDeps) {\n return\n }\n\n for (const [key, value] of Object.entries(devDeps)) {\n if (typeof value === 'string' && value.startsWith('workspace:')) {\n devDeps[key] = latestVersion\n } else if (key === 'payload' || key.startsWith('@payloadcms/')) {\n devDeps[key] = latestVersion\n }\n }\n}\n\n/**\n * Scaffold a new Payload project from GitHub template\n *\n * @param projectPath - Path where to create the project\n * @param projectName - Name for the project\n */\nexport async function scaffoldProject(projectPath: string, projectName: string): Promise<void> {\n // Create project directory if it doesn't exist\n await fs.mkdir(projectPath, { recursive: true })\n\n // Download template from GitHub\n await downloadTemplateFromGitHub(projectPath)\n\n // Apply Lambda modifications BEFORE updating package.json\n // This ensures we don't overwrite version replacements\n await applyLambdaModifications(projectPath)\n\n // Get latest Payload version from npm\n const latestVersion = await getLatestPackageVersion('payload')\n\n // Delete any existing lock files from template (they reference workspace:* versions)\n // This ensures pnpm install creates a fresh lock file with actual versions\n const lockFiles = ['pnpm-lock.yaml', 'yarn.lock', 'package-lock.json']\n for (const lockFile of lockFiles) {\n try {\n await fs.unlink(path.join(projectPath, lockFile))\n } catch {\n // File doesn't exist, ignore\n }\n }\n\n // Update package.json: set name, replace workspace versions\n // This must come AFTER applyLambdaModifications to ensure we have final versions\n const packageJsonPath = path.join(projectPath, 'package.json')\n const packageJsonContent = await fs.readFile(packageJsonPath, 'utf-8')\n const packageJson = JSON.parse(packageJsonContent) as Record<string, unknown>\n packageJson.name = projectName\n\n // Replace workspace:* versions with actual versions\n replaceWorkspaceVersions(packageJson, latestVersion)\n\n await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\\n', 'utf-8')\n\n // Ensure .gitignore has required entries\n // Note: .env file is created by init command with FIGMA_CONTENT_SYSTEM_ID\n await ensureGitignore(projectPath, ['.env', '.env.local', 'lambda.zip'])\n\n // Replace README with Figma-specific version\n const readmeTemplatePath = fileURLToPath(new URL('../templates/README.md', import.meta.url))\n let readmeContent = await fs.readFile(readmeTemplatePath, 'utf-8')\n readmeContent = readmeContent.replace(/\\{\\{PROJECT_NAME\\}\\}/g, projectName)\n await fs.writeFile(path.join(projectPath, 'README.md'), readmeContent, 'utf-8')\n}\n\n/**\n * Initialize git repository after all setup is complete\n *\n * This should be called AFTER installDependencies so that lock files are included\n *\n * @param projectPath - Path to project directory\n */\nexport function initializeGitRepo(projectPath: string): void {\n tryInitRepoAndCommit(projectPath)\n}\n\n/**\n * Install dependencies using the detected package manager\n *\n * @param projectPath - Path to project\n * @param packageManager - Package manager to use\n * @returns Promise that resolves when installation completes\n */\nexport async function installDependencies(\n projectPath: string,\n packageManager: 'npm' | 'pnpm' | 'yarn' = 'npm',\n): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(`${packageManager} install`, {\n cwd: projectPath,\n shell: true,\n stdio: 'pipe', // Capture output to avoid interfering with spinner\n })\n\n let stdout = ''\n let stderr = ''\n\n // Capture stdout\n child.stdout?.on('data', (data) => {\n stdout += data.toString()\n })\n\n // Capture stderr\n child.stderr?.on('data', (data) => {\n stderr += data.toString()\n })\n\n child.on('close', (code) => {\n if (code === 0) {\n resolve()\n } else {\n // Show captured output on error\n const output = [stdout, stderr].filter(Boolean).join('\\n\\n')\n const errorMessage = output\n ? `${packageManager} install failed with code ${code}\\n\\nOutput:\\n${output}`\n : `${packageManager} install failed with code ${code}`\n reject(new Error(errorMessage))\n }\n })\n\n child.on('error', (error) => {\n reject(new Error(`Failed to run ${packageManager} install: ${error.message}`))\n })\n })\n}\n\n/**\n * Check if required dependencies are installed\n *\n * @param projectPath - Path to project\n * @returns True if all required dependencies exist\n */\nexport async function hasRequiredDependencies(projectPath: string): Promise<boolean> {\n const packageJsonPath = path.join(projectPath, 'package.json')\n\n try {\n const content = await fs.readFile(packageJsonPath, 'utf-8')\n const packageJson = JSON.parse(content)\n\n // Check for Payload and Next.js\n const hasPayload = packageJson.dependencies?.payload || packageJson.devDependencies?.payload\n const hasNext = packageJson.dependencies?.next || packageJson.devDependencies?.next\n\n return !!(hasPayload && hasNext)\n } catch {\n return false\n }\n}\n\n/**\n * Check if current directory is a project directory\n *\n * A project directory has package.json\n *\n * @param projectPath - Path to check (defaults to cwd)\n * @returns True if in project directory\n */\nexport async function isInProjectDirectory(projectPath: string = process.cwd()): Promise<boolean> {\n try {\n // Check for package.json\n await fs.access(path.join(projectPath, 'package.json'))\n return true\n } catch {\n return false\n }\n}\n"],"names":["spawn","fs","path","fileURLToPath","ensureGitignore","downloadTemplateFromGitHub","tryInitRepoAndCommit","applyLambdaModifications","detectPayloadProject","projectPath","process","cwd","packageJsonPath","join","content","readFile","packageJson","JSON","parse","payloadVersion","dependencies","payload","devDependencies","packageManager","access","hasPayload","undefined","error","code","Error","message","validatePayloadVersion","version","match","majorVersion","parseInt","getLatestPackageVersion","packageName","response","fetch","ok","statusText","data","json","latest","replaceWorkspaceVersions","latestVersion","deps","key","value","Object","entries","startsWith","devDeps","scaffoldProject","projectName","mkdir","recursive","lockFiles","lockFile","unlink","packageJsonContent","name","writeFile","stringify","readmeTemplatePath","URL","url","readmeContent","replace","initializeGitRepo","installDependencies","Promise","resolve","reject","child","shell","stdio","stdout","stderr","on","toString","output","filter","Boolean","errorMessage","hasRequiredDependencies","hasNext","next","isInProjectDirectory"],"mappings":"AAAA;;CAEC,GAED,SAASA,KAAK,QAAQ,gBAAe;AACrC,OAAOC,QAAQ,cAAa;AAC5B,OAAOC,UAAU,OAAM;AACvB,SAASC,aAAa,QAAQ,MAAK;AAInC,SAASC,eAAe,QAAQ,cAAa;AAC7C,SAASC,0BAA0B,QAAQ,yBAAwB;AACnE,SAASC,oBAAoB,QAAQ,WAAU;AAC/C,SAASC,wBAAwB,QAAQ,qBAAoB;AAE7D;;;;;CAKC,GACD,OAAO,eAAeC,qBACpBC,cAAsBC,QAAQC,GAAG,EAAE;IAEnC,MAAMC,kBAAkBV,KAAKW,IAAI,CAACJ,aAAa;IAE/C,IAAI;QACF,MAAMK,UAAU,MAAMb,GAAGc,QAAQ,CAACH,iBAAiB;QACnD,MAAMI,cAAcC,KAAKC,KAAK,CAACJ;QAE/B,uDAAuD;QACvD,MAAMK,iBAAiBH,YAAYI,YAAY,EAAEC,WAAWL,YAAYM,eAAe,EAAED;QAEzF,yBAAyB;QACzB,IAAIE,iBAA0C;QAC9C,IAAI;YACF,MAAMtB,GAAGuB,MAAM,CAACtB,KAAKW,IAAI,CAACJ,aAAa;YACvCc,iBAAiB;QACnB,EAAE,OAAM;YACN,IAAI;gBACF,MAAMtB,GAAGuB,MAAM,CAACtB,KAAKW,IAAI,CAACJ,aAAa;gBACvCc,iBAAiB;YACnB,EAAE,OAAM;gBACNA,iBAAiB;YACnB;QACF;QAEA,OAAO;YACLE,YAAY,CAAC,CAACN;YACdI;YACArB,MAAMO;YACNU,gBAAgBA,kBAAkBO;QACpC;IACF,EAAE,OAAOC,OAAO;QACd,IAAI,AAACA,MAAgCC,IAAI,KAAK,UAAU;YACtD,wBAAwB;YACxB,OAAO;gBACLH,YAAY;gBACZvB,MAAMO;YACR;QACF;QACA,MAAM,IAAIoB,MAAM,CAAC,6BAA6B,EAAE,AAACF,MAAgBG,OAAO,EAAE;IAC5E;AACF;AAEA;;;;;CAKC,GACD,OAAO,SAASC,uBAAuBC,OAAe;IACpD,6DAA6D;IAC7D,MAAMC,QAAQD,QAAQC,KAAK,CAAC;IAC5B,IAAI,CAACA,OAAO;QACV,OAAO;IACT;IAEA,MAAMC,eAAeC,SAASF,KAAK,CAAC,EAAE,EAAE;IACxC,OAAOC,iBAAiB;AAC1B;AAEA;;;;;CAKC,GACD,eAAeE,wBAAwBC,WAAmB;IACxD,MAAMC,WAAW,MAAMC,MAAM,CAAC,qCAAqC,EAAEF,YAAY,UAAU,CAAC;IAE5F,IAAI,CAACC,SAASE,EAAE,EAAE;QAChB,MAAM,IAAIX,MAAM,CAAC,4BAA4B,EAAEQ,YAAY,EAAE,EAAEC,SAASG,UAAU,EAAE;IACtF;IAEA,MAAMC,OAAQ,MAAMJ,SAASK,IAAI;IAEjC,IAAI,OAAOD,KAAKE,MAAM,KAAK,UAAU;QACnC,MAAM,IAAIf,MAAM,CAAC,kCAAkC,EAAEQ,aAAa;IACpE;IAEA,OAAOK,KAAKE,MAAM;AACpB;AAEA;;;;;CAKC,GACD,SAASC,yBACP7B,WAAoC,EACpC8B,aAAqB;IAErB,MAAMC,OAAO/B,YAAYI,YAAY;IACrC,IAAI,CAAC2B,MAAM;QACT;IACF;IAEA,KAAK,MAAM,CAACC,KAAKC,MAAM,IAAIC,OAAOC,OAAO,CAACJ,MAAO;QAC/C,yDAAyD;QACzD,IAAI,OAAOE,UAAU,YAAYA,MAAMG,UAAU,CAAC,eAAe;YAC/DL,IAAI,CAACC,IAAI,GAAGF;QACd,OAEK,IAAIE,QAAQ,aAAaA,IAAII,UAAU,CAAC,iBAAiB;YAC5DL,IAAI,CAACC,IAAI,GAAGF;QACd;IACF;IAEA,yCAAyC;IACzC,MAAMO,UAAUrC,YAAYM,eAAe;IAC3C,IAAI,CAAC+B,SAAS;QACZ;IACF;IAEA,KAAK,MAAM,CAACL,KAAKC,MAAM,IAAIC,OAAOC,OAAO,CAACE,SAAU;QAClD,IAAI,OAAOJ,UAAU,YAAYA,MAAMG,UAAU,CAAC,eAAe;YAC/DC,OAAO,CAACL,IAAI,GAAGF;QACjB,OAAO,IAAIE,QAAQ,aAAaA,IAAII,UAAU,CAAC,iBAAiB;YAC9DC,OAAO,CAACL,IAAI,GAAGF;QACjB;IACF;AACF;AAEA;;;;;CAKC,GACD,OAAO,eAAeQ,gBAAgB7C,WAAmB,EAAE8C,WAAmB;IAC5E,+CAA+C;IAC/C,MAAMtD,GAAGuD,KAAK,CAAC/C,aAAa;QAAEgD,WAAW;IAAK;IAE9C,gCAAgC;IAChC,MAAMpD,2BAA2BI;IAEjC,0DAA0D;IAC1D,uDAAuD;IACvD,MAAMF,yBAAyBE;IAE/B,sCAAsC;IACtC,MAAMqC,gBAAgB,MAAMV,wBAAwB;IAEpD,qFAAqF;IACrF,2EAA2E;IAC3E,MAAMsB,YAAY;QAAC;QAAkB;QAAa;KAAoB;IACtE,KAAK,MAAMC,YAAYD,UAAW;QAChC,IAAI;YACF,MAAMzD,GAAG2D,MAAM,CAAC1D,KAAKW,IAAI,CAACJ,aAAakD;QACzC,EAAE,OAAM;QACN,6BAA6B;QAC/B;IACF;IAEA,4DAA4D;IAC5D,iFAAiF;IACjF,MAAM/C,kBAAkBV,KAAKW,IAAI,CAACJ,aAAa;IAC/C,MAAMoD,qBAAqB,MAAM5D,GAAGc,QAAQ,CAACH,iBAAiB;IAC9D,MAAMI,cAAcC,KAAKC,KAAK,CAAC2C;IAC/B7C,YAAY8C,IAAI,GAAGP;IAEnB,oDAAoD;IACpDV,yBAAyB7B,aAAa8B;IAEtC,MAAM7C,GAAG8D,SAAS,CAACnD,iBAAiBK,KAAK+C,SAAS,CAAChD,aAAa,MAAM,KAAK,MAAM;IAEjF,yCAAyC;IACzC,0EAA0E;IAC1E,MAAMZ,gBAAgBK,aAAa;QAAC;QAAQ;QAAc;KAAa;IAEvE,6CAA6C;IAC7C,MAAMwD,qBAAqB9D,cAAc,IAAI+D,IAAI,0BAA0B,YAAYC,GAAG;IAC1F,IAAIC,gBAAgB,MAAMnE,GAAGc,QAAQ,CAACkD,oBAAoB;IAC1DG,gBAAgBA,cAAcC,OAAO,CAAC,yBAAyBd;IAC/D,MAAMtD,GAAG8D,SAAS,CAAC7D,KAAKW,IAAI,CAACJ,aAAa,cAAc2D,eAAe;AACzE;AAEA;;;;;;CAMC,GACD,OAAO,SAASE,kBAAkB7D,WAAmB;IACnDH,qBAAqBG;AACvB;AAEA;;;;;;CAMC,GACD,OAAO,eAAe8D,oBACpB9D,WAAmB,EACnBc,iBAA0C,KAAK;IAE/C,OAAO,IAAIiD,QAAQ,CAACC,SAASC;QAC3B,MAAMC,QAAQ3E,MAAM,GAAGuB,eAAe,QAAQ,CAAC,EAAE;YAC/CZ,KAAKF;YACLmE,OAAO;YACPC,OAAO;QACT;QAEA,IAAIC,SAAS;QACb,IAAIC,SAAS;QAEb,iBAAiB;QACjBJ,MAAMG,MAAM,EAAEE,GAAG,QAAQ,CAACtC;YACxBoC,UAAUpC,KAAKuC,QAAQ;QACzB;QAEA,iBAAiB;QACjBN,MAAMI,MAAM,EAAEC,GAAG,QAAQ,CAACtC;YACxBqC,UAAUrC,KAAKuC,QAAQ;QACzB;QAEAN,MAAMK,EAAE,CAAC,SAAS,CAACpD;YACjB,IAAIA,SAAS,GAAG;gBACd6C;YACF,OAAO;gBACL,gCAAgC;gBAChC,MAAMS,SAAS;oBAACJ;oBAAQC;iBAAO,CAACI,MAAM,CAACC,SAASvE,IAAI,CAAC;gBACrD,MAAMwE,eAAeH,SACjB,GAAG3D,eAAe,0BAA0B,EAAEK,KAAK,aAAa,EAAEsD,QAAQ,GAC1E,GAAG3D,eAAe,0BAA0B,EAAEK,MAAM;gBACxD8C,OAAO,IAAI7C,MAAMwD;YACnB;QACF;QAEAV,MAAMK,EAAE,CAAC,SAAS,CAACrD;YACjB+C,OAAO,IAAI7C,MAAM,CAAC,cAAc,EAAEN,eAAe,UAAU,EAAEI,MAAMG,OAAO,EAAE;QAC9E;IACF;AACF;AAEA;;;;;CAKC,GACD,OAAO,eAAewD,wBAAwB7E,WAAmB;IAC/D,MAAMG,kBAAkBV,KAAKW,IAAI,CAACJ,aAAa;IAE/C,IAAI;QACF,MAAMK,UAAU,MAAMb,GAAGc,QAAQ,CAACH,iBAAiB;QACnD,MAAMI,cAAcC,KAAKC,KAAK,CAACJ;QAE/B,gCAAgC;QAChC,MAAMW,aAAaT,YAAYI,YAAY,EAAEC,WAAWL,YAAYM,eAAe,EAAED;QACrF,MAAMkE,UAAUvE,YAAYI,YAAY,EAAEoE,QAAQxE,YAAYM,eAAe,EAAEkE;QAE/E,OAAO,CAAC,CAAE/D,CAAAA,cAAc8D,OAAM;IAChC,EAAE,OAAM;QACN,OAAO;IACT;AACF;AAEA;;;;;;;CAOC,GACD,OAAO,eAAeE,qBAAqBhF,cAAsBC,QAAQC,GAAG,EAAE;IAC5E,IAAI;QACF,yBAAyB;QACzB,MAAMV,GAAGuB,MAAM,CAACtB,KAAKW,IAAI,CAACJ,aAAa;QACvC,OAAO;IACT,EAAE,OAAM;QACN,OAAO;IACT;AACF"}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/project.ts"],"sourcesContent":["/**\n * Project detection and scaffolding utilities\n */\n\nimport spawn from 'cross-spawn'\nimport fs from 'fs/promises'\nimport path from 'path'\nimport { fileURLToPath } from 'url'\n\nimport type { ProjectInfo } from '../types/config.js'\n\nimport { ensureGitignore } from './config.js'\nimport { downloadTemplateFromGitHub } from './download-template.js'\nimport { tryInitRepoAndCommit } from './git.js'\nimport { applyLambdaModifications } from './lambda-config.js'\n\n/**\n * Detect if current directory has a Payload project\n *\n * @param projectPath - Path to check (defaults to cwd)\n * @returns Project information\n */\nexport async function detectPayloadProject(\n projectPath: string = process.cwd(),\n): Promise<ProjectInfo> {\n const packageJsonPath = path.join(projectPath, 'package.json')\n\n try {\n const content = await fs.readFile(packageJsonPath, 'utf-8')\n const packageJson = JSON.parse(content)\n\n // Check for payload in dependencies or devDependencies\n const payloadVersion = packageJson.dependencies?.payload || packageJson.devDependencies?.payload\n\n // Detect package manager\n let packageManager: 'npm' | 'pnpm' | 'yarn' = 'npm'\n try {\n await fs.access(path.join(projectPath, 'pnpm-lock.yaml'))\n packageManager = 'pnpm'\n } catch {\n try {\n await fs.access(path.join(projectPath, 'yarn.lock'))\n packageManager = 'yarn'\n } catch {\n packageManager = 'npm'\n }\n }\n\n return {\n hasPayload: !!payloadVersion,\n packageManager,\n path: projectPath,\n payloadVersion: payloadVersion || undefined,\n }\n } catch (error) {\n if ((error as NodeJS.ErrnoException).code === 'ENOENT') {\n // No package.json found\n return {\n hasPayload: false,\n path: projectPath,\n }\n }\n throw new Error(`Failed to read package.json: ${(error as Error).message}`)\n }\n}\n\n/**\n * Validate Payload version (must be 3.x)\n *\n * @param version - Version string from package.json\n * @returns True if version is valid\n */\nexport function validatePayloadVersion(version: string): boolean {\n // Extract major version (handle ^3.0.0, ~3.0.0, 3.0.0, etc.)\n const match = version.match(/(\\d+)/)\n if (!match) {\n return false\n }\n\n const majorVersion = parseInt(match[1], 10)\n return majorVersion === 3\n}\n\n/**\n * Fetch the latest version of a package from npm registry\n *\n * @param packageName - Package name to fetch version for\n * @returns Latest version string\n */\nasync function getLatestPackageVersion(packageName: string): Promise<string> {\n const response = await fetch(`https://registry.npmjs.org/-/package/${packageName}/dist-tags`)\n\n if (!response.ok) {\n throw new Error(`Failed to fetch version for ${packageName}: ${response.statusText}`)\n }\n\n const data = (await response.json()) as Record<string, unknown>\n\n if (typeof data.latest !== 'string') {\n throw new Error(`Invalid version data received for ${packageName}`)\n }\n\n return data.latest\n}\n\n/**\n * Replace workspace versions in package.json with actual versions\n *\n * @param packageJson - Package JSON object to update\n * @param latestVersion - Latest Payload version to use\n */\nfunction replaceWorkspaceVersions(\n packageJson: Record<string, unknown>,\n latestVersion: string,\n): void {\n const deps = packageJson.dependencies as Record<string, string> | undefined\n if (!deps) {\n return\n }\n\n for (const [key, value] of Object.entries(deps)) {\n // Replace workspace:* or workspace:^ with actual version\n if (typeof value === 'string' && value.startsWith('workspace:')) {\n deps[key] = latestVersion\n }\n // Ensure all payload packages use the same version\n else if (key === 'payload' || key.startsWith('@payloadcms/')) {\n deps[key] = latestVersion\n }\n }\n\n // Also handle devDependencies if present\n const devDeps = packageJson.devDependencies as Record<string, string> | undefined\n if (!devDeps) {\n return\n }\n\n for (const [key, value] of Object.entries(devDeps)) {\n if (typeof value === 'string' && value.startsWith('workspace:')) {\n devDeps[key] = latestVersion\n } else if (key === 'payload' || key.startsWith('@payloadcms/')) {\n devDeps[key] = latestVersion\n }\n }\n}\n\n/**\n * Scaffold a new Payload project from GitHub template\n *\n * @param projectPath - Path where to create the project\n * @param projectName - Name for the project\n */\nexport async function scaffoldProject(projectPath: string, projectName: string): Promise<void> {\n // Create project directory if it doesn't exist\n await fs.mkdir(projectPath, { recursive: true })\n\n // Download template from GitHub\n await downloadTemplateFromGitHub(projectPath)\n\n // Apply Lambda modifications BEFORE updating package.json\n // This ensures we don't overwrite version replacements\n await applyLambdaModifications(projectPath)\n\n // Get latest Payload version from npm\n const latestVersion = await getLatestPackageVersion('payload')\n\n // Delete any existing lock files from template (they reference workspace:* versions)\n // This ensures pnpm install creates a fresh lock file with actual versions\n const lockFiles = ['pnpm-lock.yaml', 'yarn.lock', 'package-lock.json']\n for (const lockFile of lockFiles) {\n try {\n await fs.unlink(path.join(projectPath, lockFile))\n } catch {\n // File doesn't exist, ignore\n }\n }\n\n // Update package.json: set name, replace workspace versions\n // This must come AFTER applyLambdaModifications to ensure we have final versions\n const packageJsonPath = path.join(projectPath, 'package.json')\n const packageJsonContent = await fs.readFile(packageJsonPath, 'utf-8')\n const packageJson = JSON.parse(packageJsonContent) as Record<string, unknown>\n packageJson.name = projectName\n\n // Replace workspace:* versions with actual versions\n replaceWorkspaceVersions(packageJson, latestVersion)\n\n await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\\n', 'utf-8')\n\n // Ensure .gitignore has required entries\n // Note: .env file is created by init command with FIGMA_CONTENT_SYSTEM_ID\n await ensureGitignore(projectPath, ['.env', '.env.local', 'lambda.zip'])\n\n // Replace README with Figma-specific version\n const readmeTemplatePath = fileURLToPath(new URL('../templates/README.md', import.meta.url))\n let readmeContent = await fs.readFile(readmeTemplatePath, 'utf-8')\n readmeContent = readmeContent.replace(/\\{\\{PROJECT_NAME\\}\\}/g, projectName)\n await fs.writeFile(path.join(projectPath, 'README.md'), readmeContent, 'utf-8')\n}\n\n/**\n * Initialize git repository after all setup is complete\n *\n * This should be called AFTER installDependencies so that lock files are included\n *\n * @param projectPath - Path to project directory\n */\nexport function initializeGitRepo(projectPath: string): void {\n tryInitRepoAndCommit(projectPath)\n}\n\n/**\n * Install dependencies using the detected package manager\n *\n * @param projectPath - Path to project\n * @param packageManager - Package manager to use\n * @returns Promise that resolves when installation completes\n */\nexport async function installDependencies(\n projectPath: string,\n packageManager: 'npm' | 'pnpm' | 'yarn' = 'npm',\n): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(packageManager, ['install'], {\n cwd: projectPath,\n stdio: 'pipe',\n })\n\n let stdout = ''\n let stderr = ''\n\n // Capture stdout\n child.stdout?.on('data', (data) => {\n stdout += data.toString()\n })\n\n // Capture stderr\n child.stderr?.on('data', (data) => {\n stderr += data.toString()\n })\n\n child.on('close', (code) => {\n if (code === 0) {\n resolve()\n } else {\n // Show captured output on error\n const output = [stdout, stderr].filter(Boolean).join('\\n\\n')\n const errorMessage = output\n ? `${packageManager} install failed with code ${code}\\n\\nOutput:\\n${output}`\n : `${packageManager} install failed with code ${code}`\n reject(new Error(errorMessage))\n }\n })\n\n child.on('error', (error) => {\n reject(new Error(`Failed to run ${packageManager} install: ${error.message}`))\n })\n })\n}\n\n/**\n * Check if required dependencies are installed\n *\n * @param projectPath - Path to project\n * @returns True if all required dependencies exist\n */\nexport async function hasRequiredDependencies(projectPath: string): Promise<boolean> {\n const packageJsonPath = path.join(projectPath, 'package.json')\n\n try {\n const content = await fs.readFile(packageJsonPath, 'utf-8')\n const packageJson = JSON.parse(content)\n\n // Check for Payload and Next.js\n const hasPayload = packageJson.dependencies?.payload || packageJson.devDependencies?.payload\n const hasNext = packageJson.dependencies?.next || packageJson.devDependencies?.next\n\n return !!(hasPayload && hasNext)\n } catch {\n return false\n }\n}\n\n/**\n * Check if current directory is a project directory\n *\n * A project directory has package.json\n *\n * @param projectPath - Path to check (defaults to cwd)\n * @returns True if in project directory\n */\nexport async function isInProjectDirectory(projectPath: string = process.cwd()): Promise<boolean> {\n try {\n // Check for package.json\n await fs.access(path.join(projectPath, 'package.json'))\n return true\n } catch {\n return false\n }\n}\n"],"names":["spawn","fs","path","fileURLToPath","ensureGitignore","downloadTemplateFromGitHub","tryInitRepoAndCommit","applyLambdaModifications","detectPayloadProject","projectPath","process","cwd","packageJsonPath","join","content","readFile","packageJson","JSON","parse","payloadVersion","dependencies","payload","devDependencies","packageManager","access","hasPayload","undefined","error","code","Error","message","validatePayloadVersion","version","match","majorVersion","parseInt","getLatestPackageVersion","packageName","response","fetch","ok","statusText","data","json","latest","replaceWorkspaceVersions","latestVersion","deps","key","value","Object","entries","startsWith","devDeps","scaffoldProject","projectName","mkdir","recursive","lockFiles","lockFile","unlink","packageJsonContent","name","writeFile","stringify","readmeTemplatePath","URL","url","readmeContent","replace","initializeGitRepo","installDependencies","Promise","resolve","reject","child","stdio","stdout","stderr","on","toString","output","filter","Boolean","errorMessage","hasRequiredDependencies","hasNext","next","isInProjectDirectory"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-validator.d.ts","sourceRoot":"","sources":["../../src/utils/typescript-validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"typescript-validator.d.ts","sourceRoot":"","sources":["../../src/utils/typescript-validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,qBAAqB,CAAC,CAgChC"}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import spawn from 'cross-spawn';
|
|
2
2
|
/**
|
|
3
3
|
* Run TypeScript type checking (tsc --noEmit)
|
|
4
4
|
* Skips silently if TypeScript not available
|
|
5
5
|
*/ export async function runTypeScriptCheck(projectPath, packageManager) {
|
|
6
6
|
return new Promise((resolve)=>{
|
|
7
7
|
try {
|
|
8
|
-
const child = spawn(
|
|
8
|
+
const child = spawn(packageManager, [
|
|
9
|
+
'exec',
|
|
10
|
+
'tsc',
|
|
11
|
+
'--noEmit'
|
|
12
|
+
], {
|
|
9
13
|
cwd: projectPath,
|
|
10
|
-
shell: true,
|
|
11
14
|
stdio: 'pipe'
|
|
12
15
|
});
|
|
13
16
|
let output = '';
|
|
@@ -47,7 +50,7 @@ import { spawn } from 'child_process';
|
|
|
47
50
|
/**
|
|
48
51
|
* Parse TypeScript error output
|
|
49
52
|
*/ function parseTypeScriptErrors(output) {
|
|
50
|
-
return output.split(
|
|
53
|
+
return output.split(/\r?\n/).filter((line)=>line.includes('error TS')).map((line)=>line.trim());
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
//# sourceMappingURL=typescript-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/typescript-validator.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["../../src/utils/typescript-validator.ts"],"sourcesContent":["import spawn from 'cross-spawn'\n\nimport type { PackageManager } from './package-manager.js'\n\nexport type TypeScriptCheckResult = {\n errors: string[]\n success: boolean\n}\n\n/**\n * Run TypeScript type checking (tsc --noEmit)\n * Skips silently if TypeScript not available\n */\nexport async function runTypeScriptCheck(\n projectPath: string,\n packageManager: PackageManager,\n): Promise<TypeScriptCheckResult> {\n return new Promise((resolve) => {\n try {\n const child = spawn(packageManager, ['exec', 'tsc', '--noEmit'], {\n cwd: projectPath,\n stdio: 'pipe',\n })\n\n let output = ''\n\n child.stdout?.on('data', (data) => {\n output += data.toString()\n })\n\n child.on('close', (code) => {\n if (code === 0) {\n resolve({ errors: [], success: true })\n } else {\n const errors = parseTypeScriptErrors(output)\n resolve({ errors, success: false })\n }\n })\n\n child.on('error', () => {\n // tsc not available - skip validation\n resolve({ errors: [], success: true })\n })\n } catch {\n // Skip validation if error\n resolve({ errors: [], success: true })\n }\n })\n}\n\n/**\n * Parse TypeScript error output\n */\nfunction parseTypeScriptErrors(output: string): string[] {\n return output\n .split(/\\r?\\n/)\n .filter((line) => line.includes('error TS'))\n .map((line) => line.trim())\n}\n"],"names":["spawn","runTypeScriptCheck","projectPath","packageManager","Promise","resolve","child","cwd","stdio","output","stdout","on","data","toString","code","errors","success","parseTypeScriptErrors","split","filter","line","includes","map","trim"],"mappings":"AAAA,OAAOA,WAAW,cAAa;AAS/B;;;CAGC,GACD,OAAO,eAAeC,mBACpBC,WAAmB,EACnBC,cAA8B;IAE9B,OAAO,IAAIC,QAAQ,CAACC;QAClB,IAAI;YACF,MAAMC,QAAQN,MAAMG,gBAAgB;gBAAC;gBAAQ;gBAAO;aAAW,EAAE;gBAC/DI,KAAKL;gBACLM,OAAO;YACT;YAEA,IAAIC,SAAS;YAEbH,MAAMI,MAAM,EAAEC,GAAG,QAAQ,CAACC;gBACxBH,UAAUG,KAAKC,QAAQ;YACzB;YAEAP,MAAMK,EAAE,CAAC,SAAS,CAACG;gBACjB,IAAIA,SAAS,GAAG;oBACdT,QAAQ;wBAAEU,QAAQ,EAAE;wBAAEC,SAAS;oBAAK;gBACtC,OAAO;oBACL,MAAMD,SAASE,sBAAsBR;oBACrCJ,QAAQ;wBAAEU;wBAAQC,SAAS;oBAAM;gBACnC;YACF;YAEAV,MAAMK,EAAE,CAAC,SAAS;gBAChB,sCAAsC;gBACtCN,QAAQ;oBAAEU,QAAQ,EAAE;oBAAEC,SAAS;gBAAK;YACtC;QACF,EAAE,OAAM;YACN,2BAA2B;YAC3BX,QAAQ;gBAAEU,QAAQ,EAAE;gBAAEC,SAAS;YAAK;QACtC;IACF;AACF;AAEA;;CAEC,GACD,SAASC,sBAAsBR,MAAc;IAC3C,OAAOA,OACJS,KAAK,CAAC,SACNC,MAAM,CAAC,CAACC,OAASA,KAAKC,QAAQ,CAAC,aAC/BC,GAAG,CAAC,CAACF,OAASA,KAAKG,IAAI;AAC5B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/figma",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.35",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -29,8 +29,10 @@
|
|
|
29
29
|
"@clack/prompts": "^0.11.0",
|
|
30
30
|
"@figma/rest-api-spec": "^0.34.0",
|
|
31
31
|
"@sindresorhus/slugify": "^3.0.0",
|
|
32
|
+
"archiver": "7.0.1",
|
|
32
33
|
"arg": "^5.0.2",
|
|
33
34
|
"conf": "^13.0.1",
|
|
35
|
+
"cross-spawn": "7.0.6",
|
|
34
36
|
"esprima-next": "^6.0.2",
|
|
35
37
|
"figures": "^6.1.0",
|
|
36
38
|
"jose": "6.0.12",
|
|
@@ -44,6 +46,8 @@
|
|
|
44
46
|
"uuid": "^10.0.0"
|
|
45
47
|
},
|
|
46
48
|
"devDependencies": {
|
|
49
|
+
"@types/archiver": "7.0.0",
|
|
50
|
+
"@types/cross-spawn": "6.0.6",
|
|
47
51
|
"@types/node": "22.12.0",
|
|
48
52
|
"openapi-typescript": "^7.10.1",
|
|
49
53
|
"tsx": "4.20.6",
|