{"_id":"@airbds/converter-tools","_rev":"2-8a1f5a8ef3a6a790032e20ff922e33ad","name":"@airbds/converter-tools","dist-tags":{"latest":"0.5.0"},"versions":{"0.4.0":{"name":"@airbds/converter-tools","version":"0.4.0","_id":"@airbds/converter-tools@0.4.0","maintainers":[{"name":"justincc","email":"justinccdev@gmail.com"}],"dist":{"shasum":"7c8eb84cb21cb6b89ad2636de6d1fa6ab986a34f","tarball":"https://registry.npmjs.org/@airbds/converter-tools/-/converter-tools-0.4.0.tgz","fileCount":18,"integrity":"sha512-n7mVUx01s3Bn5qAVvfqoWCHXbf2+WTjkdQ1+j+fKOY5rqEu78QpgjlPuYI+A52PHCpBHC3oZdbrqwPMq9BGfRQ==","signatures":[{"sig":"MEUCIQCEpuN3dDK3OXSyFS4sR/Xil6ob6x8iXVKFl7u30qZj4QIgekAhX+kCZK1znNDYVrGfqv//vpht5nQFq8nmsIAG1IM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19446},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"7c8eb84cb21cb6b89ad2636de6d1fa6ab986a34f","engines":{"node":">=22.6.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"node --test *.test.ts","build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run test"},"_npmUser":{"name":"justincc","email":"justinccdev@gmail.com"},"_integrity":"sha512-n7mVUx01s3Bn5qAVvfqoWCHXbf2+WTjkdQ1+j+fKOY5rqEu78QpgjlPuYI+A52PHCpBHC3oZdbrqwPMq9BGfRQ==","_npmVersion":"10.8.3","description":"AIRBDS TypeScript tooling: convert an assessment Google Sheet to a review YAML, plus the shared converter library.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"yaml":"^2.5.1","csv-parse":"^5.5.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.2","@types/node":"^22.7.4"},"_npmOperationalInternal":{"tmp":"tmp/converter-tools_0.4.0_1781527776838_0.8825133113621408","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@airbds/converter-tools","version":"0.5.0","type":"module","description":"AIRBDS TypeScript tooling: convert an assessment Google Sheet to a review YAML, plus the shared converter library.","engines":{"node":">=22.6.0"},"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","test":"node --test *.test.ts","prepublishOnly":"npm run build && npm run test"},"dependencies":{"csv-parse":"^5.5.6","yaml":"^2.5.1"},"devDependencies":{"@types/node":"^22.7.4","typescript":"^5.7.2"},"_id":"@airbds/converter-tools@0.5.0","_integrity":"sha512-4tlTOv5bIWFtBL7gcpWHxKZVZ4cG39TbjLUqwm9oKnbatlfZ1THbUmyW4/9zmKTKNpPN8f4NN1x/VvRqCL/SDQ==","_nodeVersion":"24.3.0","_npmVersion":"10.8.3","shasum":"669c6b89fb631068b44c97259b192ab2a20c5e2b","dist":{"integrity":"sha512-4tlTOv5bIWFtBL7gcpWHxKZVZ4cG39TbjLUqwm9oKnbatlfZ1THbUmyW4/9zmKTKNpPN8f4NN1x/VvRqCL/SDQ==","shasum":"669c6b89fb631068b44c97259b192ab2a20c5e2b","tarball":"https://registry.npmjs.org/@airbds/converter-tools/-/converter-tools-0.5.0.tgz","fileCount":18,"unpackedSize":22289,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAu6qkRirRu59MM920RHF86lDwZECDkiNVTF+QMQnA8GAiAOk1nmvy6+VHbQRwRmyJ2eoLT9+HcW/OqqDrtzYQ9wKA=="}]},"_npmUser":{"name":"justincc","email":"justinccdev@gmail.com"},"directories":{},"maintainers":[{"name":"justincc","email":"justinccdev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/converter-tools_0.5.0_1782231363479_0.5929974347119848"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-15T12:49:36.643Z","modified":"2026-06-23T16:16:03.741Z","0.4.0":"2026-06-15T12:49:36.968Z","0.5.0":"2026-06-23T16:16:03.612Z"},"description":"AIRBDS TypeScript tooling: convert an assessment Google Sheet to a review YAML, plus the shared converter library.","maintainers":[{"name":"justincc","email":"justinccdev@gmail.com"}],"readme":"# `google-sheet-converter/`\n\nThe reusable AIRBDS review-converter library — turns an assessment spreadsheet\ninto a review YAML conforming to\n[`review_template.yaml`](../../review_template.yaml). It is the\nshared, metric-version-agnostic core used by the CLI\n(`../scripts/convert_review_google_sheet_to_yaml.mts`, which reads the metric\nversion from the sheet) and by the\n[`auto-airbds`](../../../../../auto-airbds) website's server-side import route, which\ndepends on it as the published npm package **`@airbds/converter-tools`**.\n\nThis is its own npm package — `package.json`, dependencies, and `tsconfig.json`\nlive here. For how to *run* the converter, see the\n[workspace README](../README.md); this file is for working on the library itself.\n\nThe public surface is [`index.ts`](./index.ts) (`fetchSheet`, `convert`,\n`buildReview`, `parseCsv`, `extractReviewInfo`, `extractAnswers`,\n`detectSchemaVersion`, `emitYaml`, `parseMetric`, and the shared types). `fetchSheet`/`convert` use only the global\n`fetch`, `csv-parse`, and `yaml`, so they run server-side in a Cloudflare Pages\nFunction (which needs the `nodejs_compat` flag for `csv-parse`'s `Buffer`/`stream`\nusage).\n\n## Develop\n\nRun from this directory (`reviews/src/google-sheet-converter`):\n\n```bash\nbun install       # one-time\nbun run test      # node:test suite over *.test.ts\nbun run typecheck # tsc --noEmit\nbun run build     # emit dist/ (JS + .d.ts) via tsconfig.build.json\n```\n\n## Publish\n\nThe library ships compiled output from `dist/` (built by `tsc` with\n`rewriteRelativeImportExtensions`, so the `.ts` import specifiers in source are\nrewritten to `.js` in the emitted JS). `dist/` is git-ignored and rebuilt by the\n`prepublishOnly` script.\n\n```bash\nbun pm pack                  # inspect the tarball (dist/ + package.json + README)\nbun publish --access public  # runs prepublishOnly (build + test), then publishes\n```\n\nPublishing needs an npm auth token. Bun has no `bun login`; it reads the token\nfrom `~/.npmrc` / `bunfig.toml` / `$NPM_CONFIG_TOKEN`. Get one with `npm login`\n(writes `~/.npmrc`, which Bun reads) or create a granular access token on\nnpmjs.com. The `@airbds` scope must exist on npm (create a free org, or rename to\nan owned scope). Bump `version` before publishing.\n","readmeFilename":"README.md"}