{"id":17315924,"url":"https://github.com/matthewhudson/pxon","last_synced_at":"2026-02-24T00:17:10.153Z","repository":{"id":31103189,"uuid":"126895025","full_name":"matthewhudson/pxon","owner":"matthewhudson","description":"👾 A JavaScript module for importing, creating, manipulating, and exporting PXON schema.","archived":false,"fork":false,"pushed_at":"2025-05-31T22:07:41.000Z","size":732,"stargazers_count":26,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-13T13:08:14.975Z","etag":null,"topics":["javascript","npm-module","pixel","pixel-art","pixels","pxon"],"latest_commit_sha":null,"homepage":"https://matthewhudson.github.io/pxon/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matthewhudson.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-03-26T21:59:55.000Z","updated_at":"2025-05-31T22:07:44.000Z","dependencies_parsed_at":"2023-09-24T09:16:03.646Z","dependency_job_id":"ddf39bf7-ccc1-4978-a385-9d789385a398","html_url":"https://github.com/matthewhudson/pxon","commit_stats":{"total_commits":37,"total_committers":4,"mean_commits":9.25,"dds":0.6756756756756757,"last_synced_commit":"56e17077c89d3ecaecfe1c11c29d6442b7aeaa85"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/matthewhudson/pxon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewhudson%2Fpxon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewhudson%2Fpxon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewhudson%2Fpxon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewhudson%2Fpxon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matthewhudson","download_url":"https://codeload.github.com/matthewhudson/pxon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewhudson%2Fpxon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29762417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T21:02:23.375Z","status":"ssl_error","status_checked_at":"2026-02-23T20:58:31.539Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["javascript","npm-module","pixel","pixel-art","pixels","pxon"],"created_at":"2024-10-15T13:11:05.026Z","updated_at":"2026-02-24T00:17:10.149Z","avatar_url":"https://github.com/matthewhudson.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PXON\n\n\u003e A TypeScript library for importing, creating, manipulating, and exporting PXON data.\n\n[![npm version](https://badge.fury.io/js/pxon.svg)](https://badge.fury.io/js/pxon)\n[![CI](https://github.com/matthewhudson/pxon/actions/workflows/main.yml/badge.svg)](https://github.com/matthewhudson/pxon/actions/workflows/main.yml)\n[![Coverage Status](https://codecov.io/github/matthewhudson/pxon/branch/main/graph/badge.svg?token=aOmuqvyy4J)](https://codecov.io/github/matthewhudson/pxon)\n\n## Features\n\n- **Tree-shakable**: Import only what you need\n- **Multiple formats**: ESM and CommonJS bundles\n- **Type-safe**: Full TypeScript support with type definitions\n- **Zero dependencies**: No runtime dependencies\n\n## Installation\n\n```sh\npnpm add pxon\n```\n\nOr with npm/yarn:\n\n```sh\nnpm install pxon\nyarn add pxon\n```\n\n## Usage\n\n### ES Modules (Recommended)\n\n```ts\nimport { PXON } from 'pxon'\n\nconst pxon = new PXON()\n```\n\n### CommonJS\n\n```js\nconst { PXON } = require('pxon')\n\nconst pxon = new PXON()\n```\n\n### Browser via CDN\n\n```html\n\u003cscript type=\"module\"\u003e\n  import { PXON } from 'https://esm.sh/pxon'\n\n  const pxon = new PXON()\n\u003c/script\u003e\n```\n\n## Example Usage\n\n```ts\nimport { PXON } from 'pxon'\n\nconst pxon = new PXON()\n\n// Import PXON-formatted JSON.\npxon.import({\n  exif: {\n    artist: 'Matthew Hudson',\n    software: 'https://make8bitart.com/',\n  },\n  pxif: {\n    pixels: [],\n  },\n})\n\n// Set some EXIF data.\npxon.artist = 'Matthew Hudson'\npxon.software = 'https://make8bitart.com/'\n\n// Set a single pixel's value.\npxon.setPixel({ x: 0, y: 0, color: 'rgba(0, 0, 0, 1)', size: 1 })\n\n// Get all pixels as an array\nconst allPixels = pxon.getAllPixels()\n\n// Get a specific pixel\nconst pixel = pxon.getPixel(0, 0)\n\n// Returns a PXON-formatted object.\nconsole.log(pxon.export())\n```\n\n### [Full API Documentation \u0026rarr;](https://matthewhudson.github.io/pxon/)\n\n## Additional Resources\n\n- [PXON Specification](http://jennmoney.biz/pxon/) - specs for the \"pixel art object notation\" format\n- [make8bitart.com](https://make8bitart.com/) - pixel art painting app\n- [pxonloop](http://pxonloop.glitch.me/) - a pxon playground\n- [image-to-pxon](http://image-to-pxon.glitch.me/) - app that converts image to pxon\n\n## Notes\n\n- The non-canonical `dataURL` field is not currently supported.\n- The non-canonical `size` field defaults to `1`.\n\n## Development\n\n```sh\n# Install dependencies\npnpm install\n\n# Run development build with watch mode\npnpm run dev\n\n# Run tests\npnpm run test\n\n# Run tests in watch mode\npnpm run test:watch\n\n# Build for production\npnpm run build\n\n# Lint and format check\npnpm run lint\npnpm run format:check\n\n# Full validation (lint + format + typecheck + test)\npnpm run validate\n```\n\n## Browser Compatibility\n\nPXON is compatible with all modern browsers and Node.js v22+. The library targets ES2022.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes using [Conventional Commits](https://www.conventionalcommits.org/) format\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the ISC License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthewhudson%2Fpxon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthewhudson%2Fpxon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthewhudson%2Fpxon/lists"}