effect-app 4.0.0-beta.2 → 4.0.0-beta.200

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 (224) hide show
  1. package/CHANGELOG.md +960 -0
  2. package/dist/Array.d.ts +1 -1
  3. package/dist/Chunk.d.ts +1 -1
  4. package/dist/Chunk.d.ts.map +1 -1
  5. package/dist/Config/SecretURL.d.ts +1 -1
  6. package/dist/Config/SecretURL.d.ts.map +1 -1
  7. package/dist/Config/SecretURL.js +2 -2
  8. package/dist/Config/internal/configSecretURL.d.ts +1 -1
  9. package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
  10. package/dist/Config.d.ts +7 -0
  11. package/dist/Config.d.ts.map +1 -0
  12. package/dist/Config.js +6 -0
  13. package/dist/ConfigProvider.d.ts +39 -0
  14. package/dist/ConfigProvider.d.ts.map +1 -0
  15. package/dist/ConfigProvider.js +42 -0
  16. package/dist/Context.d.ts +40 -0
  17. package/dist/Context.d.ts.map +1 -0
  18. package/dist/Context.js +67 -0
  19. package/dist/Effect.d.ts +9 -10
  20. package/dist/Effect.d.ts.map +1 -1
  21. package/dist/Effect.js +3 -6
  22. package/dist/Function.d.ts +1 -1
  23. package/dist/Function.d.ts.map +1 -1
  24. package/dist/Inputify.type.d.ts +1 -1
  25. package/dist/Layer.d.ts +7 -6
  26. package/dist/Layer.d.ts.map +1 -1
  27. package/dist/Layer.js +1 -1
  28. package/dist/NonEmptySet.d.ts +1 -1
  29. package/dist/NonEmptySet.d.ts.map +1 -1
  30. package/dist/Option.d.ts +1 -1
  31. package/dist/Option.d.ts.map +1 -1
  32. package/dist/Pure.d.ts +5 -5
  33. package/dist/Pure.d.ts.map +1 -1
  34. package/dist/Pure.js +13 -13
  35. package/dist/Schema/Class.d.ts +66 -20
  36. package/dist/Schema/Class.d.ts.map +1 -1
  37. package/dist/Schema/Class.js +189 -22
  38. package/dist/Schema/FastCheck.d.ts +1 -1
  39. package/dist/Schema/FastCheck.d.ts.map +1 -1
  40. package/dist/Schema/Methods.d.ts +1 -1
  41. package/dist/Schema/SchemaParser.d.ts +5 -0
  42. package/dist/Schema/SchemaParser.d.ts.map +1 -0
  43. package/dist/Schema/SchemaParser.js +6 -0
  44. package/dist/Schema/SpecialJsonSchema.d.ts +33 -0
  45. package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
  46. package/dist/Schema/SpecialJsonSchema.js +122 -0
  47. package/dist/Schema/SpecialOpenApi.d.ts +32 -0
  48. package/dist/Schema/SpecialOpenApi.d.ts.map +1 -0
  49. package/dist/Schema/SpecialOpenApi.js +123 -0
  50. package/dist/Schema/brand.d.ts +14 -6
  51. package/dist/Schema/brand.d.ts.map +1 -1
  52. package/dist/Schema/brand.js +1 -1
  53. package/dist/Schema/email.d.ts +1 -1
  54. package/dist/Schema/email.d.ts.map +1 -1
  55. package/dist/Schema/email.js +9 -5
  56. package/dist/Schema/ext.d.ts +121 -48
  57. package/dist/Schema/ext.d.ts.map +1 -1
  58. package/dist/Schema/ext.js +134 -52
  59. package/dist/Schema/moreStrings.d.ts +117 -17
  60. package/dist/Schema/moreStrings.d.ts.map +1 -1
  61. package/dist/Schema/moreStrings.js +19 -18
  62. package/dist/Schema/numbers.d.ts +127 -15
  63. package/dist/Schema/numbers.d.ts.map +1 -1
  64. package/dist/Schema/numbers.js +10 -12
  65. package/dist/Schema/phoneNumber.d.ts +1 -1
  66. package/dist/Schema/phoneNumber.d.ts.map +1 -1
  67. package/dist/Schema/phoneNumber.js +8 -4
  68. package/dist/Schema/schema.d.ts +1 -1
  69. package/dist/Schema/strings.d.ts +37 -5
  70. package/dist/Schema/strings.d.ts.map +1 -1
  71. package/dist/Schema/strings.js +1 -5
  72. package/dist/Schema.d.ts +159 -58
  73. package/dist/Schema.d.ts.map +1 -1
  74. package/dist/Schema.js +136 -68
  75. package/dist/Set.d.ts +1 -1
  76. package/dist/Set.d.ts.map +1 -1
  77. package/dist/TypeTest.d.ts +1 -1
  78. package/dist/Types.d.ts +1 -1
  79. package/dist/Widen.type.d.ts +1 -1
  80. package/dist/_ext/Array.d.ts +1 -1
  81. package/dist/_ext/Array.d.ts.map +1 -1
  82. package/dist/_ext/date.d.ts +1 -1
  83. package/dist/_ext/misc.d.ts +1 -1
  84. package/dist/_ext/ord.ext.d.ts +1 -1
  85. package/dist/_ext/ord.ext.d.ts.map +1 -1
  86. package/dist/builtin.d.ts +1 -1
  87. package/dist/builtin.d.ts.map +1 -1
  88. package/dist/client/InvalidationKeys.d.ts +29 -0
  89. package/dist/client/InvalidationKeys.d.ts.map +1 -0
  90. package/dist/client/InvalidationKeys.js +33 -0
  91. package/dist/client/apiClientFactory.d.ts +18 -32
  92. package/dist/client/apiClientFactory.d.ts.map +1 -1
  93. package/dist/client/apiClientFactory.js +98 -36
  94. package/dist/client/clientFor.d.ts +51 -17
  95. package/dist/client/clientFor.d.ts.map +1 -1
  96. package/dist/client/clientFor.js +9 -1
  97. package/dist/client/errors.d.ts +49 -25
  98. package/dist/client/errors.d.ts.map +1 -1
  99. package/dist/client/errors.js +43 -17
  100. package/dist/client/makeClient.d.ts +468 -32
  101. package/dist/client/makeClient.d.ts.map +1 -1
  102. package/dist/client/makeClient.js +61 -34
  103. package/dist/client.d.ts +2 -1
  104. package/dist/client.d.ts.map +1 -1
  105. package/dist/client.js +2 -1
  106. package/dist/faker.d.ts +1 -1
  107. package/dist/faker.d.ts.map +1 -1
  108. package/dist/http/Request.d.ts +2 -2
  109. package/dist/http/Request.d.ts.map +1 -1
  110. package/dist/http/Request.js +5 -5
  111. package/dist/http/internal/lib.d.ts +1 -1
  112. package/dist/http.d.ts +1 -1
  113. package/dist/ids.d.ts +9 -9
  114. package/dist/ids.d.ts.map +1 -1
  115. package/dist/ids.js +3 -2
  116. package/dist/index.d.ts +5 -9
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +6 -9
  119. package/dist/logger.d.ts +1 -1
  120. package/dist/middleware.d.ts +16 -9
  121. package/dist/middleware.d.ts.map +1 -1
  122. package/dist/middleware.js +13 -9
  123. package/dist/rpc/Invalidation.d.ts +397 -0
  124. package/dist/rpc/Invalidation.d.ts.map +1 -0
  125. package/dist/rpc/Invalidation.js +150 -0
  126. package/dist/rpc/MiddlewareMaker.d.ts +6 -5
  127. package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
  128. package/dist/rpc/MiddlewareMaker.js +51 -28
  129. package/dist/rpc/RpcContextMap.d.ts +3 -3
  130. package/dist/rpc/RpcContextMap.d.ts.map +1 -1
  131. package/dist/rpc/RpcContextMap.js +4 -4
  132. package/dist/rpc/RpcMiddleware.d.ts +6 -5
  133. package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
  134. package/dist/rpc/RpcMiddleware.js +1 -1
  135. package/dist/rpc.d.ts +2 -2
  136. package/dist/rpc.d.ts.map +1 -1
  137. package/dist/rpc.js +2 -2
  138. package/dist/transform.d.ts +1 -1
  139. package/dist/transform.d.ts.map +1 -1
  140. package/dist/transform.js +3 -3
  141. package/dist/utils/effectify.d.ts +1 -1
  142. package/dist/utils/extend.d.ts +1 -1
  143. package/dist/utils/extend.d.ts.map +1 -1
  144. package/dist/utils/gen.d.ts +2 -2
  145. package/dist/utils/gen.d.ts.map +1 -1
  146. package/dist/utils/logLevel.d.ts +2 -2
  147. package/dist/utils/logLevel.d.ts.map +1 -1
  148. package/dist/utils/logger.d.ts +3 -3
  149. package/dist/utils/logger.d.ts.map +1 -1
  150. package/dist/utils/logger.js +3 -3
  151. package/dist/utils.d.ts +48 -10
  152. package/dist/utils.d.ts.map +1 -1
  153. package/dist/utils.js +33 -8
  154. package/dist/validation/validators.d.ts +1 -1
  155. package/dist/validation/validators.d.ts.map +1 -1
  156. package/dist/validation.d.ts +1 -1
  157. package/dist/validation.d.ts.map +1 -1
  158. package/package.json +46 -28
  159. package/src/Config/SecretURL.ts +2 -1
  160. package/src/Config.ts +14 -0
  161. package/src/ConfigProvider.ts +48 -0
  162. package/src/{ServiceMap.ts → Context.ts} +58 -64
  163. package/src/Effect.ts +12 -14
  164. package/src/Layer.ts +6 -5
  165. package/src/Pure.ts +17 -18
  166. package/src/Schema/Class.ts +268 -62
  167. package/src/Schema/SchemaParser.ts +12 -0
  168. package/src/Schema/SpecialJsonSchema.ts +137 -0
  169. package/src/Schema/SpecialOpenApi.ts +130 -0
  170. package/src/Schema/brand.ts +21 -7
  171. package/src/Schema/email.ts +10 -3
  172. package/src/Schema/ext.ts +226 -86
  173. package/src/Schema/moreStrings.ts +37 -32
  174. package/src/Schema/numbers.ts +14 -16
  175. package/src/Schema/phoneNumber.ts +8 -2
  176. package/src/Schema/strings.ts +4 -8
  177. package/src/Schema.ts +350 -107
  178. package/src/client/InvalidationKeys.ts +50 -0
  179. package/src/client/apiClientFactory.ts +227 -136
  180. package/src/client/clientFor.ts +86 -29
  181. package/src/client/errors.ts +61 -26
  182. package/src/client/makeClient.ts +530 -80
  183. package/src/client.ts +1 -0
  184. package/src/http/Request.ts +7 -4
  185. package/src/ids.ts +3 -2
  186. package/src/index.ts +5 -11
  187. package/src/middleware.ts +12 -10
  188. package/src/rpc/Invalidation.ts +221 -0
  189. package/src/rpc/MiddlewareMaker.ts +61 -51
  190. package/src/rpc/README.md +2 -2
  191. package/src/rpc/RpcContextMap.ts +6 -5
  192. package/src/rpc/RpcMiddleware.ts +6 -5
  193. package/src/rpc.ts +1 -1
  194. package/src/transform.ts +2 -2
  195. package/src/utils/gen.ts +1 -1
  196. package/src/utils/logger.ts +2 -2
  197. package/src/utils.ts +73 -15
  198. package/test/dist/moreStrings.test.d.ts.map +1 -0
  199. package/test/dist/rpc.test.d.ts.map +1 -1
  200. package/test/dist/secretURL.test.d.ts.map +1 -0
  201. package/test/dist/special.test.d.ts.map +1 -0
  202. package/test/moreStrings.test.ts +17 -0
  203. package/test/rpc.test.ts +38 -6
  204. package/test/schema.test.ts +609 -4
  205. package/test/secretURL.test.ts +157 -0
  206. package/test/special.test.ts +1023 -0
  207. package/test/utils.test.ts +6 -6
  208. package/tsconfig.base.json +3 -4
  209. package/tsconfig.json +0 -1
  210. package/tsconfig.json.bak +2 -2
  211. package/tsconfig.src.json +29 -29
  212. package/tsconfig.test.json +2 -2
  213. package/dist/Operations.d.ts +0 -87
  214. package/dist/Operations.d.ts.map +0 -1
  215. package/dist/Operations.js +0 -29
  216. package/dist/ServiceMap.d.ts +0 -44
  217. package/dist/ServiceMap.d.ts.map +0 -1
  218. package/dist/ServiceMap.js +0 -91
  219. package/dist/Struct.d.ts +0 -44
  220. package/dist/Struct.d.ts.map +0 -1
  221. package/dist/Struct.js +0 -29
  222. package/eslint.config.mjs +0 -26
  223. package/src/Operations.ts +0 -55
  224. package/src/Struct.ts +0 -54
