@onyx.dev/onyx-database 2.3.0 → 2.4.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 +18 -1
- package/dist/{aggregates-BpGa31jk.d.cts → aggregates-COLPYBfv.d.cts} +130 -2
- package/dist/{aggregates-BpGa31jk.d.ts → aggregates-COLPYBfv.d.ts} +130 -2
- package/dist/edge.cjs +407 -7
- package/dist/edge.cjs.map +1 -1
- package/dist/edge.d.cts +2 -2
- package/dist/edge.d.ts +2 -2
- package/dist/edge.js +407 -7
- package/dist/edge.js.map +1 -1
- package/dist/gen/cli/generate.cjs +406 -6
- package/dist/gen/cli/generate.cjs.map +1 -1
- package/dist/index.cjs +407 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +407 -7
- package/dist/index.js.map +1 -1
- package/dist/schema/cli/schema.cjs +406 -6
- package/dist/schema/cli/schema.cjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -723,6 +723,22 @@ const maybeUser = await db
|
|
|
723
723
|
.firstOrNull(); // or .one()
|
|
724
724
|
```
|
|
725
725
|
|
|
726
|
+
### 1c) Terminal formatters
|
|
727
|
+
|
|
728
|
+
```ts
|
|
729
|
+
const table = await db.from('User').select('id', 'email').table();
|
|
730
|
+
const tree = await db.from('User').select('id', 'email').tree({ rootLabel: 'users' });
|
|
731
|
+
const csv = await db.from('User').select('id', 'email').csv({ headers: false });
|
|
732
|
+
const json = await db.from('User').select('id', 'email').json();
|
|
733
|
+
|
|
734
|
+
console.log(table);
|
|
735
|
+
console.log(tree);
|
|
736
|
+
console.log(csv);
|
|
737
|
+
console.log(json);
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
`table()` renders readable box-drawing output, `tree()` expands nested objects hierarchically, `csv()` flattens nested objects with dot notation by default, and `json()` preserves the original nested structure.
|
|
741
|
+
|
|
726
742
|
### 2) Save (create/update)
|
|
727
743
|
|
|
728
744
|
```ts
|
|
@@ -1017,7 +1033,8 @@ This repository uses [Changesets](https://github.com/changesets/changesets) for
|
|
|
1017
1033
|
|
|
1018
1034
|
1. Run `npm run changeset` to create a changeset entry.
|
|
1019
1035
|
2. Push to `main` and the **Release** workflow opens a version PR.
|
|
1020
|
-
3.
|
|
1036
|
+
3. Push the version commit and create a `v*` tag to trigger the publish job.
|
|
1037
|
+
4. The publish job uses npm trusted publishing from GitHub Actions (OIDC), so npm must be configured with a trusted publisher for `OnyxDevTools/onyx-database` and the `Release` workflow file.
|
|
1021
1038
|
|
|
1022
1039
|
---
|
|
1023
1040
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "@onyx.dev/onyx-database";
|
|
2
|
-
var version = "2.
|
|
2
|
+
var version = "2.4.1";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Supported operators for building query criteria.
|
|
@@ -420,6 +420,98 @@ declare class QueryResults<T> extends Array<T> {
|
|
|
420
420
|
forEachPageParallel(action: (item: T) => void | Promise<void>): Promise<void>;
|
|
421
421
|
}
|
|
422
422
|
|
|
423
|
+
interface TableFormatOptions {
|
|
424
|
+
/**
|
|
425
|
+
* Whether to render a header row. Defaults to `true`.
|
|
426
|
+
*/
|
|
427
|
+
headers?: boolean;
|
|
428
|
+
/**
|
|
429
|
+
* Maximum width for each rendered column. Defaults to `80`.
|
|
430
|
+
*/
|
|
431
|
+
maxColumnWidth?: number;
|
|
432
|
+
/**
|
|
433
|
+
* When true, nested objects expand into additional dot-notated columns.
|
|
434
|
+
* Defaults to `false`.
|
|
435
|
+
*/
|
|
436
|
+
flattenNestedObjects?: boolean;
|
|
437
|
+
/**
|
|
438
|
+
* Separator used when flattening nested object keys. Defaults to `.`.
|
|
439
|
+
*/
|
|
440
|
+
nestedSeparator?: string;
|
|
441
|
+
/**
|
|
442
|
+
* Display value used for `null` and `undefined`. Defaults to an empty string.
|
|
443
|
+
*/
|
|
444
|
+
nullValue?: string;
|
|
445
|
+
}
|
|
446
|
+
interface TreeFormatOptions {
|
|
447
|
+
/**
|
|
448
|
+
* Label used for the root node when `includeRoot` is true. Defaults to `results`.
|
|
449
|
+
*/
|
|
450
|
+
rootLabel?: string;
|
|
451
|
+
/**
|
|
452
|
+
* Field whose value should label each record node.
|
|
453
|
+
*/
|
|
454
|
+
keyField?: string;
|
|
455
|
+
/**
|
|
456
|
+
* Whether to include a root node. Defaults to `true`.
|
|
457
|
+
*/
|
|
458
|
+
includeRoot?: boolean;
|
|
459
|
+
/**
|
|
460
|
+
* Maximum nesting depth to expand before rendering remaining values inline.
|
|
461
|
+
* Defaults to `Infinity`.
|
|
462
|
+
*/
|
|
463
|
+
maxDepth?: number;
|
|
464
|
+
/**
|
|
465
|
+
* Display value used for `null` and `undefined`. Defaults to an empty string.
|
|
466
|
+
*/
|
|
467
|
+
nullValue?: string;
|
|
468
|
+
}
|
|
469
|
+
interface CsvFormatOptions {
|
|
470
|
+
/**
|
|
471
|
+
* Whether to render a header row. Defaults to `true`.
|
|
472
|
+
*/
|
|
473
|
+
headers?: boolean;
|
|
474
|
+
/**
|
|
475
|
+
* Field delimiter. Defaults to `,`.
|
|
476
|
+
*/
|
|
477
|
+
delimiter?: string;
|
|
478
|
+
/**
|
|
479
|
+
* Quote character. Defaults to `"`.
|
|
480
|
+
*/
|
|
481
|
+
quote?: string;
|
|
482
|
+
/**
|
|
483
|
+
* Escape character used to escape embedded quotes. Defaults to `"`.
|
|
484
|
+
*/
|
|
485
|
+
escape?: string;
|
|
486
|
+
/**
|
|
487
|
+
* Line ending. Defaults to `\n`.
|
|
488
|
+
*/
|
|
489
|
+
newline?: '\n' | '\r\n';
|
|
490
|
+
/**
|
|
491
|
+
* When true, nested objects expand into additional dot-notated columns.
|
|
492
|
+
* Defaults to `true`.
|
|
493
|
+
*/
|
|
494
|
+
flattenNestedObjects?: boolean;
|
|
495
|
+
/**
|
|
496
|
+
* Separator used when flattening nested object keys. Defaults to `.`.
|
|
497
|
+
*/
|
|
498
|
+
nestedSeparator?: string;
|
|
499
|
+
/**
|
|
500
|
+
* Display value used for `null` and `undefined`. Defaults to an empty string.
|
|
501
|
+
*/
|
|
502
|
+
nullValue?: string;
|
|
503
|
+
}
|
|
504
|
+
interface JsonFormatOptions {
|
|
505
|
+
/**
|
|
506
|
+
* Whether to pretty-print the JSON output. Defaults to `true`.
|
|
507
|
+
*/
|
|
508
|
+
pretty?: boolean;
|
|
509
|
+
/**
|
|
510
|
+
* Indentation size used when `pretty` is true. Defaults to `2`.
|
|
511
|
+
*/
|
|
512
|
+
indent?: number;
|
|
513
|
+
}
|
|
514
|
+
|
|
423
515
|
/**
|
|
424
516
|
* Builder used to compose query conditions.
|
|
425
517
|
*/
|
|
@@ -618,6 +710,42 @@ interface IQueryBuilder<T = unknown> {
|
|
|
618
710
|
records: T[];
|
|
619
711
|
nextPage?: string | null;
|
|
620
712
|
}>;
|
|
713
|
+
/**
|
|
714
|
+
* Executes the query and renders all matching results as a table string.
|
|
715
|
+
* @example
|
|
716
|
+
* ```ts
|
|
717
|
+
* const output = await db.from('User').select('id', 'email').table();
|
|
718
|
+
* console.log(output);
|
|
719
|
+
* ```
|
|
720
|
+
*/
|
|
721
|
+
table(options?: TableFormatOptions): Promise<string>;
|
|
722
|
+
/**
|
|
723
|
+
* Executes the query and renders all matching results as a tree string.
|
|
724
|
+
* @example
|
|
725
|
+
* ```ts
|
|
726
|
+
* const output = await db.from('User').select('id', 'email').tree();
|
|
727
|
+
* console.log(output);
|
|
728
|
+
* ```
|
|
729
|
+
*/
|
|
730
|
+
tree(options?: TreeFormatOptions): Promise<string>;
|
|
731
|
+
/**
|
|
732
|
+
* Executes the query and renders all matching results as CSV.
|
|
733
|
+
* @example
|
|
734
|
+
* ```ts
|
|
735
|
+
* const output = await db.from('User').select('id', 'email').csv();
|
|
736
|
+
* console.log(output);
|
|
737
|
+
* ```
|
|
738
|
+
*/
|
|
739
|
+
csv(options?: CsvFormatOptions): Promise<string>;
|
|
740
|
+
/**
|
|
741
|
+
* Executes the query and renders all matching results as JSON.
|
|
742
|
+
* @example
|
|
743
|
+
* ```ts
|
|
744
|
+
* const output = await db.from('User').select('id', 'email').json();
|
|
745
|
+
* console.log(output);
|
|
746
|
+
* ```
|
|
747
|
+
*/
|
|
748
|
+
json(options?: JsonFormatOptions): Promise<string>;
|
|
621
749
|
/**
|
|
622
750
|
* Sets field updates for an update query.
|
|
623
751
|
* @example
|
|
@@ -1805,4 +1933,4 @@ declare const replace: (attribute: string, pattern: string, repl: string) => str
|
|
|
1805
1933
|
declare const format: (attribute: string, formatter: string) => string;
|
|
1806
1934
|
declare const percentile: (attribute: string, p: number) => string;
|
|
1807
1935
|
|
|
1808
|
-
export { type
|
|
1936
|
+
export { type SchemaDataType as $, type AiChatClient as A, type IConditionBuilder as B, type CsvFormatOptions as C, type IOnyxDatabase as D, type IQueryBuilder as E, type FetchImpl as F, type ISaveBuilder as G, type OnyxConfig as H, type ICascadeBuilder as I, type JsonFormatOptions as J, type OnyxDocument as K, type LogicalOperator as L, type PublishedModelPredictionInputs as M, type PublishedModelPredictionResponse as N, type OnyxFacade as O, type PublishedModelPredictionInput as P, type PublishedModelRawPredictionRequest as Q, type PublishedModelScriptPredictionRequest as R, type QueryCondition as S, type QueryCriteria as T, type QueryCriteriaOperator as U, type QueryPage as V, QueryResults as W, type QueryResultsPromise as X, type RetryOptions as Y, type SchemaAttribute as Z, type SchemaAttributeChange as _, type AiChatCompletionChoice as a, startsWith as a$, type SchemaDiff as a0, type SchemaEntity as a1, type SchemaHistoryEntry as a2, type SchemaIdentifier as a3, type SchemaIdentifierGenerator as a4, type SchemaIndex as a5, type SchemaIndexChange as a6, type SchemaIndexType as a7, type SchemaResolver as a8, type SchemaResolverChange as a9, format as aA, gt as aB, gte as aC, inOp as aD, isNull as aE, like as aF, lower as aG, lt as aH, lte as aI, matches as aJ, max as aK, median as aL, min as aM, neq as aN, notContains as aO, notContainsIgnoreCase as aP, notIn as aQ, notLike as aR, notMatches as aS, notNull as aT, notStartsWith as aU, notWithin as aV, percentile as aW, replace as aX, name as aY, version as aZ, search as a_, type SchemaRevision as aa, type SchemaRevisionMetadata as ab, type SchemaTableDiff as ac, type SchemaTrigger as ad, type SchemaTriggerChange as ae, type SchemaTriggerEvent as af, type SchemaUpsertRequest as ag, type SchemaValidationResult as ah, type SecretMetadata as ai, type SecretRecord as aj, type SecretSaveRequest as ak, type SecretsListResponse as al, type SelectQuery as am, type Sort as an, type StreamAction as ao, type TableFormatOptions as ap, type TreeFormatOptions as aq, type UpdateQuery as ar, asc as as, avg as at, between as au, contains as av, containsIgnoreCase as aw, count as ax, desc as ay, eq as az, type AiChatCompletionChunk as b, std as b0, substring as b1, sum as b2, upper as b3, variance as b4, within as b5, type AiChatCompletionChunkChoice as c, type AiChatCompletionChunkDelta as d, type AiChatCompletionRequest as e, type AiChatCompletionResponse as f, type AiChatCompletionStream as g, type AiChatCompletionUsage as h, type AiChatMessage as i, type AiChatOptions as j, type AiChatRole as k, type AiClient as l, type AiErrorResponse as m, type AiModel as n, type AiModelsResponse as o, type AiRequestOptions as p, type AiScriptApprovalRequest as q, type AiScriptApprovalResponse as r, type AiTool as s, type AiToolCall as t, type AiToolCallFunction as u, type AiToolChoice as v, type AiToolFunction as w, type FetchResponse as x, type FullTextQuery as y, type ICascadeRelationshipBuilder as z };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "@onyx.dev/onyx-database";
|
|
2
|
-
var version = "2.
|
|
2
|
+
var version = "2.4.1";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Supported operators for building query criteria.
|
|
@@ -420,6 +420,98 @@ declare class QueryResults<T> extends Array<T> {
|
|
|
420
420
|
forEachPageParallel(action: (item: T) => void | Promise<void>): Promise<void>;
|
|
421
421
|
}
|
|
422
422
|
|
|
423
|
+
interface TableFormatOptions {
|
|
424
|
+
/**
|
|
425
|
+
* Whether to render a header row. Defaults to `true`.
|
|
426
|
+
*/
|
|
427
|
+
headers?: boolean;
|
|
428
|
+
/**
|
|
429
|
+
* Maximum width for each rendered column. Defaults to `80`.
|
|
430
|
+
*/
|
|
431
|
+
maxColumnWidth?: number;
|
|
432
|
+
/**
|
|
433
|
+
* When true, nested objects expand into additional dot-notated columns.
|
|
434
|
+
* Defaults to `false`.
|
|
435
|
+
*/
|
|
436
|
+
flattenNestedObjects?: boolean;
|
|
437
|
+
/**
|
|
438
|
+
* Separator used when flattening nested object keys. Defaults to `.`.
|
|
439
|
+
*/
|
|
440
|
+
nestedSeparator?: string;
|
|
441
|
+
/**
|
|
442
|
+
* Display value used for `null` and `undefined`. Defaults to an empty string.
|
|
443
|
+
*/
|
|
444
|
+
nullValue?: string;
|
|
445
|
+
}
|
|
446
|
+
interface TreeFormatOptions {
|
|
447
|
+
/**
|
|
448
|
+
* Label used for the root node when `includeRoot` is true. Defaults to `results`.
|
|
449
|
+
*/
|
|
450
|
+
rootLabel?: string;
|
|
451
|
+
/**
|
|
452
|
+
* Field whose value should label each record node.
|
|
453
|
+
*/
|
|
454
|
+
keyField?: string;
|
|
455
|
+
/**
|
|
456
|
+
* Whether to include a root node. Defaults to `true`.
|
|
457
|
+
*/
|
|
458
|
+
includeRoot?: boolean;
|
|
459
|
+
/**
|
|
460
|
+
* Maximum nesting depth to expand before rendering remaining values inline.
|
|
461
|
+
* Defaults to `Infinity`.
|
|
462
|
+
*/
|
|
463
|
+
maxDepth?: number;
|
|
464
|
+
/**
|
|
465
|
+
* Display value used for `null` and `undefined`. Defaults to an empty string.
|
|
466
|
+
*/
|
|
467
|
+
nullValue?: string;
|
|
468
|
+
}
|
|
469
|
+
interface CsvFormatOptions {
|
|
470
|
+
/**
|
|
471
|
+
* Whether to render a header row. Defaults to `true`.
|
|
472
|
+
*/
|
|
473
|
+
headers?: boolean;
|
|
474
|
+
/**
|
|
475
|
+
* Field delimiter. Defaults to `,`.
|
|
476
|
+
*/
|
|
477
|
+
delimiter?: string;
|
|
478
|
+
/**
|
|
479
|
+
* Quote character. Defaults to `"`.
|
|
480
|
+
*/
|
|
481
|
+
quote?: string;
|
|
482
|
+
/**
|
|
483
|
+
* Escape character used to escape embedded quotes. Defaults to `"`.
|
|
484
|
+
*/
|
|
485
|
+
escape?: string;
|
|
486
|
+
/**
|
|
487
|
+
* Line ending. Defaults to `\n`.
|
|
488
|
+
*/
|
|
489
|
+
newline?: '\n' | '\r\n';
|
|
490
|
+
/**
|
|
491
|
+
* When true, nested objects expand into additional dot-notated columns.
|
|
492
|
+
* Defaults to `true`.
|
|
493
|
+
*/
|
|
494
|
+
flattenNestedObjects?: boolean;
|
|
495
|
+
/**
|
|
496
|
+
* Separator used when flattening nested object keys. Defaults to `.`.
|
|
497
|
+
*/
|
|
498
|
+
nestedSeparator?: string;
|
|
499
|
+
/**
|
|
500
|
+
* Display value used for `null` and `undefined`. Defaults to an empty string.
|
|
501
|
+
*/
|
|
502
|
+
nullValue?: string;
|
|
503
|
+
}
|
|
504
|
+
interface JsonFormatOptions {
|
|
505
|
+
/**
|
|
506
|
+
* Whether to pretty-print the JSON output. Defaults to `true`.
|
|
507
|
+
*/
|
|
508
|
+
pretty?: boolean;
|
|
509
|
+
/**
|
|
510
|
+
* Indentation size used when `pretty` is true. Defaults to `2`.
|
|
511
|
+
*/
|
|
512
|
+
indent?: number;
|
|
513
|
+
}
|
|
514
|
+
|
|
423
515
|
/**
|
|
424
516
|
* Builder used to compose query conditions.
|
|
425
517
|
*/
|
|
@@ -618,6 +710,42 @@ interface IQueryBuilder<T = unknown> {
|
|
|
618
710
|
records: T[];
|
|
619
711
|
nextPage?: string | null;
|
|
620
712
|
}>;
|
|
713
|
+
/**
|
|
714
|
+
* Executes the query and renders all matching results as a table string.
|
|
715
|
+
* @example
|
|
716
|
+
* ```ts
|
|
717
|
+
* const output = await db.from('User').select('id', 'email').table();
|
|
718
|
+
* console.log(output);
|
|
719
|
+
* ```
|
|
720
|
+
*/
|
|
721
|
+
table(options?: TableFormatOptions): Promise<string>;
|
|
722
|
+
/**
|
|
723
|
+
* Executes the query and renders all matching results as a tree string.
|
|
724
|
+
* @example
|
|
725
|
+
* ```ts
|
|
726
|
+
* const output = await db.from('User').select('id', 'email').tree();
|
|
727
|
+
* console.log(output);
|
|
728
|
+
* ```
|
|
729
|
+
*/
|
|
730
|
+
tree(options?: TreeFormatOptions): Promise<string>;
|
|
731
|
+
/**
|
|
732
|
+
* Executes the query and renders all matching results as CSV.
|
|
733
|
+
* @example
|
|
734
|
+
* ```ts
|
|
735
|
+
* const output = await db.from('User').select('id', 'email').csv();
|
|
736
|
+
* console.log(output);
|
|
737
|
+
* ```
|
|
738
|
+
*/
|
|
739
|
+
csv(options?: CsvFormatOptions): Promise<string>;
|
|
740
|
+
/**
|
|
741
|
+
* Executes the query and renders all matching results as JSON.
|
|
742
|
+
* @example
|
|
743
|
+
* ```ts
|
|
744
|
+
* const output = await db.from('User').select('id', 'email').json();
|
|
745
|
+
* console.log(output);
|
|
746
|
+
* ```
|
|
747
|
+
*/
|
|
748
|
+
json(options?: JsonFormatOptions): Promise<string>;
|
|
621
749
|
/**
|
|
622
750
|
* Sets field updates for an update query.
|
|
623
751
|
* @example
|
|
@@ -1805,4 +1933,4 @@ declare const replace: (attribute: string, pattern: string, repl: string) => str
|
|
|
1805
1933
|
declare const format: (attribute: string, formatter: string) => string;
|
|
1806
1934
|
declare const percentile: (attribute: string, p: number) => string;
|
|
1807
1935
|
|
|
1808
|
-
export { type
|
|
1936
|
+
export { type SchemaDataType as $, type AiChatClient as A, type IConditionBuilder as B, type CsvFormatOptions as C, type IOnyxDatabase as D, type IQueryBuilder as E, type FetchImpl as F, type ISaveBuilder as G, type OnyxConfig as H, type ICascadeBuilder as I, type JsonFormatOptions as J, type OnyxDocument as K, type LogicalOperator as L, type PublishedModelPredictionInputs as M, type PublishedModelPredictionResponse as N, type OnyxFacade as O, type PublishedModelPredictionInput as P, type PublishedModelRawPredictionRequest as Q, type PublishedModelScriptPredictionRequest as R, type QueryCondition as S, type QueryCriteria as T, type QueryCriteriaOperator as U, type QueryPage as V, QueryResults as W, type QueryResultsPromise as X, type RetryOptions as Y, type SchemaAttribute as Z, type SchemaAttributeChange as _, type AiChatCompletionChoice as a, startsWith as a$, type SchemaDiff as a0, type SchemaEntity as a1, type SchemaHistoryEntry as a2, type SchemaIdentifier as a3, type SchemaIdentifierGenerator as a4, type SchemaIndex as a5, type SchemaIndexChange as a6, type SchemaIndexType as a7, type SchemaResolver as a8, type SchemaResolverChange as a9, format as aA, gt as aB, gte as aC, inOp as aD, isNull as aE, like as aF, lower as aG, lt as aH, lte as aI, matches as aJ, max as aK, median as aL, min as aM, neq as aN, notContains as aO, notContainsIgnoreCase as aP, notIn as aQ, notLike as aR, notMatches as aS, notNull as aT, notStartsWith as aU, notWithin as aV, percentile as aW, replace as aX, name as aY, version as aZ, search as a_, type SchemaRevision as aa, type SchemaRevisionMetadata as ab, type SchemaTableDiff as ac, type SchemaTrigger as ad, type SchemaTriggerChange as ae, type SchemaTriggerEvent as af, type SchemaUpsertRequest as ag, type SchemaValidationResult as ah, type SecretMetadata as ai, type SecretRecord as aj, type SecretSaveRequest as ak, type SecretsListResponse as al, type SelectQuery as am, type Sort as an, type StreamAction as ao, type TableFormatOptions as ap, type TreeFormatOptions as aq, type UpdateQuery as ar, asc as as, avg as at, between as au, contains as av, containsIgnoreCase as aw, count as ax, desc as ay, eq as az, type AiChatCompletionChunk as b, std as b0, substring as b1, sum as b2, upper as b3, variance as b4, within as b5, type AiChatCompletionChunkChoice as c, type AiChatCompletionChunkDelta as d, type AiChatCompletionRequest as e, type AiChatCompletionResponse as f, type AiChatCompletionStream as g, type AiChatCompletionUsage as h, type AiChatMessage as i, type AiChatOptions as j, type AiChatRole as k, type AiClient as l, type AiErrorResponse as m, type AiModel as n, type AiModelsResponse as o, type AiRequestOptions as p, type AiScriptApprovalRequest as q, type AiScriptApprovalResponse as r, type AiTool as s, type AiToolCall as t, type AiToolCallFunction as u, type AiToolChoice as v, type AiToolFunction as w, type FetchResponse as x, type FullTextQuery as y, type ICascadeRelationshipBuilder as z };
|