@effect/platform-browser 4.0.0-beta.7 → 4.0.0-beta.71

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 (91) hide show
  1. package/dist/BrowserCrypto.d.ts +81 -0
  2. package/dist/BrowserCrypto.d.ts.map +1 -0
  3. package/dist/BrowserCrypto.js +119 -0
  4. package/dist/BrowserCrypto.js.map +1 -0
  5. package/dist/BrowserHttpClient.d.ts +40 -16
  6. package/dist/BrowserHttpClient.d.ts.map +1 -1
  7. package/dist/BrowserHttpClient.js +74 -18
  8. package/dist/BrowserHttpClient.js.map +1 -1
  9. package/dist/BrowserKeyValueStore.d.ts +37 -14
  10. package/dist/BrowserKeyValueStore.d.ts.map +1 -1
  11. package/dist/BrowserKeyValueStore.js +185 -10
  12. package/dist/BrowserKeyValueStore.js.map +1 -1
  13. package/dist/BrowserPersistence.d.ts +40 -0
  14. package/dist/BrowserPersistence.d.ts.map +1 -0
  15. package/dist/BrowserPersistence.js +207 -0
  16. package/dist/BrowserPersistence.js.map +1 -0
  17. package/dist/BrowserRuntime.d.ts +79 -4
  18. package/dist/BrowserRuntime.d.ts.map +1 -1
  19. package/dist/BrowserRuntime.js +19 -1
  20. package/dist/BrowserRuntime.js.map +1 -1
  21. package/dist/BrowserSocket.d.ts +64 -6
  22. package/dist/BrowserSocket.d.ts.map +1 -1
  23. package/dist/BrowserSocket.js +64 -6
  24. package/dist/BrowserSocket.js.map +1 -1
  25. package/dist/BrowserStream.d.ts +48 -5
  26. package/dist/BrowserStream.d.ts.map +1 -1
  27. package/dist/BrowserStream.js +48 -5
  28. package/dist/BrowserStream.js.map +1 -1
  29. package/dist/BrowserWorker.d.ts +25 -4
  30. package/dist/BrowserWorker.d.ts.map +1 -1
  31. package/dist/BrowserWorker.js +62 -6
  32. package/dist/BrowserWorker.js.map +1 -1
  33. package/dist/BrowserWorkerRunner.d.ts +31 -6
  34. package/dist/BrowserWorkerRunner.d.ts.map +1 -1
  35. package/dist/BrowserWorkerRunner.js +65 -10
  36. package/dist/BrowserWorkerRunner.js.map +1 -1
  37. package/dist/Clipboard.d.ts +77 -13
  38. package/dist/Clipboard.d.ts.map +1 -1
  39. package/dist/Clipboard.js +57 -11
  40. package/dist/Clipboard.js.map +1 -1
  41. package/dist/Geolocation.d.ts +101 -24
  42. package/dist/Geolocation.d.ts.map +1 -1
  43. package/dist/Geolocation.js +69 -16
  44. package/dist/Geolocation.js.map +1 -1
  45. package/dist/IndexedDb.d.ts +89 -0
  46. package/dist/IndexedDb.d.ts.map +1 -0
  47. package/dist/IndexedDb.js +99 -0
  48. package/dist/IndexedDb.js.map +1 -0
  49. package/dist/IndexedDbDatabase.d.ts +169 -0
  50. package/dist/IndexedDbDatabase.d.ts.map +1 -0
  51. package/dist/IndexedDbDatabase.js +343 -0
  52. package/dist/IndexedDbDatabase.js.map +1 -0
  53. package/dist/IndexedDbQueryBuilder.d.ts +438 -0
  54. package/dist/IndexedDbQueryBuilder.d.ts.map +1 -0
  55. package/dist/IndexedDbQueryBuilder.js +935 -0
  56. package/dist/IndexedDbQueryBuilder.js.map +1 -0
  57. package/dist/IndexedDbTable.d.ts +191 -0
  58. package/dist/IndexedDbTable.d.ts.map +1 -0
  59. package/dist/IndexedDbTable.js +96 -0
  60. package/dist/IndexedDbTable.js.map +1 -0
  61. package/dist/IndexedDbVersion.d.ts +94 -0
  62. package/dist/IndexedDbVersion.d.ts.map +1 -0
  63. package/dist/IndexedDbVersion.js +39 -0
  64. package/dist/IndexedDbVersion.js.map +1 -0
  65. package/dist/Permissions.d.ts +76 -16
  66. package/dist/Permissions.d.ts.map +1 -1
  67. package/dist/Permissions.js +66 -11
  68. package/dist/Permissions.js.map +1 -1
  69. package/dist/index.d.ts +38 -10
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +38 -10
  72. package/dist/index.js.map +1 -1
  73. package/package.json +4 -3
  74. package/src/BrowserCrypto.ts +129 -0
  75. package/src/BrowserHttpClient.ts +84 -24
  76. package/src/BrowserKeyValueStore.ts +201 -12
  77. package/src/BrowserPersistence.ts +376 -0
  78. package/src/BrowserRuntime.ts +79 -4
  79. package/src/BrowserSocket.ts +64 -6
  80. package/src/BrowserStream.ts +48 -5
  81. package/src/BrowserWorker.ts +62 -6
  82. package/src/BrowserWorkerRunner.ts +65 -10
  83. package/src/Clipboard.ts +74 -13
  84. package/src/Geolocation.ts +97 -20
  85. package/src/IndexedDb.ts +127 -0
  86. package/src/IndexedDbDatabase.ts +664 -0
  87. package/src/IndexedDbQueryBuilder.ts +2048 -0
  88. package/src/IndexedDbTable.ts +285 -0
  89. package/src/IndexedDbVersion.ts +133 -0
  90. package/src/Permissions.ts +71 -14
  91. package/src/index.ts +45 -10
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Browser-backed implementation of Effect's Crypto service.
3
+ *
4
+ * This module provides a `Crypto.Crypto` layer backed by the Web Crypto API.
5
+ * The {@link WebCrypto} context reference defaults to `globalThis.crypto`, so
6
+ * browser programs can use the standard implementation while tests or embedded
7
+ * runtimes can provide their own `Crypto` object.
8
+ *
9
+ * **Mental model**
10
+ *
11
+ * {@link layer} reads {@link WebCrypto}, adapts `getRandomValues` to the
12
+ * random byte primitive used by `effect/Crypto`, and delegates digest requests
13
+ * to `crypto.subtle.digest`. Higher-level helpers such as UUID generation are
14
+ * derived by the core Crypto service from those primitives.
15
+ *
16
+ * **Common tasks**
17
+ *
18
+ * - Provide cryptographic randomness, UUID generation, and digest operations in
19
+ * browser Effect programs with {@link layer}
20
+ * - Override {@link WebCrypto} in tests to make randomness or digest output
21
+ * deterministic
22
+ *
23
+ * **Gotchas**
24
+ *
25
+ * - The browser must expose `globalThis.crypto`; otherwise layer acquisition
26
+ * dies because no secure randomness source is available.
27
+ * - Digest support depends on `crypto.subtle.digest` and the algorithms the
28
+ * browser accepts. Rejected digest operations fail with `PlatformError`.
29
+ *
30
+ * **Example** (Provide browser crypto)
31
+ *
32
+ * ```ts
33
+ * import { BrowserCrypto } from "@effect/platform-browser"
34
+ * import { Crypto, Effect } from "effect"
35
+ *
36
+ * const program = Effect.gen(function*() {
37
+ * const crypto = yield* Crypto.Crypto
38
+ * return yield* crypto.randomUUIDv4
39
+ * })
40
+ *
41
+ * Effect.runPromise(
42
+ * program.pipe(Effect.provide(BrowserCrypto.layer))
43
+ * ).then(console.log)
44
+ * ```
45
+ *
46
+ * @since 1.0.0
47
+ */
48
+ import * as Context from "effect/Context";
49
+ import * as EffectCrypto from "effect/Crypto";
50
+ import * as Layer from "effect/Layer";
51
+ /**
52
+ * Browser Web Crypto APIs used by the Crypto service implementation.
53
+ *
54
+ * @category models
55
+ * @since 1.0.0
56
+ */
57
+ export declare const WebCrypto: Context.Reference<Crypto>;
58
+ /**
59
+ * A layer that directly interfaces with the Web Crypto API.
60
+ *
61
+ * **When to use**
62
+ *
63
+ * Use to provide cryptographic randomness, UUID generation, and digest
64
+ * operations in browser runtimes backed by `globalThis.crypto`.
65
+ *
66
+ * **Details**
67
+ *
68
+ * Random bytes are produced with `crypto.getRandomValues`. Digests are computed
69
+ * with `crypto.subtle.digest` and returned as `Uint8Array` values.
70
+ *
71
+ * **Gotchas**
72
+ *
73
+ * The layer dies if the Web Crypto object is unavailable. Digest operations
74
+ * fail with `PlatformError` when `crypto.subtle.digest` is unavailable or the
75
+ * browser rejects the digest request.
76
+ *
77
+ * @category layers
78
+ * @since 1.0.0
79
+ */
80
+ export declare const layer: Layer.Layer<EffectCrypto.Crypto>;
81
+ //# sourceMappingURL=BrowserCrypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserCrypto.d.ts","sourceRoot":"","sources":["../src/BrowserCrypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,YAAY,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC;;;;;GAKG;AACH,eAAO,MAAM,SAAS,2BAEpB,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CA2ClD,CAAA"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Browser-backed implementation of Effect's Crypto service.
3
+ *
4
+ * This module provides a `Crypto.Crypto` layer backed by the Web Crypto API.
5
+ * The {@link WebCrypto} context reference defaults to `globalThis.crypto`, so
6
+ * browser programs can use the standard implementation while tests or embedded
7
+ * runtimes can provide their own `Crypto` object.
8
+ *
9
+ * **Mental model**
10
+ *
11
+ * {@link layer} reads {@link WebCrypto}, adapts `getRandomValues` to the
12
+ * random byte primitive used by `effect/Crypto`, and delegates digest requests
13
+ * to `crypto.subtle.digest`. Higher-level helpers such as UUID generation are
14
+ * derived by the core Crypto service from those primitives.
15
+ *
16
+ * **Common tasks**
17
+ *
18
+ * - Provide cryptographic randomness, UUID generation, and digest operations in
19
+ * browser Effect programs with {@link layer}
20
+ * - Override {@link WebCrypto} in tests to make randomness or digest output
21
+ * deterministic
22
+ *
23
+ * **Gotchas**
24
+ *
25
+ * - The browser must expose `globalThis.crypto`; otherwise layer acquisition
26
+ * dies because no secure randomness source is available.
27
+ * - Digest support depends on `crypto.subtle.digest` and the algorithms the
28
+ * browser accepts. Rejected digest operations fail with `PlatformError`.
29
+ *
30
+ * **Example** (Provide browser crypto)
31
+ *
32
+ * ```ts
33
+ * import { BrowserCrypto } from "@effect/platform-browser"
34
+ * import { Crypto, Effect } from "effect"
35
+ *
36
+ * const program = Effect.gen(function*() {
37
+ * const crypto = yield* Crypto.Crypto
38
+ * return yield* crypto.randomUUIDv4
39
+ * })
40
+ *
41
+ * Effect.runPromise(
42
+ * program.pipe(Effect.provide(BrowserCrypto.layer))
43
+ * ).then(console.log)
44
+ * ```
45
+ *
46
+ * @since 1.0.0
47
+ */
48
+ import * as Context from "effect/Context";
49
+ import * as EffectCrypto from "effect/Crypto";
50
+ import * as Effect from "effect/Effect";
51
+ import * as Layer from "effect/Layer";
52
+ import * as PlatformError from "effect/PlatformError";
53
+ /**
54
+ * Browser Web Crypto APIs used by the Crypto service implementation.
55
+ *
56
+ * @category models
57
+ * @since 1.0.0
58
+ */
59
+ export const WebCrypto = /*#__PURE__*/Context.Reference("@effect/platform-browser/Crypto/WebCrypto", {
60
+ defaultValue: () => globalThis.crypto
61
+ });
62
+ /**
63
+ * A layer that directly interfaces with the Web Crypto API.
64
+ *
65
+ * **When to use**
66
+ *
67
+ * Use to provide cryptographic randomness, UUID generation, and digest
68
+ * operations in browser runtimes backed by `globalThis.crypto`.
69
+ *
70
+ * **Details**
71
+ *
72
+ * Random bytes are produced with `crypto.getRandomValues`. Digests are computed
73
+ * with `crypto.subtle.digest` and returned as `Uint8Array` values.
74
+ *
75
+ * **Gotchas**
76
+ *
77
+ * The layer dies if the Web Crypto object is unavailable. Digest operations
78
+ * fail with `PlatformError` when `crypto.subtle.digest` is unavailable or the
79
+ * browser rejects the digest request.
80
+ *
81
+ * @category layers
82
+ * @since 1.0.0
83
+ */
84
+ export const layer = /*#__PURE__*/Layer.effect(EffectCrypto.Crypto, /*#__PURE__*/Effect.gen(function* () {
85
+ const crypto = yield* WebCrypto;
86
+ if (!crypto) {
87
+ return yield* Effect.die(new Error("Web Crypto API is not available"));
88
+ }
89
+ const randomBytes = size => {
90
+ const bytes = new Uint8Array(size);
91
+ crypto.getRandomValues(bytes);
92
+ return bytes;
93
+ };
94
+ const digest = (algorithm, data) => {
95
+ if (typeof crypto.subtle.digest !== "function") {
96
+ return Effect.fail(PlatformError.systemError({
97
+ module: "Crypto",
98
+ method: "digest",
99
+ _tag: "Unknown",
100
+ description: "crypto.subtle.digest is not available"
101
+ }));
102
+ }
103
+ return Effect.map(Effect.tryPromise({
104
+ try: () => crypto.subtle.digest(algorithm, new Uint8Array(data)),
105
+ catch: cause => PlatformError.systemError({
106
+ module: "Crypto",
107
+ method: "digest",
108
+ _tag: "Unknown",
109
+ description: "Could not compute digest",
110
+ cause
111
+ })
112
+ }), buffer => new Uint8Array(buffer));
113
+ };
114
+ return EffectCrypto.make({
115
+ randomBytes,
116
+ digest
117
+ });
118
+ }));
119
+ //# sourceMappingURL=BrowserCrypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserCrypto.js","names":["Context","EffectCrypto","Effect","Layer","PlatformError","WebCrypto","Reference","defaultValue","globalThis","crypto","layer","effect","Crypto","gen","die","Error","randomBytes","size","bytes","Uint8Array","getRandomValues","digest","algorithm","data","subtle","fail","systemError","module","method","_tag","description","map","tryPromise","try","catch","cause","buffer","make"],"sources":["../src/BrowserCrypto.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,YAAY,MAAM,eAAe;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,aAAa,MAAM,sBAAsB;AAErD;;;;;;AAMA,OAAO,MAAMC,SAAS,gBAAGL,OAAO,CAACM,SAAS,CAAS,2CAA2C,EAAE;EAC9FC,YAAY,EAAEA,CAAA,KAAMC,UAAU,CAACC;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,MAAMC,KAAK,gBAAqCP,KAAK,CAACQ,MAAM,CACjEV,YAAY,CAACW,MAAM,eACnBV,MAAM,CAACW,GAAG,CAAC,aAAS;EAClB,MAAMJ,MAAM,GAAG,OAAOJ,SAAS;EAC/B,IAAI,CAACI,MAAM,EAAE;IACX,OAAO,OAAOP,MAAM,CAACY,GAAG,CAAC,IAAIC,KAAK,CAAC,iCAAiC,CAAC,CAAC;EACxE;EACA,MAAMC,WAAW,GAAIC,IAAY,IAAgB;IAC/C,MAAMC,KAAK,GAAG,IAAIC,UAAU,CAACF,IAAI,CAAC;IAClCR,MAAM,CAACW,eAAe,CAACF,KAAK,CAAC;IAC7B,OAAOA,KAAK;EACd,CAAC;EAED,MAAMG,MAAM,GAAkCA,CAACC,SAAS,EAAEC,IAAI,KAAI;IAChE,IAAI,OAAOd,MAAM,CAACe,MAAM,CAACH,MAAM,KAAK,UAAU,EAAE;MAC9C,OAAOnB,MAAM,CAACuB,IAAI,CAACrB,aAAa,CAACsB,WAAW,CAAC;QAC3CC,MAAM,EAAE,QAAQ;QAChBC,MAAM,EAAE,QAAQ;QAChBC,IAAI,EAAE,SAAS;QACfC,WAAW,EAAE;OACd,CAAC,CAAC;IACL;IACA,OAAO5B,MAAM,CAAC6B,GAAG,CACf7B,MAAM,CAAC8B,UAAU,CAAC;MAChBC,GAAG,EAAEA,CAAA,KAAMxB,MAAM,CAACe,MAAM,CAACH,MAAM,CAACC,SAAS,EAAE,IAAIH,UAAU,CAACI,IAAI,CAAC,CAAC;MAChEW,KAAK,EAAGC,KAAK,IACX/B,aAAa,CAACsB,WAAW,CAAC;QACxBC,MAAM,EAAE,QAAQ;QAChBC,MAAM,EAAE,QAAQ;QAChBC,IAAI,EAAE,SAAS;QACfC,WAAW,EAAE,0BAA0B;QACvCK;OACD;KACJ,CAAC,EACDC,MAAM,IAAK,IAAIjB,UAAU,CAACiB,MAAM,CAAC,CACnC;EACH,CAAC;EAED,OAAOnC,YAAY,CAACoC,IAAI,CAAC;IACvBrB,WAAW;IACXK;GACD,CAAC;AACJ,CAAC,CAAC,CACH","ignoreList":[]}
@@ -1,49 +1,73 @@
1
+ import * as Context from "effect/Context";
1
2
  import * as Effect from "effect/Effect";
