{"_id":"@axenuab/joymon-admin-user-portal-backend","_rev":"3-fc124bcecf85d3995b5bc49ea32dfe9a","name":"@axenuab/joymon-admin-user-portal-backend","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@axenuab/joymon-admin-user-portal-backend","version":"0.0.1","scripts":{"build":"tsc -p tsconfig.build.json","dev":"NODE_ENV=development bun --watch src/app.ts","start:staging":"NODE_ENV=staging bun dist/src/app.js","prod":"NODE_ENV=production bun dist/src/app.js","migrate-dev":"NODE_ENV=development knex migrate:latest --knexfile knexfile.ts","migrate-staging":"NODE_ENV=staging knex migrate:latest --knexfile knexfile.ts","migrate:down-dev":"NODE_ENV=development knex migrate:rollback --knexfile knexfile.ts","seed-dev":"NODE_ENV=development bunx --bun knex seed:run --knexfile knexfile.ts","lint":"eslint ."},"devDependencies":{"@sentry/bun":"^7.93.0","@types/passport-http-bearer":"^1.0.41","@types/passport-jwt":"^4.0.0","@types/bun":"latest","@types/express":"^4.17.21","@types/supertest":"^6.0.2","@types/jest":"^29.5.11","@types/pg":"^8.10.9","eslint":"^8.56.0","@axenuab/eslint-config-axenu":"^1.1.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-jest":"^27.6.3","eslint-plugin-unused-imports":"^3.0.0","jest":"^29.7.0","prettier":"^3.2.3","ts-jest":"^29.1.1"},"peerDependencies":{"typescript":"^5.0.0"},"dependencies":{"@asteasolutions/zod-to-openapi":"^6.3.1","@types/swagger-jsdoc":"^6.0.4","@types/swagger-ui-express":"^4.1.6","@types/cors":"^2.8.17","ajv":"8.12.0","cors":"^2.8.5","crypto":"^1.0.1","dotenv":"^16.4.1","express":"^4.18.2","express-async-handler":"^1.2.0","jose":"^5.2.0","knex":"^3.1.0","objection":"^3.1.3","passport":"^0.7.0","passport-http-bearer":"^1.0.1","passport-jwt":"^4.0.1","pg":"^8.11.3","supertest":"^6.3.4","swagger-jsdoc":"^6.2.8","swagger-ui-express":"^5.0.0","ts-node":"^10.9.2","zod":"^3.22.4"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":".","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"gitHead":"32d9e41b5e5fe35c7791c552d6802869cdfa4046","description":"To install dependencies:","_id":"@axenuab/joymon-admin-user-portal-backend@0.0.1","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-AxKHoPrPoMWMdr+2ocVBKuTNYA05V0a9PTYMRhlAscCRN03Gqcy4TtLW8kMJ6UNd/maGQ9eCLLIEe+kvBMSSZg==","shasum":"ed8c2fba1d56cd0798e3dec68a8e0b3719f35c5d","tarball":"https://registry.npmjs.org/@axenuab/joymon-admin-user-portal-backend/-/joymon-admin-user-portal-backend-0.0.1.tgz","fileCount":83,"unpackedSize":410982,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiU1v8WRqiSVSAC5Ueb61qyjfkx5meJgqUO/ZGKoOUKAIgLZxJrpksY3Oo3H22xmFbe3+jA+N67IAx28LNzj2UpDM="}]},"_npmUser":{"name":"anton_joymon","email":"anton@joymon.se"},"directories":{},"maintainers":[{"name":"anton_joymon","email":"anton@joymon.se"},{"name":"axenu","email":"simon@axenu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/joymon-admin-user-portal-backend_0.0.1_1709025011158_0.7075291784593518"},"_hasShrinkwrap":false},"0.0.2":{"name":"@axenuab/joymon-admin-user-portal-backend","version":"0.0.2","scripts":{"build":"tsc -p tsconfig.build.json","dev":"NODE_ENV=development bun --watch src/main.ts","start:staging":"NODE_ENV=staging bun dist/src/main.js","prod":"NODE_ENV=production bun dist/src/main.js","migrate-dev":"NODE_ENV=development knex migrate:latest --knexfile knexfile.ts","migrate-staging":"NODE_ENV=staging knex migrate:latest --knexfile knexfile.ts","migrate:down-dev":"NODE_ENV=development knex migrate:rollback --knexfile knexfile.ts","seed-dev":"NODE_ENV=development bunx --bun knex seed:run --knexfile knexfile.ts","lint":"eslint ."},"devDependencies":{"@axenuab/eslint-config-axenu":"^1.1.4","@types/bun":"^1.0.7","@types/cookie-parser":"^1.4.6","@types/express":"^4.17.21","@types/jest":"^29.5.11","@types/passport-http-bearer":"^1.0.41","@types/passport-jwt":"^4.0.0","@types/pg":"^8.10.9","@types/supertest":"^6.0.2","eslint":"^8.56.0","eslint-config-prettier":"^9.1.0","eslint-plugin-jest":"^27.6.3","eslint-plugin-prettier":"^5.1.3","eslint-plugin-unused-imports":"^3.0.0","jest":"^29.7.0","prettier":"^3.2.3","ts-jest":"^29.1.1"},"peerDependencies":{"typescript":"^5.0.0"},"dependencies":{"@asteasolutions/zod-to-openapi":"^6.3.1","@sentry/bun":"^7.93.0","@types/cors":"^2.8.17","@types/swagger-jsdoc":"^6.0.4","@types/swagger-ui-express":"^4.1.6","ajv":"8.12.0","cookie-parser":"^1.4.6","cors":"^2.8.5","crypto":"^1.0.1","dotenv":"^16.4.1","express":"^4.18.2","express-async-handler":"^1.2.0","jose":"^5.2.0","knex":"^3.1.0","objection":"^3.1.3","passport":"^0.7.0","passport-http-bearer":"^1.0.1","passport-jwt":"^4.0.1","pg":"^8.11.3","supertest":"^6.3.4","swagger-jsdoc":"^6.2.8","swagger-ui-express":"^5.0.0","ts-node":"^10.9.2","zod":"^3.22.4"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":".","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"gitHead":"c119d1af89a651db2a53ea778e418ab0a9483cc6","description":"To install dependencies:","_id":"@axenuab/joymon-admin-user-portal-backend@0.0.2","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-JZzW/VHiD+bvNwHgL+b5RJP3W2vq8ylZakGA257KCUkT1pSIVynP42KtCPcEupcm0TenCj769J3u4JJiu4oXRw==","shasum":"eff62e69022cd4870e034850a47bc282c0d5dc92","tarball":"https://registry.npmjs.org/@axenuab/joymon-admin-user-portal-backend/-/joymon-admin-user-portal-backend-0.0.2.tgz","fileCount":76,"unpackedSize":415653,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBMT4UDpb50tG4Is0VYomYGl+25C6jY7mdJAn0s4Wwe2AiA/MKBYgeKSB+Pb6GOGvR0DuoThGvRaQk7GNTc8GDvCSw=="}]},"_npmUser":{"name":"anton_joymon","email":"anton@joymon.se"},"directories":{},"maintainers":[{"name":"anton_joymon","email":"anton@joymon.se"},{"name":"axenu","email":"simon@axenu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/joymon-admin-user-portal-backend_0.0.2_1709040552282_0.1466309715961902"},"_hasShrinkwrap":false},"0.0.3":{"name":"@axenuab/joymon-admin-user-portal-backend","version":"0.0.3","scripts":{"build":"tsc -p tsconfig.build.json","dev":"NODE_ENV=development bun --watch src/main.ts","start:staging":"NODE_ENV=staging bun dist/src/main.js","prod":"NODE_ENV=production bun dist/src/main.js","migrate-dev":"NODE_ENV=development knex migrate:latest --knexfile knexfile.ts","migrate-staging":"NODE_ENV=staging knex migrate:latest --knexfile knexfile.ts","migrate:down-dev":"NODE_ENV=development knex migrate:rollback --knexfile knexfile.ts","seed-dev":"NODE_ENV=development bunx --bun knex seed:run --knexfile knexfile.ts","lint":"eslint ."},"devDependencies":{"@axenuab/eslint-config-axenu":"^1.1.4","@types/bun":"^1.0.7","@types/cookie-parser":"^1.4.6","@types/express":"^4.17.21","@types/jest":"^29.5.11","@types/passport-http-bearer":"^1.0.41","@types/passport-jwt":"^4.0.0","@types/pg":"^8.10.9","@types/supertest":"^6.0.2","eslint":"^8.56.0","eslint-config-prettier":"^9.1.0","eslint-plugin-jest":"^27.6.3","eslint-plugin-prettier":"^5.1.3","eslint-plugin-unused-imports":"^3.0.0","jest":"^29.7.0","prettier":"^3.2.3","ts-jest":"^29.1.1"},"peerDependencies":{"typescript":"^5.0.0"},"dependencies":{"@asteasolutions/zod-to-openapi":"^6.3.1","@sentry/bun":"^7.93.0","@types/cors":"^2.8.17","@types/swagger-jsdoc":"^6.0.4","@types/swagger-ui-express":"^4.1.6","ajv":"8.12.0","cookie-parser":"^1.4.6","cors":"^2.8.5","crypto":"^1.0.1","dotenv":"^16.4.1","express":"^4.18.2","express-async-handler":"^1.2.0","jose":"^5.2.0","knex":"^3.1.0","objection":"^3.1.3","passport":"^0.7.0","passport-http-bearer":"^1.0.1","passport-jwt":"^4.0.1","pg":"^8.11.3","supertest":"^6.3.4","swagger-jsdoc":"^6.2.8","swagger-ui-express":"^5.0.0","ts-node":"^10.9.2","zod":"^3.22.4"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":".","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"gitHead":"c119d1af89a651db2a53ea778e418ab0a9483cc6","description":"To install dependencies:","_id":"@axenuab/joymon-admin-user-portal-backend@0.0.3","_nodeVersion":"18.7.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-1UvmZlUNFMH6g+HPOXUb1LIG9IpHxuiz8zWDr06mfY9SS9RtuLSUid8Z/u37iACugdhEo/2QZyjebAdQbVMKqg==","shasum":"f2e89ba0b87da0a4cc7cc460ac0f028f35881b0f","tarball":"https://registry.npmjs.org/@axenuab/joymon-admin-user-portal-backend/-/joymon-admin-user-portal-backend-0.0.3.tgz","fileCount":76,"unpackedSize":415655,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7xBvthST2J572ZpM2nkVUnBmeTmbVEmIK5B59v1eEdQIhAO1OcvOznPde7w01GAqYloinx77RwyVpPfFH4mwhoew1"}]},"_npmUser":{"name":"anton_joymon","email":"anton@joymon.se"},"directories":{},"maintainers":[{"name":"anton_joymon","email":"anton@joymon.se"},{"name":"axenu","email":"simon@axenu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/joymon-admin-user-portal-backend_0.0.3_1709040765251_0.3220701371055146"},"_hasShrinkwrap":false},"0.0.4":{"name":"@axenuab/joymon-admin-user-portal-backend","version":"0.0.4","scripts":{"build":"tsc -p tsconfig.build.json","dev":"NODE_ENV=development bun --watch src/main.ts","start:staging":"NODE_ENV=staging bun dist/src/main.js","prod":"NODE_ENV=production bun dist/src/main.js","migrate-dev":"NODE_ENV=development knex migrate:latest --knexfile knexfile.ts","migrate-staging":"NODE_ENV=staging knex migrate:latest --knexfile knexfile.ts","migrate:down-dev":"NODE_ENV=development knex migrate:rollback --knexfile knexfile.ts","seed-dev":"NODE_ENV=development bunx --bun knex seed:run --knexfile knexfile.ts","seed-staging":"NODE_ENV=staging bunx --bun knex seed:run --knexfile knexfile.ts","lint":"eslint ."},"devDependencies":{"@axenuab/eslint-config-axenu":"^1.1.4","@types/bun":"^1.0.7","@types/cookie-parser":"^1.4.6","@types/cors":"^2.8.17","@types/express":"^4.17.21","@types/jest":"^29.5.11","@types/passport-http-bearer":"^1.0.41","@types/passport-jwt":"^4.0.0","@types/pg":"^8.10.9","@types/supertest":"^6.0.2","@types/swagger-jsdoc":"^6.0.4","@types/swagger-ui-express":"^4.1.6","eslint":"^8.56.0","eslint-config-prettier":"^9.1.0","eslint-plugin-jest":"^27.6.3","eslint-plugin-prettier":"^5.1.3","eslint-plugin-unused-imports":"^3.0.0","jest":"^29.7.0","prettier":"^3.2.3","ts-jest":"^29.1.1"},"peerDependencies":{"typescript":"^5.0.0"},"dependencies":{"@asteasolutions/zod-to-openapi":"^6.3.1","@sentry/bun":"^7.93.0","ajv":"8.12.0","cookie-parser":"^1.4.6","cors":"^2.8.5","crypto":"^1.0.1","dotenv":"^16.4.1","express":"^4.18.2","express-async-handler":"^1.2.0","jose":"^5.2.0","knex":"^3.1.0","mailgun.js":"^10.2.1","objection":"^3.1.3","passport":"^0.7.0","passport-http-bearer":"^1.0.1","passport-jwt":"^4.0.1","pg":"^8.11.3","supertest":"^6.3.4","swagger-jsdoc":"^6.2.8","swagger-ui-express":"^5.0.0","ts-node":"^10.9.2","zod":"^3.22.4"},"jest":{"moduleFileExtensions":["js","json","ts"],"rootDir":".","testRegex":".*\\.test\\.ts$","transform":{"^.+\\.(t|j)s$":"ts-jest"},"collectCoverageFrom":["**/*.(t|j)s"],"coverageDirectory":"../coverage","testEnvironment":"node"},"gitHead":"68f6db7799818b389b720d76a15bdc032bb44475","description":"To install dependencies:","_id":"@axenuab/joymon-admin-user-portal-backend@0.0.4","_nodeVersion":"16.8.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-ceQf+zmeeCyhVVW8BCD22bckHpuYHVGo7U1NBX/ezxq8/Z5awxP32J6ARbjsENCvZIFgOuNxPCcbbNwMI3IPOw==","shasum":"c4ee47a3ac9d0fab775cdd32b7dd561e78e6ef12","tarball":"https://registry.npmjs.org/@axenuab/joymon-admin-user-portal-backend/-/joymon-admin-user-portal-backend-0.0.4.tgz","fileCount":83,"unpackedSize":437830,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDc1pxPs8VypCYCUdgZW/ypNmo87NvZviOGmr1ouBhZvAIgJynZ2/RFiEN6eE/+kT3PoA1TnnHPp506tZzRUxf/Dak="}]},"_npmUser":{"name":"anton_joymon","email":"anton@joymon.se"},"directories":{},"maintainers":[{"name":"anton_joymon","email":"anton@joymon.se"},{"name":"axenu","email":"simon@axenu.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/joymon-admin-user-portal-backend_0.0.4_1711439789944_0.6912685508405259"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-27T09:10:11.031Z","0.0.1":"2024-02-27T09:10:11.327Z","modified":"2024-03-26T07:56:30.563Z","0.0.2":"2024-02-27T13:29:12.422Z","0.0.3":"2024-02-27T13:32:45.429Z","0.0.4":"2024-03-26T07:56:30.116Z"},"maintainers":[{"name":"anton_joymon","email":"anton@joymon.se"},{"name":"axenu","email":"simon@axenu.com"}],"description":"To install dependencies:","readme":"# joymon-admin-user-portal-backend\n\nTo install dependencies:\n\n```bash\nbun install\n```\n\nTo run:\n\n```bash\ndocker-compose up\nbun run dev\n```\n\nTo test:\n\n```bash\ndocker-compose -f docker-compose.test.yml up\nbun run test\n```\n\nTo migrate:\n\n```bash\nbun run migrate-dev #development\n```\n\nTo seed database:\n!OBS it deletes existing data.\n```bash\nbun run seed-dev #development\n```\n\n## Knex/Objection\nKnex is to connect to the database and handle migrations.\n\nObjection is an ORM that handles modules and query building.\n\nCreate new migration\n```bash\nbunx knex migrate:make migration_name\n```\n\nRevert migration\n!OBS this action is destructive to data\n```bash\nbun run migrate:down-dev \n```\n\n## Sentry:\nSentry is initialized in app.ts.\nChange the dns in `.env.production` and `.env.staging` for new project.\n\nThis project was created using `bun init` in bun v1.0.22. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.\n","readmeFilename":"README.md"}