{"_id":"@a.shulman/text-feedback-extension","_rev":"7-e79439669ce358d7d51c5a6e4a70a8a1","name":"@a.shulman/text-feedback-extension","dist-tags":{"latest":"1.1.6"},"versions":{"1.1.0":{"name":"@a.shulman/text-feedback-extension","version":"1.1.0","author":{"name":"a-shulman"},"license":"MIT","_id":"@a.shulman/text-feedback-extension@1.1.0","maintainers":[{"name":"a.shulman","email":"lalalapina13@gmail.com"}],"homepage":"https://diplodoc.com/","bugs":{"url":"https://github.com/a-shulman/text-feedback/issues"},"dist":{"shasum":"95239ea7661f9a88aa40d17a1c370f64819ba795","tarball":"https://registry.npmjs.org/@a.shulman/text-feedback-extension/-/text-feedback-extension-1.1.0.tgz","fileCount":8,"integrity":"sha512-Fi4rSacRtzJzzWtpJQGIkStn9CMck8MoXIDM1W+er7bbNlHS3fSBJoKh0EFJe8JMtmGq+N1lcn49D5Ke28O4xQ==","signatures":[{"sig":"MEUCIQCfKv5CmHabMvH8QMpkO8WWoH7YjxkEd9EZWpHUxVuMYwIgAlL+TFHw6McjNu8uny37t/Q4xo/rgk5ANFPIp2oYG7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36700},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"aee2e83f677920194559200ce9667a6a2277eaa6","scripts":{"test":"vitest run","build":"run-p build:*","build:js":"./esbuild/build.mjs","typecheck":"tsc --noEmit && tsc --project src/browser/tsconfig.json --noEmit","test:watch":"vitest","build:clean":"rm -rf build","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","build:declarations":"tsc --project tsconfig.publish.json --emitDeclarationOnly --outDir ./build"},"_npmUser":{"name":"a.shulman","email":"lalalapina13@gmail.com"},"repository":{"url":"git+https://github.com/a-shulman/text-feedback.git","type":"git"},"_npmVersion":"11.12.1","description":"Diplodoc extension: floating feedback form for selected text","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","esbuild":"^0.27.2","typescript":"^5.5.3","@types/node":"^22.0.0","npm-run-all":"^4.1.5","@diplodoc/cli":"5.36.0","@diplodoc/tsconfig":"^1.0.2","@vitest/coverage-v8":"^2.0.0"},"peerDependencies":{"@diplodoc/cli":">=5"},"_npmOperationalInternal":{"tmp":"tmp/text-feedback-extension_1.1.0_1779435962673_0.2629097230356112","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@a.shulman/text-feedback-extension","version":"1.1.1","author":{"name":"a-shulman"},"license":"MIT","_id":"@a.shulman/text-feedback-extension@1.1.1","maintainers":[{"name":"a.shulman","email":"lalalapina13@gmail.com"}],"homepage":"https://docs.ideco.ru/","bugs":{"url":"https://github.com/a-shulman/text-feedback/issues"},"dist":{"shasum":"5c8ab1ebc9052f2131b4c051557279ee0853af21","tarball":"https://registry.npmjs.org/@a.shulman/text-feedback-extension/-/text-feedback-extension-1.1.1.tgz","fileCount":8,"integrity":"sha512-+U1KzzKgYAH3yJBJGiUI4131vZXJD2zOxnFvHxxGlVND2kYazeaVzY3RVmigvXmdJfrmpJkK7lQSycrcmS585g==","signatures":[{"sig":"MEUCIQCbUv4aPGIBjZ+Gdo1T7lEhaSFQCz0S95n3w9sov2avkgIgaZP7IG7GStygJEaW6poZzghCvt9WaAMD2MJEWmMXxeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36734},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"c64777db42d34b0db38401fb231723009f018d10","scripts":{"test":"vitest run","build":"run-p build:*","build:js":"./esbuild/build.mjs","typecheck":"tsc --noEmit && tsc --project src/browser/tsconfig.json --noEmit","test:watch":"vitest","build:clean":"rm -rf build","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","build:declarations":"tsc --project tsconfig.publish.json --emitDeclarationOnly --outDir ./build"},"_npmUser":{"name":"a.shulman","email":"lalalapina13@gmail.com"},"repository":{"url":"git+https://github.com/a-shulman/text-feedback.git","type":"git"},"_npmVersion":"11.12.1","description":"Diplodoc extension: floating feedback form for selected text","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","esbuild":"^0.27.2","typescript":"^5.5.3","@types/node":"^22.0.0","npm-run-all":"^4.1.5","@diplodoc/cli":"5.36.0","@diplodoc/tsconfig":"^1.0.2","@vitest/coverage-v8":"^2.0.0"},"peerDependencies":{"@diplodoc/cli":">=5"},"_npmOperationalInternal":{"tmp":"tmp/text-feedback-extension_1.1.1_1779437484045_0.5152716894262301","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@a.shulman/text-feedback-extension","version":"1.1.2","author":{"name":"a-shulman"},"license":"MIT","_id":"@a.shulman/text-feedback-extension@1.1.2","maintainers":[{"name":"a.shulman","email":"lalalapina13@gmail.com"}],"homepage":"https://docs.ideco.ru/","bugs":{"url":"https://github.com/a-shulman/text-feedback/issues"},"dist":{"shasum":"dcf2869d452eaef92e84dff84b36d8de999d3acd","tarball":"https://registry.npmjs.org/@a.shulman/text-feedback-extension/-/text-feedback-extension-1.1.2.tgz","fileCount":8,"integrity":"sha512-WNsRmDwnTE0o87sDTqWinFXyJe12aLsiFk/9zGX0rq4JXvF/bqW2WLQpfoPmdL5EqDwZC7T85nrGfkoznnYzkQ==","signatures":[{"sig":"MEUCIQCk3KnRgkFByO1pDZJuQW612ezj1uSNIE4y08R4B8eUWQIgOW4CCbWchGaZux4JIPqMMWyz27Ti7ZkG7vetLfw47Kc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36851},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"158261a2bfce6c74e69aadc9660a41f5b97ab645","scripts":{"test":"vitest run","build":"run-p build:*","build:js":"./esbuild/build.mjs","typecheck":"tsc --noEmit && tsc --project src/browser/tsconfig.json --noEmit","test:watch":"vitest","build:clean":"rm -rf build","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","build:declarations":"tsc --project tsconfig.publish.json --emitDeclarationOnly --outDir ./build"},"_npmUser":{"name":"a.shulman","email":"lalalapina13@gmail.com"},"repository":{"url":"git+https://github.com/a-shulman/text-feedback.git","type":"git"},"_npmVersion":"11.13.0","description":"Diplodoc extension: floating feedback form for selected text","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","esbuild":"^0.27.2","typescript":"^5.5.3","@types/node":"^22.0.0","npm-run-all":"^4.1.5","@diplodoc/cli":"5.36.0","@diplodoc/tsconfig":"^1.0.2","@vitest/coverage-v8":"^2.0.0"},"peerDependencies":{"@diplodoc/cli":">=5"},"_npmOperationalInternal":{"tmp":"tmp/text-feedback-extension_1.1.2_1781087053369_0.3985775387729462","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@a.shulman/text-feedback-extension","version":"1.1.3","author":{"name":"a-shulman"},"license":"MIT","_id":"@a.shulman/text-feedback-extension@1.1.3","maintainers":[{"name":"a.shulman","email":"lalalapina13@gmail.com"}],"homepage":"https://docs.ideco.ru/","bugs":{"url":"https://github.com/a-shulman/text-feedback/issues"},"dist":{"shasum":"5bbc36a2fe5c69857b293f528ee191f2ccdd7433","tarball":"https://registry.npmjs.org/@a.shulman/text-feedback-extension/-/text-feedback-extension-1.1.3.tgz","fileCount":8,"integrity":"sha512-dIDtt7y5UVWgd3acXDlsZHbD8KtrW0C89F6XEiYL0KN9NHqIXxtRjRbjKAQmAeEpHlQ4vtGLsUO46rghwkvuBg==","signatures":[{"sig":"MEUCIQDskKZrX0BhBLKW/2PnqBwj1/KlN7wTkcnBV68twaXRdAIgChujdSLVFcWEXBXrdnnvCZZE3Pu6rd243xy1wm+gBg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39066},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"42351659c5b2a7cca66bc830c87d4c14b7c8c04d","scripts":{"test":"vitest run","build":"run-p build:*","build:js":"./esbuild/build.mjs","typecheck":"tsc --noEmit && tsc --project src/browser/tsconfig.json --noEmit","test:watch":"vitest","build:clean":"rm -rf build","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","build:declarations":"tsc --project tsconfig.publish.json --emitDeclarationOnly --outDir ./build"},"_npmUser":{"name":"a.shulman","email":"lalalapina13@gmail.com"},"repository":{"url":"git+https://github.com/a-shulman/text-feedback.git","type":"git"},"_npmVersion":"11.16.0","description":"Diplodoc extension: floating feedback form for selected text","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@a.shulman/text-feedback-extension":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","esbuild":"^0.27.2","typescript":"^5.5.3","@types/node":"^22.0.0","npm-run-all":"^4.1.5","@diplodoc/cli":"5.36.0","@diplodoc/tsconfig":"^1.0.2","@vitest/coverage-v8":"^2.0.0"},"peerDependencies":{"@diplodoc/cli":">=5"},"_npmOperationalInternal":{"tmp":"tmp/text-feedback-extension_1.1.3_1783327080943_0.4020504242414076","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@a.shulman/text-feedback-extension","version":"1.1.4","author":{"name":"a-shulman"},"license":"MIT","_id":"@a.shulman/text-feedback-extension@1.1.4","maintainers":[{"name":"a.shulman","email":"lalalapina13@gmail.com"}],"homepage":"https://docs.ideco.ru/","bugs":{"url":"https://github.com/a-shulman/text-feedback/issues"},"dist":{"shasum":"58c98fbce1beaaae1f78e0d2c6c62013b513efcf","tarball":"https://registry.npmjs.org/@a.shulman/text-feedback-extension/-/text-feedback-extension-1.1.4.tgz","fileCount":8,"integrity":"sha512-cRpyxs967qiO8MIjMDbYwO1Y+N2qahgQX/Tpmyb1AA2T4zqv54yuVcxSxPQYmbCEtxleuNZtNpxBRfjx9K4WoQ==","signatures":[{"sig":"MEUCIBX0T1Eow8EPCwqIjLlU3VMr4Reao7eY/fncDhEidzufAiEAooecidMAbUDPfB9du000NCKPTPjwFJygrw+awCFMdwE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39071},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"eb0cd9df24c141346b0f2c8ea79ca7cf40fe81c6","scripts":{"test":"vitest run","build":"run-p build:*","build:js":"./esbuild/build.mjs","typecheck":"tsc --noEmit && tsc --project src/browser/tsconfig.json --noEmit","test:watch":"vitest","build:clean":"rm -rf build","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","build:declarations":"tsc --project tsconfig.publish.json --emitDeclarationOnly --outDir ./build"},"_npmUser":{"name":"a.shulman","email":"lalalapina13@gmail.com"},"repository":{"url":"git+https://github.com/a-shulman/text-feedback.git","type":"git"},"_npmVersion":"11.16.0","description":"Diplodoc extension: floating feedback form for selected text","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@a.shulman/text-feedback-extension":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","esbuild":"^0.27.2","typescript":"^5.5.3","@types/node":"^22.0.0","npm-run-all":"^4.1.5","@diplodoc/cli":"5.36.0","@diplodoc/tsconfig":"^1.0.2","@vitest/coverage-v8":"^2.0.0"},"peerDependencies":{"@diplodoc/cli":">=5"},"_npmOperationalInternal":{"tmp":"tmp/text-feedback-extension_1.1.4_1783339036946_0.5521116777018367","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@a.shulman/text-feedback-extension","version":"1.1.5","author":{"name":"a-shulman"},"license":"MIT","_id":"@a.shulman/text-feedback-extension@1.1.5","maintainers":[{"name":"a.shulman","email":"lalalapina13@gmail.com"}],"homepage":"https://docs.ideco.ru/","bugs":{"url":"https://github.com/a-shulman/text-feedback/issues"},"dist":{"shasum":"d2aaa343bf32b18ca0a1271ad99e4256f4f781e5","tarball":"https://registry.npmjs.org/@a.shulman/text-feedback-extension/-/text-feedback-extension-1.1.5.tgz","fileCount":8,"integrity":"sha512-3qQQS8yma7wAKv/oishU6DT3I/6B2j8UR6pnIhKkuey5Cbz8a3gH4kJj0Gu9KTbKARgT+u/4guO1LsIkl/eSVA==","signatures":[{"sig":"MEUCIQCJV7EID5F+3l0swYJs9fIS/vWybSBuQHFHtX+RpvUjagIgWhxVOh7poS3+kRanWnjQtBsPyFbU5n/mLbDRBMh7x9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39379},"main":"build/index.js","types":"build/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"gitHead":"1a04686ff198b9f22564f1bbe2e24feccf1554ad","scripts":{"test":"vitest run","build":"run-p build:*","build:js":"./esbuild/build.mjs","typecheck":"tsc --noEmit && tsc --project src/browser/tsconfig.json --noEmit","test:watch":"vitest","build:clean":"rm -rf build","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","build:declarations":"tsc --project tsconfig.publish.json --emitDeclarationOnly --outDir ./build"},"_npmUser":{"name":"a.shulman","email":"lalalapina13@gmail.com"},"repository":{"url":"git+https://github.com/a-shulman/text-feedback.git","type":"git"},"_npmVersion":"11.16.0","description":"Diplodoc extension: floating feedback form for selected text","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@a.shulman/text-feedback-extension":"^1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","esbuild":"^0.27.2","typescript":"^5.5.3","@types/node":"^22.0.0","npm-run-all":"^4.1.5","@diplodoc/cli":"5.36.0","@diplodoc/tsconfig":"^1.0.2","@vitest/coverage-v8":"^2.0.0"},"peerDependencies":{"@diplodoc/cli":">=5"},"_npmOperationalInternal":{"tmp":"tmp/text-feedback-extension_1.1.5_1783689143552_0.3414718603480784","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@a.shulman/text-feedback-extension","version":"1.1.6","description":"Diplodoc extension: floating feedback form for selected text","main":"build/index.js","types":"build/index.d.ts","exports":{".":{"types":"./build/index.d.ts","default":"./build/index.js"}},"homepage":"https://docs.ideco.ru/","engines":{"node":">=22"},"repository":{"type":"git","url":"git+https://github.com/a-shulman/text-feedback.git"},"bugs":{"url":"https://github.com/a-shulman/text-feedback/issues"},"author":{"name":"a-shulman"},"license":"MIT","scripts":{"build":"run-p build:*","build:clean":"rm -rf build","build:js":"./esbuild/build.mjs","build:declarations":"tsc --project tsconfig.publish.json --emitDeclarationOnly --outDir ./build","typecheck":"tsc --noEmit && tsc --project src/browser/tsconfig.json --noEmit","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"peerDependencies":{"@diplodoc/cli":">=5"},"devDependencies":{"@diplodoc/cli":"5.36.0","@diplodoc/tsconfig":"^1.0.2","@types/node":"^22.0.0","@vitest/coverage-v8":"^2.0.0","esbuild":"^0.27.2","npm-run-all":"^4.1.5","typescript":"^5.5.3","vitest":"^2.0.0"},"dependencies":{"@a.shulman/text-feedback-extension":"^1.1.2"},"gitHead":"141537c4d6464bac2fc37e7698f5ae3d8e8a57d3","_id":"@a.shulman/text-feedback-extension@1.1.6","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-8bPJJRoe2GRycVuPQRpGW4PW1Ftt+rj0wI7Mk7/JWtG5Gi+qJxcmL0pVf9W098AIOQRSmNN3CMubtdO9p5oE7w==","shasum":"c3eabf10b3e7071ff3a43a1eef1755331c95a4b0","tarball":"https://registry.npmjs.org/@a.shulman/text-feedback-extension/-/text-feedback-extension-1.1.6.tgz","fileCount":8,"unpackedSize":40115,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHf5ogvmu/RnXgTsyE33B59i55qa72rSL11ertfc2ozXAiEAk3bGidezKA3/4WZuo/n9KGAnsR9yVXHKAk4qgr39lYY="}]},"_npmUser":{"name":"a.shulman","email":"lalalapina13@gmail.com"},"directories":{},"maintainers":[{"name":"a.shulman","email":"lalalapina13@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/text-feedback-extension_1.1.6_1785756344272_0.6809929156586956"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-22T07:46:02.437Z","modified":"2026-08-03T11:25:44.538Z","1.1.0":"2026-05-22T07:46:02.819Z","1.1.1":"2026-05-22T08:11:24.185Z","1.1.2":"2026-06-10T10:24:13.504Z","1.1.3":"2026-07-06T08:38:01.071Z","1.1.4":"2026-07-06T11:57:17.069Z","1.1.5":"2026-07-10T13:12:23.741Z","1.1.6":"2026-08-03T11:25:44.413Z"},"bugs":{"url":"https://github.com/a-shulman/text-feedback/issues"},"author":{"name":"a-shulman"},"license":"MIT","homepage":"https://docs.ideco.ru/","repository":{"type":"git","url":"git+https://github.com/a-shulman/text-feedback.git"},"description":"Diplodoc extension: floating feedback form for selected text","maintainers":[{"name":"a.shulman","email":"lalalapina13@gmail.com"}],"readme":"# @a.shulman/text-feedback-extension\n\n[![NPM version](https://img.shields.io/npm/v/@a.shulman/text-feedback-extension.svg?style=flat)](https://www.npmjs.org/package/@a.shulman/text-feedback-extension)\n\nDiplodoc CLI extension that adds a floating feedback button when users select text in the documentation. Clicking the button opens a form where the user can report a typo, incorrect information, or other issue with the selected fragment.\n\n## Installation\n\n```bash\nnpm install @a.shulman/text-feedback\n```\n\n## Usage\n\nRegister the extension in your Diplodoc build script:\n\n```typescript\nimport {Build} from '@diplodoc/cli';\nimport {Extension as TextFeedback} from '@a.shulman/text-feedback';\n\nconst build = new Build();\nbuild.apply(new TextFeedback());\nbuild.run();\n```\n\nOr in `.yfm` config (if your build script supports extension loading):\n\n```yaml\ntextFeedback: https://your-backend.example.com/feedback\n```\n\n### CLI flag\n\n```bash\nyfm build -i ./docs -o ./build --text-feedback https://your-backend.example.com/feedback\n```\n\n## Configuration\n\n### Short form (endpoint URL only)\n\n```yaml\ntextFeedback: https://your-backend.example.com/feedback\n```\n\n### Full form\n\n```yaml\ntextFeedback:\n  endpoint: https://your-backend.example.com/feedback\n  privacyPolicyUrl: https://your-site.example.com/privacy  # optional\n  metrika:\n    counterId: 12345678\n    goals:\n      button: my-feedback-button   # default: selection-feedback-button\n      submit: my-submit             # default: selection-submit\n      cancel: my-cancel             # default: selection-cancel\n```\n\nWhen `privacyPolicyUrl` is set, a personal data consent checkbox appears below the contact field. The submit button is disabled until the checkbox is ticked (only when the contact field is filled).\n\n### Config type\n\n```typescript\ntype TextFeedbackObject = {\n    endpoint: string;\n    privacyPolicyUrl?: string;  // URL shown in the personal data consent checkbox\n    metrika?: {\n        counterId: number;\n        goals?: {\n            button?: string;\n            submit?: string;\n            cancel?: string;\n        };\n    };\n};\n\ntype Config = {\n    textFeedback?: string | TextFeedbackObject;\n};\n```\n\n## What it does\n\n- Injects a browser script (`_extensions/feedback/feedback.js`) into every generated HTML page\n- When a user selects 5+ characters of text within `.dc-doc-page__content`, a floating button appears near the selection\n- The button auto-hides after 5 seconds if not clicked\n- Clicking opens a form with issue type options (typo, incorrect info, missing example, bad graphics, other) plus optional comment and contact fields\n- On submit, sends a POST request to the configured endpoint:\n\n```json\n{\n    \"url\": \"https://docs.example.com/page\",\n    \"title\": \"Page title\",\n    \"suggestion\": \"typo\",\n    \"selected_text\": \"the selected fragment\",\n    \"comment\": \"optional comment\",\n    \"contact\": \"optional contact\"\n}\n```\n\n- Shows a success/error popup after submission\n- Enforces a 7-second cooldown between submissions\n\n## Package Structure\n\n```\nbuild/\n├── index.js          # Node.js extension (CJS)\n├── index.d.ts        # TypeScript declarations\n├── config.d.ts\n└── resources/\n    └── feedback.js   # Browser bundle (IIFE, minified)\n```\n\n## Development\n\n```bash\nnpm install\nnpm run build       # Build node + browser bundles + declarations\nnpm test            # Run tests\nnpm run typecheck   # Type check (node + browser)\n```\n","readmeFilename":"README.md"}