2
3
  import type { LazyArg } from "effect/Function";
3
4
  import type * as Layer from "effect/Layer";
4
- import * as ServiceMap from "effect/ServiceMap";
5
5
  import * as HttpClient from "effect/unstable/http/HttpClient";
6
6
  export {
7
7
  /**
8
- * @since 1.0.0
8
+ * Context reference for the `fetch` implementation used by the fetch-based HTTP client.
9
+ *
9
10
  * @category Fetch
11
+ * @since 4.0.0
10
12
  */
11
13
  Fetch,
12
14
  /**
13
- * @since 1.0.0
15
+ * Layer that provides an `HttpClient` implementation backed by the configured `Fetch` function.
16
+ *
14
17
  * @category Fetch
18
+ * @since 4.0.0
15
19
  */
16
20
  layer as layerFetch,
17
21
  /**
18
- * @since 1.0.0
22
+ * Service containing default `RequestInit` options for the fetch-based HTTP client.
23
+ *
19
24
  * @category Fetch
25
+ * @since 4.0.0
20
26
  */
21
27
  RequestInit } from "effect/unstable/http/FetchHttpClient";
22
28
  /**
23
- * @since 1.0.0
24
- * @category Models
29
+ * Allowed response body modes for the browser XHR HTTP client.
30
+ *
31
+ * @category models
32
+ * @since 4.0.0
25
33
  */
