@snowtop/ent 0.1.0-alpha7 → 0.1.0-alpha75

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 (116) hide show
  1. package/action/action.d.ts +28 -24
  2. package/action/executor.d.ts +4 -4
  3. package/action/executor.js +2 -2
  4. package/action/experimental_action.d.ts +29 -22
  5. package/action/experimental_action.js +29 -6
  6. package/action/orchestrator.d.ts +44 -16
  7. package/action/orchestrator.js +287 -73
  8. package/action/privacy.d.ts +2 -2
  9. package/core/base.d.ts +43 -23
  10. package/core/base.js +16 -0
  11. package/core/clause.d.ts +82 -3
  12. package/core/clause.js +463 -27
  13. package/core/config.d.ts +26 -0
  14. package/core/config.js +17 -0
  15. package/core/context.d.ts +5 -3
  16. package/core/context.js +7 -2
  17. package/core/convert.d.ts +1 -1
  18. package/core/db.d.ts +3 -4
  19. package/core/db.js +2 -0
  20. package/core/ent.d.ts +71 -27
  21. package/core/ent.js +458 -97
  22. package/core/loaders/assoc_count_loader.d.ts +2 -2
  23. package/core/loaders/assoc_count_loader.js +6 -1
  24. package/core/loaders/assoc_edge_loader.d.ts +3 -3
  25. package/core/loaders/assoc_edge_loader.js +5 -4
  26. package/core/loaders/index_loader.js +1 -0
  27. package/core/loaders/loader.js +5 -5
  28. package/core/loaders/object_loader.d.ts +11 -5
  29. package/core/loaders/object_loader.js +70 -4
  30. package/core/loaders/query_loader.d.ts +2 -2
  31. package/core/loaders/raw_count_loader.d.ts +2 -2
  32. package/core/logger.d.ts +1 -1
  33. package/core/logger.js +1 -0
  34. package/core/privacy.d.ts +26 -25
  35. package/core/privacy.js +23 -24
  36. package/core/query/assoc_query.d.ts +6 -6
  37. package/core/query/custom_query.d.ts +5 -5
  38. package/core/query/query.d.ts +1 -1
  39. package/core/query/shared_assoc_test.d.ts +1 -1
  40. package/core/query/shared_assoc_test.js +17 -5
  41. package/core/query/shared_test.d.ts +3 -0
  42. package/core/query/shared_test.js +95 -17
  43. package/core/viewer.d.ts +4 -3
  44. package/core/viewer.js +5 -1
  45. package/graphql/builtins/connection.js +3 -3
  46. package/graphql/builtins/edge.js +2 -2
  47. package/graphql/builtins/node.js +1 -1
  48. package/graphql/graphql.d.ts +3 -2
  49. package/graphql/graphql.js +30 -23
  50. package/graphql/node_resolver.d.ts +0 -1
  51. package/graphql/query/connection_type.js +6 -6
  52. package/graphql/query/edge_connection.d.ts +9 -9
  53. package/graphql/query/page_info.d.ts +1 -1
  54. package/graphql/query/page_info.js +4 -4
  55. package/graphql/query/shared_assoc_test.js +2 -2
  56. package/graphql/scalars/time.d.ts +1 -1
  57. package/index.d.ts +21 -1
  58. package/index.js +24 -5
  59. package/package.json +3 -3
  60. package/parse_schema/parse.d.ts +24 -5
  61. package/parse_schema/parse.js +90 -8
  62. package/schema/base_schema.d.ts +36 -1
  63. package/schema/base_schema.js +51 -2
  64. package/schema/field.d.ts +34 -6
  65. package/schema/field.js +67 -2
  66. package/schema/index.d.ts +2 -2
  67. package/schema/index.js +8 -1
  68. package/schema/json_field.d.ts +13 -1
  69. package/schema/json_field.js +28 -1
  70. package/schema/schema.d.ts +101 -2
  71. package/schema/schema.js +127 -5
  72. package/schema/struct_field.d.ts +11 -1
  73. package/schema/struct_field.js +43 -4
  74. package/scripts/custom_graphql.js +127 -16
  75. package/scripts/{transform_schema.d.ts → migrate_v0.1.d.ts} +0 -0
  76. package/scripts/migrate_v0.1.js +36 -0
  77. package/scripts/read_schema.js +25 -2
  78. package/testutils/builder.d.ts +36 -22
  79. package/testutils/builder.js +110 -13
  80. package/testutils/context/test_context.d.ts +2 -2
  81. package/testutils/context/test_context.js +7 -1
  82. package/testutils/db/{test_db.d.ts → temp_db.d.ts} +17 -4
  83. package/testutils/db/{test_db.js → temp_db.js} +76 -19
  84. package/testutils/ent-graphql-tests/index.d.ts +2 -0
  85. package/testutils/ent-graphql-tests/index.js +26 -17
  86. package/testutils/fake_data/fake_contact.d.ts +5 -9
  87. package/testutils/fake_data/fake_contact.js +17 -21
  88. package/testutils/fake_data/fake_event.d.ts +5 -9
  89. package/testutils/fake_data/fake_event.js +24 -28
  90. package/testutils/fake_data/fake_user.d.ts +6 -10
  91. package/testutils/fake_data/fake_user.js +25 -29
  92. package/testutils/fake_data/test_helpers.d.ts +2 -2
  93. package/testutils/fake_data/test_helpers.js +6 -6
  94. package/testutils/fake_data/user_query.d.ts +2 -2
  95. package/testutils/fake_log.d.ts +3 -3
  96. package/testutils/parse_sql.d.ts +6 -0
  97. package/testutils/parse_sql.js +16 -2
  98. package/testutils/test_edge_global_schema.d.ts +15 -0
  99. package/testutils/test_edge_global_schema.js +58 -0
  100. package/testutils/write.d.ts +2 -2
  101. package/testutils/write.js +3 -3
  102. package/tsc/ast.d.ts +44 -0
  103. package/tsc/ast.js +267 -0
  104. package/tsc/compilerOptions.d.ts +6 -0
  105. package/tsc/compilerOptions.js +40 -1
  106. package/tsc/move_generated.d.ts +1 -0
  107. package/tsc/move_generated.js +160 -0
  108. package/tsc/transform.d.ts +21 -0
  109. package/tsc/transform.js +167 -0
  110. package/tsc/transform_action.d.ts +22 -0
  111. package/tsc/transform_action.js +179 -0
  112. package/tsc/transform_ent.d.ts +17 -0
  113. package/tsc/transform_ent.js +59 -0
  114. package/tsc/transform_schema.d.ts +27 -0
  115. package/tsc/transform_schema.js +379 -0
  116. package/scripts/transform_schema.js +0 -288
