{"_id":"@gadicc/loom","_rev":"34-f96af3d03d1195d772e021002c396c2b","name":"@gadicc/loom","dist-tags":{"latest":"1.34.0"},"versions":{"0.0.0-oidc-bootstrap.0":{"name":"@gadicc/loom","version":"0.0.0-oidc-bootstrap.0","license":"Apache-2.0","_id":"@gadicc/loom@0.0.0-oidc-bootstrap.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"0b7667a2edce7323ea1baedcd9f8b79992e72c1f","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-0.0.0-oidc-bootstrap.0.tgz","fileCount":342,"integrity":"sha512-iw4SdQkzfl5EJ7290SXlEercRIkkk7B/5e0YjeQZ39dkuK5qaMutHAZItXQQjdAIHcewSyevd/IVWTWtLwENUw==","signatures":[{"sig":"MEQCIAU0QNA22o6PADUbwPOJBR95wSmmK1yAqiKFstpmmLPHAiBXjEZV1vC1cbXPxDnut6ogpVC0rYpr3yt7ce+LlwFFIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1626502},"loom":{"gitCommit":"a9c245e3945ddb6b30df037dadf79a90bb2c2598"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"a9c245e3945ddb6b30df037dadf79a90bb2c2598","scripts":{},"_npmUser":{"name":"gadicc","email":"dragon@wastelands.net"},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.6.2","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"25.2.1","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","@mui/material":"9.2.0","valibot-serialize":"^1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_0.0.0-oidc-bootstrap.0_1784641274434_0.5093041082026086","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@gadicc/loom","version":"1.15.0","license":"Apache-2.0","_id":"@gadicc/loom@1.15.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"5adac5124278fd9892b2b7e7a4f0f96420ccc032","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.15.0.tgz","fileCount":342,"integrity":"sha512-AXtLW/MqNW24m8n+gkgcrm5GsjI6FW8Ej8uxINwqc4JjUjdHnrAP+S5Kjcnk24AGZT7FqXQOO7akHaZagv9wqQ==","signatures":[{"sig":"MEYCIQCO0ey+XjLVICbzup7EsmsyvgmMSuKRtYKIN9YC7ypW2gIhALiBz/Tz9kjw1brNDX789QumXy6zldCjm5RCHNAbQYGd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1626488},"loom":{"gitCommit":"54869b28103ba4744eccdaf87f0a39f35812a99b"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"54869b28103ba4744eccdaf87f0a39f35812a99b","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.18.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","@mui/material":"9.2.0","valibot-serialize":"^1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.15.0_1784641694296_0.24342345271838073","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"@gadicc/loom","version":"1.15.1","license":"Apache-2.0","_id":"@gadicc/loom@1.15.1","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"4d5882a383323f51ef416d0314f181c42c535f5e","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.15.1.tgz","fileCount":342,"integrity":"sha512-DygSqTGPtVsHyuV8TfPwNggisgk73hIwxsf1a6v8wzst2mRsvNy0k8SA2d7x+UJntlbjqn1h2PXA+O9zj4vHIw==","signatures":[{"sig":"MEQCIDcYa5NXVLCOFEcuiuph5wy5mt18yK/C0t7bI3Ml8QKAAiAM7c/7HQHD2YO5rwzqtP/0mFcPkJALL57ehUAUZM1RWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1626716},"loom":{"gitCommit":"5452466dd5119cec20709dc4248f350fe0615c31"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"5452466dd5119cec20709dc4248f350fe0615c31","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.18.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","@mui/material":"9.2.0","valibot-serialize":"^1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.15.1_1784642984081_0.10415936627444933","host":"s3://npm-registry-packages-npm-production"}},"1.15.2":{"name":"@gadicc/loom","version":"1.15.2","license":"Apache-2.0","_id":"@gadicc/loom@1.15.2","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"b9d0081eea3b0b77e037ba9a7f00d420156b0d73","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.15.2.tgz","fileCount":342,"integrity":"sha512-y4dBoFVHgEGrmo6b8xbZ1knKeqx9VDjcwGH6x34cSfTAWyrO1UFN8DiAgeZdwOCQKyF3HRrsStHr5DQi9/37xw==","signatures":[{"sig":"MEYCIQDEnmUlst1ftU5V3VqKwHF2ibswO2qMKy8iOlIygJBDOQIhAOURNZ4fpOn5pk3aPVUuF22973RTMT0vuH2I0RO9f+Sz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1626882},"loom":{"gitCommit":"ffa386b031cb0aa21c5cb943a91f0d72d9854048"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"ffa386b031cb0aa21c5cb943a91f0d72d9854048","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.18.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","@mui/material":"9.2.0","valibot-serialize":"^1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.15.2_1784643313126_0.36464419189449027","host":"s3://npm-registry-packages-npm-production"}},"1.15.3":{"name":"@gadicc/loom","version":"1.15.3","license":"Apache-2.0","_id":"@gadicc/loom@1.15.3","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"0b4f7b15be7719f2c7d322279e67084033b4014f","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.15.3.tgz","fileCount":342,"integrity":"sha512-OibK8at9BSRkB4PWoRsICyn0PPnuKSaCvOvTxLPZx169a73KAY42+7G95PgzqXSxYWA/YcpOL7N85Rts/tmXPQ==","signatures":[{"sig":"MEUCIQChYtc07bNds+T6hOQU5hgMpIgT9P6reD0Xi/y8u3jrBwIgGGV8VS3+msJw5DEyi5PiqgtYdsvupUCDyETuLMT2Yjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1628359},"loom":{"gitCommit":"411ac04145eed93062965c195f6ddc5418ea7b08"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"411ac04145eed93062965c195f6ddc5418ea7b08","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.18.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.15.3_1784747636811_0.6560678509802975","host":"s3://npm-registry-packages-npm-production"}},"1.15.4":{"name":"@gadicc/loom","version":"1.15.4","license":"Apache-2.0","_id":"@gadicc/loom@1.15.4","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"81fc75425aaec7560fba0a89de66adf77c17e66a","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.15.4.tgz","fileCount":342,"integrity":"sha512-lgr4ywr1ZNGh9GZVBifLm2zkn9IzTf9t/qEKYClSUUZL6UnSAgUU6zQZvDhfK/kAo+gUBRuE1WWn/5U7wchn6w==","signatures":[{"sig":"MEYCIQCBvWXwiYd+o1YmbLF9tDgo/vx17uCJBATUu4a/iHBIyQIhAMCYg/qifPWLmhJiTqzX9h8U54pNpJcBcN2mbyESU5Ck","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1629513},"loom":{"gitCommit":"af51eac6b7771e44c51e159d093e50e23406042c"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"af51eac6b7771e44c51e159d093e50e23406042c","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.18.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.15.4_1784748474189_0.3548234325644788","host":"s3://npm-registry-packages-npm-production"}},"1.15.5":{"name":"@gadicc/loom","version":"1.15.5","license":"Apache-2.0","_id":"@gadicc/loom@1.15.5","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"dc591f018217c85c233731764ca8e1b518afa219","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.15.5.tgz","fileCount":342,"integrity":"sha512-4ul+QC4SB7XsnsgMfgNCnvlPTtlSvW831C0RD8Oqg65r97lUpUQnvSgdNSzMP+YBMNu+RjjDBWR3RbTBZf+AsQ==","signatures":[{"sig":"MEUCIA9JiKfg2YKlNMGCqEFhZDgh3uGs4Ie2tEA+rsyViwMPAiEA4iKzAwXAH/jRl5iqBMWoBC/BnWll3mBZ2zUNKALHTuY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1638582},"loom":{"gitCommit":"55366d5ef806261ea2de32c9f8b4408988690aaa"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"55366d5ef806261ea2de32c9f8b4408988690aaa","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.18.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.15.5_1784828163335_0.6067408553865183","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@gadicc/loom","version":"1.16.0","license":"Apache-2.0","_id":"@gadicc/loom@1.16.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"82cff6f0c9ab76e9b1bc1cc41c0fabcfbd094801","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.16.0.tgz","fileCount":354,"integrity":"sha512-wGtIIvwZUTCXQgYcEZtoJNtKXCtYXZxPgo0Sy4MNy6aPIRaqnY5ZU9bhPBW3t1JRa1jW2SR32RnaTgTWJi4eqw==","signatures":[{"sig":"MEUCIQCiz7qxj5Q1SjuPG2O4ZeAwB4UqbhHSv1YF7CsanW/AkwIgAXV3TeS/M+/5v5ocVgZiDkMkazsgyYAK+iov8hF6eyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1688764},"loom":{"gitCommit":"a02e283c48cb3819cbeab3b90348bb71fc8d20b5"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"a02e283c48cb3819cbeab3b90348bb71fc8d20b5","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.18.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.16.0_1784884588015_0.4371060462416039","host":"s3://npm-registry-packages-npm-production"}},"1.16.1":{"name":"@gadicc/loom","version":"1.16.1","license":"Apache-2.0","_id":"@gadicc/loom@1.16.1","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"749f7b4a0037df707906547ab91799eb15076e20","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.16.1.tgz","fileCount":354,"integrity":"sha512-14Hvp3XUwc98EyDG4N2Ffx+Cd7OoBNvW9ZPpMk51wUjiRjt/7Wu7MhvmDxg5hdIBIXX5m7q7LZ7ND4kN3wVC8Q==","signatures":[{"sig":"MEYCIQCr3YpnkvuXSAYJkxUopMnq6qoTDOore0+N+mSN2J41kgIhANNqmi06QLcM28+gBpUhUKDw6JmFKViuToO+lCnegdQZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1694811},"loom":{"gitCommit":"24718f26ff727c8b95d2f8ac9f23a6eee7db130e"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"24718f26ff727c8b95d2f8ac9f23a6eee7db130e","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.18.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.16.1_1784892917312_0.13572711192272258","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@gadicc/loom","version":"1.17.0","license":"Apache-2.0","_id":"@gadicc/loom@1.17.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"c2d3dded8701ff20393b1230d3b39ae76f68333f","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.17.0.tgz","fileCount":421,"integrity":"sha512-c4eIoTaSInhNWqO9m+XAk4cLr7qTn7t6nlN0iFpnl4Ge4sKTtU/EQuCDg/Bf99Fjfc7h1rXZezEtnJfagYaMNQ==","signatures":[{"sig":"MEYCIQD/661NWuAIhn+YiJL4cR+56eK4om/HHZbj1PnsX7Ol4QIhALXVqBseSCmLVI4DdtUrrTBm0KPJSFFOsFwjoSWuxtum","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1934282},"loom":{"gitCommit":"2af3d2c0ce1659a4117c0a8f5713d196034b227b"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"2af3d2c0ce1659a4117c0a8f5713d196034b227b","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.18.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","react-dom":"19.2.7","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.17.0_1785244095494_0.682377972734852","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@gadicc/loom","version":"1.18.0","license":"Apache-2.0","_id":"@gadicc/loom@1.18.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"02ffd87c5cdd67a5217aa13f1318ab38119c2f3d","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.18.0.tgz","fileCount":430,"integrity":"sha512-BgMFyf/CHXbVpm3nG1fDiVX9gy8PkyMiwSPeBOEgnQU9NP5492wj7UlYULKxwgM2T504G01K8WQRZ3PTmeUf9g==","signatures":[{"sig":"MEQCH3bvOu22JEiAUBb6YzgKrn8uDvjhSOn3CZljrf4ebUMCIQDZPsKMr5i4kYYsprL/jbk6vzSm+dhQHqM6lnk13MXUyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2067953},"loom":{"gitCommit":"fde1b69c5e2c77c8f2aa8439655a3d40d9097275"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"fde1b69c5e2c77c8f2aa8439655a3d40d9097275","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.18.0_1785573130148_0.1555794718871466","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@gadicc/loom","version":"1.19.0","license":"Apache-2.0","_id":"@gadicc/loom@1.19.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"9c6d828ad17d481e76d83080d851bf4ea88cbb1f","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.19.0.tgz","fileCount":442,"integrity":"sha512-vnUuNtyP2nqPZx49BDoSjhtx6MQSrAG55RQJiI/tg9kKn3e42bvSakRxO+LHJnbfZbL7JibJbDuzSu/M45OYUA==","signatures":[{"sig":"MEYCIQDk1iqr3/NB1DpGmbKV4YakpEBmKvFPoDQCS2rBwJL9AQIhAIYcGniG+MbHISVIvRdh2wFPbIAVziT82kI3jMouxAyg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2105378},"loom":{"gitCommit":"8a9f7427a837b39e6ff03a877a23be02f898730b"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"8a9f7427a837b39e6ff03a877a23be02f898730b","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.19.0_1786783425985_0.8237076853935714","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@gadicc/loom","version":"1.20.0","license":"Apache-2.0","_id":"@gadicc/loom@1.20.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"bfce9722ce2e3f11953d5eb9feda0d03945da969","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.20.0.tgz","fileCount":445,"integrity":"sha512-V3ZY5hr5qSjvP3ngSoRTUTLXmu4JQsH+ycT+kHvwHVgyV+BcvphUR8pJradv+iho2ZlEDjyUuvbWNsKy4b4CGQ==","signatures":[{"sig":"MEYCIQCjnCHeYBgJRMP5lLlbqaP6Id+xuArDFxEpzIwAgFlfdAIhAKFnTl1vY3S+dxN88hNIPvdGYyNbcvYF5FGwy4pDqh0h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2126260},"loom":{"gitCommit":"647be4a2b62420a70941ac5470f64c6843564c18"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"647be4a2b62420a70941ac5470f64c6843564c18","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.20.0_1786786038452_0.4634023267545939","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"@gadicc/loom","version":"1.21.0","license":"Apache-2.0","_id":"@gadicc/loom@1.21.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"cbef7b6670b6f677c114f421af9fea971351a4c8","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.21.0.tgz","fileCount":451,"integrity":"sha512-uM10kE6BMsPEbtSPkpXEZEsBceCjIgSS3xapwzdmgRi+1csscpX8VEfETsdNcaR9mZt8fBiDl//pZesWATqyOg==","signatures":[{"sig":"MEUCIQDBFLSLorVfPkUrxe/qVgQma4TeKVdEZ3cWrgZ/3KNmnQIgCT1Fc5TD9q8IMQXfFnaJo7kg8hZBeIBl9H1Pp4OPIsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2158118},"loom":{"gitCommit":"c48e1a784fc82ef4ad7280b19e15fa62363c2712"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"c48e1a784fc82ef4ad7280b19e15fa62363c2712","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.21.0_1786804065839_0.10799229518133213","host":"s3://npm-registry-packages-npm-production"}},"1.21.1":{"name":"@gadicc/loom","version":"1.21.1","license":"Apache-2.0","_id":"@gadicc/loom@1.21.1","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"d0e2d0321faf25a8001eae625b9eebdfc9488aa2","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.21.1.tgz","fileCount":454,"integrity":"sha512-0jCE6QrXnxMXWHvqAhAoTCM6lU+zvhrGl5xyzxeEsp6aZWix6X+0cXVzDL1JoKbKYMOrJSYV+ghSXlX9gFNNIA==","signatures":[{"sig":"MEUCIFy417VBIbNpG3BpeFZ0QPnfNl6Zxgj56o2wInn2YpQPAiEA0FT4jK5gAAA/3phgiUSAqhq4B2r/Dz+dCYjniUz8GJI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2162476},"loom":{"gitCommit":"5e5f4af45c0081d4010f2b033cf71b45f818005e"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"5e5f4af45c0081d4010f2b033cf71b45f818005e","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.21.1_1787506681863_0.19459427762130543","host":"s3://npm-registry-packages-npm-production"}},"1.21.2":{"name":"@gadicc/loom","version":"1.21.2","license":"Apache-2.0","_id":"@gadicc/loom@1.21.2","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"d38bcf3101abc8e0ba8fe2e602d1bc58453a78c4","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.21.2.tgz","fileCount":454,"integrity":"sha512-0oScnkevklCrQ9bSkTtLetOijd0zlAxBR4GqlQDVYCTJURjXKpqcXsxOunjsMd68BdBbs6E673lYhG0OrS/qMA==","signatures":[{"sig":"MEQCIER9ZneiOXf/A2stSohqXz1aftulCpTJHoKiSCrb622DAiASsH8futEGAArXcGghbhzke8WXNip3OvtB6VR2IJ5+Wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2178321},"loom":{"gitCommit":"d9d6aa5db5ca8b7a69602b6023b9d0acefe267bd"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"d9d6aa5db5ca8b7a69602b6023b9d0acefe267bd","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.21.2_1787568736801_0.8467751684789449","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"@gadicc/loom","version":"1.22.0","license":"Apache-2.0","_id":"@gadicc/loom@1.22.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"eb347d66d2a7f8d8e6f45ac3cf1dd623e4a1dff9","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.22.0.tgz","fileCount":454,"integrity":"sha512-d561MtWe4Pv9GiEr3leDuurciHTvcIYikKf6EU4u146g2flzBhou9YtIRFdefM1bU3x9wR0wWF+ZDLWVBOaKnQ==","signatures":[{"sig":"MEUCIQC3abOK8w8pQq5L5AoIyEYXMVwE7kBp2VooxvRI+lGuhwIgZHKD+isyVJxedO/cAqj/TEq9EJ0WCK1h102wrbBGVQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2186875},"loom":{"gitCommit":"049978cd318628403b7b61c75311d6459cf7fc7e"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"049978cd318628403b7b61c75311d6459cf7fc7e","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.22.0_1788426157959_0.43685969014386106","host":"s3://npm-registry-packages-npm-production"}},"1.22.1":{"name":"@gadicc/loom","version":"1.22.1","license":"Apache-2.0","_id":"@gadicc/loom@1.22.1","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"991d4d19ca9ade27fd5e5037f3ac171c7eca5330","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.22.1.tgz","fileCount":454,"integrity":"sha512-e9cz5jCepxLFToNv6nA5l47RN/ef3kBXeC4foZNNgnI4S8ABuuP6f1sSOMFSTLkwpFBaX9p5FzB29shzcQrnbQ==","signatures":[{"sig":"MEUCIQC1rUoG0jp6icV6Iyd+z3eL7Hdq6pKf29DhpjVTFQrQAAIgOwz7GQi48LZXdThgTuPSwG6K5R6dgtAS4xYq6cPdrjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2187705},"loom":{"gitCommit":"30e5ffb5178e793a7780fa10bfe5b2719bccece5"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"30e5ffb5178e793a7780fa10bfe5b2719bccece5","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.22.1_1788427169414_0.2629111274111624","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"@gadicc/loom","version":"1.23.0","license":"Apache-2.0","_id":"@gadicc/loom@1.23.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"f137c0100962488f2d9b1e7b97d50e865d0ea95a","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.23.0.tgz","fileCount":457,"integrity":"sha512-HpfmH0tMDwF9JocbYnqWjGF5MNpi4Vjo9Gvmf+iuBp0z9F3Z5BjlhU2nXc/LaOETQffzXZa8wEAPPqsAWzYhdg==","signatures":[{"sig":"MEUCIGEcxglolMI3A0sYeihL5xRX/vYXlmf+ckWG22nDXddCAiEA1iTrYzdJ//7mWx952EpmLml3XJgOBh7FIbld2C9t6gU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2220578},"loom":{"gitCommit":"bb158a1690fa338bc94307c84a2f8bf870f02d72"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"bb158a1690fa338bc94307c84a2f8bf870f02d72","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.23.0_1788434415675_0.24917986738497655","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"@gadicc/loom","version":"1.24.0","license":"Apache-2.0","_id":"@gadicc/loom@1.24.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"8512458855f8912fbf14e29e93a404d861ab0055","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.24.0.tgz","fileCount":463,"integrity":"sha512-RboEmaP88FcSGxrbvtUq38cvBFuvMgrshLFHm8PfTckJYWUJL+sJTlbdKfcU7WjChpMdThS8TOrCVgfKSvpwYw==","signatures":[{"sig":"MEYCIQCKOb5bFi6USOdG0SAGyTTznXDs+35/eJU+uGcB8pu75wIhALV7Vgf3Q+oY/4t0JLbCe7OGTQre2RECGc3SA0R9qbh1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2238461},"loom":{"gitCommit":"3a84d424bb19d3b82bd3de2263d820912670e323"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"3a84d424bb19d3b82bd3de2263d820912670e323","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.24.0_1789220398716_0.48477124530417925","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"@gadicc/loom","version":"1.25.0","license":"Apache-2.0","_id":"@gadicc/loom@1.25.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"eb9810a48ebd6c69a15f844f05e16ff1fb61bdc0","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.25.0.tgz","fileCount":471,"integrity":"sha512-RURvP9TRnC76z0pwxp6T4p1hyQ4NMGGjqM9G1GhyMcj1yCm6b16asZZPV+9ftJqud2ytngca3lDfEG19exy+FQ==","signatures":[{"sig":"MEUCIAuRRsNH/XC6AUcqNMjI+oQhNcvtzuntmSrQPuosh3WUAiEAu/cz7ub/ynLP/lOQUGLwYAODAGQWmiL86JD54j0tD0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2274408},"loom":{"gitCommit":"2e3c6570131f3cc234913ed72fbe945428b94d3d"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"2e3c6570131f3cc234913ed72fbe945428b94d3d","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.25.0_1789317895205_0.9175581329840299","host":"s3://npm-registry-packages-npm-production"}},"1.26.0":{"name":"@gadicc/loom","version":"1.26.0","license":"Apache-2.0","_id":"@gadicc/loom@1.26.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"d27dd02627303f0d116541562be344a4a715c603","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.26.0.tgz","fileCount":489,"integrity":"sha512-VBhNiMV/PSc3sotx8h2EFwZYmkzb4Z/IFnqRVyUU5xeobSx0JJg29JV4V9CirvmQaeiUFtyDhmh0XCWgYC5GdQ==","signatures":[{"sig":"MEUCIQD+gk2RsfVRLmpv8kmkgq1IsOfE+msWZjT7s6coue+zhAIgP8INyGO2khozDQZNdo113E1mFF1bMPQDIyBjXJSEeu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2352359},"loom":{"gitCommit":"53d38019c2102bcc40d4eb9ab77b7c562f7c1404"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"53d38019c2102bcc40d4eb9ab77b7c562f7c1404","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.26.0_1789380273510_0.45416701732027165","host":"s3://npm-registry-packages-npm-production"}},"1.26.1":{"name":"@gadicc/loom","version":"1.26.1","license":"Apache-2.0","_id":"@gadicc/loom@1.26.1","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"7fddf0094ad56b8b8f2399f7791d334dddb46e42","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.26.1.tgz","fileCount":489,"integrity":"sha512-syQk7WLbSj2uvX2960pnE7EaKCGzZfkOix7Livn6sWgdbEQzsSI1qz7N+G/m70fxTY0cBUIqnCo8wGjKRPh5XQ==","signatures":[{"sig":"MEUCIQDt+DyIrcmSlRnNvIGrqdosJP7TKYtvoZeVmdfyt/ar1AIgJB+EIzXozCppjCJhZcteaGTushgepw47d6+NlA67gwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2364834},"loom":{"gitCommit":"3ff7266a0fe17e747ff52f1310fe6d9dbcc70a40"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"3ff7266a0fe17e747ff52f1310fe6d9dbcc70a40","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.26.1_1789401729981_0.49830261934686915","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"name":"@gadicc/loom","version":"1.27.0","license":"Apache-2.0","_id":"@gadicc/loom@1.27.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"21c72cb0c5a29b0e760a85342df1eece9b5bde08","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.27.0.tgz","fileCount":495,"integrity":"sha512-tP0PuHkmxS/nUMR8fplI7neIT+CTgakeYscISia75nXJSTLJpOP6Xk0XcM8TBtjRc5upeVhPTj/C58bE0Q04hQ==","signatures":[{"sig":"MEUCIQD0Pu/tOZuOSji0Pi2lRXS9NgHol2FTpnwQDCD7rxJcugIgLava85nC155hcasBhTINVSOWELBCrwR/Yrh6wxmO1fU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD7ygp/HpvG3F8d2rujk6rLIeGmhzyk93WgfBgaC2lXIgIgSpDpzROkQfNrm0DSpMplwXMI9sjz+9d3d60O4y8z1Ds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2400334},"loom":{"gitCommit":"af9d485adcc2fb2d2d8e1b3c4f83748b59653f56"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"af9d485adcc2fb2d2d8e1b3c4f83748b59653f56","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.27.0_1789408533184_0.16599476322110096","host":"s3://npm-registry-packages-npm-production"}},"1.28.0":{"name":"@gadicc/loom","version":"1.28.0","license":"Apache-2.0","_id":"@gadicc/loom@1.28.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"bab8343c9d7ec38b59a85e14eeb58f1aa4c01f5b","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.28.0.tgz","fileCount":501,"integrity":"sha512-/9gFkDzkCUtmulfjshpAywVU/u7MB3ZT7EwS6AC9J5BISMa7CKj6olvxwy/TR7FOZlcaSj1jUE29BG8WWB3Viw==","signatures":[{"sig":"MEUCIQD3T18r0XcEe57rMfIbT+eqGGNJqXmWJWR6hIjyB+bTogIgFsU9YBejnDdoKZxeym/IzTJVcU3RfI7IvlZMcKWxPkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGbGWSn2/vnf5ggpNceILsPQGPGTQkrJkEFX2msoXJACAiAJJ5Ie/r+lj8UMJJrTsRc2TJZohATk1IRzp7voJz6/Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2492526},"loom":{"gitCommit":"e381c057d5eb321d4982119984d98ec292d79c41"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"}},"gitHead":"e381c057d5eb321d4982119984d98ec292d79c41","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.28.0_1789732239556_0.06869586992347299","host":"s3://npm-registry-packages-npm-production"}},"1.29.0":{"name":"@gadicc/loom","version":"1.29.0","license":"Apache-2.0","_id":"@gadicc/loom@1.29.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"057f599d967d2d155f472702d03cdd6164f3852d","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.29.0.tgz","fileCount":507,"integrity":"sha512-IHEKaaFgO3/3Ry6AY8/XVJP7pTtELvLHuYZtOaX3BuPX6Ix4/Y4TMipRnVntImwcCpXhTROk65lpezwKRTrdaA==","signatures":[{"sig":"MEUCIQC1/dNnnLGZ2FmuU6rSCQUaHU2jUmN/3eHEEJB2qljOIQIgMHS2s8o1kZO+F9Z++DSIR44U8ljvtzPFCmX/1SzUEl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBAPy9raz6rfQqsAHK/F1qz2mA3/weTfuZ2HUSR7DRxnAiAhtdnFVF7eZC7TBgBwrrEHofihfC24yjjFPBwSpdyYJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2503420},"loom":{"gitCommit":"3b37c6ad50a4faaf5ee2e48fa5669dcbdee9b36a"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./src/next/auth/client.js":{"import":"./esm/src/next/auth/client.js","require":"./script/src/next/auth/client.js"}},"gitHead":"3b37c6ad50a4faaf5ee2e48fa5669dcbdee9b36a","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.29.0_1789733166866_0.6902164958081427","host":"s3://npm-registry-packages-npm-production"}},"1.30.0":{"name":"@gadicc/loom","version":"1.30.0","license":"Apache-2.0","_id":"@gadicc/loom@1.30.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"28da8a444ee659f9447e725bea4963897331a4ce","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.30.0.tgz","fileCount":519,"integrity":"sha512-rw9tZWf5ZilU1uJChq8qRdZquNapkaUc0M4xsq/Kv4DHAKcrWyhbH7BOPsEhMPOnT1GkpvUOfwcBtOKooWSu2g==","signatures":[{"sig":"MEYCIQCDVLj1KhQ6zkWovC5veUMpvH8WDbywX5WmiZZPCm5ohgIhAJYRRvwva1rx2kMyC59Emwf6JuNzqiPJQtVVLLFgKSeE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDa8WLsN6D8ureDUluZbvogaosr+HmNsCfWGFRoF6ATVQIhAJFsSD+m1aBkpMTWvAJkfydlW7susnCnogA2ly6StqF0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2531466},"loom":{"gitCommit":"043c9f47694f82164138ecf0960e367a7aec437d"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./client-data":{"types":"./esm/src/clientData/mod.d.ts","import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/clientData/mod.js":{"import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./src/next/auth/client.js":{"import":"./esm/src/next/auth/client.js","require":"./script/src/next/auth/client.js"}},"gitHead":"043c9f47694f82164138ecf0960e367a7aec437d","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"client-data":["esm/src/clientData/mod.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.30.0_1789985424633_0.9817819743049043","host":"s3://npm-registry-packages-npm-production"}},"1.31.0":{"name":"@gadicc/loom","version":"1.31.0","license":"Apache-2.0","_id":"@gadicc/loom@1.31.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"e066552f81bc30ad93f693b406660b456094fe40","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.31.0.tgz","fileCount":525,"integrity":"sha512-tyIelwb6+oayDOclHD7I2MfGZvAFWA23ERk67ms1nT8GQsBtUnyIz6dhvWJwziqHw65Q4sxaAnx8yxJIBPv5aw==","signatures":[{"sig":"MEUCIQDKot7EwnZfZImhGhQ4ZmfKah63NbXJxjFFw1d21vqiEQIgQprg6DFLYz1OaAlm6lj3bCw9Pn0T4wmFteHuSHdy0Xc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDiGmISkDq+R5tZLNR06tk2MUGUKRE4g+PrjCO2jBHZ8QIgN+wbYCvI+LmoghXcHqwk96m01fKbhHx6Px1H9hu1WPQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2601293},"loom":{"gitCommit":"a5809c0861257be6ba98d96f7bc4894594abc3eb"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./client-data":{"types":"./esm/src/clientData/mod.d.ts","import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/clientData/mod.js":{"import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./src/next/auth/client.js":{"import":"./esm/src/next/auth/client.js","require":"./script/src/next/auth/client.js"}},"gitHead":"a5809c0861257be6ba98d96f7bc4894594abc3eb","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"client-data":["esm/src/clientData/mod.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.31.0_1790068335007_0.28818321501156774","host":"s3://npm-registry-packages-npm-production"}},"1.31.1":{"name":"@gadicc/loom","version":"1.31.1","license":"Apache-2.0","_id":"@gadicc/loom@1.31.1","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"32b92a2c3658fabf3ba8ff8e1dc4d9033de66775","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.31.1.tgz","fileCount":525,"integrity":"sha512-67kwG6qxMa/8IzFWc4wlw/A1/4Sd6KJtjSXhxJ7tndeClHwdeTNqtbSIOTyjIElVb8pr85XC7jw/Ardtq9AQ3g==","signatures":[{"sig":"MEUCIBA+jo63+WJd/SxJ6Cn1aZgePQMJhsC0IAAOulctXfb5AiEAm4cP4rNgF6lwgQGDFDhbhy6Eiuw1ycD0B66NJP7/49Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBEZs9QHQo1bnMSJ0S9s8qsWBnEpzUbbiaG+H9yuxxWOAiEAsogp5iPlzGWV6G8Di7XgSN/zIZnRP1u7c28c+NgiHqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2601501},"loom":{"gitCommit":"0a2d50c4994b46fd91fb693f2ec21e3fddac616d"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./client-data":{"types":"./esm/src/clientData/mod.d.ts","import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/clientData/mod.js":{"import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./src/next/auth/client.js":{"import":"./esm/src/next/auth/client.js","require":"./script/src/next/auth/client.js"}},"gitHead":"0a2d50c4994b46fd91fb693f2ec21e3fddac616d","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.19.1","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"client-data":["esm/src/clientData/mod.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.31.1_1790077094780_0.25740682185935926","host":"s3://npm-registry-packages-npm-production"}},"1.32.0":{"name":"@gadicc/loom","version":"1.32.0","license":"Apache-2.0","_id":"@gadicc/loom@1.32.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"abce4338c564fdb763a5d55a97e92e03414ecdac","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.32.0.tgz","fileCount":527,"integrity":"sha512-GMtvGgoY8Tmy7a9TgSbvx5jFdaX8zqsBlzzparmU8CmqTA/hySGN5d2yBb7Vk39UmqAnrMY3X+pWVyTMR4/VZg==","signatures":[{"sig":"MEUCIFIWcNd/dWa0fzyoxN9u27keQHmhDgTQ5kzg5s4laPugAiEA1M/yaWHHm8WKAXykf638TspdCw9fIIjKOfYI1yfmL1Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD0VSTEn8TL2l4cnbZ23xLghGi1I8+4H2BOQr7co19kvQIgKLq9u265io4PGeWQLx2KFw2etPxxkF7GaBom40lXMBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2605021},"loom":{"gitCommit":"305a8f35a662d0033fea1ef5d539a51c179ff598"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./client-data":{"types":"./esm/src/clientData/mod.d.ts","import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/clientData/mod.js":{"import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./src/next/auth/client.js":{"import":"./esm/src/next/auth/client.js","require":"./script/src/next/auth/client.js"}},"gitHead":"305a8f35a662d0033fea1ef5d539a51c179ff598","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.20.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"client-data":["esm/src/clientData/mod.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.32.0_1790331532062_0.6170458169745585","host":"s3://npm-registry-packages-npm-production"}},"1.33.0":{"name":"@gadicc/loom","version":"1.33.0","license":"Apache-2.0","_id":"@gadicc/loom@1.33.0","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"63ac372fb6d10be762b5add8908f18ebb96e6683","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.33.0.tgz","fileCount":527,"integrity":"sha512-LLQ0KM4xuw3XEjFsfYEVkZ+a1J7GTRqIFKQscnl6gHuWaUaBWs/vc84TgrcUtsXKYBjviFD2Fz4m73OulOrxXA==","signatures":[{"sig":"MEYCIQCPeqjJCNGsczCWyr/WN6Z9sKyv1NAR9yRSTXTxh7rhiAIhAMR5LdUR5LsT/F6GrQkqEPwmlPNoMf35GTNS3hpLipPU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE4WEOJX7IG1+4cSt7zcvTYtrjalOlr8yl3PzpTZvgn9AiEAo0DbGYzq5NPszh1JhTHEkF53bjE5QLacxeEfWY9FBVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2653693},"loom":{"gitCommit":"842f835dc4fb04467f435a509e5723b6c4a0ccab"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./client-data":{"types":"./esm/src/clientData/mod.d.ts","import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/clientData/mod.js":{"import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./src/next/auth/client.js":{"import":"./esm/src/next/auth/client.js","require":"./script/src/next/auth/client.js"}},"gitHead":"842f835dc4fb04467f435a509e5723b6c4a0ccab","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.20.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"client-data":["esm/src/clientData/mod.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.33.0_1790412482104_0.19647143737769035","host":"s3://npm-registry-packages-npm-production"}},"1.33.1":{"name":"@gadicc/loom","version":"1.33.1","license":"Apache-2.0","_id":"@gadicc/loom@1.33.1","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"homepage":"https://github.com/gadicc/loom#readme","bugs":{"url":"https://github.com/gadicc/loom/issues"},"bin":{"loom":"script/bin/loom.js"},"dist":{"shasum":"5db938da1a7c4513562325be7389c10440cbb0fa","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.33.1.tgz","fileCount":527,"integrity":"sha512-2f/b48iduxPgFUuCjuHljDZ6WAarDXgb7Z8V7eiyIwOZhbO8AaUTzhrg7VWGAkcitqFTzanze5K4+Y3zCDhPwQ==","signatures":[{"sig":"MEYCIQDnqO5SIqImWmoCfv20LzJlX88C5g3hXoFsCSYePkIpeAIhALbqVy3ZML/KfIwzGj8FVyHqVwisyAUGrrzxl/JRsgi2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDAnBm1QvPVt56/gG2bMYc5dI7XDgwVx2xNZllY75JNkQIhAN7fenwvgsoSbKIlTQJVdjxDmj3DgPlFQf31yDv3jYX9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2657695},"loom":{"gitCommit":"c0b3f9992fe9707616c8226e5a736bca7758e423"},"main":"./script/mod.js","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./client-data":{"types":"./esm/src/clientData/mod.d.ts","import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/clientData/mod.js":{"import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./src/next/auth/client.js":{"import":"./esm/src/next/auth/client.js","require":"./script/src/next/auth/client.js"}},"gitHead":"c0b3f9992fe9707616c8226e5a736bca7758e423","scripts":{},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.20.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"client-data":["esm/src/clientData/mod.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/loom_1.33.1_1790414393321_0.3110118269165296","host":"s3://npm-registry-packages-npm-production"}},"1.34.0":{"_id":"@gadicc/loom@1.34.0","bin":{"loom":"script/bin/loom.js"},"bugs":{"url":"https://github.com/gadicc/loom/issues"},"dist":{"shasum":"fdee96768ffdb2788e83331a6c02f868922f4b26","tarball":"https://registry.npmjs.org/@gadicc/loom/-/loom-1.34.0.tgz","fileCount":533,"integrity":"sha512-RQ2cOZqV8hRcwsWyAnUryqCJdkIPGBPWFkKnXfeAzu/YLR9UuRfGxuMlTmPFw6yP/Zg9NOyyMz+FQp7LsAS3ig==","signatures":[{"sig":"MEUCIQDqrY2ex5v73ELtsDnn9sn6vK/Q/UC9ZE0JalIc4YsSAAIgEU0eSK9FwUozZ6B/90DcM41FZd2dGHYdCv1iVzRuodE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGELF9fPv2R7mIT5O9WrvPJ5TUawO4FJ1vqOkMQe41WOAiEAxp8SIvE9PQzo3oKh7PUixzRFZTeVXEjVBdL6vFowps0="}],"unpackedSize":2697768},"loom":{"gitCommit":"693de7acf98e6502a9986742695a3996b49d4d9a"},"main":"./script/mod.js","name":"@gadicc/loom","types":"./script/mod.d.ts","module":"./esm/mod.js","exports":{".":{"types":"./esm/mod.d.ts","import":"./esm/mod.js","require":"./script/mod.js"},"./mui":{"types":"./esm/src/mui/mod.d.ts","import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./jobs":{"types":"./esm/src/jobs/mod.d.ts","import":"./esm/src/jobs/mod.js","require":"./script/src/jobs/mod.js"},"./mail":{"types":"./esm/src/mail/mod.d.ts","import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./files":{"types":"./esm/src/files/mod.d.ts","import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./mui/*":{"types":"./esm/src/mui/*.d.ts","import":"./esm/src/mui/*.js","require":"./script/src/mui/*.js"},"./jobs/*":{"types":"./esm/src/jobs/*.d.ts","import":"./esm/src/jobs/*.js","require":"./script/src/jobs/*.js"},"./apiKeys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./db/neon":{"types":"./db/neon.d.ts","import":"./db/neon.js","default":"./db/neon.js","require":"./db/neon.js"},"./files/*":{"types":"./esm/src/files/*.d.ts","import":"./esm/src/files/*.js","require":"./script/src/files/*.js"},"./api-keys":{"types":"./esm/src/apiKeys/mod.d.ts","import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./mui/mail":{"types":"./esm/src/mui/mail.d.ts","import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./next/pwa":{"types":"./esm/src/next/pwa/mod.d.ts","import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./next/auth":{"types":"./esm/src/next/auth/mod.d.ts","import":"./esm/src/next/auth/mod.js","require":"./script/src/next/auth/mod.js"},"./next/jobs":{"types":"./esm/src/next/jobs/mod.d.ts","import":"./esm/src/next/jobs/mod.js","require":"./script/src/next/jobs/mod.js"},"./next/mail":{"types":"./esm/src/next/mail/mod.d.ts","import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./db/testing":{"types":"./db/testing.d.ts","import":"./db/testing.js","default":"./db/testing.js","require":"./db/testing.js"},"./db/valibot":{"types":"./db/valibot.d.ts","import":"./db/valibot.js","default":"./db/valibot.js","require":"./db/valibot.js"},"./next/files":{"types":"./esm/src/next/files/mod.d.ts","import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./next/pwa/*":{"types":"./esm/src/next/pwa/*.d.ts","import":"./esm/src/next/pwa/*.js","require":"./script/src/next/pwa/*.js"},"./bin/loom.js":{"import":"./esm/bin/loom.js","require":"./script/bin/loom.js"},"./client-data":{"types":"./esm/src/clientData/mod.d.ts","import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./db/fixtures":{"types":"./db/fixtures.d.ts","import":"./db/fixtures.js","default":"./db/fixtures.js","require":"./db/fixtures.js"},"./db/neonFull":{"types":"./db/neonFull.d.ts","import":"./db/neonFull.js","default":"./db/neonFull.js","require":"./db/neonFull.js"},"./mail/postal":{"types":"./esm/src/mail/postal.d.ts","import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./mui/apiKeys":{"types":"./esm/src/mui/apiKeys.d.ts","import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./mui/confirm":{"types":"./esm/src/mui/confirm.d.ts","import":"./esm/src/mui/confirm.js","require":"./script/src/mui/confirm.js"},"./next/auth/*":{"types":"./esm/src/next/auth/*.d.ts","import":"./esm/src/next/auth/*.js","require":"./script/src/next/auth/*.js"},"./next/jobs/*":{"types":"./esm/src/next/jobs/*.d.ts","import":"./esm/src/next/jobs/*.js","require":"./script/src/next/jobs/*.js"},"./next/apiKeys":{"types":"./esm/src/next/apiKeys/mod.d.ts","import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./next/files/*":{"types":"./esm/src/next/files/*.d.ts","import":"./esm/src/next/files/*.js","require":"./script/src/next/files/*.js"},"./src/mui/mod.js":{"import":"./esm/src/mui/mod.js","require":"./script/src/mui/mod.js"},"./db/database-url":{"types":"./db/databaseUrl.d.ts","import":"./db/databaseUrl.js","default":"./db/databaseUrl.js","require":"./db/databaseUrl.js"},"./src/mail/mod.js":{"import":"./esm/src/mail/mod.js","require":"./script/src/mail/mod.js"},"./src/mui/mail.js":{"import":"./esm/src/mui/mail.js","require":"./script/src/mui/mail.js"},"./src/files/mod.js":{"import":"./esm/src/files/mod.js","require":"./script/src/files/mod.js"},"./db/drizzle-config":{"types":"./db/drizzle-config.d.ts","import":"./db/drizzle-config.js","default":"./db/drizzle-config.js","require":"./db/drizzle-config.js"},"./src/apiKeys/mod.js":{"import":"./esm/src/apiKeys/mod.js","require":"./script/src/apiKeys/mod.js"},"./src/mail/postal.js":{"import":"./esm/src/mail/postal.js","require":"./script/src/mail/postal.js"},"./src/mui/apiKeys.js":{"import":"./esm/src/mui/apiKeys.js","require":"./script/src/mui/apiKeys.js"},"./src/next/pwa/mod.js":{"import":"./esm/src/next/pwa/mod.js","require":"./script/src/next/pwa/mod.js"},"./src/next/mail/mod.js":{"import":"./esm/src/next/mail/mod.js","require":"./script/src/next/mail/mod.js"},"./src/clientData/mod.js":{"import":"./esm/src/clientData/mod.js","require":"./script/src/clientData/mod.js"},"./src/next/files/mod.js":{"import":"./esm/src/next/files/mod.js","require":"./script/src/next/files/mod.js"},"./src/next/pwa/worker.js":{"import":"./esm/src/next/pwa/worker.js","require":"./script/src/next/pwa/worker.js"},"./src/next/apiKeys/mod.js":{"import":"./esm/src/next/apiKeys/mod.js","require":"./script/src/next/apiKeys/mod.js"},"./src/next/auth/client.js":{"import":"./esm/src/next/auth/client.js","require":"./script/src/next/auth/client.js"}},"gitHead":"693de7acf98e6502a9986742695a3996b49d4d9a","license":"Apache-2.0","scripts":{},"version":"1.34.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:76b46b7d-3c2a-44b8-9f9e-7293aef642c3"}},"homepage":"https://github.com/gadicc/loom#readme","repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"_npmVersion":"11.20.0","description":"Deno-first shared helpers for extracting common Next.js app code.","directories":{},"maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"_nodeVersion":"24.21.0","dependencies":{"tsx":"^4.23.1","react":"19.2.7","postgres":"^3.4.9","@next/env":"^16.2.10","react-dom":"19.2.7","jsonc-parser":"^3.3.1","@mui/material":"9.2.0","valibot-serialize":"^2.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"typesVersions":{"*":{"mui":["esm/src/mui/mod.d.ts"],"mail":["esm/src/mail/mod.d.ts"],"files":["esm/src/files/mod.d.ts"],"mui/*":["esm/src/mui/*.d.ts"],"apiKeys":["esm/src/apiKeys/mod.d.ts"],"files/*":["esm/src/files/*.d.ts"],"api-keys":["esm/src/apiKeys/mod.d.ts"],"mui/mail":["esm/src/mui/mail.d.ts"],"next/pwa":["esm/src/next/pwa/mod.d.ts"],"next/mail":["esm/src/next/mail/mod.d.ts"],"next/files":["esm/src/next/files/mod.d.ts"],"next/pwa/*":["esm/src/next/pwa/*.d.ts"],"client-data":["esm/src/clientData/mod.d.ts"],"mail/postal":["esm/src/mail/postal.d.ts"],"mui/apiKeys":["esm/src/mui/apiKeys.d.ts"],"mui/confirm":["esm/src/mui/confirm.d.ts"],"next/apiKeys":["esm/src/next/apiKeys/mod.d.ts"],"next/files/*":["esm/src/next/files/*.d.ts"]}},"_hasShrinkwrap":false,"peerDependencies":{"react":">=18","valibot":">=1.2.0","postgres":">=3.4.8","react-dom":">=18","superjson":">=2.2.6","drizzle-kit":">=0.31.9","drizzle-orm":">=0.45.1","server-only":">=0.0.1","@mui/material":">=5","@electric-sql/pglite":">=0.3.15","@neondatabase/serverless":">=1.0.2"},"peerDependenciesMeta":{"valibot":{"optional":true},"postgres":{"optional":true},"react-dom":{"optional":true},"superjson":{"optional":true},"drizzle-kit":{"optional":true},"drizzle-orm":{"optional":true},"server-only":{"optional":true},"@mui/material":{"optional":true},"@electric-sql/pglite":{"optional":true},"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/loom_1.34.0_1790420096031_0.30020900721325394"}}},"time":{"created":"2026-07-21T13:41:14.110Z","modified":"2026-09-26T10:54:56.291Z","0.0.0-oidc-bootstrap.0":"2026-07-21T13:41:14.762Z","1.15.0":"2026-07-21T13:48:14.460Z","1.15.1":"2026-07-21T14:09:44.280Z","1.15.2":"2026-07-21T14:15:13.259Z","1.15.3":"2026-07-22T19:13:56.989Z","1.15.4":"2026-07-22T19:27:54.377Z","1.15.5":"2026-07-23T17:36:03.516Z","1.16.0":"2026-07-24T09:16:28.182Z","1.16.1":"2026-07-24T11:35:17.518Z","1.17.0":"2026-07-28T13:08:15.687Z","1.18.0":"2026-08-01T08:32:10.319Z","1.19.0":"2026-08-15T08:43:46.134Z","1.20.0":"2026-08-15T09:27:18.636Z","1.21.0":"2026-08-15T14:27:46.004Z","1.21.1":"2026-08-23T17:38:02.031Z","1.21.2":"2026-08-24T10:52:16.964Z","1.22.0":"2026-09-03T09:02:38.135Z","1.22.1":"2026-09-03T09:19:29.573Z","1.23.0":"2026-09-03T11:20:15.813Z","1.24.0":"2026-09-12T13:39:58.881Z","1.25.0":"2026-09-13T16:44:55.368Z","1.26.0":"2026-09-14T10:04:33.684Z","1.26.1":"2026-09-14T16:02:10.139Z","1.27.0":"2026-09-14T17:55:33.281Z","1.28.0":"2026-09-18T11:50:39.674Z","1.29.0":"2026-09-18T12:06:07.000Z","1.30.0":"2026-09-21T10:10:24.767Z","1.31.0":"2026-09-22T09:12:15.109Z","1.31.1":"2026-09-22T11:38:14.859Z","1.32.0":"2026-09-25T10:18:52.161Z","1.33.0":"2026-09-26T08:48:02.241Z","1.33.1":"2026-09-26T09:19:53.428Z","1.34.0":"2026-09-26T10:54:56.139Z"},"bugs":{"url":"https://github.com/gadicc/loom/issues"},"license":"Apache-2.0","homepage":"https://github.com/gadicc/loom#readme","repository":{"url":"git+https://github.com/gadicc/loom.git","type":"git"},"description":"Deno-first shared helpers for extracting common Next.js app code.","maintainers":[{"name":"gadicc","email":"dragon@wastelands.net"}],"readme":"# loom\n\nDeno-first shared helpers for extracting common code from multiple Next.js apps.\n\nThis repo currently still lives in the `gadicc` directory, but the package name\nis `@gadicc/loom` and the intended CLI name is `loom`.\n\n## Project status and support\n\nLoom is primarily developed for the maintainer's own commercial and open source\napplications. Others are welcome to use it, but it is provided without warranty\nand without any commitment to support, compatibility, maintenance periods, or a\nparticular roadmap. Releases follow semantic versioning so independently pinned\nconsumer apps can upgrade deliberately.\n\nSecurity issues should be reported privately as described in\n[`SECURITY.md`](SECURITY.md), not through a public issue.\n\nCurrent feature set:\n\n- shared DB stack scaffolding for Neon/Drizzle/Valibot/PGlite consumers\n- shared jobs framework primitives for app-local `src/jobs` implementations\n- shared Next.js App Router jobs adapters for list pages, run pages, and route\n  handlers\n- auditable, scope-agnostic API-key authorization with an app-owned Better Auth\n  adapter, managed audit schema, explicit jobs integration, optional MUI UI,\n  Vercel country/IP snapshots, and bounded retention\n- durable provider-neutral outgoing mail with atomic outbox leases, Postal\n  transport and signed webhooks, per-recipient state, and admin-gated test mail\n- a Loom-managed env runner for non-Next commands that need the same `.env*`\n  semantics as Next\n- consumer project tooling that supports `package.json`, `deno.json`,\n  `deno.jsonc`, and dual-config projects with separate task and dependency\n  owners recorded in `loom.json`\n- Deno tests with BDD-style assertions\n- npm package generation via `dnt`\n\n## License\n\nCopyright © 2026 Gadi Cohen. Licensed under the [Apache License 2.0](LICENSE).\n\nThe license includes warranty disclaimers and a limitation of liability;\nconsumers remain responsible for determining whether Loom is appropriate for\ntheir applications.\n\nLoom does not redistribute third-party agent skills. Its metadata-only catalog\nrecords reviewed upstream revisions and license evidence; consumer projects\nchoose and cache the corresponding content directly from upstream.\n\n## Public npm package\n\nLoom's public distribution is `@gadicc/loom` on npm:\n\n```sh\npnpm add @gadicc/loom\n# or: npm install @gadicc/loom\n```\n\nConsumer projects do not need registry mappings or package-read tokens.\n\nMaintainer bootstrap, trusted-publisher configuration, release verification, and\nconsumer migration are documented in\n[`docs/npm-publishing.md`](docs/npm-publishing.md).\n\n## CLI\n\n`loom` now includes a small bootstrap CLI and feature-scaffolding entrypoint.\nThe detection, dual-config precedence, and safe task-composition contract is\ndocumented in [`docs/project-tooling.md`](docs/project-tooling.md).\n\n- `loom init` adds `@gadicc/loom` to the authoritative dependency config,\n  creates or updates `loom.json`, records the authoritative task runner/config\n  and dependency manager/config, refreshes the managed Loom bootstrap block in\n  `AGENTS.md`, and ensures the managed `.agents/skills/*` links point at the\n  installed `@gadicc/loom` package, activates skills exposed by installed npm\n  packages, and configures version-matched Next.js guidance when supported by\n  the installed Next version.\n- `loom add` lists the shared features that the CLI can activate and shows a\n  short description for each one.\n- `loom add <feature>` activates one shared feature in `loom.json` and applies\n  that feature's scaffolding without overwriting app-local wrappers.\n- `loom add auth` records app-owned Better Auth entrypoints, scaffolds missing\n  thin client and route wrappers, and enables the `loom-auth` skill link.\n- `loom add jobs` activates the shared jobs feature in `loom.json` and scaffolds\n  any missing local jobs/admin route files without overwriting existing\n  app-local wrappers, while also enabling the `loom-jobs` skill link.\n- `loom add db` activates the shared DB feature in `loom.json`, adds the managed\n  DB dependencies and tasks to their recorded configs, rewrites the standard\n  `neon.ts` / `neonFull.ts` / `drizzle.config.ts` / PGlite test harness files\n  into Loom-managed thin wrappers, scaffolds the app-local fixture script\n  entrypoint, and enables the `loom-db` skill link. `neonFull` verifies remote\n  TLS certificates and hostnames even when the selected URL contains\n  `sslmode=require`. Private remote CAs must be trusted explicitly, for example\n  with process-start `NODE_EXTRA_CA_CERTS`; invalid certificates fail instead of\n  falling back. The existing plaintext exceptions for `db.localtest.me`,\n  `localhost` and `127.0.0.1` remain, including their existing override of URL\n  TLS settings. Database URL precedence is unchanged. TLS verification does not\n  add SCRAM channel-binding support to the underlying driver. Remote IPv4\n  certificates must contain a matching IP subject alternative name. DNS-only\n  multi-host URLs retain the driver's per-host verification. Empty or escaped\n  hosts, extra unescaped `@` signs or fragments in the authority, IP-containing\n  multi-host URLs and bracketed IPv6 hosts are rejected because the runtime\n  cannot reliably bind their current driver routing to certificate identity; use\n  an explicit DNS host or single IPv4 address.\n- `loom add files` activates the shared files schema contract after the DB\n  feature is active. It materializes the Loom-managed Drizzle schema blueprint\n  into an app-local committed schema file, records the blueprint version and\n  hash in `loom.json`, scaffolds app-local repository/storage/access/route\n  files, and leaves migration generation to the app's normal `db:generate`\n  review flow.\n- `loom add mail` requires active DB and auth features, materializes the\n  message/delivery/event Drizzle schema, and scaffolds a working app-local\n  repository, Postal transport, service, RSA-signed webhook route, fail-closed\n  admin boundary, and (for MUI apps) mail log plus test/one-off-mail UI. When\n  jobs is active it also scaffolds a drain job without rewriting app-owned\n  catalogs or schedules. Loom never generates the migration.\n- `@gadicc/loom/mail` owns provider-neutral enqueue/lease/retry/cancel/event\n  orchestration and memory test adapters. `@gadicc/loom/mail/postal` owns the\n  Postal HTTP and webhook contract, `@gadicc/loom/next/mail` owns the raw-body\n  route handler, and `@gadicc/loom/mui/mail` owns optional serializable admin\n  views. Keep the default sender structured with the required bare address\n  `POSTAL_FROM_EMAIL=noreply@example.com` and optional display name\n  `POSTAL_FROM_NAME=Example App`. Configure Postal webhook verification with a\n  JSON array of RSA public JWKs in `POSTAL_WEBHOOK_PUBLIC_KEYS`; shared-secret\n  emulation is unsupported.\n- `loom files local setup` creates or reuses a `<project>-dev` MinIO bucket,\n  creates a bucket-scoped access key, and writes canonical `FILES_S3_*` values\n  to gitignored `.env.local`. It works immediately after `loom add files`,\n  without R2 or Vercel. `loom files local check` verifies bucket access.\n  Ordinary `loom check` reports missing local Files values without connecting to\n  storage.\n- `loom files r2 setup` creates or reuses private Cloudflare R2 buckets for\n  Production and Preview, records the explicit Cloudflare account and storage\n  policy in `loom.json`, replaces only the untouched generated storage stub,\n  configures canonical `FILES_S3_*` values in Vercel, and writes non-secret\n  local MinIO defaults in `.env.local` by default. Use `--local-provider r2` for\n  deliberately shared development storage or `--local-provider none` to leave\n  local storage unwired. Existing custom storage modules and credentials are\n  preserved.\n- `loom files r2 check` verifies the selected Cloudflare account, bucket\n  existence and private access, exact non-secret Vercel values in Production and\n  Preview, the absence of Files credentials in Vercel Development, and the\n  configured local MinIO endpoint/bucket. The same checks run through\n  `loom check --network`.\n- `loom add api-keys` requires active auth and DB features, materializes the\n  versioned audit schema, scaffolds fail-safe policy/verifier/repository/action\n  boundaries and user/admin pages, and links the `loom-api-keys` skill. It does\n  not authorize existing routes, change jobs, or generate migrations.\n- `@gadicc/loom/apiKeys` provides typed scope registries, exact-match policy\n  dispatch, credential extraction, fingerprints, authorization/audit contracts,\n  country normalization, and bounded audit retention.\n  `@gadicc/loom/next/apiKeys` adds App Router authorization, session-or-key\n  composition, completion auditing, and explicit Vercel request context.\n  `@gadicc/loom/mui/apiKeys` provides optional lifecycle and audit UI.\n- `loom api-keys integrate jobs --resource <name> --action <name>` records an\n  explicit additive jobs authorization integration after the app has protected\n  its HTTP jobs route with fresh session/admin policy. Direct local runners are\n  unchanged and remain API-key-free.\n- `loom api-keys retention enable` records the default 180-day/5,000-request\n  retention policy. The app must transactionally implement the retention\n  repository and schedule the shared runner; Loom does not silently create or\n  modify jobs. Use `retention disable` for an app-owned legal-hold workflow.\n- `@gadicc/loom/files` provides the shared files runtime primitives: SHA-256\n  hashing, digest verification, metadata detection, repository/storage adapter\n  contracts, in-memory test adapters, and headless upload helpers.\n- `@gadicc/loom/files/s3` adapts an app-provided AWS SDK v3 S3 client to the\n  shared storage contract without making AWS SDK packages Loom dependencies.\n- `@gadicc/loom/next/files` provides App Router route-handler factories for\n  uploads, metadata lookup, and downloads over app-provided persistence and\n  storage adapters.\n- `loom add lingui` adopts Lingui catalog tooling without owning locale routing\n  or translations. It records loader versus precompile mode, adds compatible\n  dependencies and extract/compile tasks, ignores generated JavaScript catalogs,\n  and ensures precompiled catalogs are built before the app build. `loom check`\n  also reports tracked generated catalogs, task-order drift, mismatched runtime\n  imports, and missing Next.js loader/SWC wiring.\n- `loom add pwa` activates the shared Serwist PWA feature, adds the Serwist\n  dependencies and build task, safely composes it after an existing Next build,\n  scaffolds configurator-mode `serwist.config.mjs` plus worker/provider files,\n  records whether the update prompt should use the MUI adapter or browser\n  fallback, adds a 60-second update check interval for MUI installs, and ignores\n  generated service-worker output.\n- `loom add skills` adopts matching reviewed external skills into the gitignored\n  `.loom/skills` cache, records exact revisions and content hashes in\n  `loom-skills.lock.json`, and activates package-provided skills.\n- `loom status` summarizes the installed Loom package, `loom.json` state, active\n  features, local-dev sync state, and managed/recommended skill links.\n- `loom env -- <command> [...args]` loads the consumer project `.env*` files\n  with Next-compatible `@next/env` semantics, preserves existing shell env\n  precedence, then runs the command from the consumer project root. Use it for\n  non-Next commands such as direct job runners, Drizzle, ad hoc DB inspection,\n  and app scripts that need env. Next commands such as `next dev` and\n  `next build` already load `.env*` themselves.\n- `loom skills check` validates the project lock, external cache, and activation\n  links.\n- `loom skills update` updates adopted external skills to Loom's current\n  reviewed immutable revisions.\n- `loom skills disable <name>` opts out of automatic activation; `enable` clears\n  the opt-out and `sync` reactivates the skill.\n- `loom db fixtures` runs the Loom-managed DB fixture dump entrypoint for the\n  active DB feature, using the configured `scripts/dump-test-tables.ts` and\n  scripts tsconfig.\n- `loom db schema-gen` runs the Loom-managed `vs_tocode` workflow for the active\n  DB feature and then refreshes the Valibot barrel file. Pass extra generator\n  flags after `--`, for example `loom db schema-gen -- --watch`.\n- `loom db schemas sync` re-materializes active Loom-managed schema blueprints\n  into app-local schema files only when the file still matches the last recorded\n  Loom hash. It refuses to overwrite local edits, updates simple schema barrel\n  exports, and never generates Drizzle migrations.\n- `loom db neon setup` provisions a Vercel-managed Neon database for the active\n  DB feature, connects it to the linked Vercel project for Production and\n  Preview only, skips local env pulling, and records the provider policy in\n  `loom.json`.\n- `loom db neon check` runs only the DB/Neon network checks: Vercel CLI\n  availability, project linking, Neon resource connection, Production/Preview DB\n  env vars, and the absence of DB env vars in Development.\n- `loom db release setup-github` creates/updates the GitHub `production`\n  environment for staged Vercel releases: it stores `VERCEL_ORG_ID` and\n  `VERCEL_PROJECT_ID`, and saves a bounded project-scoped Vercel token as the\n  GitHub `VERCEL_TOKEN` environment secret. Reruns preserve an existing secret;\n  use `--rotate-token` for explicit replacement or `--token-scope team` only for\n  compatibility. Its branch policy and the release checks use\n  `features.db.config.release.productionBranch` from `loom.json`, defaulting to\n  `main`. See [release configuration](docs/network-checks.md) for other\n  production branches and matching app-owned workflow/Vercel settings.\n- `loom db release prepare-vercel-project production <env> <metadata> <project>`\n  materializes a private, consistency-checked Production env snapshot and exact\n  `.vercel/project.json` for a project-scoped token. After a standalone build,\n  stage the prebuilt artifact with `VERCEL_ORG_ID` and `VERCEL_PROJECT_ID`\n  removed from that deploy process, then use\n  `loom db release promote-vercel <deployment-id>` for bounded project API\n  promotion and terminal readback.\n- `loom dev local /path/to/loom` enables local unpublished Loom development. It\n  adds a managed `file:` override in `pnpm-workspace.yaml` for pnpm projects or\n  a Deno `links` entry in `deno.json(c)`, then runs the local-dev sync flow when\n  needed.\n- `loom dev sync` rebuilds the local Loom package when source files are newer\n  than the generated npm output, then refreshes the consuming app with the pnpm\n  update/install flow or `deno install` when the installed linked dependency is\n  stale. Other Loom commands also run this sync automatically when the managed\n  local-dev override is active; pass `--no-sync` to skip it. Each sync records\n  the Loom source commit in the managed `pnpm-workspace.yaml` block and\n  gitignored `.loom/dev-state.json` when the local package path points at a Loom\n  git checkout.\n- `loom dev published` removes that managed local-dev override so the app can\n  return to the published package version. When a prior sync recorded a Loom\n  source commit, this command verifies that the commit is reachable from\n  `origin/main` and either included in a semver release tag or\n  package-equivalent to the latest semver release because only non-package files\n  changed after that tag. It then switches the app to the exact published\n  `@gadicc/loom` version that covers the sync. If no recorded commit exists, the\n  command preserves the older compatibility behavior and switches back to the\n  existing published dependency with an explicit warning. The command also\n  notices stale lockfiles that still resolve Loom to a local package even after\n  the workspace override has been removed.\n- `loom check` verifies the recorded package/Deno configs, `loom.json`, the\n  managed `AGENTS.md` block and `.agents/skills/*` links, and then runs\n  feature-specific checks for active entries in `loom.json`, including\n  jobs-wrapper validation plus DB runtime, script, Valibot-barrel wiring, and\n  the production migration release flow for active DB installs, managed local\n  schema validation for active files installs, and Serwist package, worker,\n  provider, update-check interval, MUI-confirm, and build-script wiring for\n  active PWA installs. The DB release-flow check expects Vercel automatic\n  production Git deployments to be disabled in `vercel.json` and a GitHub\n  Actions workflow to pull Vercel production settings, build, upload a staged\n  prebuilt production deployment, run a live migration credential preflight, run\n  `db:migrate` against the preserved production environment, then promote the\n  staged deployment. `loom check --network` also verifies the required GitHub\n  release secret/variables when that workflow exists. When\n  `.github/workflows/*.yml|yaml` still contains Loom's obsolete GitHub Packages\n  registry/auth setup, `loom check` recommends removing it. The command also\n  activates newly discovered npm package skills with a notice, warns when the\n  managed local dev override is active, reports inline `dotenv`/`@next/env`\n  imports or DB/jobs tasks that bypass `loom env --`, warns when authoritative\n  and secondary configs expose conflicting tasks, and warns when a Deno link or\n  `pnpm-lock.yaml` still resolves Loom to local source. If\n  `.loom/dev-state.json` records a synced Loom commit, `loom check` also\n  explains whether that commit is unpublished or published in a newer exact Loom\n  version than the app is pinned to. Pass `--strict-skills` to turn missing\n  skill recommendations into check failures. Pass `--production` to make local\n  Loom dev overrides, local lockfile resolutions, unresolved synced Loom\n  commits, and DB migration release-flow gaps release-blocking failures. Pass\n  `--network` to also run registered feature network checks after the local\n  project checks.\n\nThe current CLI scope is project bootstrap, validation, and feature-specific\nscaffolding. Extracted feature hooks are added behind the same `init`, `add`,\nfeature subcommand, and `check` flows.\n\n### Consumer app release workflow\n\nConsumer apps may stay in local Loom development mode during normal feature\nwork:\n\n```sh\nloom dev local /home/dragon/www/npm/loom\nloom dev sync\nloom check\n```\n\nBefore pushing or releasing a consumer app, switch back to the published Loom\npackage and run the production gate:\n\n```sh\nloom dev published\npnpm update --no-save @gadicc/loom@<version-from-loom-output>\npnpm install\nloom check --production\n```\n\nFor Deno-managed projects, replace the pnpm refresh commands with\n`deno install`; `loom dev published` prints the project-appropriate command.\n\nPublishing Loom is only required when the app was synced against\npackage-relevant Loom changes that are not already covered by a published semver\ntag. Publishing a new Loom version does not move other consumer apps; each app\nremains on its committed dependency config and lockfile until that app\ndeliberately upgrades.\n\n### New app DB bootstrap\n\nFor a new Vercel app that needs the shared DB stack:\n\n```sh\nloom init\nloom add db\nvercel link\nloom db neon setup\nloom check --network\n```\n\n`loom db neon setup` runs the Vercel Marketplace install through the Vercel CLI\nusing Production and Preview environments only. It intentionally avoids\nDevelopment and uses `--no-env-pull` so local `.env*` files are not populated by\nthe integration. Pass `--name <resource-name>` to override the default\n`<project>-db` resource name, `--region <region>` to select a supported Neon\nMarketplace region such as `sin1`, or `--plan <plan-id>` if a new Marketplace\ninstallation requires a specific plan id. When Neon is already installed for the\nteam, Loom omits `--plan` and preserves that installation's current plan. Neon\nAuth is explicitly disabled by default because Loom's auth feature uses Better\nAuth; pass `--neon-auth` only when the app intentionally wants Neon Auth too.\n\nNetwork checks are line-based for now so they remain readable in CI logs:\n\n```text\n[1/6] Checking Vercel CLI is available ......................... ok ✓\n      Using vercel.\n[2/6] Checking Project is linked to Vercel ..................... ok ✓\n      Linked to Vercel project prj_...\n```\n\nWhen stdout is an interactive terminal, Loom uses an updating progress line with\na progress bar and prints only problem checks at the end. This is disabled\nautomatically in CI and can be disabled explicitly with `--no-progress`. Use\n`--no-color` to disable colored status output.\n\nSee [`docs/network-checks.md`](docs/network-checks.md) for the hook design and\nfuture expansion notes.\n\n## AI skills\n\nThe package now publishes Codex skill folders under `skills/`.\n\n- `skills/loom` provides global loom guidance for consumer apps, centered on\n  `loom.json`, feature activation, shared-vs-local ownership boundaries, and a\n  small set of shared consumer-repo policies such as verification,\n  documentation/comments, and commit-message expectations. Consumer repos keep\n  `AGENTS.md` small and use a managed Loom block there to route work into this\n  shared skill.\n- `skills/loom-torvalds-review` adapts the external `linus-torvalds-skill`\n  review method to web apps, shared packages, CLI code, native code, and\n  explicit prototypes. It keeps the upstream emphasis on correctness,\n  compatibility, evidence, and simplicity while disabling literal kernel/C rules\n  outside their real prerequisites.\n- `skills/upgrade-deps` provides a staged Deno and JavaScript/TypeScript\n  dependency-upgrade workflow covering compatibility groups, rollback safety,\n  failure isolation, major migrations, reviewable commits, and exact-tree final\n  verification.\n- `skills/modernize-app` guides staged modernization of an existing application,\n  including identity/data preservation, optional offline/media transitions and\n  verified rollout. Dependency-only work stays with `upgrade-deps`; new apps use\n  scaffolding rather than this migration workflow.\n- `skills/loom-db` provides DB-feature guidance for Neon/Drizzle wiring, managed\n  local schema blueprints, Valibot generation, and the shared PGlite harness.\n- `skills/loom-auth` covers Better Auth secrets, rotation, environment trust\n  boundaries, and proxy-aware localhost OAuth configuration.\n- `skills/loom-jobs` provides jobs-feature guidance for app-local catalogs,\n  admin route wrappers, and shared helper wiring.\n- `skills/loom-api-keys` provides API-key adoption, authorization, audit, Vercel\n  geolocation, UI mapping, jobs integration, and retention guidance.\n\nProjects do not need to copy these files manually. `loom init`, `loom add db`,\n`loom add jobs`, and `loom check` manage a small project-local `AGENTS.md` Loom\nblock plus `.agents/skills/*` symlinks that point to the installed\n`node_modules/@gadicc/loom/skills/*` folders. The global `loom`,\n`loom-torvalds-review`, `upgrade-deps`, and `modernize-app` skills are linked\nfor every initialized project; feature skills are linked when their matching\nfeature is active.\n\nThird-party skills are not packaged with Loom. Loom carries a metadata-only\ncatalog containing source URLs, immutable commits, content hashes, and license\nevidence. `loom add skills` installs applicable reviewed skills directly into a\nconsumer project's gitignored `.loom/skills` cache and records the selection in\nthe committed `loom-skills.lock.json`. Missing or unclear licenses require the\nexplicit `--accept-unknown-license <name>` flag. `loom skills migrate` replaces\nlegacy symlinks from older Loom releases, while preserving custom local skill\ndirectories.\n\nLoom also scans installed npm packages for a root `SKILL.md`, `skills/*`, or\n`.agents/skills/*`. New package-provided skills are activated automatically by\n`loom init`, `loom skills sync`, and ordinary `loom check`, with a notice that\nincludes `loom skills disable <name>` as the opt-out path.\n\nFor local Loom package development, prefer `loom dev local` and the managed\n`file:` marker flow over `pnpm link`. `loom dev sync` owns the rebuild and pnpm\nrefresh step for that local package. When it refreshes the installed package at\nthe start of another Loom command, rerun that original command so the current\nprocess uses the refreshed CLI code. This keeps the committed dependency on the\npublished version while still resolving peer dependencies correctly during local\ndevelopment. Treat this as a workaround for current pnpm behavior rather than a\npermanent preference; if pnpm's local-link behavior changes, this flow can be\nsimplified or removed later.\n\nThe managed local-dev block also records the Loom source commit that was synced\nwhen the local package path points at a Loom git checkout, and the same state is\npersisted in gitignored `.loom/dev-state.json` so Loom can still diagnose stale\nlocal lockfiles after the workspace override has been removed.\n`loom dev published` uses that record as a release gate: clean commits that have\nreached `origin/main` and are either included in a semver release tag or have no\npackage-relevant changes after the latest semver tag can be switched to the\nexact published version, while dirty or unreleased package changes block the\nswitch. Existing apps with older local-dev blocks that lack this metadata can\nstill switch back to their current published dependency, but new syncs should be\nused before relying on the release gate.\n\nLoom's external catalog currently recommends these defaults:\n\n- `ai-sdk`\n- `find-skills`\n- `frontend-design`\n- `linus-torvalds-skill` (with Loom's context-aware review companion)\n- `vercel-composition-patterns`\n- `vercel-react-best-practices`\n\nIt adds these dependency-matched recommendations:\n\n- `better-auth-best-practices` for projects that depend on Better Auth packages\n- `pnpm` for projects that use pnpm\n- `vitest` for projects that use Vitest\n\nNext.js is handled separately because current Next releases ship documentation\nmatching the installed framework version under `node_modules/next/dist/docs`.\nLoom adds a managed `AGENTS.md` pointer to those docs. Older Next releases can\nuse the official `npx @next/codemod@latest agents-md` fallback; migration\nremoves the retired `next-best-practices` symlink.\n\nSee [`docs/project-skills.md`](docs/project-skills.md) for lock/cache semantics,\npackage discovery, opt-outs, collision behavior, and migration details.\n\n## Jobs framework\n\nThe shared jobs code is designed so each app keeps its own jobs in\n`src/jobs/*.ts`, while the shared package owns the common controller, catalog,\nexecution, formatting, and direct-run helpers. Keep metadata in a\ndependency-free module and use `createLazyJob` in the executable catalog so\nconstructing an HTTP or direct-run catalog does not initialize every job's\ntransitive dependencies.\n\nExample app-local job:\n\n```ts\nimport type { Job } from \"@gadicc/loom/jobs\";\nimport { testMeta as meta } from \"./indexWithMetaOnly\";\n\nexport { meta };\n\nexport const handler: Job[\"handler\"] = async (job) => {\n  job.log(\"hello\");\n};\n```\n\nExample dependency-free metadata and lazy catalog entry:\n\n```ts\n// indexWithMetaOnly.ts\nimport type { Job } from \"@gadicc/loom/jobs\";\n\nexport const testMeta: Job[\"meta\"] = {\n  id: \"test\",\n  desc: \"Example job\",\n};\n\n// index.ts\nimport { createLazyJob } from \"@gadicc/loom/jobs\";\nimport { testMeta } from \"./indexWithMetaOnly\";\n\nexport const test = createLazyJob(testMeta, () => import(\"./test\"));\n```\n\nJob output can be sanitized once at the execution boundary so the same policy\napplies to NDJSON, text, HTML, direct runners, HTTP responses, and app-provided\nformatters:\n\n```ts\nimport { createJobOutputRedactor, type Job } from \"@gadicc/loom/jobs\";\nimport { createJobsRouteHandler } from \"@gadicc/loom/next/jobs/route\";\n\nconst providerToken = process.env.PROVIDER_TOKEN;\nif (!providerToken) throw new Error(\"PROVIDER_TOKEN is required\");\n\nconst outputSanitizer = createJobOutputRedactor(\n  new Map<string | RegExp, true | string>([\n    [providerToken, true],\n    [/Bearer\\s+\\S+/gi, \"Bearer [REDACTED]\"],\n  ]),\n);\n\nexport const jobsRouteHandler = createJobsRouteHandler({\n  catalog: jobs as readonly Job[],\n  handlerErrorMessage: \"Job execution failed.\",\n  outputSanitizer,\n});\n```\n\nRedaction rules run in map insertion order, each against the preceding rule's\nresult. Exact strings match wherever they occur. RegExp rules replace every\nmatch without using the caller's `lastIndex`, even when the expression is\nnon-global or sticky. A `true` replacement means `[REDACTED]`; string\nreplacements are literal, so `$&`, `$1`, and `$$` are not expanded. Empty exact\nmatchers are rejected without printing configured match or replacement values.\n\nThe sanitizer visits every string value emitted through `job.log()`, all other\nlog levels, and `job.json()` while retaining normal JSON behavior for arrays,\nobjects, dates, numbers, booleans, and null. Inputs are not mutated. If a\nsanitizer throws or returns a non-string, Loom fails the execution closed and\nemits only `Job output sanitation failed.` for that failure.\n\nOutput redaction and unexpected-error disclosure are separate. Omitting\n`handlerErrorMessage` retains Loom's existing full-stack fatal event; supplying\na string emits that exact generic literal instead. Deferred-task errors keep\ntheir own `deferredTaskErrorHandler`, and the additive\n`runDeferredTasksWithResult()` method returns a failure count while\n`runDeferredTasks()` keeps its legacy `Promise<void>` contract. Consumers that\nrun deferred tasks inline can emit a generic event from that callback; tasks run\nafter a response stream closes should report through a separate safe sink.\n`cancellationMessage: false` suppresses the legacy `Job cancelled` event when\ncancellation must only set the controller flag.\n\nThis boundary protects Loom job-event output only. It does not sanitize\n`console.*`, provider or framework logs, audit metadata, request URLs, thrown\nvalues retained in `execution.result`, or external logging systems. Object\nproperty names are JSON structure rather than string values and are not\nrewritten; do not place secrets in keys.\n\nFor the strongest Next.js deployment boundary, mount jobs in static route files\nwith `createJobRouteHandler({ job })`. A dynamic `[id]` route is one serverless\nfunction and therefore still traces every implementation reachable from its\ncatalog, even when `createLazyJob` prevents unrelated modules from evaluating at\nruntime.\n\nLoom can manage those file-based entrypoints from the Jobs config in\n`loom.json`:\n\n```json\n{\n  \"staticRoutes\": {\n    \"handlerFactoryExport\": \"createHttpJobRouteHandler\",\n    \"jobs\": {\n      \"example\": \"@/jobs/example\",\n      \"short-example\": {\n        \"module\": \"@/jobs/short-example\",\n        \"maxDuration\": 300\n      }\n    },\n    \"maxDuration\": 1800,\n    \"routeDirectory\": \"src/app/admin/jobs\"\n  }\n}\n```\n\nRun `loom add jobs` after changing the map. Loom creates, updates, and removes\nonly wrappers bearing its managed marker; an existing unmanaged route is\npreserved and reported. `loom check` verifies the generated set and its direct\nliteral `maxDuration` exports. The default is Vercel's current 30-minute maximum\nof `1800`, while `staticRoutes.maxDuration` and each job's optional\n`maxDuration` override keep shorter limits explicit and checkable.\n","readmeFilename":"README.md"}