{"_id":"@codecorn/euro-plate-validator","_rev":"13-6b93e1f602ec2d425ea2f48d06a26924","name":"@codecorn/euro-plate-validator","dist-tags":{"latest":"1.0.15"},"versions":{"1.0.1":{"name":"@codecorn/euro-plate-validator","version":"1.0.1","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.1","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/issues#readme","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"dist/cli.mjs"},"dist":{"shasum":"045a727a92cbb0876f4cef505e3d9783831a5c5b","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.1.tgz","fileCount":9,"integrity":"sha512-iEDuAQzlV2LmPKkmsHFSXLcJ0d6IHxZ+fKsnluBmOrf559NNy8viWI9kt7u7AkxCwqLtaZpZnge564Xb+34x8w==","signatures":[{"sig":"MEYCIQDytH9tixzHIQBgi5rllDQmh5gFIuqH9UpFSzQXlloKBgIhAJ7Q0M+764qq87/DpRDPzc1rnhX6R6lLyqKfvvKWTUzo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22634},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b62134d70b05dee52cfcb38f929514be544731db","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"rm -rf dist && tsc && node ./scripts/build-cjs.js && node ./scripts/postbuild-nocheck.js && node ./scripts/copy-cli.js","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","prepublishOnly":"npm run build"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"types":"0.1.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.1_1759602374036_0.010237699423799151","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@codecorn/euro-plate-validator","version":"1.0.2","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.2","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/issues#readme","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"dist/cli.mjs"},"dist":{"shasum":"48033cf5a605c2463bba1155fdc6ba15555fddaa","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.2.tgz","fileCount":17,"integrity":"sha512-dpCsu6jXI0dGrW2u+Bdg1yJWhUGr/BmqQgd1SFpFXDYnRKV8asudW9x/iVOwDx3432zSeMkSc/Fzi/vCp17j6Q==","signatures":[{"sig":"MEUCIQDp/tO36cEyCnkBUnVH1HrynjX/wH88hu4Lg+MQAjy34gIgQ26XI3jegHyaGTW2jCiCgbZxYlmswiu5PtoMFLANdDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93538},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","exports":{".":{"import":"./dist/index.js","browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"require":"./dist/index.cjs"}},"gitHead":"9f24b848616619b07b4b4a71e10bcc14e4f4c522","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"rm -rf dist && tsc && node ./scripts/build-cjs.js && node ./scripts/postbuild-nocheck.js && node ./scripts/copy-cli.js && npm run build:browser","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","build:browser":"node ./scripts/build-browser.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"esbuild":"0.25.10"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"types":"0.1.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.2_1759604095159_0.42330493156683957","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@codecorn/euro-plate-validator","version":"1.0.3","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.3","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/issues#readme","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"dist/cli.mjs"},"dist":{"shasum":"9bb467abfb65fea4fb328f773661ae48cca24ef6","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.3.tgz","fileCount":17,"integrity":"sha512-9xEIXtArbwUEN5HxS8+jHXS0FsVtQJZBIofBQic0C4gGxS/EK1K+4GfyYc5BJt6RNPv0+vbxd/kd1OcvCzyVGA==","signatures":[{"sig":"MEQCIG/EwE0cdRTQNIRJ49r/p9oTjsYhdT1bMAEjOvBSM5kQAiARpHP6sFG7+T3UZTGhp8CQ4IdJziZkHp83PxBXIYWZng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103157},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","exports":{".":{"import":"./dist/index.js","browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"require":"./dist/index.cjs"}},"gitHead":"614c72743454cb1fe51a2e100e0a9a04f9c8dbf4","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"rm -rf dist && tsc && node ./scripts/build-cjs.js && node ./scripts/postbuild-nocheck.js && node ./scripts/copy-cli.js && npm run build:browser && node ./scripts/postbuild-nocheck.js","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","test:random":"npm run build && node ./scripts/test-random.mjs","test:samples":"npm run build && node ./scripts/test-samples.mjs","build:browser":"node ./scripts/build-browser.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"esbuild":"0.25.10"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"types":"0.1.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.3_1759638919098_0.42603452572730105","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@codecorn/euro-plate-validator","version":"1.0.5","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.5","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/issues#readme","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"dist/cli.mjs"},"dist":{"shasum":"6918e5fba1c5bf51d9eb144711fadd29558f4840","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.5.tgz","fileCount":17,"integrity":"sha512-m+iXigIg4p9MkF3bz7/U4edT1sM3Kwfghji0s160aQpoPyhULxY/fQvjjv34dppGU1JnVSgg3WcCz6eowlEPBA==","signatures":[{"sig":"MEUCIQCftr/CsgRIsaAXbZH3ea9KaxmFbozoqDchJ7kxHOeEOgIgUtbNZ7wBVTFMJ5ggchMGXqZ+ILNwgXqmq4d8Gc0PHu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105906},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","exports":{".":{"import":"./dist/index.js","browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"require":"./dist/index.cjs"}},"gitHead":"8bd16dfddab0661f9eed9db2ebccc816b2a8418a","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"rm -rf dist && tsc && node ./scripts/build-cjs.js && node ./scripts/postbuild-nocheck.js && node ./scripts/copy-cli.js && npm run build:browser && node ./scripts/postbuild-nocheck.js","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","test:random":"npm run build && node ./scripts/test-random.mjs","test:samples":"npm run build && node ./scripts/test-samples.mjs","build:browser":"node ./scripts/build-browser.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"esbuild":"0.25.10"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"types":"0.1.1","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.5_1759640279877_0.3225928566424683","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@codecorn/euro-plate-validator","version":"1.0.6","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.6","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/issues#readme","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"dist/cli.mjs"},"dist":{"shasum":"ee6dbbe55329274293bc546d9381a685b43a87c8","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.6.tgz","fileCount":17,"integrity":"sha512-9wN26nBmFhwjq3Ywi9FN8pRBMeOiX8+RZLsg3v7KT9a5U/YFFapq2p4VOyHw043bOLzlSlHsFLXm8omra07PMw==","signatures":[{"sig":"MEUCIE6arYSZs4eOSNGQq3LT7ZKQQ47a32SkdE6lYTTygo5eAiEA2dwj9m3deIjjl0jUXl19576KloGjf3c0LTfhSQykdX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127061},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","exports":{".":{"import":"./dist/index.js","browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"require":"./dist/index.cjs"}},"gitHead":"8859f566dafc9d37e01d92d0a90ae94c5e76b62c","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"rm -rf dist && tsc && node ./scripts/build-cjs.js && node ./scripts/postbuild-nocheck.js && node ./scripts/copy-cli.js && npm run build:browser && node ./scripts/postbuild-nocheck.js","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","test:random":"npm run build && node ./scripts/test-random.mjs","test:samples":"npm run build && node ./scripts/test-samples.mjs","build:browser":"node ./scripts/build-browser.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"esbuild":"0.25.10"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"types":"0.1.1","typescript":"^5.9.3"},"peerDependencies":{"inputmask":">=5"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.6_1759646939424_0.6640193763893412","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@codecorn/euro-plate-validator","version":"1.0.8","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.8","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/issues#readme","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"bin/cli.mjs"},"dist":{"shasum":"1c815ee1df1e3f5e8972a2889d81f799b3b9e239","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.8.tgz","fileCount":36,"integrity":"sha512-XzaWW26Z6VsGN4IgniRALI6RLsh1yXUetu3WS/HK0Lo2R4kZ+ViHkmuBOjp/E9uWOD0gJeElPGofZyrsZ+VBwA==","signatures":[{"sig":"MEUCIFrs1afkEKf79RRuwjOpul9p9NZKvu57mexhUo5ViuTrAiEA3/1LD9E26k1piSoAutkdn4V+Yik4ncMGTtmw3DQrgqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":560961},"main":"./dist/index.cjs","type":"module","types":"./dist-types/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist-types/client/europlate.client.d.ts","import":"./dist/client/europlate.client.mjs","require":"./dist/client/europlate.client.cjs"},"./browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"./package.json":"./package.json"},"gitHead":"8689c46463e4868cd73f0ca95a1685d3d4f54908","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"npm run clean && npm run build:types && npm run build:esm && npm run build:cjs && npm run build:browser && npm run build:client && npm run build:assets npm run postbuild:nocheck","clean":"rimraf dist dist-types","format":"prettier --write .","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","build:cjs":"esbuild src/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/index.cjs","build:cli":"esbuild src/cli.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/cli.mjs","build:esm":"esbuild src/index.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/index.js","build:types":"tsc -p tsconfig.bundle.json --emitDeclarationOnly --declaration --outDir dist-types","test:random":"npm run build && node ./scripts/test-random.mjs","build:assets":"node ./scripts/copy-assets.js","build:client":"npm run build:client:esm && npm run build:client:cjs","format:check":"prettier --check .","test:samples":"npm run build && node ./scripts/test-samples.mjs","build:browser":"npm run build:browser:esm && npm run build:browser:iife","prepublishOnly":"npm run build","typecheck:node":"tsc -p tsconfig.node.json --noEmit","build:client:cjs":"esbuild src/client/europlate.client.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/client/europlate.client.cjs","build:client:esm":"esbuild src/client/europlate.client.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/client/europlate.client.mjs","typecheck:bundle":"tsc -p tsconfig.bundle.json --noEmit","build:browser:esm":"esbuild src/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/browser/index.esm.js","postbuild:nocheck":"node ./scripts/postbuild-nocheck.js","build:browser:iife":"esbuild src/index.ts --bundle --platform=browser --format=iife --global-name=EuroPlateValidator --minify --outfile=dist/browser/index.iife.min.js","typecheck:node:files":"tsc -p tsconfig.node.json --noEmit --listFiles"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist-types/*.d.ts","dist-types/*/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tslib":"2.8.1","rimraf":"6.0.1","esbuild":"0.25.10","prettier":"3.6.2","typescript":"^5.9.3","@types/node":"24.6.2","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4"},"peerDependencies":{"inputmask":">=5"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.8_1760089635490_0.07069903314714265","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@codecorn/euro-plate-validator","version":"1.0.9","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.9","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/issues#readme","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"bin/cli.mjs"},"dist":{"shasum":"503224cbf6fea6c05da8e85b022321994729f927","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.9.tgz","fileCount":36,"integrity":"sha512-JBlAXUEgrts3jfQPjkhMH61XwNCCIUfA1hQMsZrloOHMo31s12PMoYas6FccC/GfnjKqLwwm7hhBpVmp8dJoBA==","signatures":[{"sig":"MEYCIQCU0WoaBGP3+prUAXjPh4FD95WYnt6LHMKt8J8iCw7+zgIhALXZGamTTPiS9m8A8P3iwwnClVxP2FHYBGkxXe/YIDOw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":560972},"main":"./dist/index.cjs","type":"module","types":"./dist-types/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist-types/client/europlate.client.d.ts","import":"./dist/client/europlate.client.mjs","require":"./dist/client/europlate.client.cjs"},"./browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"./package.json":"./package.json"},"gitHead":"23047a1f71fbe608c770129ca041400f5d5936b8","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"npm run clean && npm run build:types && npm run build:esm && npm run build:cjs && npm run build:browser && npm run build:client && npm run build:assets npm run postbuild:nocheck","clean":"rimraf dist dist-types","format":"prettier --write .","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","build:cjs":"esbuild src/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/index.cjs","build:cli":"esbuild src/cli.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/cli.mjs","build:esm":"esbuild src/index.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/index.js","build:types":"tsc -p tsconfig.bundle.json --emitDeclarationOnly --declaration --outDir dist-types","test:random":"npm run build && node ./scripts/test-random.mjs","build:assets":"node ./scripts/copy-assets.js","build:client":"npm run build:client:esm && npm run build:client:cjs","format:check":"prettier --check .","test:samples":"npm run build && node ./scripts/test-samples.mjs","build:browser":"npm run build:browser:esm && npm run build:browser:iife","prepublishOnly":"npm run build","typecheck:node":"tsc -p tsconfig.node.json --noEmit","build:client:cjs":"esbuild src/client/europlate.client.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/client/europlate.client.cjs","build:client:esm":"esbuild src/client/europlate.client.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/client/europlate.client.mjs","typecheck:bundle":"tsc -p tsconfig.bundle.json --noEmit","build:browser:esm":"esbuild src/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/browser/index.esm.js","postbuild:nocheck":"node ./scripts/postbuild-nocheck.js","build:browser:iife":"esbuild src/index.ts --bundle --platform=browser --format=iife --global-name=EuroPlateValidator --minify --outfile=dist/browser/index.iife.min.js","typecheck:node:files":"tsc -p tsconfig.node.json --noEmit --listFiles"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist-types/*.d.ts","dist-types/*/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tslib":"2.8.1","rimraf":"6.0.1","esbuild":"0.25.10","prettier":"3.6.2","typescript":"^5.9.3","@types/node":"24.6.2","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4"},"peerDependencies":{"inputmask":">=5"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.9_1760110450828_0.7605283979059596","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@codecorn/euro-plate-validator","version":"1.0.10","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.10","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/issues#readme","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"bin/cli.mjs"},"dist":{"shasum":"f0007515349432cd8ad972de624a0d39685f2d52","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.10.tgz","fileCount":36,"integrity":"sha512-2uGp6xUBwEUfFoN+BzPkPJYk2OuIoZ1tKcyRUQoQ0X+4eBJt9OguIw8Gga/Dg+ZqAxWCYfSq5prXJKAydChwbw==","signatures":[{"sig":"MEUCIQCqfkDrXQw+K9hORE31/el7soYycqIPo8oceRhSlVzHQgIgB4FDB6GMKkOIy3lHp/uoCbejp59jsHUaeMramgQ+Z9U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":571208},"main":"./dist/index.cjs","type":"module","types":"./dist-types/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist-types/client/europlate.client.d.ts","import":"./dist/client/europlate.client.mjs","require":"./dist/client/europlate.client.cjs"},"./browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"./package.json":"./package.json"},"gitHead":"ce8812ca1e55714fe9cd9663204608c39e11896d","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"npm run clean && npm run build:types && npm run build:esm && npm run build:cjs && npm run build:browser && npm run build:client && npm run build:assets npm run postbuild:nocheck","clean":"rimraf dist dist-types","format":"prettier --write .","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","build:cjs":"esbuild src/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/index.cjs","build:cli":"esbuild src/cli.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/cli.mjs","build:esm":"esbuild src/index.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/index.js","build:types":"tsc -p tsconfig.bundle.json --emitDeclarationOnly --declaration --outDir dist-types","test:random":"npm run build && node ./scripts/test-random.mjs","build:assets":"node ./scripts/copy-assets.js","build:client":"npm run build:client:esm && npm run build:client:cjs","format:check":"prettier --check .","test:samples":"npm run build && node ./scripts/test-samples.mjs","build:browser":"npm run build:browser:esm && npm run build:browser:iife","prepublishOnly":"npm run build","typecheck:node":"tsc -p tsconfig.node.json --noEmit","build:client:cjs":"esbuild src/client/europlate.client.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/client/europlate.client.cjs","build:client:esm":"esbuild src/client/europlate.client.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/client/europlate.client.mjs","typecheck:bundle":"tsc -p tsconfig.bundle.json --noEmit","build:browser:esm":"esbuild src/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/browser/index.esm.js","postbuild:nocheck":"node ./scripts/postbuild-nocheck.js","build:browser:iife":"esbuild src/index.ts --bundle --platform=browser --format=iife --global-name=EuroPlateValidator --minify --outfile=dist/browser/index.iife.min.js","typecheck:node:files":"tsc -p tsconfig.node.json --noEmit --listFiles"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist-types/*.d.ts","dist-types/*/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tslib":"2.8.1","rimraf":"6.0.1","esbuild":"0.25.10","prettier":"3.6.2","typescript":"^5.9.3","@types/node":"24.6.2","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4"},"peerDependencies":{"inputmask":">=5"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.10_1760234743259_0.4809748912953071","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@codecorn/euro-plate-validator","version":"1.0.11","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.11","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/issues#readme","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"bin/cli.mjs"},"dist":{"shasum":"90e1dd03daa32bd07121e9eb73183d74e20abbcc","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.11.tgz","fileCount":43,"integrity":"sha512-cRiQpyvmtSL2Gz1k0RzC7VgkFrPjshXYu2Qqa1TQWR3eECHlgThEnTjBz4+mqenatyVAO5EZh8a0XrPxgwWbZQ==","signatures":[{"sig":"MEYCIQDaGxQEwiXqZ9ykZ42jKXHV2x/AASgfIVMk/FZtpZ9HuAIhAN4cMgZdtfFfCxVclk7ePb1I+dUYX7hbFSRc6vY8W6Yz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":686522},"main":"./dist/index.cjs","type":"module","types":"./dist-types/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist-types/client/europlate.client.d.ts","import":"./dist/client/europlate.client.mjs","require":"./dist/client/europlate.client.cjs"},"./browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"./package.json":"./package.json"},"gitHead":"a5fc35d9f141cfa1c9b516034599816005a2d098","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"npm run clean && npm run build:types && npm run build:esm && npm run build:cjs && npm run build:browser && npm run build:browser:esm:min && npm run build:client && npm run build:client:esm:min && npm run build:assets && npm run build:css:min && npm run postbuild:nocheck","clean":"rimraf dist dist-types","format":"prettier --write .","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","build:cjs":"esbuild src/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/index.cjs","build:cli":"esbuild src/cli.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/cli.mjs","build:esm":"esbuild src/index.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/index.js","build:types":"tsc -p tsconfig.bundle.json --emitDeclarationOnly --declaration --outDir dist-types","test:random":"npm run build && node ./scripts/test-random.mjs","build:assets":"node ./scripts/copy-assets.js","build:client":"npm run build:client:esm && npm run build:client:cjs","format:check":"prettier --check .","test:samples":"npm run build && node ./scripts/test-samples.mjs","build:browser":"npm run build:browser:esm && npm run build:browser:iife","build:css:min":"node ./scripts/minify-css.mjs","prepublishOnly":"npm run build","typecheck:node":"tsc -p tsconfig.node.json --noEmit","build:client:cjs":"esbuild src/client/europlate.client.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/client/europlate.client.cjs","build:client:esm":"esbuild src/client/europlate.client.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/client/europlate.client.mjs","typecheck:bundle":"tsc -p tsconfig.bundle.json --noEmit","build:browser:esm":"esbuild src/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/browser/index.esm.js","postbuild:nocheck":"node ./scripts/postbuild-nocheck.js","build:browser:iife":"esbuild src/index.ts --bundle --platform=browser --format=iife --global-name=EuroPlateValidator --minify --outfile=dist/browser/index.iife.min.js","build:client:esm:min":"esbuild src/client/europlate.client.ts --bundle --platform=browser --format=esm --minify --sourcemap --outfile=dist/client/europlate.client.min.mjs","typecheck:node:files":"tsc -p tsconfig.node.json --noEmit --listFiles","build:browser:esm:min":"esbuild src/index.ts --bundle --platform=browser --format=esm --minify --sourcemap --outfile=dist/browser/index.esm.min.js"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist-types/*.d.ts","dist-types/*/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tslib":"2.8.1","rimraf":"6.0.1","esbuild":"0.25.10","prettier":"3.6.2","typescript":"^5.9.3","@types/node":"24.6.2","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4"},"peerDependencies":{"inputmask":">=5"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.11_1760235826523_0.29248237112620035","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@codecorn/euro-plate-validator","version":"1.0.12","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.12","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/blob/main/README.md","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"bin/cli.mjs"},"dist":{"shasum":"725ecb17017714f18d5af8dddbbbf4fe8aa40ba6","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.12.tgz","fileCount":46,"integrity":"sha512-7zoAAigYAXOd7DsUvig9Tov4Mfiv9Pr0cQ+BHKUS2cHRj0GdWl8hUbQmbfEI2GL2cYpMfa4e17yhLP2fOGOZuA==","signatures":[{"sig":"MEYCIQD7xLrM7ni491+vFch6PA9mCGQ75lRpM+Cr31F8R9TEhwIhAL+zvcCjUID/IwbZyRVwJoFBUq3UlwOjNuq0oMYmaNWM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":810007},"main":"./dist/index.cjs","type":"module","types":"./dist-types/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist-types/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.cjs"},"./browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"./package.json":"./package.json"},"gitHead":"d1410b8c3874b68490a62e3f4af22d0523057010","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"npm run clean && npm run build:types && npm run build:esm && npm run build:cjs && npm run build:browser && npm run build:browser:esm:min && npm run build:client && npm run build:client:esm:min && npm run build:assets && npm run build:css:min && npm run postbuild:nocheck","clean":"rimraf dist dist-types","format":"prettier --write .","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","build:cjs":"esbuild src/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/index.cjs","build:cli":"esbuild src/cli.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/cli.mjs","build:esm":"esbuild src/index.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/index.js","build:types":"tsc -p tsconfig.bundle.json --emitDeclarationOnly --declaration --outDir dist-types","test:random":"npm run build && node ./scripts/test-random.mjs","build:assets":"node ./scripts/copy-assets.js","build:client":"npm run build:client:esm && npm run build:client:cjs","format:check":"prettier --check .","test:samples":"npm run build && node ./scripts/test-samples.mjs","build:browser":"npm run build:browser:esm && npm run build:browser:iife","build:css:min":"node ./scripts/minify-css.mjs","prepublishOnly":"npm run build","typecheck:node":"tsc -p tsconfig.node.json --noEmit","build:client:cjs":"esbuild src/client/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/client/index.cjs","build:client:esm":"esbuild src/client/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/client/index.mjs","typecheck:bundle":"tsc -p tsconfig.bundle.json --noEmit","build:browser:esm":"esbuild src/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/browser/index.esm.js","postbuild:nocheck":"node ./scripts/postbuild-nocheck.js","build:browser:iife":"esbuild src/index.ts --bundle --platform=browser --format=iife --global-name=EuroPlateValidator --minify --outfile=dist/browser/index.iife.min.js","build:client:esm:min":"esbuild src/client/index.ts --bundle --platform=browser --format=esm --minify --sourcemap --outfile=dist/client/index.min.mjs","typecheck:node:files":"tsc -p tsconfig.node.json --noEmit --listFiles","build:browser:esm:min":"esbuild src/index.ts --bundle --platform=browser --format=esm --minify --sourcemap --outfile=dist/browser/index.esm.min.js"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist-types/*.d.ts","dist-types/*/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tslib":"2.8.1","rimraf":"6.0.1","esbuild":"0.25.10","prettier":"3.6.2","typescript":"^5.9.3","@types/node":"24.6.2","undici-types":"7.16.0","@types/jquery":"3.5.33","@types/toastr":"2.1.43","@types/inputmask":"5.0.7","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4"},"peerDependencies":{"inputmask":">=5"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.12_1760513595260_0.5049668743797562","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@codecorn/euro-plate-validator","version":"1.0.13","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.13","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/blob/main/README.md","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"bin/cli.mjs"},"dist":{"shasum":"aff598d5b38ffa485666117f3a8eb21241342654","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.13.tgz","fileCount":48,"integrity":"sha512-SiunGldbBc+A28hpMNxgMuc0IufanoW5o/H9oa0PdTE4CBVYJbhNJtw/DdCVOfYcdinFXLwYl3znfmuMlEnlDQ==","signatures":[{"sig":"MEQCICT0j/AwxSZLSPNh5Pa1mqiRlScMMZnyt+566yCotCI3AiAdBQL2cpFKum1XwZYBNvr5FOCnnuj1VSIPGImH3Qv9DQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":939291},"main":"./dist/index.cjs","type":"module","types":"./dist-types/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist-types/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.cjs"},"./browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"./package.json":"./package.json"},"gitHead":"fa76ac10e0faa1075b5f1718df325e528bf0797f","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"npm run clean && npm run build:types && npm run build:esm && npm run build:cjs && npm run build:browser && npm run build:browser:esm:min && npm run build:client && npm run build:client:esm:min && npm run build:assets && npm run build:css:min && npm run postbuild:nocheck","clean":"rimraf dist dist-types","format":"prettier --write .","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","build:cjs":"esbuild src/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/index.cjs","build:cli":"esbuild src/cli.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/cli.mjs","build:esm":"esbuild src/index.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/index.js","build:types":"tsc -p tsconfig.bundle.json --emitDeclarationOnly --declaration --outDir dist-types","test:random":"npm run build && node ./scripts/test-random.mjs","build:assets":"node ./scripts/copy-assets.js","build:client":"npm run build:client:esm && npm run build:client:cjs","format:check":"prettier --check .","test:samples":"npm run build && node ./scripts/test-samples.mjs","build:browser":"npm run build:browser:esm && npm run build:browser:iife","build:css:min":"node ./scripts/minify-css.mjs","prepublishOnly":"npm run build","typecheck:node":"tsc -p tsconfig.node.json --noEmit","build:client:cjs":"esbuild src/client/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/client/index.cjs","build:client:esm":"esbuild src/client/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/client/index.mjs","typecheck:bundle":"tsc -p tsconfig.bundle.json --noEmit","build:browser:esm":"esbuild src/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/browser/index.esm.js","postbuild:nocheck":"node ./scripts/postbuild-nocheck.js","build:browser:iife":"esbuild src/index.ts --bundle --platform=browser --format=iife --global-name=EuroPlateValidator --minify --outfile=dist/browser/index.iife.min.js","build:client:esm:min":"esbuild src/client/index.ts --bundle --platform=browser --format=esm --minify --sourcemap --outfile=dist/client/index.min.mjs","typecheck:node:files":"tsc -p tsconfig.node.json --noEmit --listFiles","build:browser:esm:min":"esbuild src/index.ts --bundle --platform=browser --format=esm --minify --sourcemap --outfile=dist/browser/index.esm.min.js"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist-types/*.d.ts","dist-types/*/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tslib":"2.8.1","rimraf":"6.0.1","esbuild":"0.25.10","prettier":"3.6.2","typescript":"^5.9.3","@types/node":"24.6.2","undici-types":"7.16.0","@types/jquery":"3.5.33","@types/toastr":"2.1.43","@types/inputmask":"5.0.7","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4"},"peerDependencies":{"inputmask":">=5"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.13_1760919526245_0.9678875522380694","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@codecorn/euro-plate-validator","version":"1.0.14","keywords":["license-plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"author":{"url":"@fgirolami29|@CodeCornTech","name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it"},"license":"MIT","_id":"@codecorn/euro-plate-validator@1.0.14","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"homepage":"https://github.com/CodeCornTech/euro-plate-validator/blob/main/README.md","bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"bin":{"euro-plate-validator":"bin/cli.mjs"},"dist":{"shasum":"d82e53f355d7b2c081a172d0db6ebb506457102d","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.14.tgz","fileCount":50,"integrity":"sha512-TLeqUqAIBd4f7jEYiROMyt59p8Sv1ljmfJPbmiNPDXyJ2f6Is5GUbrg6mTuMdo0u0+MAKPYhrYtYsW2VhZkgKQ==","signatures":[{"sig":"MEYCIQDTDJumDUiWkcKp9ZGhn78gmSgu32syrktFHethZ5Ot2QIhAPMVohluzeAMhkJJJ1SVco46f4QtVPJd0oGbDho+mE8D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1240867},"main":"./dist/index.cjs","type":"module","types":"./dist-types/index.d.ts","unpkg":"dist/browser/index.iife.min.js","module":"./dist/index.js","browser":"dist/browser/index.esm.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.cjs"},"./client":{"types":"./dist-types/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.cjs"},"./browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"./package.json":"./package.json"},"gitHead":"01b3f3119ca71c2698533e618e836b896b7680bc","scripts":{"test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","build":"npm run clean && npm run build:types && npm run build:esm && npm run build:cjs && npm run build:browser && npm run build:browser:esm:min && npm run build:client && npm run build:client:esm:min && npm run build:assets && npm run build:css:min && npm run postbuild:nocheck","clean":"rimraf dist dist-types","format":"prettier --write .","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","build:cjs":"esbuild src/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/index.cjs","build:cli":"esbuild src/cli.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/cli.mjs","build:esm":"esbuild src/index.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/index.js","build:types":"tsc -p tsconfig.bundle.json --emitDeclarationOnly --declaration --outDir dist-types","test:random":"npm run build && node ./scripts/test-random.mjs","build:assets":"node ./scripts/copy-assets.js","build:client":"npm run build:client:esm && npm run build:client:cjs","format:check":"prettier --check .","test:samples":"npm run build && node ./scripts/test-samples.mjs","build:browser":"npm run build:browser:esm && npm run build:browser:iife","build:css:min":"node ./scripts/minify-css.mjs","prepublishOnly":"npm run build","typecheck:node":"tsc -p tsconfig.node.json --noEmit","build:client:cjs":"esbuild src/client/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/client/index.cjs","build:client:esm":"esbuild src/client/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/client/index.mjs","typecheck:bundle":"tsc -p tsconfig.bundle.json --noEmit","build:browser:esm":"esbuild src/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/browser/index.esm.js","postbuild:nocheck":"node ./scripts/postbuild-nocheck.js","build:browser:iife":"esbuild src/index.ts --bundle --platform=browser --format=iife --global-name=EuroPlateValidator --minify --outfile=dist/browser/index.iife.min.js","build:client:esm:min":"esbuild src/client/index.ts --bundle --platform=browser --format=esm --minify --sourcemap --outfile=dist/client/index.min.mjs","typecheck:node:files":"tsc -p tsconfig.node.json --noEmit --listFiles","build:browser:esm:min":"esbuild src/index.ts --bundle --platform=browser --format=esm --minify --sourcemap --outfile=dist/browser/index.esm.min.js"},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"jsdelivr":"dist/browser/index.iife.min.js","repository":{"url":"git+https://github.com/CodeCornTech/euro-plate-validator.git","type":"git"},"_npmVersion":"11.6.1","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["dist-types/*.d.ts","dist-types/*/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tslib":"2.8.1","rimraf":"6.0.1","esbuild":"0.25.10","prettier":"3.6.2","typescript":"^5.9.3","@types/node":"24.6.2","undici-types":"7.16.0","@types/jquery":"3.5.33","@types/toastr":"2.1.43","@types/inputmask":"5.0.7","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4"},"peerDependencies":{"inputmask":">=5"},"_npmOperationalInternal":{"tmp":"tmp/euro-plate-validator_1.0.14_1760934309456_0.5814837481366522","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@codecorn/euro-plate-validator","version":"1.0.15","description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","keywords":["license-plate","plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist-types/index.d.ts","typesVersions":{"*":{"*":["dist-types/*.d.ts","dist-types/*/index.d.ts"]}},"exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs","default":"./dist/index.js"},"./client":{"types":"./dist-types/client/index.d.ts","import":"./dist/client/index.mjs","require":"./dist/client/index.cjs"},"./browser":{"import":"./dist/browser/index.esm.js","default":"./dist/browser/index.esm.js"},"./package.json":"./package.json"},"browser":"dist/browser/index.esm.js","unpkg":"dist/browser/index.iife.min.js","jsdelivr":"dist/browser/index.iife.min.js","bin":{"euro-plate-validator":"bin/cli.mjs"},"sideEffects":false,"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/CodeCornTech/euro-plate-validator.git"},"bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"homepage":"https://github.com/CodeCornTech/euro-plate-validator/blob/main/README.md","license":"MIT","author":{"name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it","url":"@fgirolami29|@CodeCornTech"},"scripts":{"clean":"rimraf dist dist-types","typecheck:bundle":"tsc -p tsconfig.bundle.json --noEmit","typecheck:node":"tsc -p tsconfig.node.json --noEmit","typecheck:node:files":"tsc -p tsconfig.node.json --noEmit --listFiles","build:types":"tsc -p tsconfig.bundle.json --emitDeclarationOnly --declaration --outDir dist-types","build:esm":"esbuild src/index.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/index.js","build:cjs":"esbuild src/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/index.cjs","build:browser:esm":"esbuild src/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/browser/index.esm.js","build:browser:esm:min":"esbuild src/index.ts --bundle --platform=browser --format=esm --minify --sourcemap --outfile=dist/browser/index.esm.min.js","build:browser:iife":"esbuild src/index.ts --bundle --platform=browser --format=iife --global-name=EuroPlateValidator --minify --outfile=dist/browser/index.iife.min.js","build:client:esm":"esbuild src/client/index.ts --bundle --platform=browser --format=esm --sourcemap --outfile=dist/client/index.mjs","build:client:esm:min":"esbuild src/client/index.ts --bundle --platform=browser --format=esm --minify --sourcemap --outfile=dist/client/index.min.mjs","build:client:cjs":"esbuild src/client/index.ts --bundle --platform=node --format=cjs --sourcemap --outfile=dist/client/index.cjs","build:cli":"esbuild src/cli.ts --bundle --platform=node --format=esm --sourcemap --outfile=dist/cli.mjs","build:browser":"npm run build:browser:esm && npm run build:browser:iife","build:client":"npm run build:client:esm && npm run build:client:cjs","postbuild:nocheck":"node ./scripts/postbuild-nocheck.js","build:assets":"node ./scripts/copy-assets.js","build:css:min":"node ./scripts/minify-css.mjs","build":"npm run clean && npm run build:types && npm run build:esm && npm run build:cjs && npm run build:browser && npm run build:browser:esm:min && npm run build:client && npm run build:client:esm:min && npm run build:assets && npm run build:css:min && npm run postbuild:nocheck","prepublishOnly":"npm run build","cli-test":"node ./bin/cli.mjs \"AB 123 CD\" --countries IT --type car --pretty","test":"node -e \"import('./dist/index.js').then(m=>console.log(m.validatePlate('AB 123 CD',['IT'])))\"","test:samples":"npm run build && node ./scripts/test-samples.mjs","test:random":"npm run build && node ./scripts/test-random.mjs","format":"prettier --write .","format:check":"prettier --check ."},"devDependencies":{"@types/inputmask":"5.0.7","@types/jquery":"3.5.33","@types/node":"24.6.2","@types/toastr":"2.1.43","esbuild":"0.25.10","eslint-config-prettier":"10.1.8","eslint-plugin-prettier":"5.5.4","prettier":"3.6.2","rimraf":"6.0.1","tslib":"2.8.1","typescript":"^5.9.3","undici-types":"7.16.0"},"peerDependencies":{"inputmask":">=5"},"engines":{"node":">=18"},"gitHead":"1bacf23fca526c5b829b32b78616b1d921031d5a","_id":"@codecorn/euro-plate-validator@1.0.15","_nodeVersion":"22.20.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-Bp3ibT5BZPSLbG9pOUDNL8izv9WLuqYLUR6nPbK/7+q5+NJ80sLuzIoLniMcvLl+SPQf092gcp/QTo1b8EoJ9w==","shasum":"371b9f61c3e6b71f0b5cb03ea7f8e0714ad27be9","tarball":"https://registry.npmjs.org/@codecorn/euro-plate-validator/-/euro-plate-validator-1.0.15.tgz","fileCount":50,"unpackedSize":1241156,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG1Dba+uLJ8vH91djrqVxByHMOFKMAYMRVTLgTDA9d0XAiEA+pOFk2nnwUfPy6zqEsryjr7Y5cRvSx7ylXrv6PTzUJQ="}]},"_npmUser":{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"},"directories":{},"maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/euro-plate-validator_1.0.15_1760941920720_0.938033575957022"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-04T18:26:13.887Z","modified":"2025-10-20T06:32:01.189Z","1.0.1":"2025-10-04T18:26:14.222Z","1.0.2":"2025-10-04T18:54:55.352Z","1.0.3":"2025-10-05T04:35:19.299Z","1.0.5":"2025-10-05T04:58:00.078Z","1.0.6":"2025-10-05T06:48:59.630Z","1.0.8":"2025-10-10T09:47:15.721Z","1.0.9":"2025-10-10T15:34:11.070Z","1.0.10":"2025-10-12T02:05:43.766Z","1.0.11":"2025-10-12T02:23:46.715Z","1.0.12":"2025-10-15T07:33:15.526Z","1.0.13":"2025-10-20T00:18:46.531Z","1.0.14":"2025-10-20T04:25:09.686Z","1.0.15":"2025-10-20T06:32:00.981Z"},"bugs":{"url":"https://github.com/CodeCornTech/euro-plate-validator/issues"},"author":{"name":"Federico Girolami","email":"f.girolami@codecorn.it|https://codecorn.it","url":"@fgirolami29|@CodeCornTech"},"license":"MIT","homepage":"https://github.com/CodeCornTech/euro-plate-validator/blob/main/README.md","keywords":["license-plate","plate","validator","regex","europe","anpr","vehicle","car","nodejs","typescript","php","italy","germany","france","spain","uk","poland","netherlands","belgium","scandinavia","balkans","ukraine"],"repository":{"type":"git","url":"git+https://github.com/CodeCornTech/euro-plate-validator.git"},"description":"European license plate validator (Russia excluded).Syntax-only validation via regex for multiple EU/EEA countries including Italy, UK, Germany, France, Spain and more.Supports Node.js (TypeScript package) and PHP library.","maintainers":[{"name":"fgirolami29","email":"federicogirolami.fg@gmail.com"}],"readme":"# 🌍 @codecorn/euro-plate-validator\n\n> 🚗 European license plate validator (Russia excluded). Multi-country, regex-based validation for EU/EEA license plates. Works in **Node.js**, **TypeScript**, and the **browser** (with a lightweight UI client).\n\n[![Lang: IT](https://img.shields.io/badge/docs-Italiano-green?style=for-the-badge)](./README_IT.md) [![Demo](https://img.shields.io/badge/demo-GitHub%20Pages-0b6efd?style=for-the-badge)](https://codecorntech.github.io/euro-plate-validator/)\n\n---\n\n[![@codecorn/euro-plate-validator](https://img.shields.io/badge/CODECORN-EURO--PLATE--VALIDATOR-green?style=for-the-badge&logo=vercel)](https://www.npmjs.com/package/@codecorn/euro-plate-validator) [![npm](https://img.shields.io/npm/v/@codecorn/euro-plate-validator?logo=npm&label=version&style=for-the-badge)](https://www.npmjs.com/package/@codecorn/euro-plate-validator) [![downloads](https://img.shields.io/npm/dm/@codecorn/euro-plate-validator?logo=npm&label=downloads&style=for-the-badge)](https://www.npmjs.com/package/@codecorn/euro-plate-validator) [![jsDelivr](https://img.shields.io/jsdelivr/npm/hm/@codecorn/euro-plate-validator?label=jsDelivr%20hits&style=for-the-badge)](https://www.jsdelivr.com/package/npm/@codecorn/euro-plate-validator) [![GitHub stars](https://img.shields.io/github/stars/CodeCornTech/euro-plate-validator?style=for-the-badge&logo=github)](https://github.com/CodeCornTech/euro-plate-validator)\n\n[![CI Tests](https://github.com/CodeCornTech/euro-plate-validator/actions/workflows/test.yml/badge.svg)](https://github.com/CodeCornTech/euro-plate-validator/actions/workflows/test.yml) [![issues](https://img.shields.io/github/issues/CodeCornTech/euro-plate-validator?label=issues)](https://github.com/CodeCornTech/euro-plate-validator/issues) [![min](https://img.shields.io/bundlephobia/min/@codecorn/euro-plate-validator?label=min)](https://bundlephobia.com/package/@codecorn/euro-plate-validator) [![minzip](https://img.shields.io/bundlephobia/minzip/@codecorn/euro-plate-validator?label=minzip)](https://bundlephobia.com/package/@codecorn/euro-plate-validator) [![Types](https://img.shields.io/badge/TypeScript-types-blue?logo=typescript)](./dist/index.d.ts) ![module](https://img.shields.io/badge/module-ESM-brightgreen) ![cdn](https://img.shields.io/badge/cdn-IIFE-brightgreen) [![License](https://img.shields.io/badge/license-MIT-informational)](LICENSE)\n\n---\n\n## ✨ Features\n\n- ✅ **Multi-country** support (25+ EU/EEA)\n- 🚫 **Russia excluded** by design\n- 🔠 Normalizes input (spaces, hyphens, case)\n- 🧠 Smart regex engine per-country (car/motorcycle aware)\n- 🧩 Lightweight **client SDK** with UI, flags, dropdown, and `Inputmask` integration\n- ↕️ Accepts **lowercase** input, auto-coerced to **UPPERCASE** by mask token `L`\n- 🌐 Built-in i18n: **IT** and **EN**\n- 🧯 Safe dependency autoload via CDN with configurable overrides\n\n---\n\n## 📦 Installation\n\n```bash\nnpm install @codecorn/euro-plate-validator\n```\n\n---\n\n## 🔗 CDN (v1.0.14)\n\n> Use **versioned URLs** to avoid stale CDN caches.\n\n### Core module\n\n- **ESM (browser)** `https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/browser/index.esm.js`\n\n- **IIFE (global `window.EuroPlateValidator`)** `https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/browser/index.iife.min.js`\n\n### Client SDK (UI)\n\n- **ESM** `https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/client/index.mjs`\n\n- **CJS (Node)** `https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/client/europlate.client.cjs`\n\n### Assets (CSS)\n\n- `https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/assets/css/styles.css`\n- (compat alias) `…/assets/css/styles.css`\n\n---\n\n## 🧠 Core API\n\n### Node.js / TypeScript\n\n```ts\nimport { validatePlate } from \"@codecorn/euro-plate-validator\";\n\n// Italy (car)\nvalidatePlate(\"AB 123 CD\", [\"IT\"], { vehicleType: \"car\" });\n// → { isValid: true, matches: [{country:\"IT\", name:\"Italy\"}], checked:[\"IT\"] }\n\n// UK vs IE\nvalidatePlate(\"AB12 CDE\", [\"UK\", \"IE\"]);\n```\n\n---\n\n## 🧩 Browser Client SDK — `createEuroPlate()`\n\nThe browser client auto-generates a full UI (`flag + input + dropdown + status`) or attaches to an existing `<input>`. ecco la versione **EN** tradotta 1 : 1 . Ho lasciato **il codice invariato** , e ho applicato lo spazio prima / dopo la punteggiatura solo al testo in prosa .\n\n---\n\n## 🧠 Core API ( Node / TS )\n\n```ts\nimport { validatePlate } from \"@codecorn/euro-plate-validator\";\n\n// IT (car)\nvalidatePlate(\"AB 123 CD\", [\"IT\"], { vehicleType: \"car\" });\n// → { isValid: true, matches:[{country:\"IT\", name:\"Italy\"}], checked:[\"IT\"] }\n\n// UK vs IE\nvalidatePlate(\"AB12 CDE\", [\"UK\", \"IE\"]);\n```\n\n---\n\n## 🧩 Client SDK ( UI ) — `createEuroPlate`\n\nThe client either generates the markup ( flag + input + country dropdown + status ) **or** attaches to an existing input .\n\n### Main options ( including new ones )\n\n```ts\ntype EuroPlateOptions = {\n  // DOM\n  input?: HTMLInputElement; // external input\n  wrapper?: string | HTMLElement | false; // if provided → auto-build UI\n  inputId?: string; // default: derived ( e.g., \"epv-xxxx-plate\" )\n  inputName?: string; // default: same\n  preserveInputAttrs?: boolean; // NEW: if true, does NOT overwrite existing id/name\n  autoFocusOnInit?: boolean; // NEW: default false ( no focus on init )\n\n  // ⚙️ UI configuration ( new: EVERYTHING under \"ui\" )\n  ui?: {\n    /**\n     * Where to show the status :\n     * - \"block\"  → uses <div class=\"status\"> under the input ( back-compat , default )\n     * - \"inline\" → overlays inside the input , does not change height\n     * - \"off\"    → hides status text / icon\n     */\n    statusMode?: \"block\" | \"inline\" | \"off\"; // default: \"block\"\n\n    /** Icon type for inline status ( ignored in \"block\" and \"off\" ) */\n    statusIcon?: \"none\" | \"icon\" | \"pill\"; // default: \"none\"\n\n    /** Whether to show status text */\n    showStatusText?: boolean; // default: block→true , inline→false\n\n    /** Inline icon position */\n    iconPosition?: \"right\" | \"left\"; // default: \"right\"\n\n    // Optional references to existing nodes ( when NOT using wrapper )\n    flagIcon?: HTMLElement;\n    flagLabel?: HTMLElement;\n    dropdown?: HTMLElement;\n    button?: HTMLElement;\n    status?: HTMLElement;\n  };\n\n  // UX / i18n\n  mode?: \"AUTO\" | string; // fixed country or AUTO ( default )\n  i18n?: \"AUTO\" | \"IT\" | \"EN\"; // default AUTO → navigator it / en\n  allowedCountries?: string[]; // whitelist ; default : all\n  vehicleType?: \"any\" | \"car\" | \"bike\"; // default : any\n  placeholders?: { auto?: string }; // placeholder for AUTO\n\n  // Normalization / formatting\n  normalize?: (code: string) => string; // default GB→UK\n  formatters?: Record<string, (s: string) => string>; // per country code\n\n  // Timings\n  timings?: { debounce?: number; clear?: number };\n\n  // Dependencies / logging\n  deps?: { inputmask?: any }; // manual inject ( e.g., window.Inputmask )\n  autoLoadDeps?: { inputmask?: boolean }; // default : true ( autoload UMD )\n  cdn?: { inputmask?: string }; // override Inputmask CDN URL\n  logger?: Logger;\n  debug?: boolean;\n};\n```\n\n#### Values and defaults ( UI )\n\n| Key                                                 | Type                           | Values               | Default                       | Notes                                                                                     |\n| --------------------------------------------------- | ------------------------------ | -------------------- | ----------------------------- | ----------------------------------------------------------------------------------------- |\n| `ui.statusMode`                                     | `\"block\" \\| \"inline\" \\| \"off\"` | block / inline / off | `\"block\"`                     | _block_ uses `<div class=\"status\">` , _inline_ overlays inside the input , _off_ hides UI |\n| `ui.statusIcon`                                     | `\"none\" \\| \"icon\" \\| \"pill\"`   | none / icon / pill   | `\"none\"`                      | used **only** when `statusMode` is `inline`                                               |\n| `ui.showStatusText`                                 | `boolean`                      | true / false         | `block→true` , `inline→false` | short text in inline ; full text in block                                                 |\n| `ui.iconPosition`                                   | `\"right\" \\| \"left\"`            | right / left         | `\"right\"`                     | icon position for inline                                                                  |\n| `ui.status`                                         | `HTMLElement` ( optional )     | —                    | auto created / derived        | existing host for status when you do not use `wrapper`                                    |\n| `ui.button` / `dropdown` / `flagIcon` / `flagLabel` | `HTMLElement` ( optional )     | —                    | auto created if `wrapper`     | for re-using external DOM                                                                 |\n\n---\n\n### Instance methods\n\n```ts\ntype EuroPlateInstance = {\n  setCountry(code: \"AUTO\" | string): void; // alias of setMode\n  setMode(m: \"AUTO\" | string): void; // set fixed country or AUTO\n  setAllowed(codes: string[]): void; // dynamic whitelist\n  setVehicleType(t: \"any\" | \"car\" | \"bike\"): void;\n  setI18n(code: \"AUTO\" | \"IT\" | \"EN\"): void;\n  setDebug(on: boolean): void;\n\n  validate(): { ok: boolean; country?: string; value: string };\n  destroy(): void;\n  getI18n(): \"it\" | \"en\";\n};\n```\n\n---\n\n## 🖼️ Usage examples\n\n### A ) Quick start with a shared `common` config + autoload deps ( Inputmask , jQuery , Toastr )\n\n```html\n<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/assets/css/styles.css\" />\n\n<div id=\"plateBox\"></div>\n\n<script type=\"module\">\n  import * as EuroMod from \"https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/browser/index.esm.js\";\n  import { createEuroPlate } from \"https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/client/index.mjs\";\n\n  // Common options used across examples\n  const common = {\n    mode: \"AUTO\",\n    i18n: \"IT\",\n    allowedCountries: [\"IT\", \"FR\", \"DE\", \"ES\"],\n    vehicleType: \"any\",\n    autoFocusOnInit: false,\n    ui: {\n      statusMode: \"inline\",\n      statusIcon: \"icon\",\n      showStatusText: true, // | false\n      iconPosition: \"right\",\n    },\n    // Autoload deps (UMD) from CDN\n    autoLoadDeps: { inputmask: true, jquery: true, toastr: true },\n\n    // Optional : route logs to Toastr if available\n    useToastrLogger: true,\n\n    debug: true,\n  };\n\n  createEuroPlate(EuroMod, {\n    wrapper: \"#plateBox\", // optional\n    ...common,\n  });\n</script>\n```\n\n> Notes :\n>\n> - With `autoLoadDeps.jquery: true` and `autoLoadDeps.toastr: true` the client will fetch UMD builds from CDN when missing .\n> - `useToastrLogger: true` sends SDK logs and validation notices to Toastr if it is present ( either auto-loaded or injected ) .\n> - jQuery is **not** required by the core validator ; it is only pulled if your page / widgets rely on it .\n\n---\n\n### B ) You provide `Inputmask` manually ( UMD → `window.Inputmask` )\n\n```html\n<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/assets/css/styles.css\" />\n<script src=\"https://cdn.jsdelivr.net/npm/inputmask@5.0.9/dist/inputmask.min.js\"></script>\n\n<script type=\"module\">\n  import * as EuroMod from \"https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/browser/index.esm.js\";\n  import { createEuroPlate } from \"https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/client/index.mjs\";\n\n  createEuroPlate(EuroMod, {\n    wrapper: \"#plateBox\",\n    i18n: \"AUTO\",\n    autoFocusOnInit: false,\n    deps: { inputmask: window.Inputmask }, // manual inject\n  });\n</script>\n```\n\n---\n\n### C ) Autoload deps from CDN ( default , Inputmask only )\n\n```html\n<script type=\"module\">\n  import * as EuroMod from \"https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/browser/index.esm.js\";\n  import { createEuroPlate } from \"https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/client/index.mjs\";\n\n  createEuroPlate(EuroMod, {\n    wrapper: \"#plateBox\",\n    i18n: \"AUTO\",\n    autoFocusOnInit: false,\n    // No deps object → will autoload Inputmask UMD from jsDelivr\n  });\n</script>\n```\n\n---\n\n### D ) Autoload ON with a custom CDN URL\n\n```js\ncreateEuroPlate(EuroMod, {\n  wrapper: \"#plateBox\",\n  cdn: { inputmask: \"https://unpkg.com/inputmask@5.0.9/dist/inputmask.min.js\" },\n});\n```\n\n---\n\n### E ) Disable autoload ( “no mask” fallback , no error )\n\n```js\ncreateEuroPlate(EuroMod, {\n  wrapper: \"#plateBox\",\n  autoLoadDeps: { inputmask: false },\n});\n```\n\n---\n\n### F ) Attach to an existing input ( no auto-build )\n\n```html\n<input id=\"myPlate\" />\n<script type=\"module\">\n  import * as EuroMod from \".../index.esm.js\";\n  import { createEuroPlate } from \".../index.mjs\";\n\n  createEuroPlate(EuroMod, {\n    input: document.getElementById(\"myPlate\"),\n    inputName: \"plate_number\",\n    preserveInputAttrs: true, // do NOT overwrite existing id/name\n    i18n: \"EN\",\n    mode: \"AUTO\",\n    autoFocusOnInit: false,\n  });\n</script>\n```\n\n---\n\n## 🧩 WordPress ( WP ) / Elementor\n\n### 1 ) Enqueue CSS + init helper ( type = \"module\" )\n\n```php\nadd_action('wp_enqueue_scripts', function () {\n  wp_register_script('epv-init', '', [], null, true);\n\n  wp_enqueue_style(\n    'epv-styles',\n    'https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/assets/css/styles.css',\n    [],\n    '1.0.14'\n  );\n\n  add_filter('script_loader_tag', function ($tag, $handle) {\n    if ($handle === 'epv-init') {\n      return '<script type=\"module\">' .\n        'import * as EuroMod from \"https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/browser/index.esm.js\";' .\n        'import { createEuroPlate } from \"https://cdn.jsdelivr.net/npm/@codecorn/euro-plate-validator@1.0.14/dist/client/index.mjs\";' .\n        'window.__epvInit=(id,opts)=>createEuroPlate(EuroMod,Object.assign({wrapper:\"#\"+id,mode:\"AUTO\",i18n:\"IT\",debug:true,autoFocusOnInit:false},opts||{}));' .\n      '</script>';\n    }\n    return $tag;\n  }, 10, 2);\n\n  wp_enqueue_script('epv-init');\n});\n```\n\n---\n\n## ⚙️ WordPress / Elementor integration\n\nYou can enqueue the CSS and auto-inject a `window.__epvInit` bootstrapper.\n\nThen, create a shortcode to instantiate it dynamically inside Elementor.\n\nFull example available in the [Italian README](./README_IT.md) → _“WordPress (WP) / Elementor”_ section.\n\n---\n\n## 🧪 CLI Tool\n\n```bash\nnpx @codecorn/euro-plate-validator \"AB 123 CD\" --countries IT,FR,DE --type car --pretty\n```\n\n**Options:**\n\n- `--countries` / `-c` → comma-separated list of country codes\n- `--type` / `-t` → `car`, `motorcycle`, or `any`\n- `--pretty` / `-p` → human-readable output\n\nExit codes:\n\n- `0` → valid\n- `1` → invalid\n- `2` → bad arguments\n\n---\n\n## 🌍 Supported Countries\n\n🇮🇹 IT | 🇬🇧 UK | 🇩🇪 DE | 🇫🇷 FR | 🇪🇸 ES | 🇵🇹 PT | 🇳🇱 NL | 🇧🇪 BE | 🇨🇭 CH | 🇦🇹 AT | 🇮🇪 IE | 🇱🇺 LU 🇩🇰 DK | 🇸🇪 SE | 🇳🇴 NO | 🇫🇮 FI | 🇵🇱 PL | 🇨🇿 CZ | 🇸🇰 SK | 🇭🇺 HU | 🇷🇴 RO | 🇧🇬 BG | 🇸🇮 SI | 🇭🇷 HR | 🇬🇷 GR 🇱🇹 LT | 🇱🇻 LV | 🇪🇪 EE | 🇺🇦 UA\n\n---\n\n## 🧾 Changelog (highlights)\n\n### 1.0.14\n\n- **Inputmask**\n  - Safe merge of `definitions` (no hard override of defaults).\n  - New **`L`** token (letter) accepts lowercase and forces **UPPERCASE** (`casing: \"upper\"`).\n  - Avoid redefining `A`/`9`; use `H` (IT) / `C` (ES) only when needed.\n  - `applyMaskNow` applied immediately on country change (no debounce race).\n  - Finalized placeholders via `finalizeInputMaskLayouts` + `scripts/test-placeholders.mjs`.\n\n- **Client SDK**\n  - Centralized logging (`imLog`, `imPreLog`, `imMounted`, `imError`) using `BADGE/LOG` when `debug: true`.\n  - Lowercase input supported across layouts with `L` token.\n  - Examples updated with `autoLoadDeps: { inputmask: true, jquery: true, toastr: true }` and `useToastrLogger: true`.\n\n- **Docs**\n  - CDN bumped to **1.0.14**.\n  - Notes about lowercase acceptance and uppercase coercion.\n  - Guidance to **not** override `A`/`9` and define only custom tokens for restricted alphabets.\n\n---\n\n### 1.0.13\n\n- **Status inline configurabile**\n  - `statusMode: \"inline\" | \"block\" | \"off\"`\n  - `statusIcon: \"none\" | \"icon\" | \"pill\"`\n  - `showStatusText: boolean`\n  - `iconPosition: \"left\" | \"right\"`\n\n- Riserva spazio automatica via `:has([data-state])`\n- Nessuno stato su campo vuoto / parziale\n- Fix cambio paese (IT↔FR) e Inputmask merge (`A/H/9`)\n- Refactor UI status (`setValidityUI` unico writer)\n- Add `clearStatusUI()` per idle neutro\n\n---\n\n### 1.0.12\n\n- NEW → `autoFocusOnInit` (default: `false`) — prevents autofocus on init.\n- NEW → `preserveInputAttrs` — keeps external input `id`/`name` intact.\n- UX → renamed CSS classes from `.iti__*` → `.epv__*`.\n- Dependencies → auto-loads `Inputmask` UMD via CDN; supports manual injection and CDN override.\n- I18n → IT / EN / AUTO (auto-detect from browser locale).\n- UX stability → dynamic placeholder, country-based formatter, debounce system.\n\n---\n\n### 1.0.10–11\n\n- CSS/Assets consolidation.\n- Added Client SDK + autoload fallback.\n- Updated README, docs, and npm package.\n\n---\n\n## 📝 License\n\nMIT © [CodeCorn™](https://codecorn.it) — see [LICENSE](LICENSE)\n\n---\n\n## 👤 Maintainer\n\n**Federico Girolami** Full-Stack Developer • System Integrator • Digital Solution Architect 🚀 🌐 [codecorn.it](https://codecorn.it) 📧 [f.girolami@codecorn.it](mailto:f.girolami@codecorn.it) 🐙 [github.com/fgirolami29](https://github.com/fgirolami29)\n\n---\n\n## 🤝 Contributing\n\nPull requests are welcome. For major changes, please open an issue first.\n\n> Powered by **CodeCorn™** 🚀\n\n---\n","readmeFilename":"README.md"}