@strapi/generators 5.37.1 → 5.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/index.js.map +1 -1
  2. package/dist/index.mjs.map +1 -1
  3. package/dist/plopfile.js.map +1 -1
  4. package/dist/plopfile.mjs.map +1 -1
  5. package/dist/plops/api.js.map +1 -1
  6. package/dist/plops/api.mjs.map +1 -1
  7. package/dist/plops/content-type.js.map +1 -1
  8. package/dist/plops/content-type.mjs.map +1 -1
  9. package/dist/plops/controller.js.map +1 -1
  10. package/dist/plops/controller.mjs.map +1 -1
  11. package/dist/plops/middleware.js.map +1 -1
  12. package/dist/plops/middleware.mjs.map +1 -1
  13. package/dist/plops/migration.js.map +1 -1
  14. package/dist/plops/migration.mjs.map +1 -1
  15. package/dist/plops/policy.js.map +1 -1
  16. package/dist/plops/policy.mjs.map +1 -1
  17. package/dist/plops/prompts/bootstrap-api-prompts.js.map +1 -1
  18. package/dist/plops/prompts/bootstrap-api-prompts.mjs.map +1 -1
  19. package/dist/plops/prompts/ct-names-prompts.js.map +1 -1
  20. package/dist/plops/prompts/ct-names-prompts.mjs.map +1 -1
  21. package/dist/plops/prompts/get-attributes-prompts.js.map +1 -1
  22. package/dist/plops/prompts/get-attributes-prompts.mjs.map +1 -1
  23. package/dist/plops/prompts/get-destination-prompts.js.map +1 -1
  24. package/dist/plops/prompts/get-destination-prompts.mjs.map +1 -1
  25. package/dist/plops/prompts/kind-prompts.js.map +1 -1
  26. package/dist/plops/prompts/kind-prompts.mjs.map +1 -1
  27. package/dist/plops/service.js.map +1 -1
  28. package/dist/plops/service.mjs.map +1 -1
  29. package/dist/plops/utils/extend-plugin-index-files.js +6 -6
  30. package/dist/plops/utils/extend-plugin-index-files.js.map +1 -1
  31. package/dist/plops/utils/extend-plugin-index-files.mjs +6 -6
  32. package/dist/plops/utils/extend-plugin-index-files.mjs.map +1 -1
  33. package/dist/plops/utils/get-file-path.js.map +1 -1
  34. package/dist/plops/utils/get-file-path.mjs.map +1 -1
  35. package/dist/plops/utils/get-formatted-date.js.map +1 -1
  36. package/dist/plops/utils/get-formatted-date.mjs.map +1 -1
  37. package/dist/plops/utils/validate-attribute-input.js.map +1 -1
  38. package/dist/plops/utils/validate-attribute-input.mjs.map +1 -1
  39. package/dist/plops/utils/validate-file-name-input.js.map +1 -1
  40. package/dist/plops/utils/validate-file-name-input.mjs.map +1 -1
  41. package/dist/plops/utils/validate-input.js.map +1 -1
  42. package/dist/plops/utils/validate-input.mjs.map +1 -1
  43. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"extend-plugin-index-files.js","sources":["../../../src/plops/utils/extend-plugin-index-files.ts"],"sourcesContent":["import * as jscodeshift from 'jscodeshift';\nimport camelCase from 'lodash/camelCase';\n\nconst j = jscodeshift.withParser('tsx');\n\ntype AppendType = 'content-type' | 'index' | 'routes';\n\ninterface AppendConfig {\n type: AppendType;\n singularName: string;\n}\n\n// Helper to check if a string is a valid JavaScript identifier\nconst isValidIdentifier = (str: string): boolean => {\n return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(str);\n};\n\n// Helper to create the appropriate property based on type\nconst createProperty = (config: AppendConfig) => {\n const { type, singularName } = config;\n const camelCaseName = camelCase(singularName);\n const varName = type === 'content-type' ? `${camelCaseName}Schema` : camelCaseName;\n\n // Use string literal for key only if singularName is not a valid identifier\n const keyNode = isValidIdentifier(singularName)\n ? j.identifier(singularName)\n : j.literal(singularName);\n\n switch (type) {\n case 'content-type':\n return j.objectProperty(\n keyNode,\n j.objectExpression([j.objectProperty(j.identifier('schema'), j.identifier(varName))])\n );\n case 'index':\n return j.objectProperty(keyNode, j.identifier(varName));\n case 'routes':\n return j.spreadElement(j.memberExpression(j.identifier(varName), j.identifier('routes')));\n default:\n throw new Error(`Unknown append type: ${type}`);\n }\n};\n\n// Helper to check if property already exists\nconst hasExistingProperty = (obj: any, config: AppendConfig): boolean => {\n const { type, singularName } = config;\n if (!obj?.properties && !j.ArrayExpression.check(obj)) return false;\n\n const elements = j.ArrayExpression.check(obj) ? obj.elements : obj.properties;\n if (!elements) return false;\n\n if (type === 'routes') {\n // Check for spread elements ...camelCaseName.routes\n const camelCaseName = camelCase(singularName);\n return elements.some(\n (element: any) =>\n j.SpreadElement.check(element) &&\n j.MemberExpression.check(element.argument) &&\n j.Identifier.check(element.argument.object) &&\n element.argument.object.name === camelCaseName &&\n j.Identifier.check(element.argument.property) &&\n element.argument.property.name === 'routes'\n );\n }\n\n // For content-type and index, check for object property (both identifier and literal keys)\n return elements.some(\n (prop: any) =>\n j.ObjectProperty.check(prop) &&\n ((j.Identifier.check(prop.key) && prop.key.name === singularName) ||\n (j.Literal.check(prop.key) && prop.key.value === singularName))\n );\n};\n\n// Helper to add property to object if it doesn't exist\nconst addPropertyToObject = (obj: any, config: AppendConfig) => {\n if (!obj || hasExistingProperty(obj, config)) return;\n\n if (config.type === 'routes' && j.ArrayExpression.check(obj)) {\n obj.elements.push(createRoutesElement(config));\n } else if (obj.properties?.length >= 0) {\n obj.properties.push(createProperty(config));\n }\n};\n\n// Helper to find and add to routes array\nconst handleRoutesArray = (obj: any, config: AppendConfig) => {\n if (!obj?.properties) return false;\n\n const routesProp = obj.properties.find(\n (prop: any) =>\n j.ObjectProperty.check(prop) &&\n ((j.Identifier.check(prop.key) && prop.key.name === 'routes') ||\n (j.Literal.check(prop.key) && prop.key.value === 'routes')) &&\n j.ArrayExpression.check(prop.value)\n );\n\n if (routesProp?.value) {\n const routesArray = routesProp.value;\n if (!hasExistingProperty(routesArray, config)) {\n routesArray.elements = routesArray.elements || [];\n routesArray.elements.push(createRoutesElement(config));\n }\n return true;\n }\n\n return false;\n};\n\n// Helper to create routes array element (always returns SpreadElement for routes)\nconst createRoutesElement = (config: AppendConfig) => {\n const { singularName } = config;\n const camelCaseName = camelCase(singularName);\n return j.spreadElement(j.memberExpression(j.identifier(camelCaseName), j.identifier('routes')));\n};\n\n// Helper to create new export for routes\nconst createRoutesExport = (config: AppendConfig) => {\n return j.arrowFunctionExpression(\n [],\n j.objectExpression([\n j.objectProperty(j.identifier('type'), j.literal('content-api')),\n j.objectProperty(j.identifier('routes'), j.arrayExpression([createRoutesElement(config)])),\n ])\n );\n};\n\n// Unified append function for all types\nexport const appendToFile = (template: string, config: AppendConfig): string => {\n if (!config?.singularName || !config?.type) {\n throw new Error('Invalid config: singularName and type are required');\n }\n\n const normalizedTemplate = template?.trim() || '';\n const root = normalizedTemplate ? j(normalizedTemplate) : j(j.program([]));\n const { type, singularName } = config;\n const isEsm = detectModuleFormat(normalizedTemplate) === 'esm';\n\n const camelCaseName = camelCase(singularName);\n const varName = type === 'content-type' ? `${camelCaseName}Schema` : camelCaseName;\n const source = type === 'content-type' ? `./${singularName}/schema.json` : `./${singularName}`;\n\n addImportIfMissing(root, varName, source, isEsm);\n\n if (isEsm) {\n handleEsmExport(root, config, type);\n } else {\n handleCjsExport(root, config, type);\n }\n\n return root.toSource({ quote: 'single' });\n};\n\n// Helper to detect module format\nconst detectModuleFormat = (template: string): 'esm' | 'cjs' => {\n const hasImport = /^import\\s/.test(template) || template.includes('import ');\n const hasExportDefault = template.includes('export default');\n const hasRequire = template.includes('require(');\n const hasModuleExports = template.includes('module.exports');\n\n if (hasImport || hasExportDefault) return 'esm';\n if (hasRequire || hasModuleExports) return 'cjs';\n return 'esm'; // Default to ESM\n};\n\n// Helper to insert statement at appropriate location\nconst insertStatement = (\n root: jscodeshift.Collection<any>,\n statement: any,\n preferredLocation?: jscodeshift.Collection<any>\n) => {\n if (preferredLocation && preferredLocation.length > 0) {\n preferredLocation.at(-1).insertAfter(statement);\n } else {\n const firstStatement = root.find(j.Statement).at(0);\n if (firstStatement.length > 0) {\n firstStatement.insertBefore(statement);\n } else {\n handleEmptyFile(root, statement);\n }\n }\n};\n\n// Helper to add import/require if missing\nconst addImportIfMissing = (\n root: jscodeshift.Collection<any>,\n varName: string,\n source: string,\n isEsm: boolean\n) => {\n if (isEsm) {\n if (root.find(j.ImportDeclaration, { source: { value: source } }).length === 0) {\n const importDecl = j.importDeclaration(\n [j.importDefaultSpecifier(j.identifier(varName))],\n j.literal(source)\n );\n insertStatement(root, importDecl, root.find(j.ImportDeclaration));\n }\n } else if (\n root.find(j.VariableDeclarator, {\n id: { name: varName },\n init: { type: 'CallExpression', callee: { name: 'require' }, arguments: [{ value: source }] },\n }).length === 0\n ) {\n const requireStmt = j.variableDeclaration('const', [\n j.variableDeclarator(\n j.identifier(varName),\n j.callExpression(j.identifier('require'), [j.literal(source)])\n ),\n ]);\n\n const requires = root\n .find(j.VariableDeclaration)\n .filter((path) =>\n path.value.declarations.some(\n (decl: any) => j.CallExpression.check(decl.init) && decl.init.callee?.name === 'require'\n )\n );\n\n const useStrict = root\n .find(j.ExpressionStatement)\n .filter(\n (path: any) =>\n j.Literal.check(path.value.expression) &&\n /use strict/.test(String(path.value.expression.value))\n );\n\n insertStatement(root, requireStmt, requires.length > 0 ? requires : useStrict);\n }\n};\n\n// Helper to safely handle empty files\nconst handleEmptyFile = (root: jscodeshift.Collection<any>, firstStatement: any) => {\n try {\n // Check if we have any paths in the collection\n const paths = root.paths();\n if (paths.length === 0) {\n // Completely empty collection - create new program\n const newProgram = j.program([firstStatement]);\n // Replace the entire root with new program\n return root.replaceWith(newProgram);\n }\n\n // Get the first path (should be the program)\n const rootPath = paths[0];\n if (!rootPath || !rootPath.value) {\n // Invalid root path - create new program\n const newProgram = j.program([firstStatement]);\n return root.replaceWith(newProgram);\n }\n\n // Check if it's a valid program node\n if (j.Program.check(rootPath.value)) {\n // Ensure body exists and add statement\n if (!rootPath.value.body) {\n rootPath.value.body = [];\n }\n rootPath.value.body.push(firstStatement);\n } else {\n // Not a program node - replace with new program\n const newProgram = j.program([firstStatement]);\n rootPath.replace(newProgram);\n }\n } catch (error: any) {\n // Ultimate fallback - create a minimal working file\n console.warn('Failed to handle empty file, creating new program:', error.message);\n const newProgram = j.program([firstStatement]);\n try {\n root.replaceWith(newProgram);\n } catch (replaceError) {\n // Last resort - throw descriptive error\n throw new Error(\n `Unable to add statement to empty file: ${error.message}. Root collection may be invalid.`\n );\n }\n }\n};\n\n// Helper to find the exported object regardless of export pattern\nconst findExportedObject = (root: jscodeshift.Collection<any>, exportedValue: any): any => {\n // Case 1: Direct object export\n if (j.ObjectExpression.check(exportedValue)) {\n return exportedValue;\n }\n\n // Case 2: Function that returns an object\n if (\n j.FunctionExpression.check(exportedValue) ||\n j.ArrowFunctionExpression.check(exportedValue) ||\n j.FunctionDeclaration.check(exportedValue)\n ) {\n const body = exportedValue.body;\n // Arrow function with object expression body: () => ({...})\n if (j.ObjectExpression.check(body)) {\n return body;\n }\n // Function with return statement in block\n if (j.BlockStatement.check(body)) {\n for (const stmt of body.body) {\n if (j.ReturnStatement.check(stmt) && j.ObjectExpression.check(stmt.argument)) {\n return stmt.argument;\n }\n }\n }\n }\n\n // Case 3: Identifier reference to a variable\n if (j.Identifier.check(exportedValue)) {\n const varName = exportedValue.name;\n\n // Find the variable declaration\n const varDeclaration = root.find(j.VariableDeclarator, {\n id: { name: varName },\n });\n\n if (varDeclaration.length > 0) {\n const init = varDeclaration.get().value.init;\n\n // If it's an object, return it\n if (j.ObjectExpression.check(init)) {\n return init;\n }\n\n // If it's a function, recursively check its return value\n if (j.FunctionExpression.check(init) || j.ArrowFunctionExpression.check(init)) {\n return findExportedObject(root, init);\n }\n }\n }\n\n return null;\n};\n\n// Helper to handle object export (common logic for ESM and CJS)\nconst handleObjectExport = (\n obj: any,\n config: AppendConfig,\n type: AppendType,\n setExport: (newExport: any) => void\n) => {\n if (type === 'routes') {\n if (!handleRoutesArray(obj, config)) {\n setExport(createRoutesExport(config));\n }\n } else {\n addPropertyToObject(obj, config);\n }\n};\n\n// Handle ESM export default\nconst handleEsmExport = (\n root: jscodeshift.Collection<any>,\n config: AppendConfig,\n type: AppendType\n) => {\n const exports = root.find(j.ExportDefaultDeclaration);\n\n if (exports.length === 0) {\n const newExport =\n type === 'routes' ? createRoutesExport(config) : j.objectExpression([createProperty(config)]);\n insertStatement(root, j.exportDefaultDeclaration(newExport), root.find(j.Statement));\n } else {\n exports.forEach((path: any) => {\n const decl = path.value.declaration;\n\n // Find the actual object being exported\n const exportedObject = findExportedObject(root, decl);\n\n if (exportedObject) {\n handleObjectExport(exportedObject, config, type, (newExport) => {\n path.value.declaration = newExport;\n });\n } else {\n // Fallback: replace the entire export\n path.value.declaration =\n type === 'routes'\n ? createRoutesExport(config)\n : j.objectExpression([createProperty(config)]);\n }\n });\n }\n};\n\n// Handle CJS module.exports\nconst handleCjsExport = (\n root: jscodeshift.Collection<any>,\n config: AppendConfig,\n type: AppendType\n) => {\n const exports = root.find(j.AssignmentExpression, {\n left: { type: 'MemberExpression', object: { name: 'module' }, property: { name: 'exports' } },\n });\n\n if (exports.length === 0) {\n const newExport =\n type === 'routes' ? createRoutesExport(config) : j.objectExpression([createProperty(config)]);\n const moduleExportStmt = j.expressionStatement(\n j.assignmentExpression(\n '=',\n j.memberExpression(j.identifier('module'), j.identifier('exports')),\n newExport\n )\n );\n insertStatement(root, moduleExportStmt, root.find(j.Statement));\n } else {\n exports.forEach((path: any) => {\n const right = path.value.right;\n\n // Find the actual object being exported\n const exportedObject = findExportedObject(root, right);\n\n if (exportedObject) {\n handleObjectExport(exportedObject, config, type, (newExport) => {\n path.value.right = newExport;\n });\n } else {\n // Fallback: replace the entire export\n path.value.right =\n type === 'routes'\n ? createRoutesExport(config)\n : j.objectExpression([createProperty(config)]);\n }\n });\n }\n};\n"],"names":["j","jscodeshift","withParser","isValidIdentifier","str","test","createProperty","config","type","singularName","camelCaseName","camelCase","varName","keyNode","identifier","literal","objectProperty","objectExpression","spreadElement","memberExpression","Error","hasExistingProperty","obj","properties","ArrayExpression","check","elements","some","element","SpreadElement","MemberExpression","argument","Identifier","object","name","property","prop","ObjectProperty","key","Literal","value","addPropertyToObject","push","createRoutesElement","length","handleRoutesArray","routesProp","find","routesArray","createRoutesExport","arrowFunctionExpression","arrayExpression","appendToFile","template","normalizedTemplate","trim","root","program","isEsm","detectModuleFormat","source","addImportIfMissing","handleEsmExport","handleCjsExport","toSource","quote","hasImport","includes","hasExportDefault","hasRequire","hasModuleExports","insertStatement","statement","preferredLocation","at","insertAfter","firstStatement","Statement","insertBefore","handleEmptyFile","ImportDeclaration","importDecl","importDeclaration","importDefaultSpecifier","VariableDeclarator","id","init","callee","arguments","requireStmt","variableDeclaration","variableDeclarator","callExpression","requires","VariableDeclaration","filter","path","declarations","decl","CallExpression","useStrict","ExpressionStatement","expression","String","paths","newProgram","replaceWith","rootPath","Program","body","replace","error","console","warn","message","replaceError","findExportedObject","exportedValue","ObjectExpression","FunctionExpression","ArrowFunctionExpression","FunctionDeclaration","BlockStatement","stmt","ReturnStatement","varDeclaration","get","handleObjectExport","setExport","exports","ExportDefaultDeclaration","newExport","exportDefaultDeclaration","forEach","declaration","exportedObject","AssignmentExpression","left","moduleExportStmt","expressionStatement","assignmentExpression","right"],"mappings":"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"}
