{"_id":"@baruk/portal-core","_rev":"2-19f72fbea1d55445c7ef950a5528eb08","name":"@baruk/portal-core","dist-tags":{"latest":"0.2.1"},"versions":{"0.2.0":{"name":"@baruk/portal-core","version":"0.2.0","license":"UNLICENSED","_id":"@baruk/portal-core@0.2.0","maintainers":[{"name":"wellington12","email":"wellington12@gmail.com"}],"homepage":"https://github.com/WellingtonOliveira12/baruk-portal-core#readme","bugs":{"url":"https://github.com/WellingtonOliveira12/baruk-portal-core/issues"},"dist":{"shasum":"5d67deeba879dbc3be00f06502ea2d598788f218","tarball":"https://registry.npmjs.org/@baruk/portal-core/-/portal-core-0.2.0.tgz","fileCount":17,"integrity":"sha512-1jqeBwvf1Rw8RbKYDWKEbLGYI0iIG4qkronIO+zNH6RM9J/J29q7d7XdMiBQH821Ubilh06RkNWsnBFMuo3F4A==","signatures":[{"sig":"MEUCIG2PROvncgcOGMbjcQuzDFrMpMdC2nQXwFPefawxImYfAiEAzY3aFslCrlA+Nba8CsnHB9PIbcQmOizCqnlyqrDX65g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29694},"main":"./dist/index.js","type":"module","_from":"file:baruk-portal-core-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./store":{"types":"./dist/store.d.ts","default":"./dist/store.js"},"./service":{"types":"./dist/service.d.ts","default":"./dist/service.js"},"./session":{"types":"./dist/session.d.ts","default":"./dist/session.js"},"./password":{"types":"./dist/password.d.ts","default":"./dist/password.js"},"./neon-store":{"types":"./dist/neon-store.d.ts","default":"./dist/neon-store.js"},"./memory-store":{"types":"./dist/memory-store.d.ts","default":"./dist/memory-store.js"}},"scripts":{"pack":"npm pack","test":"vitest run","build":"tsc -p tsconfig.build.json","release":"npm run build && npm test && npm publish","typecheck":"tsc --noEmit","test:watch":"vitest","test:contract":"vitest run test/contract.test.ts","validate:package":"npm run typecheck && npm test && npm run build && npm pack --dry-run"},"_npmUser":{"name":"wellington12","email":"wellington12@gmail.com"},"_resolved":"/private/var/folders/dm/np96kxv91ydcyp24t4_xgwb80000gn/T/76323374bda7add420ce367917fc368e/baruk-portal-core-0.2.0.tgz","_integrity":"sha512-1jqeBwvf1Rw8RbKYDWKEbLGYI0iIG4qkronIO+zNH6RM9J/J29q7d7XdMiBQH821Ubilh06RkNWsnBFMuo3F4A==","repository":{"url":"git+https://github.com/WellingtonOliveira12/baruk-portal-core.git","type":"git"},"_npmVersion":"11.6.2","description":"Institutional Portal Core — shared identity engine (session, password/scrypt, store, service) for the Baruk ecosystem. Framework-agnostic, dependency-injected.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"@baruk/identity":"^0.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.6.0","@types/node":"^22.0.0","@neondatabase/serverless":"^1.1.0"},"peerDependencies":{"@neondatabase/serverless":">=1.0.0"},"peerDependenciesMeta":{"@neondatabase/serverless":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/portal-core_0.2.0_1785417031668_0.8006103215595457","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@baruk/portal-core","version":"0.2.1","description":"Institutional Portal Core — shared identity engine (session, password/scrypt, store, service) for the Baruk ecosystem. Framework-agnostic, dependency-injected.","license":"UNLICENSED","repository":{"type":"git","url":"git+https://github.com/WellingtonOliveira12/baruk-portal-core.git"},"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./session":{"types":"./dist/session.d.ts","default":"./dist/session.js"},"./password":{"types":"./dist/password.d.ts","default":"./dist/password.js"},"./store":{"types":"./dist/store.d.ts","default":"./dist/store.js"},"./service":{"types":"./dist/service.d.ts","default":"./dist/service.js"},"./neon-store":{"types":"./dist/neon-store.d.ts","default":"./dist/neon-store.js"},"./memory-store":{"types":"./dist/memory-store.d.ts","default":"./dist/memory-store.js"}},"scripts":{"build":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","test":"vitest run","test:contract":"vitest run test/contract.test.ts","pack":"npm pack","validate:package":"npm run typecheck && npm test && npm run build && npm pack --dry-run","test:watch":"vitest","prepare":"tsc -p tsconfig.build.json","release":"npm run build && npm test && npm publish"},"dependencies":{"@baruk/identity":"^0.2.0"},"peerDependencies":{"@neondatabase/serverless":">=1.0.0"},"peerDependenciesMeta":{"@neondatabase/serverless":{"optional":true}},"devDependencies":{"@neondatabase/serverless":"^1.1.0","@types/node":"^22.0.0","typescript":"^5.6.0","vitest":"^2.1.0"},"engines":{"node":">=20"},"gitHead":"58e2dc76a1de7314c61d94e2da6e93332b9ff9cc","_id":"@baruk/portal-core@0.2.1","bugs":{"url":"https://github.com/WellingtonOliveira12/baruk-portal-core/issues"},"homepage":"https://github.com/WellingtonOliveira12/baruk-portal-core#readme","_nodeVersion":"22.14.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-zWoiUqW1Yb4e4Ps95jQ0lj1htFY/1DpmPOUI62dHmGOwP0sPHNjEUVqYvF4sB0qrQMoohtO50ZgjXTcwm2xaJg==","shasum":"fa7544e50588f8dd50042f151cba6cdc35f512f3","tarball":"https://registry.npmjs.org/@baruk/portal-core/-/portal-core-0.2.1.tgz","fileCount":17,"unpackedSize":30442,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA8xbsmWU9YaEzmpoji7aNXhQvj+ia+s1omtGINUSv2cAiEArTnh9oZubPQ6eC1J3fY0Nwp3iTFhWVNZ9JmD0P+vtXU="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:72149931-f31b-411f-ae1f-010598c5967b"}},"directories":{},"maintainers":[{"name":"wellington12","email":"wellington12@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/portal-core_0.2.1_1785444818342_0.30355710212325016"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-30T13:10:22.048Z","modified":"2026-07-30T20:53:38.718Z","0.2.0":"2026-07-30T13:10:31.839Z","0.2.1":"2026-07-30T20:53:38.511Z"},"bugs":{"url":"https://github.com/WellingtonOliveira12/baruk-portal-core/issues"},"license":"UNLICENSED","homepage":"https://github.com/WellingtonOliveira12/baruk-portal-core#readme","repository":{"type":"git","url":"git+https://github.com/WellingtonOliveira12/baruk-portal-core.git"},"description":"Institutional Portal Core — shared identity engine (session, password/scrypt, store, service) for the Baruk ecosystem. Framework-agnostic, dependency-injected.","maintainers":[{"name":"wellington12","email":"wellington12@gmail.com"}],"readme":"# @baruk/portal-core\n\nInstitutional Portal Core — motor de identidade compartilhado do ecossistema Baruk (sessão HMAC, senha scrypt, store, serviço de auth). **Framework-agnostic** e **injetável**: recebe `store`, `portalId` e `secret` por parâmetro; não lê `process.env`, não conhece marca.\n\nExtraído em ECO-02 (ADR-ECO-0014 · A2) do clone byte-a-byte que vivia em `baruk-connect` e `sc-organizacao-contabil`. Ficha completa: [`ENGINE.md`](ENGINE.md).\n\n## Uso\n\n```ts\nimport { authenticate } from \"@baruk/portal-core/service\";\nimport { createNeonStore } from \"@baruk/portal-core/neon-store\";\nimport { createAuthToken } from \"@baruk/portal-core/session\";\n\nconst store = createNeonStore(process.env.MY_DATABASE_URL!); // a INSTÂNCIA injeta a URL\nconst res = await authenticate(store, \"meu-portal\", email, senha, ipKey);\n// o produto emite o cookie de marca a partir do resultado\n```\n\nO wiring de marca (cookie/paths/env/e-mail/UI/nav) fica no produto. `server-only` é aplicado pelo consumidor.\n\n## Scripts\n- `npm run typecheck` — `tsc --noEmit`\n- `npm test` — `vitest run` (paridade scrypt/HMAC + fluxo de auth via memory-store)\n- `npm run test:contract` — contrato público do package\n- `npm run validate:package` — build isolado e inspeção de tarball\n\n## Distribuição\nO package está **publicado no npm Registry público** (`https://registry.npmjs.org`, escopo `@baruk`, acesso `public`).\n\nConsuma por faixa SemVer — não é necessário `file:` nem tarball:\n\n```bash\nnpm install @baruk/portal-core@^0.2.0\n```\n\nA dependência `@baruk/identity` também é declarada e resolvida por faixa SemVer pública (`^0.2.0`).\n\nA publicação é feita pelo pipeline oficial (`.github/workflows/publish.yml`) via **npm Trusted Publishing (OIDC)**, sem token permanente. **Provenance/attestation não é emitido**: o npm não gera provenance para pacotes cujo source repository é privado no GitHub, e este repositório permanece privado por decisão de governança (auditoria Codex GPT-5.6, R4.5).\n\n> Nota histórica: o consumo por tarball foi validado fora do repositório de origem enquanto a publicação estava pendente. Esse arranjo foi encerrado e **não** descreve a operação atual.\n","readmeFilename":"README.md"}