package/core/context.js CHANGED
@@ -8,6 +8,7 @@ class ContextCache {
8
8
  // we have a per-table map to make it easier to purge and have less things to compare with
9
9
  this.itemMap = new Map();
10
10
  this.listMap = new Map();
11
+ this.entCache = new Map();
11
12
  }
12
13
  getLoader(name, create) {
13
14
  let l = this.loaders.get(name);
@@ -39,7 +40,7 @@ class ContextCache {
39
40
  const key = this.getkey(options);
40
41
  let rows = m.get(key);
41
42
  if (rows) {
42
- (0, logger_1.log)("query", {
43
+ (0, logger_1.log)("cache", {
43
44
  "cache-hit": key,
44
45
  "tableName": options.tableName,
45
46
  });
@@ -54,7 +55,7 @@ class ContextCache {
54
55
  const key = this.getkey(options);
55
56
  let row = m.get(key);
56
57
  if (row) {
57
- (0, logger_1.log)("query", {
58
+ (0, logger_1.log)("cache", {
58
59
  "cache-hit": key,
59
60
  "tableName": options.tableName,
60
61
  });
@@ -82,6 +83,10 @@ class ContextCache {
82
83
  this.loaders.clear();
83
84
  this.itemMap.clear();
84
85
  this.listMap.clear();
86
+ this.entCache.clear();
87
+ }
88
+ getEntCache() {
89
+ return this.entCache;
85
90
  }
86
91
  }
87
92
  exports.ContextCache = ContextCache;
package/core/convert.d.ts CHANGED
@@ -10,5 +10,5 @@ export declare function convertBoolList(val: any): boolean[];
10
10
  export declare function convertNullableBoolList(val: any): boolean[] | null;
11
11
  export declare function convertJSON(val: any): any;
12
12
  export declare function convertNullableJSON(val: any): any | null;
13
- export declare function convertJSONList(val: any): boolean[];
13
+ export declare function convertJSONList(val: any): any[];
14
14
  export declare function convertNullableJSONList(val: any): any[] | null;
package/core/db.d.ts CHANGED
@@ -1,11 +1,10 @@
1
- import { Pool, ClientConfig, PoolClient } from "pg";
2
- export interface Database {
1
+ import { Pool, PoolClient, PoolConfig } from "pg";
2
+ export interface Database extends PoolConfig {
3
3
  database?: string;
4
4
  user?: string;
5
5
  password?: string;
6
6
  host?: string;
7
7
  port?: number;
8
- ssl?: boolean;
9
8
  sslmode?: string;
10
9
  }
11
10
  export declare type env = "production" | "test" | "development";
@@ -16,7 +15,7 @@ export declare enum Dialect {
16
15
  }
17
16
  interface DatabaseInfo {
18
17
  dialect: Dialect;
19
- config: ClientConfig;
18
+ config: PoolConfig;
20
19
  filePath?: string;
21
20
  }
22
21
  export default class DB {
package/core/db.js CHANGED
@@ -109,6 +109,8 @@ function getClientConfig(args) {
109
109
  host: cfg.host,
110
110
  port: cfg.port,
111
111
  ssl: cfg.sslmode == "enable",
112
+ // max, min, etc
113
+ ...cfg,
112
114
  },
113
115
  };
114
116
  }
package/core/ent.d.ts CHANGED
@@ -1,30 +1,63 @@
1
1
  import { Queryer, SyncQueryer } from "./db";
2
- import { Viewer, Ent, ID, LoadRowsOptions, LoadRowOptions, Data, DataOptions, QueryableDataOptions, EditRowOptions, LoadEntOptions, LoadCustomEntOptions, EdgeQueryableDataOptions, Context, SelectBaseDataOptions, CreateRowOptions, QueryDataOptions, EntConstructor } from "./base";
2
+ import { Viewer, Ent, ID, LoadRowsOptions, LoadRowOptions, Data, DataOptions, QueryableDataOptions, EditRowOptions, LoadEntOptions, LoadCustomEntOptions, EdgeQueryableDataOptions, Context, CreateRowOptions, QueryDataOptions, SelectCustomDataOptions } from "./base";
3
3
  import { Executor } from "../action/action";
4
4
  import * as clause from "./clause";
5
5
  import { Builder } from "../action";
6
6
  import DataLoader from "dataloader";
7
- export declare function loadEnt<T extends Ent>(viewer: Viewer, id: ID, options: LoadEntOptions<T>): Promise<T | null>;
8
- export declare function loadEntViaKey<T extends Ent>(viewer: Viewer, key: any, options: LoadEntOptions<T>): Promise<T | null>;
9
- export declare function loadEntX<T extends Ent>(viewer: Viewer, id: ID, options: LoadEntOptions<T>): Promise<T>;
10
- export declare function loadEntXViaKey<T extends Ent>(viewer: Viewer, key: any, options: LoadEntOptions<T>): Promise<T>;
11
- export declare function loadEntFromClause<T extends Ent>(viewer: Viewer, options: LoadEntOptions<T>, clause: clause.Clause): Promise<T | null>;
12
- export declare function loadEntXFromClause<T extends Ent>(viewer: Viewer, options: LoadEntOptions<T>, clause: clause.Clause): Promise<T>;
13
- export declare function loadEnts<T extends Ent>(viewer: Viewer, options: LoadEntOptions<T>, ...ids: ID[]): Promise<Map<ID, T>>;
14
- export declare function loadEntsList<T extends Ent>(viewer: Viewer, options: LoadEntOptions<T>, ...ids: ID[]): Promise<T[]>;
15
- export declare function loadEntsFromClause<T extends Ent>(viewer: Viewer, clause: clause.Clause, options: LoadEntOptions<T>): Promise<Map<ID, T>>;
16
- export declare function loadCustomEnts<T extends Ent>(viewer: Viewer, options: LoadCustomEntOptions<T>, query: CustomQuery): Promise<T[]>;
17
- interface rawQueryOptions {
7
+ import { GlobalSchema } from "../schema/";
8
+ export declare function getEntKey<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, id: ID, options: LoadEntOptions<TEnt, TViewer>): string;
9
+ export declare function loadEnt<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, id: ID, options: LoadEntOptions<TEnt, TViewer>): Promise<TEnt | null>;
10
+ export declare function loadEntViaKey<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, key: any, options: LoadEntOptions<TEnt, TViewer>): Promise<TEnt | null>;
11
+ export declare function loadEntX<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, id: ID, options: LoadEntOptions<TEnt, TViewer>): Promise<TEnt>;
12
+ export declare function loadEntXViaKey<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, key: any, options: LoadEntOptions<TEnt, TViewer>): Promise<TEnt>;
13
+ /**
14
+ * @deprecated use loadCustomEnts
15
+ */
16
+ export declare function loadEntFromClause<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadEntOptions<TEnt, TViewer>, clause: clause.Clause): Promise<TEnt | null>;
17
+ /**
18
+ * @deprecated use loadCustomEnts
19
+ */
20
+ export declare function loadEntXFromClause<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadEntOptions<TEnt, TViewer>, clause: clause.Clause): Promise<TEnt>;
21
+ export declare function loadEnts<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadEntOptions<TEnt, TViewer>, ...ids: ID[]): Promise<Map<ID, TEnt>>;
22
+ export declare function loadEntsList<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadEntOptions<TEnt, TViewer>, ...ids: ID[]): Promise<TEnt[]>;
23
+ /**
24
+ * @deperecated use loadCustomEnts
25
+ */
26
+ export declare function loadEntsFromClause<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, clause: clause.Clause, options: LoadEntOptions<TEnt, TViewer>): Promise<Map<ID, TEnt>>;
27
+ export declare function loadCustomEnts<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadCustomEntOptions<TEnt, TViewer>, query: CustomQuery): Promise<TEnt[]>;
28
+ interface parameterizedQueryOptions {
18
29
  query: string;
19
30
  values?: any[];
20
31
  logValues?: any[];
21
32
  }