1
+ {"version":3,"file":"extend-plugin-index-files.js","sources":["../../../src/plops/utils/extend-plugin-index-files.ts"],"sourcesContent":["import * as jscodeshift from 'jscodeshift';\nimport camelCase from 'lodash/camelCase';\n\nconst j = jscodeshift.withParser('tsx');\n\ntype AppendType = 'content-type' | 'index' | 'routes';\n\ninterface AppendConfig {\n type: AppendType;\n singularName: string;\n}\n\n// Helper to check if a string is a valid JavaScript identifier\nconst isValidIdentifier = (str: string): boolean => {\n return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(str);\n};\n\n// Helper to create the appropriate property based on type\nconst createProperty = (config: AppendConfig) => {\n const { type, singularName } = config;\n const camelCaseName = camelCase(singularName);\n const varName = type === 'content-type' ? `${camelCaseName}Schema` : camelCaseName;\n\n // Use string literal for key only if singularName is not a valid identifier\n const keyNode = isValidIdentifier(singularName)\n ? j.identifier(singularName)\n : j.literal(singularName);\n\n switch (type) {\n case 'content-type':\n return j.objectProperty(\n keyNode,\n j.objectExpression([j.objectProperty(j.identifier('schema'), j.identifier(varName))])\n );\n case 'index':\n return j.objectProperty(keyNode, j.identifier(varName));\n case 'routes':\n return j.spreadElement(j.memberExpression(j.identifier(varName), j.identifier('routes')));\n default:\n throw new Error(`Unknown append type: ${type}`);\n }\n};\n\n// Helper to check if property already exists\nconst hasExistingProperty = (obj: any, config: AppendConfig): boolean => {\n const { type, singularName } = config;\n if (!obj?.properties && !j.ArrayExpression.check(obj)) return false;\n\n const elements = j.ArrayExpression.check(obj) ? obj.elements : obj.properties;\n if (!elements) return false;\n\n if (type === 'routes') {\n // Check for spread elements ...camelCaseName.routes\n const camelCaseName = camelCase(singularName);\n return elements.some(\n (element: any) =>\n j.SpreadElement.check(element) &&\n j.MemberExpression.check(element.argument) &&\n j.Identifier.check(element.argument.object) &&\n element.argument.object.name === camelCaseName &&\n j.Identifier.check(element.argument.property) &&\n element.argument.property.name === 'routes'\n );\n }\n\n // For content-type and index, check for object property (both identifier and literal keys)\n return elements.some(\n (prop: any) =>\n j.ObjectProperty.check(prop) &&\n ((j.Identifier.check(prop.key) && prop.key.name === singularName) ||\n (j.Literal.check(prop.key) && prop.key.value === singularName))\n );\n};\n\n// Helper to add property to object if it doesn't exist\nconst addPropertyToObject = (obj: any, config: AppendConfig) => {\n if (!obj || hasExistingProperty(obj, config)) return;\n\n if (config.type === 'routes' && j.ArrayExpression.check(obj)) {\n obj.elements.push(createRoutesElement(config));\n } else if (obj.properties?.length >= 0) {\n obj.properties.push(createProperty(config));\n }\n};\n\n// Helper to find and add to routes array\nconst handleRoutesArray = (obj: any, config: AppendConfig) => {\n if (!obj?.properties) return false;\n\n const routesProp = obj.properties.find(\n (prop: any) =>\n j.ObjectProperty.check(prop) &&\n ((j.Identifier.check(prop.key) && prop.key.name === 'routes') ||\n (j.Literal.check(prop.key) && prop.key.value === 'routes')) &&\n j.ArrayExpression.check(prop.value)\n );\n\n if (routesProp?.value) {\n const routesArray = routesProp.value;\n if (!hasExistingProperty(routesArray, config)) {\n routesArray.elements = routesArray.elements || [];\n routesArray.elements.push(createRoutesElement(config));\n }\n return true;\n }\n\n return false;\n};\n\n// Helper to create routes array element (always returns SpreadElement for routes)\nconst createRoutesElement = (config: AppendConfig) => {\n const { singularName } = config;\n const camelCaseName = camelCase(singularName);\n return j.spreadElement(j.memberExpression(j.identifier(camelCaseName), j.identifier('routes')));\n};\n\n// Helper to create new export for routes\nconst createRoutesExport = (config: AppendConfig) => {\n return j.arrowFunctionExpression(\n [],\n j.objectExpression([\n j.objectProperty(j.identifier('type'), j.literal('content-api')),\n j.objectProperty(j.identifier('routes'), j.arrayExpression([createRoutesElement(config)])),\n ])\n );\n};\n\n// Unified append function for all types\nexport const appendToFile = (template: string, config: AppendConfig): string => {\n if (!config?.singularName || !config?.type) {\n throw new Error('Invalid config: singularName and type are required');\n }\n\n const normalizedTemplate = template?.trim() || '';\n const root = normalizedTemplate ? j(normalizedTemplate) : j(j.program([]));\n const { type, singularName } = config;\n const isEsm = detectModuleFormat(normalizedTemplate) === 'esm';\n\n const camelCaseName = camelCase(singularName);\n const varName = type === 'content-type' ? `${camelCaseName}Schema` : camelCaseName;\n const source = type === 'content-type' ? `./${singularName}/schema.json` : `./${singularName}`;\n\n addImportIfMissing(root, varName, source, isEsm);\n\n if (isEsm) {\n handleEsmExport(root, config, type);\n } else {\n handleCjsExport(root, config, type);\n }\n\n return root.toSource({ quote: 'single' });\n};\n\n// Helper to detect module format\nconst detectModuleFormat = (template: string): 'esm' | 'cjs' => {\n const hasImport = /^import\\s/.test(template) || template.includes('import ');\n const hasExportDefault = template.includes('export default');\n const hasRequire = template.includes('require(');\n const hasModuleExports = template.includes('module.exports');\n\n if (hasImport || hasExportDefault) return 'esm';\n if (hasRequire || hasModuleExports) return 'cjs';\n return 'esm'; // Default to ESM\n};\n\n// Helper to insert statement at appropriate location\nconst insertStatement = (\n root: jscodeshift.Collection<any>,\n statement: any,\n preferredLocation?: jscodeshift.Collection<any>\n) => {\n if (preferredLocation && preferredLocation.length > 0) {\n preferredLocation.at(-1).insertAfter(statement);\n } else {\n const firstStatement = root.find(j.Statement).at(0);\n if (firstStatement.length > 0) {\n firstStatement.insertBefore(statement);\n } else {\n handleEmptyFile(root, statement);\n }\n }\n};\n\n// Helper to add import/require if missing\nconst addImportIfMissing = (\n root: jscodeshift.Collection<any>,\n varName: string,\n source: string,\n isEsm: boolean\n) => {\n if (isEsm) {\n if (root.find(j.ImportDeclaration, { source: { value: source } }).length === 0) {\n const importDecl = j.importDeclaration(\n [j.importDefaultSpecifier(j.identifier(varName))],\n j.literal(source)\n );\n insertStatement(root, importDecl, root.find(j.ImportDeclaration));\n }\n } else if (\n root.find(j.VariableDeclarator, {\n id: { name: varName },\n init: { type: 'CallExpression', callee: { name: 'require' }, arguments: [{ value: source }] },\n }).length === 0\n ) {\n const requireStmt = j.variableDeclaration('const', [\n j.variableDeclarator(\n j.identifier(varName),\n j.callExpression(j.identifier('require'), [j.literal(source)])\n ),\n ]);\n\n const requires = root\n .find(j.VariableDeclaration)\n .filter((path) =>\n path.value.declarations.some(\n (decl: any) => j.CallExpression.check(decl.init) && decl.init.callee?.name === 'require'\n )\n );\n\n const useStrict = root\n .find(j.ExpressionStatement)\n .filter(\n (path: any) =>\n j.Literal.check(path.value.expression) &&\n /use strict/.test(String(path.value.expression.value))\n );\n\n insertStatement(root, requireStmt, requires.length > 0 ? requires : useStrict);\n }\n};\n\n// Helper to safely handle empty files\nconst handleEmptyFile = (root: jscodeshift.Collection<any>, firstStatement: any) => {\n try {\n // Check if we have any paths in the collection\n const paths = root.paths();\n if (paths.length === 0) {\n // Completely empty collection - create new program\n const newProgram = j.program([firstStatement]);\n // Replace the entire root with new program\n return root.replaceWith(newProgram);\n }\n\n // Get the first path (should be the program)\n const rootPath = paths[0];\n if (!rootPath || !rootPath.value) {\n // Invalid root path - create new program\n const newProgram = j.program([firstStatement]);\n return root.replaceWith(newProgram);\n }\n\n // Check if it's a valid program node\n if (j.Program.check(rootPath.value)) {\n // Ensure body exists and add statement\n if (!rootPath.value.body) {\n rootPath.value.body = [];\n }\n rootPath.value.body.push(firstStatement);\n } else {\n // Not a program node - replace with new program\n const newProgram = j.program([firstStatement]);\n rootPath.replace(newProgram);\n }\n } catch (error: any) {\n // Ultimate fallback - create a minimal working file\n console.warn('Failed to handle empty file, creating new program:', error.message);\n const newProgram = j.program([firstStatement]);\n try {\n root.replaceWith(newProgram);\n } catch (replaceError) {\n // Last resort - throw descriptive error\n throw new Error(\n `Unable to add statement to empty file: ${error.message}. Root collection may be invalid.`\n );\n }\n }\n};\n\n// Helper to find the exported object regardless of export pattern\nconst findExportedObject = (root: jscodeshift.Collection<any>, exportedValue: any): any => {\n // Case 1: Direct object export\n if (j.ObjectExpression.check(exportedValue)) {\n return exportedValue;\n }\n\n // Case 2: Function that returns an object\n if (\n j.FunctionExpression.check(exportedValue) ||\n j.ArrowFunctionExpression.check(exportedValue) ||\n j.FunctionDeclaration.check(exportedValue)\n ) {\n const body = exportedValue.body;\n // Arrow function with object expression body: () => ({...})\n if (j.ObjectExpression.check(body)) {\n return body;\n }\n // Function with return statement in block\n if (j.BlockStatement.check(body)) {\n for (const stmt of body.body) {\n if (j.ReturnStatement.check(stmt) && j.ObjectExpression.check(stmt.argument)) {\n return stmt.argument;\n }\n }\n }\n }\n\n // Case 3: Identifier reference to a variable\n if (j.Identifier.check(exportedValue)) {\n const varName = exportedValue.name;\n\n // Find the variable declaration\n const varDeclaration = root.find(j.VariableDeclarator, {\n id: { name: varName },\n });\n\n if (varDeclaration.length > 0) {\n const init = varDeclaration.get().value.init;\n\n // If it's an object, return it\n if (j.ObjectExpression.check(init)) {\n return init;\n }\n\n // If it's a function, recursively check its return value\n if (j.FunctionExpression.check(init) || j.ArrowFunctionExpression.check(init)) {\n return findExportedObject(root, init);\n }\n }\n }\n\n return null;\n};\n\n// Helper to handle object export (common logic for ESM and CJS)\nconst handleObjectExport = (\n obj: any,\n config: AppendConfig,\n type: AppendType,\n setExport: (newExport: any) => void\n) => {\n if (type === 'routes') {\n if (!handleRoutesArray(obj, config)) {\n setExport(createRoutesExport(config));\n }\n } else {\n addPropertyToObject(obj, config);\n }\n};\n\n// Handle ESM export default\nconst handleEsmExport = (\n root: jscodeshift.Collection<any>,\n config: AppendConfig,\n type: AppendType\n) => {\n const exports = root.find(j.ExportDefaultDeclaration);\n\n if (exports.length === 0) {\n const newExport =\n type === 'routes' ? createRoutesExport(config) : j.objectExpression([createProperty(config)]);\n insertStatement(root, j.exportDefaultDeclaration(newExport), root.find(j.Statement));\n } else {\n exports.forEach((path: any) => {\n const decl = path.value.declaration;\n\n // Find the actual object being exported\n const exportedObject = findExportedObject(root, decl);\n\n if (exportedObject) {\n handleObjectExport(exportedObject, config, type, (newExport) => {\n path.value.declaration = newExport;\n });\n } else {\n // Fallback: replace the entire export\n path.value.declaration =\n type === 'routes'\n ? createRoutesExport(config)\n : j.objectExpression([createProperty(config)]);\n }\n });\n }\n};\n\n// Handle CJS module.exports\nconst handleCjsExport = (\n root: jscodeshift.Collection<any>,\n config: AppendConfig,\n type: AppendType\n) => {\n const exports = root.find(j.AssignmentExpression, {\n left: { type: 'MemberExpression', object: { name: 'module' }, property: { name: 'exports' } },\n });\n\n if (exports.length === 0) {\n const newExport =\n type === 'routes' ? createRoutesExport(config) : j.objectExpression([createProperty(config)]);\n const moduleExportStmt = j.expressionStatement(\n j.assignmentExpression(\n '=',\n j.memberExpression(j.identifier('module'), j.identifier('exports')),\n newExport\n )\n );\n insertStatement(root, moduleExportStmt, root.find(j.Statement));\n } else {\n exports.forEach((path: any) => {\n const right = path.value.right;\n\n // Find the actual object being exported\n const exportedObject = findExportedObject(root, right);\n\n if (exportedObject) {\n handleObjectExport(exportedObject, config, type, (newExport) => {\n path.value.right = newExport;\n });\n } else {\n // Fallback: replace the entire export\n path.value.right =\n type === 'routes'\n ? createRoutesExport(config)\n : j.objectExpression([createProperty(config)]);\n }\n });\n }\n};\n"],"names":["j","jscodeshift","withParser","isValidIdentifier","str","test","createProperty","config","type","singularName","camelCaseName","camelCase","varName","keyNode","identifier","literal","objectProperty","objectExpression","spreadElement","memberExpression","Error","hasExistingProperty","obj","properties","ArrayExpression","check","elements","some","element","SpreadElement","MemberExpression","argument","Identifier","object","name","property","prop","ObjectProperty","key","Literal","value","addPropertyToObject","push","createRoutesElement","length","handleRoutesArray","routesProp","find","routesArray","createRoutesExport","arrowFunctionExpression","arrayExpression","appendToFile","template","normalizedTemplate","trim","root","program","isEsm","detectModuleFormat","source","addImportIfMissing","handleEsmExport","handleCjsExport","toSource","quote","hasImport","includes","hasExportDefault","hasRequire","hasModuleExports","insertStatement","statement","preferredLocation","at","insertAfter","firstStatement","Statement","insertBefore","handleEmptyFile","ImportDeclaration","importDecl","importDeclaration","importDefaultSpecifier","VariableDeclarator","id","init","callee","arguments","requireStmt","variableDeclaration","variableDeclarator","callExpression","requires","VariableDeclaration","filter","path","declarations","decl","CallExpression","useStrict","ExpressionStatement","expression","String","paths","newProgram","replaceWith","rootPath","Program","body","replace","error","console","warn","message","replaceError","findExportedObject","exportedValue","ObjectExpression","FunctionExpression","ArrowFunctionExpression","FunctionDeclaration","BlockStatement","stmt","ReturnStatement","varDeclaration","get","handleObjectExport","setExport","exports","ExportDefaultDeclaration","newExport","exportDefaultDeclaration","forEach","declaration","exportedObject","AssignmentExpression","left","moduleExportStmt","expressionStatement","assignmentExpression","right"],"mappings":"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"}
@@ -269,14 +269,14 @@ const handleObjectExport = (obj, config, type, setExport)=>{
269
269
  };
