@effect/platform 0.77.6 → 0.78.0

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 (39) hide show
  1. package/README.md +2 -108
  2. package/dist/cjs/HttpApiBuilder.js +3 -1
  3. package/dist/cjs/HttpApiBuilder.js.map +1 -1
  4. package/dist/cjs/HttpApiClient.js +1 -1
  5. package/dist/cjs/HttpApiClient.js.map +1 -1
  6. package/dist/cjs/OpenApi.js +9 -2
  7. package/dist/cjs/OpenApi.js.map +1 -1
  8. package/dist/cjs/OpenApiJsonSchema.js +7 -1
  9. package/dist/cjs/OpenApiJsonSchema.js.map +1 -1
  10. package/dist/cjs/internal/fetchHttpClient.js +2 -1
  11. package/dist/cjs/internal/fetchHttpClient.js.map +1 -1
  12. package/dist/dts/HttpApiBuilder.d.ts +2 -0
  13. package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
  14. package/dist/dts/HttpApiClient.d.ts +2 -1
  15. package/dist/dts/HttpApiClient.d.ts.map +1 -1
  16. package/dist/dts/HttpClient.d.ts +4 -4
  17. package/dist/dts/HttpClient.d.ts.map +1 -1
  18. package/dist/dts/OpenApi.d.ts +14 -1
  19. package/dist/dts/OpenApi.d.ts.map +1 -1
  20. package/dist/dts/OpenApiJsonSchema.d.ts +11 -2
  21. package/dist/dts/OpenApiJsonSchema.d.ts.map +1 -1
  22. package/dist/esm/HttpApiBuilder.js +3 -1
  23. package/dist/esm/HttpApiBuilder.js.map +1 -1
  24. package/dist/esm/HttpApiClient.js +1 -1
  25. package/dist/esm/HttpApiClient.js.map +1 -1
  26. package/dist/esm/OpenApi.js +9 -2
  27. package/dist/esm/OpenApi.js.map +1 -1
  28. package/dist/esm/OpenApiJsonSchema.js +7 -1
  29. package/dist/esm/OpenApiJsonSchema.js.map +1 -1
  30. package/dist/esm/internal/fetchHttpClient.js +2 -1
  31. package/dist/esm/internal/fetchHttpClient.js.map +1 -1
  32. package/package.json +2 -2
  33. package/src/HttpApiBuilder.ts +4 -1
  34. package/src/HttpApiClient.ts +1 -2
  35. package/src/HttpClient.ts +4 -4
  36. package/src/OpenApi.ts +18 -2
  37. package/src/OpenApiJsonSchema.ts +17 -5
  38. package/src/internal/fetchHttpClient.ts +2 -1
  39. package/src/internal/httpClient.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApi.js","names":["Context","constFalse","globalValue","Option","HttpApi","HttpApiMiddleware","HttpApiSchema","HttpMethod","JsonSchema","Identifier","Tag","Title","Version","Description","License","ExternalDocs","Servers","Format","Summary","Deprecated","Override","Exclude","Reference","defaultValue","Transform","contextPartial","tags","entries","Object","options","context","empty","key","tag","undefined","add","annotations","identifier","title","version","description","license","summary","deprecated","externalDocs","servers","format","override","exclude","transform","apiCache","WeakMap","processAnnotation","ctx","f","o","getOption","isSome","value","fromApi","api","cached","get","jsonSchemaDefs","spec","openapi","info","getOrElse","paths","components","schemas","securitySchemes","security","processAST","ast","fromAST","defs","processHttpApiSecurity","name","makeSecurityScheme","AdditionalSchemas","componentSchemas","forEach","componentSchema","middlewares","middleware","isSecurity","push","reflect","onGroup","group","assign","transformFn","onEndpoint","endpoint","errors","mergedAnnotations","payloads","successes","op","operationId","topLevel","parameters","responses","processResponseMap","map","defaultDescription","status","pipe","filter","getEmptyDecodeable","encoding","getEncoding","content","contentType","schema","processParameters","i","jsonSchema","properties","psJsonSchema","in","required","includes","hasBody","method","size","requestBody","pathSchema","payloadSchema","headersSchema","urlParamsSchema","path","replace","toLowerCase","set","meta","_tag","type","scheme","bearerFormat","getOrUndefined"],"sources":["../../src/OpenApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OpenApi.js","names":["Context","constFalse","globalValue","Option","HttpApi","HttpApiMiddleware","HttpApiSchema","HttpMethod","JsonSchema","Identifier","Tag","Title","Version","Description","License","ExternalDocs","Servers","Format","Summary","Deprecated","Override","Exclude","Reference","defaultValue","Transform","contextPartial","tags","entries","Object","options","context","empty","key","tag","undefined","add","annotations","identifier","title","version","description","license","summary","deprecated","externalDocs","servers","format","override","exclude","transform","apiCache","WeakMap","processAnnotation","ctx","f","o","getOption","isSome","value","fromApi","api","cached","get","jsonSchemaDefs","spec","openapi","info","getOrElse","paths","components","schemas","securitySchemes","security","processAST","ast","fromAST","defs","additionalPropertiesStrategy","processHttpApiSecurity","name","makeSecurityScheme","AdditionalSchemas","componentSchemas","forEach","componentSchema","middlewares","middleware","isSecurity","push","reflect","onGroup","group","assign","transformFn","onEndpoint","endpoint","errors","mergedAnnotations","payloads","successes","op","operationId","topLevel","parameters","responses","processResponseMap","map","defaultDescription","status","pipe","filter","getEmptyDecodeable","encoding","getEncoding","content","contentType","schema","processParameters","i","jsonSchema","properties","psJsonSchema","in","required","includes","hasBody","method","size","requestBody","pathSchema","payloadSchema","headersSchema","urlParamsSchema","path","replace","toLowerCase","set","meta","_tag","type","scheme","bearerFormat","getOrUndefined"],"sources":["../../src/OpenApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -20,11 +20,16 @@ export const make = schema => {
20
20
  /**
21
21
  * Creates a schema with additional options and definitions.
22
22
  *
23
+ * **Options**
24
+ *
23
25
  * - `defs`: A record of definitions that are included in the schema.
24
26
  * - `defsPath`: The path to the definitions within the schema (defaults to "#/$defs/").
25
27
  * - `topLevelReferenceStrategy`: Controls the handling of the top-level reference. Possible values are:
26
28
  * - `"keep"`: Keep the top-level reference (default behavior).
27
29
  * - `"skip"`: Skip the top-level reference.
30
+ * - `additionalPropertiesStrategy`: Controls the handling of additional properties. Possible values are:
31
+ * - `"strict"`: Disallow additional properties (default behavior).
32
+ * - `"allow"`: Allow additional properties.
28
33
  *
29
34
  * @category encoding
30
35
  * @since 1.0.0
@@ -36,7 +41,8 @@ export const fromAST = (ast, options) => {
36
41
  definitions: options.defs,
37
42
  definitionPath: options.defsPath ?? "#/components/schemas/",
38
43
  target: "openApi3.1",
39
- topLevelReferenceStrategy: options.topLevelReferenceStrategy ?? "keep"
44
+ topLevelReferenceStrategy: options.topLevelReferenceStrategy,
45
+ additionalPropertiesStrategy: options.additionalPropertiesStrategy
40
46
  });
41
47
  return jsonSchema;
42
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiJsonSchema.js","names":["JSONSchema","Record","make","schema","defs","out","makeWithDefs","isEmptyRecord","$defs","options","fromAST","ast","jsonSchema","definitions","definitionPath","defsPath","target","topLevelReferenceStrategy"],"sources":["../../src/OpenApiJsonSchema.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAgPvC;;;;AAIA,OAAO,MAAMC,IAAI,GAAaC,MAA8B,IAAU;EACpE,MAAMC,IAAI,GAA+B,EAAE;EAC3C,MAAMC,GAAG,GAASC,YAAY,CAACH,MAAM,EAAE;IAAEC;EAAI,CAAE,CAAC;EAChD,IAAI,CAACH,MAAM,CAACM,aAAa,CAACH,IAAI,CAAC,EAAE;IAC/BC,GAAG,CAACG,KAAK,GAAGJ,IAAI;EAClB;EACA,OAAOC,GAAG;AACZ,CAAC;AAED;;;;;;;;;;;;AAYA,OAAO,MAAMC,YAAY,GAAGA,CAAUH,MAA8B,EAAEM,OAIrE,KAAiBC,OAAO,CAACP,MAAM,CAACQ,GAAG,EAAEF,OAAO,CAAC;AAE9C;AACA,OAAO,MAAMC,OAAO,GAAGA,CAACC,GAAY,EAAEF,OAIrC,KAAgB;EACf,MAAMG,UAAU,GAAGZ,UAAU,CAACU,OAAO,CAACC,GAAG,EAAE;IACzCE,WAAW,EAAEJ,OAAO,CAACL,IAAI;IACzBU,cAAc,EAAEL,OAAO,CAACM,QAAQ,IAAI,uBAAuB;IAC3DC,MAAM,EAAE,YAAY;IACpBC,yBAAyB,EAAER,OAAO,CAACQ,yBAAyB,IAAI;GACjE,CAAC;EACF,OAAOL,UAAwB;AACjC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"OpenApiJsonSchema.js","names":["JSONSchema","Record","make","schema","defs","out","makeWithDefs","isEmptyRecord","$defs","options","fromAST","ast","jsonSchema","definitions","definitionPath","defsPath","target","topLevelReferenceStrategy","additionalPropertiesStrategy"],"sources":["../../src/OpenApiJsonSchema.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAgPvC;;;;AAIA,OAAO,MAAMC,IAAI,GAAaC,MAA8B,IAAU;EACpE,MAAMC,IAAI,GAA+B,EAAE;EAC3C,MAAMC,GAAG,GAASC,YAAY,CAACH,MAAM,EAAE;IAAEC;EAAI,CAAE,CAAC;EAChD,IAAI,CAACH,MAAM,CAACM,aAAa,CAACH,IAAI,CAAC,EAAE;IAC/BC,GAAG,CAACG,KAAK,GAAGJ,IAAI;EAClB;EACA,OAAOC,GAAG;AACZ,CAAC;AAMD;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAMC,YAAY,GAAGA,CAAUH,MAA8B,EAAEM,OAKrE,KAAiBC,OAAO,CAACP,MAAM,CAACQ,GAAG,EAAEF,OAAO,CAAC;AAE9C;AACA,OAAO,MAAMC,OAAO,GAAGA,CAACC,GAAY,EAAEF,OAKrC,KAAgB;EACf,MAAMG,UAAU,GAAGZ,UAAU,CAACU,OAAO,CAACC,GAAG,EAAE;IACzCE,WAAW,EAAEJ,OAAO,CAACL,IAAI;IACzBU,cAAc,EAAEL,OAAO,CAACM,QAAQ,IAAI,uBAAuB;IAC3DC,MAAM,EAAE,YAAY;IACpBC,yBAAyB,EAAER,OAAO,CAACQ,yBAAyB;IAC5DC,4BAA4B,EAAET,OAAO,CAACS;GACvC,CAAC;EACF,OAAON,UAAwB;AACjC,CAAC","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as FiberRef from "effect/FiberRef";
3
3
  import * as Stream from "effect/Stream";
4
+ import * as Headers from "../Headers.js";
4
5
  import * as Error from "../HttpClientError.js";
5
6
  import * as client from "./httpClient.js";
6
7
  import * as internalResponse from "./httpClientResponse.js";
@@ -12,7 +13,7 @@ const fetch = /*#__PURE__*/client.make((request, url, signal, fiber) => {
12
13
  const context = fiber.getFiberRef(FiberRef.currentContext);
13
14
  const fetch = context.unsafeMap.get(fetchTagKey) ?? globalThis.fetch;
14
15
  const options = context.unsafeMap.get(requestInitTagKey) ?? {};
15
- const headers = new globalThis.Headers(request.headers);
16
+ const headers = options.headers ? Headers.merge(Headers.fromInput(options.headers), request.headers) : request.headers;
16
17
  const send = body => Effect.map(Effect.tryPromise({
17
18
  try: () => fetch(url, {
18
19
  ...options,
@@ -1 +1 @@
1
- {"version":3,"file":"fetchHttpClient.js","names":["Effect","FiberRef","Stream","Error","client","internalResponse","fetchTagKey","requestInitTagKey","fetch","make","request","url","signal","fiber","context","getFiberRef","currentContext","unsafeMap","get","globalThis","options","headers","Headers","send","body","map","tryPromise","try","method","duplex","_tag","undefined","catch","cause","RequestError","reason","response","fromWeb","formData","flatMap","toReadableStreamEffect","stream","layer","layerMergedContext","succeed"],"sources":["../../../src/internal/fetchHttpClient.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,KAAK,MAAM,uBAAuB;AAC9C,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAKC,gBAAgB,MAAM,yBAAyB;AAE3D;AACA,OAAO,MAAMC,WAAW,GAAG,wCAAwC;AACnE;AACA,OAAO,MAAMC,iBAAiB,GAAG,+CAA+C;AAEhF,MAAMC,KAAK,gBAAsBJ,MAAM,CAACK,IAAI,CAAC,CAACC,OAAO,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,KAAI;EAC3E,MAAMC,OAAO,GAAGD,KAAK,CAACE,WAAW,CAACd,QAAQ,CAACe,cAAc,CAAC;EAC1D,MAAMR,KAAK,GAA4BM,OAAO,CAACG,SAAS,CAACC,GAAG,CAACZ,WAAW,CAAC,IAAIa,UAAU,CAACX,KAAK;EAC7F,MAAMY,OAAO,GAAgBN,OAAO,CAACG,SAAS,CAACC,GAAG,CAACX,iBAAiB,CAAC,IAAI,EAAE;EAC3E,MAAMc,OAAO,GAAG,IAAIF,UAAU,CAACG,OAAO,CAACZ,OAAO,CAACW,OAAO,CAAC;EACvD,MAAME,IAAI,GAAIC,IAA0B,IACtCxB,MAAM,CAACyB,GAAG,CACRzB,MAAM,CAAC0B,UAAU,CAAC;IAChBC,GAAG,EAAEA,CAAA,KACHnB,KAAK,CAACG,GAAG,EAAE;MACT,GAAGS,OAAO;MACVQ,MAAM,EAAElB,OAAO,CAACkB,MAAM;MACtBP,OAAO;MACPG,IAAI;MACJK,MAAM,EAAEnB,OAAO,CAACc,IAAI,CAACM,IAAI,KAAK,QAAQ,GAAG,MAAM,GAAGC,SAAS;MAC3DnB;KACM,CAAC;IACXoB,KAAK,EAAGC,KAAK,IACX,IAAI9B,KAAK,CAAC+B,YAAY,CAAC;MACrBxB,OAAO;MACPyB,MAAM,EAAE,WAAW;MACnBF;KACD;GACJ,CAAC,EACDG,QAAQ,IAAK/B,gBAAgB,CAACgC,OAAO,CAAC3B,OAAO,EAAE0B,QAAQ,CAAC,CAC1D;EACH,QAAQ1B,OAAO,CAACc,IAAI,CAACM,IAAI;IACvB,KAAK,KAAK;IACV,KAAK,YAAY;MACf,OAAOP,IAAI,CAACb,OAAO,CAACc,IAAI,CAACA,IAAW,CAAC;IACvC,KAAK,UAAU;MACb,OAAOD,IAAI,CAACb,OAAO,CAACc,IAAI,CAACc,QAAQ,CAAC;IACpC,KAAK,QAAQ;MACX,OAAOtC,MAAM,CAACuC,OAAO,CAACrC,MAAM,CAACsC,sBAAsB,CAAC9B,OAAO,CAACc,IAAI,CAACiB,MAAM,CAAC,EAAElB,IAAI,CAAC;EACnF;EACA,OAAOA,IAAI,CAACQ,SAAS,CAAC;AACxB,CAAC,CAAC;AAEF;AACA,OAAO,MAAMW,KAAK,gBAAGtC,MAAM,CAACuC,kBAAkB,eAAC3C,MAAM,CAAC4C,OAAO,CAACpC,KAAK,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"fetchHttpClient.js","names":["Effect","FiberRef","Stream","Headers","Error","client","internalResponse","fetchTagKey","requestInitTagKey","fetch","make","request","url","signal","fiber","context","getFiberRef","currentContext","unsafeMap","get","globalThis","options","headers","merge","fromInput","send","body","map","tryPromise","try","method","duplex","_tag","undefined","catch","cause","RequestError","reason","response","fromWeb","formData","flatMap","toReadableStreamEffect","stream","layer","layerMergedContext","succeed"],"sources":["../../../src/internal/fetchHttpClient.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,eAAe;AAExC,OAAO,KAAKC,KAAK,MAAM,uBAAuB;AAC9C,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAKC,gBAAgB,MAAM,yBAAyB;AAE3D;AACA,OAAO,MAAMC,WAAW,GAAG,wCAAwC;AACnE;AACA,OAAO,MAAMC,iBAAiB,GAAG,+CAA+C;AAEhF,MAAMC,KAAK,gBAAsBJ,MAAM,CAACK,IAAI,CAAC,CAACC,OAAO,EAAEC,GAAG,EAAEC,MAAM,EAAEC,KAAK,KAAI;EAC3E,MAAMC,OAAO,GAAGD,KAAK,CAACE,WAAW,CAACf,QAAQ,CAACgB,cAAc,CAAC;EAC1D,MAAMR,KAAK,GAA4BM,OAAO,CAACG,SAAS,CAACC,GAAG,CAACZ,WAAW,CAAC,IAAIa,UAAU,CAACX,KAAK;EAC7F,MAAMY,OAAO,GAAgBN,OAAO,CAACG,SAAS,CAACC,GAAG,CAACX,iBAAiB,CAAC,IAAI,EAAE;EAC3E,MAAMc,OAAO,GAAGD,OAAO,CAACC,OAAO,GAAGnB,OAAO,CAACoB,KAAK,CAACpB,OAAO,CAACqB,SAAS,CAACH,OAAO,CAACC,OAAO,CAAC,EAAEX,OAAO,CAACW,OAAO,CAAC,GAAGX,OAAO,CAACW,OAAO;EACtH,MAAMG,IAAI,GAAIC,IAA0B,IACtC1B,MAAM,CAAC2B,GAAG,CACR3B,MAAM,CAAC4B,UAAU,CAAC;IAChBC,GAAG,EAAEA,CAAA,KACHpB,KAAK,CAACG,GAAG,EAAE;MACT,GAAGS,OAAO;MACVS,MAAM,EAAEnB,OAAO,CAACmB,MAAM;MACtBR,OAAO;MACPI,IAAI;MACJK,MAAM,EAAEpB,OAAO,CAACe,IAAI,CAACM,IAAI,KAAK,QAAQ,GAAG,MAAM,GAAGC,SAAS;MAC3DpB;KACM,CAAC;IACXqB,KAAK,EAAGC,KAAK,IACX,IAAI/B,KAAK,CAACgC,YAAY,CAAC;MACrBzB,OAAO;MACP0B,MAAM,EAAE,WAAW;MACnBF;KACD;GACJ,CAAC,EACDG,QAAQ,IAAKhC,gBAAgB,CAACiC,OAAO,CAAC5B,OAAO,EAAE2B,QAAQ,CAAC,CAC1D;EACH,QAAQ3B,OAAO,CAACe,IAAI,CAACM,IAAI;IACvB,KAAK,KAAK;IACV,KAAK,YAAY;MACf,OAAOP,IAAI,CAACd,OAAO,CAACe,IAAI,CAACA,IAAW,CAAC;IACvC,KAAK,UAAU;MACb,OAAOD,IAAI,CAACd,OAAO,CAACe,IAAI,CAACc,QAAQ,CAAC;IACpC,KAAK,QAAQ;MACX,OAAOxC,MAAM,CAACyC,OAAO,CAACvC,MAAM,CAACwC,sBAAsB,CAAC/B,OAAO,CAACe,IAAI,CAACiB,MAAM,CAAC,EAAElB,IAAI,CAAC;EACnF;EACA,OAAOA,IAAI,CAACQ,SAAS,CAAC;AACxB,CAAC,CAAC;AAEF;AACA,OAAO,MAAMW,KAAK,gBAAGvC,MAAM,CAACwC,kBAAkB,eAAC7C,MAAM,CAAC8C,OAAO,CAACrC,KAAK,CAAC,CAAC","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.77.6",
3
+ "version": "0.78.0",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -14,7 +14,7 @@
14
14
  "multipasta": "^0.2.5"
15
15
  },
16
16
  "peerDependencies": {
17
- "effect": "^3.13.6"
17
+ "effect": "^3.13.7"
18
18
  },
19
19
  "publishConfig": {
20
20
  "provenance": true
@@ -961,12 +961,15 @@ export const middlewareCors = (
961
961
  export const middlewareOpenApi = (
962
962
  options?: {
963
963
  readonly path?: HttpApiEndpoint.PathSegment | undefined
964
+ readonly additionalPropertiesStrategy?: OpenApi.AdditionalPropertiesStrategy | undefined
964
965
  } | undefined
965
966
  ): Layer.Layer<never, never, HttpApi.Api> =>
966
967
  Router.use((router) =>
967
968
  Effect.gen(function*() {
968
969
  const { api } = yield* HttpApi.Api
969
- const spec = OpenApi.fromApi(api)
970
+ const spec = OpenApi.fromApi(api, {
971
+ additionalPropertiesStrategy: options?.additionalPropertiesStrategy
972
+ })
970
973
  const response = yield* HttpServerResponse.json(spec).pipe(
971
974
  Effect.orDie
972
975
  )
@@ -83,7 +83,7 @@ export declare namespace Client {
83
83
  request: Simplify<HttpApiEndpoint.ClientRequest<_Path, _UrlParams, _Payload, _Headers, WithResponse>>
84
84
  ) => Effect.Effect<
85
85
  WithResponse extends true ? [_Success, HttpClientResponse.HttpClientResponse] : _Success,
86
- _Error | GroupError | ApiError | HttpClientError.HttpClientError
86
+ _Error | GroupError | ApiError | HttpClientError.HttpClientError | ParseResult.ParseError
87
87
  > :
88
88
  never
89
89
 
@@ -224,7 +224,6 @@ const makeClient = <ApiId extends string, Groups extends HttpApiGroup.Any, ApiEr
224
224
  return request?.withResponse === true ? [value, response] : value
225
225
  }).pipe(
226
226
  Effect.scoped,
227
- Effect.catchIf(ParseResult.isParseError, Effect.die),
228
227
  Effect.mapInputContext((input) => Context.merge(context, input))
229
228
  )
230
229
 
package/src/HttpClient.ts CHANGED
@@ -12,7 +12,7 @@ import type * as Predicate from "effect/Predicate"
12
12
  import type { Ref } from "effect/Ref"
13
13
  import type * as Schedule from "effect/Schedule"
14
14
  import type * as Scope from "effect/Scope"
15
- import type { NoInfer } from "effect/Types"
15
+ import type { NoExcessProperties, NoInfer } from "effect/Types"
16
16
  import type { Cookies } from "./Cookies.js"
17
17
  import type * as Error from "./HttpClientError.js"
18
18
  import type * as ClientRequest from "./HttpClientRequest.js"
@@ -588,7 +588,7 @@ export declare namespace Retry {
588
588
  * @since 1.0.0
589
589
  * @category error handling
590
590
  */
591
- export type Return<R, E, O extends Effect.Retry.Options<E>> = HttpClient.With<
591
+ export type Return<R, E, O extends NoExcessProperties<Effect.Retry.Options<E>, O>> = HttpClient.With<
592
592
  | (O extends { schedule: Schedule.Schedule<infer _O, infer _I, infer _R> } ? E
593
593
  : O extends { until: Predicate.Refinement<E, infer E2> } ? E2
594
594
  : E)
@@ -614,7 +614,7 @@ export const retry: {
614
614
  * @since 1.0.0
615
615
  * @category error handling
616
616
  */
617
- <E, O extends Effect.Retry.Options<E>>(options: O): <R>(self: HttpClient.With<E, R>) => Retry.Return<R, E, O>
617
+ <E, O extends NoExcessProperties<Effect.Retry.Options<E>, O>>(options: O): <R>(self: HttpClient.With<E, R>) => Retry.Return<R, E, O>
618
618
  /**
619
619
  * Retries the request based on a provided schedule or policy.
620
620
  *
@@ -628,7 +628,7 @@ export const retry: {
628
628
  * @since 1.0.0
629
629
  * @category error handling
630
630
  */
631
- <E, R, O extends Effect.Retry.Options<E>>(self: HttpClient.With<E, R>, options: O): Retry.Return<R, E, O>
631
+ <E, R, O extends NoExcessProperties<Effect.Retry.Options<E>, O>>(self: HttpClient.With<E, R>, options: O): Retry.Return<R, E, O>
632
632
  /**
633
633
  * Retries the request based on a provided schedule or policy.
634
634
  *
package/src/OpenApi.ts CHANGED
@@ -175,6 +175,12 @@ function processAnnotation<Services, S, I>(
175
175
  }
176
176
  }
177
177
 
178
+ /**
179
+ * @since 1.0.0
180
+ * @category models
181
+ */
182
+ export type AdditionalPropertiesStrategy = "allow" | "strict"
183
+
178
184
  /**
179
185
  * Converts an `HttpApi` instance into an OpenAPI Specification object.
180
186
  *
@@ -192,6 +198,12 @@ function processAnnotation<Services, S, I>(
192
198
  * and overrides. Cached results are used for better performance when the same
193
199
  * `HttpApi` instance is processed multiple times.
194
200
  *
201
+ * **Options**
202
+ *
203
+ * - `additionalPropertiesStrategy`: Controls the handling of additional properties. Possible values are:
204
+ * - `"strict"`: Disallow additional properties (default behavior).
205
+ * - `"allow"`: Allow additional properties.
206
+ *
195
207
  * @example
196
208
  * ```ts
197
209
  * import { HttpApi, HttpApiEndpoint, HttpApiGroup, OpenApi } from "@effect/platform"
@@ -214,7 +226,10 @@ function processAnnotation<Services, S, I>(
214
226
  * @since 1.0.0
215
227
  */
216
228
  export const fromApi = <Id extends string, Groups extends HttpApiGroup.Any, E, R>(
217
- api: HttpApi.HttpApi<Id, Groups, E, R>
229
+ api: HttpApi.HttpApi<Id, Groups, E, R>,
230
+ options?: {
231
+ readonly additionalPropertiesStrategy?: AdditionalPropertiesStrategy | undefined
232
+ } | undefined
218
233
  ): OpenAPISpec => {
219
234
  const cached = apiCache.get(api)
220
235
  if (cached !== undefined) {
@@ -238,7 +253,8 @@ export const fromApi = <Id extends string, Groups extends HttpApiGroup.Any, E, R
238
253
 
239
254
  function processAST(ast: AST.AST): JsonSchema.JsonSchema {
240
255
  return JsonSchema.fromAST(ast, {
241
- defs: jsonSchemaDefs
256
+ defs: jsonSchemaDefs,
257
+ additionalPropertiesStrategy: options?.additionalPropertiesStrategy
242
258
  })
243
259
  }
244
260
 
@@ -255,35 +255,47 @@ export const make = <A, I, R>(schema: Schema.Schema<A, I, R>): Root => {
255
255
  return out
256
256
  }
257
257
 
258
+ type TopLevelReferenceStrategy = "skip" | "keep"
259
+
260
+ type AdditionalPropertiesStrategy = "allow" | "strict"
261
+
258
262
  /**
259
263
  * Creates a schema with additional options and definitions.
260
264
  *
265
+ * **Options**
266
+ *
261
267
  * - `defs`: A record of definitions that are included in the schema.
262
268
  * - `defsPath`: The path to the definitions within the schema (defaults to "#/$defs/").
263
269
  * - `topLevelReferenceStrategy`: Controls the handling of the top-level reference. Possible values are:
264
270
  * - `"keep"`: Keep the top-level reference (default behavior).
265
271
  * - `"skip"`: Skip the top-level reference.
272
+ * - `additionalPropertiesStrategy`: Controls the handling of additional properties. Possible values are:
273
+ * - `"strict"`: Disallow additional properties (default behavior).
274
+ * - `"allow"`: Allow additional properties.
266
275
  *
267
276
  * @category encoding
268
277
  * @since 1.0.0
269
278
  */
270
279
  export const makeWithDefs = <A, I, R>(schema: Schema.Schema<A, I, R>, options: {
271
280
  readonly defs: Record<string, any>
272
- readonly defsPath?: string
273
- readonly topLevelReferenceStrategy?: "skip" | "keep"
281
+ readonly defsPath?: string | undefined
282
+ readonly topLevelReferenceStrategy?: TopLevelReferenceStrategy | undefined
283
+ readonly additionalPropertiesStrategy?: AdditionalPropertiesStrategy | undefined
274
284
  }): JsonSchema => fromAST(schema.ast, options)
275
285
 
276
286
  /** @internal */
277
287
  export const fromAST = (ast: AST.AST, options: {
278
288
  readonly defs: Record<string, any>
279
- readonly defsPath?: string
280
- readonly topLevelReferenceStrategy?: "skip" | "keep"
289
+ readonly defsPath?: string | undefined
290
+ readonly topLevelReferenceStrategy?: TopLevelReferenceStrategy | undefined
291
+ readonly additionalPropertiesStrategy?: AdditionalPropertiesStrategy | undefined
281
292
  }): JsonSchema => {
282
293
  const jsonSchema = JSONSchema.fromAST(ast, {
283
294
  definitions: options.defs,
284
295
  definitionPath: options.defsPath ?? "#/components/schemas/",
285
296
  target: "openApi3.1",
286
- topLevelReferenceStrategy: options.topLevelReferenceStrategy ?? "keep"
297
+ topLevelReferenceStrategy: options.topLevelReferenceStrategy,
298
+ additionalPropertiesStrategy: options.additionalPropertiesStrategy
287
299
  })
288
300
  return jsonSchema as JsonSchema
289
301
  }
@@ -1,6 +1,7 @@
1
1
  import * as Effect from "effect/Effect"
2
2
  import * as FiberRef from "effect/FiberRef"
3
3
  import * as Stream from "effect/Stream"
4
+ import * as Headers from "../Headers.js"
4
5
  import type * as Client from "../HttpClient.js"
5
6
  import * as Error from "../HttpClientError.js"
6
7
  import * as client from "./httpClient.js"
@@ -15,7 +16,7 @@ const fetch: Client.HttpClient = client.make((request, url, signal, fiber) => {
15
16
  const context = fiber.getFiberRef(FiberRef.currentContext)
16
17
  const fetch: typeof globalThis.fetch = context.unsafeMap.get(fetchTagKey) ?? globalThis.fetch
17
18
  const options: RequestInit = context.unsafeMap.get(requestInitTagKey) ?? {}
18
- const headers = new globalThis.Headers(request.headers)
19
+ const headers = options.headers ? Headers.merge(Headers.fromInput(options.headers), request.headers) : request.headers
19
20
  const send = (body: BodyInit | undefined) =>
20
21
  Effect.map(
21
22
  Effect.tryPromise({
@@ -12,7 +12,7 @@ import * as Predicate from "effect/Predicate"
12
12
  import * as Ref from "effect/Ref"
13
13
  import * as Schedule from "effect/Schedule"
14
14
  import * as Scope from "effect/Scope"
15
- import type { NoInfer } from "effect/Types"
15
+ import type { NoExcessProperties, NoInfer } from "effect/Types"
16
16
  import * as Cookies from "../Cookies.js"
17
17
  import * as Headers from "../Headers.js"
18
18
  import type * as Client from "../HttpClient.js"
@@ -541,13 +541,13 @@ export const mapRequestInputEffect = dual<
541
541
 
542
542
  /** @internal */
543
543
  export const retry: {
544
- <E, O extends Effect.Retry.Options<E>>(
544
+ <E, O extends NoExcessProperties<Effect.Retry.Options<E>, O>>(
545
545
  options: O
546
546
  ): <R>(self: Client.HttpClient.With<E, R>) => Client.Retry.Return<R, E, O>
547
547
  <B, E, R1>(
548
548
  policy: Schedule.Schedule<B, NoInfer<E>, R1>
549
549
  ): <R>(self: Client.HttpClient.With<E, R>) => Client.HttpClient.With<E, R1 | R>
550
- <E, R, O extends Effect.Retry.Options<E>>(
550
+ <E, R, O extends NoExcessProperties<Effect.Retry.Options<E>, O>>(
551
551
  self: Client.HttpClient.With<E, R>,
552
552
  options: O
553
553
  ): Client.Retry.Return<R, E, O>