@stratum-hq/core 0.3.1 → 1.1.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.
Files changed (57) hide show
  1. package/dist/constants.d.ts +0 -1
  2. package/dist/constants.d.ts.map +1 -1
  3. package/dist/constants.js +1 -2
  4. package/dist/constants.js.map +1 -1
  5. package/dist/index.d.ts +8 -6
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +14 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/types/audit.d.ts +44 -0
  10. package/dist/types/audit.d.ts.map +1 -1
  11. package/dist/types/audit.js +22 -1
  12. package/dist/types/audit.js.map +1 -1
  13. package/dist/types/tenant.d.ts +10 -4
  14. package/dist/types/tenant.d.ts.map +1 -1
  15. package/dist/types/tenant.js +1 -0
  16. package/dist/types/tenant.js.map +1 -1
  17. package/dist/types/usage.d.ts +91 -0
  18. package/dist/types/usage.d.ts.map +1 -0
  19. package/dist/types/usage.js +46 -0
  20. package/dist/types/usage.js.map +1 -0
  21. package/dist/types/webhook.d.ts +37 -6
  22. package/dist/types/webhook.d.ts.map +1 -1
  23. package/dist/types/webhook.js +4 -0
  24. package/dist/types/webhook.js.map +1 -1
  25. package/dist/utils/errors.d.ts +26 -1
  26. package/dist/utils/errors.d.ts.map +1 -1
  27. package/dist/utils/errors.js +38 -1
  28. package/dist/utils/errors.js.map +1 -1
  29. package/dist/utils/scopes.d.ts +12 -0
  30. package/dist/utils/scopes.d.ts.map +1 -0
  31. package/dist/utils/scopes.js +33 -0
  32. package/dist/utils/scopes.js.map +1 -0
  33. package/package.json +10 -2
  34. package/dist/__tests__/ancestry.test.d.ts +0 -2
  35. package/dist/__tests__/ancestry.test.d.ts.map +0 -1
  36. package/dist/__tests__/ancestry.test.js +0 -132
  37. package/dist/__tests__/ancestry.test.js.map +0 -1
  38. package/dist/__tests__/config-types.test.d.ts +0 -2
  39. package/dist/__tests__/config-types.test.d.ts.map +0 -1
  40. package/dist/__tests__/config-types.test.js +0 -143
  41. package/dist/__tests__/config-types.test.js.map +0 -1
  42. package/dist/__tests__/errors.test.d.ts +0 -2
  43. package/dist/__tests__/errors.test.d.ts.map +0 -1
  44. package/dist/__tests__/errors.test.js +0 -113
  45. package/dist/__tests__/errors.test.js.map +0 -1
  46. package/dist/__tests__/isolation.test.d.ts +0 -2
  47. package/dist/__tests__/isolation.test.d.ts.map +0 -1
  48. package/dist/__tests__/isolation.test.js +0 -34
  49. package/dist/__tests__/isolation.test.js.map +0 -1
  50. package/dist/__tests__/validation.test.d.ts +0 -2
  51. package/dist/__tests__/validation.test.d.ts.map +0 -1
  52. package/dist/__tests__/validation.test.js +0 -122
  53. package/dist/__tests__/validation.test.js.map +0 -1
  54. package/dist/__tests__/webhook.test.d.ts +0 -2
  55. package/dist/__tests__/webhook.test.d.ts.map +0 -1
  56. package/dist/__tests__/webhook.test.js +0 -165
  57. package/dist/__tests__/webhook.test.js.map +0 -1
