{"_id":"@bernierllc/content-storage","_rev":"14-27dcb567012d7a5edf0016ae54126d8a","name":"@bernierllc/content-storage","dist-tags":{"latest":"1.6.0"},"versions":{"1.0.1":{"name":"@bernierllc/content-storage","version":"1.0.1","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/content-storage@1.0.1","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"1c91641b4976004b6ef52cdc923158d154110edb","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.0.1.tgz","fileCount":13,"integrity":"sha512-BdWU0S9IIV4vHeDIXvNZSPVVt8+n0MTo/V8fsHiOfC4IUCAzTcpwwGjwG9w05q7zBmTCpjsorp/xjNfTeYBZAA==","signatures":[{"sig":"MEYCIQDh3wnu3QVOAbGOMmAjumgqQgeYWQbJ2rtqaUxWzrRGbAIhAOkRQOVIidYRec5y6Z1CcHYPcODFupk9X40Sy3x2hM/0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82911},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"f84a053b00f9c51a1b042251950e02d08c4031d6","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/content-storage"},"_npmVersion":"11.4.2","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","directories":{},"_nodeVersion":"24.4.1","dependencies":{"@bernierllc/crypto-utils":"*","@bernierllc/connection-parser":"*"},"publishConfig":{"access":"restricted"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/content-storage_1.0.1_1756769636849_0.008470072830362385","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bernierllc/content-storage","version":"1.0.2","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/content-storage@1.0.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"1c37feec8066f75de237f9c822f972e125166a35","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.0.2.tgz","fileCount":13,"integrity":"sha512-UyBcdS1rsYecuVw2upB6TKEzdJdYhSqfATY4hEFHzG1UWocvc8+6zI1J1FRaX3WjMPI01GsOy4V5MIb4OGrH+w==","signatures":[{"sig":"MEUCIGJ9zFNGmViwXvIJr9GbUlpmexzCe4fEFemU83VP2GetAiEAmhW/Sz3XaukIh9XNG8a5SROa2bdFpdW+6rTZx90bqqM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82964},"main":"dist/index.js","_from":"file:bernierllc-content-storage-1.0.2.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/8935e6086266c6655da348d789684ba8/bernierllc-content-storage-1.0.2.tgz","_integrity":"sha512-UyBcdS1rsYecuVw2upB6TKEzdJdYhSqfATY4hEFHzG1UWocvc8+6zI1J1FRaX3WjMPI01GsOy4V5MIb4OGrH+w==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/content-storage"},"_npmVersion":"11.7.0","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/crypto-utils":"1.0.3","@bernierllc/connection-parser":"1.0.2"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/content-storage_1.0.2_1766276703661_0.4891951083851318","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bernierllc/content-storage","version":"1.0.3","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/content-storage@1.0.3","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"3a761fbd8143e0aba0ca5ecb0bee24e8de17c408","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.0.3.tgz","fileCount":13,"integrity":"sha512-LuW+5jfnnYHECJMwBOClAlKGNfpbsWaZcuSJQ9kLSFFTURx97PCGbVZwqggttqJ+SjhOZftOzzfhLd8UN6XgTA==","signatures":[{"sig":"MEQCIBd7xiP9sQ0OiG7lHU0j7RDJLKlk8itX1SqpPvok3NSaAiBhO4yKdc5yLfyBVn990qcZYBBSZPT6e7NtzecBpj1OeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82964},"main":"dist/index.js","_from":"file:bernierllc-content-storage-1.0.3.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/tmp/654f75a34366da93325f354ccd2f20b6/bernierllc-content-storage-1.0.3.tgz","_integrity":"sha512-LuW+5jfnnYHECJMwBOClAlKGNfpbsWaZcuSJQ9kLSFFTURx97PCGbVZwqggttqJ+SjhOZftOzzfhLd8UN6XgTA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/content-storage"},"_npmVersion":"11.7.0","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/crypto-utils":"1.0.4","@bernierllc/connection-parser":"1.0.2"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/content-storage_1.0.3_1766283485276_0.5278608048674396","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@bernierllc/content-storage","version":"1.0.5","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/content-storage@1.0.5","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"78db913a635485681309f43f382808a778895052","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.0.5.tgz","fileCount":13,"integrity":"sha512-TDAizmb0xuQflOok+Y2qx1GUmiNm+NlVFVll4ctDzOzNkwz/ZbaAx3nfeZ4sMq3mQIm6NPlr9+IUXLZT+CrSLA==","signatures":[{"sig":"MEQCIHA41OG6f2XxHdRa9kX0vqv/JDZjSY5H//YtKWnuPoSaAiAWF7hEMh7hYGuesksv9cdNb0lSOo/jQ1gFr6bZmYMsJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83022},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"gitHead":"683786f5b043d9a96c9f49ed1f04f9dccd79eed3","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:09d561a5-3e5c-40eb-8c5b-3eacb9208796"}},"repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/content-storage"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@bernierllc/crypto-utils":"1.0.6","@bernierllc/connection-parser":"1.0.4"},"publishConfig":{"access":"restricted","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/content-storage_1.0.5_1767644257807_0.695403554007807","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@bernierllc/content-storage","version":"1.0.6","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/content-storage@1.0.6","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"9888fb7280cdbc5df742b9251deadb54ced7a6cf","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.0.6.tgz","fileCount":13,"integrity":"sha512-yWRxGFLTj9U6a7ESIr07dCkA3+EhJ0aJJtrybwh0cc7OfEVwtFV9N0Zkkzm+RN7SnrKb6Z1JHAQPzGAdm3Zu/g==","signatures":[{"sig":"MEUCIEYNIKA2VFtL+y4f5AliwwOp+4vUCRPesl7fD3kb9+tmAiEA8LdWUsqMVo5l5Ahx4ghPZC+F0A+/uJotQnpDpunDcoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82960},"main":"dist/index.js","_from":"file:bernierllc-content-storage-1.0.6.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:09d561a5-3e5c-40eb-8c5b-3eacb9208796"}},"_resolved":"/tmp/9024f014697295a98895c0629b03454f/bernierllc-content-storage-1.0.6.tgz","_integrity":"sha512-yWRxGFLTj9U6a7ESIr07dCkA3+EhJ0aJJtrybwh0cc7OfEVwtFV9N0Zkkzm+RN7SnrKb6Z1JHAQPzGAdm3Zu/g==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/content-storage"},"_npmVersion":"11.11.0","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/crypto-utils":"1.0.7","@bernierllc/connection-parser":"1.0.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/content-storage_1.0.6_1773078165409_0.04768192777836022","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@bernierllc/content-storage","version":"1.0.7","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/content-storage@1.0.7","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"060bceaad42d393dd13394110cbedaba286b228a","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.0.7.tgz","fileCount":13,"integrity":"sha512-VcYZQfFek2ADVbjSreGi2eiAz43DVwS/2Ai5tG89B5hCiHnG4dB56TSuOLusbKvEtBcSOSo21dupBtVOGjmjXg==","signatures":[{"sig":"MEQCIEg4/9R8fwlzYrNyWrWd5vhW9vHG2szIG15kc4JicWl9AiAwZK+y6hUgbT/4+cBCdjrdfHIJu6mft9Vs/PUMp3FJeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82960},"main":"dist/index.js","_from":"file:bernierllc-content-storage-1.0.7.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:09d561a5-3e5c-40eb-8c5b-3eacb9208796"}},"_resolved":"/home/runner/work/tools/tools/packages/core/content-storage/bernierllc-content-storage-1.0.7.tgz","_integrity":"sha512-VcYZQfFek2ADVbjSreGi2eiAz43DVwS/2Ai5tG89B5hCiHnG4dB56TSuOLusbKvEtBcSOSo21dupBtVOGjmjXg==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/content-storage"},"_npmVersion":"11.11.0","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@bernierllc/crypto-utils":"1.0.8","@bernierllc/connection-parser":"1.0.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/content-storage_1.0.7_1773163056272_0.5560136695942002","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@bernierllc/content-storage","version":"1.1.0","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/content-storage@1.1.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"e2e07ffe1a4328b920de77a1589037d8405ad6fd","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.1.0.tgz","fileCount":13,"integrity":"sha512-ijvmFoS4aQwJMviFjkh0isfMPGNHhQEJfJkB8Ix+ib8jTq0KrI3+JUXv1Geos1b2ohrFA2RWBTHorzRnrQNMCg==","signatures":[{"sig":"MEYCIQD0lY2L2wWZ2UOdVHx1PzBnrlZEy3RE1ZU2C0u51BGdzQIhAKJ1Bofvx1ATK5neaffmc2RKsBCLNNzskTim6XCado6M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82960},"main":"dist/index.js","_from":"file:bernierllc-content-storage-1.1.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:09d561a5-3e5c-40eb-8c5b-3eacb9208796"}},"_resolved":"/home/runner/work/tools/tools/packages/core/content-storage/bernierllc-content-storage-1.1.0.tgz","_integrity":"sha512-ijvmFoS4aQwJMviFjkh0isfMPGNHhQEJfJkB8Ix+ib8jTq0KrI3+JUXv1Geos1b2ohrFA2RWBTHorzRnrQNMCg==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/content-storage"},"_npmVersion":"11.14.1","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/crypto-utils":"1.2.0","@bernierllc/connection-parser":"1.0.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/content-storage_1.1.0_1779221223478_0.7538608836677241","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bernierllc/content-storage","version":"1.3.0","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/content-storage@1.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"ab5a6fb6ed62bb5989054409ead655979211e26d","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.3.0.tgz","fileCount":15,"integrity":"sha512-bXwtWMnNl4/zAiW32DEPEoZwn65gsn7iAr3HipBq9WVrdMR4alwYRZb3rpjMyAGZ/84/TzaoaRDcpRic2PISHA==","signatures":[{"sig":"MEQCIGathJ5zSnDJexTiinudX/17LOzj1KM3y731aaIYC2KvAiBgVJph4W7ouii/oDZGfAv5qqBq2VNkn8K0uUHYVchE4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84253},"main":"dist/index.js","_from":"file:bernierllc-content-storage-1.3.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:09d561a5-3e5c-40eb-8c5b-3eacb9208796"}},"_resolved":"/home/runner/work/tools/tools/packages/core/content-storage/bernierllc-content-storage-1.3.0.tgz","_integrity":"sha512-bXwtWMnNl4/zAiW32DEPEoZwn65gsn7iAr3HipBq9WVrdMR4alwYRZb3rpjMyAGZ/84/TzaoaRDcpRic2PISHA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/content-storage"},"_npmVersion":"11.14.1","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/crypto-utils":"1.2.0","@bernierllc/connection-parser":"1.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/content-storage_1.3.0_1779233874853_0.10490881556220355","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bernierllc/content-storage","version":"1.4.0","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/content-storage@1.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"0f52633183c7f690de0a293a72dee2925cf951b5","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.4.0.tgz","fileCount":15,"integrity":"sha512-zB4toDGoyVJu+ixAYOtS5rXJR2scWZccZgkZVd4c8WEesuBmxeK0Z0smgr49pFfYfOWE+zECcGwdn3XuVMVtFA==","signatures":[{"sig":"MEUCIDEjtiC0mSNjfcspKRSvKOPpXKZbNcP8rCFvRBiizmm0AiEA1GJhayMXx9ejeoU5xPBHMeClfd5DpN0jGYBj74fskZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84253},"main":"dist/index.js","_from":"file:bernierllc-content-storage-1.4.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:09d561a5-3e5c-40eb-8c5b-3eacb9208796"}},"_resolved":"/home/runner/work/tools/tools/packages/core/content-storage/bernierllc-content-storage-1.4.0.tgz","_integrity":"sha512-zB4toDGoyVJu+ixAYOtS5rXJR2scWZccZgkZVd4c8WEesuBmxeK0Z0smgr49pFfYfOWE+zECcGwdn3XuVMVtFA==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/content-storage"},"_npmVersion":"11.14.1","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/crypto-utils":"1.3.0","@bernierllc/connection-parser":"1.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/content-storage_1.4.0_1779240986092_0.039165819257774404","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@bernierllc/content-storage","version":"1.5.0","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","_id":"@bernierllc/content-storage@1.5.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","bugs":{"url":"https://github.com/bernierllc/tools/issues"},"dist":{"shasum":"18520280d56b1450e096a59f1c2e2439a0765b3d","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.5.0.tgz","fileCount":15,"integrity":"sha512-POHxAzAX5AyhaAAvDDn5nxEv3FStgT7AFZRYyX2MpkkEMPVqtbReurfGq9SnqJ+P343pk/bcqXT0xIldMl4bEg==","signatures":[{"sig":"MEUCIF8ijRz0Km+3wzm+F5av1kGp2SIFuuLtKifrAgvoBIbeAiEA5FANlO08Atl61aXF49Vw0HELRYe2I7m27K6bXzJCxhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84253},"main":"dist/index.js","_from":"file:bernierllc-content-storage-1.5.0.tgz","types":"dist/index.d.ts","engines":{"node":">=16.0.0"},"scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","prebuild":"npm run clean","test:run":"jest --watchAll=false","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:09d561a5-3e5c-40eb-8c5b-3eacb9208796"}},"_resolved":"/home/runner/work/tools/tools/packages/core/content-storage/bernierllc-content-storage-1.5.0.tgz","_integrity":"sha512-POHxAzAX5AyhaAAvDDn5nxEv3FStgT7AFZRYyX2MpkkEMPVqtbReurfGq9SnqJ+P343pk/bcqXT0xIldMl4bEg==","repository":{"url":"git+https://github.com/bernierllc/tools.git","type":"git","directory":"packages/core/content-storage"},"_npmVersion":"11.14.1","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@bernierllc/crypto-utils":"1.4.0","@bernierllc/connection-parser":"1.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","eslint":"^8.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0","@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/content-storage_1.5.0_1779249722822_0.3256367720041662","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@bernierllc/content-storage","version":"1.6.0","description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","main":"dist/index.js","types":"dist/index.d.ts","keywords":["content","storage","database","versioning","cms","atomic","core"],"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","dependencies":{"@bernierllc/crypto-utils":"1.4.0","@bernierllc/connection-parser":"3.0.0"},"devDependencies":{"@types/jest":"^29.0.0","@types/node":"^20.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.0.0","jest":"^29.0.0","rimraf":"^5.0.0","ts-jest":"^29.0.0","typescript":"^5.0.0"},"repository":{"type":"git","url":"git+https://github.com/bernierllc/tools.git","directory":"packages/core/content-storage"},"bugs":{"url":"https://github.com/bernierllc/tools/issues"},"homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"engines":{"node":">=16.0.0"},"scripts":{"build":"tsc","prebuild":"npm run clean","clean":"rimraf dist","test":"jest","test:run":"jest --watchAll=false","test:watch":"jest --watch","test:coverage":"jest --coverage","lint":"eslint src --ext .ts"},"_id":"@bernierllc/content-storage@1.6.0","_integrity":"sha512-vbkyBXXaFv1asGVn1q6tOtJK5YEQMaJ6JkmjIiTbIdNKUnCOo8jY3SennOxKnEzHgY+QIK9FBAHrff49E1dQnA==","_resolved":"/home/runner/work/tools/tools/packages/core/content-storage/bernierllc-content-storage-1.6.0.tgz","_from":"file:bernierllc-content-storage-1.6.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-vbkyBXXaFv1asGVn1q6tOtJK5YEQMaJ6JkmjIiTbIdNKUnCOo8jY3SennOxKnEzHgY+QIK9FBAHrff49E1dQnA==","shasum":"13b88c7f32b0c303ef133501dcbb80c53abfc77b","tarball":"https://registry.npmjs.org/@bernierllc/content-storage/-/content-storage-1.6.0.tgz","fileCount":15,"unpackedSize":84253,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDYF7oauxKnKQszkpCWPvaMDCAaoB49DtomZXYe4/q7+AIgChFw6r78ZWskM1ql2qPpZXKP9JA1+N7Ncoo+UKM0asM="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:09d561a5-3e5c-40eb-8c5b-3eacb9208796"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/content-storage_1.6.0_1779303281158_0.880477770517742"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-01T23:33:56.445Z","modified":"2026-05-20T18:54:41.494Z","1.0.1":"2025-09-01T23:33:57.081Z","1.0.2":"2025-12-21T00:25:03.922Z","1.0.3":"2025-12-21T02:18:05.424Z","1.0.5":"2026-01-05T20:17:37.955Z","1.0.6":"2026-03-09T17:42:45.608Z","1.0.7":"2026-03-10T17:17:36.423Z","1.1.0":"2026-05-19T20:07:03.612Z","1.3.0":"2026-05-19T23:37:54.990Z","1.4.0":"2026-05-20T01:36:26.237Z","1.5.0":"2026-05-20T04:02:02.955Z","1.6.0":"2026-05-20T18:54:41.331Z"},"bugs":{"url":"https://github.com/bernierllc/tools/issues"},"author":{"name":"Bernier LLC"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/bernierllc/tools/tree/main/packages/core/content-storage#readme","keywords":["content","storage","database","versioning","cms","atomic","core"],"repository":{"type":"git","url":"git+https://github.com/bernierllc/tools.git","directory":"packages/core/content-storage"},"description":"Universal content storage engine with multiple backend adapters, versioning, and content lifecycle management","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/content-storage\n\nUniversal content storage engine with multiple backend adapters, versioning, and content lifecycle management.\n\n## Installation\n\n```bash\nnpm install @bernierllc/content-storage\n```\n\n## Usage\n\n### Basic Setup\n\n```typescript\nimport { StorageManager, MemoryStorageAdapter } from '@bernierllc/content-storage';\n\n// Create and configure storage manager\nconst manager = new StorageManager({\n  enableVersioning: true,\n  enableRevisions: true,\n  maxVersions: 10\n});\n\n// Register storage adapter\nconst memoryAdapter = new MemoryStorageAdapter();\nawait memoryAdapter.connect();\nmanager.registerAdapter(memoryAdapter);\n\n// Create content\nconst content = await manager.create({\n  type: 'post',\n  title: 'My First Post',\n  content: 'This is the content of my first post.',\n  author: 'john-doe',\n  tags: ['javascript', 'tutorial'],\n  categories: ['programming']\n});\n\nconsole.log('Created content:', content.id);\n```\n\n### Content Operations\n\n```typescript\n// Read content\nconst retrieved = await manager.read(content.id);\n\n// Update content\nconst updated = await manager.update(content.id, {\n  title: 'My Updated Post',\n  content: 'This is the updated content.'\n});\n\n// Delete content\nconst deleted = await manager.delete(content.id);\n\n// Check if content exists\nconst exists = await manager.exists(content.id);\n```\n\n### Querying Content\n\n```typescript\n// Query by type\nconst posts = await manager.query({ type: 'post' });\n\n// Query by status\nconst published = await manager.query({ \n  status: ContentStatus.PUBLISHED \n});\n\n// Search with text\nconst searchResults = await manager.query({ \n  search: 'javascript tutorial' \n});\n\n// Complex query with filters\nconst results = await manager.query({\n  type: 'post',\n  status: [ContentStatus.PUBLISHED, ContentStatus.SCHEDULED],\n  tags: ['javascript'],\n  dateRange: {\n    start: new Date('2025-01-01'),\n    end: new Date('2025-12-31'),\n    field: 'publishedAt'\n  },\n  sortBy: 'createdAt',\n  sortOrder: 'desc',\n  limit: 10,\n  offset: 0\n});\n\nconsole.log(`Found ${results.total} items:`, results.items);\n```\n\n### Version Management\n\n```typescript\n// Get all versions of content\nconst versions = await manager.getVersions(content.id);\n\n// Get specific version\nconst version = await manager.getVersion(content.id, 1);\n\n// Revert to previous version\nconst reverted = await manager.revertToVersion(content.id, 1);\n```\n\n### Bulk Operations\n\n```typescript\n// Bulk create\nconst items = [\n  { type: 'post', title: 'Post 1', content: 'Content 1', author: 'author1' },\n  { type: 'post', title: 'Post 2', content: 'Content 2', author: 'author2' },\n  { type: 'post', title: 'Post 3', content: 'Content 3', author: 'author3' }\n];\n\nconst created = await manager.bulkCreate(items);\n\n// Bulk update\nconst updates = [\n  { id: created[0].id, updates: { title: 'Updated Post 1' } },\n  { id: created[1].id, updates: { title: 'Updated Post 2' } }\n];\n\nconst updated = await manager.bulkUpdate(updates);\n\n// Bulk delete\nconst ids = created.map(item => item.id);\nconst results = await manager.bulkDelete(ids);\n```\n\n### Content Validation\n\n```typescript\nimport { ValidationEngine, createBasicContentSchema } from '@bernierllc/content-storage';\n\nconst validator = new ValidationEngine();\n\n// Register a basic schema\nconst basicSchema = createBasicContentSchema();\nvalidator.registerSchema(basicSchema);\n\n// Create custom schema\nconst blogSchema = {\n  type: 'blog-post',\n  fields: {\n    title: {\n      type: FieldType.STRING,\n      required: true,\n      min: 5,\n      max: 100\n    },\n    content: {\n      type: FieldType.TEXT,\n      required: true,\n      min: 50\n    },\n    excerpt: {\n      type: FieldType.TEXT,\n      max: 200\n    },\n    slug: {\n      type: FieldType.STRING,\n      format: 'slug'\n    },\n    author: {\n      type: FieldType.EMAIL,\n      format: 'email',\n      required: true\n    },\n    publishedAt: {\n      type: FieldType.DATE\n    }\n  },\n  required: ['title', 'content', 'author']\n};\n\nvalidator.registerSchema(blogSchema);\n\n// Validate content\nconst content = {\n  type: 'blog-post',\n  title: 'My Blog Post',\n  content: 'This is a comprehensive blog post about JavaScript...',\n  author: 'john@example.com',\n  slug: 'my-blog-post'\n};\n\nconst result = await validator.validateContent(content);\n\nif (!result.isValid) {\n  console.log('Validation errors:', result.errors);\n  console.log('Validation warnings:', result.warnings);\n}\n```\n\n### Event System\n\n```typescript\nimport { StorageEventType } from '@bernierllc/content-storage';\n\n// Listen for content events\nmanager.on(StorageEventType.CONTENT_CREATED, (event) => {\n  console.log('Content created:', event.contentId);\n});\n\nmanager.on(StorageEventType.CONTENT_UPDATED, (event) => {\n  console.log('Content updated:', event.contentId);\n});\n\nmanager.on(StorageEventType.CONTENT_DELETED, (event) => {\n  console.log('Content deleted:', event.contentId);\n});\n```\n\n### Health Monitoring\n\n```typescript\n// Check health of all adapters\nconst healthStatuses = await manager.healthCheck();\n\nhealthStatuses.forEach(status => {\n  console.log(`Adapter health: ${status.status}`);\n  if (status.error) {\n    console.error('Health check error:', status.error);\n  }\n});\n\n// Check specific adapter\nconst memoryHealth = await manager.healthCheck('memory');\nconsole.log('Memory adapter status:', memoryHealth[0].status);\n```\n\n### Custom Storage Adapters\n\n```typescript\nimport { StorageAdapter, StorageType, StorageCapability } from '@bernierllc/content-storage';\n\nclass CustomStorageAdapter implements StorageAdapter {\n  public readonly id = 'custom';\n  public readonly name = 'Custom Storage';\n  public readonly type = StorageType.DATABASE;\n  public readonly capabilities = [\n    StorageCapability.CREATE,\n    StorageCapability.READ,\n    StorageCapability.UPDATE,\n    StorageCapability.DELETE,\n    StorageCapability.QUERY\n  ];\n\n  async isConnected(): Promise<boolean> {\n    // Implementation\n    return true;\n  }\n\n  async connect(): Promise<void> {\n    // Implementation\n  }\n\n  async disconnect(): Promise<void> {\n    // Implementation\n  }\n\n  async healthCheck(): Promise<HealthStatus> {\n    // Implementation\n    return {\n      status: 'healthy',\n      lastCheck: new Date()\n    };\n  }\n\n  // Implement required methods...\n  async create(content: Partial<ContentItem>): Promise<ContentItem> {\n    // Implementation\n  }\n\n  async read(id: string): Promise<ContentItem | null> {\n    // Implementation\n  }\n\n  // ... other required methods\n}\n\n// Register custom adapter\nconst customAdapter = new CustomStorageAdapter();\nawait customAdapter.connect();\nmanager.registerAdapter(customAdapter);\n```\n\n## API Reference\n\n### StorageManager\n\nMain orchestrator class for content storage operations.\n\n#### Constructor\n- `new StorageManager(config?: Partial<StorageConfig>)`\n\n#### Methods\n- `registerAdapter(adapter: StorageAdapter): void`\n- `getAdapter(id?: string): StorageAdapter`\n- `create(content: Partial<ContentItem>, adapterId?: string): Promise<ContentItem>`\n- `read(id: string, adapterId?: string): Promise<ContentItem | null>`\n- `update(id: string, updates: Partial<ContentItem>, adapterId?: string): Promise<ContentItem>`\n- `delete(id: string, adapterId?: string): Promise<boolean>`\n- `query(query: ContentQuery, adapterId?: string): Promise<ContentQueryResult>`\n- `bulkCreate(items: Partial<ContentItem>[], adapterId?: string): Promise<ContentItem[]>`\n- `getVersions(contentId: string, adapterId?: string): Promise<ContentVersion[]>`\n- `healthCheck(adapterId?: string): Promise<HealthStatus[]>`\n\n### MemoryStorageAdapter\n\nIn-memory storage adapter for development and testing.\n\n#### Features\n- Full CRUD operations\n- Content querying with filtering, sorting, pagination\n- Version management\n- Revision tracking\n- Bulk operations\n- Content archiving and trash management\n\n### ValidationEngine\n\nContent validation system with schema support.\n\n#### Methods\n- `registerSchema(schema: ContentSchema): void`\n- `validateContent(content: Partial<ContentItem>): Promise<ValidationResult>`\n- `registerValidator(name: string, validator: ContentValidator): void`\n\n## Configuration\n\n```typescript\ninterface StorageConfig {\n  defaultAdapter?: string;\n  enableVersioning: boolean;\n  enableRevisions: boolean;\n  maxVersions: number;\n  autoCleanup: boolean;\n  cleanupInterval: number;\n  enableCaching: boolean;\n  cacheSize: number;\n  cacheTTL: number;\n  enableCompression: boolean;\n  compressionThreshold: number;\n  enableEncryption: boolean;\n  encryptionKey?: string;\n  backupEnabled: boolean;\n  backupInterval: number;\n  retentionPolicy?: RetentionPolicy;\n}\n```\n\n## Types\n\n### ContentItem\nCore content structure with metadata, versioning, and lifecycle information.\n\n### ContentQuery\nFlexible query interface supporting filtering, searching, sorting, and pagination.\n\n### StorageAdapter\nInterface for implementing custom storage backends.\n\n### ContentSchema\nSchema definition for content validation.\n\n## See Also\n\n- [@bernierllc/retry-policy](../retry-policy) - For implementing retry logic in custom adapters\n- [@bernierllc/crypto-utils](../crypto-utils) - For content encryption features\n\n## License\n\nCopyright (c) 2025 Bernier LLC. All rights reserved.","readmeFilename":"README.md"}