@effect/platform-browser 4.0.0-beta.8 → 4.0.0-beta.81

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 +49 -0
  2. package/dist/BrowserCrypto.d.ts.map +1 -0
  3. package/dist/BrowserCrypto.js +87 -0
  4. package/dist/BrowserCrypto.js.map +1 -0
  5. package/dist/BrowserHttpClient.d.ts +48 -19
  6. package/dist/BrowserHttpClient.d.ts.map +1 -1
  7. package/dist/BrowserHttpClient.js +62 -21
  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 +144 -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 +64 -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 +33 -6
  22. package/dist/BrowserSocket.d.ts.map +1 -1
  23. package/dist/BrowserSocket.js +33 -6
  24. package/dist/BrowserSocket.js.map +1 -1
  25. package/dist/BrowserStream.d.ts +19 -7
  26. package/dist/BrowserStream.d.ts.map +1 -1
  27. package/dist/BrowserStream.js +19 -7
  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 +34 -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 +43 -10
  36. package/dist/BrowserWorkerRunner.js.map +1 -1
  37. package/dist/Clipboard.d.ts +59 -14
  38. package/dist/Clipboard.d.ts.map +1 -1
  39. package/dist/Clipboard.js +34 -12
  40. package/dist/Clipboard.js.map +1 -1
  41. package/dist/Geolocation.d.ts +80 -25
  42. package/dist/Geolocation.d.ts.map +1 -1
  43. package/dist/Geolocation.js +48 -17
  44. package/dist/Geolocation.js.map +1 -1
  45. package/dist/IndexedDb.d.ts +75 -0
  46. package/dist/IndexedDb.d.ts.map +1 -0
  47. package/dist/IndexedDb.js +85 -0
  48. package/dist/IndexedDb.js.map +1 -0
  49. package/dist/IndexedDbDatabase.d.ts +153 -0
  50. package/dist/IndexedDbDatabase.d.ts.map +1 -0
  51. package/dist/IndexedDbDatabase.js +327 -0
  52. package/dist/IndexedDbDatabase.js.map +1 -0
  53. package/dist/IndexedDbQueryBuilder.d.ts +422 -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 +166 -0
  58. package/dist/IndexedDbTable.d.ts.map +1 -0
  59. package/dist/IndexedDbTable.js +71 -0
  60. package/dist/IndexedDbTable.js.map +1 -0
  61. package/dist/IndexedDbVersion.d.ts +99 -0
  62. package/dist/IndexedDbVersion.d.ts.map +1 -0
  63. package/dist/IndexedDbVersion.js +44 -0
  64. package/dist/IndexedDbVersion.js.map +1 -0
  65. package/dist/Permissions.d.ts +52 -16
  66. package/dist/Permissions.d.ts.map +1 -1
  67. package/dist/Permissions.js +42 -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 +97 -0
  75. package/src/BrowserHttpClient.ts +72 -27
  76. package/src/BrowserKeyValueStore.ts +160 -12
  77. package/src/BrowserPersistence.ts +334 -0
  78. package/src/BrowserRuntime.ts +64 -4
  79. package/src/BrowserSocket.ts +33 -6
  80. package/src/BrowserStream.ts +19 -7
  81. package/src/BrowserWorker.ts +34 -6
  82. package/src/BrowserWorkerRunner.ts +43 -10
  83. package/src/Clipboard.ts +56 -14
  84. package/src/Geolocation.ts +76 -21
  85. package/src/IndexedDb.ts +113 -0
  86. package/src/IndexedDbDatabase.ts +648 -0
  87. package/src/IndexedDbQueryBuilder.ts +2032 -0
  88. package/src/IndexedDbTable.ts +260 -0
  89. package/src/IndexedDbVersion.ts +138 -0
  90. package/src/Permissions.ts +47 -14
  91. package/src/index.ts +45 -10
@@ -1,18 +1,45 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Browser WebSocket layers for Effect sockets.
3
+ *
4
+ * `layerWebSocket` creates a `Socket.Socket` connected to a WebSocket URL using
5
+ * the browser `WebSocket` constructor. `layerWebSocketConstructor` provides
6
+ * only the browser-backed constructor service for lower-level socket code.
7
+ *
8
+ * @since 4.0.0
3
9
  */
4
10
  import * as Layer from "effect/Layer";
5
11
  import * as Socket from "effect/unstable/socket/Socket";
6
12
  /**
7
- * @since 1.0.0
8
- * @category Layers
13
+ * Creates a `Socket` layer connected to the given URL using the browser `WebSocket` constructor.
14
+ *
15
+ * **When to use**
16
+ *
17
+ * Use when you need browser code to satisfy the platform socket service from a
18
+ * URL without wiring the browser constructor service separately.
19
+ *
20
+ * **Details**
21
+ *
22
+ * Delegates socket construction to `Socket.makeWebSocket` and provides the
23
+ * browser-backed `WebSocketConstructor` service.
24
+ *
25
+ * **Gotchas**
26
+ *
27
+ * Browser WebSocket rules still control URL schemes, mixed-content blocking,
28
+ * cookies, authentication, origin checks, subprotocols, and extensions. Close
29
+ * events are errors unless `closeCodeIsError` classifies the close code as
30
+ * clean.
31
+ *
32
+ * @see {@link layerWebSocketConstructor} for providing only the browser constructor service
33
+ *
34
+ * @category layers
35
+ * @since 4.0.0
9
36
  */
