@typeb-digital/nucleus-sdk 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +116 -1
- package/dist/cjs/index.cjs +58 -2
- package/dist/cjs/index.d.cts +31 -1
- package/dist/cjs/index.d.cts.map +1 -1
- package/dist/es/index.d.ts +31 -1
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/index.js +58 -2
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Server-side TypeScript SDK for the **Nucleus data platform** — the company source of truth for people, projects, and clients.
|
|
4
4
|
|
|
5
|
-
Install this in your **app backend** (Node.js). It holds the app token and handles all data access.
|
|
5
|
+
Install this in your **app backend** (Node.js). It holds the app token and handles all data access.
|
|
6
|
+
|
|
7
|
+
> **WARNING — never import this package in browser code.**
|
|
8
|
+
> The app token (`NUCLEUS_TOKEN`) grants your app's full data access. A browser bundle is public — anyone can extract it. Import `@typeb-digital/nucleus-sdk` **only in Node.js backend code**. For the browser, use [`@typeb-digital/nucleus-client`](https://www.npmjs.com/package/@typeb-digital/nucleus-client), which holds no app token and only manages auth sessions.
|
|
6
9
|
|
|
7
10
|
---
|
|
8
11
|
|
|
@@ -18,6 +21,75 @@ Requires Node.js ≥ 18.
|
|
|
18
21
|
|
|
19
22
|
---
|
|
20
23
|
|
|
24
|
+
## Dual-token architecture
|
|
25
|
+
|
|
26
|
+
Nucleus apps use two tokens in concert:
|
|
27
|
+
|
|
28
|
+
| Token | Where it lives | What it does |
|
|
29
|
+
| ------------------------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
30
|
+
| **App token** (`NUCLEUS_TOKEN`) | Your backend only | The ceiling — defines which resources and buckets your app can access at all. Approved when your app registers scopes on the Nucleus dashboard. |
|
|
31
|
+
| **User access token** | Forwarded from the browser via your own API requests | The floor — identifies _which user_ is making the request. Your backend decides what to show that user. |
|
|
32
|
+
|
|
33
|
+
**How it works end to end:**
|
|
34
|
+
|
|
35
|
+
1. The frontend uses [`@typeb-digital/nucleus-client`](https://www.npmjs.com/package/@typeb-digital/nucleus-client) to sign the user in and get an access token
|
|
36
|
+
2. Every request from the frontend to **your** backend includes that token (e.g. in a header like `X-Nucleus-Token`)
|
|
37
|
+
3. Your backend receives the user token, validates it, and uses it to enforce user-level authorization in your own logic
|
|
38
|
+
4. Your backend then calls the Nucleus SDK with the **app token** to read Nucleus data
|
|
39
|
+
|
|
40
|
+
**What `asUser` applies to — files only:** The server SDK data methods (`employees.list()`, `projects.getById()`, etc.) use the app token exclusively and do not accept a user token parameter. The user context floor is enforced by your backend, not by Nucleus SDK data calls. The only place the server SDK accepts a user token is `files.getUrl({ asUser })`, which checks that the requesting user is in the file's `allowedUsers` list.
|
|
41
|
+
|
|
42
|
+
**End-to-end example:**
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
// ── Frontend (uses @typeb-digital/nucleus-client) ──────────────────────────
|
|
46
|
+
|
|
47
|
+
import { nucleus } from './nucleus-client'; // NucleusClient instance
|
|
48
|
+
|
|
49
|
+
async function loadProjectData(projectId: string) {
|
|
50
|
+
const userToken = await nucleus.auth.getAccessToken(); // auto-refreshes if expired
|
|
51
|
+
|
|
52
|
+
const res = await fetch(`/api/projects/${projectId}`, {
|
|
53
|
+
headers: { 'X-Nucleus-Token': userToken },
|
|
54
|
+
});
|
|
55
|
+
return res.json();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// ── Your backend (uses @typeb-digital/nucleus-sdk) ─────────────────────────
|
|
59
|
+
|
|
60
|
+
import { nucleus } from './nucleus-server'; // NucleusClient instance (app token)
|
|
61
|
+
import { isError } from '@typeb-digital/nucleus-sdk';
|
|
62
|
+
|
|
63
|
+
// Express / Fastify / NestJS handler
|
|
64
|
+
async function projectHandler(req, res) {
|
|
65
|
+
// 1. Verify the forwarded user token using the server SDK.
|
|
66
|
+
// This verifies the RS256 signature against the platform's public key (JWKS),
|
|
67
|
+
// cached after the first call — no round-trip per request.
|
|
68
|
+
const authResult = await nucleus.auth.verifyToken(req.headers['x-nucleus-token'] ?? '');
|
|
69
|
+
if (isError(authResult)) return res.status(401).json({ error: 'Invalid token' });
|
|
70
|
+
|
|
71
|
+
const { employeeId } = authResult.data;
|
|
72
|
+
|
|
73
|
+
// 2. Use the server SDK (app token) to read Nucleus data.
|
|
74
|
+
// The app token defines what your app can access; your backend decides
|
|
75
|
+
// what to return to this specific user.
|
|
76
|
+
const result = await nucleus.projects.getById(req.params.projectId, {
|
|
77
|
+
expand: ['client', 'projectManager'],
|
|
78
|
+
});
|
|
79
|
+
if (isError(result)) return res.status(404).json({ error: result.error.message });
|
|
80
|
+
|
|
81
|
+
// 3. For a user-scoped private file, pass the user token to the server SDK.
|
|
82
|
+
// The platform enforces that the user is in the file's allowedUsers list.
|
|
83
|
+
const { data: fileData } = await nucleus.files.getUrl('contracts/2026/q1.pdf', {
|
|
84
|
+
asUser: req.headers['x-nucleus-token'],
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
return res.json({ project: result.data, contractUrl: fileData?.url });
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
21
93
|
## Quick start
|
|
22
94
|
|
|
23
95
|
```typescript
|
|
@@ -159,6 +231,28 @@ await nucleus.files.delete('users/123/avatar');
|
|
|
159
231
|
|
|
160
232
|
---
|
|
161
233
|
|
|
234
|
+
## User token verification
|
|
235
|
+
|
|
236
|
+
Verify a Nucleus user access token forwarded from the browser. Uses RS256 local verification — the JWKS is fetched once and cached; no network round-trip per request.
|
|
237
|
+
|
|
238
|
+
```typescript
|
|
239
|
+
import { NucleusClient, isError } from '@typeb-digital/nucleus-sdk';
|
|
240
|
+
|
|
241
|
+
const result = await nucleus.auth.verifyToken(userAccessToken);
|
|
242
|
+
|
|
243
|
+
if (isError(result)) {
|
|
244
|
+
// result.error.code: 'FORBIDDEN' (invalid/expired token) | 'NETWORK_ERROR' (JWKS fetch failed)
|
|
245
|
+
return res.status(401).json({ error: 'Unauthorized' });
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
const { employeeId, appId, expiresAt } = result.data;
|
|
249
|
+
// employeeId — Nucleus employee ID, use as the user identifier in your backend
|
|
250
|
+
// appId — app public ID this token was issued for (e.g. 'app_xxx')
|
|
251
|
+
// expiresAt — Unix timestamp seconds
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
162
256
|
## Self-service app info
|
|
163
257
|
|
|
164
258
|
```typescript
|
|
@@ -231,6 +325,27 @@ new NucleusClient({
|
|
|
231
325
|
|
|
232
326
|
---
|
|
233
327
|
|
|
328
|
+
## Platform data boundary
|
|
329
|
+
|
|
330
|
+
Understanding these properties lets you make informed decisions about your app's data model:
|
|
331
|
+
|
|
332
|
+
**Nucleus IDs are opaque string references.** `emp_123`, `proj_456` etc. are stable string identifiers. Your app stores them as strings and resolves details via the SDK. There are no foreign keys between your database and Nucleus, and no referential integrity is enforced.
|
|
333
|
+
|
|
334
|
+
**A `getById` result is a snapshot, not a live reference.** The underlying Nucleus record may change after you read it — an employee changes department, a project is archived, a client is renamed. Nothing notifies you.
|
|
335
|
+
|
|
336
|
+
**Nucleus is pull-only today.** There is no webhook or change-notification mechanism. Your app must request data to see current state.
|
|
337
|
+
|
|
338
|
+
**The consumption strategy is entirely your choice.** Both of these are valid:
|
|
339
|
+
|
|
340
|
+
- **Fetch on demand** — call the SDK per-request; data is always fresh; more API calls
|
|
341
|
+
- **Cache or denormalize into your own database** — faster reads; you own keeping it fresh
|
|
342
|
+
|
|
343
|
+
Nucleus does not prescribe which approach to use. If you cache Nucleus data in your own database, you own the freshness of that cache.
|
|
344
|
+
|
|
345
|
+
**Your app owns its own data entirely.** Nucleus stores none of it. The Nucleus SDK only reads Nucleus-managed resources (employees, projects, clients, etc.).
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
234
349
|
## License
|
|
235
350
|
|
|
236
351
|
MIT — Type B Digital
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
2
2
|
|
|
3
3
|
var ofetch = require('ofetch');
|
|
4
|
+
var jose = require('jose');
|
|
4
5
|
|
|
5
|
-
const DEFAULT_BASE_URL = 'https://nucleus.typeb-lab.online';
|
|
6
|
+
const DEFAULT_BASE_URL$1 = 'https://nucleus.typeb-lab.online';
|
|
6
7
|
function statusToCode(status, apiCode) {
|
|
7
8
|
if (apiCode === 'INVALID_SCOPE') return 'INVALID_SCOPE';
|
|
8
9
|
if (status === 404) return 'NOT_FOUND';
|
|
@@ -23,7 +24,7 @@ class NucleusTransport {
|
|
|
23
24
|
Authorization: `Bearer ${token}`,
|
|
24
25
|
'Content-Type': 'application/json'
|
|
25
26
|
};
|
|
26
|
-
this.baseUrl = (baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, '');
|
|
27
|
+
this.baseUrl = (baseUrl ?? DEFAULT_BASE_URL$1).replace(/\/$/, '');
|
|
27
28
|
}
|
|
28
29
|
async get(path, query) {
|
|
29
30
|
try {
|
|
@@ -630,6 +631,60 @@ class FilesAccessor {
|
|
|
630
631
|
}
|
|
631
632
|
}
|
|
632
633
|
|
|
634
|
+
const DEFAULT_BASE_URL = 'https://nucleus.typeb-lab.online';
|
|
635
|
+
class AuthAccessor {
|
|
636
|
+
constructor(baseUrl){
|
|
637
|
+
const url = (baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, '');
|
|
638
|
+
this.jwks = jose.createRemoteJWKSet(new URL(`${url}/api/v1/platform/auth/jwks.json`));
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* Verify a Nucleus user access token locally using the platform's public key.
|
|
642
|
+
*
|
|
643
|
+
* Call this in your backend to authenticate forwarded user tokens — no network
|
|
644
|
+
* round-trip per request. The JWKS is fetched once on first call and cached;
|
|
645
|
+
* it refreshes automatically when the platform rotates its signing key.
|
|
646
|
+
*
|
|
647
|
+
* @example
|
|
648
|
+
* ```typescript
|
|
649
|
+
* const result = await nucleus.auth.verifyToken(req.headers['x-nucleus-token']);
|
|
650
|
+
* if (isError(result)) return res.status(401).json({ error: 'Invalid token' });
|
|
651
|
+
*
|
|
652
|
+
* const { employeeId } = result.data;
|
|
653
|
+
* ```
|
|
654
|
+
*/ async verifyToken(token) {
|
|
655
|
+
try {
|
|
656
|
+
const { payload } = await jose.jwtVerify(token, this.jwks, {
|
|
657
|
+
issuer: 'nucleus',
|
|
658
|
+
algorithms: [
|
|
659
|
+
'RS256'
|
|
660
|
+
]
|
|
661
|
+
});
|
|
662
|
+
return {
|
|
663
|
+
data: {
|
|
664
|
+
employeeId: payload.sub,
|
|
665
|
+
appId: Array.isArray(payload.aud) ? payload.aud[0] : payload.aud,
|
|
666
|
+
expiresAt: payload.exp
|
|
667
|
+
}
|
|
668
|
+
};
|
|
669
|
+
} catch (err) {
|
|
670
|
+
if (err instanceof jose.errors.JOSEError) {
|
|
671
|
+
return {
|
|
672
|
+
error: {
|
|
673
|
+
code: 'FORBIDDEN',
|
|
674
|
+
message: err.message
|
|
675
|
+
}
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
return {
|
|
679
|
+
error: {
|
|
680
|
+
code: 'NETWORK_ERROR',
|
|
681
|
+
message: `JWKS fetch failed: ${String(err)}`
|
|
682
|
+
}
|
|
683
|
+
};
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
|
|
633
688
|
/**
|
|
634
689
|
* NucleusClient — entry point for the Nucleus server SDK.
|
|
635
690
|
*
|
|
@@ -663,6 +718,7 @@ class FilesAccessor {
|
|
|
663
718
|
this.genericRates = new GenericRatesAccessor(transport);
|
|
664
719
|
this.apps = new AppsAccessor(transport);
|
|
665
720
|
this.files = new FilesAccessor(transport);
|
|
721
|
+
this.auth = new AuthAccessor(config.baseUrl);
|
|
666
722
|
}
|
|
667
723
|
}
|
|
668
724
|
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -514,6 +514,35 @@ declare class FilesAccessor {
|
|
|
514
514
|
list(params?: ListParams): Promise<PaginatedResult<FileRecord>>;
|
|
515
515
|
}
|
|
516
516
|
|
|
517
|
+
type VerifiedToken = {
|
|
518
|
+
/** Nucleus employee ID — use as the user identifier in your backend. */
|
|
519
|
+
employeeId: string;
|
|
520
|
+
/** App public ID (`app_xxx`) this token was issued for. */
|
|
521
|
+
appId: string;
|
|
522
|
+
/** Token expiry — Unix timestamp in seconds. */
|
|
523
|
+
expiresAt: number;
|
|
524
|
+
};
|
|
525
|
+
declare class AuthAccessor {
|
|
526
|
+
private readonly jwks;
|
|
527
|
+
constructor(baseUrl?: string);
|
|
528
|
+
/**
|
|
529
|
+
* Verify a Nucleus user access token locally using the platform's public key.
|
|
530
|
+
*
|
|
531
|
+
* Call this in your backend to authenticate forwarded user tokens — no network
|
|
532
|
+
* round-trip per request. The JWKS is fetched once on first call and cached;
|
|
533
|
+
* it refreshes automatically when the platform rotates its signing key.
|
|
534
|
+
*
|
|
535
|
+
* @example
|
|
536
|
+
* ```typescript
|
|
537
|
+
* const result = await nucleus.auth.verifyToken(req.headers['x-nucleus-token']);
|
|
538
|
+
* if (isError(result)) return res.status(401).json({ error: 'Invalid token' });
|
|
539
|
+
*
|
|
540
|
+
* const { employeeId } = result.data;
|
|
541
|
+
* ```
|
|
542
|
+
*/
|
|
543
|
+
verifyToken(token: string): Promise<SingleResult<VerifiedToken> | ErrorResult>;
|
|
544
|
+
}
|
|
545
|
+
|
|
517
546
|
type NucleusClientConfig<S extends ScopeDeclaration> = {
|
|
518
547
|
/** App token — `el_live_...` or `el_test_...`. Store in an environment variable, never commit. */
|
|
519
548
|
token: string;
|
|
@@ -559,9 +588,10 @@ declare class NucleusClient<const S extends ScopeDeclaration> {
|
|
|
559
588
|
readonly genericRates: GenericRatesAccessor<S>;
|
|
560
589
|
readonly apps: AppsAccessor;
|
|
561
590
|
readonly files: FilesAccessor;
|
|
591
|
+
readonly auth: AuthAccessor;
|
|
562
592
|
constructor(config: NucleusClientConfig<S>);
|
|
563
593
|
}
|
|
564
594
|
|
|
565
595
|
export { FilesAccessor, NucleusClient, isError };
|
|
566
|
-
export type { AppInfo, AppScopeInfo, ClientContact, ClientExpandPath, ClientFinancials, ClientIdentity, ClientNotes, CurrencyCore, DepartmentCore, EmployeeCompensation, EmployeeCompensationHistory, EmployeeContact, EmployeeEmployment, EmployeeExpandPath, EmployeeIdentity, EmployeeSensitive, ErrorCode, ErrorResult, ListParams as FileListParams, FileRecord, FileUrlResult, FileVisibility, GenericRateCore, GenericRateFinancials, GetUrlOptions, ListMeta, ListResult, NucleusClientConfig, PaginatedResult, PartnerContact, PartnerExpandPath, PartnerIdentity, PartnerNotes, ProjectCore, ProjectExpandPath, ProjectFinancials, ProjectIntegrations, ProjectMembership, ProjectTeam, ProjectTypeCore, ResolveClient, ResolveCurrency, ResolveDepartment, ResolveEmployee, ResolveGenericRate, ResolvePartner, ResolveProject, ResolveProjectType, ScopeDeclaration, SingleResult, SuccessResult, UploadParams, WithClientExpand, WithEmployeeExpand, WithPartnerExpand, WithProjectExpand };
|
|
596
|
+
export type { AppInfo, AppScopeInfo, ClientContact, ClientExpandPath, ClientFinancials, ClientIdentity, ClientNotes, CurrencyCore, DepartmentCore, EmployeeCompensation, EmployeeCompensationHistory, EmployeeContact, EmployeeEmployment, EmployeeExpandPath, EmployeeIdentity, EmployeeSensitive, ErrorCode, ErrorResult, ListParams as FileListParams, FileRecord, FileUrlResult, FileVisibility, GenericRateCore, GenericRateFinancials, GetUrlOptions, ListMeta, ListResult, NucleusClientConfig, PaginatedResult, PartnerContact, PartnerExpandPath, PartnerIdentity, PartnerNotes, ProjectCore, ProjectExpandPath, ProjectFinancials, ProjectIntegrations, ProjectMembership, ProjectTeam, ProjectTypeCore, ResolveClient, ResolveCurrency, ResolveDepartment, ResolveEmployee, ResolveGenericRate, ResolvePartner, ResolveProject, ResolveProjectType, ScopeDeclaration, SingleResult, SuccessResult, UploadParams, VerifiedToken, WithClientExpand, WithEmployeeExpand, WithPartnerExpand, WithProjectExpand };
|
|
567
597
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/cjs/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sources":["../../src/types.ts","../../src/transport.ts","../../src/resources/employees.ts","../../src/resources/projects.ts","../../src/resources/clients.ts","../../src/resources/partners.ts","../../src/resources/departments.ts","../../src/resources/project-types.ts","../../src/resources/currencies.ts","../../src/resources/generic-rates.ts","../../src/apps.ts","../../src/resources/files.ts","../../src/client.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,mBAAmB;AACxB,KAAK,OAAO,GAAG,MAAM;AACrB,KAAK,SAAS;AACd,KAAK,WAAW;AAChB;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,KAAK,aAAa;AAClB;AACA;AACA,KAAK,QAAQ;AACb;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU;AACf;AACA,UAAU,QAAQ;AAClB;AACA,KAAK,YAAY,MAAM,aAAa,MAAM,WAAW;AACrD,KAAK,eAAe,MAAM,UAAU,MAAM,WAAW;AACrD,iBAAiB,OAAO,YAAY,aAAa,MAAM,UAAU,MAAM,WAAW,aAAa,WAAW;AAC1G,KAAK,gBAAgB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,kBAAkB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,2BAA2B;AAChC,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB,cAAc,gBAAgB;AAC9B,aAAa,eAAe;AAC5B,gBAAgB,kBAAkB;AAClC,eAAe,iBAAiB;AAChC,kBAAkB,oBAAoB;AACtC,0BAA0B,2BAA2B;AACrD;AACA,KAAK,iBAAiB;AACtB;AACA;AACA;AACA,KAAK,WAAW;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,WAAW;AAChB;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA,KAAK,iBAAiB,GAAG,MAAM;AAC/B,KAAK,mBAAmB;AACxB;AACA;AACA;AACA;AACA;AACA,KAAK,gBAAgB;AACrB,UAAU,WAAW;AACrB,UAAU,WAAW;AACrB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
|
|
1
|
+
{"version":3,"file":"index.d.cts","sources":["../../src/types.ts","../../src/transport.ts","../../src/resources/employees.ts","../../src/resources/projects.ts","../../src/resources/clients.ts","../../src/resources/partners.ts","../../src/resources/departments.ts","../../src/resources/project-types.ts","../../src/resources/currencies.ts","../../src/resources/generic-rates.ts","../../src/apps.ts","../../src/resources/files.ts","../../src/auth/auth-accessor.ts","../../src/client.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,mBAAmB;AACxB,KAAK,OAAO,GAAG,MAAM;AACrB,KAAK,SAAS;AACd,KAAK,WAAW;AAChB;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,KAAK,aAAa;AAClB;AACA;AACA,KAAK,QAAQ;AACb;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU;AACf;AACA,UAAU,QAAQ;AAClB;AACA,KAAK,YAAY,MAAM,aAAa,MAAM,WAAW;AACrD,KAAK,eAAe,MAAM,UAAU,MAAM,WAAW;AACrD,iBAAiB,OAAO,YAAY,aAAa,MAAM,UAAU,MAAM,WAAW,aAAa,WAAW;AAC1G,KAAK,gBAAgB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,kBAAkB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,2BAA2B;AAChC,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB,cAAc,gBAAgB;AAC9B,aAAa,eAAe;AAC5B,gBAAgB,kBAAkB;AAClC,eAAe,iBAAiB;AAChC,kBAAkB,oBAAoB;AACtC,0BAA0B,2BAA2B;AACrD;AACA,KAAK,iBAAiB;AACtB;AACA;AACA;AACA,KAAK,WAAW;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,WAAW;AAChB;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA,KAAK,iBAAiB,GAAG,MAAM;AAC/B,KAAK,mBAAmB;AACxB;AACA;AACA;AACA;AACA;AACA,KAAK,gBAAgB;AACrB,UAAU,WAAW;AACrB,UAAU,WAAW;AACrB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","names":[]}
|
package/dist/es/index.d.ts
CHANGED
|
@@ -514,6 +514,35 @@ declare class FilesAccessor {
|
|
|
514
514
|
list(params?: ListParams): Promise<PaginatedResult<FileRecord>>;
|
|
515
515
|
}
|
|
516
516
|
|
|
517
|
+
type VerifiedToken = {
|
|
518
|
+
/** Nucleus employee ID — use as the user identifier in your backend. */
|
|
519
|
+
employeeId: string;
|
|
520
|
+
/** App public ID (`app_xxx`) this token was issued for. */
|
|
521
|
+
appId: string;
|
|
522
|
+
/** Token expiry — Unix timestamp in seconds. */
|
|
523
|
+
expiresAt: number;
|
|
524
|
+
};
|
|
525
|
+
declare class AuthAccessor {
|
|
526
|
+
private readonly jwks;
|
|
527
|
+
constructor(baseUrl?: string);
|
|
528
|
+
/**
|
|
529
|
+
* Verify a Nucleus user access token locally using the platform's public key.
|
|
530
|
+
*
|
|
531
|
+
* Call this in your backend to authenticate forwarded user tokens — no network
|
|
532
|
+
* round-trip per request. The JWKS is fetched once on first call and cached;
|
|
533
|
+
* it refreshes automatically when the platform rotates its signing key.
|
|
534
|
+
*
|
|
535
|
+
* @example
|
|
536
|
+
* ```typescript
|
|
537
|
+
* const result = await nucleus.auth.verifyToken(req.headers['x-nucleus-token']);
|
|
538
|
+
* if (isError(result)) return res.status(401).json({ error: 'Invalid token' });
|
|
539
|
+
*
|
|
540
|
+
* const { employeeId } = result.data;
|
|
541
|
+
* ```
|
|
542
|
+
*/
|
|
543
|
+
verifyToken(token: string): Promise<SingleResult<VerifiedToken> | ErrorResult>;
|
|
544
|
+
}
|
|
545
|
+
|
|
517
546
|
type NucleusClientConfig<S extends ScopeDeclaration> = {
|
|
518
547
|
/** App token — `el_live_...` or `el_test_...`. Store in an environment variable, never commit. */
|
|
519
548
|
token: string;
|
|
@@ -559,9 +588,10 @@ declare class NucleusClient<const S extends ScopeDeclaration> {
|
|
|
559
588
|
readonly genericRates: GenericRatesAccessor<S>;
|
|
560
589
|
readonly apps: AppsAccessor;
|
|
561
590
|
readonly files: FilesAccessor;
|
|
591
|
+
readonly auth: AuthAccessor;
|
|
562
592
|
constructor(config: NucleusClientConfig<S>);
|
|
563
593
|
}
|
|
564
594
|
|
|
565
595
|
export { FilesAccessor, NucleusClient, isError };
|
|
566
|
-
export type { AppInfo, AppScopeInfo, ClientContact, ClientExpandPath, ClientFinancials, ClientIdentity, ClientNotes, CurrencyCore, DepartmentCore, EmployeeCompensation, EmployeeCompensationHistory, EmployeeContact, EmployeeEmployment, EmployeeExpandPath, EmployeeIdentity, EmployeeSensitive, ErrorCode, ErrorResult, ListParams as FileListParams, FileRecord, FileUrlResult, FileVisibility, GenericRateCore, GenericRateFinancials, GetUrlOptions, ListMeta, ListResult, NucleusClientConfig, PaginatedResult, PartnerContact, PartnerExpandPath, PartnerIdentity, PartnerNotes, ProjectCore, ProjectExpandPath, ProjectFinancials, ProjectIntegrations, ProjectMembership, ProjectTeam, ProjectTypeCore, ResolveClient, ResolveCurrency, ResolveDepartment, ResolveEmployee, ResolveGenericRate, ResolvePartner, ResolveProject, ResolveProjectType, ScopeDeclaration, SingleResult, SuccessResult, UploadParams, WithClientExpand, WithEmployeeExpand, WithPartnerExpand, WithProjectExpand };
|
|
596
|
+
export type { AppInfo, AppScopeInfo, ClientContact, ClientExpandPath, ClientFinancials, ClientIdentity, ClientNotes, CurrencyCore, DepartmentCore, EmployeeCompensation, EmployeeCompensationHistory, EmployeeContact, EmployeeEmployment, EmployeeExpandPath, EmployeeIdentity, EmployeeSensitive, ErrorCode, ErrorResult, ListParams as FileListParams, FileRecord, FileUrlResult, FileVisibility, GenericRateCore, GenericRateFinancials, GetUrlOptions, ListMeta, ListResult, NucleusClientConfig, PaginatedResult, PartnerContact, PartnerExpandPath, PartnerIdentity, PartnerNotes, ProjectCore, ProjectExpandPath, ProjectFinancials, ProjectIntegrations, ProjectMembership, ProjectTeam, ProjectTypeCore, ResolveClient, ResolveCurrency, ResolveDepartment, ResolveEmployee, ResolveGenericRate, ResolvePartner, ResolveProject, ResolveProjectType, ScopeDeclaration, SingleResult, SuccessResult, UploadParams, VerifiedToken, WithClientExpand, WithEmployeeExpand, WithPartnerExpand, WithProjectExpand };
|
|
567
597
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/es/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../../src/types.ts","../../src/transport.ts","../../src/resources/employees.ts","../../src/resources/projects.ts","../../src/resources/clients.ts","../../src/resources/partners.ts","../../src/resources/departments.ts","../../src/resources/project-types.ts","../../src/resources/currencies.ts","../../src/resources/generic-rates.ts","../../src/apps.ts","../../src/resources/files.ts","../../src/client.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,mBAAmB;AACxB,KAAK,OAAO,GAAG,MAAM;AACrB,KAAK,SAAS;AACd,KAAK,WAAW;AAChB;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,KAAK,aAAa;AAClB;AACA;AACA,KAAK,QAAQ;AACb;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU;AACf;AACA,UAAU,QAAQ;AAClB;AACA,KAAK,YAAY,MAAM,aAAa,MAAM,WAAW;AACrD,KAAK,eAAe,MAAM,UAAU,MAAM,WAAW;AACrD,iBAAiB,OAAO,YAAY,aAAa,MAAM,UAAU,MAAM,WAAW,aAAa,WAAW;AAC1G,KAAK,gBAAgB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,kBAAkB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,2BAA2B;AAChC,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB,cAAc,gBAAgB;AAC9B,aAAa,eAAe;AAC5B,gBAAgB,kBAAkB;AAClC,eAAe,iBAAiB;AAChC,kBAAkB,oBAAoB;AACtC,0BAA0B,2BAA2B;AACrD;AACA,KAAK,iBAAiB;AACtB;AACA;AACA;AACA,KAAK,WAAW;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,WAAW;AAChB;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA,KAAK,iBAAiB,GAAG,MAAM;AAC/B,KAAK,mBAAmB;AACxB;AACA;AACA;AACA;AACA;AACA,KAAK,gBAAgB;AACrB,UAAU,WAAW;AACrB,UAAU,WAAW;AACrB,gBAAgB,iBAAiB;AACjC,kBAAkB,mBAAmB;AACrC;AACA,KAAK,cAAc;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,aAAa;AAClB;AACA;AACA;AACA;AACA,KAAK,gBAAgB;AACrB;AACA;AACA,KAAK,WAAW;AAChB;AACA;AACA,KAAK,eAAe;AACpB,cAAc,cAAc;AAC5B,aAAa,aAAa;AAC1B,gBAAgB,gBAAgB;AAChC,WAAW,WAAW;AACtB;AACA,KAAK,eAAe;AACpB;AACA;AACA;AACA,KAAK,cAAc;AACnB;AACA;AACA;AACA;AACA,KAAK,YAAY;AACjB;AACA;AACA,KAAK,gBAAgB;AACrB,cAAc,eAAe;AAC7B,aAAa,cAAc;AAC3B,WAAW,YAAY;AACvB;AACA,KAAK,cAAc;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK,mBAAmB;AACxB,UAAU,cAAc;AACxB;AACA,KAAK,eAAe;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK,oBAAoB;AACzB,UAAU,eAAe;AACzB;AACA,KAAK,YAAY;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB,UAAU,YAAY;AACtB;AACA,KAAK,eAAe;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK,qBAAqB;AAC1B;AACA;AACA;AACA,KAAK,oBAAoB;AACzB,UAAU,eAAe;AACzB,gBAAgB,qBAAqB;AACrC;AACA,KAAK,gBAAgB;AACrB,gCAAgC,iBAAiB;AACjD,+BAA+B,gBAAgB;AAC/C,8BAA8B,eAAe;AAC7C,+BAA+B,gBAAgB;AAC/C,kCAAkC,mBAAmB;AACrD,mCAAmC,oBAAoB;AACvD,iCAAiC,iBAAiB;AAClD,mCAAmC,oBAAoB;AACvD;AACA,KAAK,cAAc,wEAAwE,OAAO,GAAG,mBAAmB,iBAAiB,OAAO;AAChJ,KAAK,eAAe,WAAW,gBAAgB,IAAI,cAAc,CAAC,iBAAiB;AACnF,KAAK,cAAc,WAAW,gBAAgB,IAAI,cAAc,CAAC,gBAAgB;AACjF,KAAK,aAAa,WAAW,gBAAgB,IAAI,cAAc,CAAC,eAAe;AAC/E,KAAK,cAAc,WAAW,gBAAgB,IAAI,cAAc,CAAC,gBAAgB;AACjF,KAAK,iBAAiB,WAAW,gBAAgB,IAAI,cAAc,CAAC,mBAAmB;AACvF,KAAK,kBAAkB,WAAW,gBAAgB,IAAI,cAAc,CAAC,oBAAoB;AACzF,KAAK,eAAe,WAAW,gBAAgB,IAAI,cAAc,CAAC,iBAAiB;AACnF,KAAK,kBAAkB,WAAW,gBAAgB,IAAI,cAAc,CAAC,oBAAoB;AACzF,KAAK,kBAAkB;AACvB,KAAK,kBAAkB,uBAAuB,kBAAkB,cAAc,gBAAgB;AAC9F,aAAa,eAAe;AAC5B;AACA,aAAa,eAAe;AAC5B;AACA,KAAK,iBAAiB;AACtB,KAAK,yBAAyB,WAAW,gBAAgB;AACzD;AACA;AACA,cAAc,eAAe;AAC7B;AACA,KAAK,iBAAiB,uBAAuB,iBAAiB,cAAc,gBAAgB,gDAAgD,IAAI;AAChJ,iBAAiB,KAAK,CAAC,yBAAyB;AAChD;AACA,YAAY,aAAa;AACzB;AACA,iBAAiB,eAAe;AAChC;AACA,qBAAqB,eAAe;AACpC,iBAAiB,eAAe;AAChC;AACA;AACA,oBAAoB,eAAe;AACnC;AACA,qBAAqB,eAAe;AACpC,iBAAiB,eAAe;AAChC;AACA;AACA,oBAAoB,eAAe;AACnC;AACA,KAAK,gBAAgB;AACrB,KAAK,gBAAgB,uBAAuB,gBAAgB,cAAc,gBAAgB;AAC1F,cAAc,KAAK,CAAC,cAAc;AAClC;AACA,KAAK,iBAAiB;AACtB,KAAK,iBAAiB,uBAAuB,iBAAiB,cAAc,gBAAgB;AAC5F,eAAe,KAAK,CAAC,eAAe;AACpC;AACA,KAAK,YAAY;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,OAAO;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9SA;AACA;AACA;AACA;;AAEA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA,iCAAiC,MAAM,wCAAwC,OAAO,CAAC,aAAa,MAAM,WAAW;AACrH,0CAA0C,OAAO,CAAC,aAAa,MAAM,WAAW;AAChF,wCAAwC,MAAM,+BAA+B,OAAO,CAAC,aAAa,MAAM,WAAW;AACnH,qCAAqC,MAAM,wCAAwC,OAAO,CAAC,UAAU,MAAM,WAAW;AACtH;;ACXA,KAAK,kBAAkB;AACvB;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA,cAAc,iBAAiB,WAAW,gBAAgB;AAC1D;AACA,2BAA2B,gBAAgB;AAC3C,4BAA4B,kBAAkB,uBAAuB,kBAAkB;AACvF;AACA,QAAQ,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,eAAe;AAClE,+BAA+B,kBAAkB;AACjD;AACA,QAAQ,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,eAAe;AAC/D;;ACjBA,KAAK,iBAAiB;AACtB;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA,cAAc,gBAAgB,WAAW,gBAAgB;AACzD;AACA,2BAA2B,gBAAgB;AAC3C,4BAA4B,iBAAiB,uBAAuB,iBAAiB;AACrF;AACA,QAAQ,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc;AAChE,+BAA+B,iBAAiB;AAChD;AACA,QAAQ,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,cAAc;AAC7D;;ACjBA,KAAK,gBAAgB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA,cAAc,eAAe,WAAW,gBAAgB;AACxD;AACA,2BAA2B,gBAAgB;AAC3C,4BAA4B,gBAAgB,uBAAuB,gBAAgB;AACnF;AACA,QAAQ,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,aAAa;AAC9D,+BAA+B,gBAAgB;AAC/C;AACA,QAAQ,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,aAAa;AAC3D;;ACjBA,KAAK,iBAAiB;AACtB;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA,cAAc,gBAAgB,WAAW,gBAAgB;AACzD;AACA,2BAA2B,gBAAgB;AAC3C,4BAA4B,iBAAiB,uBAAuB,iBAAiB;AACrF;AACA,QAAQ,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc;AAChE,+BAA+B,iBAAiB;AAChD;AACA,QAAQ,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,cAAc;AAC7D;;ACfA,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;AACA,cAAc,mBAAmB,WAAW,gBAAgB;AAC5D;AACA,2BAA2B,gBAAgB;AAC3C,kBAAkB,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,iBAAiB;AAClF,yBAAyB,OAAO,CAAC,YAAY,CAAC,iBAAiB;AAC/D;;ACVA,KAAK,qBAAqB;AAC1B;AACA;AACA;AACA,cAAc,oBAAoB,WAAW,gBAAgB;AAC7D;AACA,2BAA2B,gBAAgB;AAC3C,kBAAkB,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,kBAAkB;AACpF,yBAAyB,OAAO,CAAC,YAAY,CAAC,kBAAkB;AAChE;;ACTA,KAAK,kBAAkB;AACvB;AACA;AACA;AACA,cAAc,kBAAkB,WAAW,gBAAgB;AAC3D;AACA,2BAA2B,gBAAgB;AAC3C,kBAAkB,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,eAAe;AAC9E,6BAA6B,OAAO,CAAC,YAAY,CAAC,eAAe;AACjE;;ACTA,KAAK,qBAAqB;AAC1B;AACA;AACA;AACA;AACA,cAAc,oBAAoB,WAAW,gBAAgB;AAC7D;AACA,2BAA2B,gBAAgB;AAC3C,kBAAkB,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,kBAAkB;AACpF,yBAAyB,OAAO,CAAC,YAAY,CAAC,kBAAkB;AAChE;;ACZA;AACA;AACA;AACA;AACA;;AAGA,cAAc,YAAY;AAC1B;AACA,2BAA2B,gBAAgB;AAC3C,UAAU,OAAO,CAAC,YAAY,CAAC,OAAO;AACtC;;ACTA,KAAK,cAAc;AACnB,KAAK,UAAU;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA,KAAK,aAAa;AAClB;AACA;AACA,KAAK,YAAY;AACjB;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA,KAAK,aAAa;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU;AACf;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,mBAAmB,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,IAAI,WAAW;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,aAAa,IAAI,WAAW;AACnG;AACA,yBAAyB,OAAO,CAAC,YAAY,SAAS,WAAW;AACjE;AACA,kBAAkB,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,UAAU;AACjE;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../src/types.ts","../../src/transport.ts","../../src/resources/employees.ts","../../src/resources/projects.ts","../../src/resources/clients.ts","../../src/resources/partners.ts","../../src/resources/departments.ts","../../src/resources/project-types.ts","../../src/resources/currencies.ts","../../src/resources/generic-rates.ts","../../src/apps.ts","../../src/resources/files.ts","../../src/auth/auth-accessor.ts","../../src/client.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,mBAAmB;AACxB,KAAK,OAAO,GAAG,MAAM;AACrB,KAAK,SAAS;AACd,KAAK,WAAW;AAChB;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,KAAK,aAAa;AAClB;AACA;AACA,KAAK,QAAQ;AACb;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU;AACf;AACA,UAAU,QAAQ;AAClB;AACA,KAAK,YAAY,MAAM,aAAa,MAAM,WAAW;AACrD,KAAK,eAAe,MAAM,UAAU,MAAM,WAAW;AACrD,iBAAiB,OAAO,YAAY,aAAa,MAAM,UAAU,MAAM,WAAW,aAAa,WAAW;AAC1G,KAAK,gBAAgB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,kBAAkB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA,KAAK,oBAAoB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,2BAA2B;AAChC,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB;AACtB,cAAc,gBAAgB;AAC9B,aAAa,eAAe;AAC5B,gBAAgB,kBAAkB;AAClC,eAAe,iBAAiB;AAChC,kBAAkB,oBAAoB;AACtC,0BAA0B,2BAA2B;AACrD;AACA,KAAK,iBAAiB;AACtB;AACA;AACA;AACA,KAAK,WAAW;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,WAAW;AAChB;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA,KAAK,iBAAiB,GAAG,MAAM;AAC/B,KAAK,mBAAmB;AACxB;AACA;AACA;AACA;AACA;AACA,KAAK,gBAAgB;AACrB,UAAU,WAAW;AACrB,UAAU,WAAW;AACrB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","names":[]}
|
package/dist/es/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
2
2
|
|
|
3
3
|
var ofetch = require('ofetch');
|
|
4
|
+
var jose = require('jose');
|
|
4
5
|
|
|
5
|
-
const DEFAULT_BASE_URL = 'https://nucleus.typeb-lab.online';
|
|
6
|
+
const DEFAULT_BASE_URL$1 = 'https://nucleus.typeb-lab.online';
|
|
6
7
|
function statusToCode(status, apiCode) {
|
|
7
8
|
if (apiCode === 'INVALID_SCOPE') return 'INVALID_SCOPE';
|
|
8
9
|
if (status === 404) return 'NOT_FOUND';
|
|
@@ -23,7 +24,7 @@ class NucleusTransport {
|
|
|
23
24
|
Authorization: `Bearer ${token}`,
|
|
24
25
|
'Content-Type': 'application/json'
|
|
25
26
|
};
|
|
26
|
-
this.baseUrl = (baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, '');
|
|
27
|
+
this.baseUrl = (baseUrl ?? DEFAULT_BASE_URL$1).replace(/\/$/, '');
|
|
27
28
|
}
|
|
28
29
|
async get(path, query) {
|
|
29
30
|
try {
|
|
@@ -630,6 +631,60 @@ class FilesAccessor {
|
|
|
630
631
|
}
|
|
631
632
|
}
|
|
632
633
|
|
|
634
|
+
const DEFAULT_BASE_URL = 'https://nucleus.typeb-lab.online';
|
|
635
|
+
class AuthAccessor {
|
|
636
|
+
constructor(baseUrl){
|
|
637
|
+
const url = (baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, '');
|
|
638
|
+
this.jwks = jose.createRemoteJWKSet(new URL(`${url}/api/v1/platform/auth/jwks.json`));
|
|
639
|
+
}
|
|
640
|
+
/**
|
|
641
|
+
* Verify a Nucleus user access token locally using the platform's public key.
|
|
642
|
+
*
|
|
643
|
+
* Call this in your backend to authenticate forwarded user tokens — no network
|
|
644
|
+
* round-trip per request. The JWKS is fetched once on first call and cached;
|
|
645
|
+
* it refreshes automatically when the platform rotates its signing key.
|
|
646
|
+
*
|
|
647
|
+
* @example
|
|
648
|
+
* ```typescript
|
|
649
|
+
* const result = await nucleus.auth.verifyToken(req.headers['x-nucleus-token']);
|
|
650
|
+
* if (isError(result)) return res.status(401).json({ error: 'Invalid token' });
|
|
651
|
+
*
|
|
652
|
+
* const { employeeId } = result.data;
|
|
653
|
+
* ```
|
|
654
|
+
*/ async verifyToken(token) {
|
|
655
|
+
try {
|
|
656
|
+
const { payload } = await jose.jwtVerify(token, this.jwks, {
|
|
657
|
+
issuer: 'nucleus',
|
|
658
|
+
algorithms: [
|
|
659
|
+
'RS256'
|
|
660
|
+
]
|
|
661
|
+
});
|
|
662
|
+
return {
|
|
663
|
+
data: {
|
|
664
|
+
employeeId: payload.sub,
|
|
665
|
+
appId: Array.isArray(payload.aud) ? payload.aud[0] : payload.aud,
|
|
666
|
+
expiresAt: payload.exp
|
|
667
|
+
}
|
|
668
|
+
};
|
|
669
|
+
} catch (err) {
|
|
670
|
+
if (err instanceof jose.errors.JOSEError) {
|
|
671
|
+
return {
|
|
672
|
+
error: {
|
|
673
|
+
code: 'FORBIDDEN',
|
|
674
|
+
message: err.message
|
|
675
|
+
}
|
|
676
|
+
};
|
|
677
|
+
}
|
|
678
|
+
return {
|
|
679
|
+
error: {
|
|
680
|
+
code: 'NETWORK_ERROR',
|
|
681
|
+
message: `JWKS fetch failed: ${String(err)}`
|
|
682
|
+
}
|
|
683
|
+
};
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
|
|
633
688
|
/**
|
|
634
689
|
* NucleusClient — entry point for the Nucleus server SDK.
|
|
635
690
|
*
|
|
@@ -663,6 +718,7 @@ class FilesAccessor {
|
|
|
663
718
|
this.genericRates = new GenericRatesAccessor(transport);
|
|
664
719
|
this.apps = new AppsAccessor(transport);
|
|
665
720
|
this.files = new FilesAccessor(transport);
|
|
721
|
+
this.auth = new AuthAccessor(config.baseUrl);
|
|
666
722
|
}
|
|
667
723
|
}
|
|
668
724
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typeb-digital/nucleus-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "Server-side TypeScript SDK for the Nucleus data platform",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18"
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"typecheck": "tsc --noEmit"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
+
"jose": "^5.0.0",
|
|
33
34
|
"ofetch": "1.5.1"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|