{"_id":"@alpha-solutions/medusa-image-alt","_rev":"2-5b624e4f16ab5e8cb16b4c3a694f74ac","name":"@alpha-solutions/medusa-image-alt","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@alpha-solutions/medusa-image-alt","version":"1.0.0","keywords":["medusa","plugin","medusa-plugin-other","medusa-plugin","medusa-v2","medusa-plugin-integration"],"author":{"url":"https://medusajs.com","name":"Medusa"},"license":"MIT","_id":"@alpha-solutions/medusa-image-alt@1.0.0","maintainers":[{"name":"morten.alpha","email":"me@alpha-solutions.dk"},{"name":"alphasolutions","email":"npm@alpha-solutions.us"},{"name":"alpharv","email":"rv@alpha-solutions.us"},{"name":"geykel","email":"grm@alpha-solutions.us"},{"name":"alphaklp","email":"klp@alpha-solutions.dk"}],"dist":{"shasum":"949c806c314f757a85c9f7a79ea18fc35331438f","tarball":"https://registry.npmjs.org/@alpha-solutions/medusa-image-alt/-/medusa-image-alt-1.0.0.tgz","fileCount":10,"integrity":"sha512-JTlRXe0sz1rdtlVs6akBUPU9OzggPaspgzRiyUXce0kiZRT/9Ja/TVQ9JibyUs7tmVqYA44uL6bRdILSdPJldA==","signatures":[{"sig":"MEUCIE+WGGFiLA/pyJFnnMZKrCUdJr7bRI6TkBvPo/H3ogbOAiEA1eT4Je7LSAH/erY7a/w8zG3LiEkHsdRTK+qQYn96I+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":118937},"engines":{"node":">=20"},"exports":{"./*":"./.medusa/server/src/*.js","./admin":{"import":"./.medusa/server/src/admin/index.mjs","default":"./.medusa/server/src/admin/index.js","require":"./.medusa/server/src/admin/index.js"},"./modules/*":"./.medusa/server/src/modules/*/index.js","./workflows":"./.medusa/server/src/workflows/index.js","./providers/*":"./.medusa/server/src/providers/*/index.js","./package.json":"./package.json","./.medusa/server/src/modules/*":"./.medusa/server/src/modules/*/index.js"},"gitHead":"74fc62c423f154679ddea837244e302c1ac4a47b","scripts":{"dev":"medusa plugin:develop","build":"medusa plugin:build","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"morten.alpha","email":"me@alpha-solutions.dk"},"_npmVersion":"10.9.0","description":"Possibility to set image alt metadata on product pages or export/import as bulk through settings.","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.16.3","vite":"^5.4.19","yalc":"^1.0.0-pre.53","react":"^18.3.1","awilix":"^8.0.1","ts-node":"^10.9.2","@swc/core":"^1.13.1","react-dom":"^18.3.1","prop-types":"^15.8.1","typescript":"^5.8.3","@types/node":"^20.0.0","@medusajs/ui":"^4.0.17","@types/react":"^18.3.23","@medusajs/cli":"^2.8.7","@mikro-orm/cli":"^6.4.16","@medusajs/icons":"^2.8.7","@mikro-orm/core":"^6.4.16","@mikro-orm/knex":"^6.4.16","@medusajs/js-sdk":"^2.8.7","@medusajs/medusa":"^2.8.7","@types/react-dom":"^18.3.7","@medusajs/admin-sdk":"^2.8.7","@medusajs/framework":"^2.8.7","@types/jsonwebtoken":"^9.0.10","@medusajs/test-utils":"^2.8.7","@mikro-orm/migrations":"^6.4.16","@mikro-orm/postgresql":"^6.4.16"},"peerDependencies":{"pg":"^8.13.0","awilix":"^8.0.1","@medusajs/ui":"^4.0.12","@medusajs/cli":"^2.8.2","@mikro-orm/cli":"^6.4.3","@medusajs/icons":"^2.8.2","@mikro-orm/core":"^6.4.3","@mikro-orm/knex":"^6.4.3","@medusajs/js-sdk":"^2.8.2","@medusajs/medusa":"^2.8.2","@medusajs/admin-sdk":"^2.8.2","@medusajs/framework":"^2.8.2","@medusajs/test-utils":"^2.8.2","@mikro-orm/migrations":"^6.4.3","@mikro-orm/postgresql":"^6.4.3"},"_npmOperationalInternal":{"tmp":"tmp/medusa-image-alt_1.0.0_1755076972035_0.16041943601035968","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alpha-solutions/medusa-image-alt","version":"1.1.0","description":"Possibility to set image alt metadata on product pages or export/import as bulk through settings.","author":{"name":"Medusa","url":"https://medusajs.com"},"license":"MIT","exports":{"./package.json":"./package.json","./workflows":"./.medusa/server/src/workflows/index.js","./.medusa/server/src/modules/*":"./.medusa/server/src/modules/*/index.js","./modules/*":"./.medusa/server/src/modules/*/index.js","./providers/*":"./.medusa/server/src/providers/*/index.js","./admin":{"import":"./.medusa/server/src/admin/index.mjs","require":"./.medusa/server/src/admin/index.js","default":"./.medusa/server/src/admin/index.js"},"./*":"./.medusa/server/src/*.js"},"keywords":["medusa","plugin","medusa-plugin-other","medusa-plugin","medusa-v2","medusa-plugin-integration"],"scripts":{"build":"medusa plugin:build","dev":"medusa plugin:develop","prepublishOnly":"medusa plugin:build"},"devDependencies":{"@medusajs/admin-sdk":"^2.8.7","@medusajs/cli":"^2.8.7","@medusajs/framework":"^2.8.7","@medusajs/icons":"^2.8.7","@medusajs/js-sdk":"^2.8.7","@medusajs/medusa":"^2.8.7","@medusajs/test-utils":"^2.8.7","@medusajs/ui":"^4.0.17","@mikro-orm/cli":"^6.4.16","@mikro-orm/core":"^6.4.16","@mikro-orm/knex":"^6.4.16","@mikro-orm/migrations":"^6.4.16","@mikro-orm/postgresql":"^6.4.16","@swc/core":"^1.13.1","@types/jsonwebtoken":"^9.0.10","@types/node":"^20.0.0","@types/react":"^18.3.23","@types/react-dom":"^18.3.7","awilix":"^8.0.1","pg":"^8.16.3","prop-types":"^15.8.1","react":"^18.3.1","react-dom":"^18.3.1","ts-node":"^10.9.2","typescript":"^5.8.3","vite":"^5.4.19","yalc":"^1.0.0-pre.53"},"peerDependencies":{"@medusajs/admin-sdk":"^2.8.2","@medusajs/cli":"^2.8.2","@medusajs/framework":"^2.8.2","@medusajs/icons":"^2.8.2","@medusajs/js-sdk":"^2.8.2","@medusajs/medusa":"^2.8.2","@medusajs/test-utils":"^2.8.2","@medusajs/ui":"^4.0.12","@mikro-orm/cli":"^6.4.3","@mikro-orm/core":"^6.4.3","@mikro-orm/knex":"^6.4.3","@mikro-orm/migrations":"^6.4.3","@mikro-orm/postgresql":"^6.4.3","awilix":"^8.0.1","pg":"^8.13.0"},"engines":{"node":">=20"},"_id":"@alpha-solutions/medusa-image-alt@1.1.0","gitHead":"8bd9fc3890cbb7a1e62728ebec98aedf63aabb18","_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-Tqi79TCZgqkPiNdnpkgjltIwEYcz7nU1qD+v4fEBXcAJqMxaIStIyQ03nrtV2wQfeYrHyyXXJWN8SHigyLqW1g==","shasum":"7305781a408902ec859f69213b87217413bd01b7","tarball":"https://registry.npmjs.org/@alpha-solutions/medusa-image-alt/-/medusa-image-alt-1.1.0.tgz","fileCount":10,"unpackedSize":120960,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDVXvq6PDmmXQIfFh21STYR6Pl+9wwswHJCpDpULEFKPAIgEdml9Mj77Yz9lBEikY0H5M2TZlKEzfF2acubtZO6jtI="}]},"_npmUser":{"name":"morten.alpha","email":"me@alpha-solutions.dk"},"directories":{},"maintainers":[{"name":"morten.alpha","email":"me@alpha-solutions.dk"},{"name":"alphasolutions","email":"npm@alpha-solutions.us"},{"name":"alpharv","email":"rv@alpha-solutions.us"},{"name":"geykel","email":"grm@alpha-solutions.us"},{"name":"alphaklp","email":"klp@alpha-solutions.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/medusa-image-alt_1.1.0_1756891003119_0.5182913847128963"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-13T09:22:51.919Z","modified":"2025-09-03T09:16:43.545Z","1.0.0":"2025-08-13T09:22:52.201Z","1.1.0":"2025-09-03T09:16:43.283Z"},"author":{"name":"Medusa","url":"https://medusajs.com"},"license":"MIT","keywords":["medusa","plugin","medusa-plugin-other","medusa-plugin","medusa-v2","medusa-plugin-integration"],"description":"Possibility to set image alt metadata on product pages or export/import as bulk through settings.","maintainers":[{"name":"morten.alpha","email":"me@alpha-solutions.dk"},{"name":"alphasolutions","email":"npm@alpha-solutions.us"},{"name":"alpharv","email":"rv@alpha-solutions.us"},{"name":"geykel","email":"grm@alpha-solutions.us"},{"name":"alphaklp","email":"klp@alpha-solutions.dk"}],"readme":"<p align=\"center\">\r\n  <a href=\"https://www.medusajs.com\">\r\n  <picture>\r\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://user-images.githubusercontent.com/59018053/229103275-b5e482bb-4601-46e6-8142-244f531cebdb.svg\">\r\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg\">\r\n    <img alt=\"Medusa logo\" src=\"https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg\">\r\n    </picture>\r\n  </a>\r\n</p>\r\n<h1 align=\"center\">\r\n  Medusa Image Alt plugin\r\n</h1>\r\n\r\n## Compatibility\r\n\r\nThis plugin is tested with version 2.8.7 of `@medusajs/medusa`. \r\n\r\n## Installation\r\n\r\nAdd the @alpha-solutions/medusa-image-alt package to your project, and add the plugin to the plugin's section of your medusa-config.ts file.\r\n\r\n```json\r\n\"plugins\": [\r\n  {\r\n      \"resolve\": \"@alpha-solutions/medusa-image-alt\",\r\n      \"options\": {},\r\n  }\r\n]\r\n```\r\n\r\n## Using the plugin\r\n\r\nThe plugin adds two widgets to your Medusa admin. Each is intended to set the alt property/field in the metadata of the image. Which will be included in API output, allowing the frontend to display a proper alt text.\r\n\r\n### Product Details widget\r\nOn the product details page a widget displaying all the images and their alt. Setting an alt on an image and clicking save, will set this alt property on the metadata of the image.\\\r\n![product details widget](https://github.com/alphasolutionsrepo/medusa-image-alt/blob/main/doc/product-details-widget.png?raw=true)\r\n\r\n### Import Export widget\r\nUsing this centralized widget for importing and exporting image metadata, shop admins can leverage AI to make meaningful alts for the images for the entire shop as one batch operation.\\\r\nThis widget enables export and import images to/from CSV. The default setting is exporting only alts, but it's also possible to choose other properties in the metadata to export.\\\r\nThe import action will set any included columns (asides from the mandatory url column) to the metadata, retaining any other metadata already present on the image.\\\r\n![import export widget](https://github.com/alphasolutionsrepo/medusa-image-alt/blob/main/doc/import-export-widget.png?raw=true)\r\nThis widget was intended to be introduced as a route extension - unfortunately that broke upon making it a module. Instead it is located as a widget on the built in settings/store route.\r\n\r\n### Changelog\r\nAdded error messages to the import widget, and support for other datatypes than string for metadata\r\n","readmeFilename":"README.md"}