10
37
  export const layerWebSocket = (url, options) => Layer.effect(Socket.Socket, Socket.makeWebSocket(url, options)).pipe(Layer.provide(layerWebSocketConstructor));
11
38
  /**
12
- * A WebSocket constructor that uses `globalThis.WebSocket`.
39
+ * Layer that provides a `WebSocketConstructor` service backed by `globalThis.WebSocket`.
13
40
  *
14
- * @since 1.0.0
15
- * @category Layers
41
+ * @category layers
42
+ * @since 4.0.0
16
43
  */
17
44
  export const layerWebSocketConstructor = Socket.layerWebSocketConstructorGlobal;
18
45
  //# sourceMappingURL=BrowserSocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserSocket.js","names":["Layer","Socket","layerWebSocket","url","options","effect","makeWebSocket","pipe","provide","layerWebSocketConstructor","layerWebSocketConstructorGlobal"],"sources":["../src/BrowserSocket.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AAEvD;;;;AAIA,OAAO,MAAMC,cAAc,GAAGA,CAACC,GAAW,EAAEC,OAE3C,KACCJ,KAAK,CAACK,MAAM,CAACJ,MAAM,CAACA,MAAM,EAAEA,MAAM,CAACK,aAAa,CAACH,GAAG,EAAEC,OAAO,CAAC,CAAC,CAACG,IAAI,CAClEP,KAAK,CAACQ,OAAO,CAACC,yBAAyB,CAAC,CACzC;AAEH;;;;;;AAMA,OAAO,MAAMA,yBAAyB,GACpCR,MAAM,CAACS,+BAA+B","ignoreList":[]}
