effect-app 4.0.0-beta.99 → 4.0.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 (391) hide show
  1. package/CHANGELOG.md +2042 -0
  2. package/dist/Array.d.ts +1 -17
  3. package/dist/Array.d.ts.map +1 -1
  4. package/dist/Array.js +3 -27
  5. package/dist/Chunk.d.ts +3 -27
  6. package/dist/Chunk.d.ts.map +1 -1
  7. package/dist/Chunk.js +4 -39
  8. package/dist/Config/SecretURL.d.ts +3 -1
  9. package/dist/Config/SecretURL.d.ts.map +1 -1
  10. package/dist/Config/SecretURL.js +3 -6
  11. package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
  12. package/dist/Config/internal/configSecretURL.js +2 -2
  13. package/dist/Config.d.ts +0 -5
  14. package/dist/Config.d.ts.map +1 -1
  15. package/dist/Config.js +7 -5
  16. package/dist/ConfigProvider.d.ts +0 -37
  17. package/dist/ConfigProvider.d.ts.map +1 -1
  18. package/dist/ConfigProvider.js +5 -41
  19. package/dist/Context.d.ts +6 -4
  20. package/dist/Context.d.ts.map +1 -1
  21. package/dist/Context.js +4 -3
  22. package/dist/DataDependencies.d.ts +136 -0
  23. package/dist/DataDependencies.d.ts.map +1 -0
  24. package/dist/DataDependencies.js +112 -0
  25. package/dist/DateTime.d.ts +33 -0
  26. package/dist/DateTime.d.ts.map +1 -0
  27. package/dist/DateTime.js +18 -0
  28. package/dist/Effect.d.ts +3 -14
  29. package/dist/Effect.d.ts.map +1 -1
  30. package/dist/Effect.js +8 -26
  31. package/dist/Emailer.d.ts +51 -0
  32. package/dist/Emailer.d.ts.map +1 -0
  33. package/dist/Emailer.js +7 -0
  34. package/dist/Function.d.ts +0 -4
  35. package/dist/Function.d.ts.map +1 -1
  36. package/dist/Function.js +1 -7
  37. package/dist/Layer.d.ts +6 -3
  38. package/dist/Layer.d.ts.map +1 -1
  39. package/dist/Layer.js +3 -2
  40. package/dist/Model/Repository/Registry.d.ts +22 -0
  41. package/dist/Model/Repository/Registry.d.ts.map +1 -0
  42. package/dist/Model/Repository/Registry.js +18 -0
  43. package/dist/Model/Repository/dependency.d.ts +6 -0
  44. package/dist/Model/Repository/dependency.d.ts.map +1 -0
  45. package/dist/Model/Repository/dependency.js +29 -0
  46. package/dist/Model/Repository/ext.d.ts +60 -0
  47. package/dist/Model/Repository/ext.d.ts.map +1 -0
  48. package/dist/Model/Repository/ext.js +124 -0
  49. package/dist/Model/Repository/internal/internal.d.ts +68 -0
  50. package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
  51. package/dist/Model/Repository/internal/internal.js +610 -0
  52. package/dist/Model/Repository/legacy.d.ts +21 -0
  53. package/dist/Model/Repository/legacy.d.ts.map +1 -0
  54. package/dist/Model/Repository/legacy.js +2 -0
  55. package/dist/Model/Repository/makeRepo.d.ts +71 -0
  56. package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
  57. package/dist/Model/Repository/makeRepo.js +30 -0
  58. package/dist/Model/Repository/service.d.ts +121 -0
  59. package/dist/Model/Repository/service.d.ts.map +1 -0
  60. package/dist/Model/Repository/service.js +2 -0
  61. package/dist/Model/Repository/validation.d.ts +72 -0
  62. package/dist/Model/Repository/validation.d.ts.map +1 -0
  63. package/dist/Model/Repository/validation.js +39 -0
  64. package/dist/Model/Repository.d.ts +8 -0
  65. package/dist/Model/Repository.d.ts.map +1 -0
  66. package/dist/Model/Repository.js +8 -0
  67. package/dist/Model/dsl.d.ts +34 -0
  68. package/dist/Model/dsl.d.ts.map +1 -0
  69. package/dist/Model/dsl.js +45 -0
  70. package/dist/Model/filter/filterApi.d.ts +30 -0
  71. package/dist/Model/filter/filterApi.d.ts.map +1 -0
  72. package/dist/Model/filter/filterApi.js +2 -0
  73. package/dist/Model/filter/types/errors.d.ts +29 -0
  74. package/dist/Model/filter/types/errors.d.ts.map +1 -0
  75. package/dist/Model/filter/types/errors.js +2 -0
  76. package/dist/Model/filter/types/fields.d.ts +15 -0
  77. package/dist/Model/filter/types/fields.d.ts.map +1 -0
  78. package/dist/Model/filter/types/fields.js +2 -0
  79. package/dist/Model/filter/types/path/common.d.ts +316 -0
  80. package/dist/Model/filter/types/path/common.d.ts.map +1 -0
  81. package/dist/Model/filter/types/path/common.js +2 -0
  82. package/dist/Model/filter/types/path/eager.d.ts +94 -0
  83. package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
  84. package/dist/Model/filter/types/path/eager.js +36 -0
  85. package/dist/Model/filter/types/path/index.d.ts +4 -0
  86. package/dist/Model/filter/types/path/index.d.ts.map +1 -0
  87. package/dist/Model/filter/types/path/index.js +3 -0
  88. package/dist/Model/filter/types/utils.d.ts +79 -0
  89. package/dist/Model/filter/types/utils.d.ts.map +1 -0
  90. package/dist/Model/filter/types/utils.js +2 -0
  91. package/dist/Model/filter/types/validator.d.ts +30 -0
  92. package/dist/Model/filter/types/validator.d.ts.map +1 -0
  93. package/dist/Model/filter/types/validator.js +2 -0
  94. package/dist/Model/filter/types.d.ts +5 -0
  95. package/dist/Model/filter/types.d.ts.map +1 -0
  96. package/dist/Model/filter/types.js +7 -0
  97. package/dist/Model/query/dsl.d.ts +630 -0
  98. package/dist/Model/query/dsl.d.ts.map +1 -0
  99. package/dist/Model/query/dsl.js +376 -0
  100. package/dist/Model/query/new-kid-interpreter.d.ts +132 -0
  101. package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
  102. package/dist/Model/query/new-kid-interpreter.js +369 -0
  103. package/dist/Model/query.d.ts +15 -0
  104. package/dist/Model/query.d.ts.map +1 -0
  105. package/dist/Model/query.js +3 -0
  106. package/dist/Model.d.ts +6 -0
  107. package/dist/Model.d.ts.map +1 -0
  108. package/dist/Model.js +6 -0
  109. package/dist/NonEmptySet.d.ts +3 -1
  110. package/dist/NonEmptySet.d.ts.map +1 -1
  111. package/dist/NonEmptySet.js +2 -2
  112. package/dist/Option.d.ts +1 -2
  113. package/dist/Option.d.ts.map +1 -1
  114. package/dist/Option.js +3 -7
  115. package/dist/Pure.d.ts +9 -7
  116. package/dist/Pure.d.ts.map +1 -1
  117. package/dist/Pure.js +20 -17
  118. package/dist/QueueMaker.d.ts +11 -0
  119. package/dist/QueueMaker.d.ts.map +1 -0
  120. package/dist/QueueMaker.js +11 -0
  121. package/dist/RequestContext.d.ts +87 -0
  122. package/dist/RequestContext.d.ts.map +1 -0
  123. package/dist/RequestContext.js +45 -0
  124. package/dist/RequestScopedDependencies.d.ts +21 -0
  125. package/dist/RequestScopedDependencies.d.ts.map +1 -0
  126. package/dist/RequestScopedDependencies.js +16 -0
  127. package/dist/Schema/Class.d.ts +163 -16
  128. package/dist/Schema/Class.d.ts.map +1 -1
  129. package/dist/Schema/Class.js +193 -21
  130. package/dist/Schema/FastCheck.d.ts.map +1 -1
  131. package/dist/Schema/SchemaParser.d.ts +5 -0
  132. package/dist/Schema/SchemaParser.d.ts.map +1 -0
  133. package/dist/Schema/SchemaParser.js +6 -0
  134. package/dist/Schema/SpecialJsonSchema.d.ts +15 -2
  135. package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -1
  136. package/dist/Schema/SpecialJsonSchema.js +70 -12
  137. package/dist/Schema/SpecialOpenApi.d.ts +1 -1
  138. package/dist/Schema/SpecialOpenApi.js +3 -3
  139. package/dist/Schema/brand.d.ts +5 -5
  140. package/dist/Schema/brand.d.ts.map +1 -1
  141. package/dist/Schema/brand.js +6 -4
  142. package/dist/Schema/email.d.ts.map +1 -1
  143. package/dist/Schema/email.js +8 -5
  144. package/dist/Schema/ext.d.ts +279 -75
  145. package/dist/Schema/ext.d.ts.map +1 -1
  146. package/dist/Schema/ext.js +330 -72
  147. package/dist/Schema/moreStrings.d.ts +82 -48
  148. package/dist/Schema/moreStrings.d.ts.map +1 -1
  149. package/dist/Schema/moreStrings.js +85 -51
  150. package/dist/Schema/numbers.d.ts +33 -21
  151. package/dist/Schema/numbers.d.ts.map +1 -1
  152. package/dist/Schema/numbers.js +64 -12
  153. package/dist/Schema/phoneNumber.d.ts.map +1 -1
  154. package/dist/Schema/phoneNumber.js +6 -6
  155. package/dist/Schema/schema.d.ts +1 -1
  156. package/dist/Schema/schema.d.ts.map +1 -1
  157. package/dist/Schema/schema.js +2 -2
  158. package/dist/Schema/strings.d.ts +18 -4
  159. package/dist/Schema/strings.d.ts.map +1 -1
  160. package/dist/Schema/strings.js +1 -5
  161. package/dist/Schema.d.ts +224 -7
  162. package/dist/Schema.d.ts.map +1 -1
  163. package/dist/Schema.js +190 -24
  164. package/dist/SchemaAST.d.ts +2 -0
  165. package/dist/SchemaAST.d.ts.map +1 -0
  166. package/dist/SchemaAST.js +2 -0
  167. package/dist/Set.d.ts +4 -1
  168. package/dist/Set.d.ts.map +1 -1
  169. package/dist/Set.js +8 -6
  170. package/dist/Store.d.ts +215 -0
  171. package/dist/Store.d.ts.map +1 -0
  172. package/dist/Store.js +113 -0
  173. package/dist/_ext/Array.d.ts +1 -1
  174. package/dist/_ext/Array.d.ts.map +1 -1
  175. package/dist/_ext/Array.js +4 -2
  176. package/dist/_ext/ord.ext.d.ts +2 -1
  177. package/dist/_ext/ord.ext.d.ts.map +1 -1
  178. package/dist/_ext/ord.ext.js +2 -2
  179. package/dist/builtin.d.ts +2 -14
  180. package/dist/builtin.d.ts.map +1 -1
  181. package/dist/builtin.js +1 -1
  182. package/dist/client/InvalidationKeys.d.ts +30 -0
  183. package/dist/client/InvalidationKeys.d.ts.map +1 -0
  184. package/dist/client/InvalidationKeys.js +37 -0
  185. package/dist/client/apiClientFactory.d.ts +13 -8
  186. package/dist/client/apiClientFactory.d.ts.map +1 -1
  187. package/dist/client/apiClientFactory.js +154 -34
  188. package/dist/client/clientFor.d.ts +48 -13
  189. package/dist/client/clientFor.d.ts.map +1 -1
  190. package/dist/client/clientFor.js +9 -1
  191. package/dist/client/errors.d.ts +74 -28
  192. package/dist/client/errors.d.ts.map +1 -1
  193. package/dist/client/errors.js +41 -10
  194. package/dist/client/makeClient.d.ts +487 -32
  195. package/dist/client/makeClient.d.ts.map +1 -1
  196. package/dist/client/makeClient.js +47 -21
  197. package/dist/client.d.ts +2 -0
  198. package/dist/client.d.ts.map +1 -1
  199. package/dist/client.js +3 -1
  200. package/dist/faker.d.ts.map +1 -1
  201. package/dist/http/Request.d.ts +2 -2
  202. package/dist/http/Request.d.ts.map +1 -1
  203. package/dist/http/Request.js +2 -2
  204. package/dist/http/internal/lib.d.ts +12 -12
  205. package/dist/http/internal/lib.d.ts.map +1 -1
  206. package/dist/http/internal/lib.js +13 -13
  207. package/dist/ids.d.ts +32 -14
  208. package/dist/ids.d.ts.map +1 -1
  209. package/dist/ids.js +38 -7
  210. package/dist/index.d.ts +3 -0
  211. package/dist/index.d.ts.map +1 -1
  212. package/dist/index.js +5 -1
  213. package/dist/middleware.d.ts +12 -6
  214. package/dist/middleware.d.ts.map +1 -1
  215. package/dist/middleware.js +13 -7
  216. package/dist/migration/nativeEffect.d.ts +21 -0
  217. package/dist/migration/nativeEffect.d.ts.map +1 -0
  218. package/dist/migration/nativeEffect.js +598 -0
  219. package/dist/rpc/Invalidation.d.ts +1124 -0
  220. package/dist/rpc/Invalidation.d.ts.map +1 -0
  221. package/dist/rpc/Invalidation.js +178 -0
  222. package/dist/rpc/MiddlewareMaker.d.ts +10 -7
  223. package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
  224. package/dist/rpc/MiddlewareMaker.js +57 -37
  225. package/dist/rpc/RpcContextMap.d.ts +2 -2
  226. package/dist/rpc/RpcContextMap.d.ts.map +1 -1
  227. package/dist/rpc/RpcMiddleware.d.ts +13 -10
  228. package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
  229. package/dist/rpc/RpcMiddleware.js +2 -2
  230. package/dist/rpc.d.ts +1 -1
  231. package/dist/rpc.d.ts.map +1 -1
  232. package/dist/rpc.js +2 -2
  233. package/dist/runtime.d.ts +19 -0
  234. package/dist/runtime.d.ts.map +1 -0
  235. package/dist/runtime.js +40 -0
  236. package/dist/setupRequest.d.ts +20 -0
  237. package/dist/setupRequest.d.ts.map +1 -0
  238. package/dist/setupRequest.js +72 -0
  239. package/dist/toast.d.ts +51 -0
  240. package/dist/toast.d.ts.map +1 -0
  241. package/dist/toast.js +34 -0
  242. package/dist/transform.d.ts +1 -1
  243. package/dist/transform.d.ts.map +1 -1
  244. package/dist/transform.js +4 -5
  245. package/dist/utils/effectify.d.ts +1 -1
  246. package/dist/utils/effectify.d.ts.map +1 -1
  247. package/dist/utils/effectify.js +2 -2
  248. package/dist/utils/extend.d.ts +6 -1
  249. package/dist/utils/extend.d.ts.map +1 -1
  250. package/dist/utils/extend.js +24 -6
  251. package/dist/utils/gen.d.ts +4 -4
  252. package/dist/utils/gen.d.ts.map +1 -1
  253. package/dist/utils/logLevel.d.ts +2 -2
  254. package/dist/utils/logLevel.d.ts.map +1 -1
  255. package/dist/utils/logger.d.ts +2 -1
  256. package/dist/utils/logger.d.ts.map +1 -1
  257. package/dist/utils/logger.js +2 -2
  258. package/dist/utils.d.ts +34 -45
  259. package/dist/utils.d.ts.map +1 -1
  260. package/dist/utils.js +33 -49
  261. package/dist/validation/validators.d.ts.map +1 -1
  262. package/dist/validation.d.ts.map +1 -1
  263. package/dist/withToast.d.ts +30 -0
  264. package/dist/withToast.d.ts.map +1 -0
  265. package/dist/withToast.js +64 -0
  266. package/package.json +25 -266
  267. package/src/Array.ts +7 -39
  268. package/src/Chunk.ts +6 -55
  269. package/src/Config/SecretURL.ts +6 -3
  270. package/src/Config/internal/configSecretURL.ts +2 -2
  271. package/src/Config.ts +6 -13
  272. package/src/ConfigProvider.ts +4 -47
  273. package/src/Context.ts +9 -8
  274. package/src/DataDependencies.ts +171 -0
  275. package/src/DateTime.ts +473 -0
  276. package/src/Effect.ts +10 -32
  277. package/src/Emailer.ts +51 -0
  278. package/src/Function.ts +0 -7
  279. package/src/Inputify.type.ts +1 -1
  280. package/src/Layer.ts +8 -5
  281. package/src/Model/Repository/Registry.ts +35 -0
  282. package/src/Model/Repository/dependency.ts +32 -0
  283. package/src/Model/Repository/ext.ts +374 -0
  284. package/src/Model/Repository/internal/internal.ts +987 -0
  285. package/src/Model/Repository/legacy.ts +29 -0
  286. package/src/Model/Repository/makeRepo.ts +168 -0
  287. package/src/Model/Repository/service.ts +676 -0
  288. package/src/Model/Repository/validation.ts +38 -0
  289. package/src/Model/Repository.ts +7 -0
  290. package/src/Model/dsl.ts +130 -0
  291. package/src/Model/filter/filterApi.ts +78 -0
  292. package/src/Model/filter/types/errors.ts +47 -0
  293. package/src/Model/filter/types/fields.ts +50 -0
  294. package/src/Model/filter/types/path/common.ts +404 -0
  295. package/src/Model/filter/types/path/eager.ts +329 -0
  296. package/src/Model/filter/types/path/index.ts +4 -0
  297. package/src/Model/filter/types/utils.ts +128 -0
  298. package/src/Model/filter/types/validator.ts +46 -0
  299. package/src/Model/filter/types.ts +6 -0
  300. package/src/Model/query/dsl.ts +3092 -0
  301. package/src/Model/query/new-kid-interpreter.ts +531 -0
  302. package/src/Model/query.ts +13 -0
  303. package/src/Model.ts +5 -0
  304. package/src/NonEmptySet.ts +6 -4
  305. package/src/Option.ts +3 -8
  306. package/src/Pure.ts +20 -17
  307. package/src/QueueMaker.ts +11 -0
  308. package/src/RequestContext.ts +48 -0
  309. package/src/RequestScopedDependencies.ts +45 -0
  310. package/src/Schema/Class.ts +550 -56
  311. package/src/Schema/SchemaParser.ts +12 -0
  312. package/src/Schema/SpecialJsonSchema.ts +75 -7
  313. package/src/Schema/SpecialOpenApi.ts +5 -5
  314. package/src/Schema/brand.ts +27 -12
  315. package/src/Schema/email.ts +9 -7
  316. package/src/Schema/ext.ts +405 -95
  317. package/src/Schema/moreStrings.ts +213 -88
  318. package/src/Schema/numbers.ts +107 -29
  319. package/src/Schema/phoneNumber.ts +8 -9
  320. package/src/Schema/schema.ts +1 -1
  321. package/src/Schema/strings.ts +23 -14
  322. package/src/Schema.ts +403 -46
  323. package/src/SchemaAST.ts +1 -0
  324. package/src/Set.ts +10 -5
  325. package/src/Store.ts +325 -0
  326. package/src/_ext/Array.ts +4 -2
  327. package/src/_ext/ord.ext.ts +2 -1
  328. package/src/builtin-json.d.ts +24 -0
  329. package/src/builtin.ts +16 -21
  330. package/src/client/InvalidationKeys.ts +55 -0
  331. package/src/client/apiClientFactory.ts +295 -129
  332. package/src/client/clientFor.ts +101 -33
  333. package/src/client/errors.ts +66 -20
  334. package/src/client/makeClient.ts +519 -60
  335. package/src/client.ts +6 -4
  336. package/src/http/Request.ts +4 -4
  337. package/src/http/internal/lib.ts +12 -12
  338. package/src/http.ts +1 -1
  339. package/src/ids.ts +45 -8
  340. package/src/index.ts +20 -16
  341. package/src/middleware.ts +12 -8
  342. package/src/migration/nativeEffect.ts +645 -0
  343. package/src/rpc/Invalidation.ts +278 -0
  344. package/src/rpc/MiddlewareMaker.ts +86 -79
  345. package/src/rpc/README.md +2 -2
  346. package/src/rpc/RpcContextMap.ts +4 -4
  347. package/src/rpc/RpcMiddleware.ts +18 -13
  348. package/src/rpc.ts +4 -4
  349. package/src/runtime.ts +57 -0
  350. package/src/setupRequest.ts +138 -0
  351. package/src/toast.ts +54 -0
  352. package/src/transform.ts +4 -4
  353. package/src/utils/effectify.ts +1 -1
  354. package/src/utils/extend.ts +24 -5
  355. package/src/utils/gen.ts +7 -7
  356. package/src/utils/logLevel.ts +1 -1
  357. package/src/utils/logger.ts +3 -2
  358. package/src/utils.ts +85 -175
  359. package/src/validation.ts +2 -2
  360. package/src/withToast.ts +133 -0
  361. package/test/dateTimeLocal.test.ts +55 -0
  362. package/test/dist/dateTimeLocal.test.d.ts.map +1 -0
  363. package/test/dist/nativeEffectMigration.test.d.ts.map +1 -0
  364. package/test/dist/rpc.test.d.ts.map +1 -1
  365. package/test/dist/rpcMiddlewareContext.test.d.ts.map +1 -0
  366. package/test/moreStrings.test.ts +55 -10
  367. package/test/nativeEffectMigration.test.ts +77 -0
  368. package/test/rpc.test.ts +28 -11
  369. package/test/rpcMiddlewareContext.test.ts +63 -0
  370. package/test/schema.test.ts +318 -55
  371. package/test/secretURL.test.ts +4 -1
  372. package/test/special.test.ts +663 -131
  373. package/test/utils.test.ts +5 -5
  374. package/tsconfig.base.json +6 -4
  375. package/tsconfig.json +9 -1
  376. package/tsconfig.src.json +29 -29
  377. package/tsconfig.test.json +2 -2
  378. package/dist/Operations.d.ts +0 -124
  379. package/dist/Operations.d.ts.map +0 -1
  380. package/dist/Operations.js +0 -29
  381. package/dist/_ext/date.d.ts +0 -15
  382. package/dist/_ext/date.d.ts.map +0 -1
  383. package/dist/_ext/date.js +0 -16
  384. package/dist/_ext/misc.d.ts +0 -14
  385. package/dist/_ext/misc.d.ts.map +0 -1
  386. package/dist/_ext/misc.js +0 -17
  387. package/eslint.config.mjs +0 -26
  388. package/src/Operations.ts +0 -55
  389. package/src/_ext/date.ts +0 -27
  390. package/src/_ext/misc.ts +0 -46
  391. package/tsconfig.json.bak +0 -12