22
- export declare type CustomQuery = string | rawQueryOptions | clause.Clause | QueryDataOptions;
23
- export declare function loadCustomData(options: SelectBaseDataOptions, query: CustomQuery, context: Context | undefined): Promise<Data[]>;
24
- export declare function loadDerivedEnt<T extends Ent>(viewer: Viewer, data: Data, loader: new (viewer: Viewer, data: Data) => T): Promise<T | null>;
25
- export declare function loadDerivedEntX<T extends Ent>(viewer: Viewer, data: Data, loader: new (viewer: Viewer, data: Data) => T): Promise<T>;
26
- export declare function applyPrivacyPolicyForEnt<T extends Ent>(viewer: Viewer, ent: T | null): Promise<T | null>;
27
- export declare function applyPrivacyPolicyForEntX<T extends Ent>(viewer: Viewer, ent: T): Promise<T>;
33
+ export declare type CustomQuery = string | parameterizedQueryOptions | clause.Clause | QueryDataOptions;
34
+ /**
35
+ * Note that if there's default read transformations (e.g. soft delete) and a clause is passed in
36
+ * either as Clause or QueryDataOptions without {disableTransformations: true}, the default transformation
37
+ * (e.g. soft delete) is applied.
38
+ *
39
+ * Passing a full SQL string or Paramterized SQL string doesn't apply it and the given string is sent to the
40
+ * database as written.
41
+ *
42
+ * e.g.
43
+ * Foo.loadCustom(opts, 'SELECT * FROM foo') // doesn't change the query
44
+ * Foo.loadCustom(opts, { query: 'SELECT * FROM foo WHERE id = ?', values: [1]}) // doesn't change the query
45
+ * Foo.loadCustom(opts, query.Eq('time', Date.now())) // changes the query
46
+ * Foo.loadCustom(opts, {
47
+ * clause: query.LessEq('time', Date.now()),
48
+ * limit: 100,
49
+ * orderby: 'time',
50
+ * }) // changes the query
51
+ * Foo.loadCustom(opts, {
52
+ * clause: query.LessEq('time', Date.now()),
53
+ * limit: 100,
54
+ * orderby: 'time',
55
+ * disableTransformations: false
56
+ * }) // doesn't change the query
57
+ */
58
+ export declare function loadCustomData(options: SelectCustomDataOptions, query: CustomQuery, context: Context | undefined): Promise<Data[]>;
59
+ export declare function loadDerivedEnt<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, data: Data, loader: new (viewer: TViewer, data: Data) => TEnt): Promise<TEnt | null>;
60
+ export declare function loadDerivedEntX<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, data: Data, loader: new (viewer: TViewer, data: Data) => TEnt): Promise<TEnt>;
28
61
  export declare function loadRowX(options: LoadRowOptions): Promise<Data>;
