{"_id":"fake-entity-service","_rev":"27-672deaceed48c1a2593551dd2d69dd77","name":"fake-entity-service","dist-tags":{"latest":"0.10.2"},"versions":{"0.1.1":{"name":"fake-entity-service","version":"0.1.1","_id":"fake-entity-service@0.1.1","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"dist":{"shasum":"437962677e06c5ca4932b934720a2d757864cc92","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.1.1.tgz","fileCount":12,"integrity":"sha512-TmhfWYGEHDJWOa/vFq746zx60hpN3Mxz03x/dBA2YUpoGTSr9qvl0Ub5chpPIiS8MPsa3aizkP/Nz/JN4APliw==","signatures":[{"sig":"MEQCIG0SOQ//5qzVZorpbcR2AL98UlVBSDsLI1uSptzU6pEoAiB2kktXVqiY43j6dGRg2462kK5efDkgIP9qshad9ywjJw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61854,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjs+AKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqzMw//dQ6hgRUpKWNajwy0izzu5RDjamxN3XEljBgVyh3I0MxbUsj6\r\nBrHMlcWQyG6OybxwsqlXXiBZL1P8/jCOCx8vnv0UAt7YjqX81+kU4BHwQU05\r\nm5/CRsS9Lf1N0W+/Zmlr0L5wfmJLKYlzTmW4apACLKv5+aMyRUpGoIaCJc1y\r\nTt1QJFGA5aY9HuQZgCyEtI/HGnLjfuP1UeGRp6a0KaEYeZ0mrYxvdZO83nvn\r\n83fw4lrbHukn4OwpTtmOmSnEpNh/kd8nusQEdP70i0NYx8ELWn/3apYoG5VP\r\nq5teR4CrFxB+HML25UpDwIsiecGRVbXKHEdXraA8ZW/kNGcabAUxzOIY881g\r\nm4SMX/DbLYm5vhIAkx2Bqine+myM5CmeavEXOwxxFlJHKB6M0mZBvgukdF5h\r\npQ4AAfvWjBFloNZz3ygbWN+M6RQmYfhv3j83Tbg+Ig2vmfQ9DV0wgNoxC9N5\r\nwZHTuvtYhD+tC3ncm1/1Csl+7xp+/X8beUDAjyupatyiKVvoxfCJ3FUcPv95\r\nPyHFjcD/Xi+BuuB0gdttyOCG4Nq8bZhPqb3Fuur2VGHgi7Fv63iyVAsIEEpv\r\nW5wzQ0VCaQgUbk6ZsB51H3dc0DrykwQHQiI/v9GTmsNGJYhU5U6bxlauaTZH\r\nPRREt6TXKxcXinr3cLoWUjEmFmkdH4gXULY=\r\n=jVkU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"./dist/index.d.ts","gitHead":"fdb2c6d15b686bda64223fd60d47da0f3d77bab2","scripts":{"build":"tsc --sourceMap","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"_npmVersion":"8.19.2","description":"A fake entity service","directories":{},"_nodeVersion":"16.18.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^4.7.4","sequelize-typescript":"^2.1.5"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.1.1_1672732682607_0.9638504263452876","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"fake-entity-service","version":"0.2.0","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"_id":"fake-entity-service@0.2.0","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"dist":{"shasum":"5b624ad03150f1f0fbbd8aad0a5f666648710d67","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.2.0.tgz","fileCount":16,"integrity":"sha512-yFcx/WHCNICbLjs46nKXyF0edDN6o0SxDmBgfnFTGU99Pi1QvT5q+pJqeDmNbtmFxr/lDiJl/oNC2lLqU9ELeg==","signatures":[{"sig":"MEUCIQCxT7C9zDRNKNs8ho9PG2Rf6LhU1ahn/NC18+CSc83cHwIgNeJi/Z68Id0T4wWrYDSDiQ+IF4tueLzbz9A/Jzo2SAo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":79322,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjta/IACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqkWQ/+JwhQ7zg5vlXRCTMBRseoEmQEw/b+A1MW3aWpgHv8fGV6o8bo\r\nIRNQCaaTWDetSNoaddR2oN5TygitaAlAWAvGeRzCpF/Nn4xtCyqC+lxw5XKg\r\n8blN8BO8N11sZOkIdqtKIlLE40a/b11deSTZSXYns6UasONdldIm0h/wuji+\r\n4y5X6By3dVFvBdvR4RZQ2L9Hj8swFOU0V456pGc26/ZXExlNiiueekEhf0rv\r\nk/DhyTM85glNS8UFrKONM8KSzMzdvWvxrJxb85brXX0omcU2eQO85DAPU+CM\r\nOC53PIZkUHV2C1vdDUWBFUP9ClkfAQIoO49UnWM7TPxncy97V/KaDV7BjwPZ\r\nWTZdd/vfWxkD8zTfZbA5BkIHR/nZb7+/QKDGlckeMXt+i5TYLcQD8jOKLXb4\r\ni9sXkPnws7sdt4a6OVfVPqr4FzhC6lpKV6+KTCXxhU2/giv+FC7Bq7E07HTu\r\nJHe8Em5O9wd12qEQuaBLv+9/6goB7NCXRSuaqnMSU0O87aa7uGUQ2ichCQ6u\r\nmVeOffKs6baSkLIIInpENwklfMfjDZ94VP4qRHK08rCxFDT1E0Naok5HDnMX\r\nT1Ale4Wli3pCNDrbj8JgPq/1BLzKKgWatQyqeh7CBOUbEqnfhAS0ab5OHtT2\r\nG+VlC7kBBhC8IMFBS6qpUTDeRK6WgC8DKR8=\r\n=q8xy\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":"src","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":"16.17.1"},"gitHead":"fc6d6aae4a23a8544d306b8bde6feb780f16b7fb","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"_npmVersion":"8.19.2","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.18.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.2.0_1672851400721_0.4330459861526901","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"fake-entity-service","version":"0.3.2","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"_id":"fake-entity-service@0.3.2","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"dist":{"shasum":"cf6c04ad8f7dedf5d499b5106ee3445ebc621571","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.3.2.tgz","fileCount":24,"integrity":"sha512-HU/rWxoyYxr+ZSqM+jH2vgkplKwANVdYbDgfNslVUUdMXSOlSXS7ct9zNSjP6hh/WnZ0PeupDvMWV9Ohg5tbUA==","signatures":[{"sig":"MEUCIQCDweVnPg8zST14DkyWN3fFeQwWezFALOtIlbFppBNnggIgMFHOTP5Fizk7xmuDTROehonvsrJymnTv9NlsFook7xY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":157427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtfyYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrgrw//dRwC04XGIbCBZFNubCWxz5zv40Er9jepuj/ytqjDZoeY0mKy\r\nSpnM0UhXf14TiJp3BVsFkkejIwpYLxqkmlZNeqZ8e01dlEUhzMVPMKoT2dEj\r\nGFujyTL39JlLuJNFOPln9tvnKPjqrR8ucWfN2h5EIUGutJCK2GbqPwpMnc0S\r\nkfNgX6piV3Q/9imwWF9Uqmh5UKqwsYMVAjH1IPuc+DasbHv9iyBh/OlmO/6D\r\nHTrBH4VxTk+vXFMmjy7abD9YzPCJDoTpK/CPqqrhjiEqXuAikeOTd8AKiFdC\r\nZ1Jnm5fPRl1TPFtBNtvEnbNhU3JeMPdFWkdg5x3MDJ3hZNgcQIzsH2LtB2Ae\r\neJi/d8lABwmLn2JzlbeW9pJkgXLdbGbCsrm78nY+q8xUQpQdnq5Skt8ptgB/\r\n3nQY+s5uBs00UDxva/ttjH/OPsp/HhYVZ/TCjACLB5hyicQx82hBhUFXvXbM\r\nkBl9W+/VA3cnNLLXsmRMLpEnC14ReQvsQ5oc7lGqMWgRU4VlnsAkEpAnr27W\r\nAO7mLRovshYjtL45W1TgakpVMsCCNGO0FLN0f6+fGd+x4iRcVRSY4/9+SQ3+\r\nBUb+8Peat5WwYSmPMpzMXCUpy2RgadtL7ktUaSAVeUgJwgDwtBPCS3Tdpq78\r\nfm0/Dh8t9mKMJXq9GS6tGtyt9B5mxy7MkIA=\r\n=TmyG\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":"src","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":"16.17.1"},"gitHead":"87bfc110fb23bfc2cf6ac9d946b6900d1bba46fb","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"_npmVersion":"8.19.2","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.18.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.3.2_1672871064641_0.856198502802304","host":"s3://npm-registry-packages"}},"0.3.3":{"name":"fake-entity-service","version":"0.3.3","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"_id":"fake-entity-service@0.3.3","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"dist":{"shasum":"6d621da2f285fde90a1207a5f1f087b95ecc8dbc","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.3.3.tgz","fileCount":16,"integrity":"sha512-Ve+xqIJNFgIkta6VjNURPe+g8pU7WSRptUG90EJxlHkxOAmk09V7fgaF5oKMKvFEmPwOPbrN+b8sG81SBClmBw==","signatures":[{"sig":"MEUCIBFOdD5qd2Oy9yYWNk8q9CKdHZZMKWX2yym7/w4X6eYAAiEAlFayA6+Uia5XqpwUROoZHMpMjhCEMgJeVlgeCQ1sWSM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":147068,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtoKmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpA6xAApKjzFj8VASbt6PTzyC+kOpdWeZ8WJJm09si+NbSdgS6UlT63\r\na7hxV+w1rB14+UJxYroI7/7yhHweqyc5uXdAegJIuCerxEBAnMM6N5yVR3TU\r\n/GF+Ih0XoyLKr77I3Rvn7uAzoa7egbb6yOUdlUDCjPwB6Buy+XkiEWcvkeAD\r\nyfzb+B5GTwnPjJZRe/D5nNWJ5Oc+EOFLihVefCCR6H81cXzvEDCwjnLeOlnV\r\n3yu9hXjE6m3cyzWcM4LI0C55lG0rdGbk+Y1ahi8J6HywS81g6bXr2MEesuDX\r\nvWaGpoj38xVWZx+LCHhHB6ENADeFOxjzWKwAFX7bDKrRN0kPH3fxQY1MQWNA\r\n3aD6chJAy02jmJnNI8eyuBAHN9iCn7qPp11aqM3ROueUEcys9x4YOh1yyD1B\r\nuIZlguSgHkmxNYwP/7yvnI5LRF1bqB5hubmxJJeEJYApa25F5hU2uyRr3Csw\r\nGv4faL84akFi/UgNjDYoWipsHzUJDbFHBouEp+JrWSzv8tCBFlLi7yiNaM/0\r\nxo+Sn6jRx5DK0mzIV3I8FbICvm8/FNRY6JOk9aTH5ze0/0/BbEOwEEKjzLx9\r\n99idVD8JgMziIerWssKfW2ucmRFke0V40IbmK1h20JkenKNJrMl/CmN424/a\r\nUmVfXhgu3BfjKdGrMqDS2qEXqbfgHVQjWi4=\r\n=zxTJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":"tests","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":"16.17.1"},"gitHead":"0e49473b539e5b50d0dc0cc14c0ab9f243ccb4ad","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"_npmVersion":"8.19.2","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.18.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.3.3_1672905382438_0.3347447473212968","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"fake-entity-service","version":"0.4.0","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"_id":"fake-entity-service@0.4.0","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"dist":{"shasum":"0598565e8f75404716c1845dac52f9cbf9c7a477","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.4.0.tgz","fileCount":16,"integrity":"sha512-yrX2cb9bRaJoYbx8kaRnMRr2g4w+Kx7nC/6bBQvR5ZooSsqpzS6kfqp6wH2Uv1I7zEYTTn9AhFjsMi2d4pFHEA==","signatures":[{"sig":"MEQCIG6GI42chKejgCdZv5WDQx+nY+1DXXYblzYnmi93LceqAiBaFT3wn/FmKamIWoteTu+7YhMntDecF94fjApzvgRyJQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":150466,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjvAYUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoncg/9HveohoiBu+sMx+Ds6CIF5bewaVlGnZ88IbcpA4pGHMzs9B0v\r\nruTgUSUuOcG3SuIuzaxnYJK2h/ffZ5SS/CwPmT3WvxbJapmzgi7uAcgCStv8\r\nP+HQmMLl1ooD3EWhyXxe4Slp+094YZoKQKrMUkut+bgNEnsTO1V5Tuu4k0Cn\r\nyNHlBaujvARTwVPBIE/JJNtMSesMS7JfDmlofCT/v71XykGjFX+K/1eA3J+0\r\nTLgM4TT1IQcaoADdtunkrWb/9Lgjp9KYJvITvfHJAYhA+RwgKIFj+3yVP07b\r\n/GHu9ioLNzc6sE5WiY8O6DShlP988mtFdBqMAb2gqhlXC7mbi/kuy7reYAcg\r\nPHbCZ1/qbNhqavvJfXG7geNoxyI0OPN7qePp1TFMYIp0u/gwj6Z2HGato77I\r\nIIKGl8H/9THD1mtaB6IINxODdvgWM7apE7aojhCAEnUvMG+zwM3YPM5xeVsZ\r\nvs9052WfEFPWWK1rZCkcDPFOpoq2PZwKQZuDbaWec5AKUAbLLbC2iwsBoKj0\r\nQB7Zwvfh1GEMLdVDIsOuWESbsYhzHYI1XZXake1CsEQH9xxcTP2z6CJUFESB\r\nJAN5uYSkcdx2hmu/YeCHJ17rXWK7xAHdwLY9Gxr9F/NqoDYLNyJMVzyn9oeu\r\n71XnP6JzQitcwyEXpRDg+2vYewGdBRATne8=\r\n=EjGh\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":"tests","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":"16.17.1"},"gitHead":"3eea9905763f0361bc3f0dc93c51bb336edc184c","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"_npmVersion":"8.19.2","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.18.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.4.0_1673266707923_0.42049176932130594","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"fake-entity-service","version":"0.4.1","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"_id":"fake-entity-service@0.4.1","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"dist":{"shasum":"e98834de6ba2dd22371506bb71116c558321ada8","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.4.1.tgz","fileCount":16,"integrity":"sha512-fv7YycetPgezFrr3uxlpEjwoiT/g51EsJEufQigbC9EkIQqOnREiBOrfPsWuLavq2Ltt1oWZvsL3sz6KimifoA==","signatures":[{"sig":"MEYCIQCm+8+JVOenq19RtNlJ6G0VkV7t6GiGiNgXVEaPQVRtdQIhAJ/Uv2qOjUuZGfCBzEADfujeTOVsoClxv2cX6ci+ATJ+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":150467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCLtpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqaMg//Y0JSok6QFGmFju99ImpcvvFnmoIbSxkOaDwS1nYoz9mI7A64\r\njHLtBnme7NJWNSu2qg7KzjbUnzp1h3YT4QwDJMEnibiRTBMvBRZwbTvs918T\r\neyMjXMNAgMKyX9vp5GOsWYUcj02wT4L7aVcfNQkTna/zHDZUvyQsBIOdbeW/\r\nDzZI4cCU+XXtjTOeHulrwDTh774zRh5W+NxU/l3v1oZUjcmfBjMKk5axEVdj\r\nz8+19xnFDeeMM/X7czZj6LFAynOwT4aiHA7gKvsRItg95ywvFD6Mda/tmI6X\r\nN4Se7zftvnIl1VfZLdEHcG05Bb4gqb1BxyVBuwpA8h+5XrbkiBtB51eClOph\r\nS7Mwbi94K7O/9FudMGOUtxunC40WzHGkTByYr8JOT28W84JoOC9bsot1yjX5\r\n29+ys+isTC5+WgPGV+O7bKTmm8pWoWyXKV6o0CKkhctXYCk8nbPg7BYhI01S\r\nF6cNP2HnGbhLv+ZWgssRM70Tv25CWEaqfXK7MlPsIbwmTpxcK1VfJ9aEnKc9\r\nbuSIJVFeLj6ZZ+row4D1Yb2KJPF2I5OS43G78vcnry4vRU6Ddcuxn+dJjKU+\r\nsuTwSrky5QhsUkJ1UGu3raS813msHwK4njBVaOYzzW5mYwtqs/2ITsv8k4tX\r\n+Ob++SlvPuGD08xaVAcmRaT/D1QqLMH1MOY=\r\n=eDK5\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":"tests","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"28fbe0e5d2069ba35002294ded9153d669af8f1e","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"_npmVersion":"8.19.3","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.19.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.4.1_1678293865012_0.6572653531154256","host":"s3://npm-registry-packages"}},"0.4.2":{"name":"fake-entity-service","version":"0.4.2","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.4.2","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"18b8de360d9fceb26686efd33f390943bcd2cb6f","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.4.2.tgz","fileCount":16,"integrity":"sha512-j9cyx5+pXEQwzYLL2LyhHcpWmh+BZxCmf2+e04cszqdIqeSDQw/g+SRba6VG5wAs2hq7nh0ReXImnTtqaA2dRA==","signatures":[{"sig":"MEUCIDRKgA9TSyXCRDSteaSXGMfGuagQEsUT6XIamFiWtshlAiEAzXUdaY5dfo2NhQRbDHwYprL/5ja6aNWosrF9I9OEVYg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":150593,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHNJtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCSw/+NtmOz4qMh7rcp3JN6vp5Oy6RU7VQWSGZcp+jk1/PAXCg5KxR\r\nauFXJiG3yq3rpKgr3GxX5W792upNUDsBooy6Lm50SVmUvlDX80CEWNZXIeqq\r\niaZ/QywxdP2FwbKjC7td+l46CUvDkSfvMCbwiF8ai59pF45QWtbvBaHTi4fH\r\nd7ypEmIwjQ9G2zKZ/GnqvH4h1feWibltK1w/DhOILvJwmxd8ItXk0l6h/3Ry\r\nQuXR4ljqAJwbt5F7Yez2M6dIFZ+0OwQbTPJX26euIYX9tbQwtPnHS584RUAz\r\n8oPIPjhqA/2jVm2xBg1sZt2EVy6m28HYbX/sVHbHPfpbeJtr2JCDhrbV4DBV\r\ngjWf5aSQU0JWr9Cj6RDz/izqb1rwo+za+j+sadzIfpRZtRIUJGBW/pxq0pFO\r\nNWyjV/ngKG9aNPCNB2ifiX4yfZdyrzpbYObX7HuKmtdKMP1B5VUsPygsH/3a\r\nJ54ndrn3NLratBKg8mHFsS8dM0TLX/8rFIQmXyftwMlK1p1pucREJ5OvHten\r\nJqBIICYkbV6nT/CXC/7dq6eTstfCaxWP7FBgPDXg9+3B5m6x4cA3yIcSPLKf\r\nG+gJZaIByXkctP7972YIo6egMeAS7ClDPFw1nTieuWYAwRGPXDiI7AZL5+eF\r\nMYSpdmS5PPDhMTp94UR4dWnnuVZul36g39s=\r\n=wdvl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":"tests","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"3fcd45411df1f3bfadc85e368535894992928d91","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.3","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.19.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.4.2_1679610476830_0.6776863824726598","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"fake-entity-service","version":"0.5.0","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.5.0","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"031ea9acaa3bb36cd1a1e0b623cdc0257b2a1dc5","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.5.0.tgz","fileCount":16,"integrity":"sha512-6OjTSYtD2Yh7mfRrlymw+euo6C5gu8uu3hI5HgLt/02a4WSNYlK9Bl2ueFI4LDTeVbNllVSsqgvLRCwUq34NAg==","signatures":[{"sig":"MEUCIQCFcCxU5infQzDsOKW0Csmz9f7pojJrSlnXoh8TKqsXOwIgd3rgtqD7/5OHdh/CN1+QuNE+jK23tf6tqgRDNEZWJSA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153814},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":"tests","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"2f7e6501d2af9531a62ee7bc9d1b8f71c9fb878a","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.5.0_1691071841404_0.731159816252126","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"fake-entity-service","version":"0.6.0","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.6.0","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"78a15faace21140ca7d299c83231acb8bfb5e9f6","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.6.0.tgz","fileCount":16,"integrity":"sha512-Tp5M0II9pjUUIa1YSyT8z1Q9CTiGJynvPGVVoI/wvtuL4EP2aRhSuGDdoUphlnnsT4ML9lajT7ZrefdIzAyI6w==","signatures":[{"sig":"MEQCIBO07hN/casAaw2guAOw9oUynJ03Cdrwv2B0Fjd6Fo/+AiA2SUYdfnat+a6fkHly5TDWhschpvaIlqN5MnST0a5CFA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":164971},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":"tests","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"093b03acb2481c966aafeee7537be57915506162","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.6.0_1698515841932_0.4422434149392429","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"fake-entity-service","version":"0.6.1","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.6.1","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"820d4ceee2d50924dab142636870f270ea3a9807","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.6.1.tgz","fileCount":16,"integrity":"sha512-P1vIB0A/crbtq178yAEOl7Z25gpEXqON4KG41wmCQE11TUL4MBVp6W/no6QRGiIt7WbrwSEUe9HfqKe84RXAxA==","signatures":[{"sig":"MEUCIQC1sR9ghTMS234aLQ9j7/NBoPFvxyFuH/E8Tb0yAlEBvwIgIn18egbCQPxagwqRM8TVAFuIQFksheZ+Pc8pwEjpTo0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":165437},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":"tests","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"3e89d635db12717dcd78bafbaf7253e19c31a6dd","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.6.1_1698743066826_0.13863590368856515","host":"s3://npm-registry-packages"}},"0.7.0-alpha.1":{"name":"fake-entity-service","version":"0.7.0-alpha.1","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.7.0-alpha.1","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"4c082d967610dd8019510fa472725050c626cd42","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.7.0-alpha.1.tgz","fileCount":16,"integrity":"sha512-VzpFKV2Z3MfCSO7AytxXfow943EWXVapYq8hXTwwTqQfuYXLxf8+yAdAoxWNiDumxelJbtnkQd8rlH/HD2OECg==","signatures":[{"sig":"MEUCIQDfIQrakayBkczGki8xZkhA4OAcvQ4v++dDY6GZL432nwIgXGvonjM7mW6F99jNQAWbEaj2Db44GG5fDnTZo1/B4nM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":173322},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":"tests","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"724c5b6460737718ca59b3912e57fb5c6f958e5c","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.7.0-alpha.1_1699969640681_0.08365402773933539","host":"s3://npm-registry-packages"}},"0.7.0-alpha.2":{"name":"fake-entity-service","version":"0.7.0-alpha.2","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.7.0-alpha.2","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"ce472d31ddffed71591732da8f4604b2418238db","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.7.0-alpha.2.tgz","fileCount":16,"integrity":"sha512-MYTpE2tngn74D7Ycceh4a1hszOuxkuoaPiIrGp2mcDWgRf90YK/7AUA7bBp8jKYuNBTpxC4LvxGXLWYxkt0y/A==","signatures":[{"sig":"MEQCIGsPBHmIUwPPaU3ZLV8kzrXy+JKN2qtFE5VpGr15NkiNAiAMndTO2c+3e8elJuY8KY/B84v3ie0vBdCB9MTkJ4/nvA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":174968},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"dc69393ed834dadf892bb0adfd09f79d0f0b1d0b","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.7.0-alpha.2_1699981028491_0.9524704350803859","host":"s3://npm-registry-packages"}},"0.7.0-beta.1":{"name":"fake-entity-service","version":"0.7.0-beta.1","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.7.0-beta.1","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"0b35e8373e3d7a27348674f3bc8276dab35ee3f4","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.7.0-beta.1.tgz","fileCount":20,"integrity":"sha512-d+larBlxzeQwLibaHJ17jPOT+p1/oCwa/9oI1fUL80OjMeOVauxOFMyf9PMBp558/aC4j9l474nsjoIbn79riA==","signatures":[{"sig":"MEQCIB29Z6l/xdhS8qizeJbTCAvrS+Xuyx726LRTf1c2e8crAiBWtKZ2IeBJ8dHQkpZE0/rILfYehQyNRmEGyzvpzYp8EQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":188511},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"7b93646ac9eb2f12722bdecfb799302343e99f3a","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.7.0-beta.1_1700488344943_0.9513002399701129","host":"s3://npm-registry-packages"}},"0.7.0-beta.2":{"name":"fake-entity-service","version":"0.7.0-beta.2","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.7.0-beta.2","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"f90b80a2602b9d03949c723391ca9843d22366f0","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.7.0-beta.2.tgz","fileCount":20,"integrity":"sha512-qYyX0zEef9n57v1XgNGSBO1WZyLO1CNI8r/o0B4K0nIWajiCdCBcr4Uhfcu5ahAJ5RX/DUBlBctEFdGMKsJ27g==","signatures":[{"sig":"MEYCIQCyfhfLDbz+nkvPJk7VvweMk/US/iwQ/LLWBgeVrGpBNQIhAMdIeH9eKpNdkqNLrZjI+w3XYGsgxDMkhVWjEtSN7l7a","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":182879},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"b35d0d7df1fb57b1682707d61f6e62a1af44e34d","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.7.0-beta.2_1700732027351_0.749329962148386","host":"s3://npm-registry-packages"}},"0.7.0-beta.3":{"name":"fake-entity-service","version":"0.7.0-beta.3","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.7.0-beta.3","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"1adbec0e87ac2a665280f567737aaf2e4e85f46f","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.7.0-beta.3.tgz","fileCount":20,"integrity":"sha512-tEuORi9Em2TwaZbtCHfsa+SbBd2jk6alKpf4oFKPFiwZJWslT5Lh/DniNfH/gTrxHw7Rc9d9GBIMQ4WLS3T+8g==","signatures":[{"sig":"MEYCIQDPeTabs9fpu8NG4zxTONBBmu+ywRvLWqgebH/sdUIU0wIhALDaP+gpa7cKnsCr6CT449O7P4V8hPtrZuiaXKKESFSH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":183146},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"dc32240329f939849a2b9718a6a4fffb9322e270","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.7.0-beta.3_1700733188184_0.5997559310993963","host":"s3://npm-registry-packages"}},"0.7.0-beta.4":{"name":"fake-entity-service","version":"0.7.0-beta.4","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.7.0-beta.4","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"520a12e2d3bee219239132666a7b6230b5bec61e","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.7.0-beta.4.tgz","fileCount":20,"integrity":"sha512-zBtKuG4WqLq05lgxwr8J9AaAoJxo7IY5ioBmUFdiMaonRMdZlsz4RXFG/BO9dfftn5r8YWZtGGoeZ7GV3rTZww==","signatures":[{"sig":"MEYCIQCxJxhh4yHkdIJ/U3kIqaLc6Hycb2y+P8sUZMEOjqNRtgIhAO3jGnovqkOl6fD4IWVZ8MbEs6HINcHXakXP231cHe+V","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":185427},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"5ce4a1eafc614b2d7edfa6d336481442af3db063","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.7.0-beta.4_1700740992735_0.7222096710462746","host":"s3://npm-registry-packages"}},"0.7.0-beta.5":{"name":"fake-entity-service","version":"0.7.0-beta.5","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.7.0-beta.5","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"b4825358fe87144e1e740e24278b93cd330eebe7","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.7.0-beta.5.tgz","fileCount":20,"integrity":"sha512-l5ddWcct+gPjHYNUCQsuZJapFeU8ZwfIOyUKs3O+XzV1MKJKovlrRT8S5nc0H87W/WlQ6NtWD2CzHBeQBQ/ZCg==","signatures":[{"sig":"MEYCIQD8OSNsDoxq2Apq0LhTxR2YePTOk4pVRW2pqP29R4fShAIhAPnuGDlHTS+Pyi2aDSvb71aTF1tTijZ3GNrEAnNDvf5l","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":185668},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"992c54efd9283f84d66036a52f505c58c0f1ac65","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.7.0-beta.5_1700822860216_0.2262720883802165","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"fake-entity-service","version":"0.7.0","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.7.0","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"baa46ed081e2cf5d1af491d8132ae0694d400f30","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.7.0.tgz","fileCount":20,"integrity":"sha512-lNtcKYPJ/TGXNYKY+wROag0BqhncN18gUVUoWK7e58knhvUQvx7zcB3s6PuG7ATRpCYunVQO70C3lO1X/yQOzg==","signatures":[{"sig":"MEQCIFLYn4gAe02qfkTcEkjFkR82zBHe810CoHhg6GwL70WwAiBuTYP2Yy7iAXxKkK9VbH7V2e+LF9gcE6yzG5nBZLCaxg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":197547},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"aa24f4af6534540087781a7444b489a9ce5481c4","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.7.0_1705779465545_0.035788365565948776","host":"s3://npm-registry-packages"}},"0.7.3":{"name":"fake-entity-service","version":"0.7.3","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.7.3","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"f47be3e287d221f2f367358de9e97d88d856605e","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.7.3.tgz","fileCount":20,"integrity":"sha512-ZyHcohYinHaznd1qsZMPDEKNicZKn3qkwPBwQwoaQSPIGYzhkmshz7e3TKNIvT+jiEQsilz6TE39X2JRbcyscA==","signatures":[{"sig":"MEUCIHlAYAC20Cvc1Jz5sm+BEv6tWJiNIgNHG+gqvb911Oq2AiEAhwXoC65tlPkNaOMpdD4dK5VT3MhVW4FqYilFiilfpsU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":199627},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"4f6efc2dcb07eda342a239d27868c5470437db71","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.7.3_1714724230806_0.26951116747279036","host":"s3://npm-registry-packages"}},"0.7.5":{"name":"fake-entity-service","version":"0.7.5","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.7.5","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"4c97d71c30033b839c95fcec54ccd87bfe9a2a7b","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.7.5.tgz","fileCount":20,"integrity":"sha512-uSuyMaXxKexzOkl33zahwQJXpvz07uhjldpmdJFWNpMroqJNf1smw9LEFvorQDCdyYi1r8C9xLK/8b6R5EG0rg==","signatures":[{"sig":"MEQCICYmeUou0ac6MjVqFo4mdCema9dRZXEkL/0Wa91bHGJzAiA1aueTiudGuM+qeieQlfOdjkClqjLNbAJr9gwMyeUPhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201918},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"f8efd89fca1a53d2c2ef3e3c60bafeb023ff7b9d","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.7.5_1745060222316_0.8000140934877","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"fake-entity-service","version":"0.8.1","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.8.1","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"9594450cc807eaa1ca4902a6ab321ad9937eec1c","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.8.1.tgz","fileCount":20,"integrity":"sha512-zeRim/Eq/0doNvvPeJ2gOKY71uzyuj7pVzECMpZ4267pSJE4CqOzkpS7qpXcFJBMDGBrZYpIvdhW8Ag5x2JFrA==","signatures":[{"sig":"MEUCIQDAzHcd/a4TNv+rnx1+FoK6KkIBrOvNVpDojRKPWeQTAgIgLBkfb8WYXcURAFYqG6dqz3iifGFFQg6OLdPDdDOFD9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216258},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"6fb7a9316183f92eb67ed7b8129713de675dc41c","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.8.1_1745189821619_0.4268729984580979","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"fake-entity-service","version":"0.8.2","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.8.2","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"f6b50e798c0eb4ce6cbcbb5bf56dd6fb421bd22a","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.8.2.tgz","fileCount":20,"integrity":"sha512-sup07j37k90oMLGZczZ1jyUjfZC5+jx1bhW6eOCEQEOPHhQNy0DAoTTizFVPH8K9hQ8u5tHfCChba9nd03lWQA==","signatures":[{"sig":"MEUCICJaE46pW84Le/YTnlXVl5E1i9Mt7SWwDgse/isRDH7oAiEA7qG2PLQmvRZA5c6JtcnT3lnebZJYpwgGMpR1V86D328=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216376},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"gitHead":"64914f1106c4f96f3cc32ff553c7ecbf67ead1b8","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.8.2_1746636559205_0.19762127769130533","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"fake-entity-service","version":"0.9.0","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.9.0","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"e242a1fcedd63395e745d46aeb6103ecec23e4a9","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.9.0.tgz","fileCount":16,"integrity":"sha512-ESEWQU4q0N7M9I36yARzblNEz2w9UKIkj880ZxsNsKT69Bb7NKcWmSbBKi5cZVtXLYMC838rUefZ3tLVYLcaTQ==","signatures":[{"sig":"MEUCIQCshfbzIWWtY1n2tBUaMx1NyOPvmBRzdyBo3aTSCt0qRQIgYVw9mZ5mPqlbxp1Cz+YiYAjMkWGPWSBIe8DdPwX+yHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188210},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"exports":{".":"./dist/index.js","./typeorm":"./dist/typeorm-fake-entity.service.js","./sequelize":"./dist/sequelize-fake-entity.service.js"},"gitHead":"ed16a9a111b5de4ed6fb2ed5c0a3a380e86ae8e9","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"8.19.4","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^27.2.5","ts-jest":"^27.0.3","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.15.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^7.6.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"^2.1.2"},"peerDependencies":{"typeorm":"^0.3.0","sequelize":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.9.0_1746864236377_0.23150744513814225","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"fake-entity-service","version":"0.9.1","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.9.1","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"14e9583888d36ed6aab88868f5531afa4648675d","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.9.1.tgz","fileCount":16,"integrity":"sha512-ac2aBYMNtMKGNX/feeJbvJVk9LXYM+WJsEuHuvO6ohLSdAVo1ltHiFv5VExs9mOFBl5MtuvJjZmwTtGaSH9s7Q==","signatures":[{"sig":"MEUCIQCtkoBWp4Qtt820NOG4IFLieS6uu2a60HPmDNexnW/UcgIgfIXso6mkXzxFwBLZ3dxtiS3EtFwsjHh/LI+WWEwuf7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188223},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"exports":{".":"./dist/index.js","./typeorm":"./dist/typeorm-fake-entity.service.js","./sequelize":"./dist/sequelize-fake-entity.service.js"},"gitHead":"e9d9eff66d944dbdf64bb31e1bba430128de056c","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"10.9.2","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^29.7.0","ts-jest":"^29.3.2","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.29.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^9.7.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"2.1.6"},"peerDependencies":{"typeorm":"^0.3.0","sequelize":"6.29.0"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.9.1_1746870310707_0.5707795559483304","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"fake-entity-service","version":"0.9.3","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.9.3","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"98e6b072cdeac7f4e09d8ed39b377b832b6d37e2","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.9.3.tgz","fileCount":16,"integrity":"sha512-zV248m1GxLKrlSfbdUPtUYbyteD0zt+n8WHZCgG+PV3kDhMvc2RPGpD3JlkqRWu7S34frWkeiBkELfoZFfAXvA==","signatures":[{"sig":"MEQCIFxsWWbDqw66gorqv9WCtz1o57SSpPR2umXWS3XMFGdCAiBran+Hls+lRFeciYmVjqY4w2LLZZC1t5Jo/7hrIHtejw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190460},"jest":{"projects":[{"rootDir":"src","testRegex":".*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"exports":{".":"./dist/index.js","./typeorm":"./dist/typeorm-fake-entity.service.js","./sequelize":"./dist/sequelize-fake-entity.service.js"},"gitHead":"5ad723608101ca2f341017529d88b8bad56620da","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"10.9.2","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"22.15.0","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^29.7.0","ts-jest":"^29.3.2","ts-node":"^10.0.0","typeorm":"^0.3.11","sequelize":"^6.29.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^9.7.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"2.1.6"},"peerDependencies":{"typeorm":"^0.3.0","sequelize":"6.29.0"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.9.3_1747049182532_0.35117517911191","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"fake-entity-service","version":"0.10.1","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","_id":"fake-entity-service@0.10.1","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"homepage":"https://github.com/omvmike/fake-entity-service#readme","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"dist":{"shasum":"4ee66af9bb4ad77b689706111a690cfb9539b030","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.10.1.tgz","fileCount":16,"integrity":"sha512-EWIh20860HFEgGcQdkEM96BlDCSEfFOiuyR1Rwb9JOUXGCtP0QQ9zYs98kfcMmZ+Zp7uW//PUgWK/aPIRl1vCg==","signatures":[{"sig":"MEUCIQD9xxkkAtL0jKcDEawWqIEVgkOOnNdwfFKf+u06clBs6QIgPIk/NfNz1B/Bfie4kAJdE8wUuLciDiSKLgAT/HSR6mI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fake-entity-service@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":205836},"jest":{"projects":[{"rootDir":".","testRegex":"tests/.*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"maxWorkers":1,"displayName":"unit-tests","testEnvironment":"node","coverageDirectory":"../coverage","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]},{"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"displayName":"integration-tests","testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"],"moduleFileExtensions":["js","json","ts"]}]},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"exports":{".":"./dist/index.js","./typeorm":"./dist/typeorm-fake-entity.service.js","./sequelize":"./dist/sequelize-fake-entity.service.js"},"gitHead":"3e62cdd08cb3c3d2d9ce459c35976af0d936754d","scripts":{"seed":"npx sequelize-cli db:seed:all --env=local","test":"jest --coverage --detectOpenHandles","build":"tsc --sourceMap","migrate":"npx sequelize-cli db:migrate --env=local","version":"echo $npm_package_version"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:56937b96-4212-47dd-a1f2-3c30bf8b482b"}},"repository":{"url":"git+https://github.com/omvmike/fake-entity-service.git","type":"git"},"_npmVersion":"11.7.0","description":"A fake database entities service for testing","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"pg":"^8.8.0","jest":"^29.7.0","ts-jest":"^29.3.2","ts-node":"^10.0.0","typeorm":"^0.3.23","sequelize":"^6.29.0","ts-loader":"^9.2.3","typescript":"^4.3.5","@types/jest":"27.0.2","@types/node":"^18.11.18","sequelize-cli":"^6.4.1","tsconfig-paths":"^3.10.1","@faker-js/faker":"^9.7.0","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","reflect-metadata":"^0.1.13","sequelize-typescript":"2.1.6"},"peerDependencies":{"typeorm":"^0.3.23","sequelize":"6.29.0"},"_npmOperationalInternal":{"tmp":"tmp/fake-entity-service_0.10.1_1768217312737_0.9160705254442418","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"fake-entity-service","version":"0.10.2","description":"A fake database entities service for testing","author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/omvmike/fake-entity-service.git"},"scripts":{"build":"tsc --sourceMap","test":"jest --coverage --detectOpenHandles","version":"echo $npm_package_version","migrate":"npx sequelize-cli db:migrate --env=local","seed":"npx sequelize-cli db:seed:all --env=local"},"devDependencies":{"@faker-js/faker":"^9.7.0","@types/jest":"27.0.2","@types/node":"^18.11.18","@types/sequelize":"^4.28.11","@types/validator":"^13.7.10","jest":"^29.7.0","ts-jest":"^29.3.2","pg":"^8.8.0","reflect-metadata":"^0.1.13","sequelize":"^6.29.0","sequelize-cli":"^6.4.1","sequelize-typescript":"2.1.6","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typeorm":"^0.3.23","typescript":"^4.3.5"},"peerDependencies":{"sequelize":"6.29.0","typeorm":"^0.3.23"},"exports":{".":"./dist/index.js","./sequelize":"./dist/sequelize-fake-entity.service.js","./typeorm":"./dist/typeorm-fake-entity.service.js"},"main":"dist/index.js","jest":{"projects":[{"displayName":"unit-tests","moduleFileExtensions":["js","json","ts"],"rootDir":".","testRegex":"tests/.*\\.spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node","maxWorkers":1},{"displayName":"integration-tests","moduleFileExtensions":["js","json","ts"],"rootDir":".","testRegex":".*\\.int-spec\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"testEnvironment":"node","collectCoverageFrom":["**/*.(t|j)s"]}]},"engines":{"node":">=14.0.0"},"gitHead":"fb39541cdc52bb69a80d7d2c11086570f35795b9","types":"./dist/index.d.ts","_id":"fake-entity-service@0.10.2","bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"homepage":"https://github.com/omvmike/fake-entity-service#readme","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-77bu6uZAYo/lZWffe1vYycjmM33wRjtTRIXiHV1TRUwhgitK/UPSq7fsqBEQlrS7Qibjzleq79jcNcjkwgPUNw==","shasum":"a65df5a72c1c40af3d2baf214634a3c5cdba638e","tarball":"https://registry.npmjs.org/fake-entity-service/-/fake-entity-service-0.10.2.tgz","fileCount":16,"unpackedSize":205836,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/fake-entity-service@0.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCr7phhlF980jtv4KnS3jVy7fwnL2nzBs46MpDTqs/bfAIgczIqSh0YF79Ri+7bqWK4s1YSfuXLhDM7cnbSB6G/MjE="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:56937b96-4212-47dd-a1f2-3c30bf8b482b"}},"directories":{},"maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fake-entity-service_0.10.2_1768217639508_0.2145041273206576"},"_hasShrinkwrap":false}},"time":{"created":"2023-01-03T07:58:02.607Z","modified":"2026-01-12T11:34:00.023Z","0.1.1":"2023-01-03T07:58:02.808Z","0.2.0":"2023-01-04T16:56:40.905Z","0.3.2":"2023-01-04T22:24:24.782Z","0.3.3":"2023-01-05T07:56:22.606Z","0.4.0":"2023-01-09T12:18:28.041Z","0.4.1":"2023-03-08T16:44:25.202Z","0.4.2":"2023-03-23T22:27:57.046Z","0.5.0":"2023-08-03T14:10:41.592Z","0.6.0":"2023-10-28T17:57:22.145Z","0.6.1":"2023-10-31T09:04:26.982Z","0.7.0-alpha.1":"2023-11-14T13:47:20.877Z","0.7.0-alpha.2":"2023-11-14T16:57:08.713Z","0.7.0-beta.1":"2023-11-20T13:52:25.107Z","0.7.0-beta.2":"2023-11-23T09:33:47.508Z","0.7.0-beta.3":"2023-11-23T09:53:08.340Z","0.7.0-beta.4":"2023-11-23T12:03:12.978Z","0.7.0-beta.5":"2023-11-24T10:47:40.395Z","0.7.0":"2024-01-20T19:37:45.763Z","0.7.3":"2024-05-03T08:17:11.015Z","0.7.5":"2025-04-19T10:57:02.545Z","0.8.1":"2025-04-20T22:57:01.856Z","0.8.2":"2025-05-07T16:49:19.404Z","0.9.0":"2025-05-10T08:03:56.559Z","0.9.1":"2025-05-10T09:45:10.867Z","0.9.3":"2025-05-12T11:26:22.760Z","0.10.1":"2026-01-12T11:28:32.894Z","0.10.2":"2026-01-12T11:33:59.657Z"},"bugs":{"url":"https://github.com/omvmike/fake-entity-service/issues"},"author":{"name":"Mike Onofrienko","email":"mike.onofrienko@clockwise.software"},"license":"MIT","homepage":"https://github.com/omvmike/fake-entity-service#readme","repository":{"type":"git","url":"git+https://github.com/omvmike/fake-entity-service.git"},"description":"A fake database entities service for testing","maintainers":[{"name":"mike.onofrienko","email":"mike.onofrienko@clockwise.software"}],"readme":"# fake-entity-service\n\n<a href=\"https://www.npmjs.com/package/fake-entity-service\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/fake-entity-service\" alt=\"NPM Version\" /></a>\n<a href=\"https://www.npmjs.com/package/fake-entity-service\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/fake-entity-service\" alt=\"Package License\" /></a>\n\n`fake-entity-service` is a TypeScript library designed to simplify database data generation for testing purposes in Node.js applications. It provides a clean, flexible API to create test data for your database entities with support for relationships, states, and sequences.\n\nThe library is ORM-agnostic and currently supports Sequelize and TypeORM with full transaction support. While designed with [NestJS](https://nestjs.com/) in mind, it can be used with any framework or even without one.\n\nThis library is inspired by Laravel's [factory](https://laravel.com/docs/8.x/database-testing#introduction) so you can find some similarities.\nBut since it's a TypeScript library, it has quite different syntax.\n\n## Key Features\n\n- 🔄 **ORM Agnostic** - Works with both Sequelize and TypeORM\n- 🔑 **Composite Primary Key Support** - Full support for single and multi-column primary keys\n- 🔍 **Automatic Primary Key Detection** - Automatically detects primary keys from entity metadata\n- 🧩 **Relationship Support** - Easily define parent-child and nested relationships\n- 🧪 **Testing-Focused** - Designed specifically for integration and e2e tests\n- 🧹 **Automatic Cleanup** - Tracks and cleans up created entities\n- ⚙️ **Transaction Support** - Full transaction support with automatic error handling\n- 🔄 **State Management** - Define entity states and sequences\n- 🔧 **Callbacks** - Pre and post-creation hooks for fine-grained control\n\n\n## Installation\n\nInstall the package and your chosen ORM as a peer dependency:\n\nFor Sequelize:\n```sh\nnpm install fake-entity-service sequelize\n```\n\nFor TypeORM:\n```sh\nnpm install fake-entity-service typeorm\n```\n\n### Requirements\n\n| ORM | Minimum Version |\n|-----|-----------------|\n| TypeORM | `^0.3.23` (required for composite key bulk delete support) |\n| Sequelize | `6.29.0` |\n\n## Usage\n\n### Sequelize\nImport from the subpath:\n```ts\nimport { SequelizeFakeEntityService, getSequelizeInstance } from 'fake-entity-service/sequelize';\n```\n\n### TypeORM\nImport from the subpath:\n```ts\nimport { TypeormFakeEntityService, getTypeOrmDataSource } from 'fake-entity-service/typeorm';\n```\n\n> **Note:** Only the ORM you use needs to be installed. The package will not require the other ORM unless you import its service.\n\nTarget ORMs are Sequelize and TypeORM. So you need to import one of the libraries:\n\n```typescript\nimport { SequelizeFakeEntityService } from 'fake-entity-service/sequelize';\n```\nor \n```typescript\nimport { TypeOrmFakeEntityService } from 'fake-entity-service/typeorm';\n```\n\n### Transaction Support\n\nThe library provides transaction support for both TypeORM and Sequelize with automatic error handling and transaction rollback:\n\n```typescript\n// Using with an existing transaction\nawait dataSource.transaction(async (transactionEntityManager) => {\n  const user = await fakeUserService.create(\n    { firstName: 'John' },\n    transactionEntityManager\n  );\n  \n  const posts = await fakePostService.createMany(\n    3,\n    { userId: user.id },\n    transactionEntityManager\n  );\n});\n```\n\n#### Automatic Error Handling\n\nBoth TypeORM and Sequelize implementations include built-in error handling:\n\n```typescript\n// Manual transaction management with automatic rollback on error\nconst transaction = await sequelize.transaction();\ntry {\n  const user = await fakeUserService.create(\n    { firstName: 'John' },\n    transaction\n  );\n  \n  // If this operation fails, the transaction will be automatically rolled back\n  const posts = await fakePostService.createMany(\n    3, \n    { userId: user.id },\n    transaction\n  );\n  \n  await transaction.commit();\n} catch (error) {\n  // The service will handle rollback automatically if needed\n  throw error;\n}\n```\n\nThe services use a `withTransaction` helper method internally that ensures proper error handling and transaction management, making your tests more robust and less prone to data inconsistencies.\n\nFor more details, see the [Transactions documentation](docs/transactions.md).\n\n\n### How to create a new fake entity service\n\nTarget framework is NestJS but the code is framework agnostic.\n\nTo implement a new entity service, extend the `SequelizeFakeEntityService` class for your entity model.\nIf you use TypeORM, just replace `SequelizeFakeEntityService` with `TypeOrmFakeEntityService` for your entity model\nand, of course, your `User` model should be a TypeORM model.\n\nLet's assume that you have a `User` Sequelize model and you want to create a fake user service for it.\nThe aim is to create a new users easily in your tests.\n\nAt first you need to describe a new service class.\nCreate a new file `fake-user.service.ts` with the content below.\n\nTo make it with NestJS, you need to inject the model repository into the constructor:\n```typescript\nimport {faker} from '@faker-js/faker';\nimport {SequelizeFakeEntityService} from \"fake-entity-service/sequelize\";\nimport {InjectModel} from \"@nestjs/sequelize\";\nimport {User} from \"../../src/entities\";\n\n@Injectable()\nexport class FakeUserService extends SequelizeFakeEntityService<User> {\n  constructor(\n    @InjectModel(User)\n    public repository: typeof User,\n  ) {\n    super(repository)\n  }\n\n    setFakeFields(): Partial<User> {\n        const seed = String(Math.random() * 100000);\n        const name = faker.name.firstName() + seed\n        return {\n            email: faker.internet.email(name),\n            firstName: faker.name.firstName(),\n            lastName: faker.name.lastName(),\n            password: 'password',\n            roleId: 1,\n        };\n    }\n}\n```\n\nWhile without NestJS, you need to pass the model repository to the constructor:\n\n```typescript\nexport class FakeUserService extends SequelizeFakeEntityService<User> {\n    constructor(\n        public repository: typeof User,\n    ) {\n        super(repository)\n    }\n\n    setFakeFields(): Partial<User> {\n        const seed = String(Math.random() * 100000);\n        const name = faker.name.firstName() + seed\n        return {\n            email: faker.internet.email(name),\n            firstName: faker.name.firstName(),\n            lastName: faker.name.lastName(),\n            password: 'password',\n            roleId: 1,\n        };\n    }\n}  \n```\n\nAdditionally to `constructor` method you usually want to describe `setFakeFields` method to generate fake data.\nThis method is describes default values for the entity fields.\nYou can override these values in the `create` and `createMany` methods later to generate specific data for your tests.\nHowever you can skip this method. \nIn this case you need to pass all required fields to the `create` and `createMany` methods.\n\nIt's convenient to use some data generation library like `faker-js` to generate fake data for your tests but you can \nuse any other library or even write your own data generation code.\nIt's also possible to describe nested entities and parent entities. See below.\n\n#### create a new fake entity service for TypeORM example\n\n```typescript\nimport {Repository} from \"typeorm\";\n\nexport class FakeUserService extends TypeormFakeEntityService<User> {\n    constructor(\n        public repository: Repository<User>,\n    ) {\n        super(repository)\n    }\n\n    setFakeFields(): Partial<User> {\n        const seed = String(Math.random() * 100000);\n        const name = faker.name.firstName() + seed\n        return {\n            email: faker.internet.email(name),\n            firstName: faker.name.firstName(),\n            lastName: faker.name.lastName(),\n            password: 'password',\n            roleId: 1,\n        };\n    }\n\n}\n```\nKey difference that we're injecting TypeORM repository instead of Sequelize model.\n\n\n\n### How to use a fake entity service with NestJS and Sequelize\n\nOkay, now you have a `FakeUserService. How to use it in your tests?\n\nFor NestJS you need to add your service to the module.\nBut you can't add it to the main module because you typically don't need it in production.\n\nSo you need to create a new file `fake-entity.module.ts` with the content below:\n```typescript\n@Module({\n    imports: [\n        SequelizeModule.forFeature([\n            User,\n        ]),\n    ],\n    providers: [\n        FakeUserService,\n    ],\n})\nexport class FakeEntitityModule {}\n```\nThen you can use `FakeEntitiesModule` in your tests by importing it into your test module:\n\nCreate a new file `fake-user.service.spec.ts` with the content below:\n```typescript\nlet fakeUserService: FakeUserService;\n\nbeforeAll(async () => {\n    const appModule = Test.createTestingModule({\n        imports: [AppModule, FakeEntitiesModule],\n    });\n    app = await appModule.createNestApplication();\n    await app.init();\n\n    fakeUserService = module.get<FakeUserService>(FakeUserService);\n});\n\nit('should create a new user', async () => {\n    const user = await fakeUserService.create();\n    expect(user).toBeDefined();\n});\n\nit('should create a new user with specific fields', async () => {\n    const user = await fakeUserService.create({firstName: 'John'});\n    expect(user.firstName).toEqual('John');\n});\n\nit('should create three users with the role customer', async () => {\n    const users = await fakeUserService.createMany(3, {roleId: Role.CUSTOMER});\n    expect(users.length).toEqual(3);\n    expect(users[0].roleId).toEqual(Role.CUSTOMER);\n});\n```\n\n### How to use a fake entity service for Sequelize without NestJS\nWe assume that we already have User model and FakeUserService class.\n\nCreate a new file `fake-user.service.spec.ts` with the content below:\n```typescript\nlet fakeUserService: FakeUserService;\n\nbeforeAll(async () => {\n    const sequelize = new Sequelize({\n        database: 'test-db',\n        dialect: 'postgres',\n        username: 'tester',\n        password: 'test',\n        models: [User],\n    });\n\n    fakeUserService = new FakeUserService(sequelize.models.User as typeof User);\n});\n\nit('should create a new user', async () => {\n    const user = await fakeUserService.create();\n    expect(user).toBeDefined();\n});\n\nit('should create a new user with specific fields', async () => {\n    const user = await fakeUserService.create({firstName: 'John'});\n    expect(user.firstName).toEqual('John');\n});\n\nit('should create three users with the role customer', async () => {\n    const users = await fakeUserService.createMany(3, {roleId: Role.CUSTOMER});\n    expect(users.length).toEqual(3);\n    expect(users[0].roleId).toEqual(Role.CUSTOMER);\n});\n```\n\nYou can find more examples in the `tests` folder of the repository.\n\n\n\n### How to use a fake entity service with NestJS and TypeORM\n\nWe assume that we already have User model and FakeUserService class.\n\nFor NestJS you need to add your service to the module.\n\nSo you need to create a new file `fake-entity.module.ts` with the content below:\n```typescript\n@Module({\n    imports: [\n        TypeOrmModule.forFeature([\n            User,\n        ]),\n    ],\n    providers: [\n        FakeUserService,\n    ],\n})\nexport class FakeEntitityModule {}\n```\nThen you can use `FakeEntitiesModule` in your tests by importing it into your test module:\n\nCreate a new file `fake-user.service.spec.ts` with the content below:\n```typescript\nlet fakeUserService: FakeUserService;\n\nbeforeAll(async () => {\n    const appModule = Test.createTestingModule({\n        imports: [AppModule, FakeEntitiesModule],\n    });\n    app = await appModule.createNestApplication();\n    await app.init();\n\n    fakeUserService = module.get<FakeUserService>(FakeUserService);\n});\n\nit('should create a new user', async () => {\n    const user = await fakeUserService.create();\n    expect(user).toBeDefined();\n});\n\nit('should create a new user with specific fields', async () => {\n    const user = await fakeUserService.create({firstName: 'John'});\n    expect(user.firstName).toEqual('John');\n});\n\nit('should create three users with the role customer', async () => {\n    const users = await fakeUserService.createMany(3, {roleId: Role.CUSTOMER});\n    expect(users.length).toEqual(3);\n    expect(users[0].roleId).toEqual(Role.CUSTOMER);\n});\n```\n\n### How to use a fake entity service for TypeORM without NestJS\n\nWe assume that we already have User model and FakeUserService class.\n\nCreate a new file `fake-user.service.spec.ts` with the content below:\n```typescript\nconst PostgresDataSource = new DataSource({\n    type: 'postgres',\n    database: 'test-db',\n    username: 'tester',\n    password: 'test',\n    synchronize: false,\n    entities: [User],\n});\nlet fakeUserService: FakeUserService;\n\nbeforeAll(async () => {\n    await PostgresDataSource.initialize();\n    const userRepo = PostgresDataSource.getRepository(User);\n    fakeUserService = new FakeUserService(userRepo);\n});\n\nit('should create a new user', async () => {\n    const user = await fakeUserService.create();\n    expect(user).toBeDefined();\n});\n\nit('should create a new user with specific fields', async () => {\n    const user = await fakeUserService.create({firstName: 'John'});\n    expect(user.firstName).toEqual('John');\n});\n\nit('should create three users with the role customer', async () => {\n    const users = await fakeUserService.createMany(3, {roleId: Role.CUSTOMER});\n    expect(users.length).toEqual(3);\n    expect(users[0].roleId).toEqual(Role.CUSTOMER);\n});\n```\n\nYou can find more examples in the `tests` folder of the repository.\n\n\n## Features\n\n### Provide custom fields\n\nAs you can see in the examples above, you can provide custom fields for your entity in the `create` and `createMany` methods.\n```typescript\nconst user = await fakeUserService.create({firstName: 'John', lastName: 'Smith'});\n```\nThis code will create a new user with firstName: John and lastName: Smith.\n\nThis values will override default values provided by `setFakeFields` method as well as values provided by `addStates` method described below.\n\nThe same way you can provide custom fields for `createMany` method:\n```typescript\nconst users = await fakeUserService.createMany(3, {firstName: 'John'});\n```\nThis code will create 3 users with firstName: John and other fields generated by `setFakeFields` method.\n\n\n### Create related entities\n\nUsually your entities have relations with other entities and you need to create them together.\nFor example, you have `User`, `Post` and `Comment` models. \nEvery user has many posts and every post has many comments\nas well as every post belongs to a user and every comment belongs to a post.\n\nORMs usually provide a way to describe these relations in the terms like `hasMany`, `belongsTo`, `hasOne` etc.\n\nBut from the database entity creation point of view, you need to create a user, then create a post and then create a comment.\nAnd you cannot create a comment without having a post.\nThat's why we mostly interested in the sequence of entity creation.\nThe library allows you to describe this sequence explicitly using `withParent` and `withNested` methods.\n- withParent - describes a parent entity that your current entity depends on. \n> This parent entity will be created before your current entity and will be attached to it.\n- withNested - describes a nested entity that depends on your current entity.\n> This nested entity will be created after your current entity and will be attached to it.\n\nTo attach entities you usually need to specify a foreign key.\nThe library uses the following convention to detect foreign keys:\n```json\n{\n  \"parent\": \"<parent entity property name>\",\n  \"nested\": \"<nested entity property name>\"\n}\n```\nSo parent field is usually a primary key of the parent entity and nested field is usually a foreign key of the nested entity.\n\nYou can describe these relations in your entity service class like below:\n```typescript\nexport class FakePostService extends SequelizeFakeEntityService<Post> {\n    constructor(\n        public repository: typeof Post,\n    ) {\n        super(repository)\n    }\n\n    setFakeFields(): Partial<Post> {\n        return {\n            message: faker.lorem.sentence()\n        }\n    }\n\n    withParentUser(fakeUserService: FakeUserService, each = false, userFields?: Partial<Post>): FakePostService {\n        return this.withParent(fakeUserService,\n            {\n                parent: 'id',\n                nested: 'userId'\n            },\n            each,\n            userFields) as FakePostService;\n    }\n\n    withComments(fakeCommentService: FakeCommentService, count = 1, commentFields?: Partial<Comment>): FakePostService {\n        return this.withNested(\n            fakeCommentService,\n            {\n                parent: 'id',\n                nested: 'postId'\n            },\n            count,\n            commentFields) as FakePostService;\n    }\n\n\n}\n```\nand use it like below:\n\n```typescript\nconst posts = await fakePostService\n    .withParentUser(fakeUserService.asRole(RoleIds.CUSTOMER))\n    .withComments(fakeCommentService, 2)\n    .createMany(5);\n```\nThis code should create 5 posts but since posts depend on users as parent entities \nit will create user entities first and then create posts and attach them to the users.\n\nYou can notice that withParentUser method has `each` parameter set to false.\nThat means that it will create only one user and attach all posts to this user.\nIf you need to create a new user for each post, you need to set `each` parameter to true.\n\nThen it creates 2 comments for each of the five posts.\n\n#### Many-to-many relations\nMany-to-many relations are a bit more complicated because they require a third table to store the relation.\nIt's not covered by relations convention described above.\nSo you need to describe it with creation one of two entities separately and then attach them to each other.\n\nBut if you use Sequelize, you can use `Sequelize's relations with the library.\nSee [Sequelize specific features](#sequelize-specific-features) section below.\n\n\n### States\n\nYou might need to describe some mutations of your entity.\nFor example, you need to create a user with a specific role.\n\nYou can use `addStates` method to describe these mutations.\nFor example you can describe `asAdmin` method for your `FakeUserService` class like below:\n```typescript\nexport class FakeUserService extends SequelizeFakeEntityService<User> {\n   // constructor and other methods\n   // ... \n    \n    asAdmin(): FakeUserService {\n        return this.addStates({roleId: Roles.ADMIN});\n    }\n}\n```\n\nand then use it like below:\n```typescript\nconst users = await fakeUserService\n    .asAdmin()\n    .createMany(5);\n```\n\nAs a result you will get 5 users with admin role.\n\n\n\n### Sequences\n\nSometimes you need to create entities with different but predefined sets of values.\n\nFor example, you need to create 5 users with different names.\n\nYou can also use `addStates` method to create a sequence of entities with different values for several fields:\n```typescript\nconst users = await fakeUserService\n    .addStates([\n        {firstName: 'John', lastName: 'Smith'},\n        {firstName: 'Mike', lastName: 'Brown'},\n        {firstName: 'Bob', lastName: 'White'},\n        {firstName: 'Alice', lastName: 'Black'},\n        {firstName: 'Kate', lastName: 'Green'},\n    ])\n    .createMany(5);\n```\nThis code will create 5 users with names: John Smith, Mike Brown, Bob White, Alice Black, Kate Green.\n\nIf you specify less than 5 states, the library will loop them to create 5 users you requested with createMany method.\n\nIf you specify more than 5 states, the library will create only 5 users with the first 5 states.\n\nYou can also provide a function to generate array of states dynamically:\n```typescript\nconst users = await fakeUserService\n    .addStates(() => {\n        const states = [];\n        for (let i = 0; i < 5; i++) {\n            states.push({firstName: faker.name.firstName(), lastName: faker.name.lastName()});\n        }\n        return states;\n    })\n    .createMany(5);\n```\n\nIn advance use addFieldSequence() method to create a sequence of entities with different values for one field:\n```typescript\nconst users = await fakeUserService\n    .addFieldSequence('firstName', ['John', 'Mike', 'Bob', 'Alice', 'Kate'])\n    .createMany(5);\n```\n\n\n### Cleanup created entities\n\nThe library remembers all created entities primary keys and provides a `cleanup` method to delete them.\n\n```typescript\nawait fakeUserService.cleanup();\n```\nthis code will delete all users created by the `fakeUserService` service.\n\n#### Primary keys\n\nThe library automatically detects primary keys from your entity metadata for both TypeORM and Sequelize.\n\n**Automatic Primary Key Detection:**\n- **TypeORM**: Reads `@PrimaryColumn` and `@PrimaryGeneratedColumn` decorators from entity metadata\n- **Sequelize**: Uses the model's `primaryKeyAttributes` property\n- **Composite Keys**: Full support for multi-column primary keys in both ORMs\n\nThe library tracks created entities using their primary key values and provides cleanup functionality:\n\n```typescript\n// For single primary key entities\nconst users = await fakeUserService.createMany(5);\nawait fakeUserService.cleanup(); // Deletes all created users\n\n// For composite primary key entities  \nconst followers = await fakeFollowerService.createMany(3, {\n  userId: 1,\n  followerId: 2\n});\nawait fakeFollowerService.cleanup(); // Handles composite key cleanup\n```\n\n**Working with Composite Primary Keys:**\n\n```typescript\n// Find entity by composite key\nconst follower = await fakeFollowerService.findByCompositeKey({\n  userId: 1,\n  followerId: 2\n});\n\n// Check if entity has composite primary key\nif (fakeFollowerService.hasCompositeId()) {\n  console.log('Entity uses composite primary key');\n  console.log('Key fields:', fakeFollowerService.getIdFieldNames());\n}\n```\n\n**Manual Override (if needed):**\nWhile automatic detection works for most cases, you can override the primary key fields:\n\n```typescript\n// TypeORM\nexport class FakeUserService extends TypeormFakeEntityService<User> {\n    public idFieldNames = ['uuid']; // Override detected primary keys\n    // ...\n}\n\n// Sequelize  \nexport class FakeUserService extends SequelizeFakeEntityService<User> {\n    public idFieldNames = ['customId']; // Override detected primary keys\n    // ...\n}\n``` \n\n### Callbacks\n\nYou can use `afterMakingCallback` and `afterCreatingCallback` methods to describe callbacks.\n\n`afterMakingCallback` is called after the entity is prepared but before it is saved to the database.\n> Thus, you can use it to modify the entity right before it is saved to the database \n> but after all other modifications (Custom fields, States, Foreign keys) already applied.\n\nfor example, you can use it to set a password for the user:\n```typescript\nconst users = await fakeUserService\n    .afterMakingCallback(async (user, index) => {\n        user.password = await bcrypt.hash('password', 10);\n        return user;\n    })\n    .createMany(5);\n```\n\n\n`afterCreatingCallback` is called after the entity is saved to the database.\n> Thus, you can use it to modify the result value returned by the `create` and `createMany` methods\n> or to do some additional actions after the entity is saved to the database.\n\nfor example, you can use it to reload the entity with all relations after all nested entities are created:\n```typescript\nconst posts = await fakePostService\n    .withParentUser(fakeUserService.asRole(RoleIds.CUSTOMER))\n    .withComments(fakeCommentService, 3)\n    .afterCreatingCallback(async (post, index) => {\n        return post.reload({\n            include: [{model: Comment}, {model: User}],\n        });\n    })\n    .createMany(2);\n```\n\n\n## Cloning Services for Isolated Test Data Generation\n\n### The `clone()` Method\n\nThe `clone()` method allows you to create a new instance of your fake entity service with the same repository, but with empty state. This is especially useful when you want to:\n\n- **Isolate state**: Each clone tracks its own created entities and configuration, so changes in one clone do not affect others.\n- **Run parallel or branched test scenarios**: You can configure each clone independently (e.g., different states, nested entities, or field sequences), enabling complex setups in a single test or across multiple tests.\n- **Reuse and extend configuration**: Start from a base service and branch off with different behaviors or data generation strategies without cross-contamination.\n- **Clean up test data precisely**: Since each clone tracks its own entities, you can clean up only what was created by a particular clone.\n\n#### Example Usage\n\n```typescript\nconst baseService = new FakeUserService(UserRepository);\nconst cloneA = baseService.clone().addStates([{ firstName: 'Alice' }]);\nconst cloneB = baseService.clone().addStates([{ firstName: 'Bob' }]);\n\nawait cloneA.create(); // Creates a user 'Alice' in cloneA\nawait cloneB.create(); // Creates a user 'Bob' in cloneB\n\n// Entities and configuration in cloneA and cloneB are isolated from each other and from baseService.\n```\n\n> **Note:** The `clone()` method assumes your service constructor accepts a repository as the first argument and that a `repository` property exists. If your subclass uses a different signature, override `clone()` accordingly.\n\n\n## ORM-Specific Features\n\n### Sequelize Features\n- **Automatic Primary Key Detection**: Uses Sequelize's model `primaryKeyAttributes` property to detect both single and composite primary keys\n- **Composite Primary Key Support**: Full CRUD operations support for multi-column primary keys  \n- **Sequelize Relations**: Integration with Sequelize's built-in associations for nested entity creation\n\n### TypeORM Features  \n- **Automatic Primary Key Detection**: Reads primary key metadata from `@PrimaryColumn` and `@PrimaryGeneratedColumn` decorators\n- **Composite Primary Key Support**: Complete support for multi-column primary keys with automatic detection\n- **Enhanced Error Handling**: Detailed validation messages for primary key operations\n\n### Using Sequelize Relations\nIf you have described relations in your Sequelize model, the library can use them to create nested entities:\n> For example, if you have `User` and `Notification` models and `User.hasMany(Notification)` relation, you can describe `withNotifications` method like below:\n```typescript\nexport class FakeUserService extends SequelizeFakeEntityService<User> {\n    // constructor and other methods\n    // ... \n\n    withNotifications(fakeNotificationService: FakeNotificationService, count: number, customFields?: Partial<Notification>): FakeUserService {\n        this.nestedEntities.push({\n            service: fakeNotificationService,\n            count,\n            customFields,\n            relationFields: {\n                propertyKey: 'notifications', // the name of the relation property in the model\n            }\n        });\n        return this;\n    }\n}\n```","readmeFilename":"README.md"}