{"_id":"@astralibx/staff-types","_rev":"2-c6d2675ef3854765edda06d64cffeafa","name":"@astralibx/staff-types","dist-tags":{"latest":"0.2.1"},"versions":{"0.2.0":{"name":"@astralibx/staff-types","version":"0.2.0","keywords":["staff","types","permissions","authentication"],"license":"MIT","_id":"@astralibx/staff-types@0.2.0","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"homepage":"https://github.com/Hariprakash1997/astralib#readme","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"dist":{"shasum":"d93591805e46f682e81de59543602352ca613f1d","tarball":"https://registry.npmjs.org/@astralibx/staff-types/-/staff-types-0.2.0.tgz","fileCount":8,"integrity":"sha512-LM7BjzRo4VT1xCUU4jPD2PCRrYtCXKfm9EWf2uD6JjPvpz3y2jahdlPRuiVyFVlaT5H4YeaHQMjoFvUbaREL8w==","signatures":[{"sig":"MEQCIC/2rvztTE+buzIR1g7F80+YrIUc3kGKFatMYkXG5QA+AiAHDzIT8Ja83PEGw+nZZRGz3pp+3pUGCsCFLKhoWTWRmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24549},"main":"dist/index.cjs","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"gitHead":"2469f8e7ec03a0b42cf5db266e50e3bfca011bcb","scripts":{"dev":"tsup --watch","lint":"eslint src/","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"repository":{"url":"git+https://github.com/Hariprakash1997/astralib.git","type":"git","directory":"packages/staff/staff-types"},"_npmVersion":"10.9.4","description":"Shared TypeScript type definitions, enums, and contracts for the staff module","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^3.0.0","typescript":"^5.8.2","@vitest/coverage-v8":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/staff-types_0.2.0_1774187336298_0.5771232249940448","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@astralibx/staff-types","version":"0.2.1","description":"Shared TypeScript type definitions, enums, and contracts for the staff module","repository":{"type":"git","url":"git+https://github.com/Hariprakash1997/astralib.git","directory":"packages/staff/staff-types"},"main":"dist/index.cjs","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"eslint src/","clean":"rm -rf dist"},"keywords":["staff","types","permissions","authentication"],"license":"MIT","devDependencies":{"@vitest/coverage-v8":"^3.0.0","tsup":"^8.0.0","typescript":"^5.8.2","vitest":"^3.0.0"},"_id":"@astralibx/staff-types@0.2.1","gitHead":"a8bd86dab2e0c1d8e788466574c2a6064b8f262d","bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"homepage":"https://github.com/Hariprakash1997/astralib#readme","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-ZsW+M4QfuWIml8SNU2RdHMdPO8xRoppKIKxPEge+Kl6Z9j2btPFhdDZp63wz0DW6LnPOb6jFgHH7+COTDaZr9Q==","shasum":"b37c72cc7ba5092250190a9e965208103ed32f90","tarball":"https://registry.npmjs.org/@astralibx/staff-types/-/staff-types-0.2.1.tgz","fileCount":8,"unpackedSize":24709,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDtMpmMMMIH5kbBOfEJiV7iw80jgzBboPFHnHOlqjpC5AiEAi0Sd5HUBP5Cme0a+BWdgxuzThugsNYBW0WQdf4cqjeo="}]},"_npmUser":{"name":"astralib","email":"1997hariprakash@gmail.com"},"directories":{},"maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/staff-types_0.2.1_1774232671515_0.99540156498422"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-22T13:48:56.192Z","modified":"2026-03-23T02:24:31.794Z","0.2.0":"2026-03-22T13:48:56.432Z","0.2.1":"2026-03-23T02:24:31.668Z"},"bugs":{"url":"https://github.com/Hariprakash1997/astralib/issues"},"license":"MIT","homepage":"https://github.com/Hariprakash1997/astralib#readme","keywords":["staff","types","permissions","authentication"],"repository":{"type":"git","url":"git+https://github.com/Hariprakash1997/astralib.git","directory":"packages/staff/staff-types"},"description":"Shared TypeScript type definitions, enums, and contracts for the staff module","maintainers":[{"name":"astralib","email":"1997hariprakash@gmail.com"}],"readme":"# @astralibx/staff-types\n\n[![npm version](https://img.shields.io/npm/v/@astralibx/staff-types.svg)](https://www.npmjs.com/package/@astralibx/staff-types)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n\nShared TypeScript type definitions, enums, and config contracts for the staff module.\n\n## Install\n\n```bash\nnpm install @astralibx/staff-types\n```\n\nNo runtime dependencies -- pure TypeScript declarations and const enums.\n\n## Enums\n\n| Enum | Values | Description |\n|------|--------|-------------|\n| `STAFF_ROLE` | `Owner`, `Staff` | Role level for a staff account |\n| `STAFF_STATUS` | `Active`, `Inactive`, `Pending` | Account lifecycle status |\n| `PERMISSION_TYPE` | `View`, `Edit`, `Action` | Capability type for a permission entry |\n\n### Enum values\n\n```ts\nimport { STAFF_ROLE, STAFF_STATUS, PERMISSION_TYPE } from '@astralibx/staff-types';\n\nSTAFF_ROLE.Owner      // 'owner'\nSTAFF_ROLE.Staff      // 'staff'\n\nSTAFF_STATUS.Active   // 'active'\nSTAFF_STATUS.Inactive // 'inactive'\nSTAFF_STATUS.Pending  // 'pending'\n\nPERMISSION_TYPE.View   // 'view'\nPERMISSION_TYPE.Edit   // 'edit'\nPERMISSION_TYPE.Action // 'action'\n```\n\n## Interfaces\n\n| Interface | Source | Description |\n|-----------|--------|-------------|\n| `IStaff` | `staff.types` | Full staff document: name, email, hashed password, role, status, permissions, lastLoginAt, metadata, tenantId |\n| `IStaffSummary` | `staff.types` | Public staff projection (no password): name, email, role, status, permissions, lastLoginAt |\n| `IStaffCreateInput` | `staff.types` | Input for creating a staff member: name, email, password (plain), role, status, permissions, externalUserId, metadata |\n| `IStaffUpdateInput` | `staff.types` | Input for updating a staff member: name, email, metadata |\n| `IStaffListFilters` | `staff.types` | List query filters: status, role, page, limit |\n| `IPaginatedResult<T>` | `staff.types` | Paginated response wrapper: data[], pagination (page, limit, total, totalPages) |\n| `IPermissionEntry` | `permission.types` | Single permission entry: key, label, type |\n| `IPermissionGroup` | `permission.types` | Permission group document: groupId, label, permissions[], sortOrder, tenantId |\n| `IPermissionGroupCreateInput` | `permission.types` | Input for creating a permission group |\n| `IPermissionGroupUpdateInput` | `permission.types` | Input for updating a permission group |\n| `StaffAdapters` | `adapter.types` | Required adapters: hashPassword, comparePassword |\n| `LogAdapter` | `config.types` | Logger interface: info, warn, error |\n| `StaffMetric` | `config.types` | Metric event: name, value, labels, timestamp |\n| `StaffHooks` | `config.types` | Lifecycle hooks: onStaffCreated, onLogin, onLoginFailed, onPermissionsChanged, onStatusChanged, onMetric |\n| `StaffEngineOptions` | `config.types` | Engine options: requireEmailUniqueness, allowSelfPasswordChange, rateLimiter |\n| `StaffEngineConfig` | `config.types` | Full engine configuration: db, redis, logger, tenantId, auth, adapters, hooks, options |\n| `ResolvedOptions` | `config.types` | Resolved options with defaults applied |\n| `DEFAULT_OPTIONS` | `config.types` | Default values for all options |\n\n## Usage\n\n```ts\nimport type {\n  IStaff,\n  IStaffSummary,\n  IPermissionGroup,\n  StaffEngineConfig,\n} from '@astralibx/staff-types';\nimport { STAFF_ROLE, STAFF_STATUS, PERMISSION_TYPE } from '@astralibx/staff-types';\n\n// Type a staff record\nconst staff: IStaffSummary = {\n  _id: '...',\n  name: 'Alice',\n  email: 'alice@example.com',\n  role: STAFF_ROLE.Owner,\n  status: STAFF_STATUS.Active,\n  permissions: ['contacts.view', 'contacts.edit'],\n  createdAt: new Date(),\n};\n\n// Type a permission group\nconst group: IPermissionGroup = {\n  _id: '...',\n  groupId: 'crm',\n  label: 'CRM',\n  permissions: [\n    { key: 'contacts.view', label: 'View Contacts', type: PERMISSION_TYPE.View },\n    { key: 'contacts.edit', label: 'Edit Contacts', type: PERMISSION_TYPE.Edit },\n  ],\n  sortOrder: 1,\n  createdAt: new Date(),\n  updatedAt: new Date(),\n};\n```\n\n## Links\n\n- [GitHub](https://github.com/Hariprakash1997/astralib/tree/main/packages/staff/staff-types)\n- [CHANGELOG](https://github.com/Hariprakash1997/astralib/blob/main/packages/staff/staff-types/CHANGELOG.md)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}