26
34
  export type XHRResponseType = "arraybuffer" | "text";
27
35
  /**
28
- * @since 1.0.0
29
- * @category References
36
+ * Reference that controls the `XMLHttpRequest.responseType` used by the browser XHR HTTP client, defaulting to `"text"`.
37
+ *
38
+ * **When to use**
39
+ *
40
+ * Use when XHR-backed HTTP requests need to receive response bodies as text or
41
+ * as raw `ArrayBuffer` values.
42
+ *
43
+ * @see {@link XHRResponseType} for the allowed response body modes
44
+ * @see {@link withXHRArrayBuffer} for scoping XHR response handling to `ArrayBuffer`
45
+ *
46
+ * @category references
47
+ * @since 4.0.0
30
48
  */
31
- export declare const CurrentXHRResponseType: ServiceMap.Reference<XHRResponseType>;
49
+ export declare const CurrentXHRResponseType: Context.Reference<XHRResponseType>;
32
50
  /**
33
- * @since 1.0.0
34
- * @category References
51
+ * Runs an effect with `CurrentXHRResponseType` set to `"arraybuffer"` so the XHR HTTP client receives response bodies as `ArrayBuffer` values.
52
+ *
53
+ * @category references
54
+ * @since 4.0.0
35
55
  */
36
56
  export declare const withXHRArrayBuffer: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