29
62
  export declare function loadRow(options: LoadRowOptions): Promise<Data | null>;
30
63
  export declare function performRawQuery(query: string, values: any[], logValues?: any[]): Promise<Data[]>;
@@ -52,8 +85,9 @@ export interface DataOperation<T extends Ent = Ent> {
52
85
  }
53
86
  export interface EditNodeOptions<T extends Ent> extends EditRowOptions {
54
87
  fieldsToResolve: string[];
55
- ent: EntConstructor<T>;
88
+ loadEntOptions: LoadEntOptions<T>;
56
89
  placeholderID?: ID;
90
+ key: string;
57
91
  }
58
92
  export declare class EditNodeOperation<T extends Ent> implements DataOperation {
59
93
  options: EditNodeOptions<T>;
@@ -69,7 +103,11 @@ export declare class EditNodeOperation<T extends Ent> implements DataOperation {
69
103
  returnedRow(): Data | null;
70
104
  createdEnt(viewer: Viewer): T | null;
71
105
  }
106
+ export declare function setGlobalSchema(val: GlobalSchema): void;
107
+ export declare function clearGlobalSchema(): void;
108
+ export declare function __hasGlobalSchema(): boolean;
72
109
  export declare class EdgeOperation implements DataOperation {
110
+ private builder;
73
111
  edgeInput: AssocEdgeInput;
74
112
  private options;
75
113
  private edgeData;
@@ -98,9 +136,9 @@ export declare class EdgeOperation implements DataOperation {
98
136
  export declare function buildInsertQuery(options: CreateRowOptions, suffix?: string): [string, string[], string[]];
99
137
  export declare function createRow(queryer: Queryer, options: CreateRowOptions, suffix: string): Promise<Data | null>;
100
138
  export declare function createRowSync(queryer: SyncQueryer, options: CreateRowOptions, suffix: string): Data | null;
101
- export declare function buildUpdateQuery(options: EditRowOptions, id: ID, suffix?: string): [string, any[], any[]];
102
- export declare function editRow(queryer: Queryer, options: EditRowOptions, id: ID, suffix?: string): Promise<Data | null>;
103
- export declare function editRowSync(queryer: SyncQueryer, options: EditRowOptions, id: ID, suffix?: string): Data | null;
139
+ export declare function buildUpdateQuery(options: EditRowOptions, suffix?: string): [string, any[], any[]];
140
+ export declare function editRow(queryer: Queryer, options: EditRowOptions, suffix?: string): Promise<Data | null>;
141
+ export declare function editRowSync(queryer: SyncQueryer, options: EditRowOptions, suffix?: string): Data | null;
104
142
  export declare function deleteRows(queryer: Queryer, options: DataOptions, cls: clause.Clause): Promise<void>;
105
143
  export declare function deleteRowsSync(queryer: SyncQueryer, options: DataOptions, cls: clause.Clause): void;
106
144
  export declare class DeleteNodeOperation implements DataOperation {
@@ -118,7 +156,9 @@ export declare class AssocEdge {
118
156
  id2Type: string;
119
157
  time: Date;
120
158
  data?: string | null;
159
+ private rawData;
121
160
  constructor(data: Data);
161
+ __getRawData(): Data;
122
162
  getCursor(): string;
123
163
  }
124
164
  interface cursorOptions {
@@ -147,7 +187,7 @@ export declare class AssocEdgeData {
147
187
  edgeTable: string;
148
188
  constructor(data: Data);
149
189
  }
150
- export declare const assocEdgeLoader: DataLoader<any, any, any>;
190
+ export declare const assocEdgeLoader: DataLoader<ID, Data | null, ID>;
151
191
  export declare function loadEdgeData(edgeType: string): Promise<AssocEdgeData | null>;
152
192
  export declare function loadEdgeDatas(...edgeTypes: string[]): Promise<Map<string, AssocEdgeData>>;
153
193
  export interface AssocEdgeConstructor<T extends AssocEdge> {
@@ -158,6 +198,7 @@ interface loadEdgesOptions {
158
198
  edgeType: string;
159
199
  context?: Context;
160
200
  queryOptions?: EdgeQueryableDataOptions;
201
+ disableTransformations?: boolean;
161
202
  }
162
203
  interface loadCustomEdgesOptions<T extends AssocEdge> extends loadEdgesOptions {
163
204
  ctr: AssocEdgeConstructor<T>;
@@ -165,17 +206,20 @@ interface loadCustomEdgesOptions<T extends AssocEdge> extends loadEdgesOptions {
165
206
  export declare const DefaultLimit = 1000;
166
207
  export declare function defaultEdgeQueryOptions(id1: ID, edgeType: string): EdgeQueryableDataOptions;
167
208
  export declare function loadEdges(options: loadEdgesOptions): Promise<AssocEdge[]>;
209
+ export declare function getEdgeClauseAndFields(cls: clause.Clause, options: loadEdgesOptions): {
210
+ cls: clause.Clause;
211
+ fields: string[];
212
+ };
168
213
  export declare function loadCustomEdges<T extends AssocEdge>(options: loadCustomEdgesOptions<T>): Promise<T[]>;
169
214
  export declare function loadUniqueEdge(options: loadEdgesOptions): Promise<AssocEdge | null>;
170
- export declare function loadUniqueNode<T extends Ent>(viewer: Viewer, id1: ID, edgeType: string, options: LoadEntOptions<T>): Promise<T | null>;
215
+ export declare function loadUniqueNode<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, id1: ID, edgeType: string, options: LoadEntOptions<TEnt, TViewer>): Promise<TEnt | null>;
171
216
  export declare function loadRawEdgeCountX(options: loadEdgesOptions): Promise<number>;
172
217
  interface loadEdgeForIDOptions<T extends AssocEdge> extends loadCustomEdgesOptions<T> {
173
218
  id2: ID;
174
219
  }
175
220
  export declare function loadEdgeForID2<T extends AssocEdge>(options: loadEdgeForIDOptions<T>): Promise<T | undefined>;
176
221
  export declare function loadNodesByEdge<T extends Ent>(viewer: Viewer, id1: ID, edgeType: string, options: LoadEntOptions<T>): Promise<T[]>;
177
- export declare function applyPrivacyPolicyForRow<T extends Ent>(viewer: Viewer, options: LoadEntOptions<T>, row: Data | null): Promise<T | null>;
178
- export declare function applyPrivacyPolicyForRowX<T extends Ent>(viewer: Viewer, options: LoadEntOptions<T>, row: Data): Promise<T>;
179
- export declare function applyPrivacyPolicyForRows<T extends Ent>(viewer: Viewer, rows: Data[], options: LoadEntOptions<T>): Promise<Map<ID, T>>;
222
+ export declare function applyPrivacyPolicyForRow<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, options: LoadEntOptions<TEnt, TViewer>, row: Data | null): Promise<TEnt | null>;
223
+ export declare function applyPrivacyPolicyForRows<TEnt extends Ent<TViewer>, TViewer extends Viewer>(viewer: TViewer, rows: Data[], options: LoadEntOptions<TEnt, TViewer>): Promise<Map<ID, TEnt>>;
180
224
  export declare function getEdgeTypeInGroup<T extends string>(viewer: Viewer, id1: ID, id2: ID, m: Map<T, string>): Promise<[T, AssocEdge] | undefined>;
181
225
  export {};