@contember/engine-content-api 2.1.0-beta.1 → 2.1.0-rc.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.
Files changed (65) hide show
  1. package/dist/development/index.cjs +1 -0
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +2 -1
  4. package/dist/development/src/ExecutionContainer.cjs +40 -4
  5. package/dist/development/src/ExecutionContainer.cjs.map +1 -1
  6. package/dist/development/src/ExecutionContainer.js +41 -5
  7. package/dist/development/src/ExecutionContainer.js.map +1 -1
  8. package/dist/development/src/acl/PermissionFactory.cjs +29 -15
  9. package/dist/development/src/acl/PermissionFactory.cjs.map +1 -1
  10. package/dist/development/src/acl/PermissionFactory.js +29 -15
  11. package/dist/development/src/acl/PermissionFactory.js.map +1 -1
  12. package/dist/development/src/acl/PredicateFactory.cjs +33 -13
  13. package/dist/development/src/acl/PredicateFactory.cjs.map +1 -1
  14. package/dist/development/src/acl/PredicateFactory.js +33 -13
  15. package/dist/development/src/acl/PredicateFactory.js.map +1 -1
  16. package/dist/development/src/acl/PredicatesInjector.cjs +21 -18
  17. package/dist/development/src/acl/PredicatesInjector.cjs.map +1 -1
  18. package/dist/development/src/acl/PredicatesInjector.js +21 -18
  19. package/dist/development/src/acl/PredicatesInjector.js.map +1 -1
  20. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs +2 -1
  21. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  22. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js +2 -1
  23. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  24. package/dist/production/index.cjs +1 -0
  25. package/dist/production/index.cjs.map +1 -1
  26. package/dist/production/index.js +2 -1
  27. package/dist/production/src/ExecutionContainer.cjs +40 -4
  28. package/dist/production/src/ExecutionContainer.cjs.map +1 -1
  29. package/dist/production/src/ExecutionContainer.js +41 -5
  30. package/dist/production/src/ExecutionContainer.js.map +1 -1
  31. package/dist/production/src/acl/PermissionFactory.cjs +29 -15
  32. package/dist/production/src/acl/PermissionFactory.cjs.map +1 -1
  33. package/dist/production/src/acl/PermissionFactory.js +29 -15
  34. package/dist/production/src/acl/PermissionFactory.js.map +1 -1
  35. package/dist/production/src/acl/PredicateFactory.cjs +33 -13
  36. package/dist/production/src/acl/PredicateFactory.cjs.map +1 -1
  37. package/dist/production/src/acl/PredicateFactory.js +33 -13
  38. package/dist/production/src/acl/PredicateFactory.js.map +1 -1
  39. package/dist/production/src/acl/PredicatesInjector.cjs +21 -18
  40. package/dist/production/src/acl/PredicatesInjector.cjs.map +1 -1
  41. package/dist/production/src/acl/PredicatesInjector.js +21 -18
  42. package/dist/production/src/acl/PredicatesInjector.js.map +1 -1
  43. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs +2 -1
  44. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  45. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js +2 -1
  46. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  47. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  48. package/dist/types/ExecutionContainer.d.ts +20 -1
  49. package/dist/types/ExecutionContainer.d.ts.map +1 -1
  50. package/dist/types/acl/PermissionFactory.d.ts +6 -0
  51. package/dist/types/acl/PermissionFactory.d.ts.map +1 -1
  52. package/dist/types/acl/PredicateFactory.d.ts +17 -6
  53. package/dist/types/acl/PredicateFactory.d.ts.map +1 -1
  54. package/dist/types/acl/PredicatesInjector.d.ts.map +1 -1
  55. package/dist/types/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
  56. package/dist/types/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +1 -2
  58. package/src/ExecutionContainer.ts +57 -4
  59. package/src/acl/PermissionFactory.ts +48 -15
  60. package/src/acl/PredicateFactory.ts +38 -9
  61. package/src/acl/PredicatesInjector.ts +19 -13
  62. package/src/mapper/select/handlers/FieldsVisitor.ts +2 -1
  63. package/tests/cases/unit/permissionMerger.test.ts +162 -0
  64. package/tests/cases/unit/predicatesFactory.test.ts +75 -0
  65. package/vitest.config.ts +0 -3
@@ -13,6 +13,21 @@ import { WhereOptimizer, WhereOptimizerOptions } from './mapper/select/optimizer
13
13
  import { GraphQlQueryAstFactory, MutationResolver, ReadResolver, ValidationResolver } from './resolvers';
14
14
  import { ColumnValueResolver, DependencyCollector, EntityRulesResolver, InputPreValidator, QueryAstFactory, ValidationDataSelector } from './input-validation';
15
15
  import { RefreshViewResolver } from './resolvers/RefreshViewResolver';
