{"_id":"@cafeine-software/arbo-crafter","_rev":"15-b08eb1771a5e4304986777e0fc6740ee","name":"@cafeine-software/arbo-crafter","dist-tags":{"latest":"1.1.3"},"versions":{"1.0.4":{"name":"@cafeine-software/arbo-crafter","version":"1.0.4","keywords":["filetree","tree","structure","generator","arborescence","build","mkdir","create","directory","folder","files","folders","generate","cp","mv"],"author":{"name":"Quentin Lamamy","email":"contact@quentin-lamamy.fr"},"license":"CC BY-NC-SA 4.0","_id":"@cafeine-software/arbo-crafter@1.0.4","maintainers":[{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"}],"homepage":"https://github.com/Cafeine-Software/ArboCrafter#readme","bugs":{"url":"https://github.com/Cafeine-Software/ArboCrafter/issues"},"dist":{"shasum":"5313531916f82c12e04e28eac936e2e410063c34","tarball":"https://registry.npmjs.org/@cafeine-software/arbo-crafter/-/arbo-crafter-1.0.4.tgz","fileCount":5,"integrity":"sha512-Q1Z+HIYvuWw/pLFgupUHqoKuVmpmtvRNKBqJ+CbZ49VdHsgoVber5ar+SYQNiHcvU7ZZsENzyNNLAltRqtUTBg==","signatures":[{"sig":"MEUCIAQycxy8oJOm4kboYh6xu7G5PQcH1ki9boI9EItY8AD5AiEAntwZ0HS5uCu1ys0skRTRn5xNTLZNszqLRx0Q8lngaGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280600},"main":"index.js","type":"module","gitHead":"6d37b3ae8b07e36f8dcd6ea925a627dccf4bc8a9","_npmUser":{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"},"repository":{"url":"git+https://github.com/Cafeine-Software/ArboCrafter.git","type":"git"},"_npmVersion":"11.1.0","description":"ArboCrafter is a simple tool to generate a tree structure from a list of structure description.","directories":{},"_nodeVersion":"23.5.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/arbo-crafter_1.0.4_1742873353955_0.8732171722910462","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@cafeine-software/arbo-crafter","version":"1.0.5","keywords":["filetree","tree","structure","generator","arborescence","build","mkdir","create","directory","folder","files","folders","generate","cp","mv"],"author":{"name":"Quentin Lamamy","email":"contact@quentin-lamamy.fr"},"license":"CC BY-NC-SA 4.0","_id":"@cafeine-software/arbo-crafter@1.0.5","maintainers":[{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"}],"homepage":"https://github.com/Cafeine-Software/ArboCrafter#readme","bugs":{"url":"https://github.com/Cafeine-Software/ArboCrafter/issues"},"dist":{"shasum":"c20b3142e53481f942eeca3c5383db80d84c0f1e","tarball":"https://registry.npmjs.org/@cafeine-software/arbo-crafter/-/arbo-crafter-1.0.5.tgz","fileCount":5,"integrity":"sha512-wE0vgK46R0aZWWTAH+sq2s8Hjcy8WydlKziyUSbwHUDPbe2UHPRx3FYDnjfcM7LIhum9o5tqw+S4rVzaUZieMg==","signatures":[{"sig":"MEYCIQCUMBgvW20akeNCPqPfxJetAM4msC5ez5K/JjlXtPWKWAIhAMJECO0qiIBG+47Cae3SlxFVvvjfLmDn1VYMPTvfUU3t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280857},"main":"arboCrafter.js","type":"module","gitHead":"5fba06e7fbd67b14558cd7db6d25f5f028532c08","_npmUser":{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"},"repository":{"url":"git+https://github.com/Cafeine-Software/ArboCrafter.git","type":"git"},"_npmVersion":"11.7.0","description":"ArboCrafter is a simple tool to generate a tree structure from a list of structure description.","directories":{},"_nodeVersion":"25.2.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/arbo-crafter_1.0.5_1769426046741_0.39229358024747385","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@cafeine-software/arbo-crafter","version":"1.1.0","keywords":["filetree","tree","structure","generator","arborescence","build","mkdir","create","directory","folder","files","folders","generate","cp","mv"],"author":{"name":"Quentin Lamamy","email":"contact@quentin-lamamy.fr"},"license":"MPL-2.0","_id":"@cafeine-software/arbo-crafter@1.1.0","maintainers":[{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"}],"homepage":"https://github.com/Cafeine-Software/ArboCrafter#readme","bugs":{"url":"https://github.com/Cafeine-Software/ArboCrafter/issues"},"dist":{"shasum":"a3e373c317f0e03156db82f83aa52af9316bc2cc","tarball":"https://registry.npmjs.org/@cafeine-software/arbo-crafter/-/arbo-crafter-1.1.0.tgz","fileCount":4,"integrity":"sha512-X5DGCvx71PA00FnSBug2oXwHauV5XWbL4xTztdeOc+G+BYQ5fOOEKLpz+YGYFLRgSfMojfLHfkPKy7Y+dBEVGw==","signatures":[{"sig":"MEUCIQDvOA2oVS0LALALf1SY/4D7ml+biWj45/OGu0LdsZkqDwIgKfFveEgnCbJJZKVbwIhpOBsQGKObKIhCzPGraFkU+gQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30846},"main":"arboCrafter.js","type":"module","gitHead":"0dcc3987f6bb001a1dc1223e666c00406b16f9e2","scripts":{"test":"node --test"},"_npmUser":{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"},"repository":{"url":"git+https://github.com/Cafeine-Software/ArboCrafter.git","type":"git"},"_npmVersion":"11.12.1","description":"ArboCrafter is a simple tool to generate a tree structure from a list of structure description.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/arbo-crafter_1.1.0_1787013024638_0.13963041496046436","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@cafeine-software/arbo-crafter","version":"1.1.1","keywords":["filetree","tree","structure","generator","arborescence","build","mkdir","create","directory","folder","files","folders","generate","cp","mv"],"author":{"name":"Quentin Lamamy","email":"contact@quentin-lamamy.fr"},"license":"MPL-2.0","_id":"@cafeine-software/arbo-crafter@1.1.1","maintainers":[{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"}],"homepage":"https://github.com/Cafeine-Software/ArboCrafter#readme","bugs":{"url":"https://github.com/Cafeine-Software/ArboCrafter/issues"},"dist":{"shasum":"2287537dc37a528c1487d615cae7c23d23653176","tarball":"https://registry.npmjs.org/@cafeine-software/arbo-crafter/-/arbo-crafter-1.1.1.tgz","fileCount":4,"integrity":"sha512-Nm8PkSO5FByrG7QRfyjyneCMWhF4+rLimrqoe7u+x8E/mj3FVInjHV1TNiA51RfFGLLr76h/X+gqjxBiDsEngQ==","signatures":[{"sig":"MEUCIQDDNZJKk7UTBNIdjMZJw22MKKlpB2530ZPWOSF8japcqwIgN/K2Zoobgbx3BwSn5asDTTR7X7l//iXdchJP7TzsdHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30769},"main":"arboCrafter.js","type":"module","gitHead":"23535b4d45a438595478817a7dff5c656b903348","scripts":{"test":"node --test"},"_npmUser":{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"},"repository":{"url":"git+https://github.com/Cafeine-Software/ArboCrafter.git","type":"git"},"_npmVersion":"11.12.1","description":"ArboCrafter is a simple tool to generate a tree structure from a list of structure description.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/arbo-crafter_1.1.1_1787013135225_0.029365246473601836","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@cafeine-software/arbo-crafter","version":"1.1.2","keywords":["filetree","tree","structure","generator","arborescence","build","mkdir","create","directory","folder","files","folders","generate","cp","mv"],"author":{"name":"Quentin Lamamy","email":"contact@quentin-lamamy.fr"},"license":"MPL-2.0","_id":"@cafeine-software/arbo-crafter@1.1.2","maintainers":[{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"}],"homepage":"https://github.com/Cafeine-Software/ArboCrafter#readme","bugs":{"url":"https://github.com/Cafeine-Software/ArboCrafter/issues"},"dist":{"shasum":"883f511b9ee93377dedad00f4c65ae7480df11c0","tarball":"https://registry.npmjs.org/@cafeine-software/arbo-crafter/-/arbo-crafter-1.1.2.tgz","fileCount":4,"integrity":"sha512-MN03PiYw/8vr/44WNAxzsw3D1rvpQIM07g4bj6YLBW7XcLs+g9v9N4js8Q+Jj5rL/9SH9Cx5rXCwAC8GbiU3gw==","signatures":[{"sig":"MEYCIQDibylgagB4tNvQ11gIDm9bnXEcoGrjcLevBdzcNMg/hgIhAPU0/Jo28VrgQXGVPgS42DIfZMt+ssHXdqxfo47MylQM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30769},"main":"arboCrafter.js","type":"module","gitHead":"23535b4d45a438595478817a7dff5c656b903348","scripts":{"test":"node --test"},"_npmUser":{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"},"repository":{"url":"git+https://github.com/Cafeine-Software/ArboCrafter.git","type":"git"},"_npmVersion":"11.12.1","description":"ArboCrafter is a simple tool to generate a tree structure from a list of structure description.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/arbo-crafter_1.1.2_1787013291788_0.3814047744777511","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@cafeine-software/arbo-crafter","version":"1.1.3","description":"ArboCrafter is a simple tool to generate a tree structure from a list of structure description.","homepage":"https://github.com/Cafeine-Software/ArboCrafter#readme","repository":{"type":"git","url":"git+https://github.com/Cafeine-Software/ArboCrafter.git"},"license":"MPL-2.0","author":{"name":"Quentin Lamamy","email":"contact@quentin-lamamy.fr"},"type":"module","main":"arboCrafter.js","scripts":{"test":"node --test"},"keywords":["filetree","tree","structure","generator","arborescence","build","mkdir","create","directory","folder","files","folders","generate","cp","mv"],"gitHead":"98681fb3395364b455e38516ac9ac175b76e001e","_id":"@cafeine-software/arbo-crafter@1.1.3","bugs":{"url":"https://github.com/Cafeine-Software/ArboCrafter/issues"},"_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-qSqEHk7lXlkuTB4JXvOtX3lZw4W5bUR/toWd+y7Gxv+4GfzBFqaT9zeCPftS/VE2R5eu58fFfT6dRjuUrsgM3w==","shasum":"f06d62dee4a15ec2f6d17f118d335bb66bf7941c","tarball":"https://registry.npmjs.org/@cafeine-software/arbo-crafter/-/arbo-crafter-1.1.3.tgz","fileCount":4,"unpackedSize":24696,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC9fSET0x8Dr28OUVD4x5L1lSBEnX5dJuBzM87yH/nU9wIgOxSVBSR6+wdVlXQhACNl1elSOHLqZ1j/TchVrUGfz6Y="}]},"_npmUser":{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"},"directories":{},"maintainers":[{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/arbo-crafter_1.1.3_1787015282631_0.5857041850965368"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-25T02:17:26.228Z","modified":"2026-08-18T01:08:02.956Z","1.0.0":"2025-03-25T02:17:26.622Z","1.0.1":"2025-03-25T02:18:26.931Z","1.0.2":"2025-03-25T02:37:58.709Z","1.0.3":"2025-03-25T03:20:28.447Z","1.0.4":"2025-03-25T03:29:14.304Z","1.0.5":"2026-01-26T11:14:06.882Z","1.1.0":"2026-08-18T00:30:24.790Z","1.1.1":"2026-08-18T00:32:15.362Z","1.1.2":"2026-08-18T00:34:51.921Z","1.1.3":"2026-08-18T01:08:02.773Z"},"bugs":{"url":"https://github.com/Cafeine-Software/ArboCrafter/issues"},"author":{"name":"Quentin Lamamy","email":"contact@quentin-lamamy.fr"},"license":"MPL-2.0","homepage":"https://github.com/Cafeine-Software/ArboCrafter#readme","keywords":["filetree","tree","structure","generator","arborescence","build","mkdir","create","directory","folder","files","folders","generate","cp","mv"],"repository":{"type":"git","url":"git+https://github.com/Cafeine-Software/ArboCrafter.git"},"description":"ArboCrafter is a simple tool to generate a tree structure from a list of structure description.","maintainers":[{"name":"quentin_lamamy","email":"contact@quentin-lamamy.fr"}],"readme":"<div align=\"center\">\n\n![ArboCrafter](media/wideLogo_dark.webp)\n\n![Node](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge&logo=node.js&logoColor=white)\n[![Npm](https://img.shields.io/badge/npm-red?style=for-the-badge&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cafeine-software/arbo-crafter)\n\n[Introduction](#Introduction) • [Features](#Features) • [Installation](#Installation) • [Usage](#Usage) • [License](#License) • [Author](#Author)\n\n<br/>\n</div>\n\n# Introduction\nSimple and efficient way to create a complete filetree in one function. I created it to simplify the build process of my own framework (i know this information about my life is not useful xD)\n\n# Features\n- Create the folders structure\n- Create files\n- Copy file\n- Copy a folder with its structure\n- Copy all files from a folder (flattened, without structure)\n\n# Installation\n```bash\nnpm i @cafeine-software/arbo-crafter\n```\n\n# Usage\n\n```javascript\nimport { buildFileTree } from '@cafeine-software/arbo-crafter';\n\n// ⬇ Define the structure of the filetree you want to create\nconst fileTreeStructure = {}\n\n// ⬇ Where to create the filetree\nconst outputFolder = \"out\"\n\n// ⬇ Will do nothing, look at examples below :)\nbuildFileTree(fileTreeStructure,outputFolder)\n```\n\n## Folder creation\nAny object in the file tree structure definition will be considered as folder\n\n```javascript\nconst fileTreeStructure = {\n    folder1: {}\n}\n\nbuildFileTree(fileTreeStructure,outputFolder)\n\n// Result : \n// - Create a folder 'folder1'\n```\n\n## File creation\n\n```javascript\nconst fileTreeStructure = {\n    folder1:{\n        'example.txt':'example content'\n    }\n}\n\nbuildFileTree(fileTreeStructure,outputFolder)\n\n// Result :\n// - Create a folder 'folder1'\n// - Create a file 'example.txt' with content 'example content'\n```\n\n## File Copy\n\n```javascript\nconst fileTreeStructure = {\n    folder1:{\n        'example.txt':'example content',\n        '.gitignore.copy': `@.gitignore`,\n    }\n}\n\nbuildFileTree(fileTreeStructure,outputFolder)\n\n// Result :\n// - Create a folder 'folder1'\n// - Create a file 'example.txt' with content 'example content'\n// - Copy file '.gitignore' as '.gitignore.copy'\n```\n\n## Folder Copy (with structure)\n\nWill copy the entire folder with its structure using `@`\n\n```javascript\nconst fileTreeStructure = {\n    folderCopy:\"@../../srcFolderPath\"\n}\n\nbuildFileTree(fileTreeStructure,outputFolder)\n\n// Result :\n// - Copy folder '../../srcFolderPath' into 'folderCopy' keeping the directory structure\n```\n\n## Folder Copy (flattened)\n\nWill copy all files from the source folder and its subfolders, flattened into a single directory using `@!`\n\n```javascript\nconst fileTreeStructure = {\n    folderFlat:\"@!../../srcFolderPath\"\n}\n\nbuildFileTree(fileTreeStructure,outputFolder)\n\n// Result :\n// - Copy all files from '../../srcFolderPath' and its subfolders into 'folderFlat' (no subdirectories)\n```\n\n## Syntax reference\n\n| Syntax | Type | Description |\n|--------|------|-------------|\n| `{ key: {} }` | Folder | Creates an empty folder |\n| `{ key: { ... } }` | Folder | Creates a folder with nested content |\n| `{ 'file.txt': 'content' }` | File | Creates a file with the given content |\n| `{ 'file.txt': '@path' }` | File copy | Copies a file from the given path |\n| `{ folder: '@path' }` | Folder copy | Copies a folder keeping its structure |\n| `{ folder: '@!path' }` | Folder copy (flat) | Copies only files, flattened into one directory |\n\n## Test\n\n```\nnpm test\n```\n\n# Changelog\n\n- 18/08/2026 : v1.1.0 — Fixed folder copy, added @! flatten syntax, switched to MPL 2.0\n\n# License\n\n[![Licence](https://img.shields.io/badge/MPL%202.0-00d230?style=for-the-badge&logo=mozilla&logoColor=white)](https://www.mozilla.org/en-US/MPL/2.0/)\n\n# Author\n\n[<img src=\"https://raw.githubusercontent.com/quentinlamamy/quentinlamamy/b88fe446526c98aac889c6b21611a59c41bcbc3d/media/quentinDino_opti.svg\" height=80/>](https://github.com/quentinlamamy)","readmeFilename":"README.md"}