@dxos/effect 0.10.0 → 0.11.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 (36) hide show
  1. package/dist/lib/index.mjs +919 -0
  2. package/dist/lib/index.mjs.map +1 -0
  3. package/dist/lib/testing.mjs +23 -0
  4. package/dist/lib/testing.mjs.map +1 -0
  5. package/dist/types/src/EffectEx.d.ts +1 -1
  6. package/dist/types/src/EffectEx.d.ts.map +1 -1
  7. package/dist/types/src/RuntimeProvider.d.ts +6 -0
  8. package/dist/types/src/RuntimeProvider.d.ts.map +1 -1
  9. package/dist/types/src/atom-kvs.d.ts +7 -1
  10. package/dist/types/src/atom-kvs.d.ts.map +1 -1
  11. package/dist/types/src/index.d.ts +1 -0
  12. package/dist/types/src/index.d.ts.map +1 -1
  13. package/dist/types/src/internal/errors.d.ts +0 -5
  14. package/dist/types/src/internal/errors.d.ts.map +1 -1
  15. package/dist/types/tsconfig.tsbuildinfo +1 -1
  16. package/package.json +15 -17
  17. package/src/EffectEx.ts +1 -9
  18. package/src/RuntimeProvider.ts +8 -0
  19. package/src/atom-kvs.ts +7 -1
  20. package/src/index.ts +1 -0
  21. package/src/internal/errors.ts +0 -16
  22. package/src/otel.test.ts +1 -1
  23. package/dist/lib/browser/chunk-CGS2ULMK.mjs +0 -11
  24. package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +0 -7
  25. package/dist/lib/browser/index.mjs +0 -849
  26. package/dist/lib/browser/index.mjs.map +0 -7
  27. package/dist/lib/browser/meta.json +0 -1
  28. package/dist/lib/browser/testing.mjs +0 -31
  29. package/dist/lib/browser/testing.mjs.map +0 -7
  30. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  31. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  32. package/dist/lib/node-esm/index.mjs +0 -849
  33. package/dist/lib/node-esm/index.mjs.map +0 -7
  34. package/dist/lib/node-esm/meta.json +0 -1
  35. package/dist/lib/node-esm/testing.mjs +0 -31
  36. package/dist/lib/node-esm/testing.mjs.map +0 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/effect",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Effect utils.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -15,14 +15,12 @@
15
15
  ".": {
16
16
  "source": "./src/index.ts",
17
17
  "types": "./dist/types/src/index.d.ts",
18
- "browser": "./dist/lib/browser/index.mjs",
19
- "node": "./dist/lib/node-esm/index.mjs"
18
+ "import": "./dist/lib/index.mjs"
20
19
  },
21
20
  "./testing": {
22
21
  "source": "./src/testing.ts",
23
22
  "types": "./dist/types/src/testing.d.ts",
24
- "browser": "./dist/lib/browser/testing.mjs",
25
- "node": "./dist/lib/node-esm/testing.mjs"
23
+ "import": "./dist/lib/testing.mjs"
26
24
  }
27
25
  },
28
26
  "types": "dist/types/src/index.d.ts",
@@ -31,26 +29,26 @@
31
29
  "src"
32
30
  ],
33
31
  "dependencies": {
34
- "@effect-atom/atom-react": "^0.5.0",
32
+ "@effect-atom/atom": "^0.5.3",
35
33
  "@effect/opentelemetry": "^0.63.0",
36
34
  "@opentelemetry/api": "^1.9.1",
37
35
  "jsonpath-plus": "^10.3.0",
38
- "@dxos/context": "0.10.0",
39
- "@dxos/invariant": "0.10.0",
40
- "@dxos/util": "0.10.0",
41
- "@dxos/node-std": "0.10.0"
36
+ "@dxos/context": "0.11.0",
37
+ "@dxos/invariant": "0.11.0",
38
+ "@dxos/node-std": "0.11.0",
39
+ "@dxos/util": "0.11.0"
42
40
  },
43
41
  "devDependencies": {
44
42
  "@effect/platform": "0.96.2",
45
43
  "@effect/platform-browser": "0.76.0",
46
- "@opentelemetry/api-logs": "^0.219.0",
47
- "@opentelemetry/resources": "^2.8.0",
48
- "@opentelemetry/sdk-logs": "^0.219.0",
49
- "@opentelemetry/sdk-node": "^0.219.0",
50
- "@opentelemetry/sdk-trace-node": "^2.8.0",
51
- "@opentelemetry/semantic-conventions": "^1.41.1",
44
+ "@opentelemetry/api-logs": "^0.221.0",
45
+ "@opentelemetry/resources": "^2.10.0",
46
+ "@opentelemetry/sdk-logs": "^0.221.0",
47
+ "@opentelemetry/sdk-node": "^0.221.0",
48
+ "@opentelemetry/sdk-trace-node": "^2.10.0",
49
+ "@opentelemetry/semantic-conventions": "^1.43.0",
52
50
  "effect": "3.21.4",
53
- "@dxos/log": "0.10.0"
51
+ "@dxos/log": "0.11.0"
54
52
  },
