@tenantscale/sdk 0.1.0 → 0.3.0
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/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware/index.d.ts +6 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +8 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/query-guard.d.ts +31 -0
- package/dist/middleware/query-guard.d.ts.map +1 -0
- package/dist/middleware/query-guard.js +137 -0
- package/dist/middleware/query-guard.js.map +1 -0
- package/dist/middleware/user-auth.d.ts +53 -0
- package/dist/middleware/user-auth.d.ts.map +1 -0
- package/dist/middleware/user-auth.js +154 -0
- package/dist/middleware/user-auth.js.map +1 -0
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/tenant-scale.d.ts +129 -0
- package/dist/tenant-scale.d.ts.map +1 -0
- package/dist/tenant-scale.js +267 -0
- package/dist/tenant-scale.js.map +1 -0
- package/dist/tenant.d.ts +2 -0
- package/dist/tenant.d.ts.map +1 -1
- package/dist/tenant.js +2 -0
- package/dist/tenant.js.map +1 -1
- package/dist/testing/index.d.ts +111 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +198 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/types.d.ts +29 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +1 -1
- package/package.json +72 -63
package/dist/types.d.ts
CHANGED
|
@@ -20,9 +20,33 @@ export interface TenantUser {
|
|
|
20
20
|
id: string;
|
|
21
21
|
email: string;
|
|
22
22
|
name: string;
|
|
23
|
-
role
|
|
23
|
+
/** Developer-defined role string. TenantScale only reserves 'owner' internally. */
|
|
24
|
+
role: string;
|
|
24
25
|
tenant_id: string;
|
|
25
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Resolved user+tenant context for BYOA auth.
|
|
29
|
+
* Set on the request after `resolveUserTenant()` middleware runs.
|
|
30
|
+
*/
|
|
31
|
+
export interface UserTenantContext {
|
|
32
|
+
/** The authenticated user's ID */
|
|
33
|
+
userId: string;
|
|
34
|
+
/** The tenant this user belongs to */
|
|
35
|
+
tenantId: string;
|
|
36
|
+
/** Developer-defined role string (e.g. 'owner', 'admin', 'editor', 'manager'). */
|
|
37
|
+
role: string;
|
|
38
|
+
/** The resolved tenant object (cached) */
|
|
39
|
+
tenant: Tenant;
|
|
40
|
+
/** Whether this user can perform admin actions */
|
|
41
|
+
isAdmin: boolean;
|
|
42
|
+
/** All tenants this user belongs to (for multi-tenant switching) */
|
|
43
|
+
tenants: Array<{
|
|
44
|
+
tenantId: string;
|
|
45
|
+
tenantName: string;
|
|
46
|
+
tenantSlug: string;
|
|
47
|
+
role: string;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
26
50
|
/** Options passed to the TenantScale constructor */
|
|
27
51
|
export interface TenantScaleOptions {
|
|
28
52
|
/** Your TenantScale API key (tk_xxx) */
|
|
@@ -70,6 +94,10 @@ export interface ImpersonationSession {
|
|
|
70
94
|
expiresAt: string;
|
|
71
95
|
redirectUrl: string;
|
|
72
96
|
}
|
|
97
|
+
/** Internal context passed between TenantScale middleware methods */
|
|
98
|
+
export interface TenantScaleContext {
|
|
99
|
+
apiKey: string;
|
|
100
|
+
}
|
|
73
101
|
export declare class TenantScaleError extends Error {
|
|
74
102
|
code: string;
|
|
75
103
|
status: number;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,0DAA0D;AAC1D,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,CAAA;AAE5D,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,0DAA0D;AAC1D,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;IACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,CAAA;AAE5D,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAA;IAChB,oEAAoE;IACpE,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC3F;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAA;CAAE,CAAA;AAE3D,kDAAkD;AAClD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,gCAAgC;AAChC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;CACpB;AAMD,qEAAqE;AACrE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IAGhC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;gBAFrB,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAY;CAK9B;AAED,qBAAa,cAAe,SAAQ,gBAAgB;gBACtC,OAAO,EAAE,MAAM;CAQ5B;AAED,qBAAa,iBAAkB,SAAQ,gBAAgB;gBACzC,OAAO,SAA+B;CAInD"}
|
package/dist/types.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
// ──────────────────────────────────────────────────────
|
|
2
2
|
// Tenant Types — the domain model for the SDK
|
|
3
3
|
// ──────────────────────────────────────────────────────
|
|
4
|
-
// ──────────────────────────────────────────────────────
|
|
5
|
-
// Error types
|
|
6
|
-
// ──────────────────────────────────────────────────────
|
|
7
4
|
export class TenantScaleError extends Error {
|
|
8
5
|
code;
|
|
9
6
|
status;
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,8CAA8C;AAC9C,yDAAyD;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,8CAA8C;AAC9C,yDAAyD;AAwGzD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAGhC;IACA;IAHT,YACE,OAAe,EACR,IAAY,EACZ,SAAiB,GAAG;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAA;QAHP,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAAc;QAG3B,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAChC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD,YAAY,OAAe;QACzB,KAAK,CACH,uBAAuB,OAAO,6CAA6C,EAC3E,oBAAoB,EACpB,GAAG,CACJ,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACrD,YAAY,OAAO,GAAG,4BAA4B;QAChD,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;QACnC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IACjC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,63 +1,72 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@tenantscale/sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Multi-tenant middleware SDK for B2B SaaS",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"types": "./dist/index.d.ts",
|
|
8
|
-
"exports": {
|
|
9
|
-
".": {
|
|
10
|
-
"import": "./dist/index.js",
|
|
11
|
-
"types": "./dist/index.d.ts"
|
|
12
|
-
},
|
|
13
|
-
"./middleware": {
|
|
14
|
-
"import": "./dist/middleware/index.js",
|
|
15
|
-
"types": "./dist/middleware/index.d.ts"
|
|
16
|
-
},
|
|
17
|
-
"./react": {
|
|
18
|
-
"import": "./dist/react/index.js",
|
|
19
|
-
"types": "./dist/react/index.d.ts"
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"@
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
}
|
|
63
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@tenantscale/sdk",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Multi-tenant middleware SDK for B2B SaaS — tenant isolation, audit logging, admin tools",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./middleware": {
|
|
14
|
+
"import": "./dist/middleware/index.js",
|
|
15
|
+
"types": "./dist/middleware/index.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./react": {
|
|
18
|
+
"import": "./dist/react/index.js",
|
|
19
|
+
"types": "./dist/react/index.d.ts"
|
|
20
|
+
},
|
|
21
|
+
"./testing": {
|
|
22
|
+
"import": "./dist/testing/index.js",
|
|
23
|
+
"types": "./dist/testing/index.d.ts"
|
|
24
|
+
},
|
|
25
|
+
"./user": {
|
|
26
|
+
"import": "./dist/middleware/user-auth.js",
|
|
27
|
+
"types": "./dist/middleware/user-auth.d.ts"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist"
|
|
32
|
+
],
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"superjson": "^2.2.0"
|
|
35
|
+
},
|
|
36
|
+
"peerDependencies": {
|
|
37
|
+
"express": "^5.0.0",
|
|
38
|
+
"hono": "^4.6.0",
|
|
39
|
+
"next": "^15.0.0"
|
|
40
|
+
},
|
|
41
|
+
"peerDependenciesMeta": {
|
|
42
|
+
"hono": {
|
|
43
|
+
"optional": true
|
|
44
|
+
},
|
|
45
|
+
"next": {
|
|
46
|
+
"optional": true
|
|
47
|
+
},
|
|
48
|
+
"express": {
|
|
49
|
+
"optional": true
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@supabase/supabase-js": "^2.49.0",
|
|
54
|
+
"@types/express": "^5.0.0",
|
|
55
|
+
"@types/react": "^19.0.0",
|
|
56
|
+
"@vitest/coverage-v8": "^3.2.6",
|
|
57
|
+
"hono": "^4.6.0",
|
|
58
|
+
"next": "^15.0.0",
|
|
59
|
+
"react": "^19.0.0",
|
|
60
|
+
"typescript": "^5.7.0",
|
|
61
|
+
"vitest": "^3.0.0"
|
|
62
|
+
},
|
|
63
|
+
"publishConfig": {
|
|
64
|
+
"access": "public"
|
|
65
|
+
},
|
|
66
|
+
"scripts": {
|
|
67
|
+
"build": "tsc",
|
|
68
|
+
"dev": "tsc --watch",
|
|
69
|
+
"test": "vitest run",
|
|
70
|
+
"lint": "eslint src/"
|
|
71
|
+
}
|
|
72
|
+
}
|