@snowtop/ent 0.0.1 → 0.0.3-5.alpha

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 (104) hide show
  1. package/action/action.d.ts +6 -6
  2. package/action/action.js +2 -2
  3. package/action/executor.d.ts +7 -12
  4. package/action/executor.js +39 -33
  5. package/action/experimental_action.d.ts +4 -2
  6. package/action/experimental_action.js +27 -2
  7. package/action/index.d.ts +1 -1
  8. package/action/orchestrator.d.ts +14 -6
  9. package/action/orchestrator.js +188 -99
  10. package/action/privacy.js +4 -4
  11. package/auth/auth.js +2 -2
  12. package/core/base.d.ts +6 -0
  13. package/core/base.js +12 -9
  14. package/core/clause.d.ts +1 -0
  15. package/core/clause.js +6 -2
  16. package/core/config.d.ts +21 -1
  17. package/core/config.js +20 -12
  18. package/core/context.js +3 -3
  19. package/core/convert.d.ts +4 -0
  20. package/core/convert.js +25 -2
  21. package/core/db.d.ts +19 -2
  22. package/core/db.js +4 -7
  23. package/core/ent.d.ts +17 -10
  24. package/core/ent.js +38 -15
  25. package/core/loaders/assoc_count_loader.js +5 -5
  26. package/core/loaders/assoc_edge_loader.js +10 -10
  27. package/core/loaders/loader.js +3 -3
  28. package/core/loaders/object_loader.js +6 -6
  29. package/core/loaders/query_loader.js +7 -7
  30. package/core/loaders/raw_count_loader.js +4 -4
  31. package/core/logger.js +2 -2
  32. package/core/privacy.d.ts +21 -1
  33. package/core/privacy.js +91 -47
  34. package/core/query/assoc_query.d.ts +12 -12
  35. package/core/query/assoc_query.js +86 -51
  36. package/core/query/custom_query.d.ts +10 -7
  37. package/core/query/custom_query.js +29 -3
  38. package/core/query/query.d.ts +24 -8
  39. package/core/query/query.js +41 -4
  40. package/core/query/shared_assoc_test.js +257 -13
  41. package/core/query/shared_test.d.ts +1 -1
  42. package/core/query/shared_test.js +11 -11
  43. package/core/viewer.js +1 -0
  44. package/graphql/builtins/connection.js +4 -3
  45. package/graphql/builtins/edge.js +3 -2
  46. package/graphql/builtins/node.js +2 -1
  47. package/graphql/graphql.d.ts +2 -0
  48. package/graphql/graphql.js +83 -61
  49. package/graphql/index.d.ts +1 -1
  50. package/graphql/index.js +2 -1
  51. package/graphql/node_resolver.d.ts +1 -0
  52. package/graphql/node_resolver.js +14 -1
  53. package/graphql/query/connection_type.d.ts +5 -4
  54. package/graphql/query/connection_type.js +6 -6
  55. package/graphql/query/edge_connection.d.ts +7 -7
  56. package/graphql/query/page_info.js +5 -4
  57. package/graphql/query/shared_assoc_test.js +9 -9
  58. package/graphql/query/shared_edge_connection.d.ts +1 -1
  59. package/graphql/query/shared_edge_connection.js +4 -4
  60. package/graphql/scalars/time.js +1 -1
  61. package/imports/dataz/example1/_auth.js +8 -8
  62. package/imports/dataz/example1/_viewer.js +4 -4
  63. package/imports/index.d.ts +1 -1
  64. package/imports/index.js +3 -5
  65. package/index.d.ts +2 -1
  66. package/index.js +6 -2
  67. package/package.json +17 -10
  68. package/parse_schema/parse.d.ts +48 -0
  69. package/parse_schema/parse.js +156 -0
  70. package/schema/base_schema.d.ts +2 -0
  71. package/schema/base_schema.js +17 -7
  72. package/schema/field.d.ts +52 -15
  73. package/schema/field.js +234 -47
  74. package/schema/index.d.ts +1 -0
  75. package/schema/index.js +1 -0
  76. package/schema/json_field.d.ts +17 -0
  77. package/schema/json_field.js +48 -0
  78. package/schema/schema.d.ts +39 -4
  79. package/schema/schema.js +2 -0
  80. package/scripts/custom_compiler.js +8 -10
  81. package/scripts/custom_graphql.js +45 -10
  82. package/scripts/read_schema.js +6 -108
  83. package/testutils/builder.d.ts +6 -3
  84. package/testutils/builder.js +31 -15
  85. package/testutils/db/test_db.d.ts +16 -8
  86. package/testutils/db/test_db.js +65 -9
  87. package/testutils/db_mock.js +5 -5
  88. package/testutils/ent-graphql-tests/index.d.ts +1 -0
  89. package/testutils/ent-graphql-tests/index.js +13 -13
  90. package/testutils/fake_comms.d.ts +1 -0
  91. package/testutils/fake_comms.js +4 -0
  92. package/testutils/fake_data/const.d.ts +5 -1
  93. package/testutils/fake_data/const.js +19 -1
  94. package/testutils/fake_data/events_query.d.ts +16 -11
  95. package/testutils/fake_data/events_query.js +15 -0
  96. package/testutils/fake_data/fake_contact.js +9 -9
  97. package/testutils/fake_data/fake_event.js +14 -14
  98. package/testutils/fake_data/fake_user.js +12 -10
  99. package/testutils/fake_data/test_helpers.d.ts +5 -1
  100. package/testutils/fake_data/test_helpers.js +49 -16
  101. package/testutils/fake_data/user_query.d.ts +25 -9
  102. package/testutils/fake_data/user_query.js +52 -5
  103. package/testutils/parse_sql.js +19 -3
  104. package/testutils/write.js +6 -6