@@ -1,8 +1,16 @@
1
+ import type * as Cause from "effect/Cause";
1
2
  import * as S from "effect/Schema";
3
+ import type { Struct as EffectAppStruct } from "../Schema.js";
4
+ import * as SchemaAST from "../SchemaAST.js";
5
+ import { copyOrigin } from "../utils.js";
2
6
  type ClassAnnotations<Self> = S.Annotations.Declaration<Self, readonly [any]>;
3
- export interface EnhancedClass<Self, SchemaS extends S.Top & {
7
+ export interface EnhancedClass<Self, SchemaS extends S.Constraint & {
4
8
  readonly fields: S.Struct.Fields;
5
9
  }, Inherited> extends S.Class<Self, SchemaS, Inherited> {
10
+ /**
11
+ * See `copyOrigin` docs in `utils.ts` for return-type design details.
12
+ */
13
+ readonly copy: ReturnType<typeof copyOrigin<new (_: any) => Self>>;
6
14
  }
7
15
  type MissingSelfGeneric<Usage extends string, Params extends string = ""> = `Missing \`Self\` generic - use \`class Self extends ${Usage}<Self>()(${Params}{ ... })\``;
8
16
  type HasFields<Fields extends S.Struct.Fields> = {
@@ -10,9 +18,29 @@ type HasFields<Fields extends S.Struct.Fields> = {
10
18
  } | {
11
19
  readonly from: HasFields<Fields>;
12
20
  };
13
- export type Class<Self, S extends S.Top & {
21
+ type ClassOptions = {
22
+ readonly strict?: boolean;
23
+ };
24
+ export declare const ExtendedSchemaNoEncoded: unique symbol;
25
+ export type ExtendedSchemaNoEncoded = typeof ExtendedSchemaNoEncoded;
26
+ /**
27
+ * Override schema `Encoded` while keeping `Constraint` (intersection, not `Omit`).
28
+ * Free type-params for `Encoded` keep the conditional unresolved — callers that
29
+ * need Encoded overrides use the intersection form of the class factory return type.
30
+ */
31
+ type WithEncoded<SchemaS extends S.Constraint, Encoded> = SchemaS & {
32
+ readonly Encoded: Encoded;
33
+ };
34
+ type ExtendedSchema<SchemaS extends S.Constraint & {
35
+ readonly fields: S.Struct.Fields;
36
+ }, Encoded> = [
37
+ Encoded
38
+ ] extends [ExtendedSchemaNoEncoded] ? SchemaS : WithEncoded<SchemaS, Encoded>;
39
+ /** Struct fields schema, optionally with a caller-supplied Encoded override. */
40
+ type ClassFieldsSchema<Fields extends S.Struct.Fields, Encoded> = ExtendedSchema<S.Struct<Fields>, Encoded>;
41
+ export type Class<Self, S extends S.Constraint & {
14
42
  readonly fields: S.Struct.Fields;
15
- }, Inherited> = S.Class<Self, S, Inherited>;
43
+ }, Inherited> = EnhancedClass<Self, S, Inherited>;
16
44
  /**
17
45
  * Like `Schema.Class`, but the resulting class accepts plain objects matching
18
46
  * the struct schema during encoding — not only `instanceof` or type-id
@@ -20,7 +48,7 @@ export type Class<Self, S extends S.Top & {
20
48
  *
21
49
  * @example
22
50
  * ```ts
23
- * import { Schema } from "effect"
51
+ * import * as Schema from "effect/Schema"
24
52
  * import { Class } from "./Class.js"
25
53
  *
26
54
  * class A extends Class<A>("A")({ a: Schema.String }) {}
@@ -32,14 +60,14 @@ export type Class<Self, S extends S.Top & {
32
60
  * Schema.encodeUnknownSync(A)({ a: "hello" }) // { a: "hello" }
33
61
  * ```
34
62
  */
35
- export declare const Class: <Self = never>(identifier: string) => <Fields extends S.Struct.Fields>(fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>) => [Self] extends [never] ? MissingSelfGeneric<"Class"> : EnhancedClass<Self, S.Struct<Fields>, {}>;
63
+ export declare const Class: <Self = never, Encoded = ExtendedSchemaNoEncoded, Brand = {}>(identifier: string) => <Fields extends S.Struct.Fields>(fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"Class"> : EnhancedClass<Self, ClassFieldsSchema<Fields, Encoded>, Brand>;
36
64
  /**
37
65
  * Like `Schema.TaggedClass`, but the resulting class accepts plain objects
38
66
  * matching the struct schema during encoding.
39
67
  *
40
68
  * @example
41
69
  * ```ts
42
- * import { Schema } from "effect"
70
+ * import * as Schema from "effect/Schema"
43
71
  * import { TaggedClass } from "./Class.js"
44
72
  *
45
73
  * class Circle extends TaggedClass<Circle>()("Circle", {
@@ -49,17 +77,136 @@ export declare const Class: <Self = never>(identifier: string) => <Fields extend
49
77
  * Schema.encodeUnknownSync(Circle)({ _tag: "Circle", radius: 5 })
50
78
  * ```
51
79
  */
52
- export declare const TaggedClass: <Self = never>(identifier?: string) => <Tag extends string, Fields extends S.Struct.Fields>(tag: Tag, fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>) => [Self] extends [never] ? MissingSelfGeneric<"TaggedClass"> : EnhancedClass<Self, S.Struct<{
80
+ export declare const TaggedClass: <Self = never, Encoded = ExtendedSchemaNoEncoded, Brand = {}>(identifier?: string) => <Tag extends string, Fields extends S.Struct.Fields>(tag: Tag, fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"TaggedClass"> : EnhancedClass<Self, ClassFieldsSchema<{
53
81
  readonly _tag: S.tag<Tag>;
54
- } & Fields>, {}>;
55
- export declare const ExtendedClass: <Self, _SelfFrom>(identifier: string) => <Fields extends S.Struct.Fields>(fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>) => EnhancedClass<Self, S.Struct<Fields>, {}>;
56
- export interface EnhancedTaggedClass<Self, Tag extends string, Fields extends S.Struct.Fields, SelfFrom> extends EnhancedClass<Self, S.Struct<Fields> & {
57
- readonly Encoded: SelfFrom;
58
- }, {}> {
59
- readonly _tag: Tag;
60
- }
61
- export declare const ExtendedTaggedClass: <Self, SelfFrom>(identifier?: string) => <Tag extends string, Fields extends S.Struct.Fields>(tag: Tag, fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>) => EnhancedTaggedClass<Self, Tag, {
82
+ } & Fields, Encoded>, Brand>;
83
+ export declare const ErrorClass: <Self = never, Encoded = ExtendedSchemaNoEncoded, Brand = {}>(identifier: string) => <Fields extends S.Struct.Fields>(fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"ErrorClass"> : EnhancedClass<Self, ClassFieldsSchema<Fields, Encoded>, Cause.YieldableError & Brand>;
84
+ export declare const TaggedErrorClass: <Self = never, Encoded = ExtendedSchemaNoEncoded, Brand = {}>(identifier?: string) => <Tag extends string, Fields extends S.Struct.Fields>(tag: Tag, fieldsOr: Fields | HasFields<Fields>, annotations?: ClassAnnotations<Self>, options?: ClassOptions) => [Self] extends [never] ? MissingSelfGeneric<"TaggedErrorClass"> : EnhancedClass<Self, ClassFieldsSchema<{
62
85
  readonly _tag: S.tag<Tag>;
63
- } & Fields, SelfFrom>;
86
+ } & Fields, Encoded>, Cause.YieldableError & Brand>;
87
+ export interface Opaque<Self, Encoded, SchemaS extends S.Top, Brand> extends S.Opaque<Self, SchemaS, Brand> {
88
+ readonly "Encoded": Encoded extends ExtendedSchemaNoEncoded ? SchemaS["Encoded"] : Encoded;
89
+ }
90
+ export declare const Opaque: <Self, Encoded = ExtendedSchemaNoEncoded, Brand = {}>() => <S extends S.Top>(schema: S) => Opaque<Self, Encoded, S, Brand> & Omit<S, keyof S.Top>;
91
+ /**
92
+ * Like {@link Opaque}, but the class **instance type is exactly `Self`** (the supplied
93
+ * decoded `Type`) instead of the structurally-computed `struct["Type"] & Brand`.
94
+ *
95
+ * Stock `Opaque` types the instance as `struct["Type"] & Brand` and only overrides the
96
+ * schema's `Type`/`Encoded` *members* with `Self`/`Encoded`. So `make`/`copy`/consumers
97
+ * still resolve the struct's mapped `Type`. With a codegen-supplied pre-expanded literal
98
+ * `Type` interface, `OpaqueType` lets all of those resolve a single **named** interface
99
+ * (resolved once per checker) instead of re-deriving the mapped `Type` — cutting
100
+ * instantiation on `Type`-touching consumers.
101
+ *
102
+ * Use with `class X extends OpaqueType<X.Type, X.Encoded>()(struct) {}` where `X.Type`
103
+ * and `X.Encoded` are generated literal interfaces (see `@effect-app/eslint-codegen-model`,
104
+ * `static` + `type` mode).
105
+ *
106
+ * KNOWN GAP — **no branding**: the instance type is a plain structural `Self`, so opaque
107
+ * types of identical shape are mutually assignable. (Stock `Opaque` is also structural by
108
+ * default — `Brand` defaults to `{}` — so this only differs if you passed a non-default
109
+ * `Brand`.) Re-introducing a nominal brand on top of a supplied `Self` (e.g. branding the
110
+ * generated `Type` interface) is not yet implemented.
111
+ *
112
+ * NOTE: only `Type` (via `Self`) and `Encoded` are supplied statically here; `make`'s input
113
+ * (`~type.make.in`) and other derived members are still computed from the struct. See
114
+ * a future `OpaqueShape`-style helper if those also need to be supplied.
115
+ */
116
+ export interface OpaqueType<Self, Encoded, SchemaS extends S.Top, Brand> extends S.Opaque<Self, SchemaS, Brand> {
117
+ readonly "Encoded": Encoded extends ExtendedSchemaNoEncoded ? SchemaS["Encoded"] : Encoded;
118
+ new (_: never): Self;
119
+ }
120
+ export declare const OpaqueType: <Self, Encoded = ExtendedSchemaNoEncoded, Brand = {}>() => <S extends S.Top>(schema: S) => OpaqueType<Self, Encoded, S, Brand> & Omit<S, keyof S.Top>;
121
+ type OpaqueFacadeConstructorArgs<MakeIn> = {} extends MakeIn ? [props?: MakeIn, options?: S.MakeOptions] : [props: MakeIn, options?: S.MakeOptions];
122
+ type OpaqueFacadeInput<DecodingServices, EncodingServices> = S.Top & {
123
+ readonly DecodingServices: DecodingServices;
124
+ readonly EncodingServices: EncodingServices;
125
+ };
126
+ type OpaqueClassFacadeInput<DecodingServices, EncodingServices> = OpaqueFacadeInput<DecodingServices, EncodingServices> & (abstract new (...args: Array<never>) => unknown);
127
+ type OpaqueFacadeStatics<SchemaS extends S.Top> = Omit<SchemaS, Exclude<keyof S.Top, "to"> | "prototype">;
128
+ /**
129
+ * Like {@link OpaqueType}, but ALSO supplies a static **make-input** shape, so
130
+ * `make`/`copy` resolve a named `MakeIn` interface instead of re-deriving the struct's
131
+ * mapped `~type.make.in`. Use with codegen-supplied `X.Type` / `X.Encoded` / `X.Make`:
132
+ *
133
+ * ```ts
134
+ * class X extends OpaqueShape<X.Type, X.Encoded, X.Make>()(struct) {}
135
+ * ```
136
+ *
137
+ * `decode`/`encode` already use the supplied `Type`/`Encoded` (they read the schema's
138
+ * `Type`/`Encoded` members, which are `Self`/`Encoded` here) — no separate override needed.
139
+ *
140
+ * NOTE — measured gain is modest (~5%): the struct passed to the wrapper is still
141
+ * constructed in full (definition cost dominates); the static shapes only cheapen
142
+ * consumer-side reads of `Type`/`Encoded`/`MakeIn`. Same `no-branding` gap as
143
+ * {@link OpaqueType}.
144
+ */
145
+ export interface OpaqueShape<Self, Encoded, MakeIn, SchemaS extends S.Top, Brand> extends S.Opaque<Self, SchemaS, Brand> {
146
+ readonly "Encoded": Encoded;
147
+ readonly "~type.make.in": MakeIn;
148
+ new (_: never): Self;
149
+ }
150
+ export declare const OpaqueShape: <Self, Encoded, MakeIn, Brand = {}>() => <S extends S.Top>(schema: S) => OpaqueShape<Self, Encoded, MakeIn, S, Brand> & Omit<S, keyof S.Top>;
151
+ /**
152
+ * Shallow public view for generated model facades.
153
+ *
154
+ * The runtime value can still be the full private schema class, but emitted
155
+ * declarations expose only named `Type` / `Encoded` / `Make` interfaces and a
156
+ * small static surface. This keeps downstream project references from pulling
157
+ * the private struct field map back through `typeof Model`.
158
+ */
159
+ export interface OpaqueFacade<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}> extends S.Bottom<Self, Encoded, DecodingServices, EncodingServices, SchemaAST.AST, S.Codec<Self, Encoded, DecodingServices, EncodingServices>, MakeIn, Self, readonly [], MakeIn> {
160
+ new (_: never): Brand;
161
+ readonly copy: ReturnType<typeof copyOrigin<new (_: MakeIn) => Self>>;
162
+ }
163
+ export interface OpaqueClassFacade<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}> extends S.Bottom<Self, Encoded, DecodingServices, EncodingServices, SchemaAST.AST, S.Codec<Self, Encoded, DecodingServices, EncodingServices>, MakeIn, Self, readonly [], MakeIn> {
164
+ new (...args: OpaqueFacadeConstructorArgs<MakeIn>): Brand;
165
+ readonly copy: ReturnType<typeof copyOrigin<new (_: MakeIn) => Self>>;
166
+ readonly identifier: string;
167
+ }
168
+ export declare function OpaqueFacade<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}>(): {
169
+ <SchemaS extends OpaqueClassFacadeInput<DecodingServices, EncodingServices>>(schema: SchemaS): OpaqueClassFacade<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Brand> & OpaqueFacadeStatics<SchemaS>;
170
+ <SchemaS extends OpaqueFacadeInput<DecodingServices, EncodingServices>>(schema: SchemaS): OpaqueFacade<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Brand> & OpaqueFacadeStatics<SchemaS>;
171
+ };
172
+ /**
173
+ * Like class-schema {@link OpaqueFacade}, but for error models (`TaggedErrorClass` /
174
+ * `ErrorClass`). The decoded instance type carries `Cause.YieldableError`, so
175
+ * `yield* new MyError(...)`, `Effect.fail(myError)`, and `instanceof` all keep
176
+ * working through the facade — the runtime `_X` is the real error class (the
177
+ * facade `X extends ...(_X)` inherits its prototype), and the type reflects it.
178
+ * Nothing is lost vs the underlying error class.
179
+ */
180
+ export interface OpaqueErrorFacadeClass<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}> extends S.Bottom<Self, Encoded, DecodingServices, EncodingServices, SchemaAST.AST, S.Codec<Self, Encoded, DecodingServices, EncodingServices>, MakeIn, Self, readonly [], MakeIn> {
181
+ new (...args: OpaqueFacadeConstructorArgs<MakeIn>): Cause.YieldableError & Brand;
182
+ readonly copy: ReturnType<typeof copyOrigin<new (_: MakeIn) => Self>>;
183
+ readonly identifier: string;
184
+ }
185
+ export declare function OpaqueErrorFacadeClass<Self, Encoded, MakeIn, DecodingServices = never, EncodingServices = DecodingServices, Brand = {}>(): <SchemaS extends OpaqueClassFacadeInput<DecodingServices, EncodingServices>>(schema: SchemaS) => OpaqueErrorFacadeClass<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Brand> & OpaqueFacadeStatics<SchemaS>;
186
+ /**
187
+ * Workflow-compatible struct facade.
188
+ *
189
+ * A top-level `const X = S.Struct(...)` / `S.TaggedStruct(...)` schema model whose `.d.ts`
190
+ * is produced by the schema-aware declaration emitter is retyped from the giant inline
191
+ * `S.Struct<{ ...fields... }>` to this facade.
192
+ *
193
+ * Unlike {@link OpaqueFacade}, `StructFacade` **extends effect-app's `Struct<Fields>`**, so the
194
+ * value is still a real (effect-app) struct schema: it satisfies `Workflow.AnyStructSchema` and
195
+ * the `Struct<Fields & Context>` reconstruction the workflow machinery performs, and `Union` /
196
+ * `.fields.x` keep working. It MUST be effect-app's `Struct` (not effect core's) — scanner
197
+ * models are effect-app `S.Struct`, so a facade built on `effect/Schema`'s `Struct` is not
198
+ * assignable where an effect-app struct is expected. At the same time the type-level members
199
+ * (`Type` / `Encoded` / make-input / services) are pinned to the named interfaces the emitter
200
+ * generates in `namespace X`, so consumers reference those by name instead of re-deriving them
201
+ * from `Fields` on every use. `Fields` is the model's own generated `X.Fields` interface — a
202
+ * single materialization of the (expensive) field shape that every reference site points at.
203
+ */
204
+ export type StructFacade<Self, Encoded, MakeIn, DecodingServices, EncodingServices, Fields extends S.Struct.Fields> = Omit<EffectAppStruct<Fields>, "Type" | "Encoded" | "~type.make.in" | "DecodingServices" | "EncodingServices"> & {
205
+ readonly "Type": Self;
206
+ readonly "Encoded": Encoded;
207
+ readonly "~type.make.in": MakeIn;
208
+ readonly "DecodingServices": DecodingServices;
209
+ readonly "EncodingServices": EncodingServices;
210
+ };
64
211
  export {};
65
212
  //# sourceMappingURL=Class.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../../src/Schema/Class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../../src/Schema/Class.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,29 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Effect, Option, Schema, SchemaAST, SchemaIssue } from "effect";
1
+ import * as Effect from "effect/Effect";
3
2
  import * as S from "effect/Schema";
3
+ import * as SchemaGetter from "effect/SchemaGetter";
4
+ import * as SchemaIssue from "effect/SchemaIssue";
5
+ import * as SchemaTransformation from "effect/SchemaTransformation";
6
+ import * as SchemaAST from "../SchemaAST.js";
7
+ import { copyOrigin } from "../utils.js";
8
+ import { concurrencyUnbounded } from "./ext.js";
9
+ import * as SchemaParser from "./SchemaParser.js";
4
10
  /**
5
11
  * Build a modified Declaration that accepts struct-matching values during
6
12
  * encoding, given the original Declaration and the class's fields.
7
13
  */
8
14
  function makeRelaxedDeclaration(ast, fields, cls) {
9
- const structSchema = Schema.Struct(fields);
10
- const isStructValue = Schema.is(structSchema);
11
- return new SchemaAST.Declaration(ast.typeParameters, () => (input, self) => {
12
- if (input instanceof cls || isStructValue(input)) {
15
+ const parseOptions = ast.annotations?.["parseOptions"];
16
+ const structSchema = S.Struct(fields);
17
+ const annotatedStruct = parseOptions ? S.toType(structSchema).annotate({ parseOptions }) : S.toType(structSchema);
18
+ const decodeStruct = SchemaParser.decodeUnknownEffect(annotatedStruct);
19
+ return new SchemaAST.Declaration(ast.typeParameters, () => (input, self, options) => {
20
+ if (input instanceof cls) {
13
21
  return Effect.succeed(input);
14
22
  }
15
- return Effect.fail(new SchemaIssue.InvalidType(self, Option.some(input)));
23
+ if (input !== null && typeof input === "object") {
24
+ return decodeStruct(input, options);
25
+ }
26
+ return Effect.fail(new SchemaIssue.InvalidType(self, input));
16
27
  }, ast.annotations, ast.checks, ast.encoding, ast.context);
17
28
  }
18
29
  // ---------------------------------------------------------------------------
@@ -25,8 +36,8 @@ function makeRelaxedDeclaration(ast, fields, cls) {
25
36
  *
26
37
  * @example
27
38
  * ```ts
28
- * import { Schema } from "effect"
29
- * import { Class } from "./Class.js"
39
+ * import * as Schema from "effect/Schema"
40
+ * import { Class } from "./Class.ts"
30
41
  *
31
42
  * class A extends Class<A>("A")({ a: Schema.String }) {}
32
43
  *
@@ -37,14 +48,24 @@ function makeRelaxedDeclaration(ast, fields, cls) {
37
48
  * Schema.encodeUnknownSync(A)({ a: "hello" }) // { a: "hello" }
38
49
  * ```
39
50
  */
40
- export const Class = (identifier) => (fields, annotations) => {
51
+ export const Class = (identifier) => (fields, annotations, options) => {
52
+ const relaxed = options?.strict === false;
41
53
  // Build the original Schema.Class
42
- const Base = S.Class(identifier)(fields, annotations);
54
+ const Base = S.Class(identifier)(fields, { ...concurrencyUnbounded, ...annotations });
43
55
  // Get the original ast getter from the base class
44
56
  const originalAstDescriptor = Object.getOwnPropertyDescriptor(Base, "ast");
45
57
  // Cache per-class to avoid recomputing
46
58
  const astCache = new WeakMap();
59
+ const copyCache = new WeakMap();
47
60
  return class extends Base {
61
+ static get copy() {
62
+ let cached = copyCache.get(this);
63
+ if (cached === undefined) {
64
+ cached = copyOrigin(this);
65
+ copyCache.set(this, cached);
66
+ }
67
+ return cached;
68
+ }
48
69
  static get ast() {
49
70
  let cached = astCache.get(this);
50
71
  if (cached !== undefined)
@@ -52,10 +73,13 @@ export const Class = (identifier) => (fields, annotations) => {
52
73
  // Call the original getter with `this` bound to the actual user class,
53
74
  // so getClassSchema(this) creates a schema that uses `new this(...)`.
54
75
  const originalAst = originalAstDescriptor.get.call(this);
55
- cached = makeRelaxedDeclaration(originalAst, Base.fields, this);
76
+ cached = relaxed ? makeRelaxedDeclaration(originalAst, Base.fields, this) : originalAst;
56
77
  astCache.set(this, cached);
57
78
  return cached;
58
79
  }
80
+ static mapFields(f, options) {
81
+ return Base.mapFields(f, options).annotate(concurrencyUnbounded);
82
+ }
59
83
  };
60
84
  };
61
85
  // ---------------------------------------------------------------------------
@@ -67,8 +91,8 @@ export const Class = (identifier) => (fields, annotations) => {
67
91
  *
68
92
  * @example
69
93
  * ```ts
70
- * import { Schema } from "effect"
71
- * import { TaggedClass } from "./Class.js"
94
+ * import * as Schema from "effect/Schema"
95
+ * import { TaggedClass } from "./Class.ts"
72
96
  *
73
97
  * class Circle extends TaggedClass<Circle>()("Circle", {
74
98
  * radius: Schema.Number
@@ -77,25 +101,173 @@ export const Class = (identifier) => (fields, annotations) => {
77
101
  * Schema.encodeUnknownSync(Circle)({ _tag: "Circle", radius: 5 })
78
102
  * ```
79
103
  */
80
- export const TaggedClass = (identifier) => (tag, fields, annotations) => {
81
- const Base = S.TaggedClass(identifier)(tag, fields, annotations);
104
+ export const TaggedClass = (identifier) => (tag, fields, annotations, options) => {
105
+ const relaxed = options?.strict === false;
106
+ const Base = S.TaggedClass(identifier)(tag, fields, { ...concurrencyUnbounded, ...annotations });
107
+ const originalAstDescriptor = Object.getOwnPropertyDescriptor(Base, "ast");
108
+ const astCache = new WeakMap();
109
+ const copyCache = new WeakMap();
110
+ return class extends Base {
111
+ static get copy() {
112
+ let cached = copyCache.get(this);
113
+ if (cached === undefined) {
114
+ cached = copyOrigin(this);
115
+ copyCache.set(this, cached);
116
+ }
117
+ return cached;
118
+ }
119
+ static get ast() {
120
+ let cached = astCache.get(this);
121
+ if (cached !== undefined)
122
+ return cached;
123
+ const originalAst = originalAstDescriptor.get.call(this);
124
+ cached = relaxed ? makeRelaxedDeclaration(originalAst, Base.fields, this) : originalAst;
125
+ astCache.set(this, cached);
126
+ return cached;
127
+ }
128
+ static mapFields(f, options) {
129
+ return Base.mapFields(f, options).annotate(concurrencyUnbounded);
130
+ }
131
+ };
132
+ };
133
+ // ---------------------------------------------------------------------------
134
+ // ErrorClass — like Schema.ErrorClass but with relaxed encoding
135
+ // ---------------------------------------------------------------------------
136
+ export const ErrorClass = (identifier) => (fields, annotations, options) => {
137
+ const relaxed = options?.strict === false;
138
+ const Base = S.Error(identifier)(fields, { ...concurrencyUnbounded, ...annotations });
82
139
  const originalAstDescriptor = Object.getOwnPropertyDescriptor(Base, "ast");
83
140
  const astCache = new WeakMap();
141
+ const copyCache = new WeakMap();
84
142
  return class extends Base {
143
+ static get copy() {
144
+ let cached = copyCache.get(this);
145
+ if (cached === undefined) {
146
+ cached = copyOrigin(this);
147
+ copyCache.set(this, cached);
148
+ }
149
+ return cached;
150
+ }
85
151
  static get ast() {
86
152
  let cached = astCache.get(this);
87
153
  if (cached !== undefined)
88
154
  return cached;
89
155
  const originalAst = originalAstDescriptor.get.call(this);
90
- cached = makeRelaxedDeclaration(originalAst, Base.fields, this);
156
+ cached = relaxed ? makeRelaxedDeclaration(originalAst, Base.fields, this) : originalAst;
91
157
  astCache.set(this, cached);
92
158
  return cached;
93
159
  }
160
+ static mapFields(f, options) {
161
+ return Base.mapFields(f, options).annotate(concurrencyUnbounded);
162
+ }
94
163
  };
95
164
  };
96
165
  // ---------------------------------------------------------------------------
97
- // ExtendedClass — like Class but with extra type parameter for hierarchies
166
+ // TaggedErrorClass — like Schema.TaggedErrorClass but with relaxed encoding
98
167
  // ---------------------------------------------------------------------------
99
- export const ExtendedClass = Class;
100
- export const ExtendedTaggedClass = TaggedClass;
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2NoZW1hL0NsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUN2RSxPQUFPLEtBQUssQ0FBQyxNQUFNLGVBQWUsQ0FBQTtBQW1CbEM7OztHQUdHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FDN0IsR0FBMEIsRUFDMUIsTUFBNEIsRUFDNUIsR0FBUTtJQUVSLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDMUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUM3QyxPQUFPLElBQUksU0FBUyxDQUFDLFdBQVcsQ0FDOUIsR0FBRyxDQUFDLGNBQWMsRUFDbEIsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFjLEVBQUUsSUFBMkIsRUFBRSxFQUFFO1FBQ3BELElBQUksS0FBSyxZQUFZLEdBQUcsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUIsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzNFLENBQUMsRUFDRCxHQUFHLENBQUMsV0FBVyxFQUNmLEdBQUcsQ0FBQyxNQUFNLEVBQ1YsR0FBRyxDQUFDLFFBQVEsRUFDWixHQUFHLENBQUMsT0FBTyxDQUNaLENBQUE7QUFDSCxDQUFDO0FBRUQsOEVBQThFO0FBQzlFLHNEQUFzRDtBQUN0RCw4RUFBOEU7QUFF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
168
+ export const TaggedErrorClass = (identifier) => (tag, fields, annotations, options) => {
169
+ const relaxed = options?.strict === false;
170
+ const Base = S.TaggedError(identifier)(tag, fields, { ...concurrencyUnbounded, ...annotations });
171
+ const originalAstDescriptor = Object.getOwnPropertyDescriptor(Base, "ast");
172
+ const astCache = new WeakMap();
173
+ const copyCache = new WeakMap();
174
+ return class extends Base {
175
+ static get copy() {
176
+ let cached = copyCache.get(this);
177
+ if (cached === undefined) {
178
+ cached = copyOrigin(this);
179
+ copyCache.set(this, cached);
180
+ }
181
+ return cached;
182
+ }
183
+ static get ast() {
184
+ let cached = astCache.get(this);
185
+ if (cached !== undefined)
186
+ return cached;
187
+ const originalAst = originalAstDescriptor.get.call(this);
188
+ cached = relaxed ? makeRelaxedDeclaration(originalAst, Base.fields, this) : originalAst;
189
+ astCache.set(this, cached);
190
+ return cached;
191
+ }
192
+ static mapFields(f, options) {
193
+ return Base.mapFields(f, options).annotate(concurrencyUnbounded);
194
+ }
195
+ };
196
+ };
197
+ export const Opaque = S.Opaque;
198
+ export const OpaqueType = S.Opaque;
199
+ // Class schemas expose a constructor descriptor under this key (was previously
200
+ // identified via a `~effect/Schema/Class` annotation id).
201
+ const ConstructorAnnotationKey = "~constructor";
202
+ const getOwnOrInheritedPropertyDescriptor = (value, property) => {
203
+ let current = value;
204
+ while (current !== null) {
205
+ const descriptor = Object.getOwnPropertyDescriptor(current, property);
206
+ if (descriptor !== undefined)
207
+ return descriptor;
208
+ current = Object.getPrototypeOf(current);
209
+ }
210
+ };
211
+ const isClassSchemaConstructor = (value) => {
212
+ if (typeof value !== "function")
213
+ return false;
214
+ // Transformed schemas (e.g. `Class.pipe(S.encodeKeys(...))`) are also functions with a
215
+ // Declaration AST that still carries `~constructor`, but they are not constructable classes.
216
+ // Real Schema.Class constructors expose a static `identifier`.
217
+ if (typeof value.identifier !== "string")
218
+ return false;
219
+ const ast = value.ast;
220
+ return SchemaAST.isAST(ast)
221
+ && SchemaAST.isDeclaration(ast)
222
+ && ast.annotations?.[ConstructorAnnotationKey] !== undefined;
223
+ };
224
+ const getFacadeClassSchema = (schema) => {
225
+ if (isClassSchemaConstructor(schema))
226
+ return schema;
227
+ const target = "to" in schema ? schema.to : undefined;
228
+ return isClassSchemaConstructor(target) ? target : undefined;
229
+ };
230
+ const makePublicClassTransformation = (Public) => new SchemaTransformation.Transformation(SchemaGetter.transform((input) => Reflect.construct(Public, [input], Public)), SchemaGetter.passthrough());
231
+ const makeFacadeClassAst = (schema, originalAst, Public) => {
232
+ if (SchemaAST.isDeclaration(schema.ast)) {
233
+ const schemaEncoding = schema.ast.encoding ?? [];
234
+ if (schemaEncoding.length > 0) {
235
+ return new SchemaAST.Declaration(schema.ast.typeParameters, schema.ast.run, schema.ast.annotations, schema.ast.checks, [new SchemaAST.Link(schemaEncoding[0].to, makePublicClassTransformation(Public)), ...schemaEncoding.slice(1)], schema.ast.context, schema.ast.encodingChecks);
236
+ }
237
+ }
238
+ return schema.rebuild(originalAst).ast;
239
+ };
240
+ export const OpaqueShape = S.Opaque;
241
+ export function OpaqueFacade() {
242
+ function facade(schema) {
243
+ const Base = getFacadeClassSchema(schema);
244
+ if (Base !== undefined) {
245
+ const astCache = new WeakMap();
246
+ const originalAstDescriptor = getOwnOrInheritedPropertyDescriptor(Base, "ast");
247
+ return class extends Base {
248
+ static get ast() {
249
+ let cached = astCache.get(this);
250
+ if (cached !== undefined)
251
+ return cached;
252
+ const originalAst = originalAstDescriptor?.get?.call(this);
253
+ cached = makeFacadeClassAst(schema, originalAst, this);
254
+ astCache.set(this, cached);
255
+ return cached;
256
+ }
257
+ };
258
+ }
259
+ class Facade {
260
+ }
261
+ return Object.setPrototypeOf(Facade, schema);
262
+ }
263
+ return facade;
264
+ }
265
+ export function OpaqueErrorFacadeClass() {
266
+ return (schema) => {
267
+ if (isClassSchemaConstructor(schema)) {
268
+ return schema;
269
+ }
270
+ throw new TypeError("OpaqueErrorFacadeClass requires a class schema");
271
+ };
272
+ }
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU2NoZW1hL0NsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sS0FBSyxDQUFDLE1BQU0sZUFBZSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxZQUFZLE1BQU0scUJBQXFCLENBQUE7QUFDbkQsT0FBTyxLQUFLLFdBQVcsTUFBTSxvQkFBb0IsQ0FBQTtBQUNqRCxPQUFPLEtBQUssb0JBQW9CLE1BQU0sNkJBQTZCLENBQUE7QUFFbkUsT0FBTyxLQUFLLFNBQVMsTUFBTSxpQkFBaUIsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUMvQyxPQUFPLEtBQUssWUFBWSxNQUFNLG1CQUFtQixDQUFBO0FBb0RqRDs7O0dBR0c7QUFDSCxTQUFTLHNCQUFzQixDQUM3QixHQUEwQixFQUMxQixNQUF1QixFQUN2QixHQUFRO0lBRVIsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLGNBQWMsQ0FBdUMsQ0FBQTtJQUM1RixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3JDLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ2pILE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUV0RSxPQUFPLElBQUksU0FBUyxDQUFDLFdBQVcsQ0FDOUIsR0FBRyxDQUFD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
@@ -1 +1 @@
1
- {"version":3,"file":"FastCheck.d.ts","sourceRoot":"","sources":["../../src/Schema/FastCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAErC,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,KAAK,EAAE,GAAG,OAAO,EAAE,CAAA;AAEnB,YAAY,EAAE,EAAE,EAAE,CAAA;AAElB,eAAO,MAAM,QAAQ,+BAA+B,CAAA;AACpD,eAAO,MAAM,WAAW,QAAyB,CAAA;AAIjD,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,MAAM,IAAI,EAAE,yBACsB,CAAA;AAGtF,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,yBACL,CAAA;AAItF,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,yBACF,CAAA"}
1
+ {"version":3,"file":"FastCheck.d.ts","sourceRoot":"","sources":["../../src/Schema/FastCheck.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AAErC,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,KAAK,EAAE,GAAG,OAAO,EAAE,CAAA;AAEnB,YAAY,EAAE,EAAE,EAAE,CAAA;AAElB,eAAO,MAAM,QAAQ,+BAA+B,CAAA;AACpD,eAAO,MAAM,WAAW,QAAyB,CAAA;AAIjD,eAAO,MAAM,WAAW,QAAS,MAAM,OAAO,MAAM,UAAU,EAAE,yBACsB,CAAA;AAGtF,eAAO,MAAM,WAAW,QAAS,MAAM,OAAO,MAAM,UAAU,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,yBACL,CAAA;AAItF,eAAO,MAAM,OAAO,QAAS,MAAM,OAAO,MAAM,UAAU,IAAI,CAAC,EAAE,EAAE,OAAO,GAAG,SAAS,CAAC,yBACF,CAAA"}
@@ -0,0 +1,5 @@
1
+ import * as SchemaParser from "effect/SchemaParser";
2
+ export * from "effect/SchemaParser";
3
+ export declare const decodeEffectConcurrently: typeof SchemaParser.decodeEffect;
4
+ export declare const decodeUnknownEffectConcurrently: typeof SchemaParser.decodeUnknownEffect;
5
+ //# sourceMappingURL=SchemaParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaParser.d.ts","sourceRoot":"","sources":["../../src/Schema/SchemaParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,qBAAqB,CAAA;AAGnD,cAAc,qBAAqB,CAAA;AAEnC,eAAO,MAAM,wBAAwB,EAAE,OAAO,YAAY,CAAC,YAE1D,CAAA;AAED,eAAO,MAAM,+BAA+B,EAAE,OAAO,YAAY,CAAC,mBAEjE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import * as SchemaParser from "effect/SchemaParser";
2
+ import { withDefaultParseOptions } from "./ext.js";
3
+ export * from "effect/SchemaParser";
4
+ export const decodeEffectConcurrently = withDefaultParseOptions(SchemaParser.decodeEffect);
5
+ export const decodeUnknownEffectConcurrently = withDefaultParseOptions(SchemaParser.decodeUnknownEffect);
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZW1hUGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1NjaGVtYS9TY2hlbWFQYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFlBQVksTUFBTSxxQkFBcUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFbEQsY0FBYyxxQkFBcUIsQ0FBQTtBQUVuQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBcUMsdUJBQXVCLENBQy9GLFlBQVksQ0FBQyxZQUFZLENBQzFCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBNEMsdUJBQXVCLENBQzdHLFlBQVksQ0FBQyxtQkFBbUIsQ0FDakMsQ0FBQSJ9
@@ -2,7 +2,8 @@
2
2
  * SpecialJsonSchema — A variant of Schema.toJsonSchemaDocument that
3
3
  * post-processes the output (e.g. flattens simple allOf).
4
4
  */
5
- import { type JsonSchema, type Schema } from "effect";
5
+ import type * as JsonSchema from "effect/JsonSchema";
6
+ import * as Schema from "effect/Schema";
6
7
  /**
7
8
  * Converts a schema to a JSON Schema Document (draft-2020-12), with
8
9
  * post-processing that flattens simple allOf entries.
@@ -15,7 +16,19 @@ export declare function specialJsonSchemaDocument(schema: Schema.Top, options?:
15
16
  */
16
17
  export declare function flattenSimpleAllOf(obj: unknown): unknown;
17
18
  /**
18
- * Applies JSON Schema post-processing: flattens simple allOf.
19
+ * Recursively removes `additionalProperties: false` from JSON Schema objects.
20
+ * Only removes when the value is exactly `false` -- other values are left intact.
21
+ */
22
+ export declare function removeAdditionalPropertiesFalse(obj: unknown): unknown;
23
+ /**
24
+ * Flattens nested `anyOf` entries: if an anyOf entry is itself just `{ anyOf: [...] }`
25
+ * with no other keys, its children are inlined. If only one item remains, the anyOf
26
+ * wrapper is removed entirely.
27
+ */
28
+ export declare function flattenNestedAnyOf(obj: unknown): unknown;
29
+ /**
30
+ * Applies JSON Schema post-processing: flattens simple allOf,
31
+ * flattens nested anyOf, then strips additionalProperties: false.
19
32
  */
20
33
  export declare function postProcessJsonSchema(obj: JsonSchema.JsonSchema): JsonSchema.JsonSchema;
21
34
  //# sourceMappingURL=SpecialJsonSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpecialJsonSchema.d.ts","sourceRoot":"","sources":["../../src/Schema/SpecialJsonSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,MAAM,EAAwB,MAAM,QAAQ,CAAA;AAE3E;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,CAAC,GAAG,EAClB,OAAO,CAAC,EAAE,MAAM,CAAC,mBAAmB,GACnC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAYtC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA6BxD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAEvF"}
1
+ {"version":3,"file":"SpecialJsonSchema.d.ts","sourceRoot":"","sources":["../../src/Schema/SpecialJsonSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,CAAC,GAAG,EAClB,OAAO,CAAC,EAAE,MAAM,CAAC,mBAAmB,GACnC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAWtC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CA6BxD;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAerE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAuCxD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAEvF"}