16
+ export interface TriggeredActionEvent {
17
+ id: string;
18
+ trigger: string;
19
+ target: string;
20
+ transactionId: string;
21
+ }
22
+ export interface TriggeredActionsCollector {
23
+ add(events: readonly TriggeredActionEvent[]): void;
24
+ getEvents(): readonly TriggeredActionEvent[];
25
+ }
26
+ export declare class InMemoryTriggeredActionsCollector implements TriggeredActionsCollector {
27
+ private events;
28
+ add(events: readonly TriggeredActionEvent[]): void;
29
+ getEvents(): readonly TriggeredActionEvent[];
30
+ }
16
31
  export type ExecutionContainerArgs = {
17
32
  schema: Schema;
18
33
  schemaMeta: {
@@ -23,6 +38,7 @@ export type ExecutionContainerArgs = {
23
38
  identityId: string;
24
39
  identityVariables: Acl.VariablesMap;
25
40
  permissions: Acl.Permissions;
41
+ allPermissions?: Acl.Permissions;
26
42
  systemSchema: string;
27
43
  project: {
28
44
  slug: string;
@@ -41,6 +57,7 @@ export interface ExecutionContainer {
41
57
  mutationResolver: MutationResolver;
42
58
  validationResolver: ValidationResolver;
43
59
  refreshViewResolver: RefreshViewResolver;
60
+ triggeredActionsCollector: TriggeredActionsCollector | undefined;
44
61
  }
45
62
  export type ExecutionContainerBuilder = ReturnType<ExecutionContainerFactory['createBuilderInternal']>;
46
63
  export type ExecutionContainerHook = (builder: ExecutionContainerBuilder) => ExecutionContainerBuilder;
@@ -50,7 +67,7 @@ export declare class ExecutionContainerFactory {
50
67
  readonly hooks: ExecutionContainerHook[];
51
68
  constructor(providers: Providers, whereOptimizerOptions?: WhereOptimizerOptions | undefined);
52
69
  createBuilder(args: ExecutionContainerArgs): ExecutionContainerBuilder;
53
- createBuilderInternal({ permissions, identityVariables, identityId, db, schema, schemaMeta, systemSchema, stage, project, schemaDatabaseMetadata, userInfo }: ExecutionContainerArgs): Builder<{
70
+ createBuilderInternal({ permissions, allPermissions, identityVariables, identityId, db, schema, schemaMeta, systemSchema, stage, project, schemaDatabaseMetadata, userInfo, }: ExecutionContainerArgs): Builder<{
54
71
  systemSchema: string;
55
72
  } & {
56
73
  db: Client<import("@contember/database").Connection.ConnectionLike<{}>>;
@@ -63,6 +80,8 @@ export declare class ExecutionContainerFactory {
63
80
  id: string;
64
81
  slug: string;
65
82
  };
83
+ } & {
84
+ triggeredActionsCollector: TriggeredActionsCollector | undefined;
66
85
  } & {
67
86
  schema: Schema;
68
87
  } & {
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutionContainer.d.ts","sourceRoot":"","sources":["../../src/ExecutionContainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExecutionContainer.d.ts","sourceRoot":"","sources":["../../src/ExecutionContainer.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,14 @@ import { Acl, Schema } from '@contember/schema';
2
2
  export interface Identity {
3
3
  projectRoles: readonly string[];
4
4
  }
5
+ export interface ContextualPermissions {
6
+ root: Acl.Permissions;
7
+ all: Acl.Permissions;
8
+ }
5
9
  export declare class PermissionFactory {
6
10
  create(schema: Schema, roles: readonly string[], prefix?: string): Acl.Permissions;
11
+ createContextual(schema: Schema, roles: readonly string[]): ContextualPermissions;
12
+ private createInternal;
7
13
  private prefixPredicatesWithRole;
8
14
  private makePrimaryPredicatesUnionOfAllFields;
9
15
  private mergePermissions;
@@ -1 +1 @@
1
- {"version":3,"file":"PermissionFactory.d.ts","sourceRoot":"","sources":["../../../src/acl/PermissionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAS,MAAM,EAAY,MAAM,mBAAmB,CAAA;AAKhE,MAAM,WAAW,QAAQ;IACxB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B;AAED,qBAAa,iBAAiB;IACtB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,WAAW;IAgBzF,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,qCAAqC;IAmD7C,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,sBAAsB;IAgD9B,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,eAAe;CA2DvB"}
1
+ {"version":3,"file":"PermissionFactory.d.ts","sourceRoot":"","sources":["../../../src/acl/PermissionFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAS,MAAM,EAAY,MAAM,mBAAmB,CAAA;AAKhE,MAAM,WAAW,QAAQ;IACxB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAA;IACrB,GAAG,EAAE,GAAG,CAAC,WAAW,CAAA;CACpB;AAED,qBAAa,iBAAiB;IACtB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,WAAW;IAIlF,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,qBAAqB;IAOxF,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,wBAAwB;IAuBhC,OAAO,CAAC,qCAAqC;IAmD7C,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,sBAAsB;IAqD9B,OAAO,CAAC,yBAAyB;IAsBjC,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,eAAe;CA2DvB"}
@@ -8,13 +8,24 @@ export declare class PredicateFactory {
8
8
  private readonly permissions;
9
9
  private readonly model;
10
10
  private readonly variableInjector;
11
- constructor(permissions: Acl.Permissions, model: Model.Schema, variableInjector: VariableInjector);
12
- getFieldPredicate(entity: Model.Entity, operation: Acl.Operation.update | Acl.Operation.read | Acl.Operation.create, fieldName: string): FieldRequiredPredicate;
13
- shouldApplyCellLevelPredicate(entity: Model.Entity, operation: Acl.Operation.read, fieldName: string): boolean;
11
+ private readonly allPermissions?;
12
+ constructor(permissions: Acl.Permissions, model: Model.Schema, variableInjector: VariableInjector, allPermissions?: Acl.Permissions | undefined);
13
+ /**
14
+ * Selects the appropriate permission set based on query context:
15
+ * - `isRoot === false` (nested/relation context): uses allPermissions (includes through-only permissions)
16
+ * - `isRoot === true` or `isRoot === undefined` (root or unknown context): uses root-only permissions
17
+ *
18
+ * The `undefined` vs `true` distinction matters: `undefined` is the default for callers
19
+ * that don't track root context, and must fall through to root permissions for safety.
20
+ */
21
+ private getPermissionsForContext;
22
+ getFieldPredicate(entity: Model.Entity, operation: Acl.Operation.update | Acl.Operation.read | Acl.Operation.create, fieldName: string, isRoot?: boolean): FieldRequiredPredicate;
23
+ shouldApplyCellLevelPredicate(entity: Model.Entity, operation: Acl.Operation.read, fieldName: string, isRoot?: boolean): boolean;
24
+ /** Delete predicates are not context-aware — through-permission support is scoped to read operations only. */
14
25
  createDeletePredicate(entity: Model.Entity): Input.OptionalWhere<never>;
15
- create(entity: Model.Entity, operation: Acl.Operation.update | Acl.Operation.read | Acl.Operation.create, fieldNames?: string[], relationContext?: Model.AnyRelationContext): Input.OptionalWhere;
16
- buildPredicates(entity: Model.Entity, predicates: Acl.PredicateReference[], relationContext?: Model.AnyRelationContext): Input.OptionalWhere;
26
+ create(entity: Model.Entity, operation: Acl.Operation.update | Acl.Operation.read | Acl.Operation.create, fieldNames?: string[], relationContext?: Model.AnyRelationContext, isRoot?: boolean): Input.OptionalWhere;
27
+ buildPredicates(entity: Model.Entity, predicates: Acl.PredicateReference[], relationContext?: Model.AnyRelationContext, isRoot?: boolean): Input.OptionalWhere;
17
28
  private getRequiredPredicates;
18
- optimizePredicates(where: Input.OptionalWhere, relationContext?: Model.AnyRelationContext): Input.OptionalWhere<never>;
29
+ optimizePredicates(where: Input.OptionalWhere, relationContext?: Model.AnyRelationContext, isRoot?: boolean): Input.OptionalWhere<never>;
19
30
  }
20
31
  //# sourceMappingURL=PredicateFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PredicateFactory.d.ts","sourceRoot":"","sources":["../../../src/acl/PredicateFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAKrD,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;CACxB;AAED,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAFhB,WAAW,EAAE,GAAG,CAAC,WAAW,EAC5B,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,gBAAgB,EAAE,gBAAgB;IAG7C,iBAAiB,CACvB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,EAC3E,SAAS,EAAE,MAAM,GACf,sBAAsB;IAclB,6BAA6B,CACnC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAC7B,SAAS,EAAE,MAAM,GACf,OAAO;IAMH,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM;IAgB1C,MAAM,CACZ,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,EAC3E,UAAU,GAAE,MAAM,EAA8C,EAChE,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,GACxC,KAAK,CAAC,aAAa;IAuBf,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,kBAAkB,EAAE,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,aAAa;IAoBnJ,OAAO,CAAC,qBAAqB;IAoBtB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB;CAYhG"}
1
+ {"version":3,"file":"PredicateFactory.d.ts","sourceRoot":"","sources":["../../../src/acl/PredicateFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAKrD,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;CACxB;AAED,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAHf,WAAW,EAAE,GAAG,CAAC,WAAW,EAC5B,KAAK,EAAE,KAAK,CAAC,MAAM,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,CAAC,EAAE,GAAG,CAAC,WAAW,YAAA;IAGlD;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB;IAOzB,iBAAiB,CACvB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,EAC3E,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,OAAO,GACd,sBAAsB;IAelB,6BAA6B,CACnC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAC7B,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,OAAO,GACd,OAAO;IAOV,8GAA8G;IACvG,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM;IAgB1C,MAAM,CACZ,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,EAC3E,UAAU,GAAE,MAAM,EAA8C,EAChE,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAC1C,MAAM,CAAC,EAAE,OAAO,GACd,KAAK,CAAC,aAAa;IAwBf,eAAe,CACrB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,UAAU,EAAE,GAAG,CAAC,kBAAkB,EAAE,EACpC,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAC1C,MAAM,CAAC,EAAE,OAAO,GACd,KAAK,CAAC,aAAa;IAqBtB,OAAO,CAAC,qBAAqB;IAoBtB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,EAAE,OAAO;CAYlH"}
@@ -1 +1 @@
1
- {"version":3,"file":"PredicatesInjector.d.ts","sourceRoot":"","sources":["../../../src/acl/PredicatesInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAA;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,qBAAa,kBAAkB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAgB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAvD,MAAM,EAAE,KAAK,CAAC,MAAM,EAAmB,gBAAgB,EAAE,gBAAgB;IAE/F,MAAM,CACZ,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,KAAK,CAAC,aAAa,EAC1B,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAC1C,YAAY,CAAC,EAAE,SAAS,KAAK,CAAC,kBAAkB,EAAE,GAChD,KAAK,CAAC,aAAa;IAKtB;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,WAAW;IA0CnB;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAwFnC,OAAO,CAAC,aAAa;CAoDrB"}
1
+ {"version":3,"file":"PredicatesInjector.d.ts","sourceRoot":"","sources":["../../../src/acl/PredicatesInjector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAA;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,qBAAa,kBAAkB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAgB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAvD,MAAM,EAAE,KAAK,CAAC,MAAM,EAAmB,gBAAgB,EAAE,gBAAgB;IAE/F,MAAM,CACZ,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,KAAK,CAAC,aAAa,EAC1B,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAC1C,YAAY,CAAC,EAAE,SAAS,KAAK,CAAC,kBAAkB,EAAE,GAChD,KAAK,CAAC,aAAa;IAMtB;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IAWlC,OAAO,CAAC,WAAW;IA4CnB;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IA0FnC,OAAO,CAAC,aAAa;CAqDrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldsVisitor.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAInD,qBAAa,aAAc,YAAW,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;IAEhG,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAPT,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,6BAA6B,EAC/C,YAAY,EAAE,KAAK,CAAC,kBAAkB,EAAE,EACxC,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAClC,SAAS,EAAE,SAAS;IAGtC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI;IA+CnD,uBAAuB,CAAC,eAAe,EAAE,KAAK,CAAC,yBAAyB,GAAG,IAAI;IAoB/E,sBAAsB,CAAC,eAAe,EAAE,KAAK,CAAC,wBAAwB,GAAG,IAAI;IAqB7E,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,iBAAiB,GAAG,IAAI;IAqB/D,qBAAqB,CAAC,eAAe,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI;IA+B3E,oBAAoB,CAAC,eAAe,EAAE,KAAK,CAAC,sBAAsB,GAAG,IAAI;IA6BzE,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,iBAAiB,GAAG,IAAI;IA6BtE,OAAO,CAAC,oBAAoB;CAI5B"}
1
+ {"version":3,"file":"FieldsVisitor.d.ts","sourceRoot":"","sources":["../../../../../src/mapper/select/handlers/FieldsVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAG/C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAInD,qBAAa,aAAc,YAAW,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;IAEhG,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAPT,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,6BAA6B,EAC/C,YAAY,EAAE,KAAK,CAAC,kBAAkB,EAAE,EACxC,QAAQ,EAAE,QAAQ,CAAC,eAAe,EAClC,SAAS,EAAE,SAAS;IAGtC,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI;IA+CnD,uBAAuB,CAAC,eAAe,EAAE,KAAK,CAAC,yBAAyB,GAAG,IAAI;IAoB/E,sBAAsB,CAAC,eAAe,EAAE,KAAK,CAAC,wBAAwB,GAAG,IAAI;IAqB7E,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,iBAAiB,GAAG,IAAI;IAqB/D,qBAAqB,CAAC,eAAe,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI;IA+B3E,oBAAoB,CAAC,eAAe,EAAE,KAAK,CAAC,sBAAsB,GAAG,IAAI;IA6BzE,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,iBAAiB,GAAG,IAAI;IA6BtE,OAAO,CAAC,oBAAoB;CAK5B"}