@proseql/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/errors/crud-errors.d.ts +98 -0
- package/dist/errors/crud-errors.d.ts.map +1 -0
- package/dist/errors/crud-errors.js +23 -0
- package/dist/errors/crud-errors.js.map +1 -0
- package/dist/errors/index.d.ts +16 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +12 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/migration-errors.d.ts +22 -0
- package/dist/errors/migration-errors.d.ts.map +1 -0
- package/dist/errors/migration-errors.js +14 -0
- package/dist/errors/migration-errors.js.map +1 -0
- package/dist/errors/plugin-errors.d.ts +15 -0
- package/dist/errors/plugin-errors.d.ts.map +1 -0
- package/dist/errors/plugin-errors.js +11 -0
- package/dist/errors/plugin-errors.js.map +1 -0
- package/dist/errors/query-errors.d.ts +31 -0
- package/dist/errors/query-errors.d.ts.map +1 -0
- package/dist/errors/query-errors.js +11 -0
- package/dist/errors/query-errors.js.map +1 -0
- package/dist/errors/storage-errors.d.ts +30 -0
- package/dist/errors/storage-errors.d.ts.map +1 -0
- package/dist/errors/storage-errors.js +11 -0
- package/dist/errors/storage-errors.js.map +1 -0
- package/dist/factories/crud-factory-with-relationships.d.ts +28 -0
- package/dist/factories/crud-factory-with-relationships.d.ts.map +1 -0
- package/dist/factories/crud-factory-with-relationships.js +8 -0
- package/dist/factories/crud-factory-with-relationships.js.map +1 -0
- package/dist/factories/crud-factory.d.ts +25 -0
- package/dist/factories/crud-factory.d.ts.map +1 -0
- package/dist/factories/crud-factory.js +8 -0
- package/dist/factories/crud-factory.js.map +1 -0
- package/dist/factories/database-effect.d.ts +241 -0
- package/dist/factories/database-effect.d.ts.map +1 -0
- package/dist/factories/database-effect.js +859 -0
- package/dist/factories/database-effect.js.map +1 -0
- package/dist/hooks/hook-runner.d.ts +60 -0
- package/dist/hooks/hook-runner.d.ts.map +1 -0
- package/dist/hooks/hook-runner.js +107 -0
- package/dist/hooks/hook-runner.js.map +1 -0
- package/dist/index.d.ts +84 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +110 -0
- package/dist/index.js.map +1 -0
- package/dist/indexes/index-lookup.d.ts +33 -0
- package/dist/indexes/index-lookup.d.ts.map +1 -0
- package/dist/indexes/index-lookup.js +180 -0
- package/dist/indexes/index-lookup.js.map +1 -0
- package/dist/indexes/index-manager.d.ts +118 -0
- package/dist/indexes/index-manager.d.ts.map +1 -0
- package/dist/indexes/index-manager.js +345 -0
- package/dist/indexes/index-manager.js.map +1 -0
- package/dist/indexes/search-index.d.ts +179 -0
- package/dist/indexes/search-index.d.ts.map +1 -0
- package/dist/indexes/search-index.js +405 -0
- package/dist/indexes/search-index.js.map +1 -0
- package/dist/migrations/migration-runner.d.ts +70 -0
- package/dist/migrations/migration-runner.d.ts.map +1 -0
- package/dist/migrations/migration-runner.js +271 -0
- package/dist/migrations/migration-runner.js.map +1 -0
- package/dist/migrations/migration-types.d.ts +63 -0
- package/dist/migrations/migration-types.d.ts.map +1 -0
- package/dist/migrations/migration-types.js +5 -0
- package/dist/migrations/migration-types.js.map +1 -0
- package/dist/operations/crud/create-with-relationships.d.ts +44 -0
- package/dist/operations/crud/create-with-relationships.d.ts.map +1 -0
- package/dist/operations/crud/create-with-relationships.js +483 -0
- package/dist/operations/crud/create-with-relationships.js.map +1 -0
- package/dist/operations/crud/create.d.ts +48 -0
- package/dist/operations/crud/create.d.ts.map +1 -0
- package/dist/operations/crud/create.js +333 -0
- package/dist/operations/crud/create.js.map +1 -0
- package/dist/operations/crud/delete-with-relationships.d.ts +63 -0
- package/dist/operations/crud/delete-with-relationships.d.ts.map +1 -0
- package/dist/operations/crud/delete-with-relationships.js +395 -0
- package/dist/operations/crud/delete-with-relationships.js.map +1 -0
- package/dist/operations/crud/delete.d.ts +58 -0
- package/dist/operations/crud/delete.d.ts.map +1 -0
- package/dist/operations/crud/delete.js +267 -0
- package/dist/operations/crud/delete.js.map +1 -0
- package/dist/operations/crud/unique-check.d.ts +114 -0
- package/dist/operations/crud/unique-check.d.ts.map +1 -0
- package/dist/operations/crud/unique-check.js +383 -0
- package/dist/operations/crud/unique-check.js.map +1 -0
- package/dist/operations/crud/update-with-relationships.d.ts +45 -0
- package/dist/operations/crud/update-with-relationships.d.ts.map +1 -0
- package/dist/operations/crud/update-with-relationships.js +516 -0
- package/dist/operations/crud/update-with-relationships.js.map +1 -0
- package/dist/operations/crud/update.d.ts +91 -0
- package/dist/operations/crud/update.d.ts.map +1 -0
- package/dist/operations/crud/update.js +505 -0
- package/dist/operations/crud/update.js.map +1 -0
- package/dist/operations/crud/upsert.d.ts +52 -0
- package/dist/operations/crud/upsert.d.ts.map +1 -0
- package/dist/operations/crud/upsert.js +386 -0
- package/dist/operations/crud/upsert.js.map +1 -0
- package/dist/operations/query/aggregate.d.ts +30 -0
- package/dist/operations/query/aggregate.d.ts.map +1 -0
- package/dist/operations/query/aggregate.js +227 -0
- package/dist/operations/query/aggregate.js.map +1 -0
- package/dist/operations/query/cursor-stream.d.ts +18 -0
- package/dist/operations/query/cursor-stream.d.ts.map +1 -0
- package/dist/operations/query/cursor-stream.js +199 -0
- package/dist/operations/query/cursor-stream.js.map +1 -0
- package/dist/operations/query/filter-stream.d.ts +12 -0
- package/dist/operations/query/filter-stream.d.ts.map +1 -0
- package/dist/operations/query/filter-stream.js +167 -0
- package/dist/operations/query/filter-stream.js.map +1 -0
- package/dist/operations/query/filter.d.ts +13 -0
- package/dist/operations/query/filter.d.ts.map +1 -0
- package/dist/operations/query/filter.js +267 -0
- package/dist/operations/query/filter.js.map +1 -0
- package/dist/operations/query/paginate-stream.d.ts +11 -0
- package/dist/operations/query/paginate-stream.d.ts.map +1 -0
- package/dist/operations/query/paginate-stream.js +22 -0
- package/dist/operations/query/paginate-stream.js.map +1 -0
- package/dist/operations/query/query-helpers.d.ts +14 -0
- package/dist/operations/query/query-helpers.d.ts.map +1 -0
- package/dist/operations/query/query-helpers.js +22 -0
- package/dist/operations/query/query-helpers.js.map +1 -0
- package/dist/operations/query/resolve-computed.d.ts +142 -0
- package/dist/operations/query/resolve-computed.d.ts.map +1 -0
- package/dist/operations/query/resolve-computed.js +197 -0
- package/dist/operations/query/resolve-computed.js.map +1 -0
- package/dist/operations/query/search.d.ts +110 -0
- package/dist/operations/query/search.d.ts.map +1 -0
- package/dist/operations/query/search.js +188 -0
- package/dist/operations/query/search.js.map +1 -0
- package/dist/operations/query/select-stream.d.ts +27 -0
- package/dist/operations/query/select-stream.d.ts.map +1 -0
- package/dist/operations/query/select-stream.js +88 -0
- package/dist/operations/query/select-stream.js.map +1 -0
- package/dist/operations/query/select.d.ts +54 -0
- package/dist/operations/query/select.d.ts.map +1 -0
- package/dist/operations/query/select.js +159 -0
- package/dist/operations/query/select.js.map +1 -0
- package/dist/operations/query/sort-stream.d.ts +46 -0
- package/dist/operations/query/sort-stream.d.ts.map +1 -0
- package/dist/operations/query/sort-stream.js +158 -0
- package/dist/operations/query/sort-stream.js.map +1 -0
- package/dist/operations/query/sort.d.ts +9 -0
- package/dist/operations/query/sort.d.ts.map +1 -0
- package/dist/operations/query/sort.js +58 -0
- package/dist/operations/query/sort.js.map +1 -0
- package/dist/operations/relationships/populate-stream.d.ts +29 -0
- package/dist/operations/relationships/populate-stream.d.ts.map +1 -0
- package/dist/operations/relationships/populate-stream.js +159 -0
- package/dist/operations/relationships/populate-stream.js.map +1 -0
- package/dist/operations/relationships/populate.d.ts +15 -0
- package/dist/operations/relationships/populate.d.ts.map +1 -0
- package/dist/operations/relationships/populate.js +228 -0
- package/dist/operations/relationships/populate.js.map +1 -0
- package/dist/plugins/plugin-hooks.d.ts +25 -0
- package/dist/plugins/plugin-hooks.d.ts.map +1 -0
- package/dist/plugins/plugin-hooks.js +64 -0
- package/dist/plugins/plugin-hooks.js.map +1 -0
- package/dist/plugins/plugin-registry.d.ts +26 -0
- package/dist/plugins/plugin-registry.d.ts.map +1 -0
- package/dist/plugins/plugin-registry.js +150 -0
- package/dist/plugins/plugin-registry.js.map +1 -0
- package/dist/plugins/plugin-types.d.ts +95 -0
- package/dist/plugins/plugin-types.d.ts.map +1 -0
- package/dist/plugins/plugin-types.js +6 -0
- package/dist/plugins/plugin-types.js.map +1 -0
- package/dist/plugins/plugin-validation.d.ts +49 -0
- package/dist/plugins/plugin-validation.d.ts.map +1 -0
- package/dist/plugins/plugin-validation.js +295 -0
- package/dist/plugins/plugin-validation.js.map +1 -0
- package/dist/reactive/change-event.d.ts +44 -0
- package/dist/reactive/change-event.d.ts.map +1 -0
- package/dist/reactive/change-event.js +49 -0
- package/dist/reactive/change-event.js.map +1 -0
- package/dist/reactive/change-pubsub.d.ts +32 -0
- package/dist/reactive/change-pubsub.d.ts.map +1 -0
- package/dist/reactive/change-pubsub.js +31 -0
- package/dist/reactive/change-pubsub.js.map +1 -0
- package/dist/reactive/evaluate-query.d.ts +62 -0
- package/dist/reactive/evaluate-query.d.ts.map +1 -0
- package/dist/reactive/evaluate-query.js +57 -0
- package/dist/reactive/evaluate-query.js.map +1 -0
- package/dist/reactive/watch-by-id.d.ts +53 -0
- package/dist/reactive/watch-by-id.d.ts.map +1 -0
- package/dist/reactive/watch-by-id.js +55 -0
- package/dist/reactive/watch-by-id.js.map +1 -0
- package/dist/reactive/watch.d.ts +78 -0
- package/dist/reactive/watch.d.ts.map +1 -0
- package/dist/reactive/watch.js +133 -0
- package/dist/reactive/watch.js.map +1 -0
- package/dist/serializers/codecs/hjson.d.ts +33 -0
- package/dist/serializers/codecs/hjson.d.ts.map +1 -0
- package/dist/serializers/codecs/hjson.js +40 -0
- package/dist/serializers/codecs/hjson.js.map +1 -0
- package/dist/serializers/codecs/json.d.ts +22 -0
- package/dist/serializers/codecs/json.d.ts.map +1 -0
- package/dist/serializers/codecs/json.js +28 -0
- package/dist/serializers/codecs/json.js.map +1 -0
- package/dist/serializers/codecs/json5.d.ts +26 -0
- package/dist/serializers/codecs/json5.d.ts.map +1 -0
- package/dist/serializers/codecs/json5.js +33 -0
- package/dist/serializers/codecs/json5.js.map +1 -0
- package/dist/serializers/codecs/jsonc.d.ts +29 -0
- package/dist/serializers/codecs/jsonc.d.ts.map +1 -0
- package/dist/serializers/codecs/jsonc.js +38 -0
- package/dist/serializers/codecs/jsonc.js.map +1 -0
- package/dist/serializers/codecs/jsonl.d.ts +17 -0
- package/dist/serializers/codecs/jsonl.d.ts.map +1 -0
- package/dist/serializers/codecs/jsonl.js +31 -0
- package/dist/serializers/codecs/jsonl.js.map +1 -0
- package/dist/serializers/codecs/prose.d.ts +419 -0
- package/dist/serializers/codecs/prose.d.ts.map +1 -0
- package/dist/serializers/codecs/prose.js +1060 -0
- package/dist/serializers/codecs/prose.js.map +1 -0
- package/dist/serializers/codecs/toml.d.ts +23 -0
- package/dist/serializers/codecs/toml.d.ts.map +1 -0
- package/dist/serializers/codecs/toml.js +66 -0
- package/dist/serializers/codecs/toml.js.map +1 -0
- package/dist/serializers/codecs/toon.d.ts +20 -0
- package/dist/serializers/codecs/toon.d.ts.map +1 -0
- package/dist/serializers/codecs/toon.js +33 -0
- package/dist/serializers/codecs/toon.js.map +1 -0
- package/dist/serializers/codecs/yaml.d.ts +24 -0
- package/dist/serializers/codecs/yaml.d.ts.map +1 -0
- package/dist/serializers/codecs/yaml.js +31 -0
- package/dist/serializers/codecs/yaml.js.map +1 -0
- package/dist/serializers/format-codec.d.ts +53 -0
- package/dist/serializers/format-codec.d.ts.map +1 -0
- package/dist/serializers/format-codec.js +148 -0
- package/dist/serializers/format-codec.js.map +1 -0
- package/dist/serializers/presets.d.ts +48 -0
- package/dist/serializers/presets.d.ts.map +1 -0
- package/dist/serializers/presets.js +72 -0
- package/dist/serializers/presets.js.map +1 -0
- package/dist/serializers/serializer-service.d.ts +11 -0
- package/dist/serializers/serializer-service.d.ts.map +1 -0
- package/dist/serializers/serializer-service.js +4 -0
- package/dist/serializers/serializer-service.js.map +1 -0
- package/dist/state/collection-state.d.ts +19 -0
- package/dist/state/collection-state.d.ts.map +1 -0
- package/dist/state/collection-state.js +15 -0
- package/dist/state/collection-state.js.map +1 -0
- package/dist/state/state-operations.d.ts +38 -0
- package/dist/state/state-operations.d.ts.map +1 -0
- package/dist/state/state-operations.js +65 -0
- package/dist/state/state-operations.js.map +1 -0
- package/dist/storage/in-memory-adapter-layer.d.ts +16 -0
- package/dist/storage/in-memory-adapter-layer.d.ts.map +1 -0
- package/dist/storage/in-memory-adapter-layer.js +81 -0
- package/dist/storage/in-memory-adapter-layer.js.map +1 -0
- package/dist/storage/persistence-effect.d.ts +244 -0
- package/dist/storage/persistence-effect.d.ts.map +1 -0
- package/dist/storage/persistence-effect.js +551 -0
- package/dist/storage/persistence-effect.js.map +1 -0
- package/dist/storage/storage-service.d.ts +22 -0
- package/dist/storage/storage-service.d.ts.map +1 -0
- package/dist/storage/storage-service.js +4 -0
- package/dist/storage/storage-service.js.map +1 -0
- package/dist/storage/transforms.d.ts +183 -0
- package/dist/storage/transforms.d.ts.map +1 -0
- package/dist/storage/transforms.js +263 -0
- package/dist/storage/transforms.js.map +1 -0
- package/dist/transactions/transaction.d.ts +87 -0
- package/dist/transactions/transaction.d.ts.map +1 -0
- package/dist/transactions/transaction.js +240 -0
- package/dist/transactions/transaction.js.map +1 -0
- package/dist/types/aggregate-types.d.ts +73 -0
- package/dist/types/aggregate-types.d.ts.map +1 -0
- package/dist/types/aggregate-types.js +14 -0
- package/dist/types/aggregate-types.js.map +1 -0
- package/dist/types/computed-types.d.ts +71 -0
- package/dist/types/computed-types.d.ts.map +1 -0
- package/dist/types/computed-types.js +8 -0
- package/dist/types/computed-types.js.map +1 -0
- package/dist/types/crud-relationship-types.d.ts +180 -0
- package/dist/types/crud-relationship-types.d.ts.map +1 -0
- package/dist/types/crud-relationship-types.js +17 -0
- package/dist/types/crud-relationship-types.js.map +1 -0
- package/dist/types/crud-types.d.ts +343 -0
- package/dist/types/crud-types.d.ts.map +1 -0
- package/dist/types/crud-types.js +43 -0
- package/dist/types/crud-types.js.map +1 -0
- package/dist/types/cursor-types.d.ts +52 -0
- package/dist/types/cursor-types.d.ts.map +1 -0
- package/dist/types/cursor-types.js +2 -0
- package/dist/types/cursor-types.js.map +1 -0
- package/dist/types/database-config-types.d.ts +196 -0
- package/dist/types/database-config-types.d.ts.map +1 -0
- package/dist/types/database-config-types.js +11 -0
- package/dist/types/database-config-types.js.map +1 -0
- package/dist/types/hook-types.d.ts +158 -0
- package/dist/types/hook-types.d.ts.map +1 -0
- package/dist/types/hook-types.js +6 -0
- package/dist/types/hook-types.js.map +1 -0
- package/dist/types/index-types.d.ts +42 -0
- package/dist/types/index-types.d.ts.map +1 -0
- package/dist/types/index-types.js +8 -0
- package/dist/types/index-types.js.map +1 -0
- package/dist/types/operators.d.ts +5 -0
- package/dist/types/operators.d.ts.map +1 -0
- package/dist/types/operators.js +297 -0
- package/dist/types/operators.js.map +1 -0
- package/dist/types/query-overloads.d.ts +54 -0
- package/dist/types/query-overloads.d.ts.map +1 -0
- package/dist/types/query-overloads.js +3 -0
- package/dist/types/query-overloads.js.map +1 -0
- package/dist/types/reactive-types.d.ts +75 -0
- package/dist/types/reactive-types.d.ts.map +1 -0
- package/dist/types/reactive-types.js +7 -0
- package/dist/types/reactive-types.js.map +1 -0
- package/dist/types/schema-types.d.ts +56 -0
- package/dist/types/schema-types.d.ts.map +1 -0
- package/dist/types/schema-types.js +8 -0
- package/dist/types/schema-types.js.map +1 -0
- package/dist/types/search-types.d.ts +82 -0
- package/dist/types/search-types.d.ts.map +1 -0
- package/dist/types/search-types.js +110 -0
- package/dist/types/search-types.js.map +1 -0
- package/dist/types/types.d.ts +286 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js +2 -0
- package/dist/types/types.js.map +1 -0
- package/dist/utils/id-generator.d.ts +97 -0
- package/dist/utils/id-generator.d.ts.map +1 -0
- package/dist/utils/id-generator.js +247 -0
- package/dist/utils/id-generator.js.map +1 -0
- package/dist/utils/nested-path.d.ts +56 -0
- package/dist/utils/nested-path.d.ts.map +1 -0
- package/dist/utils/nested-path.js +119 -0
- package/dist/utils/nested-path.js.map +1 -0
- package/dist/utils/path.d.ts +16 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +24 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/validators/foreign-key.d.ts +49 -0
- package/dist/validators/foreign-key.d.ts.map +1 -0
- package/dist/validators/foreign-key.js +153 -0
- package/dist/validators/foreign-key.js.map +1 -0
- package/dist/validators/schema-validator.d.ts +19 -0
- package/dist/validators/schema-validator.d.ts.map +1 -0
- package/dist/validators/schema-validator.js +34 -0
- package/dist/validators/schema-validator.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import type { Effect, Schema } from "effect";
|
|
2
|
+
import type { TransactionError, ValidationError } from "../errors/crud-errors.js";
|
|
3
|
+
import type { MigrationError } from "../errors/migration-errors.js";
|
|
4
|
+
import type { DanglingReferenceError } from "../errors/query-errors.js";
|
|
5
|
+
import type { SerializationError, StorageError, UnsupportedFormatError } from "../errors/storage-errors.js";
|
|
6
|
+
import type { EffectCollection, RunnableEffect, RunnableStream } from "../factories/database-effect.js";
|
|
7
|
+
import type { DryRunResult } from "../migrations/migration-types.js";
|
|
8
|
+
import type { AggregateConfig, AggregateResult, GroupedAggregateResult } from "./aggregate-types.js";
|
|
9
|
+
import type { ComputedFieldsConfig, InferComputedFields } from "./computed-types.js";
|
|
10
|
+
import type { MinimalEntity, TransactionContext } from "./crud-types.js";
|
|
11
|
+
import type { CursorConfig, RunnableCursorPage } from "./cursor-types.js";
|
|
12
|
+
import type { SearchConfig } from "./search-types.js";
|
|
13
|
+
export type UnknownRecord = Record<string, unknown>;
|
|
14
|
+
/**
|
|
15
|
+
* Primitive types that should not be treated as "nestable" objects for WhereClause
|
|
16
|
+
*/
|
|
17
|
+
type Primitive = string | number | boolean | bigint | symbol | undefined | null;
|
|
18
|
+
/**
|
|
19
|
+
* Field filter that supports nested object shape-mirroring.
|
|
20
|
+
* When T is an object type (not primitive, array, Date, etc.), this allows either:
|
|
21
|
+
* - Direct value T (exact match)
|
|
22
|
+
* - Standard filter operators (FilterOperators<T>)
|
|
23
|
+
* - Nested object with filters on T's own fields (shape-mirroring)
|
|
24
|
+
*
|
|
25
|
+
* The nested form is limited to 2 levels to avoid infinite recursion.
|
|
26
|
+
*/
|
|
27
|
+
type FieldFilter<T> = T extends Primitive ? T | FilterOperators<T> : T extends readonly unknown[] ? T | FilterOperators<T> : T extends Date ? T | FilterOperators<T> : T extends (...args: unknown[]) => unknown ? T | FilterOperators<T> : T extends object ? T | FilterOperators<T> | NestedFieldFilter<T> : T | FilterOperators<T>;
|
|
28
|
+
/**
|
|
29
|
+
* Nested field filter for second level (no further recursion).
|
|
30
|
+
* Allows specifying filters on the nested object's fields.
|
|
31
|
+
*/
|
|
32
|
+
type NestedFieldFilter<T> = {
|
|
33
|
+
[K in keyof T]?: T[K] | FilterOperators<T[K]>;
|
|
34
|
+
};
|
|
35
|
+
export type FilterOperators<T> = T extends string ? {
|
|
36
|
+
$eq?: T;
|
|
37
|
+
$ne?: T;
|
|
38
|
+
$gt?: string;
|
|
39
|
+
$gte?: string;
|
|
40
|
+
$lt?: string;
|
|
41
|
+
$lte?: string;
|
|
42
|
+
$startsWith?: string;
|
|
43
|
+
$endsWith?: string;
|
|
44
|
+
$contains?: string;
|
|
45
|
+
$search?: string;
|
|
46
|
+
$in?: T[];
|
|
47
|
+
$nin?: T[];
|
|
48
|
+
} : T extends number ? {
|
|
49
|
+
$eq?: T;
|
|
50
|
+
$ne?: T;
|
|
51
|
+
$gt?: number;
|
|
52
|
+
$gte?: number;
|
|
53
|
+
$lt?: number;
|
|
54
|
+
$lte?: number;
|
|
55
|
+
$in?: T[];
|
|
56
|
+
$nin?: T[];
|
|
57
|
+
} : T extends boolean ? {
|
|
58
|
+
$eq?: T;
|
|
59
|
+
$ne?: T;
|
|
60
|
+
} : T extends readonly (infer U)[] ? {
|
|
61
|
+
$eq?: T;
|
|
62
|
+
$ne?: T;
|
|
63
|
+
$in?: T[];
|
|
64
|
+
$nin?: T[];
|
|
65
|
+
$contains?: U;
|
|
66
|
+
$all?: U[];
|
|
67
|
+
$size?: number;
|
|
68
|
+
} : {
|
|
69
|
+
$eq?: T;
|
|
70
|
+
$ne?: T;
|
|
71
|
+
$in?: T[];
|
|
72
|
+
$nin?: T[];
|
|
73
|
+
};
|
|
74
|
+
export type RelationshipDef<T = unknown, Type extends "ref" | "inverse" = "ref", Target extends string = string> = {
|
|
75
|
+
type: Type;
|
|
76
|
+
foreignKey?: string;
|
|
77
|
+
target?: Target;
|
|
78
|
+
__target?: T;
|
|
79
|
+
__targetCollection?: Target;
|
|
80
|
+
};
|
|
81
|
+
export type ExtractDBMapping<DB> = {
|
|
82
|
+
[K in keyof DB]: DB[K] extends SmartCollection<infer Entity, infer Relations, DB> ? {
|
|
83
|
+
entity: Entity;
|
|
84
|
+
relations: Relations;
|
|
85
|
+
} : never;
|
|
86
|
+
}[keyof DB];
|
|
87
|
+
export type FindRelationsByCollection<DB, CollectionName extends keyof DB> = DB[CollectionName] extends SmartCollection<infer _Entity, infer Relations, DB> ? Relations : Record<string, never>;
|
|
88
|
+
export type FindRelationsForEntity<_DB, _T> = Record<string, never>;
|
|
89
|
+
type ExtractNestedPaths<T> = {
|
|
90
|
+
[K in keyof T]: T[K] extends Record<string, unknown> ? `${K & string}` | {
|
|
91
|
+
[NK in keyof T[K]]: `${K & string}.${NK & string}`;
|
|
92
|
+
}[keyof T[K]] : `${K & string}`;
|
|
93
|
+
}[keyof T];
|
|
94
|
+
export type WhereClause<T, Relations, DB> = {
|
|
95
|
+
[K in keyof T]?: FieldFilter<T[K]>;
|
|
96
|
+
} & {
|
|
97
|
+
[K in keyof Relations]?: Relations[K] extends RelationshipDef<infer _, "ref", infer TargetColl> ? TargetColl extends keyof DB ? WhereClause<GetEntityFromCollection<DB, TargetColl>, FindRelationsByCollection<DB, TargetColl>, DB> : never : Relations[K] extends RelationshipDef<infer _, "inverse", infer TargetColl> ? TargetColl extends keyof DB ? {
|
|
98
|
+
$some?: WhereClause<GetEntityFromCollection<DB, TargetColl>, FindRelationsByCollection<DB, TargetColl>, DB>;
|
|
99
|
+
$every?: WhereClause<GetEntityFromCollection<DB, TargetColl>, FindRelationsByCollection<DB, TargetColl>, DB>;
|
|
100
|
+
$none?: WhereClause<GetEntityFromCollection<DB, TargetColl>, FindRelationsByCollection<DB, TargetColl>, DB>;
|
|
101
|
+
} : never : never;
|
|
102
|
+
} & {
|
|
103
|
+
[K in ExtractNestedPaths<T> as K extends keyof T ? never : K]?: unknown;
|
|
104
|
+
} & {
|
|
105
|
+
$or?: Array<WhereClause<T, Relations, DB>>;
|
|
106
|
+
$and?: Array<WhereClause<T, Relations, DB>>;
|
|
107
|
+
$not?: WhereClause<T, Relations, DB>;
|
|
108
|
+
$search?: SearchConfig;
|
|
109
|
+
};
|
|
110
|
+
export type ObjectSelectConfig<T, Relations, DB> = {
|
|
111
|
+
[K in keyof T]?: true | Record<string, true | Record<string, true>>;
|
|
112
|
+
} & {
|
|
113
|
+
[K in keyof Relations]?: Relations[K] extends RelationshipDef<infer _, infer Type, infer TargetColl> ? TargetColl extends keyof DB ? Type extends "ref" ? true | ObjectSelectConfig<GetEntityFromCollection<DB, TargetColl>, FindRelationsByCollection<DB, TargetColl>, DB> : Type extends "inverse" ? true | ObjectSelectConfig<GetEntityFromCollection<DB, TargetColl>, FindRelationsByCollection<DB, TargetColl>, DB> : never : never : never;
|
|
114
|
+
};
|
|
115
|
+
export type ArraySelectConfig<T> = ReadonlyArray<keyof T>;
|
|
116
|
+
export type SelectConfig<T, Relations, DB> = ObjectSelectConfig<T, Relations, DB> | ArraySelectConfig<T>;
|
|
117
|
+
type ApplyNestedObjectSelect<T, Config> = Config extends Record<string, unknown> ? {
|
|
118
|
+
[K in keyof Config & keyof T]: Config[K] extends true ? T[K] : Config[K] extends Record<string, unknown> ? T[K] extends Record<string, unknown> ? ApplyNestedObjectSelect<T[K], Config[K]> : never : never;
|
|
119
|
+
} : T;
|
|
120
|
+
export type ApplyObjectSelectConfig<T, Config> = Config extends Record<string, unknown> ? ApplyNestedObjectSelect<T, Config> : T;
|
|
121
|
+
export type ApplyArraySelectConfig<T, Config> = Config extends ReadonlyArray<keyof T> ? Pick<T, Config[number] & keyof T> : T;
|
|
122
|
+
export type ApplyObjectSelectWithPopulation<T, Config, Relations, DB> = Config extends Record<string, unknown> ? ApplyNestedObjectSelect<T, Config> & {
|
|
123
|
+
[K in keyof Config & keyof Relations]: Config[K] extends true ? Relations[K] extends RelationshipDef<infer _, infer Type, infer TargetColl> ? TargetColl extends keyof DB ? Type extends "ref" ? GetEntityFromCollection<DB, TargetColl> : Type extends "inverse" ? Array<GetEntityFromCollection<DB, TargetColl>> : never : never : never : Config[K] extends Record<string, unknown> ? Relations[K] extends RelationshipDef<infer _, infer Type, infer TargetColl> ? TargetColl extends keyof DB ? Type extends "ref" ? ApplyObjectSelectWithPopulation<GetEntityFromCollection<DB, TargetColl>, Config[K], FindRelationsByCollection<DB, TargetColl>, DB> : Type extends "inverse" ? Array<ApplyObjectSelectWithPopulation<GetEntityFromCollection<DB, TargetColl>, Config[K], FindRelationsByCollection<DB, TargetColl>, DB>> : never : never : never : never;
|
|
124
|
+
} : T;
|
|
125
|
+
export type ApplySelectConfig<T, Config, Relations = Record<string, never>, DB = Record<string, never>> = Config extends ReadonlyArray<keyof T> ? ApplyArraySelectConfig<T, Config> : Config extends Record<string, unknown> ? Relations extends Record<string, unknown> ? DB extends Record<string, unknown> ? ApplyObjectSelectWithPopulation<T, Config, Relations, DB> : ApplyObjectSelectConfig<T, Config> : ApplyObjectSelectConfig<T, Config> : T;
|
|
126
|
+
type RefRelationKeys<Relations> = {
|
|
127
|
+
[K in keyof Relations]: Relations[K] extends {
|
|
128
|
+
type: "ref";
|
|
129
|
+
} ? K : never;
|
|
130
|
+
}[keyof Relations];
|
|
131
|
+
type InverseRelationKeys<Relations> = {
|
|
132
|
+
[K in keyof Relations]: Relations[K] extends {
|
|
133
|
+
type: "inverse";
|
|
134
|
+
} ? K : never;
|
|
135
|
+
}[keyof Relations];
|
|
136
|
+
export type ApplyObjectSelectWithPopulate<T, Relations, SelectConf, PopulateConf, DB> = {
|
|
137
|
+
[K in keyof SelectConf & keyof T]: SelectConf[K] extends true ? T[K] : never;
|
|
138
|
+
} & {
|
|
139
|
+
[K in keyof SelectConf & keyof Relations & RefRelationKeys<Relations>]?: SelectConf[K] extends Record<string, unknown> ? GetTargetCollection<Relations, K> extends keyof DB ? Relations[K] extends RelationshipDef<infer _, "ref", infer TargetColl> ? TargetColl extends keyof DB ? ApplyObjectSelectWithPopulate<GetEntityFromCollection<DB, TargetColl>, FindRelationsByCollection<DB, TargetColl>, SelectConf[K], Record<string, never>, DB> : never : never : never : PopulateConf extends PopulateConfig<Relations, DB> ? K extends keyof PopulateConf ? PopulateConf[K] extends true ? GetTargetCollection<Relations, K> extends keyof DB ? GetEntityFromCollection<DB, GetTargetCollection<Relations, K>> : never : PopulateConf[K] extends PopulateConfig<infer _, DB> ? GetTargetCollection<Relations, K> extends keyof DB ? ApplyPopulateObject<GetEntityFromCollection<DB, GetTargetCollection<Relations, K>>, FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, Extract<PopulateConf[K], PopulateConfig<FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, DB>>, DB> : never : never : never : never;
|
|
140
|
+
} & {
|
|
141
|
+
[K in keyof SelectConf & keyof Relations & InverseRelationKeys<Relations>]: SelectConf[K] extends Record<string, unknown> ? GetTargetCollection<Relations, K> extends keyof DB ? Relations[K] extends RelationshipDef<infer _, "inverse", infer TargetColl> ? TargetColl extends keyof DB ? Array<ApplyObjectSelectWithPopulate<GetEntityFromCollection<DB, TargetColl>, FindRelationsByCollection<DB, TargetColl>, SelectConf[K], Record<string, never>, DB>> : never : never : never : PopulateConf extends PopulateConfig<Relations, DB> ? K extends keyof PopulateConf ? PopulateConf[K] extends true ? GetTargetCollection<Relations, K> extends keyof DB ? Array<GetEntityFromCollection<DB, GetTargetCollection<Relations, K>>> : never : PopulateConf[K] extends PopulateConfig<infer _, DB> ? GetTargetCollection<Relations, K> extends keyof DB ? Array<ApplyPopulateObject<GetEntityFromCollection<DB, GetTargetCollection<Relations, K>>, FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, Extract<PopulateConf[K], PopulateConfig<FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, DB>>, DB>> : never : never : never : never;
|
|
142
|
+
};
|
|
143
|
+
export type ApplySelectAndPopulate<T, Relations, SelectConf, PopulateConf, DB> = SelectConf extends Record<string, unknown> ? ApplyObjectSelectWithPopulate<T, Relations, SelectConf, PopulateConf, DB> : SelectConf extends ArraySelectConfig<T> ? ApplyArraySelectConfig<T, SelectConf> & (PopulateConf extends PopulateConfig<Relations, DB> ? // Optional fields for ref relationships
|
|
144
|
+
{
|
|
145
|
+
[K in keyof PopulateConf & RefRelationKeys<Relations>]?: PopulateConf[K] extends true ? GetTargetCollection<Relations, K> extends keyof DB ? GetEntityFromCollection<DB, GetTargetCollection<Relations, K>> : never : PopulateConf[K] extends PopulateConfig<infer _, DB> ? GetTargetCollection<Relations, K> extends keyof DB ? ApplyPopulateObject<GetEntityFromCollection<DB, GetTargetCollection<Relations, K>>, FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, Extract<PopulateConf[K], PopulateConfig<FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, DB>>, DB> : never : never;
|
|
146
|
+
} & {
|
|
147
|
+
[K in keyof PopulateConf & InverseRelationKeys<Relations>]: PopulateConf[K] extends true ? GetTargetCollection<Relations, K> extends keyof DB ? Array<GetEntityFromCollection<DB, GetTargetCollection<Relations, K>>> : never : PopulateConf[K] extends PopulateConfig<infer _, DB> ? GetTargetCollection<Relations, K> extends keyof DB ? Array<ApplyPopulateObject<GetEntityFromCollection<DB, GetTargetCollection<Relations, K>>, FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, Extract<PopulateConf[K], PopulateConfig<FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, DB>>, DB>> : never : never;
|
|
148
|
+
} : Record<string, never>) : PopulateConf extends PopulateConfig<Relations, DB> ? ApplyPopulateObject<T, Relations, PopulateConf, DB> : T;
|
|
149
|
+
export type GetTargetCollection<Relations, K extends keyof Relations> = Relations[K] extends {
|
|
150
|
+
target: infer TargetColl;
|
|
151
|
+
} ? TargetColl : never;
|
|
152
|
+
export type PopulateConfig<Relations, DB, Depth extends unknown[] = []> = Depth["length"] extends 5 ? never : {
|
|
153
|
+
[K in keyof Relations]?: GetTargetCollection<Relations, K> extends keyof DB ? true | PopulateConfig<FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, DB, [
|
|
154
|
+
...Depth,
|
|
155
|
+
unknown
|
|
156
|
+
]> : never;
|
|
157
|
+
};
|
|
158
|
+
export type GetEntityFromCollection<DB, CollectionName extends keyof DB> = DB[CollectionName] extends SmartCollection<infer Entity, infer _Relations, DB> ? Entity : never;
|
|
159
|
+
export type ApplyPopulateObject<T, Relations, Config, DB> = T & {
|
|
160
|
+
[K in keyof Config & RefRelationKeys<Relations>]?: Config[K] extends true ? GetTargetCollection<Relations, K> extends keyof DB ? GetEntityFromCollection<DB, GetTargetCollection<Relations, K>> : never : Config[K] extends PopulateConfig<infer _, DB, infer __> ? GetTargetCollection<Relations, K> extends keyof DB ? ApplyPopulateObject<GetEntityFromCollection<DB, GetTargetCollection<Relations, K>>, FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, Config[K], DB> : never : never;
|
|
161
|
+
} & {
|
|
162
|
+
[K in keyof Config & InverseRelationKeys<Relations>]: Config[K] extends true ? GetTargetCollection<Relations, K> extends keyof DB ? Array<GetEntityFromCollection<DB, GetTargetCollection<Relations, K>>> : never : Config[K] extends PopulateConfig<infer _, DB, infer __> ? GetTargetCollection<Relations, K> extends keyof DB ? Array<ApplyPopulateObject<GetEntityFromCollection<DB, GetTargetCollection<Relations, K>>, FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, Config[K], DB>> : never : never;
|
|
163
|
+
};
|
|
164
|
+
export type SortOrder = "asc" | "desc";
|
|
165
|
+
type ExtractSortPaths<T, Relations, Config, DB, Prefix extends string = ""> = (Prefix extends "" ? keyof T : never) | (Config extends {
|
|
166
|
+
populate: infer P;
|
|
167
|
+
} ? P extends PopulateConfig<Relations, DB> ? {
|
|
168
|
+
[K in keyof P & keyof Relations]: P[K] extends true ? GetTargetCollection<Relations, K> extends keyof DB ? Relations[K] extends RelationshipDef<infer _, "ref"> ? `${K & string}.${keyof GetEntityFromCollection<DB, GetTargetCollection<Relations, K>> & string}` : never : never : P[K] extends PopulateConfig<infer _, DB> ? GetTargetCollection<Relations, K> extends keyof DB ? Relations[K] extends RelationshipDef<infer _, "ref"> ? `${K & string}.${keyof GetEntityFromCollection<DB, GetTargetCollection<Relations, K>> & string}` | `${K & string}.${ExtractSortPaths<GetEntityFromCollection<DB, GetTargetCollection<Relations, K>>, FindRelationsByCollection<DB, GetTargetCollection<Relations, K>>, {
|
|
169
|
+
populate: P[K];
|
|
170
|
+
}, DB, `${K & string}.`> & string}` : never : never : never;
|
|
171
|
+
}[keyof P & keyof Relations] : never : never);
|
|
172
|
+
export type SortConfig<T, Relations, Config, DB> = Partial<Record<ExtractSortPaths<T, Relations, Config, DB> | ExtractNestedPaths<T>, SortOrder>>;
|
|
173
|
+
export type QueryConfig<T, Relations, DB> = {
|
|
174
|
+
where?: WhereClause<T, Relations, DB>;
|
|
175
|
+
sort?: SortConfig<T, Relations, Record<string, never>, DB>;
|
|
176
|
+
select?: SelectConfig<T, Relations, DB>;
|
|
177
|
+
limit?: number;
|
|
178
|
+
offset?: number;
|
|
179
|
+
} | {
|
|
180
|
+
populate: PopulateConfig<Relations, DB>;
|
|
181
|
+
where?: WhereClause<T, Relations, DB>;
|
|
182
|
+
sort?: SortConfig<T, Relations, {
|
|
183
|
+
populate: PopulateConfig<Relations, DB>;
|
|
184
|
+
}, DB>;
|
|
185
|
+
select?: SelectConfig<T, Relations, DB>;
|
|
186
|
+
limit?: number;
|
|
187
|
+
offset?: number;
|
|
188
|
+
} | {
|
|
189
|
+
cursor: CursorConfig;
|
|
190
|
+
where?: WhereClause<T, Relations, DB>;
|
|
191
|
+
sort?: SortConfig<T, Relations, Record<string, never>, DB>;
|
|
192
|
+
select?: SelectConfig<T, Relations, DB>;
|
|
193
|
+
} | {
|
|
194
|
+
cursor: CursorConfig;
|
|
195
|
+
populate: PopulateConfig<Relations, DB>;
|
|
196
|
+
where?: WhereClause<T, Relations, DB>;
|
|
197
|
+
sort?: SortConfig<T, Relations, {
|
|
198
|
+
populate: PopulateConfig<Relations, DB>;
|
|
199
|
+
}, DB>;
|
|
200
|
+
select?: SelectConfig<T, Relations, DB>;
|
|
201
|
+
};
|
|
202
|
+
type QueryItemType<T, Relations, Config, DB> = Config extends {
|
|
203
|
+
populate: infer P;
|
|
204
|
+
select: infer S;
|
|
205
|
+
} ? P extends PopulateConfig<Relations, DB> ? S extends SelectConfig<T, Relations, DB> ? ApplySelectAndPopulate<T, Relations, S, P, DB> : ApplyPopulateObject<T, Relations, P, DB> : T : Config extends {
|
|
206
|
+
populate: infer P;
|
|
207
|
+
} ? P extends PopulateConfig<Relations, DB> ? ApplyPopulateObject<T, Relations, P, DB> : T : Config extends {
|
|
208
|
+
select: infer S;
|
|
209
|
+
} ? S extends SelectConfig<T, Relations, DB> ? ApplySelectConfig<T, S, Relations, DB> : T : T;
|
|
210
|
+
export type QueryReturnType<T, Relations, Config, DB> = Config extends {
|
|
211
|
+
cursor: CursorConfig;
|
|
212
|
+
} ? RunnableCursorPage<QueryItemType<T, Relations, Config, DB>, DanglingReferenceError | ValidationError> : Config extends {
|
|
213
|
+
populate: infer P;
|
|
214
|
+
select: infer S;
|
|
215
|
+
} ? P extends PopulateConfig<Relations, DB> ? S extends SelectConfig<T, Relations, DB> ? RunnableStream<ApplySelectAndPopulate<T, Relations, S, P, DB>, DanglingReferenceError> : RunnableStream<ApplyPopulateObject<T, Relations, P, DB>, DanglingReferenceError> : RunnableStream<T, DanglingReferenceError> : Config extends {
|
|
216
|
+
populate: infer P;
|
|
217
|
+
} ? P extends PopulateConfig<Relations, DB> ? RunnableStream<ApplyPopulateObject<T, Relations, P, DB>, DanglingReferenceError> : RunnableStream<T, DanglingReferenceError> : Config extends {
|
|
218
|
+
select: infer S;
|
|
219
|
+
} ? S extends SelectConfig<T, Relations, DB> ? RunnableStream<ApplySelectConfig<T, S, Relations, DB>, DanglingReferenceError> : RunnableStream<T, DanglingReferenceError> : RunnableStream<T, DanglingReferenceError>;
|
|
220
|
+
export type SmartCollection<T, Relations extends Record<string, RelationshipDef<unknown, "ref" | "inverse", string>> = Record<string, RelationshipDef<unknown, "ref" | "inverse", string>>, DB = unknown> = {
|
|
221
|
+
query<C extends QueryConfig<T, Relations, DB> = {
|
|
222
|
+
where?: WhereClause<T, Relations, DB>;
|
|
223
|
+
}>(config?: C): QueryReturnType<T, Relations, C, DB>;
|
|
224
|
+
/**
|
|
225
|
+
* Compute aggregates over the collection.
|
|
226
|
+
*
|
|
227
|
+
* @param config - Aggregation configuration: which aggregates to compute and optional where/groupBy
|
|
228
|
+
* @returns Effect with AggregateResult (scalar) or GroupedAggregateResult (when groupBy is present)
|
|
229
|
+
*/
|
|
230
|
+
aggregate<C extends AggregateConfig<T, Relations, DB>>(config: C): C extends {
|
|
231
|
+
readonly groupBy: string | ReadonlyArray<string>;
|
|
232
|
+
} ? RunnableEffect<GroupedAggregateResult, never> : RunnableEffect<AggregateResult, never>;
|
|
233
|
+
} & EffectCollection<T & MinimalEntity>;
|
|
234
|
+
export type ExtractEntityTypes<Config> = {
|
|
235
|
+
[K in keyof Config]: Config[K] extends {
|
|
236
|
+
schema: Schema.Schema<infer T, infer _E, infer _R>;
|
|
237
|
+
} ? T : never;
|
|
238
|
+
};
|
|
239
|
+
export type ResolveRelationships<Relations, AllEntities> = {
|
|
240
|
+
[K in keyof Relations]: Relations[K] extends {
|
|
241
|
+
type: infer Type;
|
|
242
|
+
target: infer Target;
|
|
243
|
+
foreignKey?: infer FK;
|
|
244
|
+
} ? Type extends "ref" | "inverse" ? Target extends keyof AllEntities ? Target extends string ? RelationshipDef<AllEntities[Target], Type, Target> & {
|
|
245
|
+
foreignKey?: FK;
|
|
246
|
+
target: Target;
|
|
247
|
+
} : never : never : never : never;
|
|
248
|
+
};
|
|
249
|
+
type EntityWithComputed<Entity, Computed> = Computed extends ComputedFieldsConfig<Entity> ? Entity & InferComputedFields<Computed> : Entity;
|
|
250
|
+
export type GenerateDatabase<Config> = {
|
|
251
|
+
[K in keyof Config]: Config[K] extends {
|
|
252
|
+
schema: Schema.Schema<infer Entity, infer _E, infer _R>;
|
|
253
|
+
relationships: infer Relations;
|
|
254
|
+
computed?: infer Computed;
|
|
255
|
+
} ? SmartCollection<EntityWithComputed<Entity, Computed>, ResolveRelationships<Relations, ExtractEntityTypes<Config>>, GenerateDatabase<Config>> : never;
|
|
256
|
+
} & {
|
|
257
|
+
/**
|
|
258
|
+
* Execute multiple operations atomically within a transaction.
|
|
259
|
+
* On success, all changes are committed and persistence is triggered.
|
|
260
|
+
* On failure, all changes are rolled back and the original error is re-raised.
|
|
261
|
+
*/
|
|
262
|
+
$transaction<A, E>(fn: (ctx: TransactionContext<GenerateDatabase<Config>>) => Effect.Effect<A, E>): Effect.Effect<A, E | TransactionError>;
|
|
263
|
+
};
|
|
264
|
+
/**
|
|
265
|
+
* Extended GenerateDatabase type with persistence control methods.
|
|
266
|
+
* Mirrors EffectDatabaseWithPersistence but based on GenerateDatabase for full type inference.
|
|
267
|
+
*/
|
|
268
|
+
export type GenerateDatabaseWithPersistence<Config> = GenerateDatabase<Config> & {
|
|
269
|
+
/** Flush all pending debounced writes immediately. Returns a Promise. */
|
|
270
|
+
readonly flush: () => Promise<void>;
|
|
271
|
+
/** Returns the number of writes currently pending. */
|
|
272
|
+
readonly pendingCount: () => number;
|
|
273
|
+
/**
|
|
274
|
+
* Preview which files need migration and what transforms would apply.
|
|
275
|
+
* No transforms are executed. No files are written.
|
|
276
|
+
*/
|
|
277
|
+
readonly $dryRunMigrations: () => RunnableEffect<DryRunResult, MigrationError | StorageError | SerializationError | UnsupportedFormatError>;
|
|
278
|
+
};
|
|
279
|
+
export type TypedPopulate<DB, Collection extends keyof DB> = DB[Collection] extends SmartCollection<infer _T, infer Relations, infer DBType> ? PopulateConfig<Relations, DBType> : never;
|
|
280
|
+
export type DatasetFor<Config> = {
|
|
281
|
+
[K in keyof Config]: Config[K] extends {
|
|
282
|
+
schema: Schema.Schema<infer T, infer _E, infer _R>;
|
|
283
|
+
} ? T[] : never;
|
|
284
|
+
};
|
|
285
|
+
export {};
|
|
286
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EACX,gBAAgB,EAChB,eAAe,EACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EACX,kBAAkB,EAClB,YAAY,EACZ,sBAAsB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACX,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EACX,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACX,oBAAoB,EACpB,mBAAmB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOtD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAMpD;;GAEG;AACH,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;AAEhF;;;;;;;;GAQG;AACH,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GACtC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACtB,CAAC,SAAS,SAAS,OAAO,EAAE,GAC3B,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACtB,CAAC,SAAS,IAAI,GACb,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACtB,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GACxC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GACtB,CAAC,SAAS,MAAM,GACf,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAC7C,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AAE9B;;;GAGG;AACH,KAAK,iBAAiB,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7C,CAAC;AAGF,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAC9C;IACA,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;CACX,GACA,CAAC,SAAS,MAAM,GACf;IACA,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;CACX,GACA,CAAC,SAAS,OAAO,GAChB;IACA,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,CAAC,CAAC;CACR,GACA,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAC7B;IACA,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACX,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,GACA;IACA,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;CACX,CAAC;AAGP,MAAM,MAAM,eAAe,CAC1B,CAAC,GAAG,OAAO,EACX,IAAI,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,EACtC,MAAM,SAAS,MAAM,GAAG,MAAM,IAC3B;IACH,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAGF,MAAM,MAAM,gBAAgB,CAAC,EAAE,IAAI;KACjC,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,eAAe,CAC7C,MAAM,MAAM,EACZ,MAAM,SAAS,EACf,EAAE,CACF,GACE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,CAAA;KAAE,GACxC,KAAK;CACR,CAAC,MAAM,EAAE,CAAC,CAAC;AAGZ,MAAM,MAAM,yBAAyB,CACpC,EAAE,EACF,cAAc,SAAS,MAAM,EAAE,IAC5B,EAAE,CAAC,cAAc,CAAC,SAAS,eAAe,CAC7C,MAAM,OAAO,EACb,MAAM,SAAS,EACf,EAAE,CACF,GACE,SAAS,GACT,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAGzB,MAAM,MAAM,sBAAsB,CAAC,GAAG,EAAE,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AASpE,KAAK,kBAAkB,CAAC,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAE/C,GAAG,CAAC,GAAG,MAAM,EAAE,GACf;SACC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,EAAE,GAAG,MAAM,EAAE;KACjD,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GACf,GAAG,CAAC,GAAG,MAAM,EAAE;CAClB,CAAC,MAAM,CAAC,CAAC,CAAC;AAKX,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI;KAC1C,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAClC,GAAG;KACF,CAAC,IAAI,MAAM,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,eAAe,CAC5D,MAAM,CAAC,EACP,KAAK,EACL,MAAM,UAAU,CAChB,GACE,UAAU,SAAS,MAAM,EAAE,GAC1B,WAAW,CACX,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,EACvC,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,EACzC,EAAE,CACF,GACA,KAAK,GACN,SAAS,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC,GACzE,UAAU,SAAS,MAAM,EAAE,GAC1B;QACA,KAAK,CAAC,EAAE,WAAW,CAClB,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,EACvC,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,EACzC,EAAE,CACF,CAAC;QACF,MAAM,CAAC,EAAE,WAAW,CACnB,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,EACvC,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,EACzC,EAAE,CACF,CAAC;QACF,KAAK,CAAC,EAAE,WAAW,CAClB,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,EACvC,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,EACzC,EAAE,CACF,CAAC;KACF,GACA,KAAK,GACN,KAAK;CACT,GAAG;KAEF,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO;CACvE,GAAG;IAEH,GAAG,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAErC,OAAO,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAcF,MAAM,MAAM,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI;KACjD,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CACnE,GAAG;KACF,CAAC,IAAI,MAAM,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,eAAe,CAC5D,MAAM,CAAC,EACP,MAAM,IAAI,EACV,MAAM,UAAU,CAChB,GACE,UAAU,SAAS,MAAM,EAAE,GAC1B,IAAI,SAAS,KAAK,GAEf,IAAI,GACJ,kBAAkB,CAClB,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,EACvC,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,EACzC,EAAE,CACD,GACH,IAAI,SAAS,SAAS,GAEnB,IAAI,GACJ,kBAAkB,CAClB,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,EACvC,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,EACzC,EAAE,CACD,GACH,KAAK,GACP,KAAK,GACN,KAAK;CACR,CAAC;AAGF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAG1D,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IACtC,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,GACpC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAGxB,KAAK,uBAAuB,CAAC,CAAC,EAAE,MAAM,IACrC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC;KACC,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,GAClD,CAAC,CAAC,CAAC,CAAC,GACJ,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GACxC,KAAK,GACN,KAAK;CACT,GACA,CAAC,CAAC;AAGN,MAAM,MAAM,uBAAuB,CAAC,CAAC,EAAE,MAAM,IAC5C,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,GAClC,CAAC,CAAC;AAGN,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,MAAM,IAC3C,MAAM,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAG/E,MAAM,MAAM,+BAA+B,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,IACnE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG;KACpC,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,GAC1D,SAAS,CAAC,CAAC,CAAC,SAAS,eAAe,CACpC,MAAM,CAAC,EACP,MAAM,IAAI,EACV,MAAM,UAAU,CAChB,GACC,UAAU,SAAS,MAAM,EAAE,GAC1B,IAAI,SAAS,KAAK,GACjB,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,GACvC,IAAI,SAAS,SAAS,GACrB,KAAK,CAAC,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,GAC9C,KAAK,GACP,KAAK,GACN,KAAK,GACN,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,SAAS,CAAC,CAAC,CAAC,SAAS,eAAe,CACpC,MAAM,CAAC,EACP,MAAM,IAAI,EACV,MAAM,UAAU,CAChB,GACC,UAAU,SAAS,MAAM,EAAE,GAC1B,IAAI,SAAS,KAAK,GACjB,+BAA+B,CAC/B,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,EACvC,MAAM,CAAC,CAAC,CAAC,EACT,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,EACzC,EAAE,CACF,GACA,IAAI,SAAS,SAAS,GACrB,KAAK,CACL,+BAA+B,CAC9B,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,EACvC,MAAM,CAAC,CAAC,CAAC,EACT,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,EACzC,EAAE,CACF,CACD,GACA,KAAK,GACP,KAAK,GACN,KAAK,GACN,KAAK;CACT,GACA,CAAC,CAAC;AAGN,MAAM,MAAM,iBAAiB,CAC5B,CAAC,EACD,MAAM,EACN,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACjC,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IACvB,MAAM,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GACtC,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC,GACjC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACxC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,+BAA+B,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,GACzD,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,GACnC,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,GACnC,CAAC,CAAC;AAGN,KAAK,eAAe,CAAC,SAAS,IAAI;KAChC,CAAC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CACxE,CAAC,MAAM,SAAS,CAAC,CAAC;AAEnB,KAAK,mBAAmB,CAAC,SAAS,IAAI;KACpC,CAAC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CAC5E,CAAC,MAAM,SAAS,CAAC,CAAC;AAInB,MAAM,MAAM,6BAA6B,CACxC,CAAC,EACD,SAAS,EACT,UAAU,EACV,YAAY,EACZ,EAAE,IACC;KAEF,CAAC,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK;CAC5E,GAAG;KAEF,CAAC,IAAI,MAAM,UAAU,GACrB,MAAM,SAAS,GACf,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,SAAS,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC,GACrE,UAAU,SAAS,MAAM,EAAE,GAC1B,6BAA6B,CAC7B,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,EACvC,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,EACzC,UAAU,CAAC,CAAC,CAAC,EACb,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,EAAE,CACF,GACA,KAAK,GACN,KAAK,GACN,KAAK,GACN,YAAY,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,GACjD,CAAC,SAAS,MAAM,YAAY,GAC3B,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3B,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,uBAAuB,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAC9D,KAAK,GACN,YAAY,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAClD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,mBAAmB,CACnB,uBAAuB,CACtB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,yBAAyB,CACxB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,OAAO,CACN,YAAY,CAAC,CAAC,CAAC,EACf,cAAc,CACb,yBAAyB,CACxB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,EAAE,CACF,CACD,EACD,EAAE,CACF,GACA,KAAK,GACN,KAAK,GACP,KAAK,GACN,KAAK;CACT,GAAG;KAEF,CAAC,IAAI,MAAM,UAAU,GACrB,MAAM,SAAS,GACf,mBAAmB,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,CAC7D,MAAM,EACN,OAAO,CACP,GACE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,SAAS,CAAC,CAAC,CAAC,SAAS,eAAe,CACpC,MAAM,CAAC,EACP,SAAS,EACT,MAAM,UAAU,CAChB,GACC,UAAU,SAAS,MAAM,EAAE,GAC1B,KAAK,CACL,6BAA6B,CAC5B,uBAAuB,CAAC,EAAE,EAAE,UAAU,CAAC,EACvC,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,EACzC,UAAU,CAAC,CAAC,CAAC,EACb,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,EAAE,CACF,CACD,GACA,KAAK,GACN,KAAK,GACN,KAAK,GACN,YAAY,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,GACjD,CAAC,SAAS,MAAM,YAAY,GAC3B,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3B,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,KAAK,CACL,uBAAuB,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAC9D,GACA,KAAK,GACN,YAAY,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAClD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,KAAK,CACL,mBAAmB,CAClB,uBAAuB,CACtB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,yBAAyB,CACxB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,OAAO,CACN,YAAY,CAAC,CAAC,CAAC,EACf,cAAc,CACb,yBAAyB,CACxB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,EAAE,CACF,CACD,EACD,EAAE,CACF,CACD,GACA,KAAK,GACN,KAAK,GACP,KAAK,GACN,KAAK;CACT,CAAC;AAGF,MAAM,MAAM,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,IAE5E,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,6BAA6B,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC,GAE1E,UAAU,SAAS,iBAAiB,CAAC,CAAC,CAAC,GACrC,sBAAsB,CAAC,CAAC,EAAE,UAAU,CAAC,GACrC,CAAC,YAAY,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,GAEjD,AADC,wCAAwC;AACzC;KACE,CAAC,IAAI,MAAM,YAAY,GACvB,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,GACxD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,uBAAuB,CACvB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,GACA,KAAK,GACN,YAAY,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAClD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,mBAAmB,CACnB,uBAAuB,CACtB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,yBAAyB,CACxB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,OAAO,CACN,YAAY,CAAC,CAAC,CAAC,EACf,cAAc,CACb,yBAAyB,CACxB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,EAAE,CACF,CACD,EACD,EAAE,CACF,GACA,KAAK,GACN,KAAK;CACT,GAAG;KAEF,CAAC,IAAI,MAAM,YAAY,GACvB,mBAAmB,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,GAC3D,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,KAAK,CACL,uBAAuB,CACtB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,CACD,GACA,KAAK,GACN,YAAY,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GAClD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,KAAK,CACL,mBAAmB,CAClB,uBAAuB,CACtB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,yBAAyB,CACxB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,OAAO,CACN,YAAY,CAAC,CAAC,CAAC,EACf,cAAc,CACb,yBAAyB,CACxB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,EAAE,CACF,CACD,EACD,EAAE,CACF,CACD,GACA,KAAK,GACN,KAAK;CACT,GACA,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAE1B,YAAY,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,GAChD,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,GACnD,CAAC,CAAC;AAOR,MAAM,MAAM,mBAAmB,CAC9B,SAAS,EACT,CAAC,SAAS,MAAM,SAAS,IACtB,SAAS,CAAC,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,UAAU,CAAA;CAAE,GAAG,UAAU,GAAG,KAAK,CAAC;AAG3E,MAAM,MAAM,cAAc,CACzB,SAAS,EACT,EAAE,EACF,KAAK,SAAS,OAAO,EAAE,GAAG,EAAE,IACzB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GAC1B,KAAK,GACL;KACC,CAAC,IAAI,MAAM,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAC3C,SAAS,EACT,CAAC,CACD,SAAS,MAAM,EAAE,GAEb,IAAI,GACJ,cAAc,CACd,yBAAyB,CACxB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,EAAE,EACF;QAAC,GAAG,KAAK;QAAE,OAAO;KAAC,CAClB,GACH,KAAK;CACR,CAAC;AAGJ,MAAM,MAAM,uBAAuB,CAClC,EAAE,EACF,cAAc,SAAS,MAAM,EAAE,IAC5B,EAAE,CAAC,cAAc,CAAC,SAAS,eAAe,CAC7C,MAAM,MAAM,EACZ,MAAM,UAAU,EAChB,EAAE,CACF,GACE,MAAM,GACN,KAAK,CAAC;AAGT,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG;KAE9D,CAAC,IAAI,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,GACtE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,uBAAuB,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAC9D,KAAK,GACN,MAAM,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GACtD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,mBAAmB,CACnB,uBAAuB,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAC9D,yBAAyB,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAChE,MAAM,CAAC,CAAC,CAAC,EACT,EAAE,CACF,GACA,KAAK,GACN,KAAK;CACT,GAAG;KAEF,CAAC,IAAI,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,GACzE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,KAAK,CAAC,uBAAuB,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GACrE,KAAK,GACN,MAAM,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,GACtD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,KAAK,CACL,mBAAmB,CAClB,uBAAuB,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAC9D,yBAAyB,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAChE,MAAM,CAAC,CAAC,CAAC,EACT,EAAE,CACF,CACD,GACA,KAAK,GACN,KAAK;CACT,CAAC;AAGF,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAGvC,KAAK,gBAAgB,CACpB,CAAC,EACD,SAAS,EACT,MAAM,EACN,EAAE,EACF,MAAM,SAAS,MAAM,GAAG,EAAE,IAEzB,CAAC,MAAM,SAAS,EAAE,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,GAErC,CAAC,MAAM,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;CAAE,GACnC,CAAC,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,GACtC;KACC,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GAChD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,SAAS,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GACnD,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,uBAAuB,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAChG,KAAK,GACN,KAAK,GACN,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,GACvC,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,GACjD,SAAS,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAEjD,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,uBAAuB,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAChG,GAAG,CAAC,GAAG,MAAM,IAAI,gBAAgB,CACjC,uBAAuB,CACtB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD,yBAAyB,CACxB,EAAE,EACF,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,CACjC,EACD;QAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,EAClB,EAAE,EACF,GAAG,CAAC,GAAG,MAAM,GAAG,CACf,GACD,MAAM,EAAE,GACV,KAAK,GACN,KAAK,GACN,KAAK;CACT,CAAC,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,GAC3B,KAAK,GACN,KAAK,CAAC,CAAC;AAGX,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,OAAO,CACzD,MAAM,CACL,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,EAClE,SAAS,CACT,CACD,CAAC;AAKF,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,IAErC;IACA,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACf,GAED;IACA,QAAQ,EAAE,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,UAAU,CAChB,CAAC,EACD,SAAS,EACT;QAAE,QAAQ,EAAE,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;KAAE,EAC3C,EAAE,CACF,CAAC;IACF,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACf,GAED;IACA,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;CACvC,GAED;IACA,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,UAAU,CAChB,CAAC,EACD,SAAS,EACT;QAAE,QAAQ,EAAE,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;KAAE,EAC3C,EAAE,CACF,CAAC;IACF,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;CACvC,CAAC;AAGL,KAAK,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,MAAM,SAAS;IAC7D,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,CAAC;CAChB,GACE,CAAC,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,GACtC,CAAC,SAAS,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,GACvC,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAC9C,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,GACzC,CAAC,GACF,MAAM,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;CAAE,GACnC,CAAC,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,GACtC,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,GACxC,CAAC,GACF,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACjC,CAAC,SAAS,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,GACvC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,GACtC,CAAC,GACF,CAAC,CAAC;AAKP,MAAM,MAAM,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,MAAM,SAAS;IACtE,MAAM,EAAE,YAAY,CAAC;CACrB,GACE,kBAAkB,CAClB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,EACvC,sBAAsB,GAAG,eAAe,CACxC,GACA,MAAM,SAAS;IACd,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,CAAC;CAChB,GACA,CAAC,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,GACtC,CAAC,SAAS,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,GACvC,cAAc,CACd,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAC9C,sBAAsB,CACtB,GACA,cAAc,CACd,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EACxC,sBAAsB,CACtB,GACD,cAAc,CAAC,CAAC,EAAE,sBAAsB,CAAC,GAC1C,MAAM,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;CAAE,GACnC,CAAC,SAAS,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,GACtC,cAAc,CACd,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EACxC,sBAAsB,CACtB,GACA,cAAc,CAAC,CAAC,EAAE,sBAAsB,CAAC,GAC1C,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACjC,CAAC,SAAS,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,GACvC,cAAc,CACd,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,EACtC,sBAAsB,CACtB,GACA,cAAc,CAAC,CAAC,EAAE,sBAAsB,CAAC,GAC1C,cAAc,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC;AAEhD,MAAM,MAAM,eAAe,CAC1B,CAAC,EACD,SAAS,SAAS,MAAM,CACvB,MAAM,EACN,eAAe,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,EAAE,MAAM,CAAC,CACnD,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC,EACvE,EAAE,GAAG,OAAO,IACT;IACH,KAAK,CACJ,CAAC,SAAS,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG;QACzC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;KACtC,EACA,MAAM,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,SAAS,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,EACpD,MAAM,EAAE,CAAC,GACP,CAAC,SAAS;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;KAAE,GAC9D,cAAc,CAAC,sBAAsB,EAAE,KAAK,CAAC,GAC7C,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;CAC1C,GAAG,gBAAgB,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;AAGxC,MAAM,MAAM,kBAAkB,CAAC,MAAM,IAAI;KACvC,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS;QACtC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;KACnD,GACE,CAAC,GACD,KAAK;CACR,CAAC;AAGF,MAAM,MAAM,oBAAoB,CAAC,SAAS,EAAE,WAAW,IAAI;KACzD,CAAC,IAAI,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS;QAC5C,IAAI,EAAE,MAAM,IAAI,CAAC;QACjB,MAAM,EAAE,MAAM,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,GACE,IAAI,SAAS,KAAK,GAAG,SAAS,GAC7B,MAAM,SAAS,MAAM,WAAW,GAC/B,MAAM,SAAS,MAAM,GACpB,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG;QACrD,UAAU,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KACf,GACA,KAAK,GACN,KAAK,GACN,KAAK,GACN,KAAK;CACR,CAAC;AAGF,KAAK,kBAAkB,CAAC,MAAM,EAAE,QAAQ,IACvC,QAAQ,SAAS,oBAAoB,CAAC,MAAM,CAAC,GAC1C,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GACtC,MAAM,CAAC;AAGX,MAAM,MAAM,gBAAgB,CAAC,MAAM,IAAI;KACrC,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS;QACtC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,aAAa,EAAE,MAAM,SAAS,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,QAAQ,CAAC;KAC1B,GACE,eAAe,CACf,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,EACpC,oBAAoB,CAAC,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAC3D,gBAAgB,CAAC,MAAM,CAAC,CACxB,GACA,KAAK;CACR,GAAG;IACH;;;;OAIG;IACH,YAAY,CAAC,CAAC,EAAE,CAAC,EAChB,EAAE,EAAE,CACH,GAAG,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GACtB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC;CAC1C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,+BAA+B,CAAC,MAAM,IACjD,gBAAgB,CAAC,MAAM,CAAC,GAAG;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,MAAM,MAAM,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,EAAE,MAAM,cAAc,CAC/C,YAAY,EACV,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,sBAAsB,CACxB,CAAC;CACF,CAAC;AAGH,MAAM,MAAM,aAAa,CACxB,EAAE,EACF,UAAU,SAAS,MAAM,EAAE,IACxB,EAAE,CAAC,UAAU,CAAC,SAAS,eAAe,CACzC,MAAM,EAAE,EACR,MAAM,SAAS,EACf,MAAM,MAAM,CACZ,GACE,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,GACjC,KAAK,CAAC;AAGT,MAAM,MAAM,UAAU,CAAC,MAAM,IAAI;KAC/B,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS;QACtC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;KACnD,GACE,CAAC,EAAE,GACH,KAAK;CACR,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ID generation utility with uniqueness guarantees
|
|
3
|
+
* Provides various ID generation strategies for database entities
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Generate a timestamp-based ID with microsecond precision
|
|
7
|
+
* Format: timestamp-random-counter
|
|
8
|
+
* Example: "1704067200000-a3f2-0001"
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateTimestampId(): string;
|
|
11
|
+
/**
|
|
12
|
+
* Generate a nano ID - URL-safe, short, unique identifier
|
|
13
|
+
* Uses a larger alphabet for better uniqueness in shorter strings
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateNanoId(length?: number): string;
|
|
16
|
+
/**
|
|
17
|
+
* Generate a UUID v4 compliant identifier
|
|
18
|
+
* Standard format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
|
|
19
|
+
*/
|
|
20
|
+
export declare function generateUUID(): string;
|
|
21
|
+
/**
|
|
22
|
+
* Generate a prefixed ID for better organization
|
|
23
|
+
* Format: prefix_id
|
|
24
|
+
* Example: "user_1704067200000-a3f2-0001"
|
|
25
|
+
*/
|
|
26
|
+
export declare function generatePrefixedId(prefix: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* Generate a ULID (Universally Unique Lexicographically Sortable Identifier)
|
|
29
|
+
* Sortable by creation time, case-insensitive
|
|
30
|
+
*/
|
|
31
|
+
export declare function generateULID(): string;
|
|
32
|
+
/**
|
|
33
|
+
* Generate a sortable ID that includes type information
|
|
34
|
+
* Format: type:timestamp:random
|
|
35
|
+
* Example: "user:1704067200000:a3f2"
|
|
36
|
+
*/
|
|
37
|
+
export declare function generateTypedId(type: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Check if a string is a valid ID format
|
|
40
|
+
*/
|
|
41
|
+
export declare function isValidId(id: unknown): id is string;
|
|
42
|
+
/**
|
|
43
|
+
* Check if ID matches expected format
|
|
44
|
+
*/
|
|
45
|
+
export declare function isValidIdFormat(id: string, format: "uuid" | "ulid" | "timestamp" | "nano"): boolean;
|
|
46
|
+
export type IdGeneratorConfig = {
|
|
47
|
+
strategy: "timestamp" | "nano" | "uuid" | "ulid" | "prefixed" | "typed";
|
|
48
|
+
prefix?: string;
|
|
49
|
+
type?: string;
|
|
50
|
+
length?: number;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Default ID generator configuration
|
|
54
|
+
*/
|
|
55
|
+
export declare const defaultIdConfig: IdGeneratorConfig;
|
|
56
|
+
/**
|
|
57
|
+
* Create an ID generator with specific configuration
|
|
58
|
+
*/
|
|
59
|
+
export declare function createIdGenerator(config?: IdGeneratorConfig): () => string;
|
|
60
|
+
/**
|
|
61
|
+
* Default ID generator using nano ID strategy
|
|
62
|
+
*/
|
|
63
|
+
export declare const generateId: () => string;
|
|
64
|
+
/**
|
|
65
|
+
* Collection-specific ID generators
|
|
66
|
+
* Allows different ID strategies per collection
|
|
67
|
+
*/
|
|
68
|
+
export declare class CollectionIdGenerators {
|
|
69
|
+
private generators;
|
|
70
|
+
private defaultGenerator;
|
|
71
|
+
constructor(defaultConfig?: IdGeneratorConfig);
|
|
72
|
+
/**
|
|
73
|
+
* Register a custom ID generator for a collection
|
|
74
|
+
*/
|
|
75
|
+
register(collection: string, config: IdGeneratorConfig): void;
|
|
76
|
+
/**
|
|
77
|
+
* Get ID generator for a collection
|
|
78
|
+
*/
|
|
79
|
+
getGenerator(collection: string): () => string;
|
|
80
|
+
/**
|
|
81
|
+
* Generate ID for a collection
|
|
82
|
+
*/
|
|
83
|
+
generateFor(collection: string): string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Extract timestamp from timestamp-based IDs
|
|
87
|
+
*/
|
|
88
|
+
export declare function extractTimestamp(id: string): number | null;
|
|
89
|
+
/**
|
|
90
|
+
* Extract type from typed IDs
|
|
91
|
+
*/
|
|
92
|
+
export declare function extractType(id: string): string | null;
|
|
93
|
+
/**
|
|
94
|
+
* Compare IDs for sorting (works with timestamp-based IDs)
|
|
95
|
+
*/
|
|
96
|
+
export declare function compareIds(a: string, b: string): number;
|
|
97
|
+
//# sourceMappingURL=id-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-generator.d.ts","sourceRoot":"","sources":["../../src/utils/id-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAoB1D;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAWrC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAKrC;AAuBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpD;AAMD;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC9B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAC5C,OAAO,CAeT;AAMD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,iBAG7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,GAAE,iBAAmC,GACzC,MAAM,MAAM,CA6Bd;AAMD;;GAEG;AACH,eAAO,MAAM,UAAU,QAtCd,MAsCmD,CAAC;AAE7D;;;GAGG;AACH,qBAAa,sBAAsB;IAClC,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,gBAAgB,CAAe;gBAE3B,aAAa,GAAE,iBAAmC;IAI9D;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAI7D;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,MAAM;IAI9C;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAGvC;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAUvD"}
|