@contember/bindx 0.1.5 → 0.1.8

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.
Files changed (76) hide show
  1. package/dist/adapter/ContemberAdapter.d.ts +11 -14
  2. package/dist/adapter/ContemberAdapter.d.ts.map +1 -1
  3. package/dist/brand/ComponentBrand.d.ts +1 -24
  4. package/dist/brand/ComponentBrand.d.ts.map +1 -1
  5. package/dist/contember/index.d.ts +1 -2
  6. package/dist/contember/index.d.ts.map +1 -1
  7. package/dist/handles/EntityHandle.d.ts +18 -29
  8. package/dist/handles/EntityHandle.d.ts.map +1 -1
  9. package/dist/handles/FieldHandle.d.ts +5 -3
  10. package/dist/handles/FieldHandle.d.ts.map +1 -1
  11. package/dist/handles/HasManyListHandle.d.ts +4 -3
  12. package/dist/handles/HasManyListHandle.d.ts.map +1 -1
  13. package/dist/handles/HasOneHandle.d.ts +33 -36
  14. package/dist/handles/HasOneHandle.d.ts.map +1 -1
  15. package/dist/handles/PlaceholderHandle.d.ts +9 -19
  16. package/dist/handles/PlaceholderHandle.d.ts.map +1 -1
  17. package/dist/handles/proxyFactory.d.ts +9 -37
  18. package/dist/handles/proxyFactory.d.ts.map +1 -1
  19. package/dist/handles/types.d.ts +4 -0
  20. package/dist/handles/types.d.ts.map +1 -1
  21. package/dist/index.d.ts +3 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/persistence/ContemberSchemaMutationAdapter.d.ts +24 -1
  24. package/dist/persistence/ContemberSchemaMutationAdapter.d.ts.map +1 -1
  25. package/dist/schema/ContemberSchema.d.ts +1 -97
  26. package/dist/schema/ContemberSchema.d.ts.map +1 -1
  27. package/dist/schema/SchemaLoader.d.ts +1 -27
  28. package/dist/schema/SchemaLoader.d.ts.map +1 -1
  29. package/dist/schema/SchemaRegistry.d.ts +1 -94
  30. package/dist/schema/SchemaRegistry.d.ts.map +1 -1
  31. package/dist/schema/roles.d.ts +1 -61
  32. package/dist/schema/roles.d.ts.map +1 -1
  33. package/dist/schema/types.d.ts +1 -178
  34. package/dist/schema/types.d.ts.map +1 -1
  35. package/dist/selection/SelectionMetaCollector.d.ts +1 -31
  36. package/dist/selection/SelectionMetaCollector.d.ts.map +1 -1
  37. package/dist/selection/SelectionScope.d.ts +1 -76
  38. package/dist/selection/SelectionScope.d.ts.map +1 -1
  39. package/dist/selection/buildQuery.d.ts +1 -44
  40. package/dist/selection/buildQuery.d.ts.map +1 -1
  41. package/dist/selection/createFragment.d.ts +1 -28
  42. package/dist/selection/createFragment.d.ts.map +1 -1
  43. package/dist/selection/createSelectionBuilder.d.ts +1 -17
  44. package/dist/selection/createSelectionBuilder.d.ts.map +1 -1
  45. package/dist/selection/queryTypes.d.ts +1 -83
  46. package/dist/selection/queryTypes.d.ts.map +1 -1
  47. package/dist/selection/types.d.ts +1 -237
  48. package/dist/selection/types.d.ts.map +1 -1
  49. package/dist/utils/aliasGenerator.d.ts +1 -24
  50. package/dist/utils/aliasGenerator.d.ts.map +1 -1
  51. package/package.json +4 -4
  52. package/src/adapter/ContemberAdapter.ts +193 -123
  53. package/src/brand/ComponentBrand.ts +1 -28
  54. package/src/contember/index.ts +1 -8
  55. package/src/handles/EntityHandle.ts +131 -61
  56. package/src/handles/FieldHandle.ts +19 -3
  57. package/src/handles/HasManyListHandle.ts +15 -12
  58. package/src/handles/HasOneHandle.ts +98 -66
  59. package/src/handles/PlaceholderHandle.ts +26 -24
  60. package/src/handles/proxyFactory.ts +29 -128
  61. package/src/handles/types.ts +6 -0
  62. package/src/index.ts +22 -3
  63. package/src/persistence/ContemberSchemaMutationAdapter.ts +19 -1
  64. package/src/schema/ContemberSchema.ts +14 -132
  65. package/src/schema/SchemaLoader.ts +1 -93
  66. package/src/schema/SchemaRegistry.ts +1 -286
  67. package/src/schema/roles.ts +10 -83
  68. package/src/schema/types.ts +21 -238
  69. package/src/selection/SelectionMetaCollector.ts +1 -122
  70. package/src/selection/SelectionScope.ts +1 -208
  71. package/src/selection/buildQuery.ts +1 -134
  72. package/src/selection/createFragment.ts +1 -50
  73. package/src/selection/createSelectionBuilder.ts +1 -283
  74. package/src/selection/queryTypes.ts +8 -135
  75. package/src/selection/types.ts +13 -320
  76. package/src/utils/aliasGenerator.ts +1 -56
