{"_id":"@byte5digital/meilisearch-pro","_rev":"9-61ab3f82d76f22184f4da29f4d2246ea","name":"@byte5digital/meilisearch-pro","dist-tags":{"latest":"0.0.8"},"versions":{"0.0.2":{"name":"@byte5digital/meilisearch-pro","version":"0.0.2","author":{"name":"byte5"},"license":"MIT","_id":"@byte5digital/meilisearch-pro@0.0.2","maintainers":[{"name":"connyscode","email":"concode@outlook.de"}],"dist":{"shasum":"9307c1cdc73145a37ff632d77b69373961dc1170","tarball":"https://registry.npmjs.org/@byte5digital/meilisearch-pro/-/meilisearch-pro-0.0.2.tgz","fileCount":48,"integrity":"sha512-qS1R5cBcoKJhl9JiR086lMR9WDfu2il3Rzw3QCS1uNdNVJ0wWHfalBJFD/Oxa/Onb7t8S6K22KPIpcGlEKBzjQ==","signatures":[{"sig":"MEYCIQCTKpqTZIQlMcXnCzRtUnu4Jalnw9yF7kEwajSDtj+QKAIhALmr9eqiLZV1qPST0A3Jzj3DdbYo9h9JmOqFzENFDIDm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93682},"main":".medusa/server/src/index.js","types":"./.medusa/server/src/index.d.ts","engines":{"node":">=20"},"gitHead":"3d38e7721dfe21135629eb803a57aa3b8b49af28","scripts":{"dev":"medusa plugin:develop","build":"medusa plugin:build","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"connyscode","email":"concode@outlook.de"},"_npmVersion":"11.4.2","description":"A fully customizable meilisearch plugin for all of your entities in medusa","directories":{},"_nodeVersion":"24.3.0","dependencies":{"joi":"^18.0.1","meilisearch":"^0.52.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","vite":"^5.2.11","yalc":"^1.0.0-pre.53","react":"^18.2.0","awilix":"^8.0.1","ts-node":"^10.9.2","@swc/core":"1.5.7","react-dom":"^18.2.0","prop-types":"^15.8.1","typescript":"^5.6.2","@types/node":"^20.0.0","@medusajs/ui":"4.0.4","@types/react":"^18.3.2","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@types/react-dom":"^18.2.25","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"peerDependencies":{"pg":"^8.13.0","awilix":"^8.0.1","@medusajs/ui":"4.0.3","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"_npmOperationalInternal":{"tmp":"tmp/meilisearch-pro_0.0.2_1756689721404_0.7288230788103784","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@byte5digital/meilisearch-pro","version":"0.0.3","author":{"name":"byte5"},"license":"MIT","_id":"@byte5digital/meilisearch-pro@0.0.3","maintainers":[{"name":"connyscode","email":"concode@outlook.de"}],"dist":{"shasum":"79b7120fda7814b610399b933a59a6ce95c121c1","tarball":"https://registry.npmjs.org/@byte5digital/meilisearch-pro/-/meilisearch-pro-0.0.3.tgz","fileCount":48,"integrity":"sha512-Dx4HnUMQ/CT5jB27MZWGXqAGUS4exX5kwSpEl3z43YEOzYkO/BnnWkrylkV08yC3j7aoPDWTeg82I9+RTLpGDQ==","signatures":[{"sig":"MEUCIQCLdHjVW4LaaWwy3RB4MmtYvk+7xTdnSbiTcSDdTKIYzwIgJ/ZDAfQezt3wyesG2zP6yWC3/Pg7TqGk1vfmtskq9+M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95111},"main":".medusa/server/src/index.js","types":"./.medusa/server/src/index.d.ts","engines":{"node":">=20"},"gitHead":"d01bfefd006e0619a3f03c9ef961a51cdc6384f2","scripts":{"dev":"medusa plugin:develop","build":"medusa plugin:build","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"connyscode","email":"concode@outlook.de"},"_npmVersion":"11.4.2","description":"A fully customizable meilisearch plugin for all of your entities in medusa","directories":{},"_nodeVersion":"24.3.0","dependencies":{"joi":"^18.0.1","meilisearch":"^0.52.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","vite":"^5.2.11","yalc":"^1.0.0-pre.53","react":"^18.2.0","awilix":"^8.0.1","ts-node":"^10.9.2","@swc/core":"1.5.7","react-dom":"^18.2.0","prop-types":"^15.8.1","typescript":"^5.6.2","@types/node":"^20.0.0","@medusajs/ui":"4.0.4","@types/react":"^18.3.2","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@types/react-dom":"^18.2.25","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"peerDependencies":{"pg":"^8.13.0","awilix":"^8.0.1","@medusajs/ui":"4.0.3","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"_npmOperationalInternal":{"tmp":"tmp/meilisearch-pro_0.0.3_1764940751494_0.8444445157515743","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@byte5digital/meilisearch-pro","version":"0.0.4","author":{"name":"byte5"},"license":"MIT","_id":"@byte5digital/meilisearch-pro@0.0.4","maintainers":[{"name":"connyscode","email":"concode@outlook.de"}],"dist":{"shasum":"06de2c7a1af468f2934a2856961e785df788fc04","tarball":"https://registry.npmjs.org/@byte5digital/meilisearch-pro/-/meilisearch-pro-0.0.4.tgz","fileCount":48,"integrity":"sha512-zfnzYZmxLL8zj/mQimBAhHC/C3RUDmuBWiX76uYsiOEYKN2oleVWipw3zPd1lgxEKXrkHGwKknnpb7oNVrw+Rg==","signatures":[{"sig":"MEUCIQCi60TPW0pwo9cshF0/P1J0rq5oX/TGQXjj6UVuqVNXsgIgYWiZPlFnwbqcZoqlPhDnc1crRdltMmF/AfQCblnLDMI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95669},"main":".medusa/server/src/index.js","types":"./.medusa/server/src/index.d.ts","engines":{"node":">=20"},"gitHead":"416cea59ec6a4d76acb24fc26749006192b6d4a9","scripts":{"dev":"medusa plugin:develop","build":"medusa plugin:build","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"connyscode","email":"concode@outlook.de"},"_npmVersion":"11.4.2","description":"A fully customizable meilisearch plugin for all of your entities in medusa","directories":{},"_nodeVersion":"24.3.0","dependencies":{"joi":"^18.0.1","meilisearch":"^0.52.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","vite":"^5.2.11","yalc":"^1.0.0-pre.53","react":"^18.2.0","awilix":"^8.0.1","ts-node":"^10.9.2","@swc/core":"1.5.7","react-dom":"^18.2.0","prop-types":"^15.8.1","typescript":"^5.6.2","@types/node":"^20.0.0","@medusajs/ui":"4.0.4","@types/react":"^18.3.2","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@types/react-dom":"^18.2.25","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"peerDependencies":{"pg":"^8.13.0","awilix":"^8.0.1","@medusajs/ui":"4.0.3","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"_npmOperationalInternal":{"tmp":"tmp/meilisearch-pro_0.0.4_1764944846745_0.397768844274488","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@byte5digital/meilisearch-pro","version":"0.0.5","author":{"name":"byte5"},"license":"MIT","_id":"@byte5digital/meilisearch-pro@0.0.5","maintainers":[{"name":"connyscode","email":"concode@outlook.de"}],"dist":{"shasum":"49c33a8cabb85bd606969ed5ebdc280784b873c0","tarball":"https://registry.npmjs.org/@byte5digital/meilisearch-pro/-/meilisearch-pro-0.0.5.tgz","fileCount":48,"integrity":"sha512-ch+lyZhyfILiE/hYJXb87df7iLkrgF7f3JDaARSlPyyd3LdQLzoJHs5urxlCbbooFRmCHPqw6fDDh684DXbIig==","signatures":[{"sig":"MEYCIQCI7bY6yJQ4Uq48ess1KIYt41qiRYOGiunjAiRCBWNOeAIhAPnFLOAJp/RDRRfgiC1WpGzS6uVdH4kkwleEBKFdvEGE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116577},"main":".medusa/server/src/index.js","types":"./.medusa/server/src/index.d.ts","engines":{"node":">=20"},"gitHead":"8601faa2a25eac04b4acb40779f0d554caa3b91c","scripts":{"dev":"medusa plugin:develop","build":"medusa plugin:build","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"connyscode","email":"concode@outlook.de"},"_npmVersion":"11.4.2","description":"A fully customizable meilisearch plugin for all of your entities in medusa","directories":{},"_nodeVersion":"24.3.0","dependencies":{"joi":"^18.0.1","meilisearch":"^0.52.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","vite":"^5.2.11","yalc":"^1.0.0-pre.53","react":"^18.2.0","awilix":"^8.0.1","ts-node":"^10.9.2","@swc/core":"1.5.7","react-dom":"^18.2.0","prop-types":"^15.8.1","typescript":"^5.6.2","@types/node":"^20.0.0","@medusajs/ui":"4.0.4","@types/react":"^18.3.2","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@types/react-dom":"^18.2.25","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"peerDependencies":{"pg":"^8.13.0","awilix":"^8.0.1","@medusajs/ui":"4.0.3","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"_npmOperationalInternal":{"tmp":"tmp/meilisearch-pro_0.0.5_1765015163916_0.43098902575456277","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@byte5digital/meilisearch-pro","version":"0.0.6","author":{"name":"byte5"},"license":"MIT","_id":"@byte5digital/meilisearch-pro@0.0.6","maintainers":[{"name":"connyscode","email":"concode@outlook.de"}],"dist":{"shasum":"3611caa9d560ba4e9851af782467c7a55c9f7366","tarball":"https://registry.npmjs.org/@byte5digital/meilisearch-pro/-/meilisearch-pro-0.0.6.tgz","fileCount":48,"integrity":"sha512-o/AunjWLP6PVz/a7iEr2jnGs8kz8WuNZMo7sGqInr1EAlL3p2n1+jBbnNC/JpqKHKERtsRzVcz0dNu2Hie/wtg==","signatures":[{"sig":"MEUCIBKUKSq/paWRx5CcfvHp6chGZnTZvKH0bFONoNm9rqWqAiEA5VDDaLc4tLb4Vd1KtyBzdsYKpxo1SGB4MsPzHRCfNoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123085},"main":".medusa/server/src/index.js","types":"./.medusa/server/src/index.d.ts","engines":{"node":">=20"},"gitHead":"8fb51330681f854785cff71ac42ace0cd2a7297c","scripts":{"dev":"medusa plugin:develop","build":"medusa plugin:build","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"connyscode","email":"concode@outlook.de"},"_npmVersion":"11.4.2","description":"A fully customizable meilisearch plugin for all of your entities in medusa","directories":{},"_nodeVersion":"24.3.0","dependencies":{"joi":"^18.0.1","meilisearch":"^0.52.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","vite":"^5.2.11","yalc":"^1.0.0-pre.53","react":"^18.2.0","awilix":"^8.0.1","ts-node":"^10.9.2","@swc/core":"1.5.7","react-dom":"^18.2.0","prop-types":"^15.8.1","typescript":"^5.6.2","@types/node":"^20.0.0","@medusajs/ui":"4.0.4","@types/react":"^18.3.2","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@types/react-dom":"^18.2.25","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"peerDependencies":{"pg":"^8.13.0","awilix":"^8.0.1","@medusajs/ui":"4.0.3","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"_npmOperationalInternal":{"tmp":"tmp/meilisearch-pro_0.0.6_1765204976460_0.6992055034245266","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@byte5digital/meilisearch-pro","version":"0.0.7","author":{"name":"byte5"},"license":"MIT","_id":"@byte5digital/meilisearch-pro@0.0.7","maintainers":[{"name":"connyscode","email":"concode@outlook.de"}],"dist":{"shasum":"c429132c13eab0dc55a34c25456f541b9024032a","tarball":"https://registry.npmjs.org/@byte5digital/meilisearch-pro/-/meilisearch-pro-0.0.7.tgz","fileCount":48,"integrity":"sha512-rUBbUqb3Ts8JVmzYcDegI7cCqXtFV42bxleLfwPwVqA7rQo49yr72XAouDZDuhfvbYA+8+cAHd75cjG4A4xz8A==","signatures":[{"sig":"MEQCIBWPpADXexKuYrzg9iZUN6ph2Xev1C/56BI9t8Tk8spyAiBazugrunK/tpMx2ktp44RI3dzsDrU54ZlwnOHhBTwKjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":123178},"main":".medusa/server/src/index.js","types":"./.medusa/server/src/index.d.ts","engines":{"node":">=20"},"gitHead":"0a8c3368379ed1fced286c697799e105c1657987","scripts":{"dev":"medusa plugin:develop","build":"medusa plugin:build","prepublishOnly":"medusa plugin:build"},"_npmUser":{"name":"connyscode","email":"concode@outlook.de"},"_npmVersion":"11.4.2","description":"A fully customizable meilisearch plugin for all of your entities in medusa","directories":{},"_nodeVersion":"24.3.0","dependencies":{"joi":"^18.0.1","meilisearch":"^0.52.0"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.13.0","vite":"^5.2.11","yalc":"^1.0.0-pre.53","react":"^18.2.0","awilix":"^8.0.1","ts-node":"^10.9.2","@swc/core":"1.5.7","react-dom":"^18.2.0","prop-types":"^15.8.1","typescript":"^5.6.2","@types/node":"^20.0.0","@medusajs/ui":"4.0.4","@types/react":"^18.3.2","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@types/react-dom":"^18.2.25","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"peerDependencies":{"pg":"^8.13.0","awilix":"^8.0.1","@medusajs/ui":"4.0.3","@medusajs/cli":"2.4.0","@mikro-orm/cli":"6.4.3","@medusajs/icons":"2.4.0","@mikro-orm/core":"6.4.3","@mikro-orm/knex":"6.4.3","@medusajs/medusa":"2.4.0","@medusajs/admin-sdk":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/test-utils":"2.4.0","@mikro-orm/migrations":"6.4.3","@mikro-orm/postgresql":"6.4.3"},"_npmOperationalInternal":{"tmp":"tmp/meilisearch-pro_0.0.7_1770711916495_0.08903430353852948","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@byte5digital/meilisearch-pro","version":"0.0.8","description":"A fully customizable meilisearch plugin for all of your entities in medusa","author":{"name":"byte5"},"license":"MIT","main":".medusa/server/src/index.js","scripts":{"build":"medusa plugin:build","dev":"medusa plugin:develop","prepublishOnly":"medusa plugin:build"},"devDependencies":{"@medusajs/admin-sdk":"2.4.0","@medusajs/cli":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/icons":"2.4.0","@medusajs/medusa":"2.4.0","@medusajs/test-utils":"2.4.0","@medusajs/ui":"4.0.4","@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","@swc/core":"1.5.7","@types/node":"^20.0.0","@types/react":"^18.3.2","@types/react-dom":"^18.2.25","awilix":"^8.0.1","pg":"^8.13.0","prop-types":"^15.8.1","react":"^18.2.0","react-dom":"^18.2.0","ts-node":"^10.9.2","typescript":"^5.6.2","vite":"^5.2.11","yalc":"^1.0.0-pre.53"},"peerDependencies":{"@medusajs/admin-sdk":"2.4.0","@medusajs/cli":"2.4.0","@medusajs/framework":"2.4.0","@medusajs/icons":"2.4.0","@medusajs/medusa":"2.4.0","@medusajs/test-utils":"2.4.0","@medusajs/ui":"4.0.3","@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"},"dependencies":{"joi":"^18.0.1","meilisearch":"^0.52.0"},"_id":"@byte5digital/meilisearch-pro@0.0.8","gitHead":"498d13093995d5cfba3a2fde73e718904975e79a","types":"./.medusa/server/src/index.d.ts","_nodeVersion":"24.3.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-xjR7HihyxSzNy4MaAgUMH2Ra7oqRsfpsvEzMeeRFzSbrVDY12364a2jYkklT7dql7l3SRWh8+ypk7nEIg5pkig==","shasum":"4dec8436620c4c238932182ad38143c711b8d197","tarball":"https://registry.npmjs.org/@byte5digital/meilisearch-pro/-/meilisearch-pro-0.0.8.tgz","fileCount":51,"unpackedSize":127724,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDE/SdG2zpfXvuHwXXiQZ6S4vXuoR9QXxEE2W1x7xtdawIgDpgKT+smYerI6PYO0KBw5A5pn24Pzg2tP2w1/RwDXR0="}]},"_npmUser":{"name":"connyscode","email":"concode@outlook.de"},"directories":{},"maintainers":[{"name":"connyscode","email":"concode@outlook.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/meilisearch-pro_0.0.8_1772006643747_0.09508868315394503"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-01T01:03:20.272Z","modified":"2026-02-25T08:04:04.081Z","0.0.1":"2025-09-01T01:03:20.551Z","0.0.2":"2025-09-01T01:22:01.618Z","0.0.3":"2025-12-05T13:19:11.647Z","0.0.4":"2025-12-05T14:27:26.882Z","0.0.5":"2025-12-06T09:59:24.084Z","0.0.6":"2025-12-08T14:42:56.592Z","0.0.7":"2026-02-10T08:25:16.656Z","0.0.8":"2026-02-25T08:04:03.912Z"},"author":{"name":"byte5"},"license":"MIT","description":"A fully customizable meilisearch plugin for all of your entities in medusa","maintainers":[{"name":"connyscode","email":"concode@outlook.de"}],"readme":"# Meilisearch Pro for Medusa v2\n\n[![npm version](https://badge.fury.io/js/@byte5digital%2Fmeilisearch-pro.svg)](https://badge.fury.io/js/@byte5digital%2Fmeilisearch-pro)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Node.js](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org/)\n\nA fully customizable, production-ready Meilisearch plugin for Medusa v2 that provides enterprise-grade search capabilities with advanced configuration options.\n\n## Why Choose Meilisearch Pro?\n\n### Universal Entity Support\n**Any Medusa entity can easily be configured and made searchable** - from products and collections to orders, customers, and custom entities. No more limitations on what you can search.\n\n### Superior to Other Meilisearch Plugins\n- **Flexible Index Configuration**: Support for multiple indexes with custom settings per entity\n- **Geo-location Support**: Built-in geospatial search capabilities\n- **Custom Transformers**: Transform data before indexing with custom functions\n- **Workflow Integration**: Seamless integration with Medusa's workflow system\n\n### Key Benefits\n- **Universal Entity Support**: Make any Medusa entity searchable with simple configuration\n- **Zero Configuration**: Works out of the box with sensible defaults\n- **Highly Customizable**: Configure every aspect of your search experience\n- **Performance Optimized**: Efficient indexing and search operations\n- **Production Tested**: Built and tested in real-world e-commerce environments\n\n## Installation\n\n```bash\nyarn add @byte5digital/meilisearch-pro\n```\n\n## Configuration\n\n### Basic Setup\n\n```typescript\n// medusa-config.js\nimport { MeilisearchProPluginOptions } from '@byte5digital/meilisearch-pro'\n\nconst plugins: MeilisearchProPluginOptions[] = [\n  {\n    resolve: '@byte5digital/meilisearch-pro',\n    options: {\n      config: {\n        host: 'http://localhost:7700',\n        apiKey: 'your-meilisearch-api-key',\n      },\n      settings: [\n        {\n          indexName: 'products',\n          module: 'product',\n          enabled: true,\n          indexSettings: {\n            searchableAttributes: ['title', 'description', 'tags'],\n            filterableAttributes: ['category_id', 'price', 'status'],\n            sortableAttributes: ['price', 'created_at'],\n          },\n        },\n      ],\n    },\n  },\n]\n\nexport default {\n  plugins,\n}\n```\n\n### Automatic Sync Scheduling\n\nControl how and when your Meilisearch indexes are automatically synced:\n\n```typescript\n// Default: Sync every hour\n{\n  config: { /* ... */ },\n  autoSync: \"0 * * * *\", // Default value (optional to specify)\n  settings: [ /* ... */ ]\n}\n\n// Custom schedule: Daily at midnight\n{\n  config: { /* ... */ },\n  autoSync: \"0 0 * * *\",\n  settings: [ /* ... */ ]\n}\n\n// Disable automatic sync (manual trigger only)\n{\n  config: { /* ... */ },\n  autoSync: false,\n  settings: [ /* ... */ ]\n}\n```\n\n#### Cron Schedule Format\n\nThe `autoSync` option accepts standard cron expressions:\n\n```\nminute hour day month weekday\n(0-59) (0-23) (1-31) (1-12) (0-7)\n```\n\n**Common Examples:**\n- `\"0 * * * *\"` - Every hour (default)\n- `\"0 0 * * *\"` - Daily at midnight\n- `\"0 */6 * * *\"` - Every 6 hours\n- `\"0 0 * * 0\"` - Weekly on Sunday at midnight\n- `\"0 0 1 * *\"` - Monthly on the 1st at midnight\n- `false` - Disable automatic sync\n\n**Important Notes:**\n- When `autoSync: false`, the job remains manually triggerable via workflows\n- Changes to `autoSync` require a server restart to take effect\n- Invalid cron expressions will be caught during validation with helpful error messages\n\n### Advanced Configuration\n\n```typescript\n// Advanced configuration with geo-location and custom transformers\nconst advancedConfig: MeilisearchProPluginOptions = {\n  resolve: '@byte5digital/meilisearch-pro',\n  options: {\n    config: {\n      host: 'https://your-meilisearch-instance.com',\n      apiKey: 'your-api-key',\n    },\n    deleteUnusedIndexes: true,\n    disableSearchRoute: true,\n    autoSync: \"0 0 * * *\", // Daily sync at midnight\n    settings: [\n      {\n        indexName: 'products',\n        module: 'product',\n        enabled: true,\n        fields: ['id', 'title', 'description', 'price', 'category_id'],\n        indexSettings: {\n          searchableAttributes: ['title', 'description', 'tags'],\n          filterableAttributes: ['category_id', 'price', 'status'],\n          sortableAttributes: ['price', 'created_at'],\n        },\n        useGeoLocation: {\n          latitude: 'metadata.latitude',\n          longitude: 'metadata.longitude',\n        },\n        batchSize: 50000,\n        enableBatching: true,\n        batchDelayMs: 0,\n        transformer: (product) => ({\n          ...product,\n          searchableText: `${product.title} ${product.description}`,\n        }),\n      },\n    ],\n  },\n}\n```\n\n## Features\n\n### Universal Entity Support\nMake any Medusa entity searchable with simple configuration:\n\n```typescript\nsettings: [\n  {\n    indexName: 'products',\n    module: 'product',\n    // Product search configuration\n  },\n  {\n    indexName: 'orders',\n    module: 'order',\n    // Order search configuration\n  },\n  {\n    indexName: 'customers',\n    module: 'customer',\n    // Customer search configuration\n  },\n  {\n    indexName: 'collections',\n    module: 'product_collection',\n    // Collection search configuration\n  },\n  {\n    indexName: 'custom_entities',\n    module: 'your_custom_module',\n    // Custom entity search configuration\n  },\n]\n```\n\n### Geo-location Search\nEnable location-based search for your products:\n\n```typescript\nuseGeoLocation: {\n  latitude: 'metadata.latitude',\n  longitude: 'metadata.longitude',\n}\n```\n\n### Custom Data Transformers\nTransform your data before indexing:\n\n```typescript\ntransformer: (product) => ({\n  ...product,\n  searchableText: `${product.title} ${product.description}`,\n  priceRange: product.price < 50 ? 'budget' : 'premium',\n})\n```\n\n### Automatic `medusa_id` Field\nAll documents indexed in Meilisearch automatically include a `medusa_id` field that preserves the original Medusa entity ID. This is crucial for:\n\n- **Orphan Detection**: Ensures accurate cleanup of deleted entities during sync operations\n- **Custom ID Strategies**: Allows transformers to modify the document `id` (primary key) while maintaining a reference to the original entity\n- **Data Integrity**: Provides a reliable link back to the source entity in Medusa\n\n#### How It Works\n\nThe `medusa_id` field is **automatically added AFTER your transformer runs**, ensuring it always exists and cannot be accidentally removed or overwritten. The processing order is:\n\n1. Original document from Medusa (contains `id`)\n2. Geo-location processing (if enabled)\n3. **Your transformer runs** (can modify any field including `id`)\n4. **`medusa_id` is automatically set** to the original `id` value\n\nThis means you can safely modify or completely change the `id` field in your transformer without losing the reference to the original Medusa entity.\n\n#### Example: Custom Composite IDs\n\n```typescript\n// Your transformer can freely change the document ID\ntransformer: (product) => ({\n  ...product,\n  id: `prod_${product.id}_${product.variant_id}`, // Custom composite ID\n  // medusa_id will automatically be set to the original product.id\n  // You don't need to (and cannot) set medusa_id yourself\n})\n```\n\n#### Important Notes\n\n- ⚠️ **Do not set `medusa_id` in your transformer** - It will be overwritten automatically\n- ⚠️ **The `medusa_id` value is always the original entity `id`** from Medusa, captured before any transformations\n- ✅ **Feel free to modify the `id` field** in your transformer - `medusa_id` preserves the original value\n- ✅ **Automatically added to `displayedAttributes`** - If you specify `displayedAttributes` in your index settings, `medusa_id` will be automatically included\n\n#### Automatic Display Attributes\n\nWhen you configure `displayedAttributes` in your index settings, `medusa_id` is **automatically added** to ensure it's always available for orphan detection and data integrity:\n\n```typescript\nindexSettings: {\n  // You specify these attributes\n  displayedAttributes: ['id', 'title', 'description', 'price'],\n  // medusa_id is automatically added behind the scenes\n  // Actual result: ['id', 'title', 'description', 'price', 'medusa_id']\n}\n```\n\nIf you don't specify `displayedAttributes`, all fields are displayed by default (Meilisearch's default behavior), including `medusa_id`.\n\n#### Filtering by Medusa ID\n\nAdd `medusa_id` to your `filterableAttributes` if you need to filter or search by the original Medusa entity ID:\n\n```typescript\nindexSettings: {\n  filterableAttributes: ['medusa_id', 'category_id', 'status'],\n  displayedAttributes: ['id', 'title', 'price'], // medusa_id automatically added\n}\n```\n\n### Batch Processing Mode\nConfigure how entities are synced from your database to Meilisearch with three interconnected settings:\n\n```typescript\nenableBatching: true  // Default: true\nbatchSize: 5000       // Default: 100000\nbatchDelayMs: 0       // Default: 0\n```\n\n#### How These Settings Work Together\n\n**`batchSize`** - Controls batch size for database queries:\n- **With batching enabled** (`enableBatching: true`): Determines how many entities to fetch per batch during pagination\n- **With batching disabled** (`enableBatching: false`): This setting is ignored; all entities are fetched in one query\n- Lower values reduce memory usage, higher values can improve performance\n- Example: `batchSize: 1000` means fetch 1000 entities per batch\n\n**`enableBatching`** - Enables/disables batch processing mode:\n- **`true` (default)**: Processes entities in batches of `batchSize`, loops through all data with pagination\n- **`false`**: Fetches ALL entities in a single database query (ignores `batchSize`)\n\n**`batchDelayMs`** - Adds delay between batches (only applies when `enableBatching: true`):\n- Adds a pause between processing each batch\n- Useful for rate limiting and reducing load on database/Meilisearch\n- Example: `batchDelayMs: 100` adds 100ms delay between batches\n\n#### Batching Mode vs Non-Batching Mode\n\n**Batching Mode** (`enableBatching: true`):\n- ✅ Processes entities in batches of `batchSize`\n- ✅ Automatically loops through ALL entities using pagination\n- ✅ Tracks entity IDs across all batches\n- ✅ Deletes orphaned entities only after all batches complete\n- ✅ Memory-efficient for large datasets\n- ✅ Supports rate limiting via `batchDelayMs`\n- ✅ Best for: Datasets > 10k entities, production environments\n\n**Non-Batching Mode** (`enableBatching: false`):\n- ⚡ Fetches ALL entities in a single database query\n- ⚡ Faster for small datasets (< 10k entities)\n- ⚠️ Higher memory usage\n- ⚠️ No pagination or rate limiting\n- ⚠️ `batchSize` is ignored\n- ⚠️ Best for: Small datasets only (< 10k entities)\n\n#### Configuration Examples\n\n**Small dataset (< 10k entities) - Fast sync**:\n```typescript\n{\n  enableBatching: false  // Fetch everything at once\n  // batchSize is ignored when batching is disabled\n}\n```\n\n**Medium dataset (10k-100k) - Memory efficient**:\n```typescript\n{\n  enableBatching: true,\n  batchSize: 5000,       // Process 5000 entities per batch\n  batchDelayMs: 0        // No delay between batches\n}\n```\n\n**Large dataset (100k-1M) - Optimized batching**:\n```typescript\n{\n  enableBatching: true,\n  batchSize: 10000,      // Larger batches for better performance\n  batchDelayMs: 0\n}\n```\n\n**Rate-limited environment - Protect your infrastructure**:\n```typescript\n{\n  enableBatching: true,\n  batchSize: 1000,       // Smaller batches\n  batchDelayMs: 100      // 100ms pause between batches\n}\n```\n\n#### Recommended Settings by Dataset Size\n\n| Dataset Size | enableBatching | batchSize  | batchDelayMs | Use Case                    |\n|--------------|----------------|------------|--------------|-----------------------------|\n| < 10k        | false          | (ignored)  | 0            | Small datasets, fast sync   |\n| 10k - 100k   | true           | 1000-5000  | 0            | Medium datasets             |\n| 100k - 1M    | true           | 5000-10000 | 0            | Large datasets              |\n| > 1M         | true           | 10000      | 0-100        | Very large datasets         |\n| Rate-limited | true           | 500-1000   | 100-200      | Constrained environments    |\n\n#### Important Notes\n\n⚠️ **Configuration Placement**: These settings must be at the **same level** as `indexSettings`, not inside it:\n\n```typescript\n{\n  indexName: 'products',\n  module: 'product',\n  // ✅ Correct: At root level\n  enableBatching: true,\n  batchSize: 5000,\n  batchDelayMs: 100,\n  // Meilisearch-specific settings\n  indexSettings: {\n    searchableAttributes: ['title', 'description'],\n    filterableAttributes: ['category_id', 'price'],\n    // ❌ Don't put enableBatching, batchSize, batchDelayMs here\n  }\n}\n```\n\n### Workflow Integration\nSync your indexes using Medusa's workflow system:\n\n```typescript\nimport { syncMeilisearchProIndexesWorkflow } from '@byte5digital/meilisearch-pro'\n\n// Trigger sync workflow\nawait syncMeilisearchProIndexesWorkflow({\n  indexes: [\n    { module: 'product', indexName: 'products' },\n  ],\n})\n```\n\n## Development\n\n### Prerequisites\n\n- Node.js >= 20\n- Medusa v2\n- Meilisearch instance\n\n### Local Development\n\n> For instructions on local development and testing, please refer to the [Medusa plugin development documentation](https://docs.medusajs.com/learn/fundamentals/plugins/create#3-publish-plugin-locally-for-development-and-testing).\n\n## About byte5\n\nWe're a development company based in Frankfurt, Germany — remote-friendly, open-minded, and tech-driven. Our team brings deep expertise in **Node.js**, **MedusaJS**, **Laravel**, **Umbraco**, and decentralized tech like **IOTA**. We collaborate with clients who care about clean code, scalable solutions, and long-term maintainability.\n\nWe contribute to open source, run **Laravel DACH Meetups**, and support developer communities across the DACH region. Our expertise in **e-commerce platforms** makes us the perfect partner for building robust, scalable solutions.\n\nIf you love building smart solutions with real impact — we should talk.\n\n**Connect with us:**\n- [Website](https://byte5.net)\n- [LinkedIn](https://www.linkedin.com/company/byte5-gmbh)\n- [Email](mailto:info@byte5.de)\n\n## Support\n\n- [Issue Tracker](https://github.com/byte5digital/meilisearch-pro/issues)\n- [Discord Community](https://discord.gg/medusajs)\n- [Email Support](mailto:support@byte5.de)\n\n---\n\n**Built with 🩵 by [byte5](https://byte5.net)**","readmeFilename":"README.md"}