@shivaedev/platform 0.5.2 → 0.6.1

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 (214) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +359 -106
  3. package/dist/errors/rejectedField.d.ts +7 -0
  4. package/dist/errors/rejectedField.d.ts.map +1 -0
  5. package/dist/errors/{rejected-field.js → rejectedField.js} +4 -2
  6. package/dist/errors/rejectedField.js.map +1 -0
  7. package/dist/errors/taxonomy.d.ts +10 -0
  8. package/dist/errors/taxonomy.d.ts.map +1 -1
  9. package/dist/errors/taxonomy.js +4 -0
  10. package/dist/errors/taxonomy.js.map +1 -1
  11. package/dist/rpc/identity.d.ts.map +1 -1
  12. package/dist/rpc/identity.js.map +1 -1
  13. package/dist/rpc/middleware.d.ts.map +1 -1
  14. package/dist/rpc/middleware.js.map +1 -1
  15. package/dist/server/appHost.d.ts +56 -0
  16. package/dist/server/appHost.d.ts.map +1 -0
  17. package/dist/server/appHost.js +55 -0
  18. package/dist/server/appHost.js.map +1 -0
  19. package/dist/server/better-auth/adapter.d.ts +10 -0
  20. package/dist/server/better-auth/adapter.d.ts.map +1 -0
  21. package/dist/{better-auth → server/better-auth}/adapter.js +26 -14
  22. package/dist/server/better-auth/adapter.js.map +1 -0
  23. package/dist/{better-auth → server/better-auth}/relation.d.ts +15 -15
  24. package/dist/server/better-auth/relation.d.ts.map +1 -0
  25. package/dist/{better-auth → server/better-auth}/relation.js +3 -3
  26. package/dist/server/better-auth/relation.js.map +1 -0
  27. package/dist/server/better-auth/rowAdapter.d.ts +8 -0
  28. package/dist/server/better-auth/rowAdapter.d.ts.map +1 -0
  29. package/dist/server/better-auth/rowAdapter.js +52 -0
  30. package/dist/server/better-auth/rowAdapter.js.map +1 -0
  31. package/dist/{better-auth → server/better-auth}/where.d.ts +2 -2
  32. package/dist/server/better-auth/where.d.ts.map +1 -0
  33. package/dist/{better-auth → server/better-auth}/where.js +23 -19
  34. package/dist/server/better-auth/where.js.map +1 -0
  35. package/dist/{node-http/subscription-signal.d.ts → server/node-http/subscriptionSignal.d.ts} +2 -2
  36. package/dist/server/node-http/subscriptionSignal.d.ts.map +1 -0
  37. package/dist/{node-http/subscription-signal.js → server/node-http/subscriptionSignal.js} +20 -13
  38. package/dist/server/node-http/subscriptionSignal.js.map +1 -0
  39. package/dist/server/rpc-server/adapters/betterAuthSessions.d.ts +4 -0
  40. package/dist/server/rpc-server/adapters/betterAuthSessions.d.ts.map +1 -0
  41. package/dist/server/rpc-server/adapters/betterAuthSessions.js +14 -0
  42. package/dist/server/rpc-server/adapters/betterAuthSessions.js.map +1 -0
  43. package/dist/server/rpc-server/boundary.d.ts +9 -0
  44. package/dist/server/rpc-server/boundary.d.ts.map +1 -0
  45. package/dist/server/rpc-server/boundary.js +18 -0
  46. package/dist/server/rpc-server/boundary.js.map +1 -0
  47. package/dist/server/rpc-server/local.d.ts +7 -0
  48. package/dist/server/rpc-server/local.d.ts.map +1 -0
  49. package/dist/server/rpc-server/local.js +66 -0
  50. package/dist/server/rpc-server/local.js.map +1 -0
  51. package/dist/{rpc-server → server/rpc-server}/origin.d.ts +2 -2
  52. package/dist/server/rpc-server/origin.d.ts.map +1 -0
  53. package/dist/server/rpc-server/origin.js +16 -0
  54. package/dist/server/rpc-server/origin.js.map +1 -0
  55. package/dist/server/rpc-server/redact.d.ts +3 -0
  56. package/dist/server/rpc-server/redact.d.ts.map +1 -0
  57. package/dist/{rpc-server → server/rpc-server}/redact.js +9 -7
  58. package/dist/server/rpc-server/redact.js.map +1 -0
  59. package/dist/server/rpc-server/redactCause.d.ts +6 -0
  60. package/dist/server/rpc-server/redactCause.d.ts.map +1 -0
  61. package/dist/server/rpc-server/redactCause.js +36 -0
  62. package/dist/server/rpc-server/redactCause.js.map +1 -0
  63. package/dist/server/rpc-server/sensitive.d.ts +5 -0
  64. package/dist/server/rpc-server/sensitive.d.ts.map +1 -0
  65. package/dist/{rpc-server → server/rpc-server}/sensitive.js +21 -17
  66. package/dist/server/rpc-server/sensitive.js.map +1 -0
  67. package/dist/server/rpc-server/session.d.ts +21 -0
  68. package/dist/server/rpc-server/session.d.ts.map +1 -0
  69. package/dist/server/rpc-server/session.js +37 -0
  70. package/dist/server/rpc-server/session.js.map +1 -0
  71. package/dist/{rpc-server → server/rpc-server}/tracing.d.ts +1 -1
  72. package/dist/server/rpc-server/tracing.d.ts.map +1 -0
  73. package/dist/server/rpc-server/tracing.js +42 -0
  74. package/dist/server/rpc-server/tracing.js.map +1 -0
  75. package/dist/server/rpc-server/transportHeaders.d.ts +4 -0
  76. package/dist/server/rpc-server/transportHeaders.d.ts.map +1 -0
  77. package/dist/server/rpc-server/transportHeaders.js +6 -0
  78. package/dist/server/rpc-server/transportHeaders.js.map +1 -0
  79. package/dist/server/runtime/makePlatform.d.ts +4 -0
  80. package/dist/server/runtime/makePlatform.d.ts.map +1 -0
  81. package/dist/{runtime/make.js → server/runtime/makePlatform.js} +10 -8
  82. package/dist/server/runtime/makePlatform.js.map +1 -0
  83. package/dist/server/runtime/types.d.ts +19 -0
  84. package/dist/server/runtime/types.d.ts.map +1 -0
  85. package/dist/{runtime → server/runtime}/types.js.map +1 -1
  86. package/dist/server/testing/makePlatformIt.d.ts +8 -0
  87. package/dist/server/testing/makePlatformIt.d.ts.map +1 -0
  88. package/dist/{testing/vitest.js → server/testing/makePlatformIt.js} +9 -5
  89. package/dist/server/testing/makePlatformIt.js.map +1 -0
  90. package/dist/server/testing/types.d.ts +28 -0
  91. package/dist/server/testing/types.d.ts.map +1 -0
  92. package/dist/{testing → server/testing}/types.js.map +1 -1
  93. package/docs/north-star.md +36 -0
  94. package/docs/roadmap.md +30 -0
  95. package/package.json +324 -54
  96. package/src/errors/{rejected-field.ts → rejectedField.ts} +3 -6
  97. package/src/errors/taxonomy.ts +2 -8
  98. package/src/rpc/identity.ts +0 -4
  99. package/src/rpc/middleware.ts +18 -9
  100. package/src/server/appHost.ts +134 -0
  101. package/src/{better-auth → server/better-auth}/adapter.ts +27 -31
  102. package/src/{better-auth → server/better-auth}/relation.ts +18 -20
  103. package/src/{better-auth/row-adapter.ts → server/better-auth/rowAdapter.ts} +19 -21
  104. package/src/{better-auth → server/better-auth}/where.ts +23 -33
  105. package/src/{node-http/subscription-signal.ts → server/node-http/subscriptionSignal.ts} +19 -22
  106. package/src/{rpc-server/adapters/better-auth-sessions.ts → server/rpc-server/adapters/betterAuthSessions.ts} +9 -10
  107. package/src/server/rpc-server/boundary.ts +26 -0
  108. package/src/server/rpc-server/local.ts +70 -0
  109. package/src/{rpc-server → server/rpc-server}/origin.ts +10 -13
  110. package/src/{rpc-server → server/rpc-server}/redact.ts +9 -11
  111. package/src/server/rpc-server/redactCause.ts +40 -0
  112. package/src/{rpc-server → server/rpc-server}/sensitive.ts +17 -22
  113. package/src/{rpc-server → server/rpc-server}/session.ts +22 -23
  114. package/src/{rpc-server → server/rpc-server}/tracing.ts +15 -18
  115. package/src/{rpc-server/transport.ts → server/rpc-server/transportHeaders.ts} +3 -3
  116. package/src/{runtime/make.ts → server/runtime/makePlatform.ts} +18 -26
  117. package/src/server/runtime/types.ts +24 -0
  118. package/src/server/testing/makePlatformIt.ts +76 -0
  119. package/src/server/testing/types.ts +38 -0
  120. package/dist/better-auth/adapter.d.ts +0 -10
  121. package/dist/better-auth/adapter.d.ts.map +0 -1
  122. package/dist/better-auth/adapter.js.map +0 -1
  123. package/dist/better-auth/relation.d.ts.map +0 -1
  124. package/dist/better-auth/relation.js.map +0 -1
  125. package/dist/better-auth/row-adapter.d.ts +0 -8
  126. package/dist/better-auth/row-adapter.d.ts.map +0 -1
  127. package/dist/better-auth/row-adapter.js +0 -46
  128. package/dist/better-auth/row-adapter.js.map +0 -1
  129. package/dist/better-auth/where.d.ts.map +0 -1
  130. package/dist/better-auth/where.js.map +0 -1
  131. package/dist/better-auth.d.ts +0 -2
  132. package/dist/better-auth.d.ts.map +0 -1
  133. package/dist/better-auth.js +0 -2
  134. package/dist/better-auth.js.map +0 -1
  135. package/dist/errors/rejected-field.d.ts +0 -7
  136. package/dist/errors/rejected-field.d.ts.map +0 -1
  137. package/dist/errors/rejected-field.js.map +0 -1
  138. package/dist/errors.d.ts +0 -3
  139. package/dist/errors.d.ts.map +0 -1
  140. package/dist/errors.js +0 -3
  141. package/dist/errors.js.map +0 -1
  142. package/dist/node-http/subscription-signal.d.ts.map +0 -1
  143. package/dist/node-http/subscription-signal.js.map +0 -1
  144. package/dist/node-http.d.ts +0 -2
  145. package/dist/node-http.d.ts.map +0 -1
  146. package/dist/node-http.js +0 -2
  147. package/dist/node-http.js.map +0 -1
  148. package/dist/rpc-server/adapters/better-auth-sessions.d.ts +0 -4
  149. package/dist/rpc-server/adapters/better-auth-sessions.d.ts.map +0 -1
  150. package/dist/rpc-server/adapters/better-auth-sessions.js +0 -11
  151. package/dist/rpc-server/adapters/better-auth-sessions.js.map +0 -1
  152. package/dist/rpc-server/origin.d.ts.map +0 -1
  153. package/dist/rpc-server/origin.js +0 -12
  154. package/dist/rpc-server/origin.js.map +0 -1
  155. package/dist/rpc-server/redact-cause.d.ts +0 -6
  156. package/dist/rpc-server/redact-cause.d.ts.map +0 -1
  157. package/dist/rpc-server/redact-cause.js +0 -28
  158. package/dist/rpc-server/redact-cause.js.map +0 -1
  159. package/dist/rpc-server/redact.d.ts +0 -3
  160. package/dist/rpc-server/redact.d.ts.map +0 -1
  161. package/dist/rpc-server/redact.js.map +0 -1
  162. package/dist/rpc-server/sensitive.d.ts +0 -5
  163. package/dist/rpc-server/sensitive.d.ts.map +0 -1
  164. package/dist/rpc-server/sensitive.js.map +0 -1
  165. package/dist/rpc-server/session.d.ts +0 -21
  166. package/dist/rpc-server/session.d.ts.map +0 -1
  167. package/dist/rpc-server/session.js +0 -31
  168. package/dist/rpc-server/session.js.map +0 -1
  169. package/dist/rpc-server/tracing.d.ts.map +0 -1
  170. package/dist/rpc-server/tracing.js +0 -34
  171. package/dist/rpc-server/tracing.js.map +0 -1
  172. package/dist/rpc-server/transport.d.ts +0 -4
  173. package/dist/rpc-server/transport.d.ts.map +0 -1
  174. package/dist/rpc-server/transport.js +0 -4
  175. package/dist/rpc-server/transport.js.map +0 -1
  176. package/dist/rpc-server.d.ts +0 -9
  177. package/dist/rpc-server.d.ts.map +0 -1
  178. package/dist/rpc-server.js +0 -9
  179. package/dist/rpc-server.js.map +0 -1
  180. package/dist/rpc.d.ts +0 -3
  181. package/dist/rpc.d.ts.map +0 -1
  182. package/dist/rpc.js +0 -3
  183. package/dist/rpc.js.map +0 -1
  184. package/dist/runtime/make.d.ts +0 -4
  185. package/dist/runtime/make.d.ts.map +0 -1
  186. package/dist/runtime/make.js.map +0 -1
  187. package/dist/runtime/types.d.ts +0 -19
  188. package/dist/runtime/types.d.ts.map +0 -1
  189. package/dist/runtime.d.ts +0 -3
  190. package/dist/runtime.d.ts.map +0 -1
  191. package/dist/runtime.js +0 -2
  192. package/dist/runtime.js.map +0 -1
  193. package/dist/testing/types.d.ts +0 -26
  194. package/dist/testing/types.d.ts.map +0 -1
  195. package/dist/testing/vitest.d.ts +0 -8
  196. package/dist/testing/vitest.d.ts.map +0 -1
  197. package/dist/testing/vitest.js.map +0 -1
  198. package/dist/testing.d.ts +0 -3
  199. package/dist/testing.d.ts.map +0 -1
  200. package/dist/testing.js +0 -2
  201. package/dist/testing.js.map +0 -1
  202. package/src/better-auth.ts +0 -4
  203. package/src/errors.ts +0 -2
  204. package/src/node-http.ts +0 -5
  205. package/src/rpc-server/redact-cause.ts +0 -41
  206. package/src/rpc-server.ts +0 -15
  207. package/src/rpc.ts +0 -2
  208. package/src/runtime/types.ts +0 -24
  209. package/src/runtime.ts +0 -7
  210. package/src/testing/types.ts +0 -41
  211. package/src/testing/vitest.ts +0 -69
  212. package/src/testing.ts +0 -8
  213. /package/dist/{runtime → server/runtime}/types.js +0 -0
  214. /package/dist/{testing → server/testing}/types.js +0 -0
