effect 4.0.0-beta.93 → 4.0.0-beta.94

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 (124) hide show
  1. package/dist/Config.d.ts +1 -1
  2. package/dist/Config.d.ts.map +1 -1
  3. package/dist/Config.js.map +1 -1
  4. package/dist/Effect.d.ts +130 -0
  5. package/dist/Effect.d.ts.map +1 -1
  6. package/dist/Effect.js +43 -0
  7. package/dist/Effect.js.map +1 -1
  8. package/dist/FileSystem.d.ts +7 -0
  9. package/dist/FileSystem.d.ts.map +1 -1
  10. package/dist/FileSystem.js +3 -0
  11. package/dist/FileSystem.js.map +1 -1
  12. package/dist/Layer.d.ts +1 -1
  13. package/dist/Layer.d.ts.map +1 -1
  14. package/dist/Layer.js +6 -3
  15. package/dist/Layer.js.map +1 -1
  16. package/dist/LayerMap.js +1 -1
  17. package/dist/LayerMap.js.map +1 -1
  18. package/dist/LayerRef.d.ts +252 -0
  19. package/dist/LayerRef.d.ts.map +1 -0
  20. package/dist/LayerRef.js +171 -0
  21. package/dist/LayerRef.js.map +1 -0
  22. package/dist/Schema.d.ts +74 -30
  23. package/dist/Schema.d.ts.map +1 -1
  24. package/dist/Schema.js.map +1 -1
  25. package/dist/SchemaParser.d.ts +1 -1
  26. package/dist/SchemaParser.d.ts.map +1 -1
  27. package/dist/SchemaParser.js.map +1 -1
  28. package/dist/internal/effect.js +2 -0
  29. package/dist/internal/effect.js.map +1 -1
  30. package/dist/testing/TestSchema.d.ts +2 -2
  31. package/dist/testing/TestSchema.d.ts.map +1 -1
  32. package/dist/testing/TestSchema.js.map +1 -1
  33. package/dist/unstable/ai/Chat.d.ts +1 -1
  34. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  35. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  36. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  37. package/dist/unstable/cli/Argument.d.ts +2 -2
  38. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  39. package/dist/unstable/cli/Argument.js.map +1 -1
  40. package/dist/unstable/cli/Flag.d.ts +2 -2
  41. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  42. package/dist/unstable/cli/Flag.js.map +1 -1
  43. package/dist/unstable/cli/Param.d.ts +2 -2
  44. package/dist/unstable/cli/Param.d.ts.map +1 -1
  45. package/dist/unstable/cli/Param.js.map +1 -1
  46. package/dist/unstable/cli/Primitive.js.map +1 -1
  47. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  48. package/dist/unstable/cluster/ClusterWorkflowEngine.js +1 -0
  49. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  50. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  51. package/dist/unstable/cluster/Entity.js +5 -3
  52. package/dist/unstable/cluster/Entity.js.map +1 -1
  53. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  54. package/dist/unstable/cluster/Sharding.js +3 -1
  55. package/dist/unstable/cluster/Sharding.js.map +1 -1
  56. package/dist/unstable/cluster/internal/entityManager.js +3 -2
  57. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  58. package/dist/unstable/cluster/internal/resourceMap.js +39 -14
  59. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  60. package/dist/unstable/encoding/Sse.d.ts +2 -2
  61. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  62. package/dist/unstable/http/HttpClientResponse.d.ts +1 -1
  63. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  64. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  65. package/dist/unstable/http/HttpIncomingMessage.d.ts +2 -2
  66. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  67. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  68. package/dist/unstable/http/HttpRouter.d.ts +4 -4
  69. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  70. package/dist/unstable/http/HttpRouter.js.map +1 -1
  71. package/dist/unstable/http/HttpServerRequest.d.ts +8 -8
  72. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  73. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  74. package/dist/unstable/http/HttpServerResponse.d.ts +1 -1
  75. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  76. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  77. package/dist/unstable/http/Multipart.d.ts +2 -2
  78. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  79. package/dist/unstable/http/Multipart.js.map +1 -1
  80. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  81. package/dist/unstable/httpapi/HttpApi.js +2 -4
  82. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  83. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  84. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +7 -7
  85. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  86. package/dist/unstable/httpapi/HttpApiSchema.d.ts +1 -1
  87. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  88. package/dist/unstable/reactivity/Atom.d.ts +4 -4
  89. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  90. package/dist/unstable/reactivity/Atom.js.map +1 -1
  91. package/package.json +1 -1
  92. package/src/Config.ts +1 -1
  93. package/src/Effect.ts +131 -0
  94. package/src/FileSystem.ts +13 -0
  95. package/src/Layer.ts +6 -6
  96. package/src/LayerMap.ts +1 -1
  97. package/src/LayerRef.ts +379 -0
  98. package/src/Schema.ts +80 -33
  99. package/src/SchemaParser.ts +2 -2
  100. package/src/internal/effect.ts +19 -0
  101. package/src/testing/TestSchema.ts +2 -2
  102. package/src/unstable/ai/Chat.ts +1 -1
  103. package/src/unstable/ai/LanguageModel.ts +3 -3
  104. package/src/unstable/cli/Argument.ts +14 -7
  105. package/src/unstable/cli/Flag.ts +6 -3
  106. package/src/unstable/cli/Param.ts +6 -3
  107. package/src/unstable/cli/Primitive.ts +2 -2
  108. package/src/unstable/cluster/ClusterWorkflowEngine.ts +1 -0
  109. package/src/unstable/cluster/Entity.ts +13 -14
  110. package/src/unstable/cluster/Sharding.ts +134 -131
  111. package/src/unstable/cluster/internal/entityManager.ts +11 -9
  112. package/src/unstable/cluster/internal/resourceMap.ts +59 -25
  113. package/src/unstable/encoding/Sse.ts +3 -3
  114. package/src/unstable/http/HttpClientResponse.ts +2 -3
  115. package/src/unstable/http/HttpIncomingMessage.ts +4 -5
  116. package/src/unstable/http/HttpRouter.ts +8 -10
  117. package/src/unstable/http/HttpServerRequest.ts +20 -19
  118. package/src/unstable/http/HttpServerResponse.ts +2 -2
  119. package/src/unstable/http/Multipart.ts +3 -3
  120. package/src/unstable/httpapi/HttpApi.ts +2 -4
  121. package/src/unstable/httpapi/HttpApiClient.ts +2 -2
  122. package/src/unstable/httpapi/HttpApiEndpoint.ts +7 -7
  123. package/src/unstable/httpapi/HttpApiSchema.ts +1 -1
  124. package/src/unstable/reactivity/Atom.ts +10 -7
