{"_id":"@dsolodky/types-4-strapi","_rev":"4-ca3a39f9fd725516fdc91c07764b7ed7","name":"@dsolodky/types-4-strapi","dist-tags":{"latest":"1.3.0"},"versions":{"1.1.28":{"name":"@dsolodky/types-4-strapi","private":false,"version":"1.1.28","description":"Typescript interface generator for Strapi 4 models","main":"./src/index.js","bin":{"t4s":"src/index.js"},"repository":{"type":"git","url":"git+https://github.com/swolf88/types-4-strapi.git"},"keywords":["strapi","typescript","types","generator"],"author":{"name":"SWolf"},"license":"ISC","homepage":"https://github.com/swolf88/types-4-strapi#readme","gitHead":"980d45df985d6ec6bd9d03a4621109cd894579e9","bugs":{"url":"https://github.com/swolf88/types-4-strapi/issues"},"_id":"@dsolodky/types-4-strapi@1.1.28","_nodeVersion":"16.13.2","_npmVersion":"8.1.2","dist":{"integrity":"sha512-SylQTKcRGTTWKB7/ZgfixEuXPlR8YIFTkwygYNAVjoN1O+WU7EGYjvqIZWeTJFPB2jOSwe1MnNUkrMdDwagpnQ==","shasum":"224c9bcb1673126ff258ca31a8e1544966a8e171","tarball":"https://registry.npmjs.org/@dsolodky/types-4-strapi/-/types-4-strapi-1.1.28.tgz","fileCount":8,"unpackedSize":21648,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuvERsR0dgW5w2wGMwpD6z3Gon5knZ4fCj1jfM8RpEMAIhAI8iWFA8tBZqfR7iCROWJs2CMrSA34LHyHSx6zkNvNyz"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjos95ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp/TQ//ZpoVP/SLdhyzTOQpVKJzVxI/0MO3VjXF4KenQ+remfHKD7gK\r\n0fFLe/BLhzOLTiCBz5wHbzmgC7Pq7ZUZW4/3vXfWRXvVDYmadK24AXx6bBEz\r\nl47zsZOfnsEsGG15ZdieIqPrBgV23lTNb8T3AVydaK0p6Mwhl7mZ1xbRqoSm\r\nFPUYYRtG/r5MuxpypvRMSDq8vSAlyueP9dJugzzapasz4tGv13LCQ1WwHUkU\r\nuZxiOkjcoNQl1RXaqmtRu3AYNkAEMgDIgCyHsw/Mk8Q7VOKZ3YUySHVMV+rH\r\nWE80A4QxFIyVB+3jTGWo4xPRjh/mYw5CxNzOSyfYs6C1RO3OLX4LKYGBkBJQ\r\nMUCARfo4cSDQQjpj9yPkVGiYN/KifwTZdm1B5WdN21322wnSaMBNIhIB7uh/\r\nm4kRjTE9m0XWh3UneFuvpNzewCLwuJJG2oho8dTY79tPbnMQfjUxa06Fq1Qn\r\nLp3ll5VxdX0Ju4sfyQQyIH+am96lelIjaeHqPOrSPUavg5FlHND76f3A6XPf\r\n7K0s4OzKU2X6IrBOADxhiuboAU7ts62t1L7oHK3U8m1iMd5jGNvV9glxhrvQ\r\nY+Fq4TeZ0KiOWNx3PzJ+9VlLJSKAaydjms99amHp9QOzHk6aCR0qEHSD7NLM\r\nQaQmgfX3GN3teQC5KYwwfZrQKycpjjI20QM=\r\n=zaEu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dsolodky","email":"dsolodky@gmail.com"},"directories":{},"maintainers":[{"name":"dsolodky","email":"dsolodky@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/types-4-strapi_1.1.28_1671614329234_0.16999251994757847"},"_hasShrinkwrap":false},"1.1.29":{"name":"@dsolodky/types-4-strapi","private":false,"version":"1.1.29","description":"Typescript interface generator for Strapi 4 models","main":"./src/index.js","bin":{"t4s":"src/index.js"},"repository":{"type":"git","url":"git+https://github.com/swolf88/types-4-strapi.git"},"keywords":["strapi","typescript","types","generator"],"author":{"name":"SWolf"},"license":"ISC","homepage":"https://github.com/swolf88/types-4-strapi#readme","gitHead":"ff6b4d1cdc15910a348cfe61a7b1eda13861948b","bugs":{"url":"https://github.com/swolf88/types-4-strapi/issues"},"_id":"@dsolodky/types-4-strapi@1.1.29","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-Gm0EEwX7cfWjtptUIEuJa1NuYrYxwx14Tc5Q3BalIjDuMz/Iv5GpwmbC3M8dibVWjBnjvYYjss9JQwwdzYM9Dw==","shasum":"dfae3c707c0d05e16e9acdb972372c95cbd1f74d","tarball":"https://registry.npmjs.org/@dsolodky/types-4-strapi/-/types-4-strapi-1.1.29.tgz","fileCount":8,"unpackedSize":21768,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFig/QfsxmI2rodU3LLA2FhlnmE8pg9duxpONwuXV/VdAiBmycWqeD/h7SYLDe1Inhe2IpSdED4PK84vaWw3CSAZCw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjotDZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpHwQ//XuFlpZU4/kFy/M/ETPV1rVIWfHUDvYtoOjK1Dmc/6UZVf5el\r\nTyC3oitd8Z1c2PsXPb/SOBehIxwYmUDdVxeMcA9onh7nmRW+xwaLYYS6UKpE\r\n3Asy07rp62RTZNEyKNh8VIeHx30aq+UG8XrbGB118dhwnxYx1sD2Ez37L8d3\r\nuuBZiSzqN+emYydriSjNSCMa5d2r6gVyB0lahSmVNHmnFxcV7dylLA+npiV/\r\n7J6FcClJaZYUi2jZs3IMY42s1u2MVRANELqxQZUIuydbZW8rephA/4bwDszW\r\nwFC1faYx5xDNoSI4JQAbtDxEkejxtGjSrzZO/x1rYAUk124DCh9fvWIitEH7\r\nZIkZADVZ9XRbPCjITtEQFgQ8egOfX35cSKu3RV2QBisWvKIULRvhaRRT23X1\r\nAuwPDNntBQY8VTIa5jzn6jf+Vsy0XHPQC2VjQgP5yjjmBBINFkbzguTGTgxQ\r\nV0Aux/kh2wowY9Gh2ANYMpCSpbIA7wXpoRWy+vS++I3v6mmIWv9ZGdh7Fo+e\r\nptv5s1YtUbSnK6KqjdrZENMvnDnB8hYVV8d2C/j9VGlD7VX9I/D1kSYIEKMj\r\nrdB40SZkiyzsaS0HG+y0v1JLZkJfFmeJseC4+XVZDTykMJ/RFoh78u87iK4f\r\nKEwPtpaLIX0rQ2DhT1SUZ9LwdREov/xIWnM=\r\n=t1xA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dsolodky","email":"dsolodky@gmail.com"},"directories":{},"maintainers":[{"name":"dsolodky","email":"dsolodky@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/types-4-strapi_1.1.29_1671614681568_0.7194332997929103"},"_hasShrinkwrap":false},"1.1.30":{"name":"@dsolodky/types-4-strapi","private":false,"version":"1.1.30","description":"Typescript interface generator for Strapi 4 models","main":"./src/index.js","bin":{"t4s":"src/index.js"},"repository":{"type":"git","url":"git+https://github.com/swolf88/types-4-strapi.git"},"keywords":["strapi","typescript","types","generator"],"author":{"name":"SWolf"},"license":"ISC","homepage":"https://github.com/swolf88/types-4-strapi#readme","gitHead":"279eaa15651672d5e8931db0e5aada3f96e50f4e","bugs":{"url":"https://github.com/swolf88/types-4-strapi/issues"},"_id":"@dsolodky/types-4-strapi@1.1.30","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-cpKFm6QEPsplK17tA7crQOheXiD1OVZDtdZlDket7f3dkykIJtojtB4iXNNDw3l6cmBav34Spo6+IJVNYE1ehw==","shasum":"886c7c196cb7e1fa99147e811792a0cb82dbb7e6","tarball":"https://registry.npmjs.org/@dsolodky/types-4-strapi/-/types-4-strapi-1.1.30.tgz","fileCount":8,"unpackedSize":21949,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTdWYyExa9v0geEcF7Dg7GsijLA9gRQkfiBXjxuGjlGwIgb2lKrxa9ZOihm/p3MegwfqFLLZvgwOuSSi6X6R2hms8="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjpWBYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSrQ/+PC6cuNLS2vaYOs77xMQ9diZ3TolJ9LwM7DSZt8MaKwvlk5f0\r\n1q6SvIuydRj/xklzP09oaCZpiqsy/+rLARNM3C8WIz9kdG1ga5v3PL0aPa6c\r\nHsEI9vWY0HKGhzT+3u8gT/TikHpnftDKqn9befzwnKz6Iy967aixk/QXVr6p\r\n9uDIsU9FVtQZSmCPR1hNYnqdbgCGgL2lIAojS1qsOgA6mtbJNbYZxDMaWCt/\r\nNONsJgG0rAd8uR6acoCShzf4Cn/0YG6DFZzqqbeZERoRz9HTryo9o6Isento\r\n/CkEIP5e3gJmyiizRB/z/TaYwyhzQ1jADa1IB4Hqx2K33ewUTG4k+F+yeiy6\r\nn+o8Z4acINpK0Ujdyq9shm8IBr3q1SByaSkcts06GO6Q6tBLlSpecOvDg4Sl\r\nmC3CDyHqLR16QYnMCU7YHZthuHwvq5wuNCdx/Mljcl7PYAX2jNuvDJE0t+sC\r\nTx5pS8sY/QwFRDksSK0KSmEZfE76HcPtlu+qV8tJVR7Ue4rYUW77Emiu5M6b\r\nFzykHWHyUgEyJIFBYNgtic4/XvhkJMoezx9MLZe9WMUk6LgXU1aivTzTsOzK\r\nUk8cqS861l+YIxjT/9LMPtvV3E27u7d7bSNMQbLNmCStnu/myZtg9xDcKDEa\r\nogmORst+Lifdmg27oRSKTq1kfKjqKg24znk=\r\n=NsSx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dsolodky","email":"dsolodky@gmail.com"},"directories":{},"maintainers":[{"name":"dsolodky","email":"dsolodky@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/types-4-strapi_1.1.30_1671782488293_0.8077707593058483"},"_hasShrinkwrap":false},"1.2.0":{"name":"@dsolodky/types-4-strapi","private":false,"version":"1.2.0","description":"Typescript interface generator for Strapi 4 models","main":"./src/index.js","bin":{"t4s":"src/index.js"},"repository":{"type":"git","url":"git+https://github.com/swolf88/types-4-strapi.git"},"keywords":["strapi","typescript","types","generator"],"author":{"name":"SWolf"},"license":"ISC","homepage":"https://github.com/swolf88/types-4-strapi#readme","gitHead":"2cb4d07c07ae7cda03ab3082dcadf4b9ce70b7c3","bugs":{"url":"https://github.com/swolf88/types-4-strapi/issues"},"_id":"@dsolodky/types-4-strapi@1.2.0","_nodeVersion":"16.18.1","_npmVersion":"8.19.2","dist":{"integrity":"sha512-qJZh+KaH22pTcPFPtj+BV7g0tbD6sQAKDswFjaHzrBxao/FXvWSa4BoKdPV/iDDENt+X7bONRHRhOuikKBTewg==","shasum":"fa9e38a0b86cd12fde66f450b26ca51f119cf807","tarball":"https://registry.npmjs.org/@dsolodky/types-4-strapi/-/types-4-strapi-1.2.0.tgz","fileCount":8,"unpackedSize":21934,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNDBy9PKatFk8G7RpSujG1/ERTeqzv7Pz6E2PcLh5XFQIgS5xXM7pQQ9wqXmTSoBllZV58u0Qfp0m9zbb1bfRVwJs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjrqPaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrpLA/+NMOei8X57srNyd9w0wiJySKLwbjpqmfhxJryzVxck6GNpegg\r\n4hqETIbpYhu8btjHaHfXTGFhpPwKT3a4sw7/Hisq20659rQbaNZjXDR4b7nJ\r\n0bYIjd5i2cg+0lEGehgEhgBSPHhIjhD5BcU7Df2WFqJvMY5MvmYp8eInBSEw\r\n+ZvhWR9uF4N8Dma++gQLX33+N9xKc3GYJWw4rjrLpwJR++AjyxQur+8Chqxx\r\neRwDjsdKwdQL/KOWXbRYhn1LR4AJmYKP525/rLsvMp9gQSz+RhbLfmWmcq0L\r\n0tiTIj1DTH0zykWEe4MzFrX9YCUi/H/7C4Fc0QEJw16/3egoV4eArZhO3zDT\r\n8PfAvwsCv3Oa2ApHk3DplSrHsLxniXVNOsGIA29FVdwo7E6oOl/MockZv9Z4\r\nBBaHdQPCTAqEHb2cc3kDlkW5ZEVqGllW2JpmVvbLktXox+8/g+Z1LdoXc/Hi\r\nUANpRwkOGZezWFDOIxn6O+Cz+5jwHYHdoMRgh9W2CTazEUorWTktDAk4+o4o\r\nNGkN8b/CNNGrJACHi7jdSiVZxfXHWSl+PwId0uzmbvS44fl2R3fuKm25YoF2\r\nHXAM/3K1+QN12id3yyf5QmSk/XoTus+8sv81e/HmJ0lbNERQZmKz8D0v3Agt\r\npiMzGCc6oY+m07fCjKmoOm5PSETvm/FT6+s=\r\n=e0QF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dsolodky","email":"dsolodky@gmail.com"},"directories":{},"maintainers":[{"name":"dsolodky","email":"dsolodky@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/types-4-strapi_1.2.0_1672389594130_0.07641795584582711"},"_hasShrinkwrap":false},"1.3.0":{"name":"@dsolodky/types-4-strapi","private":false,"version":"1.3.0","description":"Typescript interface generator for Strapi 4 models","main":"./src/index.js","bin":{"t4s":"src/index.js"},"repository":{"type":"git","url":"git+https://github.com/swolf88/types-4-strapi.git"},"keywords":["strapi","typescript","types","generator"],"author":{"name":"SWolf"},"license":"ISC","homepage":"https://github.com/swolf88/types-4-strapi#readme","gitHead":"f32c71586fbb89af074a46a7e00701660e4004f2","bugs":{"url":"https://github.com/swolf88/types-4-strapi/issues"},"_id":"@dsolodky/types-4-strapi@1.3.0","_nodeVersion":"16.19.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-WSxysm60N57peit2PW/C55Y43zIULlEjtK7zy1sEaqS+z3xHiIgD3bVa1SAmxLz/2fjqWwaaVGydFTKBQfnviQ==","shasum":"24d9f8ac5c1492efa244eb7fc4168f019f3d2a28","tarball":"https://registry.npmjs.org/@dsolodky/types-4-strapi/-/types-4-strapi-1.3.0.tgz","fileCount":8,"unpackedSize":22438,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF5hEukoM5AJH2ex277JtyaSpcVI4LvB+1GqggM8WbJGAiB706gCdCg8KRuRP+gGaAfkthLgjhFAHCUL+h+17z691Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGFcIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo/7g/9GflAv3saGGMdBbRkSEsH22xflnIAYz1qR3lwD4fPvVus7iT7\r\nAo8tBLUwqIZ/47PGEqeW3vVOjWm8wjEQBUXAQrS4rKXYiBZLShoFLANjECC+\r\nu4nl0BwcbiASVDrr94TN1n0WoB1/f/WjQPzoLCkm3sn4w4BKSGGgLXqzbtA1\r\nS2cXr0dU3aXccJr2a9fTyM51ESkQxRR8TssRB9rI84ZFv0hsIkEZtQjdoI1h\r\n9W9RaowOsgGDIap7Tk88VGOgADOUdQzkh8BrIW2N00kYYr8QxvAOv/deHOYC\r\nKywMZTNvu9NtEDCnKgnUa9Qpnm74PQ5CHZpurNfW39MqmeIkJjZ13gtkhRo2\r\nzDRa6p1lvU/mdiT3CQZxat5tvNeaRr1Gswm7WViyMLAgT9Zl2d+lb+1R414r\r\nY1OUPpeFpddcKTpS0QrZIalshcmJF9WkHfL7V0SU6P69apU6kX78aN9XUGYo\r\nbX81tov3I58S3QVUW5W7bAowki+JyD59MJCSEc5rN0kRoJruQs4cIHtkx7NB\r\npXosGFIlKhMhnpKePJKxUgrEch6FNwUgT8/vJPeHN31cMRwkw7+cEyE5gMYK\r\noCwGjm3Z/+hH2UyglCbHXw9izm4ox+4PRp5QvqQQf+Yw7xOGbcLPi2YPqlHh\r\nluTF5Bw+tKF00LIpFPM5Mwlwgo6sG04cHXo=\r\n=+by8\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dsolodky","email":"dsolodky@gmail.com"},"directories":{},"maintainers":[{"name":"dsolodky","email":"dsolodky@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/types-4-strapi_1.3.0_1679316744478_0.14760509145173661"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-21T09:18:49.161Z","1.1.28":"2022-12-21T09:18:49.399Z","modified":"2023-03-20T12:52:24.805Z","1.1.29":"2022-12-21T09:24:41.778Z","1.1.30":"2022-12-23T08:01:28.470Z","1.2.0":"2022-12-30T08:39:54.304Z","1.3.0":"2023-03-20T12:52:24.685Z"},"maintainers":[{"name":"dsolodky","email":"dsolodky@gmail.com"}],"description":"Typescript interface generator for Strapi 4 models","homepage":"https://github.com/swolf88/types-4-strapi#readme","keywords":["strapi","typescript","types","generator"],"repository":{"type":"git","url":"git+https://github.com/swolf88/types-4-strapi.git"},"author":{"name":"SWolf"},"bugs":{"url":"https://github.com/swolf88/types-4-strapi/issues"},"license":"ISC","readme":"# Types-4-Strapi\n\nTypescript interface generator for Strapi 4 models.\n\n## Install locally\n\n```bash\nnpm i --save @dsolodky/types-4-strapi\n```\n\n```bash\nyarn add @dsolodky/types-4-strapi\n```\n\n\nAdd t4s to your scripts:\n\n```json\n\"scripts\": {\n  \"develop\": \"strapi develop\",\n  \"start\": \"strapi start\",\n  \"build\": \"strapi build\",\n  \"strapi\": \"strapi\",\n  \"t4s\": \"t4s\"\n}\n```\n\nThen run with:\n\n```bash\nnpm run t4s\n```\n\n## Install globally\n\n```bash\nnpm i -g @dsolodky/types-4-strapi\n```\n\nor\n\n```bash\nyarn install @dsolodky/types-4-strapi\n```\n\n\nThen run with:\n\n```bash\nt4s\n```\n\n## Flat types\n\nFor some inscrutable reason, Strapi 4 returns objects where all the properties (aside from `id`) are wrapped into an `attributes` object. The resulting interfaces will look like this:\n\n```\n{\n  id: number;\n  attributes: {\n    username: string;\n    email: string;\n    provider: string;\n    confirmed: boolean;\n    blocked: boolean;\n    createdAt: Date;\n    updatedAt: Date;\n  }\n}\n```\n\nHowever, for some even more inscrutable reason, sometimes the same object is returned \"flattened\", without an `attributes` object. This is the case, for instance, for the `/api/users` endpoint, which returns an array of Users with the following structure:\n\n```\n{\n  id: number;\n  username: string;\n  email: string;\n  provider: string;\n  confirmed: boolean;\n  blocked: boolean;\n  createdAt: Date;\n  updatedAt: Date;\n}\n```\n\nThe same \"flat\" structure is also required when submitting the body of `POST` and `PUT` requests. Here is an example using `fetch`.\n\n```ts\n// correct\nawait fetch('https://project.com/api/users', {\n  method: 'POST',\n  body: JSON.stringify({\n    username: 'Jon Snow',\n    email: 'jon.snow@housestark.com',\n  }),\n});\n\n// incorrect\nawait fetch('https://project.com/api/users', {\n  method: 'POST',\n  body: JSON.stringify({\n    attributes: {\n      username: 'Jon Snow',\n      email: 'jon.snow@housestark.com',\n    },\n  }),\n});\n```\n\nIn these cases, you can use the entity types with suffix \"Flat\":\n\n```ts\nimport {Entity, FlatEntity} from 'types/Entity';\n\n///export FlatEntity = Entity['attributes'];\n```\n\n## CM types\n\nContent manager (CM) plugin stores its data in flattened way, so in order to let that code to be strongly typed, the CM_XXX types are being generated.","readmeFilename":"README.md"}