@dxos/effect 0.8.3 → 0.8.4-main.1068cf700f

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 (82) hide show
  1. package/dist/lib/browser/chunk-CGS2ULMK.mjs +11 -0
  2. package/dist/lib/browser/chunk-CGS2ULMK.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +458 -87
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/testing.mjs +39 -0
  7. package/dist/lib/browser/testing.mjs.map +7 -0
  8. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  9. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  10. package/dist/lib/node-esm/index.mjs +458 -87
  11. package/dist/lib/node-esm/index.mjs.map +4 -4
  12. package/dist/lib/node-esm/meta.json +1 -1
  13. package/dist/lib/node-esm/testing.mjs +39 -0
  14. package/dist/lib/node-esm/testing.mjs.map +7 -0
  15. package/dist/types/src/RuntimeProvider.d.ts +21 -0
  16. package/dist/types/src/RuntimeProvider.d.ts.map +1 -0
  17. package/dist/types/src/ast.d.ts +36 -18
  18. package/dist/types/src/ast.d.ts.map +1 -1
  19. package/dist/types/src/atom-kvs.d.ts +19 -0
  20. package/dist/types/src/atom-kvs.d.ts.map +1 -0
  21. package/dist/types/src/context.d.ts +5 -0
  22. package/dist/types/src/context.d.ts.map +1 -0
  23. package/dist/types/src/dynamic-runtime.d.ts +56 -0
  24. package/dist/types/src/dynamic-runtime.d.ts.map +1 -0
  25. package/dist/types/src/dynamic-runtime.test.d.ts +2 -0
  26. package/dist/types/src/dynamic-runtime.test.d.ts.map +1 -0
  27. package/dist/types/src/errors.d.ts +57 -0
  28. package/dist/types/src/errors.d.ts.map +1 -0
  29. package/dist/types/src/errors.test.d.ts +2 -0
  30. package/dist/types/src/errors.test.d.ts.map +1 -0
  31. package/dist/types/src/index.d.ts +7 -1
  32. package/dist/types/src/index.d.ts.map +1 -1
  33. package/dist/types/src/interrupt.test.d.ts +2 -0
  34. package/dist/types/src/interrupt.test.d.ts.map +1 -0
  35. package/dist/types/src/{jsonPath.d.ts → json-path.d.ts} +12 -4
  36. package/dist/types/src/json-path.d.ts.map +1 -0
  37. package/dist/types/src/json-path.test.d.ts +2 -0
  38. package/dist/types/src/json-path.test.d.ts.map +1 -0
  39. package/dist/types/src/layers.test.d.ts +2 -0
  40. package/dist/types/src/layers.test.d.ts.map +1 -0
  41. package/dist/types/src/otel.d.ts +17 -0
  42. package/dist/types/src/otel.d.ts.map +1 -0
  43. package/dist/types/src/otel.test.d.ts +2 -0
  44. package/dist/types/src/otel.test.d.ts.map +1 -0
  45. package/dist/types/src/resource.d.ts +8 -0
  46. package/dist/types/src/resource.d.ts.map +1 -0
  47. package/dist/types/src/resource.test.d.ts +2 -0
  48. package/dist/types/src/resource.test.d.ts.map +1 -0
  49. package/dist/types/src/testing.d.ts +68 -0
  50. package/dist/types/src/testing.d.ts.map +1 -0
  51. package/dist/types/src/url.d.ts +3 -1
  52. package/dist/types/src/url.d.ts.map +1 -1
  53. package/dist/types/tsconfig.tsbuildinfo +1 -1
  54. package/package.json +37 -8
  55. package/src/RuntimeProvider.ts +35 -0
  56. package/src/ast.test.ts +55 -10
  57. package/src/ast.ts +123 -80
  58. package/src/atom-kvs.ts +35 -0
  59. package/src/context.ts +16 -0
  60. package/src/dynamic-runtime.test.ts +465 -0
  61. package/src/dynamic-runtime.ts +195 -0
  62. package/src/errors.test.ts +22 -0
  63. package/src/errors.ts +252 -0
  64. package/src/index.ts +7 -1
  65. package/src/interrupt.test.ts +35 -0
  66. package/src/{jsonPath.test.ts → json-path.test.ts} +47 -8
  67. package/src/{jsonPath.ts → json-path.ts} +29 -4
  68. package/src/layers.test.ts +112 -0
  69. package/src/otel.test.ts +126 -0
  70. package/src/otel.ts +45 -0
  71. package/src/resource.test.ts +32 -0
  72. package/src/resource.ts +30 -0
  73. package/src/sanity.test.ts +30 -15
  74. package/src/testing.ts +112 -0
  75. package/src/url.test.ts +1 -1
  76. package/src/url.ts +5 -2
  77. package/dist/lib/node/index.cjs +0 -487
  78. package/dist/lib/node/index.cjs.map +0 -7
  79. package/dist/lib/node/meta.json +0 -1
  80. package/dist/types/src/jsonPath.d.ts.map +0 -1
  81. package/dist/types/src/jsonPath.test.d.ts +0 -2
  82. package/dist/types/src/jsonPath.test.d.ts.map +0 -1