@@ -1,19 +1,20 @@
1
1
  /** @effect-diagnostics overriddenSchemaConstructor:skip-file */
2
- import { TaggedError } from "effect-app/Schema"
2
+ import { TaggedErrorClass } from "effect-app/Schema"
3
3
  import * as Cause from "effect/Cause"
4
4
  import * as S from "../Schema.js"
5
5
 
6
- export const tryToJson = (error: { toJSON(): unknown; toString(): string }) => {
6
+ export const tryToJson = (error: unknown) => {
7
7
  try {
8
- return error.toJSON()
8
+ const errorJson = (error as any).toJSON()
9
+ return errorJson && typeof errorJson === "object" ? errorJson as Record<string, unknown> : { error }
9
10
  } catch {
10
11
  try {
11
- return error.toString()
12
+ return { error: (error as any).toString() }
12
13
  } catch (err) {
13
14
  try {
14
- return `Failed to convert error: ${err}`
15
+ return { error: `Failed to convert error: ${err}` }
15
16
  } catch {
16
- return `Failed to convert error: unknown failure`
17
+ return { error: `Failed to convert error: unknown failure` }
17
18
  }
18
19
  }
19
20
  }
@@ -21,7 +22,7 @@ export const tryToJson = (error: { toJSON(): unknown; toString(): string }) => {
21
22
 
22
23
  // eslint-disable-next-line unused-imports/no-unused-vars
23
24
  // @ts-expect-error type not used
24
- export class NotFoundError<ItemType = string> extends TaggedError<NotFoundError<ItemType>>()("NotFoundError", {
25
+ export class NotFoundError<ItemType = string> extends TaggedErrorClass<NotFoundError<ItemType>>()("NotFoundError", {
25
26
  type: S.String,
26
27
  id: S.Unknown
27
28
  }) {
@@ -29,70 +30,97 @@ export class NotFoundError<ItemType = string> extends TaggedError<NotFoundError<
29
30
  props: { type: string; id: unknown; cause?: unknown },
30
31
  disableValidation?: boolean
31
32
  ) {
32
- super(props as any, disableValidation as any)
33
+ super(props, disableValidation as any)
33
34
  }
34
35
  override get message() {
35
36
  return `Didn't find ${(this as any).type}#${JSON.stringify((this as any).id)}`
36
37
  }
38
+ override toString() {
39
+ return `NotFoundError: ${this.message}`
40
+ }
37
41
  }
38
42
 
39
43
  const messageFallback = (messageOrObject?: string | { message: string }) =>
40
44
  typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject ?? "" }
41
45
 
42
- export class InvalidStateError extends TaggedError<InvalidStateError>()("InvalidStateError", {
46
+ export class InvalidStateError extends TaggedErrorClass<InvalidStateError>()("InvalidStateError", {
43
47
  message: S.String
44
48
  }) {
45
49
  constructor(messageOrObject: string | { message: string; cause?: unknown }, disableValidation?: boolean) {
46
- super(typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject } as any, disableValidation as any)
50
+ super(
51
+ typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject },
52
+ disableValidation as any
53
+ )
54
+ }
55
+ override toString() {
56
+ return `InvalidStateError: ${this.message}`
47
57
  }
48
58
  }
49
59
 
50
- export class ServiceUnavailableError extends TaggedError<ServiceUnavailableError>()("ServiceUnavailableError", {
60
+ export class ServiceUnavailableError extends TaggedErrorClass<ServiceUnavailableError>()("ServiceUnavailableError", {
51
61
  message: S.String
52
62
  }) {
53
63
  constructor(messageOrObject: string | { message: string; cause?: unknown }, disableValidation?: boolean) {
54
- super(typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject } as any, disableValidation as any)
64
+ super(
65
+ typeof messageOrObject === "object" ? messageOrObject : { message: messageOrObject },
66
+ disableValidation as any
67
+ )
68
+ }
69
+ override toString() {
70
+ return `ServiceUnavailableError: ${this.message}`
55
71
  }
56
72
  }
57
73
 
58
- export class ValidationError extends TaggedError<ValidationError>()("ValidationError", {
74
+ export class ValidationError extends TaggedErrorClass<ValidationError>()("ValidationError", {
59
75
  errors: S.Array(S.Unknown)
60
76
  }) {
61
77
  constructor(
62
78
  props: { errors: ReadonlyArray<unknown>; cause?: unknown },
63
79
  disableValidation?: boolean
64
80
  ) {
65
- super(props as any, disableValidation as any)
81
+ super(props, disableValidation as any)
66
82
  }
67
83
  override get message() {
68
84
  return `Validation failed: ${(this as any).errors.map((e: any) => JSON.stringify(e, undefined, 2)).join(",\n")}`
69
85
  }
86
+ override toString() {
87
+ return `ValidationError: ${this.message}`
88
+ }
70
89
  }
71
90
 
72
- export class NotLoggedInError extends TaggedError<NotLoggedInError>()("NotLoggedInError", {
91
+ export class NotLoggedInError extends TaggedErrorClass<NotLoggedInError>()("NotLoggedInError", {
73
92
  message: S.String
74
93
  }) {
75
94
  constructor(messageOrObject?: string | { message: string; cause?: unknown }, disableValidation?: boolean) {
76
- super(messageFallback(messageOrObject) as any, disableValidation as any)
95
+ super(messageFallback(messageOrObject), disableValidation as any)
96
+ }
97
+ override toString() {
98
+ return `NotLoggedInError: ${this.message}`
77
99
  }
78
100
  }
79
101
 
80
102
  /**
81
103
  * The user carries a valid Userprofile, but there is a problem with the login none the less.
82
104
  */
83
- export class LoginError extends TaggedError<LoginError>()("NotLoggedInError", {
105
+ export class LoginError extends TaggedErrorClass<LoginError>()("NotLoggedInError", {
84
106
  message: S.String
85
107
  }) {
86
108
  constructor(messageOrObject?: string | { message: string; cause?: unknown }, disableValidation?: boolean) {
87
- super(messageFallback(messageOrObject) as any, disableValidation as any)
109
+ super(messageFallback(messageOrObject), disableValidation as any)
110
+ }
111
+ override toString() {
112
+ return `LoginError: ${this.message}`
88
113
  }
89
114
  }
90
115
 
91
- export class UnauthorizedError extends TaggedError<UnauthorizedError>()("UnauthorizedError", {
116
+ export class UnauthorizedError extends TaggedErrorClass<UnauthorizedError>()("UnauthorizedError", {
92
117
  message: S.String
93
118
  }) {
94
119
  constructor(messageOrObject?: string | { message: string; cause?: unknown }, disableValidation?: boolean) {
95
- super(messageFallback(messageOrObject) as any, disableValidation as any)
120
+ super(messageFallback(messageOrObject), disableValidation as any)
121
+ }
122
+ override toString() {
123
+ return `UnauthorizedError: ${this.message}`
96
124
  }
97
125
  }
98
126
 
@@ -104,7 +132,7 @@ type OptimisticConcurrencyDetails = {
104
132
  readonly found?: string | undefined
105
133
  }
106
134
 
107
- export class OptimisticConcurrencyException extends TaggedError<OptimisticConcurrencyException>()(
135
+ export class OptimisticConcurrencyException extends TaggedErrorClass<OptimisticConcurrencyException>()(
108
136
  "OptimisticConcurrencyException",
109
137
  { message: S.String }
110
138
  ) {
@@ -116,11 +144,17 @@ export class OptimisticConcurrencyException extends TaggedError<OptimisticConcur
116
144
  | ({ message: string; cause?: unknown; raw?: unknown }),
117
145
  disableValidation?: boolean
118
146
  ) {
119
- super("message" in args ? args : { message: `Existing ${args.type} ${args.id} record changed` } as any, disableValidation as any)
147
+ super(
148
+ "message" in args ? args : { message: `Existing ${args.type} ${args.id} record changed` },
149
+ disableValidation as any
150
+ )
120
151
  if (!("message" in args)) {
121
152
  this.details = args
122
153
  }
123
154
  }
155
+ override toString() {
156
+ return `OptimisticConcurrencyException: ${this.message}`
157
+ }
124
158
  }
125
159
 
126
160
  const MutationOnlyErrors = [
@@ -174,6 +208,7 @@ export class CauseException<E> extends Error {
174
208
  Error.stackTraceLimit = 0
175
209
  super()
176
210
  Error.stackTraceLimit = limit
211
+ this.cause = Cause.squash(originalCause)
177
212
  // v4: makeFiberFailure removed — use Cause.prettyErrors instead
178
213
  const errors = Cause.prettyErrors(originalCause)
179
214
  const first = errors[0]
@@ -213,17 +248,17 @@ export class CauseException<E> extends Error {
213
248
  }
214
249
  }
215
250
 
216
- export const tryToReport = (error: { toReport(): unknown; toString(): string }) => {
251
+ export const tryToReport = (error: { toReport(): Record<string, unknown>; toString(): string }) => {
217
252
  try {
218
253
  return error.toReport()
219
254
  } catch {
220
255
  try {
221
- return error.toString()
256
+ return { error: error.toString() }
222
257
  } catch (err) {
223
258
  try {
224
- return `Failed to convert error: ${err}`
259
+ return { error: `Failed to convert error: ${err}` }
225
260
  } catch {
226
- return `Failed to convert error: unknown failure`
261
+ return { error: `Failed to convert error: unknown failure` }
227
262
  }
228
263
  }
229
264
  }