{"_id":"@buudata/buudata","name":"@buudata/buudata","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@buudata/buudata","version":"1.0.0","description":"Minimalist, dependency-free parser/stringifier for commentable JSON (BuuD), using only Node.js core modules (fs, path).","main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\""},"keywords":["json-with-comments","config","for-filedb","buud","parser","stringify"],"author":{"name":"HonneybuuModz"},"license":"MIT","exports":{".":"./src/index.js"},"_id":"@buudata/buudata@1.0.0","_nodeVersion":"24.9.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-4tNkauPA2/hTXsArkc3snp/8Syqw/Uh5o5qJ/DqbNGOA2OAAhSiW8e250gVa9fZNZc68C10YxKhmOcbV8eW0gw==","shasum":"a3723b84d52fad6d39a0bade351a30c0b77f0869","tarball":"https://registry.npmjs.org/@buudata/buudata/-/buudata-1.0.0.tgz","fileCount":3,"unpackedSize":21415,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDfQEfaY44XbtExt4KRLKEEUXStDpG9DnaibUgmCwTSYQIgB5sJUttBeNJ6bCaQvP99ehBh1e0zMZtw+GxxixYngZc="}]},"_npmUser":{"name":"honneybuu","email":"honneybuu.modz@gmail.com"},"directories":{},"maintainers":[{"name":"honneybuu","email":"honneybuu.modz@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/buudata_1.0.0_1762206543491_0.598294128545102"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-03T21:49:03.383Z","1.0.0":"2025-11-03T21:49:03.675Z","modified":"2025-11-03T21:49:04.003Z"},"maintainers":[{"name":"honneybuu","email":"honneybuu.modz@gmail.com"}],"description":"Minimalist, dependency-free parser/stringifier for commentable JSON (BuuD), using only Node.js core modules (fs, path).","keywords":["json-with-comments","config","for-filedb","buud","parser","stringify"],"author":{"name":"HonneybuuModz"},"license":"MIT","readme":"# <span style=\"color: #8A2BE2; text-shadow: 0 0 10px #DA70D6;\">BuuData</span>\n\n<div align=\"center\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.shields.io/badge/Version-V1.0.0-ff6b6b?style=for-the-badge&logo=tag&logoColor=white&labelColor=1a1a1a\">\n    <img alt=\"Version\" src=\"https://img.shields.io/badge/Version-V1.0.0-ff6b6b?style=for-the-badge&logo=tag&logoColor=white&labelColor=1a1a1a\">\n  </picture>\n\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.shields.io/badge/buu--data-Library-8A2BE2?style=for-the-badge&logo=javascript&logoColor=white&labelColor=1a1a1a\">\n    <img alt=\"BuuData\" src=\"https://img.shields.io/badge/buu--data-Library-8A2BE2?style=for-the-badge&logo=javascript&logoColor=white&labelColor=1a1a1a\">\n  </picture>\n  \n  <a href=\"https://www.npmjs.com/~honneybuu\" target=\"_blank\">\n    <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.shields.io/badge/NPM-Package-DA70D6?style=for-the-badge&logo=npm&logoColor=white&labelColor=1a1a1a\">\n      <img alt=\"NPM Package\" src=\"https://img.shields.io/badge/NPM-Package-DA70D6?style=for-the-badge&logo=npm&logoColor=white&labelColor=1a1a1a\">\n    </picture>\n  </a>\n\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.shields.io/badge/License-MIT-9370DB?style=for-the-badge&labelColor=1a1a1a\">\n    <img alt=\"License\" src=\"https://img.shields.io/badge/License-MIT-9370DB?style=for-the-badge&labelColor=1a1a1a\">\n  </picture>\n\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=white&labelColor=1a1a1a\">\n    <img alt=\"JavaScript Support\" src=\"https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=white&labelColor=1a1a1a\">\n  </picture>\n\n  <br><br>\n\n  <h2 style=\"color: #E6E6FA; text-shadow: 0 0 15px #8A2BE2;\">✨ Minimalist JSON Parser with Comments ✨</h2>\n  <p style=\"color: #DDA0DD; font-size: 1.2em;\">Dependency-free parser/stringifier for commentable JSON (BuuD format)</p>\n</div>\n\n---\n\n## 🚀 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">Features</span>\n\n<div style=\"background: linear-gradient(135deg, #1a1a1a 0%, #2d1b45 100%); padding: 20px; border-radius: 15px; border: 2px solid #8A2BE2; box-shadow: 0 0 20px #8A2BE280;\">\n\n- 💬 *Comment Support* - Both `//` and `/* */` style comments\n- 📄 *JSON Compatible* - Standard JSON with comment extensions\n- 🚫 *Zero Dependencies* - Uses only Node.js core modules (fs, path)\n- ⚡ *Lightweight* - Minimal footprint\n- 🔧 *Simple API* - Easy parse/stringify methods\n- 📁 *File Operations* - Direct file load/save functionality\n- 🛡️ *Type Safe* - Built-in error handling\n- 🌐 *Universal* - Works in any Node.js environment\n- 📦 *CommonJS* - Standard require() syntax\n\n</div>\n\n## 📦 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">Installation</span>\n\n```bash\n# Using npm\nnpm install @buudata/buudata\n\n# Using yarn\nyarn add @buudata/buudata\n\n# Using pnpm\npnpm add @buudata/buudata\n```\n\n## 💡 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">Quick Start</span>\n\n```javascript\nconst { buuDATA } = require('@buudata/buudata');\n\n// Parse BuuD string (JSON with comments)\nconst buudString = `\n// Configuration file\n{\n  \"name\": \"MyApp\", // Application name\n  \"version\": \"1.0.0\",\n  /* \n   * Database settings\n   */\n  \"database\": {\n    \"host\": \"localhost\", // Development server\n    \"port\": 3306\n  }\n}`;\n\n// Parse to JavaScript object\nconst config = buuDATA.parse(buudString);\nconsole.log(config.name); // \"MyApp\"\n\n// Stringify with comments\nconst data = { name: \"Test\", version: \"1.0.0\" };\nconst output = buuDATA.stringify(data, [\n  \"Generated configuration\",\n  \"Created: \" + new Date().toISOString()\n]);\n\nconsole.log(output);\n// Output:\n// // Generated configuration\n// // Created: 2025-11-03T...\n// \n// {\n//   \"name\": \"Test\",\n//   \"version\": \"1.0.0\"\n// }\n```\n\n## 🎯 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">BuuD Format Examples</span>\n\n### Standard JSON File (`users.json`)\n```json\n{\n    \"version\": \"1.0\",\n    \"settings\": {\n        \"beta\": true\n    },\n    \"users\": [\n        {\n            \"id\": 1,\n            \"name\": \"user1\"\n        },\n        {\n            \"id\": 2,\n            \"name\": \"user2\"\n        }\n    ]\n}\n```\n\n### BuuD Format File (`users.buud`)\n```javascript\n{\n    \"version\": \"1.0\", // die Version \n    \"settings\": { /* * die settings \n* ob der User Beta ist\n* */\n        \"beta\": true\n    },\n    \"users\": [\n        {\n            \"id\": 1, // User 1\n            \"name\": \"user1\"\n        },\n        {\n            \"id\": 2, // User 2\n            \"name\": \"user2\"\n        }\n    ]\n}\n```\n\n**Key Differences:**\n- ✅ **Single-line comments** with `//`\n- ✅ **Multi-line comments** with `/* */`\n- ✅ **Inline comments** after properties\n- ✅ **Header comments** for documentation\n- ✅ **Full JSON compatibility** when comments are removed\n\n## 🔧 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">API Reference</span>\n\n### `buuDATA.parse(buudString): Object`\n\nParses a BuuD string (JSON with comments) into a JavaScript object.\n\n```javascript\nconst { buuDATA } = require('@buudata/buudata');\n\nconst buudString = `\n// App configuration\n{\n  \"name\": \"MyApp\", // Application name\n  \"debug\": true\n}`;\n\nconst config = buuDATA.parse(buudString);\n// Returns: { name: \"MyApp\", debug: true }\n```\n\n**Parameters:**\n- `buudString` (string): The BuuD formatted string to parse\n\n**Returns:** JavaScript object\n\n**Throws:** \n- `TypeError` if input is not a string\n- `SyntaxError` if JSON is invalid after comment removal\n\n### `buuDATA.stringify(data, comments?): string`\n\nConverts a JavaScript object to a BuuD formatted string with optional comments.\n\n```javascript\nconst data = {\n  name: \"MyProject\",\n  version: \"2.0.0\",\n  features: [\"parsing\", \"comments\"]\n};\n\n// With single comment\nconst result1 = buuDATA.stringify(data, \"Project configuration\");\n\n// With multiple comments\nconst result2 = buuDATA.stringify(data, [\n  \"MyProject Configuration\",\n  \"Generated on: \" + new Date().toLocaleDateString(),\n  \"Author: HonneyBuuModz\"\n]);\n\nconsole.log(result2);\n// Output:\n// // MyProject Configuration\n// // Generated on: 11/3/2025  \n// // Author: HonneyBuuModz\n//\n// {\n//   \"name\": \"MyProject\",\n//   \"version\": \"2.0.0\", \n//   \"features\": [\n//     \"parsing\",\n//     \"comments\"\n//   ]\n// }\n```\n\n**Parameters:**\n- `data` (any): The JavaScript object to stringify\n- `comments` (string|string[], optional): Header comments to add\n\n**Returns:** BuuD formatted string\n\n### `buuDATA.file.load(filePath): Promise<Object>`\n\nLoads and parses a BuuD file from disk.\n\n```javascript\n// Load configuration file\nconst config = await buuDATA.file.load('./config.buud');\nconsole.log(config);\n\n// Load with absolute path\nconst data = await buuDATA.file.load('/path/to/data.buud');\n```\n\n**Parameters:**\n- `filePath` (string): Path to the BuuD file (relative or absolute)\n\n**Returns:** Promise that resolves to the parsed JavaScript object\n\n**Throws:** File system errors (file not found, permission denied, etc.)\n\n### `buuDATA.file.save(filePath, data, comments?): Promise<void>`\n\nSaves a JavaScript object as a BuuD file with optional comments.\n\n```javascript\nconst userData = {\n  users: [\n    { id: 1, name: \"Alice\", active: true },\n    { id: 2, name: \"Bob\", active: false }\n  ],\n  lastUpdate: new Date().toISOString()\n};\n\n// Save with comments\nawait buuDATA.file.save('./users.buud', userData, [\n  \"User database\",\n  \"Last modified: \" + new Date().toLocaleDateString()\n]);\n\n// Save without comments\nawait buuDATA.file.save('./data.buud', userData);\n```\n\n**Parameters:**\n- `filePath` (string): Destination file path\n- `data` (any): JavaScript object to save\n- `comments` (string|string[], optional): Header comments\n\n**Returns:** Promise that resolves when file is saved\n\n## ⚡ <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">Advanced Usage</span>\n\n### Configuration Management\n```javascript\nconst { buuDATA } = require('@buudata/buudata');\n\nclass ConfigManager {\n  constructor(configPath) {\n    this.configPath = configPath;\n  }\n  \n  async load() {\n    try {\n      this.config = await buuDATA.file.load(this.configPath);\n      return this.config;\n    } catch (error) {\n      // Return default config if file doesn't exist\n      this.config = this.getDefaultConfig();\n      await this.save();\n      return this.config;\n    }\n  }\n  \n  async save() {\n    const comments = [\n      \"Application Configuration\",\n      \"Auto-generated on: \" + new Date().toISOString(),\n      \"Modify with caution!\"\n    ];\n    \n    await buuDATA.file.save(this.configPath, this.config, comments);\n  }\n  \n  get(key) {\n    return this.config[key];\n  }\n  \n  set(key, value) {\n    this.config[key] = value;\n  }\n  \n  getDefaultConfig() {\n    return {\n      version: \"1.0.0\",\n      debug: false,\n      server: {\n        host: \"localhost\",\n        port: 3000\n      },\n      database: {\n        host: \"localhost\",\n        port: 5432,\n        name: \"myapp\"\n      }\n    };\n  }\n}\n\n// Usage\nasync function main() {\n  const config = new ConfigManager('./app.buud');\n  await config.load();\n  \n  console.log('Server port:', config.get('server').port);\n  \n  // Update configuration\n  config.set('debug', true);\n  await config.save();\n}\n\nmain();\n```\n\n### Data Processing Pipeline\n```javascript\nconst { buuDATA } = require('@buudata/buudata');\nconst path = require('path');\n\nclass DataProcessor {\n  constructor(inputDir, outputDir) {\n    this.inputDir = inputDir;\n    this.outputDir = outputDir;\n  }\n  \n  async processFile(filename) {\n    const inputPath = path.join(this.inputDir, filename);\n    const outputPath = path.join(this.outputDir, filename.replace('.buud', '.json'));\n    \n    try {\n      // Load BuuD file\n      const data = await buuDATA.file.load(inputPath);\n      \n      // Process data (example: add timestamp)\n      data.processedAt = new Date().toISOString();\n      data.processor = \"BuuData v1.0.0\";\n      \n      // Save as standard JSON\n      const fs = require('fs/promises');\n      await fs.writeFile(outputPath, JSON.stringify(data, null, 2));\n      \n      console.log(`✅ Processed: ${filename}`);\n      return data;\n    } catch (error) {\n      console.error(`❌ Error processing ${filename}:`, error.message);\n      throw error;\n    }\n  }\n  \n  async processDirectory() {\n    const fs = require('fs/promises');\n    const files = await fs.readdir(this.inputDir);\n    const buudFiles = files.filter(f => f.endsWith('.buud'));\n    \n    console.log(`📁 Processing ${buudFiles.length} BuuD files...`);\n    \n    const results = [];\n    for (const file of buudFiles) {\n      const result = await this.processFile(file);\n      results.push(result);\n    }\n    \n    return results;\n  }\n}\n\n// Usage\nasync function batchProcess() {\n  const processor = new DataProcessor('./input', './output');\n  const results = await processor.processDirectory();\n  console.log(`🎉 Processed ${results.length} files successfully!`);\n}\n\nbatchProcess();\n```\n\n### Database-like File Operations\n```javascript\nconst { buuDATA } = require('@buudata/buudata');\n\nclass BuuDatabase {\n  constructor(filePath) {\n    this.filePath = filePath;\n    this.data = { records: [], metadata: {} };\n  }\n  \n  async initialize() {\n    try {\n      this.data = await buuDATA.file.load(this.filePath);\n    } catch (error) {\n      // Create new database file\n      this.data = {\n        records: [],\n        metadata: {\n          version: \"1.0.0\",\n          created: new Date().toISOString(),\n          lastModified: new Date().toISOString()\n        }\n      };\n      await this.save();\n    }\n  }\n  \n  async save() {\n    this.data.metadata.lastModified = new Date().toISOString();\n    \n    const comments = [\n      \"BuuDatabase File\",\n      \"Records: \" + this.data.records.length,\n      \"Last Modified: \" + new Date().toLocaleString()\n    ];\n    \n    await buuDATA.file.save(this.filePath, this.data, comments);\n  }\n  \n  async insert(record) {\n    const id = this.data.records.length + 1;\n    const newRecord = {\n      id,\n      ...record,\n      createdAt: new Date().toISOString()\n    };\n    \n    this.data.records.push(newRecord);\n    await this.save();\n    return newRecord;\n  }\n  \n  find(query) {\n    return this.data.records.filter(record => {\n      return Object.keys(query).every(key => record[key] === query[key]);\n    });\n  }\n  \n  findById(id) {\n    return this.data.records.find(record => record.id === id);\n  }\n  \n  async update(id, updates) {\n    const record = this.findById(id);\n    if (!record) throw new Error(`Record with id ${id} not found`);\n    \n    Object.assign(record, updates, { updatedAt: new Date().toISOString() });\n    await this.save();\n    return record;\n  }\n  \n  async delete(id) {\n    const index = this.data.records.findIndex(record => record.id === id);\n    if (index === -1) throw new Error(`Record with id ${id} not found`);\n    \n    const deleted = this.data.records.splice(index, 1)[0];\n    await this.save();\n    return deleted;\n  }\n  \n  count() {\n    return this.data.records.length;\n  }\n  \n  all() {\n    return [...this.data.records];\n  }\n}\n\n// Usage\nasync function databaseExample() {\n  const db = new BuuDatabase('./users.buud');\n  await db.initialize();\n  \n  // Insert users\n  const user1 = await db.insert({ name: \"Alice\", email: \"alice@example.com\" });\n  const user2 = await db.insert({ name: \"Bob\", email: \"bob@example.com\" });\n  \n  console.log('Inserted users:', user1, user2);\n  \n  // Query users\n  const allUsers = db.all();\n  console.log('All users:', allUsers);\n  \n  // Find specific user\n  const alice = db.find({ name: \"Alice\" });\n  console.log('Found Alice:', alice);\n  \n  // Update user\n  await db.update(user1.id, { email: \"alice.updated@example.com\" });\n  \n  // Count records\n  console.log('Total users:', db.count());\n  \n  // Delete user\n  await db.delete(user2.id);\n  console.log('Remaining users:', db.count());\n}\n\ndatabaseExample();\n```\n\n## 🛡️ <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">Error Handling</span>\n\n```javascript\nconst { buuDATA } = require('@buudata/buudata');\n\nasync function robustExample() {\n  try {\n    // Handle invalid input type\n    buuDATA.parse(123); // Throws TypeError\n  } catch (error) {\n    if (error instanceof TypeError) {\n      console.log('Invalid input type:', error.message);\n    }\n  }\n  \n  try {\n    // Handle invalid JSON\n    buuDATA.parse('{ invalid json }'); // Throws SyntaxError\n  } catch (error) {\n    if (error instanceof SyntaxError) {\n      console.log('Invalid JSON syntax:', error.message);\n    }\n  }\n  \n  try {\n    // Handle file not found\n    await buuDATA.file.load('./nonexistent.buud');\n  } catch (error) {\n    if (error.code === 'ENOENT') {\n      console.log('File not found, creating default...');\n      const defaultData = { initialized: true };\n      await buuDATA.file.save('./nonexistent.buud', defaultData);\n    }\n  }\n  \n  try {\n    // Handle permission errors\n    await buuDATA.file.save('/root/restricted.buud', {});\n  } catch (error) {\n    if (error.code === 'EACCES') {\n      console.log('Permission denied, trying alternative location...');\n      await buuDATA.file.save('./restricted.buud', {});\n    }\n  }\n}\n\nrobustExample();\n```\n\n## 🎯 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">Use Cases</span>\n\n**Perfect for:**\n- 🔧 **Configuration Files** - App settings with inline documentation\n- 📊 **Data Storage** - Lightweight JSON database with comments\n- 🗃️ **File-based Databases** - Simple record storage\n- 📝 **Documentation** - Self-documenting data files\n- ⚙️ **Build Configurations** - Commented build settings\n- 🎮 **Game Data** - Level configurations with notes\n- 📋 **Form Schemas** - UI form definitions with explanations\n- 🌐 **API Configurations** - Endpoint settings with descriptions\n\n## 🔍 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">Technical Details</span>\n\n<div style=\"background: linear-gradient(135deg, #1a1a1a 0%, #2d1b45 100%); padding: 20px; border-radius: 15px; border: 2px solid #8A2BE2; box-shadow: 0 0 20px #8A2BE280;\">\n\n- ✅ **Node.js Core Only** - fs/promises, path modules\n- ✅ **CommonJS Module** - Standard require() syntax\n- ✅ **Zero Dependencies** - No external packages required\n- ✅ **Comment Regex** - Handles both `//` and `/* */` styles\n- ✅ **Error Safe** - Comprehensive error handling\n- ✅ **Path Resolution** - Absolute path conversion\n- ✅ **UTF-8 Encoding** - Full Unicode support\n- ✅ **Memory Efficient** - Minimal memory footprint\n- ✅ **Cross-Platform** - Works on Windows, macOS, Linux\n\n</div>\n\n## 📋 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">Package Contents</span>\n\n- 📃 `src/index.js` - Main BuuData library\n- 📜 `package.json` - Package configuration\n- 📖 `README.md` - This comprehensive documentation\n\n## 🤝 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">Contributing</span>\n\nWe welcome contributions! You can:\n\n- 🐛 Report bugs and issues\n- 💡 Suggest new features and improvements\n- 🔧 Submit pull requests\n- 📖 Improve documentation\n- 🌟 Rate and share the package\n\n## 📄 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">License</span>\n\n<div style=\"background: linear-gradient(135deg, #1a1a1a 0%, #2d1b45 100%); padding: 15px; border-radius: 10px; border-left: 4px solid #9370DB;\">\n\n**MIT License** - Free and Open Source\n\nThis project is licensed under the MIT License, which means you are free to:\n- ✅ *Use* - Use this library in personal and commercial projects\n- ✅ *Modify* - Change and customize the code to fit your needs  \n- ✅ *Distribute* - Share and redistribute the library\n- ✅ *Private Use* - Use in private projects without restrictions\n- ✅ *Commercial Use* - Use in commercial applications and products\n\nThe only requirement is to include the original copyright notice and license terms.\n\n</div>\n\n## 🌐 <span style=\"color: #BA55D3; text-shadow: 0 0 8px #DA70D6;\">Connect with Us</span>\n\n<div align=\"center\">\n  <a href=\"https://whatsapp.com/channel/0029VaCABrQ0AgWFWiCXq13W\" target=\"_blank\">\n    <img src=\"https://img.shields.io/badge/WA_CHANNEL-25D366?style=for-the-badge&logo=whatsapp&logoColor=white&labelColor=1a1a1a\" alt=\"WhatsApp Channel\" />\n  </a>\n  \n  <a href=\"https://t.me/honneybuuclient\" target=\"_blank\">\n    <img src=\"https://img.shields.io/badge/TG_CHANNEL-0088CC?style=for-the-badge&logo=telegram&logoColor=white&labelColor=1a1a1a\" alt=\"Telegram Channel\" />\n  </a>\n\n  <a href=\"https://www.instagram.com/honneybuu.modz\" target=\"_blank\">\n    <img src=\"https://img.shields.io/badge/IG_ACCOUNT-E4405F?style=for-the-badge&logo=instagram&logoColor=white&labelColor=1a1a1a\" alt=\"Instagram Account\" />\n  </a>\n</div>\n\n---\n\n<div align=\"center\">\n  <p style=\"color: #DDA0DD; font-size: 1.1em;\">\n    Made with 💜 by <strong style=\"color: #E6E6FA; text-shadow: 0 0 10px #8A2BE2;\">HonneyBuuModz</strong>\n  </p>\n  \n  <p style=\"color: #BA55D3;\">\n    🌟 <em>If this project helped you, please consider giving it a star!</em> 🌟\n  </p>\n</div>\n\n<div align=\"center\">\n  <img src=\"https://img.shields.io/badge/Built_with-💜_and_🍁-8A2BE2?style=for-the-badge&labelColor=1a1a1a\" alt=\"Built with love and coffee\" />\n</div>","readmeFilename":"README.md","_rev":"1-bdf541a72e9af748a161951bbdf629e0"}