@@ -1,238 +1,2 @@
1
- import type { AnyBrand } from '../brand/ComponentBrand.js';
2
- import type { EntityWhere, EntityOrderBy } from './queryTypes.js';
3
- /**
4
- * Symbol used to store selection metadata on builder objects
5
- */
6
- export declare const SELECTION_META: unique symbol;
7
- /**
8
- * Options for has-many relation selection with typed filter/orderBy
9
- *
10
- * @typeParam TItem - The related entity type (array item type)
11
- * @typeParam TAlias - Optional alias for the field
12
- */
13
- export interface HasManyOptions<TItem = unknown, TAlias extends string = string> {
14
- as?: TAlias;
15
- filter?: EntityWhere<TItem>;
16
- orderBy?: readonly EntityOrderBy<TItem>[];
17
- limit?: number;
18
- offset?: number;
19
- totalCount?: boolean;
20
- }
21
- /**
22
- * Metadata for a selected field (runtime)
23
- */
24
- export interface SelectionFieldMeta {
25
- /** Original field name in the entity */
26
- fieldName: string;
27
- /** Alias (output key) - defaults to fieldName */
28
- alias: string;
29
- /** Full path to this field (for JSX components) */
30
- path: string[];
31
- /** Whether this is a relation (has nested fields) */
32
- isRelation: boolean;
33
- /** Whether this is an array/has-many relation */
34
- isArray: boolean;
35
- /** For relations: nested selection metadata */
36
- nested?: SelectionMeta;
37
- /** For has-many: additional parameters */
38
- hasManyParams?: {
39
- filter?: unknown;
40
- orderBy?: unknown;
41
- limit?: number;
42
- offset?: number;
43
- totalCount?: boolean;
44
- };
45
- }
46
- /**
47
- * Runtime metadata for a complete selection
48
- */
49
- export interface SelectionMeta {
50
- fields: Map<string, SelectionFieldMeta>;
51
- }
52
- /**
53
- * A fragment defined with the fluent builder
54
- *
55
- * @typeParam TModel - The entity model type
56
- * @typeParam TResult - The selected fields result type
57
- * @typeParam TBrand - Component brand type for validation (defaults to AnyBrand)
58
- */
59
- export interface FluentFragment<TModel, TResult, TBrand extends AnyBrand = AnyBrand> {
60
- /** Runtime metadata */
61
- readonly __meta: SelectionMeta;
62
- /** Type brand for result type */
63
- readonly __resultType: TResult;
64
- /** Type brand for model type */
65
- readonly __modelType: TModel;
66
- /** Marker for type checking */
67
- readonly __isFragment: true;
68
- /** Component brand for type-level tracking */
69
- readonly __brand?: TBrand;
70
- /** Runtime brand symbols for validation */
71
- readonly __brands?: Set<symbol>;
72
- /** Runtime roles for validation */
73
- readonly __roles?: readonly string[];
74
- }
75
- /**
76
- * Scalar method on selection builder - selects a scalar field
77
- */
78
- export interface ScalarMethod<TEntity, K extends keyof TEntity, TSelected extends object, THasManyParams extends object> {
79
- /** Select field with original name */
80
- (): SelectionBuilder<TEntity, TSelected & Pick<TEntity, K>, THasManyParams>;
81
- /** Select field with alias */
82
- <TAlias extends string>(options: {
83
- as: TAlias;
84
- }): SelectionBuilder<TEntity, TSelected & {
85
- [P in TAlias]: TEntity[K];
86
- }, THasManyParams>;
87
- }
88
- /**
89
- * Has-one method on selection builder - selects a relation to single entity
90
- */
91
- export interface HasOneMethod<TEntity, K extends keyof TEntity, TRelated, TSelected extends object, THasManyParams extends object> {
92
- /** Select with inline callback */
93
- <TNestedSelected extends object>(selector: (builder: SelectionBuilder<TRelated>) => SelectionBuilder<TRelated, TNestedSelected, object>): SelectionBuilder<TEntity, TSelected & {
94
- [P in K & string]: TNestedSelected;
95
- }, THasManyParams>;
96
- /** Select with fragment */
97
- <TFragmentResult extends object>(fragment: FluentFragment<TRelated, TFragmentResult>): SelectionBuilder<TEntity, TSelected & {
98
- [P in K & string]: TFragmentResult;
99
- }, THasManyParams>;
100
- /** Select with multiple fragments (merged) - result type is intersection of all fragment result types */
101
- <T1 extends object, T2 extends object>(fragment1: FluentFragment<TRelated, T1>, fragment2: FluentFragment<TRelated, T2>): SelectionBuilder<TEntity, TSelected & {
102
- [P in K & string]: T1 & T2;
103
- }, THasManyParams>;
104
- /** Select with three fragments (merged) */
105
- <T1 extends object, T2 extends object, T3 extends object>(fragment1: FluentFragment<TRelated, T1>, fragment2: FluentFragment<TRelated, T2>, fragment3: FluentFragment<TRelated, T3>): SelectionBuilder<TEntity, TSelected & {
106
- [P in K & string]: T1 & T2 & T3;
107
- }, THasManyParams>;
108
- /** Select with alias and callback */
109
- <TAlias extends string, TNestedSelected extends object>(options: {
110
- as: TAlias;
111
- }, selector: (builder: SelectionBuilder<TRelated>) => SelectionBuilder<TRelated, TNestedSelected, object>): SelectionBuilder<TEntity, TSelected & {
112
- [P in TAlias]: TNestedSelected;
113
- }, THasManyParams>;
114
- /** Select with alias and fragment */
115
- <TAlias extends string, TFragmentResult extends object>(options: {
116
- as: TAlias;
117
- }, fragment: FluentFragment<TRelated, TFragmentResult>): SelectionBuilder<TEntity, TSelected & {
118
- [P in TAlias]: TFragmentResult;
119
- }, THasManyParams>;
120
- /** Select with alias and two fragments (merged) */
121
- <TAlias extends string, T1 extends object, T2 extends object>(options: {
122
- as: TAlias;
123
- }, fragment1: FluentFragment<TRelated, T1>, fragment2: FluentFragment<TRelated, T2>): SelectionBuilder<TEntity, TSelected & {
124
- [P in TAlias]: T1 & T2;
125
- }, THasManyParams>;
126
- /** Select with alias and three fragments (merged) */
127
- <TAlias extends string, T1 extends object, T2 extends object, T3 extends object>(options: {
128
- as: TAlias;
129
- }, fragment1: FluentFragment<TRelated, T1>, fragment2: FluentFragment<TRelated, T2>, fragment3: FluentFragment<TRelated, T3>): SelectionBuilder<TEntity, TSelected & {
130
- [P in TAlias]: T1 & T2 & T3;
131
- }, THasManyParams>;
132
- }
133
- /**
134
- * Resolve alias from options or fall back to field name
135
- */
136
- type ResolveAlias<K, TOptions> = TOptions extends {
137
- as: infer A extends string;
138
- } ? A : K & string;
139
- /**
140
- * Has-many method on selection builder - selects a relation to multiple entities
141
- */
142
- export interface HasManyMethod<TEntity, K extends keyof TEntity, TItem, TSelected extends object, THasManyParams extends object> {
143
- /** Select with inline callback (no options) */
144
- <TNestedSelected extends object>(selector: (builder: SelectionBuilder<TItem>) => SelectionBuilder<TItem, TNestedSelected, object>): SelectionBuilder<TEntity, TSelected & {
145
- [P in K & string]: TNestedSelected[];
146
- }, THasManyParams & {
147
- [P in K & string]: object;
148
- }>;
149
- /** Select with fragment (no options) */
150
- <TFragmentResult extends object>(fragment: FluentFragment<TItem, TFragmentResult>): SelectionBuilder<TEntity, TSelected & {
151
- [P in K & string]: TFragmentResult[];
152
- }, THasManyParams & {
153
- [P in K & string]: object;
154
- }>;
155
- /** Select with two fragments (merged, no options) */
156
- <T1 extends object, T2 extends object>(fragment1: FluentFragment<TItem, T1>, fragment2: FluentFragment<TItem, T2>): SelectionBuilder<TEntity, TSelected & {
157
- [P in K & string]: (T1 & T2)[];
158
- }, THasManyParams & {
159
- [P in K & string]: object;
160
- }>;
161
- /** Select with three fragments (merged, no options) */
162
- <T1 extends object, T2 extends object, T3 extends object>(fragment1: FluentFragment<TItem, T1>, fragment2: FluentFragment<TItem, T2>, fragment3: FluentFragment<TItem, T3>): SelectionBuilder<TEntity, TSelected & {
163
- [P in K & string]: (T1 & T2 & T3)[];
164
- }, THasManyParams & {
165
- [P in K & string]: object;
166
- }>;
167
- /** Select with options and callback */
168
- <TOptions extends HasManyOptions<TItem>, TNestedSelected extends object>(options: TOptions, selector: (builder: SelectionBuilder<TItem>) => SelectionBuilder<TItem, TNestedSelected, object>): SelectionBuilder<TEntity, TSelected & {
169
- [P in ResolveAlias<K, TOptions>]: TNestedSelected[];
170
- }, THasManyParams & {
171
- [P in ResolveAlias<K, TOptions>]: TOptions;
172
- }>;
173
- /** Select with options and fragment */
174
- <TOptions extends HasManyOptions<TItem>, TFragmentResult extends object>(options: TOptions, fragment: FluentFragment<TItem, TFragmentResult>): SelectionBuilder<TEntity, TSelected & {
175
- [P in ResolveAlias<K, TOptions>]: TFragmentResult[];
176
- }, THasManyParams & {
177
- [P in ResolveAlias<K, TOptions>]: TOptions;
178
- }>;
179
- /** Select with options and two fragments (merged) */
180
- <TOptions extends HasManyOptions<TItem>, T1 extends object, T2 extends object>(options: TOptions, fragment1: FluentFragment<TItem, T1>, fragment2: FluentFragment<TItem, T2>): SelectionBuilder<TEntity, TSelected & {
181
- [P in ResolveAlias<K, TOptions>]: (T1 & T2)[];
182
- }, THasManyParams & {
183
- [P in ResolveAlias<K, TOptions>]: TOptions;
184
- }>;
185
- /** Select with options and three fragments (merged) */
186
- <TOptions extends HasManyOptions<TItem>, T1 extends object, T2 extends object, T3 extends object>(options: TOptions, fragment1: FluentFragment<TItem, T1>, fragment2: FluentFragment<TItem, T2>, fragment3: FluentFragment<TItem, T3>): SelectionBuilder<TEntity, TSelected & {
187
- [P in ResolveAlias<K, TOptions>]: (T1 & T2 & T3)[];
188
- }, THasManyParams & {
189
- [P in ResolveAlias<K, TOptions>]: TOptions;
190
- }>;
191
- }
192
- /**
193
- * Maps entity fields to their corresponding builder methods
194
- */
195
- type SelectionBuilderMethods<TEntity, TSelected extends object, THasManyParams extends object> = {
196
- [K in keyof TEntity]-?: TEntity[K] extends Array<infer U> ? HasManyMethod<TEntity, K, U, TSelected, THasManyParams> : NonNullable<TEntity[K]> extends object ? HasOneMethod<TEntity, K, NonNullable<TEntity[K]>, TSelected, THasManyParams> : ScalarMethod<TEntity, K, TSelected, THasManyParams>;
197
- };
198
- /**
199
- * The main fluent selection builder interface.
200
- *
201
- * @typeParam TEntity - The entity type being selected from
202
- * @typeParam TSelected - Accumulated type of selected fields (grows with each selection)
203
- * @typeParam THasManyParams - Record tracking has-many parameters for alias consistency
204
- *
205
- * @example
206
- * ```ts
207
- * // Select scalar fields
208
- * e.id().title().content()
209
- * // Type: { id: string, title: string, content: string }
210
- *
211
- * // Select with alias
212
- * e.title({ as: 'headline' })
213
- * // Type: { headline: string }
214
- *
215
- * // Select has-one relation
216
- * e.author(a => a.name().email())
217
- * // Type: { author: { name: string, email: string } }
218
- *
219
- * // Select has-many with options
220
- * e.tags({ filter: { active: true } }, t => t.name())
221
- * // Type: { tags: { name: string }[] }
222
- * ```
223
- */
224
- export type SelectionBuilder<TEntity, TSelected extends object = object, THasManyParams extends object = object> = SelectionBuilderMethods<TEntity, TSelected, THasManyParams> & {
225
- [SELECTION_META]: SelectionMeta;
226
- /** Type brand for the selected result */
227
- readonly __selected: TSelected;
228
- };
229
- /**
230
- * Extracts the selected type from a SelectionBuilder
231
- */
232
- export type InferSelection<T> = T extends SelectionBuilder<infer _E, infer S, infer _P> ? S : never;
233
- /**
234
- * Type for the fluent definer function used in useEntity/useEntityList
235
- */
236
- export type FluentDefiner<TModel, TResult extends object> = (builder: SelectionBuilder<TModel>) => SelectionBuilder<TModel, TResult, object>;
237
- export {};
1
+ export { SELECTION_META, type SelectionBuilder, type SelectionMeta, type SelectionFieldMeta, type FluentFragment, type FluentDefiner, type HasManyOptions, type InferSelection, type ScalarMethod, type HasOneMethod, type HasManyMethod, } from '@contember/bindx-client';
238
2
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/selection/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEjE;;GAEG;AACH,eAAO,MAAM,cAAc,eAA2B,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,cAAc,CAC9B,KAAK,GAAG,OAAO,EACf,MAAM,SAAS,MAAM,GAAG,MAAM;IAE9B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IAC3B,OAAO,CAAC,EAAE,SAAS,aAAa,CAAC,KAAK,CAAC,EAAE,CAAA;IACzC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,qDAAqD;IACrD,UAAU,EAAE,OAAO,CAAA;IACnB,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAA;IAChB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,0CAA0C;IAC1C,aAAa,CAAC,EAAE;QACf,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,OAAO,CAAA;KACpB,CAAA;CACD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;CACvC;AAOD;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAC9B,MAAM,EACN,OAAO,EACP,MAAM,SAAS,QAAQ,GAAG,QAAQ;IAElC,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,iCAAiC;IACjC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,gCAAgC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAA;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,mCAAmC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,OAAO,EAAE,CAAC,SAAS,MAAM,OAAO,EAAE,SAAS,SAAS,MAAM,EAAE,cAAc,SAAS,MAAM;IACtH,sCAAsC;IACtC,IAAI,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAC3E,8BAA8B;IAC9B,CAAC,MAAM,SAAS,MAAM,EAAE,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,CACjE,OAAO,EACP,SAAS,GAAG;SAAG,CAAC,IAAI,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;KAAE,EACzC,cAAc,CACd,CAAA;CACD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAC5B,OAAO,EACP,CAAC,SAAS,MAAM,OAAO,EACvB,QAAQ,EACR,SAAS,SAAS,MAAM,EACxB,cAAc,SAAS,MAAM;IAE7B,kCAAkC;IAClC,CAAC,eAAe,SAAS,MAAM,EAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,GACpG,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,eAAe;KAAE,EAAE,cAAc,CAAC,CAAA;IAEhG,2BAA2B;IAC3B,CAAC,eAAe,SAAS,MAAM,EAC9B,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,GACjD,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,eAAe;KAAE,EAAE,cAAc,CAAC,CAAA;IAEhG,yGAAyG;IACzG,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EACpC,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,EACvC,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,GACrC,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE;KAAE,EAAE,cAAc,CAAC,CAAA;IAExF,2CAA2C;IAC3C,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EACvD,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,EACvC,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,EACvC,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,GACrC,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;KAAE,EAAE,cAAc,CAAC,CAAA;IAE7F,qCAAqC;IACrC,CAAC,MAAM,SAAS,MAAM,EAAE,eAAe,SAAS,MAAM,EACrD,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACvB,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,GACpG,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG;SAAG,CAAC,IAAI,MAAM,GAAG,eAAe;KAAE,EAAE,cAAc,CAAC,CAAA;IAE5F,qCAAqC;IACrC,CAAC,MAAM,SAAS,MAAM,EAAE,eAAe,SAAS,MAAM,EACrD,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACvB,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,GACjD,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG;SAAG,CAAC,IAAI,MAAM,GAAG,eAAe;KAAE,EAAE,cAAc,CAAC,CAAA;IAE5F,mDAAmD;IACnD,CAAC,MAAM,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAC3D,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACvB,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,EACvC,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,GACrC,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG;SAAG,CAAC,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE;KAAE,EAAE,cAAc,CAAC,CAAA;IAEpF,qDAAqD;IACrD,CAAC,MAAM,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAC9E,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EACvB,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,EACvC,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,EACvC,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAC,GACrC,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG;SAAG,CAAC,IAAI,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;KAAE,EAAE,cAAc,CAAC,CAAA;CACzF;AAED;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,EAAE,QAAQ,IAAI,QAAQ,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC,SAAS,MAAM,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAA;AAEjG;;GAEG;AACH,MAAM,WAAW,aAAa,CAC7B,OAAO,EACP,CAAC,SAAS,MAAM,OAAO,EACvB,KAAK,EACL,SAAS,SAAS,MAAM,EACxB,cAAc,SAAS,MAAM;IAE7B,+CAA+C;IAC/C,CAAC,eAAe,SAAS,MAAM,EAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,GAC9F,gBAAgB,CAClB,OAAO,EACP,SAAS,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,eAAe,EAAE;KAAE,EACpD,cAAc,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM;KAAE,CAC9C,CAAA;IAED,wCAAwC;IACxC,CAAC,eAAe,SAAS,MAAM,EAC9B,QAAQ,EAAE,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,GAC9C,gBAAgB,CAClB,OAAO,EACP,SAAS,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,eAAe,EAAE;KAAE,EACpD,cAAc,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM;KAAE,CAC9C,CAAA;IAED,qDAAqD;IACrD,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EACpC,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,EACpC,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,GAClC,gBAAgB,CAClB,OAAO,EACP,SAAS,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;KAAE,EAC9C,cAAc,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM;KAAE,CAC9C,CAAA;IAED,uDAAuD;IACvD,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EACvD,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,EACpC,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,EACpC,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,GAClC,gBAAgB,CAClB,OAAO,EACP,SAAS,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE;KAAE,EACnD,cAAc,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,MAAM;KAAE,CAC9C,CAAA;IAED,uCAAuC;IACvC,CAAC,QAAQ,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,eAAe,SAAS,MAAM,EACtE,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,GAC9F,gBAAgB,CAClB,OAAO,EACP,SAAS,GAAG;SAAG,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,eAAe,EAAE;KAAE,EACnE,cAAc,GAAG;SAAG,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ;KAAE,CAC/D,CAAA;IAED,uCAAuC;IACvC,CAAC,QAAQ,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,eAAe,SAAS,MAAM,EACtE,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,GAC9C,gBAAgB,CAClB,OAAO,EACP,SAAS,GAAG;SAAG,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,eAAe,EAAE;KAAE,EACnE,cAAc,GAAG;SAAG,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ;KAAE,CAC/D,CAAA;IAED,qDAAqD;IACrD,CAAC,QAAQ,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAC5E,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,EACpC,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,GAClC,gBAAgB,CAClB,OAAO,EACP,SAAS,GAAG;SAAG,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;KAAE,EAC7D,cAAc,GAAG;SAAG,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ;KAAE,CAC/D,CAAA;IAED,uDAAuD;IACvD,CAAC,QAAQ,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAC/F,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,EACpC,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,EACpC,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,GAClC,gBAAgB,CAClB,OAAO,EACP,SAAS,GAAG;SAAG,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE;KAAE,EAClE,cAAc,GAAG;SAAG,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,QAAQ;KAAE,CAC/D,CAAA;CACD;AAED;;GAEG;AACH,KAAK,uBAAuB,CAAC,OAAO,EAAE,SAAS,SAAS,MAAM,EAAE,cAAc,SAAS,MAAM,IAAI;KAC/F,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACtD,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,GACvD,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACrC,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,GAC5E,YAAY,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC;CACvD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,gBAAgB,CAAC,OAAO,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,EAAE,cAAc,SAAS,MAAM,GAAG,MAAM,IAC9G,uBAAuB,CAAC,OAAO,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG;IAC7D,CAAC,cAAc,CAAC,EAAE,aAAa,CAAA;IAC/B,yCAAyC;IACzC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAA;CAC9B,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAEnG;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,SAAS,MAAM,IAAI,CAC3D,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,KAC7B,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/selection/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,GAClB,MAAM,yBAAyB,CAAA"}
@@ -1,25 +1,2 @@
1
- import type { HasManyParams } from '../selection/SelectionScope.js';
2
- /**
3
- * Generates an alias for a has-many relation based on field name and parameters.
4
- *
5
- * If no parameters are provided or all are undefined, returns the fieldName as-is.
6
- * Otherwise, generates a deterministic alias by hashing the parameters.
7
- *
8
- * @param fieldName - The original field name
9
- * @param params - Optional has-many parameters (filter, orderBy, limit, offset)
10
- * @returns The alias to use for this has-many relation
11
- *
12
- * @example
13
- * ```ts
14
- * // No params - returns fieldName
15
- * generateHasManyAlias('tags') // => 'tags'
16
- *
17
- * // With filter - generates unique alias
18
- * generateHasManyAlias('tags', { filter: { active: true } }) // => 'tags_a7x9k2'
19
- *
20
- * // Different params - different aliases
21
- * generateHasManyAlias('tags', { filter: { active: false } }) // => 'tags_b3m1p8'
22
- * ```
23
- */
24
- export declare function generateHasManyAlias(fieldName: string, params?: HasManyParams): string;
1
+ export { generateHasManyAlias } from '@contember/bindx-client';
25
2
  //# sourceMappingURL=aliasGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aliasGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/aliasGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAEnE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,CA+BtF"}
1
+ {"version":3,"file":"aliasGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/aliasGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/bindx",
3
- "version": "0.1.5",
3
+ "version": "0.1.8",
4
4
  "description": "Type-safe data binding framework (core)",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -17,9 +17,9 @@
17
17
  ],
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
- "@contember/client-content": "^2.1.0-alpha.30",
21
- "@contember/graphql-builder": "^2.1.0-alpha.30",
22
- "@contember/graphql-client": "^2.1.0-alpha.30"
20
+ "@contember/bindx-client": "0.1.8",
21
+ "@contember/graphql-builder": "^2.1.0-beta.1",
22
+ "@contember/graphql-client": "^2.1.0-beta.1"
23
23
  },
24
24
  "repository": {
25
25
  "type": "git",