@@ -7,6 +7,10 @@ exports.TenantEvent = {
7
7
  TENANT_UPDATED: "tenant.updated",
8
8
  TENANT_DELETED: "tenant.deleted",
9
9
  TENANT_MOVED: "tenant.moved",
10
+ TENANT_SUSPENDED: "tenant.suspended",
11
+ TENANT_RESUMED: "tenant.resumed",
12
+ TENANT_ARCHIVED: "tenant.archived",
13
+ TENANT_PURGED: "tenant.purged",
10
14
  CONFIG_UPDATED: "config.updated",
11
15
  CONFIG_DELETED: "config.deleted",
12
16
  PERMISSION_CREATED: "permission.created",
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/types/webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/types/webhook.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export declare enum ErrorCode {
7
7
  TENANT_HAS_CHILDREN = "TENANT_HAS_CHILDREN",
8
8
  TENANT_CYCLE_DETECTED = "TENANT_CYCLE_DETECTED",
9
9
  TENANT_ARCHIVED = "TENANT_ARCHIVED",
10
+ TENANT_SUSPENDED = "TENANT_SUSPENDED",
11
+ TENANT_INVALID_STATE = "TENANT_INVALID_STATE",
10
12
  TENANT_CONTEXT_NOT_FOUND = "TENANT_CONTEXT_NOT_FOUND",
11
13
  ISOLATION_VIOLATION = "ISOLATION_VIOLATION",
12
14
  ISOLATION_STRATEGY_UNSUPPORTED = "ISOLATION_STRATEGY_UNSUPPORTED",
@@ -19,7 +21,8 @@ export declare enum ErrorCode {
19
21
  UNAUTHORIZED = "UNAUTHORIZED",
20
22
  FORBIDDEN = "FORBIDDEN",
21
23
  WEBHOOK_NOT_FOUND = "WEBHOOK_NOT_FOUND",
22
- WEBHOOK_DELIVERY_FAILED = "WEBHOOK_DELIVERY_FAILED"
24
+ WEBHOOK_DELIVERY_FAILED = "WEBHOOK_DELIVERY_FAILED",
25
+ WEBHOOK_URL_INVALID = "WEBHOOK_URL_INVALID"
23
26
  }
24
27
  export declare class StratumError extends Error {
25
28
  readonly code: ErrorCode;
@@ -49,6 +52,18 @@ export declare class TenantCycleDetectedError extends StratumError {
49
52
  export declare class TenantArchivedError extends StratumError {
50
53
  constructor(tenantId: string);
51
54
  }
55
+ export declare class TenantSuspendedError extends StratumError {
56
+ constructor(tenantId: string);
57
+ }
58
+ /**
59
+ * Raised when a lifecycle transition is not allowed from a tenant's current
60
+ * state, for example suspending a tenant that is not active or resuming one
61
+ * that is already active. The state machine is strict rather than idempotent so
62
+ * callers see an explicit rejection instead of a silent no-op.
63
+ */
64
+ export declare class InvalidTenantStateError extends StratumError {
65
+ constructor(tenantId: string, from: string, operation: string, allowedFrom: string[]);
66
+ }
52
67
  export declare class TenantContextNotFoundError extends StratumError {
53
68
  constructor();
54
69
  }
@@ -88,6 +103,16 @@ export declare class WebhookNotFoundError extends StratumError {
88
103
  export declare class WebhookDeliveryError extends StratumError {
89
104
  constructor(webhookId: string, message: string);
90
105
  }
106
+ /**
107
+ * Raised when a webhook URL fails registration/delivery-time validation:
108
+ * unparseable, a non-http(s) scheme, or a target in a private/reserved/blocked
109
+ * range (SSRF protection). Typed so a consumer can turn a rejected URL into a
110
+ * 400 with `instanceof WebhookUrlValidationError` instead of matching the
111
+ * human-readable message.
112
+ */
113
+ export declare class WebhookUrlValidationError extends StratumError {
114
+ constructor(message: string);
115
+ }
91
116
  export declare class AbacPolicyNotFoundError extends StratumError {
92
117
  constructor(policyId: string);
93
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,qBAAqB,0BAA0B;IAC/C,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,mBAAmB,wBAAwB;IAC3C,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IACnC,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,8BAA8B,mCAAmC;IACjE,iBAAiB,sBAAsB;IACvC,oBAAoB,yBAAyB;IAC7C,4BAA4B,iCAAiC;IAC7D,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,iBAAiB,sBAAsB;IACvC,uBAAuB,4BAA4B;CACpD;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,SAAgB,IAAI,EAAE,SAAS,CAAC;IAChC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGhD,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAY,EACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IASnC,MAAM;;;;;;;CASP;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBACvC,QAAQ,EAAE,MAAM;CAQ7B;AAED,qBAAa,wBAAyB,SAAQ,YAAY;gBAC5C,IAAI,EAAE,MAAM;CAQzB;AAED,qBAAa,sBAAuB,SAAQ,YAAY;gBAC1C,QAAQ,EAAE,MAAM;CAQ7B;AAED,qBAAa,wBAAyB,SAAQ,YAAY;gBAC5C,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAQlD;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBACvC,QAAQ,EAAE,MAAM;CAQ7B;AAED,qBAAa,0BAA2B,SAAQ,YAAY;;CAS3D;AAED,qBAAa,uBAAwB,SAAQ,YAAY;gBAC3C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,iCAAkC,SAAQ,YAAY;gBACrD,QAAQ,EAAE,MAAM;CAQ7B;AAED,qBAAa,qBAAsB,SAAQ,YAAY;gBACzC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CAShD;AAED,qBAAa,uBAAwB,SAAQ,YAAY;gBAC3C,QAAQ,EAAE,MAAM;CAQ7B;AAED,qBAAa,+BAAgC,SAAQ,YAAY;gBACnD,GAAG,EAAE,MAAM;CAQxB;AAED,qBAAa,iBAAkB,SAAQ,YAAY;gBACrC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CAShD;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBACvC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAQ1C;AAED,qBAAa,eAAgB,SAAQ,YAAY;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED,qBAAa,iBAAkB,SAAQ,YAAY;gBACrC,OAAO,GAAE,MAAkC;CAIxD;AAED,qBAAa,cAAe,SAAQ,YAAY;gBAClC,OAAO,GAAE,MAAwB;CAI9C;AAED,qBAAa,oBAAqB,SAAQ,YAAY;gBACxC,SAAS,EAAE,MAAM;CAI9B;AAED,qBAAa,oBAAqB,SAAQ,YAAY;gBACxC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAQ/C;AAED,qBAAa,uBAAwB,SAAQ,YAAY;gBAC3C,QAAQ,EAAE,MAAM;CAQ7B;AAED,qBAAa,wBAAyB,SAAQ,YAAY;gBAC5C,QAAQ,EAAE,MAAM;CAQ7B;AAED,qBAAa,qBAAsB,SAAQ,YAAY;gBACzC,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CAQvD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbacPolicyLockedError = exports.InvalidAbacOperatorError = exports.AbacPolicyNotFoundError = exports.WebhookDeliveryError = exports.WebhookNotFoundError = exports.ForbiddenError = exports.UnauthorizedError = exports.ValidationError = exports.ConfigNotFoundError = exports.ConfigLockedError = exports.PermissionRevocationDeniedError = exports.PermissionNotFoundError = exports.PermissionLockedError = exports.IsolationStrategyUnsupportedError = exports.IsolationViolationError = exports.TenantContextNotFoundError = exports.TenantArchivedError = exports.TenantCycleDetectedError = exports.TenantHasChildrenError = exports.TenantAlreadyExistsError = exports.TenantNotFoundError = exports.StratumError = exports.ErrorCode = void 0;
3
+ exports.AbacPolicyLockedError = exports.InvalidAbacOperatorError = exports.AbacPolicyNotFoundError = exports.WebhookUrlValidationError = exports.WebhookDeliveryError = exports.WebhookNotFoundError = exports.ForbiddenError = exports.UnauthorizedError = exports.ValidationError = exports.ConfigNotFoundError = exports.ConfigLockedError = exports.PermissionRevocationDeniedError = exports.PermissionNotFoundError = exports.PermissionLockedError = exports.IsolationStrategyUnsupportedError = exports.IsolationViolationError = exports.TenantContextNotFoundError = exports.InvalidTenantStateError = exports.TenantSuspendedError = exports.TenantArchivedError = exports.TenantCycleDetectedError = exports.TenantHasChildrenError = exports.TenantAlreadyExistsError = exports.TenantNotFoundError = exports.StratumError = exports.ErrorCode = void 0;
4
4
  var ErrorCode;
5
5
  (function (ErrorCode) {
6
6
  ErrorCode["ABAC_POLICY_NOT_FOUND"] = "ABAC_POLICY_NOT_FOUND";
@@ -11,6 +11,8 @@ var ErrorCode;
11
11
  ErrorCode["TENANT_HAS_CHILDREN"] = "TENANT_HAS_CHILDREN";
12
12
  ErrorCode["TENANT_CYCLE_DETECTED"] = "TENANT_CYCLE_DETECTED";
13
13
  ErrorCode["TENANT_ARCHIVED"] = "TENANT_ARCHIVED";
14
+ ErrorCode["TENANT_SUSPENDED"] = "TENANT_SUSPENDED";
15
+ ErrorCode["TENANT_INVALID_STATE"] = "TENANT_INVALID_STATE";
14
16
  ErrorCode["TENANT_CONTEXT_NOT_FOUND"] = "TENANT_CONTEXT_NOT_FOUND";
15
17
  ErrorCode["ISOLATION_VIOLATION"] = "ISOLATION_VIOLATION";
16
18
  ErrorCode["ISOLATION_STRATEGY_UNSUPPORTED"] = "ISOLATION_STRATEGY_UNSUPPORTED";
@@ -24,6 +26,7 @@ var ErrorCode;
24
26
  ErrorCode["FORBIDDEN"] = "FORBIDDEN";
25
27
  ErrorCode["WEBHOOK_NOT_FOUND"] = "WEBHOOK_NOT_FOUND";
26
28
  ErrorCode["WEBHOOK_DELIVERY_FAILED"] = "WEBHOOK_DELIVERY_FAILED";
29
+ ErrorCode["WEBHOOK_URL_INVALID"] = "WEBHOOK_URL_INVALID";
27
30
  })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
28
31
  class StratumError extends Error {
29
32
  code;
@@ -82,6 +85,26 @@ class TenantArchivedError extends StratumError {
82
85
  }
83
86
  }
84
87
  exports.TenantArchivedError = TenantArchivedError;
88
+ class TenantSuspendedError extends StratumError {
89
+ constructor(tenantId) {
90
+ super(ErrorCode.TENANT_SUSPENDED, `Tenant ${tenantId} is suspended`, 403, { tenant_id: tenantId });
91
+ this.name = "TenantSuspendedError";
92
+ }
93
+ }
94
+ exports.TenantSuspendedError = TenantSuspendedError;
95
+ /**
96
+ * Raised when a lifecycle transition is not allowed from a tenant's current
97
+ * state, for example suspending a tenant that is not active or resuming one
98
+ * that is already active. The state machine is strict rather than idempotent so
99
+ * callers see an explicit rejection instead of a silent no-op.
100
+ */
101
+ class InvalidTenantStateError extends StratumError {
102
+ constructor(tenantId, from, operation, allowedFrom) {
103
+ super(ErrorCode.TENANT_INVALID_STATE, `Cannot ${operation} tenant ${tenantId}: current state is '${from}', expected one of [${allowedFrom.join(", ")}]`, 409, { tenant_id: tenantId, from, operation, allowed_from: allowedFrom });
104
+ this.name = "InvalidTenantStateError";
105
+ }
106
+ }
107
+ exports.InvalidTenantStateError = InvalidTenantStateError;
85
108
  class TenantContextNotFoundError extends StratumError {
86
109
  constructor() {
87
110
  super(ErrorCode.TENANT_CONTEXT_NOT_FOUND, "getTenantContext() called outside of a request context. Ensure Stratum middleware is installed and the call is within a request handler.", 500);
@@ -173,6 +196,20 @@ class WebhookDeliveryError extends StratumError {
173
196
  }
174
197
  }
175
198
  exports.WebhookDeliveryError = WebhookDeliveryError;
199
+ /**
200
+ * Raised when a webhook URL fails registration/delivery-time validation:
201
+ * unparseable, a non-http(s) scheme, or a target in a private/reserved/blocked
202
+ * range (SSRF protection). Typed so a consumer can turn a rejected URL into a
203
+ * 400 with `instanceof WebhookUrlValidationError` instead of matching the
204
+ * human-readable message.
205
+ */
206
+ class WebhookUrlValidationError extends StratumError {
207
+ constructor(message) {
208
+ super(ErrorCode.WEBHOOK_URL_INVALID, message, 400);
209
+ this.name = "WebhookUrlValidationError";
210
+ }
211
+ }
212
+ exports.WebhookUrlValidationError = WebhookUrlValidationError;
176
213
  class AbacPolicyNotFoundError extends StratumError {
177
214
  constructor(policyId) {
178
215
  super(ErrorCode.ABAC_POLICY_NOT_FOUND, `ABAC policy not found: ${policyId}`, 404);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type ApiKeyScope } from "../types/api-key.js";
2
+ /**
3
+ * True when `granted` satisfies `required` under the read < write < admin
4
+ * hierarchy: the key holds at least one scope whose rank is >= the required
5
+ * scope's rank. This is the single scope-check primitive; use it everywhere a
6
+ * scope requirement is evaluated rather than a flat `includes`.
7
+ *
8
+ * Fails closed: an unrecognized `required` scope (rank 0) is satisfied by
9
+ * nothing, and unrecognized granted scopes contribute no rank.
10
+ */
11
+ export declare function scopeSatisfies(granted: readonly string[], required: ApiKeyScope): boolean;
12
+ //# sourceMappingURL=scopes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/utils/scopes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAkBvD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,QAAQ,EAAE,WAAW,GACpB,OAAO,CAIT"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scopeSatisfies = scopeSatisfies;
4
+ /**
5
+ * API-key scopes form a hierarchy: read < write < admin. A granted scope
6
+ * satisfies any required scope of equal-or-lower rank, so `admin` implies
7
+ * `write` implies `read`.
8
+ */
9
+ const SCOPE_RANK = {
10
+ read: 1,
11
+ write: 2,
12
+ admin: 3,
13
+ };
14
+ /** Rank of a scope string, or 0 for any unrecognized scope. */
15
+ function rankOf(scope) {
16
+ return SCOPE_RANK[scope] ?? 0;
17
+ }
18
+ /**
19
+ * True when `granted` satisfies `required` under the read < write < admin
20
+ * hierarchy: the key holds at least one scope whose rank is >= the required
21
+ * scope's rank. This is the single scope-check primitive; use it everywhere a
22
+ * scope requirement is evaluated rather than a flat `includes`.
23
+ *
24
+ * Fails closed: an unrecognized `required` scope (rank 0) is satisfied by
25
+ * nothing, and unrecognized granted scopes contribute no rank.
26
+ */
27
+ function scopeSatisfies(granted, required) {
28
+ const need = rankOf(required);
29
+ if (need === 0)
30
+ return false;
31
+ return granted.some((scope) => rankOf(scope) >= need);
32
+ }
33
+ //# sourceMappingURL=scopes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/utils/scopes.ts"],"names":[],"mappings":";;AA2BA,wCAOC;AAhCD;;;;GAIG;AACH,MAAM,UAAU,GAAgC;IAC9C,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,+DAA+D;AAC/D,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,UAAU,CAAC,KAAoB,CAAC,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,cAAc,CAC5B,OAA0B,EAC1B,QAAqB;IAErB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;AACxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stratum-hq/core",
3
- "version": "0.3.1",
3
+ "version": "1.1.0",
4
4
  "description": "Stratum shared types, utilities, and validation schemas",
5
5
  "keywords": [
6
6
  "multi-tenancy",
@@ -28,7 +28,8 @@
28
28
  "scripts": {
29
29
  "build": "tsc",
30
30
  "test": "vitest run",
31
- "lint": "tsc --noEmit",
31
+ "typecheck": "tsc --noEmit",
32
+ "lint": "eslint .",
32
33
  "clean": "rm -rf dist"
33
34
  },
34
35
  "publishConfig": {
@@ -42,6 +43,13 @@
42
43
  "typescript": "^5.4.0",
43
44
  "vitest": "^1.6.0"
44
45
  },
46
+ "license": "MIT",
47
+ "author": "Christian Crank",
48
+ "homepage": "https://github.com/stratum-hq/Stratum/tree/main/packages/core#readme",
49
+ "bugs": "https://github.com/stratum-hq/Stratum/issues",
50
+ "engines": {
51
+ "node": ">=20.0.0"
52
+ },
45
53
  "repository": {
46
54
  "type": "git",
47
55
  "url": "https://github.com/stratum-hq/Stratum.git",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=ancestry.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ancestry.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/ancestry.test.ts"],"names":[],"mappings":""}
@@ -1,132 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const ancestry_js_1 = require("../utils/ancestry.js");
5
- (0, vitest_1.describe)("ancestry utilities", () => {
6
- const rootId = "aaaa-bbbb-cccc-dddd";
7
- const childId = "eeee-ffff-gggg-hhhh";
8
- const grandchildId = "iiii-jjjj-kkkk-llll";
9
- // Paths use leading slash: "/id", "/id/id", "/id/id/id"
10
- const rootPath = `/${rootId}`;
11
- const childPath = `/${rootId}/${childId}`;
12
- const grandchildPath = `/${rootId}/${childId}/${grandchildId}`;
13
- (0, vitest_1.describe)("parseAncestryPath", () => {
14
- (0, vitest_1.it)("parses root path", () => {
15
- (0, vitest_1.expect)((0, ancestry_js_1.parseAncestryPath)(rootPath)).toEqual([rootId]);
16
- });
17
- (0, vitest_1.it)("parses nested path", () => {
18
- (0, vitest_1.expect)((0, ancestry_js_1.parseAncestryPath)(grandchildPath)).toEqual([
19
- rootId,
20
- childId,
21
- grandchildId,
22
- ]);
23
- });
24
- (0, vitest_1.it)("parses empty / root as empty array", () => {
25
- (0, vitest_1.expect)((0, ancestry_js_1.parseAncestryPath)("/")).toEqual([]);
26
- });
27
- });
28
- (0, vitest_1.describe)("buildAncestryPath", () => {
29
- (0, vitest_1.it)("builds path from array", () => {
30
- (0, vitest_1.expect)((0, ancestry_js_1.buildAncestryPath)([rootId, childId])).toBe(childPath);
31
- });
32
- (0, vitest_1.it)("builds root path from single id", () => {
33
- (0, vitest_1.expect)((0, ancestry_js_1.buildAncestryPath)([rootId])).toBe(rootPath);
34
- });
35
- (0, vitest_1.it)("builds / from empty array", () => {
36
- (0, vitest_1.expect)((0, ancestry_js_1.buildAncestryPath)([])).toBe("/");
37
- });
38
- });
39
- (0, vitest_1.describe)("getDepth", () => {
40
- (0, vitest_1.it)("root is depth 1 (one segment)", () => {
41
- (0, vitest_1.expect)((0, ancestry_js_1.getDepth)(rootPath)).toBe(1);
42
- });
43
- (0, vitest_1.it)("child is depth 2", () => {
44
- (0, vitest_1.expect)((0, ancestry_js_1.getDepth)(childPath)).toBe(2);
45
- });
46
- (0, vitest_1.it)("grandchild is depth 3", () => {
47
- (0, vitest_1.expect)((0, ancestry_js_1.getDepth)(grandchildPath)).toBe(3);
48
- });
49
- (0, vitest_1.it)("bare / is depth 0", () => {
50
- (0, vitest_1.expect)((0, ancestry_js_1.getDepth)("/")).toBe(0);
51
- });
52
- });
53
- (0, vitest_1.describe)("isAncestorOf", () => {
54
- (0, vitest_1.it)("root is ancestor of child", () => {
55
- (0, vitest_1.expect)((0, ancestry_js_1.isAncestorOf)(rootPath, childPath)).toBe(true);
56
- });
57
- (0, vitest_1.it)("root is ancestor of grandchild", () => {
58
- (0, vitest_1.expect)((0, ancestry_js_1.isAncestorOf)(rootPath, grandchildPath)).toBe(true);
59
- });
60
- (0, vitest_1.it)("child is ancestor of grandchild", () => {
61
- (0, vitest_1.expect)((0, ancestry_js_1.isAncestorOf)(childPath, grandchildPath)).toBe(true);
62
- });
63
- (0, vitest_1.it)("child is not ancestor of root", () => {
64
- (0, vitest_1.expect)((0, ancestry_js_1.isAncestorOf)(childPath, rootPath)).toBe(false);
65
- });
66
- (0, vitest_1.it)("node is not ancestor of itself", () => {
67
- (0, vitest_1.expect)((0, ancestry_js_1.isAncestorOf)(childPath, childPath)).toBe(false);
68
- });
69
- });
70
- (0, vitest_1.describe)("isDescendantOf", () => {
71
- (0, vitest_1.it)("child is descendant of root", () => {
72
- (0, vitest_1.expect)((0, ancestry_js_1.isDescendantOf)(childPath, rootPath)).toBe(true);
73
- });
74
- (0, vitest_1.it)("grandchild is descendant of root", () => {
75
- (0, vitest_1.expect)((0, ancestry_js_1.isDescendantOf)(grandchildPath, rootPath)).toBe(true);
76
- });
77
- (0, vitest_1.it)("root is not descendant of child", () => {
78
- (0, vitest_1.expect)((0, ancestry_js_1.isDescendantOf)(rootPath, childPath)).toBe(false);
79
- });
80
- (0, vitest_1.it)("node is not descendant of itself", () => {
81
- (0, vitest_1.expect)((0, ancestry_js_1.isDescendantOf)(childPath, childPath)).toBe(false);
82
- });
83
- });
84
- (0, vitest_1.describe)("getParentPath", () => {
85
- (0, vitest_1.it)("root node parent is /", () => {
86
- (0, vitest_1.expect)((0, ancestry_js_1.getParentPath)(rootPath)).toBe("/");
87
- });
88
- (0, vitest_1.it)("bare / has no parent (null)", () => {
89
- (0, vitest_1.expect)((0, ancestry_js_1.getParentPath)("/")).toBeNull();
90
- });
91
- (0, vitest_1.it)("child parent is root path", () => {
92
- (0, vitest_1.expect)((0, ancestry_js_1.getParentPath)(childPath)).toBe(rootPath);
93
- });
94
- (0, vitest_1.it)("grandchild parent is child path", () => {
95
- (0, vitest_1.expect)((0, ancestry_js_1.getParentPath)(grandchildPath)).toBe(childPath);
96
- });
97
- });
98
- (0, vitest_1.describe)("appendToPath", () => {
99
- (0, vitest_1.it)("appends child id to root path", () => {
100
- (0, vitest_1.expect)((0, ancestry_js_1.appendToPath)(rootPath, childId)).toBe(childPath);
101
- });
102
- (0, vitest_1.it)("appends grandchild id to child path", () => {
103
- (0, vitest_1.expect)((0, ancestry_js_1.appendToPath)(childPath, grandchildId)).toBe(grandchildPath);
104
- });
105
- });
106
- // Ancestry paths as stored by tenant-service EXCLUDE the tenant's own id:
107
- // a root tenant has "/", its child has "/rootId", a grandchild has
108
- // "/rootId/childId" (see createTenant: appendToPath(parent.path, parent.id)).
109
- (0, vitest_1.describe)("getAncestorIds", () => {
110
- (0, vitest_1.it)("root tenant (path '/') has no ancestors", () => {
111
- (0, vitest_1.expect)((0, ancestry_js_1.getAncestorIds)("/")).toEqual([]);
112
- });
113
- (0, vitest_1.it)("child of root (path '/rootId') has ancestors [rootId]", () => {
114
- (0, vitest_1.expect)((0, ancestry_js_1.getAncestorIds)(`/${rootId}`)).toEqual([rootId]);
115
- });
116
- (0, vitest_1.it)("grandchild (path '/rootId/childId') has ancestors [rootId, childId]", () => {
117
- (0, vitest_1.expect)((0, ancestry_js_1.getAncestorIds)(`/${rootId}/${childId}`)).toEqual([rootId, childId]);
118
- });
119
- });
120
- (0, vitest_1.describe)("getSelfId", () => {
121
- (0, vitest_1.it)("returns the direct parent id for a child of root", () => {
122
- (0, vitest_1.expect)((0, ancestry_js_1.getSelfId)(`/${rootId}`)).toBe(rootId);
123
- });
124
- (0, vitest_1.it)("returns the direct parent id for a grandchild", () => {
125
- (0, vitest_1.expect)((0, ancestry_js_1.getSelfId)(`/${rootId}/${childId}`)).toBe(childId);
126
- });
127
- (0, vitest_1.it)("returns null for a root tenant path", () => {
128
- (0, vitest_1.expect)((0, ancestry_js_1.getSelfId)("/")).toBeNull();
129
- });
130
- });
131
- });
132
- //# sourceMappingURL=ancestry.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ancestry.test.js","sourceRoot":"","sources":["../../src/__tests__/ancestry.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=config-types.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-types.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/config-types.test.ts"],"names":[],"mappings":""}
@@ -1,143 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- (0, vitest_1.describe)("BatchSetConfigResult shape validation", () => {
5
- (0, vitest_1.it)("has results array, succeeded count, and failed count", () => {
6
- const result = {
7
- results: [],
8
- succeeded: 0,
9
- failed: 0,
10
- };
11
- (0, vitest_1.expect)(result.results).toBeInstanceOf(Array);
12
- (0, vitest_1.expect)(typeof result.succeeded).toBe("number");
13
- (0, vitest_1.expect)(typeof result.failed).toBe("number");
14
- });
15
- (0, vitest_1.it)("results array contains BatchSetConfigKeyResult items", () => {
16
- const okResult = {
17
- key: "my_key",
18
- status: "ok",
19
- entry: {
20
- id: "550e8400-e29b-41d4-a716-446655440000",
21
- tenant_id: "660e8400-e29b-41d4-a716-446655440000",
22
- key: "my_key",
23
- value: "some_value",
24
- inherited: false,
25
- source_tenant_id: "660e8400-e29b-41d4-a716-446655440000",
26
- locked: false,
27
- sensitive: false,
28
- created_at: "2024-01-01T00:00:00.000Z",
29
- updated_at: "2024-01-01T00:00:00.000Z",
30
- },
31
- };
32
- const errResult = {
33
- key: "locked_key",
34
- status: "error",
35
- error: "Config 'locked_key' is locked by tenant xyz",
36
- };
37
- const batchResult = {
38
- results: [okResult, errResult],
39
- succeeded: 1,
40
- failed: 1,
41
- };
42
- (0, vitest_1.expect)(batchResult.results).toHaveLength(2);
43
- (0, vitest_1.expect)(batchResult.succeeded).toBe(1);
44
- (0, vitest_1.expect)(batchResult.failed).toBe(1);
45
- });
46
- (0, vitest_1.it)("succeeded + failed equals results length", () => {
47
- const results = [
48
- { key: "a", status: "ok", entry: makeMinimalEntry("a") },
49
- { key: "b", status: "error", error: "locked" },
50
- { key: "c", status: "ok", entry: makeMinimalEntry("c") },
51
- ];
52
- const batch = {
53
- results,
54
- succeeded: 2,
55
- failed: 1,
56
- };
57
- (0, vitest_1.expect)(batch.succeeded + batch.failed).toBe(batch.results.length);
58
- });
59
- });
60
- (0, vitest_1.describe)("BatchSetConfigKeyResult with ok status", () => {
61
- (0, vitest_1.it)("has key, status ok, and an entry", () => {
62
- const result = {
63
- key: "feature_flag",
64
- status: "ok",
65
- entry: makeMinimalEntry("feature_flag"),
66
- };
67
- (0, vitest_1.expect)(result.key).toBe("feature_flag");
68
- (0, vitest_1.expect)(result.status).toBe("ok");
69
- (0, vitest_1.expect)(result.entry).toBeDefined();
70
- (0, vitest_1.expect)(result.entry.key).toBe("feature_flag");
71
- (0, vitest_1.expect)(result.error).toBeUndefined();
72
- });
73
- (0, vitest_1.it)("entry contains all required ConfigEntry fields", () => {
74
- const entry = makeMinimalEntry("test_key");
75
- const result = {
76
- key: "test_key",
77
- status: "ok",
78
- entry,
79
- };
80
- (0, vitest_1.expect)(result.entry.id).toBeDefined();
81
- (0, vitest_1.expect)(result.entry.tenant_id).toBeDefined();
82
- (0, vitest_1.expect)(result.entry.key).toBe("test_key");
83
- (0, vitest_1.expect)(result.entry.value).toBeDefined();
84
- (0, vitest_1.expect)(typeof result.entry.inherited).toBe("boolean");
85
- (0, vitest_1.expect)(result.entry.source_tenant_id).toBeDefined();
86
- (0, vitest_1.expect)(typeof result.entry.locked).toBe("boolean");
87
- (0, vitest_1.expect)(typeof result.entry.sensitive).toBe("boolean");
88
- (0, vitest_1.expect)(result.entry.created_at).toBeDefined();
89
- (0, vitest_1.expect)(result.entry.updated_at).toBeDefined();
90
- });
91
- });
92
- (0, vitest_1.describe)("BatchSetConfigKeyResult with error status", () => {
93
- (0, vitest_1.it)("has key, status error, and an error message", () => {
94
- const result = {
95
- key: "restricted_key",
96
- status: "error",
97
- error: "Config 'restricted_key' is locked by tenant parent-123 and cannot be overridden",
98
- };
99
- (0, vitest_1.expect)(result.key).toBe("restricted_key");
100
- (0, vitest_1.expect)(result.status).toBe("error");
101
- (0, vitest_1.expect)(result.error).toContain("locked");
102
- (0, vitest_1.expect)(result.entry).toBeUndefined();
103
- });
104
- (0, vitest_1.it)("error field is a descriptive string", () => {
105
- const result = {
106
- key: "my_key",
107
- status: "error",
108
- error: "Some meaningful error description",
109
- };
110
- (0, vitest_1.expect)(typeof result.error).toBe("string");
111
- (0, vitest_1.expect)(result.error.length).toBeGreaterThan(0);
112
- });
113
- (0, vitest_1.it)("status is strictly 'ok' or 'error'", () => {
114
- const ok = {
115
- key: "k",
116
- status: "ok",
117
- entry: makeMinimalEntry("k"),
118
- };
119
- const err = {
120
- key: "k",
121
- status: "error",
122
- error: "fail",
123
- };
124
- (0, vitest_1.expect)(["ok", "error"]).toContain(ok.status);
125
- (0, vitest_1.expect)(["ok", "error"]).toContain(err.status);
126
- });
127
- });
128
- // Helper to construct a minimal ConfigEntry
129
- function makeMinimalEntry(key) {
130
- return {
131
- id: "550e8400-e29b-41d4-a716-446655440000",
132
- tenant_id: "660e8400-e29b-41d4-a716-446655440000",
133
- key,
134
- value: "test_value",
135
- inherited: false,
136
- source_tenant_id: "660e8400-e29b-41d4-a716-446655440000",
137
- locked: false,
138
- sensitive: false,
139
- created_at: "2024-01-01T00:00:00.000Z",
140
- updated_at: "2024-01-01T00:00:00.000Z",
141
- };
142
- }
143
- //# sourceMappingURL=config-types.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-types.test.js","sourceRoot":"","sources":["../../src/__tests__/config-types.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=errors.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/errors.test.ts"],"names":[],"mappings":""}