{"_id":"@carefully-built/convex-crud","_rev":"2-048a0eba06ea6101eb0f81287ef19d2f","name":"@carefully-built/convex-crud","dist-tags":{"latest":"0.1.9"},"versions":{"0.1.8":{"name":"@carefully-built/convex-crud","version":"0.1.8","author":{"name":"Alessandro Dodi"},"license":"MIT","_id":"@carefully-built/convex-crud@0.1.8","maintainers":[{"name":"alledodi","email":"dodialessandro3@gmail.com"}],"dist":{"shasum":"22d80ef9fda6882bb6f6a111c14fd556b0e5424f","tarball":"https://registry.npmjs.org/@carefully-built/convex-crud/-/convex-crud-0.1.8.tgz","fileCount":6,"integrity":"sha512-Z896SgKt9SJdINskCdwF7W+yNUzt4oPO6IDbGdViJUL4GSLSMriOiNMmhtW9WU1v327bgQFuhVD8o16QYxvZQQ==","signatures":[{"sig":"MEYCIQDS1Q//uUJJHTeHI0Mrcl7T7BcgNGOk4H8oMCpX7u1HVQIhALmb8wBsUutyGRwXIJ61d56DmVbzcCqCb6EcaTX1gJrF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68471},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.mts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./package.json":"./package.json"},"gitHead":"b84d3f58858fed9a9e06a291cd33ea8b6f1ff157","scripts":{"build":"tsdown src/index.ts --format esm --dts","typecheck":"tsc --noEmit","prepublishOnly":"bun run typecheck && bun run build"},"_npmUser":{"name":"alledodi","email":"dodialessandro3@gmail.com"},"_npmVersion":"11.9.0","description":"Reusable Convex CRUD audit, archive, and organization-record helpers.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/convex-crud_0.1.8_1782064387262_0.435756785661521","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@carefully-built/convex-crud","version":"0.1.9","description":"Reusable Convex CRUD audit, archive, and organization-record helpers.","type":"module","license":"MIT","author":{"name":"Alessandro Dodi"},"sideEffects":false,"main":"./dist/index.mjs","module":"./dist/index.mjs","types":"./dist/index.d.mts","exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs","default":"./dist/index.mjs"},"./package.json":"./package.json"},"scripts":{"build":"tsdown src/index.ts --format esm --dts","prepublishOnly":"bun run typecheck && bun run build","typecheck":"tsc --noEmit"},"publishConfig":{"access":"public"},"gitHead":"c93ed6a7671fc5f8e463cba62d51fdc2226be516","_id":"@carefully-built/convex-crud@0.1.9","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-pV8kKACNSGxrUjlgzkIs/WGg3skiitokobjHVxPhee0yRnq3g85wRqy2J79N1zlCtqS1qRu1BW/0Dg7Wh6drnw==","shasum":"04aa8214c74e7c6712993413b2588c91dbf0f82b","tarball":"https://registry.npmjs.org/@carefully-built/convex-crud/-/convex-crud-0.1.9.tgz","fileCount":6,"unpackedSize":68471,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCG6WtijT4CEXM1qPFEnP3siIlYvEhmEpr59A/yxx2eRAIgd+wviU3mcnhneunv/3HPGSHS5NRHXRWPcG5IlOUC5x8="}]},"_npmUser":{"name":"alledodi","email":"dodialessandro3@gmail.com"},"directories":{},"maintainers":[{"name":"alledodi","email":"dodialessandro3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/convex-crud_0.1.9_1782245562482_0.7555217313425353"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-21T17:53:07.101Z","modified":"2026-06-23T20:12:42.747Z","0.1.8":"2026-06-21T17:53:07.403Z","0.1.9":"2026-06-23T20:12:42.620Z"},"author":{"name":"Alessandro Dodi"},"license":"MIT","description":"Reusable Convex CRUD audit, archive, and organization-record helpers.","maintainers":[{"name":"alledodi","email":"dodialessandro3@gmail.com"}],"readme":"# @carefully-built/convex-crud\n\nReusable Convex CRUD helpers for SaaS resources.\n\n## What It Provides\n\n- `createAuditFields`\n- `updateAuditFields`\n- `archiveAuditFields`\n- `patchWithAudit`\n- `archiveWithAudit`\n- `getActiveOrgRecord`\n- `upsertOrganizationRecord`\n\n## Usage\n\n```ts\nimport { createAuditFields } from '@carefully-built/convex-crud';\n\nawait ctx.db.insert('contacts', {\n  organizationId,\n  ...data,\n  ...createAuditFields(currentUserId),\n});\n```\n\nApps keep their validators and domain logic local while sharing the repetitive audit/archive mechanics.\n","readmeFilename":"README.md"}