structured-outputs 0.1.0-beta.20 → 0.1.0-beta.22
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +46 -40
- package/esm/ResponseFormat.d.ts +21 -0
- package/esm/ResponseFormat.d.ts.map +1 -0
- package/esm/ResponseFormat.js +43 -19
- package/esm/ResponseFormat.js.map +1 -1
- package/{types → esm}/Tool.d.ts +1 -0
- package/esm/Tool.d.ts.map +1 -0
- package/esm/Tool.js +1 -0
- package/esm/Tool.js.map +1 -1
- package/esm/oai.d.ts +5 -0
- package/esm/oai.d.ts.map +1 -0
- package/esm/oai.js +2 -0
- package/esm/oai.js.map +1 -0
- package/esm/types/Ref.d.ts.map +1 -0
- package/esm/types/Ref.js +6 -3
- package/esm/types/Ref.js.map +1 -1
- package/esm/types/RootTy.d.ts +8 -0
- package/esm/types/RootTy.d.ts.map +1 -0
- package/esm/types/RootTy.js +5 -7
- package/esm/types/RootTy.js.map +1 -1
- package/esm/types/Ty.d.ts +23 -0
- package/esm/types/Ty.d.ts.map +1 -0
- package/esm/types/Ty.js +5 -9
- package/esm/types/Ty.js.map +1 -1
- package/{types → esm}/types/array.d.ts +1 -1
- package/{types → esm}/types/array.d.ts.map +1 -1
- package/esm/types/array.js +1 -2
- package/esm/types/array.js.map +1 -1
- package/{types → esm}/types/constant.d.ts.map +1 -1
- package/esm/types/constant.js +1 -2
- package/esm/types/constant.js.map +1 -1
- package/{types → esm}/types/constantUnion.d.ts.map +1 -1
- package/esm/types/constantUnion.js +16 -19
- package/esm/types/constantUnion.js.map +1 -1
- package/{types → esm}/types/mod.d.ts +3 -3
- package/esm/types/mod.d.ts.map +1 -0
- package/esm/types/mod.js +3 -3
- package/esm/types/mod.js.map +1 -1
- package/{types → esm}/types/object.d.ts +2 -2
- package/{types → esm}/types/object.d.ts.map +1 -1
- package/esm/types/object.js +1 -2
- package/esm/types/object.js.map +1 -1
- package/{types/types/leaves.d.ts → esm/types/primitives.d.ts} +1 -1
- package/esm/types/primitives.d.ts.map +1 -0
- package/esm/types/primitives.js +14 -0
- package/esm/types/primitives.js.map +1 -0
- package/esm/types/std/Option.js +1 -1
- package/esm/types/std/Option.js.map +1 -1
- package/{types → esm}/types/std/Wrapper.d.ts +0 -1
- package/esm/types/std/Wrapper.d.ts.map +1 -0
- package/esm/types/std/Wrapper.js.map +1 -1
- package/{types → esm}/types/taggedUnion.d.ts +2 -2
- package/{types → esm}/types/taggedUnion.d.ts.map +1 -1
- package/esm/types/taggedUnion.js +1 -2
- package/esm/types/taggedUnion.js.map +1 -1
- package/package.json +6 -11
- package/src/ResponseFormat.ts +48 -41
- package/src/Tool.ts +1 -0
- package/src/oai.ts +5 -0
- package/src/types/Ref.ts +7 -4
- package/src/types/RootTy.ts +11 -13
- package/src/types/Ty.ts +23 -30
- package/src/types/array.ts +2 -3
- package/src/types/constant.ts +1 -2
- package/src/types/constantUnion.ts +16 -19
- package/src/types/mod.ts +3 -3
- package/src/types/object.ts +4 -6
- package/src/types/primitives.ts +17 -0
- package/src/types/std/Option.ts +1 -1
- package/src/types/std/Wrapper.ts +0 -2
- package/src/types/taggedUnion.ts +3 -4
- package/esm/_dnt.shims.js +0 -58
- package/esm/_dnt.shims.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/almost_equals.js +0 -47
- package/esm/deps/jsr.io/@std/assert/1.0.8/almost_equals.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/array_includes.js +0 -47
- package/esm/deps/jsr.io/@std/assert/1.0.8/array_includes.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/assert.js +0 -23
- package/esm/deps/jsr.io/@std/assert/1.0.8/assert.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/assertion_error.js +0 -31
- package/esm/deps/jsr.io/@std/assert/1.0.8/assertion_error.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/equal.js +0 -184
- package/esm/deps/jsr.io/@std/assert/1.0.8/equal.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/equals.js +0 -46
- package/esm/deps/jsr.io/@std/assert/1.0.8/equals.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/exists.js +0 -28
- package/esm/deps/jsr.io/@std/assert/1.0.8/exists.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/fail.js +0 -21
- package/esm/deps/jsr.io/@std/assert/1.0.8/fail.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/false.js +0 -23
- package/esm/deps/jsr.io/@std/assert/1.0.8/false.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/greater.js +0 -30
- package/esm/deps/jsr.io/@std/assert/1.0.8/greater.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.js +0 -30
- package/esm/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/instance_of.js +0 -53
- package/esm/deps/jsr.io/@std/assert/1.0.8/instance_of.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/is_error.js +0 -54
- package/esm/deps/jsr.io/@std/assert/1.0.8/is_error.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/less.js +0 -29
- package/esm/deps/jsr.io/@std/assert/1.0.8/less.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/less_or_equal.js +0 -30
- package/esm/deps/jsr.io/@std/assert/1.0.8/less_or_equal.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/match.js +0 -27
- package/esm/deps/jsr.io/@std/assert/1.0.8/match.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/mod.js +0 -46
- package/esm/deps/jsr.io/@std/assert/1.0.8/mod.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_equals.js +0 -33
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_equals.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_instance_of.js +0 -30
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_instance_of.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_match.js +0 -27
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_match.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.js +0 -33
- package/esm/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/object_match.js +0 -160
- package/esm/deps/jsr.io/@std/assert/1.0.8/object_match.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/rejects.js +0 -54
- package/esm/deps/jsr.io/@std/assert/1.0.8/rejects.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/strict_equals.js +0 -58
- package/esm/deps/jsr.io/@std/assert/1.0.8/strict_equals.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/string_includes.js +0 -27
- package/esm/deps/jsr.io/@std/assert/1.0.8/string_includes.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/throws.js +0 -45
- package/esm/deps/jsr.io/@std/assert/1.0.8/throws.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/unimplemented.js +0 -21
- package/esm/deps/jsr.io/@std/assert/1.0.8/unimplemented.js.map +0 -1
- package/esm/deps/jsr.io/@std/assert/1.0.8/unreachable.js +0 -21
- package/esm/deps/jsr.io/@std/assert/1.0.8/unreachable.js.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.js +0 -111
- package/esm/deps/jsr.io/@std/internal/1.0.5/build_message.js.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/diff.js +0 -277
- package/esm/deps/jsr.io/@std/internal/1.0.5/diff.js.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.js +0 -180
- package/esm/deps/jsr.io/@std/internal/1.0.5/diff_str.js.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/format.js +0 -38
- package/esm/deps/jsr.io/@std/internal/1.0.5/format.js.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/styles.js +0 -208
- package/esm/deps/jsr.io/@std/internal/1.0.5/styles.js.map +0 -1
- package/esm/deps/jsr.io/@std/internal/1.0.5/types.js +0 -3
- package/esm/deps/jsr.io/@std/internal/1.0.5/types.js.map +0 -1
- package/esm/types/leaves.js +0 -18
- package/esm/types/leaves.js.map +0 -1
- package/src/_dnt.shims.ts +0 -60
- package/src/deps/jsr.io/@std/assert/1.0.8/almost_equals.ts +0 -55
- package/src/deps/jsr.io/@std/assert/1.0.8/array_includes.ts +0 -57
- package/src/deps/jsr.io/@std/assert/1.0.8/assert.ts +0 -23
- package/src/deps/jsr.io/@std/assert/1.0.8/assertion_error.ts +0 -31
- package/src/deps/jsr.io/@std/assert/1.0.8/equal.ts +0 -210
- package/src/deps/jsr.io/@std/assert/1.0.8/equals.ts +0 -52
- package/src/deps/jsr.io/@std/assert/1.0.8/exists.ts +0 -31
- package/src/deps/jsr.io/@std/assert/1.0.8/fail.ts +0 -21
- package/src/deps/jsr.io/@std/assert/1.0.8/false.ts +0 -26
- package/src/deps/jsr.io/@std/assert/1.0.8/greater.ts +0 -30
- package/src/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.ts +0 -36
- package/src/deps/jsr.io/@std/assert/1.0.8/instance_of.ts +0 -64
- package/src/deps/jsr.io/@std/assert/1.0.8/is_error.ts +0 -65
- package/src/deps/jsr.io/@std/assert/1.0.8/less.ts +0 -29
- package/src/deps/jsr.io/@std/assert/1.0.8/less_or_equal.ts +0 -36
- package/src/deps/jsr.io/@std/assert/1.0.8/match.ts +0 -30
- package/src/deps/jsr.io/@std/assert/1.0.8/mod.ts +0 -47
- package/src/deps/jsr.io/@std/assert/1.0.8/not_equals.ts +0 -36
- package/src/deps/jsr.io/@std/assert/1.0.8/not_instance_of.ts +0 -33
- package/src/deps/jsr.io/@std/assert/1.0.8/not_match.ts +0 -30
- package/src/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.ts +0 -42
- package/src/deps/jsr.io/@std/assert/1.0.8/object_match.ts +0 -202
- package/src/deps/jsr.io/@std/assert/1.0.8/rejects.ts +0 -123
- package/src/deps/jsr.io/@std/assert/1.0.8/strict_equals.ts +0 -67
- package/src/deps/jsr.io/@std/assert/1.0.8/string_includes.ts +0 -30
- package/src/deps/jsr.io/@std/assert/1.0.8/throws.ts +0 -111
- package/src/deps/jsr.io/@std/assert/1.0.8/unimplemented.ts +0 -21
- package/src/deps/jsr.io/@std/assert/1.0.8/unreachable.ts +0 -21
- package/src/deps/jsr.io/@std/internal/1.0.5/build_message.ts +0 -134
- package/src/deps/jsr.io/@std/internal/1.0.5/diff.ts +0 -317
- package/src/deps/jsr.io/@std/internal/1.0.5/diff_str.ts +0 -204
- package/src/deps/jsr.io/@std/internal/1.0.5/format.ts +0 -39
- package/src/deps/jsr.io/@std/internal/1.0.5/styles.ts +0 -233
- package/src/deps/jsr.io/@std/internal/1.0.5/types.ts +0 -18
- package/src/types/leaves.ts +0 -21
- package/types/ResponseFormat.d.ts +0 -26
- package/types/ResponseFormat.d.ts.map +0 -1
- package/types/Tool.d.ts.map +0 -1
- package/types/_dnt.shims.d.ts +0 -2
- package/types/_dnt.shims.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/almost_equals.d.ts +0 -29
- package/types/deps/jsr.io/@std/assert/1.0.8/almost_equals.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/array_includes.d.ts +0 -24
- package/types/deps/jsr.io/@std/assert/1.0.8/array_includes.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/assert.d.ts +0 -16
- package/types/deps/jsr.io/@std/assert/1.0.8/assert.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/assertion_error.d.ts +0 -26
- package/types/deps/jsr.io/@std/assert/1.0.8/assertion_error.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/equal.d.ts +0 -17
- package/types/deps/jsr.io/@std/assert/1.0.8/equal.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/equals.d.ts +0 -22
- package/types/deps/jsr.io/@std/assert/1.0.8/equals.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/exists.d.ts +0 -18
- package/types/deps/jsr.io/@std/assert/1.0.8/exists.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/fail.d.ts +0 -15
- package/types/deps/jsr.io/@std/assert/1.0.8/fail.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/false.d.ts +0 -18
- package/types/deps/jsr.io/@std/assert/1.0.8/false.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/greater.d.ts +0 -20
- package/types/deps/jsr.io/@std/assert/1.0.8/greater.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.d.ts +0 -20
- package/types/deps/jsr.io/@std/assert/1.0.8/greater_or_equal.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/instance_of.d.ts +0 -23
- package/types/deps/jsr.io/@std/assert/1.0.8/instance_of.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/is_error.d.ts +0 -25
- package/types/deps/jsr.io/@std/assert/1.0.8/is_error.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/less.d.ts +0 -19
- package/types/deps/jsr.io/@std/assert/1.0.8/less.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/less_or_equal.d.ts +0 -20
- package/types/deps/jsr.io/@std/assert/1.0.8/less_or_equal.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/match.d.ts +0 -18
- package/types/deps/jsr.io/@std/assert/1.0.8/match.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/mod.d.ts +0 -44
- package/types/deps/jsr.io/@std/assert/1.0.8/mod.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/not_equals.d.ts +0 -21
- package/types/deps/jsr.io/@std/assert/1.0.8/not_equals.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/not_instance_of.d.ts +0 -20
- package/types/deps/jsr.io/@std/assert/1.0.8/not_instance_of.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/not_match.d.ts +0 -18
- package/types/deps/jsr.io/@std/assert/1.0.8/not_match.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.d.ts +0 -23
- package/types/deps/jsr.io/@std/assert/1.0.8/not_strict_equals.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/object_match.d.ts +0 -28
- package/types/deps/jsr.io/@std/assert/1.0.8/object_match.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/rejects.d.ts +0 -42
- package/types/deps/jsr.io/@std/assert/1.0.8/rejects.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/strict_equals.d.ts +0 -24
- package/types/deps/jsr.io/@std/assert/1.0.8/strict_equals.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/string_includes.d.ts +0 -18
- package/types/deps/jsr.io/@std/assert/1.0.8/string_includes.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/throws.d.ts +0 -45
- package/types/deps/jsr.io/@std/assert/1.0.8/throws.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/unimplemented.d.ts +0 -15
- package/types/deps/jsr.io/@std/assert/1.0.8/unimplemented.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/assert/1.0.8/unreachable.d.ts +0 -15
- package/types/deps/jsr.io/@std/assert/1.0.8/unreachable.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts +0 -82
- package/types/deps/jsr.io/@std/internal/1.0.5/build_message.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/internal/1.0.5/diff.d.ts +0 -140
- package/types/deps/jsr.io/@std/internal/1.0.5/diff.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts +0 -99
- package/types/deps/jsr.io/@std/internal/1.0.5/diff_str.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/internal/1.0.5/format.d.ts +0 -2
- package/types/deps/jsr.io/@std/internal/1.0.5/format.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/internal/1.0.5/styles.d.ts +0 -159
- package/types/deps/jsr.io/@std/internal/1.0.5/styles.d.ts.map +0 -1
- package/types/deps/jsr.io/@std/internal/1.0.5/types.d.ts +0 -16
- package/types/deps/jsr.io/@std/internal/1.0.5/types.d.ts.map +0 -1
- package/types/types/Ref.d.ts.map +0 -1
- package/types/types/RootTy.d.ts +0 -8
- package/types/types/RootTy.d.ts.map +0 -1
- package/types/types/Ty.d.ts +0 -27
- package/types/types/Ty.d.ts.map +0 -1
- package/types/types/leaves.d.ts.map +0 -1
- package/types/types/mod.d.ts.map +0 -1
- package/types/types/std/Wrapper.d.ts.map +0 -1
- /package/{types → esm}/_dnt.polyfills.d.ts +0 -0
- /package/{types → esm}/_dnt.polyfills.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/_utils.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/_utils.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/aggregate_groups.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/associate_by.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/associate_by.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/associate_with.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/associate_with.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/chunk.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/chunk.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/deep_merge.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/deep_merge.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/distinct.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/distinct.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/distinct_by.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/distinct_by.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/drop_last_while.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/drop_last_while.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/drop_while.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/drop_while.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/filter_entries.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/filter_entries.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/filter_keys.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/filter_keys.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/filter_values.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/filter_values.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/find_single.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/find_single.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/first_not_nullish_of.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/includes_value.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/includes_value.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/intersect.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/intersect.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/invert.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/invert.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/invert_by.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/invert_by.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/join_to_string.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/join_to_string.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/map_entries.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/map_entries.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/map_keys.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/map_keys.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/map_not_nullish.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/map_values.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/map_values.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/max_by.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/max_by.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/max_of.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/max_of.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/max_with.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/max_with.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/min_by.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/min_by.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/min_of.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/min_of.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/min_with.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/min_with.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/mod.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/mod.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/omit.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/omit.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/partition.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/partition.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/partition_entries.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/partition_entries.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/permutations.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/permutations.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/pick.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/pick.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/reduce_groups.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/reduce_groups.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/running_reduce.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/running_reduce.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/sample.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/sample.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/sliding_windows.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/sliding_windows.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/sort_by.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/sort_by.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/sum_of.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/sum_of.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/take_last_while.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/take_last_while.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/take_while.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/take_while.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/union.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/union.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/unzip.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/unzip.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/without_all.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/without_all.d.ts.map +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/zip.d.ts +0 -0
- /package/{types → esm}/deps/jsr.io/@std/collections/1.0.9/zip.d.ts.map +0 -0
- /package/{types → esm}/mod.d.ts +0 -0
- /package/{types → esm}/mod.d.ts.map +0 -0
- /package/{types → esm}/types/Ref.d.ts +0 -0
- /package/{types → esm}/types/constant.d.ts +0 -0
- /package/{types → esm}/types/constantUnion.d.ts +0 -0
- /package/{types → esm}/types/std/Option.d.ts +0 -0
- /package/{types → esm}/types/std/Option.d.ts.map +0 -0
- /package/{types → esm}/types/std/mod.d.ts +0 -0
- /package/{types → esm}/types/std/mod.d.ts.map +0 -0
- /package/{types → esm}/util/phantoms.d.ts +0 -0
- /package/{types → esm}/util/phantoms.d.ts.map +0 -0
- /package/{types → esm}/util/recombineTaggedTemplateArgs.d.ts +0 -0
- /package/{types → esm}/util/recombineTaggedTemplateArgs.d.ts.map +0 -0
@@ -1,47 +0,0 @@
|
|
1
|
-
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
-
// This module is browser compatible.
|
3
|
-
|
4
|
-
/** A library of assertion functions.
|
5
|
-
* If the assertion is false an `AssertionError` will be thrown which will
|
6
|
-
* result in pretty-printed diff of failing assertion.
|
7
|
-
*
|
8
|
-
* This module is browser compatible, but do not rely on good formatting of
|
9
|
-
* values for AssertionError messages in browsers.
|
10
|
-
*
|
11
|
-
* ```ts ignore
|
12
|
-
* import { assert } from "@std/assert";
|
13
|
-
*
|
14
|
-
* assert("I am truthy"); // Doesn't throw
|
15
|
-
* assert(false); // Throws `AssertionError`
|
16
|
-
* ```
|
17
|
-
*
|
18
|
-
* @module
|
19
|
-
*/
|
20
|
-
|
21
|
-
export * from "./almost_equals.js";
|
22
|
-
export * from "./array_includes.js";
|
23
|
-
export * from "./equals.js";
|
24
|
-
export * from "./exists.js";
|
25
|
-
export * from "./false.js";
|
26
|
-
export * from "./greater_or_equal.js";
|
27
|
-
export * from "./greater.js";
|
28
|
-
export * from "./instance_of.js";
|
29
|
-
export * from "./is_error.js";
|
30
|
-
export * from "./less_or_equal.js";
|
31
|
-
export * from "./less.js";
|
32
|
-
export * from "./match.js";
|
33
|
-
export * from "./not_equals.js";
|
34
|
-
export * from "./not_instance_of.js";
|
35
|
-
export * from "./not_match.js";
|
36
|
-
export * from "./not_strict_equals.js";
|
37
|
-
export * from "./object_match.js";
|
38
|
-
export * from "./rejects.js";
|
39
|
-
export * from "./strict_equals.js";
|
40
|
-
export * from "./string_includes.js";
|
41
|
-
export * from "./throws.js";
|
42
|
-
export * from "./assert.js";
|
43
|
-
export * from "./assertion_error.js";
|
44
|
-
export * from "./equal.js";
|
45
|
-
export * from "./fail.js";
|
46
|
-
export * from "./unimplemented.js";
|
47
|
-
export * from "./unreachable.js";
|
@@ -1,36 +0,0 @@
|
|
1
|
-
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
-
// This module is browser compatible.
|
3
|
-
|
4
|
-
import { equal } from "./equal.js";
|
5
|
-
import { AssertionError } from "./assertion_error.js";
|
6
|
-
|
7
|
-
/**
|
8
|
-
* Make an assertion that `actual` and `expected` are not equal, deeply.
|
9
|
-
* If not then throw.
|
10
|
-
*
|
11
|
-
* Type parameter can be specified to ensure values under comparison have the same type.
|
12
|
-
*
|
13
|
-
* @example Usage
|
14
|
-
* ```ts ignore
|
15
|
-
* import { assertNotEquals } from "@std/assert";
|
16
|
-
*
|
17
|
-
* assertNotEquals(1, 2); // Doesn't throw
|
18
|
-
* assertNotEquals(1, 1); // Throws
|
19
|
-
* ```
|
20
|
-
*
|
21
|
-
* @typeParam T The type of the values to compare.
|
22
|
-
* @param actual The actual value to compare.
|
23
|
-
* @param expected The expected value to compare.
|
24
|
-
* @param msg The optional message to display if the assertion fails.
|
25
|
-
*/
|
26
|
-
export function assertNotEquals<T>(actual: T, expected: T, msg?: string) {
|
27
|
-
if (!equal(actual, expected)) {
|
28
|
-
return;
|
29
|
-
}
|
30
|
-
const actualString = String(actual);
|
31
|
-
const expectedString = String(expected);
|
32
|
-
const msgSuffix = msg ? `: ${msg}` : ".";
|
33
|
-
throw new AssertionError(
|
34
|
-
`Expected actual: ${actualString} not to be: ${expectedString}${msgSuffix}`,
|
35
|
-
);
|
36
|
-
}
|
@@ -1,33 +0,0 @@
|
|
1
|
-
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
-
// This module is browser compatible.
|
3
|
-
import { assertFalse } from "./false.js";
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Make an assertion that `obj` is not an instance of `type`.
|
7
|
-
* If so, then throw.
|
8
|
-
*
|
9
|
-
* @example Usage
|
10
|
-
* ```ts ignore
|
11
|
-
* import { assertNotInstanceOf } from "@std/assert";
|
12
|
-
*
|
13
|
-
* assertNotInstanceOf(new Date(), Number); // Doesn't throw
|
14
|
-
* assertNotInstanceOf(new Date(), Date); // Throws
|
15
|
-
* ```
|
16
|
-
*
|
17
|
-
* @typeParam A The type of the object to check.
|
18
|
-
* @typeParam T The type of the class to check against.
|
19
|
-
* @param actual The object to check.
|
20
|
-
* @param unexpectedType The class constructor to check against.
|
21
|
-
* @param msg The optional message to display if the assertion fails.
|
22
|
-
*/
|
23
|
-
export function assertNotInstanceOf<A, T>(
|
24
|
-
actual: A,
|
25
|
-
// deno-lint-ignore no-explicit-any
|
26
|
-
unexpectedType: abstract new (...args: any[]) => T,
|
27
|
-
msg?: string,
|
28
|
-
): asserts actual is Exclude<A, T> {
|
29
|
-
const msgSuffix = msg ? `: ${msg}` : ".";
|
30
|
-
msg =
|
31
|
-
`Expected object to not be an instance of "${typeof unexpectedType}"${msgSuffix}`;
|
32
|
-
assertFalse(actual instanceof unexpectedType, msg);
|
33
|
-
}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
-
// This module is browser compatible.
|
3
|
-
import { AssertionError } from "./assertion_error.js";
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Make an assertion that `actual` not match RegExp `expected`. If match
|
7
|
-
* then throw.
|
8
|
-
*
|
9
|
-
* @example Usage
|
10
|
-
* ```ts ignore
|
11
|
-
* import { assertNotMatch } from "@std/assert";
|
12
|
-
*
|
13
|
-
* assertNotMatch("Denosaurus", /Raptor/); // Doesn't throw
|
14
|
-
* assertNotMatch("Raptor", /Raptor/); // Throws
|
15
|
-
* ```
|
16
|
-
*
|
17
|
-
* @param actual The actual value to match.
|
18
|
-
* @param expected The expected value to not match.
|
19
|
-
* @param msg The optional message to display if the assertion fails.
|
20
|
-
*/
|
21
|
-
export function assertNotMatch(
|
22
|
-
actual: string,
|
23
|
-
expected: RegExp,
|
24
|
-
msg?: string,
|
25
|
-
) {
|
26
|
-
if (!expected.test(actual)) return;
|
27
|
-
const msgSuffix = msg ? `: ${msg}` : ".";
|
28
|
-
msg = `Expected actual: "${actual}" to not match: "${expected}"${msgSuffix}`;
|
29
|
-
throw new AssertionError(msg);
|
30
|
-
}
|
@@ -1,42 +0,0 @@
|
|
1
|
-
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
-
// This module is browser compatible.
|
3
|
-
import { AssertionError } from "./assertion_error.js";
|
4
|
-
import { format } from "../../internal/1.0.5/format.js";
|
5
|
-
|
6
|
-
/**
|
7
|
-
* Make an assertion that `actual` and `expected` are not strictly equal, using
|
8
|
-
* {@linkcode Object.is} for equality comparison. If the values are strictly
|
9
|
-
* equal then throw.
|
10
|
-
*
|
11
|
-
* @example Usage
|
12
|
-
* ```ts ignore
|
13
|
-
* import { assertNotStrictEquals } from "@std/assert";
|
14
|
-
*
|
15
|
-
* assertNotStrictEquals(1, 1); // Throws
|
16
|
-
* assertNotStrictEquals(1, 2); // Doesn't throw
|
17
|
-
*
|
18
|
-
* assertNotStrictEquals(0, 0); // Throws
|
19
|
-
* assertNotStrictEquals(0, -0); // Doesn't throw
|
20
|
-
* ```
|
21
|
-
*
|
22
|
-
* @typeParam T The type of the values to compare.
|
23
|
-
* @param actual The actual value to compare.
|
24
|
-
* @param expected The expected value to compare.
|
25
|
-
* @param msg The optional message to display if the assertion fails.
|
26
|
-
*/
|
27
|
-
export function assertNotStrictEquals<T>(
|
28
|
-
actual: T,
|
29
|
-
expected: T,
|
30
|
-
msg?: string,
|
31
|
-
) {
|
32
|
-
if (!Object.is(actual, expected)) {
|
33
|
-
return;
|
34
|
-
}
|
35
|
-
|
36
|
-
const msgSuffix = msg ? `: ${msg}` : ".";
|
37
|
-
throw new AssertionError(
|
38
|
-
`Expected "actual" to not be strictly equal to: ${
|
39
|
-
format(actual)
|
40
|
-
}${msgSuffix}\n`,
|
41
|
-
);
|
42
|
-
}
|
@@ -1,202 +0,0 @@
|
|
1
|
-
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
-
// This module is browser compatible.
|
3
|
-
import { assertEquals } from "./equals.js";
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Make an assertion that `expected` object is a subset of `actual` object,
|
7
|
-
* deeply. If not, then throw.
|
8
|
-
*
|
9
|
-
* @example Usage
|
10
|
-
* ```ts ignore
|
11
|
-
* import { assertObjectMatch } from "@std/assert";
|
12
|
-
*
|
13
|
-
* assertObjectMatch({ foo: "bar" }, { foo: "bar" }); // Doesn't throw
|
14
|
-
* assertObjectMatch({ foo: "bar" }, { foo: "baz" }); // Throws
|
15
|
-
* assertObjectMatch({ foo: 1, bar: 2 }, { foo: 1 }); // Doesn't throw
|
16
|
-
* assertObjectMatch({ foo: 1 }, { foo: 1, bar: 2 }); // Throws
|
17
|
-
* ```
|
18
|
-
*
|
19
|
-
* @example Usage with nested objects
|
20
|
-
* ```ts ignore
|
21
|
-
* import { assertObjectMatch } from "@std/assert";
|
22
|
-
*
|
23
|
-
* assertObjectMatch({ foo: { bar: 3, baz: 4 } }, { foo: { bar: 3 } }); // Doesn't throw
|
24
|
-
* assertObjectMatch({ foo: { bar: 3 } }, { foo: { bar: 3, baz: 4 } }); // Throws
|
25
|
-
* ```
|
26
|
-
*
|
27
|
-
* @param actual The actual value to be matched.
|
28
|
-
* @param expected The expected value to match.
|
29
|
-
* @param msg The optional message to display if the assertion fails.
|
30
|
-
*/
|
31
|
-
export function assertObjectMatch(
|
32
|
-
// deno-lint-ignore no-explicit-any
|
33
|
-
actual: Record<PropertyKey, any>,
|
34
|
-
expected: Record<PropertyKey, unknown>,
|
35
|
-
msg?: string,
|
36
|
-
): void {
|
37
|
-
return assertEquals(
|
38
|
-
// get the intersection of "actual" and "expected"
|
39
|
-
// side effect: all the instances' constructor field is "Object" now.
|
40
|
-
filter(actual, expected),
|
41
|
-
// set (nested) instances' constructor field to be "Object" without changing expected value.
|
42
|
-
// see https://github.com/denoland/deno_std/pull/1419
|
43
|
-
filter(expected, expected),
|
44
|
-
msg,
|
45
|
-
);
|
46
|
-
}
|
47
|
-
|
48
|
-
type loose = Record<PropertyKey, unknown>;
|
49
|
-
|
50
|
-
function isObject(val: unknown): boolean {
|
51
|
-
return typeof val === "object" && val !== null;
|
52
|
-
}
|
53
|
-
|
54
|
-
function filter(a: loose, b: loose): loose {
|
55
|
-
const seen = new WeakMap();
|
56
|
-
return filterObject(a, b);
|
57
|
-
|
58
|
-
function filterObject(a: loose, b: loose): loose {
|
59
|
-
// Prevent infinite loop with circular references with same filter
|
60
|
-
if ((seen.has(a)) && (seen.get(a) === b)) {
|
61
|
-
return a;
|
62
|
-
}
|
63
|
-
|
64
|
-
try {
|
65
|
-
seen.set(a, b);
|
66
|
-
} catch (err) {
|
67
|
-
if (err instanceof TypeError) {
|
68
|
-
throw new TypeError(
|
69
|
-
`Cannot assertObjectMatch ${a === null ? null : `type ${typeof a}`}`,
|
70
|
-
);
|
71
|
-
}
|
72
|
-
}
|
73
|
-
|
74
|
-
// Filter keys and symbols which are present in both actual and expected
|
75
|
-
const filtered = {} as loose;
|
76
|
-
const keysA = Reflect.ownKeys(a);
|
77
|
-
const keysB = Reflect.ownKeys(b);
|
78
|
-
const entries = keysA.filter((key) => keysB.includes(key))
|
79
|
-
.map((key) => [key, a[key as string]]) as Array<[string, unknown]>;
|
80
|
-
|
81
|
-
if (keysA.length && keysB.length && !entries.length) {
|
82
|
-
// If both objects are not empty but don't have the same keys or symbols,
|
83
|
-
// returns the entries in object a.
|
84
|
-
for (const key of keysA) {
|
85
|
-
filtered[key] = a[key];
|
86
|
-
}
|
87
|
-
|
88
|
-
return filtered;
|
89
|
-
}
|
90
|
-
|
91
|
-
for (const [key, value] of entries) {
|
92
|
-
// On regexp references, keep value as it to avoid loosing pattern and flags
|
93
|
-
if (value instanceof RegExp) {
|
94
|
-
filtered[key] = value;
|
95
|
-
continue;
|
96
|
-
}
|
97
|
-
|
98
|
-
const subset = (b as loose)[key];
|
99
|
-
|
100
|
-
// On array references, build a filtered array and filter nested objects inside
|
101
|
-
if (Array.isArray(value) && Array.isArray(subset)) {
|
102
|
-
filtered[key] = filterArray(value, subset);
|
103
|
-
continue;
|
104
|
-
}
|
105
|
-
|
106
|
-
// On nested objects references, build a filtered object recursively
|
107
|
-
if (isObject(value) && isObject(subset)) {
|
108
|
-
// When both operands are maps, build a filtered map with common keys and filter nested objects inside
|
109
|
-
if ((value instanceof Map) && (subset instanceof Map)) {
|
110
|
-
filtered[key] = new Map(
|
111
|
-
[...value].filter(([k]) => subset.has(k)).map(
|
112
|
-
([k, v]) => {
|
113
|
-
const v2 = subset.get(k);
|
114
|
-
if (isObject(v) && isObject(v2)) {
|
115
|
-
return [k, filterObject(v as loose, v2 as loose)];
|
116
|
-
}
|
117
|
-
|
118
|
-
return [k, v];
|
119
|
-
},
|
120
|
-
),
|
121
|
-
);
|
122
|
-
continue;
|
123
|
-
}
|
124
|
-
|
125
|
-
// When both operands are set, build a filtered set with common values
|
126
|
-
if ((value instanceof Set) && (subset instanceof Set)) {
|
127
|
-
filtered[key] = value.intersection(subset);
|
128
|
-
continue;
|
129
|
-
}
|
130
|
-
|
131
|
-
filtered[key] = filterObject(value as loose, subset as loose);
|
132
|
-
continue;
|
133
|
-
}
|
134
|
-
|
135
|
-
filtered[key] = value;
|
136
|
-
}
|
137
|
-
|
138
|
-
return filtered;
|
139
|
-
}
|
140
|
-
|
141
|
-
function filterArray(a: unknown[], b: unknown[]): unknown[] {
|
142
|
-
// Prevent infinite loop with circular references with same filter
|
143
|
-
if (seen.has(a) && (seen.get(a) === b)) {
|
144
|
-
return a;
|
145
|
-
}
|
146
|
-
|
147
|
-
seen.set(a, b);
|
148
|
-
|
149
|
-
const filtered: unknown[] = [];
|
150
|
-
const count = Math.min(a.length, b.length);
|
151
|
-
|
152
|
-
for (let i = 0; i < count; ++i) {
|
153
|
-
const value = a[i];
|
154
|
-
const subset = b[i];
|
155
|
-
|
156
|
-
// On regexp references, keep value as it to avoid loosing pattern and flags
|
157
|
-
if (value instanceof RegExp) {
|
158
|
-
filtered.push(value);
|
159
|
-
continue;
|
160
|
-
}
|
161
|
-
|
162
|
-
// On array references, build a filtered array and filter nested objects inside
|
163
|
-
if (Array.isArray(value) && Array.isArray(subset)) {
|
164
|
-
filtered.push(filterArray(value, subset));
|
165
|
-
continue;
|
166
|
-
}
|
167
|
-
|
168
|
-
// On nested objects references, build a filtered object recursively
|
169
|
-
if (isObject(value) && isObject(subset)) {
|
170
|
-
// When both operands are maps, build a filtered map with common keys and filter nested objects inside
|
171
|
-
if ((value instanceof Map) && (subset instanceof Map)) {
|
172
|
-
const map = new Map(
|
173
|
-
[...value].filter(([k]) => subset.has(k))
|
174
|
-
.map(([k, v]) => {
|
175
|
-
const v2 = subset.get(k);
|
176
|
-
if (isObject(v) && isObject(v2)) {
|
177
|
-
return [k, filterObject(v as loose, v2 as loose)];
|
178
|
-
}
|
179
|
-
|
180
|
-
return [k, v];
|
181
|
-
}),
|
182
|
-
);
|
183
|
-
filtered.push(map);
|
184
|
-
continue;
|
185
|
-
}
|
186
|
-
|
187
|
-
// When both operands are set, build a filtered set with common values
|
188
|
-
if ((value instanceof Set) && (subset instanceof Set)) {
|
189
|
-
filtered.push(value.intersection(subset));
|
190
|
-
continue;
|
191
|
-
}
|
192
|
-
|
193
|
-
filtered.push(filterObject(value as loose, subset as loose));
|
194
|
-
continue;
|
195
|
-
}
|
196
|
-
|
197
|
-
filtered.push(value);
|
198
|
-
}
|
199
|
-
|
200
|
-
return filtered;
|
201
|
-
}
|
202
|
-
}
|
@@ -1,123 +0,0 @@
|
|
1
|
-
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
-
// This module is browser compatible.
|
3
|
-
import { AssertionError } from "./assertion_error.js";
|
4
|
-
import { assertIsError } from "./is_error.js";
|
5
|
-
|
6
|
-
/**
|
7
|
-
* Executes a function which returns a promise, expecting it to reject.
|
8
|
-
*
|
9
|
-
* To assert that a synchronous function throws, use {@linkcode assertThrows}.
|
10
|
-
*
|
11
|
-
* @example Usage
|
12
|
-
* ```ts ignore
|
13
|
-
* import { assertRejects } from "@std/assert";
|
14
|
-
*
|
15
|
-
* await assertRejects(async () => Promise.reject(new Error())); // Doesn't throw
|
16
|
-
* await assertRejects(async () => console.log("Hello world")); // Throws
|
17
|
-
* ```
|
18
|
-
*
|
19
|
-
* @param fn The function to execute.
|
20
|
-
* @param msg The optional message to display if the assertion fails.
|
21
|
-
* @returns The promise which resolves to the thrown error.
|
22
|
-
*/
|
23
|
-
export function assertRejects(
|
24
|
-
fn: () => PromiseLike<unknown>,
|
25
|
-
msg?: string,
|
26
|
-
): Promise<unknown>;
|
27
|
-
/**
|
28
|
-
* Executes a function which returns a promise, expecting it to reject.
|
29
|
-
* If it does not, then it throws. An error class and a string that should be
|
30
|
-
* included in the error message can also be asserted.
|
31
|
-
*
|
32
|
-
* To assert that a synchronous function throws, use {@linkcode assertThrows}.
|
33
|
-
*
|
34
|
-
* @example Usage
|
35
|
-
* ```ts ignore
|
36
|
-
* import { assertRejects } from "@std/assert";
|
37
|
-
*
|
38
|
-
* await assertRejects(async () => Promise.reject(new Error()), Error); // Doesn't throw
|
39
|
-
* await assertRejects(async () => Promise.reject(new Error()), SyntaxError); // Throws
|
40
|
-
* ```
|
41
|
-
*
|
42
|
-
* @typeParam E The error class to assert.
|
43
|
-
* @param fn The function to execute.
|
44
|
-
* @param ErrorClass The error class to assert.
|
45
|
-
* @param msgIncludes The string that should be included in the error message.
|
46
|
-
* @param msg The optional message to display if the assertion fails.
|
47
|
-
* @returns The promise which resolves to the thrown error.
|
48
|
-
*/
|
49
|
-
export function assertRejects<E extends Error = Error>(
|
50
|
-
fn: () => PromiseLike<unknown>,
|
51
|
-
// deno-lint-ignore no-explicit-any
|
52
|
-
ErrorClass: abstract new (...args: any[]) => E,
|
53
|
-
msgIncludes?: string,
|
54
|
-
msg?: string,
|
55
|
-
): Promise<E>;
|
56
|
-
export async function assertRejects<E extends Error = Error>(
|
57
|
-
fn: () => PromiseLike<unknown>,
|
58
|
-
errorClassOrMsg?:
|
59
|
-
// deno-lint-ignore no-explicit-any
|
60
|
-
| (abstract new (...args: any[]) => E)
|
61
|
-
| string,
|
62
|
-
msgIncludesOrMsg?: string,
|
63
|
-
msg?: string,
|
64
|
-
): Promise<E | Error | unknown> {
|
65
|
-
// deno-lint-ignore no-explicit-any
|
66
|
-
let ErrorClass: (abstract new (...args: any[]) => E) | undefined;
|
67
|
-
let msgIncludes: string | undefined;
|
68
|
-
let err;
|
69
|
-
|
70
|
-
if (typeof errorClassOrMsg !== "string") {
|
71
|
-
if (
|
72
|
-
errorClassOrMsg === undefined ||
|
73
|
-
errorClassOrMsg.prototype instanceof Error ||
|
74
|
-
errorClassOrMsg.prototype === Error.prototype
|
75
|
-
) {
|
76
|
-
ErrorClass = errorClassOrMsg;
|
77
|
-
msgIncludes = msgIncludesOrMsg;
|
78
|
-
}
|
79
|
-
} else {
|
80
|
-
msg = errorClassOrMsg;
|
81
|
-
}
|
82
|
-
let doesThrow = false;
|
83
|
-
let isPromiseReturned = false;
|
84
|
-
const msgSuffix = msg ? `: ${msg}` : ".";
|
85
|
-
try {
|
86
|
-
const possiblePromise = fn();
|
87
|
-
if (
|
88
|
-
possiblePromise &&
|
89
|
-
typeof possiblePromise === "object" &&
|
90
|
-
typeof possiblePromise.then === "function"
|
91
|
-
) {
|
92
|
-
isPromiseReturned = true;
|
93
|
-
await possiblePromise;
|
94
|
-
} else {
|
95
|
-
throw new Error();
|
96
|
-
}
|
97
|
-
} catch (error) {
|
98
|
-
if (!isPromiseReturned) {
|
99
|
-
throw new AssertionError(
|
100
|
-
`Function throws when expected to reject${msgSuffix}`,
|
101
|
-
);
|
102
|
-
}
|
103
|
-
if (ErrorClass) {
|
104
|
-
if (!(error instanceof Error)) {
|
105
|
-
throw new AssertionError(`A non-Error object was rejected${msgSuffix}`);
|
106
|
-
}
|
107
|
-
assertIsError(
|
108
|
-
error,
|
109
|
-
ErrorClass,
|
110
|
-
msgIncludes,
|
111
|
-
msg,
|
112
|
-
);
|
113
|
-
}
|
114
|
-
err = error;
|
115
|
-
doesThrow = true;
|
116
|
-
}
|
117
|
-
if (!doesThrow) {
|
118
|
-
throw new AssertionError(
|
119
|
-
`Expected function to reject${msgSuffix}`,
|
120
|
-
);
|
121
|
-
}
|
122
|
-
return err;
|
123
|
-
}
|
@@ -1,67 +0,0 @@
|
|
1
|
-
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
-
// This module is browser compatible.
|
3
|
-
import { buildMessage } from "../../internal/1.0.5/build_message.js";
|
4
|
-
import { diff } from "../../internal/1.0.5/diff.js";
|
5
|
-
import { diffStr } from "../../internal/1.0.5/diff_str.js";
|
6
|
-
import { format } from "../../internal/1.0.5/format.js";
|
7
|
-
import { red } from "../../internal/1.0.5/styles.js";
|
8
|
-
import { AssertionError } from "./assertion_error.js";
|
9
|
-
|
10
|
-
/**
|
11
|
-
* Make an assertion that `actual` and `expected` are strictly equal, using
|
12
|
-
* {@linkcode Object.is} for equality comparison. If not, then throw.
|
13
|
-
*
|
14
|
-
* @example Usage
|
15
|
-
* ```ts ignore
|
16
|
-
* import { assertStrictEquals } from "@std/assert";
|
17
|
-
*
|
18
|
-
* const a = {};
|
19
|
-
* const b = a;
|
20
|
-
* assertStrictEquals(a, b); // Doesn't throw
|
21
|
-
*
|
22
|
-
* const c = {};
|
23
|
-
* const d = {};
|
24
|
-
* assertStrictEquals(c, d); // Throws
|
25
|
-
* ```
|
26
|
-
*
|
27
|
-
* @typeParam T The type of the expected value.
|
28
|
-
* @param actual The actual value to compare.
|
29
|
-
* @param expected The expected value to compare.
|
30
|
-
* @param msg The optional message to display if the assertion fails.
|
31
|
-
*/
|
32
|
-
export function assertStrictEquals<T>(
|
33
|
-
actual: unknown,
|
34
|
-
expected: T,
|
35
|
-
msg?: string,
|
36
|
-
): asserts actual is T {
|
37
|
-
if (Object.is(actual, expected)) {
|
38
|
-
return;
|
39
|
-
}
|
40
|
-
|
41
|
-
const msgSuffix = msg ? `: ${msg}` : ".";
|
42
|
-
let message: string;
|
43
|
-
|
44
|
-
const actualString = format(actual);
|
45
|
-
const expectedString = format(expected);
|
46
|
-
|
47
|
-
if (actualString === expectedString) {
|
48
|
-
const withOffset = actualString
|
49
|
-
.split("\n")
|
50
|
-
.map((l) => ` ${l}`)
|
51
|
-
.join("\n");
|
52
|
-
message =
|
53
|
-
`Values have the same structure but are not reference-equal${msgSuffix}\n\n${
|
54
|
-
red(withOffset)
|
55
|
-
}\n`;
|
56
|
-
} else {
|
57
|
-
const stringDiff = (typeof actual === "string") &&
|
58
|
-
(typeof expected === "string");
|
59
|
-
const diffResult = stringDiff
|
60
|
-
? diffStr(actual as string, expected as string)
|
61
|
-
: diff(actualString.split("\n"), expectedString.split("\n"));
|
62
|
-
const diffMsg = buildMessage(diffResult, { stringDiff }).join("\n");
|
63
|
-
message = `Values are not strictly equal${msgSuffix}\n${diffMsg}`;
|
64
|
-
}
|
65
|
-
|
66
|
-
throw new AssertionError(message);
|
67
|
-
}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2
|
-
// This module is browser compatible.
|
3
|
-
import { AssertionError } from "./assertion_error.js";
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Make an assertion that actual includes expected. If not
|
7
|
-
* then throw.
|
8
|
-
*
|
9
|
-
* @example Usage
|
10
|
-
* ```ts ignore
|
11
|
-
* import { assertStringIncludes } from "@std/assert";
|
12
|
-
*
|
13
|
-
* assertStringIncludes("Hello", "ello"); // Doesn't throw
|
14
|
-
* assertStringIncludes("Hello", "world"); // Throws
|
15
|
-
* ```
|
16
|
-
*
|
17
|
-
* @param actual The actual string to check for inclusion.
|
18
|
-
* @param expected The expected string to check for inclusion.
|
19
|
-
* @param msg The optional message to display if the assertion fails.
|
20
|
-
*/
|
21
|
-
export function assertStringIncludes(
|
22
|
-
actual: string,
|
23
|
-
expected: string,
|
24
|
-
msg?: string,
|
25
|
-
) {
|
26
|
-
if (actual.includes(expected)) return;
|
27
|
-
const msgSuffix = msg ? `: ${msg}` : ".";
|
28
|
-
msg = `Expected actual: "${actual}" to contain: "${expected}"${msgSuffix}`;
|
29
|
-
throw new AssertionError(msg);
|
30
|
-
}
|