270
270
  // Handle ESM export default
271
271
  const handleEsmExport = (root, config, type)=>{
272
- const exports = root.find(j.ExportDefaultDeclaration);
273
- if (exports.length === 0) {
272
+ const exports$1 = root.find(j.ExportDefaultDeclaration);
273
+ if (exports$1.length === 0) {
274
274
  const newExport = type === 'routes' ? createRoutesExport(config) : j.objectExpression([
275
275
  createProperty(config)
276
276
  ]);
277
277
  insertStatement(root, j.exportDefaultDeclaration(newExport), root.find(j.Statement));
278
278
  } else {
279
- exports.forEach((path)=>{
279
+ exports$1.forEach((path)=>{
280
280
  const decl = path.value.declaration;
281
281
  // Find the actual object being exported
282
282
  const exportedObject = findExportedObject(root, decl);
@@ -295,7 +295,7 @@ const handleEsmExport = (root, config, type)=>{
295
295
  };
296
296
  // Handle CJS module.exports
297
297
  const handleCjsExport = (root, config, type)=>{
298
- const exports = root.find(j.AssignmentExpression, {
298
+ const exports$1 = root.find(j.AssignmentExpression, {
299
299
  left: {
300
300
  type: 'MemberExpression',
301
301
  object: {
@@ -306,14 +306,14 @@ const handleCjsExport = (root, config, type)=>{
306
306
  }
307
307
  }
308
308
  });
309
- if (exports.length === 0) {
309
+ if (exports$1.length === 0) {
310
310
  const newExport = type === 'routes' ? createRoutesExport(config) : j.objectExpression([
311
311
  createProperty(config)
312
312
  ]);
313
313
  const moduleExportStmt = j.expressionStatement(j.assignmentExpression('=', j.memberExpression(j.identifier('module'), j.identifier('exports')), newExport));
314
314
  insertStatement(root, moduleExportStmt, root.find(j.Statement));
315
315
  } else {
316
- exports.forEach((path)=>{
316
+ exports$1.forEach((path)=>{
317
317
  const right = path.value.right;
318
318
  // Find the actual object being exported
319
319
  const exportedObject = findExportedObject(root, right);
@@ -1 +1 @@
1
- {"version":3,"file":"extend-plugin-index-files.mjs","sources":["../../../src/plops/utils/extend-plugin-index-files.ts"],"sourcesContent":["import * as jscodeshift from 'jscodeshift';\nimport camelCase from 'lodash/camelCase';\n\nconst j = jscodeshift.withParser('tsx');\n\ntype AppendType = 'content-type' | 'index' | 'routes';\n\ninterface AppendConfig {\n type: AppendType;\n singularName: string;\n}\n\n// Helper to check if a string is a valid JavaScript identifier\nconst isValidIdentifier = (str: string): boolean => {\n return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(str);\n};\n\n// Helper to create the appropriate property based on type\nconst createProperty = (config: AppendConfig) => {\n const { type, singularName } = config;\n const camelCaseName = camelCase(singularName);\n const varName = type === 'content-type' ? `${camelCaseName}Schema` : camelCaseName;\n\n // Use string literal for key only if singularName is not a valid identifier\n const keyNode = isValidIdentifier(singularName)\n ? j.identifier(singularName)\n : j.literal(singularName);\n\n switch (type) {\n case 'content-type':\n return j.objectProperty(\n keyNode,\n j.objectExpression([j.objectProperty(j.identifier('schema'), j.identifier(varName))])\n );\n case 'index':\n return j.objectProperty(keyNode, j.identifier(varName));\n case 'routes':\n return j.spreadElement(j.memberExpression(j.identifier(varName), j.identifier('routes')));\n default:\n throw new Error(`Unknown append type: ${type}`);\n }\n};\n\n// Helper to check if property already exists\nconst hasExistingProperty = (obj: any, config: AppendConfig): boolean => {\n const { type, singularName } = config;\n if (!obj?.properties && !j.ArrayExpression.check(obj)) return false;\n\n const elements = j.ArrayExpression.check(obj) ? obj.elements : obj.properties;\n if (!elements) return false;\n\n if (type === 'routes') {\n // Check for spread elements ...camelCaseName.routes\n const camelCaseName = camelCase(singularName);\n return elements.some(\n (element: any) =>\n j.SpreadElement.check(element) &&\n j.MemberExpression.check(element.argument) &&\n j.Identifier.check(element.argument.object) &&\n element.argument.object.name === camelCaseName &&\n j.Identifier.check(element.argument.property) &&\n element.argument.property.name === 'routes'\n );\n }\n\n // For content-type and index, check for object property (both identifier and literal keys)\n return elements.some(\n (prop: any) =>\n j.ObjectProperty.check(prop) &&\n ((j.Identifier.check(prop.key) && prop.key.name === singularName) ||\n (j.Literal.check(prop.key) && prop.key.value === singularName))\n );\n};\n\n// Helper to add property to object if it doesn't exist\nconst addPropertyToObject = (obj: any, config: AppendConfig) => {\n if (!obj || hasExistingProperty(obj, config)) return;\n\n if (config.type === 'routes' && j.ArrayExpression.check(obj)) {\n obj.elements.push(createRoutesElement(config));\n } else if (obj.properties?.length >= 0) {\n obj.properties.push(createProperty(config));\n }\n};\n\n// Helper to find and add to routes array\nconst handleRoutesArray = (obj: any, config: AppendConfig) => {\n if (!obj?.properties) return false;\n\n const routesProp = obj.properties.find(\n (prop: any) =>\n j.ObjectProperty.check(prop) &&\n ((j.Identifier.check(prop.key) && prop.key.name === 'routes') ||\n (j.Literal.check(prop.key) && prop.key.value === 'routes')) &&\n j.ArrayExpression.check(prop.value)\n );\n\n if (routesProp?.value) {\n const routesArray = routesProp.value;\n if (!hasExistingProperty(routesArray, config)) {\n routesArray.elements = routesArray.elements || [];\n routesArray.elements.push(createRoutesElement(config));\n }\n return true;\n }\n\n return false;\n};\n\n// Helper to create routes array element (always returns SpreadElement for routes)\nconst createRoutesElement = (config: AppendConfig) => {\n const { singularName } = config;\n const camelCaseName = camelCase(singularName);\n return j.spreadElement(j.memberExpression(j.identifier(camelCaseName), j.identifier('routes')));\n};\n\n// Helper to create new export for routes\nconst createRoutesExport = (config: AppendConfig) => {\n return j.arrowFunctionExpression(\n [],\n j.objectExpression([\n j.objectProperty(j.identifier('type'), j.literal('content-api')),\n j.objectProperty(j.identifier('routes'), j.arrayExpression([createRoutesElement(config)])),\n ])\n );\n};\n\n// Unified append function for all types\nexport const appendToFile = (template: string, config: AppendConfig): string => {\n if (!config?.singularName || !config?.type) {\n throw new Error('Invalid config: singularName and type are required');\n }\n\n const normalizedTemplate = template?.trim() || '';\n const root = normalizedTemplate ? j(normalizedTemplate) : j(j.program([]));\n const { type, singularName } = config;\n const isEsm = detectModuleFormat(normalizedTemplate) === 'esm';\n\n const camelCaseName = camelCase(singularName);\n const varName = type === 'content-type' ? `${camelCaseName}Schema` : camelCaseName;\n const source = type === 'content-type' ? `./${singularName}/schema.json` : `./${singularName}`;\n\n addImportIfMissing(root, varName, source, isEsm);\n\n if (isEsm) {\n handleEsmExport(root, config, type);\n } else {\n handleCjsExport(root, config, type);\n }\n\n return root.toSource({ quote: 'single' });\n};\n\n// Helper to detect module format\nconst detectModuleFormat = (template: string): 'esm' | 'cjs' => {\n const hasImport = /^import\\s/.test(template) || template.includes('import ');\n const hasExportDefault = template.includes('export default');\n const hasRequire = template.includes('require(');\n const hasModuleExports = template.includes('module.exports');\n\n if (hasImport || hasExportDefault) return 'esm';\n if (hasRequire || hasModuleExports) return 'cjs';\n return 'esm'; // Default to ESM\n};\n\n// Helper to insert statement at appropriate location\nconst insertStatement = (\n root: jscodeshift.Collection<any>,\n statement: any,\n preferredLocation?: jscodeshift.Collection<any>\n) => {\n if (preferredLocation && preferredLocation.length > 0) {\n preferredLocation.at(-1).insertAfter(statement);\n } else {\n const firstStatement = root.find(j.Statement).at(0);\n if (firstStatement.length > 0) {\n firstStatement.insertBefore(statement);\n } else {\n handleEmptyFile(root, statement);\n }\n }\n};\n\n// Helper to add import/require if missing\nconst addImportIfMissing = (\n root: jscodeshift.Collection<any>,\n varName: string,\n source: string,\n isEsm: boolean\n) => {\n if (isEsm) {\n if (root.find(j.ImportDeclaration, { source: { value: source } }).length === 0) {\n const importDecl = j.importDeclaration(\n [j.importDefaultSpecifier(j.identifier(varName))],\n j.literal(source)\n );\n insertStatement(root, importDecl, root.find(j.ImportDeclaration));\n }\n } else if (\n root.find(j.VariableDeclarator, {\n id: { name: varName },\n init: { type: 'CallExpression', callee: { name: 'require' }, arguments: [{ value: source }] },\n }).length === 0\n ) {\n const requireStmt = j.variableDeclaration('const', [\n j.variableDeclarator(\n j.identifier(varName),\n j.callExpression(j.identifier('require'), [j.literal(source)])\n ),\n ]);\n\n const requires = root\n .find(j.VariableDeclaration)\n .filter((path) =>\n path.value.declarations.some(\n (decl: any) => j.CallExpression.check(decl.init) && decl.init.callee?.name === 'require'\n )\n );\n\n const useStrict = root\n .find(j.ExpressionStatement)\n .filter(\n (path: any) =>\n j.Literal.check(path.value.expression) &&\n /use strict/.test(String(path.value.expression.value))\n );\n\n insertStatement(root, requireStmt, requires.length > 0 ? requires : useStrict);\n }\n};\n\n// Helper to safely handle empty files\nconst handleEmptyFile = (root: jscodeshift.Collection<any>, firstStatement: any) => {\n try {\n // Check if we have any paths in the collection\n const paths = root.paths();\n if (paths.length === 0) {\n // Completely empty collection - create new program\n const newProgram = j.program([firstStatement]);\n // Replace the entire root with new program\n return root.replaceWith(newProgram);\n }\n\n // Get the first path (should be the program)\n const rootPath = paths[0];\n if (!rootPath || !rootPath.value) {\n // Invalid root path - create new program\n const newProgram = j.program([firstStatement]);\n return root.replaceWith(newProgram);\n }\n\n // Check if it's a valid program node\n if (j.Program.check(rootPath.value)) {\n // Ensure body exists and add statement\n if (!rootPath.value.body) {\n rootPath.value.body = [];\n }\n rootPath.value.body.push(firstStatement);\n } else {\n // Not a program node - replace with new program\n const newProgram = j.program([firstStatement]);\n rootPath.replace(newProgram);\n }\n } catch (error: any) {\n // Ultimate fallback - create a minimal working file\n console.warn('Failed to handle empty file, creating new program:', error.message);\n const newProgram = j.program([firstStatement]);\n try {\n root.replaceWith(newProgram);\n } catch (replaceError) {\n // Last resort - throw descriptive error\n throw new Error(\n `Unable to add statement to empty file: ${error.message}. Root collection may be invalid.`\n );\n }\n }\n};\n\n// Helper to find the exported object regardless of export pattern\nconst findExportedObject = (root: jscodeshift.Collection<any>, exportedValue: any): any => {\n // Case 1: Direct object export\n if (j.ObjectExpression.check(exportedValue)) {\n return exportedValue;\n }\n\n // Case 2: Function that returns an object\n if (\n j.FunctionExpression.check(exportedValue) ||\n j.ArrowFunctionExpression.check(exportedValue) ||\n j.FunctionDeclaration.check(exportedValue)\n ) {\n const body = exportedValue.body;\n // Arrow function with object expression body: () => ({...})\n if (j.ObjectExpression.check(body)) {\n return body;\n }\n // Function with return statement in block\n if (j.BlockStatement.check(body)) {\n for (const stmt of body.body) {\n if (j.ReturnStatement.check(stmt) && j.ObjectExpression.check(stmt.argument)) {\n return stmt.argument;\n }\n }\n }\n }\n\n // Case 3: Identifier reference to a variable\n if (j.Identifier.check(exportedValue)) {\n const varName = exportedValue.name;\n\n // Find the variable declaration\n const varDeclaration = root.find(j.VariableDeclarator, {\n id: { name: varName },\n });\n\n if (varDeclaration.length > 0) {\n const init = varDeclaration.get().value.init;\n\n // If it's an object, return it\n if (j.ObjectExpression.check(init)) {\n return init;\n }\n\n // If it's a function, recursively check its return value\n if (j.FunctionExpression.check(init) || j.ArrowFunctionExpression.check(init)) {\n return findExportedObject(root, init);\n }\n }\n }\n\n return null;\n};\n\n// Helper to handle object export (common logic for ESM and CJS)\nconst handleObjectExport = (\n obj: any,\n config: AppendConfig,\n type: AppendType,\n setExport: (newExport: any) => void\n) => {\n if (type === 'routes') {\n if (!handleRoutesArray(obj, config)) {\n setExport(createRoutesExport(config));\n }\n } else {\n addPropertyToObject(obj, config);\n }\n};\n\n// Handle ESM export default\nconst handleEsmExport = (\n root: jscodeshift.Collection<any>,\n config: AppendConfig,\n type: AppendType\n) => {\n const exports = root.find(j.ExportDefaultDeclaration);\n\n if (exports.length === 0) {\n const newExport =\n type === 'routes' ? createRoutesExport(config) : j.objectExpression([createProperty(config)]);\n insertStatement(root, j.exportDefaultDeclaration(newExport), root.find(j.Statement));\n } else {\n exports.forEach((path: any) => {\n const decl = path.value.declaration;\n\n // Find the actual object being exported\n const exportedObject = findExportedObject(root, decl);\n\n if (exportedObject) {\n handleObjectExport(exportedObject, config, type, (newExport) => {\n path.value.declaration = newExport;\n });\n } else {\n // Fallback: replace the entire export\n path.value.declaration =\n type === 'routes'\n ? createRoutesExport(config)\n : j.objectExpression([createProperty(config)]);\n }\n });\n }\n};\n\n// Handle CJS module.exports\nconst handleCjsExport = (\n root: jscodeshift.Collection<any>,\n config: AppendConfig,\n type: AppendType\n) => {\n const exports = root.find(j.AssignmentExpression, {\n left: { type: 'MemberExpression', object: { name: 'module' }, property: { name: 'exports' } },\n });\n\n if (exports.length === 0) {\n const newExport =\n type === 'routes' ? createRoutesExport(config) : j.objectExpression([createProperty(config)]);\n const moduleExportStmt = j.expressionStatement(\n j.assignmentExpression(\n '=',\n j.memberExpression(j.identifier('module'), j.identifier('exports')),\n newExport\n )\n );\n insertStatement(root, moduleExportStmt, root.find(j.Statement));\n } else {\n exports.forEach((path: any) => {\n const right = path.value.right;\n\n // Find the actual object being exported\n const exportedObject = findExportedObject(root, right);\n\n if (exportedObject) {\n handleObjectExport(exportedObject, config, type, (newExport) => {\n path.value.right = newExport;\n });\n } else {\n // Fallback: replace the entire export\n path.value.right =\n type === 'routes'\n ? createRoutesExport(config)\n : j.objectExpression([createProperty(config)]);\n }\n });\n }\n};\n"],"names":["j","jscodeshift","withParser","isValidIdentifier","str","test","createProperty","config","type","singularName","camelCaseName","camelCase","varName","keyNode","identifier","literal","objectProperty","objectExpression","spreadElement","memberExpression","Error","hasExistingProperty","obj","properties","ArrayExpression","check","elements","some","element","SpreadElement","MemberExpression","argument","Identifier","object","name","property","prop","ObjectProperty","key","Literal","value","addPropertyToObject","push","createRoutesElement","length","handleRoutesArray","routesProp","find","routesArray","createRoutesExport","arrowFunctionExpression","arrayExpression","appendToFile","template","normalizedTemplate","trim","root","program","isEsm","detectModuleFormat","source","addImportIfMissing","handleEsmExport","handleCjsExport","toSource","quote","hasImport","includes","hasExportDefault","hasRequire","hasModuleExports","insertStatement","statement","preferredLocation","at","insertAfter","firstStatement","Statement","insertBefore","handleEmptyFile","ImportDeclaration","importDecl","importDeclaration","importDefaultSpecifier","VariableDeclarator","id","init","callee","arguments","requireStmt","variableDeclaration","variableDeclarator","callExpression","requires","VariableDeclaration","filter","path","declarations","decl","CallExpression","useStrict","ExpressionStatement","expression","String","paths","newProgram","replaceWith","rootPath","Program","body","replace","error","console","warn","message","replaceError","findExportedObject","exportedValue","ObjectExpression","FunctionExpression","ArrowFunctionExpression","FunctionDeclaration","BlockStatement","stmt","ReturnStatement","varDeclaration","get","handleObjectExport","setExport","exports","ExportDefaultDeclaration","newExport","exportDefaultDeclaration","forEach","declaration","exportedObject","AssignmentExpression","left","moduleExportStmt","expressionStatement","assignmentExpression","right"],"mappings":"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"}
1
+ {"version":3,"file":"extend-plugin-index-files.mjs","sources":["../../../src/plops/utils/extend-plugin-index-files.ts"],"sourcesContent":["import * as jscodeshift from 'jscodeshift';\nimport camelCase from 'lodash/camelCase';\n\nconst j = jscodeshift.withParser('tsx');\n\ntype AppendType = 'content-type' | 'index' | 'routes';\n\ninterface AppendConfig {\n type: AppendType;\n singularName: string;\n}\n\n// Helper to check if a string is a valid JavaScript identifier\nconst isValidIdentifier = (str: string): boolean => {\n return /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(str);\n};\n\n// Helper to create the appropriate property based on type\nconst createProperty = (config: AppendConfig) => {\n const { type, singularName } = config;\n const camelCaseName = camelCase(singularName);\n const varName = type === 'content-type' ? `${camelCaseName}Schema` : camelCaseName;\n\n // Use string literal for key only if singularName is not a valid identifier\n const keyNode = isValidIdentifier(singularName)\n ? j.identifier(singularName)\n : j.literal(singularName);\n\n switch (type) {\n case 'content-type':\n return j.objectProperty(\n keyNode,\n j.objectExpression([j.objectProperty(j.identifier('schema'), j.identifier(varName))])\n );\n case 'index':\n return j.objectProperty(keyNode, j.identifier(varName));\n case 'routes':\n return j.spreadElement(j.memberExpression(j.identifier(varName), j.identifier('routes')));\n default:\n throw new Error(`Unknown append type: ${type}`);\n }\n};\n\n// Helper to check if property already exists\nconst hasExistingProperty = (obj: any, config: AppendConfig): boolean => {\n const { type, singularName } = config;\n if (!obj?.properties && !j.ArrayExpression.check(obj)) return false;\n\n const elements = j.ArrayExpression.check(obj) ? obj.elements : obj.properties;\n if (!elements) return false;\n\n if (type === 'routes') {\n // Check for spread elements ...camelCaseName.routes\n const camelCaseName = camelCase(singularName);\n return elements.some(\n (element: any) =>\n j.SpreadElement.check(element) &&\n j.MemberExpression.check(element.argument) &&\n j.Identifier.check(element.argument.object) &&\n element.argument.object.name === camelCaseName &&\n j.Identifier.check(element.argument.property) &&\n element.argument.property.name === 'routes'\n );\n }\n\n // For content-type and index, check for object property (both identifier and literal keys)\n return elements.some(\n (prop: any) =>\n j.ObjectProperty.check(prop) &&\n ((j.Identifier.check(prop.key) && prop.key.name === singularName) ||\n (j.Literal.check(prop.key) && prop.key.value === singularName))\n );\n};\n\n// Helper to add property to object if it doesn't exist\nconst addPropertyToObject = (obj: any, config: AppendConfig) => {\n if (!obj || hasExistingProperty(obj, config)) return;\n\n if (config.type === 'routes' && j.ArrayExpression.check(obj)) {\n obj.elements.push(createRoutesElement(config));\n } else if (obj.properties?.length >= 0) {\n obj.properties.push(createProperty(config));\n }\n};\n\n// Helper to find and add to routes array\nconst handleRoutesArray = (obj: any, config: AppendConfig) => {\n if (!obj?.properties) return false;\n\n const routesProp = obj.properties.find(\n (prop: any) =>\n j.ObjectProperty.check(prop) &&\n ((j.Identifier.check(prop.key) && prop.key.name === 'routes') ||\n (j.Literal.check(prop.key) && prop.key.value === 'routes')) &&\n j.ArrayExpression.check(prop.value)\n );\n\n if (routesProp?.value) {\n const routesArray = routesProp.value;\n if (!hasExistingProperty(routesArray, config)) {\n routesArray.elements = routesArray.elements || [];\n routesArray.elements.push(createRoutesElement(config));\n }\n return true;\n }\n\n return false;\n};\n\n// Helper to create routes array element (always returns SpreadElement for routes)\nconst createRoutesElement = (config: AppendConfig) => {\n const { singularName } = config;\n const camelCaseName = camelCase(singularName);\n return j.spreadElement(j.memberExpression(j.identifier(camelCaseName), j.identifier('routes')));\n};\n\n// Helper to create new export for routes\nconst createRoutesExport = (config: AppendConfig) => {\n return j.arrowFunctionExpression(\n [],\n j.objectExpression([\n j.objectProperty(j.identifier('type'), j.literal('content-api')),\n j.objectProperty(j.identifier('routes'), j.arrayExpression([createRoutesElement(config)])),\n ])\n );\n};\n\n// Unified append function for all types\nexport const appendToFile = (template: string, config: AppendConfig): string => {\n if (!config?.singularName || !config?.type) {\n throw new Error('Invalid config: singularName and type are required');\n }\n\n const normalizedTemplate = template?.trim() || '';\n const root = normalizedTemplate ? j(normalizedTemplate) : j(j.program([]));\n const { type, singularName } = config;\n const isEsm = detectModuleFormat(normalizedTemplate) === 'esm';\n\n const camelCaseName = camelCase(singularName);\n const varName = type === 'content-type' ? `${camelCaseName}Schema` : camelCaseName;\n const source = type === 'content-type' ? `./${singularName}/schema.json` : `./${singularName}`;\n\n addImportIfMissing(root, varName, source, isEsm);\n\n if (isEsm) {\n handleEsmExport(root, config, type);\n } else {\n handleCjsExport(root, config, type);\n }\n\n return root.toSource({ quote: 'single' });\n};\n\n// Helper to detect module format\nconst detectModuleFormat = (template: string): 'esm' | 'cjs' => {\n const hasImport = /^import\\s/.test(template) || template.includes('import ');\n const hasExportDefault = template.includes('export default');\n const hasRequire = template.includes('require(');\n const hasModuleExports = template.includes('module.exports');\n\n if (hasImport || hasExportDefault) return 'esm';\n if (hasRequire || hasModuleExports) return 'cjs';\n return 'esm'; // Default to ESM\n};\n\n// Helper to insert statement at appropriate location\nconst insertStatement = (\n root: jscodeshift.Collection<any>,\n statement: any,\n preferredLocation?: jscodeshift.Collection<any>\n) => {\n if (preferredLocation && preferredLocation.length > 0) {\n preferredLocation.at(-1).insertAfter(statement);\n } else {\n const firstStatement = root.find(j.Statement).at(0);\n if (firstStatement.length > 0) {\n firstStatement.insertBefore(statement);\n } else {\n handleEmptyFile(root, statement);\n }\n }\n};\n\n// Helper to add import/require if missing\nconst addImportIfMissing = (\n root: jscodeshift.Collection<any>,\n varName: string,\n source: string,\n isEsm: boolean\n) => {\n if (isEsm) {\n if (root.find(j.ImportDeclaration, { source: { value: source } }).length === 0) {\n const importDecl = j.importDeclaration(\n [j.importDefaultSpecifier(j.identifier(varName))],\n j.literal(source)\n );\n insertStatement(root, importDecl, root.find(j.ImportDeclaration));\n }\n } else if (\n root.find(j.VariableDeclarator, {\n id: { name: varName },\n init: { type: 'CallExpression', callee: { name: 'require' }, arguments: [{ value: source }] },\n }).length === 0\n ) {\n const requireStmt = j.variableDeclaration('const', [\n j.variableDeclarator(\n j.identifier(varName),\n j.callExpression(j.identifier('require'), [j.literal(source)])\n ),\n ]);\n\n const requires = root\n .find(j.VariableDeclaration)\n .filter((path) =>\n path.value.declarations.some(\n (decl: any) => j.CallExpression.check(decl.init) && decl.init.callee?.name === 'require'\n )\n );\n\n const useStrict = root\n .find(j.ExpressionStatement)\n .filter(\n (path: any) =>\n j.Literal.check(path.value.expression) &&\n /use strict/.test(String(path.value.expression.value))\n );\n\n insertStatement(root, requireStmt, requires.length > 0 ? requires : useStrict);\n }\n};\n\n// Helper to safely handle empty files\nconst handleEmptyFile = (root: jscodeshift.Collection<any>, firstStatement: any) => {\n try {\n // Check if we have any paths in the collection\n const paths = root.paths();\n if (paths.length === 0) {\n // Completely empty collection - create new program\n const newProgram = j.program([firstStatement]);\n // Replace the entire root with new program\n return root.replaceWith(newProgram);\n }\n\n // Get the first path (should be the program)\n const rootPath = paths[0];\n if (!rootPath || !rootPath.value) {\n // Invalid root path - create new program\n const newProgram = j.program([firstStatement]);\n return root.replaceWith(newProgram);\n }\n\n // Check if it's a valid program node\n if (j.Program.check(rootPath.value)) {\n // Ensure body exists and add statement\n if (!rootPath.value.body) {\n rootPath.value.body = [];\n }\n rootPath.value.body.push(firstStatement);\n } else {\n // Not a program node - replace with new program\n const newProgram = j.program([firstStatement]);\n rootPath.replace(newProgram);\n }\n } catch (error: any) {\n // Ultimate fallback - create a minimal working file\n console.warn('Failed to handle empty file, creating new program:', error.message);\n const newProgram = j.program([firstStatement]);\n try {\n root.replaceWith(newProgram);\n } catch (replaceError) {\n // Last resort - throw descriptive error\n throw new Error(\n `Unable to add statement to empty file: ${error.message}. Root collection may be invalid.`\n );\n }\n }\n};\n\n// Helper to find the exported object regardless of export pattern\nconst findExportedObject = (root: jscodeshift.Collection<any>, exportedValue: any): any => {\n // Case 1: Direct object export\n if (j.ObjectExpression.check(exportedValue)) {\n return exportedValue;\n }\n\n // Case 2: Function that returns an object\n if (\n j.FunctionExpression.check(exportedValue) ||\n j.ArrowFunctionExpression.check(exportedValue) ||\n j.FunctionDeclaration.check(exportedValue)\n ) {\n const body = exportedValue.body;\n // Arrow function with object expression body: () => ({...})\n if (j.ObjectExpression.check(body)) {\n return body;\n }\n // Function with return statement in block\n if (j.BlockStatement.check(body)) {\n for (const stmt of body.body) {\n if (j.ReturnStatement.check(stmt) && j.ObjectExpression.check(stmt.argument)) {\n return stmt.argument;\n }\n }\n }\n }\n\n // Case 3: Identifier reference to a variable\n if (j.Identifier.check(exportedValue)) {\n const varName = exportedValue.name;\n\n // Find the variable declaration\n const varDeclaration = root.find(j.VariableDeclarator, {\n id: { name: varName },\n });\n\n if (varDeclaration.length > 0) {\n const init = varDeclaration.get().value.init;\n\n // If it's an object, return it\n if (j.ObjectExpression.check(init)) {\n return init;\n }\n\n // If it's a function, recursively check its return value\n if (j.FunctionExpression.check(init) || j.ArrowFunctionExpression.check(init)) {\n return findExportedObject(root, init);\n }\n }\n }\n\n return null;\n};\n\n// Helper to handle object export (common logic for ESM and CJS)\nconst handleObjectExport = (\n obj: any,\n config: AppendConfig,\n type: AppendType,\n setExport: (newExport: any) => void\n) => {\n if (type === 'routes') {\n if (!handleRoutesArray(obj, config)) {\n setExport(createRoutesExport(config));\n }\n } else {\n addPropertyToObject(obj, config);\n }\n};\n\n// Handle ESM export default\nconst handleEsmExport = (\n root: jscodeshift.Collection<any>,\n config: AppendConfig,\n type: AppendType\n) => {\n const exports = root.find(j.ExportDefaultDeclaration);\n\n if (exports.length === 0) {\n const newExport =\n type === 'routes' ? createRoutesExport(config) : j.objectExpression([createProperty(config)]);\n insertStatement(root, j.exportDefaultDeclaration(newExport), root.find(j.Statement));\n } else {\n exports.forEach((path: any) => {\n const decl = path.value.declaration;\n\n // Find the actual object being exported\n const exportedObject = findExportedObject(root, decl);\n\n if (exportedObject) {\n handleObjectExport(exportedObject, config, type, (newExport) => {\n path.value.declaration = newExport;\n });\n } else {\n // Fallback: replace the entire export\n path.value.declaration =\n type === 'routes'\n ? createRoutesExport(config)\n : j.objectExpression([createProperty(config)]);\n }\n });\n }\n};\n\n// Handle CJS module.exports\nconst handleCjsExport = (\n root: jscodeshift.Collection<any>,\n config: AppendConfig,\n type: AppendType\n) => {\n const exports = root.find(j.AssignmentExpression, {\n left: { type: 'MemberExpression', object: { name: 'module' }, property: { name: 'exports' } },\n });\n\n if (exports.length === 0) {\n const newExport =\n type === 'routes' ? createRoutesExport(config) : j.objectExpression([createProperty(config)]);\n const moduleExportStmt = j.expressionStatement(\n j.assignmentExpression(\n '=',\n j.memberExpression(j.identifier('module'), j.identifier('exports')),\n newExport\n )\n );\n insertStatement(root, moduleExportStmt, root.find(j.Statement));\n } else {\n exports.forEach((path: any) => {\n const right = path.value.right;\n\n // Find the actual object being exported\n const exportedObject = findExportedObject(root, right);\n\n if (exportedObject) {\n handleObjectExport(exportedObject, config, type, (newExport) => {\n path.value.right = newExport;\n });\n } else {\n // Fallback: replace the entire export\n path.value.right =\n type === 'routes'\n ? createRoutesExport(config)\n : j.objectExpression([createProperty(config)]);\n }\n });\n }\n};\n"],"names":["j","jscodeshift","withParser","isValidIdentifier","str","test","createProperty","config","type","singularName","camelCaseName","camelCase","varName","keyNode","identifier","literal","objectProperty","objectExpression","spreadElement","memberExpression","Error","hasExistingProperty","obj","properties","ArrayExpression","check","elements","some","element","SpreadElement","MemberExpression","argument","Identifier","object","name","property","prop","ObjectProperty","key","Literal","value","addPropertyToObject","push","createRoutesElement","length","handleRoutesArray","routesProp","find","routesArray","createRoutesExport","arrowFunctionExpression","arrayExpression","appendToFile","template","normalizedTemplate","trim","root","program","isEsm","detectModuleFormat","source","addImportIfMissing","handleEsmExport","handleCjsExport","toSource","quote","hasImport","includes","hasExportDefault","hasRequire","hasModuleExports","insertStatement","statement","preferredLocation","at","insertAfter","firstStatement","Statement","insertBefore","handleEmptyFile","ImportDeclaration","importDecl","importDeclaration","importDefaultSpecifier","VariableDeclarator","id","init","callee","arguments","requireStmt","variableDeclaration","variableDeclarator","callExpression","requires","VariableDeclaration","filter","path","declarations","decl","CallExpression","useStrict","ExpressionStatement","expression","String","paths","newProgram","replaceWith","rootPath","Program","body","replace","error","console","warn","message","replaceError","findExportedObject","exportedValue","ObjectExpression","FunctionExpression","ArrowFunctionExpression","FunctionDeclaration","BlockStatement","stmt","ReturnStatement","varDeclaration","get","handleObjectExport","setExport","exports","ExportDefaultDeclaration","newExport","exportDefaultDeclaration","forEach","declaration","exportedObject","AssignmentExpression","left","moduleExportStmt","expressionStatement","assignmentExpression","right"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-file-path.js","sources":["../../../src/plops/utils/get-file-path.ts"],"sourcesContent":["export default (destination: string) => {\n if (destination === 'api') {\n return `api/{{ api }}`;\n }\n\n if (destination === 'plugin') {\n return `plugins/{{ plugin }}/server/src`;\n }\n\n if (destination === 'root') {\n return '.';\n }\n\n return `api/{{ id }}`;\n};\n"],"names":["destination"],"mappings":";;AAAA,kBAAe,CAAA,CAACA,WAAAA,GAAAA;AACd,IAAA,IAAIA,gBAAgB,KAAO,EAAA;QACzB,OAAO,CAAC,aAAa,CAAC;AACxB;AAEA,IAAA,IAAIA,gBAAgB,QAAU,EAAA;QAC5B,OAAO,CAAC,+BAA+B,CAAC;AAC1C;AAEA,IAAA,IAAIA,gBAAgB,MAAQ,EAAA;QAC1B,OAAO,GAAA;AACT;IAEA,OAAO,CAAC,YAAY,CAAC;AACvB,CAAA;;;;"}
1
+ {"version":3,"file":"get-file-path.js","sources":["../../../src/plops/utils/get-file-path.ts"],"sourcesContent":["export default (destination: string) => {\n if (destination === 'api') {\n return `api/{{ api }}`;\n }\n\n if (destination === 'plugin') {\n return `plugins/{{ plugin }}/server/src`;\n }\n\n if (destination === 'root') {\n return '.';\n }\n\n return `api/{{ id }}`;\n};\n"],"names":["destination"],"mappings":";;AAAA,kBAAe,CAAA,CAACA,WAAAA,GAAAA;AACd,IAAA,IAAIA,gBAAgB,KAAA,EAAO;QACzB,OAAO,CAAC,aAAa,CAAC;AACxB,IAAA;AAEA,IAAA,IAAIA,gBAAgB,QAAA,EAAU;QAC5B,OAAO,CAAC,+BAA+B,CAAC;AAC1C,IAAA;AAEA,IAAA,IAAIA,gBAAgB,MAAA,EAAQ;QAC1B,OAAO,GAAA;AACT,IAAA;IAEA,OAAO,CAAC,YAAY,CAAC;AACvB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-file-path.mjs","sources":["../../../src/plops/utils/get-file-path.ts"],"sourcesContent":["export default (destination: string) => {\n if (destination === 'api') {\n return `api/{{ api }}`;\n }\n\n if (destination === 'plugin') {\n return `plugins/{{ plugin }}/server/src`;\n }\n\n if (destination === 'root') {\n return '.';\n }\n\n return `api/{{ id }}`;\n};\n"],"names":["destination"],"mappings":"AAAA,kBAAe,CAAA,CAACA,WAAAA,GAAAA;AACd,IAAA,IAAIA,gBAAgB,KAAO,EAAA;QACzB,OAAO,CAAC,aAAa,CAAC;AACxB;AAEA,IAAA,IAAIA,gBAAgB,QAAU,EAAA;QAC5B,OAAO,CAAC,+BAA+B,CAAC;AAC1C;AAEA,IAAA,IAAIA,gBAAgB,MAAQ,EAAA;QAC1B,OAAO,GAAA;AACT;IAEA,OAAO,CAAC,YAAY,CAAC;AACvB,CAAA;;;;"}
1
+ {"version":3,"file":"get-file-path.mjs","sources":["../../../src/plops/utils/get-file-path.ts"],"sourcesContent":["export default (destination: string) => {\n if (destination === 'api') {\n return `api/{{ api }}`;\n }\n\n if (destination === 'plugin') {\n return `plugins/{{ plugin }}/server/src`;\n }\n\n if (destination === 'root') {\n return '.';\n }\n\n return `api/{{ id }}`;\n};\n"],"names":["destination"],"mappings":"AAAA,kBAAe,CAAA,CAACA,WAAAA,GAAAA;AACd,IAAA,IAAIA,gBAAgB,KAAA,EAAO;QACzB,OAAO,CAAC,aAAa,CAAC;AACxB,IAAA;AAEA,IAAA,IAAIA,gBAAgB,QAAA,EAAU;QAC5B,OAAO,CAAC,+BAA+B,CAAC;AAC1C,IAAA;AAEA,IAAA,IAAIA,gBAAgB,MAAA,EAAQ;QAC1B,OAAO,GAAA;AACT,IAAA;IAEA,OAAO,CAAC,YAAY,CAAC;AACvB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-formatted-date.js","sources":["../../../src/plops/utils/get-formatted-date.ts"],"sourcesContent":["export default (date: Date = new Date()) => {\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000)\n .toJSON()\n .replace(/[-:]/g, '.')\n .replace(/\\....Z/, '');\n};\n"],"names":["date","Date","getTime","getTimezoneOffset","toJSON","replace"],"mappings":";;AAAA,uBAAe,CAAA,CAACA,IAAa,GAAA,IAAIC,IAAM,EAAA,GAAA;AACrC,IAAA,OAAO,IAAIA,IAAKD,CAAAA,IAAAA,CAAKE,OAAO,EAAA,GAAKF,KAAKG,iBAAiB,EAAA,GAAK,KACzDC,CAAAA,CAAAA,MAAM,GACNC,OAAO,CAAC,SAAS,GACjBA,CAAAA,CAAAA,OAAO,CAAC,QAAU,EAAA,EAAA,CAAA;AACvB,CAAA;;;;"}
1
+ {"version":3,"file":"get-formatted-date.js","sources":["../../../src/plops/utils/get-formatted-date.ts"],"sourcesContent":["export default (date: Date = new Date()) => {\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000)\n .toJSON()\n .replace(/[-:]/g, '.')\n .replace(/\\....Z/, '');\n};\n"],"names":["date","Date","getTime","getTimezoneOffset","toJSON","replace"],"mappings":";;AAAA,uBAAe,CAAA,CAACA,IAAAA,GAAa,IAAIC,IAAAA,EAAM,GAAA;AACrC,IAAA,OAAO,IAAIA,IAAAA,CAAKD,IAAAA,CAAKE,OAAO,EAAA,GAAKF,KAAKG,iBAAiB,EAAA,GAAK,KAAA,CAAA,CACzDC,MAAM,GACNC,OAAO,CAAC,SAAS,GAAA,CAAA,CACjBA,OAAO,CAAC,QAAA,EAAU,EAAA,CAAA;AACvB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-formatted-date.mjs","sources":["../../../src/plops/utils/get-formatted-date.ts"],"sourcesContent":["export default (date: Date = new Date()) => {\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000)\n .toJSON()\n .replace(/[-:]/g, '.')\n .replace(/\\....Z/, '');\n};\n"],"names":["date","Date","getTime","getTimezoneOffset","toJSON","replace"],"mappings":"AAAA,uBAAe,CAAA,CAACA,IAAa,GAAA,IAAIC,IAAM,EAAA,GAAA;AACrC,IAAA,OAAO,IAAIA,IAAKD,CAAAA,IAAAA,CAAKE,OAAO,EAAA,GAAKF,KAAKG,iBAAiB,EAAA,GAAK,KACzDC,CAAAA,CAAAA,MAAM,GACNC,OAAO,CAAC,SAAS,GACjBA,CAAAA,CAAAA,OAAO,CAAC,QAAU,EAAA,EAAA,CAAA;AACvB,CAAA;;;;"}
1
+ {"version":3,"file":"get-formatted-date.mjs","sources":["../../../src/plops/utils/get-formatted-date.ts"],"sourcesContent":["export default (date: Date = new Date()) => {\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000)\n .toJSON()\n .replace(/[-:]/g, '.')\n .replace(/\\....Z/, '');\n};\n"],"names":["date","Date","getTime","getTimezoneOffset","toJSON","replace"],"mappings":"AAAA,uBAAe,CAAA,CAACA,IAAAA,GAAa,IAAIC,IAAAA,EAAM,GAAA;AACrC,IAAA,OAAO,IAAIA,IAAAA,CAAKD,IAAAA,CAAKE,OAAO,EAAA,GAAKF,KAAKG,iBAAiB,EAAA,GAAK,KAAA,CAAA,CACzDC,MAAM,GACNC,OAAO,CAAC,SAAS,GAAA,CAAA,CACjBA,OAAO,CAAC,QAAA,EAAU,EAAA,CAAA;AACvB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-attribute-input.js","sources":["../../../src/plops/utils/validate-attribute-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-|_]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters, '-', '_', and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":";;AAAA,6BAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAQ,GAAA,iBAAA;AAEd,IAAA,IAAI,CAACD,KAAO,EAAA;QACV,OAAO,2BAAA;AACT;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAU,CAAA,IAAA,mDAAA;AAC9B,CAAA;;;;"}
1
+ {"version":3,"file":"validate-attribute-input.js","sources":["../../../src/plops/utils/validate-attribute-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-|_]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters, '-', '_', and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":";;AAAA,6BAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAAA,GAAQ,iBAAA;AAEd,IAAA,IAAI,CAACD,KAAAA,EAAO;QACV,OAAO,2BAAA;AACT,IAAA;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAAA,CAAAA,IAAU,mDAAA;AAC9B,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-attribute-input.mjs","sources":["../../../src/plops/utils/validate-attribute-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-|_]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters, '-', '_', and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":"AAAA,6BAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAQ,GAAA,iBAAA;AAEd,IAAA,IAAI,CAACD,KAAO,EAAA;QACV,OAAO,2BAAA;AACT;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAU,CAAA,IAAA,mDAAA;AAC9B,CAAA;;;;"}
1
+ {"version":3,"file":"validate-attribute-input.mjs","sources":["../../../src/plops/utils/validate-attribute-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-|_]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters, '-', '_', and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":"AAAA,6BAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAAA,GAAQ,iBAAA;AAEd,IAAA,IAAI,CAACD,KAAAA,EAAO;QACV,OAAO,2BAAA;AACT,IAAA;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAAA,CAAAA,IAAU,mDAAA;AAC9B,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-file-name-input.js","sources":["../../../src/plops/utils/validate-file-name-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-_0-9]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters and number, '-' or '_' and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":";;AAAA,4BAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAQ,GAAA,mBAAA;AAEd,IAAA,IAAI,CAACD,KAAO,EAAA;QACV,OAAO,2BAAA;AACT;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAU,CAAA,IAAA,8DAAA;AAC9B,CAAA;;;;"}
1
+ {"version":3,"file":"validate-file-name-input.js","sources":["../../../src/plops/utils/validate-file-name-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-_0-9]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters and number, '-' or '_' and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":";;AAAA,4BAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAAA,GAAQ,mBAAA;AAEd,IAAA,IAAI,CAACD,KAAAA,EAAO;QACV,OAAO,2BAAA;AACT,IAAA;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAAA,CAAAA,IAAU,8DAAA;AAC9B,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-file-name-input.mjs","sources":["../../../src/plops/utils/validate-file-name-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-_0-9]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters and number, '-' or '_' and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":"AAAA,4BAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAQ,GAAA,mBAAA;AAEd,IAAA,IAAI,CAACD,KAAO,EAAA;QACV,OAAO,2BAAA;AACT;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAU,CAAA,IAAA,8DAAA;AAC9B,CAAA;;;;"}
1
+ {"version":3,"file":"validate-file-name-input.mjs","sources":["../../../src/plops/utils/validate-file-name-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-_0-9]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters and number, '-' or '_' and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":"AAAA,4BAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAAA,GAAQ,mBAAA;AAEd,IAAA,IAAI,CAACD,KAAAA,EAAO;QACV,OAAO,2BAAA;AACT,IAAA;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAAA,CAAAA,IAAU,8DAAA;AAC9B,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-input.js","sources":["../../../src/plops/utils/validate-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters, '-' and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":";;AAAA,oBAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAQ,GAAA,eAAA;AAEd,IAAA,IAAI,CAACD,KAAO,EAAA;QACV,OAAO,2BAAA;AACT;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAU,CAAA,IAAA,4CAAA;AAC9B,CAAA;;;;"}
1
+ {"version":3,"file":"validate-input.js","sources":["../../../src/plops/utils/validate-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters, '-' and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":";;AAAA,oBAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAAA,GAAQ,eAAA;AAEd,IAAA,IAAI,CAACD,KAAAA,EAAO;QACV,OAAO,2BAAA;AACT,IAAA;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAAA,CAAAA,IAAU,4CAAA;AAC9B,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-input.mjs","sources":["../../../src/plops/utils/validate-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters, '-' and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":"AAAA,oBAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAQ,GAAA,eAAA;AAEd,IAAA,IAAI,CAACD,KAAO,EAAA;QACV,OAAO,2BAAA;AACT;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAU,CAAA,IAAA,4CAAA;AAC9B,CAAA;;;;"}
1
+ {"version":3,"file":"validate-input.mjs","sources":["../../../src/plops/utils/validate-input.ts"],"sourcesContent":["export default (input: string) => {\n const regex = /^[A-Za-z-]+$/g;\n\n if (!input) {\n return 'You must provide an input';\n }\n\n return regex.test(input) || \"Please use only letters, '-' and no spaces\";\n};\n"],"names":["input","regex","test"],"mappings":"AAAA,oBAAe,CAAA,CAACA,KAAAA,GAAAA;AACd,IAAA,MAAMC,KAAAA,GAAQ,eAAA;AAEd,IAAA,IAAI,CAACD,KAAAA,EAAO;QACV,OAAO,2BAAA;AACT,IAAA;IAEA,OAAOC,KAAAA,CAAMC,IAAI,CAACF,KAAAA,CAAAA,IAAU,4CAAA;AAC9B,CAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/generators",
3
- "version": "5.37.1",
3
+ "version": "5.38.0",
4
4
  "description": "Interactive API generator.",
5
5
  "keywords": [
6
6
  "strapi",
@@ -49,8 +49,8 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "@sindresorhus/slugify": "1.1.0",
52
- "@strapi/typescript-utils": "5.37.1",
53
- "@strapi/utils": "5.37.1",
52
+ "@strapi/typescript-utils": "5.38.0",
53
+ "@strapi/utils": "5.38.0",
54
54
  "chalk": "4.1.2",
55
55
  "copyfiles": "2.4.1",
56
56
  "fs-extra": "11.2.0",
@@ -63,9 +63,9 @@
63
63
  "devDependencies": {
64
64
  "@types/fs-extra": "11.0.4",
65
65
  "@types/jscodeshift": "0.12.0",
66
- "eslint-config-custom": "5.37.1",
66
+ "eslint-config-custom": "5.38.0",
67
67
  "outdent": "^0.8.0",
68
- "tsconfig": "5.37.1"
68
+ "tsconfig": "5.38.0"
69
69
  },
70
70
  "engines": {
71
71
  "node": ">=20.0.0 <=24.x.x",