@effect/platform 0.18.7 → 0.20.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 (155) hide show
  1. package/Command/dist/effect-platform-Command.cjs.dev.js +419 -26
  2. package/Command/dist/effect-platform-Command.cjs.prod.js +419 -26
  3. package/Command/dist/effect-platform-Command.esm.js +382 -9
  4. package/CommandExecutor/dist/effect-platform-CommandExecutor.cjs.dev.js +72 -7
  5. package/CommandExecutor/dist/effect-platform-CommandExecutor.cjs.prod.js +72 -7
  6. package/CommandExecutor/dist/effect-platform-CommandExecutor.esm.js +71 -2
  7. package/Effectify/dist/effect-platform-Effectify.cjs.dev.js +55 -3
  8. package/Effectify/dist/effect-platform-Effectify.cjs.prod.js +55 -3
  9. package/Effectify/dist/effect-platform-Effectify.esm.js +38 -2
  10. package/Error/dist/effect-platform-Error.cjs.dev.js +87 -5
  11. package/Error/dist/effect-platform-Error.cjs.prod.js +87 -5
  12. package/Error/dist/effect-platform-Error.esm.js +68 -2
  13. package/FileSystem/dist/effect-platform-FileSystem.cjs.dev.js +287 -20
  14. package/FileSystem/dist/effect-platform-FileSystem.cjs.prod.js +287 -20
  15. package/FileSystem/dist/effect-platform-FileSystem.esm.js +256 -9
  16. package/Http/App/dist/effect-platform-Http-App.cjs.dev.js +15 -0
  17. package/Http/App/dist/effect-platform-Http-App.cjs.mjs +6 -1
  18. package/Http/App/dist/effect-platform-Http-App.cjs.prod.js +15 -0
  19. package/Http/App/dist/effect-platform-Http-App.esm.js +6 -1
  20. package/Http/Body/dist/effect-platform-Http-Body.cjs.dev.js +4 -4
  21. package/Http/Body/dist/effect-platform-Http-Body.cjs.prod.js +4 -4
  22. package/Http/Body/dist/effect-platform-Http-Body.esm.js +4 -4
  23. package/Http/Client/dist/effect-platform-Http-Client.cjs.dev.js +6 -6
  24. package/Http/Client/dist/effect-platform-Http-Client.cjs.prod.js +6 -6
  25. package/Http/Client/dist/effect-platform-Http-Client.esm.js +6 -6
  26. package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.cjs.dev.js +5 -5
  27. package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.cjs.prod.js +5 -5
  28. package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.esm.js +5 -5
  29. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.cjs.dev.js +4 -4
  30. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.cjs.prod.js +4 -4
  31. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.esm.js +4 -4
  32. package/Http/FormData/dist/effect-platform-Http-FormData.cjs.dev.js +3 -3
  33. package/Http/FormData/dist/effect-platform-Http-FormData.cjs.prod.js +3 -3
  34. package/Http/FormData/dist/effect-platform-Http-FormData.esm.js +3 -3
  35. package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.dev.js +2 -2
  36. package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.prod.js +2 -2
  37. package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.esm.js +2 -2
  38. package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.dev.js +11 -11
  39. package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.mjs +0 -1
  40. package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.prod.js +11 -11
  41. package/Http/Middleware/dist/effect-platform-Http-Middleware.esm.js +11 -10
  42. package/Http/Platform/dist/effect-platform-Http-Platform.cjs.dev.js +3 -3
  43. package/Http/Platform/dist/effect-platform-Http-Platform.cjs.prod.js +3 -3
  44. package/Http/Platform/dist/effect-platform-Http-Platform.esm.js +2 -2
  45. package/Http/Router/dist/effect-platform-Http-Router.cjs.dev.js +5 -5
  46. package/Http/Router/dist/effect-platform-Http-Router.cjs.prod.js +5 -5
  47. package/Http/Router/dist/effect-platform-Http-Router.esm.js +5 -5
  48. package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.cjs.dev.js +4 -4
  49. package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.cjs.prod.js +4 -4
  50. package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.esm.js +4 -4
  51. package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.cjs.dev.js +4 -4
  52. package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.cjs.prod.js +4 -4
  53. package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.esm.js +4 -4
  54. package/HttpClient/dist/effect-platform-HttpClient.cjs.dev.js +9 -9
  55. package/HttpClient/dist/effect-platform-HttpClient.cjs.prod.js +9 -9
  56. package/HttpClient/dist/effect-platform-HttpClient.esm.js +9 -9
  57. package/HttpServer/dist/effect-platform-HttpServer.cjs.dev.js +15 -15
  58. package/HttpServer/dist/effect-platform-HttpServer.cjs.prod.js +15 -15
  59. package/HttpServer/dist/effect-platform-HttpServer.esm.js +15 -15
  60. package/KeyValueStore/dist/effect-platform-KeyValueStore.cjs.dev.js +227 -18
  61. package/KeyValueStore/dist/effect-platform-KeyValueStore.cjs.prod.js +227 -18
  62. package/KeyValueStore/dist/effect-platform-KeyValueStore.esm.js +199 -10
  63. package/Path/dist/effect-platform-Path.cjs.dev.js +142 -9
  64. package/Path/dist/effect-platform-Path.cjs.prod.js +142 -9
  65. package/Path/dist/effect-platform-Path.esm.js +122 -7
  66. package/Runtime/dist/effect-platform-Runtime.cjs.dev.js +44 -4
  67. package/Runtime/dist/effect-platform-Runtime.cjs.prod.js +44 -4
  68. package/Runtime/dist/effect-platform-Runtime.esm.js +26 -3
  69. package/dist/App-18152f12.cjs.dev.js +93 -0
  70. package/dist/App-1ca51fa7.esm.js +65 -0
  71. package/dist/App-d8b904fa.cjs.prod.js +93 -0
  72. package/dist/{Body-ec1353f9.esm.js → Body-40ced606.esm.js} +1 -1
  73. package/dist/{Body-86ef2922.cjs.dev.js → Body-4a7ad057.cjs.dev.js} +1 -1
  74. package/dist/{Body-b77eac75.cjs.prod.js → Body-c26fa93f.cjs.prod.js} +1 -1
  75. package/dist/{Client-537f76ae.cjs.prod.js → Client-03fea3d9.cjs.prod.js} +3 -3
  76. package/dist/{Client-cdbd4ff7.esm.js → Client-55ef15d5.esm.js} +3 -3
  77. package/dist/{Client-0fbb38ab.cjs.dev.js → Client-c05eadcd.cjs.dev.js} +3 -3
  78. package/dist/{ClientRequest-fc429335.esm.js → ClientRequest-490c76cd.esm.js} +1 -1
  79. package/dist/{ClientRequest-750d8d59.cjs.prod.js → ClientRequest-a729f345.cjs.prod.js} +1 -1
  80. package/dist/{ClientRequest-00e89da8.cjs.dev.js → ClientRequest-c5336a28.cjs.dev.js} +1 -1
  81. package/dist/{ClientResponse-7e4fe7b5.esm.js → ClientResponse-6e84da40.esm.js} +1 -1
  82. package/dist/{ClientResponse-f9f19afb.cjs.prod.js → ClientResponse-c19fd519.cjs.prod.js} +1 -1
  83. package/dist/{ClientResponse-75423399.cjs.dev.js → ClientResponse-df62564e.cjs.dev.js} +1 -1
  84. package/dist/{FormData-ee0b1cf2.cjs.dev.js → FormData-6d030595.cjs.prod.js} +1 -1
  85. package/dist/{FormData-902afd18.cjs.prod.js → FormData-7ea13198.cjs.dev.js} +1 -1
  86. package/dist/{FormData-f54de878.esm.js → FormData-bd727d2f.esm.js} +1 -1
  87. package/dist/{Middleware-f9a073d7.cjs.prod.js → Middleware-6de1c21d.cjs.prod.js} +14 -20
  88. package/dist/{Middleware-e2edf820.cjs.dev.js → Middleware-b1d126b4.cjs.dev.js} +14 -20
  89. package/dist/{Middleware-240f91f6.esm.js → Middleware-d38ef616.esm.js} +15 -20
  90. package/dist/{Router-bf32317a.esm.js → Router-2ee665b4.esm.js} +2 -2
  91. package/dist/{Router-bd2b3014.cjs.dev.js → Router-43e62bd9.cjs.dev.js} +2 -2
  92. package/dist/{Router-6c80a4c9.cjs.prod.js → Router-53ec1aea.cjs.prod.js} +2 -2
  93. package/dist/{ServerRequest-03161edc.esm.js → ServerRequest-a641c507.esm.js} +1 -1
  94. package/dist/{ServerRequest-8d9c2c6b.cjs.dev.js → ServerRequest-cb289dae.cjs.dev.js} +1 -1
  95. package/dist/{ServerRequest-938f3ed0.cjs.prod.js → ServerRequest-ec4da01b.cjs.prod.js} +1 -1
  96. package/dist/{ServerResponse-93038062.esm.js → ServerResponse-03c252ea.esm.js} +2 -2
  97. package/dist/{ServerResponse-b63b7192.cjs.dev.js → ServerResponse-9af42ecb.cjs.dev.js} +2 -2
  98. package/dist/{ServerResponse-eae85b08.cjs.prod.js → ServerResponse-db87bde2.cjs.prod.js} +2 -2
  99. package/dist/{body-33521da5.cjs.prod.js → body-95276637.cjs.prod.js} +3 -3
  100. package/dist/{body-c7d7a944.cjs.dev.js → body-cea7c1c9.cjs.dev.js} +3 -3
  101. package/dist/{body-20d78ec1.esm.js → body-db8cfb3d.esm.js} +1 -1
  102. package/dist/{clientRequest-3e72ec54.cjs.prod.js → clientRequest-539df396.cjs.prod.js} +1 -1
  103. package/dist/{clientRequest-1e9e0b0d.esm.js → clientRequest-6121a7f6.esm.js} +1 -1
  104. package/dist/{clientRequest-423fd562.cjs.dev.js → clientRequest-dae0c34e.cjs.dev.js} +1 -1
  105. package/dist/declarations/src/Http/App.d.ts +28 -1
  106. package/dist/declarations/src/Http/App.d.ts.map +1 -1
  107. package/dist/declarations/src/Http/Middleware.d.ts +0 -5
  108. package/dist/declarations/src/Http/Middleware.d.ts.map +1 -1
  109. package/dist/declarations/src/index.d.ts.map +1 -1
  110. package/dist/effect-platform.cjs.dev.js +49 -68
  111. package/dist/effect-platform.cjs.prod.js +49 -68
  112. package/dist/effect-platform.esm.js +20 -58
  113. package/package.json +8 -5
  114. package/src/Http/App.ts +76 -3
  115. package/src/Http/Middleware.ts +0 -6
  116. package/src/index.ts +10 -10
  117. package/src/internal/http/middleware.ts +21 -19
  118. package/src/internal/http/router.ts +1 -1
  119. package/src/internal/http/serverResponse.ts +1 -1
  120. package/dist/App-0916639a.cjs.prod.js +0 -7
  121. package/dist/App-44aa3275.cjs.dev.js +0 -7
  122. package/dist/App-687366d8.esm.js +0 -5
  123. package/dist/Command-032c414c.cjs.dev.js +0 -446
  124. package/dist/Command-25ef5e94.cjs.prod.js +0 -446
  125. package/dist/Command-d8ab0c8d.esm.js +0 -403
  126. package/dist/CommandExecutor-158ea1d3.cjs.dev.js +0 -87
  127. package/dist/CommandExecutor-5807b66b.esm.js +0 -80
  128. package/dist/CommandExecutor-7fcae408.cjs.prod.js +0 -87
  129. package/dist/Effectify-2d8c3af9.cjs.dev.js +0 -66
  130. package/dist/Effectify-38757ba5.cjs.prod.js +0 -66
  131. package/dist/Effectify-e5a9d266.esm.js +0 -43
  132. package/dist/Error-09496a70.cjs.dev.js +0 -100
  133. package/dist/Error-2c4e6ce2.cjs.prod.js +0 -100
  134. package/dist/Error-3099667c.esm.js +0 -75
  135. package/dist/FileSystem-3d439a05.cjs.prod.js +0 -308
  136. package/dist/FileSystem-4c7daaf0.cjs.dev.js +0 -308
  137. package/dist/FileSystem-7e31dccd.esm.js +0 -271
  138. package/dist/HttpClient-44d9df26.cjs.prod.js +0 -26
  139. package/dist/HttpClient-5179b5b7.esm.js +0 -24
  140. package/dist/HttpClient-6782fcab.cjs.dev.js +0 -26
  141. package/dist/HttpServer-16159c3a.cjs.dev.js +0 -32
  142. package/dist/HttpServer-50f8df76.esm.js +0 -30
  143. package/dist/HttpServer-93c0fbb3.cjs.prod.js +0 -32
  144. package/dist/KeyValueStore-2f9a70bf.esm.js +0 -210
  145. package/dist/KeyValueStore-f6c5b981.cjs.prod.js +0 -244
  146. package/dist/KeyValueStore-f9c93610.cjs.dev.js +0 -244
  147. package/dist/Path-3574641f.cjs.prod.js +0 -154
  148. package/dist/Path-46f84ba7.esm.js +0 -128
  149. package/dist/Path-7ba7e370.cjs.dev.js +0 -154
  150. package/dist/Runtime-1edd577a.cjs.dev.js +0 -55
  151. package/dist/Runtime-515efccf.cjs.prod.js +0 -55
  152. package/dist/Runtime-7265fb98.esm.js +0 -31
  153. /package/dist/{clientResponse-47df36b8.esm.js → clientResponse-0ace0007.esm.js} +0 -0
  154. /package/dist/{clientResponse-2e4c45a9.cjs.dev.js → clientResponse-43bb73b9.cjs.dev.js} +0 -0
  155. /package/dist/{clientResponse-4d53f425.cjs.prod.js → clientResponse-82dae5d8.cjs.prod.js} +0 -0
