@dryvcode/author 0.0.1
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/README.md +341 -0
- package/dist/behavior/duration.d.ts +7 -0
- package/dist/behavior/duration.d.ts.map +1 -0
- package/dist/behavior/duration.js +20 -0
- package/dist/behavior/duration.js.map +1 -0
- package/dist/behavior/event.d.ts +23 -0
- package/dist/behavior/event.d.ts.map +1 -0
- package/dist/behavior/event.js +57 -0
- package/dist/behavior/event.js.map +1 -0
- package/dist/behavior/failure.d.ts +19 -0
- package/dist/behavior/failure.d.ts.map +1 -0
- package/dist/behavior/failure.js +48 -0
- package/dist/behavior/failure.js.map +1 -0
- package/dist/behavior/index.d.ts +6 -0
- package/dist/behavior/index.d.ts.map +1 -0
- package/dist/behavior/index.js +6 -0
- package/dist/behavior/index.js.map +1 -0
- package/dist/behavior/operation.d.ts +72 -0
- package/dist/behavior/operation.d.ts.map +1 -0
- package/dist/behavior/operation.js +193 -0
- package/dist/behavior/operation.js.map +1 -0
- package/dist/behavior/policy.d.ts +29 -0
- package/dist/behavior/policy.d.ts.map +1 -0
- package/dist/behavior/policy.js +80 -0
- package/dist/behavior/policy.js.map +1 -0
- package/dist/composition/application.d.ts +28 -0
- package/dist/composition/application.d.ts.map +1 -0
- package/dist/composition/application.js +64 -0
- package/dist/composition/application.js.map +1 -0
- package/dist/composition/feature.d.ts +37 -0
- package/dist/composition/feature.d.ts.map +1 -0
- package/dist/composition/feature.js +82 -0
- package/dist/composition/feature.js.map +1 -0
- package/dist/composition/index.d.ts +3 -0
- package/dist/composition/index.d.ts.map +1 -0
- package/dist/composition/index.js +3 -0
- package/dist/composition/index.js.map +1 -0
- package/dist/contracts/behavior.d.ts +106 -0
- package/dist/contracts/behavior.d.ts.map +1 -0
- package/dist/contracts/behavior.js +2 -0
- package/dist/contracts/behavior.js.map +1 -0
- package/dist/contracts/composition.d.ts +20 -0
- package/dist/contracts/composition.d.ts.map +1 -0
- package/dist/contracts/composition.js +2 -0
- package/dist/contracts/composition.js.map +1 -0
- package/dist/contracts/definitions.d.ts +286 -0
- package/dist/contracts/definitions.d.ts.map +1 -0
- package/dist/contracts/definitions.js +35 -0
- package/dist/contracts/definitions.js.map +1 -0
- package/dist/contracts/expressions.d.ts +44 -0
- package/dist/contracts/expressions.d.ts.map +1 -0
- package/dist/contracts/expressions.js +2 -0
- package/dist/contracts/expressions.js.map +1 -0
- package/dist/contracts/foundation.d.ts +141 -0
- package/dist/contracts/foundation.d.ts.map +1 -0
- package/dist/contracts/foundation.js +2 -0
- package/dist/contracts/foundation.js.map +1 -0
- package/dist/contracts/index.d.ts +10 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +10 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/interaction.d.ts +52 -0
- package/dist/contracts/interaction.d.ts.map +1 -0
- package/dist/contracts/interaction.js +2 -0
- package/dist/contracts/interaction.js.map +1 -0
- package/dist/contracts/interfaces.d.ts +73 -0
- package/dist/contracts/interfaces.d.ts.map +1 -0
- package/dist/contracts/interfaces.js +2 -0
- package/dist/contracts/interfaces.js.map +1 -0
- package/dist/contracts/orchestration.d.ts +56 -0
- package/dist/contracts/orchestration.d.ts.map +1 -0
- package/dist/contracts/orchestration.js +2 -0
- package/dist/contracts/orchestration.js.map +1 -0
- package/dist/contracts/project.d.ts +70 -0
- package/dist/contracts/project.d.ts.map +1 -0
- package/dist/contracts/project.js +2 -0
- package/dist/contracts/project.js.map +1 -0
- package/dist/data/index.d.ts +2 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +2 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/storage.d.ts +23 -0
- package/dist/data/storage.d.ts.map +1 -0
- package/dist/data/storage.js +93 -0
- package/dist/data/storage.js.map +1 -0
- package/dist/definitions/expressions/expression.d.ts +49 -0
- package/dist/definitions/expressions/expression.d.ts.map +1 -0
- package/dist/definitions/expressions/expression.js +181 -0
- package/dist/definitions/expressions/expression.js.map +1 -0
- package/dist/definitions/expressions/index.d.ts +2 -0
- package/dist/definitions/expressions/index.d.ts.map +1 -0
- package/dist/definitions/expressions/index.js +2 -0
- package/dist/definitions/expressions/index.js.map +1 -0
- package/dist/definitions/index.d.ts +7 -0
- package/dist/definitions/index.d.ts.map +1 -0
- package/dist/definitions/index.js +7 -0
- package/dist/definitions/index.js.map +1 -0
- package/dist/definitions/properties/advanced.d.ts +27 -0
- package/dist/definitions/properties/advanced.d.ts.map +1 -0
- package/dist/definitions/properties/advanced.js +95 -0
- package/dist/definitions/properties/advanced.js.map +1 -0
- package/dist/definitions/properties/base.d.ts +29 -0
- package/dist/definitions/properties/base.d.ts.map +1 -0
- package/dist/definitions/properties/base.js +60 -0
- package/dist/definitions/properties/base.js.map +1 -0
- package/dist/definitions/properties/composite.d.ts +14 -0
- package/dist/definitions/properties/composite.d.ts.map +1 -0
- package/dist/definitions/properties/composite.js +41 -0
- package/dist/definitions/properties/composite.js.map +1 -0
- package/dist/definitions/properties/enumeration.d.ts +17 -0
- package/dist/definitions/properties/enumeration.d.ts.map +1 -0
- package/dist/definitions/properties/enumeration.js +48 -0
- package/dist/definitions/properties/enumeration.js.map +1 -0
- package/dist/definitions/properties/generic.d.ts +22 -0
- package/dist/definitions/properties/generic.d.ts.map +1 -0
- package/dist/definitions/properties/generic.js +61 -0
- package/dist/definitions/properties/generic.js.map +1 -0
- package/dist/definitions/properties/index.d.ts +12 -0
- package/dist/definitions/properties/index.d.ts.map +1 -0
- package/dist/definitions/properties/index.js +3 -0
- package/dist/definitions/properties/index.js.map +1 -0
- package/dist/definitions/properties/metadata.d.ts +6 -0
- package/dist/definitions/properties/metadata.d.ts.map +1 -0
- package/dist/definitions/properties/metadata.js +4 -0
- package/dist/definitions/properties/metadata.js.map +1 -0
- package/dist/definitions/properties/primitive.d.ts +66 -0
- package/dist/definitions/properties/primitive.d.ts.map +1 -0
- package/dist/definitions/properties/primitive.js +266 -0
- package/dist/definitions/properties/primitive.js.map +1 -0
- package/dist/definitions/properties/property.d.ts +171 -0
- package/dist/definitions/properties/property.d.ts.map +1 -0
- package/dist/definitions/properties/property.js +211 -0
- package/dist/definitions/properties/property.js.map +1 -0
- package/dist/definitions/properties/temporal.d.ts +37 -0
- package/dist/definitions/properties/temporal.d.ts.map +1 -0
- package/dist/definitions/properties/temporal.js +115 -0
- package/dist/definitions/properties/temporal.js.map +1 -0
- package/dist/definitions/schemas/field.d.ts +123 -0
- package/dist/definitions/schemas/field.d.ts.map +1 -0
- package/dist/definitions/schemas/field.js +329 -0
- package/dist/definitions/schemas/field.js.map +1 -0
- package/dist/definitions/schemas/index.d.ts +6 -0
- package/dist/definitions/schemas/index.d.ts.map +1 -0
- package/dist/definitions/schemas/index.js +6 -0
- package/dist/definitions/schemas/index.js.map +1 -0
- package/dist/definitions/schemas/projection.d.ts +90 -0
- package/dist/definitions/schemas/projection.d.ts.map +1 -0
- package/dist/definitions/schemas/projection.js +146 -0
- package/dist/definitions/schemas/projection.js.map +1 -0
- package/dist/definitions/schemas/relation.d.ts +12 -0
- package/dist/definitions/schemas/relation.d.ts.map +1 -0
- package/dist/definitions/schemas/relation.js +27 -0
- package/dist/definitions/schemas/relation.js.map +1 -0
- package/dist/definitions/schemas/schema.d.ts +46 -0
- package/dist/definitions/schemas/schema.d.ts.map +1 -0
- package/dist/definitions/schemas/schema.js +134 -0
- package/dist/definitions/schemas/schema.js.map +1 -0
- package/dist/definitions/schemas/source.d.ts +30 -0
- package/dist/definitions/schemas/source.d.ts.map +1 -0
- package/dist/definitions/schemas/source.js +73 -0
- package/dist/definitions/schemas/source.js.map +1 -0
- package/dist/definitions/types/expressions.d.ts +28 -0
- package/dist/definitions/types/expressions.d.ts.map +1 -0
- package/dist/definitions/types/expressions.js +81 -0
- package/dist/definitions/types/expressions.js.map +1 -0
- package/dist/definitions/types/index.d.ts +4 -0
- package/dist/definitions/types/index.d.ts.map +1 -0
- package/dist/definitions/types/index.js +4 -0
- package/dist/definitions/types/index.js.map +1 -0
- package/dist/definitions/types/parameter.d.ts +9 -0
- package/dist/definitions/types/parameter.d.ts.map +1 -0
- package/dist/definitions/types/parameter.js +24 -0
- package/dist/definitions/types/parameter.js.map +1 -0
- package/dist/definitions/types/spec.d.ts +26 -0
- package/dist/definitions/types/spec.d.ts.map +1 -0
- package/dist/definitions/types/spec.js +74 -0
- package/dist/definitions/types/spec.js.map +1 -0
- package/dist/foundation/declaration.d.ts +24 -0
- package/dist/foundation/declaration.d.ts.map +1 -0
- package/dist/foundation/declaration.js +43 -0
- package/dist/foundation/declaration.js.map +1 -0
- package/dist/foundation/group.d.ts +55 -0
- package/dist/foundation/group.d.ts.map +1 -0
- package/dist/foundation/group.js +199 -0
- package/dist/foundation/group.js.map +1 -0
- package/dist/foundation/index.d.ts +7 -0
- package/dist/foundation/index.d.ts.map +1 -0
- package/dist/foundation/index.js +7 -0
- package/dist/foundation/index.js.map +1 -0
- package/dist/foundation/metadata.d.ts +22 -0
- package/dist/foundation/metadata.d.ts.map +1 -0
- package/dist/foundation/metadata.js +43 -0
- package/dist/foundation/metadata.js.map +1 -0
- package/dist/foundation/ref.d.ts +200 -0
- package/dist/foundation/ref.d.ts.map +1 -0
- package/dist/foundation/ref.js +230 -0
- package/dist/foundation/ref.js.map +1 -0
- package/dist/foundation/scope.d.ts +13 -0
- package/dist/foundation/scope.d.ts.map +1 -0
- package/dist/foundation/scope.js +63 -0
- package/dist/foundation/scope.js.map +1 -0
- package/dist/foundation/value-declaration.d.ts +9 -0
- package/dist/foundation/value-declaration.d.ts.map +1 -0
- package/dist/foundation/value-declaration.js +2 -0
- package/dist/foundation/value-declaration.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/interaction/index.d.ts +3 -0
- package/dist/interaction/index.d.ts.map +1 -0
- package/dist/interaction/index.js +3 -0
- package/dist/interaction/index.js.map +1 -0
- package/dist/interaction/part.d.ts +58 -0
- package/dist/interaction/part.d.ts.map +1 -0
- package/dist/interaction/part.js +178 -0
- package/dist/interaction/part.js.map +1 -0
- package/dist/interaction/view.d.ts +34 -0
- package/dist/interaction/view.d.ts.map +1 -0
- package/dist/interaction/view.js +109 -0
- package/dist/interaction/view.js.map +1 -0
- package/dist/interfaces/facet.d.ts +6 -0
- package/dist/interfaces/facet.d.ts.map +1 -0
- package/dist/interfaces/facet.js +2 -0
- package/dist/interfaces/facet.js.map +1 -0
- package/dist/interfaces/http.d.ts +39 -0
- package/dist/interfaces/http.d.ts.map +1 -0
- package/dist/interfaces/http.js +109 -0
- package/dist/interfaces/http.js.map +1 -0
- package/dist/interfaces/index.d.ts +7 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +7 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/representation.d.ts +14 -0
- package/dist/interfaces/representation.d.ts.map +1 -0
- package/dist/interfaces/representation.js +25 -0
- package/dist/interfaces/representation.js.map +1 -0
- package/dist/interfaces/schedule.d.ts +14 -0
- package/dist/interfaces/schedule.d.ts.map +1 -0
- package/dist/interfaces/schedule.js +46 -0
- package/dist/interfaces/schedule.js.map +1 -0
- package/dist/interfaces/surface.d.ts +22 -0
- package/dist/interfaces/surface.d.ts.map +1 -0
- package/dist/interfaces/surface.js +44 -0
- package/dist/interfaces/surface.js.map +1 -0
- package/dist/interfaces/websocket.d.ts +11 -0
- package/dist/interfaces/websocket.d.ts.map +1 -0
- package/dist/interfaces/websocket.js +25 -0
- package/dist/interfaces/websocket.js.map +1 -0
- package/dist/orchestration/index.d.ts +4 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +4 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/steps.d.ts +41 -0
- package/dist/orchestration/steps.d.ts.map +1 -0
- package/dist/orchestration/steps.js +105 -0
- package/dist/orchestration/steps.js.map +1 -0
- package/dist/orchestration/value-source.d.ts +8 -0
- package/dist/orchestration/value-source.d.ts.map +1 -0
- package/dist/orchestration/value-source.js +10 -0
- package/dist/orchestration/value-source.js.map +1 -0
- package/dist/orchestration/workflow.d.ts +38 -0
- package/dist/orchestration/workflow.d.ts.map +1 -0
- package/dist/orchestration/workflow.js +116 -0
- package/dist/orchestration/workflow.js.map +1 -0
- package/dist/project/index.d.ts +2 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +2 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/project.d.ts +27 -0
- package/dist/project/project.d.ts.map +1 -0
- package/dist/project/project.js +161 -0
- package/dist/project/project.js.map +1 -0
- package/dist/project/registry.d.ts +33 -0
- package/dist/project/registry.d.ts.map +1 -0
- package/dist/project/registry.js +58 -0
- package/dist/project/registry.js.map +1 -0
- package/dist/project/snapshot.d.ts +4 -0
- package/dist/project/snapshot.d.ts.map +1 -0
- package/dist/project/snapshot.js +15 -0
- package/dist/project/snapshot.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { CanonicalValue, CompositeFieldState, ExplanationKindState, IntrinsicValueTargetKind, IntrinsicValueTargetState, PropertyDeclarationKind, QueryDomain, RelationCardinalityState, RelationLifecycleState, SchemaFieldState, TypeExpressionState } from "../../contracts/index.js";
|
|
2
|
+
import type { LengthConstraintInput } from "../properties/primitive.js";
|
|
3
|
+
import type { FieldSourceDeclaration } from "./source.js";
|
|
4
|
+
import type { TypeParameter } from "../types/parameter.js";
|
|
5
|
+
import { ExpressionRef, type InferRefFields, type PolicyRef, type PropertyRef, type RefFieldMap, type RefFieldMeta, type SchemaFieldRef, type SchemaRef } from "../../foundation/ref.js";
|
|
6
|
+
export type FieldMutationMode = "mutable" | "create-only" | "system";
|
|
7
|
+
export interface SchemaFieldLike<T = unknown, D extends QueryDomain = QueryDomain, M extends RefFieldMeta = RefFieldMeta> {
|
|
8
|
+
readonly __value?: T;
|
|
9
|
+
readonly __queryDomain?: D;
|
|
10
|
+
readonly __fieldMeta?: M;
|
|
11
|
+
isOptional(): boolean;
|
|
12
|
+
toState(): SchemaFieldState;
|
|
13
|
+
toCompositeState(): CompositeFieldState;
|
|
14
|
+
toInlineTypeState(): TypeExpressionState;
|
|
15
|
+
}
|
|
16
|
+
export type SchemaFieldMap = Readonly<Record<string, SchemaFieldLike>>;
|
|
17
|
+
export type BaseQueryOperator = "equal" | "notEqual" | "in" | "notIn";
|
|
18
|
+
export type StringQueryOperator = BaseQueryOperator | "contains" | "startsWith" | "endsWith";
|
|
19
|
+
export type NumberQueryOperator = BaseQueryOperator | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "between";
|
|
20
|
+
export type TemporalQueryOperator = BaseQueryOperator | "before" | "after" | "between";
|
|
21
|
+
export type OptionalQueryOperator = "exists" | "notExists";
|
|
22
|
+
export type NullableQueryOperator = "isNull" | "isNotNull";
|
|
23
|
+
export type ArrayQueryOperator = "contains" | "containsAny" | "containsAll" | "isEmpty" | "isNotEmpty";
|
|
24
|
+
export type QueryOperatorFor<D extends QueryDomain> = D extends "string" ? StringQueryOperator : D extends "number" ? NumberQueryOperator : D extends "temporal" ? TemporalQueryOperator : D extends "scalar" ? BaseQueryOperator : never;
|
|
25
|
+
export type QueryOperatorForUsage<D extends QueryDomain, O extends boolean, N extends boolean, A extends boolean> = QueryOperatorFor<D> | (O extends true ? OptionalQueryOperator : never) | (N extends true ? NullableQueryOperator : never) | (A extends true ? ArrayQueryOperator : never);
|
|
26
|
+
export interface FieldQueryOptions<D extends QueryDomain, O extends boolean = false, N extends boolean = false, A extends boolean = false> {
|
|
27
|
+
readonly filter?: readonly QueryOperatorForUsage<D, O, N, A>[] | "*";
|
|
28
|
+
readonly sort?: boolean;
|
|
29
|
+
readonly search?: D extends "string" ? boolean : false;
|
|
30
|
+
readonly allowNested?: D extends "complex" ? boolean : false;
|
|
31
|
+
}
|
|
32
|
+
export interface FieldRelationInput {
|
|
33
|
+
readonly target: () => SchemaFieldRef<unknown>;
|
|
34
|
+
readonly cardinality: RelationCardinalityState;
|
|
35
|
+
readonly onDelete?: RelationLifecycleState;
|
|
36
|
+
readonly onUpdate?: RelationLifecycleState;
|
|
37
|
+
}
|
|
38
|
+
export interface RelatedFieldInput {
|
|
39
|
+
readonly via: () => SchemaFieldRef<unknown>;
|
|
40
|
+
readonly inverse?: () => SchemaFieldRef<unknown>;
|
|
41
|
+
readonly cardinality?: RelationCardinalityState;
|
|
42
|
+
}
|
|
43
|
+
export declare class IntrinsicValueTarget<K extends IntrinsicValueTargetKind = IntrinsicValueTargetKind> {
|
|
44
|
+
readonly kind: K;
|
|
45
|
+
constructor(kind: K);
|
|
46
|
+
toState(): IntrinsicValueTargetState;
|
|
47
|
+
}
|
|
48
|
+
export declare function unknown(): IntrinsicValueTarget<"unknown">;
|
|
49
|
+
export declare function dynamic(): IntrinsicValueTarget<"dynamic">;
|
|
50
|
+
type ShapeChangingMethod = "required" | "optional" | "nullable" | "array";
|
|
51
|
+
export type QueriedField<T> = Omit<T, ShapeChangingMethod>;
|
|
52
|
+
export declare class SchemaFieldSpec<T, D extends QueryDomain = "complex", O extends boolean = false, N extends boolean = false, A extends boolean = false, M extends FieldMutationMode = "mutable", Q extends boolean = false, S extends boolean = false, R extends boolean = false> {
|
|
53
|
+
#private;
|
|
54
|
+
readonly __value?: T;
|
|
55
|
+
readonly __queryDomain?: D;
|
|
56
|
+
readonly __fieldMeta?: {
|
|
57
|
+
readonly queryDomain: D;
|
|
58
|
+
readonly optional: O;
|
|
59
|
+
readonly nullable: N;
|
|
60
|
+
readonly array: A;
|
|
61
|
+
readonly mutation: M;
|
|
62
|
+
readonly query: Q;
|
|
63
|
+
readonly sensitive: S;
|
|
64
|
+
readonly related: R;
|
|
65
|
+
};
|
|
66
|
+
private _optional;
|
|
67
|
+
private _nullable;
|
|
68
|
+
private _array?;
|
|
69
|
+
private _default?;
|
|
70
|
+
private _mutation?;
|
|
71
|
+
private _query?;
|
|
72
|
+
private _sensitive;
|
|
73
|
+
private _policy?;
|
|
74
|
+
private _relation?;
|
|
75
|
+
private _related?;
|
|
76
|
+
private _sources?;
|
|
77
|
+
private _tags;
|
|
78
|
+
private _explanations;
|
|
79
|
+
private constructor();
|
|
80
|
+
static property<T, D extends QueryDomain>(value: PropertyRef<PropertyDeclarationKind, T, D>): SchemaFieldSpec<T, D>;
|
|
81
|
+
static schema<TFields extends RefFieldMap>(value: SchemaRef<TFields>): SchemaFieldSpec<InferRefFields<TFields>, "complex">;
|
|
82
|
+
static lazySchema<TFields extends RefFieldMap>(value: () => SchemaRef<TFields>): SchemaFieldSpec<InferRefFields<TFields>, "complex">;
|
|
83
|
+
static intrinsic(value: IntrinsicValueTarget): SchemaFieldSpec<unknown, "complex">;
|
|
84
|
+
static parameter(value: TypeParameter): SchemaFieldSpec<unknown, "complex">;
|
|
85
|
+
required(): SchemaFieldSpec<Exclude<T, undefined>, D, false, N, A, M, Q, S, R>;
|
|
86
|
+
optional(): SchemaFieldSpec<T | undefined, D, true, N, A, M, Q, S, R>;
|
|
87
|
+
nullable(): SchemaFieldSpec<T | null, D, O, true, A, M, Q, S, R>;
|
|
88
|
+
array(length?: LengthConstraintInput): SchemaFieldSpec<readonly T[], D, O, N, true, M, Q, S, R>;
|
|
89
|
+
default(value: T | CanonicalValue | ExpressionRef<T>): this;
|
|
90
|
+
system(): SchemaFieldSpec<T, D, O, N, A, "system", Q, S, R>;
|
|
91
|
+
createOnly(): SchemaFieldSpec<T, D, O, N, A, "create-only", Q, S, R>;
|
|
92
|
+
query(value: FieldQueryOptions<D, O, N, A>): QueriedField<SchemaFieldSpec<T, D, O, N, A, M, true, S, R>>;
|
|
93
|
+
sensitive(): SchemaFieldSpec<T, D, O, N, A, M, Q, true, R>;
|
|
94
|
+
policy(value: {
|
|
95
|
+
readonly read?: PolicyRef;
|
|
96
|
+
readonly write?: PolicyRef;
|
|
97
|
+
}): this;
|
|
98
|
+
relation(value: FieldRelationInput): this;
|
|
99
|
+
related(value: RelatedFieldInput): SchemaFieldSpec<T, D, O, N, A, M, Q, S, true>;
|
|
100
|
+
sources(values: Readonly<Record<string, FieldSourceDeclaration>>): this;
|
|
101
|
+
tags(...values: readonly string[]): this;
|
|
102
|
+
explain(kind: ExplanationKindState, text: string): this;
|
|
103
|
+
isOptional(): boolean;
|
|
104
|
+
private targetState;
|
|
105
|
+
private semanticMetadata;
|
|
106
|
+
toState(): SchemaFieldState;
|
|
107
|
+
toCompositeState(): CompositeFieldState;
|
|
108
|
+
toInlineTypeState(): TypeExpressionState;
|
|
109
|
+
}
|
|
110
|
+
export type InferSchemaField<T> = T extends {
|
|
111
|
+
readonly __value?: infer V;
|
|
112
|
+
} ? V : never;
|
|
113
|
+
export type InferSchemaFields<T extends SchemaFieldMap> = {
|
|
114
|
+
readonly [K in keyof T]: InferSchemaField<T[K]>;
|
|
115
|
+
};
|
|
116
|
+
export declare function field<K extends PropertyDeclarationKind, T, D extends QueryDomain>(value: PropertyRef<K, T, D>): SchemaFieldSpec<T, D>;
|
|
117
|
+
export declare function field<TFields extends RefFieldMap>(value: SchemaRef<TFields>): SchemaFieldSpec<InferRefFields<TFields>, "complex">;
|
|
118
|
+
export declare function field<TFields extends RefFieldMap>(value: () => SchemaRef<TFields>): SchemaFieldSpec<InferRefFields<TFields>, "complex">;
|
|
119
|
+
export declare function field(value: IntrinsicValueTarget): SchemaFieldSpec<unknown, "complex">;
|
|
120
|
+
export declare function field(value: TypeParameter): SchemaFieldSpec<unknown, "complex">;
|
|
121
|
+
export declare function fieldUse<K extends PropertyDeclarationKind, T, D extends QueryDomain>(value: PropertyRef<K, T, D>): SchemaFieldSpec<T, D>;
|
|
122
|
+
export {};
|
|
123
|
+
//# sourceMappingURL=field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../../src/definitions/schemas/field.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import { requireText } from "../../foundation/metadata.js";
|
|
2
|
+
import { ExpressionRef, } from "../../foundation/ref.js";
|
|
3
|
+
export class IntrinsicValueTarget {
|
|
4
|
+
kind;
|
|
5
|
+
constructor(kind) {
|
|
6
|
+
this.kind = kind;
|
|
7
|
+
}
|
|
8
|
+
toState() {
|
|
9
|
+
return { kind: this.kind };
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function unknown() {
|
|
13
|
+
return new IntrinsicValueTarget("unknown");
|
|
14
|
+
}
|
|
15
|
+
export function dynamic() {
|
|
16
|
+
return new IntrinsicValueTarget("dynamic");
|
|
17
|
+
}
|
|
18
|
+
function arrayBounds(value) {
|
|
19
|
+
if (value.exact !== undefined) {
|
|
20
|
+
if (!Number.isInteger(value.exact) || value.exact < 0) {
|
|
21
|
+
throw new TypeError("array exact length must be a non-negative integer");
|
|
22
|
+
}
|
|
23
|
+
return { min: value.exact, max: value.exact };
|
|
24
|
+
}
|
|
25
|
+
if (value.min === undefined && value.max === undefined) {
|
|
26
|
+
throw new TypeError("array length requires exact or at least one of min/max");
|
|
27
|
+
}
|
|
28
|
+
for (const [name, item] of [
|
|
29
|
+
["min", value.min],
|
|
30
|
+
["max", value.max],
|
|
31
|
+
]) {
|
|
32
|
+
if (item !== undefined && (!Number.isInteger(item) || item < 0)) {
|
|
33
|
+
throw new TypeError(`array ${name} length must be a non-negative integer`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (value.min !== undefined &&
|
|
37
|
+
value.max !== undefined &&
|
|
38
|
+
value.min > value.max) {
|
|
39
|
+
throw new TypeError("array min length must not exceed max");
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
...(value.min === undefined ? {} : { min: value.min }),
|
|
43
|
+
...(value.max === undefined ? {} : { max: value.max }),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export class SchemaFieldSpec {
|
|
47
|
+
#target;
|
|
48
|
+
#lazySchema;
|
|
49
|
+
#intrinsic;
|
|
50
|
+
#parameter;
|
|
51
|
+
_optional = false;
|
|
52
|
+
_nullable = false;
|
|
53
|
+
_array;
|
|
54
|
+
_default;
|
|
55
|
+
_mutation;
|
|
56
|
+
_query;
|
|
57
|
+
_sensitive = false;
|
|
58
|
+
_policy;
|
|
59
|
+
_relation;
|
|
60
|
+
_related;
|
|
61
|
+
_sources;
|
|
62
|
+
_tags = [];
|
|
63
|
+
_explanations = [];
|
|
64
|
+
constructor(origin) {
|
|
65
|
+
if (origin.target !== undefined)
|
|
66
|
+
this.#target = origin.target;
|
|
67
|
+
if (origin.lazySchema !== undefined)
|
|
68
|
+
this.#lazySchema = origin.lazySchema;
|
|
69
|
+
if (origin.intrinsic !== undefined)
|
|
70
|
+
this.#intrinsic = origin.intrinsic;
|
|
71
|
+
if (origin.parameter !== undefined)
|
|
72
|
+
this.#parameter = origin.parameter;
|
|
73
|
+
const count = [
|
|
74
|
+
this.#target,
|
|
75
|
+
this.#lazySchema,
|
|
76
|
+
this.#intrinsic,
|
|
77
|
+
this.#parameter,
|
|
78
|
+
].filter((value) => value !== undefined).length;
|
|
79
|
+
if (count !== 1) {
|
|
80
|
+
throw new TypeError("field requires exactly one registered property/schema ref, lazy schema ref, intrinsic, or generic parameter");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
static property(value) {
|
|
84
|
+
return new SchemaFieldSpec({ target: value });
|
|
85
|
+
}
|
|
86
|
+
static schema(value) {
|
|
87
|
+
return new SchemaFieldSpec({
|
|
88
|
+
target: value,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
static lazySchema(value) {
|
|
92
|
+
return new SchemaFieldSpec({
|
|
93
|
+
lazySchema: value,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
static intrinsic(value) {
|
|
97
|
+
return new SchemaFieldSpec({ intrinsic: value });
|
|
98
|
+
}
|
|
99
|
+
static parameter(value) {
|
|
100
|
+
return new SchemaFieldSpec({ parameter: value });
|
|
101
|
+
}
|
|
102
|
+
required() {
|
|
103
|
+
this._optional = false;
|
|
104
|
+
return this;
|
|
105
|
+
}
|
|
106
|
+
optional() {
|
|
107
|
+
this._optional = true;
|
|
108
|
+
return this;
|
|
109
|
+
}
|
|
110
|
+
nullable() {
|
|
111
|
+
this._nullable = true;
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
array(length) {
|
|
115
|
+
this._array = length === undefined ? {} : arrayBounds(length);
|
|
116
|
+
return this;
|
|
117
|
+
}
|
|
118
|
+
default(value) {
|
|
119
|
+
this._default =
|
|
120
|
+
value instanceof ExpressionRef ? value.ref() : value;
|
|
121
|
+
return this;
|
|
122
|
+
}
|
|
123
|
+
system() {
|
|
124
|
+
this._mutation = "system";
|
|
125
|
+
return this;
|
|
126
|
+
}
|
|
127
|
+
createOnly() {
|
|
128
|
+
this._mutation = "create-only";
|
|
129
|
+
return this;
|
|
130
|
+
}
|
|
131
|
+
query(value) {
|
|
132
|
+
let filter;
|
|
133
|
+
if (value.filter !== undefined) {
|
|
134
|
+
filter =
|
|
135
|
+
value.filter === "*"
|
|
136
|
+
? "*"
|
|
137
|
+
: [...value.filter];
|
|
138
|
+
if (filter !== "*" && new Set(filter).size !== filter.length) {
|
|
139
|
+
throw new TypeError("query filter operators must be unique");
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const sort = value.sort === true ? true : undefined;
|
|
143
|
+
const search = value.search === true ? true : undefined;
|
|
144
|
+
const allowNested = value.allowNested === true ? true : undefined;
|
|
145
|
+
if (filter === undefined &&
|
|
146
|
+
sort === undefined &&
|
|
147
|
+
search === undefined &&
|
|
148
|
+
allowNested === undefined) {
|
|
149
|
+
throw new TypeError("query requires at least one enabled capability");
|
|
150
|
+
}
|
|
151
|
+
this._query = {
|
|
152
|
+
...(filter === undefined ? {} : { filter }),
|
|
153
|
+
...(sort === undefined ? {} : { sort }),
|
|
154
|
+
...(search === undefined ? {} : { search }),
|
|
155
|
+
...(allowNested === undefined ? {} : { allowNested }),
|
|
156
|
+
};
|
|
157
|
+
return this;
|
|
158
|
+
}
|
|
159
|
+
sensitive() {
|
|
160
|
+
this._sensitive = true;
|
|
161
|
+
return this;
|
|
162
|
+
}
|
|
163
|
+
policy(value) {
|
|
164
|
+
if (value.read === undefined && value.write === undefined) {
|
|
165
|
+
throw new TypeError("field policy requires read or write");
|
|
166
|
+
}
|
|
167
|
+
this._policy = {
|
|
168
|
+
...(value.read === undefined ? {} : { read: value.read.ref() }),
|
|
169
|
+
...(value.write === undefined ? {} : { write: value.write.ref() }),
|
|
170
|
+
};
|
|
171
|
+
return this;
|
|
172
|
+
}
|
|
173
|
+
relation(value) {
|
|
174
|
+
this._relation = () => ({
|
|
175
|
+
target: value.target().toState(),
|
|
176
|
+
cardinality: value.cardinality,
|
|
177
|
+
...(value.onDelete === undefined ? {} : { onDelete: value.onDelete }),
|
|
178
|
+
...(value.onUpdate === undefined ? {} : { onUpdate: value.onUpdate }),
|
|
179
|
+
});
|
|
180
|
+
return this;
|
|
181
|
+
}
|
|
182
|
+
related(value) {
|
|
183
|
+
this._related = () => ({
|
|
184
|
+
via: value.via().toState(),
|
|
185
|
+
...(value.inverse === undefined
|
|
186
|
+
? {}
|
|
187
|
+
: { inverse: value.inverse().toState() }),
|
|
188
|
+
...(value.cardinality === undefined
|
|
189
|
+
? {}
|
|
190
|
+
: { cardinality: value.cardinality }),
|
|
191
|
+
});
|
|
192
|
+
return this;
|
|
193
|
+
}
|
|
194
|
+
sources(values) {
|
|
195
|
+
if (Object.keys(values).length === 0) {
|
|
196
|
+
throw new TypeError("field sources must not be empty");
|
|
197
|
+
}
|
|
198
|
+
this._sources = { ...values };
|
|
199
|
+
return this;
|
|
200
|
+
}
|
|
201
|
+
tags(...values) {
|
|
202
|
+
if (values.length === 0) {
|
|
203
|
+
throw new TypeError("field tags requires at least one tag");
|
|
204
|
+
}
|
|
205
|
+
const normalized = values.map((value) => requireText(value, "field tag"));
|
|
206
|
+
if (new Set(normalized).size !== normalized.length) {
|
|
207
|
+
throw new TypeError("field tags must be unique");
|
|
208
|
+
}
|
|
209
|
+
this._tags = [...normalized].sort();
|
|
210
|
+
return this;
|
|
211
|
+
}
|
|
212
|
+
explain(kind, text) {
|
|
213
|
+
this._explanations.push({
|
|
214
|
+
kind,
|
|
215
|
+
text: requireText(text, "field explanation"),
|
|
216
|
+
});
|
|
217
|
+
return this;
|
|
218
|
+
}
|
|
219
|
+
isOptional() {
|
|
220
|
+
return this._optional;
|
|
221
|
+
}
|
|
222
|
+
targetState() {
|
|
223
|
+
if (this.#target !== undefined)
|
|
224
|
+
return this.#target.ref();
|
|
225
|
+
if (this.#lazySchema !== undefined)
|
|
226
|
+
return this.#lazySchema().ref();
|
|
227
|
+
if (this.#intrinsic !== undefined)
|
|
228
|
+
return this.#intrinsic.toState();
|
|
229
|
+
throw new TypeError("generic parameter fields are only valid inside generic property bodies");
|
|
230
|
+
}
|
|
231
|
+
semanticMetadata() {
|
|
232
|
+
return {
|
|
233
|
+
...(this._tags.length === 0 ? {} : { tags: [...this._tags] }),
|
|
234
|
+
...(this._explanations.length === 0
|
|
235
|
+
? {}
|
|
236
|
+
: {
|
|
237
|
+
explanations: this._explanations.map((value) => ({ ...value })),
|
|
238
|
+
}),
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
toState() {
|
|
242
|
+
if (this._relation !== undefined && this._related !== undefined) {
|
|
243
|
+
throw new TypeError("a field cannot define both relation and related");
|
|
244
|
+
}
|
|
245
|
+
return {
|
|
246
|
+
target: this.targetState(),
|
|
247
|
+
...(this._optional ? { optional: true } : {}),
|
|
248
|
+
...(this._nullable ? { nullable: true } : {}),
|
|
249
|
+
...(this._array === undefined ? {} : { array: { ...this._array } }),
|
|
250
|
+
...(this._default === undefined ? {} : { default: this._default }),
|
|
251
|
+
...(this._mutation === undefined ? {} : { mutation: this._mutation }),
|
|
252
|
+
...(this._query === undefined ? {} : { query: { ...this._query } }),
|
|
253
|
+
...(this._sensitive ? { sensitive: true } : {}),
|
|
254
|
+
...(this._policy === undefined ? {} : { policy: { ...this._policy } }),
|
|
255
|
+
...(this._relation === undefined ? {} : { relation: this._relation() }),
|
|
256
|
+
...(this._related === undefined ? {} : { related: this._related() }),
|
|
257
|
+
...(this._sources === undefined
|
|
258
|
+
? {}
|
|
259
|
+
: {
|
|
260
|
+
sources: Object.fromEntries(Object.entries(this._sources)
|
|
261
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
262
|
+
.map(([name, source]) => [name, source.toState()])),
|
|
263
|
+
}),
|
|
264
|
+
...this.semanticMetadata(),
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
toCompositeState() {
|
|
268
|
+
if (this.#parameter !== undefined) {
|
|
269
|
+
throw new TypeError("generic parameter fields cannot be materialized as standalone composite properties");
|
|
270
|
+
}
|
|
271
|
+
if (this._default !== undefined ||
|
|
272
|
+
this._mutation !== undefined ||
|
|
273
|
+
this._query !== undefined ||
|
|
274
|
+
this._sensitive ||
|
|
275
|
+
this._policy !== undefined ||
|
|
276
|
+
this._relation !== undefined ||
|
|
277
|
+
this._related !== undefined ||
|
|
278
|
+
this._sources !== undefined) {
|
|
279
|
+
throw new TypeError("composite fields may only define shape usage and semantic metadata");
|
|
280
|
+
}
|
|
281
|
+
return {
|
|
282
|
+
target: this.targetState(),
|
|
283
|
+
...(this._optional ? { optional: true } : {}),
|
|
284
|
+
...(this._nullable ? { nullable: true } : {}),
|
|
285
|
+
...(this._array === undefined ? {} : { array: { ...this._array } }),
|
|
286
|
+
...this.semanticMetadata(),
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
toInlineTypeState() {
|
|
290
|
+
if (this.#intrinsic !== undefined || this.#lazySchema !== undefined) {
|
|
291
|
+
throw new TypeError("intrinsic and lazy schema targets cannot appear inside recursive type expressions");
|
|
292
|
+
}
|
|
293
|
+
let type;
|
|
294
|
+
if (this.#parameter !== undefined) {
|
|
295
|
+
type = { kind: "parameter", parameter: this.#parameter.toState() };
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
type = { kind: "reference", target: this.#target.ref() };
|
|
299
|
+
}
|
|
300
|
+
if (this._array !== undefined) {
|
|
301
|
+
type = {
|
|
302
|
+
kind: "array",
|
|
303
|
+
items: type,
|
|
304
|
+
...(Object.keys(this._array).length === 0
|
|
305
|
+
? {}
|
|
306
|
+
: { length: { ...this._array } }),
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
if (this._nullable)
|
|
310
|
+
type = { kind: "nullable", value: type };
|
|
311
|
+
return type;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
export function field(value) {
|
|
315
|
+
if (typeof value === "function")
|
|
316
|
+
return SchemaFieldSpec.lazySchema(value);
|
|
317
|
+
if (value instanceof IntrinsicValueTarget) {
|
|
318
|
+
return SchemaFieldSpec.intrinsic(value);
|
|
319
|
+
}
|
|
320
|
+
if (!("ref" in value))
|
|
321
|
+
return SchemaFieldSpec.parameter(value);
|
|
322
|
+
if (value.kind === "schema")
|
|
323
|
+
return SchemaFieldSpec.schema(value);
|
|
324
|
+
return SchemaFieldSpec.property(value);
|
|
325
|
+
}
|
|
326
|
+
export function fieldUse(value) {
|
|
327
|
+
return field(value);
|
|
328
|
+
}
|
|
329
|
+
//# sourceMappingURL=field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.js","sourceRoot":"","sources":["../../../src/definitions/schemas/field.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/definitions/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/definitions/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { ProjectionPurposeState, ProjectionState, QueryDomain } from "../../contracts/index.js";
|
|
2
|
+
import type { SchemaFieldLike } from "./field.js";
|
|
3
|
+
import type { InferRefFieldMeta, PolicyRef, RefFieldLike, RefFieldMap, RefFieldMeta, SchemaRef } from "../../foundation/ref.js";
|
|
4
|
+
export interface ProjectionUsageInput {
|
|
5
|
+
readonly optional?: boolean;
|
|
6
|
+
readonly nullable?: boolean;
|
|
7
|
+
readonly array?: false | {
|
|
8
|
+
readonly min?: number;
|
|
9
|
+
readonly max?: number;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
interface ProjectionEntry<S extends string = string, F extends RefFieldLike = RefFieldLike> {
|
|
13
|
+
readonly source: S;
|
|
14
|
+
readonly field: F;
|
|
15
|
+
}
|
|
16
|
+
export type ProjectionSelectionMap = Readonly<Record<string, ProjectionEntry<string, RefFieldLike>>>;
|
|
17
|
+
type InitialSelection<TFields extends RefFieldMap> = {
|
|
18
|
+
readonly [K in Extract<keyof TFields, string>]: ProjectionEntry<K, TFields[K]>;
|
|
19
|
+
};
|
|
20
|
+
type EntryField<T> = T extends ProjectionEntry<string, infer F> ? F : never;
|
|
21
|
+
type EntryMeta<T> = InferRefFieldMeta<EntryField<T>>;
|
|
22
|
+
type EligibleForPurpose<T, P extends ProjectionPurposeState> = P extends "custom" ? true : EntryMeta<T> extends infer M ? M extends {
|
|
23
|
+
readonly mutation: infer Mutation;
|
|
24
|
+
readonly query: infer Query;
|
|
25
|
+
readonly sensitive: infer Sensitive;
|
|
26
|
+
readonly related: infer Related;
|
|
27
|
+
} ? Sensitive extends true ? false : P extends "read" ? true : P extends "create" ? Related extends true ? false : Mutation extends "system" ? false : true : P extends "edit" ? Related extends true ? false : Mutation extends "system" | "create-only" ? false : true : P extends "query" ? Query extends false ? false : true : true : true : true;
|
|
28
|
+
type PurposeSelection<TSelection extends ProjectionSelectionMap, P extends ProjectionPurposeState> = {
|
|
29
|
+
readonly [K in keyof TSelection as EligibleForPurpose<TSelection[K], P> extends true ? K : never]: TSelection[K];
|
|
30
|
+
};
|
|
31
|
+
type RenameSelection<TSelection extends ProjectionSelectionMap, TMap extends Partial<Record<Extract<keyof TSelection, string>, string>>> = {
|
|
32
|
+
readonly [K in Extract<keyof TSelection, string> as K extends keyof TMap ? TMap[K] extends string ? TMap[K] : K : K]: TSelection[K];
|
|
33
|
+
};
|
|
34
|
+
type FieldValue<F> = F extends {
|
|
35
|
+
readonly __value?: infer V;
|
|
36
|
+
} ? V : never;
|
|
37
|
+
type FieldMeta<F> = InferRefFieldMeta<F>;
|
|
38
|
+
type NonNullish<T> = Exclude<T, null | undefined>;
|
|
39
|
+
type ScalarValue<F> = FieldMeta<F>["array"] extends true ? NonNullish<FieldValue<F>> extends readonly (infer I)[] ? I : NonNullish<FieldValue<F>> : NonNullish<FieldValue<F>>;
|
|
40
|
+
type UsageBoolean<U extends ProjectionUsageInput, K extends "optional" | "nullable", Fallback extends boolean> = K extends keyof U ? (U[K] extends true ? true : false) : Fallback;
|
|
41
|
+
type UsageArray<U extends ProjectionUsageInput, Fallback extends boolean> = "array" extends keyof U ? U["array"] extends false ? false : true : Fallback;
|
|
42
|
+
type ApplyUsageValue<F, U extends ProjectionUsageInput, M extends RefFieldMeta = FieldMeta<F>, A extends boolean = UsageArray<U, M["array"]>, N extends boolean = UsageBoolean<U, "nullable", M["nullable"]>, O extends boolean = UsageBoolean<U, "optional", M["optional"]>> = (A extends true ? readonly ScalarValue<F>[] : ScalarValue<F>) | (N extends true ? null : never) | (O extends true ? undefined : never);
|
|
43
|
+
type ApplyUsageMeta<F, U extends ProjectionUsageInput, M extends RefFieldMeta = FieldMeta<F>> = {
|
|
44
|
+
readonly queryDomain: M["queryDomain"];
|
|
45
|
+
readonly optional: UsageBoolean<U, "optional", M["optional"]>;
|
|
46
|
+
readonly nullable: UsageBoolean<U, "nullable", M["nullable"]>;
|
|
47
|
+
readonly array: UsageArray<U, M["array"]>;
|
|
48
|
+
readonly mutation: M["mutation"];
|
|
49
|
+
readonly query: M["query"];
|
|
50
|
+
readonly sensitive: M["sensitive"];
|
|
51
|
+
readonly related: M["related"];
|
|
52
|
+
};
|
|
53
|
+
type ApplyUsageField<F, U extends ProjectionUsageInput> = SchemaFieldLike<ApplyUsageValue<F, U>, FieldMeta<F>["queryDomain"] extends QueryDomain ? FieldMeta<F>["queryDomain"] : QueryDomain, ApplyUsageMeta<F, U>>;
|
|
54
|
+
type UsageSelection<TSelection extends ProjectionSelectionMap, TUsage extends Partial<Record<Extract<keyof TSelection, string>, ProjectionUsageInput>>> = {
|
|
55
|
+
readonly [K in keyof TSelection]: TSelection[K] extends ProjectionEntry<infer S, infer F> ? ProjectionEntry<S, K extends keyof TUsage ? TUsage[K] extends ProjectionUsageInput ? ApplyUsageField<F, TUsage[K]> : F : F> : never;
|
|
56
|
+
};
|
|
57
|
+
export type ProjectionOutputFields<TSelection extends ProjectionSelectionMap> = {
|
|
58
|
+
readonly [K in keyof TSelection]: EntryField<TSelection[K]> extends infer F ? F extends SchemaFieldLike ? F : never : never;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Author-only projection selector. Pick/omit/rename/usage are intentionally
|
|
62
|
+
* resolved by the compiler into Runtime IR's explicit projection.fields map.
|
|
63
|
+
*/
|
|
64
|
+
export declare class ProjectionDeclaration<TSourceFields extends RefFieldMap = RefFieldMap, TSelection extends ProjectionSelectionMap = InitialSelection<TSourceFields>> {
|
|
65
|
+
#private;
|
|
66
|
+
readonly __outputFields?: ProjectionOutputFields<TSelection>;
|
|
67
|
+
private _purpose;
|
|
68
|
+
private _policies;
|
|
69
|
+
private _pick?;
|
|
70
|
+
private _omit?;
|
|
71
|
+
private _rename;
|
|
72
|
+
private _usage;
|
|
73
|
+
constructor(source: SchemaRef<TSourceFields>);
|
|
74
|
+
private sourceField;
|
|
75
|
+
purpose<P extends ProjectionPurposeState>(value: P): ProjectionDeclaration<TSourceFields, PurposeSelection<TSelection, P>>;
|
|
76
|
+
read(): ProjectionDeclaration<TSourceFields, PurposeSelection<TSelection, "read">>;
|
|
77
|
+
create(): ProjectionDeclaration<TSourceFields, PurposeSelection<TSelection, "create">>;
|
|
78
|
+
edit(): ProjectionDeclaration<TSourceFields, PurposeSelection<TSelection, "edit">>;
|
|
79
|
+
query(): ProjectionDeclaration<TSourceFields, PurposeSelection<TSelection, "query">>;
|
|
80
|
+
custom(): ProjectionDeclaration<TSourceFields, TSelection>;
|
|
81
|
+
policies(...values: readonly PolicyRef[]): this;
|
|
82
|
+
pick<const K extends Extract<keyof TSelection, string>>(...fields: readonly K[]): ProjectionDeclaration<TSourceFields, Pick<TSelection, K>>;
|
|
83
|
+
omit<const K extends Extract<keyof TSelection, string>>(...fields: readonly K[]): ProjectionDeclaration<TSourceFields, Omit<TSelection, K>>;
|
|
84
|
+
rename<const TMap extends Partial<Record<Extract<keyof TSelection, string>, string>>>(values: TMap): ProjectionDeclaration<TSourceFields, RenameSelection<TSelection, TMap>>;
|
|
85
|
+
usage<const TUsage extends Partial<Record<Extract<keyof TSelection, string>, ProjectionUsageInput>>>(values: TUsage): ProjectionDeclaration<TSourceFields, UsageSelection<TSelection, TUsage>>;
|
|
86
|
+
toState(): ProjectionState;
|
|
87
|
+
}
|
|
88
|
+
export declare function projection<TFields extends RefFieldMap>(source: SchemaRef<TFields>): ProjectionDeclaration<TFields>;
|
|
89
|
+
export {};
|
|
90
|
+
//# sourceMappingURL=projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/definitions/schemas/projection.ts"],"names":[],"mappings":"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"}
|