{"_id":"@archlex/icons","_rev":"3-db9033aa08aafd3791df6ec670075f1a","name":"@archlex/icons","dist-tags":{"latest":"0.2.3"},"versions":{"0.2.1":{"name":"@archlex/icons","version":"0.2.1","keywords":["architecture","diagrams","icons","svg","node"],"author":{"name":"Alexis Sgarbossa"},"license":"MIT","_id":"@archlex/icons@0.2.1","maintainers":[{"name":"baires","email":"alexis@sgarbossa.com.ar"}],"homepage":"https://github.com/archlex/archlex#readme","bugs":{"url":"https://github.com/archlex/archlex/issues"},"dist":{"shasum":"7f2ca7fae526d1a7530a6be458cc35252e44a3c5","tarball":"https://registry.npmjs.org/@archlex/icons/-/icons-0.2.1.tgz","fileCount":31,"integrity":"sha512-CAm0pu712kx0fdElgxUG2GcSpY90K3umyHR4T0Vi2ukHS32n6P+ZhOzTMY3j0/9F3XvCgAuEPhv0t0ArKb2H5g==","signatures":[{"sig":"MEUCIQDq8+TPHk/z4vva70MZTOlEoRLoHISKI0I4t+m4DrFNNQIgUxYOlk703QZ0cwWnXj0/9SakMOCczdVPWtOMa2x/qyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":102526},"main":"./dist/index.js","type":"module","_from":"file:archlex-icons-0.2.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run --passWithNoTests","build":"vite build && tsc --emitDeclarationOnly"},"_npmUser":{"name":"baires","email":"alexis@sgarbossa.com.ar"},"_resolved":"/private/var/folders/zd/8ks_wyz92zz5_58st77x0jm80000gn/T/5fc2aa7bb842285f8a37d9a390d9d674/archlex-icons-0.2.1.tgz","_integrity":"sha512-CAm0pu712kx0fdElgxUG2GcSpY90K3umyHR4T0Vi2ukHS32n6P+ZhOzTMY3j0/9F3XvCgAuEPhv0t0ArKb2H5g==","repository":{"url":"git+https://github.com/archlex/archlex.git","type":"git","directory":"packages/icons"},"_npmVersion":"10.9.2","description":"Icon loading and manipulation utilities for ArchLex (Node.js)","directories":{},"_nodeVersion":"23.7.0","dependencies":{"@xmldom/xmldom":"0.9.10","@archlex/icons-core":"0.2.1","@archlex/icons-node":"0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.1.0","vitest":"^3.0.5","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/icons_0.2.1_1786158536132_0.29782642090524236","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@archlex/icons","version":"0.2.2","keywords":["architecture","diagrams","icons","svg","node"],"author":{"name":"Alexis Sgarbossa"},"license":"MIT","_id":"@archlex/icons@0.2.2","maintainers":[{"name":"baires","email":"alexis@sgarbossa.com.ar"}],"homepage":"https://github.com/baires/archlex#readme","bugs":{"url":"https://github.com/baires/archlex/issues"},"dist":{"shasum":"14ed0c82836c2f5066271e100821456e1797996b","tarball":"https://registry.npmjs.org/@archlex/icons/-/icons-0.2.2.tgz","fileCount":31,"integrity":"sha512-L1VeC4x5lD0FdU6klgmHDaLbVt5mINnJsBOuofUrbRsr6TzkbdQdV7fJQpyCkK0Xa33jHL94+vVwMjh/kisOIA==","signatures":[{"sig":"MEYCIQCteCAlxtpxL7rzgR5qtzo+b85jSPNGxx1GHwAHZoZN5AIhAKcErgTv4JNvXuD6RHBLE18g4ZeKZbLhiqNMyg2Yj9Sm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archlex%2ficons@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91905},"main":"./dist/index.js","type":"module","_from":"file:archlex-icons-0.2.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run --passWithNoTests","build":"vite build && tsc --emitDeclarationOnly"},"_npmUser":{"name":"baires","email":"alexis@sgarbossa.com.ar"},"_resolved":"/tmp/b58f4a45f9a5208db50f8037f817c2d3/archlex-icons-0.2.2.tgz","_integrity":"sha512-L1VeC4x5lD0FdU6klgmHDaLbVt5mINnJsBOuofUrbRsr6TzkbdQdV7fJQpyCkK0Xa33jHL94+vVwMjh/kisOIA==","repository":{"url":"git+https://github.com/baires/archlex.git","type":"git","directory":"packages/icons"},"_npmVersion":"11.16.0","description":"Icon loading and manipulation utilities for ArchLex (Node.js)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@xmldom/xmldom":"0.9.10","@archlex/icons-core":"0.2.2","@archlex/icons-node":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.1.0","vitest":"^3.0.5","typescript":"^5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/icons_0.2.2_1786572697239_0.19397290108621723","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@archlex/icons","version":"0.2.3","description":"Icon loading and manipulation utilities for ArchLex (Node.js)","keywords":["architecture","diagrams","icons","svg","node"],"repository":{"type":"git","url":"git+https://github.com/baires/archlex.git","directory":"packages/icons"},"license":"MIT","author":{"name":"Alexis Sgarbossa"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"publishConfig":{"access":"public"},"engines":{"node":">=22.0.0"},"dependencies":{"@xmldom/xmldom":"0.9.10","@archlex/icons-core":"0.2.3","@archlex/icons-node":"0.2.3"},"devDependencies":{"typescript":"^5.7.3","vite":"^6.1.0","vitest":"^3.0.5"},"scripts":{"build":"vite build && tsc --emitDeclarationOnly","test":"vitest run --passWithNoTests"},"_id":"@archlex/icons@0.2.3","bugs":{"url":"https://github.com/baires/archlex/issues"},"homepage":"https://github.com/baires/archlex#readme","_integrity":"sha512-B/0swMF3j4roqxJOlgLzOu6SME4hXf3icAXp3y+Kc6tPv1ZRJqpADBJXUAjLof4dBdDhxWxMFmEwuwD9MKraUw==","_resolved":"/tmp/57fe8f9d05c644394320e64fe5e3b62d/archlex-icons-0.2.3.tgz","_from":"file:archlex-icons-0.2.3.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-B/0swMF3j4roqxJOlgLzOu6SME4hXf3icAXp3y+Kc6tPv1ZRJqpADBJXUAjLof4dBdDhxWxMFmEwuwD9MKraUw==","shasum":"21030e2ebacc6a3889a27188679887045d2b7a69","tarball":"https://registry.npmjs.org/@archlex/icons/-/icons-0.2.3.tgz","fileCount":31,"unpackedSize":91905,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@archlex%2ficons@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC7Sl+d6ZoFQEE/mhGAAV/snpXlc/90kysaWr6F/FJiagIhAJFpWHHlPczu4OLOuTwg1jXT4DchASwa1gjwe/zsSsFj"}]},"_npmUser":{"name":"baires","email":"alexis@sgarbossa.com.ar"},"directories":{},"maintainers":[{"name":"baires","email":"alexis@sgarbossa.com.ar"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/icons_0.2.3_1786754796699_0.5201791027105755"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-08T03:08:55.975Z","modified":"2026-08-15T00:46:37.150Z","0.2.1":"2026-08-08T03:08:56.320Z","0.2.2":"2026-08-12T22:11:37.388Z","0.2.3":"2026-08-15T00:46:36.860Z"},"bugs":{"url":"https://github.com/baires/archlex/issues"},"author":{"name":"Alexis Sgarbossa"},"license":"MIT","homepage":"https://github.com/baires/archlex#readme","keywords":["architecture","diagrams","icons","svg","node"],"repository":{"type":"git","url":"git+https://github.com/baires/archlex.git","directory":"packages/icons"},"description":"Icon loading and manipulation utilities for ArchLex (Node.js)","maintainers":[{"name":"baires","email":"alexis@sgarbossa.com.ar"}],"readme":"# @archlex/icons\n\nIcon loading and manipulation utilities for ArchLex (Node.js).\n\n## Installation\n\n```bash\nnpm install @archlex/icons\n```\n\n## Usage\n\n```typescript\nimport { IconLoader, loadIconsFromDirectory } from '@archlex/icons';\n\n// Load icons from a directory\nconst icons = await loadIconsFromDirectory('./icons');\n\n// Create an icon loader\nconst loader = new IconLoader({\n  searchPaths: ['./icons', './custom-icons']\n});\n\n// Load a specific icon\nconst icon = await loader.load('aws/ec2');\n\n// Batch load icons\nconst awsIcons = await loader.loadMany(['aws/ec2', 'aws/s3', 'aws/lambda']);\n```\n\n## Features\n\n- File system icon loading\n- Directory scanning and indexing\n- Icon caching for performance\n- Custom search paths\n- SVG validation and parsing\n- Node.js optimized\n\n## Icon Loader\n\n```typescript\nconst loader = new IconLoader({\n  searchPaths: ['./icons'],\n  cache: true,\n  validate: true\n});\n\n// Load with options\nconst icon = await loader.load('my-icon', {\n  optimize: true,\n  width: 64,\n  height: 64\n});\n```\n\n## Directory Structure\n\nOrganize icons in directories:\n\n```\nicons/\n├── aws/\n│   ├── ec2.svg\n│   ├── s3.svg\n│   └── lambda.svg\n├── gcp/\n│   ├── compute-engine.svg\n│   └── cloud-storage.svg\n└── custom/\n    └── my-service.svg\n```\n\n## Icon Discovery\n\n```typescript\nimport { discoverIcons } from '@archlex/icons';\n\n// Discover all icons in a directory\nconst discovered = await discoverIcons('./icons', {\n  recursive: true,\n  filter: (path) => path.endsWith('.svg')\n});\n\nconsole.log(`Found ${discovered.length} icons`);\n```\n\n## Caching\n\n```typescript\nconst loader = new IconLoader({\n  cache: true,\n  cacheDir: './.icon-cache'\n});\n\n// First load: reads from disk\nconst icon1 = await loader.load('aws/ec2');\n\n// Second load: reads from cache\nconst icon2 = await loader.load('aws/ec2');\n```\n\n## Environment\n\nThis package is designed for Node.js environments (v22+) and uses Node.js file system APIs. For browser usage, see [@archlex/icons-browser](../icons-browser).\n\n## Documentation\n\nVisit [archlex.dev](https://archlex.dev) for full documentation.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}