55
53
  "peerDependencies": {
56
54
  "@effect/platform": "0.96.2",
package/src/EffectEx.ts CHANGED
@@ -6,13 +6,5 @@
6
6
 
7
7
  export { asyncTaskTaggingLayer } from './internal/async-task-tagging';
8
8
  export { contextFromScope } from './internal/context';
9
- export {
10
- causeToError,
11
- promiseWithCauseCapture,
12
- runAndForwardErrors,
13
- runInRuntime,
14
- runPromise,
15
- throwCause,
16
- unwrapExit,
17
- } from './internal/errors';
9
+ export { causeToError, runAndForwardErrors, runInRuntime, runPromise, throwCause, unwrapExit } from './internal/errors';
18
10
  export { acquireReleaseResource } from './internal/resource';
@@ -3,6 +3,7 @@
3
3
  //
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
+ import * as Layer from 'effect/Layer';
6
7
  import * as Runtime from 'effect/Runtime';
7
8
 
8
9
  import { runAndForwardErrors, unwrapExit } from './internal/errors';
@@ -12,6 +13,13 @@ import { runAndForwardErrors, unwrapExit } from './internal/errors';
12
13
  */
13
14
  export type RuntimeProvider<R> = Effect.Effect<Runtime.Runtime<R>>;
14
15
 
16
+ /**
17
+ * Bridges a runtime provider into a {@link Layer} exposing its services, so a stack that resolves
18
+ * dependencies via `RuntimeProvider.currentRuntime` can be provided from an existing runtime.
19
+ */
20
+ export const toLayer = <R>(provider: RuntimeProvider<R>): Layer.Layer<R> =>
21
+ Layer.effectContext(Effect.map(provider, (runtime) => runtime.context));
22
+
15
23
  /**
16
24
  * @returns Runtime provider from the current context.
17
25
  */
package/src/atom-kvs.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Atom } from '@effect-atom/atom-react';
5
+ import { Atom } from '@effect-atom/atom';
6
6
  import * as BrowserKeyValueStore from '@effect/platform-browser/BrowserKeyValueStore';
7
7
  import type * as Schema from 'effect/Schema';
8
8
 
@@ -18,6 +18,12 @@ const defaultRuntime = Atom.runtime(BrowserKeyValueStore.layerLocalStorage);
18
18
  * @param options.defaultValue - Function returning the default value.
19
19
  * @param options.runtime - Optional custom Atom runtime (defaults to localStorage).
20
20
  * @returns A writable atom that persists to localStorage.
21
+ *
22
+ * @idiom org.dxos.effect.kvsStore
23
+ * applies: Persisting a plugin's settings/config as one schema-validated localStorage blob (a global user preference set infrequently)
24
+ * instead-of: hand-rolled localStorage reads/writes, or scattering per-field atoms, or using this for per-context UI state
25
+ * uses: {@link createKvsStore}
26
+ * related: org.dxos.react-ui-attention.viewState
21
27
  */
22
28
  export const createKvsStore = <T extends Record<string, any>>(options: {
23
29
  key: string;
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  export * from './atom-kvs';
6
6
  export * as DynamicRuntime from './dynamic-runtime';
7
7
  export * as EffectEx from './EffectEx';
8
+ export { type Configuration as OtelConfiguration, layerOtel } from './otel';
8
9
  export * as Performance from './Performance';
9
10
  export * as RuntimeProvider from './RuntimeProvider';
10
11
  export * as SchemaEx from './SchemaEx';
@@ -237,19 +237,3 @@ export const runInRuntime: {
237
237
  })();
238
238
  }
239
239
  };
240
-
241
- /**
242
- * Like `Effect.promise` but also caputes spans for defects.
243
- * Workaround for: https://github.com/Effect-TS/effect/issues/5436
244
- */
245
- export const promiseWithCauseCapture: <A>(evaluate: (signal: AbortSignal) => PromiseLike<A>) => Effect.Effect<A> = (
246
- evaluate,
247
- ) =>
248
- Effect.promise(async (signal) => {
249
- try {
250
- const result = await evaluate(signal);
251
- return Effect.succeed(result);
252
- } catch (err) {
253
- return Effect.die(err);
254
- }
255
- }).pipe(Effect.flatten);
package/src/otel.test.ts CHANGED
@@ -34,7 +34,7 @@ const sdk = new NodeSDK({
34
34
 
35
35
  // and add a processor to export log record
36
36
  const loggerProvider = new LoggerProvider({
37
- processors: [new SimpleLogRecordProcessor(new ConsoleLogRecordExporter())],
37
+ processors: [new SimpleLogRecordProcessor({ exporter: new ConsoleLogRecordExporter() })],
38
38
  resource,
39
39
  });
40
40
  logs.setGlobalLoggerProvider(loggerProvider);
@@ -1,11 +0,0 @@
1
- import "@dxos/node-std/globals";
2
- var __defProp = Object.defineProperty;
3
- var __export = (target, all) => {
4
- for (var name in all)
5
- __defProp(target, name, { get: all[name], enumerable: true });
6
- };
7
-
8
- export {
9
- __export
10
- };
11
- //# sourceMappingURL=chunk-CGS2ULMK.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }