effect-app 4.0.0-beta.26 → 4.0.0-beta.260
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/CHANGELOG.md +1192 -0
- package/dist/Array.d.ts +3 -2
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +4 -4
- package/dist/Chunk.d.ts +1 -1
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Config/SecretURL.d.ts +4 -2
- package/dist/Config/SecretURL.d.ts.map +1 -1
- package/dist/Config/SecretURL.js +3 -6
- package/dist/Config/internal/configSecretURL.d.ts +1 -1
- package/dist/Config/internal/configSecretURL.d.ts.map +1 -1
- package/dist/Config/internal/configSecretURL.js +2 -2
- package/dist/Config.d.ts +7 -0
- package/dist/Config.d.ts.map +1 -0
- package/dist/Config.js +6 -0
- package/dist/ConfigProvider.d.ts +39 -0
- package/dist/ConfigProvider.d.ts.map +1 -0
- package/dist/ConfigProvider.js +42 -0
- package/dist/Context.d.ts +42 -0
- package/dist/Context.d.ts.map +1 -0
- package/dist/Context.js +67 -0
- package/dist/Effect.d.ts +13 -12
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +5 -8
- package/dist/Emailer.d.ts +51 -0
- package/dist/Emailer.d.ts.map +1 -0
- package/dist/Emailer.js +7 -0
- package/dist/Function.d.ts +1 -1
- package/dist/Function.d.ts.map +1 -1
- package/dist/Inputify.type.d.ts +1 -1
- package/dist/Layer.d.ts +11 -7
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +3 -2
- package/dist/Model/Repository/Registry.d.ts +21 -0
- package/dist/Model/Repository/Registry.d.ts.map +1 -0
- package/dist/Model/Repository/Registry.js +18 -0
- package/dist/Model/Repository/ext.d.ts +60 -0
- package/dist/Model/Repository/ext.d.ts.map +1 -0
- package/dist/Model/Repository/ext.js +122 -0
- package/dist/Model/Repository/internal/internal.d.ts +63 -0
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -0
- package/dist/Model/Repository/internal/internal.js +430 -0
- package/dist/Model/Repository/legacy.d.ts +21 -0
- package/dist/Model/Repository/legacy.d.ts.map +1 -0
- package/dist/Model/Repository/legacy.js +2 -0
- package/dist/Model/Repository/makeRepo.d.ts +54 -0
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
- package/dist/Model/Repository/makeRepo.js +27 -0
- package/dist/Model/Repository/service.d.ts +121 -0
- package/dist/Model/Repository/service.d.ts.map +1 -0
- package/dist/Model/Repository/service.js +2 -0
- package/dist/Model/Repository/validation.d.ts +58 -0
- package/dist/Model/Repository/validation.d.ts.map +1 -0
- package/dist/Model/Repository/validation.js +32 -0
- package/dist/Model/Repository.d.ts +7 -0
- package/dist/Model/Repository.d.ts.map +1 -0
- package/dist/Model/Repository.js +7 -0
- package/dist/Model/dsl.d.ts +33 -0
- package/dist/Model/dsl.d.ts.map +1 -0
- package/dist/Model/dsl.js +43 -0
- package/dist/Model/filter/filterApi.d.ts +30 -0
- package/dist/Model/filter/filterApi.d.ts.map +1 -0
- package/dist/Model/filter/filterApi.js +2 -0
- package/dist/Model/filter/types/errors.d.ts +29 -0
- package/dist/Model/filter/types/errors.d.ts.map +1 -0
- package/dist/Model/filter/types/errors.js +2 -0
- package/dist/Model/filter/types/fields.d.ts +15 -0
- package/dist/Model/filter/types/fields.d.ts.map +1 -0
- package/dist/Model/filter/types/fields.js +2 -0
- package/dist/Model/filter/types/path/common.d.ts +316 -0
- package/dist/Model/filter/types/path/common.d.ts.map +1 -0
- package/dist/Model/filter/types/path/common.js +2 -0
- package/dist/Model/filter/types/path/eager.d.ts +95 -0
- package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
- package/dist/Model/filter/types/path/eager.js +31 -0
- package/dist/Model/filter/types/path/index.d.ts +4 -0
- package/dist/Model/filter/types/path/index.d.ts.map +1 -0
- package/dist/Model/filter/types/path/index.js +3 -0
- package/dist/Model/filter/types/utils.d.ts +79 -0
- package/dist/Model/filter/types/utils.d.ts.map +1 -0
- package/dist/Model/filter/types/utils.js +2 -0
- package/dist/Model/filter/types/validator.d.ts +30 -0
- package/dist/Model/filter/types/validator.d.ts.map +1 -0
- package/dist/Model/filter/types/validator.js +2 -0
- package/dist/Model/filter/types.d.ts +5 -0
- package/dist/Model/filter/types.d.ts.map +1 -0
- package/dist/Model/filter/types.js +7 -0
- package/dist/Model/query/dsl.d.ts +493 -0
- package/dist/Model/query/dsl.d.ts.map +1 -0
- package/dist/Model/query/dsl.js +376 -0
- package/dist/Model/query/new-kid-interpreter.d.ts +136 -0
- package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
- package/dist/Model/query/new-kid-interpreter.js +336 -0
- package/dist/Model/query.d.ts +15 -0
- package/dist/Model/query.d.ts.map +1 -0
- package/dist/Model/query.js +3 -0
- package/dist/Model.d.ts +5 -0
- package/dist/Model.d.ts.map +1 -0
- package/dist/Model.js +5 -0
- package/dist/NonEmptySet.d.ts +4 -2
- package/dist/NonEmptySet.d.ts.map +1 -1
- package/dist/NonEmptySet.js +2 -2
- package/dist/Option.d.ts +2 -1
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +3 -1
- package/dist/Pure.d.ts +8 -6
- package/dist/Pure.d.ts.map +1 -1
- package/dist/Pure.js +17 -14
- package/dist/QueueMaker.d.ts +13 -0
- package/dist/QueueMaker.d.ts.map +1 -0
- package/dist/QueueMaker.js +4 -0
- package/dist/RequestContext.d.ts +91 -0
- package/dist/RequestContext.d.ts.map +1 -0
- package/dist/RequestContext.js +49 -0
- package/dist/Schema/Class.d.ts +66 -20
- package/dist/Schema/Class.d.ts.map +1 -1
- package/dist/Schema/Class.js +192 -27
- package/dist/Schema/FastCheck.d.ts +1 -1
- package/dist/Schema/FastCheck.d.ts.map +1 -1
- package/dist/Schema/Methods.d.ts +1 -1
- package/dist/Schema/SchemaParser.d.ts +5 -0
- package/dist/Schema/SchemaParser.d.ts.map +1 -0
- package/dist/Schema/SchemaParser.js +6 -0
- package/dist/Schema/SpecialJsonSchema.d.ts +34 -0
- package/dist/Schema/SpecialJsonSchema.d.ts.map +1 -0
- package/dist/Schema/SpecialJsonSchema.js +118 -0
- package/dist/Schema/SpecialOpenApi.d.ts +32 -0
- package/dist/Schema/SpecialOpenApi.d.ts.map +1 -0
- package/dist/Schema/SpecialOpenApi.js +123 -0
- package/dist/Schema/brand.d.ts +5 -3
- package/dist/Schema/brand.d.ts.map +1 -1
- package/dist/Schema/brand.js +3 -1
- package/dist/Schema/email.d.ts +1 -1
- package/dist/Schema/email.d.ts.map +1 -1
- package/dist/Schema/email.js +7 -4
- package/dist/Schema/ext.d.ts +339 -56
- package/dist/Schema/ext.d.ts.map +1 -1
- package/dist/Schema/ext.js +358 -53
- package/dist/Schema/moreStrings.d.ts +83 -37
- package/dist/Schema/moreStrings.d.ts.map +1 -1
- package/dist/Schema/moreStrings.js +49 -42
- package/dist/Schema/numbers.d.ts +35 -22
- package/dist/Schema/numbers.d.ts.map +1 -1
- package/dist/Schema/numbers.js +55 -12
- package/dist/Schema/phoneNumber.d.ts +1 -1
- package/dist/Schema/phoneNumber.d.ts.map +1 -1
- package/dist/Schema/phoneNumber.js +6 -3
- package/dist/Schema/schema.d.ts +1 -1
- package/dist/Schema/strings.d.ts +19 -5
- package/dist/Schema/strings.d.ts.map +1 -1
- package/dist/Schema/strings.js +1 -5
- package/dist/Schema.d.ts +214 -8
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +190 -11
- package/dist/Set.d.ts +5 -2
- package/dist/Set.d.ts.map +1 -1
- package/dist/Set.js +3 -2
- package/dist/Store.d.ts +170 -0
- package/dist/Store.d.ts.map +1 -0
- package/dist/Store.js +121 -0
- package/dist/TypeTest.d.ts +1 -1
- package/dist/Types.d.ts +1 -1
- package/dist/Widen.type.d.ts +1 -1
- package/dist/_ext/Array.d.ts +2 -2
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/Array.js +4 -2
- package/dist/_ext/date.d.ts +1 -1
- package/dist/_ext/misc.d.ts +5 -2
- package/dist/_ext/misc.d.ts.map +1 -1
- package/dist/_ext/misc.js +4 -2
- package/dist/_ext/ord.ext.d.ts +3 -2
- package/dist/_ext/ord.ext.d.ts.map +1 -1
- package/dist/_ext/ord.ext.js +2 -2
- package/dist/builtin.d.ts +1 -1
- package/dist/builtin.d.ts.map +1 -1
- package/dist/client/InvalidationKeys.d.ts +29 -0
- package/dist/client/InvalidationKeys.d.ts.map +1 -0
- package/dist/client/InvalidationKeys.js +33 -0
- package/dist/client/apiClientFactory.d.ts +20 -32
- package/dist/client/apiClientFactory.d.ts.map +1 -1
- package/dist/client/apiClientFactory.js +104 -34
- package/dist/client/clientFor.d.ts +53 -19
- package/dist/client/clientFor.d.ts.map +1 -1
- package/dist/client/clientFor.js +9 -1
- package/dist/client/errors.d.ts +49 -25
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +43 -17
- package/dist/client/makeClient.d.ts +495 -33
- package/dist/client/makeClient.d.ts.map +1 -1
- package/dist/client/makeClient.js +66 -24
- package/dist/client.d.ts +6 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -1
- package/dist/faker.d.ts +1 -1
- package/dist/faker.d.ts.map +1 -1
- package/dist/http/Request.d.ts +2 -2
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +2 -2
- package/dist/http/internal/lib.d.ts +1 -1
- package/dist/http.d.ts +1 -1
- package/dist/ids.d.ts +43 -15
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +30 -5
- package/dist/index.d.ts +7 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -8
- package/dist/logger.d.ts +1 -1
- package/dist/middleware.d.ts +14 -8
- package/dist/middleware.d.ts.map +1 -1
- package/dist/middleware.js +14 -8
- package/dist/rpc/Invalidation.d.ts +420 -0
- package/dist/rpc/Invalidation.d.ts.map +1 -0
- package/dist/rpc/Invalidation.js +168 -0
- package/dist/rpc/MiddlewareMaker.d.ts +12 -8
- package/dist/rpc/MiddlewareMaker.d.ts.map +1 -1
- package/dist/rpc/MiddlewareMaker.js +59 -38
- package/dist/rpc/RpcContextMap.d.ts +4 -4
- package/dist/rpc/RpcContextMap.d.ts.map +1 -1
- package/dist/rpc/RpcContextMap.js +4 -4
- package/dist/rpc/RpcMiddleware.d.ts +15 -11
- package/dist/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/rpc/RpcMiddleware.js +1 -1
- package/dist/rpc.d.ts +2 -2
- package/dist/rpc.d.ts.map +1 -1
- package/dist/rpc.js +2 -2
- package/dist/runtime.d.ts +19 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +40 -0
- package/dist/setupRequest.d.ts +19 -0
- package/dist/setupRequest.d.ts.map +1 -0
- package/dist/setupRequest.js +69 -0
- package/dist/toast.d.ts +51 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +34 -0
- package/dist/transform.d.ts +2 -2
- package/dist/transform.d.ts.map +1 -1
- package/dist/transform.js +4 -5
- package/dist/utils/effectify.d.ts +2 -2
- package/dist/utils/effectify.d.ts.map +1 -1
- package/dist/utils/effectify.js +2 -2
- package/dist/utils/extend.d.ts +1 -1
- package/dist/utils/extend.d.ts.map +1 -1
- package/dist/utils/gen.d.ts +5 -5
- package/dist/utils/gen.d.ts.map +1 -1
- package/dist/utils/logLevel.d.ts +3 -3
- package/dist/utils/logLevel.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +5 -4
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +4 -4
- package/dist/utils.d.ts +40 -45
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +19 -27
- package/dist/validation/validators.d.ts +1 -1
- package/dist/validation/validators.d.ts.map +1 -1
- package/dist/validation.d.ts +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/withToast.d.ts +30 -0
- package/dist/withToast.d.ts.map +1 -0
- package/dist/withToast.js +64 -0
- package/package.json +20 -245
- package/src/Array.ts +3 -3
- package/src/Config/SecretURL.ts +5 -2
- package/src/Config/internal/configSecretURL.ts +1 -1
- package/src/Config.ts +14 -0
- package/src/ConfigProvider.ts +48 -0
- package/src/{ServiceMap.ts → Context.ts} +56 -63
- package/src/Effect.ts +12 -14
- package/src/Emailer.ts +51 -0
- package/src/Layer.ts +10 -6
- package/src/Model/Repository/Registry.ts +34 -0
- package/src/Model/Repository/ext.ts +375 -0
- package/src/Model/Repository/internal/internal.ts +741 -0
- package/src/Model/Repository/legacy.ts +29 -0
- package/src/Model/Repository/makeRepo.ts +145 -0
- package/src/Model/Repository/service.ts +666 -0
- package/src/Model/Repository/validation.ts +31 -0
- package/src/Model/Repository.ts +6 -0
- package/src/Model/dsl.ts +129 -0
- package/src/Model/filter/filterApi.ts +60 -0
- package/src/Model/filter/types/errors.ts +47 -0
- package/src/Model/filter/types/fields.ts +50 -0
- package/src/Model/filter/types/path/common.ts +404 -0
- package/src/Model/filter/types/path/eager.ts +297 -0
- package/src/Model/filter/types/path/index.ts +4 -0
- package/src/Model/filter/types/utils.ts +128 -0
- package/src/Model/filter/types/validator.ts +46 -0
- package/src/Model/filter/types.ts +6 -0
- package/src/Model/query/dsl.ts +2694 -0
- package/src/Model/query/new-kid-interpreter.ts +484 -0
- package/src/Model/query.ts +13 -0
- package/src/Model.ts +4 -0
- package/src/NonEmptySet.ts +3 -1
- package/src/Option.ts +2 -0
- package/src/Pure.ts +21 -19
- package/src/QueueMaker.ts +19 -0
- package/src/RequestContext.ts +62 -0
- package/src/Schema/Class.ts +274 -68
- package/src/Schema/SchemaParser.ts +12 -0
- package/src/Schema/SpecialJsonSchema.ts +139 -0
- package/src/Schema/SpecialOpenApi.ts +130 -0
- package/src/Schema/brand.ts +22 -2
- package/src/Schema/email.ts +7 -2
- package/src/Schema/ext.ts +443 -88
- package/src/Schema/moreStrings.ts +146 -67
- package/src/Schema/numbers.ts +96 -27
- package/src/Schema/phoneNumber.ts +5 -1
- package/src/Schema/strings.ts +22 -13
- package/src/Schema.ts +374 -10
- package/src/Set.ts +5 -1
- package/src/Store.ts +277 -0
- package/src/_ext/Array.ts +3 -1
- package/src/_ext/misc.ts +4 -1
- package/src/_ext/ord.ext.ts +2 -1
- package/src/client/InvalidationKeys.ts +50 -0
- package/src/client/apiClientFactory.ts +230 -131
- package/src/client/clientFor.ts +102 -31
- package/src/client/errors.ts +52 -26
- package/src/client/makeClient.ts +592 -71
- package/src/client.ts +5 -4
- package/src/http/Request.ts +1 -1
- package/src/ids.ts +32 -5
- package/src/index.ts +7 -10
- package/src/middleware.ts +13 -9
- package/src/rpc/Invalidation.ts +261 -0
- package/src/rpc/MiddlewareMaker.ts +83 -75
- package/src/rpc/README.md +2 -2
- package/src/rpc/RpcContextMap.ts +6 -5
- package/src/rpc/RpcMiddleware.ts +18 -12
- package/src/rpc.ts +1 -1
- package/src/runtime.ts +56 -0
- package/src/setupRequest.ts +134 -0
- package/src/toast.ts +54 -0
- package/src/transform.ts +3 -3
- package/src/utils/effectify.ts +1 -1
- package/src/utils/gen.ts +8 -8
- package/src/utils/logLevel.ts +1 -1
- package/src/utils/logger.ts +4 -3
- package/src/utils.ts +62 -139
- package/src/withToast.ts +133 -0
- package/test/dist/rpc-dynamic-middleware.test.d.ts.map +1 -0
- package/test/dist/rpc.test.d.ts.map +1 -1
- package/test/dist/secretURL.test.d.ts.map +1 -0
- package/test/dist/special.test.d.ts.map +1 -0
- package/test/dist/stream-error.types.d.ts +2 -0
- package/test/dist/stream-error.types.d.ts.map +1 -0
- package/test/dist/stream-error.types.js +27 -0
- package/test/moreStrings.test.ts +1 -1
- package/test/rpc.test.ts +46 -6
- package/test/schema.test.ts +459 -30
- package/test/secretURL.test.ts +160 -0
- package/test/special.test.ts +1026 -0
- package/test/utils.test.ts +7 -7
- package/tsconfig.base.json +6 -5
- package/tsconfig.json +2 -1
- package/tsconfig.json.bak +2 -2
- package/tsconfig.src.json +29 -29
- package/tsconfig.test.json +2 -2
- package/dist/Operations.d.ts +0 -123
- package/dist/Operations.d.ts.map +0 -1
- package/dist/Operations.js +0 -29
- package/dist/ServiceMap.d.ts +0 -44
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js +0 -91
- package/eslint.config.mjs +0 -26
- package/src/Operations.ts +0 -55
package/dist/Store.d.ts
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import type * as Redacted from "effect/Redacted";
|
|
2
|
+
import type { NonEmptyReadonlyArray } from "./Array.js";
|
|
3
|
+
import type { OptimisticConcurrencyException } from "./client/errors.js";
|
|
4
|
+
import * as Context from "./Context.js";
|
|
5
|
+
import * as Effect from "./Effect.js";
|
|
6
|
+
import * as Layer from "./Layer.js";
|
|
7
|
+
import type { FilterResult } from "./Model/filter/filterApi.js";
|
|
8
|
+
import type { FieldValues } from "./Model/filter/types.js";
|
|
9
|
+
import type { FieldPath } from "./Model/filter/types/path/index.js";
|
|
10
|
+
import type { AggregateIrExpression, ComputedProjectionIrExpression, RawQuery } from "./Model/query.js";
|
|
11
|
+
import type * as Option from "./Option.js";
|
|
12
|
+
import { NonEmptyString255 } from "./Schema.js";
|
|
13
|
+
/**
|
|
14
|
+
* Adapter-neutral unique-key definition for stores that support unique indexes,
|
|
15
|
+
* such as the Cosmos adapter. This shape is intentionally kept structurally
|
|
16
|
+
* compatible with adapter-specific `UniqueKey` types. Each path identifies a
|
|
17
|
+
* field participating in the unique key, and adapters forward these paths
|
|
18
|
+
* directly to the underlying storage engine.
|
|
19
|
+
*/
|
|
20
|
+
export interface UniqueKey {
|
|
21
|
+
readonly paths: string[];
|
|
22
|
+
}
|
|
23
|
+
export interface StoreConfig<E> {
|
|
24
|
+
partitionValue: (e?: E) => string;
|
|
25
|
+
/**
|
|
26
|
+
* Primarily used for testing, creating namespaces in the database to separate data e.g to run multiple tests in isolation within the same database.
|
|
27
|
+
* Memory/Disk use separate store instances per namespace. CosmosDB uses namespace-prefixed partition keys. SQL uses a `_namespace` column.
|
|
28
|
+
*/
|
|
29
|
+
allowNamespace?: (namespace: string) => boolean;
|
|
30
|
+
/**
|
|
31
|
+
* just in time migrations, supported by the database driver, supporting queries, for simple default values
|
|
32
|
+
*/
|
|
33
|
+
defaultValues?: Partial<E>;
|
|
34
|
+
/**
|
|
35
|
+
* How many items can be processed in one batch at a time.
|
|
36
|
+
* Defaults to 100 for CosmosDB.
|
|
37
|
+
*/
|
|
38
|
+
maxBulkSize?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Unique indexes, mainly for CosmosDB
|
|
41
|
+
*/
|
|
42
|
+
uniqueKeys?: UniqueKey[];
|
|
43
|
+
}
|
|
44
|
+
export type SupportedValues = string | boolean | number | null;
|
|
45
|
+
export type SupportedValues2 = string | boolean | number;
|
|
46
|
+
export type Where = {
|
|
47
|
+
key: string;
|
|
48
|
+
t?: "eq" | "not-eq";
|
|
49
|
+
value: SupportedValues;
|
|
50
|
+
} | {
|
|
51
|
+
key: string;
|
|
52
|
+
t: "gt" | "lt" | "gte" | "lte";
|
|
53
|
+
value: SupportedValues2;
|
|
54
|
+
} | {
|
|
55
|
+
key: string;
|
|
56
|
+
t: "contains" | "starts-with" | "ends-with" | "not-contains" | "not-starts-with" | "not-ends-with";
|
|
57
|
+
value: string;
|
|
58
|
+
} | {
|
|
59
|
+
key: string;
|
|
60
|
+
t: "includes" | "not-includes";
|
|
61
|
+
value: string;
|
|
62
|
+
} | {
|
|
63
|
+
key: string;
|
|
64
|
+
t: "in" | "not-in";
|
|
65
|
+
value: readonly (SupportedValues)[];
|
|
66
|
+
};
|
|
67
|
+
export type Filter = readonly FilterResult[];
|
|
68
|
+
export interface O<TFieldValues extends FieldValues> {
|
|
69
|
+
key: FieldPath<TFieldValues>;
|
|
70
|
+
direction: "ASC" | "DESC";
|
|
71
|
+
}
|
|
72
|
+
export interface FilterArgs<Encoded extends FieldValues, U extends keyof Encoded = never> {
|
|
73
|
+
t: Encoded;
|
|
74
|
+
filter?: Filter | undefined;
|
|
75
|
+
select?: NonEmptyReadonlyArray<U | {
|
|
76
|
+
key: string;
|
|
77
|
+
subKeys: readonly string[];
|
|
78
|
+
} | {
|
|
79
|
+
key: string;
|
|
80
|
+
computed: ComputedProjectionIrExpression;
|
|
81
|
+
} | {
|
|
82
|
+
key: string;
|
|
83
|
+
path: string;
|
|
84
|
+
} | {
|
|
85
|
+
key: string;
|
|
86
|
+
aggregate: AggregateIrExpression;
|
|
87
|
+
}> | undefined;
|
|
88
|
+
order?: NonEmptyReadonlyArray<O<NoInfer<Encoded>>>;
|
|
89
|
+
limit?: number | undefined;
|
|
90
|
+
skip?: number | undefined;
|
|
91
|
+
}
|
|
92
|
+
export type FilterFunc<Encoded extends FieldValues> = <U extends keyof Encoded = never>(args: FilterArgs<Encoded, U>) => Effect.Effect<(U extends undefined ? Encoded : Pick<Encoded, U>)[]>;
|
|
93
|
+
export interface Store<IdKey extends keyof Encoded, Encoded extends FieldValues, PM extends PersistenceModelType<Encoded> = PersistenceModelType<Encoded>> {
|
|
94
|
+
all: Effect.Effect<PM[]>;
|
|
95
|
+
filter: FilterFunc<Encoded>;
|
|
96
|
+
find: (id: Encoded[IdKey]) => Effect.Effect<Option.Option<PM>>;
|
|
97
|
+
set: (e: PM) => Effect.Effect<PM, OptimisticConcurrencyException>;
|
|
98
|
+
batchSet: (items: NonEmptyReadonlyArray<PM>) => Effect.Effect<NonEmptyReadonlyArray<PM>, OptimisticConcurrencyException>;
|
|
99
|
+
bulkSet: (items: NonEmptyReadonlyArray<PM>) => Effect.Effect<NonEmptyReadonlyArray<PM>, OptimisticConcurrencyException>;
|
|
100
|
+
batchRemove: (ids: NonEmptyReadonlyArray<Encoded[IdKey]>, partitionKey?: string) => Effect.Effect<void>;
|
|
101
|
+
queryRaw: <Out>(query: RawQuery<Encoded, Out>) => Effect.Effect<readonly Out[]>;
|
|
102
|
+
/**
|
|
103
|
+
* Explicitly seed a namespace. Primary is seeded eagerly on initialization.
|
|
104
|
+
* Non-primary namespaces must be seeded explicitly before use.
|
|
105
|
+
*/
|
|
106
|
+
seedNamespace: (namespace: string) => Effect.Effect<void>;
|
|
107
|
+
}
|
|
108
|
+
declare const StoreMaker_base: Context.OpaqueClass<StoreMaker, "effect-app/StoreMaker", {
|
|
109
|
+
make: <IdKey extends keyof Encoded, Encoded extends FieldValues, R = never, E = never>(name: string, idKey: IdKey, seed?: Effect.Effect<Iterable<Encoded>, E, R>, config?: StoreConfig<Encoded>) => Effect.Effect<Store<IdKey, Encoded>, E, R>;
|
|
110
|
+
}>;
|
|
111
|
+
export declare class StoreMaker extends StoreMaker_base {
|
|
112
|
+
}
|
|
113
|
+
export declare const makeContextMap: () => {
|
|
114
|
+
createdAt: Date;
|
|
115
|
+
get: (id: string) => string | undefined;
|
|
116
|
+
set: (id: string, eTag: string | undefined) => void;
|
|
117
|
+
getOrCreateStore: <T>(key: symbol, make: () => T) => T;
|
|
118
|
+
getOrCreateStoreEffect: <T, E, R>(key: symbol, make: Effect.Effect<T, E, R>) => Effect.Effect<T, E, R>;
|
|
119
|
+
clear: () => void;
|
|
120
|
+
};
|
|
121
|
+
declare const ContextMap_base: Context.OpaqueClass<ContextMap, "effect-app/ContextMap", {
|
|
122
|
+
createdAt: Date;
|
|
123
|
+
get: (id: string) => string | undefined;
|
|
124
|
+
set: (id: string, eTag: string | undefined) => void;
|
|
125
|
+
getOrCreateStore: <T>(key: symbol, make: () => T) => T;
|
|
126
|
+
getOrCreateStoreEffect: <T, E, R>(key: symbol, make: Effect.Effect<T, E, R>) => Effect.Effect<T, E, R>;
|
|
127
|
+
clear: () => void;
|
|
128
|
+
}> & {
|
|
129
|
+
readonly make: Effect.Effect<{
|
|
130
|
+
createdAt: Date;
|
|
131
|
+
get: (id: string) => string | undefined;
|
|
132
|
+
set: (id: string, eTag: string | undefined) => void;
|
|
133
|
+
getOrCreateStore: <T>(key: symbol, make: () => T) => T;
|
|
134
|
+
getOrCreateStoreEffect: <T, E, R>(key: symbol, make: Effect.Effect<T, E, R>) => Effect.Effect<T, E, R>;
|
|
135
|
+
clear: () => void;
|
|
136
|
+
}, never, import("effect/Scope").Scope>;
|
|
137
|
+
};
|
|
138
|
+
export declare class ContextMap extends ContextMap_base {
|
|
139
|
+
}
|
|
140
|
+
declare const ContextMapContainer_base: Context.Reference<"root" | ContextMap>;
|
|
141
|
+
export declare class ContextMapContainer extends ContextMapContainer_base {
|
|
142
|
+
static readonly layer: Layer.Layer<never, never, never>;
|
|
143
|
+
}
|
|
144
|
+
declare const ContextMapNotStartedError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
145
|
+
readonly _tag: "ContextMapNotStartedError";
|
|
146
|
+
} & Readonly<A>;
|
|
147
|
+
export declare class ContextMapNotStartedError extends ContextMapNotStartedError_base {
|
|
148
|
+
}
|
|
149
|
+
export declare const getContextMap: Effect.Effect<ContextMap, ContextMapNotStartedError, never>;
|
|
150
|
+
/**
|
|
151
|
+
* Runs `make` at most once per ContextMap (i.e. per request) and caches the
|
|
152
|
+
* resulting value in the ContextMap under a fresh symbol. Subsequent calls of
|
|
153
|
+
* the returned Effect within the same ContextMap return the cached value.
|
|
154
|
+
*
|
|
155
|
+
* Uses the ContextMap's shared semaphore for safe single initialization.
|
|
156
|
+
*/
|
|
157
|
+
export declare const cachedPerRequest: <A, E, R>(make: Effect.Effect<A, E, R>) => Effect.Effect<A, E | ContextMapNotStartedError, R>;
|
|
158
|
+
declare const storeId_base: Context.Reference<NonEmptyString255>;
|
|
159
|
+
export declare class storeId extends storeId_base {
|
|
160
|
+
}
|
|
161
|
+
export type PersistenceModelType<Encoded extends object> = Encoded & {
|
|
162
|
+
_etag?: string | undefined;
|
|
163
|
+
};
|
|
164
|
+
export interface StorageConfig {
|
|
165
|
+
url: Redacted.Redacted;
|
|
166
|
+
prefix: string;
|
|
167
|
+
dbName: string;
|
|
168
|
+
}
|
|
169
|
+
export {};
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUE7QUFFaEQsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkQsT0FBTyxLQUFLLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUN4RSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUNuQyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUMvRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMxRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUNuRSxPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN2RyxPQUFPLEtBQUssS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUUvQzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFdBQVcsU0FBUztJQUN4QixRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFBO0NBQ3pCO0FBRUQsTUFBTSxXQUFXLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxNQUFNLENBQUE7SUFDakM7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxLQUFLLE9BQU8sQ0FBQTtJQUMvQzs7T0FFRztJ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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Store.d.ts","sourceRoot":"","sources":["../src/Store.ts"],"names":[],"mappings":"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"}
|
package/dist/Store.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import * as Data from "effect/Data";
|
|
3
|
+
import * as Semaphore from "effect/Semaphore";
|
|
4
|
+
import * as Context from "./Context.js";
|
|
5
|
+
import * as Effect from "./Effect.js";
|
|
6
|
+
import * as Layer from "./Layer.js";
|
|
7
|
+
import { NonEmptyString255 } from "./Schema.js";
|
|
8
|
+
export class StoreMaker extends Context.Opaque()("effect-app/StoreMaker") {
|
|
9
|
+
}
|
|
10
|
+
export const makeContextMap = () => {
|
|
11
|
+
const etags = new Map();
|
|
12
|
+
const getEtag = (id) => etags.get(id);
|
|
13
|
+
const setEtag = (id, eTag) => {
|
|
14
|
+
if (eTag === undefined) {
|
|
15
|
+
etags.delete(id);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
etags.set(id, eTag);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
// const parsedCache = new Map<
|
|
22
|
+
// Parser<any, any, any>,
|
|
23
|
+
// Map<unknown, These.These<unknown, unknown>>
|
|
24
|
+
// >()
|
|
25
|
+
// const parserCache = new Map<
|
|
26
|
+
// Parser<any, any, any>,
|
|
27
|
+
// (i: any) => These.These<any, any>
|
|
28
|
+
// >()
|
|
29
|
+
// const setAndReturn = <I, E, A>(
|
|
30
|
+
// p: Parser<I, E, A>,
|
|
31
|
+
// np: (i: I) => These.These<E, A>
|
|
32
|
+
// ) => {
|
|
33
|
+
// parserCache.set(p, np)
|
|
34
|
+
// return np
|
|
35
|
+
// }
|
|
36
|
+
// const parserEnv: ParserEnv = {
|
|
37
|
+
// // TODO: lax: true would turn off refinement checks, may help on large payloads
|
|
38
|
+
// // but of course removes confirming of validation rules (which may be okay for a database owned by the app, as we write safely)
|
|
39
|
+
// lax: false,
|
|
40
|
+
// cache: {
|
|
41
|
+
// getOrSetParser: (p) => parserCache.get(p) ?? setAndReturn(p, (i) => parserEnv.cache!.getOrSet(i, p)),
|
|
42
|
+
// getOrSetParsers: (parsers) => {
|
|
43
|
+
// return Object.entries(parsers).reduce((prev, [k, v]) => {
|
|
44
|
+
// prev[k] = parserEnv.cache!.getOrSetParser(v)
|
|
45
|
+
// return prev
|
|
46
|
+
// }, {} as any)
|
|
47
|
+
// },
|
|
48
|
+
// getOrSet: (i, parse): any => {
|
|
49
|
+
// const c = parsedCache.get(parse)
|
|
50
|
+
// if (c) {
|
|
51
|
+
// const f = c.get(i)
|
|
52
|
+
// if (f) {
|
|
53
|
+
// // console.log("$$$ cache hit", i)
|
|
54
|
+
// return f
|
|
55
|
+
// } else {
|
|
56
|
+
// const nf = parse(i, parserEnv)
|
|
57
|
+
// c.set(i, nf)
|
|
58
|
+
// return nf
|
|
59
|
+
// }
|
|
60
|
+
// } else {
|
|
61
|
+
// const nf = parse(i, parserEnv)
|
|
62
|
+
// parsedCache.set(parse, new Map([[i, nf]]))
|
|
63
|
+
// return nf
|
|
64
|
+
// }
|
|
65
|
+
// }
|
|
66
|
+
// }
|
|
67
|
+
// }
|
|
68
|
+
const store = new Map();
|
|
69
|
+
const sem = Semaphore.makeUnsafe(1);
|
|
70
|
+
return {
|
|
71
|
+
createdAt: new Date(),
|
|
72
|
+
get: getEtag,
|
|
73
|
+
set: setEtag,
|
|
74
|
+
getOrCreateStore: (key, make) => {
|
|
75
|
+
let value = store.get(key);
|
|
76
|
+
if (value === undefined) {
|
|
77
|
+
value = make();
|
|
78
|
+
store.set(key, value);
|
|
79
|
+
}
|
|
80
|
+
return value;
|
|
81
|
+
},
|
|
82
|
+
getOrCreateStoreEffect: (key, make) => sem.withPermits(1)(Effect.uninterruptible(Effect.gen(function* () {
|
|
83
|
+
const value = store.get(key);
|
|
84
|
+
if (value !== undefined)
|
|
85
|
+
return value;
|
|
86
|
+
const v = yield* make;
|
|
87
|
+
store.set(key, v);
|
|
88
|
+
return v;
|
|
89
|
+
}))),
|
|
90
|
+
clear: () => {
|
|
91
|
+
etags.clear();
|
|
92
|
+
store.clear();
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
const makeMap = Effect.acquireRelease(Effect.sync(() => makeContextMap()), (m) => Effect.sync(() => m.clear()));
|
|
97
|
+
export class ContextMap extends Context.Opaque()("effect-app/ContextMap", { make: makeMap }) {
|
|
98
|
+
}
|
|
99
|
+
export class ContextMapContainer extends Context.Reference("ContextMapContainer", {
|
|
100
|
+
defaultValue: () => "root"
|
|
101
|
+
}) {
|
|
102
|
+
static layer = Layer.effect(this, ContextMap.make.pipe(Effect.map(ContextMap.of)));
|
|
103
|
+
}
|
|
104
|
+
export class ContextMapNotStartedError extends Data.TaggedError("ContextMapNotStartedError") {
|
|
105
|
+
}
|
|
106
|
+
export const getContextMap = ContextMapContainer.pipe(Effect.filterOrFail((_) => _ !== "root", () => new ContextMapNotStartedError()));
|
|
107
|
+
/**
|
|
108
|
+
* Runs `make` at most once per ContextMap (i.e. per request) and caches the
|
|
109
|
+
* resulting value in the ContextMap under a fresh symbol. Subsequent calls of
|
|
110
|
+
* the returned Effect within the same ContextMap return the cached value.
|
|
111
|
+
*
|
|
112
|
+
* Uses the ContextMap's shared semaphore for safe single initialization.
|
|
113
|
+
*/
|
|
114
|
+
export const cachedPerRequest = (make) => {
|
|
115
|
+
const cacheKey = Symbol();
|
|
116
|
+
return getContextMap.pipe(Effect.flatMap((ctxMap) => ctxMap.getOrCreateStoreEffect(cacheKey, make)));
|
|
117
|
+
};
|
|
118
|
+
const defaultNs = NonEmptyString255("primary");
|
|
119
|
+
export class storeId extends Context.Reference("StoreId", { defaultValue: () => defaultNs }) {
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sS0FBSyxJQUFJLE1BQU0sYUFBYSxDQUFBO0FBRW5DLE9BQU8sS0FBSyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFHN0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUE7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDckMsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUE7QUFNbkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBaUgvQyxNQUFNLE9BQU8sVUFBVyxTQUFRLE9BQU8sQ0FBQyxNQUFNLEVBTzFDLENBQUMsdUJBQXVCLENBQUM7Q0FDNUI7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFBO0lBQ3ZDLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzdDLE1BQU0sT0FBTyxHQUFHLENBQUMsRUFBVSxFQUFFLElBQXdCLEVBQUUsRUFBRTtRQUN2RCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2xCLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDckIsQ0FBQztJQUNILENBQUMsQ0FBQTtJQUVELCtCQUErQjtJQUMvQiwyQkFBMkI7SUFDM0IsZ0RBQWdEO0lBQ2hELE1BQU07SUFFTiwrQkFBK0I7SUFDL0IsMkJBQTJCO0lBQzNCLHNDQUFzQztJQUN0QyxNQUFNO0lBRU4s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
|
package/dist/TypeTest.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export declare const TypeTestId: "effect-app/type-test";
|
|
2
2
|
export type TypeTestId = typeof TypeTestId;
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVRlc3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9UeXBlVGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxlQUFPLE1BQU0sVUFBVSxFQUFHLHNCQUErQixDQUFBO0FBQ3pELE1BQU0sTUFBTSxVQUFVLEdBQUcsT0FBTyxVQUFVLENBQUEifQ==
|
package/dist/Types.d.ts
CHANGED
|
@@ -6,4 +6,4 @@ export type Mutable<T> = {
|
|
|
6
6
|
-readonly [P in keyof T]: T[P];
|
|
7
7
|
};
|
|
8
8
|
export type DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never;
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9UeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQTtBQUU1QixNQUFNLE1BQU0sV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FDdEcsQ0FBQyxTQUFTLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FDcEQsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUU3QixDQUFDLFNBQVMsTUFBTSxHQUFHLENBQUMsR0FDcEIsQ0FBQyxTQUFTLE1BQU0sR0FBRyxDQUFDLEdBQ3BCO0lBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQUUsQ0FBQTtBQUVuRCxNQUFNLE1BQU0sT0FBTyxDQUFDLENBQUMsSUFBSTtJQUN2QixDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDL0IsQ0FBQTtBQUVELE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FDN0UsS0FBSyxDQUFBIn0=
|
package/dist/Widen.type.d.ts
CHANGED
|
@@ -16,4 +16,4 @@ export type Widen<T> = [T] extends [BuiltInObject] | [Primitive] ? T : [T] exten
|
|
|
16
16
|
[K in AllKeys<T>]: Widen<Idx<T, K>>;
|
|
17
17
|
}, Exclude<AllKeys<T>, keyof T> | OptionalKeys<T>> : T;
|
|
18
18
|
export {};
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2lkZW4udHlwZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1dpZGVuLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFckQsS0FBSyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFBO0FBRWpELEtBQUssWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHO0tBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFNBQVMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSztDQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FDbkcsS0FBSyxDQUFBO0FBRVQsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxXQUFXLEVBQUUsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsU0FBUyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQ3BGLENBQUMsR0FDRCxLQUFLLENBQUE7QUFFVCxLQUFLLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxJQUNqQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxDQUFDLEdBQUc7S0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUFFLEdBQzlELEtBQUssQ0FBQTtBQUVULE1BQU0sTUFBTSxTQUFTLEdBQUcsT0FBTyxHQUFHLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxHQUFHLE1BQU0sR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFBO0FBQ3RGLE1BQU0sTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FDaEUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHO0tBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FBRSxHQUM5RCxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUc7S0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUFFLEdBQ3RFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxXQUFXLENBQ2hDO0tBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUFFLEVBQ3ZDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQy9DLEdBQ0QsQ0FBQyxDQUFBIn0=
|
package/dist/_ext/Array.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Effect from "effect-app/Effect";
|
|
2
2
|
import { NotFoundError } from "../client/errors.js";
|
|
3
3
|
export declare function makeGetFirstBy<A>(): <const Id extends keyof A, Type extends string>(idKey: Id, type: Type) => (a: Iterable<A>, id: A[Id]) => Effect.Effect<A, NotFoundError<Type>, never>;
|
|
4
4
|
export declare const makeGetFirstById: <A extends {
|
|
@@ -7,4 +7,4 @@ export declare const makeGetFirstById: <A extends {
|
|
|
7
7
|
export declare function getFirstById<A extends {
|
|
8
8
|
id: unknown;
|
|
9
9
|
}, Type extends string>(a: Iterable<A>, id: A["id"], type: Type): Effect.Effect<A, NotFoundError<Type>, never>;
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fZXh0L0FycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBZW5ELHdCQUFnQixjQUFjLENBQUMsQ0FBQyxNQUN0QixLQUFLLENBQUMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxFQUFFLElBQUksU0FBUyxNQUFNLFNBQVMsRUFBRSxRQUFRLElBQUksU0FFdkUsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUNWLENBQUMsQ0FBQyxFQUFFLENBQUMsa0RBRVo7QUFFRCxlQUFPLE1BQU0sZ0JBQWdCLEdBQUksQ0FBQyxTQUFTO0lBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQTtDQUFFLFFBQVEsSUFBSSxTQUFTLE1BQU0sUUFBUSxJQUFJLGtGQUNoRSxDQUFBO0FBRWpDLHdCQUFnQixZQUFZLENBQUMsQ0FBQyxTQUFTO0lBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQTtDQUFFLEVBQUUsSUFBSSxTQUFTLE1BQU0sRUFDekUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDZCxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNYLElBQUksRUFBRSxJQUFJLGdEQUdYIn0=
|
package/dist/_ext/Array.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../src/_ext/Array.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Array.d.ts","sourceRoot":"","sources":["../../src/_ext/Array.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAenD,wBAAgB,cAAc,CAAC,CAAC,MACtB,KAAK,CAAC,EAAE,SAAS,MAAM,CAAC,EAAE,IAAI,SAAS,MAAM,SAAS,EAAE,QAAQ,IAAI,SAEvE,QAAQ,CAAC,CAAC,CAAC,MACV,CAAC,CAAC,EAAE,CAAC,kDAEZ;AAED,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,QAAQ,IAAI,SAAS,MAAM,QAAQ,IAAI,kFAChE,CAAA;AAEjC,wBAAgB,YAAY,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,SAAS,MAAM,EACzE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EACd,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EACX,IAAI,EAAE,IAAI,gDAGX"}
|
package/dist/_ext/Array.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Chunk from "effect-app/Chunk";
|
|
2
|
+
import * as Effect from "effect-app/Effect";
|
|
3
|
+
import * as Equal from "effect/Equal";
|
|
2
4
|
import { NotFoundError } from "../client/errors.js";
|
|
3
5
|
function getFirstBy(a, idKey, id, type) {
|
|
4
6
|
return Effect
|
|
@@ -12,4 +14,4 @@ export const makeGetFirstById = () => (type) => makeGetFirstBy()("id", type);
|
|
|
12
14
|
export function getFirstById(a, id, type) {
|
|
13
15
|
return getFirstBy(a, "id", id, type);
|
|
14
16
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvX2V4dC9BcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRW5ELFNBQVMsVUFBVSxDQUNqQixDQUFjLEVBQ2QsS0FBYyxFQUNkLEVBQW1CLEVBQ25CLElBQVU7SUFFVixPQUFPLE1BQU07U0FDVixVQUFVLENBQ1QsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUMvRTtTQUNBLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksYUFBYSxDQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3ZFLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYztJQUM1QixPQUFPLENBQWdELEtBQVMsRUFBRSxJQUFVLEVBQUUsRUFBRSxDQUNoRixDQUNFLENBQWMsRUFDZCxFQUFTLEVBQ1QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUNyQyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBOEIsRUFBRSxDQUFDLENBQXNCLElBQVUsRUFBRSxFQUFFLENBQ25HLGNBQWMsRUFBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUVqQyxNQUFNLFVBQVUsWUFBWSxDQUMxQixDQUFjLEVBQ2QsRUFBVyxFQUNYLElBQVU7SUFFVixPQUFPLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUN0QyxDQUFDIn0=
|
package/dist/_ext/date.d.ts
CHANGED
|
@@ -12,4 +12,4 @@ export declare const DateAddMonths: (date: Date, amount: number) => Date;
|
|
|
12
12
|
export declare const DateSubMonths: (date: Date, amount: number) => Date;
|
|
13
13
|
export declare const DateAddWeeks: (date: Date, amount: number) => Date;
|
|
14
14
|
export declare const DateSubWeeks: (date: Date, amount: number) => Date;
|
|
15
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL19leHQvZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxlQUFPLE1BQU0sV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQWMsQ0FBQTtBQUN4RSxlQUFPLE1BQU0sV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQWMsQ0FBQTtBQUV4RSxlQUFPLE1BQU0sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQWUsQ0FBQTtBQUMxRSxlQUFPLE1BQU0sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQWUsQ0FBQTtBQUUxRSxlQUFPLE1BQU0sY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQWlCLENBQUE7QUFFOUUsZUFBTyxNQUFNLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxJQUFpQixDQUFBO0FBRTlFLGVBQU8sTUFBTSxjQUFjLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEtBQUssSUFBaUIsQ0FBQTtBQUU5RSxlQUFPLE1BQU0sY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQWlCLENBQUE7QUFFOUUsZUFBTyxNQUFNLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxJQUFlLENBQUE7QUFFMUUsZUFBTyxNQUFNLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxJQUFlLENBQUE7QUFFMUUsZUFBTyxNQUFNLGFBQWEsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxJQUFnQixDQUFBO0FBRTVFLGVBQU8sTUFBTSxhQUFhLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEtBQUssSUFBZ0IsQ0FBQTtBQUU1RSxlQUFPLE1BQU0sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQWUsQ0FBQTtBQUUxRSxlQUFPLE1BQU0sWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLElBQWUsQ0FBQSJ9
|
package/dist/_ext/misc.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { Effect, Option, Result, type Scope } from "effect";
|
|
2
1
|
import type { LazyArg } from "effect-app/Function";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Option from "effect/Option";
|
|
4
|
+
import * as Result from "effect/Result";
|
|
5
|
+
import type * as Scope from "effect/Scope";
|
|
3
6
|
export type _R<T extends Effect.Effect<any, any, any>> = [T] extends [
|
|
4
7
|
Effect.Effect<any, any, infer R>
|
|
5
8
|
] ? R : never;
|
|
@@ -11,4 +14,4 @@ export declare function encaseMaybeEither_<E, A>(o: Option.Option<A>, onError: L
|
|
|
11
14
|
export declare function toNullable<R, E, A>(self: Effect.Effect<Option.Option<A>, E, R>): Effect.Effect<A | null, E, R>;
|
|
12
15
|
export declare function scope<R, E, A, R2, E2, A2>(scopedEffect: Effect.Effect<A, E, R | Scope.Scope>, effect: Effect.Effect<A2, E2, R2>): Effect.Effect<A2, E | E2, Exclude<R | R2, Scope.Scope>>;
|
|
13
16
|
export declare function flatMapScoped<R, E, A, R2, E2, A2>(scopedEffect: Effect.Effect<A, E, R | Scope.Scope>, effect: (a: A) => Effect.Effect<A2, E2, R2>): Effect.Effect<A2, E | E2, Exclude<R | R2, Scope.Scope>>;
|
|
14
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL19leHQvbWlzYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNsRCxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEtBQUssS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBRTFDLE1BQU0sTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTO0lBQ25FLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztDQUNqQyxHQUFHLENBQUMsR0FDRCxLQUFLLENBQUE7QUFFVCxNQUFNLE1BQU0sRUFBRSxDQUFDLENBQUMsU0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUztJQUNuRSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUM7Q0FDakMsR0FBRyxDQUFDLEdBQ0QsS0FBSyxDQUFBO0FBRVQsd0JBQWdCLG9CQUFvQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ3ZDLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUNuQixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FFckI7QUFFRCx3QkFBZ0Isa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDckMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQ25CLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQ2xCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUVyQjtBQUVELHdCQUFnQixVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQ2hDLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxpQ0FHNUM7QUFFRCx3QkFBZ0IsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUN2QyxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQ2xELE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQ2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBRXpEO0FBRUQsd0JBQWdCLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFDL0MsWUFBWSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUNsRCxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FDMUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FFekQifQ==
|
package/dist/_ext/misc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/_ext/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/_ext/misc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,MAAM,MAAM,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;IACnE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;CACjC,GAAG,CAAC,GACD,KAAK,CAAA;AAET,MAAM,MAAM,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;IACnE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC;CACjC,GAAG,CAAC,GACD,KAAK,CAAA;AAET,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EACvC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAClB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAErB;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,CAAC,EACrC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAClB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAErB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAChC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,iCAG5C;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACvC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAClD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAChC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAEzD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC/C,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAClD,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAEzD"}
|
package/dist/_ext/misc.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Option from "effect/Option";
|
|
3
|
+
import * as Result from "effect/Result";
|
|
2
4
|
export function encaseMaybeInEffect_(o, onError) {
|
|
3
5
|
return Option.match(o, { onNone: () => Effect.fail(onError()), onSome: Effect.succeed });
|
|
4
6
|
}
|
|
@@ -14,4 +16,4 @@ export function scope(scopedEffect, effect) {
|
|
|
14
16
|
export function flatMapScoped(scopedEffect, effect) {
|
|
15
17
|
return scopedEffect.pipe(Effect.flatMap(effect), Effect.scoped);
|
|
16
18
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fZXh0L21pc2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFhdkMsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxDQUFtQixFQUNuQixPQUFtQjtJQUVuQixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUE7QUFDMUYsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsQ0FBbUIsRUFDbkIsT0FBbUI7SUFFbkIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0FBQzFGLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixJQUEyQztJQUUzQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLLENBQ25CLFlBQWtELEVBQ2xELE1BQWlDO0lBRWpDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNqRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsWUFBa0QsRUFDbEQsTUFBMkM7SUFFM0MsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ2pFLENBQUMifQ==
|
package/dist/_ext/ord.ext.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Chunk from "effect/Chunk";
|
|
2
|
+
import type * as Equivalence from "effect/Equivalence";
|
|
2
3
|
export declare function toArray<A>(gen: Generator<A, void, unknown>): A[];
|
|
3
4
|
/**
|
|
4
5
|
* Remove duplicates from an array, keeping the first occurrence of an element.
|
|
@@ -10,4 +11,4 @@ export declare function uniq<A>(E: Equivalence.Equivalence<A>): (self: Chunk.Chu
|
|
|
10
11
|
* in an array of type `Chunk.Chunk<A>`.
|
|
11
12
|
*/
|
|
12
13
|
export declare function elem<A>(E: Equivalence.Equivalence<A>, value: A): (self: Chunk.Chunk<A>) => boolean;
|
|
13
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkLmV4dC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL19leHQvb3JkLmV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxPQUFPLEtBQUssS0FBSyxXQUFXLE1BQU0sb0JBQW9CLENBQUE7QUFFdEQsd0JBQWdCLE9BQU8sQ0FBQyxDQUFDLEVBQ3ZCLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsT0FHakM7QUFFRDs7R0FFRztBQUNILHdCQUFnQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUNyQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBVTlDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLFVBQy9DLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUcsT0FBTyxDQVF2QyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ord.ext.d.ts","sourceRoot":"","sources":["../../src/_ext/ord.ext.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ord.ext.d.ts","sourceRoot":"","sources":["../../src/_ext/ord.ext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,WAAW,MAAM,oBAAoB,CAAA;AAEtD,wBAAgB,OAAO,CAAC,CAAC,EACvB,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAGjC;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,UACrC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAU9C;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,UAC/C,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAG,OAAO,CAQvC"}
|
package/dist/_ext/ord.ext.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Chunk from "effect/Chunk";
|
|
2
2
|
export function toArray(gen) {
|
|
3
3
|
return Array.from(gen);
|
|
4
4
|
}
|
|
@@ -32,4 +32,4 @@ export function elem(E, value) {
|
|
|
32
32
|
return false;
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkLmV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fZXh0L29yZC5leHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFHckMsTUFBTSxVQUFVLE9BQU8sQ0FDckIsR0FBZ0M7SUFFaEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3hCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQUksQ0FBNkI7SUFDbkQsT0FBTyxDQUFDLElBQW9CLEVBQWtCLEVBQUU7UUFDOUMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBSSxFQUFFLENBQUMsQ0FBQTtRQUNuQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUM1QixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUNoRCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQUksQ0FBNkIsRUFBRSxLQUFRO0lBQzdELE9BQU8sQ0FBQyxJQUFvQixFQUFXLEVBQUU7UUFDdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDLENBQUE7QUFDSCxDQUFDIn0=
|
package/dist/builtin.d.ts
CHANGED
|
@@ -40,4 +40,4 @@ declare module "effect/Option" {
|
|
|
40
40
|
get value(): A | undefined;
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
//# sourceMappingURL=
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbHRpbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2J1aWx0aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXhFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNkLFVBQVUsTUFBTTtRQUNkOzs7O1dBSUc7UUFDSCxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUE7U0FBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFFcEg7Ozs7V0FJRztRQUNILEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0tBQ3pFO0lBRUQsVUFBVSxJQUFJO1FBQ1o7Ozs7O1dBS0c7UUFDSCxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLEdBQUcsR0FBRyxPQUFPLENBQUE7S0FDcEY7SUFFRCxVQUFVLElBQUk7UUFDWixJQUFJLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQ3pCO0lBRUQsVUFBVSxLQUFLLENBQUMsQ0FBQztRQUNmLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNOLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQ3RCLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sS0FBSyxDQUFDLEdBQzlCLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNwQjtJQUNELFVBQVUsYUFBYSxDQUFDLENBQUM7UUFJdkIsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ04sSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUM5QixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxHQUM5QixxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUM1QjtDQUNGO0FBRUQsT0FBTyxRQUFRLGVBQWUsQ0FBQyxDQUFDO0lBQzlCLFVBQWlCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFBO0tBQzNCO0NBQ0YifQ==
|
package/dist/builtin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../src/builtin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAExE,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../src/builtin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAExE,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,MAAM;QACd;;;;WAIG;QACH,KAAK,CAAC,QAAQ,EAAE;YAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;SAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;QAEpH;;;;WAIG;QACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;KACzE;IAED,UAAU,IAAI;QACZ;;;;;WAKG;QACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,GAAG,OAAO,CAAA;KACpF;IAED,UAAU,IAAI;QACZ,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;KACzB;IAED,UAAU,KAAK,CAAC,CAAC;QACf,GAAG,CAAC,CAAC,EAAE,CAAC,EACN,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,EACtB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAC9B,aAAa,CAAC,CAAC,CAAC,CAAA;KACpB;IACD,UAAU,aAAa,CAAC,CAAC;QAIvB,GAAG,CAAC,CAAC,EAAE,CAAC,EACN,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAC9B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAC9B,qBAAqB,CAAC,CAAC,CAAC,CAAA;KAC5B;CACF;AAED,OAAO,QAAQ,eAAe,CAAC,CAAC;IAC9B,UAAiB,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;KAC3B;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as Ref from "effect/Ref";
|
|
2
|
+
import * as Context from "../Context.js";
|
|
3
|
+
import * as Effect from "../Effect.js";
|
|
4
|
+
import type { InvalidationKey } from "../rpc/Invalidation.js";
|
|
5
|
+
export type { InvalidationKey };
|
|
6
|
+
/** Shape of the per-mutation service that accumulates server-provided invalidation keys. */
|
|
7
|
+
export interface InvalidationKeysService {
|
|
8
|
+
readonly add: (key: InvalidationKey) => Effect.Effect<void>;
|
|
9
|
+
readonly get: Effect.Effect<ReadonlyArray<InvalidationKey>>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Context.Reference that accumulates invalidation keys received from the server via the
|
|
13
|
+
* `x-invalidate` HTTP response header.
|
|
14
|
+
*
|
|
15
|
+
* The default is a no-op: when not explicitly provided (e.g. outside a mutation wrapper)
|
|
16
|
+
* all calls are ignored. The mutation wrapper in `@effect-app/vue` provides a real
|
|
17
|
+
* implementation backed by a `Ref`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const InvalidationKeysFromServer: Context.Reference<InvalidationKeysService>;
|
|
20
|
+
export type InvalidationKeysFromServer = typeof InvalidationKeysFromServer;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a fresh `InvalidationKeysService` implementation backed by a `Ref`.
|
|
23
|
+
*
|
|
24
|
+
* @param ref - The `Ref` that stores the accumulated keys.
|
|
25
|
+
* @param onAdded - V3: Optional Effect run after a key is added. Use to trigger mid-stream
|
|
26
|
+
* query invalidation without waiting for the stream to complete.
|
|
27
|
+
*/
|
|
28
|
+
export declare const makeInvalidationKeysService: (ref: Ref.Ref<ReadonlyArray<InvalidationKey>>, onAdded?: (key: InvalidationKey) => Effect.Effect<void>) => InvalidationKeysService;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW52YWxpZGF0aW9uS2V5cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9JbnZhbGlkYXRpb25LZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFBO0FBQ2pDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ3RDLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRTdELFlBQVksRUFBRSxlQUFlLEVBQUUsQ0FBQTtBQUMvQiw0RkFBNEY7QUFDNUYsTUFBTSxXQUFXLHVCQUF1QjtJQUN0QyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLGVBQWUsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzNELFFBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQTtDQUM1RDtBQUVEOzs7Ozs7O0dBT0c7QUFDSCxlQUFPLE1BQU0sMEJBQTBCLDRDQVF0QyxDQUFBO0FBQ0QsTUFBTSxNQUFNLDBCQUEwQixHQUFHLE9BQU8sMEJBQTBCLENBQUE7QUFFMUU7Ozs7OztHQU1HO0FBQ0gsZUFBTyxNQUFNLDJCQUEyQixRQUNqQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxZQUNsQyxDQUFDLEdBQUcsRUFBRSxlQUFlLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FDdEQsdUJBUUQsQ0FBQSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvalidationKeys.d.ts","sourceRoot":"","sources":["../../src/client/InvalidationKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,YAAY,CAAA;AACjC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE7D,YAAY,EAAE,eAAe,EAAE,CAAA;AAC/B,4FAA4F;AAC5F,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAA;CAC5D;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,4CAQtC,CAAA;AACD,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAA;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,QACjC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,YAClC,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KACtD,uBAQD,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as Ref from "effect/Ref";
|
|
2
|
+
import * as Context from "../Context.js";
|
|
3
|
+
import * as Effect from "../Effect.js";
|
|
4
|
+
/**
|
|
5
|
+
* Context.Reference that accumulates invalidation keys received from the server via the
|
|
6
|
+
* `x-invalidate` HTTP response header.
|
|
7
|
+
*
|
|
8
|
+
* The default is a no-op: when not explicitly provided (e.g. outside a mutation wrapper)
|
|
9
|
+
* all calls are ignored. The mutation wrapper in `@effect-app/vue` provides a real
|
|
10
|
+
* implementation backed by a `Ref`.
|
|
11
|
+
*/
|
|
12
|
+
export const InvalidationKeysFromServer = Context.Reference("effect-app/client/InvalidationKeysFromServer", {
|
|
13
|
+
defaultValue: () => ({
|
|
14
|
+
add: (_key) => Effect.void,
|
|
15
|
+
get: Effect.succeed([])
|
|
16
|
+
})
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Creates a fresh `InvalidationKeysService` implementation backed by a `Ref`.
|
|
20
|
+
*
|
|
21
|
+
* @param ref - The `Ref` that stores the accumulated keys.
|
|
22
|
+
* @param onAdded - V3: Optional Effect run after a key is added. Use to trigger mid-stream
|
|
23
|
+
* query invalidation without waiting for the stream to complete.
|
|
24
|
+
*/
|
|
25
|
+
export const makeInvalidationKeysService = (ref, onAdded) => ({
|
|
26
|
+
// When onAdded is set, fire it immediately without accumulating in the ref —
|
|
27
|
+
// the key is handled on arrival and must not be re-processed at stream end.
|
|
28
|
+
add: (key) => onAdded
|
|
29
|
+
? onAdded(key)
|
|
30
|
+
: Ref.update(ref, (keys) => [...keys, key]),
|
|
31
|
+
get: Ref.get(ref)
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW52YWxpZGF0aW9uS2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvSW52YWxpZGF0aW9uS2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQTtBQUNqQyxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEtBQUssTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQVV0Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FDekQsOENBQThDLEVBQzlDO0lBQ0UsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbkIsR0FBRyxFQUFFLENBQUMsSUFBcUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDM0MsR0FBRyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBb0MsQ0FBQztLQUMxRCxDQUFDO0NBQ0gsQ0FDRixDQUFBO0FBR0Q7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FDekMsR0FBNEMsRUFDNUMsT0FBdUQsRUFDOUIsRUFBRSxDQUFDLENBQUM7SUFDN0IsNkVBQTZFO0lBQzdFLDRFQUE0RTtJQUM1RSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNYLE9BQU87UUFDTCxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNkLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMvQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7Q0FDbEIsQ0FBQyxDQUFBIn0=
|