{"id":35313245,"url":"https://github.com/willwade/aacprocessors-nodejs","last_synced_at":"2026-04-30T00:07:23.504Z","repository":{"id":319403638,"uuid":"969401802","full_name":"willwade/AACProcessors-nodejs","owner":"willwade","description":"A nodejs version of aacprocessors","archived":false,"fork":false,"pushed_at":"2026-04-20T10:14:34.000Z","size":132800,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-20T10:33:10.915Z","etag":null,"topics":["aac","assistive-technology"],"latest_commit_sha":null,"homepage":"https://willwade.github.io/AACProcessors-nodejs/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/willwade.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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":"CLA.md"}},"created_at":"2025-04-20T04:08:19.000Z","updated_at":"2026-04-20T10:10:42.000Z","dependencies_parsed_at":"2025-10-19T02:35:30.555Z","dependency_job_id":null,"html_url":"https://github.com/willwade/AACProcessors-nodejs","commit_stats":null,"previous_names":["willwade/aacprocessors-nodejs"],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/willwade/AACProcessors-nodejs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willwade%2FAACProcessors-nodejs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willwade%2FAACProcessors-nodejs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willwade%2FAACProcessors-nodejs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willwade%2FAACProcessors-nodejs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willwade","download_url":"https://codeload.github.com/willwade/AACProcessors-nodejs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willwade%2FAACProcessors-nodejs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32318417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"ssl_error","status_checked_at":"2026-04-26T23:26:25.802Z","response_time":129,"last_error":"SSL_read: 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":["aac","assistive-technology"],"created_at":"2025-12-30T18:03:30.145Z","updated_at":"2026-04-27T01:01:58.599Z","avatar_url":"https://github.com/willwade.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AACProcessors\n\nA TypeScript library for reading, analyzing, translating, and converting AAC\n(Augmentative and Alternative Communication) file formats. The package ships\nas a dual build: a full Node.js entry and a browser-safe entry.\n\n## Install\n\n```bash\nnpm install @willwade/aac-processors\n```\n\n## Dual Build Targets\n\n### Node.js (default)\nFull feature set, including filesystem access, SQLite-backed formats, and\nZIP/encrypted formats.\n\n```ts\nimport { getProcessor, SnapProcessor } from '@willwade/aac-processors';\n\nconst processor = getProcessor('board.sps');\nconst tree = await processor.loadIntoTree('board.sps');\n\nconst snap = new SnapProcessor();\nconst texts = await snap.extractTexts('board.sps');\n```\n\n### Browser\nBrowser-safe entry that avoids Node-only dependencies. It expects `Buffer`,\n`Uint8Array`, or `ArrayBuffer` inputs rather than file paths.\n\nSQLite-backed formats (Snap `.sps/.spb` and TouchChat `.ce`) require a WASM\nSQLite engine. To support these, configure `sql.js` in your bundler\nand either include `\u003cscript src=\"sql-wasm.js\"\u003e\u003c/script\u003e` in your HTML, or\n`window.initSqlJs = require('sql.js');` in your app.\n\n```ts\nimport { configureSqlJs, SnapProcessor } from '@willwade/aac-processors/browser';\n\nconfigureSqlJs({\n  locateFile: (file) =\u003e new URL(`./${file}`, import.meta.url).toString(),\n});\n\nconst snap = new SnapProcessor();\nconst tree = await snap.loadIntoTree(snapUint8Array);\n```\n\n```ts\nimport { GridsetProcessor } from '@willwade/aac-processors/browser';\n\nconst processor = new GridsetProcessor();\nconst tree = await processor.loadIntoTree(gridsetUint8Array);\n```\n\n## Supported Formats\n\n- Snap/SPS (Tobii Dynavox)\n- Grid3/Gridset (Smartbox)\n- TouchChat (PRC-Saltillo)\n- OBF/OBZ (Open Board Format)\n- OPML\n- DOT (Graphviz)\n- Apple Panels (macOS plist)\n- Asterics Grid\n- Excel export\n\n## Wrangle strings workflow\n\nAll processors implement `processTexts()` to get all strings eg\n\n```ts\nimport { DotProcessor } from '@willwade/aac-processors';\n\nconst processor = new DotProcessor();\nconst texts = await processor.extractTexts('board.dot');\n\nconst translations = new Map([\n  ['Hello', 'Hola'],\n  ['Food', 'Comida'],\n]);\n\nawait processor.processTexts('board.dot', translations, 'board-es.dot');\n```\nNB: Please use [https://aactools.co.uk](https://aactools.co.uk) for a far more comphrensive translation logic - where we do far far more than this...  \n\n## Documentation\n\n- API reference (TypeDoc): https://willwade.github.io/AACProcessors-nodejs/\n- Metrics guide: `src/utilities/analytics/docs/AAC_METRICS_GUIDE.md`\n- Vocabulary analysis guide: `src/utilities/analytics/docs/VOCABULARY_ANALYSIS_GUIDE.md`\n\n## Examples and Scripts\n\n- Code examples: `examples/`\n- Utility scripts and workflows: `scripts/` (see `scripts/README.md`)\n\n## Build, Lint, Test\n\n```bash\nnpm run build:all\nnpm run lint\nnpm test\n```\n\n## Electron Note\n\n`better-sqlite3` is a native dependency. For Electron, rebuild it against the\nElectron runtime:\n\n```bash\nnpx electron-rebuild\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillwade%2Faacprocessors-nodejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwillwade%2Faacprocessors-nodejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillwade%2Faacprocessors-nodejs/lists"}