37
- declare const XMLHttpRequest_base: ServiceMap.ServiceClass<XMLHttpRequest, "@effect/platform-browser/BrowserHttpClient/XMLHttpRequest", LazyArg<globalThis.XMLHttpRequest>>;
57
+ declare const XMLHttpRequest_base: Context.ServiceClass<XMLHttpRequest, "@effect/platform-browser/BrowserHttpClient/XMLHttpRequest", LazyArg<globalThis.XMLHttpRequest>>;
38
58
  /**
39
- * @since 1.0.0
40
- * @category Services
59
+ * Service tag for the `XMLHttpRequest` constructor used by the browser XHR HTTP client.
60
+ *
61
+ * @category services
62
+ * @since 4.0.0
41
63
  */
42
64
  export declare class XMLHttpRequest extends XMLHttpRequest_base {
43
65
  }
44
66
  /**
45
- * @since 1.0.0
46
- * @category Layers
67
+ * Layer that provides an `HttpClient` implementation backed by the browser `XMLHttpRequest` API.
68
+ *
69
+ * @category layers
70
+ * @since 4.0.0
47
71
  */
48
72
  export declare const layerXMLHttpRequest: Layer.Layer<HttpClient.HttpClient>;
49
73
  //# sourceMappingURL=BrowserHttpClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserHttpClient.d.ts","sourceRoot":"","sources":["../src/BrowserHttpClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAI/C,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAY7D,OAAO;AACL;;;GAGG;AACH,KAAK;AACL;;;GAGG;AACH,KAAK,IAAI,UAAU;AACnB;;;GAGG;AACH,WAAW,EACZ,MAAM,sCAAsC,CAAA;AAM7C;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,MAAM,CAAA;AAEpD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe,CAGxE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EACxC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAKrB,CAAA;;AAEH;;;GAGG;AACH,qBAAa,cAAe,SAAQ,mBAG4B;CAAG;AAwSnE;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAElE,CAAA"}
