{"_id":"trpc-shield","_rev":"28-172544fd8c3ff14f299ba464647dc5df","name":"trpc-shield","dist-tags":{"beta":"1.0.0-beta.2","latest":"3.0.0"},"versions":{"0.0.0-rc.1":{"name":"trpc-shield","version":"0.0.0-rc.1","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.0.0-rc.1","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"d23c83218db16f645d70d9bea3d8331ce72eb182","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.0.0-rc.1.tgz","fileCount":3,"integrity":"sha512-LqqdFNVAeb4piReIdggkYPemQLhagQKeN+pblhB1Qkoc2fuAu3j5ZzQMu6EhoCO2v/IItIpH2YOo6PQtWshvOw==","signatures":[{"sig":"MEYCIQCdetMgFx2hsQIyfEm444gzDgTf3jxt9VQOwwU9gy9HTwIhAK7NEq0AI9BC+eHtGA565yTNSjG2+DYYN8qkmjdk7KaU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10556,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiB+vACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrO6A//aCqiDQrWQuednkOqhPYXhIu6yJ0inZUaSMl+75NYC11Z0Bbi\r\nHzYpLzsQimGPxjrGVmL7qH9/Zyds4az7lTLFtDoe/bydWl8pNJIOOZrjOj2i\r\nfHFB3r1O++rYmh5Y/LMBa1HRRpe+qveLBYkRC1m0VlW6LUuK1FisfYI4jGiZ\r\nwvCZph0Y6YNy0ByxiqwtVgPMJQ2MU6GzVaHiukW6mxPW6jsOMowUG4B8FL/V\r\n8nHJnuodWuKcrEty0axaWqSfKXv+8S+Si8urrLx5UhXRBTwNZo7+4Lkqc7+R\r\n9HD00cCsPFd2Ej83GC/tSwhe9aDkRzx4Avou1341/MS+KM5ILo4kkpoegwir\r\nLHK7/grZzDKenJxAIVdXPQhVIGiMAPrL9DmQPRs+CZX/JyZLhjV5rgPve/F5\r\nXklYmOeO+XRhESIuzGFOIeU+hvdT4yMms6/rYiS07AxhYB94S4nHIIbMd9k+\r\ncb04G1E+9rWzsOsqwa4Xbhysmjm6ppLWvybq9odUx0lCK+vAuIc2u3O645Eb\r\nix18mb/m6JymsZc1avh6DSPOHGqaT8k3ENtQOS7Og4zn6nV2eXgmYt4sZ/NO\r\ne42Tz4RbOlVZ0h0jSLL1o5FpahTlFCVI9flrgVicHhaIV6Ofjq4R1VcOjkn4\r\nlYAymvJ7AxMGd5vNIwqZqJxQHBboY1r68PE=\r\n=i3ZJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","gitHead":"a27cd84a83e35e421456406d5f5279da7cf6ca09","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"dist/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.5.5","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"16.15.0","_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.4.0","prettier":"2.4.1","typescript":"4.3.5","@types/node":"15.6.1","lint-staged":"11.2.6","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.0.0-rc.1_1653088175668_0.44839581840950915","host":"s3://npm-registry-packages"}},"0.0.0-rc.2":{"name":"trpc-shield","version":"0.0.0-rc.2","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.0.0-rc.2","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"36f4f162c6a34f8fe10ca37bb187c01566fb17d5","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.0.0-rc.2.tgz","fileCount":28,"integrity":"sha512-I+Bp1lTK2Ne3ZNqZtjyldhvs/7+06Zrd+hBpctkRr1qn01GnEqz1WEp9px3095ePNNifB9iefMKGljoB1h3RYQ==","signatures":[{"sig":"MEQCIA22U8BmerwrY15f+3ofRW99nheeiFNVnSblJoeHwVmiAiBoFsxpjl4q4yRrB0zLTo2uPUdy+WXL8O6fNaeMg8CYRg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66224,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiB/oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqgGxAAhE2HQGghhfA/2sZ7wVIJ15EFcieinNF5qy0bgthmerg14shL\r\noMijbPKiznrDKsDqlwK0KPKY8T05vUzT8gTzoiEs9Emc2DSUzHQkSsRQx//0\r\nAHxr1iKCrCOwb27RV1HMydSkWshPBAeQijCqa6HNsbCYulbNHBwRY9QaT/nu\r\n/vusUVOl6hm1qJPx6CDFtd5JnZ45IYGsMKLvkkbc7NqnWDc9H5rmmpS0DTmV\r\nMRuwXlCTvLX5PU/ILLRmdgCTD3ub1TpBxNnpkNtBQV+ZwZV2UVBbs7B8eYlo\r\nlyjecT3kUSnc4U7sJWTvI9dRNCpcIaIYl0DgmF1DpwQEGidiXLfjRpl3hHvJ\r\ni3UzJ1JhAjAYV6Ht8Y+gjoNquuMZ87muNZrmKuPGEGCstzkxdAPcpyjStrry\r\n3Ln9Xxf4YrhWMH7M0YJ66PUSMg7EvFJbjHWzEzdikGyTG1c9VaLlw3UMzii3\r\nNbjucOYNB1DRpHoy2EOm3CdAhgSYRqyYspkjEic4VV79p4VgCv5F/ZUIRhqX\r\n/WyZY/YjO5bJ1HGaFXJUfZCCg0PdUZjdZ+LuTAovW8IMLa+TTxbe8r5FWTr5\r\n95cKhynfiMqqm8aZ/+e136XqwweWX6wIqDfe9kSoPz5w5qNcNgt1iN+LLAAr\r\nyB5IW1yriv7xgQJEHZAlNKEly9mZZJbNcaE=\r\n=9vgT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"12e1b0ebf6d95c03ba7b8c57cfc0764aa4c85428","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.5.5","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"16.15.0","_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.4.0","prettier":"2.4.1","typescript":"4.3.5","@types/node":"15.6.1","lint-staged":"11.2.6","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.0.0-rc.2_1653088232237_0.5947024113860622","host":"s3://npm-registry-packages"}},"0.0.0-rc.3":{"name":"trpc-shield","version":"0.0.0-rc.3","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.0.0-rc.3","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"c8271f6e0c9af318329f96032ccafa0b3c53aa40","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.0.0-rc.3.tgz","fileCount":28,"integrity":"sha512-2dFzPhfbW8HgJUJAFKXy/gNuNmeSaOYk64DzwdEEEn7YU41c0bThj9GxU3IZKiIS3GDXkjSma65DrK53QWZxJQ==","signatures":[{"sig":"MEYCIQDw7MadlHhERn6i6OioGw71j+Vfj72FNV7e4XKOnuaqIwIhAMk450n6Cv/2hljnYDvQvpYi93n4/vB/cARKKAPaqnA/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66200,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiWEbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrQcQ/+M9QmNDOn3dSkb79vmtXBrxiSndAFmvk7RoIIP7P7wHNIx9Fi\r\nzagjHXQCdWhx9abkOgqwnlTwESAgebxMsnlIFHooU5Av+lZRc4W3WgjekeNC\r\nUkpeXBPFcM5cvF7xgpnetAJxxYuK3Y+5jxn4cB7HbB41io8wbMSYYDAJpep8\r\nWSH2brtJ0w5LEOAOof7C3AwBRyXwXPtNYoFKH1KNBlfFxfC/pyJ6mcKwwdtZ\r\n62SVscbsIgU+l9qsjE59e51TS+NWkJYWO/Er02Fte0lPtqbWhg9afXRr2OHS\r\nVDCBXGNltdgkct1rLAAyBct/Wt+eovsb++9AYf2/cq9Kqg+kTNY6cSITjmQB\r\nMiSaxmhg0nMEq7MlJgT56+VhnFb13ITiYLhrfKUFfCTpqRJb4WNf+zUt47Zo\r\ncPuVk+E9LcbqYrAtP8s4l+e+cc8VFjDO18KbUZSNPvOH2IL0CyFpLU1rQ/87\r\nheU+nAOlEvLqhZtG24jxsX9/bh3G7aQdXBj0zAT1kBFZZrolDxE32MWQV5cR\r\n+jXPFl9YAuK8smdsOXwHv9SnpRcoocZHG2U7IGk6yHtqtlI6XSA4I9UAJHlj\r\nxZTrs+kB6O7gbpKbRxNyIVlDb79ovGx7eDJ6FgC5WPpF1S5ylzgpSoVzZMBh\r\nEsFx4fxzCl5yjN7DTmx1FW9gg3HbZDwjVQs=\r\n=+v04\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"1bf80ed14c31c687a7206afc5bc9f554376af41f","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.10.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"14.19.1","_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.4.0","prettier":"2.4.1","typescript":"4.3.5","@types/node":"15.6.1","lint-staged":"11.2.6","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.0.0-rc.3_1653170459713_0.2037109082127122","host":"s3://npm-registry-packages"}},"0.0.0-rc.4":{"name":"trpc-shield","version":"0.0.0-rc.4","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.0.0-rc.4","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"626fa4739b4d5bde6128e363e16294c4d776b213","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.0.0-rc.4.tgz","fileCount":28,"integrity":"sha512-rf/Apv6Jalt+6V5E31nb+HJrS+d26u929rhA34vl8ktOL5tLQIAfjXFP8oHRh1aCZajJlSROOSnP6qjmAAS0NA==","signatures":[{"sig":"MEQCIF4vDGGFpw8I4zgRYnpD8UbrAbC+rG6pOSJWIokpugyAAiAwOQN6NzNG9Pcmtv1wKTywiAv1XyYyqoqLxWUR3j4nnw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66197,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiWHfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrmuw/+J/T3/2lTa5elDEIeRNChkaBkW7eSvBEeyx65Mg99UVDDF0hE\r\nsea1G8o6sGY2MLQKea0lJadp0ai0M3KxsVAp5iwyGlx63opTxZQS27Bk3LS6\r\ndVmroM4tveDfoBOJKb4BrsqZfaox5hLhKqv18NTS8v8zW3RVrFhwwBmD3e7u\r\nQiwZXOTDd5SuDahtE9jDvrCh+e0u4aH+2r8IAmeNyrHxTyv6TdJDyjmqQxWg\r\n3JOc5VGakYx8+szN1sa+qySkFupXWdDY6zCeeO20tOwBzYdOZDzWwdSI1DCj\r\nrQ+BZnyEhE9ReBXksWCnnMdUkhyprCQfFkkIFh+Ggc7w1d0LUQznIndE7YHj\r\nj3PrYfOdKhKt875D2QsWXZmt1hT5VDZZe2qHmygVVB2ZOqrjBEKOziEVKUL/\r\ni0HN1VwOFBepLaYmQ3pKNxwzvXBgumpmryCGy07U8pMjXH7hdO8VlAFDOkZD\r\nPgr1Ko+lDDkCIAhSiZBz/Q7sbTVWJ00r+Z6gyXFf+3ykgiMiHEa4SHkwHB+o\r\nNl5Et4joVLfRvvSlwk5IeC59ybgKY7FnZudksQmiIr3Oht4KWQ74kwDXU9jy\r\ncAZuqKhakkC+AznhY2x9gAWfy3dvvY2aPaQWCN+WiK4pKNLN/p2RJbP6bqou\r\nwS4FF2o4qz+hwqBx/0TADYFm1gGLkdpcKDc=\r\n=hMPK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"d9ce5002dc7701cfc8e5280a82e2e41571de407f","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.10.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"14.19.1","_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.4.0","prettier":"2.4.1","typescript":"4.3.5","@types/node":"15.6.1","lint-staged":"11.2.6","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.0.0-rc.4_1653170655693_0.40222114916074725","host":"s3://npm-registry-packages"}},"0.0.0-rc.5":{"name":"trpc-shield","version":"0.0.0-rc.5","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.0.0-rc.5","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"c56599cf1958c51965365e3e274ac06ca7491a07","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.0.0-rc.5.tgz","fileCount":28,"integrity":"sha512-XExATsz2Bxbvfj4GbAiRtzPUkfiPS6rkR2pmlXZF9O1uoBMbCefGuorafRVRjDCp5S9c0z2YHSwx3/XkZ3TnZw==","signatures":[{"sig":"MEUCIAwPgPzwoj24ZqkXJV6dB9dvEDK9I46SEVglXEPGnvjZAiEAm0kKnvpM5CvHmoNRCA+/03vsNos0fM6fowwrtQhoPAI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiWKjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrFiQ//R+y42ewxjw9EFK2IYr3OwsCTsw+fSHYrmWMmd5SpsvyBu8Is\r\nnWFD7gV2fsuS5O/BArMv8Co87SPE+HWaIvidWYgSbmsnVaylKxFKI+peA0DY\r\ntsASiLM+vpNqRwphzTGTO+7ucyl8E/ITv+u/Z+2TXGZ4RafPhbwdTebtPuF+\r\nf9cnQ/m9rDw+mUhBZg97ExLHf4MOdLWiY2dUFW+xqYFImkUUCmqm1PJ2rB3m\r\nssDqro+Ni84YsFpb6GLW74nkAPRyqEYvXFkrwa0wjfU/OER/zJfwwvCglSR0\r\nub+rxuMQWJj2DBEO/7Sw/JZmHBnMitL0TRjVdCuePP5ArN7Wu7CbhmaR9uO/\r\nS8q80i9K7B0kIVmyApZD75f0DflCWvJRFA1xsn+3MXazVaPOfdQ+viUhY04T\r\nxGERpRbgBzoq3Q825RxBngrDvsKHHGzF+YBA3Io6q0ImJg4EUDo5LPVvM54U\r\n2EnGTpnnRFSMzev2QckVY/5ZQpesm5t66UCtmSr07CIEgUQy10ebVG/BwUI6\r\nmNoWXSOvu+mPTLiKRhoexXMiHA5bcINg9TXsRpFRe/K+rrWexhj11KyWncn9\r\n+vrqmeeM7x1N0r3moorRFAoCrl442IaF/ERxiAUlee14dFTsWLza6sWl9rb3\r\nz3JYgK1zekj+5r3iD5sD6mavrYb8DxBfaKA=\r\n=pVVJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"ea57214a977755890a03fa18cb57cc65fe3163e5","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.10.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"14.19.1","_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.4.0","prettier":"2.4.1","typescript":"4.3.5","@types/node":"15.6.1","lint-staged":"11.2.6","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.0.0-rc.5_1653170851061_0.7712948409611959","host":"s3://npm-registry-packages"}},"0.0.0-rc.6":{"name":"trpc-shield","version":"0.0.0-rc.6","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.0.0-rc.6","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"989b7397e26ac6eb1ef22da96a0e21d65da2e141","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.0.0-rc.6.tgz","fileCount":28,"integrity":"sha512-RfEmxWk+O+rDC9W0aUSIF/gwrlSYnA/9YMs/TR+kgIinqpzBpFnGdDnmPcscC18TBoZgcTS3TTxP8nV6+aGtQw==","signatures":[{"sig":"MEUCIQDJ4K6SWh3UZr9XwpYlrblGZVYqW559X+kI87cIcd5M6AIgfiTtbH3I81aJIkI83td/bupRiTaTKIhEavKtyrk786s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijOUhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqeLQ//WoPMJhACV9MLkblFX7YcavGrBTz/dDZmOjd/tamBnqYrbKEV\r\nkYdUM1f7I/vSqLWyu+d45dbOKW26iTPQGn743uADN5l/L3S2XjzPqVxsAeA7\r\njmo4oSVvhjcPiluoD64wkcZkBzwAoeZn1LL9++h9m/j9gTxrtZIYUV7JvBFN\r\nGUF7JCYsy2Gt+MSRtSkfkiBu0KWRWOuyK6nEDPQo4OKejFs3WkezntpEuF3g\r\now8IMaUCOSgPa4eq+TfkKlL+kzszn+lYsXrBssBRMrx6fZqEAwSkOqOA+ytF\r\nGB/RqktVuHb16+tPkbTr+G+MyFcE18dxupYZgHXJRa6m93dUYb0IuItjLLnQ\r\nvqOusPsHddgsNxzEcgQ2LmQ9fkxRaoc/DnMxtBC7OnXIfjlmtgHaucanFy7l\r\nQcVTTfsMwkEN8ymZ5UL+9r3bRz0sD6lnJu7XPw7fv4fA8/J1vEIVgeodWkIU\r\nwv46ZmK6daRZofNAuFAEkUeprzwDHyqiKbaHr0tLhSi1jgaTnnSAl/F9nE6I\r\nWsa4Sk8pe/gEN0NmySlSAXLzISQpDp5go4Ei1X/bId559Z52IR4mafmRMCvb\r\nAHTQYDFgHXEaLzYXYx4WhzLFme6sxmOkQvCdNKA5B47PVNJBOvCuPIhJP9uN\r\n2pzuzh4e6EH4W8Xm2rvPcu0zrkToWoq2W6Q=\r\n=dBrQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"6.14.16","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"14.19.1","_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.4.0","prettier":"2.4.1","typescript":"4.3.5","@types/node":"15.6.1","lint-staged":"11.2.6","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.0.0-rc.6_1653400865419_0.36437231767888645","host":"s3://npm-registry-packages"}},"0.0.0-rc.7":{"name":"trpc-shield","version":"0.0.0-rc.7","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.0.0-rc.7","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"e3e5535159afa47cd3dafd76a3c86db12f76dc90","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.0.0-rc.7.tgz","fileCount":28,"integrity":"sha512-LFeewL/iWdeX6TiBtJW1EitXJselCcldE7hht69Qcr0iHOzGOKfT8m22t8d9fTEpHpHq3n1877/hFVBHsfb6wg==","signatures":[{"sig":"MEQCIC5S2csd4I6PpHTs/iNRw6aYaVcU4nUvT/JkNUhwd/rIAiBsXutFysouxYMiO8UTcVsWgUU8kEUYZmxxFZIE6+z2jw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":66453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijOoFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmot6A/9F4LBoh+lu2fsfwEI2ARvcThEwxzp5FKT67dwLx5ASkt9ucdA\r\nmLJJ2T0ah4vjzwQm+Th39uSrJMejjNlM2HrV7nbw0pu3zolZPujqkSxf7/l3\r\nk8nQXa2u14lrKgIHJ3vJHUxw8eLe0VM4OCRv4W+nOZWI6V7uV4fSi0ts7fj4\r\nGas0FVSVMWuEyqtyRgSs6MpwNC+Ggf8YzpS0IE2v+lZHln5jYceMFoZu0T6R\r\neGIp+fElBzDGOO5h8+Je0H/jSnlSFHsnvhNSMwf0zgbDCAF3xZSC6OTIqAAu\r\njfYKTsrGX0Wwz6ZKdhnlr+SVBDdzWH5hiQJGaI9BpSr3EzWbhB5HucvKUTm8\r\nqf17CY/dr0O1m/yAxyW29YJVpqDFLpYmXe8DxRtYsNrIMFgUm+ho0s16UamS\r\nCi8kAY6QTS0zP8YDHSR+HXtlDacGXo9icq3v/bzd7uwcPbJyWdMDx7QmSXhV\r\n3rXoqsezMUrK4E0/VIWtYOP351yUjHE/9YgWcInzP6bKYB4Lww80GS4Hklo7\r\nqS3CMb70Xe9JQbI5jcHjnucXMHxx5bFYlNegxqG7928a0JccRbYIVcjz7Sho\r\nj6US2kpMCckyCQ6Z8Fhn1clPJVoqjBXIuHlAx9O0FSn4tEvZorqBOLt1VQ3K\r\nwKOc0SOQdn5UcSoaWKevzHNWH+V+yN/z16c=\r\n=rziH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"2446b463875556938232f53d3e7d11323047e4c7","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.10.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"14.19.1","_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.4.0","prettier":"2.4.1","typescript":"4.3.5","@types/node":"15.6.1","lint-staged":"11.2.6","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.0.0-rc.7_1653402117345_0.8209057049877684","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"trpc-shield","version":"0.1.0","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.1.0","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"5defebaced42f3a6afc0137877af8d8290424c6c","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.1.0.tgz","fileCount":28,"integrity":"sha512-mCkRF3JB90vxr/HNHMe6tO2LEFO8YN7A5inDgTOn+s0MRrX8+tsqAoc1fUBKD9hHIYpeSR2vBedjHt6AE9Zz8g==","signatures":[{"sig":"MEUCIG0xBXHtevizoAn3sjYVfgf33UW7dRowRcAPWfcPU0z6AiEAqCTIphGvXHHFl+EX4qH9T6JKZ+I+Us5/5p8Gxen1J9g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68077,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijaVuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTRQ/+LJEHcpXcaR5qcDvDzM5QGbBjE3ejzHuQCU0RDQTKd4Bk0FK4\r\nftKA9ryYf4viXF2a5ABCuwBoefHxXJSdLJevbRIUPfcPogYc9IqhYiJSnELz\r\nM+lMrxHmzOfgo9ARs6YeztRw0Yt2OYBRS6lzkJR7bOU3rTybUCwHcucXsZ2y\r\n6k4jKLWeKKWDFOiuqwLaBy1fYjX43TDgTy9+Nz/AKnlZlaF1ONoGtdvYevKQ\r\nUsOGG1/8bxQLijOx0wFoYpAP45WyKKYRCeDbO5aG11N+iScBYgEs3oPFmKVJ\r\no18D0WTaNlY365dR6GVxZmNUCvFiN+p5BA2Qr35lUvS9gEOA80JLvd2Jlp7m\r\nufEVrVhksKOnxuIW10KKjkfmDPiFXEANozVlQamBPQNwmZOV/5SBdMjOwU93\r\nhXYB+F+/uKwsp9xYuhhVFykuvXIH88pIFHGk0FtLUsOe4c6qdVQkqFDClCU6\r\nspZl/Ej9MRzr+RaecgPxCyCrS9PlX8cwfgYtLYr0tEPRjW2SM/WrEoEvE03w\r\nslluBiPlTbSHOttvQStQOqaIgGXKU+equTKFcsROFuhiHcuSf1S0WWifLiti\r\nQkKvt3JzPkQbZomnohX0foCplkieAL7KuTMgn39PVJBpWOlo+vgPLjCdYx5B\r\naAi6fcMTMvGf7wodi7dF0E1RiPWO1OnXD3I=\r\n=7NEl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"6.14.16","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"14.19.1","dependencies":{"@trpc/server":"^9.23.6"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.4.0","prettier":"2.4.1","typescript":"4.3.5","@types/node":"15.6.1","lint-staged":"11.2.6","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.1.0_1653450094624_0.1270930262513943","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"trpc-shield","version":"0.1.1","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.1.1","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"d4e62e6456e8e73cc4c29d9b44759bcb93f89f0e","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.1.1.tgz","fileCount":28,"integrity":"sha512-TySEf4lJoPkKCbSMpGtUp4tf42TMP90jiI9ugE3mpnLW5OAPToKkOlasszWSjyIWoTkM+IrsNEJX3rkfZm88Zw==","signatures":[{"sig":"MEUCICgOvyF6GQlZmKlVOuVYPMNOijYZmk8GbwN7jgZJncHuAiEAuANiz0OgBTHsIpIlywOOsfGX7HS1eDyMHQRL67IaFms=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiszRlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrXZw/9HiNkVZFkm6hG7BDvbbp47VXqnELACyS/SMSL4j9FaCTRT3bi\r\n1VlMdm7ToOdE4M+VnSgUMvvMNSgT/vCLAZw9Mg4WMFgv1IQkitsfdK4nwAOc\r\nehVqA0WzDZ1ra9TXsGDE4hXQz8/WFExftBaIc2Ak9/dzvABhyexkAMRws4zM\r\nv6BDzfkRPf7MlgW0izXeWZpp9v6g9FYoBXXdxYWqI9+OfQ42VXVfc12Px087\r\nd4C8ZjWn1RsTuERy0OmbkFFicBfy3yjuT66E5cz4T9K0wooR0+Uxf21Ua2AW\r\nK8q06A6KMytMr0cANHnvAcHDK3H5X+DawR4wo/4lvsW5oXTq6+HZ4CDRMBlW\r\nW+UEONuu7bXXSG/MWldDbrB5PR4V7GvBf7MTRTZ4nHm2VF1+y896PnY3fPy8\r\nCnbwvAshIItAjN7zbeTmWN5c1imxJmZH7BpGpFGd1yFvCkddTHC7cvWqq9I8\r\nF3VTO7pHg8+sg2/EhszPT1OEughPwjb5R6jG2Vh3Iso4j1YFGhak/bQg8Bel\r\nyasIiuC+vrOCRRcH8+ePSycmNPSTlTV62e53V8A/jCgXSDL7/dmbRY9pEhqz\r\nYNG0X0h5GihagKAp2LtJrIQqivY+k3jzhyT0kggGt21alCZPo32B/n0KrmhJ\r\nJTfrZ6aV9P5cIgvFa5U5zy6f815w7XfqdUU=\r\n=VRYz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"6.14.17","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"14.19.3","dependencies":{"@trpc/server":"^9.23.6"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.4.0","prettier":"2.4.1","typescript":"4.3.5","@types/node":"15.6.1","lint-staged":"11.2.6","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.1.1_1655911525698_0.7032145738459117","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"trpc-shield","version":"0.1.2","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.1.2","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"509737bae9bb2bb24e870a561b168bed4d7b3642","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.1.2.tgz","fileCount":28,"integrity":"sha512-rzXcQx2eQZgKfdznBBsWD+/mf2gdU6BATKDJkv/lQX63+XdNDmMZZwkulGi7LTMsdk+maNKsOu8cAYTg+VTWqg==","signatures":[{"sig":"MEQCIC86tXYaVqZgjVzvbAqsyfDdHidLvohMa08UlZmX1tmgAiAYsxsSXQGcSEiqo4puHyVYOhgIBc6454i+CEEl8G0vgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZNX3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo1aQ/9FN8hW7u65xJxoAfXl+Ihf6lj0CRFoIUDx6z8Y9tMV8Y4ikkY\r\nG+AydgA327GD+LmxoES6M+Sw7yJ1OA9eJknrtTpuL9wbsnXaFj65ZSVNlMm3\r\nVSZ9WWvuX88bcSbEIuaORbRb22Ot/zmm9nUJwNSYK+akHiU2grr2dgTXmz0Z\r\nuJRpB4NMnC1QiaOQ7iaQzjrOisUjgMZauX6GagcvYIQX4pmisMR0fs6DafID\r\na/HyjbuYjfg158KLJM/7Zhr+ZeG7e4XLLFGOIbp5PK7lq4bTtAX5p0pPKjhy\r\n6yPUCV5dl9CEuRrDac6bxgHixTVl71M2a4RV7QvKsatPzsB2Z1IaN54gMPje\r\nuZqMjl/RjOgLGY86Q7UlJwYnUSudpoIqEklIqsoI6g78a4SM3YhsVswenlVv\r\nx9f5d6mOEi8y3ABugfFWM6vfQnLpInm1WqM//+llZGQUBsOQqZECTRx6mjDj\r\nja3bpQ63Nw4XkQBybWclAFG70oYDcJgizXEc6BxO74R5TCuhYpBs4NGY7GYl\r\nrBSbsEnyne4VYq2KukU70DHJ5BIvKfTHAFL1MP1T1V3hj4JifCiQJKqJ71UP\r\nVeNFrJJDBg1c0wSDy/VSKJJiUAhdp8uisbhvlAQYbs27kRlcsro6AGB+tSyA\r\n0ydzfys5ngEsMFV2qeDcqlWB5EP3bXMq700=\r\n=8fBi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"eb92a7d643ec49096850d00cce8c220c5b0d217e","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.11.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"16.15.1","dependencies":{"@trpc/server":"^9.23.6"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.4.0","prettier":"2.4.1","typescript":"4.3.5","@types/node":"15.6.1","lint-staged":"11.2.6","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.1.2_1667552759596_0.7246706557201146","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"trpc-shield","version":"0.2.0","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.2.0","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"68617f6e904b2440f8534127690212d149627d78","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.2.0.tgz","fileCount":28,"integrity":"sha512-sEujBiBIP4YVHQa0BYnl74sntoPBnrDFUJdXTWPmaVXU6mR8i94mYgHJTEph/sY9Hwa6cu3t0BFuQFTsb0UvhQ==","signatures":[{"sig":"MEYCIQDs6+1BKNtk14clptwkGOw9+uZ2HxYcyo5oy5i9D4YJRgIhAKYfiEnY7PYRs7AmIUsU4OqFoP+cA0sgMO6d6Mnkis+M","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":77959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpVg4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmxxAAmd82EpHSd891Z9SaW+SyZoWUAkzPI42qndkFDQsIgdc7Skwx\r\nlveMjhHGCtDihTH7GAninp6vBRvVlAk1XLtPa6X32xkVnkVycrNKr2ceSQCB\r\nDJY0mESMbUWkJb0mo4jT55bpJ8L4wHZJmBEUw/aO3+bcuPzYqWzf05ohPVs/\r\nH2OOf2u3X7qlpcgZOG7yqk/sUj+6EXhwm8fUHsZpQuCuX/+ApdxzREPB4mnO\r\nR1i/Qw/WscFlAuoA7K2cAdaRIB8DalA8MZt6/s/y1ma6uvCAoqFjJdxL4bVh\r\nDTZQHaRJokU/b1+BkClbmNwuYVkgY2yiKpHOlPfcLN19vIwceB4blpmVqtr1\r\n6teN8RteuqYwfwEJ+WcOQmtgZVm10YJ+TSz5mB1iYHT4unFDp+1SQlMm0mmo\r\nY6EBFBWDyl5jQd9unj5iJrVLS9U4Qu07NWo2CdQEOnuOnYHzsvHe3bT4HCRn\r\nc87r94zS9iiYhaXnwjxdC9h7TFQaj2QEBpXjGt8/LDRyftyFica/JrtRShqQ\r\nW4iHwIKYF27qmmGHBgwNHGQRI7PFadU9832AVcWxMw4QXSHmCOAEo7xoYd9/\r\n8yZfgRp+Ax/G3KS4iYm9/T3SOCTQvQOwp+/8LBRC+tIDY4KfAajtvGtdrJxf\r\nKqI6kE3ywjIjAZBZnOtzIN62PkA08gtqvzM=\r\n=aRUg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"d60f58d3a1909e968696acad1bbee7e1fb5df4bc","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.11.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"16.15.1","dependencies":{"@trpc/server":"^10.6.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.9.1","prettier":"2.8.1","typescript":"4.9.4","@types/node":"18.11.17","lint-staged":"13.1.0","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.2.0_1671780408595_0.9339612749971549","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"trpc-shield","version":"0.2.1","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.2.1","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"f3504b0a7fa1413e546176ef439403344a4f94bc","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.2.1.tgz","fileCount":28,"integrity":"sha512-WS0j3ikTSc/7S37I30SLnVLgILWzj49+QKmo1fIe7satB6ItM+RpgE+SxgtABoztDv9TOTr1Ab67R/cw07k4bA==","signatures":[{"sig":"MEQCIBE4LsWWu4gp1tpkCSzLhz8ANiW1Xw+tkDgyluamciqgAiB0Tp/2dnbuy1KVJa4jXvZBCe6B2Pnj0dManLWD5sKK7Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":77959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpVjZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrCHxAAiZ3ZJQxVzsUOZO+mrfRUzTAyzYPCtsyChBun3v2mG4siFCEW\r\na/BVQ4IXWWCQ10thPR2puzeRxLLt7L/dCJEhrmTUYa8tLVZRrVQSdGXAXF31\r\nZqhBEygqR88/3aXkQ3VoIWrj6odUqAer9kBiUGCjtSYVihBEoyp9fYYci6cG\r\nrJkr1Bx1rSqDefkbdOQP0ljjJZ/u+VXqp/miteiZZ6pAxxxOvJexhuGD0/Ko\r\nkuO2GqKMUsJzPTo8tUvQ3HGBSUf0tIU8qjcOt2vRN4IdxImo0J1Fdt+UXYxy\r\nD4lE1Q5GO861oSTqOIG517xyZKDko7iFHFU64sm+LW3K9tk0JrsfJULpJR/L\r\nCJ+ug9+4sbZqnSsxiya61cdEMIEGhnHCJ2cqNqVChmpzwQzsvwlqrMjRlsho\r\nh6kHzA6C0mLz3LzWuIF380dbh8cXGoUeWFBbuwMdR5xx/e+A/Wquq0U4OdIW\r\nT/ABT0XwXvjzeHhbsTHyC2adzjmJeVYOEGUUyHo/45XH3ISSF/pHPAhKMNwZ\r\n5P5NP4lKp41MN5DJ1U8w3UD93m6jg2hruBfKbW7PZWCYt2BJhfPRRScbGndM\r\nzMIhnv3W67ryQ4mHwz6++hkS+DAffhYPtbQ0HVAg3tNeiHX8Y0rNhwOCtRUT\r\nLR6zxOEOW4cwy0mYoi0pDE2TA1fEK3IlHTs=\r\n=iDiG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"557d3aa39b943df5df0cf415c0c61e60c1b69d2c","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.11.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"16.15.1","dependencies":{"@trpc/server":"^10.6.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.9.1","prettier":"2.8.1","typescript":"4.9.4","@types/node":"18.11.17","lint-staged":"13.1.0","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.2.1_1671780569487_0.46686274252740456","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"trpc-shield","version":"0.3.0","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.3.0","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"92a5c336731b791ccd99a69589889fc2829830d0","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.3.0.tgz","fileCount":28,"integrity":"sha512-lMdDodAIn9M4y2oH4y3lqdv8csVtmINbDZByG9//gQJDsRT1UEX+BCaQJ3lVR7VZiwIJRaVVTnTS0nDQ6bF2lw==","signatures":[{"sig":"MEQCIALpZ6D0sg8TccMZ28pfNicvQ4HyFSYyDy6hK5lRCFQ6AiAzv9YfK4p0/U0PLpweJYdlR5HzwVx8S7rO3aSGlhGf0A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":79789,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrqprACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqzkA/+P6RnlVHUFsOdUX4D4mjFqc/xMAx0ZMtZQOJF9aW8aCvpHTxY\r\np0J4+FZ2Wb+jVUGja3DtN4GZGXAyRfz2wO6YzFfh2W/MB+KEQpK3RHL5r1uh\r\nKYVQsVBMMg+co/NGEIfd/blKcZQd5f77d1T7+w9Fg2Zeg1bAnylBz+uZFx/W\r\nflmKL15iQSWhDjTwkaJ/FY2qCo34IbEQSscWHUVtXGtJSFGMojAy+Z+Cbws7\r\nKIv9DIrPRg7kahqGGeMrCOuWEJzmvRok9i2CjpLOGk8S271YRBjJODfgrAme\r\nF7RVmo01lpmMGptrfRkPUG0OoiKooenQHRGqNuhrsuLjFG+NbRgiC2eyHUJp\r\nEVKIKcyTrVbILVEfym70OiCW5LXzQKpNMTGU6b1xA+ROp3XbGLUEaew4jp8g\r\n4bVtcqVWTNp7e29m8SAwJ8D/AMqNhxi3HHJgxS7N7JcjjXMVpPYARcvTsnb6\r\nA025X+bui4OexUh6uIlWY7TPiUJcTsYezKg1tQsBFOOGtxjPHrx7hNwwH+ul\r\nQDJHWrNAv5Diddj3eA79Ms7VYjDMWMjoTQEqMd2JDwbfJpVFg0I86iU+vTIo\r\nPSxR2BJPIJ9G7tbXaGG98bAOmhVSkP4ePbzOkk+2yT5rca3znWr06TPDxC1t\r\nVb9nRPt3X6lvM+s4TTcLbB+fuQBHx8hwOws=\r\n=ovV6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"73397cde42588297ea91cdf0f8b7fb93fcec812f","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.11.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"16.15.1","dependencies":{"@trpc/server":"^10.7.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"3.0.2","ts-node":"10.9.1","prettier":"2.8.1","typescript":"4.9.4","@types/node":"18.11.18","lint-staged":"13.1.0","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.3.0_1672391275179_0.6242687663928175","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"trpc-shield","version":"0.4.0","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.4.0","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"661bc5d6f3a6313bd8c5e0e20fec2921caa8f501","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.4.0.tgz","fileCount":28,"integrity":"sha512-QsimWm3K3i2WEvkggwuIir1pqkBB5lXnVqHgF8WgDWTPQ/W/iSkaYqbk9rP3ARI3kbPD6vfIDzwDli3dAPjY3A==","signatures":[{"sig":"MEUCIQD2BUIKFY15RTBiGfvlJmV6qJ60Fp6UvkWWJmaKz9jP6gIgKhNsGEGui3G4K60k1xdGOjcieBbrobJS+A80gutG89I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":81399,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjwcCUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpYXg/6A5to90jd9O5LQccp8E0LsK+U48CEvhdT2Yb1IyyuhmjwMbLf\r\nCzMYurnSF9GiuiHGro/THUlgK+mFaTICh3sy3uq5umxS/HxUgaT18NabuyVB\r\n/Bj0MeEUE2yBQNkhcVpcGR+CyFmO3j61SAiRLN8GvCLCspr+txNaTknMai14\r\nn+TFTWtK8xjsfP6gWUsqasUXToYrHzsHG2f6J4xwEcHZ3VqR4MtlZxsb3Ppm\r\nH8bYfTooLUYPEqurxY6vpMpz6bLJSMFN/6V8FpBFMHWjL0IiplDgaJpowD5+\r\nzknlTJkQSZlTxDGo9wIrtZ+70ItYUOaLgXlToKNDBxSgHBNu8R2/HJZs2bh9\r\nbjlBo7GlaVz0Wb/Ba9DdAeD1u7yNxD6o7y0917JhKRg+kxLlUbJ8KzXCqcDi\r\npdttMyF+1wKtLoVqzE5W5QxwRYq1gTwpf5BXxVHjpPLauAckGOxmuZxeokWE\r\n6u1oLAo9xZ3ujHgFV9xZpNbRWoGXh8B6NRSbhz4qyfHkjqbI5CEMEgUoqkLR\r\nlyyPg5rrGByBUpCFa8mNf8E/Jv3BVLnqss9jntJ5Onl67lA4lo6V5U5JYsuI\r\nJlHaeVD494eV2fRHnguiGWTNZNA9rcCp78CPGv2ommdLbsba2XrD/2oEuyuD\r\nhg4G4BYL3x99KyNSyG5ZMB3lc4VjrR07yFU=\r\n=z5F1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"f47c16b0c63cc349bec8e99ef0a3e0a20665d182","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.11.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"16.15.1","dependencies":{"@trpc/server":"^10.9.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"4.0.4","ts-node":"10.9.1","prettier":"2.8.2","typescript":"4.9.4","@types/node":"18.11.18","lint-staged":"13.1.0","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.4.0_1673642132750_0.19082766767878856","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"trpc-shield","version":"0.4.1","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.4.1","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"9482c1f9ee148fb64ac645954897476346dc6a44","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.4.1.tgz","fileCount":28,"integrity":"sha512-WTf+F+ljnRd2k52BEQBLwaX6QZ1al4qsylF1eaDVoV5WuxWkYJc1k3egNFDSKWFKS0WTlvVcSrmX8Atn7qc9Sw==","signatures":[{"sig":"MEUCIQC8FBuvLDLwOTQ6JU6gsaO2g0sWST0sAbD8sfgeIwtbVQIgaMN+8/OQ0lt5TtfE4ymDEFYQiZf5/z+/51j/kArE/IQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":81500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8So8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3sQ/7BS+tKIy8gp5P3q7c7OY1S86nVXpbw89dnsIjxua+Tx4MJrvw\r\nKBMUTsxBVq6jGyMHRmT7QjwqbFEj3uZWSO4VU8vKKtOrGuemNYRMIAt/WumE\r\nn9otSaSE+LJvtZgg09hL8IqZzHciSlaxTp5+ol1VXg8a0NBEhHc/CFZhy3g9\r\nVaEIcgP8YImSSkoAjDpvvkobxF88YvSZbvFoM2vkcV2DdL7VcWby/1NmSgx0\r\nXQwPXEZbCifnHJ/TQ2R4UkNvmXSAsRMnwAJk8JFY+PYojy6qt5UUP3eqEi3f\r\nFVyKXYUWnLY2u2NC2GosqSE085ZdvYdvagv8gR9XjwfsdOYMhwPrvbQKBj9+\r\nPiyPFrgswvegDFxcfnw0AF6gNCu0DkUiBHsavuxGtuAXmxCOSEnwLklRSLjB\r\nvwpNIt/fF6hEJyfkOFPCbVzzB9+IRFD4U/ooR20QGOllm3lYIf4u1JKvQAXq\r\nd4X/Vjt3CWnu8z+OEwN92c/HNZ4Yq3aPFBN/JI6WzFXnhbNpNHyIB7Yomfl9\r\nYCetvoyBGGh/VvVgbwCIixGZPsMcFo+3OsSa0STM0M9syU6omSeOTfz3Xzp2\r\n24hGCxo1/qubNewpLWtetrV+ZAuUGnJWwaSbbOmXi4aq54Xp1bp0oQRNPV0d\r\nAFSnjHQTAakHgxtKWfFl9hrsodrHTAvK4tg=\r\n=kHyq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"3a7475c8ebadbc03d67d5b8a10a87e65aa1c4eef","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.11.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"16.15.1","dependencies":{"@trpc/server":"^10.9.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"4.0.4","ts-node":"10.9.1","prettier":"2.8.2","typescript":"4.9.4","@types/node":"18.11.18","lint-staged":"13.1.0","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.4.1_1676749372719_0.510461359495886","host":"s3://npm-registry-packages"}},"0.4.2":{"name":"trpc-shield","version":"0.4.2","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.4.2","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"616482a36408b026d1bd94b9ec4247ba9d7409ca","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.4.2.tgz","fileCount":28,"integrity":"sha512-uDtQJPVCk71On+2NgB0LnVgBhFdjfcEu7I3vl5S9FACaYOvaO2fnKwLYKwdU8W5O2mX71KMmoxu+jUt/VTfvWQ==","signatures":[{"sig":"MEUCIHh4JIdlRLXQq0U5BbF2ZGHQheYM8myO73MI1zsHrmzeAiEAvZbngOhrRWbDh65GVFuUuSAxJvnOkgqlJ7NOdyER/FI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82138,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkTPZKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpf+A//ftJrRpT9fz7O6zrCaN4ILIpv7sKevIg1nGqFEvDdphXShh79\r\na3rBxCTsbwSPjljaCNb8qhCqXqwg4CQL1/tDIATfCgpymRz36k+th6tiVjBF\r\nWdFCfYeJSbhaRabyuVykTB4zgdP1oGtr/5+WRC3xJwJjYB6avcQmVI8zJBQ2\r\nr+F6Z3uXXX7kTMzbYpewiTz7xZ5TQ6oN9c42nhox0ZzLKyLh7vMdqwQolLwg\r\neTyoO1U6DqKQVVc2eh7i3UuP4nwHUWYdG53z8eFOzN7Msa0hOxJXgXJ3yQVg\r\nlGce/qU9PMHH5yh25f8csrYayFhx7Ka2Q7vHkcdOPFYn5wql1aoCykf94B1i\r\nLIv9NOp15lu9wsuXqcqw781abfIeZg8/cqCGhky4qxfJi+Zsl9SFsXe/6bCc\r\n2vzREstAKiIp3GTVDrNm29DWiPA6q0WPB2P5tdDgfRg/8rxXspnYLBYvD4gJ\r\nXHgQ++7QxKTeX8RgIGWygODpwMGf3VD2z/XzDab3KOcAsVr64NlZEM8L2zHS\r\n+9i55BkE+QoBDQNx147jzMuWQ++lMR9Cu91OeC6oQneZv+QptZw6pmyT/uVD\r\n9pTIV27IWVthyeBuFSP5Vn5nq2qOrYVkASWHzntrAEzxROrgdKKKpbAra5gF\r\ncQg0L+gd3Nnap6S4VVRdUrCEeiy3+vSXrAo=\r\n=9R/q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","gitHead":"0769f668548808ac7258ab6078deebfc3684b63a","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.11.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"16.15.1","dependencies":{"@trpc/server":"^10.21.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"5.0.0","ts-node":"10.9.1","prettier":"2.8.8","typescript":"5.0.4","@types/node":"18.16.2","lint-staged":"13.2.2","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.4.2_1682765386712_0.7015698571393005","host":"s3://npm-registry-packages"}},"0.4.3":{"name":"trpc-shield","version":"0.4.3","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.4.3","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"59ff1df464539f792e21680fbc4f770ecede388f","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.4.3.tgz","fileCount":28,"integrity":"sha512-cS29TSgKgZhi6garadu29YrtPUYD7/OxXg+URA2Ce4PZQfAmZlcInMP7E0mioqqgvnun7E9R9teSFfZa0kw8Yg==","signatures":[{"sig":"MEQCIGfIdnLLXfVFTcg5zIc9l/UyGKqKPgV+t4WGZVkBmZPnAiA6fYzvrPd/fmbQHGEAefpttvuieGGJd+WPoliGxkQHmQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82008},"main":"lib/index.js","gitHead":"4313617e191d7d65f24b194231156fbee52f3d49","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"8.11.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"16.15.1","dependencies":{"@trpc/server":"^10.21.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"5.0.0","ts-node":"10.9.1","prettier":"2.8.8","typescript":"5.0.4","@types/node":"18.16.2","lint-staged":"13.2.2","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.4.3_1684497035365_0.33823606920694216","host":"s3://npm-registry-packages"}},"0.4.4":{"name":"trpc-shield","version":"0.4.4","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@0.4.4","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"7c438126cec975d4d435798088870c8fbc91218b","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-0.4.4.tgz","fileCount":28,"integrity":"sha512-oJt/9Ak2UWRj9cNhCxw7kYAywhpcr96R9LJ0NZcS3U3Aag9b86XDchog55hsTmJsPY9rjw/2odvtPou8iEjq4Q==","signatures":[{"sig":"MEYCIQCtR+3pNX+J7/8fIeFivjAhPGmIKDHXfGjuHudeebXtfwIhAPrGVk3kGP4uLeXhe+GT3CxduLzRLJxH7ypOV8O9fPQd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":81977},"main":"lib/index.js","gitHead":"e64c40153900dd6e9d98f6848990a056f8156159","private":false,"scripts":{"build":"tsc","release":"./package.sh && cd package && npm publish","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","prerelease":"npm run build"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"10.1.0","description":"tRPC permissions as another layer of abstraction!","directories":{},"_nodeVersion":"20.7.0","dependencies":{"@trpc/server":"^10.21.2"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"5.0.0","ts-node":"10.9.1","prettier":"2.8.8","typescript":"5.0.4","@types/node":"18.16.2","lint-staged":"13.2.2","pretty-quick":"3.1.3"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_0.4.4_1712863562816_0.7425829336842527","host":"s3://npm-registry-packages"}},"1.0.0-beta.1":{"name":"trpc-shield","version":"1.0.0-beta.1","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@1.0.0-beta.1","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"7da3eb40ca4b13c39d6d571428381b5dde7c468a","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-1.0.0-beta.1.tgz","fileCount":115,"integrity":"sha512-hQLOnWTGqJJX1PiQXkqLtwXQoPFvj/Fdqd5BplKuNcWX7M6kVS564r3msDd40wZ3kLdfMCdK7L2umQuc41OJSQ==","signatures":[{"sig":"MEUCIA2JFBvHNWLI8VTpf2QJrB8rPJgh+aoiuKbo3GGE1WzoAiEA8o3H6/Fs0qkKTmJDeFPRpPM+oLZ7ko02oRRjDtDUkjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":523110},"main":"lib/index.js","type":"module","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"7d35129c482208d0ea1179259d5a4c9e77db9c39","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"tsc","commit":"git-cz","prepare":"husky install || true","release":"./package.sh && cd package && npm publish","test:ui":"vitest --ui","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","typecheck":"tsc --noEmit","prerelease":"npm run build","test:watch":"vitest","test:coverage":"vitest run --coverage","semantic-release":"semantic-release"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"10.9.2","description":"tRPC permissions as another layer of abstraction!","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{js,jsx,json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.17.1","dependencies":{"@trpc/server":"^11.4.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"zod":"^3.23.8","husky":"^9.0.11","eslint":"^9.17.0","rimraf":"6.0.1","vitest":"^2.1.8","ts-node":"10.9.2","prettier":"3.6.2","supertest":"^7.0.0","commitizen":"^4.3.1","typescript":"5.8.3","@types/node":"24.0.15","lint-staged":"16.1.2","pretty-quick":"4.2.2","@commitlint/cli":"^18.6.1","@types/supertest":"^6.0.2","semantic-release":"^22.0.12","@vitest/coverage-v8":"^2.1.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^8.18.2","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^18.6.3","@typescript-eslint/eslint-plugin":"^8.18.2","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_1.0.0-beta.1_1752934196006_0.7739265935788908","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-beta.2":{"name":"trpc-shield","version":"1.0.0-beta.2","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@1.0.0-beta.2","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"dcc4adfe82ecf0527e377d1798399a5bfc0d415e","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-1.0.0-beta.2.tgz","fileCount":115,"integrity":"sha512-ByuL0qhVSOiVTN+WCCl78MFP9pgQ7GyOvVjuj4WVeWP71vBjwWOShkEmGYArg8DPzGx9i0aHmJTM1kMinL0bOA==","signatures":[{"sig":"MEYCIQC8b2q3T0v7kqlFZyjm+gybSoxG0CpSy86K0n6l6n0Y0AIhAJXCykESKSR4abXDiiMrrbQB07AzTITm3FelgHCeY8fF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":527159},"main":"lib/index.js","type":"module","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"47591b612b671fcc645b7fca4f5996d1928b2755","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"tsc","commit":"git-cz","prepare":"husky install || true","release":"./package.sh && cd package && npm publish","test:ui":"vitest --ui","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","typecheck":"tsc --noEmit","prerelease":"npm run build","test:watch":"vitest","test:coverage":"vitest run --coverage","semantic-release":"semantic-release"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"10.9.2","description":"tRPC permissions as another layer of abstraction!","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{js,jsx,json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.17.1","dependencies":{"@trpc/server":"^11.4.3"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"zod":"^3.23.8","husky":"^9.0.11","eslint":"^9.17.0","rimraf":"6.0.1","vitest":"^2.1.8","ts-node":"10.9.2","prettier":"3.6.2","supertest":"^7.0.0","commitizen":"^4.3.1","typescript":"5.8.3","@types/node":"24.0.15","lint-staged":"16.1.2","pretty-quick":"4.2.2","@commitlint/cli":"^18.6.1","@types/supertest":"^6.0.2","semantic-release":"^22.0.12","@vitest/coverage-v8":"^2.1.8","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^8.18.2","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^18.6.3","@typescript-eslint/eslint-plugin":"^8.18.2","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_1.0.0-beta.2_1752945358051_0.9407401163162015","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"trpc-shield","version":"1.0.0","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@1.0.0","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"444af12f15cc2c78e770dbabfa09ffda841afdb8","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-1.0.0.tgz","fileCount":116,"integrity":"sha512-UXo4MmnkWV2MF5XM599Nxam5vIQhUi8PeXIKYSp8fD5t6rPm7KSgp0tcM9wvRit61z6QsCzca5P0nVtZgNzbIg==","signatures":[{"sig":"MEYCIQCJ6m2+a+lMQvkRrl6ACUiXa1dVcChp7i9Rj3S6uQlEuQIhAL4BFxfx/4Uvc6ZTp5lexUtOqzspgjJcJPzvyfEnZ2ha","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":527616},"main":"lib/index.js","type":"module","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"64fc9def86b916958aca552ce957cd873dc8b5ad","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"tsc","commit":"git-cz","prepare":"husky","release":"./package.sh && cd package && npm publish","test:ui":"vitest --ui","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","typecheck":"tsc --noEmit","prerelease":"npm run build","test:watch":"vitest","test:coverage":"vitest run --coverage","semantic-release":"semantic-release"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"10.9.3","description":"tRPC permissions as another layer of abstraction!","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{js,jsx,json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"20.19.4","dependencies":{"@trpc/server":"^11.4.3"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","husky":"^9.0.11","eslint":"^9.17.0","rimraf":"6.0.1","vitest":"^3.2.4","ts-node":"10.9.2","prettier":"3.6.2","supertest":"^7.0.0","commitizen":"^4.3.1","typescript":"5.8.3","@types/node":"24.0.15","lint-staged":"16.1.2","pretty-quick":"4.2.2","@commitlint/cli":"^18.6.1","@types/supertest":"^6.0.2","semantic-release":"^22.0.12","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.2","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^8.18.2","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^18.6.3","@typescript-eslint/eslint-plugin":"^8.18.2","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_1.0.0_1753245028094_0.7982455866924301","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"trpc-shield","version":"1.1.0","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@1.1.0","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"b7e6aab63975f9daec552a8b4cdf4cc244bfe6d2","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-1.1.0.tgz","fileCount":116,"integrity":"sha512-RezzTpfrMNvrhGvCR/cdv8glhWNsSfjxref+N6sYjYiqN7O26jUXJacuBdvx8BN0HCORgFaHBMw2alX/LWn+wQ==","signatures":[{"sig":"MEQCIHtxoYZHlL1Nqhyj8nj0GOGN/4kEr9PqDQ7Fy94SRArXAiAkxvbBuKVCM7TCop9UcPRi5qoD/5zL7iDgidBSMwtfww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":528263},"main":"lib/index.js","type":"module","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"a630829fca7ad9be7f88ed4557c5666b75850e8b","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"tsc","commit":"git-cz","prepare":"husky","release":"./package.sh && cd package && npm publish","test:ui":"vitest --ui","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","typecheck":"tsc --noEmit","prerelease":"npm run build","test:watch":"vitest","test:coverage":"vitest run --coverage","semantic-release":"semantic-release"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"10.9.3","description":"tRPC permissions as another layer of abstraction!","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{js,jsx,json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"20.19.4","dependencies":{"@trpc/server":"^11.4.3"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","husky":"^9.0.11","eslint":"^9.17.0","rimraf":"6.0.1","vitest":"^3.2.4","ts-node":"10.9.2","prettier":"3.6.2","supertest":"^7.0.0","commitizen":"^4.3.1","typescript":"5.8.3","@types/node":"24.0.15","lint-staged":"16.1.2","pretty-quick":"4.2.2","@commitlint/cli":"^18.6.1","@types/supertest":"^6.0.2","semantic-release":"^22.0.12","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^8.18.2","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^18.6.3","@typescript-eslint/eslint-plugin":"^8.18.2","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_1.1.0_1753245377343_0.046005582866986305","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"trpc-shield","version":"1.2.0","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@1.2.0","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"171e948df7e4b770c9a7f2b7405408bda82b8380","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-1.2.0.tgz","fileCount":117,"integrity":"sha512-5UCg3rVq1o1X1yGlZS7I9Gg84dl54J0E3w4eRddbMenR4wRxs4othTkGsLjkXYszJi0AwAV6fzockDHmqIEbCA==","signatures":[{"sig":"MEUCIQCN02wA5V/rtcLCZe+k38pEU+D3Mf7qkyCf0uP2d6eWQgIgGejH1y+WUrc57ULccX4HLQpHKOrve70pp5bMfVU87G4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555785},"main":"lib/index.js","type":"module","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"ad90a552312a586e94078ffc3e7bc75a7228c85a","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"tsc","commit":"git-cz","prepare":"husky","release":"./package.sh && cd package && npm publish","test:ui":"vitest --ui","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","typecheck":"tsc --noEmit","prerelease":"npm run build","test:watch":"vitest","test:coverage":"vitest run --coverage","semantic-release":"semantic-release"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"10.9.3","description":"tRPC permissions as another layer of abstraction!","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{js,jsx,json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"20.19.3","dependencies":{"@trpc/server":"^11.4.3"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","husky":"^9.0.11","eslint":"^9.17.0","rimraf":"6.0.1","vitest":"^3.2.4","ts-node":"10.9.2","prettier":"3.6.2","supertest":"^7.0.0","commitizen":"^4.3.1","typescript":"5.8.3","@types/node":"24.0.15","lint-staged":"16.1.2","pretty-quick":"4.2.2","@commitlint/cli":"^18.6.1","@types/supertest":"^6.0.2","semantic-release":"^22.0.12","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^8.18.2","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^18.6.3","@typescript-eslint/eslint-plugin":"^8.18.2","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_1.2.0_1753245618545_0.8367934276176248","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"trpc-shield","version":"1.2.1","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@1.2.1","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"7dc420230d2c2e801ad0e55c6225db7294cc6877","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-1.2.1.tgz","fileCount":117,"integrity":"sha512-SK54zNWkdtNKA51xhCu4n0F9jOQ3PHctQ1FCcVrQFo3r2bUpwUzLwJEfJ4aoH4mafrVOBSyob0CbLppDDcCV8g==","signatures":[{"sig":"MEUCIQDW4H9mCW8IDewqzwg0MporqhsY5j1Qm8S+jCKG7EAFIAIgGdnSU0HRzkZm+W6jdCO+LyUtYcrYzJ2lmoxEcZ4ulRs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529458},"main":"lib/index.js","type":"module","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"ad90a552312a586e94078ffc3e7bc75a7228c85a","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"tsc","commit":"git-cz","prepare":"husky","release":"./package.sh && cd package && npm publish","test:ui":"vitest --ui","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","typecheck":"tsc --noEmit","prerelease":"npm run build","test:watch":"vitest","test:coverage":"vitest run --coverage","semantic-release":"semantic-release"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"10.9.2","description":"tRPC permissions as another layer of abstraction!","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{js,jsx,json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.17.1","dependencies":{"@trpc/server":"^11.4.3"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.23.8","husky":"^9.0.11","eslint":"^9.17.0","rimraf":"6.0.1","vitest":"^3.2.4","ts-node":"10.9.2","prettier":"3.6.2","supertest":"^7.0.0","commitizen":"^4.3.1","typescript":"5.8.3","@types/node":"24.0.15","lint-staged":"16.1.2","pretty-quick":"4.2.2","@commitlint/cli":"^18.6.1","@types/supertest":"^6.0.2","semantic-release":"^22.0.12","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^11.0.3","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.2.1","@semantic-release/github":"^9.2.6","@typescript-eslint/parser":"^8.18.2","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^18.6.3","@typescript-eslint/eslint-plugin":"^8.18.2","@semantic-release/commit-analyzer":"^11.1.0","@semantic-release/release-notes-generator":"^12.1.0","conventional-changelog-conventionalcommits":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_1.2.1_1753246158106_0.46901157145734707","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"trpc-shield","version":"1.3.0","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@1.3.0","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"1a2208f93e7948f4da9a7c42e7a8b7fd0a336f86","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-1.3.0.tgz","fileCount":120,"integrity":"sha512-YoLcovUXEpGP9+YMZ7ZZoBVmCrDfANcY8rUsM1Pz4CBob2bXQraLIsRF1DPMO7a5nDQV1/4apLn6w6dD6Tk3TA==","signatures":[{"sig":"MEUCIHe/fQbOLQLn0OAtnRecDoHXjSHh8/M/eY4oSpNvLaTPAiEA3DnBD+IpUpNdqb6TbNg8UrPxczbEh7PNeh6E/hzUS70=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360769},"main":"lib/index.js","type":"module","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"6e8858def103db5c946f832238a50bca4a7727d8","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"tsc","commit":"git-cz","prepare":"husky","release":"./package.sh && cd package && npm publish","test:ui":"vitest --ui","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"rimraf dist","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","typecheck":"tsc --noEmit","prerelease":"npm run build","test:watch":"vitest","test:coverage":"vitest run --coverage","semantic-release":"semantic-release"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"10.9.3","description":"tRPC permissions as another layer of abstraction!","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{js,jsx,json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"20.19.4","dependencies":{"@trpc/server":"^11.4.3"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.0.10","husky":"^9.1.7","eslint":"^9.31.0","rimraf":"6.0.1","vitest":"^3.2.4","ts-node":"10.9.2","prettier":"3.6.2","supertest":"^7.1.4","commitizen":"^4.3.1","typescript":"5.8.3","@types/node":"24.1.0","lint-staged":"16.1.2","pretty-quick":"4.2.2","@commitlint/cli":"^19.8.1","@types/supertest":"^6.0.3","semantic-release":"^24.2.7","@vitest/coverage-v8":"^3.2.4","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.2","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.3","@semantic-release/github":"^11.0.3","@typescript-eslint/parser":"^8.38.0","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^19.8.1","@typescript-eslint/eslint-plugin":"^8.38.0","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.0.3","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_1.3.0_1753443413668_0.9318322249297788","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"trpc-shield","version":"2.0.0","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@2.0.0","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"ae11e35790b2831c44dce1a8191c7660c04c0768","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-2.0.0.tgz","fileCount":76,"integrity":"sha512-F5AXTnYOe5jUqZUHD5LNKZERFgSY289lOME2asqLsGxejc2D09iVKRo/OsmqBdKYdXWEKoTLIKcqVBf7afb/Vw==","signatures":[{"sig":"MEQCIEXke0CrOrEDBnIdEUd4qIj1nRpiJT6sB5oMJjR6fCvJAiA96gtk9KJqcvtscEMvJsXU69BW3IfXVpJt5ri/7fV9oQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354170},"main":"lib/index.js","type":"module","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"0f0af840e9440bc23e41f44c59f8530ce31e13fe","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"tsc","commit":"git-cz","prepare":"husky","release":"./package.sh && cd package && pnpm publish","test:ui":"vitest --ui","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"rimraf lib","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","typecheck":"tsc --noEmit","prerelease":"pnpm build","test:watch":"vitest","test:coverage":"vitest run --coverage","semantic-release":"semantic-release"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"10.9.4","description":"tRPC permissions as another layer of abstraction!","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{js,jsx,json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"@trpc/server":"^11.7.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.15.1","devDependencies":{"zod":"^4.1.12","husky":"^9.1.7","eslint":"^9.39.1","rimraf":"6.1.2","vitest":"^4.0.13","ts-node":"10.9.2","prettier":"3.6.2","supertest":"^7.1.4","commitizen":"^4.3.1","typescript":"5.9.3","@types/node":"24.10.1","lint-staged":"16.2.7","pretty-quick":"4.2.2","@commitlint/cli":"^20.1.0","@types/supertest":"^6.0.3","semantic-release":"^25.0.2","@vitest/coverage-v8":"^4.0.13","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@semantic-release/github":"^12.0.2","@typescript-eslint/parser":"^8.47.0","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^20.0.0","@typescript-eslint/eslint-plugin":"^8.47.0","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_2.0.0_1763818623706_0.6373998098081421","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"trpc-shield","version":"2.0.1","keywords":["trpc","trpc-shield"],"author":{"url":"https://github.com/omar-dulaimi","name":"Omar Dulaimi"},"license":"MIT","_id":"trpc-shield@2.0.1","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"dist":{"shasum":"ff39c5b8ae8b978ae9e6e445dce5667d2232e163","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-2.0.1.tgz","fileCount":76,"integrity":"sha512-X45ZKKSSvaC51CUDK8YKRrIL8ya9Sh0Ht4sSuEf2lZAI5YQ+cVD48ws5gtib8+M4JUl8dO4Ua6N3rv4Q9hTOMg==","signatures":[{"sig":"MEYCIQCM+y0aNUP37K3qQ4f7W0SXCZmnJVVZy/Hhllnfth17TAIhAPIgFmfQcT/JLMgepDlqHOauIRXAKU6sjNwJeVo6MlaT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":354160},"main":"lib/index.js","type":"module","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"4f02ce4b53eef9d8db65a01a1b5408a284192fad","scripts":{"lint":"eslint . --ext .ts,.tsx","test":"vitest run","build":"tsc","commit":"git-cz","prepare":"husky","release":"./package.sh && cd package && pnpm publish","test:ui":"vitest --ui","lint:fix":"eslint . --ext .ts,.tsx --fix","prebuild":"rimraf lib","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","typecheck":"tsc --noEmit","prerelease":"pnpm build","test:watch":"vitest","test:coverage":"vitest run --coverage","semantic-release":"semantic-release"},"typings":"lib/index.d.ts","_npmUser":{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"},"repository":{"url":"git+https://github.com/omar-dulaimi/trpc-shield.git","type":"git"},"_npmVersion":"10.9.4","description":"tRPC permissions as another layer of abstraction!","directories":{},"lint-staged":{"*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{js,jsx,json,yml,yaml,md}":["prettier --write"]},"_nodeVersion":"22.21.1","dependencies":{"@trpc/server":"^11.7.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.15.1","devDependencies":{"zod":"^4.1.12","husky":"^9.1.7","eslint":"^9.39.1","rimraf":"6.1.2","vitest":"^4.0.13","ts-node":"10.9.2","prettier":"3.6.2","supertest":"^7.1.4","commitizen":"^4.3.1","typescript":"5.9.3","@types/node":"24.10.1","lint-staged":"16.2.7","pretty-quick":"4.2.2","@commitlint/cli":"^20.1.0","@types/supertest":"^6.0.3","semantic-release":"^25.0.2","@vitest/coverage-v8":"^4.0.13","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^13.1.2","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@semantic-release/github":"^12.0.2","@typescript-eslint/parser":"^8.47.0","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@commitlint/config-conventional":"^20.0.0","@typescript-eslint/eslint-plugin":"^8.47.0","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/release-notes-generator":"^14.1.0","conventional-changelog-conventionalcommits":"^9.1.0"},"_npmOperationalInternal":{"tmp":"tmp/trpc-shield_2.0.1_1763818704219_0.5475093730435243","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"trpc-shield","version":"3.0.0","description":"tRPC permissions as another layer of abstraction!","repository":{"type":"git","url":"git+https://github.com/omar-dulaimi/trpc-shield.git"},"main":"lib/index.js","module":"lib/esm/index.js","types":"lib/index.d.ts","exports":{".":{"import":{"types":"./lib/esm/index.d.ts","default":"./lib/esm/index.js"},"require":{"types":"./lib/index.d.ts","default":"./lib/index.js"}},"./package.json":"./package.json"},"author":{"name":"Omar Dulaimi","url":"https://github.com/omar-dulaimi"},"keywords":["trpc","trpc-shield"],"license":"MIT","scripts":{"prebuild":"rimraf lib tsconfig.tsbuildinfo tsconfig.esm.tsbuildinfo","build":"tsc --project tsconfig.json && tsc --project tsconfig.esm.json && node scripts/build-esm-marker.mjs","prerelease":"pnpm build","release":"./package.sh && cd package && pnpm publish","semantic-release":"semantic-release","prettier":"prettier --ignore-path .gitignore --write --list-different \"**/*.{ts,tsx,yml}\"","lint":"eslint . --ext .ts,.tsx","lint:fix":"eslint . --ext .ts,.tsx --fix","typecheck":"tsc --noEmit","test":"vitest run","test:package":"node scripts/check-package.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","test:ui":"vitest --ui","prepare":"husky","commit":"git-cz"},"lint-staged":{"*.{ts,tsx}":["eslint --fix","prettier --write"],"*.{js,jsx,json,yml,yaml,md}":["prettier --write"]},"devDependencies":{"@commitlint/cli":"^21.2.1","@commitlint/config-conventional":"^21.2.0","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/git":"^10.0.1","@semantic-release/github":"^12.0.9","@semantic-release/npm":"^13.1.5","@semantic-release/release-notes-generator":"^14.1.1","@types/node":"26.1.1","@types/supertest":"^7.2.1","@typescript-eslint/eslint-plugin":"^8.64.0","@typescript-eslint/parser":"^8.64.0","@vitest/coverage-v8":"^4.1.10","@vitest/ui":"4.1.10","commitizen":"^4.3.2","conventional-changelog-conventionalcommits":"^10.2.1","cz-conventional-changelog":"^3.3.0","eslint":"^10.7.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.6","husky":"^9.1.7","lint-staged":"17.1.0","prettier":"3.9.5","pretty-quick":"4.2.2","rimraf":"6.1.3","semantic-release":"^25.0.8","supertest":"^7.2.2","ts-node":"10.9.2","typescript":"5.9.3","vitest":"^4.1.10","zod":"^4.4.3"},"bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","dependencies":{"@trpc/server":"^11.18.0"},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"packageManager":"pnpm@11.15.1","gitHead":"65bcb2b4a0c6404dfdee998e95ad6a3ae0a3b188","_id":"trpc-shield@3.0.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-od9dItN37Izk7rAehK8nqohNbTE8LB8yr2uu2Q6CuJUm240g0Gkx5WnCqkb3/k2RIRD9Nz6+BAOlpkfu2i0QsA==","shasum":"6ce0136ecfcc413c02031ea5b55431f6d556baf1","tarball":"https://registry.npmjs.org/trpc-shield/-/trpc-shield-3.0.0.tgz","fileCount":52,"unpackedSize":175807,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/trpc-shield@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID5haayipqEGbiT4pAwMQKGmJcSPGfpOi9JltQcn0/ZFAiB8VDpP5uoKx7cx6tQHu+EVGEmKJss5nmtRdCCLbaZQpw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:149f6e07-c255-40ae-8b19-4cdab06f0295"}},"directories":{},"maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/trpc-shield_3.0.0_1785264858408_0.7574554067463961"},"_hasShrinkwrap":false}},"time":{"created":"2022-05-20T23:09:35.668Z","modified":"2026-07-28T18:54:18.867Z","0.0.0-rc.1":"2022-05-20T23:09:35.865Z","0.0.0-rc.2":"2022-05-20T23:10:32.391Z","0.0.0-rc.3":"2022-05-21T22:00:59.904Z","0.0.0-rc.4":"2022-05-21T22:04:15.893Z","0.0.0-rc.5":"2022-05-21T22:07:31.260Z","0.0.0-rc.6":"2022-05-24T14:01:05.553Z","0.0.0-rc.7":"2022-05-24T14:21:57.533Z","0.1.0":"2022-05-25T03:41:34.821Z","0.1.1":"2022-06-22T15:25:25.952Z","0.1.2":"2022-11-04T09:05:59.756Z","0.2.0":"2022-12-23T07:26:48.782Z","0.2.1":"2022-12-23T07:29:29.677Z","0.3.0":"2022-12-30T09:07:55.338Z","0.4.0":"2023-01-13T20:35:32.946Z","0.4.1":"2023-02-18T19:42:52.885Z","0.4.2":"2023-04-29T10:49:46.901Z","0.4.3":"2023-05-19T11:50:35.530Z","0.4.4":"2024-04-11T19:26:02.978Z","1.0.0-beta.1":"2025-07-19T14:09:56.243Z","1.0.0-beta.2":"2025-07-19T17:15:58.287Z","1.0.0":"2025-07-23T04:30:28.301Z","1.1.0":"2025-07-23T04:36:17.521Z","1.2.0":"2025-07-23T04:40:18.735Z","1.2.1":"2025-07-23T04:49:18.279Z","1.3.0":"2025-07-25T11:36:53.973Z","2.0.0":"2025-11-22T13:37:03.967Z","2.0.1":"2025-11-22T13:38:24.464Z","3.0.0":"2026-07-28T18:54:18.555Z"},"bugs":{"url":"https://github.com/omar-dulaimi/trpc-shield/issues"},"author":{"name":"Omar Dulaimi","url":"https://github.com/omar-dulaimi"},"license":"MIT","homepage":"https://github.com/omar-dulaimi/trpc-shield#readme","keywords":["trpc","trpc-shield"],"repository":{"type":"git","url":"git+https://github.com/omar-dulaimi/trpc-shield.git"},"description":"tRPC permissions as another layer of abstraction!","maintainers":[{"name":"omar-dulaimi","email":"o.m.dulaimi@gmail.com"}],"readme":"# tRPC Shield\n\n[![NPM Version](https://img.shields.io/npm/v/trpc-shield?style=for-the-badge&logo=npm&color=blue)](https://www.npmjs.com/package/trpc-shield)\n[![NPM Downloads](https://img.shields.io/npm/dm/trpc-shield?style=for-the-badge&logo=npm&color=green)](https://www.npmjs.com/package/trpc-shield)\n[![GitHub Stars](https://img.shields.io/github/stars/omar-dulaimi/trpc-shield?style=for-the-badge&logo=github&color=yellow)](https://github.com/omar-dulaimi/trpc-shield/stargazers)\n[![License](https://img.shields.io/github/license/omar-dulaimi/trpc-shield?style=for-the-badge&color=purple)](https://github.com/omar-dulaimi/trpc-shield/blob/master/LICENSE)\n[![Test Coverage](https://img.shields.io/badge/coverage-comprehensive-brightgreen?style=for-the-badge)](https://github.com/omar-dulaimi/trpc-shield)\n\n<div align=\"center\">\n  <img src=\"media/shield.png\" alt=\"tRPC Shield Logo\" width=\"200\">\n  \n  <h3 align=\"center\">🛡️ tRPC Shield</h3>\n  <p align=\"center\">\n    <strong>Powerful permission layer for tRPC applications</strong><br>\n    Create secure, type-safe APIs with intuitive rule-based authorization\n  </p>\n  \n  <p align=\"center\">\n    <a href=\"#-quick-start\">Quick Start</a> •\n    <a href=\"#-documentation\">Documentation</a> •\n    <a href=\"#-examples\">Examples</a> •\n    <a href=\"#-contributing\">Contributing</a>\n  </p>\n</div>\n\n## 💖 Support This Project\n\nIf this tool helps you build better applications, please consider supporting its development:\n\n<p align=\"center\">\n  <a href=\"https://github.com/sponsors/omar-dulaimi\">\n    <img src=\"https://img.shields.io/badge/Sponsor-GitHub-ea4aaa?style=for-the-badge&logo=github\" alt=\"GitHub Sponsors\" height=\"40\">\n  </a>\n</p>\n\nYour sponsorship helps maintain and improve this project. Thank you! 🙏\n\n## 🆕 Latest Version\n\n**Get the latest stable version with full tRPC v11 support!**\n\n```bash\npnpm add trpc-shield\n```\n\nThis version includes **tRPC v11.x compatibility and context extension support** - bringing full compatibility with the latest tRPC features. For specific version requirements, see the [compatibility table](#-version-compatibility) below.\n\n## ✨ Features\n\n- 🔒 **Rule-based permissions** - Define authorization logic with intuitive, composable rules\n- 🚀 **tRPC v11 support** - Full compatibility with the latest tRPC features\n- 🔄 **Context extension** - Rules can extend context with authentication data\n- 🧩 **Logic operators** - Combine rules with `and`, `or`, `not`, `chain`, and `race`\n- 🛡️ **Secure by default** - Prevents data leaks with fallback rules\n- 📝 **TypeScript first** - Full type safety and IntelliSense support\n- 🎯 **Zero dependencies** - Lightweight and fast\n- 🧪 **Well tested** - Comprehensive test coverage\n\n## 🚀 Quick Start\n\n### Installation\n\n```bash\n# pnpm (recommended)\npnpm add trpc-shield\n\n# npm\nnpm install trpc-shield\n\n# yarn\nyarn add trpc-shield\n```\n\nThe package ships both module formats, so it works either way:\n\n```js\nimport { shield, rule } from 'trpc-shield'; // ES modules\nconst { shield, rule } = require('trpc-shield'); // CommonJS\n```\n\nBoth are named exports; there is no default export. Types are published for both, so `require` and\n`import` resolve correctly under `moduleResolution` `node10`, `node16` and `bundler`.\n\n> **Upgrading from 1.x or 2.0.x?** Those releases could not be loaded at all: 1.x shipped without any\n> build output, and 2.0.0 and 2.0.1 declared `\"type\": \"module\"` over a CommonJS build. Upgrade to the\n> latest 2.x; no code changes are needed.\n\n### Basic Example\n\n```typescript\nimport { initTRPC } from '@trpc/server';\nimport { rule, shield, and, or, not } from 'trpc-shield';\n\ntype Context = {\n  user?: { id: string; role: string; name: string };\n  token?: string;\n};\n\n// Create rules\nconst isAuthenticated = rule<Context>()(async (ctx) => {\n  return ctx.user !== null;\n});\n\nconst isAdmin = rule<Context>()(async (ctx) => {\n  return ctx.user?.role === 'admin';\n});\n\n// Create permissions\nconst permissions = shield<Context>({\n  query: {\n    publicData: true, // Always allow\n    profile: isAuthenticated,\n    adminData: and(isAuthenticated, isAdmin),\n  },\n  mutation: {\n    updateProfile: isAuthenticated,\n    deleteUser: and(isAuthenticated, isAdmin),\n  },\n});\n\n// Apply to tRPC\nconst t = initTRPC.context<Context>().create();\nconst middleware = t.middleware(permissions);\nconst protectedProcedure = t.procedure.use(middleware);\n```\n\n## 📋 Version Compatibility\n\n| tRPC Version | Shield Version | Status |\n|--------------|----------------|---------|\n| **v11.x** | **v1.0.0+** | ✅ **Recommended** |\n| v10.x | v0.2.0 - v0.4.x | ⚠️ Legacy |\n| v9.x | v0.1.2 and below | ❌ Deprecated |\n\n### 🆕 What's New in Latest Version\n\n- **tRPC v11 Support** - Full compatibility with latest tRPC features\n- **Context Extension** - Rules can now extend context (see [Context Extension](#-context-extension))\n- **Improved TypeScript** - Better type inference and safety\n- **Performance Optimizations** - Faster rule evaluation\n- **Enhanced Testing** - Comprehensive test coverage\n\n## 🔧 Core Concepts\n\n### Rules\n\nRules are the building blocks of your permission system. Each rule is an async function that returns:\n- `true` - Allow access\n- `false` - Deny access\n- `Error` - Deny with custom error\n- `{ ctx: {...} }` - Allow and extend context\n\n```typescript\nconst isOwner = rule<Context>()(async (ctx, type, path, input) => {\n  const resourceId = input.id;\n  const resource = await getResource(resourceId);\n  \n  if (resource.ownerId !== ctx.user?.id) {\n    return new Error('You can only access your own resources');\n  }\n  \n  return true;\n});\n```\n\n### Logic Operators\n\nCombine rules with powerful logic operators:\n\n```typescript\nconst permissions = shield<Context>({\n  query: {\n    // All rules must pass\n    sensitiveData: and(isAuthenticated, isAdmin, isEmailVerified),\n    \n    // At least one rule must pass\n    moderatedContent: or(isAdmin, isModerator),\n    \n    // Rule must fail\n    publicEndpoint: not(isInternalRequest),\n    \n    // Execute rules in sequence until one passes\n    content: race(isOwner, isCollaborator, isPublicAccess),\n    \n    // Execute rules in sequence, all must pass\n    secureAction: chain(isAuthenticated, isEmailVerified, hasPermission),\n  },\n});\n```\n\n## 🔄 Context Extension\n\n> **New in v1.0.0** - Rules can extend the tRPC context\n\nRules can return an object with a `ctx` property to extend the context for subsequent middleware and procedures:\n\n```typescript\nconst withAuth = rule<Context>()(async (ctx) => {\n  // If user is already in context, just validate\n  if (ctx.user) {\n    return true;\n  }\n  \n  // If we have a token, validate and extend context\n  if (ctx.token) {\n    try {\n      const user = await validateToken(ctx.token);\n      // Extend context with user data\n      return { ctx: { user } };\n    } catch {\n      return new Error('Invalid token');\n    }\n  }\n  \n  return false;\n});\n\n// Usage\nconst authenticatedProcedure = t.procedure\n  .use(shield({ query: { profile: withAuth } }))\n  .query(({ ctx }) => {\n    // ctx.user is now available and properly typed!\n    return { message: `Hello ${ctx.user.name}!` };\n  });\n```\n\n## 📚 Advanced Usage\n\n### Namespaced Routers\n\nOrganize permissions for complex router structures:\n\n```typescript\nconst permissions = shield<Context>({\n  // Nested router permissions\n  user: {\n    query: {\n      profile: isAuthenticated,\n      list: and(isAuthenticated, isAdmin),\n    },\n    mutation: {\n      update: isOwner,\n      delete: and(isAuthenticated, or(isOwner, isAdmin)),\n    },\n  },\n  \n  // Another namespace\n  posts: {\n    query: {\n      public: true,\n      drafts: isOwner,\n    },\n    mutation: {\n      create: isAuthenticated,\n      publish: and(isOwner, hasPublishPermission),\n    },\n  },\n});\n```\n\n### Configuration Options\n\nCustomize shield behavior:\n\n```typescript\nconst permissions = shield<Context>(\n  {\n    query: {\n      data: isAuthenticated,\n    },\n  },\n  {\n    // Allow external errors to be thrown (default: false)\n    allowExternalErrors: true,\n    \n    // Enable debug mode for development\n    debug: process.env.NODE_ENV === 'development',\n    \n    // Default rule for undefined paths (default: allow)\n    fallbackRule: deny,\n    \n    // Custom error message or Error instance\n    fallbackError: 'Access denied',\n    // or\n    fallbackError: new CustomError('Insufficient permissions'),\n  }\n);\n```\n\n### Error Handling\n\n```typescript\nconst permissions = shield<Context>({\n  mutation: {\n    deletePost: rule<Context>()(async (ctx, type, path, input) => {\n      const post = await getPost(input.id);\n      \n      if (!post) {\n        return new Error('Post not found');\n      }\n      \n      if (post.authorId !== ctx.user?.id && ctx.user?.role !== 'admin') {\n        return new Error('You can only delete your own posts');\n      }\n      \n      return true;\n    }),\n  },\n});\n```\n\n## 🎯 Examples\n\n### Complete Authentication Flow\n\n```typescript\nimport { initTRPC, TRPCError } from '@trpc/server';\nimport { shield, rule, and, or, not } from 'trpc-shield';\nimport jwt from 'jsonwebtoken';\n\ntype User = {\n  id: string;\n  email: string;\n  role: 'user' | 'admin' | 'moderator';\n  emailVerified: boolean;\n};\n\ntype Context = {\n  user?: User;\n  token?: string;\n};\n\n// Authentication rule with context extension\nconst authenticate = rule<Context>()(async (ctx) => {\n  if (ctx.user) return true;\n  \n  if (!ctx.token) {\n    return new Error('Authentication required');\n  }\n  \n  try {\n    const payload = jwt.verify(ctx.token, process.env.JWT_SECRET!) as any;\n    const user = await getUserById(payload.userId);\n    \n    if (!user) {\n      return new Error('User not found');\n    }\n    \n    // Extend context with user\n    return { ctx: { user } };\n  } catch {\n    return new Error('Invalid token');\n  }\n});\n\n// Authorization rules\nconst isAdmin = rule<Context>()(async (ctx) => ctx.user?.role === 'admin');\nconst isModerator = rule<Context>()(async (ctx) => ctx.user?.role === 'moderator');\nconst isEmailVerified = rule<Context>()(async (ctx) => ctx.user?.emailVerified === true);\n\n// Permission definitions\nconst permissions = shield<Context>({\n  query: {\n    // Public endpoints\n    publicPosts: true,\n    healthCheck: true,\n    \n    // Authenticated endpoints\n    profile: authenticate,\n    notifications: and(authenticate, isEmailVerified),\n    \n    // Admin endpoints\n    userList: and(authenticate, isAdmin),\n    analytics: and(authenticate, or(isAdmin, isModerator)),\n  },\n  \n  mutation: {\n    // Public mutations\n    register: not(authenticate), // Only unauthenticated users\n    login: not(authenticate),\n    \n    // Authenticated mutations\n    updateProfile: and(authenticate, isEmailVerified),\n    createPost: authenticate,\n    \n    // Admin mutations\n    deleteUser: and(authenticate, isAdmin),\n    banUser: and(authenticate, or(isAdmin, isModerator)),\n  },\n});\n\n// tRPC setup\nconst t = initTRPC.context<Context>().create();\n\nexport const middleware = t.middleware(permissions);\nexport const protectedProcedure = t.procedure.use(middleware);\n\n// Usage in router\nexport const appRouter = t.router({\n  profile: protectedProcedure\n    .query(({ ctx }) => {\n      // ctx.user is guaranteed to exist and be typed correctly\n      return {\n        id: ctx.user.id,\n        email: ctx.user.email,\n        role: ctx.user.role,\n      };\n    }),\n    \n  updateProfile: protectedProcedure\n    .input(z.object({ name: z.string() }))\n    .mutation(async ({ ctx, input }) => {\n      // User is authenticated and email verified\n      return await updateUser(ctx.user.id, { name: input.name });\n    }),\n});\n```\n\n### Resource-Based Permissions\n\n```typescript\nconst isResourceOwner = (resourceType: string) => \n  rule<Context>(`isOwnerOf${resourceType}`)(async (ctx, type, path, input) => {\n    const resource = await getResource(resourceType, input.id);\n    return resource.ownerId === ctx.user?.id;\n  });\n\nconst permissions = shield<Context>({\n  mutation: {\n    updatePost: and(authenticate, isResourceOwner('post')),\n    deleteComment: and(authenticate, or(\n      isResourceOwner('comment'),\n      isResourceOwner('post'), // Post owner can delete comments\n      isAdmin\n    )),\n  },\n});\n```\n\n## 🧪 Testing\n\ntRPC Shield is extensively tested with comprehensive coverage. Test your rules in isolation:\n\n```typescript\nimport { describe, it, expect } from 'vitest';\n\ndescribe('Authentication Rules', () => {\n  it('should allow authenticated users', async () => {\n    const ctx = { user: { id: '1', role: 'user' } };\n    const result = await isAuthenticated.resolve(ctx, 'query', 'profile', {}, {}, {});\n    expect(result).toBe(true);\n  });\n  \n  it('should extend context with user data', async () => {\n    const ctx = { token: 'valid-jwt-token' };\n    const result = await authenticate.resolve(ctx, 'query', 'profile', {}, {}, {});\n    expect(result).toEqual({ ctx: { user: expect.any(Object) } });\n  });\n});\n```\n\n## 🔒 Security Best Practices\n\n1. **Use `deny` as fallback** for sensitive applications:\n   ```typescript\n   shield(permissions, { fallbackRule: deny })\n   ```\n\n2. **Validate input in rules**:\n   ```typescript\n   const isOwner = rule<Context>()(async (ctx, type, path, input) => {\n     if (!input?.id) return new Error('Resource ID required');\n     // ... rest of logic\n   });\n   ```\n\n3. **Don't expose sensitive errors** in production:\n   ```typescript\n   shield(permissions, { \n     allowExternalErrors: process.env.NODE_ENV === 'development' \n   })\n   ```\n\n4. **Use specific error messages** for better UX:\n   ```typescript\n   const hasPermission = rule<Context>()(async (ctx) => {\n     if (!ctx.user) return new Error('Please log in to continue');\n     if (!ctx.user.emailVerified) return new Error('Please verify your email');\n     return true;\n   });\n   ```\n\n## 📖 API Reference\n\n### `shield(permissions, options?)`\n\nCreates a tRPC middleware from your permission rules.\n\n**Parameters:**\n- `permissions` - Object defining rules for queries and mutations\n- `options` - Configuration object\n\n**Options:**\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `allowExternalErrors` | `boolean` | `false` | Allow custom errors to bubble up |\n| `debug` | `boolean` | `false` | Enable debug logging |\n| `fallbackRule` | `Rule` | `allow` | Default rule for undefined paths |\n| `fallbackError` | `string \\| Error` | `\"Not Authorised!\"` | Default error message |\n\n### `rule(name?)(fn)`\n\nCreates a permission rule.\n\n**Parameters:**\n- `name` - Optional rule name for debugging\n- `fn` - Rule function `(ctx, type, path, input, rawInput, options) => boolean | Error | {ctx: object}`\n\n### Logic Operators\n\n- `and(...rules)` - All rules must pass\n- `or(...rules)` - At least one rule must pass  \n- `not(rule, error?)` - Rule must fail\n- `chain(...rules)` - Execute rules sequentially, all must pass\n- `race(...rules)` - Execute rules sequentially until one passes\n\n### Built-in Rules\n\n- `allow` - Always allows access\n- `deny` - Always denies access\n\n## 🤝 Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n### Development Setup\n\n```bash\ngit clone https://github.com/omar-dulaimi/trpc-shield.git\ncd trpc-shield\npnpm install\npnpm build\npnpm test\n```\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Inspired by [GraphQL Shield](https://github.com/maticzav/graphql-shield)\n- Built for the amazing [tRPC](https://trpc.io) ecosystem\n- Shield icon by [Freepik](https://www.flaticon.com/free-icons/shield) from Flaticon\n\n---\n\n<div align=\"center\">\n  <p>Made with ❤️ by the tRPC Shield team</p>\n  <p>\n    <a href=\"https://github.com/omar-dulaimi/trpc-shield/stargazers\">⭐ Star us on GitHub</a> •\n    <a href=\"https://github.com/omar-dulaimi/trpc-shield/issues\">🐛 Report Issues</a> •\n    <a href=\"https://github.com/omar-dulaimi/trpc-shield/discussions\">💬 Discussions</a>\n  </p>\n</div>\n\n<!-- Force GitHub README refresh -->\n","readmeFilename":"README.md"}