@dxos/effect 0.8.4-staging.ac66bdf99f → 0.9.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.
- package/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/browser/index.mjs +535 -573
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing.mjs +0 -8
- package/dist/lib/browser/testing.mjs.map +3 -3
- package/dist/lib/node-esm/index.mjs +535 -573
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing.mjs +0 -8
- package/dist/lib/node-esm/testing.mjs.map +3 -3
- package/dist/types/src/EffectEx.d.ts +5 -0
- package/dist/types/src/EffectEx.d.ts.map +1 -0
- package/dist/types/src/Performance.d.ts.map +1 -1
- package/dist/types/src/RuntimeProvider.d.ts.map +1 -1
- package/dist/types/src/SchemaEx.d.ts +4 -0
- package/dist/types/src/SchemaEx.d.ts.map +1 -0
- package/dist/types/src/atom-kvs.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +5 -8
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/{ast.d.ts → internal/ast.d.ts} +12 -1
- package/dist/types/src/internal/ast.d.ts.map +1 -0
- package/dist/types/src/internal/async-task-tagging.d.ts.map +1 -0
- package/dist/types/src/internal/context.d.ts.map +1 -0
- package/dist/types/src/{errors.d.ts → internal/errors.d.ts} +4 -0
- package/dist/types/src/internal/errors.d.ts.map +1 -0
- package/dist/types/src/internal/json-path.d.ts.map +1 -0
- package/dist/types/src/internal/resource.d.ts.map +1 -0
- package/dist/types/src/internal/url.d.ts.map +1 -0
- package/dist/types/src/testing.d.ts +2 -12
- package/dist/types/src/testing.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +8 -0
- package/dist/types/src/types.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +21 -28
- package/src/EffectEx.ts +18 -0
- package/src/RuntimeProvider.ts +1 -1
- package/src/SchemaEx.ts +46 -0
- package/src/ast.test.ts +2 -2
- package/src/dynamic-runtime.test.ts +1 -1
- package/src/dynamic-runtime.ts +1 -1
- package/src/index.ts +9 -8
- package/src/{ast.ts → internal/ast.ts} +26 -0
- package/src/{async-task-tagging.ts → internal/async-task-tagging.ts} +6 -2
- package/src/{errors.ts → internal/errors.ts} +6 -3
- package/src/interrupt.test.ts +1 -1
- package/src/json-path.test.ts +9 -1
- package/src/layers.test.ts +1 -1
- package/src/resource.test.ts +1 -1
- package/src/sanity.test.ts +1 -1
- package/src/testing.ts +2 -28
- package/src/types.ts +11 -0
- package/src/url.test.ts +1 -1
- package/dist/types/src/ast.d.ts.map +0 -1
- package/dist/types/src/async-task-tagging.d.ts.map +0 -1
- package/dist/types/src/context.d.ts.map +0 -1
- package/dist/types/src/errors.d.ts.map +0 -1
- package/dist/types/src/json-path.d.ts.map +0 -1
- package/dist/types/src/resource.d.ts.map +0 -1
- package/dist/types/src/url.d.ts.map +0 -1
- /package/dist/types/src/{async-task-tagging.d.ts → internal/async-task-tagging.d.ts} +0 -0
- /package/dist/types/src/{context.d.ts → internal/context.d.ts} +0 -0
- /package/dist/types/src/{json-path.d.ts → internal/json-path.d.ts} +0 -0
- /package/dist/types/src/{resource.d.ts → internal/resource.d.ts} +0 -0
- /package/dist/types/src/{url.d.ts → internal/url.d.ts} +0 -0
- /package/src/{context.ts → internal/context.ts} +0 -0
- /package/src/{json-path.ts → internal/json-path.ts} +0 -0
- /package/src/{resource.ts → internal/resource.ts} +0 -0
- /package/src/{url.ts → internal/url.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/effect",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Effect utils.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "https://github.com/dxos/dxos"
|
|
10
10
|
},
|
|
11
|
-
"license": "
|
|
11
|
+
"license": "FSL-1.1-Apache-2.0",
|
|
12
12
|
"author": "info@dxos.org",
|
|
13
13
|
"type": "module",
|
|
14
14
|
"exports": {
|
|
@@ -26,43 +26,36 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"types": "dist/types/src/index.d.ts",
|
|
29
|
-
"typesVersions": {
|
|
30
|
-
"*": {
|
|
31
|
-
"testing": [
|
|
32
|
-
"./dist/types/src/testing.d.ts"
|
|
33
|
-
]
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
29
|
"files": [
|
|
37
30
|
"dist",
|
|
38
31
|
"src"
|
|
39
32
|
],
|
|
40
33
|
"dependencies": {
|
|
41
34
|
"@effect-atom/atom-react": "^0.5.0",
|
|
42
|
-
"@effect/opentelemetry": "^0.
|
|
43
|
-
"@opentelemetry/api": "^1.9.
|
|
35
|
+
"@effect/opentelemetry": "^0.63.0",
|
|
36
|
+
"@opentelemetry/api": "^1.9.1",
|
|
44
37
|
"jsonpath-plus": "^10.3.0",
|
|
45
|
-
"@dxos/context": "0.
|
|
46
|
-
"@dxos/invariant": "0.
|
|
47
|
-
"@dxos/node-std": "0.
|
|
48
|
-
"@dxos/util": "0.
|
|
38
|
+
"@dxos/context": "0.9.0",
|
|
39
|
+
"@dxos/invariant": "0.9.0",
|
|
40
|
+
"@dxos/node-std": "0.9.0",
|
|
41
|
+
"@dxos/util": "0.9.0"
|
|
49
42
|
},
|
|
50
43
|
"devDependencies": {
|
|
51
|
-
"@effect/platform": "0.
|
|
52
|
-
"@effect/platform-browser": "0.
|
|
53
|
-
"@opentelemetry/api-logs": "^0.
|
|
54
|
-
"@opentelemetry/resources": "^2.1
|
|
55
|
-
"@opentelemetry/sdk-logs": "^0.
|
|
56
|
-
"@opentelemetry/sdk-node": "^0.
|
|
57
|
-
"@opentelemetry/sdk-trace-node": "^2.1
|
|
58
|
-
"@opentelemetry/semantic-conventions": "^1.
|
|
59
|
-
"effect": "3.
|
|
60
|
-
"@dxos/log": "0.
|
|
44
|
+
"@effect/platform": "0.96.1",
|
|
45
|
+
"@effect/platform-browser": "0.76.0",
|
|
46
|
+
"@opentelemetry/api-logs": "^0.218.0",
|
|
47
|
+
"@opentelemetry/resources": "^2.7.1",
|
|
48
|
+
"@opentelemetry/sdk-logs": "^0.218.0",
|
|
49
|
+
"@opentelemetry/sdk-node": "^0.218.0",
|
|
50
|
+
"@opentelemetry/sdk-trace-node": "^2.7.1",
|
|
51
|
+
"@opentelemetry/semantic-conventions": "^1.41.1",
|
|
52
|
+
"effect": "3.21.3",
|
|
53
|
+
"@dxos/log": "0.9.0"
|
|
61
54
|
},
|
|
62
55
|
"peerDependencies": {
|
|
63
|
-
"@effect/platform": "0.
|
|
64
|
-
"@effect/platform-browser": "0.
|
|
65
|
-
"effect": "3.
|
|
56
|
+
"@effect/platform": "0.96.1",
|
|
57
|
+
"@effect/platform-browser": "0.76.0",
|
|
58
|
+
"effect": "3.21.3"
|
|
66
59
|
},
|
|
67
60
|
"publishConfig": {
|
|
68
61
|
"access": "public"
|
package/src/EffectEx.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
// @import-as-namespace
|
|
6
|
+
|
|
7
|
+
export { asyncTaskTaggingLayer } from './internal/async-task-tagging';
|
|
8
|
+
export { contextFromScope } from './internal/context';
|
|
9
|
+
export {
|
|
10
|
+
causeToError,
|
|
11
|
+
throwCause,
|
|
12
|
+
unwrapExit,
|
|
13
|
+
runAndForwardErrors,
|
|
14
|
+
runPromise,
|
|
15
|
+
runInRuntime,
|
|
16
|
+
promiseWithCauseCapture,
|
|
17
|
+
} from './internal/errors';
|
|
18
|
+
export { acquireReleaseResource } from './internal/resource';
|
package/src/RuntimeProvider.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as Effect from 'effect/Effect';
|
|
6
6
|
import * as Runtime from 'effect/Runtime';
|
|
7
7
|
|
|
8
|
-
import { runAndForwardErrors, unwrapExit } from './errors';
|
|
8
|
+
import { runAndForwardErrors, unwrapExit } from './internal/errors';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Provides effect runtime with services to run effects.
|
package/src/SchemaEx.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
// @import-as-namespace
|
|
6
|
+
|
|
7
|
+
export {
|
|
8
|
+
getBaseType,
|
|
9
|
+
type SchemaProperty,
|
|
10
|
+
getProperties,
|
|
11
|
+
VisitResult,
|
|
12
|
+
type Path,
|
|
13
|
+
type TestFn,
|
|
14
|
+
type VisitorFn,
|
|
15
|
+
visit,
|
|
16
|
+
findNode,
|
|
17
|
+
findProperty,
|
|
18
|
+
getAnnotation,
|
|
19
|
+
findAnnotation,
|
|
20
|
+
isOption,
|
|
21
|
+
isLiteralUnion,
|
|
22
|
+
getLiteralValues,
|
|
23
|
+
isArrayType,
|
|
24
|
+
getArrayElementType,
|
|
25
|
+
isTupleType,
|
|
26
|
+
isDiscriminatedUnion,
|
|
27
|
+
getDiscriminatingProps,
|
|
28
|
+
getDiscriminatedType,
|
|
29
|
+
isNestedType,
|
|
30
|
+
mapAst,
|
|
31
|
+
unwrapOptional,
|
|
32
|
+
} from './internal/ast';
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
JsonPath,
|
|
36
|
+
JsonProp,
|
|
37
|
+
isJsonPath,
|
|
38
|
+
createJsonPath,
|
|
39
|
+
fromEffectValidationPath,
|
|
40
|
+
splitJsonPath,
|
|
41
|
+
getField,
|
|
42
|
+
getValue,
|
|
43
|
+
setValue,
|
|
44
|
+
} from './internal/json-path';
|
|
45
|
+
|
|
46
|
+
export { getParamKeyAnnotation, ParamKeyAnnotation, UrlParser } from './internal/url';
|
package/src/ast.test.ts
CHANGED
|
@@ -20,8 +20,8 @@ import {
|
|
|
20
20
|
isDiscriminatedUnion,
|
|
21
21
|
isOption,
|
|
22
22
|
visit,
|
|
23
|
-
} from './ast';
|
|
24
|
-
import { type JsonPath, type JsonProp } from './json-path';
|
|
23
|
+
} from './internal/ast';
|
|
24
|
+
import { type JsonPath, type JsonProp } from './internal/json-path';
|
|
25
25
|
|
|
26
26
|
const ZipCode = Schema.String.pipe(
|
|
27
27
|
Schema.pattern(/^\d{5}$/, {
|
|
@@ -11,7 +11,7 @@ import * as Runtime from 'effect/Runtime';
|
|
|
11
11
|
import { describe, expect, test } from 'vitest';
|
|
12
12
|
|
|
13
13
|
import * as DynamicRuntime from './dynamic-runtime';
|
|
14
|
-
import { runAndForwardErrors } from './errors';
|
|
14
|
+
import { runAndForwardErrors } from './internal/errors';
|
|
15
15
|
|
|
16
16
|
// Test service tags
|
|
17
17
|
class Database extends Context.Tag('Database')<Database, { query: (sql: string) => Effect.Effect<string[]> }>() {}
|
package/src/dynamic-runtime.ts
CHANGED
|
@@ -10,7 +10,7 @@ import type * as ManagedRuntime from 'effect/ManagedRuntime';
|
|
|
10
10
|
import * as Option from 'effect/Option';
|
|
11
11
|
import * as Runtime from 'effect/Runtime';
|
|
12
12
|
|
|
13
|
-
import { unwrapExit } from './errors';
|
|
13
|
+
import { unwrapExit } from './internal/errors';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Helper type to construct a union of tag identifiers from an array of tags.
|
package/src/index.ts
CHANGED
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
// Copyright 2020 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
export * from './ast';
|
|
6
5
|
export * from './atom-kvs';
|
|
7
|
-
export * from './
|
|
6
|
+
export * from './types';
|
|
8
7
|
export * as DynamicRuntime from './dynamic-runtime';
|
|
9
|
-
export * from './
|
|
10
|
-
export * from './json-path';
|
|
11
|
-
export * from './resource';
|
|
12
|
-
export * from './url';
|
|
13
|
-
export * as RuntimeProvider from './RuntimeProvider';
|
|
8
|
+
export * as EffectEx from './EffectEx';
|
|
14
9
|
export * as Performance from './Performance';
|
|
15
|
-
export * from './
|
|
10
|
+
export * as RuntimeProvider from './RuntimeProvider';
|
|
11
|
+
export * as SchemaEx from './SchemaEx';
|
|
12
|
+
|
|
13
|
+
// Re-export core types at the top level so TypeScript can name them in declaration files.
|
|
14
|
+
// These are the branded string types that appear in public APIs (View fields, JSON schemas).
|
|
15
|
+
// The associated schema values live under SchemaEx.JsonPath / SchemaEx.JsonProp.
|
|
16
|
+
export type { JsonPath, JsonProp } from './internal/json-path';
|
|
@@ -330,6 +330,20 @@ export const isLiteralUnion = (node: SchemaAST.AST): node is SchemaAST.Union<Sch
|
|
|
330
330
|
return SchemaAST.isUnion(node) && node.types.every(SchemaAST.isLiteral);
|
|
331
331
|
};
|
|
332
332
|
|
|
333
|
+
/**
|
|
334
|
+
* Extracts the literal values from a schema that is a union of literals
|
|
335
|
+
* (e.g. `Schema.Literal('a', 'b')` or `Schema.Union(Schema.Literal('a'), Schema.Literal('b'))`).
|
|
336
|
+
* Returns an empty array if the schema is not a literal union.
|
|
337
|
+
*/
|
|
338
|
+
export const getLiteralValues = <S extends Schema.Schema<any, any, any>>(
|
|
339
|
+
schema: S,
|
|
340
|
+
): ReadonlyArray<Schema.Schema.Type<S>> => {
|
|
341
|
+
if (!isLiteralUnion(schema.ast)) {
|
|
342
|
+
return [];
|
|
343
|
+
}
|
|
344
|
+
return schema.ast.types.map((node) => node.literal as Schema.Schema.Type<S>);
|
|
345
|
+
};
|
|
346
|
+
|
|
333
347
|
/**
|
|
334
348
|
* Determines if the node is an array type.
|
|
335
349
|
*/
|
|
@@ -430,6 +444,18 @@ export const getDiscriminatedType = (
|
|
|
430
444
|
return schema.ast;
|
|
431
445
|
};
|
|
432
446
|
|
|
447
|
+
/**
|
|
448
|
+
* If a property signature is optional (T | undefined), returns the inner non-undefined AST node.
|
|
449
|
+
* Otherwise returns the property signature unchanged, preserving its annotations.
|
|
450
|
+
*/
|
|
451
|
+
export const unwrapOptional = (property: SchemaAST.PropertySignature): SchemaAST.PropertySignature | SchemaAST.AST => {
|
|
452
|
+
if (!property.isOptional || !SchemaAST.isUnion(property.type) || !isOption(property.type)) {
|
|
453
|
+
return property;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
return property.type.types[0];
|
|
457
|
+
};
|
|
458
|
+
|
|
433
459
|
/**
|
|
434
460
|
* Determines if the node is a nested object type.
|
|
435
461
|
*/
|
|
@@ -31,9 +31,13 @@ export const asyncTaskTaggingLayer = () => {
|
|
|
31
31
|
context: (f, fiber) => {
|
|
32
32
|
const maybeParentSpan = Context.getOption(Tracer.ParentSpan)(fiber.currentContext);
|
|
33
33
|
|
|
34
|
-
if (maybeParentSpan._tag === 'None')
|
|
34
|
+
if (maybeParentSpan._tag === 'None') {
|
|
35
|
+
return oldTracer.context(f, fiber);
|
|
36
|
+
}
|
|
35
37
|
const parentSpan = maybeParentSpan.value;
|
|
36
|
-
if (parentSpan._tag === 'ExternalSpan')
|
|
38
|
+
if (parentSpan._tag === 'ExternalSpan') {
|
|
39
|
+
return oldTracer.context(f, fiber);
|
|
40
|
+
}
|
|
37
41
|
const span = parentSpan;
|
|
38
42
|
if (runInTask in span && typeof span[runInTask] === 'function') {
|
|
39
43
|
return span[runInTask](() => oldTracer.context(f, fiber));
|
|
@@ -144,9 +144,9 @@ export const causeToError = (cause: Cause.Cause<any>): Error => {
|
|
|
144
144
|
|
|
145
145
|
const getStackFrames = (): string[] => {
|
|
146
146
|
// Bun requies the target object for `captureStackTrace` to be an Error.
|
|
147
|
-
const
|
|
148
|
-
Error.captureStackTrace(
|
|
149
|
-
return
|
|
147
|
+
const err = new Error();
|
|
148
|
+
Error.captureStackTrace(err, causeToError);
|
|
149
|
+
return err.stack!.split('\n').slice(1);
|
|
150
150
|
};
|
|
151
151
|
|
|
152
152
|
const stackFrames = getStackFrames();
|
|
@@ -200,6 +200,9 @@ export const runAndForwardErrors = async <A, E>(
|
|
|
200
200
|
return unwrapExit(exit);
|
|
201
201
|
};
|
|
202
202
|
|
|
203
|
+
/** Alias for {@link runAndForwardErrors} — preferred name when accessed via `EffectEx.runPromise`. */
|
|
204
|
+
export const runPromise = runAndForwardErrors;
|
|
205
|
+
|
|
203
206
|
/**
|
|
204
207
|
* Runs the embedded effect asynchronously and throws any failures and defects as errors.
|
|
205
208
|
*/
|
package/src/interrupt.test.ts
CHANGED
|
@@ -7,7 +7,7 @@ import * as Cause from 'effect/Cause';
|
|
|
7
7
|
import * as Effect from 'effect/Effect';
|
|
8
8
|
import * as Fiber from 'effect/Fiber';
|
|
9
9
|
|
|
10
|
-
import { runAndForwardErrors } from './errors';
|
|
10
|
+
import { runAndForwardErrors } from './internal/errors';
|
|
11
11
|
|
|
12
12
|
const doWork = Effect.fn('doWork')(function* () {
|
|
13
13
|
yield* Effect.sleep('1 minute');
|
package/src/json-path.test.ts
CHANGED
|
@@ -4,7 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
import { describe, expect, test } from 'vitest';
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
type JsonPath,
|
|
9
|
+
createJsonPath,
|
|
10
|
+
getField,
|
|
11
|
+
getValue,
|
|
12
|
+
isJsonPath,
|
|
13
|
+
setValue,
|
|
14
|
+
splitJsonPath,
|
|
15
|
+
} from './internal/json-path';
|
|
8
16
|
|
|
9
17
|
describe('createJsonPath', () => {
|
|
10
18
|
test('supported path subset', () => {
|
package/src/layers.test.ts
CHANGED
|
@@ -10,7 +10,7 @@ import * as Layer from 'effect/Layer';
|
|
|
10
10
|
import * as ManagedRuntime from 'effect/ManagedRuntime';
|
|
11
11
|
import { test } from 'vitest';
|
|
12
12
|
|
|
13
|
-
import { runAndForwardErrors } from './errors';
|
|
13
|
+
import { runAndForwardErrors } from './internal/errors';
|
|
14
14
|
|
|
15
15
|
class ClientConfig extends Context.Tag('ClientConfig')<ClientConfig, { endpoint: string }>() {}
|
|
16
16
|
|
package/src/resource.test.ts
CHANGED
package/src/sanity.test.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { describe, test } from 'vitest';
|
|
|
8
8
|
|
|
9
9
|
import { log } from '@dxos/log';
|
|
10
10
|
|
|
11
|
-
import { runAndForwardErrors } from './errors';
|
|
11
|
+
import { runAndForwardErrors } from './internal/errors';
|
|
12
12
|
|
|
13
13
|
describe('sanity tests', () => {
|
|
14
14
|
test('function pipeline', async ({ expect }) => {
|
package/src/testing.ts
CHANGED
|
@@ -6,12 +6,6 @@ import * as Context from 'effect/Context';
|
|
|
6
6
|
import * as Effect from 'effect/Effect';
|
|
7
7
|
import type { TestContext } from 'vitest';
|
|
8
8
|
|
|
9
|
-
// TODO(dmaretskyi): Add all different test tags here.
|
|
10
|
-
export type TestTag =
|
|
11
|
-
| 'flaky' // Flaky tests.
|
|
12
|
-
| 'llm' // Tests with AI.
|
|
13
|
-
| 'sync'; // Sync with external services.
|
|
14
|
-
|
|
15
9
|
export namespace TestHelpers {
|
|
16
10
|
/**
|
|
17
11
|
* Skip the test if the condition is false.
|
|
@@ -23,7 +17,7 @@ export namespace TestHelpers {
|
|
|
23
17
|
* Effect.fn(function* ({ expect }) {
|
|
24
18
|
* // ...
|
|
25
19
|
* }),
|
|
26
|
-
* TestHelpers.runIf(process.env.
|
|
20
|
+
* TestHelpers.runIf(process.env.DX_ANTHROPIC_API_KEY),
|
|
27
21
|
* );
|
|
28
22
|
* ```
|
|
29
23
|
*/
|
|
@@ -48,7 +42,7 @@ export namespace TestHelpers {
|
|
|
48
42
|
* Effect.fn(function* ({ expect }) {
|
|
49
43
|
* // ...
|
|
50
44
|
* }),
|
|
51
|
-
* TestHelpers.skipIf(!process.env.
|
|
45
|
+
* TestHelpers.skipIf(!process.env.DX_ANTHROPIC_API_KEY),
|
|
52
46
|
* );
|
|
53
47
|
* ```
|
|
54
48
|
*/
|
|
@@ -63,26 +57,6 @@ export namespace TestHelpers {
|
|
|
63
57
|
}
|
|
64
58
|
});
|
|
65
59
|
|
|
66
|
-
export const tagEnabled = (tag: TestTag) => process.env.DX_TEST_TAGS?.includes(tag);
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Skips this test if the tag is not in the list of tags to run.
|
|
70
|
-
* Tags are specified in the `DX_TEST_TAGS` environment variable.
|
|
71
|
-
*
|
|
72
|
-
* @param tag
|
|
73
|
-
* @returns
|
|
74
|
-
*/
|
|
75
|
-
export const taggedTest =
|
|
76
|
-
(tag: TestTag) =>
|
|
77
|
-
<A, E, R>(effect: Effect.Effect<A, E, R>, ctx: TestContext): Effect.Effect<A, E, R> =>
|
|
78
|
-
Effect.gen(function* () {
|
|
79
|
-
if (!tagEnabled(tag)) {
|
|
80
|
-
ctx.skip();
|
|
81
|
-
} else {
|
|
82
|
-
return yield* effect;
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
|
|
86
60
|
/**
|
|
87
61
|
* Provide TestContext from test parameters.
|
|
88
62
|
*
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2026 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Flat intersection of up to five types. Behaves like `A & B & C & ...` but
|
|
7
|
+
* formats as a comma-separated tuple, which fits multi-line layouts more
|
|
8
|
+
* cleanly than chained `&` operators. Unused slots default to `unknown`,
|
|
9
|
+
* which is inert under intersection (`T & unknown = T`).
|
|
10
|
+
*/
|
|
11
|
+
export type Merge<A, B = unknown, C = unknown, D = unknown, E = unknown> = A & B & C & D & E;
|
package/src/url.test.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import * as Schema from 'effect/Schema';
|
|
6
6
|
import { describe, expect, test } from 'vitest';
|
|
7
7
|
|
|
8
|
-
import { ParamKeyAnnotation, UrlParser } from './url';
|
|
8
|
+
import { ParamKeyAnnotation, UrlParser } from './internal/url';
|
|
9
9
|
|
|
10
10
|
const Invitation = Schema.Struct({
|
|
11
11
|
accessToken: Schema.String,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../src/ast.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"async-task-tagging.d.ts","sourceRoot":"","sources":["../../../src/async-task-tagging.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAMtC;;GAEG;AACH,eAAO,MAAM,qBAAqB,wCA8BjC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,eAAO,MAAM,gBAAgB,QAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAKzE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|