1
+ {"version":3,"file":"BrowserHttpClient.d.ts","sourceRoot":"","sources":["../src/BrowserHttpClient.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAQ1C,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAY7D,OAAO;AACL;;;;;GAKG;AACH,KAAK;AACL;;;;;GAKG;AACH,KAAK,IAAI,UAAU;AACnB;;;;;GAKG;AACH,WAAW,EACZ,MAAM,sCAAsC,CAAA;AAM7C;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,MAAM,CAAA;AAEpD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,SAAS,CAAC,eAAe,CAGrE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EACxC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAKrB,CAAA;;AAEH;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,mBAG4B;CAAG;AA4SnE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAElE,CAAA"}
@@ -1,11 +1,42 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Browser implementations of the Effect `HttpClient`.
3
+ *
4
+ * This module exposes HTTP client layers for code that runs in a browser. It
5
+ * re-exports the fetch-based client for the common case, where requests should
6
+ * use the platform `fetch` implementation and optional `RequestInit` defaults,
7
+ * and it provides an `XMLHttpRequest`-backed layer for integrations that need
8
+ * XHR semantics such as response type control or environments where XHR is the
9
+ * required transport.
10
+ *
11
+ * Use these layers for single-page applications, browser tests, generated
12
+ * `HttpApiClient`s, and other client-side Effect programs that need HTTP
13
+ * requests to participate in interruption, typed transport / decode errors, and
14
+ * Effect's response body readers.
15
+ *
16
+ * Browser networking rules still apply. Cross-origin requests are subject to
17
+ * CORS preflights and server allowlists, especially when using custom headers,
18
+ * non-simple methods, or non-simple content types. Only CORS-exposed response
19
+ * headers are readable, and cookies / authentication are controlled by the
20
+ * browser and the configured fetch `RequestInit.credentials` policy. The XHR
21
+ * layer uses the browser's `XMLHttpRequest` defaults for credentials.
22
+ *
23
+ * Body handling differs between the transports. Fetch delegates body framing to
24
+ * the Web Fetch implementation. The XHR client sends empty, raw, `Uint8Array`,
25
+ * and `FormData` bodies directly, buffers `Stream` request bodies before
26
+ * sending, defaults responses to text, and can be switched to `ArrayBuffer`
27
+ * responses with `withXHRArrayBuffer`. When sending `FormData`, avoid setting
28
+ * an incompatible `Content-Type` header so the browser can generate the
29
+ * multipart boundary.
30
+ *
31
+ * @since 4.0.0
3
32
  */
4
33
  import * as Cause from "effect/Cause";
34
+ import * as Context from "effect/Context";
5
35
  import * as Effect from "effect/Effect";
6
36
  import * as Inspectable from "effect/Inspectable";
37
+ import * as Option from "effect/Option";
38
+ import { pipeArguments } from "effect/Pipeable";
7
39
  import * as Queue from "effect/Queue";
8
- import * as ServiceMap from "effect/ServiceMap";
9
40
  import * as Stream from "effect/Stream";
10
41
  import * as Cookies from "effect/unstable/http/Cookies";
11
42
  import * as Headers from "effect/unstable/http/Headers";
@@ -20,40 +51,60 @@ import * as HeaderParser from "multipasta/HeadersParser";
20
51
  // =============================================================================
21
52
  export {
22
53
  /**
23
- * @since 1.0.0
54
+ * Context reference for the `fetch` implementation used by the fetch-based HTTP client.
55
+ *
24
56
  * @category Fetch
57
+ * @since 4.0.0
25
58
  */
26
59
  Fetch,
27
60
  /**
28
- * @since 1.0.0
61
+ * Layer that provides an `HttpClient` implementation backed by the configured `Fetch` function.
62
+ *
29
63
  * @category Fetch
64
+ * @since 4.0.0
30
65
  */
31
66
  layer as layerFetch,
32
67
  /**
33
- * @since 1.0.0
68
+ * Service containing default `RequestInit` options for the fetch-based HTTP client.
69
+ *
34
70
  * @category Fetch
71
+ * @since 4.0.0
35
72
  */
36
73
  RequestInit } from "effect/unstable/http/FetchHttpClient";
37
74
  /**
38
- * @since 1.0.0
39
- * @category References
75
+ * Reference that controls the `XMLHttpRequest.responseType` used by the browser XHR HTTP client, defaulting to `"text"`.
76
+ *
77
+ * **When to use**
78
+ *
79
+ * Use when XHR-backed HTTP requests need to receive response bodies as text or
80
+ * as raw `ArrayBuffer` values.
81
+ *
82
+ * @see {@link XHRResponseType} for the allowed response body modes
83
+ * @see {@link withXHRArrayBuffer} for scoping XHR response handling to `ArrayBuffer`
84
+ *
85
+ * @category references
86
+ * @since 4.0.0
40
87
  */
41
- export const CurrentXHRResponseType = /*#__PURE__*/ServiceMap.Reference("@effect/platform-browser/BrowserHttpClient/CurrentXHRResponseType", {
88
+ export const CurrentXHRResponseType = /*#__PURE__*/Context.Reference("@effect/platform-browser/BrowserHttpClient/CurrentXHRResponseType", {
42
89
  defaultValue: () => "text"
43
90
  });
44
91
  /**
45
- * @since 1.0.0
46
- * @category References
92
+ * Runs an effect with `CurrentXHRResponseType` set to `"arraybuffer"` so the XHR HTTP client receives response bodies as `ArrayBuffer` values.
93
+ *
94
+ * @category references
95
+ * @since 4.0.0
47
96
  */
48
97
  export const withXHRArrayBuffer = self => Effect.provideService(self, CurrentXHRResponseType, "arraybuffer");
49
98
  /**
50
- * @since 1.0.0
51
- * @category Services
99
+ * Service tag for the `XMLHttpRequest` constructor used by the browser XHR HTTP client.
100
+ *
101
+ * @category services
102
+ * @since 4.0.0
52
103
  */
53
- export class XMLHttpRequest extends /*#__PURE__*/ServiceMap.Service()("@effect/platform-browser/BrowserHttpClient/XMLHttpRequest") {}
104
+ export class XMLHttpRequest extends /*#__PURE__*/Context.Service()("@effect/platform-browser/BrowserHttpClient/XMLHttpRequest") {}
54
105
  const makeXhrRequest = () => new globalThis.XMLHttpRequest();
55
106
  const makeXmlHttpRequest = /*#__PURE__*/HttpClient.make((request, url, signal, fiber) => Effect.suspend(() => {
56
- const xhr = ServiceMap.getOrElse(fiber.services, XMLHttpRequest, () => makeXhrRequest)();
107
+ const xhr = Context.getOrElse(fiber.context, XMLHttpRequest, () => makeXhrRequest)();
57
108
  signal.addEventListener("abort", () => {
58
109
  xhr.abort();
59
110
  xhr.onreadystatechange = null;
@@ -155,7 +206,7 @@ class IncomingMessageImpl extends Inspectable.Class {
155
206
  return this.cachedCookies = Cookies.fromSetCookie(this._rawHeaders["set-cookie"]);
156
207
  }
157
208
  get remoteAddress() {
158
- return undefined;
209
+ return Option.none();
159
210
  }
160
211
  _textEffect;
161
212
  get text() {
@@ -286,10 +337,15 @@ class ClientResponseImpl extends IncomingMessageImpl {
286
337
  status: this.status
287
338
  });
288
339
  }
340
+ pipe() {
341
+ return pipeArguments(this, arguments);
342
+ }
289
343
  }
290
344
  /**
291
- * @since 1.0.0
292
- * @category Layers
345
+ * Layer that provides an `HttpClient` implementation backed by the browser `XMLHttpRequest` API.
346
+ *
347
+ * @category layers
348
+ * @since 4.0.0
293
349
  */
294
- export const layerXMLHttpRequest = /*#__PURE__*/HttpClient.layerMergedServices(/*#__PURE__*/Effect.succeed(makeXmlHttpRequest));
350
+ export const layerXMLHttpRequest = /*#__PURE__*/HttpClient.layerMergedContext(/*#__PURE__*/Effect.succeed(makeXmlHttpRequest));
295
351
  //# sourceMappingURL=BrowserHttpClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserHttpClient.js","names":["Cause","Effect","Inspectable","Queue","ServiceMap","Stream","Cookies","Headers","HttpClient","HttpClientError","HttpClientResponse","HttpIncomingMessage","UrlParams","HeaderParser","Fetch","layer","layerFetch","RequestInit","CurrentXHRResponseType","Reference","defaultValue","withXHRArrayBuffer","self","provideService","XMLHttpRequest","Service","makeXhrRequest","globalThis","makeXmlHttpRequest","make","request","url","signal","fiber","suspend","xhr","getOrElse","services","addEventListener","abort","onreadystatechange","once","open","method","toString","responseType","getRef","Object","entries","headers","forEach","k","v","setRequestHeader","andThen","sendBody","callback","resume","sent","onChange","readyState","succeed","ClientResponseImpl","onerror","_event","fail","reason","TransportError","cause","statusText","void","body","_tag","sync","send","formData","matchEffect","runFold","stream","Uint8Array","acc","chunk","next","length","set","onFailure","EncodeError","onSuccess","encoder","TextEncoder","IncomingMessageImpl","Class","TypeId","source","onError","constructor","_rawHeaderString","getAllResponseHeaders","_rawHeaders","_headers","empty","parser","result","encode","undefined","parsed","fromInput","cachedCookies","cookies","fromSetCookie","remoteAddress","_textEffect","text","responseText","onReadyStateChange","removeEventListener","pipe","cached","runSync","json","flatMap","try","JSON","parse","catch","urlParamsBody","URLSearchParams","queue","offset","encoded","slice","offerUnsafe","endUnsafe","failCauseUnsafe","_arrayBufferEffect","arrayBuffer","response","map","arr","byteLength","buffer","byteOffset","DecodeError","status","die","toJSON","inspect","_id","layerXMLHttpRequest","layerMergedServices"],"sources":["../src/BrowserHttpClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BrowserHttpClient.js","names":["Cause","Context","Effect","Inspectable","Option","pipeArguments","Queue","Stream","Cookies","Headers","HttpClient","HttpClientError","HttpClientResponse","HttpIncomingMessage","UrlParams","HeaderParser","Fetch","layer","layerFetch","RequestInit","CurrentXHRResponseType","Reference","defaultValue","withXHRArrayBuffer","self","provideService","XMLHttpRequest","Service","makeXhrRequest","globalThis","makeXmlHttpRequest","make","request","url","signal","fiber","suspend","xhr","getOrElse","context","addEventListener","abort","onreadystatechange","once","open","method","toString","responseType","getRef","Object","entries","headers","forEach","k","v","setRequestHeader","andThen","sendBody","callback","resume","sent","onChange","readyState","succeed","ClientResponseImpl","onerror","_event","fail","reason","TransportError","cause","statusText","void","body","_tag","sync","send","formData","matchEffect","runFold","stream","Uint8Array","acc","chunk","next","length","set","onFailure","EncodeError","onSuccess","encoder","TextEncoder","IncomingMessageImpl","Class","TypeId","source","onError","constructor","_rawHeaderString","getAllResponseHeaders","_rawHeaders","_headers","empty","parser","result","encode","undefined","parsed","fromInput","cachedCookies","cookies","fromSetCookie","remoteAddress","none","_textEffect","text","responseText","onReadyStateChange","removeEventListener","pipe","cached","runSync","json","flatMap","try","JSON","parse","catch","urlParamsBody","URLSearchParams","queue","offset","encoded","slice","offerUnsafe","endUnsafe","failCauseUnsafe","_arrayBufferEffect","arrayBuffer","response","map","arr","byteLength","buffer","byteOffset","DecodeError","status","die","toJSON","inspect","_id","arguments","layerXMLHttpRequest","layerMergedContext"],"sources":["../src/BrowserHttpClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,24 +1,47 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as Layer from "effect/Layer";
1
+ import * as Layer from "effect/Layer";
5
2
  import * as KeyValueStore from "effect/unstable/persistence/KeyValueStore";
3
+ import { IndexedDb } from "./IndexedDb.ts";
6
4
  /**
7
- * Creates a `KeyValueStore` layer that uses the browser's `localStorage` api.
5
+ * Creates a `KeyValueStore` layer that uses the browser's `localStorage` API and stores values between browser sessions.
8
6
  *
9
- * Values are stored between sessions.
10
- *
11
- * @since 1.0.0
12
- * @category Layers
7
+ * @category layers
8
+ * @since 4.0.0
13
9
  */
14
10
  export declare const layerLocalStorage: Layer.Layer<KeyValueStore.KeyValueStore>;
15
11
  /**
16
- * Creates a `KeyValueStore` layer that uses the browser's `sessionStorage` api.
17
- *
18
- * Values are stored only for the current session.
12
+ * Creates a `KeyValueStore` layer that uses the browser's `sessionStorage` API and stores values only for the current session.
19
13
  *
20
- * @since 1.0.0
21
- * @category Layers
14
+ * @category layers
15
+ * @since 4.0.0
22
16
  */
23
17
  export declare const layerSessionStorage: Layer.Layer<KeyValueStore.KeyValueStore>;
18
+ /**
19
+ * Creates a `KeyValueStore` layer backed by IndexedDB.
20
+ *
21
+ * **When to use**
22
+ *
23
+ * Use when a browser `KeyValueStore` needs persistent asynchronous IndexedDB
24
+ * storage instead of the synchronous Web Storage APIs.
25
+ *
26
+ * **Details**
27
+ *
28
+ * The database name defaults to `"effect_key_value_store"`. The layer requires
29
+ * the `IndexedDb` service and stores string and `Uint8Array` values in the same
30
+ * backing object store.
31
+ *
32
+ * **Gotchas**
33
+ *
34
+ * IndexedDB may be unavailable or blocked by browser settings, private browsing,
35
+ * quota limits, or restricted contexts. The string and `Uint8Array` accessors do
36
+ * not coerce values stored with the other representation.
37
+ *
38
+ * @see {@link layerLocalStorage} for synchronous persistent Web Storage
39
+ * @see {@link layerSessionStorage} for synchronous tab-session Web Storage
40
+ *
41
+ * @category layers
42
+ * @since 4.0.0
43
+ */
44
+ export declare const layerIndexedDb: (options?: {
45
+ readonly database?: string | undefined;
46
+ }) => Layer.Layer<KeyValueStore.KeyValueStore, never, IndexedDb>;
24
47
  //# sourceMappingURL=BrowserKeyValueStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserKeyValueStore.d.ts","sourceRoot":"","sources":["../src/BrowserKeyValueStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,aAAa,MAAM,2CAA2C,CAAA;AAE1E;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAEtE,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAExE,CAAA"}
1
+ {"version":3,"file":"BrowserKeyValueStore.d.ts","sourceRoot":"","sources":["../src/BrowserKeyValueStore.ts"],"names":[],"mappings":"AAuDA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,aAAa,MAAM,2CAA2C,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAEtE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAExE,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACvC,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CA8D1D,CAAA"}