@@ -22,9 +22,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.getSchemaTable = exports.setupSqlite = exports.assoc_edge_table = exports.assoc_edge_config_table = exports.TempDB = exports.table = exports.boolList = exports.dateList = exports.timetzList = exports.timeList = exports.timestamptzList = exports.timestampList = exports.uuidList = exports.integerList = exports.textList = exports.float = exports.integer = exports.bool = exports.date = exports.timetz = exports.time = exports.timestamptz = exports.timestamp = exports.text = exports.uuid = exports.foreignKey = exports.primaryKey = void 0;
25
+ exports.getSchemaTable = exports.setupSqlite = exports.assoc_edge_table = exports.assoc_edge_config_table = exports.TempDB = exports.enumType = exports.table = exports.boolList = exports.dateList = exports.timetzList = exports.timeList = exports.timestamptzList = exports.timestampList = exports.uuidList = exports.integerList = exports.textList = exports.jsonb = exports.json = exports.float = exports.integer = exports.bool = exports.date = exports.timetz = exports.time = exports.timestamptz = exports.timestamp = exports.enumCol = exports.text = exports.uuid = exports.uniqueIndex = exports.foreignKey = exports.primaryKey = void 0;
26
26
  const pg_1 = require("pg");
27
27
  const db_1 = __importStar(require("../../core/db"));
28
+ // this should only be used in tests so we expect to be able to import without shenanigans
28
29
  const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
29
30
  const config_1 = require("../../core/config");
30
31
  const fs = __importStar(require("fs"));
@@ -49,6 +50,15 @@ function foreignKey(name, cols, fkey) {
49
50
  };
50
51
  }
51
52
  exports.foreignKey = foreignKey;
