effect 4.0.0-beta.4 → 4.0.0-beta.6
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/dist/Cause.d.ts +1 -1
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +6 -4
- package/dist/Channel.js.map +1 -1
- package/dist/Config.d.ts +1 -1
- package/dist/Data.d.ts +3 -2
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +9 -8
- package/dist/Data.js.map +1 -1
- package/dist/Effect.d.ts +0 -226
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +0 -118
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.js.map +1 -1
- package/dist/FileSystem.d.ts +1 -1
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +5 -5
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +30 -1
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -0
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.js +1 -1
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +2 -2
- package/dist/Graph.js.map +1 -1
- package/dist/Latch.d.ts +109 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +72 -0
- package/dist/Latch.js.map +1 -0
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +8 -7
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +2 -2
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +5 -3
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +6 -4
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +3 -2
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -2
- package/dist/PubSub.js.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +0 -20
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +0 -20
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Schedule.d.ts +2 -2
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +30 -16
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +192 -42
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +385 -71
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaGetter.d.ts +2 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +12 -14
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +44 -43
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +5 -2
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +37 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +80 -0
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Semaphore.d.ts +211 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
- package/dist/Semaphore.js.map +1 -0
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +9 -8
- package/dist/Stream.js.map +1 -1
- package/dist/Struct.d.ts +16 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +2 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +2 -1
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Types.d.ts +14 -6
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +14 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -5
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/rcRef.js +2 -1
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/testing/TestClock.d.ts +3 -2
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +5 -3
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +39 -39
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +2 -1
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +51 -51
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Response.d.ts +25 -25
- package/dist/unstable/cli/CliError.d.ts +5 -5
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +2 -1
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/Message.d.ts +5 -5
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +2 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +3 -3
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +4 -3
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +7 -5
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +4 -3
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
- package/dist/unstable/encoding/Sse.d.ts +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +2 -1
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +5 -5
- package/dist/unstable/http/Cookies.d.ts +1 -1
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +18 -26
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +2 -2
- package/dist/unstable/http/UrlParams.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +2 -2
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +6 -6
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +6 -5
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +12 -9
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +39 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
- package/dist/unstable/reactivity/Hydration.js +76 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -0
- package/dist/unstable/reactivity/index.d.ts +4 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +4 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +3 -2
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +5 -3
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +3 -2
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +2 -2
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +2 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +1 -2
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +6 -4
- package/src/Data.ts +10 -9
- package/src/Effect.ts +0 -246
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +2 -2
- package/src/FileSystem.ts +7 -8
- package/src/Filter.ts +48 -1
- package/src/Formatter.ts +1 -1
- package/src/Graph.ts +8 -5
- package/src/Latch.ts +112 -0
- package/src/Pipeable.ts +32 -1
- package/src/PlatformError.ts +5 -5
- package/src/Pool.ts +9 -7
- package/src/PubSub.ts +10 -9
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +0 -20
- package/src/Schedule.ts +217 -115
- package/src/Schema.ts +567 -105
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaRepresentation.ts +5 -2
- package/src/SchemaTransformation.ts +104 -0
- package/src/Semaphore.ts +356 -0
- package/src/Stream.ts +9 -8
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Types.ts +12 -2
- package/src/index.ts +17 -6
- package/src/internal/core.ts +10 -2
- package/src/internal/effect.ts +3 -2
- package/src/internal/rcRef.ts +2 -1
- package/src/testing/TestClock.ts +8 -6
- package/src/unstable/ai/AiError.ts +1 -1
- package/src/unstable/ai/Chat.ts +2 -1
- package/src/unstable/ai/Prompt.ts +20 -20
- package/src/unstable/ai/Response.ts +22 -22
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
- package/src/unstable/cluster/Entity.ts +2 -1
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/MessageStorage.ts +2 -1
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +8 -6
- package/src/unstable/cluster/internal/entityManager.ts +6 -5
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/eventlog/EventLog.ts +2 -1
- package/src/unstable/http/HttpEffect.ts +17 -25
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +1 -1
- package/src/unstable/httpapi/HttpApiBuilder.ts +2 -2
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/persistence/KeyValueStore.ts +6 -6
- package/src/unstable/persistence/PersistedCache.ts +20 -9
- package/src/unstable/persistence/PersistedQueue.ts +7 -6
- package/src/unstable/process/ChildProcessSpawner.ts +6 -0
- package/src/unstable/reactivity/Atom.ts +7 -5
- package/src/unstable/reactivity/Hydration.ts +112 -0
- package/src/unstable/reactivity/index.ts +5 -0
- package/src/unstable/rpc/RpcClient.ts +4 -3
- package/src/unstable/rpc/RpcServer.ts +6 -4
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/socket/Socket.ts +3 -2
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableDeferred.ts +2 -2
- package/src/unstable/workflow/WorkflowEngine.ts +3 -2
- package/dist/PartitionedSemaphore.d.ts +0 -52
- package/dist/PartitionedSemaphore.d.ts.map +0 -1
- package/dist/PartitionedSemaphore.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/src/PartitionedSemaphore.ts +0 -182
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
|
@@ -81,6 +81,8 @@
|
|
|
81
81
|
*
|
|
82
82
|
* @since 4.0.0
|
|
83
83
|
*/
|
|
84
|
+
import * as BigDecimal from "./BigDecimal.js";
|
|
85
|
+
import * as DateTime from "./DateTime.js";
|
|
84
86
|
import * as Duration from "./Duration.js";
|
|
85
87
|
import * as Effect from "./Effect.js";
|
|
86
88
|
import * as Option from "./Option.js";
|
|
@@ -932,6 +934,29 @@ export const urlFromString = /*#__PURE__*/transformOrFail({
|
|
|
932
934
|
}),
|
|
933
935
|
encode: url => Effect.succeed(url.href)
|
|
934
936
|
});
|
|
937
|
+
/**
|
|
938
|
+
* Decodes a `string` into a `BigDecimal` and encodes a `BigDecimal` back to
|
|
939
|
+
* its string representation.
|
|
940
|
+
*
|
|
941
|
+
* When to use this:
|
|
942
|
+
* - Parsing decimal number strings from APIs or user input.
|
|
943
|
+
*
|
|
944
|
+
* Behavior:
|
|
945
|
+
* - Decode: calls `BigDecimal.fromString(s)`. Fails with `InvalidValue` if the
|
|
946
|
+
* string is not a valid BigDecimal representation.
|
|
947
|
+
* - Encode: returns `BigDecimal.format(bd)`.
|
|
948
|
+
*
|
|
949
|
+
* @since 4.0.0
|
|
950
|
+
*/
|
|
951
|
+
export const bigDecimalFromString = /*#__PURE__*/transformOrFail({
|
|
952
|
+
decode: s => {
|
|
953
|
+
const result = BigDecimal.fromString(s);
|
|
954
|
+
return result === undefined ? Effect.fail(new Issue.InvalidValue(Option.some(s), {
|
|
955
|
+
message: `Invalid BigDecimal string: ${s}`
|
|
956
|
+
})) : Effect.succeed(result);
|
|
957
|
+
},
|
|
958
|
+
encode: bd => Effect.succeed(BigDecimal.format(bd))
|
|
959
|
+
});
|
|
935
960
|
/**
|
|
936
961
|
* Decodes a Base64-encoded `string` into a `Uint8Array` and encodes a
|
|
937
962
|
* `Uint8Array` back to a Base64 string.
|
|
@@ -1045,4 +1070,59 @@ export const fromFormData = /*#__PURE__*/new Transformation(/*#__PURE__*/Getter.
|
|
|
1045
1070
|
* @since 4.0.0
|
|
1046
1071
|
*/
|
|
1047
1072
|
export const fromURLSearchParams = /*#__PURE__*/new Transformation(/*#__PURE__*/Getter.decodeURLSearchParams(), /*#__PURE__*/Getter.encodeURLSearchParams());
|
|
1073
|
+
/**
|
|
1074
|
+
* @since 4.0.0
|
|
1075
|
+
*/
|
|
1076
|
+
export const timeZoneOffsetFromNumber = /*#__PURE__*/transform({
|
|
1077
|
+
decode: n => DateTime.zoneMakeOffset(n),
|
|
1078
|
+
encode: tz => tz.offset
|
|
1079
|
+
});
|
|
1080
|
+
/**
|
|
1081
|
+
* @since 4.0.0
|
|
1082
|
+
*/
|
|
1083
|
+
export const timeZoneNamedFromString = /*#__PURE__*/transformOrFail({
|
|
1084
|
+
decode: s => {
|
|
1085
|
+
const result = DateTime.zoneMakeNamed(s);
|
|
1086
|
+
return result === undefined ? Effect.fail(new Issue.InvalidValue(Option.some(s), {
|
|
1087
|
+
message: `Invalid IANA time zone: ${s}`
|
|
1088
|
+
})) : Effect.succeed(result);
|
|
1089
|
+
},
|
|
1090
|
+
encode: tz => Effect.succeed(tz.id)
|
|
1091
|
+
});
|
|
1092
|
+
/**
|
|
1093
|
+
* @since 4.0.0
|
|
1094
|
+
*/
|
|
1095
|
+
export const timeZoneFromString = /*#__PURE__*/transformOrFail({
|
|
1096
|
+
decode: s => {
|
|
1097
|
+
const result = DateTime.zoneFromString(s);
|
|
1098
|
+
return result === undefined ? Effect.fail(new Issue.InvalidValue(Option.some(s), {
|
|
1099
|
+
message: `Invalid time zone: ${s}`
|
|
1100
|
+
})) : Effect.succeed(result);
|
|
1101
|
+
},
|
|
1102
|
+
encode: tz => Effect.succeed(DateTime.zoneToString(tz))
|
|
1103
|
+
});
|
|
1104
|
+
/**
|
|
1105
|
+
* @since 4.0.0
|
|
1106
|
+
*/
|
|
1107
|
+
export const dateTimeUtcFromString = /*#__PURE__*/transformOrFail({
|
|
1108
|
+
decode: s => {
|
|
1109
|
+
const result = DateTime.make(s);
|
|
1110
|
+
return result === undefined ? Effect.fail(new Issue.InvalidValue(Option.some(s), {
|
|
1111
|
+
message: "Invalid DateTime input"
|
|
1112
|
+
})) : Effect.succeed(DateTime.toUtc(result));
|
|
1113
|
+
},
|
|
1114
|
+
encode: utc => Effect.succeed(DateTime.formatIso(utc))
|
|
1115
|
+
});
|
|
1116
|
+
/**
|
|
1117
|
+
* @since 4.0.0
|
|
1118
|
+
*/
|
|
1119
|
+
export const dateTimeZonedFromString = /*#__PURE__*/transformOrFail({
|
|
1120
|
+
decode: s => {
|
|
1121
|
+
const result = DateTime.makeZonedFromString(s);
|
|
1122
|
+
return result === undefined ? Effect.fail(new Issue.InvalidValue(Option.some(s), {
|
|
1123
|
+
message: `Invalid zoned DateTime string: ${s}`
|
|
1124
|
+
})) : Effect.succeed(result);
|
|
1125
|
+
},
|
|
1126
|
+
encode: zoned => Effect.succeed(DateTime.formatIsoZoned(zoned))
|
|
1127
|
+
});
|
|
1048
1128
|
//# sourceMappingURL=SchemaTransformation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaTransformation.js","names":["Duration","Effect","Option","Predicate","Getter","Issue","Middleware","_tag","decode","encode","constructor","flip","TypeId","Transformation","compose","other","isTransformation","u","hasProperty","make","options","transformOrFail","transform","transformOptional","trim","passthrough","snakeToCamel","camelToSnake","toLowerCase","toUpperCase","capitalize","uncapitalize","splitKeyValue","joinKeyValue","passthrough_","passthroughSupertype","passthroughSubtype","numberFromString","Number","String","bigintFromString","BigInt","durationFromNanos","i","succeed","nanos","a","toNanos","isUndefined","fail","InvalidValue","some","message","durationFromMillis","millis","toMillis","errorFromErrorJsonEncoded","err","Error","name","stack","e","includeStack","optionFromNullOr","fromNullOr","getOrNull","optionFromOptionalKey","flatten","optionFromOptional","ot","pipe","filter","isNotUndefined","urlFromString","s","try","URL","catch","globalThis","url","href","uint8ArrayFromBase64String","decodeBase64","encodeBase64","fromJsonString","parseJson","stringifyJson","fromFormData","decodeFormData","encodeFormData","fromURLSearchParams","decodeURLSearchParams","encodeURLSearchParams"],"sources":["../src/SchemaTransformation.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SchemaTransformation.js","names":["BigDecimal","DateTime","Duration","Effect","Option","Predicate","Getter","Issue","Middleware","_tag","decode","encode","constructor","flip","TypeId","Transformation","compose","other","isTransformation","u","hasProperty","make","options","transformOrFail","transform","transformOptional","trim","passthrough","snakeToCamel","camelToSnake","toLowerCase","toUpperCase","capitalize","uncapitalize","splitKeyValue","joinKeyValue","passthrough_","passthroughSupertype","passthroughSubtype","numberFromString","Number","String","bigintFromString","BigInt","durationFromNanos","i","succeed","nanos","a","toNanos","isUndefined","fail","InvalidValue","some","message","durationFromMillis","millis","toMillis","errorFromErrorJsonEncoded","err","Error","name","stack","e","includeStack","optionFromNullOr","fromNullOr","getOrNull","optionFromOptionalKey","flatten","optionFromOptional","ot","pipe","filter","isNotUndefined","urlFromString","s","try","URL","catch","globalThis","url","href","bigDecimalFromString","result","fromString","undefined","bd","format","uint8ArrayFromBase64String","decodeBase64","encodeBase64","fromJsonString","parseJson","stringifyJson","fromFormData","decodeFormData","encodeFormData","fromURLSearchParams","decodeURLSearchParams","encodeURLSearchParams","timeZoneOffsetFromNumber","n","zoneMakeOffset","tz","offset","timeZoneNamedFromString","zoneMakeNamed","id","timeZoneFromString","zoneFromString","zoneToString","dateTimeUtcFromString","toUtc","utc","formatIso","dateTimeZonedFromString","makeZonedFromString","zoned","formatIsoZoned"],"sources":["../src/SchemaTransformation.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as Effect from "./Effect.ts";
|
|
5
|
+
import * as Option from "./Option.ts";
|
|
6
|
+
/**
|
|
7
|
+
* @category models
|
|
8
|
+
* @since 2.0.0
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { Effect, Semaphore } from "effect"
|
|
12
|
+
*
|
|
13
|
+
* // Create and use a semaphore for controlling concurrent access
|
|
14
|
+
* const program = Effect.gen(function*() {
|
|
15
|
+
* const semaphore = yield* Semaphore.make(2)
|
|
16
|
+
*
|
|
17
|
+
* return yield* semaphore.withPermits(1)(
|
|
18
|
+
* Effect.succeed("Resource accessed")
|
|
19
|
+
* )
|
|
20
|
+
* })
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export interface Semaphore {
|
|
24
|
+
/**
|
|
25
|
+
* Adjusts the number of permits available in the semaphore.
|
|
26
|
+
*/
|
|
27
|
+
resize(permits: number): Effect.Effect<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Runs an effect with the given number of permits and releases the permits
|
|
30
|
+
* when the effect completes.
|
|
31
|
+
*
|
|
32
|
+
* **Details**
|
|
33
|
+
*
|
|
34
|
+
* This function acquires the specified number of permits before executing
|
|
35
|
+
* the provided effect. Once the effect finishes, the permits are released.
|
|
36
|
+
* If insufficient permits are available, the function will wait until they
|
|
37
|
+
* are released by other tasks.
|
|
38
|
+
*/
|
|
39
|
+
withPermits(permits: number): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
40
|
+
/**
|
|
41
|
+
* Runs an effect with the given number of permits and releases the permits
|
|
42
|
+
* when the effect completes.
|
|
43
|
+
*
|
|
44
|
+
* **Details**
|
|
45
|
+
*
|
|
46
|
+
* This function acquires the specified number of permits before executing
|
|
47
|
+
* the provided effect. Once the effect finishes, the permits are released.
|
|
48
|
+
* If insufficient permits are available, the function will wait until they
|
|
49
|
+
* are released by other tasks.
|
|
50
|
+
*/
|
|
51
|
+
withPermit<A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, E, R>;
|
|
52
|
+
/**
|
|
53
|
+
* Runs an effect only if the specified number of permits are immediately
|
|
54
|
+
* available.
|
|
55
|
+
*
|
|
56
|
+
* **Details**
|
|
57
|
+
*
|
|
58
|
+
* This function attempts to acquire the specified number of permits. If they
|
|
59
|
+
* are available, it runs the effect and releases the permits after the effect
|
|
60
|
+
* completes. If permits are not available, the effect does not execute, and
|
|
61
|
+
* the result is `Option.none`.
|
|
62
|
+
*/
|
|
63
|
+
withPermitsIfAvailable(permits: number): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Option.Option<A>, E, R>;
|
|
64
|
+
/**
|
|
65
|
+
* Acquires the specified number of permits and returns the resulting
|
|
66
|
+
* available permits, suspending the task if they are not yet available.
|
|
67
|
+
* Concurrent pending `take` calls are processed in a first-in, first-out manner.
|
|
68
|
+
*/
|
|
69
|
+
take(permits: number): Effect.Effect<number>;
|
|
70
|
+
/**
|
|
71
|
+
* Releases the specified number of permits and returns the resulting
|
|
72
|
+
* available permits.
|
|
73
|
+
*/
|
|
74
|
+
release(permits: number): Effect.Effect<number>;
|
|
75
|
+
/**
|
|
76
|
+
* Releases all permits held by this semaphore and returns the resulting available permits.
|
|
77
|
+
*/
|
|
78
|
+
releaseAll: Effect.Effect<number>;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Unsafely creates a new Semaphore.
|
|
82
|
+
*
|
|
83
|
+
* **Previously Known As**
|
|
84
|
+
*
|
|
85
|
+
* This API replaces the following from Effect 3.x:
|
|
86
|
+
*
|
|
87
|
+
* - `Effect.makeSemaphoreUnsafe`
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* import { Effect, Semaphore } from "effect"
|
|
92
|
+
*
|
|
93
|
+
* const semaphore = Semaphore.makeUnsafe(3)
|
|
94
|
+
*
|
|
95
|
+
* const task = (id: number) =>
|
|
96
|
+
* semaphore.withPermits(1)(
|
|
97
|
+
* Effect.gen(function*() {
|
|
98
|
+
* yield* Effect.log(`Task ${id} started`)
|
|
99
|
+
* yield* Effect.sleep("1 second")
|
|
100
|
+
* yield* Effect.log(`Task ${id} completed`)
|
|
101
|
+
* })
|
|
102
|
+
* )
|
|
103
|
+
*
|
|
104
|
+
* // Only 3 tasks can run concurrently
|
|
105
|
+
* const program = Effect.all([
|
|
106
|
+
* task(1),
|
|
107
|
+
* task(2),
|
|
108
|
+
* task(3),
|
|
109
|
+
* task(4),
|
|
110
|
+
* task(5)
|
|
111
|
+
* ], { concurrency: "unbounded" })
|
|
112
|
+
* ```
|
|
113
|
+
*
|
|
114
|
+
* @since 2.0.0
|
|
115
|
+
* @category constructors
|
|
116
|
+
*/
|
|
117
|
+
export declare const makeUnsafe: (permits: number) => Semaphore;
|
|
118
|
+
/**
|
|
119
|
+
* Creates a new Semaphore.
|
|
120
|
+
*
|
|
121
|
+
* **Previously Known As**
|
|
122
|
+
*
|
|
123
|
+
* This API replaces the following from Effect 3.x:
|
|
124
|
+
*
|
|
125
|
+
* - `Effect.makeSemaphore`
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* import { Effect, Semaphore } from "effect"
|
|
130
|
+
*
|
|
131
|
+
* const program = Effect.gen(function*() {
|
|
132
|
+
* const semaphore = yield* Semaphore.make(2)
|
|
133
|
+
*
|
|
134
|
+
* const task = (id: number) =>
|
|
135
|
+
* semaphore.withPermits(1)(
|
|
136
|
+
* Effect.gen(function*() {
|
|
137
|
+
* yield* Effect.log(`Task ${id} acquired permit`)
|
|
138
|
+
* yield* Effect.sleep("1 second")
|
|
139
|
+
* yield* Effect.log(`Task ${id} releasing permit`)
|
|
140
|
+
* })
|
|
141
|
+
* )
|
|
142
|
+
*
|
|
143
|
+
* // Run 4 tasks, but only 2 can run concurrently
|
|
144
|
+
* yield* Effect.all([task(1), task(2), task(3), task(4)])
|
|
145
|
+
* })
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
148
|
+
* @since 2.0.0
|
|
149
|
+
* @category constructors
|
|
150
|
+
*/
|
|
151
|
+
export declare const make: (permits: number) => Effect.Effect<Semaphore>;
|
|
152
|
+
/**
|
|
153
|
+
* @since 3.19.4
|
|
154
|
+
* @category models
|
|
155
|
+
*/
|
|
156
|
+
export declare const PartitionedTypeId: PartitionedTypeId;
|
|
157
|
+
/**
|
|
158
|
+
* @since 3.19.4
|
|
159
|
+
* @category models
|
|
160
|
+
*/
|
|
161
|
+
export type PartitionedTypeId = "~effect/PartitionedSemaphore";
|
|
162
|
+
/**
|
|
163
|
+
* A `Partitioned` semaphore controls access to a shared permit pool while
|
|
164
|
+
* tracking waiters by partition key.
|
|
165
|
+
*
|
|
166
|
+
* Waiting permits are distributed across partitions in round-robin order.
|
|
167
|
+
*
|
|
168
|
+
* **Previously Known As**
|
|
169
|
+
*
|
|
170
|
+
* This API replaces the following from Effect 3.x:
|
|
171
|
+
*
|
|
172
|
+
* - `PartitionedSemaphore.PartitionedSemaphore`
|
|
173
|
+
*
|
|
174
|
+
* @since 3.19.4
|
|
175
|
+
* @category models
|
|
176
|
+
*/
|
|
177
|
+
export interface Partitioned<in K> {
|
|
178
|
+
readonly [PartitionedTypeId]: PartitionedTypeId;
|
|
179
|
+
readonly withPermits: (key: K, permits: number) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Creates a `Partitioned` semaphore unsafely.
|
|
183
|
+
*
|
|
184
|
+
* **Previously Known As**
|
|
185
|
+
*
|
|
186
|
+
* This API replaces the following from Effect 3.x:
|
|
187
|
+
*
|
|
188
|
+
* - `PartitionedSemaphore.makeUnsafe`
|
|
189
|
+
*
|
|
190
|
+
* @since 3.19.4
|
|
191
|
+
* @category constructors
|
|
192
|
+
*/
|
|
193
|
+
export declare const makePartitionedUnsafe: <K = unknown>(options: {
|
|
194
|
+
readonly permits: number;
|
|
195
|
+
}) => Partitioned<K>;
|
|
196
|
+
/**
|
|
197
|
+
* Creates a `Partitioned` semaphore.
|
|
198
|
+
*
|
|
199
|
+
* **Previously Known As**
|
|
200
|
+
*
|
|
201
|
+
* This API replaces the following from Effect 3.x:
|
|
202
|
+
*
|
|
203
|
+
* - `PartitionedSemaphore.make`
|
|
204
|
+
*
|
|
205
|
+
* @since 3.19.4
|
|
206
|
+
* @category constructors
|
|
207
|
+
*/
|
|
208
|
+
export declare const makePartitioned: <K = unknown>(options: {
|
|
209
|
+
readonly permits: number;
|
|
210
|
+
}) => Effect.Effect<Partitioned<K>>;
|
|
211
|
+
//# sourceMappingURL=Semaphore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../src/Semaphore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,107 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @since
|
|
3
|
-
* @experimental
|
|
2
|
+
* @since 2.0.0
|
|
4
3
|
*/
|
|
5
4
|
import * as Effect from "./Effect.js";
|
|
5
|
+
import * as internal from "./internal/effect.js";
|
|
6
6
|
import * as MutableHashMap from "./MutableHashMap.js";
|
|
7
7
|
import * as Option from "./Option.js";
|
|
8
|
+
/**
|
|
9
|
+
* Unsafely creates a new Semaphore.
|
|
10
|
+
*
|
|
11
|
+
* **Previously Known As**
|
|
12
|
+
*
|
|
13
|
+
* This API replaces the following from Effect 3.x:
|
|
14
|
+
*
|
|
15
|
+
* - `Effect.makeSemaphoreUnsafe`
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { Effect, Semaphore } from "effect"
|
|
20
|
+
*
|
|
21
|
+
* const semaphore = Semaphore.makeUnsafe(3)
|
|
22
|
+
*
|
|
23
|
+
* const task = (id: number) =>
|
|
24
|
+
* semaphore.withPermits(1)(
|
|
25
|
+
* Effect.gen(function*() {
|
|
26
|
+
* yield* Effect.log(`Task ${id} started`)
|
|
27
|
+
* yield* Effect.sleep("1 second")
|
|
28
|
+
* yield* Effect.log(`Task ${id} completed`)
|
|
29
|
+
* })
|
|
30
|
+
* )
|
|
31
|
+
*
|
|
32
|
+
* // Only 3 tasks can run concurrently
|
|
33
|
+
* const program = Effect.all([
|
|
34
|
+
* task(1),
|
|
35
|
+
* task(2),
|
|
36
|
+
* task(3),
|
|
37
|
+
* task(4),
|
|
38
|
+
* task(5)
|
|
39
|
+
* ], { concurrency: "unbounded" })
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @since 2.0.0
|
|
43
|
+
* @category constructors
|
|
44
|
+
*/
|
|
45
|
+
export const makeUnsafe = internal.makeSemaphoreUnsafe;
|
|
46
|
+
/**
|
|
47
|
+
* Creates a new Semaphore.
|
|
48
|
+
*
|
|
49
|
+
* **Previously Known As**
|
|
50
|
+
*
|
|
51
|
+
* This API replaces the following from Effect 3.x:
|
|
52
|
+
*
|
|
53
|
+
* - `Effect.makeSemaphore`
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts
|
|
57
|
+
* import { Effect, Semaphore } from "effect"
|
|
58
|
+
*
|
|
59
|
+
* const program = Effect.gen(function*() {
|
|
60
|
+
* const semaphore = yield* Semaphore.make(2)
|
|
61
|
+
*
|
|
62
|
+
* const task = (id: number) =>
|
|
63
|
+
* semaphore.withPermits(1)(
|
|
64
|
+
* Effect.gen(function*() {
|
|
65
|
+
* yield* Effect.log(`Task ${id} acquired permit`)
|
|
66
|
+
* yield* Effect.sleep("1 second")
|
|
67
|
+
* yield* Effect.log(`Task ${id} releasing permit`)
|
|
68
|
+
* })
|
|
69
|
+
* )
|
|
70
|
+
*
|
|
71
|
+
* // Run 4 tasks, but only 2 can run concurrently
|
|
72
|
+
* yield* Effect.all([task(1), task(2), task(3), task(4)])
|
|
73
|
+
* })
|
|
74
|
+
* ```
|
|
75
|
+
*
|
|
76
|
+
* @since 2.0.0
|
|
77
|
+
* @category constructors
|
|
78
|
+
*/
|
|
79
|
+
export const make = internal.makeSemaphore;
|
|
80
|
+
// -----------------------------------------------------------------------------
|
|
81
|
+
// Partitioned
|
|
82
|
+
// -----------------------------------------------------------------------------
|
|
8
83
|
/**
|
|
9
84
|
* @since 3.19.4
|
|
10
85
|
* @category models
|
|
11
|
-
* @experimental
|
|
12
86
|
*/
|
|
13
|
-
export const
|
|
87
|
+
export const PartitionedTypeId = "~effect/PartitionedSemaphore";
|
|
14
88
|
/**
|
|
15
|
-
* Creates a `
|
|
89
|
+
* Creates a `Partitioned` semaphore unsafely.
|
|
90
|
+
*
|
|
91
|
+
* **Previously Known As**
|
|
92
|
+
*
|
|
93
|
+
* This API replaces the following from Effect 3.x:
|
|
94
|
+
*
|
|
95
|
+
* - `PartitionedSemaphore.makeUnsafe`
|
|
16
96
|
*
|
|
17
97
|
* @since 3.19.4
|
|
18
98
|
* @category constructors
|
|
19
|
-
* @experimental
|
|
20
99
|
*/
|
|
21
|
-
export const
|
|
100
|
+
export const makePartitionedUnsafe = options => {
|
|
22
101
|
const maxPermits = Math.max(0, options.permits);
|
|
23
102
|
if (!Number.isFinite(maxPermits)) {
|
|
24
103
|
return {
|
|
25
|
-
[
|
|
104
|
+
[PartitionedTypeId]: PartitionedTypeId,
|
|
26
105
|
withPermits: () => effect => effect
|
|
27
106
|
};
|
|
28
107
|
}
|
|
@@ -100,7 +179,7 @@ export const makeUnsafe = options => {
|
|
|
100
179
|
}
|
|
101
180
|
};
|
|
102
181
|
return {
|
|
103
|
-
[
|
|
182
|
+
[PartitionedTypeId]: PartitionedTypeId,
|
|
104
183
|
withPermits: (key, permits) => {
|
|
105
184
|
const takePermits = take(key, permits);
|
|
106
185
|
return effect => Effect.uninterruptibleMask(restore => Effect.flatMap(restore(takePermits), () => Effect.ensuring(restore(effect), Effect.sync(() => releaseUnsafe(permits)))));
|
|
@@ -108,11 +187,16 @@ export const makeUnsafe = options => {
|
|
|
108
187
|
};
|
|
109
188
|
};
|
|
110
189
|
/**
|
|
111
|
-
* Creates a `
|
|
190
|
+
* Creates a `Partitioned` semaphore.
|
|
191
|
+
*
|
|
192
|
+
* **Previously Known As**
|
|
193
|
+
*
|
|
194
|
+
* This API replaces the following from Effect 3.x:
|
|
195
|
+
*
|
|
196
|
+
* - `PartitionedSemaphore.make`
|
|
112
197
|
*
|
|
113
198
|
* @since 3.19.4
|
|
114
199
|
* @category constructors
|
|
115
|
-
* @experimental
|
|
116
200
|
*/
|
|
117
|
-
export const
|
|
118
|
-
//# sourceMappingURL=
|
|
201
|
+
export const makePartitioned = options => Effect.sync(() => makePartitionedUnsafe(options));
|
|
202
|
+
//# sourceMappingURL=Semaphore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Semaphore.js","names":["Effect","internal","MutableHashMap","Option","makeUnsafe","makeSemaphoreUnsafe","make","makeSemaphore","PartitionedTypeId","makePartitionedUnsafe","options","maxPermits","Math","max","permits","Number","isFinite","withPermits","effect","totalPermits","waitingPermits","partitions","empty","take","key","callback","resume","never","void","needed","taken","waiters","getOrElse","get","set","Set","entry","cleanup","delete","size","remove","add","sync","releaseUnsafe","iterator","Symbol","state","next","done","waiter","value","values","undefined","takePermits","uninterruptibleMask","restore","flatMap","ensuring","makePartitioned"],"sources":["../src/Semaphore.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,aAAa;AACrC,OAAO,KAAKC,QAAQ,MAAM,sBAAsB;AAChD,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AACrD,OAAO,KAAKC,MAAM,MAAM,aAAa;AAqFrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,OAAO,MAAMC,UAAU,GAAmCH,QAAQ,CAACI,mBAAmB;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,OAAO,MAAMC,IAAI,GAAkDL,QAAQ,CAACM,aAAa;AAEzF;AACA;AACA;AAEA;;;;AAIA,OAAO,MAAMC,iBAAiB,GAAsB,8BAA8B;AA+BlF;;;;;;;;;;;;AAYA,OAAO,MAAMC,qBAAqB,GAAiBC,OAElD,IAAoB;EACnB,MAAMC,UAAU,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,OAAO,CAACI,OAAO,CAAC;EAE/C,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACL,UAAU,CAAC,EAAE;IAChC,OAAO;MACL,CAACH,iBAAiB,GAAGA,iBAAiB;MACtCS,WAAW,EAAEA,CAAA,KAAOC,MAAM,IAAKA;KAChC;EACH;EAEA,IAAIC,YAAY,GAAGR,UAAU;EAC7B,IAAIS,cAAc,GAAG,CAAC;EAMtB,MAAMC,UAAU,GAAGnB,cAAc,CAACoB,KAAK,EAAkB;EAEzD,MAAMC,IAAI,GAAGA,CAACC,GAAM,EAAEV,OAAe,KACnCd,MAAM,CAACyB,QAAQ,CAAQC,MAAM,IAAI;IAC/B,IAAIf,UAAU,GAAGG,OAAO,EAAE;MACxBY,MAAM,CAAC1B,MAAM,CAAC2B,KAAK,CAAC;MACpB;IACF;IAEA,IAAIR,YAAY,IAAIL,OAAO,EAAE;MAC3BK,YAAY,IAAIL,OAAO;MACvBY,MAAM,CAAC1B,MAAM,CAAC4B,IAAI,CAAC;MACnB;IACF;IAEA,MAAMC,MAAM,GAAGf,OAAO,GAAGK,YAAY;IACrC,MAAMW,KAAK,GAAGhB,OAAO,GAAGe,MAAM;IAC9B,IAAIV,YAAY,GAAG,CAAC,EAAE;MACpBA,YAAY,GAAG,CAAC;IAClB;IACAC,cAAc,IAAIS,MAAM;IAExB,MAAME,OAAO,GAAG5B,MAAM,CAAC6B,SAAS,CAC9B9B,cAAc,CAAC+B,GAAG,CAACZ,UAAU,EAAEG,GAAG,CAAC,EACnC,MAAK;MACH,MAAMU,GAAG,GAAG,IAAIC,GAAG,EAAU;MAC7BjC,cAAc,CAACgC,GAAG,CAACb,UAAU,EAAEG,GAAG,EAAEU,GAAG,CAAC;MACxC,OAAOA,GAAG;IACZ,CAAC,CACF;IAED,MAAME,KAAK,GAAW;MACpBtB,OAAO,EAAEe,MAAM;MACfH,MAAM,EAAEA,CAAA,KAAK;QACXW,OAAO,EAAE;QACTX,MAAM,CAAC1B,MAAM,CAAC4B,IAAI,CAAC;MACrB;KACD;IAED,MAAMS,OAAO,GAAGA,CAAA,KAAK;MACnBN,OAAO,CAACO,MAAM,CAACF,KAAK,CAAC;MACrB,IAAIL,OAAO,CAACQ,IAAI,KAAK,CAAC,EAAE;QACtBrC,cAAc,CAACsC,MAAM,CAACnB,UAAU,EAAEG,GAAG,CAAC;MACxC;IACF,CAAC;IAEDO,OAAO,CAACU,GAAG,CAACL,KAAK,CAAC;IAElB,OAAOpC,MAAM,CAAC0C,IAAI,CAAC,MAAK;MACtBL,OAAO,EAAE;MACTjB,cAAc,IAAIgB,KAAK,CAACtB,OAAO;MAC/B,IAAIgB,KAAK,GAAG,CAAC,EAAE;QACba,aAAa,CAACb,KAAK,CAAC;MACtB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEJ,IAAIc,QAAQ,GAAGvB,UAAU,CAACwB,MAAM,CAACD,QAAQ,CAAC,EAAE;EAE5C,MAAMD,aAAa,GAAI7B,OAAe,IAAU;IAC9C,OAAOA,OAAO,GAAG,CAAC,EAAE;MAClB,IAAIM,cAAc,KAAK,CAAC,EAAE;QACxBD,YAAY,IAAIL,OAAO;QACvB;MACF;MAEA,IAAIgC,KAAK,GAAGF,QAAQ,CAACG,IAAI,EAAE;MAC3B,IAAID,KAAK,CAACE,IAAI,EAAE;QACdJ,QAAQ,GAAGvB,UAAU,CAACwB,MAAM,CAACD,QAAQ,CAAC,EAAE;QACxCE,KAAK,GAAGF,QAAQ,CAACG,IAAI,EAAE;QACvB,IAAID,KAAK,CAACE,IAAI,EAAE;UACd;QACF;MACF;MAEA,MAAMC,MAAM,GAAGH,KAAK,CAACI,KAAK,CAAC,CAAC,CAAC,CAACC,MAAM,EAAE,CAACJ,IAAI,EAAE,CAACG,KAAK;MACnD,IAAID,MAAM,KAAKG,SAAS,EAAE;QACxB;MACF;MAEAH,MAAM,CAACnC,OAAO,IAAI,CAAC;MACnBM,cAAc,IAAI,CAAC;MAEnB,IAAI6B,MAAM,CAACnC,OAAO,KAAK,CAAC,EAAE;QACxBmC,MAAM,CAACvB,MAAM,EAAE;MACjB;MAEAZ,OAAO,IAAI,CAAC;IACd;EACF,CAAC;EAED,OAAO;IACL,CAACN,iBAAiB,GAAGA,iBAAiB;IACtCS,WAAW,EAAEA,CAACO,GAAG,EAAEV,OAAO,KAAI;MAC5B,MAAMuC,WAAW,GAAG9B,IAAI,CAACC,GAAG,EAAEV,OAAO,CAAC;MACtC,OAAQI,MAAM,IACZlB,MAAM,CAACsD,mBAAmB,CAAEC,OAAO,IACjCvD,MAAM,CAACwD,OAAO,CACZD,OAAO,CAACF,WAAW,CAAC,EACpB,MAAMrD,MAAM,CAACyD,QAAQ,CAACF,OAAO,CAACrC,MAAM,CAAC,EAAElB,MAAM,CAAC0C,IAAI,CAAC,MAAMC,aAAa,CAAC7B,OAAO,CAAC,CAAC,CAAC,CAClF,CACF;IACL;GACD;AACH,CAAC;AAED;;;;;;;;;;;;AAYA,OAAO,MAAM4C,eAAe,GAAiBhD,OAE5C,IAAoCV,MAAM,CAAC0C,IAAI,CAAC,MAAMjC,qBAAqB,CAAIC,OAAO,CAAC,CAAC","ignoreList":[]}
|