@shivaedev/platform 0.4.1 → 0.4.3
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/CHANGELOG.md +20 -0
- package/README.md +4 -3
- package/dist/errors/taxonomy.d.ts +5 -0
- package/dist/errors/taxonomy.d.ts.map +1 -1
- package/dist/errors/taxonomy.js +2 -0
- package/dist/errors/taxonomy.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/errors.js.map +1 -1
- package/package.json +5 -5
- package/src/errors/taxonomy.ts +2 -0
- package/src/errors.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.3 - 2026-09-26
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- Pin the optional `better-auth` peer dependency to 1.6.30, the current 1.6
|
|
8
|
+
release, up from 1.6.25.
|
|
9
|
+
|
|
10
|
+
## 0.4.2 - 2026-09-26
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- `TooManyRequests` in `@shivaedev/platform/errors`, a rejection with a
|
|
15
|
+
`message` for a caller that exceeded a rate limit. Effect tRPC sends it as
|
|
16
|
+
`TOO_MANY_REQUESTS`, HTTP 429.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Require Effect tRPC 0.4.1, which maps `TooManyRequests` to HTTP 429 and
|
|
21
|
+
marks input-validation rejections with `invalidInput: true`.
|
|
22
|
+
|
|
3
23
|
## 0.4.1 - 2026-09-26
|
|
4
24
|
|
|
5
25
|
### Changed
|
package/README.md
CHANGED
|
@@ -80,9 +80,10 @@ fallback remains available.
|
|
|
80
80
|
|
|
81
81
|
`@shivaedev/platform/errors` exports browser-safe `Schema.TaggedError` classes:
|
|
82
82
|
`NotFound`, `Unauthorized`, `Forbidden`, `BadRequest` and `Conflict` (both with an
|
|
83
|
-
optional `field`), `PreconditionFailed` and `AuthUnavailable`.
|
|
84
|
-
RPC error schemas or effect-contract rejections.
|
|
85
|
-
`{ field, message }` from any field rejection so a
|
|
83
|
+
optional `field`), `PreconditionFailed`, `TooManyRequests` and `AuthUnavailable`.
|
|
84
|
+
Use them as native RPC error schemas or effect-contract rejections.
|
|
85
|
+
`rejectedField(error)` extracts `{ field, message }` from any field rejection so a
|
|
86
|
+
form can show it.
|
|
86
87
|
|
|
87
88
|
`@shivaedev/platform/rpc` declares the `RequestTracing`, `Authenticated` and
|
|
88
89
|
`MaybeAuthenticated` middleware and the `RequestId`, `Identity` and
|
|
@@ -31,6 +31,11 @@ declare const PreconditionFailed_base: Schema.Class<PreconditionFailed, Schema.T
|
|
|
31
31
|
}>, import("effect/Cause").YieldableError>;
|
|
32
32
|
export declare class PreconditionFailed extends PreconditionFailed_base {
|
|
33
33
|
}
|
|
34
|
+
declare const TooManyRequests_base: Schema.Class<TooManyRequests, Schema.TaggedStruct<"TooManyRequests", {
|
|
35
|
+
message: Schema.String;
|
|
36
|
+
}>, import("effect/Cause").YieldableError>;
|
|
37
|
+
export declare class TooManyRequests extends TooManyRequests_base {
|
|
38
|
+
}
|
|
34
39
|
declare const AuthUnavailable_base: Schema.Class<AuthUnavailable, Schema.TaggedStruct<"AuthUnavailable", {
|
|
35
40
|
message: Schema.String;
|
|
36
41
|
}>, import("effect/Cause").YieldableError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taxonomy.d.ts","sourceRoot":"","sources":["../../src/errors/taxonomy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;AAKhC,qBAAa,QAAS,SAAQ,aAAqD;CAAG;;;;AAEtF,qBAAa,YAAa,SAAQ,iBAA6D;CAAG;;;;AAElG,qBAAa,SAAU,SAAQ,cAAuD;CAAG;;;;;AAEzF,qBAAa,UAAW,SAAQ,eAAwD;CAAG;;;;;AAE3F,qBAAa,QAAS,SAAQ,aAAoD;CAAG;;;;AAErF,qBAAa,kBAAmB,SAAQ,uBAAyE;CAAG;;;;AAEpH,qBAAa,eAAgB,SAAQ,oBAAmE;CAAG"}
|
|
1
|
+
{"version":3,"file":"taxonomy.d.ts","sourceRoot":"","sources":["../../src/errors/taxonomy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;AAKhC,qBAAa,QAAS,SAAQ,aAAqD;CAAG;;;;AAEtF,qBAAa,YAAa,SAAQ,iBAA6D;CAAG;;;;AAElG,qBAAa,SAAU,SAAQ,cAAuD;CAAG;;;;;AAEzF,qBAAa,UAAW,SAAQ,eAAwD;CAAG;;;;;AAE3F,qBAAa,QAAS,SAAQ,aAAoD;CAAG;;;;AAErF,qBAAa,kBAAmB,SAAQ,uBAAyE;CAAG;;;;AAEpH,qBAAa,eAAgB,SAAQ,oBAAmE;CAAG;;;;AAE3G,qBAAa,eAAgB,SAAQ,oBAAmE;CAAG"}
|
package/dist/errors/taxonomy.js
CHANGED
|
@@ -13,6 +13,8 @@ export class Conflict extends Schema.TaggedError()("Conflict", perField) {
|
|
|
13
13
|
}
|
|
14
14
|
export class PreconditionFailed extends Schema.TaggedError()("PreconditionFailed", described) {
|
|
15
15
|
}
|
|
16
|
+
export class TooManyRequests extends Schema.TaggedError()("TooManyRequests", described) {
|
|
17
|
+
}
|
|
16
18
|
export class AuthUnavailable extends Schema.TaggedError()("AuthUnavailable", described) {
|
|
17
19
|
}
|
|
18
20
|
//# sourceMappingURL=taxonomy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taxonomy.js","sourceRoot":"","sources":["../../src/errors/taxonomy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAC7C,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AAEtF,MAAM,OAAO,QAAS,SAAQ,MAAM,CAAC,WAAW,EAAY,CAAC,UAAU,EAAE,SAAS,CAAC;CAAG;AAEtF,MAAM,OAAO,YAAa,SAAQ,MAAM,CAAC,WAAW,EAAgB,CAAC,cAAc,EAAE,SAAS,CAAC;CAAG;AAElG,MAAM,OAAO,SAAU,SAAQ,MAAM,CAAC,WAAW,EAAa,CAAC,WAAW,EAAE,SAAS,CAAC;CAAG;AAEzF,MAAM,OAAO,UAAW,SAAQ,MAAM,CAAC,WAAW,EAAc,CAAC,YAAY,EAAE,QAAQ,CAAC;CAAG;AAE3F,MAAM,OAAO,QAAS,SAAQ,MAAM,CAAC,WAAW,EAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;CAAG;AAErF,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAAC,oBAAoB,EAAE,SAAS,CAAC;CAAG;AAEpH,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,WAAW,EAAmB,CAAC,iBAAiB,EAAE,SAAS,CAAC;CAAG"}
|
|
1
|
+
{"version":3,"file":"taxonomy.js","sourceRoot":"","sources":["../../src/errors/taxonomy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAC7C,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AAEtF,MAAM,OAAO,QAAS,SAAQ,MAAM,CAAC,WAAW,EAAY,CAAC,UAAU,EAAE,SAAS,CAAC;CAAG;AAEtF,MAAM,OAAO,YAAa,SAAQ,MAAM,CAAC,WAAW,EAAgB,CAAC,cAAc,EAAE,SAAS,CAAC;CAAG;AAElG,MAAM,OAAO,SAAU,SAAQ,MAAM,CAAC,WAAW,EAAa,CAAC,WAAW,EAAE,SAAS,CAAC;CAAG;AAEzF,MAAM,OAAO,UAAW,SAAQ,MAAM,CAAC,WAAW,EAAc,CAAC,YAAY,EAAE,QAAQ,CAAC;CAAG;AAE3F,MAAM,OAAO,QAAS,SAAQ,MAAM,CAAC,WAAW,EAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;CAAG;AAErF,MAAM,OAAO,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAAC,oBAAoB,EAAE,SAAS,CAAC;CAAG;AAEpH,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,WAAW,EAAmB,CAAC,iBAAiB,EAAE,SAAS,CAAC;CAAG;AAE3G,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,WAAW,EAAmB,CAAC,iBAAiB,EAAE,SAAS,CAAC;CAAG"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { type RejectedField, rejectedField } from "./errors/rejected-field.ts";
|
|
2
|
-
export { AuthUnavailable, BadRequest, Conflict, Forbidden, NotFound, PreconditionFailed, Unauthorized } from "./errors/taxonomy.ts";
|
|
2
|
+
export { AuthUnavailable, BadRequest, Conflict, Forbidden, NotFound, PreconditionFailed, TooManyRequests, Unauthorized } from "./errors/taxonomy.ts";
|
|
3
3
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/errors.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { rejectedField } from "./errors/rejected-field.js";
|
|
2
|
-
export { AuthUnavailable, BadRequest, Conflict, Forbidden, NotFound, PreconditionFailed, Unauthorized } from "./errors/taxonomy.js";
|
|
2
|
+
export { AuthUnavailable, BadRequest, Conflict, Forbidden, NotFound, PreconditionFailed, TooManyRequests, Unauthorized } from "./errors/taxonomy.js";
|
|
3
3
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/platform",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Opinionated Effect application infrastructure for ShivaeDev services",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -75,10 +75,10 @@
|
|
|
75
75
|
"peerDependencies": {
|
|
76
76
|
"@effect/vitest": "4.0.0-rc.112",
|
|
77
77
|
"@trpc/server": "11.18.0",
|
|
78
|
-
"better-auth": "1.6.
|
|
78
|
+
"better-auth": "1.6.30",
|
|
79
79
|
"effect": "4.0.0-rc.112",
|
|
80
80
|
"@shivaedev/effect-prisma": "0.6.4",
|
|
81
|
-
"@shivaedev/effect-trpc": "0.4.
|
|
81
|
+
"@shivaedev/effect-trpc": "0.4.1"
|
|
82
82
|
},
|
|
83
83
|
"peerDependenciesMeta": {
|
|
84
84
|
"@effect/vitest": {
|
|
@@ -108,13 +108,13 @@
|
|
|
108
108
|
"@trpc/server": "11.18.0",
|
|
109
109
|
"@types/node": "24.10.1",
|
|
110
110
|
"@typescript/native": "npm:typescript@7.0.2",
|
|
111
|
-
"better-auth": "1.6.
|
|
111
|
+
"better-auth": "1.6.30",
|
|
112
112
|
"effect": "4.0.0-rc.112",
|
|
113
113
|
"superjson": "2.2.6",
|
|
114
114
|
"typescript": "npm:@typescript/typescript6@6.0.2",
|
|
115
115
|
"vitest": "4.1.9",
|
|
116
116
|
"@shivaedev/effect-prisma": "0.6.4",
|
|
117
|
-
"@shivaedev/effect-trpc": "0.4.
|
|
117
|
+
"@shivaedev/effect-trpc": "0.4.1"
|
|
118
118
|
},
|
|
119
119
|
"scripts": {
|
|
120
120
|
"build": "node --eval \"import('node:fs').then(({ rmSync }) => rmSync('dist', { force: true, recursive: true }))\" && tsc6 --project tsconfig.build.json",
|
package/src/errors/taxonomy.ts
CHANGED
|
@@ -15,4 +15,6 @@ export class Conflict extends Schema.TaggedError<Conflict>()("Conflict", perFiel
|
|
|
15
15
|
|
|
16
16
|
export class PreconditionFailed extends Schema.TaggedError<PreconditionFailed>()("PreconditionFailed", described) {}
|
|
17
17
|
|
|
18
|
+
export class TooManyRequests extends Schema.TaggedError<TooManyRequests>()("TooManyRequests", described) {}
|
|
19
|
+
|
|
18
20
|
export class AuthUnavailable extends Schema.TaggedError<AuthUnavailable>()("AuthUnavailable", described) {}
|
package/src/errors.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { type RejectedField, rejectedField } from "./errors/rejected-field.ts";
|
|
2
|
-
export { AuthUnavailable, BadRequest, Conflict, Forbidden, NotFound, PreconditionFailed, Unauthorized } from "./errors/taxonomy.ts";
|
|
2
|
+
export { AuthUnavailable, BadRequest, Conflict, Forbidden, NotFound, PreconditionFailed, TooManyRequests, Unauthorized } from "./errors/taxonomy.ts";
|