{"_id":"@eflexsystems/ember-data-factory-guy","_rev":"17-8eebcc78eb5395d34710bff69e07871d","name":"@eflexsystems/ember-data-factory-guy","dist-tags":{"latest":"5.2.1"},"versions":{"4.0.0":{"name":"@eflexsystems/ember-data-factory-guy","version":"4.0.0","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@4.0.0","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"3bd0781bd8a798afa3878aab422acb4d391dd304","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-4.0.0.tgz","fileCount":49,"integrity":"sha512-7fBj8chtE2oOzhuXwJ8V2yI3rFuVZsVVTVT49NlQRLtpqXQs5I3+TkFBLwNISKlwNrBBEdvd3mK0ZGlPqYl72w==","signatures":[{"sig":"MEQCIDMPVzB7++Iigpl9ZqxB/+bIYPAJJywSV/SJVKFReYMvAiBDveW0om6bxJPn3B6kPDdB7VGdE/ddbkF5UFBiYSiOhw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":281195},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"ff73dd04e50fb0f98536d2ad9f6788aa34350f96","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.4.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","@ember/string":"^4.0.0","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.0","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.3","eslint-plugin-n":"^16.6.2","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.0","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.24.7","ember-test-selectors":"^6.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_4.0.0_1721323509076_0.3048168107807536","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"@eflexsystems/ember-data-factory-guy","version":"4.0.1","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@4.0.1","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"51c7174e9827fc8bc91b1efb7a987e0a255e3d5e","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-4.0.1.tgz","fileCount":49,"integrity":"sha512-LTNnvXMUFkDhDm1VAtJa/D+FAOcPrTN1Fnjx/IBNTIdu4+hhlLdnSYk+WrQw+PerXlfF8KG7HGoQIlUxhnplPw==","signatures":[{"sig":"MEQCIAEg/KOYmHXStPzMdOv7T0usX3H62FETBMhDGe2sjW3MAiA2o9OlxFG1Z2YDkJH6/DWJmyhh9dibGhzBEjJ9VnFubw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":281297},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"b44ef8111a6be59cfc4a84d8b9f4e6c62fff5a9b","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.4.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","@ember/string":"^4.0.0","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.0","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.3","eslint-plugin-n":"^16.6.2","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.0","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.24.7","ember-test-selectors":"^6.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_4.0.1_1721324656689_0.39229073602392894","host":"s3://npm-registry-packages"}},"4.0.2":{"name":"@eflexsystems/ember-data-factory-guy","version":"4.0.2","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@4.0.2","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"a8b7e657eeb64b57df1c92606a0554ff7da0df21","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-4.0.2.tgz","fileCount":49,"integrity":"sha512-eVsHMv8Q5G5p7UZyDX1LQiLTWvx4k1rga6rvA3QXpzOV9ZMXT1ePAoJoP+IsqhOD4MTDfgr1D3q4BnBsYy8QvA==","signatures":[{"sig":"MEQCIFYWisRUaxNgkr0vQBVMCdnNu3Y2YFOVa7Xj9nnhRL8PAiBscF/xVIjqMECXyc/mBr7H6fEPOjLiSMYubL2AHUrPfg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":281345},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"ac2d2d590789ad194641f0f0e5c6a6368bfaa8aa","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.4.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","@ember/string":"^4.0.0","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.0","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.3","eslint-plugin-n":"^16.6.2","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.0","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.24.7","ember-test-selectors":"^6.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_4.0.2_1721325145669_0.45830287802899683","host":"s3://npm-registry-packages"}},"4.0.3":{"name":"@eflexsystems/ember-data-factory-guy","version":"4.0.3","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@4.0.3","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"28304b693dbf6b249ddd48e78d77097633ea38e4","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-4.0.3.tgz","fileCount":49,"integrity":"sha512-PSEAbfyfs2c/KJVbuj7VPcLa4Vg09zSOKLJVYTIKN+qFyOQNJpprwMFQAvnnBfBibexrXFMNshbGAPOwlyorKQ==","signatures":[{"sig":"MEYCIQDlfT6ph0nA7Ied4y3Erqh9Bi9wF4vMjHPOEXwJPLP+MwIhANy3YJjJheoBhG9a4N7BwMkkQOJNI0WktJDntN6ILNzn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":281386},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"2efa2733b688e5959c23f8d44524c812641be7a2","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.4.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.0","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","@ember/string":"^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.3","eslint-plugin-n":"^16.6.2","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.0","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.24.7","ember-test-selectors":"^6.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_4.0.3_1721329031741_0.1700801907670586","host":"s3://npm-registry-packages"}},"4.0.4":{"name":"@eflexsystems/ember-data-factory-guy","version":"4.0.4","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@4.0.4","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"2cbaa7315d9bd072618c4582d182a1280bba3a27","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-4.0.4.tgz","fileCount":49,"integrity":"sha512-FPR5Fkid2hOyG7vHR43rGx59cIWX6S8sCtox5ic1LwBPZDHaaoQiGcT7MKBPaC/coBWcIdO//vGGZNhLs5MyhQ==","signatures":[{"sig":"MEQCIEe0g5OocRhQ0vngFXttfuqs+RXlx3TnO/UxEMHyfAb/AiApfSUYR39yiJAU+2ocvJbwx/qICOLU27xC8piLe/o9zA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":281384},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"a351b2b391596eb1e89be4269887fecb9c0ed3da","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.5.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.0","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","@ember/string":"^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.3","eslint-plugin-n":"^16.6.2","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.0","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.24.7","ember-test-selectors":"^6.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_4.0.4_1721756790425_0.39765515311624045","host":"s3://npm-registry-packages"}},"4.0.5":{"name":"@eflexsystems/ember-data-factory-guy","version":"4.0.5","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@4.0.5","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"9c327f69695f24f2fe4646c0ed7cd2a7e0670859","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-4.0.5.tgz","fileCount":49,"integrity":"sha512-ZzIJ/aaPs03lNDxPgMfM0Ph7D+7Ppu1I3Q0DeSt9B+DQTxkHonFKpNYMjSyABW4SaNKgdaEJlsPnLZgzsmakrg==","signatures":[{"sig":"MEYCIQC5kgxW9buWovF3y4LNwsIM03AIiTleUocQC+gbCMe0aQIhAOfo90T63e7nttRodMiximE1YwhgXBP8BpTnMzv9O0IA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":281468},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"6b0ef5075fe8ca315cfc49365805777a34a1ec72","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.5.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","ember-inflector":"^5.0.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","@ember/string":"^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","eslint-plugin-n":"^17.9.0","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.1","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.24.7","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_4.0.5_1721930856229_0.5075657246759187","host":"s3://npm-registry-packages"}},"4.0.6":{"name":"@eflexsystems/ember-data-factory-guy","version":"4.0.6","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@4.0.6","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"4273cd23fcce08ed668a4f108aeb63e478605c26","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-4.0.6.tgz","fileCount":49,"integrity":"sha512-n0qEWhzxGtsdZ41Xmh39mL+vvIbOUxRuSlmZsxyrAmaZHGZBA5fpfxuNb5nKbflqj9UDYFwydebRLQT0GykWoQ==","signatures":[{"sig":"MEQCIDSPTQ96PF+RwPUZYqgytXt9Rc14uC2dMLL6wfBzvTfWAiBIDDo7YqmfjVQ6mHehIPqaHonawBos0ff9CdoabeE9Tg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":281200},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"80b96a9ae2d2859feeae5984f920ea19ba537e6d","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.5.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","ember-inflector":"^5.0.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","@ember/string":"^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","eslint-plugin-n":"^17.9.0","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.1","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.24.7","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_4.0.6_1721935330807_0.2488014690403817","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"@eflexsystems/ember-data-factory-guy","version":"5.0.0","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@5.0.0","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"710886d8eb1431afdfd53df5a3f218710969926a","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-5.0.0.tgz","fileCount":47,"integrity":"sha512-h0Pl8zs+fGPieo0geaRzFsFY/q2ziARm0dLaiA8zwZh9FrtYC6WxUrs+aJqTNLJO4RaxA5CnNjUTQANpqQ7CNw==","signatures":[{"sig":"MEQCICcidJovV6da7qZ120DAFYoyQKbhXO3+K8p1KpaK1RZRAiA8hBBHC5yDf4sUy6s2trbXnH/ycPFJbbU+5rK6VQLYmQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":279000},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"c933bae4aab8ccbe5c0f759e739065bdbf78d024","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.5.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","@ember/string":"^3.1.1 || ^4.0.0 || ^5.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.2 || ^5.0.0","eslint-plugin-n":"^17.10.1","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.1","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.25.0","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0 || ^5.0.0","ember-inflector":"^4.0.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_5.0.0_1722022228418_0.8972257866066358","host":"s3://npm-registry-packages"}},"5.0.1":{"name":"@eflexsystems/ember-data-factory-guy","version":"5.0.1","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@5.0.1","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"f4fe19244c75ca2e3f23a526987a27a82424c694","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-5.0.1.tgz","fileCount":47,"integrity":"sha512-JYHQ8LTC8EJ6oK92Cw4lc9K+FkWbco6c9iy0eQSS3yHlv15L0vgO23VMm2gssP29c/+HwtKLZlVUd8Gdg7eo2A==","signatures":[{"sig":"MEUCIGTbdwF2ZEdD6Z0fZZxuiYU7YxQYNE4CvySgS5MUVNYdAiEA8ljH8+FDjKF0E0g15NDud6NypvMqJHQ7AAf6dwoGhu0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278980},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"9d5476135ce00b54e4f005b5bec968744ff2f8c7","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.5.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","@ember/string":"^3.1.1 || ^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.2 || ^5.0.0","eslint-plugin-n":"^17.10.1","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.1","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.25.0","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0","ember-inflector":"^4.0.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_5.0.1_1722023913856_0.08962953685368547","host":"s3://npm-registry-packages"}},"5.0.2":{"name":"@eflexsystems/ember-data-factory-guy","version":"5.0.2","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@5.0.2","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"f2ffbbe990520fc5e220ccc96fd0b4ac05f9e0b2","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-5.0.2.tgz","fileCount":46,"integrity":"sha512-LzKi1gyeI1W1lNP0Ja7FZwwDMhUA/GTCZyZnu3HuyKA32TOcQXyv6SW6HVCbe2mNxJrr8XtBeNZ2vjtTrXdZqQ==","signatures":[{"sig":"MEYCIQDW9Jltkk1T9O4shxkA+UMkaN3Uc68O1SRXKQ6bbVojRwIhAK7LOO08OOAwd4FyDULdYiPTP9ugW47lXynuJcmI7BhY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278559},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"98ec112b4c78c634c3162f2104a97b1a28adb08d","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.5.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","@ember/string":"^3.1.1 || ^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.2 || ^5.0.0","eslint-plugin-n":"^17.10.1","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.1","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.25.0","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0","ember-inflector":"^4.0.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_5.0.2_1722024178523_0.5320835521339145","host":"s3://npm-registry-packages"}},"5.0.3":{"name":"@eflexsystems/ember-data-factory-guy","version":"5.0.3","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@5.0.3","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"afcd22f92ff951ea309bbc535875648515c1ff90","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-5.0.3.tgz","fileCount":46,"integrity":"sha512-90FiLUD6DNkK+coC4sPiC4HZ5Xvsi62FoCn5ZSu0IMDwl6bi7CdTuorJxadpnnS7SXH0qNq2YJH9bQpS31xaww==","signatures":[{"sig":"MEUCIQDNjHQTdnxuozyTG1/FEem28VxnZJeRdOKBtJ2S6SxLjQIgNq9ihTy6Sjy6AWLKJCOBrI73n7k4M/R2yM/oqxFU/d0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278559},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"30e1ec4cde87fde06e3f954150dd6430016cf722","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.5.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","@ember/string":"^3.1.1 || ^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.2 || ^5.0.0","eslint-plugin-n":"^17.10.1","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.1","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.25.0","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0","ember-inflector":"^4.0.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_5.0.3_1722024709092_0.8080661052320133","host":"s3://npm-registry-packages"}},"5.0.4":{"name":"@eflexsystems/ember-data-factory-guy","version":"5.0.4","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@5.0.4","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"bc01975ef455f281b98b499760289745f51a3e52","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-5.0.4.tgz","fileCount":47,"integrity":"sha512-aAgUpfpzniII0dK3xg7mBnlNtZtZegHsj3pCoevzMZ/Ypcq0YlGHUbQDEJI7DG5AJ68l9lIfj9j+xuyNKLFDcQ==","signatures":[{"sig":"MEUCICViZWCfABtkgLw0H4kZY/pgW0Zy8+sJn6zYRfQ6JX8MAiEAwdsO+VGNrU/OpbJ9xJvl6+/Xb0cQs+S3xrtgql1tAnI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":278980},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"6fe5be83498ace95f7e59e9ea8ae38d821759abe","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.5.1","dependencies":{"resolve":"^1.20.0","pretender":"^3.4.3","@babel/core":"^7.24.7","broccoli-funnel":"^3.0.4","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0","broccoli-merge-trees":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","@ember/string":"^3.1.1 || ^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.2 || ^5.0.0","eslint-plugin-n":"^17.10.1","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.1","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.25.0","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0","ember-inflector":"^4.0.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_5.0.4_1722025233670_0.7471002813856105","host":"s3://npm-registry-packages"}},"5.0.5":{"name":"@eflexsystems/ember-data-factory-guy","version":"5.0.5","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@5.0.5","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"474ca1d36ef36f34014f28341cdb525fa4cd4701","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-5.0.5.tgz","fileCount":45,"integrity":"sha512-6Yh5en+0B4qtrzKnS2LgJL/1NYlXNzXhp4iIrnxADSKolBUOE7bBSNxb+32eEmFnZNI1BVI0TKk+L7+UvEcwZg==","signatures":[{"sig":"MEYCIQCnRsKc0BMxYkdHfrtiJrC0N5mNapSScBGFvgEeWI4SdgIhAOKqC62CAMxi3cXvf/FPatyPoG+IRxD+0Z3qg4kxcFq7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":274229},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"7cd598bdf22882440157a197b88936d067041a26","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"eflex","email":"jacobjewell@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"10.8.2","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"22.5.1","dependencies":{"pretender":"^3.4.3","@babel/core":"^7.24.7","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^18.0.0","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"~5.10.0","ember-try":"^3.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^8.2.2","ember-source":"~5.10.0","@ember/string":"^3.1.1 || ^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^12.0.1","ember-inflector":"^4.0.2 || ^5.0.0","eslint-plugin-n":"^17.10.1","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^3.3.1","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.25.0","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^2.1.2","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^36.0.1","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0","ember-inflector":"^4.0.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_5.0.5_1722027358859_0.20188113684871634","host":"s3://npm-registry-packages"}},"5.1.0":{"name":"@eflexsystems/ember-data-factory-guy","version":"5.1.0","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@5.1.0","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"5e538b977bdf4f64ad713d2f4a6aaf6ad87bb526","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-5.1.0.tgz","fileCount":47,"integrity":"sha512-rpZqd8cOQxeM5U37YAib/+xi6CXUDP27k9txhh2fzDNfCmqtGN4XYCLq0McjjclZTxU28RzEWNmngZ4EZV/jrw==","signatures":[{"sig":"MEYCIQDUMQ7Ga82M+kr4W+wXnBLBI/OHGpN3vMNkm/q+J9226QIhAKMbbBS2u6TO0mBVH2xF/DyHzmDoWvoIgMCKEEmgPpV9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277406},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"0b7d5f956c8c5a792f1cbe16a55bb3d445d0e156","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"11.1.0","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"23.9.0","dependencies":{"pretender":"^3.4.3","@babel/core":"^7.24.7","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^19.0.5","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"^6.3.0","ember-try":"^4.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.3.8","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^9.1.2","ember-source":"^6.3.0","@ember/string":"^3.1.1 || ^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^13.1.0","ember-inflector":"^4.0.2 || ^5.0.0","eslint-plugin-n":"^17.10.1","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^4.0.5","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.25.0","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^3.0.1","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^37.0.0","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0","ember-inflector":"^4.0.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_5.1.0_1742849684197_0.6492598415525235","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"@eflexsystems/ember-data-factory-guy","version":"5.2.0","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@5.2.0","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"7acc3b5af6f246aa3a84fdfbf3fbc365a707dcdc","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-5.2.0.tgz","fileCount":47,"integrity":"sha512-ODHcK3Qprkt7QU0aJf8x1Ut7pDnA2OamiIV582t0n5SdRNvUgzAeaRYZ2uZyn6Bmd4km7hSlZGWHw2Lp01MnNw==","signatures":[{"sig":"MEUCIQCU9tR1csd7VGMvC24t2Q2zF1H439kFCVx1Mw4jW6rI/wIgK6SDgOfBKRToh87JcKGLpI9qZylG97MJe+V0sbjy9fc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277358},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"9e27c51055762e88c5638758ba6cb93312346a2a","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"11.3.0","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"24.2.0","dependencies":{"pretender":"^3.4.3","@babel/core":"^7.24.7","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^19.0.5","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"^6.3.0","ember-try":"^4.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","ember-data":"~5.6.0","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^9.1.2","ember-source":"^6.3.0","@ember/string":"^3.1.1 || ^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^13.1.0","ember-inflector":"^4.0.2 || ^5.0.0","eslint-plugin-n":"^17.10.1","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^4.0.5","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.25.0","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^3.0.1","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^37.0.0","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-data":">= 5.0.0","ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0","ember-inflector":"^4.0.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_5.2.0_1753211679749_0.22052209984122584","host":"s3://npm-registry-packages-npm-production"}},"5.2.1":{"name":"@eflexsystems/ember-data-factory-guy","version":"5.2.1","keywords":["ember-addon","testing","factories","ember-data"],"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","_id":"@eflexsystems/ember-data-factory-guy@5.2.1","maintainers":[{"name":"eflex","email":"jacobjewell@eflexsystems.com"},{"name":"jakesjews","email":"jakesjews@immersiveapplications.com"},{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},{"name":"nevans54","email":"nate544@gmail.com"}],"homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"dist":{"shasum":"43136408485ee5f7a0a4284159d1b7085967c1c4","tarball":"https://registry.npmjs.org/@eflexsystems/ember-data-factory-guy/-/ember-data-factory-guy-5.2.1.tgz","fileCount":47,"integrity":"sha512-i0aNufBjoKhBoGeMo9Fec0lpPcJpQpxcaPqU3g+0E2b57Uk+CLFiM9Bb+QDJP90K0JIhN3Go/2zIA5XefgDrVg==","signatures":[{"sig":"MEUCIBgpgRdqy86zzPI9hvXjv+HsNamutrM5JfdHFpIRADGyAiEAlTQB7AbU5o+b9WbSCVI79bBuEJYZtzVYD5kQfXPmmWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277328},"main":"index.js","ember":{"edition":"octane"},"engines":{"node":">= 18"},"gitHead":"4769171cd093a19508a18967c810cf0ef00a9e1e","scripts":{"lint":"concurrently \"npm:lint:*(!fix)\" --names \"lint:\"","test":"concurrently \"npm:lint\" \"npm:test:*\" --names \"lint,test:\"","build":"ember build --environment=production","start":"ember serve","lint:js":"eslint . --cache","lint:css":"stylelint \"**/*.css\"","lint:fix":"concurrently \"npm:lint:*:fix\" --names \"fix:\"","lint:hbs":"ember-template-lint .","test:ember":"ember test","lint:js:fix":"eslint . --fix","lint:css:fix":"concurrently \"npm:lint:css -- --fix\"","lint:hbs:fix":"ember-template-lint . --fix","test:ember-compatibility":"ember try:each"},"_npmUser":{"name":"rrglomsk","email":"rachelglomski@eflexsystems.com"},"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"_npmVersion":"11.3.0","description":"Factories for testing Ember applications using EmberData","directories":{"doc":"doc","test":"tests"},"ember-addon":{"configPath":"tests/dummy/config"},"_nodeVersion":"24.2.0","dependencies":{"pretender":"^3.4.3","ember-data":"^5.6.0","@babel/core":"^7.24.7","ember-cli-babel":"^8.2.0","@embroider/macros":"^1.16.5","ember-auto-import":"^2.7.4","ember-cli-htmlbars":"^6.3.0"},"_hasShrinkwrap":false,"devDependencies":{"qunit":"^2.21.1","sinon":"^19.0.5","eslint":"^8.57.0","webpack":"^5.92.1","prettier":"^3.3.2","ember-cli":"^6.3.0","ember-try":"^4.0.0","loader.js":"^4.7.0","qunit-dom":"^3.2.0","stylelint":"^16.7.0","@glint/core":"^1.4.0","ember-fetch":"^8.1.1","ember-qunit":"^8.1.0","concurrently":"^9.1.2","ember-source":"^6.3.0","@ember/string":"^3.1.1 || ^4.0.0","ember-cli-sri":"^2.1.1","ember-resolver":"^13.1.0","ember-inflector":"^4.0.2 || ^5.0.0","eslint-plugin-n":"^17.10.1","ember-cli-terser":"^4.0.2","@glimmer/tracking":"^1.1.2","ember-auto-import":"^2.7.4","@glimmer/component":"^1.1.2","broccoli-asset-rev":"^3.0.0","stylelint-prettier":"^5.0.2","@ember/test-helpers":"^4.0.5","ember-cli-clean-css":"^3.0.0","ember-template-lint":"^6.0.0","eslint-plugin-ember":"^12.1.1","eslint-plugin-qunit":"^8.1.1","@babel/eslint-parser":"^7.25.0","ember-test-selectors":"^7.0.0","@embroider/test-setup":"^4.0.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","ember-load-initializers":"^3.0.1","@ember/optional-features":"^2.1.0","ember-source-channel-url":"^3.0.0","stylelint-config-standard":"^37.0.0","ember-cli-dependency-checker":"^3.3.2","ember-cli-inject-live-reload":"^2.1.0","ember-cli-deprecation-workflow":"^3.0.1","@babel/plugin-proposal-decorators":"^7.24.7"},"peerDependencies":{"ember-source":">= 5.0.0","@ember/string":"^3.1.1 || ^4.0.0","ember-inflector":"^4.0.2 || ^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ember-data-factory-guy_5.2.1_1753213814060_0.9821717831174854","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2024-07-18T17:25:08.957Z","modified":"2026-05-05T19:32:26.742Z","4.0.0":"2024-07-18T17:25:09.250Z","4.0.1":"2024-07-18T17:44:16.880Z","4.0.2":"2024-07-18T17:52:25.911Z","4.0.3":"2024-07-18T18:57:11.987Z","4.0.4":"2024-07-23T17:46:30.635Z","4.0.5":"2024-07-25T18:07:36.430Z","4.0.6":"2024-07-25T19:22:10.979Z","5.0.0":"2024-07-26T19:30:28.592Z","5.0.1":"2024-07-26T19:58:34.057Z","5.0.2":"2024-07-26T20:02:58.727Z","5.0.3":"2024-07-26T20:11:49.265Z","5.0.4":"2024-07-26T20:20:33.919Z","5.0.5":"2024-07-26T20:55:59.049Z","5.1.0":"2025-03-24T20:54:44.424Z","5.2.0":"2025-07-22T19:14:39.992Z","5.2.1":"2025-07-22T19:50:14.274Z"},"bugs":{"url":"https://github.com/adopted-ember-addons/ember-data-factory-guy/issues"},"author":{"name":"Daniel Sudol","email":"dansudol@yahoo.com"},"license":"MIT","homepage":"https://github.com/adopted-ember-addons/ember-data-factory-guy","keywords":["ember-addon","testing","factories","ember-data"],"repository":{"url":"git+https://github.com/adopted-ember-addons/ember-data-factory-guy.git","type":"git"},"description":"Factories for testing Ember applications using EmberData","maintainers":[{"email":"nate.evans@epicor.com","name":"eflex"},{"email":"rachelglomski@eflexsystems.com","name":"rrglomsk"},{"email":"nate544@gmail.com","name":"nevans54"}],"readme":"# Ember Data Factory Guy\n\n[![Build Status](https://github.com/adopted-ember-addons/ember-data-factory-guy/workflows/ci/badge.svg)](https://github.com/adopted-ember-addons/ember-data-factory-guy/actions/workflows/ci.yml) [![Ember Observer Score](http://emberobserver.com/badges/ember-data-factory-guy.svg)](http://emberobserver.com/addons/ember-data-factory-guy) [![npm version](https://badge.fury.io/js/ember-data-factory-guy.svg)](http://badge.fury.io/js/ember-data-factory-guy)\n\nFeel the thrill and enjoyment of testing when using Factories instead of Fixtures.\nFactories simplify the process of testing, making you more efficient and your tests more readable.\n\n**NEW** starting with v3.8\n  - jquery is no longer required and fetch adapter is used with ember-data\n  - you can still use jquery if you want to  \n  - if you are addon author using factory guy set up your application adapter like [this](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/dummy/app/adapters/application.js)\n  \n**NEW** starting with v3.2.1\n  - You can setup data AND links for your async relationship [Check it out](#special-tips-for-links)\n\n**NEW** You can use factory guy in ember-twiddle\n  - Using [Scenarios](https://ember-twiddle.com/421f16ecc55b5d35783c243b8d99f2be?openFiles=tests.unit.model.user-test.js%2C)\n\n**NEW** If using new style of ember-qunit acceptance tests with ```setupApplicationTest``` check out demo here: [user-view-test.js:](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/acceptance/user-view-test.js)\n\n**NEW** starting with v2.13.27\n  - get attributes for factory defined models with ```attributesFor```\n\n**NEW** starting with v2.13.24\n  - manualSetup streamlined to ```manualSetup(this)```\n\n**NEW and Improved** starting with v2.13.22\n  - Traits can be functions [Check it out](#tip-6-using-traits-as-functions)\n\n**Older but still fun things**\n- Support for **[ember-data-model-fragment](https://github.com/lytics/ember-data-model-fragments)** usage is baked in since v2.5.0\n- Support for **[ember-django-adapter](https://github.com/dustinfarris/ember-django-adapter)** usage is fried in since v2.6.1\n- Support for adding [meta data](#using-add-method) to payloads for use with **ember-infinity** ie. => pagination\n- Support for adding headers to payloads\n\n**Why is FactoryGuy so awesome**\n- Since you're using ember data, you don't need to create any ORM like things\n- You don't need to add any files to recreate the relationships in your models\n- Any custom methods like: serialize / serializeAttribute / keyForAttribute etc... in a serializer will be used automatically\n- If you set up custom methods like: buildURL / urlForFindRecord in an adapter, they will be used automatically\n- You have no config file with tons of spew, because you declare all the mocks and make everything declaratively in the test\n- You can push models and their complex relationships directly to the store\n\n### Questions / Get in Touch\nVisit the EmberJS Community [#e-factory-guy](https://embercommunity.slack.com/messages/e-factory-guy/) Slack channel\n\n### Contents\n  - [How It Works](#how-it-works)\n  - [Installation](#installation)\n  - [Upgrading](#upgrading)\n  - [Setup](#setup)\n  - [Defining Factories](#defining-factories)\n  - [Using Factories](#using-factories)\n  - [Using in Development, Production or other environments](#using-in-other-environments)\n  - [Ember Data Model Fragments](#ember-data-model-fragments)\n  - [Creating Factories in Addons](#creating-factories-in-addons)\n  - [Ember Django Adapter](#ember-django-adapter)\n  - [Custom API formats](#custom-api-formats)\n  - [Testing models, controllers, components](#testing-models-controllers-components)\n  - [Acceptance Tests](#acceptance-tests)\n  - [Pretender](#pretender)\n  - [Tips and Tricks](#tips-and-tricks)\n  - [Changelog](#changelog)\n\n### How it works\n  - You create factories for your models.\n    - put them in the `tests/factories` directory\n  - Use these factories to create models for your tests\n    - you can make records that persist in the store\n    - or you can build a json payload used for mocking an ajax call's payload\n\n### Installation\n\n - ```ember install ember-data-factory-guy``` ( ember-data-1.13.5+ )\n - ```ember install ember-data-factory-guy@1.13.2``` ( ember-data-1.13.0 + )\n - ```ember install ember-data-factory-guy@1.1.2``` ( ember-data-1.0.0-beta.19.1 )\n - ```ember install ember-data-factory-guy@1.0.10``` ( ember-data-1.0.0-beta.16.1 )\n\n### Upgrading\n\n -  remove ember-data-factory-guy from `package.json`\n - ```npm prune```\n - ```ember install ember-data-factory-guy```  ( for the latest release )\n\n### Setup\n\nIn the following examples, assume the models look like this:\n\n```javascript\n  // standard models\n  class User extends Model {\n    @attr('string')     name\n    @attr('string')     style\n    @hasMany('project') projects\n    @hasMany('hat', {polymorphic: true})  hats\n  }\n\n  class Project extends Model {\n    @attr('string')     title\n    @belongsTo('user')  user\n  }\n\n  // polymorphic models\n  class Hat extends Model {\n    @attr('string')     type\n    @belongsTo('user')  user\n  }\n\n  class BigHat extends Hat {};\n  class SmallHat extends Hat {};\n```\n\n### Defining Factories\n - A factory has a name and a set of attributes.\n - The name should match the model type name. So, for the model `User`, the factory name would be `user`\n - Create factory files in the `tests/factories` directory.\n - Can use generators to create the outline of a factory file:\n  ```ember generate factory user``` This will create a factory in a file named `user.js` in the `tests/factories` directory.\n\n\n#### Standard models\n\n- Sample full blown factory: [`user.js`](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/dummy/app/tests/factories/user.js)\n\n- Brief sample of a factory definition:\n```javascript\n\n  // file tests/factories/user.js\n  import FactoryGuy from 'ember-data-factory-guy';\n\n  FactoryGuy.define('user', {\n    // Put default 'user' attributes in the default section\n    default: {\n      style: 'normal',\n      name: 'Dude'\n    },\n    // Create a named 'user' with custom attributes\n    admin: {\n      style: 'super',\n      name: 'Admin'\n    }\n  });\n\n```\n\n- If you are using an attribute named `type` and this is not a polymorphic model, use the option\n  ```polymorphic: false``` in your definition\n```javascript\n// file: tests/factories/cat.js\nFactoryGuy.define('cat', {\n  polymorphic: false, // manually flag this model as NOT polymorphic\n  default: {\n    // usually, an attribute named 'type' is for polymorphic models, but the defenition\n    // is set as NOT polymorphic, which allows this type to work as attibute\n    type: 'Cute',\n    name: (f)=> `Cat ${f.id}`\n  }\n});\n```\n\n#### Polymorphic models\n\n - Define each polymorphic model in its own typed definition\n - The attribute named `type` is used to hold the model name\n - May want to extend the parent factory here (see [extending other definitions](iel/ember-data-factory-guy#extending-other-definitions))\n\n```javascript\n\n  // file tests/factories/small-hat.js\n  import FactoryGuy from 'ember-data-factory-guy';\n\n  FactoryGuy.define('small-hat', {\n    default: {\n      type: 'SmallHat'\n    }\n  })\n\n  // file tests/factories/big-hat.js\n  import FactoryGuy from 'ember-data-factory-guy';\n\n  FactoryGuy.define('big-hat', {\n    default: {\n      type: 'BigHat'\n    }\n  })\n\n```\n\nIn other words, don't do this:\n\n```javascript\n  // file tests/factories/hat.js\n  import FactoryGuy from 'ember-data-factory-guy';\n\n  FactoryGuy.define('hat', {\n    default: {},\n    small-hat: {\n      type: 'SmallHat'\n    },\n    big-hat: {\n      type: 'BigHat'\n    }\n  })\n\n```\n\n#### Sequences\n\n- For generating unique attribute values.\n- Can be defined:\n    - In the model definition's `sequences` hash\n    - Inline on the attribute\n- Values are generated by calling `FactoryGuy.generate`\n\n##### Declaring sequences in sequences hash\n\n```javascript\n\n  FactoryGuy.define('user', {\n    sequences: {\n      userName: (num)=> `User${num}`\n    },\n\n    default: {\n      // use the 'userName' sequence for this attribute\n      name: FactoryGuy.generate('userName')\n    }\n  });\n\n  let first = FactoryGuy.build('user');\n  first.get('name') // => 'User1'\n\n  let second = FactoryGuy.make('user');\n  second.get('name') // => 'User2'\n\n```\n\n##### Declaring an inline sequence on attribute\n\n```javascript\n\n  FactoryGuy.define('project', {\n    special_project: {\n      title: FactoryGuy.generate((num)=> `Project #${num}`)\n    },\n  });\n\n  let json = FactoryGuy.build('special_project');\n  json.get('title') // => 'Project #1'\n\n  let project = FactoryGuy.make('special_project');\n  project.get('title') // => 'Project #2'\n\n```\n\n\n### Inline Functions\n\n- Declare a function for an attribute\n  - The fixture is passed as parameter so you can reference\n  all other attributes, even id\n\n\n```javascript\n\n  FactoryGuy.define('user', {\n    default: {\n      // Don't need the userName sequence, since the id is almost\n      // always a sequential number, and you can use that.\n      // f is the fixture being built as the moment for this factory\n      // definition, which has the id available\n      name: (f)=> `User${f.id}`\n    },\n    traits: {\n      boring: {\n        style: (f)=> `${f.id} boring`\n      },\n      funny: {\n        style: (f)=> `funny ${f.name}`\n      }\n    }\n  });\n\n  let json = FactoryGuy.build('user', 'funny');\n  json.get('name') // => 'User1'\n  json.get('style') // => 'funny User1'\n\n  let user = FactoryGuy.make('user', 'boring');\n  user.get('id') // => 2\n  user.get('style') // => '2 boring'\n\n```\n\n*Note the style attribute was built from a function which depends on the name\n and the name is a generated attribute from a sequence function*\n\n\n### Traits\n- Used with `attributesFor , build/buildList , make/makeList`\n- For grouping attributes together\n- Can use one or more traits\n - Each trait overrides any values defined in traits before it in the argument list\n- traits can be functions ( this is mega powerful )\n\n```javascript\n\n  FactoryGuy.define('user', {\n    traits: {\n      big: { name: 'Big Guy' },\n      friendly: { style: 'Friendly' },\n      bfg: { name: 'Big Friendly Giant', style: 'Friendly' }\n    }\n  });\n\n  let user = FactoryGuy.make('user', 'big', 'friendly');\n  user.get('name') // => 'Big Guy'\n  user.get('style') // => 'Friendly'\n\n  let giant = FactoryGuy.make('user', 'big', 'bfg');\n  user.get('name') // => 'Big Friendly Giant' - name defined in the 'bfg' trait overrides the name defined in the 'big' trait\n  user.get('style') // => 'Friendly'\n\n\n```\n\nYou can still pass in a hash of options when using traits. This hash of\nattributes will override any trait attributes or default attributes\n\n```javascript\n\n  let user = FactoryGuy.make('user', 'big', 'friendly', {name: 'Dave'});\n  user.get('name') // => 'Dave'\n  user.get('style') // => 'Friendly'\n\n```\n\n\n##### Using traits as functions\n\n```js\nimport FactoryGuy from 'ember-data-factory-guy';\n\nFactoryGuy.define(\"project\", {\n  default: {\n    title: (f) => `Project ${f.id}`\n  },\n  traits: {\n    // this trait is a function\n    // note that the fixure is passed in that will have\n    // default attributes like id at a minimum and in this\n    // case also a title ( `Project 1` ) which is default\n    medium: (f) => {\n      f.title = `Medium Project ${f.id}`\n    },\n    goofy: (f) => {\n      f.title = `Goofy ${f.title}`\n    }\n    withUser: (f) => {\n      // NOTE: you're not using FactoryGuy.belongsTo as you would\n      // normally in a fixture definition\n      f.user = FactoryGuy.make('user')\n    }\n  }\n});\n```\n\nSo, when you make / build  a project like:\n\n```js\nlet project =  make('project', 'medium');\nproject.get('title'); //=> 'Medium Project 1'\n\nlet project2 =  build('project', 'goofy');\nproject2.get('title'); //=> 'Goofy Project 2'\n\nlet project3 =  build('project', 'withUser');\nproject3.get('user.name'); //=> 'User 1'\n```\n\nYour trait function assigns the title as you described in the function\n\n\n#### Associations\n\n- Can setup belongsTo or hasMany associations in factory definitions\n    - As inline attribute definition\n    - With traits\n    - as links for async relationships\n- Can setup belongsTo or hasMany associations manually\n  - With `FactoryGuy.build`/`FactoryGuy.buildList` and `FactoryGuy.make`/`FactoryGuy.makeList`\n    - Can compose relationships to any level\n  - When setting up manually do not mix `build` and `make` - you either `build` JSON in every levels of associations or `make` objects. `build` is taking serializer into account for every model which means that output from `build` might be different than expected input defined in factory in `make`.\n\n- Special tips for links\n\n##### Setup belongsTo associations in Factory Definitions\n\n- using traits are the best practice\n\n```javascript\n  FactoryGuy.define('project', {\n\n    traits: {\n      withUser: { user: {} },\n      withAdmin: { user: FactoryGuy.belongsTo('user', 'admin') },\n      withManagerLink(f) { // f is the fixture being created\n        f.links = {manager: `/projects/${f.id}/manager`}\n      }\n    }\n  });\n\n  let user = make('project', 'withUser');\n  project.get('user').toJSON({includeId: true}) // => {id:1, name: 'Dude', style: 'normal'}\n\n  user = make('user', 'withManagerLink');\n  user.belongsTo('manager').link(); // => \"/projects/1/manager\"\n\n```\n\n\n##### Setup belongsTo associations manually\nSee `FactoryGuy.build`/`FactoryGuy.buildList` for more ideas\n\n```javascript\n  let user = make('user');\n  let project = make('project', {user});\n\n  project.get('user').toJSON({includeId: true}) // => {id:1, name: 'Dude', style: 'normal'}\n```\n\n*Note that though you are setting the 'user' belongsTo association on a project,\nthe reverse user hasMany 'projects' association is being setup for you on the user\n( for both manual and factory defined belongsTo associations ) as well*\n\n```javascript\n  user.get('projects.length') // => 1\n```\n\n##### Setup hasMany associations in the Factory Definition\n\n - using traits are the best practice\n - Do not create `hasMany` records via the `default` section of the factory definition. Prefer traits to set up such associations. Creating them via the `default` section is known to cause some undefined behavior when using the `makeNew` API.\n\n```javascript\n\n  FactoryGuy.define('user', {\n    traits: {\n      withProjects: {\n        projects: FactoryGuy.hasMany('project', 2)\n      },\n      withPropertiesLink(f) { // f is the fixture being created\n        f.links = {properties: `/users/${f.id}/properties`}\n      }\n    }\n  });\n\n  let user = make('user', 'withProjects');\n  user.get('projects.length') // => 2\n\n  user = make('user', 'withPropertiesLink');\n  user.hasMany('properties').link(); // => \"/users/1/properties\"\n```\n\n*You could also setup a custom named user definition:*\n\n```javascript\n  FactoryGuy.define('user', {\n\n    userWithProjects: { projects: FactoryGuy.hasMany('project', 2) }\n\n  });\n\n  let user = make('userWithProjects');\n  user.get('projects.length') // => 2\n```\n\n##### Setup hasMany associations manually\nSee `FactoryGuy.build`/`FactoryGuy.makeList` for more ideas\n\n```javascript\n  let project1 = make('project');\n  let project2 = make('project');\n  let user = make('user', {projects: [project1, project2]});\n  user.get('projects.length') // => 2\n\n  // or\n  let projects = makeList('project', 2);\n  let user = make('user', {projects});\n  user.get('projects.length') // => 2\n\n```\n\n*Note that though you are setting the 'projects' hasMany association on a user,\nthe reverse 'user' belongsTo association is being setup for you on the project\n( for both manual and factory defined hasMany associations ) as well*\n\n```javascript\n  projects.get('firstObject.user')  // => user\n```\n\n##### Special tips for links\n  - The links syntax changed as of ( v3.2.1 )\n    - What you see below is the new syntax\n  - You can setup data AND links for your async relationship\n  - Need special care with multiple traits setting links\n\n```javascript\n\n  FactoryGuy.define('user', {\n    traits: {\n      withCompanyLink(f): {\n        // since you can assign many different links with different traits,\n        // you should Object.assign so that you add to the links hash rather\n        // than set it directly ( assuming you want to use this feature )\n        f.links = Object.assign({company: `/users/${f.id}/company`}, f.links);\n      },\n      withPropertiesLink(f) {\n        f.links = Object.assign({properties: `/users/${f.id}/properties`}, f.links);\n      }\n    }\n  });\n\n  // setting links with traits\n  let company = make('company')\n  let user = make('user', 'withCompanyLink', 'withPropertiesLink', {company});\n  user.hasMany('properties').link(); // => \"/users/1/properties\"\n  user.belongsTo('company').link(); // => \"/users/1/company\"\n  // the company async relationship has a company AND link to fetch it again\n  // when you reload that relationship\n  user.get('company.content') // => company\n  user.belongsTo('company').reload() // would use that link \"/users/1/company\" to reload company\n\n  // you can also set traits with your build/buildList/make/makeList options\n  user = make('user', {links: {properties: '/users/1/properties'}});\n```\n\n### Extending Other Definitions\n  - Extending another definition will inherit these sections:\n    - sequences\n    - traits\n    - default attributes\n  - Inheritance is fine grained, so in each section, any attribute that is local\n    will take precedence over an inherited one. So you can override some\n    attributes in the default section ( for example ), and inherit the rest\n\nThere is a sample Factory using inheritance here: [`big-group.js`](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/dummy/app/tests/factories/big-group.js)\n\n\n### Transient Attributes\n  - Use transient attributes to build a fixture\n    - Pass in any attribute you like to build a fixture\n    - Usually helps you to build some other attribute\n    - These attributes will be removed when fixture is done building\n  - Can be used in `make`/`makeList`/`build`/`buildList`\n\nLet's say you have a model and a factory like this:\n\n```javascript\n\n  // app/models/dog.js\n  import Model from 'ember-data/model';\n  import attr from 'ember-data/attr';\n\n  export default class Dog extends Model{\n    @attr('string') dogNumber\n    @attr('string') sound\n  }\n\n  // tests/factories/dog.js\n  import FactoryGuy from 'ember-data-factory-guy';\n\n  const defaultVolume = \"Normal\";\n\n  FactoryGuy.define('dog', {\n    default: {\n      dogNumber: (f)=> `Dog${f.id}`,\n      sound: (f) => `${f.volume || defaultVolume} Woof`\n    },\n  });\n```\n\nThen to build the fixture:\n\n```javascript\n  let dog2 = build('dog', { volume: 'Soft' });\n\n  dog2.get('sound'); //=> `Soft Woof`\n```\n\n\n### Callbacks\n  - `afterMake`\n    - Uses transient attributes\n    - Unfortunately the model will fire 'onload' event before this `afterMake` is called.\n      - So all data will not be setup by then if you rely on `afterMake` to finish by the\n     time `onload` is called.\n      - In this case, just use transient attributes without the `afterMake`\n\nAssuming the factory-guy model definition defines `afterMake` function:\n\n```javascript\n  FactoryGuy.define('property', {\n    default: {\n      name: 'Silly property'\n    },\n\n    // optionally set transient attributes, that will be passed in to afterMake function\n    transient: {\n      for_sale: true\n    },\n\n    // The attributes passed to after make will include any optional attributes you\n    // passed in to make, and the transient attributes defined in this definition\n    afterMake: function(model, attributes) {\n      if (attributes.for_sale) {\n        model.set('name', model.get('name') + '(FOR SALE)');\n      }\n    }\n  }\n```\n\nYou would use this to make models like:\n\n```javascript\n  run(function () {\n\n    let property = FactoryGuy.make('property');\n    property.get('name'); // => 'Silly property(FOR SALE)')\n\n    let property = FactoryGuy.make('property', {for_sale: false});\n    property.get('name'); // => 'Silly property')\n  });\n\n```\n\nRemember to import the `run` function with `import { run } from \"@ember/runloop\"`;\n\n### Using Factories\n - [`FactoryGuy.attributesFor`](#factoryguyattributesfor)\n   - returns attributes ( for now no relationship info )\n - [`FactoryGuy.make`](#factoryguymake)\n   - push model instances into store\n - [`FactoryGuy.makeNew`](#factoryguymakenew)\n   - Create a new model instance but doesn't load it to the store\n - [`FactoryGuy.makeList`](#factoryguymakelist)\n   - Loads zero to many model instances into the store\n - [`FactoryGuy.build`](#factoryguybuild)\n   - Builds json in accordance with the adapter's specifications\n     - [RESTAdapter](http://emberjs.com/api/data/classes/DS.RESTAdapter.html)  (*assume this adapter being used in most of the following examples*)\n     - [ActiveModelAdapter](https://github.com/ember-data/active-model-adapter#json-structure)\n     - [JSONAPIAdapter](http://jsonapi.org/format/)\n     - [DrfAdapter (Ember Django Adapter)](https://github.com/dustinfarris/ember-django-adapter)\n - [`FactoryGuy.buildList`](#factoryguybuildlist)\n   - Builds json with a list of zero or more items in accordance with the adapter's specifications\n - Can override default attributes by passing in an object of options\n - Can add attributes or relationships with [traits](#traits)\n - Can compose relationships\n    - By passing in other objects you've made with `build`/`buildList` or `make`/`makeList`\n - Can setup links for async relationships with `build`/`buildList` or `make`/`makeList`\n\n##### `FactoryGuy.attributesFor`\n  - nice way to get attibutes for a factory without making a model or payload\n  - same arguments as make/build\n  - no id is returned\n  - no relationship info returned ( yet )\n\n```javascript\n\n  import { attributesFor } from 'ember-data-factory-guy';\n\n  // make a user with certain traits and options\n  attributesFor('user', 'silly', {name: 'Fred'}); // => { name: 'Fred', style: 'silly'}\n\n```\n\n##### `FactoryGuy.make`\n  - Loads a model instance into the store\n  - makes a fragment hash ( if it is a model fragment )\n  - can compose relationships with other `FactoryGuy.make`/`FactoryGuy.makeList`\n  - can add relationship links to payload\n\n```javascript\n\n  import { make } from 'ember-data-factory-guy';\n\n  // make a user with the default attributes in user factory\n  let user = make('user');\n  user.toJSON({includeId: true}); // => {id: 1, name: 'User1', style: 'normal'}\n\n  // make a user with the default attributes plus those defined as 'admin' in the user factory\n  let user = make('admin');\n  user.toJSON({includeId: true}); // => {id: 2, name: 'Admin', style: 'super'}\n\n  // make a user with the default attributes plus these extra attributes provided in the optional hash\n  let user = make('user', {name: 'Fred'});\n  user.toJSON({includeId: true}); // => {id: 3, name: 'Fred', style: 'normal'}\n\n  // make an 'admin' user with these extra attributes\n  let user = make('admin', {name: 'Fred'});\n  user.toJSON({includeId: true}); // => {id: 4, name: 'Fred', style: 'super'}\n\n  // make a user with a trait ('silly') plus these extra attributes provided in the optional hash\n  let user = make('user', 'silly', {name: 'Fred'});\n  user.toJSON({includeId: true}); // => {id: 5, name: 'Fred', style: 'silly'}\n\n  // make a user with a hats relationship ( hasMany ) composed of pre-made hats\n  let hat1 = make('big-hat');\n  let hat2 = make('big-hat');\n  let user = make('user', {hats: [hat1, hat2]});\n  user.toJSON({includeId: true})\n  // => {id: 6, name: 'User2', style: 'normal', hats: [{id:1, type:\"big_hat\"},{id:1, type:\"big_hat\"}]}\n  // note that hats are polymorphic. if they weren't, the hats array would be a list of ids: [1,2]\n\n  // make a user with a company relationship ( belongsTo ) composed of a pre-made company\n  let company = make('company');\n  let user = make('user', {company: company});\n  user.toJSON({includeId: true})  // => {id: 7, name: 'User3', style: 'normal', company: 1}\n\n  // make user with links to async hasMany properties\n  let user = make('user', {properties: {links: '/users/1/properties'}});\n\n  // make user with links to async belongsTo company\n  let user = make('user', {company: {links: '/users/1/company'}});\n\n  // for model fragments you get an object\n  let object = make('name'); // => {firstName: 'Boba', lastName: 'Fett'}\n\n```\n\n##### `FactoryGuy.makeNew`\n  - Same api as `FactoryGuy.make`\n    - except that the model will be a newly created record with no id\n\n##### `FactoryGuy.makeList`\n  - check out [(user factory):](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/dummy/app/tests/factories/user.js) to see 'bob' user and 'with_car' trait\n\nUsage:\n\n```javascript\n\n  import { make, makeList } from 'ember-data-factory-guy';\n\n  // Let's say bob is a named type in the user factory\n  makeList('user', 'bob') // makes 0 bob's\n\n  makeList('user', 'bob', 2) // makes 2 bob's\n\n  makeList('user', 'bob', 2, 'with_car', {name: \"Dude\"})\n  // makes 2 bob users with the 'with_car' trait and name of \"Dude\"\n  // In other words, applies the traits and options to every bob made\n\n  makeList('user', 'bob', 'with_car', ['with_car', {name: \"Dude\"}])\n  // makes 2 users with bob attributes. The first also has the 'with_car' trait and the\n  // second has the 'with_car' trait and name of \"Dude\", so you get 2 different users\n\n\n```\n##### `FactoryGuy.build`\n  - for building json that you can pass as json payload in [acceptance tests](#acceptance-tests)\n  - takes the same arguments as `FactoryGuy.make`\n  - can compose relationships with other `FactoryGuy.build`/`FactoryGuy.buildList` payloads\n  - can add relationship links to payload\n  - takes serializer for model into consideration\n  - to inspect the json use the `get` method\n  - use the [`add`](#using-add-method) method\n    - to include extra sideloaded data to the payload\n    - to include meta data\n    - REMEMBER, all relationships will be automatically sideloaded,\n      so you don't need to add them with the `add()` method\n\nUsage:\n\n```javascript\n\n  import { build, buildList } from 'ember-data-factory-guy';\n\n  // build a basic user with the default attributes from the user factory\n  let json = build('user');\n  json.get() // => {id: 1, name: 'User1', style: 'normal'}\n\n  // build a user with the default attributes plus those defined as 'admin' in the user factory\n  let json = build('admin');\n  json.get() // => {id: 2, name: 'Admin', style: 'super'}\n\n  // build a user with the default attributes with extra attributes\n  let json = build('user', {name: 'Fred'});\n  json.get() // => {id: 3, name: 'Fred', style: 'normal'}\n\n  // build the admin defined user with extra attributes\n  let json = build('admin', {name: 'Fred'});\n  json.get() // => {id: 4, name: 'Fred', style: 'super'}\n\n  // build default user with traits and with extra attributes\n  let json = build('user', 'silly', {name: 'Fred'});\n  json.get() // => {id: 5, name: 'Fred', style: 'silly'}\n\n  // build user with hats relationship ( hasMany ) composed of a few pre 'built' hats\n  let hat1 = build('big-hat');\n  let hat2 = build('big-hat');\n  let json = build('user', {hats: [hat1, hat2]});\n  // note that hats are polymorphic. if they weren't, the hats array would be a list of ids: [1,2]\n  json.get() // => {id: 6, name: 'User2', style: 'normal', hats: [{id:1, type:\"big_hat\"},{id:1, type:\"big_hat\"}]}\n\n  // build user with company relationship ( belongsTo ) composed of a pre 'built' company\n  let company = build('company');\n  let json = build('user', {company});\n  json.get() // => {id: 7, name: 'User3', style: 'normal', company: 1}\n\n  // build and compose relationships to unlimited degree\n  let company1 = build('company', {name: 'A Corp'});\n  let company2 = build('company', {name: 'B Corp'});\n  let owners = buildList('user', { company:company1 }, { company:company2 });\n  let buildJson = build('property', { owners });\n\n  // build user with links to async hasMany properties\n  let user = build('user', {properties: {links: '/users/1/properties'}});\n\n  // build user with links to async belongsTo company\n  let user = build('user', {company: {links: '/users/1/company'}});\n\n```\n- Example of what json payload from build looks like\n - Although the RESTAdapter is being used, this works the same with ActiveModel or JSONAPI adapters\n\n```javascript\n\n  let json = build('user', 'with_company', 'with_hats');\n  json // =>\n    {\n      user: {\n        id: 1,\n        name: 'User1',\n        company: 1,\n        hats: [\n          {type: 'big_hat', id:1},\n          {type: 'big_hat', id:2}\n        ]\n      },\n      companies: [\n        {id: 1, name: 'Silly corp'}\n      ],\n      'big-hats': [\n        {id: 1, type: \"BigHat\" },\n        {id: 2, type: \"BigHat\" }\n      ]\n    }\n\n```\n\n##### `FactoryGuy.buildList`\n  - for building json that you can pass as json payload in [acceptance tests](#acceptance-tests)\n  - takes the same arguments as `FactoryGuy.makeList`\n  - can compose relationships with other `build`/`buildList` payloads\n  - takes serializer for model into consideration\n  - to inspect the json use the `get()` method\n    - can use `get(index)` to get an individual item from the list\n  - use the [`add`](#using-add-method) method\n    - to add extra sideloaded data to the payload => `.add(payload)`\n    - to add meta data => `.add({meta})`\n\nUsage:\n\n```javascript\n  import { build, buildList } from 'ember-data-factory-guy';\n\n  let bobs = buildList('bob', 2);  // builds 2 Bob's\n\n  let bobs = buildList('bob', 2, {name: 'Rob'}); // builds 2 Bob's with name of 'Rob'\n\n  // builds 2 users, one with name 'Bob' , the next with name 'Rob'\n  let users = buildList('user', { name:'Bob' }, { name:'Rob' });\n\n  // builds 2 users, one with 'boblike' and the next with name 'adminlike' features\n  // NOTE: you don't say how many to make, because each trait is making new user\n  let users = buildList('user', 'boblike', 'adminlike');\n\n  // builds 2 users:\n  // one 'boblike' with stoner style\n  // and the next 'adminlike' with square style\n  // NOTE: how you are grouping traits and attributes for each one by wrapping them in array\n  let users = buildList('user', ['boblike', { style: 'stoner' }], ['adminlike', {style: 'square'}]);\n```\n\n##### Using `add()` method\n - when you need to add more json to a payload\n   - will be sideloaded\n     - only JSONAPI, and REST based serializers can do sideloading\n     - so DRFSerializer and JSONSerializer users can not use this feature\n   - you dont need to use json key as in: ```build('user').add({json: batMan})```\n   - you can just add the payload directly as: ```build('user').add(batMan)```\n\nUsage:\n\n```javascript\n  let batMan = build('bat_man');\n  let userPayload = build('user').add(batMan);\n\n  userPayload = {\n    user: {\n      id: 1,\n      name: 'User1',\n      style: \"normal\"\n    },\n    'super-heros': [\n      {\n        id: 1,\n        name: \"BatMan\",\n        type: \"SuperHero\"\n      }\n    ]\n  };\n```\n\n- when you want to add meta data to payload\n  - only JSONAPI, and REST based and serializers and DRFSerializer can handle meta data\n  - so JSONSerializer users can not use this feature ( though this might be a bug on my part )\n\nUsage:\n\n```javascript\n  let json1 = buildList('profile', 2).add({ meta: { previous: '/profiles?page=1', next: '/profiles?page=3' } });\n  let json2 = buildList('profile', 2).add({ meta: { previous: '/profiles?page=2', next: '/profiles?page=4' } });\n\n  mockQuery('profile', {page: 2}).returns({ json: json1 });\n  mockQuery('profile', {page: 3}).returns({ json: json2 });\n\n store.query('profile', {page: 2}).then((records)=> // first 2 from json1\n store.query('profile', {page: 3}).then((records)=> // second 2 from json2\n\n```\n\n##### Using `get()` method\n  - for inspecting contents of json payload\n    - `get()` returns all attributes of top level model\n    - `get(attribute)` gives you an attribute from the top level model\n    - `get(index)` gives you the info for a hasMany relationship at that index\n    - `get(relationships)` gives you just the id or type ( if polymorphic )\n      - better to compose the build relationships by hand if you need more info\n  - check out [user factory:](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/dummy/app/tests/factories/user.js) to see 'boblike' and 'adminlike' user traits\n\n```javascript\n  let json = build('user');\n  json.get() //=> {id: 1, name: 'User1', style: 'normal'}\n  json.get('id') // => 1\n\n  let json = buildList('user', 2);\n  json.get(0) //=> {id: 1, name: 'User1', style: 'normal'}\n  json.get(1) //=> {id: 2, name: 'User2', style: 'normal'}\n\n  let json = buildList('user', 'boblike', 'adminlike');\n  json.get(0) //=> {id: 1, name: 'Bob', style: 'boblike'}\n  json.get(1) //=> {id: 2, name: 'Admin', style: 'super'}\n```\n\n* building relationships inline\n\n```javascript\n\n  let json = build('user', 'with_company', 'with_hats');\n  json.get() //=> {id: 1, name: 'User1', style: 'normal'}\n\n  // to get hats (hasMany relationship) info\n  json.get('hats') //=> [{id: 1, type: \"big_hat\"},{id: 1, type: \"big_hat\"}]\n\n  // to get company ( belongsTo relationship ) info\n  json.get('company') //=> {id: 1, type: \"company\"}\n\n```\n\n* by composing the relationships you can get the full attributes of those associations\n\n```javascript\n\n  let company = build('company');\n  let hats = buildList('big-hats');\n\n  let user = build('user', {company , hats});\n  user.get() //=> {id: 1, name: 'User1', style: 'normal'}\n\n  // to get hats info from hats json\n  hats.get(0) //=> {id: 1, type: \"BigHat\", plus .. any other attributes}\n  hats.get(1) //=> {id: 2, type: \"BigHat\", plus .. any other attributes}\n\n  // to get company info\n  company.get() //=> {id: 1, type: \"Company\", name: \"Silly corp\"}\n\n```\n\n### Using in Other Environments\n\n- You can set up scenarios for your app that use all your factories from tests updating `config/environment.js`.\n\n- NOTE: Do not use settings in the `test` environment. Factories are enabled\n  by default for the `test` environment and setting the flag tells factory-guy to load the app/scenarios\n  files which are not needed for using factory-guy in testing. This will result in errors being generated if\n  the app/scenarios files do not exist.\n\n  ```javascript\n    // file: config/environment.js\n    // in development you don't have to set enabled to true since that is default\n    if (environment === 'development') {\n      ENV.factoryGuy = { useScenarios: true };\n      ENV.locationType = 'auto';\n      ENV.rootURL = '/';\n    }\n\n    // or\n\n    if (environment === 'production') {\n      ENV.factoryGuy = {enabled: true, useScenarios: true};\n      ENV.locationType = 'auto';\n      ENV.rootURL = '/';\n    }\n\n    ```\n- Place your scenarios in the `app/scenarios` directory\n  - Start by creating at least a `scenarios/main.js` file since this is the starting point\n  - Your scenario classes should inherit from `Scenario` class\n  - A scenario class should declare a run method where you do things like:\n    - include other scenarios\n      - you can compose scenarios like a symphony of notes\n    - make your data or mock your requests using the typical Factory Guy methods\n      - these methods are all built into scenario classes so you don't have to import them\n\n  ```javascript\n    // file: app/scenarios/main.js\n    import {Scenario} from 'ember-data-factory-guy';\n    import Users from './users';\n\n    // Just for fun, set the log level ( to 1 ) and see all FactoryGuy response info in console\n    Scenario.settings({\n      logLevel: 1, // 1 is the max for now, default is 0\n    });\n\n    export default class extends Scenario {\n      run() {\n         this.include([Users]);   // include other scenarios\n         this.mockFindAll('products', 3);  // mock some finds\n         this.mock({\n           type: 'POST',\n           url: '/api/v1/users/sign_in',\n           responseText: { token:\"0123456789-ab\" }\n         });  // mock a custom endpoint\n      }\n    }\n  ```\n\n  ```javascript\n    // file: app/scenarios/users.js\n    import {Scenario} from 'ember-data-factory-guy';\n\n    export default class extends Scenario {\n      run() {\n        this.mockFindAll('user', 'boblike', 'normal');\n        this.mockDelete('user');\n      }\n    }\n  ```\n\n\n### Ember Data Model Fragments\nAs of 2.5.2 you can create factories which contain [ember-data-model-fragments](https://github.com/lytics/ember-data-model-fragments). Setting up your fragments is easy and follows the same process as setting up regular factories. The mapping between fragment types and their associations are like so:\n\nFragment Type | Association\n--- | ---\n`fragment` | `FactoryGuy.belongsTo`\n`fragmentArray` | `FactoryGuy.hasMany`\n`array` | `[]`\n\nFor example, say we have the following `Employee` model which makes use of the `fragment`, `fragmentArray` and `array` fragment types.\n\n```javascript\n// Employee model\nexport default class Employee extends Model {\n  @fragment('name') name\n  @fragmentArray('phone-number') phoneNumbers\n}\n\n// Name fragment\nexport default class Name extends Fragment {\n  @array('string')  titles\n  @attr('string')   firstName\n  @attr('string')    lastName\n}\n\n// Phone Number fragment\nexport default class PhoneNumber extends Fragment {\n  @attr('string') number\n  @attr('string') type\n}\n```\n\nA factory for this model and its fragments would look like so:\n\n```javascript\n// Employee factory\nFactoryGuy.define('employee', {\n  default: {\n    name: FactoryGuy.belongsTo('name'), //fragment\n    phoneNumbers: FactoryGuy.hasMany('phone-number') //fragmentArray\n  }\n});\n\n// Name fragment factory\nFactoryGuy.define('name', {\n  default: {\n    titles: ['Mr.', 'Dr.'], //array\n    firstName: 'Jon',\n    lastName: 'Snow'\n  }\n});\n\n// Phone number fragment factory\nFactoryGuy.define('phone-number', {\n  default: {\n    number: '123-456-789',\n    type: 'home'\n  }\n});\n```\n\nTo set up associations manually ( and not necessarily in a factory ), you should do:\n\n```js\nlet phoneNumbers = makeList('phone-numbers', 2);\nlet employee = make('employee', { phoneNumbers });\n\n// OR\n\nlet phoneNumbers = buildList('phone-numbers', 2).get();\nlet employee = build('employee', { phoneNumbers }).get();\n```\n\nFor a more detailed example of setting up fragments have a look at:\n  - model test [employee test](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/unit/models/employee-test.js).\n  - acceptance test [employee-view-test](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/acceptance/employee-view-test.js).\n\n### Creating Factories in Addons\nIf you are making an addon with factories and you want the factories available to Ember apps using your addon, place the factories in `test-support/factories` instead of `tests/factories`. They should be available both within your addon and in Ember apps that use your addon.\n\n### Ember Django Adapter\n  - available since 2.6.1\n  - everything is setup automatically\n  - sideloading is not supported in `DRFSerializer` so all relationships should either\n    - be set as embedded with `DS.EmbeddedRecordsMixin` if you want to use `build`/`buildList`\n    - or use `make`/`makeList` and in your mocks, and return models instead of json:\n```javascript\n  let projects = makeList('projects', 2); // put projects in the store\n  let user = make('user', { projects });  // attach them to user\n  mockFindRecord('user').returns({model: user}); // now the mock will return a user that has projects\n```\n  - using `fails()` with errors hash is not working reliably\n    - so you can always just `mockWhatever(args).fails()`\n\n### Custom API formats\n\nFactoryGuy handles JSON-API / RESTSerializer / JSONSerializer out of the box.\n\nIn case your API doesn't follow any of these conventions, you can still make a custom fixture builder\n or modify the `FixtureConverters` and `JSONPayload` classes that exist.\n - before I launch into the details, let me know if you need this hookup and I\n   can guide you to a solution, since the use cases will be rare and varied.\n\n\n#### `FactoryGuy.cacheOnlyMode`\n  - Allows you to setup the adapters to prevent them from fetching data with ajax calls\n    - for single models ( `findRecord` ) you have to put something in the store\n    - for collections ( `findAll` ) you don't have to put anything in the store\n  - Takes `except` parameter as a list of models you don't want to cache\n    - These model requests will go to the server with ajax calls and will need to be mocked\n\nThis is helpful, when:\n  - you want to set up the test data with `make`/`makeList`, and then prevent\n    calls like `store.findRecord` or `store.findAll` from fetching more data, since you have\n    already setup the store with `make`/`makeList` data.\n  - you have an application that starts up and loads data that is not relevant\n    to the test page you are working on.\n\nUsage:\n\n```javascript\nimport FactoryGuy, { makeList } from 'ember-data-factory-guy';\nimport moduleForAcceptance from '../helpers/module-for-acceptance';\n\nmoduleForAcceptance('Acceptance | Profiles View');\n\ntest(\"Using FactoryGuy.cacheOnlyMode\", async function() {\n  FactoryGuy.cacheOnlyMode();\n  // the store.findRecord call for the user will go out unless there is a user\n  // in the store\n  make('user', {name: 'current'});\n  // the application starts up and makes calls to findAll a few things, but\n  // those can be ignored because of the cacheOnlyMode\n\n  // for this test I care about just testing profiles\n  makeList(\"profile\", 2);\n\n  await visit('/profiles');\n\n  // test stuff\n});\n\ntest(\"Using FactoryGuy.cacheOnlyMode with except\", async function() {\n  FactoryGuy.cacheOnlyMode({except: ['profile']});\n\n  make('user', {name: 'current'});\n\n  // this time I want to allow the ajax call so I can return built json payload\n  mockFindAll(\"profile\", 2);\n\n  await visit('/profiles');\n\n  // test stuff\n});\n```\n\n### Testing models, controllers, components\n\n- FactoryGuy needs to setup the factories before the test run.\n  - By default, you only need to call `manualSetup(this)` in unit/component/acceptance tests\n  - Or you can use the new setupFactoryGuy(hooks) method if your using the new qunit style tests\n\n    - Sample usage: (works the same in any type of test)\n    ```js\n    import { setupFactoryGuy } from \"ember-data-factory-guy\";\n    \n    module('Acceptance | User View', function(hooks) {\n      setupApplicationTest(hooks);\n      setupFactoryGuy(hooks);\n\n      test(\"blah blah\", async function(assert) {\n         await visit('work');\n         assert.ok('bah was spoken');\n      });\n    });\n    ```\n- Sample model test: [profile-test.js](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/unit/models/profile-test.js)\n  - Use `moduleForModel` ( ember-qunit ), or `describeModel` ( ember-mocha ) test helper\n  - manually set up FactoryGuy\n\n- Sample component test: [single-user-test.js](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/components/single-user-test.js)\n  - Using `moduleForComponent` ( ember-qunit ), or `describeComponent` ( ember-mocha ) helper\n  - manually sets up FactoryGuy\n\n  ```javascript\n  import { make, manualSetup }  from 'ember-data-factory-guy';\n  import hbs from 'htmlbars-inline-precompile';\n  import { test, moduleForComponent } from 'ember-qunit';\n\n  moduleForComponent('single-user', 'Integration | Component | single-user (manual setup)', {\n    integration: true,\n\n    beforeEach: function () {\n      manualSetup(this);\n    }\n  });\n\n  test(\"shows user information\", function () {\n    let user = make('user', {name: 'Rob'});\n\n    this.render(hbs`{{single-user user=user}}`);\n    this.set('user', user);\n\n    ok(this.$('.name').text().match(user.get('name')));\n    ok(this.$('.funny-name').text().match(user.get('funnyName')));\n  });\n  ```\n\n### Acceptance Tests\n\n- For using new style of ember-qunit with ```setupApplicationTest``` check out demo here: [user-view-test.js:](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/acceptance/user-view-test.js)\n\n##### Using mock methods\n\n- Uses pretender\n  - for mocking the ajax calls made by ember-data\n  - pretender library is installed with FactoryGuy\n- http GET mocks\n  - [mockFindRecord](#mockfindrecord)\n  - [mockFindAll](#mockfindall)\n  - [mockReload](#mockreload)\n  - [mockQuery](#mockquery)\n  - [mockQueryRecord](#mockqueryrecord)\n  - takes modifier method `returns()` for setting the payload response\n    - `returns()` accepts parameters like: json, model, models, id, ids, headers\n      - headers are cumulative so you can add as many as you like\n      - Example:\n      ```javascript\n        let mock = mockFindAll('user').returns({headers: {'X-Man': \"Wolverine\"});\n        mock.returns({headers: {'X-Weapon': \"Claws\"}});\n  - these mocks are are reusable\n    - so you can simulate making the same ajax call ( url ) and return a different payload\n- http POST/PUT/DELETE\n  - [mockCreate](#mockcreate)\n  - [mockUpdate](#mockupdate)\n  - [mockDelete](#mockdelete)\n- Custom mocks (http GET/POST/PUT/DELETE)\n  - [mock](#mock)\n\n- Use method `fails()` to simulate failure\n- Use method `succeeds()` to simulate success\n  - Only used if the mock was set to fail with ```fails()```  and you want to set the\n    mock to succeed to simulate a successful retry\n\n- Use property ```timesCalled``` to verify how many times the ajax call was mocked\n  - works when you are using `mockQuery`, `mockQueryRecord`, `mockFindAll`, `mockReload`, or `mockUpdate`\n  - `mockFindRecord` will always be at most 1 since it will only make ajax call\n    the first time, and then the store will use cache the second time\n  - Example:\n  ```javascript\n    const mock = mockQueryRecord('company', {}).returns({ json: build('company') });\n\n    FactoryGuy.store.queryRecord('company', {}).then(()=> {\n      FactoryGuy.store.queryRecord('company', {}).then(()=> {\n        mock.timesCalled //=> 2\n      });\n    });\n  ```\n\n- Use method `disable()` to temporarily disable the mock. You can re-enable\nthe disabled mock using `enable()`.\n\n- Use method `destroy()` to completely remove the mock handler for the mock.\nThe `isDestroyed` property is set to `true` when the mock is destroyed.\n\n\n##### setup\n  - As of v2.13.15 mockSetup and mockTeardown are no longer needed\n  - Use FactoryGuy.settings to set:\n    - logLevel ( 0 - off , 1 - on ) for seeing the FactoryGuy responses\n    - responseTime ( in millis )  for simulating slower responses\n    - Example:\n    ```javascript\n      FactoryGuy.settings({logLevel: 1, responseTime: 1000});\n    ```\n\n##### Using fails method\n  - Usable on all mocks\n  - Use optional object arguments status and response and convertErrors to customize\n    - status : must be number in the range of 3XX, 4XX, or 5XX ( default is 500 )\n    - response : must be object with errors key ( default is null )\n    - convertErrors : set to false and object will be left untouched ( default is true )\n      - errors must be in particular format for ember-data to accept them\n        - FactoryGuy allows you to use a simple style: ```{errors: {name: \"Name too short\"}}```\n        - Behind the scenes converts to another format for ember-data to consume\n\n  - Examples:\n  ```javascript\n    let errors401 = {errors: {description: \"Unauthorized\"}};\n    let mock = mockFindAll('user').fails({status: 401, response: errors401});\n\n    let errors422 = {errors: {name: \"Name too short\"}};\n    let mock = mockFindRecord('profile').fails({status: 422, response: errors422});\n\n    let errorsMine = {errors: [{detail: \"Name too short\", title: \"I am short\"}]};\n    let mock = mockFindRecord('profile').fails({status: 422, response: errorsMine, convertErrors: false});\n  ```\n\n\n##### `mockFindRecord`\n  - For dealing with finding one record of a model type => `store.findRecord('modelType', id)`\n  - Can pass in arguments just like you would for [`make`](#factoryguymake) or [`build`](#factoryguybuild)\n    - `mockFindRecord`( fixture or model name, optional traits, optional attributes object)\n  - Takes modifier method `returns()` for controlling the response payload\n    - returns( model / json / id )\n  - Takes modifier method `adapterOptions()` for setting adapterOptions ( get passed to urlForFindRecord )\n  - Sample acceptance tests using `mockFindRecord`: [user-view-test.js:](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/acceptance/user-view-test.js)\n\nUsage:\n```javascript\n   import { build, make, mockFindRecord } from 'ember-data-factory-guy';\n```\n- To return default factory model type ( 'user' in this case )\n```javascript\n   // mockFindRecord automatically returns json for the modelType ( in this case 'user' )\n   let mock = mockFindRecord('user');\n   let userId = mock.get('id');\n```\n- Using `returns({json})` to return json object\n```javascript\n   let user = build('user', 'whacky', {isDude: true});\n   let mock = mockFindRecord('user').returns({ json: user });\n   // user.get('id') => 1\n   // user.get('style') => 'whacky'\n\n   // or to acccomplish the same thing with less code\n   let mock = mockFindRecord('user', 'whacky', {isDude: true});\n   // mock.get('id') => 1\n   // mock.get('style') => 'whacky'\n   let user = mock.get();\n   // user.id => 1\n   // user.style => 'whacky'\n```\n- Using `returns({model})` to return model instance\n```javascript\n   let user = make('user', 'whacky', {isDude: false});\n   let mock = mockFindRecord('user').returns({ model: user });\n   // user.get('id') => 1\n   // you can now also user.get('any-computed-property')\n   // since you have a real model instance\n```\n- Simper way to return a model instance\n```javascript\n   let user = make('user', 'whacky', {isDude: false});\n   let mock = mockFindRecord(user);\n   // user.get('id') === mock.get('id')\n   // basically a shortcut to the above .returns({ model: user })\n   // as this sets up the returns for you\n```\n\n- To reuse the mock\n```javascript\n   let user2 = build('user', {style: \"boring\"});\n   mock.returns({ json: user2 });\n   // mock.get('id') => 2\n```\n- To mock failure case use `fails` method\n```javascript\n   mockFindRecord('user').fails();\n```\n- To mock failure when you have a model already\n```javascript\n  let profile = make('profile');\n  mockFindRecord(profile).fails();\n  // mock.get('id') === profile.id\n```\n- To use adapterOptions\n```javascript\n  let mock = mockFindRecord('user').adapterOptions({friendly: true});\n  // used when urlForFindRecord (defined in adapter) uses them\n  urlForFindRecord(id, modelName, snapshot) {\n    if (snapshot && snapshot.adapterOptions) {\n       let { adapterOptions }  = snapshot; // => {friendly: true}\n       // ... blah blah blah\n    }\n    // ... blah blah\n  }\n```\n##### `mockFindAll`\n  - For dealing with finding all records for a model type => `store.findAll(modelType)`\n  - Takes same parameters as [makeList](#factoryguymakelist)\n    - `mockFindAll`( fixture or model name, optional number, optional traits, optional attributes object)\n  - Takes modifier method `returns()` for controlling the response payload\n    - returns( models / json / ids )\n  - Takes modifier method `adapterOptions()` for setting adapterOptions ( get passed to urlForFindAll )\n    - used just as in mockFindRecord ( see example there )\n  - Sample acceptance tests using `mockFindAll`: [users-view-test.js](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/acceptance/users-view-test.js)\n\nUsage:\n\n```javascript\n   import { buildList, makeList, mockFindAll } from 'ember-data-factory-guy';\n```\n- To mock and return no results\n```javascript\n   let mock = mockFindAll('user');\n```\n- Using `returns({json})` to return json object\n```javascript\n   // that has 2 different users:\n   let users = buildList('user', 'whacky', 'silly');\n   let mock = mockFindAll('user').returns({ json: users });\n   let user1 = users.get(0);\n   let user2 = users.get(1);\n   // user1.style => 'whacky'\n   // user2.style => 'silly'\n\n   // or to acccomplish the same thing with less code\n   let mock = mockFindAll('user', 'whacky', 'silly');\n   let user1 = mock.get(0);\n   let user2 = mock.get(1);\n   // user1.style => 'whacky'\n   // user2.style => 'silly'\n```\n - Using `returns({models})` to return model instances\n```javascript\n    let users = makeList('user', 'whacky', 'silly');\n    let mock = mockFindAll('user').returns({ models: users });\n    let user1 = users[0];\n    // you can now also user1.get('any-computed-property')\n    // since you have a real model instance\n```\n- To reuse the mock and return different payload\n```javascript\n   let users2 = buildList('user', 3);\n   mock.returns({ json: user2 });\n```\n- To mock failure case use `fails()` method\n```javascript\n   mockFindAll('user').fails();\n```\n\n##### `mockReload`\n  - To handle reloading a model\n    - Pass in a record ( or a typeName and id )\n\nUsage:\n\n- Passing in a record / model instance\n```javascript\n  let profile = make('profile');\n  mockReload(profile);\n\n  // will stub a call to reload that profile\n  profile.reload()\n```\n- Using `returns({attrs})` to return new attributes\n```javascript\n  let profile = make('profile', { description: \"whatever\" });\n  mockReload(profile).returns({ attrs: { description: \"moo\" } });\n  profile.reload(); // description is now \"moo\"\n```\n- Using `returns({json})` to return all new attributes\n```javascript\n  let profile = make('profile', { description: \"tomatoes\" });\n  // all new values EXCEPT the profile id ( you should keep that id the same )\n  let profileAllNew = build('profile', { id: profile.get('id'), description: \"potatoes\" }\n  mockReload(profile).returns({ json: profileAllNew });\n  profile.reload(); // description = \"potatoes\"\n```\n- Mocking a failed reload\n```javascript\n  mockReload('profile', 1).fails();\n```\n\n##### `mockQuery`\n  - For dealing with querying for all records for a model type => `store.query(modelType, params)`\n    - Takes modifier method `returns()` for controlling the response payload\n      - returns( models / json / ids )\n   - Takes modifier methods for matching the query params\n    - `withParams( object )`\n    - `withSomeParams( object )`\n  - Sample acceptance tests using `mockQuery`: [user-search-test.js](https://github.com/adopted-ember-addons/ember-data-factory-guy/blob/master/tests/acceptance/user-search-test.js)\n\nUsage:\n\n```javascript\n  import FactoryGuy, { make, build, buildList, mockQuery } from 'ember-data-factory-guy';\n  let store = FactoryGuy.store;\n\n  // This simulates a query that returns no results\n  mockQuery('user', {age: 10});\n\n  store.query('user', {age: 10}}).then((userInstances) => {\n    /// userInstances will be empty\n  })\n```\n\n  - with returns( models )\n```javascript\n  // Create model instances\n  let users = makeList('user', 2, 'with_hats');\n\n  mockQuery('user', {name:'Bob', age: 10}).returns({models: users});\n\n  store.query('user', {name:'Bob', age: 10}}).then((models)=> {\n    // models are the same as the users array\n  });\n```\n\n  - with returns ( json )\n``` js\n  // Create json with buildList\n  let users = buildList('user', 2, 'with_hats');\n\n  mockQuery('user', {name:'Bob', age: 10}).returns({json: users});\n\n  store.query('user', {name:'Bob', age: 10}}).then((models)=> {\n    // these models were created from the users json\n  });\n```\n\n  - with returns( ids )\n```javascript\n  // Create list of models\n  let users = buildList('user', 2, 'with_hats');\n  let user1 = users.get(0);\n\n  mockQuery('user', {name:'Bob', age: 10}).returns({ids: [user1.id]});\n\n  store.query('user', {name:'Bob', age: 10}}).then(function(models) {\n    // models will be one model and it will be user1\n  });\n\n```\n\n  - withParams() / withSomeParams()\n```javascript\n  // Create list of models\n  let users = buildList('user', 2, 'with_hats');\n  let user1 = users.get(0);\n\n  mock = mockQuery('user').returns({ids: [user1.id]});\n\n  mock.withParams({name:'Bob', age: 10})\n\n  // When using 'withParams' modifier, params hash must match exactly\n  store.query('user', {name:'Bob', age: 10}}).then(function(models) {\n    // models will be one model and it will be user1\n  });\n\n  // The following call will not be caught by the mock\n  store.query('user', {name:'Bob', age: 10, hair: 'brown'}})\n\n  // 'withSomeParams' is designed to catch requests by partial match\n  // It has precedence over strict params matching once applied\n  mock.withSomeParams({name:'Bob'})\n\n  // Now both requests will be intercepted\n  store.query('user', {name:'Bob', age: 10}})\n  store.query('user', {name:'Bob', age: 10, hair: 'brown'}})\n```\n\n##### `mockQueryRecord`\n  - For dealing with querying for one record for a model type => `store.queryRecord(modelType, params)`\n    - takes modifier method `returns()` for controlling the response payload\n      - returns( model / json / id )\n   - takes modifier methods for matching the query params\n    - withParams( object )\n\nUsage:\n\n```javascript\n  import FactoryGuy, { make, build, mockQueryRecord } from 'ember-data-factory-guy';\n  let store = FactoryGuy.store;\n\n  // This simulates a query that returns no results\n  mockQueryRecord('user', {age: 10});\n\n  store.queryRecord('user', {age: 10}}).then((userInstance) => {\n    /// userInstance will be empty\n  })\n```\n\n  - with returns( models )\n```javascript\n  // Create model instances\n  let user = make('user');\n\n  mockQueryRecord('user', {name:'Bob', age: 10}).returns({model: user});\n\n  store.queryRecord('user', {name:'Bob', age: 10}}).then((model)=> {\n    // model is the same as the user you made\n  });\n```\n\n  - with returns( json )\n``` js\n  // Create json with buildList\n  let user = build('user');\n\n  mockQueryRecord('user', {name:'Bob', age: 10}).returns({json: user});\n\n  store.queryRecord('user', {name:'Bob', age: 10}}).then((model)=> {\n    // user model created from the user json\n  });\n```\n\n  - with returns( ids )\n\n```javascript\n  // Create list of models\n  let user = build('user', 'with_hats');\n\n  mockQueryRecord('user', {name:'Bob', age: 10}).returns({id: user.get('id')});\n\n  store.queryRecord('user', {name:'Bob', age: 10}}).then(function(model) {\n    // model will be one model and it will be user1\n  });\n\n```\n\n##### `mockCreate`\n\n  - Use chainable methods to build the response\n    - match: takes a hash with attributes or a matching function\n      1. attributes that must be in request json\n        - These will be added to the response json automatically, so\n          you don't need to include them in the returns hash.\n        - If you match on a `belongsTo` association, you don't have to include that in\n          the returns hash either ( same idea )\n      1. a function that can be used to perform an arbitrary match against the request\n          json, returning `true` if there is a match, `false` otherwise.\n    - returns\n      - attributes ( including relationships ) to include in response json\n  - Need to import `run` from `@ember/runloop` and wrap tests using `mockCreate` with: `run(function() { 'your test' })`\n\nRealistically, you will have code in a view action or controller action that will\n create the record, and setup any associations.\n\n```javascript\n\n  // most actions that create a record look something like this:\n  action: {\n    addProject: function (user) {\n      let name = this.$('button.project-name').val();\n      this.store.createRecord('project', {name: name, user: user}).save();\n    }\n  }\n\n```\n\nIn this case, you are are creating a 'project' record with a specific name, and belonging\nto a particular user. To mock this `createRecord` call here are a few ways to do this using\nchainable methods.\n\nUsage:\n\n```javascript\n  import { makeNew, mockCreate } from 'ember-data-factory-guy';\n\n  // Simplest case\n  // Don't care about a match just handle createRecord for any project\n  mockCreate('project');\n\n  // use a model you created already from store.createRecord or makeNew\n  // need to use this style if you need the model in the urlForCreateRecord snapshot\n  let project = makeNew('project');\n  mockCreate(project);\n\n  // Matching some attributes\n  mockCreate('project').match({name: \"Moo\"});\n\n  // Match all attributes\n  mockCreate('project').match({name: \"Moo\", user: user});\n\n  // Match using a function that checks that the request's top level attribute \"name\" equals 'Moo'\n  mockCreate('project').match(requestData => requestData.name === 'Moo');\n\n  // Exactly matching attributes, and returning extra attributes\n  mockCreate('project')\n    .match({name: \"Moo\", user: user})\n    .returns({created_at: new Date()});\n\n  // Returning belongsTo relationship. Assume outfit belongsTo 'person'\n  let person = build('super-hero'); // it's polymorphic\n  mockCreate('outfit').returns({attrs: { person }});\n\n  // Returning hasMany relationship. Assume super-hero hasMany 'outfits'\n  let outfits = buildList('outfit', 2);\n  mockCreate('super-hero').returns({attrs: { outfits }});\n\n```\n\n  - mocking a failed create\n\n```javascript\n\n  // Mocking failure case is easy with chainable methods, just use #fails\n  mockCreate('project').match({name: \"Moo\"}).fails();\n\n  // Can optionally add a status code and/or errors to the response\n  mockCreate('project').fails({status: 422, response: {errors: {name: ['Moo bad, Bahh better']}}});\n\n  store.createRecord('project', {name: \"Moo\"}).save(); //=> fails\n```\n\n\n##### `mockUpdate`\n\n  - `mockUpdate(model)`\n    - Single argument ( the model instance that will be updated )\n  - `mockUpdate(modelType, id)`\n    - Two arguments: modelType ( like 'profile' ) , and the profile id that will updated\n  - Use chainable methods to help build response:\n    - `match`: takes a hash with attributes or a matching function\n      1. attributes with values that must be present on the model you are updating\n      1. a function that can be used to perform an arbitrary match against the request\n        json, returning `true` if there is a match, `false` otherwise.\n    - returns\n      - attributes ( including relationships ) to include in response json\n  - Need to import `run` from `@ember/runloop` and wrap tests using `mockUpdate` with: `run(function() { 'your test' })`\n\nUsage:\n\n```javascript\n  import { make, mockUpdate } from 'ember-data-factory-guy';\n\n  let profile = make('profile');\n\n  // Pass in the model that will be updated ( if you have it available )\n  mockUpdate(profile);\n\n  // If the model is not available, pass in the modelType and the id of\n  // the model that will be updated\n  mockUpdate('profile', 1);\n\n  profile.set('description', 'good value');\n  profile.save() //=> will succeed\n\n  // Returning belongsTo relationship. Assume outfit belongsTo 'person'\n  let outfit = make('outfit');\n  let person = build('super-hero'); // it's polymorphic\n  outfit.set('name','outrageous');\n  mockUpdate(outfit).returns({attrs: { person }});\n  outfit.save(); //=> saves and returns superhero\n\n  // Returning hasMany relationship. Assume super-hero hasMany 'outfits'\n  let superHero = make('super-hero');\n  let outfits = buildList('outfit', 2, {name:'bell bottoms'});\n  superHero.set('style','laid back');\n  mockUpdate(superHero).returns({attrs: { outfits }});\n  superHero.save(); // => saves and returns outfits\n\n  // using match() method to specify attribute values\n  let profile = make('profile');\n  profile.set('name', \"woo\");\n  let mock = mockUpdate(profile).match({name: \"moo\"});\n  profile.save();  // will not be mocked since the mock you set says the name must be \"woo\"\n\n  // using match() method to specify a matching function\n  let profile = make('profile');\n  profile.set('name', \"woo\");\n  let mock = mockUpdate(profile).match((requestBody) => {\n    // this example uses a JSONAPI Adapter\n    return requestBody.data.attributes.name === \"moo\"\n  });\n  profile.save();  // will not be mocked since the mock you set requires the request's top level attribute \"name\" to equal \"moo\"\n\n  // either set the name to \"moo\" which will now be mocked correctly\n  profile.set('name', \"moo\");\n  profile.save(); // succeeds\n\n  // or\n\n  // keep the profile name as \"woo\"\n  // but change the mock to match the name \"woo\"\n  mock.match({name: \"woo\"});\n  profile.save();  // succeeds\n````\n\n - mocking a failed update\n\n```javascript\n  let profile = make('profile');\n\n  // set the succeed flag to 'false'\n  mockUpdate('profile', profile.id).fails({status: 422, response: 'Invalid data'});\n  // or\n  mockUpdate(profile).fails({status: 422, response: 'Invalid data'});\n\n  profile.set('description', 'bad value');\n  profile.save() //=> will fail\n````\n\n*mocking a failed update and retry with success*\n\n```javascript\n  let profile = make('profile');\n\n  let mockUpdate = mockUpdate(profile);\n\n  mockUpdate.fails({status: 422, response: 'Invalid data'});\n\n  profile.set('description', 'bad value');\n  profile.save() //=> will fail\n\n  // After setting valid value\n  profile.set('description', 'good value');\n\n  // Now expecting success\n  mockUpdate.succeeds();\n\n  // Try that update again\n  profile.save() //=> will succeed!\n````\n\n\n##### `mockDelete`\n  - Need to import `run` from `@ember/runloop` and wrap tests using `mockDelete` with: `run(function() { 'your test' })`\n  - To handle deleting a model\n    - Pass in a record ( or a typeName and id )\n\nUsage:\n\n- Passing in a record / model instance\n\n```javascript\n  import { make, mockDelete } from 'ember-data-factory-guy';\n\n  let profile = make('profile');\n  mockDelete(profile);\n\n  profile.destroyRecord() // => will succeed\n```\n\n- Passing in a model typeName and id\n\n```javascript\n  import { make, mockDelete } from 'ember-data-factory-guy';\n\n  let profile = make('profile');\n  mockDelete('profile', profile.id);\n\n  profile.destroyRecord() // => will succeed\n```\n\n- Passing in a model typeName\n\n```javascript\n  import { make, mockDelete } from 'ember-data-factory-guy';\n\n  let profile1 = make('profile');\n  let profile2 = make('p","readmeFilename":"README.md"}