@@ -0,0 +1,57 @@
1
+ import * as Cause from 'effect/Cause';
2
+ import * as Effect from 'effect/Effect';
3
+ import * as Exit from 'effect/Exit';
4
+ import * as Runtime from 'effect/Runtime';
5
+ /**
6
+ * Converts a cause to an error.
7
+ * Inserts effect spans as stack frames.
8
+ * The error will have stack frames of where the effect was run (if stack trace limit allows).
9
+ * Removes effect runtime internal stack frames.
10
+ *
11
+ * To be used in place of `Effect.runPromise`.
12
+ *
13
+ * @throws AggregateError if there are multiple errors.
14
+ */
15
+ export declare const causeToError: (cause: Cause.Cause<any>) => Error;
16
+ /**
17
+ * Throws an error based on the cause.
18
+ * Inserts effect spans as stack frames.
19
+ * The error will have stack frames of where the effect was run (if stack trace limit allows).
20
+ * Removes effect runtime internal stack frames.
21
+ *
22
+ * To be used in place of `Effect.runPromise`.
23
+ *
24
+ * @throws AggregateError if there are multiple errors.
25
+ */
26
+ export declare const throwCause: (cause: Cause.Cause<any>) => never;
27
+ export declare const unwrapExit: <A>(exit: Exit.Exit<A, any>) => A;
28
+ /**
29
+ * Runs the embedded effect asynchronously and throws any failures and defects as errors.
30
+ * Inserts effect spans as stack frames.
31
+ * The error will have stack frames of where the effect was run (if stack trace limit allows).
32
+ * Removes effect runtime internal stack frames.
33
+ *
34
+ * To be used in place of `Effect.runPromise`.
35
+ *
36
+ * @throws AggregateError if there are multiple errors.
37
+ */
38
+ export declare const runAndForwardErrors: <A, E>(effect: Effect.Effect<A, E, never>, options?: {
39
+ signal?: AbortSignal;
40
+ }) => Promise<A>;
41
+ /**
42
+ * Runs the embedded effect asynchronously and throws any failures and defects as errors.
43
+ */
44
+ export declare const runInRuntime: {
45
+ <R>(runtime: Runtime.Runtime<R>): <A, E>(effect: Effect.Effect<A, E, R>, options?: {
46
+ signal?: AbortSignal;
47
+ } | undefined) => Promise<A>;
48
+ <R, A, E>(runtime: Runtime.Runtime<R>, effect: Effect.Effect<A, E, R>, options?: {
49
+ signal?: AbortSignal;
50
+ } | undefined): Promise<A>;
51
+ };
52
+ /**
53
+ * Like `Effect.promise` but also caputes spans for defects.
54
+ * Workaround for: https://github.com/Effect-TS/effect/issues/5436
55
+ */
56
+ export declare const promiseWithCauseCapture: <A>(evaluate: (signal: AbortSignal) => PromiseLike<A>) => Effect.Effect<A>;
57
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAGpC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAoH1C;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAG,KAwBtD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAG,KAEpD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,KAAG,CAMvD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,GAAU,CAAC,EAAE,CAAC,EAC5C,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAClC,UAAU;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KACjC,OAAO,CAAC,CAAC,CAGX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE;IACzB,CAAC,CAAC,EACA,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACN,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,SAAS,GAC7C,OAAO,CAAC,CAAC,CAAC,CAAC;CAsBf,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAUtF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=errors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../../src/errors.test.ts"],"names":[],"mappings":""}
@@ -1,4 +1,10 @@
1
1
  export * from './ast';
2
- export * from './jsonPath';
2
+ export * from './atom-kvs';
3
+ export * from './context';
4
+ export * as DynamicRuntime from './dynamic-runtime';
5
+ export * from './errors';
6
+ export * from './json-path';
7
+ export * from './resource';
3
8
  export * from './url';