@@ -2,29 +2,238 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var KeyValueStore_dist_effectPlatformKeyValueStore = require('../../dist/KeyValueStore-f9c93610.cjs.dev.js');
6
- require('@effect/schema/Schema');
7
- require('effect/Context');
8
- require('effect/Effect');
9
- require('effect/Function');
10
- require('effect/Layer');
11
- require('effect/Option');
12
- require('../../dist/FileSystem-4c7daaf0.cjs.dev.js');
5
+ var Schema = require('@effect/schema/Schema');
6
+ var Context = require('effect/Context');
7
+ var Effect = require('effect/Effect');
8
+ var Function = require('effect/Function');
9
+ var Layer = require('effect/Layer');
10
+ var Option = require('effect/Option');
11
+ var FileSystem_dist_effectPlatformFileSystem = require('../../FileSystem/dist/effect-platform-FileSystem.cjs.dev.js');
12
+ var Path_dist_effectPlatformPath = require('../../Path/dist/effect-platform-Path.cjs.dev.js');
13
13
  require('effect/Brand');
14
14
  require('effect/Sink');
15
15
  require('effect/Stream');
16
- require('../../dist/Error-09496a70.cjs.dev.js');
16
+ require('../../Error/dist/effect-platform-Error.cjs.dev.js');
17
17
  require('effect/Data');