1
+ {"version":3,"file":"BrowserSocket.js","names":["Layer","Socket","layerWebSocket","url","options","effect","makeWebSocket","pipe","provide","layerWebSocketConstructor","layerWebSocketConstructorGlobal"],"sources":["../src/BrowserSocket.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;AASA,OAAO,KAAKA,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAMC,cAAc,GAAGA,CAACC,GAAW,EAAEC,OAE3C,KACCJ,KAAK,CAACK,MAAM,CAACJ,MAAM,CAACA,MAAM,EAAEA,MAAM,CAACK,aAAa,CAACH,GAAG,EAAEC,OAAO,CAAC,CAAC,CAACG,IAAI,CAClEP,KAAK,CAACQ,OAAO,CAACC,yBAAyB,CAAC,CACzC;AAEH;;;;;;AAMA,OAAO,MAAMA,yBAAyB,GACpCR,MAAM,CAACS,+BAA+B","ignoreList":[]}
@@ -1,15 +1,24 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Browser DOM event streams.
3
+ *
4
+ * This module provides typed constructors that turn `window.addEventListener`
5
+ * and `document.addEventListener` events into Effect `Stream` values. Both
6
+ * helpers accept the usual listener options and an optional stream buffer size.
7
+ *
8
+ * @since 4.0.0
3
9
  */
4
10
  import * as Stream from "effect/Stream";
5
11
  /**
6
12
  * Creates a `Stream` from `window.addEventListener`.
7
13
  *
14
+ * **Details**
15
+ *
8
16
  * By default, the underlying buffer is unbounded in size. You can customize the
9
- * buffer size an object as the second argument with the `bufferSize` field.
17
+ * buffer size by passing an object as the second argument with the `bufferSize`
18
+ * field.
10
19
  *
11
- * @since 1.0.0
12
- * @category Streams
20
+ * @category streams
21
+ * @since 4.0.0
13
22
  */
14
23
  export declare const fromEventListenerWindow: <K extends keyof WindowEventMap>(type: K, options?: boolean | {
15
24
  readonly capture?: boolean;
@@ -20,11 +29,14 @@ export declare const fromEventListenerWindow: <K extends keyof WindowEventMap>(t
20
29
  /**
21
30
  * Creates a `Stream` from `document.addEventListener`.
22
31
  *
32
+ * **Details**
33
+ *
23
34
  * By default, the underlying buffer is unbounded in size. You can customize the
24
- * buffer size an object as the second argument with the `bufferSize` field.
35
+ * buffer size by passing an object as the second argument with the `bufferSize`
36
+ * field.
25
37
  *
26
- * @since 1.0.0
27
- * @category Streams
38
+ * @category streams
39
+ * @since 4.0.0
28
40
  */
29
41
  export declare const fromEventListenerDocument: <K extends keyof DocumentEventMap>(type: K, options?: boolean | {
30
42
  readonly capture?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserStream.d.ts","sourceRoot":"","sources":["../src/BrowserStream.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,MAAM,cAAc,EACpE,MAAM,CAAC,EACP,UAAU,OAAO,GAAG;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,GAAG,SAAS,KACZ,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAuE,CAAA;AAEvH;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,MAAM,gBAAgB,EACxE,MAAM,CAAC,EACP,UAAU,OAAO,GAAG;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,GAAG,SAAS,KACZ,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CACsB,CAAA"}
1
+ {"version":3,"file":"BrowserStream.d.ts","sourceRoot":"","sources":["../src/BrowserStream.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,MAAM,cAAc,EACpE,MAAM,CAAC,EACP,UAAU,OAAO,GAAG;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,GAAG,SAAS,KACZ,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAuE,CAAA;AAEvH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB,GAAI,CAAC,SAAS,MAAM,gBAAgB,EACxE,MAAM,CAAC,EACP,UAAU,OAAO,GAAG;IAClB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACzC,GAAG,SAAS,KACZ,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CACsB,CAAA"}
@@ -1,25 +1,37 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Browser DOM event streams.
3
+ *
4
+ * This module provides typed constructors that turn `window.addEventListener`
5
+ * and `document.addEventListener` events into Effect `Stream` values. Both
6
+ * helpers accept the usual listener options and an optional stream buffer size.
7
+ *
8
+ * @since 4.0.0
3
9
  */
4
10
  import * as Stream from "effect/Stream";
5
11
  /**
6
12
  * Creates a `Stream` from `window.addEventListener`.
7
13
  *
14
+ * **Details**
15
+ *
8
16
  * By default, the underlying buffer is unbounded in size. You can customize the
9
- * buffer size an object as the second argument with the `bufferSize` field.
17
+ * buffer size by passing an object as the second argument with the `bufferSize`
18
+ * field.
10
19
  *
11
- * @since 1.0.0
12
- * @category Streams
20
+ * @category streams
21
+ * @since 4.0.0
13
22
  */
14
23
  export const fromEventListenerWindow = (type, options) => Stream.fromEventListener(window, type, options);
15
24
  /**
16
25
  * Creates a `Stream` from `document.addEventListener`.
17
26
  *
27
+ * **Details**
28
+ *
18
29
  * By default, the underlying buffer is unbounded in size. You can customize the
19
- * buffer size an object as the second argument with the `bufferSize` field.
30
+ * buffer size by passing an object as the second argument with the `bufferSize`
31
+ * field.
20
32
  *
21
- * @since 1.0.0
22
- * @category Streams
33
+ * @category streams
34
+ * @since 4.0.0
23
35
  */
24
36
  export const fromEventListenerDocument = (type, options) => Stream.fromEventListener(document, type, options);
25
37
  //# sourceMappingURL=BrowserStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserStream.js","names":["Stream","fromEventListenerWindow","type","options","fromEventListener","window","fromEventListenerDocument","document"],"sources":["../src/BrowserStream.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC;;;;;;;;;AASA,OAAO,MAAMC,uBAAuB,GAAGA,CACrCC,IAAO,EACPC,OAKa,KACsCH,MAAM,CAACI,iBAAiB,CAAoBC,MAAM,EAAEH,IAAI,EAAEC,OAAO,CAAC;AAEvH;;;;;;;;;AASA,OAAO,MAAMG,yBAAyB,GAAGA,CACvCJ,IAAO,EACPC,OAKa,KAEbH,MAAM,CAACI,iBAAiB,CAAsBG,QAAQ,EAAEL,IAAI,EAAEC,OAAO,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"BrowserStream.js","names":["Stream","fromEventListenerWindow","type","options","fromEventListener","window","fromEventListenerDocument","document"],"sources":["../src/BrowserStream.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;AAUA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC;;;;;;;;;;;;AAYA,OAAO,MAAMC,uBAAuB,GAAGA,CACrCC,IAAO,EACPC,OAKa,KACsCH,MAAM,CAACI,iBAAiB,CAAoBC,MAAM,EAAEH,IAAI,EAAEC,OAAO,CAAC;AAEvH;;;;;;;;;;;;AAYA,OAAO,MAAMG,yBAAyB,GAAGA,CACvCJ,IAAO,EACPC,OAKa,KAEbH,MAAM,CAACI,iBAAiB,CAAsBG,QAAQ,EAAEL,IAAI,EAAEC,OAAO,CAAC","ignoreList":[]}
@@ -1,13 +1,34 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import * as Worker from "effect/unstable/workers/Worker";
3
3
  /**
4
- * @since 1.0.0
5
- * @category Layers
4
+ * Creates browser worker layers by combining the default `WorkerPlatform` with a spawner for `Worker`, `SharedWorker`, or `MessagePort` instances.
5
+ *
6
+ * **When to use**
7
+ *
8
+ * Use when you need both the browser `WorkerPlatform` and a `Spawner` from one
9
+ * layer.
10
+ *
11
+ * **Details**
12
+ *
13
+ * The `spawn` callback receives the numeric worker id and may return a
14
+ * `Worker`, `SharedWorker`, or `MessagePort`.
15
+ *
16
+ * **Gotchas**
17
+ *
18
+ * Scope finalization sends the worker close protocol over the port. Dedicated
19
+ * workers created by `spawn` are not terminated by this layer.
20
+ *
21
+ * @see {@link layerPlatform} for providing only the browser worker platform
22
+ *
23
+ * @category layers
24
+ * @since 4.0.0
6
25
  */
7
26
  export declare const layer: (spawn: (id: number) => Worker | SharedWorker | MessagePort) => Layer.Layer<Worker.WorkerPlatform | Worker.Spawner>;
8
27
  /**
9
- * @since 1.0.0
10
- * @category Layers
28
+ * Layer that provides the browser `WorkerPlatform` for `Worker`, `SharedWorker`, and `MessagePort` communication.
29
+ *
30
+ * @category layers
31
+ * @since 4.0.0
11
32
  */
12
33
  export declare const layerPlatform: Layer.Layer<Worker.WorkerPlatform>;
13
34
  //# sourceMappingURL=BrowserWorker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserWorker.d.ts","sourceRoot":"","sources":["../src/BrowserWorker.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAA;AAGxD;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,OAAO,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,YAAY,GAAG,WAAW,KACzD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAIlD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CA2C5D,CAAA"}
1
+ {"version":3,"file":"BrowserWorker.d.ts","sourceRoot":"","sources":["../src/BrowserWorker.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,MAAM,MAAM,gCAAgC,CAAA;AAGxD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,KAAK,GAChB,OAAO,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,YAAY,GAAG,WAAW,KACzD,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAIlD,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CA2C5D,CAAA"}
@@ -1,5 +1,12 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Parent-side browser platform for Effect workers.
3
+ *
4
+ * `layerPlatform` provides the `WorkerPlatform` used to communicate with a
5
+ * browser `Worker`, `SharedWorker`, or `MessagePort` through Effect's worker
6
+ * protocol. `layer` combines that platform with a `Spawner` built from a
7
+ * callback that creates or returns the worker endpoint for each worker id.
8
+ *
9
+ * @since 4.0.0
3
10
  */
4
11
  import * as Deferred from "effect/Deferred";
5
12
  import * as Effect from "effect/Effect";
@@ -8,13 +15,34 @@ import * as Scope from "effect/Scope";
8
15
  import * as Worker from "effect/unstable/workers/Worker";
9
16
  import { WorkerError, WorkerReceiveError } from "effect/unstable/workers/WorkerError";
10
17
  /**
11
- * @since 1.0.0
12
- * @category Layers
18
+ * Creates browser worker layers by combining the default `WorkerPlatform` with a spawner for `Worker`, `SharedWorker`, or `MessagePort` instances.
19
+ *
20
+ * **When to use**
21
+ *
22
+ * Use when you need both the browser `WorkerPlatform` and a `Spawner` from one
23
+ * layer.
24
+ *
25
+ * **Details**
26
+ *
27
+ * The `spawn` callback receives the numeric worker id and may return a
28
+ * `Worker`, `SharedWorker`, or `MessagePort`.
29
+ *
30
+ * **Gotchas**
31
+ *
32
+ * Scope finalization sends the worker close protocol over the port. Dedicated
33
+ * workers created by `spawn` are not terminated by this layer.
34
+ *
35
+ * @see {@link layerPlatform} for providing only the browser worker platform
36
+ *
37
+ * @category layers
38
+ * @since 4.0.0
13
39
  */
14
40
  export const layer = spawn => Layer.merge(layerPlatform, Worker.layerSpawner(spawn));
15
41
  /**
16
- * @since 1.0.0
17
- * @category Layers
42
+ * Layer that provides the browser `WorkerPlatform` for `Worker`, `SharedWorker`, and `MessagePort` communication.
43
+ *
44
+ * @category layers
45
+ * @since 4.0.0
18
46
  */
19
47
  export const layerPlatform = /*#__PURE__*/Layer.succeed(Worker.WorkerPlatform)(/*#__PURE__*/Worker.makePlatform()({
20
48
  setup({
@@ -41,7 +69,7 @@ export const layerPlatform = /*#__PURE__*/Layer.succeed(Worker.WorkerPlatform)(/
41
69
  message: "An error event was emitter",
42
70
  cause: event.error ?? event.message
43
71
  })
44
- }).asEffect());
72
+ }));
45
73
  }
46
74
  port.addEventListener("message", onMessage);
47
75
  port.addEventListener("error", onError);
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserWorker.js","names":["Deferred","Effect","Layer","Scope","Worker","WorkerError","WorkerReceiveError","layer","spawn","merge","layerPlatform","layerSpawner","succeed","WorkerPlatform","makePlatform","setup","scope","worker","port","as","addFinalizer","sync","postMessage","listen","deferred","emit","onMessage","event","data","onError","doneUnsafe","reason","message","cause","error","asEffect","addEventListener","start","removeEventListener"],"sources":["../src/BrowserWorker.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,gCAAgC;AACxD,SAASC,WAAW,EAAEC,kBAAkB,QAAQ,qCAAqC;AAErF;;;;AAIA,OAAO,MAAMC,KAAK,GAChBC,KAA0D,IAE1DN,KAAK,CAACO,KAAK,CACTC,aAAa,EACbN,MAAM,CAACO,YAAY,CAACH,KAAK,CAAC,CAC3B;AAEH;;;;AAIA,OAAO,MAAME,aAAa,gBAAuCR,KAAK,CAACU,OAAO,CAACR,MAAM,CAACS,cAAc,CAAC,cACnGT,MAAM,CAACU,YAAY,EAA6D,CAAC;EAC/EC,KAAKA,CAAC;IAAEC,KAAK;IAAEC;EAAM,CAAE;IACrB,MAAMC,IAAI,GAAG,MAAM,IAAID,MAAM,GAAGA,MAAM,CAACC,IAAI,GAAGD,MAAM;IACpD,OAAOhB,MAAM,CAACkB,EAAE,CACdhB,KAAK,CAACiB,YAAY,CAChBJ,KAAK,EACLf,MAAM,CAACoB,IAAI,CAAC,MAAK;MACfH,IAAI,CAACI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CACH,EACDJ,IAAI,CACL;EACH,CAAC;EACDK,MAAMA,CAAC;IAAEC,QAAQ;IAAEC,IAAI;IAAEP,IAAI;IAAEF;EAAK,CAAE;IACpC,SAASU,SAASA,CAACC,KAAmB;MACpCF,IAAI,CAACE,KAAK,CAACC,IAAI,CAAC;IAClB;IACA,SAASC,OAAOA,CAACF,KAAiB;MAChC3B,QAAQ,CAAC8B,UAAU,CACjBN,QAAQ,EACR,IAAInB,WAAW,CAAC;QACd0B,MAAM,EAAE,IAAIzB,kBAAkB,CAAC;UAC7B0B,OAAO,EAAE,4BAA4B;UACrCC,KAAK,EAAEN,KAAK,CAACO,KAAK,IAAIP,KAAK,CAACK;SAC7B;OACF,CAAC,CAACG,QAAQ,EAAE,CACd;IACH;IACAjB,IAAI,CAACkB,gBAAgB,CAAC,SAAS,EAAEV,SAAgB,CAAC;IAClDR,IAAI,CAACkB,gBAAgB,CAAC,OAAO,EAAEP,OAAc,CAAC;IAC9C,IAAI,OAAO,IAAIX,IAAI,EAAE;MACnBA,IAAI,CAACmB,KAAK,EAAE;IACd;IACA,OAAOlC,KAAK,CAACiB,YAAY,CACvBJ,KAAK,EACLf,MAAM,CAACoB,IAAI,CAAC,MAAK;MACfH,IAAI,CAACoB,mBAAmB,CAAC,SAAS,EAAEZ,SAAgB,CAAC;MACrDR,IAAI,CAACoB,mBAAmB,CAAC,OAAO,EAAET,OAAc,CAAC;IACnD,CAAC,CAAC,CACH;EACH;CACD,CAAC,CACH","ignoreList":[]}
1
+ {"version":3,"file":"BrowserWorker.js","names":["Deferred","Effect","Layer","Scope","Worker","WorkerError","WorkerReceiveError","layer","spawn","merge","layerPlatform","layerSpawner","succeed","WorkerPlatform","makePlatform","setup","scope","worker","port","as","addFinalizer","sync","postMessage","listen","deferred","emit","onMessage","event","data","onError","doneUnsafe","reason","message","cause","error","addEventListener","start","removeEventListener"],"sources":["../src/BrowserWorker.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;AAUA,OAAO,KAAKA,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,gCAAgC;AACxD,SAASC,WAAW,EAAEC,kBAAkB,QAAQ,qCAAqC;AAErF;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMC,KAAK,GAChBC,KAA0D,IAE1DN,KAAK,CAACO,KAAK,CACTC,aAAa,EACbN,MAAM,CAACO,YAAY,CAACH,KAAK,CAAC,CAC3B;AAEH;;;;;;AAMA,OAAO,MAAME,aAAa,gBAAuCR,KAAK,CAACU,OAAO,CAACR,MAAM,CAACS,cAAc,CAAC,cACnGT,MAAM,CAACU,YAAY,EAA6D,CAAC;EAC/EC,KAAKA,CAAC;IAAEC,KAAK;IAAEC;EAAM,CAAE;IACrB,MAAMC,IAAI,GAAG,MAAM,IAAID,MAAM,GAAGA,MAAM,CAACC,IAAI,GAAGD,MAAM;IACpD,OAAOhB,MAAM,CAACkB,EAAE,CACdhB,KAAK,CAACiB,YAAY,CAChBJ,KAAK,EACLf,MAAM,CAACoB,IAAI,CAAC,MAAK;MACfH,IAAI,CAACI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,CACH,EACDJ,IAAI,CACL;EACH,CAAC;EACDK,MAAMA,CAAC;IAAEC,QAAQ;IAAEC,IAAI;IAAEP,IAAI;IAAEF;EAAK,CAAE;IACpC,SAASU,SAASA,CAACC,KAAmB;MACpCF,IAAI,CAACE,KAAK,CAACC,IAAI,CAAC;IAClB;IACA,SAASC,OAAOA,CAACF,KAAiB;MAChC3B,QAAQ,CAAC8B,UAAU,CACjBN,QAAQ,EACR,IAAInB,WAAW,CAAC;QACd0B,MAAM,EAAE,IAAIzB,kBAAkB,CAAC;UAC7B0B,OAAO,EAAE,4BAA4B;UACrCC,KAAK,EAAEN,KAAK,CAACO,KAAK,IAAIP,KAAK,CAACK;SAC7B;OACF,CAAC,CACH;IACH;IACAd,IAAI,CAACiB,gBAAgB,CAAC,SAAS,EAAET,SAAgB,CAAC;IAClDR,IAAI,CAACiB,gBAAgB,CAAC,OAAO,EAAEN,OAAc,CAAC;IAC9C,IAAI,OAAO,IAAIX,IAAI,EAAE;MACnBA,IAAI,CAACkB,KAAK,EAAE;IACd;IACA,OAAOjC,KAAK,CAACiB,YAAY,CACvBJ,KAAK,EACLf,MAAM,CAACoB,IAAI,CAAC,MAAK;MACfH,IAAI,CAACmB,mBAAmB,CAAC,SAAS,EAAEX,SAAgB,CAAC;MACrDR,IAAI,CAACmB,mBAAmB,CAAC,OAAO,EAAER,OAAc,CAAC;IACnD,CAAC,CAAC,CACH;EACH;CACD,CAAC,CACH","ignoreList":[]}
@@ -1,18 +1,43 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import * as WorkerRunner from "effect/unstable/workers/WorkerRunner";
3
3
  /**
4
- * @since 1.0.0
5
- * @category Constructors
4
+ * Creates a `WorkerRunnerPlatform` service that runs worker handlers over a `MessagePort` or `Window`.
5
+ *
6
+ * @category constructors
7
+ * @since 4.0.0
6
8
  */
7
9
  export declare const make: (self: MessagePort | Window) => WorkerRunner.WorkerRunnerPlatform["Service"];
8
10
  /**
9
- * @since 1.0.0
10
- * @category Layers
11
+ * Layer that provides a browser `WorkerRunnerPlatform` using the global `self` worker context.
12
+ *
13
+ * **When to use**
14
+ *
15
+ * Use when you need a browser worker entry point to use the ambient `self`
16
+ * object as the worker transport.
17
+ *
18
+ * **Details**
19
+ *
20
+ * Delegates to `make(self)` and provides the runner-side platform used by
21
+ * protocols such as `RpcServer.layerProtocolWorkerRunner`.
22
+ *
23
+ * **Gotchas**
24
+ *
25
+ * This layer depends on the browser worker global `self`. Use
26
+ * `layerMessagePort` when the transport is an explicit `MessagePort` or
27
+ * `Window`.
28
+ *
29
+ * @see {@link make} for constructing a runner platform from an explicit endpoint
30
+ * @see {@link layerMessagePort} for providing a platform from an explicit endpoint
31
+ *
32
+ * @category layers
33
+ * @since 4.0.0
11
34
  */
12
35
  export declare const layer: Layer.Layer<WorkerRunner.WorkerRunnerPlatform>;
13
36
  /**
14
- * @since 1.0.0
15
- * @category Layers
37
+ * Layer that provides a `WorkerRunnerPlatform` using the supplied `MessagePort` or `Window`.
38
+ *
39
+ * @category layers
40
+ * @since 4.0.0
16
41
  */
17
42
  export declare const layerMessagePort: (port: MessagePort | Window) => Layer.Layer<WorkerRunner.WorkerRunnerPlatform>;
18
43
  //# sourceMappingURL=BrowserWorkerRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserWorkerRunner.d.ts","sourceRoot":"","sources":["../src/BrowserWorkerRunner.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAA;AAUpE;;;GAGG;AACH,eAAO,MAAM,IAAI,GAAI,MAAM,WAAW,GAAG,MAAM,KAAG,YAAY,CAAC,oBAAoB,CAAC,SAAS,CA2H3F,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAEhE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,WAAW,GAAG,MAAM,KAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAC7C,CAAA"}
1
+ {"version":3,"file":"BrowserWorkerRunner.d.ts","sourceRoot":"","sources":["../src/BrowserWorkerRunner.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,KAAK,YAAY,MAAM,sCAAsC,CAAA;AAUpE;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GAAI,MAAM,WAAW,GAAG,MAAM,KAAG,YAAY,CAAC,oBAAoB,CAAC,SAAS,CA2H3F,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAEhE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,WAAW,GAAG,MAAM,KAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,oBAAoB,CAC7C,CAAA"}
@@ -1,5 +1,13 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Runner-side browser platform for Effect worker handlers.
3
+ *
4
+ * `make` builds a `WorkerRunnerPlatform` over a `MessagePort` or `Window`.
5
+ * `layer` provides the platform from the global worker `self`, and
6
+ * `layerMessagePort` provides it from an explicit endpoint. The platform
7
+ * receives parent or client messages, runs Effect handlers, and posts responses
8
+ * back through the browser messaging channel.
9
+ *
10
+ * @since 4.0.0
3
11
  */
4
12
  import * as Cause from "effect/Cause";
5
13
  import * as Deferred from "effect/Deferred";
@@ -20,8 +28,10 @@ if (typeof self !== "undefined" && "onconnect" in self) {
20
28
  self.onconnect = globalHandleConnect;
21
29
  }
22
30
  /**
23
- * @since 1.0.0
24
- * @category Constructors
31
+ * Creates a `WorkerRunnerPlatform` service that runs worker handlers over a `MessagePort` or `Window`.
32
+ *
33
+ * @category constructors
34
+ * @since 4.0.0
25
35
  */
26
36
  export const make = self => ({
27
37
  start: Effect.fnUntraced(function* () {
@@ -35,7 +45,7 @@ export const make = self => ({
35
45
  const run = handler => Effect.scopedWith(Effect.fnUntraced(function* (scope) {
36
46
  const closeLatch = Deferred.makeUnsafe();
37
47
  const trackFiber = Fiber.runIn(scope);
38
- const services = yield* Effect.services();
48
+ const services = yield* Effect.context();
39
49
  const runFork = Effect.runForkWith(services);
40
50
  const onExit = exit => {
41
51
  if (exit._tag === "Failure" && !Cause.hasInterruptsOnly(exit.cause)) {
@@ -71,7 +81,7 @@ export const make = self => ({
71
81
  message: "An messageerror event was emitted",
72
82
  cause: error.data
73
83
  })
74
- }).asEffect());
84
+ }));
75
85
  }
76
86
  function onError(error) {
77
87
  Deferred.doneUnsafe(closeLatch, new WorkerError({
@@ -79,7 +89,7 @@ export const make = self => ({
79
89
  message: "An error event was emitted",
80
90
  cause: error.data
81
91
  })
82
- }).asEffect());
92
+ }));
83
93
  }
84
94
  function handlePort(port) {
85
95
  const portScope = Scope.forkUnsafe(scope);
@@ -131,13 +141,36 @@ export const make = self => ({
131
141
  })
132
142
  });
133
143
  /**
134
- * @since 1.0.0
135
- * @category Layers
144
+ * Layer that provides a browser `WorkerRunnerPlatform` using the global `self` worker context.
145
+ *
146
+ * **When to use**
147
+ *
148
+ * Use when you need a browser worker entry point to use the ambient `self`
149
+ * object as the worker transport.
150
+ *
151
+ * **Details**
152
+ *
153
+ * Delegates to `make(self)` and provides the runner-side platform used by
154
+ * protocols such as `RpcServer.layerProtocolWorkerRunner`.
155
+ *
156
+ * **Gotchas**
157
+ *
158
+ * This layer depends on the browser worker global `self`. Use
159
+ * `layerMessagePort` when the transport is an explicit `MessagePort` or
160
+ * `Window`.
161
+ *
162
+ * @see {@link make} for constructing a runner platform from an explicit endpoint
163
+ * @see {@link layerMessagePort} for providing a platform from an explicit endpoint
164
+ *
165
+ * @category layers
166
+ * @since 4.0.0
136
167
  */
137
168
  export const layer = /*#__PURE__*/Layer.sync(WorkerRunner.WorkerRunnerPlatform)(() => make(self));
138
169
  /**
139
- * @since 1.0.0
140
- * @category Layers
170
+ * Layer that provides a `WorkerRunnerPlatform` using the supplied `MessagePort` or `Window`.
171
+ *
172
+ * @category layers
173
+ * @since 4.0.0
141
174
  */
142
175
  export const layerMessagePort = port => Layer.succeed(WorkerRunner.WorkerRunnerPlatform)(make(port));
143
176
  //# sourceMappingURL=BrowserWorkerRunner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserWorkerRunner.js","names":["Cause","Deferred","Effect","Exit","Fiber","identity","Layer","Queue","Scope","WorkerError","WorkerReceiveError","WorkerRunner","cachedPorts","Set","globalHandleConnect","event","add","ports","self","onconnect","make","start","fnUntraced","disconnects","currentPortId","Map","sendUnsafe","portId","message","transfer","get","postMessage","send","sync","run","handler","scopedWith","scope","closeLatch","makeUnsafe","trackFiber","runIn","services","runFork","runForkWith","onExit","exit","_tag","hasInterruptsOnly","cause","logError","onMessage","data","result","isEffect","fiber","addObserver","port","size","doneUnsafe","void","delete","close","onMessageError","error","reason","asEffect","onError","handlePort","portScope","forkUnsafe","set","onMsg","addEventListener","runSync","addFinalizer","removeEventListener","prevOnConnect","clear","await","layer","WorkerRunnerPlatform","layerMessagePort","succeed"],"sources":["../src/BrowserWorkerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BrowserWorkerRunner.js","names":["Cause","Deferred","Effect","Exit","Fiber","identity","Layer","Queue","Scope","WorkerError","WorkerReceiveError","WorkerRunner","cachedPorts","Set","globalHandleConnect","event","add","ports","self","onconnect","make","start","fnUntraced","disconnects","currentPortId","Map","sendUnsafe","portId","message","transfer","get","postMessage","send","sync","run","handler","scopedWith","scope","closeLatch","makeUnsafe","trackFiber","runIn","services","context","runFork","runForkWith","onExit","exit","_tag","hasInterruptsOnly","cause","logError","onMessage","data","result","isEffect","fiber","addObserver","port","size","doneUnsafe","void","delete","close","onMessageError","error","reason","onError","handlePort","portScope","forkUnsafe","set","onMsg","addEventListener","runSync","addFinalizer","removeEventListener","prevOnConnect","clear","await","layer","WorkerRunnerPlatform","layerMessagePort","succeed"],"sources":["../src/BrowserWorkerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,42 @@
1
+ /**
2
+ * Browser clipboard integration for Effect programs.
3
+ *
4
+ * This module defines the `Clipboard` service, the `ClipboardError` raised by
5
+ * failed browser operations, a `make` constructor for custom implementations,
6
+ * and a browser-backed `layer` that uses `navigator.clipboard`. The service
7
+ * supports reading and writing text, reading and writing `ClipboardItem`
8
+ * payloads, writing one `Blob`, and clearing the clipboard.
9
+ *
10
+ * @since 4.0.0
11
+ */
12
+ import * as Context from "effect/Context";
1
13
  import * as Effect from "effect/Effect";
2
14
  import * as Layer from "effect/Layer";
3
- import * as ServiceMap from "effect/ServiceMap";
4
15
  declare const TypeId = "~@effect/platform-browser/Clipboard";
5
16
  declare const ErrorTypeId = "~@effect/platform-browser/Clipboard/ClipboardError";
6
17
  /**
7
- * @since 1.0.0
8
- * @category Models
18
+ * Defines the service interface for reading from, writing to, and clearing the browser clipboard.
19
+ *
20
+ * **When to use**
21
+ *
22
+ * Use when an application needs clipboard operations through an Effect service
23
+ * so browser failures stay in the error channel.
24
+ *
25
+ * **Details**
26
+ *
27
+ * `read` and `write` work with `ClipboardItem` arrays. `readString` and
28
+ * `writeString` use text, `writeBlob` writes one `Blob`, and `clear` writes an
29
+ * empty string.
30
+ *
31
+ * **Gotchas**
32
+ *
33
+ * Clipboard access generally requires a secure context and may require user
34
+ * activation, permissions, or a focused document. `ClipboardItem` and non-text
35
+ * MIME type support varies by browser. Failed browser operations are surfaced
36
+ * as `ClipboardError`.
37
+ *
38
+ * @category models
39
+ * @since 4.0.0
9
40
  */
10
41
  export interface Clipboard {
11
42
  readonly [TypeId]: typeof TypeId;
@@ -16,12 +47,14 @@ export interface Clipboard {
16
47
  readonly writeBlob: (blob: Blob) => Effect.Effect<void, ClipboardError>;
17
48
  readonly clear: Effect.Effect<void, ClipboardError>;
18
49
  }
19
- declare const ClipboardError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
50
+ declare const ClipboardError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
20
51
  readonly _tag: "ClipboardError";
21
52
  } & Readonly<A>;
22
53
  /**
23
- * @since 1.0.0
24
- * @category Errors
54
+ * Tagged error raised when a browser clipboard operation fails.
55
+ *
56
+ * @category errors
57
+ * @since 4.0.0
25
58
  */
26
59
  export declare class ClipboardError extends ClipboardError_base<{
27
60
  readonly message: string;
@@ -30,20 +63,32 @@ export declare class ClipboardError extends ClipboardError_base<{
30
63
  readonly [ErrorTypeId] = "~@effect/platform-browser/Clipboard/ClipboardError";
31
64
  }
32
65
  /**
33
- * @since 1.0.0
34
- * @category Service
66
+ * Service tag for browser clipboard capabilities.
67
+ *
68
+ * **When to use**
69
+ *
70
+ * Use when you need to require or provide clipboard capabilities through
71
+ * Effect's context.
72
+ *
73
+ * @see {@link make} for building a custom clipboard service
74
+ * @see {@link layer} for providing the browser-backed clipboard service
75
+ *
76
+ * @category services
77
+ * @since 4.0.0
35
78
  */
36
- export declare const Clipboard: ServiceMap.Service<Clipboard, Clipboard>;
79
+ export declare const Clipboard: Context.Service<Clipboard, Clipboard>;
37
80
  /**
38
- * @since 1.0.0
39
- * @category Constructors
81
+ * Builds a `Clipboard` service from primitive read and write operations, deriving `clear` and `writeBlob` helpers.
82
+ *
83
+ * @category constructors
84
+ * @since 4.0.0
40
85
  */
41
86
  export declare const make: (impl: Omit<Clipboard, "clear" | "writeBlob" | typeof TypeId>) => Clipboard;
42
87
  /**
43
- * A layer that directly interfaces with the navigator.clipboard api
88
+ * Layer that directly interfaces with the browser Clipboard API.
44
89
  *
45
- * @since 1.0.0
46
- * @category Layers
90
+ * @category layers
91
+ * @since 4.0.0
47
92
  */
48
93
  export declare const layer: Layer.Layer<Clipboard>;
49
94
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Clipboard.d.ts","sourceRoot":"","sources":["../src/Clipboard.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,QAAA,MAAM,MAAM,wCAAwC,CAAA;AACpD,QAAA,MAAM,WAAW,uDAAuD,CAAA;AAExE;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;IAC5D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC1D,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAC9E,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAC3E,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;CACpD;;;;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAC;IACA,QAAQ,CAAC,CAAC,WAAW,CAAC,wDAAc;CACrC;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAyC,CAAA;AAExG;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,MAAM,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,MAAM,CAAC,KAC3D,SAMC,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAsCxC,CAAA"}
1
+ {"version":3,"file":"Clipboard.d.ts","sourceRoot":"","sources":["../src/Clipboard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,QAAA,MAAM,MAAM,wCAAwC,CAAA;AACpD,QAAA,MAAM,WAAW,uDAAuD,CAAA;AAExE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,MAAM,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAAA;IAC5D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAC1D,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAC9E,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IAC3E,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;CACpD;;;;AAED;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CACxB,CAAC;IACA,QAAQ,CAAC,CAAC,WAAW,CAAC,wDAAc;CACrC;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAsC,CAAA;AAElG;;;;;GAKG;AACH,eAAO,MAAM,IAAI,GACf,MAAM,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,WAAW,GAAG,OAAO,MAAM,CAAC,KAC3D,SAMC,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAsCxC,CAAA"}