{"_id":"dynamo-bao","_rev":"39-fdd57b143cf7f1d00f3aedace01d6840","name":"dynamo-bao","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.0":{"name":"dynamo-bao","version":"0.1.0","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.1.0","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/adriangraham/dynamo-bao#readme","bugs":{"url":"https://github.com/adriangraham/dynamo-bao/issues"},"bin":{"bao-watch":"bin/watch.js","bao-codegen":"bin/codegen.js","bao-create-table":"bin/dynamo-bao-create-table.js"},"dist":{"shasum":"da7532f9addac7084d65875d00a7c5a94754e460","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.1.0.tgz","fileCount":29,"integrity":"sha512-kOS+F6N25XLM2jjccZI9K7cKx3ni12l8GT/CVr9KGVAevLN6WFmkjygW3YVSIoRlqRdn0Bab634ogKNLjoLOYg==","signatures":[{"sig":"MEQCIBMmH/EKWJWLrR0KGp3o1mjZ1BrDKWfAzdVzWm1CagF4AiAKdmXDJxDAUXJPJXFeqLl8rV9fDVorC/rd9eGLJNOXGA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":157002},"main":"src/index.js","gitHead":"13456a20ef632ecad665120a0d291fed16f9cdd0","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/adriangraham/dynamo-bao.git","type":"git"},"_npmVersion":"10.7.0","description":"Simple powerful data modeleling primatives for DynamoDB in JavaScript","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","@aws-sdk/lib-dynamodb":"^3.521.0","@aws-sdk/client-dynamodb":"^3.521.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.1.0_1734655860775_0.749150893698886","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"dynamo-bao","version":"0.1.1","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.1.1","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/adriangraham/dynamo-bao#readme","bugs":{"url":"https://github.com/adriangraham/dynamo-bao/issues"},"bin":{"bao-watch":"bin/watch.js","bao-codegen":"bin/codegen.js","bao-create-table":"bin/dynamo-bao-create-table.js"},"dist":{"shasum":"e8d6e68542505b9500d21084d6642704cc8d2270","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.1.1.tgz","fileCount":29,"integrity":"sha512-Oyo+4hPNFYmdCAPmHkNp8nXNpfyT4iPj6yPMBwju25ykkEBWLDq0Uz5k0yzF5Cw7NQitwQxAIEV/kL8Oh9vM9g==","signatures":[{"sig":"MEYCIQCPJlrrCPCngMPmzE/ZQMKd52TWK49TAui8w8+LMcAr2AIhAJyB9h9nH90TdrWTn4FXJqo/stBpu3AVHBu86jpSUMTH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":157748},"main":"src/index.js","gitHead":"b05be062f2a9065b646e485404b3fe2ed3266f0a","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/adriangraham/dynamo-bao.git","type":"git"},"_npmVersion":"10.7.0","description":"Simple powerful data modeleling primatives for DynamoDB in JavaScript","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","@aws-sdk/lib-dynamodb":"^3.521.0","@aws-sdk/client-dynamodb":"^3.521.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.1.1_1734715572962_0.09266099703015529","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"dynamo-bao","version":"0.1.2","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.1.2","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/adriangraham/dynamo-bao#readme","bugs":{"url":"https://github.com/adriangraham/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"6312cbc47f9546fa3051dc84518c69a1704f53e8","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.1.2.tgz","fileCount":30,"integrity":"sha512-0qD3Rvc0/GYvpLehzZ5d+ynEeuQAa5s7nWyJi0jmi7Fh1wqpq3sVIBh9AT/7mvyKnCMhvZ+QoB6Sl4gfrYFRsg==","signatures":[{"sig":"MEQCIE1xv9Rq/TF7avLDVyap5T942+71yvhZpt3yEcWGFI/VAiBhKYYLmZEEUWQjBLdYwXOv/8OVaYfLm//qvxiE7kde8A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159701},"main":"src/index.js","gitHead":"4a27abbb9f63650f1fed2e8ffbafcc870586d0a1","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/adriangraham/dynamo-bao.git","type":"git"},"_npmVersion":"10.7.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","@aws-sdk/lib-dynamodb":"^3.521.0","@aws-sdk/client-dynamodb":"^3.521.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.1.2_1736376561353_0.24405808394507122","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"dynamo-bao","version":"0.1.3","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.1.3","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"ec73923e4ba0e52af58ce2506c4f59f3655980cd","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.1.3.tgz","fileCount":31,"integrity":"sha512-uHQgquX0L6Wg8ZiKGDuHactq/0OTGJjL8k684/uHQYCTXLe8+zMZXWvNXiQsTRUEqmA0v7gkpgPmq8Vyxm2MRA==","signatures":[{"sig":"MEUCIQC6YKzb+gAS0T0aWJ57fnvM6rFkeMVeD+XcYl4sT7EoXAIgLlh07X3q+omjEEzGyzqDnY2CvwQ68tkrKF7rTtlJpB0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":160940},"main":"src/index.js","gitHead":"14b08a4d58d7bfb90677ef817de223dcbebbdc75","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"10.7.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","@aws-sdk/lib-dynamodb":"^3.521.0","@aws-sdk/client-dynamodb":"^3.521.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.1.3_1736548825398_0.8180283448389585","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"dynamo-bao","version":"0.1.4","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.1.4","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"705c3de234f386fb40b204909e626ebcf4621d94","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.1.4.tgz","fileCount":31,"integrity":"sha512-NqvQDFAcbENyP5XlPC6rl0x+FLolD2IQ/PR2+NG/5uVbAOxwupG3jIDtUN+cnGcXZqTxqM0b1knLprHEriGe+g==","signatures":[{"sig":"MEUCIQCqNIWMo9AbdUB2f3Yd+lkZqRBFxAwOEhVvU0WQgJxicgIgKZ8ewLi0EphaDhUKPWS0rL4BQ8NBgoO1Z04MB093IYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162322},"main":"src/index.js","gitHead":"3bc289e80db96725e5d624ddddecf77f833ca0a1","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"10.7.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","@aws-sdk/lib-dynamodb":"^3.521.0","@aws-sdk/client-dynamodb":"^3.521.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.1.4_1738124623651_0.7131056408650438","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"dynamo-bao","version":"0.1.5","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.1.5","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"2b0c305a4564dc3c18776deb8336d6a14c608cde","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.1.5.tgz","fileCount":31,"integrity":"sha512-DYl1PgRVp7sFAIb3sUljcI7CaehH1ZZTQyIf5qW6EL7Jz56i+tdkcom999QsEEzaj5qTpm0ZxsEs/oUyfAtIjg==","signatures":[{"sig":"MEYCIQDOGyd9peeJPpv/X3xf1dSBP5w80PJvIbAp5WIbIrHRbgIhANP6TaIwIm+KwhzoLy2XaiN47PRfhXeYVCa08nr5JStj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162351},"main":"src/index.js","gitHead":"fd9e6f2d11c5ce78c811aec0940e4d90b5e75453","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"10.7.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","@aws-sdk/lib-dynamodb":"^3.521.0","@aws-sdk/client-dynamodb":"^3.521.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.1.5_1738126239012_0.29771228416675966","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"dynamo-bao","version":"0.1.6","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.1.6","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"9364fa75d3534b1ed862329820b650f6ccd6e11e","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.1.6.tgz","fileCount":31,"integrity":"sha512-cY1/c80r4H7Awk+N/xPKM8dWt00Y5XrApgEcUq5Atl+yqcvwE4NWZ4BDfCLtlt/FTW3/RnIU4V9ww9FS3mTMcQ==","signatures":[{"sig":"MEQCIFLd9W2syAC6iAyuLqbLFYLwL+NEO34ZXRxwW1pWcR0/AiBhOD45kAiEMpHEzl8YO7bXwo6UG1hauj61JUnl+Um9Tw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165508},"main":"src/index.js","gitHead":"9e24af3a2aa3e3bfcf1bbe346a6ddbcaf820d806","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"10.7.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","@aws-sdk/lib-dynamodb":"^3.521.0","@aws-sdk/client-dynamodb":"^3.521.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.1.6_1738210191073_0.9642904889683577","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"dynamo-bao","version":"0.1.7","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.1.7","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"71fce6230d8fd94ac0c864f1c6eff646b2839ff0","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.1.7.tgz","fileCount":32,"integrity":"sha512-xM+4K3fl0tM1jdxUvA7ndTGp/wiGlJcAiXv0YJyh0cSDi1dhwwUvkqjUEDuNoA+ItsZPu53m5VPFHF95QAidjw==","signatures":[{"sig":"MEYCIQDON3YQlLcgR6eu7Pz3tnIg3tD25M/w8vu7ccLJCMvXUgIhAPfStR5XpGZ3gkrO+qk7IsBeANYXBC387tPc+9A5Znq4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172492},"main":"src/index.js","gitHead":"3a8a491cc258e67beef86954ee6eaf9c7977326a","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","@aws-sdk/lib-dynamodb":"^3.521.0","@aws-sdk/client-dynamodb":"^3.521.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.1.7_1748984812325_0.43043310644653876","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"dynamo-bao","version":"0.1.8","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.1.8","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"842540fb5386b2f70c9abd193dfc94c06ac83f70","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.1.8.tgz","fileCount":32,"integrity":"sha512-wSGjdhVbstzT3DhY33qXP6fgDinEXDm4hLf4mLIZi7pDw4NSW9rkU0sSCcuH227zrFovrLnVelRQHeHWDuBx2A==","signatures":[{"sig":"MEQCIEAa2KxhBeOP9jWWnSH1vzxMm+UytXG8Y+1/xPFQrYpEAiAOUWh1SqlFwkYptYw8s0qSne6jVRI966Vyy2jMy8iR+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172510},"main":"src/index.js","gitHead":"36618c4d558b44581611f17f03b5f3c363756acf","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","@aws-sdk/lib-dynamodb":"^3.521.0","@aws-sdk/client-dynamodb":"^3.521.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.1.8_1748993459598_0.7899535979635339","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"dynamo-bao","version":"0.2.0","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.0","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"63c80821eddeb53ae5bab454330bff129b37a554","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.0.tgz","fileCount":33,"integrity":"sha512-myC/MP6xCy0vahcYQnzMXk01GrBQAU6I70rOPTi4nSvYC1Kj8vPeegGsrQh2qQVi0Ye2/oCKJtTOEZoDFtelTQ==","signatures":[{"sig":"MEQCIHuEi/BUWr0OxPAsFetYvcdKm9r6cuD2pKO6zBesf05cAiAwWKY4YgH/iUyJ+6cKBJVbERD/mp3OhIEykSCgGrl+Hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191946},"main":"src/index.js","gitHead":"3f49a7d8af7a4afb779a909e28a223ac6f601790","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","chokidar":"^4.0.3","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.0_1749594239476_0.6857585762023797","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"dynamo-bao","version":"0.2.1","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.1","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"aafc304176af5ea6bd5230f1023f32429357dd51","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.1.tgz","fileCount":33,"integrity":"sha512-N1ozy2ODtG7J1t0+qm0R5bQuCEK1KfnCrGyXqXz15bj0u7Yibtm2xbfxPlfJAoqC1z+UWtbA1oxNBW3sTn1VLQ==","signatures":[{"sig":"MEYCIQCHdJ2YVEyYK6WvX6SGwDELtOlJ/tCEYxXMnszKAUfqwgIhAN2Qb1oUh1jN7XDIwDCUbUSzpmAwl0IzDgVgD1uGdHak","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191946},"main":"src/index.js","gitHead":"a58a61a8b24107eccc4d389fa9edf2d2837b23ef","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.1_1749594820228_0.32238663713837856","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"dynamo-bao","version":"0.2.2","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.2","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"cb8c56b79df74d94eb671f9f3c68cb17e94ed199","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.2.tgz","fileCount":34,"integrity":"sha512-rcwiXzEDMEg+ujEdL3BUdVIp4xr4W5PsrHJZKbl+yMD3OSOoI5a9w2q40i7OXDQkmKc1rlAQQ/7Tf1iVJlwM8w==","signatures":[{"sig":"MEQCIFMkVAZb/saXpEw8TWpZfcnXWPqdJYJauRFp8uchSsgwAiBTbmbgttT2FqoyWjUveYTMC3awsbb1XWfN68QYzcjzmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205131},"main":"src/index.js","gitHead":"fdebc5375d5f7d71998d899a3ae43bdc07058232","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.2_1749745989899_0.683575763849736","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"dynamo-bao","version":"0.2.3","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.3","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"80f90cd429ee288fb00197c9398f060bda1d3e3e","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.3.tgz","fileCount":34,"integrity":"sha512-eRpMklFmZsAK/DjtUpYEn9S0p8pMc/f+F+q8qEoH2tJOA9/ySGWlI0N/OsmX/ZPc85IZdJT/xpMLe6l18X5bSQ==","signatures":[{"sig":"MEUCIQDKJYGaelB0N3oDw12mBpBwiPtzxZDriru3Tb1Cj++aeAIgCziavR4CHzkQVLu7RAXjRY9V7m8cNp+QLerE32U2YEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207276},"main":"src/index.js","gitHead":"186b87b868734f8733912d43bee64dfa6904ba3e","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.3_1749748865925_0.23324368660744166","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"dynamo-bao","version":"0.2.4","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.4","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"85fd2e8d8c17a52cc635e0129f77786f3a4a51e0","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.4.tgz","fileCount":34,"integrity":"sha512-9zOuz2xIVXvZFCkbibwTsnPbLc6CoiKExZPjCFSGgrvOjHFcPVhuXNHmxma19lfFWUQYIdQNtEVE6WAHmRmiFw==","signatures":[{"sig":"MEUCIB54i2HQ7+msbaLk4THlS/YilQBFgJJX99RezQ/sfsz9AiEApVb3xkdPTnm6YTiN46yQcMDFw270/aM3OKeuvRhV2dc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207466},"main":"src/index.js","gitHead":"2a7483708e3692d83423d0562a1194f43eac3b62","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.4_1750109416473_0.8300296870921562","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"dynamo-bao","version":"0.2.5","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.5","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"b8ed9f85f1531e3f3c327244e30c3b503b992051","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.5.tgz","fileCount":35,"integrity":"sha512-yS0xOCMLe5fE2KMXgFtDyE5Szi0Bl7wT3S+DwSwf3LOv6YXv+rCXd4ExDAMj//xqo9GG174uZG59IyFIvq3QZQ==","signatures":[{"sig":"MEUCIQDsIy+YESSh+lcWre9Ol8LR9mXAAmUH4SRqmCgdviBKIwIgBRI3B07sWK6LgsvsROiBeHVSgyGoFq10NrZOYmBRHY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211121},"main":"src/index.js","gitHead":"dd8d834bdb26ec48e6eb3750ab66454ed1514a9f","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.5_1750112142402_0.0753022426185197","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"dynamo-bao","version":"0.2.6","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.6","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"4cd24be5340cfb3a4a51fcb06dca47fd054ae5c1","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.6.tgz","fileCount":35,"integrity":"sha512-S/JWop+HiKpbyyPaP8/MRaefcHtVHurJzyzDD8IXWG0plRb7pa381S/a7LJIBnl6a26fFEai9AhBhW4DPm4qYA==","signatures":[{"sig":"MEUCIGkqD+zNJeVz469E4kXBZHA/nsRsjZkV8rz8W1FkLiSHAiEA6d+DK8y8u36MGCDELDmLav6WYEbjGqN7L5Kjk9FC51U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211015},"main":"src/index.js","gitHead":"7525fa848bbac599c5afeb7b933b52fc52b311f5","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.6_1750113414340_0.1548619342818709","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"dynamo-bao","version":"0.2.7","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.7","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"f3f25486173b9bb5ca62a42df03efb91dbf7c0d0","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.7.tgz","fileCount":35,"integrity":"sha512-jp/hC1ZPmiyuovHzk1i6RxvOSWaLHHuTPPNY1EccpRuKA0AEwBNztbpgxp53ZHrFOrtzZO1P/NIONADXM7wWbg==","signatures":[{"sig":"MEUCIQClWPMs653O/uRUgMGb+mIK5zg1Qs+hx2UFQTwGC24bXwIgQ1FXnPi1ZyHX9nOyjdJBSXLo1WBJ8j70YFmMxrMTjRA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211105},"main":"src/index.js","gitHead":"913e724bb1c5ee4e459cd3d59c3e16bafc6d538e","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.7_1750113855041_0.38035092837713913","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"dynamo-bao","version":"0.2.8","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.8","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"99aae1f8872be5428d73a0796bbe4a1a736ebb5b","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.8.tgz","fileCount":35,"integrity":"sha512-TiMcahl4vHNpquH+G09VtZlNbbhtVrdIIK97ljFjz7rf8QPpRRZmehhwY82qBqSH71MDA8hIrsED4ypLL0nC2g==","signatures":[{"sig":"MEQCIBaK0v/9Jk5Hn2/K6WCntbt9wQmm9FSobrYi1zGkYY/hAiAmpFMPbEXaH4KrkDj4/LmuDSFS8fJA9NhWMMmI+kPGFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212598},"main":"src/index.js","gitHead":"a0526818759158c6344ff206012184dafdb46f05","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.8_1750117137395_0.3376481731588965","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"dynamo-bao","version":"0.2.9","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.9","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"3405aed8e630cc0e71423a3815c03e0f2cfe9fa7","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.9.tgz","fileCount":35,"integrity":"sha512-05J5u4x76oYzJDs+QnqYvGhxpTF47NG/3e2yr/Rr8HIR1+7nnVgUvuM8AcjCVR+WNnBS8hD3+1Yv/WK9+x1VIA==","signatures":[{"sig":"MEYCIQCDJDlCzdG0TXKbSqtnO9FHlCr99DkFEEZQkFhAAte2GAIhAMlVB9vRIinoJC9jHdiDXhDrMQMHq+nt5eIC09Zc8+UW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218266},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"bfbf2c02a987f3d1ec6238a0c53f63b61da19a3f","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","actor":{"name":"adriangraham","type":"user","email":"adriangraham@gmail.com"},"email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.9_1750188596405_0.429170625807509","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"dynamo-bao","version":"0.2.10","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.10","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"9ba6ba7f6f63cc967d20f928bd116f288dd1625e","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.10.tgz","fileCount":35,"integrity":"sha512-BdLBMFpyQceflxMtoQHIGK5lIN1fQSVy50c5Y+ZeX8nVOuINapnxHHkYOr4V5PDEAHSchme4jNIBHUl/B9QG8Q==","signatures":[{"sig":"MEUCIQDam9olgWMPw54xz47765+aq5/fWVoVJo8/omstQi6+KwIgV2uArbQ5kEWTX5cjrCIm+C5W/UbHG4NWuGXwr7ZDerQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218234},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"cfd735fc7198b4b1669bb09b5a903dccd66a807f","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","actor":{"name":"adriangraham","type":"user","email":"adriangraham@gmail.com"},"email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.10_1750204481975_0.7368053627661839","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"dynamo-bao","version":"0.2.11","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.11","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"c3fff8a8c7fc4be1608cd8fe181da89fa87da85f","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.11.tgz","fileCount":35,"integrity":"sha512-pwyRUq1/wCBf5eukXXmgXeqHXOwEsfJjK6/7ROzXwPQwiS8f7R02PdEsnJK6uEBYZalmzomqm0zRgNnV34Zv7A==","signatures":[{"sig":"MEUCIGjSDeHFc8KC5Hw/JHPrbtt4Pz2eSOuKv0FEsnGvgLiTAiEA6chMZbHFcGvnVpAznCpd6R2KOmWwHwFr63CpPiFAD4w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218254},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"b82726b66bfbdb77bcd6dc3850283e78e6250b18","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","actor":{"name":"adriangraham","type":"user","email":"adriangraham@gmail.com"},"email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.11_1750695397058_0.3884742794943228","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"dynamo-bao","version":"0.2.12","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.2.12","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"5396109e72986d4c6797c6971c89337a27babfbd","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.2.12.tgz","fileCount":35,"integrity":"sha512-OUrSPWXybheNGEMu4LIzBkZJboYSzMupyDF9Q0byxJLnLDgBzeLxMDQg5BeGE4dsF6DweMJZd0bU5YIZj2ABTQ==","signatures":[{"sig":"MEQCICEEbspere9+AJLmuXff9iGsf7XLkidK2XwuzmWy183tAiApDTZRO5lwcgEhdKbFoACgA3Sf9m9UDKr/G1gOo3tcQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":221544},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"2412c75ae4c152cb3c19371cfc341ebca331d8ea","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","actor":{"name":"adriangraham","type":"user","email":"adriangraham@gmail.com"},"email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.2.12_1750878123703_0.6775505309563723","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"dynamo-bao","version":"0.3.0","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.3.0","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"34f9e193acf7184ebd9cf7e0b71b0434befa695d","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.3.0.tgz","fileCount":35,"integrity":"sha512-b5dLU9DWok0A4RCgBM1xFEWdtpQ+lHvLHDT2OZItP4vkAsMi44afOkH53pY1tOQbhZCl8OkoKWWhWIWtWznc+g==","signatures":[{"sig":"MEQCIFWydiX8rDWcyQyWMtJuTuYa/BEqR7aFr9vYuy72MoVNAiAoz4iskNwpn8lJ8eVBHhEHTDznLpNFvAyvlIVQaZvYRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226362},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"7928132f6abae78501671def4b8b47acaadb0367","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","actor":{"name":"adriangraham","type":"user","email":"adriangraham@gmail.com"},"email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.2.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.17.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.3.0_1750896522076_0.10747289389745163","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"dynamo-bao","version":"0.3.1","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.3.1","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"05153eaedb6aea2e90cc110b811d24184504fca4","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.3.1.tgz","fileCount":35,"integrity":"sha512-tJ/sLntvbmztW6HNPs7XmDztzV93fYMpIXAHHNgd0uIHMnZEcy9O97T9sjFYf3ud2u0g4gooJFZ/zsZwJpy5kg==","signatures":[{"sig":"MEUCIQC6pT/ClLDiJHBQ6h7vuxhGpeQ3QgLqHT287k/rO2sA+wIgX0mNJ/zZ2qGUOdQHcLxsWxJ6NYnRHjx5kr/eO53awJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242451},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"49e47edb453dac83ad0233e6cdbbdee040a3e793","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"10.8.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.19.3","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.3.1_1752622684304_0.5546133122768511","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"dynamo-bao","version":"0.3.2","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.3.2","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"8002ffb6296b9ef5c51681abb7e35ec815b9f846","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.3.2.tgz","fileCount":35,"integrity":"sha512-zTrtQepzWsXZait63mQyy+j63WuD19OdaD6ogEACqRf+g/hNaJ/NyYFBWPHEFLNStggu8ayZNsgtgagdHiKQMQ==","signatures":[{"sig":"MEUCIDxHaXa56z3hcshJ4wmxXZ6h1nN1Oua6AyghPG66A1hDAiEAxSQxKUd7x1kUG75Mi59EbublCkdCVJzXzSO+ZJIdltA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245944},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"c3974c7060d0b3bef6a349d86374e9fc8c8c5380","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"10.8.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.19.3","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.3.2_1752690076171_0.8780480844064196","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"dynamo-bao","version":"0.3.3","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.3.3","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"2fa4f79b7d73b02078ce9dcbe9d684049f9d91a3","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.3.3.tgz","fileCount":35,"integrity":"sha512-gR4AJ9GgCVuxdS7bYiz6RXdVP2w6zigRCRKrpx8IPyeaJwfBRzNcTPPET2PzBTGbWcm8bClVkPdWTzDUu2S5iw==","signatures":[{"sig":"MEYCIQDqEv4MpT4cSe6+FeJvmdP9GpNNgRx7hkmuMtchKhIGkAIhAMJBapJ/kvbxQEMC0SbakuY05/tUIgK1/0VJ8Cd5E5Kj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245978},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"e6c42307e7b91c3763822d1b71743060ea6beabb","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"10.8.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"20.19.3","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.3.3_1753392627675_0.503207007883266","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"dynamo-bao","version":"0.3.4","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.3.4","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"12e2812b9b7c75947f45ac416ceff387d13fc21b","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.3.4.tgz","fileCount":35,"integrity":"sha512-z72HWXeaC9gv3IVtYPeJD/n6q9qsjX+gkb2Q2fIDtBEoogEvWb4LN7dJVvEFbyg7NEdBtadTnetm1sR0HdlWtQ==","signatures":[{"sig":"MEUCIBu0O/LRcCi02sJR3y5FpIDquGB/lb6P8qWx2nywHKvaAiEA2ywjQbFbKiCRdL3ggZpEBYi3g6ikoGGtFztNkbtaxzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246025},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"94be60bddf5e4ca10d84c383b49b19713ebbbfa3","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"10.9.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.3.4_1753489260562_0.07368320413276463","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"dynamo-bao","version":"0.3.5","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.3.5","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"ca9d9d6cb60c7542649a3724848bed5bcb67500e","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.3.5.tgz","fileCount":35,"integrity":"sha512-a6yi+Hf4y1WewyA+srJHM58unnfe+epJV1tPruU8v2SsEfkYoPQpVhopn8F3DcsAxE6zUt1N42Oxygc/fQRI4g==","signatures":[{"sig":"MEUCIQC6m9kcLDozqWJx49HAkcwxByhczf18ikYGuuZ/KML23AIgRgfW/lWK+kTe4VZYGNxYyskU+7NwsBZbjWhqnJwmLlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247346},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"e7756a5e15835cfe6ed7a29589f4eb7ca7af9b12","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","serverless":"^3.38.0","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.3.5_1761172668636_0.3275224616941652","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"dynamo-bao","version":"0.3.6","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.3.6","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"dd3757e52a455aa2bf3830fd4b9a8774ca92e10c","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.3.6.tgz","fileCount":35,"integrity":"sha512-tFEkO8B8d/xmqdTtv9kCQv6RqBBumGr4GROCPZS7jbLMbS6WlBDASlWPmzhrEoHnxd6F5IsKz8m0BKedhHc5ig==","signatures":[{"sig":"MEUCIQDSzIJ/XIzZkW1MCfVQ2FwYGBAY1vjXWIhkjSLy7C39HAIgJUZ4T0wYIRHISwh4mDd8EZjUsILhQgx2tnwcL6Rx+CE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247578},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"8b694c5e7786412b50e480e474f9f0292d9c5563","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.3.6_1766010956907_0.4403858269266814","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"dynamo-bao","version":"0.3.7","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.3.7","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"b5096a25db20e266a671bba5c848083b28c9c840","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.3.7.tgz","fileCount":35,"integrity":"sha512-+8u6PSil9U6dkoRSVGFyQ0nhwxUtCU2cPuVzYFe+llB/OyolfsgmHSSrPofwJb5HfvGpZ7w9jFsgl8gFEylQcQ==","signatures":[{"sig":"MEQCIG1HylXklUOrQofUOhDUU76EQNl71kSY9FBhz8Ofly8VAiAC6AKBLs1QhSZkJKEDrETwUhQ0uiA/oZBTkbluV6tIIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247700},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"b108328d6351e80fdf84b2ebc1ed27822aa64c77","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.3.7_1766011702349_0.35189555087362434","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"dynamo-bao","version":"0.3.8","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.3.8","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"ca48944ca80d106fc7bb6a3b87c671c844b0092d","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.3.8.tgz","fileCount":35,"integrity":"sha512-kc+bw9tkz+wRk5SQ7sZpm1cACeqvehiIF+pMqXMye6mr+DMrAp4tTRt5iuGd/XCgr/cnhMTkFio1Dtr2Y7T1AQ==","signatures":[{"sig":"MEQCIFqsLliy/OaUpCZH1QJUV0tFydV2+pV/icj4RgLEDAFAAiA/3BJWbKL9HyIw/YCB6zPBMZoT2DhXA6z5SvxQhajJoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247698},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"8f283525cb530f040e11e6239317f5863795263f","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.3.8_1766011930862_0.08156564323067306","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"dynamo-bao","version":"0.3.9","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.3.9","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js"},"dist":{"shasum":"d2a4493c6be04da6e9649b6ffd8959a3e0a47381","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.3.9.tgz","fileCount":35,"integrity":"sha512-ezamSID+D6JDHffEJ1ME8Z/Z7SJpfc9peSE7qw+e7AMgvI3teYpUQsFc6hitOEDbZxsTxE/mFfVMmUfJENL0jw==","signatures":[{"sig":"MEUCIQD2yNoDJ38/53jPxoEhbBuw3PhTJWHf9EdjrbkSdvR0MgIgYREvs/G8GwhlPRKIWAAqISAf8QjZlWIL+EDaZ0l2jQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251975},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"f3a200f6417ce93eac0f790e86fd916d7f4af78f","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.3.9_1769377986153_0.736592314514559","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"dynamo-bao","version":"0.4.0","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.4.0","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js","bao-update-table":"bin/dynamo-bao-update-table.js"},"dist":{"shasum":"cc42b03a6d50b82af2aa3f663e15f922e69ab797","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.4.0.tgz","fileCount":36,"integrity":"sha512-UKDQ6s18QFOcXE002w/w6HyG+hE2cORR+DJDZl1EF4E8olwOnkrZ4uKk8kRxZIwGXibyXacMUtH+4Jm36joIYg==","signatures":[{"sig":"MEUCIDwhbtlq2GrW9bPWF41WE5Igj0uNo298d7qGOZ+yP7C0AiEA7JueVYFV/NAc0xKTHSM0Ej5uOXZyWxlqxTdV4VhTlFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263459},"main":"src/index.js","exports":{".":"./src/index.js","./package.json":"./package.json"},"gitHead":"14552587459b8e1bf08395b2b94aa237132ce7bc","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.4.0_1771282036862_0.7264414032167335","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"dynamo-bao","version":"0.4.1","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.4.1","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js","bao-create-table":"bin/bao-create-table.js","bao-update-table":"bin/dynamo-bao-update-table.js"},"dist":{"shasum":"26cee40590c4cbc9e15f31f0c01e56e11ca4a480","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.4.1.tgz","fileCount":39,"integrity":"sha512-5SkfFaDyeKFxhqDMk6iigkTObsxBITHzcoWgh71rWo8CGCJ1jm8bjeAoWgOiH2huzDYfaM1WyrWpXHE6YajdxA==","signatures":[{"sig":"MEUCIBHrNPuTipSc1mS6s6RnyM5Ct0NcXkMKdX5lU8w0rltlAiEA3LUrV0JSKLd/Ptc3+OxyCW2rfekGaX9/8BjGY+6SEto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264753},"main":"src/index.js","exports":{".":"./src/index.js","./src/*":"./src/*","./package.json":"./package.json"},"gitHead":"477a5dbcb5a87031af8f7834d505642cfe2f1b53","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.4.1_1774983179526_0.03142646981966646","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"dynamo-bao","version":"0.4.2","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.4.2","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js","bao-create-table":"bin/bao-create-table.js","bao-update-table":"bin/dynamo-bao-update-table.js"},"dist":{"shasum":"a8e8e0557a511555fd82f0e0fd134bc68a8e2bbf","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.4.2.tgz","fileCount":39,"integrity":"sha512-WKz/5ZzC0UAFySNtvI3F1h+PW+ge1L1fUdIMXIhSp1f3stqqvfB/yl/rpSVT1p6vygki2sqFKZE1q6oOR6OHjQ==","signatures":[{"sig":"MEUCIQDwE5uWGT7zz5gDKXjeg0CI8mF8FON9wmAk7qbnMSGyMgIgUSrEBGjtNqoQsc5eoGsiUsOxC2UxO6V6ATyqTbPPr7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264506},"main":"src/index.js","exports":{".":"./src/index.js","./src/*":"./src/*","./package.json":"./package.json"},"gitHead":"a729610d70543273a531564ac6fa370927a505cc","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.4.2_1774999726882_0.9329743800096373","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"dynamo-bao","version":"0.5.0","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.5.0","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js","bao-create-table":"bin/bao-create-table.js","bao-update-table":"bin/dynamo-bao-update-table.js","bao-rebuild-search-text":"bin/bao-rebuild-search-text.js"},"dist":{"shasum":"10885e259f47899b1c425268a6bcb6f296e1b6f4","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.5.0.tgz","fileCount":42,"integrity":"sha512-RNA5he/KNk9DF0TQMZY4gnNr/PtoDp7chL1SfzcCP5eksfjT2P+P0rVWmA9r5XLFba244yeyGcZFsaBMXcpKmQ==","signatures":[{"sig":"MEUCIQDZcL7fZ9RwWm70jyDqdBlk3qxKJqbRN3uLr8P8BASppwIgX+2U6Lsyk+V72gH2fjebmolT96KjjUMzvuDNSOOD810=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287720},"main":"src/index.js","exports":{".":"./src/index.js","./src/*":"./src/*","./package.json":"./package.json"},"gitHead":"73d10995da2cbc35e82f5269f4c18fc5eeb22e5d","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.5.0_1778106729860_0.6006818283910469","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"dynamo-bao","version":"0.6.0","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.6.0","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js","bao-create-table":"bin/bao-create-table.js","bao-update-table":"bin/dynamo-bao-update-table.js","bao-rebuild-search-text":"bin/bao-rebuild-search-text.js"},"dist":{"shasum":"aed7f6db59e5db0e3efc252d15276edc69610bed","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.6.0.tgz","fileCount":42,"integrity":"sha512-uTKodj5Hqe+jyKQS821vDxhHKKdY8HHVyiKBXON8V5oU8fFcuLujDKNaIJR3j29QP6YpDvJ07kQJr+V+4HmU0g==","signatures":[{"sig":"MEYCIQDpaeZwKFkygR8x9rnxvAOiez7i6XS9QHF7xgVctAg7tAIhAOjlyZHH7kh4EI4JyEFs4yWlXnNqdcCap29fcFMLepY1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313040},"main":"src/index.js","exports":{".":"./src/index.js","./src/*":"./src/*","./package.json":"./package.json"},"gitHead":"4d323079f515ad9ad5e09ab0d82e96d49442361d","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.6.0_1778276280393_0.1697393713382862","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"dynamo-bao","version":"0.6.1","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","_id":"dynamo-bao@0.6.1","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"homepage":"https://github.com/aag1024/dynamo-bao#readme","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-watch":"bin/watch.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-codegen":"bin/codegen.js","bao-create-table":"bin/bao-create-table.js","bao-update-table":"bin/dynamo-bao-update-table.js","bao-rebuild-search-text":"bin/bao-rebuild-search-text.js"},"dist":{"shasum":"c58a9eec3f43a25b92381cc38425c7c0b0a8117a","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.6.1.tgz","fileCount":42,"integrity":"sha512-SLtV/T3iLCqd7k5bdUAcbDfbhuSjW/s0AGl4sOyjQaUkd8pVr6yjzAUgjocq4IasXT8uyKX7J0i5+6m+k8VFmg==","signatures":[{"sig":"MEYCIQCFaaVbg9bxQ7G54AWsEasGvLUUIMkedX04fIrOHsSEBQIhAJmHrp5e3HGQt1nOfm6t9SgAt++HhXHOghtB+xB0dFff","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313073},"main":"src/index.js","exports":{".":"./src/index.js","./src/*":"./src/*","./package.json":"./package.json"},"gitHead":"2c5929651a5ac95ad50d502724d7fb1ad60ec8c2","scripts":{"docs":"jsdoc -c jsdoc.json --verbose","test":"LOG_LEVEL=OFF jest","watch":"node bin/watch.js","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js"},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"repository":{"url":"git+https://github.com/aag1024/dynamo-bao.git","type":"git"},"_npmVersion":"11.6.2","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","directories":{},"_nodeVersion":"22.18.0","dependencies":{"ulid":"^2.3.0","dotenv":"^16.4.7","js-yaml":"^4.1.0","chokidar":"^4.0.3","aws4fetch":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","jsdoc":"^4.0.4","docdash":"^2.0.2","gh-pages":"^6.2.0","prettier":"3.4.2","cross-env":"^7.0.3","formidable":">=2.1.3","clean-jsdoc-theme":"^4.3.0","eslint-plugin-promise":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/dynamo-bao_0.6.1_1779921832106_0.2897502743530882","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"dynamo-bao","version":"0.7.0","description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","main":"src/index.js","exports":{".":"./src/index.js","./src/*":"./src/*","./package.json":"./package.json"},"scripts":{"test":"LOG_LEVEL=OFF jest","test:debug":"LOG_LEVEL=DEBUG jest","create-table":"node bin/dynamo-bao-create-table.js","watch":"node bin/watch.js","docs":"jsdoc -c jsdoc.json --verbose"},"keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"author":{"name":"Adrian Graham"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/aag1024/dynamo-bao.git"},"dependencies":{"aws4fetch":"^1.0.20","chokidar":"^4.0.3","dotenv":"^16.4.7","js-yaml":"^4.1.0","ulid":"^2.3.0"},"devDependencies":{"clean-jsdoc-theme":"^4.3.0","cross-env":"^7.0.3","docdash":"^2.0.2","eslint-plugin-promise":"^6.1.1","formidable":"^3.5.4","gh-pages":"^6.2.0","jest":"^29.7.0","jsdoc":"^4.0.4","prettier":"3.4.2"},"bin":{"bao-init":"bin/dynamo-bao-create-table.js","bao-create-table":"bin/bao-create-table.js","bao-codegen":"bin/codegen.js","bao-watch":"bin/watch.js","bao-update-table":"bin/dynamo-bao-update-table.js","bao-delete":"bin/dynamo-bao-delete-table.js","bao-rebuild-search-text":"bin/bao-rebuild-search-text.js"},"gitHead":"fae34b866266d95444916bcee144913158bfd4e2","_id":"dynamo-bao@0.7.0","bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"homepage":"https://github.com/aag1024/dynamo-bao#readme","_nodeVersion":"22.18.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-gHpzhyaCFXWCIvf60aykN7INyNs3Y7wLrGalwh+8NdXHf3KqsahfZdN/oGZ3fLEIFvrBdT+Mds0XoAAPGjU0zw==","shasum":"f09ab7230f70caff4a76c6eedb40e6110f4c04cc","tarball":"https://registry.npmjs.org/dynamo-bao/-/dynamo-bao-0.7.0.tgz","fileCount":42,"unpackedSize":329991,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD0xU/PBa40JABKeHRvoQ+J2T/lQxsk4TPv1LzB+xkUuwIgPY97e3CARvW/7YoZCYQYGh1praBTRk1wiqcoxZ34S4c="}]},"_npmUser":{"name":"adriangraham","email":"adriangraham@gmail.com"},"directories":{},"maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dynamo-bao_0.7.0_1780599790669_0.45909538991027254"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-20T00:51:00.683Z","modified":"2026-06-04T19:03:11.025Z","0.1.0":"2024-12-20T00:51:00.964Z","0.1.1":"2024-12-20T17:26:13.216Z","0.1.2":"2025-01-08T22:49:21.522Z","0.1.3":"2025-01-10T22:40:25.614Z","0.1.4":"2025-01-29T04:23:43.831Z","0.1.5":"2025-01-29T04:50:39.204Z","0.1.6":"2025-01-30T04:09:51.335Z","0.1.7":"2025-06-03T21:06:52.553Z","0.1.8":"2025-06-03T23:30:59.808Z","0.2.0":"2025-06-10T22:23:59.640Z","0.2.1":"2025-06-10T22:33:40.457Z","0.2.2":"2025-06-12T16:33:10.146Z","0.2.3":"2025-06-12T17:21:06.122Z","0.2.4":"2025-06-16T21:30:16.731Z","0.2.5":"2025-06-16T22:15:42.644Z","0.2.6":"2025-06-16T22:36:54.509Z","0.2.7":"2025-06-16T22:44:15.244Z","0.2.8":"2025-06-16T23:38:57.588Z","0.2.9":"2025-06-17T19:29:56.608Z","0.2.10":"2025-06-17T23:54:42.168Z","0.2.11":"2025-06-23T16:16:37.254Z","0.2.12":"2025-06-25T19:02:03.913Z","0.3.0":"2025-06-26T00:08:42.313Z","0.3.1":"2025-07-15T23:38:04.542Z","0.3.2":"2025-07-16T18:21:16.381Z","0.3.3":"2025-07-24T21:30:27.847Z","0.3.4":"2025-07-26T00:21:00.757Z","0.3.5":"2025-10-22T22:37:48.907Z","0.3.6":"2025-12-17T22:35:57.048Z","0.3.7":"2025-12-17T22:48:22.506Z","0.3.8":"2025-12-17T22:52:11.009Z","0.3.9":"2026-01-25T21:53:06.326Z","0.4.0":"2026-02-16T22:47:16.998Z","0.4.1":"2026-03-31T18:52:59.666Z","0.4.2":"2026-03-31T23:28:47.037Z","0.5.0":"2026-05-06T22:32:10.019Z","0.6.0":"2026-05-08T21:38:00.542Z","0.6.1":"2026-05-27T22:43:52.330Z","0.7.0":"2026-06-04T19:03:10.928Z"},"bugs":{"url":"https://github.com/aag1024/dynamo-bao/issues"},"author":{"name":"Adrian Graham"},"license":"MIT","homepage":"https://github.com/aag1024/dynamo-bao#readme","keywords":["dynamodb","aws","database","orm","nosql","single-table-design"],"repository":{"type":"git","url":"git+https://github.com/aag1024/dynamo-bao.git"},"description":"Simple powerful data modeling primitives for DynamoDB in JavaScript.","maintainers":[{"name":"adriangraham","email":"adriangraham@gmail.com"}],"readme":"# DynamoBao\n\n[![GitHub stars](https://img.shields.io/github/stars/aag1024/dynamo-bao.svg?style=social&label=Star)](https://github.com/aag1024/dynamo-bao)\n[![npm version](https://badge.fury.io/js/dynamo-bao.svg)](https://badge.fury.io/js/dynamo-bao)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nDynamoBao is a simple lightweight library for building DynamoDB models in JavaScript. I've used\nDynamoDB for years and generally love it, but find getting started difficult and repetitive.\nDynamoBao is the tool I wish I had when I started.\n\n## Principles\n\n- Expose just enough of Dynamo's features to make it easy to model many common types of data.\n- Don't break DynamoDB's superpower of infinite scale with consistent fast performance.\n- Use single table design to minimize ops overhead, without adding complexity for the developer.\n\n## Key features\n\n- Model 1:1, 1:N, N:M relationships between objects\n- Efficiently load data: load related objects in parallel, cache data using loading contexts\n- Minimize race conditions: save diffs, version checks on save, atomic counters\n- Enforce unique constraints and use them for lookups\n- Built-in multi-tenancy support with complete data isolation and concurrency safety\n- Return total read/write consumed capacity (even when multiple operations were performed)\n- Request-scoped capacity aggregation for usage metering and billing\n- Easily iterate over all items in a model for batch processing or migrations\n- Declarative substring search across iterable models with parallel cross-bucket fan-out (`searchAll`/`searchBucket`)\n- ESM (ECMAScript Modules) support for modern JavaScript projects\n- StringSetField for storing sets of strings with efficient diffing on save\n\n## Requirements\n\n- **Node.js 12.17.0+** (for AsyncLocalStorage support in multi-tenant features)\n  - Node.js 14+ recommended for native ESM support\n- AWS credentials configured for DynamoDB access\n\n## Example 1: Simple model\n\nStep 1 is to define your models in a yaml file. Here's a simple example.\n\n```\nmodels:\n  User: {\n    modelPrefix: u\n    fields:\n      userId: {type: UlidField, autoAssign: true, required: true}\n      name: {type: StringField, required: true}\n      email: {type: EmailField, required: true}\n    primaryKey: {partitionKey: userId}\n  }\n```\n\nBased on this definition, the code generator will create a `User` model in the models directory that you can use like this:\n\n```\nconst { User } = require(\"./models/user\");\nconst userConfig = require(\"./config\");\nconst dynamoBao = require(\"dynamo-bao\");\nasync function testUserModel() {\n  dynamoBao.initModels(userConfig);\n\n  // Create a new user\n  const user = new User({\n    name: \"Test User\",\n    email: \"test@example.com\",\n  });\n\n  await user.save();\n  console.log(\"Created user:\", user);\n  console.log(\"Consumed capacity:\", user.getNumericConsumedCapacity());\n}\n\ntestUserModel();\n```\n\n## Example 2: Relationships and unique constraints\n\n```\nmodels:\n  User:\n    modelPrefix: u    # required short string to identify the model\n    fields:\n      userId: {type: UlidField, autoAssign: true, required: true}\n      name: {type: StringField, required: true}\n      email: {type: EmailField, required: true}\n    primaryKey: {partitionKey: userId}  # required\n    # Add up to 3 unique constraints each with a unique id: uc1, uc2, uc3\n    uniqueConstraints: {uniqueEmail: {field: email, uniqueConstraintId: uc1}}\n  Post:\n    modelPrefix: p\n    fields:\n      postId: {type: UlidField, autoAssign: true}\n      # Enables getUser on a Post object / load related data\n      userId: {type: RelatedField, model: User, required: true}\n      title: {type: StringField, required: true}\n      content: {type: StringField, required: true}\n    primaryKey: {partitionKey: postId}\n    indexes:\n      # Add up to 5 indexes; make sure each index has a unique id: gsi1, gsi2, gsi3, gsi4, gsi5\n      # Enables user.queryPosts() to query posts for a user\n      postsForUser: {partitionKey: userId, sortKey: postId, indexId: gsi2}\n```\n\n```\nconst { User } = require(\"./models/user\");\nconst { Post } = require(\"./models/post\");\nconst userConfig = require(\"./config\");\nconst dynamoBao = require(\"dynamo-bao\");\nasync function testUserModel() {\n  dynamoBao.initModels(userConfig);\n\n  // Create a new user\n  const user = new User({\n    name: \"Test User\",\n    email: \"test@example.com\",\n  });\n\n  await user.save();\n  console.log(\"Created user:\", user.userId);\n\n  // Find user by unique constraint\n  const foundUser = await User.findByEmail(\"test@example.com\");\n  console.log(\"Found user by email:\", foundUser);\n\n\n  // Create some test posts for the user\n  const post1 = new Post({\n    userId: user.userId,\n    title: \"Test Post 1\",\n    content: \"This is a test post\",\n  });\n\n  const post2 = new Post({\n    userId: user.userId,\n    title: \"Test Post 2\",\n    content: \"This is another test post\",\n  });\n\n  await Promise.all([post1.save(), post2.save()]);\n\n  // User now has a queryPosts method (via the postsForUser index)\n  const userPosts = await user.queryPosts();\n  console.log(\"User posts:\", userPosts.items.length);\n\n  // Or add a filter condition to the query\n  const filteredPosts = await user.queryPosts(null, {\n    filter: {\n      content: {\n        $contains: \"another\"\n      }\n    }\n  });\n  console.log(\"User posts matching filter:\", filteredPosts.items.length);\n}\n\ntestUserModel();\n```\n\n### Cloudflare Workers Support\n\nDynamoBao supports Cloudflare Workers with request-scoped batching to ensure proper isolation between concurrent requests. To use DynamoBao in Cloudflare Workers, you'll need to enable Node.js compatibility and wrap your request handlers with the batch context:\n\n```javascript\n// wrangler.toml\ncompatibility_flags = [\"nodejs_compat\"];\ncompatibility_date = \"2024-09-23\";\n\n// worker.js\nimport { runWithBatchContext } from \"dynamo-bao\";\nimport { User } from \"./models/user.js\";\n\nexport default {\n  async fetch(request, env, ctx) {\n    return runWithBatchContext(async () => {\n      // All batching operations are now request-scoped\n      const user = await User.find(userId);\n      // Additional database operations...\n      return new Response(JSON.stringify(user));\n    });\n  },\n};\n```\n\n**Request Isolation**:\n\n- **With `runWithBatchContext`**: Each request gets its own isolated batch context with optimal batching performance\n- **Without `runWithBatchContext`**: Operations automatically fall back to direct execution (no batching/caching) to ensure request isolation\n\nFor production Cloudflare Workers deployments, always use `runWithBatchContext` to get both safety and optimal performance.\n\n### Batch Context Configuration\n\nDynamoBao provides flexible batch context behavior that can be configured based on your application's needs:\n\n#### Configuration Options\n\nAdd the `batchContext` configuration to your config file:\n\n```javascript\n// config.js or dynamo-bao.config.js\nmodule.exports = {\n  aws: {\n    region: \"us-west-2\",\n  },\n  db: {\n    tableName: \"your-table-name\",\n  },\n  batchContext: {\n    requireBatchContext: false, // Default: allow fallback behavior\n  },\n  // ... other config\n};\n```\n\n#### Behavior Modes\n\n**Default Mode (`requireBatchContext: false`)**:\n\n- Operations inside `runWithBatchContext`: Full batching and caching enabled\n- Operations outside `runWithBatchContext`: Direct execution without batching or caching\n- Provides maximum flexibility and backward compatibility\n\n```javascript\n// Works with direct execution (no batching/caching)\nconst user = await User.find(\"user123\");\n\n// Also works with batching + caching\nawait runWithBatchContext(async () => {\n  const user = await User.find(\"user123\");\n});\n```\n\n**Strict Mode (`requireBatchContext: true`)**:\n\n- Operations inside `runWithBatchContext`: Full batching and caching enabled\n- Operations outside `runWithBatchContext`: Throws an error\n- Ensures all database operations use proper batch context\n\n```javascript\n// Configure strict mode\nconst manager = initModels({\n  batchContext: { requireBatchContext: true },\n});\n\n// This throws an error\nawait User.find(\"user123\"); // Error: Batch operations must be executed within runWithBatchContext()\n\n// This works\nawait runWithBatchContext(async () => {\n  const user = await User.find(\"user123\"); // ✅\n});\n```\n\n#### Context Detection API\n\nYou can check if code is currently running within a batch context:\n\n```javascript\nconst { User } = require(\"./models/user\");\n\n// Check if inside batch context\nconst isInBatchContext = User.isInsideBatchContext();\n\nif (isInBatchContext) {\n  // Full batching and caching available\n  console.log(\"Running with batching enabled\");\n} else {\n  // Direct execution mode\n  console.log(\"Running in direct execution mode\");\n}\n```\n\n#### Environment Variable Support\n\nYou can also configure batch context behavior via environment variables:\n\n```bash\n# Enable strict mode globally\nexport DYNAMO_BAO_REQUIRE_BATCH_CONTEXT=true\n\n# Your application will now require runWithBatchContext for all operations\nnode your-app.js\n```\n\nThis is particularly useful for:\n\n- **Development/Testing**: Use strict mode to catch missing batch contexts early\n- **Production**: Use default mode for maximum flexibility\n- **Migration**: Gradually migrate from direct calls to batch context usage\n\n### Request-Scoped Capacity Tracking\n\nDynamoBao provides `getBatchContextCapacity()` to retrieve the total DynamoDB consumed capacity (RCUs/WCUs) for all operations within the current `runWithBatchContext` scope. This is useful for usage metering and billing in multi-tenant applications.\n\n```javascript\nimport { runWithBatchContext, getBatchContextCapacity } from \"dynamo-bao\";\n\napp.use(async (req, res, next) => {\n  await runWithBatchContext(async () => {\n    await next();\n\n    // Get total capacity consumed during this request\n    const capacity = getBatchContextCapacity();\n    // Returns: { read: 2.5, write: 1.0 }\n\n    // Record for billing/metering\n    usageTracker.record(req.tenantId, capacity);\n  });\n});\n```\n\n**Key features:**\n\n- Tracks all operations: `find`, `batchFind`, `query`, `create`, `update`, `delete`\n- Automatically accumulates capacity across multiple models\n- Returns `{ read: 0, write: 0 }` when called outside a batch context\n- Each batch context has isolated capacity tracking\n\n### Iterating over all items\n\nDynamoBao makes it easy to iterate over all items in a model, which is useful for tasks like data migration, backfills, or reporting.\n\nIteration is **opt-in** — set `iterable: true` in the model's YAML to enable the dedicated index that backs `iterateAll()`. Iteration adds one GSI write per row mutation, so leaving it off is the safer default; turn it on when you actually need to scan the model.\n\n#### Basic Usage\n\n```javascript\n// Iterate over all posts, 100 at a time\nfor await (const batch of Post.iterateAll({ batchSize: 100 })) {\n  for (const post of batch) {\n    console.log(post.title);\n  }\n}\n```\n\n#### Processing Items in Batches\n\n```javascript\n// Process users in smaller batches for better memory management\nfor await (const batch of User.iterateAll({ batchSize: 50 })) {\n  // Process each batch\n  const activeUsers = batch.filter((user) => user.status === \"active\");\n\n  // Perform batch operations\n  await Promise.all(\n    activeUsers.map(async (user) => {\n      // Update user or perform other operations\n      console.log(`Processing user: ${user.name}`);\n    }),\n  );\n}\n```\n\n#### Data Migration Example\n\n```javascript\n// Migrate all users to add a new field\nlet processedCount = 0;\nfor await (const batch of User.iterateAll({ batchSize: 25 })) {\n  const updates = batch.map(async (user) => {\n    // Only update if the field is missing\n    if (!user.hasOwnProperty(\"newField\")) {\n      user.newField = \"default_value\";\n      await user.save();\n      processedCount++;\n    }\n  });\n\n  await Promise.all(updates);\n  console.log(`Processed ${processedCount} users so far...`);\n}\nconsole.log(`Migration complete! Updated ${processedCount} users`);\n```\n\n#### Collecting Results\n\n```javascript\n// Collect all items into an array (be careful with large datasets)\nconst allUsers = [];\nfor await (const batch of User.iterateAll({ batchSize: 100 })) {\n  allUsers.push(...batch);\n}\n\nconsole.log(`Found ${allUsers.length} total users`);\n```\n\n#### Error Handling\n\n```javascript\n// Handle errors when iterating over large datasets\ntry {\n  for await (const batch of User.iterateAll({ batchSize: 50 })) {\n    for (const user of batch) {\n      try {\n        // Process individual user\n        await processUser(user);\n      } catch (error) {\n        console.error(`Error processing user ${user.userId}:`, error);\n        // Continue with other users\n      }\n    }\n  }\n} catch (error) {\n  console.error(\"Critical error during iteration:\", error);\n}\n```\n\n**Cost and Performance**\n\nThis convenience comes at a cost: every `create`, `update`, or `delete` operation on an iterable model requires a second write to the database to maintain the iteration index. This doubles the write cost for every item.\n\nTo prevent \"hot partitions\" on large models, the iteration index is automatically split into 10 \"buckets\" or partitions. The `iterateAll()` method handles fetching from all buckets seamlessly.\n\n**Default**\n\n`iterable` defaults to `false`. To opt in, set it explicitly in the YAML — high-volume models like logging tables can leave it off; models you'll need to scan should set `iterable: true`:\n\n```yaml\nmodels:\n  AnalyticsEvent:\n    modelPrefix: \"ae\"\n    # iterable defaults to false — leave it off for write-heavy logs\n    fields:\n      # ...\n```\n\n**Important Notes**\n\n- Models must have `iterable: true` (the default) to use `iterateAll()`\n- Iteration respects tenant context in multi-tenant applications\n- The method returns an async iterator, so you must use `for await` loops\n- If a model is not iterable, calling `iterateAll()` will throw an error\n\n## Installation / Quick Start\n\nMake sure you have [AWS credentials setup in your environment](https://medium.com/@simonazhangzy/installing-and-configuring-the-aws-cli-7d33796e4a7c). You'll also need [node and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) installed.\n\nCreate a project and setup some models. You'll also need to install DynamoBao locally in your project.\n\n```\nmkdir your-project\ncd your-project\nnpm install dynamo-bao\n```\n\nCreate a new Dynamo table for your project. You should have one table per project.\n\n```\nnpx bao-init\n```\n\nThis creates a `config.js` which contains settings for your project like AWS region and the table name.\n\nIt also creates a `models.yaml` file with a simple example model, and a `models` directory where\nthe generated models will be stored.\n\nIf you only need to create the table without any project scaffolding (e.g., in CI/CD or scripts), use:\n\n```\nnpx bao-create-table <table-name>\n```\n\nEdit your `models.yaml` file to define these models.\n\n```\nmodels:\n  User:\n    modelPrefix: u   # required short string to identify the model\n    fields:\n      userId: { type: UlidField, autoAssign: true, required: true }\n      name: { type: StringField, required: true }\n      email: { type: StringField, required: true }\n      profilePictureUrl: { type: StringField }\n      createdAt: { type: CreateDateField }\n      modifiedAt: { type: ModifiedDateField }\n      role: { type: StringField }\n    primaryKey:\n      partitionKey: userId\n    uniqueConstraints:\n      # Enforces unique constraint on email field and enables User.findByEmail()\n      uniqueEmail: { field: email, uniqueConstraintId: uc1 }\n\n  Post:\n    modelPrefix: p   # required short string to identify the model\n    fields:\n      postId: { type: UlidField, autoAssign: true }\n      userId: { type: RelatedField, model: User, required: true }\n      title: { type: StringField, required: true }\n      content: { type: StringField, required: true }\n      createdAt: { type: CreateDateField }\n      version: { type: VersionField }\n    primaryKey:\n      partitionKey: postId\n    indexes:\n      # Enables user.queryPosts() to query posts for a user\n      postsForUser: { partitionKey: userId, sortKey: createdAt, indexId: gsi2 }\n```\n\nRun the code generator to create the models. You can also run `npx bao-watch` to automatically regenerate the models when you make changes.\n\n```\nnpx bao-codegen\n```\n\nYou should now have generated models in the `models` directory.\n\n### ESM Support\n\nDynamoBao supports generating models as ESM (ECMAScript Modules) for modern JavaScript projects. To enable ESM code generation, add the `codegen` configuration to your `config.js`:\n\n```javascript\n// config.js\nmodule.exports = {\n  aws: {\n    region: \"us-west-2\",\n  },\n  db: {\n    tableName: \"your-table-name\",\n  },\n  codegen: {\n    moduleSystem: \"esm\", // Options: 'commonjs' (default) or 'esm'\n  },\n  // ... other config\n};\n```\n\nWhen ESM is enabled, generated models will use:\n\n- `import` / `export` syntax instead of `require` / `module.exports`\n- `.js` extensions in import paths for ESM compatibility\n\nFor ESM config files, you can use `.mjs` extension:\n\n```javascript\n// dynamo-bao.config.mjs\nexport default {\n  codegen: {\n    moduleSystem: \"esm\",\n  },\n  // ... other config\n};\n```\n\nThen use the generated ESM models:\n\n```javascript\n// With ESM enabled\nimport { User } from \"./models/user.js\";\nimport { Post } from \"./models/post.js\";\n```\n\nLet's try using the models. Add the following code to a file called `example.js`.\n\n```\n// example.js\nconst { User } = require(\"./models/user\");\nconst { Post } = require(\"./models/post\");\nconst userConfig = require(\"./config\");\nconst dynamoBao = require(\"dynamo-bao\");\nasync function testUserModel() {\n  dynamoBao.initModels(userConfig);\n\n  // Find user by email\n  const existingUser = await User.findByEmail(\"test@example.com\");\n  console.log(\"Found user by email:\", existingUser.exists());\n  if (existingUser.exists()) {\n    await User.delete(existingUser.getPrimaryId());\n    console.log(\"Deleted existing user\");\n    await new Promise((resolve) => setTimeout(resolve, 100)); // 100ms\n  }\n\n  // Create a new user\n  const user = new User({\n    name: \"Test User\",\n    email: \"test@example.com\",\n    role: \"user\",\n    profilePictureUrl: \"https://example.com/profile.jpg\",\n  });\n\n  await user.save();\n  console.log(\"Created user:\", user.getPrimaryId());\n\n  // Find user by email\n  const foundUser = await User.findByEmail(\"test@example.com\");\n  console.log(\"Found user by email:\", foundUser.getPrimaryId());\n\n  // Force reindex on save (useful after manual data fixes)\n  await foundUser.save({ forceReindex: true });\n\n  // Create some test posts for the user\n  const post1 = new Post({\n    userId: user.userId,\n    title: \"Test Post 1\",\n    content: \"This is a test post\",\n  });\n\n  const post2 = new Post({\n    userId: user.userId,\n    title: \"Test Post 2\",\n    content: \"This is another test post\",\n  });\n\n  await Promise.all([post1.save(), post2.save()]);\n\n  // Query user posts\n  const userPosts = await user.queryPosts();\n  console.log(\"User posts:\", userPosts.items.length);\n\n  // Or add a filter condition to the query\n  const filteredPosts = await user.queryPosts(null, {\n    filter: { content: { $contains: \"another\" } },\n  });\n  console.log(\"User posts matching filter:\", filteredPosts.items.length);\n}\n\n// Run the test\ntestUserModel();\n```\n\nRun the example.\n\n```\nnode example.js\n```\n\nYou should see something similar to this:\n\n```\n% node example.js\nFound user by email: false\nCreated user: 01JFGMRH7XACZ8GKB81DZ5YWNH\nFound user by email: 01JFGMRH7XACZ8GKB81DZ5YWNH\nUser posts: 2\nUser posts matching filter: 1\n```\n\nCongratulations! You're now harnessing the power of DynamoDB.\n\nIt's worth noting that you didn't have to:\n\n- Configure or create a new table when adding a new model\n- Install a database (either locally or on a server)\n- Understand how to generate keys and indexes using single table design princples\n- Manually configure transactions and items to support unique constraints\n\n## Finding Objects with the find Method\n\nThe `find` method is used to retrieve objects by their primary key. It's important to understand that `find` always returns an object, and you must use the `exists()` method to check if the object was actually found.\n\n### Basic Usage (Single Primary Key)\n\nFor models with a single primary key field:\n\n```javascript\nconst user = await User.find(\"user123\");\n\n// Always check if the object exists\nif (user.exists()) {\n  console.log(\"User found:\", user.name);\n} else {\n  console.log(\"User not found\");\n}\n```\n\n### Composite Primary Keys\n\nFor models with composite primary keys (partition key + sort key), you have several options:\n\n#### Option 1: Using makePrimaryId (Recommended)\n\n```javascript\n// Model with composite key: appId (partition) + entityId (sort)\nconst primaryId = CompositeModel.makePrimaryId(\"my-app\", \"entity-123\");\nconst item = await CompositeModel.find(primaryId);\n\nif (item.exists()) {\n  console.log(\"Item found:\", item.data);\n} else {\n  console.log(\"Item not found\");\n}\n```\n\n#### Option 2: Using Object Notation\n\n```javascript\n// Alternative: pass an object with the key fields\nconst item = await CompositeModel.find({\n  appId: \"my-app\",\n  entityId: \"entity-123\",\n});\n\nif (item.exists()) {\n  console.log(\"Item found:\", item.data);\n} else {\n  console.log(\"Item not found\");\n}\n```\n\n### Working with getPrimaryId()\n\nOnce you have an object, you can get its primary ID to use with other operations:\n\n```javascript\nconst user = await User.create({\n  name: \"John Doe\",\n  email: \"john@example.com\",\n});\n\n// Get the primary ID\nconst primaryId = user.getPrimaryId();\nconsole.log(\"Primary ID:\", primaryId);\n\n// Use it to find the same object later\nconst foundUser = await User.find(primaryId);\nif (foundUser.exists()) {\n  console.log(\"Found user:\", foundUser.name);\n}\n```\n\n### Error Handling Patterns\n\n```javascript\n// Good: Always check exists() before using the object\nconst user = await User.find(\"user123\");\nif (user.exists()) {\n  console.log(\"User email:\", user.email);\n  // Safe to access properties\n} else {\n  console.log(\"User not found - handle appropriately\");\n}\n\n// Bad: Don't assume the object exists\nconst user = await User.find(\"user123\");\nconsole.log(user.email); // This could be undefined!\n```\n\n### Batch Finding\n\nFor loading multiple objects efficiently:\n\n```javascript\n// Load multiple users at once\nconst userIds = [\"user1\", \"user2\", \"user3\"];\nconst result = await User.batchFind(userIds);\n\n// Check each result\nObject.entries(result.items).forEach(([id, user]) => {\n  if (user.exists()) {\n    console.log(`User ${id}: ${user.name}`);\n  } else {\n    console.log(`User ${id}: not found`);\n  }\n});\n```\n\n### Using find with Unique Constraints\n\nFor unique constraint lookups, use the generated methods:\n\n```javascript\n// Find by unique email constraint\nconst user = await User.findByEmail(\"john@example.com\");\nif (user.exists()) {\n  console.log(\"User found by email:\", user.name);\n} else {\n  console.log(\"No user with that email\");\n}\n\n// Or use the generic method\nconst user = await User.findByUniqueConstraint(\n  \"uniqueEmail\",\n  \"john@example.com\",\n);\n```\n\n### Key Points to Remember\n\n1. **Always use `exists()`**: The `find` method returns an object even when nothing is found\n2. **Composite keys**: Use `makePrimaryId()` for composite primary keys\n3. **Primary IDs**: Use `getPrimaryId()` to get the correct identifier for an object\n4. **Batch operations**: Use `batchFind()` for loading multiple objects efficiently\n5. **Unique constraints**: Use the generated `findByX()` methods for unique constraint lookups\n","readmeFilename":"README.md"}