18
- require('../../dist/Path-7ba7e370.cjs.dev.js');
19
18
  require('path-browserify');
20
19
 
20
+ function _interopNamespace(e) {
21
+ if (e && e.__esModule) return e;
22
+ var n = Object.create(null);
23
+ if (e) {
24
+ Object.keys(e).forEach(function (k) {
25
+ if (k !== 'default') {
26
+ var d = Object.getOwnPropertyDescriptor(e, k);
27
+ Object.defineProperty(n, k, d.get ? d : {
28
+ enumerable: true,
29
+ get: function () { return e[k]; }
30
+ });
31
+ }
32
+ });
33
+ }
34
+ n["default"] = e;
35
+ return Object.freeze(n);
36
+ }
21
37
 
38
+ var Schema__namespace = /*#__PURE__*/_interopNamespace(Schema);
39
+ var Context__namespace = /*#__PURE__*/_interopNamespace(Context);
40
+ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
41
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
42
+ var Option__namespace = /*#__PURE__*/_interopNamespace(Option);
22
43
 
23
- exports.KeyValueStore = KeyValueStore_dist_effectPlatformKeyValueStore.KeyValueStore$1;
24
- exports.SchemaStoreTypeId = KeyValueStore_dist_effectPlatformKeyValueStore.SchemaStoreTypeId;
25
- exports.TypeId = KeyValueStore_dist_effectPlatformKeyValueStore.TypeId;
26
- exports.layerFileSystem = KeyValueStore_dist_effectPlatformKeyValueStore.layerFileSystem;
27
- exports.layerMemory = KeyValueStore_dist_effectPlatformKeyValueStore.layerMemory;
28
- exports.layerSchema = KeyValueStore_dist_effectPlatformKeyValueStore.layerSchema;
29
- exports.make = KeyValueStore_dist_effectPlatformKeyValueStore.make;
30
- exports.prefix = KeyValueStore_dist_effectPlatformKeyValueStore.prefix;
44
+ /** @internal */
45
+ const TypeId$1 = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore");
46
+
47
+ /** @internal */
48
+ const keyValueStoreTag = /*#__PURE__*/Context__namespace.Tag(TypeId$1);
49
+
50
+ /** @internal */
51
+ const make$1 = impl => keyValueStoreTag.of({
52
+ [TypeId$1]: TypeId$1,
53
+ has: key => Effect__namespace.map(impl.get(key), Option__namespace.isSome),
54
+ isEmpty: Effect__namespace.map(impl.size, size => size === 0),
55
+ modify: (key, f) => Effect__namespace.flatMap(impl.get(key), o => {
56
+ if (Option__namespace.isNone(o)) {
57
+ return Effect__namespace.succeedNone;
58
+ }
59
+ const newValue = f(o.value);
60
+ return Effect__namespace.as(impl.set(key, newValue), Option__namespace.some(newValue));
61
+ }),
62
+ forSchema(schema) {
63
+ return makeSchemaStore(this, schema);
64
+ },
65
+ ...impl
66
+ });
67
+
68
+ /** @internal */
69
+ const prefix$1 = /*#__PURE__*/Function.dual(2, (self, prefix) => ({
70
+ ...self,
71
+ get: key => self.get(`${prefix}${key}`),
72
+ set: (key, value) => self.set(`${prefix}${key}`, value),
73
+ remove: key => self.remove(`${prefix}${key}`),
74
+ has: key => self.has(`${prefix}${key}`),
75
+ modify: (key, f) => self.modify(`${prefix}${key}`, f)
76
+ }));
77
+
78
+ /** @internal */
79
+ const SchemaStoreTypeId$1 = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore/SchemaStore");
80
+
81
+ /** @internal */
82
+ const makeSchemaStore = (store, schema) => {
83
+ const jsonSchema = Schema__namespace.compose(Schema__namespace.ParseJson, schema);
84
+ const parse = Schema__namespace.parse(jsonSchema);
85
+ const encode = Schema__namespace.encode(jsonSchema);
86
+ const get = key => Effect__namespace.flatMap(store.get(key), Option__namespace.match({
87
+ onNone: () => Effect__namespace.succeedNone,
88
+ onSome: value => Effect__namespace.asSome(parse(value))
89
+ }));
90
+ const set = (key, value) => Effect__namespace.flatMap(encode(value), json => store.set(key, json));
91
+ const modify = (key, f) => Effect__namespace.flatMap(get(key), o => {
92
+ if (Option__namespace.isNone(o)) {
93
+ return Effect__namespace.succeedNone;
94
+ }
95
+ const newValue = f(o.value);
96
+ return Effect__namespace.as(set(key, newValue), Option__namespace.some(newValue));
97
+ });
98
+ return {
99
+ [SchemaStoreTypeId$1]: SchemaStoreTypeId$1,
100
+ get,
101
+ set,
102
+ modify,
103
+ remove: store.remove,
104
+ clear: store.clear,
105
+ size: store.size,
106
+ has: store.has,
107
+ isEmpty: store.isEmpty
108
+ };
109
+ };
110
+
111
+ /** @internal */
112
+ const layerMemory$1 = /*#__PURE__*/Layer__namespace.sync(keyValueStoreTag, () => {
113
+ const store = new Map();
114
+ return make$1({
115
+ get: key => Effect__namespace.sync(() => Option__namespace.fromNullable(store.get(key))),
116
+ set: (key, value) => Effect__namespace.sync(() => store.set(key, value)),
117
+ remove: key => Effect__namespace.sync(() => store.delete(key)),
118
+ clear: Effect__namespace.sync(() => store.clear()),
119
+ size: Effect__namespace.sync(() => store.size)
120
+ });
121
+ });
122
+
123
+ /** @internal */
124
+ const layerFileSystem$1 = directory => Layer__namespace.effect(keyValueStoreTag, Effect__namespace.gen(function* (_) {
125
+ const fs = yield* _(FileSystem_dist_effectPlatformFileSystem.FileSystem);
126
+ const path = yield* _(Path_dist_effectPlatformPath.Path);
127
+ const keyPath = key => path.join(directory, encodeURIComponent(key));
128
+ if (!(yield* _(fs.exists(directory)))) {
129
+ yield* _(fs.makeDirectory(directory, {
130
+ recursive: true
131
+ }));
132
+ }
133
+ return make$1({
134
+ get: key => Function.pipe(Effect__namespace.map(fs.readFileString(keyPath(key)), Option__namespace.some), Effect__namespace.catchTag("SystemError", sysError => sysError.reason === "NotFound" ? Effect__namespace.succeed(Option__namespace.none()) : Effect__namespace.fail(sysError))),
135
+ set: (key, value) => fs.writeFileString(keyPath(key), value),
136
+ remove: key => fs.remove(keyPath(key)),
137
+ has: key => fs.exists(keyPath(key)),
138
+ clear: Effect__namespace.zipRight(fs.remove(directory, {
139
+ recursive: true
140
+ }), fs.makeDirectory(directory, {
141
+ recursive: true
142
+ })),
143
+ size: Effect__namespace.map(fs.readDirectory(directory), files => files.length)
144
+ });
145
+ }));
146
+
147
+ /** @internal */
148
+ const layerSchema$1 = (schema, tagIdentifier) => {
149
+ const tag = Context__namespace.Tag(tagIdentifier);
150
+ const layer = Layer__namespace.effect(tag, Effect__namespace.map(keyValueStoreTag, store => store.forSchema(schema)));
151
+ return {
152
+ tag,
153
+ layer
154
+ };
155
+ };
156
+
157
+ /**
158
+ * @since 1.0.0
159
+ */
160
+ /**
161
+ * @since 1.0.0
162
+ * @category type id
163
+ */
164
+ const TypeId = TypeId$1;
165
+
166
+ /**
167
+ * @since 1.0.0
168
+ * @category type id
169
+ */
170
+
171
+ /**
172
+ * @since 1.0.0
173
+ * @category models
174
+ */
175
+
176
+ /**
177
+ * @since 1.0.0
178
+ */
179
+
180
+ /**
181
+ * @since 1.0.0
182
+ * @category tags
183
+ */
184
+ const KeyValueStore = keyValueStoreTag;
185
+
186
+ /**
187
+ * @since 1.0.0
188
+ * @category constructors
189
+ */
190
+ const make = make$1;
191
+
192
+ /**
193
+ * @since 1.0.0
194
+ * @category combinators
195
+ */
196
+ const prefix = prefix$1;
197
+
198
+ /**
199
+ * @since 1.0.0
200
+ * @category layers
201
+ */
202
+ const layerMemory = layerMemory$1;
203
+
204
+ /**
205
+ * @since 1.0.0
206
+ * @category layers
207
+ */
208
+ const layerFileSystem = layerFileSystem$1;
209
+
210
+ /**
211
+ * @since 1.0.0
212
+ * @category type id
213
+ */
214
+ const SchemaStoreTypeId = SchemaStoreTypeId$1;
215
+
216
+ /**
217
+ * @since 1.0.0
218
+ * @category type id
219
+ */
220
+
221
+ /**
222
+ * @since 1.0.0
223
+ * @category models
224
+ */
225
+
226
+ /**
227
+ * @since 1.0.0
228
+ * @category layers
229
+ */
230
+ const layerSchema = layerSchema$1;
231
+
232
+ exports.KeyValueStore = KeyValueStore;
233
+ exports.SchemaStoreTypeId = SchemaStoreTypeId;
234
+ exports.TypeId = TypeId;
235
+ exports.layerFileSystem = layerFileSystem;
236
+ exports.layerMemory = layerMemory;
237
+ exports.layerSchema = layerSchema;
238
+ exports.make = make;
239
+ exports.prefix = prefix;
@@ -2,29 +2,238 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var KeyValueStore_dist_effectPlatformKeyValueStore = require('../../dist/KeyValueStore-f6c5b981.cjs.prod.js');
6
- require('@effect/schema/Schema');
7
- require('effect/Context');
8
- require('effect/Effect');
9
- require('effect/Function');
10
- require('effect/Layer');
11
- require('effect/Option');
12
- require('../../dist/FileSystem-3d439a05.cjs.prod.js');
5
+ var Schema = require('@effect/schema/Schema');
6
+ var Context = require('effect/Context');
7
+ var Effect = require('effect/Effect');
8
+ var Function = require('effect/Function');
9
+ var Layer = require('effect/Layer');
10
+ var Option = require('effect/Option');
11
+ var FileSystem_dist_effectPlatformFileSystem = require('../../FileSystem/dist/effect-platform-FileSystem.cjs.prod.js');
12
+ var Path_dist_effectPlatformPath = require('../../Path/dist/effect-platform-Path.cjs.prod.js');
13
13
  require('effect/Brand');