9
+ export * as RuntimeProvider from './RuntimeProvider';
4
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AACpD,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interrupt.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interrupt.test.d.ts","sourceRoot":"","sources":["../../../src/interrupt.test.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { Schema } from 'effect';
1
+ import * as Schema from 'effect/Schema';
2
2
  export type JsonProp = string & {
3
3
  __JsonPath: true;
4
4
  __JsonProp: true;
@@ -31,7 +31,7 @@ export declare const isJsonPath: (value: unknown) => value is JsonPath;
31
31
  * @param path Array of string or number segments
32
32
  * @returns Valid JsonPath or undefined if invalid
33
33
  */
34
- export declare const createJsonPath: (path: (string | number)[]) => JsonPath;
34
+ export declare const createJsonPath: (path: readonly (string | number)[]) => JsonPath;
35
35
  /**
36
36
  * Converts Effect validation path format (e.g. "addresses.[0].zip")
37
37
  * to JsonPath format (e.g., "addresses[0].zip")
@@ -41,9 +41,17 @@ export declare const fromEffectValidationPath: (effectPath: string) => JsonPath;
41
41
  * Splits a JsonPath into its constituent parts.
42
42
  * Handles property access and array indexing.
43
43
  */
44
- export declare const splitJsonPath: (path: JsonPath) => string[];
44
+ export declare const splitJsonPath: (path: JsonPath) => (string | number)[];
45
45
  /**
46
46
  * Applies a JsonPath to an object.
47
47
  */
48
48
  export declare const getField: (object: any, path: JsonPath) => any;
49
- //# sourceMappingURL=jsonPath.d.ts.map
49
+ /**
50
+ * Get value from object using JsonPath.
51
+ */
52
+ export declare const getValue: <T extends object>(obj: T, path: JsonPath) => any;
53
+ /**
54
+ * Set value on object using JsonPath.
55
+ */
56
+ export declare const setValue: <T extends object>(obj: T, path: JsonPath, value: any) => T;
57
+ //# sourceMappingURL=json-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-path.d.ts","sourceRoot":"","sources":["../../../src/json-path.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAMxC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,UAAU,EAAE,IAAI,CAAC;IAAC,UAAU,EAAE,IAAI,CAAA;CAAE,CAAC;AACvE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG;IAAE,UAAU,EAAE,IAAI,CAAA;CAAE,CAAC;AAQrD;;GAEG;AAEH,eAAO,MAAM,QAAQ,EAGR,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrC,eAAO,MAAM,QAAQ,EAIT,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEpC,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,QAEpD,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAG,QAanE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,YAAY,MAAM,KAAG,QAK7D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,QAAQ,KAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAc/D,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,QAAQ,GAAI,QAAQ,GAAG,EAAE,MAAM,QAAQ,KAAG,GAGtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,QAAQ,KAAG,GAEnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,QAAQ,EAAE,OAAO,GAAG,KAAG,CAE/E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=json-path.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-path.test.d.ts","sourceRoot":"","sources":["../../../src/json-path.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=layers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.test.d.ts","sourceRoot":"","sources":["../../../src/layers.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import * as Resource from '@effect/opentelemetry/Resource';
2
+ import { type Attributes } from '@opentelemetry/api';
3
+ import * as Effect from 'effect/Effect';
4
+ import type * as Function from 'effect/Function';
5
+ import * as Layer from 'effect/Layer';
6
+ export interface Configuration {
7
+ readonly resource?: {
8
+ readonly serviceName: string;
9
+ readonly serviceVersion?: string;
10
+ readonly attributes?: Attributes;
11
+ } | undefined;
12
+ }
13
+ export declare const layerOtel: {
14
+ (evaluate: Function.LazyArg<Configuration>): Layer.Layer<Resource.Resource>;
15
+ <R, E>(evaluate: Effect.Effect<Configuration, E, R>): Layer.Layer<Resource.Resource, E, R>;
16
+ };
17
+ //# sourceMappingURL=otel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../../src/otel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,QAAQ,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAE,KAAK,UAAU,EAAS,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EACd;QACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;KAClC,GACD,SAAS,CAAC;CACf;AAGD,eAAO,MAAM,SAAS,EAAE;IACtB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAoB1F,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=otel.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.test.d.ts","sourceRoot":"","sources":["../../../src/otel.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import * as Effect from 'effect/Effect';
2
+ import type * as Scope from 'effect/Scope';
3
+ import type { Lifecycle } from '@dxos/context';
4
+ /**
5
+ * Acquires a resource and releases it when the scope is closed.
6
+ */
7
+ export declare const acquireReleaseResource: <T extends Lifecycle>(getResource: () => T) => Effect.Effect<T, never, Scope.Scope>;
8
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/resource.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,SAAS,EACxD,aAAa,MAAM,CAAC,KACnB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAenC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=resource.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.test.d.ts","sourceRoot":"","sources":["../../../src/resource.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,68 @@
1
+ import * as Context from 'effect/Context';
2
+ import * as Effect from 'effect/Effect';
3
+ import type { TestContext } from 'vitest';
4
+ export type TestTag = 'flaky' | 'llm' | 'sync';
5
+ export declare namespace TestHelpers {
6
+ /**
7
+ * Skip the test if the condition is false.
8
+ *
9
+ * Exmaple:
10
+ * ```ts
11
+ * it.effect(
12
+ * 'should process an agentic loop using Claude',
13
+ * Effect.fn(function* ({ expect }) {
14
+ * // ...
15
+ * }),
16
+ * TestHelpers.runIf(process.env.ANTHROPIC_API_KEY),
17
+ * );
18
+ * ```
19
+ */
20
+ const runIf: (condition: unknown) => <A, E, R>(effect: Effect.Effect<A, E, R>, ctx: TestContext) => Effect.Effect<A, E, R>;
21
+ /**
22
+ * Skip the test if the condition is true.
23
+ *
24
+ * Exmaple:
25
+ * ```ts
26
+ * it.effect(
27
+ * 'should process an agentic loop using Claude',
28
+ * Effect.fn(function* ({ expect }) {
29
+ * // ...
30
+ * }),
31
+ * TestHelpers.skipIf(!process.env.ANTHROPIC_API_KEY),
32
+ * );
33
+ * ```
34
+ */
35
+ const skipIf: (condition: unknown) => <A, E, R>(effect: Effect.Effect<A, E, R>, ctx: TestContext) => Effect.Effect<A, E, R>;
36
+ const tagEnabled: (tag: TestTag) => boolean | undefined;
37
+ /**
38
+ * Skips this test if the tag is not in the list of tags to run.
39
+ * Tags are specified in the `DX_TEST_TAGS` environment variable.
40
+ *
41
+ * @param tag
42
+ * @returns
43
+ */
44
+ const taggedTest: (tag: TestTag) => <A, E, R>(effect: Effect.Effect<A, E, R>, ctx: TestContext) => Effect.Effect<A, E, R>;
45
+ /**
46
+ * Provide TestContext from test parameters.
47
+ *
48
+ * Exmaple:
49
+ * ```ts
50
+ * it.effect(
51
+ * 'with context',
52
+ * Effect.fn(function* ({ expect }) {
53
+ * const ctx = yield* TestContextService;
54
+ * }),
55
+ * TestHelpers.provideTestContext,
56
+ * );
57
+ * ```
58
+ */
59
+ const provideTestContext: <A, E, R>(effect: Effect.Effect<A, E, R>, ctx: TestContext) => Effect.Effect<A, E, Exclude<R, TestContextService>>;
60
+ }
61
+ declare const TestContextService_base: Context.TagClass<TestContextService, "@dxos/effect/TestContextService", TestContext>;
62
+ /**
63
+ * Exposes vitest test context as an effect service.
64
+ */
65
+ export declare class TestContextService extends TestContextService_base {
66
+ }
67
+ export {};
68
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/testing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAG1C,MAAM,MAAM,OAAO,GACf,OAAO,GACP,KAAK,GACL,MAAM,CAAC;AAEX,yBAAiB,WAAW,CAAC;IAC3B;;;;;;;;;;;;;OAaG;IACI,MAAM,KAAK,GACf,WAAW,OAAO,MAClB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,WAAW,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAO9E,CAAC;IAEP;;;;;;;;;;;;;OAaG;IACI,MAAM,MAAM,GAChB,WAAW,OAAO,MAClB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,WAAW,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAO9E,CAAC;IAEA,MAAM,UAAU,GAAI,KAAK,OAAO,wBAA4C,CAAC;IAEpF;;;;;;OAMG;IACI,MAAM,UAAU,GACpB,KAAK,OAAO,MACZ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,WAAW,KAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAO9E,CAAC;IAEP;;;;;;;;;;;;;OAaG;IACI,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EACxC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9B,KAAK,WAAW,KACf,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAA2D,CAAC;CAClH;;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,uBAGrC;CAAG"}
@@ -1,4 +1,6 @@
1
- import { SchemaAST, type Schema, Option } from 'effect';
1
+ import * as Option from 'effect/Option';
2
+ import type * as Schema from 'effect/Schema';
3
+ import * as SchemaAST from 'effect/SchemaAST';
2
4
  type ParamKeyAnnotationValue = {
3
5
  key: string;
4
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/url.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,KAAK,MAAM,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAC;AAM9D,KAAK,uBAAuB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,eAAO,MAAM,qBAAqB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,uBAAuB,CACrC,CAAC;AAEzE,eAAO,MAAM,kBAAkB,GAC5B,OAAO,uBAAuB,MAC9B,CAAC,SAAS,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CACb,CAAC;AAExD;;;GAGG;AACH,qBAAa,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtD;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;IAsBtB;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,GAAG;CAoBrC"}
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../src/url.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAC;AAM9C,KAAK,uBAAuB,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,eAAO,MAAM,qBAAqB,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,uBAAuB,CACrC,CAAC;AAEzE,eAAO,MAAM,kBAAkB,GAC5B,OAAO,uBAAuB,MAC9B,CAAC,SAAS,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CACb,CAAC;AAExD;;;GAGG;AACH,qBAAa,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtD;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;IAsBtB;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,GAAG;CAoBrC"}