{"version":3,"sources":["../../src/prepareContentDeclaration.ts"],"sourcesContent":["import {\n  deepTransformNode,\n  NodeType,\n  type Dictionary,\n  type FileContent,\n  type FileContentConstructor,\n  type InsertionContent,\n  type InsertionContentConstructor,\n  type MarkdownContent,\n  type MarkdownContentConstructor,\n  type Plugins,\n} from '@intlayer/core';\nimport { existsSync, mkdirSync, writeFileSync } from 'fs';\nimport { join } from 'path';\n\n/**\n * Write file plugin\n */\n\nconst writeFilePlugin: Plugins = {\n  id: 'write-file-plugin',\n  canHandle: (node) =>\n    typeof node === 'object' && node?.nodeType === NodeType.File,\n  transform: (node: FileContent) => {\n    const fileContent = node.content;\n    const filePath = node.fixedPath;\n\n    if (typeof fileContent !== 'string') {\n      throw new Error('File content must be a string');\n    }\n\n    if (typeof filePath !== 'string') {\n      throw new Error('File path must be a string');\n    }\n\n    // Write the file to the file system\n    try {\n      const abolsuteFilePath = join(process.cwd(), filePath);\n\n      // Create the file directory if it doesn't exist\n      const fileDirectory = join(process.cwd(), filePath);\n      if (!fileDirectory.startsWith(process.cwd())) {\n        throw new Error('File directory not found');\n      }\n\n      if (!existsSync(fileDirectory)) {\n        mkdirSync(fileDirectory, { recursive: true });\n      }\n\n      // Write the file\n      writeFileSync(abolsuteFilePath, fileContent);\n    } catch (error) {\n      throw new Error(`Error writing file to ${filePath}: ${error}`);\n    }\n\n    const transformedFileContent: FileContentConstructor = {\n      nodeType: NodeType.File,\n      [NodeType.File]: node.file,\n    };\n\n    return transformedFileContent;\n  },\n};\n\n/**\n * Markdown file plugin\n */\n\nconst mardownFilePlugin: Plugins = {\n  id: 'markdown-file-plugin',\n  canHandle: (node) =>\n    typeof node === 'object' && node?.nodeType === NodeType.Markdown,\n  transform: (node: MarkdownContent, props, deepTransformNode) => {\n    const simplifiedMarkdownNode: MarkdownContentConstructor = {\n      nodeType: NodeType.Markdown,\n      [NodeType.Markdown]: deepTransformNode(node.markdown, props),\n    };\n\n    return simplifiedMarkdownNode;\n  },\n};\n\n/**\n * Insertion file plugin\n */\n\nconst insertionFilePlugin: Plugins = {\n  id: 'insertion-file-plugin',\n  canHandle: (node) =>\n    typeof node === 'object' && node?.nodeType === NodeType.Insertion,\n  transform: (node: InsertionContent, props, deepTransformNode) => {\n    const simplifiedInsertionNode: InsertionContentConstructor = {\n      nodeType: NodeType.Insertion,\n      [NodeType.Insertion]: deepTransformNode(node.insertion, props),\n    };\n\n    return simplifiedInsertionNode;\n  },\n};\n\nexport const prepareContentDeclaration = async (dictionary: Dictionary) =>\n  deepTransformNode(dictionary, {\n    dictionaryKey: dictionary.key,\n    keyPath: [],\n    plugins: [writeFilePlugin, mardownFilePlugin, insertionFilePlugin],\n  });\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,OASK;AACP,SAAS,YAAY,WAAW,qBAAqB;AACrD,SAAS,YAAY;AAMrB,MAAM,kBAA2B;AAAA,EAC/B,IAAI;AAAA,EACJ,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,SAAS;AAAA,EAC1D,WAAW,CAAC,SAAsB;AAChC,UAAM,cAAc,KAAK;AACzB,UAAM,WAAW,KAAK;AAEtB,QAAI,OAAO,gBAAgB,UAAU;AACnC,YAAM,IAAI,MAAM,+BAA+B;AAAA,IACjD;AAEA,QAAI,OAAO,aAAa,UAAU;AAChC,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AAGA,QAAI;AACF,YAAM,mBAAmB,KAAK,QAAQ,IAAI,GAAG,QAAQ;AAGrD,YAAM,gBAAgB,KAAK,QAAQ,IAAI,GAAG,QAAQ;AAClD,UAAI,CAAC,cAAc,WAAW,QAAQ,IAAI,CAAC,GAAG;AAC5C,cAAM,IAAI,MAAM,0BAA0B;AAAA,MAC5C;AAEA,UAAI,CAAC,WAAW,aAAa,GAAG;AAC9B,kBAAU,eAAe,EAAE,WAAW,KAAK,CAAC;AAAA,MAC9C;AAGA,oBAAc,kBAAkB,WAAW;AAAA,IAC7C,SAAS,OAAO;AACd,YAAM,IAAI,MAAM,yBAAyB,QAAQ,KAAK,KAAK,EAAE;AAAA,IAC/D;AAEA,UAAM,yBAAiD;AAAA,MACrD,UAAU,SAAS;AAAA,MACnB,CAAC,SAAS,IAAI,GAAG,KAAK;AAAA,IACxB;AAEA,WAAO;AAAA,EACT;AACF;AAMA,MAAM,oBAA6B;AAAA,EACjC,IAAI;AAAA,EACJ,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,SAAS;AAAA,EAC1D,WAAW,CAAC,MAAuB,OAAOA,uBAAsB;AAC9D,UAAM,yBAAqD;AAAA,MACzD,UAAU,SAAS;AAAA,MACnB,CAAC,SAAS,QAAQ,GAAGA,mBAAkB,KAAK,UAAU,KAAK;AAAA,IAC7D;AAEA,WAAO;AAAA,EACT;AACF;AAMA,MAAM,sBAA+B;AAAA,EACnC,IAAI;AAAA,EACJ,WAAW,CAAC,SACV,OAAO,SAAS,YAAY,MAAM,aAAa,SAAS;AAAA,EAC1D,WAAW,CAAC,MAAwB,OAAOA,uBAAsB;AAC/D,UAAM,0BAAuD;AAAA,MAC3D,UAAU,SAAS;AAAA,MACnB,CAAC,SAAS,SAAS,GAAGA,mBAAkB,KAAK,WAAW,KAAK;AAAA,IAC/D;AAEA,WAAO;AAAA,EACT;AACF;AAEO,MAAM,4BAA4B,OAAO,eAC9C,kBAAkB,YAAY;AAAA,EAC5B,eAAe,WAAW;AAAA,EAC1B,SAAS,CAAC;AAAA,EACV,SAAS,CAAC,iBAAiB,mBAAmB,mBAAmB;AACnE,CAAC;","names":["deepTransformNode"]}