14
14
  require('effect/Sink');
15
15
  require('effect/Stream');
16
- require('../../dist/Error-2c4e6ce2.cjs.prod.js');
16
+ require('../../Error/dist/effect-platform-Error.cjs.prod.js');
17
17
  require('effect/Data');
18
- require('../../dist/Path-3574641f.cjs.prod.js');
19
18
  require('path-browserify');
20
19
 
20
+ function _interopNamespace(e) {
21
+ if (e && e.__esModule) return e;
22
+ var n = Object.create(null);
23
+ if (e) {
24
+ Object.keys(e).forEach(function (k) {
25
+ if (k !== 'default') {
26
+ var d = Object.getOwnPropertyDescriptor(e, k);
27
+ Object.defineProperty(n, k, d.get ? d : {
28
+ enumerable: true,
29
+ get: function () { return e[k]; }
30
+ });
31
+ }
32
+ });
33
+ }
34
+ n["default"] = e;
35
+ return Object.freeze(n);
36
+ }
21
37
 
38
+ var Schema__namespace = /*#__PURE__*/_interopNamespace(Schema);
39
+ var Context__namespace = /*#__PURE__*/_interopNamespace(Context);
40
+ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
41
+ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
42
+ var Option__namespace = /*#__PURE__*/_interopNamespace(Option);
22
43
 