53
+ function uniqueIndex(name) {
54
+ return {
55
+ name: "",
56
+ generate() {
57
+ return `UNIQUE (${name})`;
58
+ },
59
+ };
60
+ }
61
+ exports.uniqueIndex = uniqueIndex;
52
62
  function uuid(name, opts) {
53
63
  return {
54
64
  name,
@@ -69,6 +79,15 @@ function text(name, opts) {
69
79
  };
70
80
  }
71
81
  exports.text = text;
82
+ function enumCol(name, type) {
83
+ return {
84
+ name,
85
+ datatype() {
86
+ return type;
87
+ },
88
+ };
89
+ }
90
+ exports.enumCol = enumCol;
72
91
  function timestamp(name, opts) {
73
92
  return {
74
93
  name,
@@ -161,6 +180,26 @@ function float(name, opts) {
161
180
  };
162
181
  }
163
182
  exports.float = float;
183
+ function json(name, opts) {
184
+ return {
185
+ name,
186
+ datatype() {
187
+ return "JSON";
188
+ },
189
+ ...opts,
190
+ };
191
+ }
192
+ exports.json = json;
193
+ function jsonb(name, opts) {
194
+ return {
195
+ name,
196
+ datatype() {
197
+ return "JSONB";
198
+ },
199
+ ...opts,
200
+ };
201
+ }
202
+ exports.jsonb = jsonb;
164
203
  function list(name, col, opts) {
165
204
  return {
166
205
  name,
@@ -241,6 +280,9 @@ function table(name, ...items) {
241
280
  if (col.default !== undefined) {
242
281
  parts.push(`DEFAULT ${col.default}`);
243
282
  }
283
+ if (col.unique) {
284
+ parts.push("UNIQUE");
285
+ }
244
286
  return parts.join(" ");
245
287
  });
246
288
  constraints.forEach((constraint) => schemaStr.push(constraint.generate()));
@@ -252,6 +294,18 @@ function table(name, ...items) {
252
294
  };
253
295
  }
254
296
  exports.table = table;
297
+ function enumType(name, values) {
298
+ return {
299
+ name,
300
+ drop() {
301
+ return `DROP TYPE ${name}`;
302
+ },
303
+ create() {
304
+ return `CREATE TYPE ${name} as ENUM(${values.join(", ")})`;
305
+ },
306
+ };
307
+ }
308
+ exports.enumType = enumType;
255
309
  function randomDB() {
256
310
  let str = Math.random().toString(16).substring(2);
257
311
  // always ensure it starts with an alpha character
@@ -313,18 +367,16 @@ class TempDB {
313
367
  throw new Error(`DB_CONNECTION_STRING required for sqlite `);
314
368
  }
315
369
  const filePath = process.env.DB_CONNECTION_STRING.substr(10);
316
- this.sqlite = better_sqlite3_1.default(filePath);
370
+ this.sqlite = (0, better_sqlite3_1.default)(filePath);
317
371
  }
318
372
  for (const [_, table] of this.tables) {
319
373
  if (this.dialect == db_1.Dialect.Postgres) {
320
374
  await this.dbClient.query(table.create());
321
375
  }
322
376
  else {
323
- // console.log(table.create());
324
377
  this.sqlite.exec(table.create());
325
378
  }
326
379
  }
327
- // await this.sqlite.exec("nonsense");
328
380
  }
329
381
  getSqliteClient() {
330
382
  return this.sqlite;
@@ -360,7 +412,7 @@ class TempDB {
360
412
  await this.dbClient.query(table.drop());
361
413
  }
362
414
  else {
363
- await this.sqlite.exec(table.drop());
415
+ this.sqlite.exec(table.drop());
364
416
  }
365
417
  this.tables.delete(tableName);
366
418
  }
@@ -397,7 +449,7 @@ function setupSqlite(connString, tables, opts) {
397
449
  let tdb;
398
450
  beforeAll(async () => {
399
451
  process.env.DB_CONNECTION_STRING = connString;
400
- config_1.loadConfig();
452
+ (0, config_1.loadConfig)();
401
453
  tdb = new TempDB(db_1.Dialect.SQLite, tables());
402
454
  await tdb.beforeAll();
403
455
  const conn = db_1.default.getInstance().getConnection();
@@ -425,12 +477,12 @@ function setupSqlite(connString, tables, opts) {
425
477
  }
426
478
  exports.setupSqlite = setupSqlite;
427
479
  function getSchemaTable(schema, dialect) {
428
- const fields = schema_1.getFields(schema);
480
+ const fields = (0, schema_1.getFields)(schema);
429
481
  const columns = [];
430
482
  for (const [_, field] of fields) {
431
483
  columns.push(getColumnFromField(field, dialect));
432
484
  }
433
- return table(builder_1.getTableName(schema), ...columns);
485
+ return table((0, builder_1.getTableName)(schema), ...columns);
434
486
  }
435
487
  exports.getSchemaTable = getSchemaTable;
436
488
  function getColumnForDbType(t, dialect) {
@@ -460,6 +512,10 @@ function getColumnForDbType(t, dialect) {
460
512
  return time;
461
513
  case schema_1.DBType.Timetz:
462
514
  return timetz;
515
+ case schema_1.DBType.JSONB:
516
+ return jsonb;
517
+ case schema_1.DBType.JSON:
518
+ return json;
463
519
  default:
464
520
  return undefined;
465
521
  }
@@ -508,7 +564,7 @@ function storageKey(f) {
508
564
  if (f.storageKey) {
509
565
  return f.storageKey;
510
566
  }
511
- return snake_case_1.snakeCase(f.name);
567
+ return (0, snake_case_1.snakeCase)(f.name);
512
568
  }
513
569
  function isSyncClient(client) {
514
570
  return client.execSync !== undefined;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueryRecorder = exports.queryType = void 0;
4
4
  const uuid_1 = require("uuid");
5
- const utils_1 = require("ts-jest/utils");
5
+ const jest_mock_1 = require("jest-mock");
6
6
  const parse_sql_1 = require("./parse_sql");
7
7
  const eventEmitter = {
8
8
  on: jest.fn(),
@@ -85,10 +85,10 @@ class QueryRecorder {
85
85
  values: values,
86
86
  qs: qs,
87
87
  });
88
- return parse_sql_1.performQuery(query, values, QueryRecorder.data);
88
+ return (0, parse_sql_1.performQuery)(query, values, QueryRecorder.data);
89
89
  }
90
90
  static newID() {
91
- let id = uuid_1.v4();
91
+ let id = (0, uuid_1.v4)();
92
92
  QueryRecorder.ids.push(id);
93
93
  return id;
94
94
  }
@@ -110,7 +110,7 @@ class QueryRecorder {
110
110
  let result = [];
111
111
  for (const row of rows) {
112
112
  // transform the data into whatever the return value should be before filtering
113
- const row2 = parse_sql_1.getDataToReturn(row, undefined, true);
113
+ const row2 = (0, parse_sql_1.getDataToReturn)(row, undefined, true);
114
114
  if (filterfn(row2)) {
115
115
  result.push(row2);
116
116
  }
@@ -185,7 +185,7 @@ class QueryRecorder {
185
185
  }
186
186
  }
187
187
  static mockPool(pool) {
188
- const mockedPool = utils_1.mocked(pool, true);
188
+ const mockedPool = (0, jest_mock_1.mocked)(pool, true);
189
189
  mockedPool.mockImplementation(() => {
190
190
  return {
191
191
  totalCount: 1,
@@ -27,6 +27,7 @@ export declare function expectQueryFromRoot(config: queryRootConfig, ...options:
27
27
  export interface mutationRootConfig extends queryConfig {
28
28
  mutation: string;
29
29
  disableInputWrapping?: boolean;
30
+ nullQueryPaths?: string[];
30
31
  }
31
32
  export declare function expectMutation(config: mutationRootConfig, ...options: Option[]): Promise<supertest.SuperTest<supertest.Test>>;
32
33
  export {};
@@ -34,21 +34,21 @@ const fs = __importStar(require("fs"));
34
34
  function server(config) {
35
35
  const viewer = config.viewer;
36
36
  if (viewer) {
37
- auth_1.registerAuthHandler("viewer", {
37
+ (0, auth_1.registerAuthHandler)("viewer", {
38
38
  authViewer: async (_context) => {
39
39
  // TODO we want to use Context here in tests to get caching etc
40
40
  return viewer;
41
41
  },
42
42
  });
43
43
  }
44
- let app = express_1.default();
44
+ let app = (0, express_1.default)();
45
45
  if (config.init) {
46
46
  config.init(app);
47
47
  }
48
48
  let handlers = config.customHandlers || [];
49
- handlers.push(express_graphql_1.graphqlHTTP((request, response) => {
49
+ handlers.push((0, express_graphql_1.graphqlHTTP)((request, response) => {
50
50
  const doWork = async () => {
51
- let context = await auth_1.buildContext(request, response);
51
+ let context = await (0, auth_1.buildContext)(request, response);
52
52
  return {
53
53
  schema: config.schema,
54
54
  context,
@@ -60,7 +60,7 @@ function server(config) {
60
60
  return app;
61
61
  }
62
62
  function getInnerType(typ, list) {
63
- if (graphql_1.isWrappingType(typ)) {
63
+ if ((0, graphql_1.isWrappingType)(typ)) {
64
64
  if (typ instanceof graphql_1.GraphQLList) {
65
65
  return getInnerType(typ.ofType, true);
66
66
  }
@@ -79,7 +79,7 @@ function makeGraphQLRequest(config, query, fieldArgs) {
79
79
  }
80
80
  }
81
81
  else {
82
- test = supertest_1.default(server(config));
82
+ test = (0, supertest_1.default)(server(config));
83
83
  }
84
84
  let files = new Map();
85
85
  // handle files
@@ -204,12 +204,12 @@ function buildTreeFromQueryPaths(schema, fieldType, ...options) {
204
204
  if (!subField) {
205
205
  return false;
206
206
  }
207
- if (!graphql_1.isWrappingType(subField.type)) {
207
+ if (!(0, graphql_1.isWrappingType)(subField.type)) {
208
208
  return false;
209
209
  }
210
210
  // only spread out if an object
211
211
  const [typ, _] = getInnerType(subField.type, true);
212
- return graphql_1.isScalarType(typ);
212
+ return (0, graphql_1.isScalarType)(typ);
213
213
  }
214
214
  if (i === parts.length - 1 && typeof option[1] === "object") {
215
215
  if (!isScalarField(part)) {
@@ -286,11 +286,11 @@ async function expectFromRoot(config, ...options) {
286
286
  let fields = query?.getFields();
287
287
  if (!fields) {
288
288
  // TODO custom error?
289
- fail("schema doesn't have query or fields");
289
+ throw new Error("schema doesn't have query or fields");
290
290
  }
291
291
  let field = fields[config.root];
292
292
  if (!field) {
293
- fail(`could not find field ${config.root} in GraphQL query schema`);
293
+ throw new Error(`could not find field ${config.root} in GraphQL query schema`);
294
294
  }
295
295
  let fieldArgs = field.args;
296
296
  let queryParams = [];
@@ -361,7 +361,7 @@ async function expectFromRoot(config, ...options) {
361
361
  expect(errors[0].message).toMatch(config.expectedError);
362
362
  }
363
363
  else {
364
- fail(`unhandled error ${JSON.stringify(errors)}`);
364
+ throw new Error(`unhandled error ${JSON.stringify(errors)}`);
365
365
  }
366
366
  return st;
367
367
  }
@@ -416,7 +416,7 @@ async function expectFromRoot(config, ...options) {
416
416
  if (idx !== -1) {
417
417
  let endIdx = part.indexOf("]");
418
418
  if (endIdx === -1) {
419
- fail("can't have a beginning index without an end index");
419
+ throw new Error("can't have a beginning index without an end index");
420
420
  }
421
421
  // get the idx we care about
422
422
  listIdx = parseInt(part.substr(idx + 1, endIdx - idx), 10);
@@ -428,7 +428,7 @@ async function expectFromRoot(config, ...options) {
428
428
  if (idx !== -1) {
429
429
  let endIdx = part.indexOf(")");
430
430
  if (endIdx === -1) {
431
- fail("can't have a beginning index without an end index");
431
+ throw new Error("can't have a beginning index without an end index");
432
432
  }
433
433
  // update part
434
434
  part = part.substr(0, idx);
@@ -12,6 +12,7 @@ export interface commsInput {
12
12
  export declare class FakeComms {
13
13
  private static sent;
14
14
  static send(option: commsInput): void;
15
+ static sendAsync(option: commsInput): Promise<void>;
15
16
  static verifySent(to: string, mode: Mode, opts?: {
16
17
  subject: any;
17
18
  body: any;
@@ -10,6 +10,10 @@ class FakeComms {
10
10
  static send(option) {
11
11
  this.sent.push(option);
12
12
  }
13
+ static async sendAsync(option) {
14
+ await new Promise((resolve) => setTimeout(resolve, 10));
15
+ this.sent.push(option);
16
+ }
13
17
  static verifySent(to, mode, opts) {
14
18
  let sent = this.sent.filter((option) => option.to === to && option.mode === mode);
15
19
  expect(sent.length).toBeGreaterThan(0);
@@ -1,3 +1,4 @@
1
+ import { Ent, LoadEntOptions } from "../../core/base";
1
2
  export declare enum EdgeType {
2
3
  UserToContacts = "userToContacts",
3
4
  UserToFriends = "userToFriends",
@@ -10,7 +11,9 @@ export declare enum EdgeType {
10
11
  EventToHosts = "eventToHosts",
11
12
  UserToHostedEvents = "userToHostedEvents",
12
13
  UserToFriendRequests = "userToFriendRequests",
13
- UserToIncomingFriendRequests = "userToIncomingFriendRequests"
14
+ UserToIncomingFriendRequests = "userToIncomingFriendRequests",
15
+ UserToFollowing = "userToFollowing",
16
+ ObjectToFollowedUsers = "objectToFollowedUsers"
14
17
  }
15
18
  export declare enum NodeType {
16
19
  FakeUser = "user",
@@ -19,3 +22,4 @@ export declare enum NodeType {
19
22
  }
20
23
  export declare const SymmetricEdges: Set<string>;
21
24
  export declare const InverseEdges: Map<EdgeType, EdgeType>;
25
+ export declare function getLoaderOptions(type: NodeType): LoadEntOptions<Ent>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InverseEdges = exports.SymmetricEdges = exports.NodeType = exports.EdgeType = void 0;
3
+ exports.getLoaderOptions = exports.InverseEdges = exports.SymmetricEdges = exports.NodeType = exports.EdgeType = void 0;
4
+ const internal_1 = require("./internal");
4
5
  var EdgeType;
5
6
  (function (EdgeType) {
6
7
  EdgeType["UserToContacts"] = "userToContacts";
@@ -16,6 +17,10 @@ var EdgeType;
16
17
  EdgeType["UserToHostedEvents"] = "userToHostedEvents";
17
18
  EdgeType["UserToFriendRequests"] = "userToFriendRequests";
18
19
  EdgeType["UserToIncomingFriendRequests"] = "userToIncomingFriendRequests";
20
+ // can follow users or events...
21
+ // so a polymorphic edge
22
+ EdgeType["UserToFollowing"] = "userToFollowing";
23
+ EdgeType["ObjectToFollowedUsers"] = "objectToFollowedUsers";
19
24
  })(EdgeType = exports.EdgeType || (exports.EdgeType = {}));
20
25
  var NodeType;
21
26
  (function (NodeType) {
@@ -32,4 +37,17 @@ exports.InverseEdges = new Map([
32
37
  [EdgeType.EventToHosts, EdgeType.UserToHostedEvents],
33
38
  [EdgeType.UserToFriendRequests, EdgeType.UserToIncomingFriendRequests],
34
39
  [EdgeType.UserToIncomingFriendRequests, EdgeType.UserToFriendRequests],
40
+ [EdgeType.UserToFollowing, EdgeType.ObjectToFollowedUsers],
41
+ [EdgeType.ObjectToFollowedUsers, EdgeType.UserToFollowing],
35
42
  ]);
43
+ function getLoaderOptions(type) {
44
+ switch (type) {
45
+ case NodeType.FakeContact:
46
+ return internal_1.FakeContact.loaderOptions();
47
+ case NodeType.FakeUser:
48
+ return internal_1.FakeUser.loaderOptions();
49
+ case NodeType.FakeEvent:
50
+ return internal_1.FakeEvent.loaderOptions();
51
+ }
52
+ }
53
+ exports.getLoaderOptions = getLoaderOptions;
@@ -1,25 +1,30 @@
1
- import { Viewer } from "../../core/base";
1
+ import { ID, Viewer } from "../../core/base";
2
2
  import { AssocEdge } from "../../core/ent";
3
3
  import { AssocEdgeQueryBase, EdgeQuerySource } from "../../core/query/assoc_query";
4
4
  import { FakeUser } from "./fake_user";
5
5
  import { FakeEvent } from "./internal";
6
6
  export declare class EventToAttendeesQuery extends AssocEdgeQueryBase<FakeEvent, FakeUser, AssocEdge> {
7
- constructor(viewer: Viewer, src: EdgeQuerySource<FakeEvent>);
8
- static query(viewer: Viewer, src: EdgeQuerySource<FakeEvent>): EventToAttendeesQuery;
7
+ constructor(viewer: Viewer, src: EdgeQuerySource<FakeEvent, FakeUser>);
8
+ static query(viewer: Viewer, src: EdgeQuerySource<FakeEvent, FakeUser>): EventToAttendeesQuery;
9
+ sourceEnt(id: ID): Promise<FakeEvent | null>;
9
10
  }
10
11
  export declare class EventToInvitedQuery extends AssocEdgeQueryBase<FakeEvent, FakeUser, AssocEdge> {
11
- constructor(viewer: Viewer, src: EdgeQuerySource<FakeEvent>);
12
- static query(viewer: Viewer, src: EdgeQuerySource<FakeEvent>): EventToInvitedQuery;
12
+ constructor(viewer: Viewer, src: EdgeQuerySource<FakeEvent, FakeUser>);
13
+ static query(viewer: Viewer, src: EdgeQuerySource<FakeEvent, FakeUser>): EventToInvitedQuery;
14
+ sourceEnt(id: ID): Promise<FakeEvent | null>;
13
15
  }
14
16
  export declare class EventToDeclinedQuery extends AssocEdgeQueryBase<FakeEvent, FakeUser, AssocEdge> {
15
- constructor(viewer: Viewer, src: EdgeQuerySource<FakeEvent>);
16
- static query(viewer: Viewer, src: EdgeQuerySource<FakeEvent>): EventToDeclinedQuery;
17
+ constructor(viewer: Viewer, src: EdgeQuerySource<FakeEvent, FakeUser>);
18
+ static query(viewer: Viewer, src: EdgeQuerySource<FakeEvent, FakeUser>): EventToDeclinedQuery;
19
+ sourceEnt(id: ID): Promise<FakeEvent | null>;
17
20
  }
18
21
  export declare class EventToMaybeQuery extends AssocEdgeQueryBase<FakeEvent, FakeUser, AssocEdge> {
19
- constructor(viewer: Viewer, src: EdgeQuerySource<FakeEvent>);
20
- static query(viewer: Viewer, src: EdgeQuerySource<FakeEvent>): EventToMaybeQuery;
22
+ constructor(viewer: Viewer, src: EdgeQuerySource<FakeEvent, FakeUser>);
23
+ static query(viewer: Viewer, src: EdgeQuerySource<FakeEvent, FakeUser>): EventToMaybeQuery;
24
+ sourceEnt(id: ID): Promise<FakeEvent | null>;
21
25
  }
22
26
  export declare class EventToHostsQuery extends AssocEdgeQueryBase<FakeEvent, FakeUser, AssocEdge> {
23
- constructor(viewer: Viewer, src: EdgeQuerySource<FakeEvent>);
24
- static query(viewer: Viewer, src: EdgeQuerySource<FakeEvent>): EventToHostsQuery;
27
+ constructor(viewer: Viewer, src: EdgeQuerySource<FakeEvent, FakeUser>);
28
+ static query(viewer: Viewer, src: EdgeQuerySource<FakeEvent, FakeUser>): EventToHostsQuery;
29
+ sourceEnt(id: ID): Promise<FakeEvent | null>;
25
30
  }
@@ -14,6 +14,9 @@ class EventToAttendeesQuery extends assoc_query_1.AssocEdgeQueryBase {
14
14
  static query(viewer, src) {
15
15
  return new EventToAttendeesQuery(viewer, src);
16
16
  }
17
+ sourceEnt(id) {
18
+ return internal_1.FakeEvent.load(this.viewer, id);
19
+ }
17
20
  }
18
21
  exports.EventToAttendeesQuery = EventToAttendeesQuery;
19
22
  class EventToInvitedQuery extends assoc_query_1.AssocEdgeQueryBase {
@@ -23,6 +26,9 @@ class EventToInvitedQuery extends assoc_query_1.AssocEdgeQueryBase {
23
26
  static query(viewer, src) {
24
27
  return new EventToInvitedQuery(viewer, src);
25
28
  }
29
+ sourceEnt(id) {
30
+ return internal_1.FakeEvent.load(this.viewer, id);
31
+ }
26
32
  }
27
33
  exports.EventToInvitedQuery = EventToInvitedQuery;
28
34
  class EventToDeclinedQuery extends assoc_query_1.AssocEdgeQueryBase {
@@ -32,6 +38,9 @@ class EventToDeclinedQuery extends assoc_query_1.AssocEdgeQueryBase {
32
38
  static query(viewer, src) {
33
39
  return new EventToDeclinedQuery(viewer, src);
34
40
  }
41
+ sourceEnt(id) {
42
+ return internal_1.FakeEvent.load(this.viewer, id);
43
+ }
35
44
  }
36
45
  exports.EventToDeclinedQuery = EventToDeclinedQuery;
37
46
  class EventToMaybeQuery extends assoc_query_1.AssocEdgeQueryBase {
@@ -41,6 +50,9 @@ class EventToMaybeQuery extends assoc_query_1.AssocEdgeQueryBase {
41
50
  static query(viewer, src) {
42
51
  return new EventToMaybeQuery(viewer, src);
43
52
  }
53
+ sourceEnt(id) {
54
+ return internal_1.FakeEvent.load(this.viewer, id);
55
+ }
44
56
  }
45
57
  exports.EventToMaybeQuery = EventToMaybeQuery;
46
58
  class EventToHostsQuery extends assoc_query_1.AssocEdgeQueryBase {
@@ -50,5 +62,8 @@ class EventToHostsQuery extends assoc_query_1.AssocEdgeQueryBase {
50
62
  static query(viewer, src) {
51
63
  return new EventToHostsQuery(viewer, src);
52
64
  }
65
+ sourceEnt(id) {
66
+ return internal_1.FakeEvent.load(this.viewer, id);
67
+ }
53
68
  }
54
69
  exports.EventToHostsQuery = EventToHostsQuery;
@@ -18,8 +18,8 @@ class FakeContact {
18
18
  };
19
19
  this.data = data;
20
20
  this.id = data.id;
21
- this.createdAt = convert_1.convertDate(data.created_at);
22
- this.updatedAt = convert_1.convertDate(data.updated_at);
21
+ this.createdAt = (0, convert_1.convertDate)(data.created_at);
22
+ this.updatedAt = (0, convert_1.convertDate)(data.updated_at);
23
23
  this.firstName = data.first_name;
24
24
  this.lastName = data.last_name;
25
25
  this.emailAddress = data.email_address;
@@ -37,7 +37,7 @@ class FakeContact {
37
37
  ];
38
38
  }
39
39
  static getTestTable() {
40
- return test_db_1.table("fake_contacts", test_db_1.uuid("id", { primaryKey: true }), test_db_1.timestamptz("created_at"), test_db_1.timestamptz("updated_at"), test_db_1.text("first_name"), test_db_1.text("last_name"), test_db_1.text("email_address"), test_db_1.uuid("user_id"));
40
+ return (0, test_db_1.table)("fake_contacts", (0, test_db_1.uuid)("id", { primaryKey: true }), (0, test_db_1.timestamptz)("created_at"), (0, test_db_1.timestamptz)("updated_at"), (0, test_db_1.text)("first_name"), (0, test_db_1.text)("last_name"), (0, test_db_1.text)("email_address"), (0, test_db_1.uuid)("user_id"));
41
41
  }
42
42
  static loaderOptions() {
43
43
  return {
@@ -52,10 +52,10 @@ class FakeContact {
52
52
  };
53
53
  }
54
54
  static async load(v, id) {
55
- return ent_1.loadEnt(v, id, FakeContact.loaderOptions());
55
+ return (0, ent_1.loadEnt)(v, id, FakeContact.loaderOptions());
56
56
  }
57
57
  static async loadX(v, id) {
58
- return ent_1.loadEntX(v, id, FakeContact.loaderOptions());
58
+ return (0, ent_1.loadEntX)(v, id, FakeContact.loaderOptions());
59
59
  }
60
60
  }
61
61
  exports.FakeContact = FakeContact;
@@ -64,16 +64,16 @@ class FakeContactSchema extends schema_1.BaseEntSchema {
64
64
  super(...arguments);
65
65
  this.ent = FakeContact;
66
66
  this.fields = [
67
- schema_1.StringType({
67
+ (0, schema_1.StringType)({
68
68
  name: "firstName",
69
69
  }),
70
- schema_1.StringType({
70
+ (0, schema_1.StringType)({
71
71
  name: "lastName",
72
72
  }),
73
- schema_1.StringType({
73
+ (0, schema_1.StringType)({
74
74
  name: "emailAddress",
75
75
  }),
76
- schema_1.UUIDType({
76
+ (0, schema_1.UUIDType)({
77
77
  name: "userID",
78
78
  foreignKey: { schema: "User", column: "ID" },
79
79
  }),
@@ -16,10 +16,10 @@ class FakeEvent {
16
16
  this.privacyPolicy = privacy_1.AlwaysAllowPrivacyPolicy;
17
17
  this.data = data;
18
18
  this.id = data.id;
19
- this.createdAt = convert_1.convertDate(data.created_at);
20
- this.updatedAt = convert_1.convertDate(data.updated_at);
21
- this.startTime = convert_1.convertDate(data.start_time);
22
- this.endTime = convert_1.convertNullableDate(data.end_time);
19
+ this.createdAt = (0, convert_1.convertDate)(data.created_at);
20
+ this.updatedAt = (0, convert_1.convertDate)(data.updated_at);
21
+ this.startTime = (0, convert_1.convertDate)(data.start_time);
22
+ this.endTime = (0, convert_1.convertNullableDate)(data.end_time);
23
23
  this.location = data.location;
24
24
  this.title = data.title;
25
25
  this.description = data.description;
@@ -39,9 +39,9 @@ class FakeEvent {
39
39
  ];
40
40
  }
41
41
  static getTestTable() {
42
- return test_db_1.table("fake_events", test_db_1.uuid("id", { primaryKey: true }), test_db_1.timestamptz("created_at"), test_db_1.timestamptz("updated_at"),
42
+ return (0, test_db_1.table)("fake_events", (0, test_db_1.uuid)("id", { primaryKey: true }), (0, test_db_1.timestamptz)("created_at"), (0, test_db_1.timestamptz)("updated_at"),
43
43
  // TODO index:true
44
- test_db_1.timestamptz("start_time"), test_db_1.timestamptz("end_time", { nullable: true }), test_db_1.text("location"), test_db_1.text("title"), test_db_1.text("description", { nullable: true }), test_db_1.uuid("user_id"));
44
+ (0, test_db_1.timestamptz)("start_time"), (0, test_db_1.timestamptz)("end_time", { nullable: true }), (0, test_db_1.text)("location"), (0, test_db_1.text)("title"), (0, test_db_1.text)("description", { nullable: true }), (0, test_db_1.uuid)("user_id"));
45
45
  }
46
46
  static loaderOptions() {
47
47
  return {
@@ -56,10 +56,10 @@ class FakeEvent {
56
56
  };
57
57
  }
58
58
  static async load(v, id) {
59
- return ent_1.loadEnt(v, id, FakeEvent.loaderOptions());
59
+ return (0, ent_1.loadEnt)(v, id, FakeEvent.loaderOptions());
60
60
  }
61
61
  static async loadX(v, id) {
62
- return ent_1.loadEntX(v, id, FakeEvent.loaderOptions());
62
+ return (0, ent_1.loadEntX)(v, id, FakeEvent.loaderOptions());
63
63
  }
64
64
  }
65
65
  exports.FakeEvent = FakeEvent;
@@ -68,25 +68,25 @@ class FakeEventSchema extends schema_1.BaseEntSchema {
68
68
  super(...arguments);
69
69
  this.ent = FakeEvent;
70
70
  this.fields = [
71
- schema_1.TimestampType({
71
+ (0, schema_1.TimestampType)({
72
72
  name: "startTime",
73
73
  index: true,
74
74
  }),
75
- schema_1.TimestampType({
75
+ (0, schema_1.TimestampType)({
76
76
  name: "endTime",
77
77
  nullable: true,
78
78
  }),
79
- schema_1.StringType({
79
+ (0, schema_1.StringType)({
80
80
  name: "title",
81
81
  }),
82
- schema_1.StringType({
82
+ (0, schema_1.StringType)({
83
83
  name: "location",
84
84
  }),
85
- schema_1.StringType({
85
+ (0, schema_1.StringType)({
86
86
  name: "description",
87
87
  nullable: true,
88
88
  }),
89
- schema_1.UUIDType({
89
+ (0, schema_1.UUIDType)({
90
90
  name: "userID",
91
91
  foreignKey: { schema: "User", column: "ID" },
92
92
  }),