package/src/rpc-server.ts DELETED
@@ -1,15 +0,0 @@
1
- export { betterAuthSessions, type GetSession } from "#rpc-server/adapters/better-auth-sessions.ts";
2
- export { type OriginPolicy, type OriginRequest, type TrustedOriginsOptions, trustedOrigins } from "#rpc-server/origin.ts";
3
- export { redact } from "#rpc-server/redact.ts";
4
- export { redactCause, redactDefect, redactingErrorReporter } from "#rpc-server/redact-cause.ts";
5
- export { isSensitiveKey, type SensitiveKey } from "#rpc-server/sensitive.ts";
6
- export {
7
- authenticatedLayer,
8
- maybeAuthenticatedLayer,
9
- resolveSession,
10
- type SessionPolicy,
11
- type SessionProvider,
12
- type SessionShape,
13
- } from "#rpc-server/session.ts";
14
- export { type RequestTracingOptions, requestTracingLayer } from "#rpc-server/tracing.ts";
15
- export { transportHeaders } from "#rpc-server/transport.ts";
package/src/rpc.ts DELETED
@@ -1,2 +0,0 @@
1
- export { Identity, type IdentityValue, OptionalIdentity, RequestId } from "#rpc/identity.ts";
2
- export { Authenticated, MaybeAuthenticated, RequestTracing } from "#rpc/middleware.ts";
@@ -1,24 +0,0 @@
1
- import type { Context, Effect, Exit } from "effect";
2
-
3
- export interface PlatformRuntimeOptions {
4
- readonly developmentCacheKey?: string | symbol;
5
- }
6
-
7
- export interface PlatformRuntime<Services, BuildError> {
8
- readonly contextEffect: Effect.Effect<Context.Context<Services>, BuildError>;
9
- readonly currentServices: () => Context.Context<never> | undefined;
10
- readonly dispose: () => Promise<void>;
11
- readonly runPromise: <A, E, Requirements extends Services>(
12
- effect: Effect.Effect<A, E, Requirements>,
13
- options?: { readonly signal?: AbortSignal },
14
- ) => Promise<A>;
15
- readonly runPromiseExit: <A, E, Requirements extends Services>(
16
- effect: Effect.Effect<A, E, Requirements>,
17
- options?: { readonly signal?: AbortSignal },
18
- ) => Promise<Exit.Exit<A, E | BuildError>>;
19
- readonly runWithServices: <Provided, Value>(services: Context.Context<Provided>, evaluate: () => Value) => Value;
20
- }
21
-
22
- export type PlatformRuntimeServices<Runtime> = Runtime extends PlatformRuntime<infer Services, infer _BuildError> ? Services : never;
23
-
24
- export type PlatformRuntimeBuildError<Runtime> = Runtime extends PlatformRuntime<infer _Services, infer BuildError> ? BuildError : never;
package/src/runtime.ts DELETED
@@ -1,7 +0,0 @@
1
- export { makePlatformRuntime } from "#runtime/make.ts";
2
- export type {
3
- PlatformRuntime,
4
- PlatformRuntimeBuildError,
5
- PlatformRuntimeOptions,
6
- PlatformRuntimeServices,
7
- } from "#runtime/types.ts";
@@ -1,41 +0,0 @@
1
- import type { TestContext, Vitest } from "@effect/vitest";
2
- import type { Effect, Layer } from "effect";
3
- import type { AnyDatabase, DatabaseService } from "@shivaedev/effect-prisma/testing";
4
- import type { EffectTRPCAdapter } from "@shivaedev/effect-trpc";
5
- import type { CallerOptions, CallerResult, EffectCallerFactory, TrpcHarnessTest, TrpcHarnessTester } from "@shivaedev/effect-trpc/testing";
6
-
7
- export type PlatformHarness<Database extends AnyDatabase, Options, Caller, Extension> = Readonly<{
8
- db: DatabaseService<Database>;
9
- trpc: EffectCallerFactory<Options, Caller>;
10
- }> &
11
- Readonly<{
12
- promise: <Value>(evaluate: () => Promise<Value>) => Effect.Effect<Value, unknown>;
13
- }> &
14
- Omit<Extension, "db" | "promise" | "trpc">;
15
-
16
- export type PlatformTest<Harness, Provided> = TrpcHarnessTest<Harness, Provided>;
17
-
18
- export type PlatformTester<Harness, Provided> = TrpcHarnessTester<Harness, Provided>;
19
-
20
- export type PlatformIt<Harness, Provided> = Vitest.Methods & {
21
- readonly effectApp: PlatformTester<Harness, Provided>;
22
- };
23
-
24
- export interface MakePlatformItOptions<
25
- Database extends AnyDatabase,
26
- CreateCaller extends (...arguments_: never[]) => object,
27
- Provided,
28
- LayerError,
29
- Extension,
30
- > {
31
- readonly adapter: Pick<EffectTRPCAdapter<never>, "runWithServices">;
32
- readonly createCaller: CreateCaller;
33
- readonly extend?: (
34
- base: Readonly<{
35
- db: DatabaseService<Database>;
36
- trpc: EffectCallerFactory<CallerOptions<NoInfer<CreateCaller>>, CallerResult<NoInfer<CreateCaller>>>;
37
- }>,
38
- context: TestContext,
39
- ) => Effect.Effect<Extension, unknown, Provided | Effect.Services<Database>>;
40
- readonly layer: Layer.Layer<Provided, LayerError>;
41
- }
@@ -1,69 +0,0 @@
1
- import type { TestContext } from "@effect/vitest";
2
- import { Effect, type Layer } from "effect";
3
- import { type AnyDatabase, withTestTransaction } from "@shivaedev/effect-prisma/testing";
4
- import type { EffectTRPCAdapter } from "@shivaedev/effect-trpc";
5
- import { type CallerOptions, type CallerResult, type EffectCallerFactory, makeTrpcHarnessIt } from "@shivaedev/effect-trpc/testing";
6
- import type { Bivariant } from "@shivaedev/types";
7
- import type { MakePlatformItOptions, PlatformHarness, PlatformIt } from "./types.ts";
8
-
9
- interface LooseOptions {
10
- readonly adapter: Pick<EffectTRPCAdapter<never>, "runWithServices">;
11
- readonly createCaller: (options?: unknown) => object;
12
- extend?: Bivariant<
13
- (
14
- base: { readonly db: unknown; readonly trpc: EffectCallerFactory<unknown, object> },
15
- context: TestContext,
16
- ) => Effect.Effect<object, unknown, unknown>
17
- >;
18
- readonly layer: Layer.Layer<unknown, unknown>;
19
- }
20
-
21
- function platformIt<
22
- Database extends AnyDatabase,
23
- CreateCaller extends (...arguments_: never[]) => object,
24
- Provided,
25
- LayerError,
26
- Extension extends object,
27
- >(
28
- database: Database,
29
- options: MakePlatformItOptions<Database, CreateCaller, Provided, LayerError, Extension> & {
30
- readonly layer: Layer.Layer<Provided | Effect.Services<Database>, LayerError>;
31
- },
32
- ): PlatformIt<PlatformHarness<Database, CallerOptions<CreateCaller>, CallerResult<CreateCaller>, Extension>, Provided | Effect.Services<Database>>;
33
- function platformIt(database: AnyDatabase, options: LooseOptions): unknown {
34
- const trpcIt = makeTrpcHarnessIt({
35
- adapter: options.adapter,
36
- around: (effect) => withTestTransaction(database, effect),
37
- createCaller: options.createCaller,
38
- layer: options.layer,
39
- makeHarness: (trpc, context) =>
40
- Effect.gen(function* () {
41
- const services = yield* Effect.context<unknown>();
42
- const db = yield* database;
43
- const extension = options.extend ? yield* options.extend({ db, trpc }, context) : {};
44
- const promise = <Value>(evaluate: () => Promise<Value>) => Effect.tryPromise(() => options.adapter.runWithServices(services, evaluate));
45
- return { ...extension, db, promise, trpc };
46
- }),
47
- });
48
-
49
- return new Proxy(trpcIt, {
50
- get(target, property, receiver) {
51
- if (property === "effectApp") {
52
- return trpcIt.effectTRPC;
53
- }
54
- return Reflect.get(target, property, receiver);
55
- },
56
- });
57
- }
58
-
59
- export const makePlatformIt =
60
- <const Database extends AnyDatabase>(database: Database) =>
61
- <CreateCaller extends (...arguments_: never[]) => object, Provided, LayerError, Extension extends object = Record<never, never>>(
62
- options: MakePlatformItOptions<Database, CreateCaller, Provided, LayerError, Extension> & {
63
- readonly layer: Layer.Layer<Provided | Effect.Services<Database>, LayerError>;
64
- },
65
- ): PlatformIt<
66
- PlatformHarness<Database, CallerOptions<CreateCaller>, CallerResult<CreateCaller>, Extension>,
67
- Provided | Effect.Services<Database>
68
- > =>
69
- platformIt(database, options);
package/src/testing.ts DELETED
@@ -1,8 +0,0 @@
1
- export type {
2
- MakePlatformItOptions,
3
- PlatformHarness,
4
- PlatformIt,
5
- PlatformTest,
6
- PlatformTester,
7
- } from "#testing/types.ts";
8
- export { makePlatformIt } from "#testing/vitest.ts";
File without changes
File without changes