23
- exports.KeyValueStore = KeyValueStore_dist_effectPlatformKeyValueStore.KeyValueStore$1;
24
- exports.SchemaStoreTypeId = KeyValueStore_dist_effectPlatformKeyValueStore.SchemaStoreTypeId;
25
- exports.TypeId = KeyValueStore_dist_effectPlatformKeyValueStore.TypeId;
26
- exports.layerFileSystem = KeyValueStore_dist_effectPlatformKeyValueStore.layerFileSystem;
27
- exports.layerMemory = KeyValueStore_dist_effectPlatformKeyValueStore.layerMemory;
28
- exports.layerSchema = KeyValueStore_dist_effectPlatformKeyValueStore.layerSchema;
29
- exports.make = KeyValueStore_dist_effectPlatformKeyValueStore.make;
30
- exports.prefix = KeyValueStore_dist_effectPlatformKeyValueStore.prefix;
44
+ /** @internal */
45
+ const TypeId$1 = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore");
46
+
47
+ /** @internal */
48
+ const keyValueStoreTag = /*#__PURE__*/Context__namespace.Tag(TypeId$1);
49
+
50
+ /** @internal */
51
+ const make$1 = impl => keyValueStoreTag.of({
52
+ [TypeId$1]: TypeId$1,
53
+ has: key => Effect__namespace.map(impl.get(key), Option__namespace.isSome),
54
+ isEmpty: Effect__namespace.map(impl.size, size => size === 0),
55
+ modify: (key, f) => Effect__namespace.flatMap(impl.get(key), o => {
56
+ if (Option__namespace.isNone(o)) {
57
+ return Effect__namespace.succeedNone;
58
+ }
59
+ const newValue = f(o.value);
60
+ return Effect__namespace.as(impl.set(key, newValue), Option__namespace.some(newValue));
61
+ }),
62
+ forSchema(schema) {
63
+ return makeSchemaStore(this, schema);
64
+ },
65
+ ...impl
66
+ });
67
+
68
+ /** @internal */
69
+ const prefix$1 = /*#__PURE__*/Function.dual(2, (self, prefix) => ({
70
+ ...self,
71
+ get: key => self.get(`${prefix}${key}`),
72
+ set: (key, value) => self.set(`${prefix}${key}`, value),
73
+ remove: key => self.remove(`${prefix}${key}`),
74
+ has: key => self.has(`${prefix}${key}`),
75
+ modify: (key, f) => self.modify(`${prefix}${key}`, f)
76
+ }));
77
+
78
+ /** @internal */
79
+ const SchemaStoreTypeId$1 = /*#__PURE__*/Symbol.for("@effect/platform/KeyValueStore/SchemaStore");
80
+
81
+ /** @internal */
82
+ const makeSchemaStore = (store, schema) => {
83
+ const jsonSchema = Schema__namespace.compose(Schema__namespace.ParseJson, schema);
84
+ const parse = Schema__namespace.parse(jsonSchema);
85
+ const encode = Schema__namespace.encode(jsonSchema);
86
+ const get = key => Effect__namespace.flatMap(store.get(key), Option__namespace.match({
87
+ onNone: () => Effect__namespace.succeedNone,
88
+ onSome: value => Effect__namespace.asSome(parse(value))
89
+ }));
90
+ const set = (key, value) => Effect__namespace.flatMap(encode(value), json => store.set(key, json));
91
+ const modify = (key, f) => Effect__namespace.flatMap(get(key), o => {
92
+ if (Option__namespace.isNone(o)) {
93
+ return Effect__namespace.succeedNone;
94
+ }
95
+ const newValue = f(o.value);
96
+ return Effect__namespace.as(set(key, newValue), Option__namespace.some(newValue));
97
+ });
98
+ return {
99
+ [SchemaStoreTypeId$1]: SchemaStoreTypeId$1,
100
+ get,
101
+ set,
102
+ modify,
103
+ remove: store.remove,
104
+ clear: store.clear,
105
+ size: store.size,
106
+ has: store.has,
107
+ isEmpty: store.isEmpty
108
+ };
109
+ };
110
+
111
+ /** @internal */
112
+ const layerMemory$1 = /*#__PURE__*/Layer__namespace.sync(keyValueStoreTag, () => {
113
+ const store = new Map();
114
+ return make$1({
115
+ get: key => Effect__namespace.sync(() => Option__namespace.fromNullable(store.get(key))),
116
+ set: (key, value) => Effect__namespace.sync(() => store.set(key, value)),
117
+ remove: key => Effect__namespace.sync(() => store.delete(key)),
118
+ clear: Effect__namespace.sync(() => store.clear()),
119
+ size: Effect__namespace.sync(() => store.size)
120
+ });
121
+ });
122
+
123
+ /** @internal */
124
+ const layerFileSystem$1 = directory => Layer__namespace.effect(keyValueStoreTag, Effect__namespace.gen(function* (_) {
125
+ const fs = yield* _(FileSystem_dist_effectPlatformFileSystem.FileSystem);
126
+ const path = yield* _(Path_dist_effectPlatformPath.Path);
127
+ const keyPath = key => path.join(directory, encodeURIComponent(key));
128
+ if (!(yield* _(fs.exists(directory)))) {
129
+ yield* _(fs.makeDirectory(directory, {
130
+ recursive: true
131
+ }));
132
+ }
133
+ return make$1({
134
+ get: key => Function.pipe(Effect__namespace.map(fs.readFileString(keyPath(key)), Option__namespace.some), Effect__namespace.catchTag("SystemError", sysError => sysError.reason === "NotFound" ? Effect__namespace.succeed(Option__namespace.none()) : Effect__namespace.fail(sysError))),
135
+ set: (key, value) => fs.writeFileString(keyPath(key), value),
136
+ remove: key => fs.remove(keyPath(key)),
137
+ has: key => fs.exists(keyPath(key)),
138
+ clear: Effect__namespace.zipRight(fs.remove(directory, {
139
+ recursive: true
140
+ }), fs.makeDirectory(directory, {
141
+ recursive: true
142
+ })),
143
+ size: Effect__namespace.map(fs.readDirectory(directory), files => files.length)
144
+ });
145
+ }));
146
+
147
+ /** @internal */
148
+ const layerSchema$1 = (schema, tagIdentifier) => {
149
+ const tag = Context__namespace.Tag(tagIdentifier);
150
+ const layer = Layer__namespace.effect(tag, Effect__namespace.map(keyValueStoreTag, store => store.forSchema(schema)));
151
+ return {
152
+ tag,
153
+ layer
154
+ };
155
+ };
156
+
157
+ /**
158
+ * @since 1.0.0
159
+ */
160
+ /**
161
+ * @since 1.0.0
162
+ * @category type id
163
+ */
164
+ const TypeId = TypeId$1;
165
+
166
+ /**
167
+ * @since 1.0.0
168
+ * @category type id
169
+ */
170
+
171
+ /**
172
+ * @since 1.0.0
173
+ * @category models
174
+ */
175
+
176
+ /**
177
+ * @since 1.0.0
178
+ */
179
+
180
+ /**
181
+ * @since 1.0.0
182
+ * @category tags
183
+ */
184
+ const KeyValueStore = keyValueStoreTag;
185
+
186
+ /**
187
+ * @since 1.0.0
188
+ * @category constructors
189
+ */
190
+ const make = make$1;
191
+
192
+ /**
193
+ * @since 1.0.0
194
+ * @category combinators
195
+ */
196
+ const prefix = prefix$1;
197
+
198
+ /**
199
+ * @since 1.0.0
200
+ * @category layers
201
+ */
202
+ const layerMemory = layerMemory$1;
203
+
204
+ /**
205
+ * @since 1.0.0
206
+ * @category layers
207
+ */
208
+ const layerFileSystem = layerFileSystem$1;
209
+
210
+ /**
211
+ * @since 1.0.0
212
+ * @category type id
213
+ */
214
+ const SchemaStoreTypeId = SchemaStoreTypeId$1;
215
+
216
+ /**
217
+ * @since 1.0.0
218
+ * @category type id
219
+ */
220
+
221
+ /**
222
+ * @since 1.0.0
223
+ * @category models
224
+ */
225
+
226
+ /**
227
+ * @since 1.0.0
228
+ * @category layers
229
+ */
230
+ const layerSchema = layerSchema$1;
231
+
232
+ exports.KeyValueStore = KeyValueStore;
233
+ exports.SchemaStoreTypeId = SchemaStoreTypeId;
234
+ exports.TypeId = TypeId;
235
+ exports.layerFileSystem = layerFileSystem;
236
+ exports.layerMemory = layerMemory;
237
+ exports.layerSchema = layerSchema;
238
+ exports.make = make;
239
+ exports.prefix = prefix;