@@ -313,10 +313,9 @@ export const schemaJson = <
313
313
  readonly searchParams: Readonly<Record<string, string | ReadonlyArray<string> | undefined>>
314
314
  readonly body: any
315
315
  }>,
316
- RD,
317
- RE
316
+ RD
318
317
  >(
319
- schema: Schema.Codec<A, I, RD, RE>,
318
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>,
320
319
  options?: ParseOptions | undefined
321
320
  ): Effect.Effect<
322
321
  A,
@@ -368,10 +367,9 @@ export const schemaNoBody = <
368
367
  readonly pathParams: Readonly<Record<string, string | undefined>>
369
368
  readonly searchParams: Readonly<Record<string, string | ReadonlyArray<string> | undefined>>
370
369
  }>,
371
- RD,
372
- RE
370
+ RD
373
371
  >(
374
- schema: Schema.Codec<A, I, RD, RE>,
372
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>,
375
373
  options?: ParseOptions | undefined
376
374
  ): Effect.Effect<
377
375
  A,
@@ -410,8 +408,8 @@ export const schemaNoBody = <
410
408
  * @category schemas
411
409
  * @since 4.0.0
412
410
  */
413
- export const schemaParams = <A, I extends Readonly<Record<string, string | ReadonlyArray<string> | undefined>>, RD, RE>(
414
- schema: Schema.Codec<A, I, RD, RE>,
411
+ export const schemaParams = <A, I extends Readonly<Record<string, string | ReadonlyArray<string> | undefined>>, RD>(
412
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>,
415
413
  options?: ParseOptions | undefined
416
414
  ): Effect.Effect<A, Schema.SchemaError, HttpServerRequest.ParsedSearchParams | RouteContext | RD> => {
417
415
  const parse = Schema.decodeUnknownEffect(schema)
@@ -429,8 +427,8 @@ export const schemaParams = <A, I extends Readonly<Record<string, string | Reado
429
427
  * @category schemas
430
428
  * @since 4.0.0
431
429
  */
432
- export const schemaPathParams = <A, I extends Readonly<Record<string, string | undefined>>, RD, RE>(
433
- schema: Schema.Codec<A, I, RD, RE>,
430
+ export const schemaPathParams = <A, I extends Readonly<Record<string, string | undefined>>, RD>(
431
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>,
434
432
  options?: ParseOptions | undefined
435
433
  ): Effect.Effect<A, Schema.SchemaError, RouteContext | RD> => {
436
434
  const parse = Schema.decodeUnknownEffect(schema)
@@ -191,8 +191,8 @@ export const upgradeChannel = <IE = never>(): Channel.Channel<
191
191
  * @category schemas
192
192
  * @since 4.0.0
193
193
  */
194
- export const schemaCookies = <A, I extends Readonly<Record<string, string | undefined>>, RD, RE>(
195
- schema: Schema.Codec<A, I, RD, RE>,
194
+ export const schemaCookies = <A, I extends Readonly<Record<string, string | undefined>>, RD>(
195
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>,
196
196
  options?: ParseOptions | undefined
197
197
  ): Effect.Effect<A, Schema.SchemaError, RD | HttpServerRequest> => {
198
198
  const parse = Schema.decodeUnknownEffect(schema)
@@ -205,8 +205,8 @@ export const schemaCookies = <A, I extends Readonly<Record<string, string | unde
205
205
  * @category schemas
206
206
  * @since 4.0.0
207
207
  */
208
- export const schemaHeaders = <A, I extends Readonly<Record<string, string | undefined>>, RD, RE>(
209
- schema: Schema.Codec<A, I, RD, RE>,
208
+ export const schemaHeaders = <A, I extends Readonly<Record<string, string | undefined>>, RD>(
209
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>,
210
210
  options?: ParseOptions | undefined
211
211
  ): Effect.Effect<A, Schema.SchemaError, HttpServerRequest | RD> => {
212
212
  const parse = Schema.decodeUnknownEffect(schema)
@@ -222,10 +222,9 @@ export const schemaHeaders = <A, I extends Readonly<Record<string, string | unde
222
222
  export const schemaSearchParams = <
223
223
  A,
224
224
  I extends Readonly<Record<string, string | ReadonlyArray<string> | undefined>>,
225
- RD,
226
- RE
225
+ RD
227
226
  >(
228
- schema: Schema.Codec<A, I, RD, RE>,
227
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>,
229
228
  options?: ParseOptions | undefined
230
229
  ): Effect.Effect<A, Schema.SchemaError, ParsedSearchParams | RD> => {
231
230
  const parse = Schema.decodeUnknownEffect(schema)
@@ -242,8 +241,8 @@ export const schemaSearchParams = <
242
241
  * @category schemas
243
242
  * @since 4.0.0
244
243
  */
245
- export const schemaBodyJson = <A, I, RD, RE>(
246
- schema: Schema.Codec<A, I, RD, RE>,
244
+ export const schemaBodyJson = <A, RD>(
245
+ schema: Schema.ConstraintDecoder<A, RD>,
247
246
  options?: ParseOptions | undefined
248
247
  ): Effect.Effect<A, HttpServerError | Schema.SchemaError, HttpServerRequest | RD> => {
249
248
  const parse = HttpIncomingMessage.schemaBodyJson(schema, options)
@@ -265,12 +264,15 @@ const isMultipart = (request: HttpServerRequest) =>
265
264
  * @category schemas
266
265
  * @since 4.0.0
267
266
  */
268
- export const schemaBodyForm = <A, I extends Partial<Multipart.Persisted>, RD, RE>(
269
- schema: Schema.Codec<A, I, RD, RE>,
267
+ export const schemaBodyForm = <A, I extends Partial<Multipart.Persisted>, RD>(
268
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>,
270
269
  options?: ParseOptions | undefined
271
270
  ) => {
272
271
  const parseMultipart = Multipart.schemaPersisted(schema)
273
- const parseUrlParams = HttpIncomingMessage.schemaBodyUrlParams(schema as Schema.Codec<A, any, RD, RE>, options)
272
+ const parseUrlParams = HttpIncomingMessage.schemaBodyUrlParams(
273
+ schema as Schema.ConstraintCodec<A, any, RD, unknown>,
274
+ options
275
+ )
274
276
  return Effect.flatMap(HttpServerRequest, (request): Effect.Effect<
275
277
  A,
276
278
  Multipart.MultipartError | Schema.SchemaError | HttpServerError,
@@ -293,10 +295,9 @@ export const schemaBodyForm = <A, I extends Partial<Multipart.Persisted>, RD, RE
293
295
  export const schemaBodyUrlParams = <
294
296
  A,
295
297
  I extends Readonly<Record<string, string | ReadonlyArray<string> | undefined>>,
296
- RD,
297
- RE
298
+ RD
298
299
  >(
299
- schema: Schema.Codec<A, I, RD, RE>,
300
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>,
300
301
  options?: ParseOptions | undefined
301
302
  ): Effect.Effect<A, HttpServerError | Schema.SchemaError, HttpServerRequest | RD> => {
302
303
  const parse = HttpIncomingMessage.schemaBodyUrlParams(schema, options)
@@ -315,8 +316,8 @@ export const schemaBodyUrlParams = <
315
316
  * @category schemas
316
317
  * @since 4.0.0
317
318
  */
318
- export const schemaBodyMultipart = <A, I extends Partial<Multipart.Persisted>, RD, RE>(
319
- schema: Schema.Codec<A, I, RD, RE>,
319
+ export const schemaBodyMultipart = <A, I extends Partial<Multipart.Persisted>, RD>(
320
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>,
320
321
  options?: ParseOptions | undefined
321
322
  ): Effect.Effect<
322
323
  A,
@@ -342,8 +343,8 @@ export const schemaBodyMultipart = <A, I extends Partial<Multipart.Persisted>, R
342
343
  * @category schemas
343
344
  * @since 4.0.0
344
345
  */
345
- export const schemaBodyFormJson = <A, I, RD, RE>(
346
- schema: Schema.Codec<A, I, RD, RE>,
346
+ export const schemaBodyFormJson = <A, RD>(
347
+ schema: Schema.ConstraintDecoder<A, RD>,
347
348
  options?: ParseOptions | undefined
348
349
  ) => {
349
350
  const parseMultipart = Multipart.schemaJson(schema, options)
@@ -334,8 +334,8 @@ export const json = (
334
334
  * @category constructors
335
335
  * @since 4.0.0
336
336
  */
337
- export const schemaJson = <A, I, RD, RE>(
338
- schema: Schema.Codec<A, I, RD, RE>,
337
+ export const schemaJson = <A, RE>(
338
+ schema: Schema.ConstraintCodec<A, unknown, unknown, RE>,
339
339
  options?: ParseOptions | undefined
340
340
  ) => {
341
341
  const encode = Body.jsonSchema(schema, options)
@@ -333,8 +333,8 @@ export const SingleFileSchema: Schema.decodeTo<PersistedFileSchema, Schema.$Arra
333
333
  * @category schemas
334
334
  * @since 4.0.0
335
335
  */
336
- export const schemaPersisted = <A, I extends Partial<Persisted>, RD, RE>(
337
- schema: Schema.Codec<A, I, RD, RE>
336
+ export const schemaPersisted = <A, I extends Partial<Persisted>, RD>(
337
+ schema: Schema.ConstraintCodec<A, I, RD, unknown>
338
338
  ): (input: unknown, options?: ParseOptions) => Effect.Effect<A, Schema.SchemaError, RD> =>
339
339
  Schema.decodeUnknownEffect(schema)
340
340
 
@@ -349,7 +349,7 @@ export const schemaPersisted = <A, I extends Partial<Persisted>, RD, RE>(
349
349
  * @category schemas
350
350
  * @since 4.0.0
351
351
  */
352
- export const schemaJson = <A, I, RD, RE>(schema: Schema.Codec<A, I, RD, RE>, options?: ParseOptions | undefined): {
352
+ export const schemaJson = <A, RD>(schema: Schema.ConstraintDecoder<A, RD>, options?: ParseOptions | undefined): {
353
353
  (
354
354
  field: string
355
355
  ): (persisted: Persisted) => Effect.Effect<A, Schema.SchemaError, RD>
@@ -186,9 +186,7 @@ const makeProto = <Id extends string, Groups extends HttpApiGroup.Any>(
186
186
  ): HttpApi<Id, Groups> => {
187
187
  function HttpApi() {}
188
188
  Object.setPrototypeOf(HttpApi, Proto)
189
- HttpApi.groups = options.groups
190
- HttpApi.annotations = options.annotations
191
- return HttpApi as any
189
+ return Object.assign(HttpApi, options) as any
192
190
  }
193
191
 
194
192
  /**
@@ -206,7 +204,7 @@ const makeProto = <Id extends string, Groups extends HttpApiGroup.Any>(
206
204
  export const make = <const Id extends string>(identifier: Id): HttpApi<Id, never> =>
207
205
  makeProto({
208
206
  identifier,
209
- groups: new Map() as any,
207
+ groups: {},
210
208
  annotations: Context.empty()
211
209
  })
212
210
 
@@ -636,10 +636,10 @@ export const urlBuilder = <Api extends HttpApi.Any>(api: Api, options?: {
636
636
  const makeUrl = compilePath(endpoint.path)
637
637
  const encodeParams = endpoint.params === undefined
638
638
  ? undefined
639
- : Schema.encodeSync(endpoint.params as Schema.Codec<unknown, unknown>)
639
+ : Schema.encodeSync(endpoint.params as unknown as Schema.ConstraintEncoder<unknown>)
640
640
  const encodeQuery = endpoint.query === undefined
641
641
  ? undefined
642
- : Schema.encodeSync(endpoint.query as Schema.Codec<unknown, unknown>)
642
+ : Schema.encodeSync(endpoint.query as unknown as Schema.ConstraintEncoder<unknown>)
643
643
 
644
644
  const endpointBuilder = (request?: {
645
645
  readonly params?: unknown
@@ -1037,8 +1037,8 @@ function makeProto<
1037
1037
  * @since 4.0.0
1038
1038
  */
1039
1039
  export type ParamsConstraint =
1040
- | Record<string, Schema.Codec<unknown, string | undefined, unknown, unknown>>
1041
- | Schema.Codec<unknown, Record<string, string | undefined>, unknown, unknown>
1040
+ | Record<string, Schema.Encoder<string | undefined, unknown>>
1041
+ | Schema.Encoder<Record<string, string | undefined>, unknown>
1042
1042
 
1043
1043
  /**
1044
1044
  * Constraint for header schemas: each header must encode to `string | undefined`,
@@ -1048,8 +1048,8 @@ export type ParamsConstraint =
1048
1048
  * @since 4.0.0
1049
1049
  */
1050
1050
  export type HeadersConstraint =
1051
- | Record<string, Schema.Codec<unknown, string | undefined, unknown, unknown>>
1052
- | Schema.Codec<unknown, Record<string, string | undefined>, unknown, unknown>
1051
+ | Record<string, Schema.Encoder<string | undefined, unknown>>
1052
+ | Schema.Encoder<Record<string, string | undefined>, unknown>
1053
1053
 
1054
1054
  /**
1055
1055
  * Constraint for query schemas: each field must encode to `string`, an array of
@@ -1059,8 +1059,8 @@ export type HeadersConstraint =
1059
1059
  * @since 4.0.0
1060
1060
  */
1061
1061
  export type QueryConstraint =
1062
- | Record<string, Schema.Codec<unknown, string | ReadonlyArray<string> | undefined, unknown, unknown>>
1063
- | Schema.Codec<unknown, string | ReadonlyArray<string> | undefined, unknown, unknown>
1062
+ | Record<string, Schema.Encoder<string | ReadonlyArray<string> | undefined, unknown>>
1063
+ | Schema.Encoder<string | ReadonlyArray<string> | undefined, unknown>
1064
1064
 
1065
1065
  /**
1066
1066
  * Payload schema depends on the HTTP method:
@@ -1075,7 +1075,7 @@ export type QueryConstraint =
1075
1075
  */
1076
1076
  export type PayloadConstraint<Method extends HttpMethod> = Method extends HttpMethod.NoBody ? Record<
1077
1077
  string,
1078
- Schema.Codec<unknown, string | ReadonlyArray<string> | undefined, unknown, unknown>
1078
+ Schema.Encoder<string | ReadonlyArray<string> | undefined, unknown>
1079
1079
  > :
1080
1080
  Schema.Top | ReadonlyArray<Schema.Top>
1081
1081
 
@@ -325,7 +325,7 @@ export interface StreamSse<
325
325
  * @since 4.0.0
326
326
  */
327
327
  export interface SseEventFromData<Data extends Schema.Constraint> extends
328
- Schema.Codec<
328
+ Schema.ConstraintCodec<
329
329
  {
330
330
  readonly id: string | undefined
331
331
  readonly event: string
@@ -2604,7 +2604,7 @@ export const refreshOnWindowFocus: <A extends Atom<any>>(self: A) => WithoutSeri
2604
2604
  * @category KeyValueStore
2605
2605
  * @since 4.0.0
2606
2606
  */
2607
- export const kvs = <S extends Schema.Codec<any, any>, const Mode extends "sync" | "async" = never>(options: {
2607
+ export const kvs = <S extends Schema.ConstraintCodec<any, any>, const Mode extends "sync" | "async" = never>(options: {
2608
2608
  readonly runtime: AtomRuntime<KeyValueStore.KeyValueStore, any>
2609
2609
  readonly key: string
2610
2610
  readonly schema: S
@@ -2669,9 +2669,12 @@ export const kvs = <S extends Schema.Codec<any, any>, const Mode extends "sync"
2669
2669
  * @category search params
2670
2670
  * @since 4.0.0
2671
2671
  */
2672
- export const searchParam = <S extends Schema.Codec<any, string> = never>(name: string, options?: {
2673
- readonly schema?: S | undefined
2674
- }): Writable<[S] extends [never] ? string : Option.Option<S["Type"]>> => {
2672
+ export const searchParam = <S extends Schema.ConstraintCodec<any, string> = never>(
2673
+ name: string,
2674
+ options?: {
2675
+ readonly schema?: S | undefined
2676
+ }
2677
+ ): Writable<[S] extends [never] ? string : Option.Option<S["Type"]>> => {
2675
2678
  const decode = options?.schema && Schema.decodeExit(options.schema)
2676
2679
  const encode = options?.schema && Schema.encodeExit(options.schema)
2677
2680
  return writable(
@@ -2986,7 +2989,7 @@ export const serializable: {
2986
2989
  * @category combinators
2987
2990
  * @since 4.0.0
2988
2991
  */
2989
- <R extends Atom<any>, S extends Schema.Codec<Type<R>, any>>(
2992
+ <R extends Atom<any>, S extends Schema.ConstraintCodec<Type<R>, any>>(
2990
2993
  options: {
2991
2994
  readonly key: string
2992
2995
  readonly schema: S
@@ -3003,7 +3006,7 @@ export const serializable: {
3003
3006
  * @category combinators
3004
3007
  * @since 4.0.0
3005
3008
  */
3006
- <R extends Atom<any>, S extends Schema.Codec<Type<R>, any>>(
3009
+ <R extends Atom<any>, S extends Schema.ConstraintCodec<Type<R>, any>>(
3007
3010
  self: R,
3008
3011
  options: {
3009
3012
  readonly key: string
@@ -3012,7 +3015,7 @@ export const serializable: {
3012
3015
  ): R & Serializable<S>
3013
3016
  } = dual(2, <R extends Atom<any>, A, I>(self: R, options: {
3014
3017
  readonly key: string
3015
- readonly schema: Schema.Codec<A, I>
3018
+ readonly schema: Schema.ConstraintCodec<A, I>
3016
3019
  }): R & Serializable<any> => {
3017
3020
  const codecJson = Schema.toCodecJson(options.schema)
3018
3021
  return Object.assign(Object.create(Object.getPrototypeOf(self)), {