{"_id":"@aws-blocks/bb-data","_rev":"9-e9a9156aa7edb641ee24d9db1c97797d","name":"@aws-blocks/bb-data","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@aws-blocks/bb-data","version":"0.1.0","author":{"name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-blocks/bb-data@0.1.0","maintainers":[{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"}],"bin":{"bb-data":"dist/cli.js"},"dist":{"shasum":"549cf77d1b5d6217ed9fa7528e4682ee5d1c829c","tarball":"https://registry.npmjs.org/@aws-blocks/bb-data/-/bb-data-0.1.0.tgz","fileCount":239,"integrity":"sha512-TI8U/0nffmC26VGVjV4063bA3X1BWrgh+NeFi1ts6LHb1TghS36o/9MBCA71FzTN10WqgpGV+HPtf1IwrJHamw==","signatures":[{"sig":"MEQCIEnerAIxI05YqeQmXbR1eS1aEtXof+RrW3SWFZ004mXFAiBgjM/R8uos4waO0AkrIzmN4CNtsOMGNbY7B4pEldbhRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":903057},"type":"module","exports":{".":{"cdk":{"types":"./dist/index.cdk.d.ts","default":"./dist/index.cdk.js"},"types":"./dist/index.mock.d.ts","browser":"./dist/index.browser.js","default":"./dist/index.mock.js","aws-runtime":"./dist/index.aws.js"}},"gitHead":"639f6fad510d473abd72286351b3294a646d9895","scripts":{"test":"node --test 'dist/**/*.test.js'","build":"tsc --build","prebuild":"node ../../scripts/generate-version.mjs Database"},"_npmUser":{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"},"_npmVersion":"10.9.8","description":"Full PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-saf","directories":{},"_nodeVersion":"22.22.3","dependencies":{"pg":"^8.13.0","pluralize":"^8.0.0","@aws-blocks/core":"^0.1.0","@electric-sql/pglite":"^0.2.0","@aws-blocks/bb-logger":"^0.1.0","@aws-blocks/data-common":"^0.1.0","@aws-sdk/client-rds-data":"^3.700.0","@aws-blocks/bb-app-setting":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","typescript":"^5.3.0","@types/node":"^20.0.0","@types/pluralize":"^0.0.33","@types/aws-lambda":"^8.10.161"},"peerDependencies":{"kysely":">=0.28.12 <0.30.0","constructs":"^10.6.0","aws-cdk-lib":"^2.257.0"},"_npmOperationalInternal":{"tmp":"tmp/bb-data_0.1.0_1781566765382_0.5366335725238294","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aws-blocks/bb-data","version":"0.1.1","author":{"name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-blocks/bb-data@0.1.1","maintainers":[{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"}],"bin":{"bb-data":"dist/cli.js"},"dist":{"shasum":"e11a7b83f32f595e5068d2aead9775c74801f8d4","tarball":"https://registry.npmjs.org/@aws-blocks/bb-data/-/bb-data-0.1.1.tgz","fileCount":239,"integrity":"sha512-7KMYdZzdfEn1UfvppzIZs4pkKm+GrHlmyjD6I9n3hTLS813Z/NRMZJSCjpZ5NL7xtNPj2w32EF524+wCfFsk1Q==","signatures":[{"sig":"MEQCIGJLqy8i/kIso5lauUUtH2PY1WXPyaGRClIjXG6gyU5CAiB5S/FaZ6yVJLhFKC2kCCpq/ReAO2PgcUubiEosKH3K5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":903057},"type":"module","exports":{".":{"cdk":{"types":"./dist/index.cdk.d.ts","default":"./dist/index.cdk.js"},"types":"./dist/index.mock.d.ts","browser":"./dist/index.browser.js","default":"./dist/index.mock.js","aws-runtime":"./dist/index.aws.js"}},"gitHead":"ed3e0ad5724d28c2a2fb0ea9207dfc9e941257f9","scripts":{"test":"node --test 'dist/**/*.test.js'","build":"tsc --build","prebuild":"node ../../scripts/generate-version.mjs Database"},"_npmUser":{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"},"_npmVersion":"10.9.8","description":"Full PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-saf","directories":{},"_nodeVersion":"22.22.3","dependencies":{"pg":"^8.13.0","pluralize":"^8.0.0","@aws-blocks/core":"^0.1.1","@electric-sql/pglite":"^0.2.0","@aws-blocks/bb-logger":"^0.1.1","@aws-blocks/data-common":"^0.1.1","@aws-sdk/client-rds-data":"^3.700.0","@aws-blocks/bb-app-setting":"^0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","typescript":"^5.3.0","@types/node":"^20.0.0","@types/pluralize":"^0.0.33","@types/aws-lambda":"^8.10.161"},"peerDependencies":{"kysely":">=0.28.12 <0.30.0","constructs":"^10.6.0","aws-cdk-lib":"^2.257.0"},"_npmOperationalInternal":{"tmp":"tmp/bb-data_0.1.1_1781633770713_0.6876201957009866","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aws-blocks/bb-data","version":"0.1.2","author":{"name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-blocks/bb-data@0.1.2","maintainers":[{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"}],"bin":{"bb-data":"dist/cli.js"},"dist":{"shasum":"cb1908505c169ec49ab4d8243730b71b59e50326","tarball":"https://registry.npmjs.org/@aws-blocks/bb-data/-/bb-data-0.1.2.tgz","fileCount":240,"integrity":"sha512-LkmNOGIrg6atWZAHhUNnCzMSafA/Dz/4MQvdgfk8LoHnSypr5r3X+JEd/0lCWoWPdun45xH2skwvM4maGtlWqQ==","signatures":[{"sig":"MEYCIQDM/hjERtcLO5EhMaBzMxgdwmkS1nijPpZjqd4de4ZI8QIhAPv0n822qJlAKXZHm6Yf9UwsazDKkbuyxHKnvDqTJNaA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":911121},"type":"module","exports":{".":{"cdk":{"types":"./dist/index.cdk.d.ts","default":"./dist/index.cdk.js"},"types":"./dist/index.mock.d.ts","browser":"./dist/index.browser.js","default":"./dist/index.mock.js","aws-runtime":"./dist/index.aws.js"}},"gitHead":"3328f36992d39dc20b0c0d760e4a38c866ddfbbd","scripts":{"test":"node --test 'dist/**/*.test.js'","build":"tsc --build","prebuild":"node ../../scripts/generate-version.mjs Database"},"_npmUser":{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"},"_npmVersion":"10.9.8","description":"Full PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-saf","directories":{},"_nodeVersion":"22.22.3","dependencies":{"pg":"^8.13.0","pluralize":"^8.0.0","@aws-blocks/core":"^0.1.1","@electric-sql/pglite":"^0.2.0","@aws-blocks/bb-logger":"^0.1.2","@aws-blocks/data-common":"^0.1.1","@aws-sdk/client-rds-data":"^3.700.0","@aws-blocks/bb-app-setting":"^0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","typescript":"^5.3.0","@types/node":"^20.0.0","@types/pluralize":"^0.0.33","@types/aws-lambda":"^8.10.161"},"peerDependencies":{"kysely":">=0.28.12 <0.30.0","constructs":"^10.6.0","aws-cdk-lib":"^2.257.0"},"_npmOperationalInternal":{"tmp":"tmp/bb-data_0.1.2_1782192243737_0.059909796965067486","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@aws-blocks/bb-data","version":"0.2.2","author":{"name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-blocks/bb-data@0.2.2","maintainers":[{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"}],"bin":{"bb-data":"dist/cli.js"},"dist":{"shasum":"09b03d6e166fd2d3b847ba0c3a085a70e4ab6112","tarball":"https://registry.npmjs.org/@aws-blocks/bb-data/-/bb-data-0.2.2.tgz","fileCount":256,"integrity":"sha512-qbUddaXynxnpc8+VRtve/1Rm9KgJEMlNbr2CRohUhRKezS7qiy76vk2+RmW+DCRt+3LlC+83gPLYs8Tsh4cD9w==","signatures":[{"sig":"MEUCIQDbdATxRuYHIO3j5eO00H85oONpqRv9f+jSz5mLWRmyJQIge/VjFz2jmPvz+Qbr1x/ytEppJMOp1fFvVKuoK5fxq1U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1039178},"type":"module","exports":{".":{"cdk":{"types":"./dist/index.cdk.d.ts","default":"./dist/index.cdk.js"},"types":"./dist/index.mock.d.ts","browser":"./dist/index.browser.js","default":"./dist/index.mock.js","aws-runtime":"./dist/index.aws.js"}},"gitHead":"e8f38546b59a85fb707e0b751887f0cdeebf4fb0","scripts":{"test":"node --test 'dist/**/*.test.js'","build":"tsc --build","prebuild":"node ../../scripts/generate-version.mjs Database"},"_npmUser":{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"},"_npmVersion":"10.9.8","description":"Full PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-saf","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pg":"^8.13.0","pluralize":"^8.0.0","@aws-blocks/core":"^0.1.10","@electric-sql/pglite":"^0.2.0","@aws-blocks/bb-logger":"^0.1.2","@aws-blocks/data-common":"^0.1.1","@aws-sdk/client-rds-data":"^3.700.0","@aws-blocks/bb-app-setting":"^0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","typescript":"^5.3.0","@types/node":"^20.0.0","@types/pluralize":"^0.0.33","@types/aws-lambda":"^8.10.161"},"peerDependencies":{"kysely":">=0.28.12 <0.30.0","constructs":"^10.6.0","aws-cdk-lib":"^2.257.0"},"_npmOperationalInternal":{"tmp":"tmp/bb-data_0.2.2_1783033089722_0.12672795451749108","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@aws-blocks/bb-data","version":"0.2.4","author":{"name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-blocks/bb-data@0.2.4","maintainers":[{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"}],"homepage":"https://github.com/aws-devtools-labs/aws-blocks/tree/main/packages/bb-data#readme","bugs":{"url":"https://github.com/aws-devtools-labs/aws-blocks/issues"},"bin":{"bb-data":"dist/cli.js"},"dist":{"shasum":"38c765d25777114cf5fc8d89424501823c009ab2","tarball":"https://registry.npmjs.org/@aws-blocks/bb-data/-/bb-data-0.2.4.tgz","fileCount":256,"integrity":"sha512-eJcTm1d1HINKtPYsZrHOblOfFVUifa1JXVKDIjhPQ9yy23uLVIBDJ+fEz7DwA0XfkI9+vMu/7rMSmqbZmLQZqQ==","signatures":[{"sig":"MEUCIFgEFNfH9ZM5yuViB4HiOh2zT/is3oBr0aBgKeFXCKb8AiEApCIvcikNctuRvMXytivlVzMbCUb1nrWWENySC5rObq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aws-blocks%2fbb-data@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1049583},"type":"module","exports":{".":{"cdk":{"types":"./dist/index.cdk.d.ts","default":"./dist/index.cdk.js"},"types":"./dist/index.mock.d.ts","browser":"./dist/index.browser.js","default":"./dist/index.mock.js","aws-runtime":"./dist/index.aws.js"}},"gitHead":"f6b9cad7b543663cc9ea73a4476ca5511255d779","scripts":{"test":"node --test 'dist/**/*.test.js'","build":"tsc --build","prebuild":"node ../../scripts/generate-version.mjs Database"},"_npmUser":{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"},"repository":{"url":"git+https://github.com/aws-devtools-labs/aws-blocks.git","type":"git","directory":"packages/bb-data"},"_npmVersion":"10.9.8","description":"Full PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-saf","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pg":"^8.13.0","pluralize":"^8.0.0","@aws-blocks/core":"^0.1.17","@electric-sql/pglite":"^0.2.0","@aws-blocks/bb-logger":"^0.1.3","@aws-blocks/data-common":"^0.1.3","@aws-sdk/client-rds-data":"^3.700.0","@aws-blocks/bb-app-setting":"^0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","typescript":"^5.3.0","@types/node":"^20.0.0","@types/pluralize":"^0.0.33","@types/aws-lambda":"^8.10.161"},"peerDependencies":{"kysely":">=0.28.12 <0.30.0","constructs":"^10.6.0","aws-cdk-lib":"^2.257.0"},"_npmOperationalInternal":{"tmp":"tmp/bb-data_0.2.4_1786135420030_0.09744292218255879","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@aws-blocks/bb-data","version":"0.2.5","author":{"name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-blocks/bb-data@0.2.5","maintainers":[{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"}],"homepage":"https://github.com/aws-devtools-labs/aws-blocks/tree/main/packages/bb-data#readme","bugs":{"url":"https://github.com/aws-devtools-labs/aws-blocks/issues"},"bin":{"bb-data":"dist/cli.js"},"dist":{"shasum":"bee7c7f4881f61439812bbc7f2d510a3a0267314","tarball":"https://registry.npmjs.org/@aws-blocks/bb-data/-/bb-data-0.2.5.tgz","fileCount":256,"integrity":"sha512-lngyXIFHT9hCLQeYGnYezHhXb0mxwNGzO2nl9FH9t5lHKrcflwsmJSs9Gk8XbjmVRVkS/NdQwS5e3Ik+WO0J/Q==","signatures":[{"sig":"MEUCIGuBzE//7S8PuPqbijLWauiTPy+PewVHVuP+R2mRsf4QAiEA8rUVdtwOlwbeSvqAKvyff8GP7L3bcyuOwGoEPOpB4ks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aws-blocks%2fbb-data@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1068897},"type":"module","exports":{".":{"cdk":{"types":"./dist/index.cdk.d.ts","default":"./dist/index.cdk.js"},"types":"./dist/index.mock.d.ts","browser":"./dist/index.browser.js","default":"./dist/index.mock.js","aws-runtime":"./dist/index.aws.js"}},"gitHead":"164b106810e2b4f7801426158feae82a4ccbe3d4","scripts":{"test":"node --test 'dist/**/*.test.js'","build":"tsc --build","prebuild":"node ../../scripts/generate-version.mjs Database"},"_npmUser":{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"},"repository":{"url":"git+https://github.com/aws-devtools-labs/aws-blocks.git","type":"git","directory":"packages/bb-data"},"_npmVersion":"10.9.8","description":"Full PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-saf","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pg":"^8.13.0","pluralize":"^8.0.0","@aws-blocks/core":"^0.2.0","@electric-sql/pglite":"^0.2.0","@aws-blocks/bb-logger":"^0.1.4","@aws-blocks/data-common":"^0.1.4","@aws-sdk/client-rds-data":"^3.700.0","@aws-blocks/bb-app-setting":"^0.1.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","typescript":"^5.3.0","@types/node":"^20.0.0","@types/pluralize":"^0.0.33","@types/aws-lambda":"^8.10.161"},"peerDependencies":{"kysely":">=0.28.12 <0.30.0","constructs":"^10.6.0","aws-cdk-lib":"^2.257.0"},"_npmOperationalInternal":{"tmp":"tmp/bb-data_0.2.5_1787230469613_0.8111015327630098","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@aws-blocks/bb-data","version":"0.2.6","author":{"name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-blocks/bb-data@0.2.6","maintainers":[{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"}],"homepage":"https://github.com/aws-devtools-labs/aws-blocks/tree/main/packages/bb-data#readme","bugs":{"url":"https://github.com/aws-devtools-labs/aws-blocks/issues"},"bin":{"bb-data":"dist/cli.js"},"dist":{"shasum":"e76d67f7b3dd9629a08cb4416d0f295a377621cc","tarball":"https://registry.npmjs.org/@aws-blocks/bb-data/-/bb-data-0.2.6.tgz","fileCount":256,"integrity":"sha512-1JRaQS3RknRNoIG89sisbKI52vKEVhz+U9ZTfSCtht2pSgLybbgrzM7NBzDc40dTy1na9wUoAEV40xLD2xgqPg==","signatures":[{"sig":"MEQCIDR0/j8bHv6TBa7KahWJFjUVsZuCA63sjyZy440//8iwAiBkkpSmgleW2+URC9RP5WUYBQ0NDSjBeMApHEgMNECQ8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aws-blocks%2fbb-data@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1068935},"type":"module","exports":{".":{"cdk":{"types":"./dist/index.cdk.d.ts","default":"./dist/index.cdk.js"},"types":"./dist/index.mock.d.ts","browser":"./dist/index.browser.js","default":"./dist/index.mock.js","aws-runtime":"./dist/index.aws.js"}},"gitHead":"04d4b21b1cae9600c44a2fc63c0020ca21894316","scripts":{"test":"node --test 'dist/**/*.test.js'","build":"tsc --build","prebuild":"node ../../scripts/generate-version.mjs Database"},"_npmUser":{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"},"repository":{"url":"git+https://github.com/aws-devtools-labs/aws-blocks.git","type":"git","directory":"packages/bb-data"},"_npmVersion":"10.9.8","description":"Full PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-saf","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pg":"^8.13.0","pluralize":"^8.0.0","@aws-blocks/core":"^0.3.0","@electric-sql/pglite":"^0.2.0","@aws-blocks/bb-logger":"^0.1.5","@aws-blocks/data-common":"^0.1.4","@aws-sdk/client-rds-data":"^3.700.0","@aws-blocks/bb-app-setting":"^0.2.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","typescript":"^5.3.0","@types/node":"^20.0.0","@types/pluralize":"^0.0.33","@types/aws-lambda":"^8.10.161"},"peerDependencies":{"kysely":">=0.28.12 <0.30.0","constructs":"^10.6.0","aws-cdk-lib":"^2.257.0"},"_npmOperationalInternal":{"tmp":"tmp/bb-data_0.2.6_1788264352445_0.7400828727472286","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@aws-blocks/bb-data","version":"0.2.7","author":{"name":"Amazon Web Services"},"license":"Apache-2.0","_id":"@aws-blocks/bb-data@0.2.7","maintainers":[{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"}],"homepage":"https://github.com/aws-devtools-labs/aws-blocks/tree/main/packages/bb-data#readme","bugs":{"url":"https://github.com/aws-devtools-labs/aws-blocks/issues"},"bin":{"bb-data":"dist/cli.js"},"dist":{"shasum":"fa2373ce7fcee7f027828d3b6bc91d8bbabefae6","tarball":"https://registry.npmjs.org/@aws-blocks/bb-data/-/bb-data-0.2.7.tgz","fileCount":256,"integrity":"sha512-kX3pTgrhqnBZ1ZWyhZtE/uBKY5zB+zIv4SnoPSDbqs090kVc11aWFY87oYzcG6ClMhcqtMrgRY6vUaJBc3RxfQ==","signatures":[{"sig":"MEUCIFFfEbfQGrYMIByJFa1eX+yM7VraFSJVVjMfXLfFtCC7AiEAtRTxjM5ZfGrhzXHZGdTJoptRoa9+zOBgotj9UZjJkaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aws-blocks%2fbb-data@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1090517},"type":"module","exports":{".":{"cdk":{"types":"./dist/index.cdk.d.ts","default":"./dist/index.cdk.js"},"types":"./dist/index.mock.d.ts","browser":"./dist/index.browser.js","default":"./dist/index.mock.js","aws-runtime":"./dist/index.aws.js"}},"gitHead":"ce01923c591828486e07d3d3f2b6b9d585e39057","scripts":{"test":"node --test 'dist/**/*.test.js'","build":"tsc --build","prebuild":"node ../../scripts/generate-version.mjs Database"},"_npmUser":{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"},"repository":{"url":"git+https://github.com/aws-devtools-labs/aws-blocks.git","type":"git","directory":"packages/bb-data"},"_npmVersion":"10.9.8","description":"Full PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-saf","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pg":"^8.13.0","pluralize":"^8.0.0","@aws-blocks/core":"^0.4.0","@electric-sql/pglite":"^0.2.0","@aws-blocks/bb-logger":"^0.1.6","@aws-blocks/data-common":"^0.1.4","@aws-sdk/client-rds-data":"^3.700.0","@aws-blocks/bb-app-setting":"^0.2.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","typescript":"^5.3.0","@types/node":"^20.0.0","@types/pluralize":"^0.0.33","@types/aws-lambda":"^8.10.161"},"peerDependencies":{"kysely":">=0.28.12 <0.30.0","constructs":"^10.6.0","aws-cdk-lib":"^2.257.0"},"_npmOperationalInternal":{"tmp":"tmp/bb-data_0.2.7_1788867502129_0.021493101608481835","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"_id":"@aws-blocks/bb-data@0.3.0","bin":{"bb-data":"dist/cli.js"},"bugs":{"url":"https://github.com/aws-devtools-labs/aws-blocks/issues"},"dist":{"shasum":"d12f963c7326813c1747a9e74290dc813be0c5b5","tarball":"https://registry.npmjs.org/@aws-blocks/bb-data/-/bb-data-0.3.0.tgz","fileCount":260,"integrity":"sha512-xnZeu5/sZK56Sc8gmTqLW7FPZWhqprCgVSkJ6UMrWO+HMjkVkTu1gzX8JwAJMuM6kLSV5Sgu8FNlDtsVh4gdBA==","signatures":[{"sig":"MEQCIErKlMOq67DCKBDK03CfPkYJxDuz8ZuuznTL95fNkcCfAiAp5kaj/33QkSdr1U2EfPXdITNUUh1oYsEOlHdIhWyJgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQClr3SPSN/UZwshqgPa/r3bC7Tp9G16y1Gh3Hl6xz23ogIgStQj2BQCY8eg1KROKwUsqhbvFbcB1IW3FOwB6ChIHLI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aws-blocks%2fbb-data@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1132353},"name":"@aws-blocks/bb-data","type":"module","author":{"name":"Amazon Web Services"},"exports":{".":{"cdk":{"types":"./dist/index.cdk.d.ts","default":"./dist/index.cdk.js"},"types":"./dist/index.mock.d.ts","browser":"./dist/index.browser.js","default":"./dist/index.mock.js","aws-runtime":"./dist/index.aws.js"}},"gitHead":"51eeb265ab5efdbd853e989cf8bd6d30951c29c7","license":"Apache-2.0","scripts":{"test":"node --test 'dist/**/*.test.js'","build":"tsc --build","prebuild":"node ../../scripts/generate-version.mjs Database"},"version":"0.3.0","_npmUser":{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"},"homepage":"https://github.com/aws-devtools-labs/aws-blocks/tree/main/packages/bb-data#readme","keywords":["aws-blocks","database","postgresql","aurora","sql"],"repository":{"url":"git+https://github.com/aws-devtools-labs/aws-blocks.git","type":"git","directory":"packages/bb-data"},"_npmVersion":"10.9.8","description":"Full PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-saf","directories":{},"maintainers":[{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"}],"_nodeVersion":"22.23.2","dependencies":{"pg":"^8.13.0","pluralize":"^8.0.0","@aws-blocks/core":"^0.5.0","@electric-sql/pglite":"^0.2.0","@aws-blocks/bb-logger":"^0.2.0","@aws-blocks/data-common":"^0.1.5","@aws-sdk/client-rds-data":"^3.700.0","@aws-blocks/bb-app-setting":"^0.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/pg":"^8.11.0","typescript":"^5.3.0","@types/node":"^20.0.0","@types/pluralize":"^0.0.33","@types/aws-lambda":"^8.10.161"},"peerDependencies":{"kysely":">=0.28.12 <0.30.0","constructs":"^10.6.0","aws-cdk-lib":"^2.257.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bb-data_0.3.0_1789678790602_0.26920683005063384"}}},"time":{"created":"2026-06-15T23:39:25.245Z","modified":"2026-09-17T20:59:51.011Z","0.1.0":"2026-06-15T23:39:25.613Z","0.1.1":"2026-06-16T18:16:10.885Z","0.1.2":"2026-06-23T05:24:03.906Z","0.2.2":"2026-07-02T22:58:09.899Z","0.2.4":"2026-08-07T20:43:40.221Z","0.2.5":"2026-08-20T12:54:29.745Z","0.2.6":"2026-09-01T12:05:52.609Z","0.2.7":"2026-09-08T11:38:22.262Z","0.3.0":"2026-09-17T20:59:50.693Z"},"bugs":{"url":"https://github.com/aws-devtools-labs/aws-blocks/issues"},"author":{"name":"Amazon Web Services"},"license":"Apache-2.0","homepage":"https://github.com/aws-devtools-labs/aws-blocks/tree/main/packages/bb-data#readme","repository":{"url":"git+https://github.com/aws-devtools-labs/aws-blocks.git","type":"git","directory":"packages/bb-data"},"description":"Full PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-saf","maintainers":[{"name":"aws-blocks-npm-ops","email":"aws-blocks@amazon.com"}],"readme":"# @aws-blocks/bb-data\n\nFull PostgreSQL database — provisions Aurora Serverless v2 by default, or connects to an existing PostgreSQL database (Supabase, Neon, etc.) via `fromExisting()`. Full relational modeling with foreign keys, transactions, Row Level Security, and a type-safe Kysely query builder.\n\n**When to use:** Complex multi-table JOINs, ACID transactions, foreign key constraints, aggregations, Row Level Security, or connecting to an existing PostgreSQL database. Use when you need the full power of PostgreSQL.\n\n**When NOT to use:** For simple key-value lookups, use `KVStore`. For NoSQL with secondary indexes, use `DistributedTable`. For serverless SQL without FK/RLS/triggers (multi-region, instant provisioning), use `DistributedDatabase`.\n\n> Design & mock parity details: [DESIGN.md](./DESIGN.md)\n\n## Quick Start\n\n```typescript\nimport { Database, sql } from '@aws-blocks/bb-data';\n\nconst db = new Database(scope, 'main', {\n  migrationsPath: './aws-blocks/migrations',\n});\n\n// Parameterized queries via sql tagged template (injection-safe)\nconst users = await db.query<{ id: string; name: string }>(\n  sql`SELECT * FROM users WHERE active = ${true}`\n);\n\nconst user = await db.queryOne<{ id: string; name: string }>(\n  sql`SELECT * FROM users WHERE id = ${userId}`\n);\n\nconst { rowCount } = await db.execute(\n  sql`INSERT INTO users (id, name, email) VALUES (${id}, ${name}, ${email})`\n);\n\n// Transactions\nawait db.transaction(async (tx) => {\n  await tx.execute(sql`UPDATE accounts SET balance = balance - ${100} WHERE id = ${fromId}`);\n  await tx.execute(sql`UPDATE accounts SET balance = balance + ${100} WHERE id = ${toId}`);\n});\n```\n\n## Migrations\n\nCreate numbered `.sql` files in a migrations directory:\n\n```\naws-blocks/migrations/\n  001_create_users.sql\n  002_create_posts.sql\n  003_seed_admin.sql\n```\n\n```sql\n-- 001_create_users.sql\nCREATE TABLE users (\n  id TEXT PRIMARY KEY,\n  email TEXT UNIQUE NOT NULL,\n  name TEXT NOT NULL,\n  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n);\n```\n\nMigrations run automatically:\n- **Local dev:** On first query (PGlite, persists in `.bb-data/`)\n- **AWS deploy:** Via a CustomResource Lambda during `cdk deploy`\n\nApplied migrations are tracked in a `_migrations` table. Each file runs once.\n\n> **Set `migrationsPath` to a path relative to your project root** (as in the Quick Start — `'./aws-blocks/migrations'`); it's resolved at synth from the directory you run `cdk` / `npm run deploy` in. That's the simplest reliable pattern.\n>\n> You don't need `fileURLToPath(import.meta.url)` for this. Your backend module runs as ESM locally but is bundled to **CommonJS** in Lambda, where `import.meta` is empty. AWS Blocks shims `import.meta.url` / `import.meta.dirname` in the bundle so it won't crash at load — but at runtime those resolve to the **bundled output** location, not your source tree. So don't use `import.meta.url` to read a file relative to your source at request time; inline the data or ship it as a Lambda asset instead.\n\n## Kysely Query Builder\n\nFor type-safe queries without raw SQL:\n\n```typescript\nimport { createKyselyAdapter } from '@aws-blocks/bb-data';\n\ninterface Schema {\n  users: { id: string; email: string; name: string };\n  posts: { id: string; user_id: string; title: string };\n}\n\nconst kysely = createKyselyAdapter<Schema>(db);\n\n// Type-safe SELECT\nconst users = await kysely\n  .selectFrom('users')\n  .where('email', '=', 'user@example.com')\n  .selectAll()\n  .execute();\n\n// JOINs\nconst posts = await kysely\n  .selectFrom('posts')\n  .innerJoin('users', 'users.id', 'posts.user_id')\n  .select(['posts.title', 'users.name'])\n  .execute();\n\n// Transactions\nawait kysely.transaction().execute(async (trx) => {\n  await trx.insertInto('users').values({ id: '1', email: 'a@b.com', name: 'A' }).execute();\n  await trx.insertInto('posts').values({ id: '1', user_id: '1', title: 'Hello' }).execute();\n});\n```\n\nSee [Kysely documentation](https://kysely.dev) for the full query builder API.\n\n## Row Level Security (RLS)\n\nScope queries to a user context with Supabase-compatible session variables:\n\n```typescript\nconst scoped = db.withRLS({ userId: 'user-123', role: 'authenticated' });\n\n// All queries on `scoped` run inside a transaction with SET LOCAL ROLE\n// and request.jwt.claims set — PostgreSQL RLS policies are enforced.\nconst myPosts = await scoped.query<Post>(sql`SELECT * FROM posts`);\n```\n\n> **Local (PGlite) prerequisite:** `withRLS` issues `SET LOCAL ROLE <role>` (default `authenticated`). PGlite has no such role by default, so a migration must create it or local queries fail with `role \"authenticated\" does not exist`. Add to your migrations:\n>\n> ```sql\n> CREATE ROLE authenticated;\n> CREATE ROLE anon;\n> -- grant table privileges to these roles as needed, then define RLS policies\n> ```\n\n## CRUD Handlers\n\nGenerate typed CRUD methods from a schema definition:\n\n```typescript\nconst crud = db.crud({\n  tables: ['users', 'posts'],\n  // `auth` takes no arguments — close over your request context to resolve the user.\n  auth: async () => {\n    const user = await auth.requireAuth(context);\n    return { userId: user.userId };\n  },\n});\n\n// Auto-generated flat method names per table:\n//   crud.listUsers(), crud.getUser(id), crud.createUser(data),\n//   crud.updateUser(id, data), crud.deleteUser(id)\n//   crud.listPosts(), crud.getPost(id), ...\n```\n\n## Connecting to an Existing Database\n\n```typescript\nimport { Database, fromExisting } from '@aws-blocks/bb-data';\n\n// Supabase, Neon, or any PostgreSQL-compatible database\nconst db = new Database(scope, 'external', {\n  connection: fromExisting({ connectionString: process.env.DATABASE_URL! }),\n});\n```\n\n### TLS certificate verification\n\nThe server's TLS certificate is **verified by default**. Managed providers\n(Supabase, Neon, RDS) present a certificate signed by a provider-specific CA\nthat is not in Node's built-in trust store, so verification requires pinning\nthat CA. `ssl.ca` takes the certificate **contents** (a PEM string), not a path —\nfor Supabase, download `prod-ca-2021.crt` from your project's **Database Settings\n→ SSL Configuration**:\n\n```typescript\nimport { readFileSync } from 'node:fs';\n\nconst db = new Database(scope, 'external', {\n  connection: fromExisting({\n    connectionString: process.env.DATABASE_URL!,\n    ssl: { ca: readFileSync('./supabase-ca.crt', 'utf8') },\n  }),\n});\n```\n\n`bb-data pull` wires this for you: it prompts for your CA certificate and commits\nit to `aws-blocks/database.ca.ts` (a public, non-secret cert that is bundled into\nyour deployed function), so the connection is **verified by default** — including\nin the deployed Lambda, with no runtime configuration. `DATABASE_CA_CERT` (inline\nPEM or a file path) overrides the committed cert. If neither is available, the\ngenerated wiring falls back to `ssl: { rejectUnauthorized: false }` (**encrypted but\nunauthenticated**) in local dev only; the **deployed function fails closed**\n(refuses to connect) rather than running unverified. Provide the CA for production.\n\n## Migrating from Supabase\n\nAlready have a Supabase app? `bb-data pull` connects to your existing Supabase database and generates a complete, type-safe backend — keeping your tables, data, and RLS policies exactly as they are.\n\n```sh\nnpx bb-data pull\n```\n\nWhat it does:\n- Introspects your public-schema tables (read-only — your database is not modified)\n- Generates typed definitions, CRUD operations, and a personalized migration guide\n- Stores your connection string locally (encrypted in SSM on deploy)\n\nWhat it does NOT migrate: Supabase Auth, Storage, Realtime, or Edge Functions. If you use a third-party OIDC provider (Auth0, Clerk, Google, Cognito), you can wire it into Blocks — see the generated `MIGRATION_GUIDE.md#auth`.\n\nAfter pulling, run `npm run dev` to start developing locally against your real database.\n\nOnce pulled, manage schema changes with version-controlled SQL migrations in `./migrations/` — applied automatically on `npm run dev` and `npm run deploy`. See the generated `MIGRATION_GUIDE.md#evolving-your-schema`.\n\n## Error Handling\n\n```typescript\nimport { DatabaseErrors } from '@aws-blocks/bb-data';\nimport { isBlocksError } from '@aws-blocks/core';\n\ntry {\n  await db.execute(sql`INSERT INTO users (id, email) VALUES (${id}, ${email})`);\n} catch (e: unknown) {\n  if (isBlocksError(e, DatabaseErrors.UniqueConstraintViolation)) {\n    // Duplicate key — email already exists. Serialized as HTTP 409 (Conflict),\n    // not retriable (a blind retry of the same insert fails identically).\n  }\n  if (isBlocksError(e, DatabaseErrors.QueryFailed)) {\n    // General query failure (syntax error, missing table, etc.)\n  }\n  if (isBlocksError(e, DatabaseErrors.TransactionFailed)) {\n    // Transaction could not commit\n  }\n  if (isBlocksError(e, DatabaseErrors.SerializationFailure)) {\n    // Serializable-isolation conflict with a concurrent transaction — serialized\n    // as HTTP 409 (Conflict), retriable — safe to retry\n  }\n  if (isBlocksError(e, DatabaseErrors.ConnectionFailed)) {\n    // Cannot reach the database — includes a `minCapacity: 0` cluster resuming\n    // from auto-pause, which succeeds on retry a few seconds later\n  }\n}\n```\n\n## What It Provisions (AWS)\n\n- **Aurora Serverless v2** — PostgreSQL-compatible, scales 0.5-128 ACUs\n- **VPC** — Private subnets (isolated, no NAT)\n- **RDS Proxy** — Connection pooling\n- **Secrets Manager** — Auto-generated credentials, auto-rotated\n- **Migration Lambda** — Runs `.sql` files on deploy via CustomResource\n- **IAM** — `rds-data:*` and `secretsmanager:GetSecretValue` granted to the app Lambda\n\n## Local Development\n\n- **Engine:** PGlite (WASM PostgreSQL) — full Postgres compatibility\n- **Storage:** `.bb-data/{fullId}/` — persists across restarts, wipe with `rm -rf .bb-data`\n- **Migrations:** Run automatically on first query\n\n## Configuration\n\n```typescript\ninterface DatabaseOptions {\n  /** Path to directory containing numbered .sql migration files. */\n  migrationsPath?: string;\n  /** Connect to an existing database instead of provisioning one. */\n  connection?: ExternalDatabaseRef;\n  /** Schema metadata for crud() support. */\n  schema?: TableSchema;\n  /** Aurora PostgreSQL engine version, e.g. '16.13'. Override the Aurora engine version. @default '16.13' */\n  postgresVersion?: string;\n}\n```\n\n## Package Export Conditions\n\n```json\n{\n  \"exports\": {\n    \".\": {\n      \"cdk\": \"./dist/index.cdk.js\",\n      \"aws-runtime\": \"./dist/index.aws.js\",\n      \"default\": \"./dist/index.mock.js\"\n    }\n  }\n}\n```\n\n## Performance\n\n- **Query latency:** 10-50ms (warm), ~500ms cold start from 0 ACUs\n- **Throughput:** Thousands of concurrent connections via RDS Proxy\n- **Storage:** Up to 128 TiB, auto-scales in 10 GiB increments\n- **Cost:** ~$0.12/ACU-hour + ~$0.10/GB-month storage\n- **Durability:** 6 copies across 3 AZs, 99.99% availability\n\n\n","readmeFilename":"README.md","keywords":["aws-blocks","database","postgresql","aurora","sql"]}