@subsquid/openreader 2.0.0 → 3.0.0

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 (100) hide show
  1. package/lib/context.d.ts +5 -2
  2. package/lib/context.d.ts.map +1 -1
  3. package/lib/ir/args.d.ts +1 -1
  4. package/lib/ir/args.d.ts.map +1 -1
  5. package/lib/ir/connection.d.ts +3 -4
  6. package/lib/ir/connection.d.ts.map +1 -1
  7. package/lib/ir/connection.js.map +1 -1
  8. package/lib/ir/fields.d.ts +6 -2
  9. package/lib/ir/fields.d.ts.map +1 -1
  10. package/lib/ir/fields.js +15 -0
  11. package/lib/ir/fields.js.map +1 -1
  12. package/lib/limit.size.d.ts +7 -2
  13. package/lib/limit.size.d.ts.map +1 -1
  14. package/lib/limit.size.js +106 -12
  15. package/lib/limit.size.js.map +1 -1
  16. package/lib/main.js +6 -9
  17. package/lib/main.js.map +1 -1
  18. package/lib/model.d.ts +3 -1
  19. package/lib/model.d.ts.map +1 -1
  20. package/lib/model.schema.d.ts +2 -2
  21. package/lib/model.schema.d.ts.map +1 -1
  22. package/lib/model.schema.js +29 -7
  23. package/lib/model.schema.js.map +1 -1
  24. package/lib/model.tools.d.ts +6 -1
  25. package/lib/model.tools.d.ts.map +1 -1
  26. package/lib/model.tools.js +111 -8
  27. package/lib/model.tools.js.map +1 -1
  28. package/lib/opencrud/orderBy.d.ts +2 -2
  29. package/lib/opencrud/orderBy.d.ts.map +1 -1
  30. package/lib/opencrud/orderBy.js +13 -17
  31. package/lib/opencrud/orderBy.js.map +1 -1
  32. package/lib/opencrud/schema.d.ts +4 -4
  33. package/lib/opencrud/schema.d.ts.map +1 -1
  34. package/lib/opencrud/schema.js +60 -64
  35. package/lib/opencrud/schema.js.map +1 -1
  36. package/lib/opencrud/tree.d.ts +9 -7
  37. package/lib/opencrud/tree.d.ts.map +1 -1
  38. package/lib/opencrud/tree.js +32 -14
  39. package/lib/opencrud/tree.js.map +1 -1
  40. package/lib/server.d.ts +16 -12
  41. package/lib/server.d.ts.map +1 -1
  42. package/lib/server.js +29 -4
  43. package/lib/server.js.map +1 -1
  44. package/lib/sql/cursor.js +2 -2
  45. package/lib/sql/cursor.js.map +1 -1
  46. package/lib/sql/mapping.d.ts +3 -1
  47. package/lib/sql/mapping.d.ts.map +1 -1
  48. package/lib/sql/mapping.js +16 -1
  49. package/lib/sql/mapping.js.map +1 -1
  50. package/lib/sql/printer.d.ts +29 -11
  51. package/lib/sql/printer.d.ts.map +1 -1
  52. package/lib/sql/printer.js +106 -10
  53. package/lib/sql/printer.js.map +1 -1
  54. package/lib/sql/query.d.ts +11 -11
  55. package/lib/sql/query.d.ts.map +1 -1
  56. package/lib/sql/query.js +41 -19
  57. package/lib/sql/query.js.map +1 -1
  58. package/lib/test/limits.test.d.ts +2 -0
  59. package/lib/test/limits.test.d.ts.map +1 -0
  60. package/lib/test/limits.test.js +159 -0
  61. package/lib/test/limits.test.js.map +1 -0
  62. package/lib/test/queryable.test.d.ts +2 -0
  63. package/lib/test/queryable.test.d.ts.map +1 -0
  64. package/lib/test/queryable.test.js +255 -0
  65. package/lib/test/queryable.test.js.map +1 -0
  66. package/lib/test/setup.d.ts +2 -1
  67. package/lib/test/setup.d.ts.map +1 -1
  68. package/lib/test/setup.js +5 -2
  69. package/lib/test/setup.js.map +1 -1
  70. package/lib/util/execute.d.ts +5 -0
  71. package/lib/util/execute.d.ts.map +1 -0
  72. package/lib/util/execute.js +28 -0
  73. package/lib/util/execute.js.map +1 -0
  74. package/lib/util/limit.d.ts +11 -0
  75. package/lib/util/limit.d.ts.map +1 -0
  76. package/lib/util/limit.js +39 -0
  77. package/lib/util/limit.js.map +1 -0
  78. package/package.json +3 -3
  79. package/src/context.ts +5 -2
  80. package/src/ir/args.ts +1 -1
  81. package/src/ir/connection.ts +3 -4
  82. package/src/ir/fields.ts +22 -2
  83. package/src/limit.size.ts +122 -13
  84. package/src/main.ts +18 -20
  85. package/src/model.schema.ts +40 -13
  86. package/src/model.tools.ts +121 -8
  87. package/src/model.ts +3 -1
  88. package/src/opencrud/orderBy.ts +13 -17
  89. package/src/opencrud/schema.ts +86 -85
  90. package/src/opencrud/tree.ts +55 -26
  91. package/src/server.ts +66 -26
  92. package/src/sql/cursor.ts +2 -2
  93. package/src/sql/mapping.ts +18 -1
  94. package/src/sql/printer.ts +137 -21
  95. package/src/sql/query.ts +50 -30
  96. package/src/test/limits.test.ts +163 -0
  97. package/src/test/queryable.test.ts +258 -0
  98. package/src/test/setup.ts +6 -3
  99. package/src/util/execute.ts +53 -0
  100. package/src/util/limit.ts +34 -0
package/lib/context.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { Dialect } from "./dialect";
2
- import { Query } from "./sql/query";
1
+ import { Dialect } from './dialect';
2
+ import { Query } from './sql/query';
3
+ import { Limit } from './util/limit';
3
4
  export interface Context {
4
5
  openreader: OpenreaderContext;
5
6
  }
@@ -7,5 +8,7 @@ export interface OpenreaderContext {
7
8
  dialect: Dialect;
8
9
  executeQuery<T>(query: Query<T>): Promise<T>;
9
10
  subscription<T>(query: Query<T>): AsyncIterable<T>;
11
+ responseSizeLimit?: Limit;
12
+ subscriptionResponseSizeLimit?: Limit;
10
13
  }
11
14
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAGjC,MAAM,WAAW,OAAO;IACpB,UAAU,EAAE,iBAAiB,CAAA;CAChC;AAGD,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5C,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;CACrD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAA;AAGlC,MAAM,WAAW,OAAO;IACpB,UAAU,EAAE,iBAAiB,CAAA;CAChC;AAGD,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5C,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,KAAK,CAAA;IACzB,6BAA6B,CAAC,EAAE,KAAK,CAAA;CACxC"}
package/lib/ir/args.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export interface EntityListArguments {
1
+ export interface SqlArguments {
2
2
  offset?: number;
3
3
  limit?: number;
4
4
  orderBy?: OrderBy;
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/ir/args.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAGD,oBAAY,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,CAAA;AAG7H,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,KAAK,CAAA;IACT,IAAI,EAAE,KAAK,EAAE,CAAA;CAChB;AAGD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,IAAI,CAAA;IACR,IAAI,EAAE,KAAK,EAAE,CAAA;CAChB;AAGD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAGD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACf;AAGD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,EAAE,CAAA;CACpB;AAGD,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,QAAQ,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACjB;AAGD,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,OAAO,CAAA;CACf;AAGD,oBAAY,QAAQ,GAChB,IAAI,GACJ,QAAQ,GACR,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,UAAU,GAAG,cAAc,GAC3B,qBAAqB,GAAG,yBAAyB,GACjD,YAAY,GAAG,gBAAgB,GAC/B,UAAU,GAAG,cAAc,GAC3B,aAAa,GACb,aAAa,GACb,cAAc,GACd,cAAc,GACd,YAAY,CAAA;AAGhB,oBAAY,OAAO,GAAG,QAAQ,CAAA;AAG9B,MAAM,WAAW,OAAO;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;CACvC;AAGD,oBAAY,SAAS,GAAG,KAAK,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/ir/args.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAGD,oBAAY,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,CAAA;AAG7H,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,KAAK,CAAA;IACT,IAAI,EAAE,KAAK,EAAE,CAAA;CAChB;AAGD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,IAAI,CAAA;IACR,IAAI,EAAE,KAAK,EAAE,CAAA;CAChB;AAGD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAGD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACf;AAGD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,EAAE,CAAA;CACpB;AAGD,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,QAAQ,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACjB;AAGD,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,OAAO,CAAA;CACf;AAGD,oBAAY,QAAQ,GAChB,IAAI,GACJ,QAAQ,GACR,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,UAAU,GAAG,cAAc,GAC3B,qBAAqB,GAAG,yBAAyB,GACjD,YAAY,GAAG,gBAAgB,GAC/B,UAAU,GAAG,cAAc,GAC3B,aAAa,GACb,aAAa,GACb,cAAc,GACd,cAAc,GACd,YAAY,CAAA;AAGhB,oBAAY,OAAO,GAAG,QAAQ,CAAA;AAG9B,MAAM,WAAW,OAAO;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;CACvC;AAGD,oBAAY,SAAS,GAAG,KAAK,GAAG,MAAM,CAAA"}
@@ -1,11 +1,10 @@
1
- import { OrderBy, Where } from "./args";
2
- import { FieldRequest } from "./fields";
3
- export interface RelayConnectionRequest {
1
+ import { OrderBy, Where } from './args';
2
+ export interface RelayConnectionRequest<R> {
4
3
  orderBy: OrderBy;
5
4
  where?: Where;
6
5
  first?: number;
7
6
  after?: string;
8
- edgeNode?: FieldRequest[];
7
+ edgeNode?: R;
9
8
  edgeCursor?: boolean;
10
9
  pageInfo?: boolean;
11
10
  totalCount?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/ir/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAA;AAGrC,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB;AAGD,MAAM,WAAW,uBAAuB;IACpC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAGD,MAAM,WAAW,mBAAmB;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAGD,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CACpB;AAGD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK9E;AAGD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/D"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/ir/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAA;AAGrC,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,CAAC,CAAA;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB;AAGD,MAAM,WAAW,uBAAuB;IACpC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAGD,MAAM,WAAW,mBAAmB;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAGD,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CACpB;AAGD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK9E;AAGD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/ir/connection.ts"],"names":[],"mappings":";;;AAqCA,SAAgB,2BAA2B,CAAC,MAAc;IACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3C,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9B,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IACpD,OAAO,SAAS,CAAA;AACpB,CAAC;AALD,kEAKC;AAGD,SAAgB,2BAA2B,CAAC,GAAW;IACnD,OAAO,EAAE,GAAG,GAAG,CAAA;AACnB,CAAC;AAFD,kEAEC"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/ir/connection.ts"],"names":[],"mappings":";;;AAoCA,SAAgB,2BAA2B,CAAC,MAAc;IACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3C,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9B,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IACpD,OAAO,SAAS,CAAA;AACpB,CAAC;AALD,kEAKC;AAGD,SAAgB,2BAA2B,CAAC,GAAW;IACnD,OAAO,EAAE,GAAG,GAAG,CAAA;AACnB,CAAC;AAFD,kEAEC"}
@@ -1,5 +1,5 @@
1
1
  import { EnumPropType, FkPropType, ListLookupPropType, ListPropType, LookupPropType, ObjectPropType, Prop, PropType, ScalarPropType, UnionPropType } from "../model";
2
- import { EntityListArguments } from "./args";
2
+ import { SqlArguments } from "./args";
3
3
  export declare type FieldRequest = EntityListRequest | ObjectRequest | OpaqueRequest;
4
4
  declare type Base<T> = T extends PropType ? {
5
5
  field: string;
@@ -12,11 +12,15 @@ declare type Base<T> = T extends PropType ? {
12
12
  } : never;
13
13
  export declare type EntityListRequest = Base<ListLookupPropType> & {
14
14
  children: FieldRequest[];
15
- args?: EntityListArguments;
15
+ args?: SqlArguments;
16
16
  };
17
17
  export declare type ObjectRequest = Base<FkPropType | LookupPropType | ObjectPropType | UnionPropType> & {
18
18
  children: FieldRequest[];
19
19
  };
20
20
  export declare type OpaqueRequest = Base<ScalarPropType | EnumPropType | ListPropType>;
21
+ export declare type FieldsByEntity = Record<string, FieldRequest[]>;
22
+ export declare type AnyFields = FieldRequest[] | FieldsByEntity;
23
+ export declare function asEntityFields(fields: AnyFields): FieldRequest[];
24
+ export declare function asQueryableFields(fields: AnyFields): FieldsByEntity;
21
25
  export {};
22
26
  //# sourceMappingURL=fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/ir/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,cAAc,EAAE,IAAI,EACpB,QAAQ,EACR,cAAc,EACd,aAAa,EAChB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAC,mBAAmB,EAAC,MAAM,QAAQ,CAAA;AAG1C,oBAAY,YAAY,GAAG,iBAAiB,GAAG,aAAa,GAAG,aAAa,CAAA;AAG5E,aAAK,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,GAAG;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACf,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CAChB,GAAG,KAAK,CAAA;AAGT,oBAAY,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG;IACvD,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAC7B,CAAA;AAGD,oBAAY,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC,GAAG;IAC7F,QAAQ,EAAE,YAAY,EAAE,CAAA;CAC3B,CAAA;AAGD,oBAAY,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC,CAAA"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/ir/fields.ts"],"names":[],"mappings":"AACA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,cAAc,EAAE,IAAI,EACpB,QAAQ,EACR,cAAc,EACd,aAAa,EAChB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AAGnC,oBAAY,YAAY,GAAG,iBAAiB,GAAG,aAAa,GAAG,aAAa,CAAA;AAG5E,aAAK,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,GAAG;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACf,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CAChB,GAAG,KAAK,CAAA;AAGT,oBAAY,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG;IACvD,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,YAAY,CAAA;CACtB,CAAA;AAGD,oBAAY,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC,GAAG;IAC7F,QAAQ,EAAE,YAAY,EAAE,CAAA;CAC3B,CAAA;AAGD,oBAAY,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC,CAAA;AAI9E,oBAAY,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;AAG3D,oBAAY,SAAS,GAAG,YAAY,EAAE,GAAG,cAAc,CAAA;AAGvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,EAAE,CAGhE;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,cAAc,CAGnE"}
package/lib/ir/fields.js CHANGED
@@ -1,3 +1,18 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.asQueryableFields = exports.asEntityFields = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ function asEntityFields(fields) {
9
+ (0, assert_1.default)(Array.isArray(fields));
10
+ return fields;
11
+ }
12
+ exports.asEntityFields = asEntityFields;
13
+ function asQueryableFields(fields) {
14
+ (0, assert_1.default)(!Array.isArray(fields));
15
+ return fields;
16
+ }
17
+ exports.asQueryableFields = asQueryableFields;
3
18
  //# sourceMappingURL=fields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/ir/fields.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/ir/fields.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAkD3B,SAAgB,cAAc,CAAC,MAAiB;IAC5C,IAAA,gBAAM,EAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7B,OAAO,MAAM,CAAA;AACjB,CAAC;AAHD,wCAGC;AAGD,SAAgB,iBAAiB,CAAC,MAAiB;IAC/C,IAAA,gBAAM,EAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9B,OAAO,MAAM,CAAA;AACjB,CAAC;AAHD,8CAGC"}
@@ -1,3 +1,8 @@
1
- import { FieldRequest } from "./ir/fields";
2
- export declare function getSize(fields: FieldRequest[]): number;
1
+ import { Where } from './ir/args';
2
+ import { RelayConnectionRequest } from './ir/connection';
3
+ import { AnyFields, FieldRequest } from './ir/fields';
4
+ import { Model } from './model';
5
+ export declare function getObjectSize(model: Model, fields: FieldRequest[]): number;
6
+ export declare function getListSize(model: Model, typeName: string, fields: AnyFields, limit?: number, where?: Where): number;
7
+ export declare function getConnectionSize(model: Model, typeName: string, req: RelayConnectionRequest<AnyFields>): number;
3
8
  //# sourceMappingURL=limit.size.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"limit.size.d.ts","sourceRoot":"","sources":["../src/limit.size.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AAGxC,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAWtD"}
1
+ {"version":3,"file":"limit.size.d.ts","sourceRoot":"","sources":["../src/limit.size.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,KAAK,EAAC,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAC,SAAS,EAAE,YAAY,EAAC,MAAM,aAAa,CAAA;AACnD,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAI7B,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAW1E;AA6BD,wBAAgB,WAAW,CACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,KAAK,GACd,MAAM,CAoBR;AA+DD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,CAAC,SAAS,CAAC,GAAG,MAAM,CAgBhH"}
package/lib/limit.size.js CHANGED
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSize = void 0;
6
+ exports.getConnectionSize = exports.getListSize = exports.getObjectSize = void 0;
4
7
  const util_internal_1 = require("@subsquid/util-internal");
5
- function getSize(fields) {
8
+ const assert_1 = __importDefault(require("assert"));
9
+ const model_tools_1 = require("./model.tools");
10
+ function getObjectSize(model, fields) {
6
11
  let total = 0;
7
12
  for (let req of fields) {
8
- let size = getFieldSize(req);
13
+ let size = getFieldSize(model, req);
9
14
  if (Number.isFinite(size)) {
10
15
  total += size * req.aliases.length;
11
16
  }
@@ -15,8 +20,8 @@ function getSize(fields) {
15
20
  }
16
21
  return total;
17
22
  }
18
- exports.getSize = getSize;
19
- function getFieldSize(req) {
23
+ exports.getObjectSize = getObjectSize;
24
+ function getFieldSize(model, req) {
20
25
  switch (req.kind) {
21
26
  case "scalar":
22
27
  case "list":
@@ -27,18 +32,107 @@ function getFieldSize(req) {
27
32
  case "fk":
28
33
  case "lookup":
29
34
  case "union":
30
- return getSize(req.children) + 1;
31
- case "list-lookup": {
32
- let limit = Math.min(req.args?.limit ?? Infinity, req.prop.cardinality ?? Infinity);
33
- if (Number.isFinite(limit)) {
34
- return limit * Math.max(getSize(req.children), 1);
35
+ return getObjectSize(model, req.children) + 1;
36
+ case "list-lookup":
37
+ return getListSize(model, req.type.entity, req.children, Math.min(req.args?.limit ?? Infinity, req.prop.cardinality ?? Infinity), req.args?.where) + 1;
38
+ default:
39
+ throw (0, util_internal_1.unexpectedCase)();
40
+ }
41
+ }
42
+ function getListSize(model, typeName, fields, limit, where) {
43
+ let cardinality = getCardinality(model, typeName, limit, where);
44
+ if (!Number.isFinite(cardinality))
45
+ return Infinity;
46
+ let type = model[typeName];
47
+ switch (type.kind) {
48
+ case 'entity': {
49
+ (0, assert_1.default)(Array.isArray(fields));
50
+ return cardinality * Math.max(getObjectSize(model, fields), 1);
51
+ }
52
+ case 'interface': {
53
+ (0, assert_1.default)(!Array.isArray(fields));
54
+ let weight = 1;
55
+ for (let entity of (0, model_tools_1.getQueryableEntities)(model, typeName)) {
56
+ weight = Math.max(weight, getObjectSize(model, fields[entity] || []));
35
57
  }
36
- else {
58
+ return cardinality * weight;
59
+ }
60
+ default:
61
+ throw (0, util_internal_1.unexpectedCase)(type.kind);
62
+ }
63
+ }
64
+ exports.getListSize = getListSize;
65
+ function getCardinality(model, typeName, limit, where) {
66
+ let type = model[typeName];
67
+ switch (type.kind) {
68
+ case 'entity':
69
+ return Math.min(type.cardinality ?? Infinity, limit ?? Infinity, getWhereCardinality(where));
70
+ case 'interface': {
71
+ let whereCardinality = getWhereCardinality(where);
72
+ let cardinality = 0;
73
+ for (let entity of (0, model_tools_1.getQueryableEntities)(model, typeName)) {
74
+ cardinality += Math.min((0, model_tools_1.getEntity)(model, entity).cardinality ?? Infinity, whereCardinality);
75
+ }
76
+ return Math.min(cardinality, limit ?? Infinity);
77
+ }
78
+ default:
79
+ throw (0, util_internal_1.unexpectedCase)(type.kind);
80
+ }
81
+ }
82
+ function getWhereCardinality(where) {
83
+ if (where == null)
84
+ return Infinity;
85
+ switch (where.op) {
86
+ case 'AND': {
87
+ let min = Infinity;
88
+ for (let co of where.args) {
89
+ min = Math.min(min, getWhereCardinality(co));
90
+ }
91
+ return min;
92
+ }
93
+ case 'OR': {
94
+ if (where.args.length == 0)
37
95
  return Infinity;
96
+ let max = 0;
97
+ for (let co of where.args) {
98
+ max = Math.max(max, getWhereCardinality(co));
38
99
  }
100
+ return max;
39
101
  }
102
+ case 'eq':
103
+ if (where.field == 'id') {
104
+ return 1;
105
+ }
106
+ else {
107
+ return Infinity;
108
+ }
109
+ case 'in':
110
+ if (where.field == 'id') {
111
+ return where.values.length;
112
+ }
113
+ else {
114
+ return Infinity;
115
+ }
40
116
  default:
41
- throw (0, util_internal_1.unexpectedCase)();
117
+ return Infinity;
118
+ }
119
+ }
120
+ function getConnectionSize(model, typeName, req) {
121
+ let first = req.first ?? 100;
122
+ let total = 0;
123
+ if (req.edgeNode) {
124
+ total += getListSize(model, typeName, req.edgeNode, first, req.where);
42
125
  }
126
+ if (req.edgeCursor) {
127
+ total += getCardinality(model, typeName, first, req.where);
128
+ }
129
+ if (req.pageInfo) {
130
+ total += 4;
131
+ }
132
+ if (req.totalCount) {
133
+ total += 1;
134
+ }
135
+ return total;
43
136
  }
137
+ exports.getConnectionSize = getConnectionSize;
44
138
  //# sourceMappingURL=limit.size.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"limit.size.js","sourceRoot":"","sources":["../src/limit.size.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AAItD,SAAgB,OAAO,CAAC,MAAsB;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;QACpB,IAAI,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACvB,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;SACrC;aAAM;YACH,OAAO,QAAQ,CAAA;SAClB;KACJ;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAXD,0BAWC;AAGD,SAAS,YAAY,CAAC,GAAiB;IACnC,QAAO,GAAG,CAAC,IAAI,EAAE;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACP,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;QACnC,KAAK,MAAM;YACP,OAAO,CAAC,CAAA;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC;QACV,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACR,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACpC,KAAK,aAAa,CAAC,CAAC;YAChB,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAA;YACnF,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACxB,OAAO,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;aACpD;iBAAM;gBACH,OAAO,QAAQ,CAAA;aAClB;SACJ;QACD;YACI,MAAM,IAAA,8BAAc,GAAE,CAAA;KAC7B;AACL,CAAC"}
1
+ {"version":3,"file":"limit.size.js","sourceRoot":"","sources":["../src/limit.size.ts"],"names":[],"mappings":"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"}
package/lib/main.js CHANGED
@@ -19,23 +19,18 @@ GraphQL server for postgres-compatible databases
19
19
  program.addOption(new commander_1.Option('-t, --db-type <type>', 'database type').choices(['postgres', 'cockroach']).default('postgres'));
20
20
  program.option('-p, --port <number>', 'port to listen on', util_internal_commander_1.nat, 3000);
21
21
  program.option('--max-request-size <kb>', 'max request size in kilobytes', util_internal_commander_1.nat, 256);
22
+ program.option('--max-root-fields <count>', 'max number of root fields in a query', util_internal_commander_1.nat);
23
+ program.option('--max-response-size <nodes>', 'max response size measured in nodes', util_internal_commander_1.nat);
22
24
  program.option('--sql-statement-timeout <ms>', 'sql statement timeout in ms', util_internal_commander_1.nat);
23
25
  program.option('--subscriptions', 'enable gql subscriptions');
24
26
  program.option('--subscription-poll-interval <ms>', 'subscription poll interval in ms', util_internal_commander_1.nat, 1000);
25
- program.option('--subscription-sql-statement-timeout <ms>', 'sql statement timeout for polling queries', util_internal_commander_1.nat);
27
+ program.option('--subscription-max-response-size <nodes>', 'max response size measured in nodes', util_internal_commander_1.nat);
26
28
  let opts = program.parse().opts();
27
29
  let model = (0, tools_1.loadModel)(opts.schema);
28
30
  let connection = new pg_1.Pool({
29
31
  connectionString: opts.dbUrl,
30
32
  statement_timeout: opts.sqlStatementTimeout || undefined
31
33
  });
32
- let subscriptionConnection;
33
- if (opts.subscriptions) {
34
- subscriptionConnection = new pg_1.Pool({
35
- connectionString: opts.dbUrl,
36
- statement_timeout: opts.subscriptionSqlStatementTimeout || opts.sqlStatementTimeout || undefined
37
- });
38
- }
39
34
  let server = await (0, server_1.serve)({
40
35
  model,
41
36
  dialect: opts.dbType,
@@ -43,9 +38,11 @@ GraphQL server for postgres-compatible databases
43
38
  port: opts.port,
44
39
  log: LOG,
45
40
  maxRequestSizeBytes: opts.maxRequestSize * 1024,
41
+ maxRootFields: opts.maxRootFields,
42
+ maxResponseNodes: opts.maxResponseSize,
46
43
  subscriptions: opts.subscriptions,
47
44
  subscriptionPollInterval: opts.subscriptionPollInterval,
48
- subscriptionConnection
45
+ subscriptionMaxResponseNodes: opts.subscriptionMaxResponseSize
49
46
  });
50
47
  LOG.info(`listening on port ${server.port}`);
51
48
  return (0, util_internal_http_server_1.waitForInterruption)(server);
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,6CAA6C;AAC7C,2DAAkD;AAClD,+EAA0D;AAC1D,mFAAuE;AACvE,yCAAyC;AACzC,2BAAuB;AAEvB,qCAA8B;AAC9B,mCAAiC;AAGjC,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,gBAAgB,CAAC,CAAA;AAG1C,IAAA,0BAAU,EAAC,KAAK,IAAI,EAAE;IAClB,IAAI,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;IAE3B,OAAO,CAAC,WAAW,CAAC;;KAEnB,CAAC,IAAI,EAAE,CAAC,CAAA;IAET,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,sDAAsD,CAAC,CAAA;IACrG,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,IAAA,6BAAG,EAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAC9F,OAAO,CAAC,SAAS,CACb,IAAI,kBAAM,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAC7G,CAAA;IACD,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,6BAAG,EAAE,IAAI,CAAC,CAAA;IACrE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,+BAA+B,EAAE,6BAAG,EAAE,GAAG,CAAC,CAAA;IACpF,OAAO,CAAC,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,EAAE,6BAAG,CAAC,CAAA;IAClF,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAA;IAC7D,OAAO,CAAC,MAAM,CAAC,mCAAmC,EAAE,kCAAkC,EAAE,6BAAG,EAAE,IAAI,CAAC,CAAA;IAClG,OAAO,CAAC,MAAM,CAAC,2CAA2C,EAAE,2CAA2C,EAAE,6BAAG,CAAC,CAAA;IAE7G,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAU9B,CAAA;IAED,IAAI,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAElC,IAAI,UAAU,GAAG,IAAI,SAAI,CAAC;QACtB,gBAAgB,EAAE,IAAI,CAAC,KAAK;QAC5B,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,IAAI,SAAS;KAC3D,CAAC,CAAA;IAEF,IAAI,sBAAwC,CAAA;IAC5C,IAAI,IAAI,CAAC,aAAa,EAAE;QACpB,sBAAsB,GAAG,IAAI,SAAI,CAAC;YAC9B,gBAAgB,EAAE,IAAI,CAAC,KAAK;YAC5B,iBAAiB,EAAE,IAAI,CAAC,+BAA+B,IAAI,IAAI,CAAC,mBAAmB,IAAI,SAAS;SACnG,CAAC,CAAA;KACL;IAED,IAAI,MAAM,GAAG,MAAM,IAAA,cAAK,EAAC;QACrB,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,MAAM;QACpB,UAAU;QACV,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,GAAG;QACR,mBAAmB,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI;QAC/C,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;QACvD,sBAAsB;KACzB,CAAC,CAAA;IAEF,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IAE5C,OAAO,IAAA,+CAAmB,EAAC,MAAM,CAAC,CAAA;AACtC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,6CAA6C;AAC7C,2DAAkD;AAClD,+EAA0D;AAC1D,mFAAuE;AACvE,yCAAyC;AACzC,2BAAuB;AAEvB,qCAA8B;AAC9B,mCAAiC;AAGjC,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,gBAAgB,CAAC,CAAA;AAG1C,IAAA,0BAAU,EAAC,KAAK,IAAI,EAAE;IAClB,IAAI,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;IAE3B,OAAO,CAAC,WAAW,CAAC;;KAEnB,CAAC,IAAI,EAAE,CAAC,CAAA;IAET,OAAO,CAAC,cAAc,CAAC,qBAAqB,EAAE,sDAAsD,CAAC,CAAA;IACrG,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,IAAA,6BAAG,EAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAC9F,OAAO,CAAC,SAAS,CACb,IAAI,kBAAM,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAC7G,CAAA;IACD,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,6BAAG,EAAE,IAAI,CAAC,CAAA;IACrE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,+BAA+B,EAAE,6BAAG,EAAE,GAAG,CAAC,CAAA;IACpF,OAAO,CAAC,MAAM,CAAC,2BAA2B,EAAE,sCAAsC,EAAE,6BAAG,CAAC,CAAA;IACxF,OAAO,CAAC,MAAM,CAAC,6BAA6B,EAAE,qCAAqC,EAAE,6BAAG,CAAC,CAAA;IACzF,OAAO,CAAC,MAAM,CAAC,8BAA8B,EAAE,6BAA6B,EAAE,6BAAG,CAAC,CAAA;IAClF,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAA;IAC7D,OAAO,CAAC,MAAM,CAAC,mCAAmC,EAAE,kCAAkC,EAAE,6BAAG,EAAE,IAAI,CAAC,CAAA;IAClG,OAAO,CAAC,MAAM,CAAC,0CAA0C,EAAE,qCAAqC,EAAE,6BAAG,CAAC,CAAA;IAEtG,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,EAY9B,CAAA;IAED,IAAI,KAAK,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAElC,IAAI,UAAU,GAAG,IAAI,SAAI,CAAC;QACtB,gBAAgB,EAAE,IAAI,CAAC,KAAK;QAC5B,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,IAAI,SAAS;KAC3D,CAAC,CAAA;IAEF,IAAI,MAAM,GAAG,MAAM,IAAA,cAAK,EAAC;QACrB,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,MAAM;QACpB,UAAU;QACV,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,GAAG;QACR,mBAAmB,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI;QAC/C,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,gBAAgB,EAAE,IAAI,CAAC,eAAe;QACtC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;QACvD,4BAA4B,EAAE,IAAI,CAAC,2BAA2B;KACjE,CAAC,CAAA;IAEF,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IAE5C,OAAO,IAAA,+CAAmB,EAAC,MAAM,CAAC,CAAA;AACtC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA"}
package/lib/model.d.ts CHANGED
@@ -5,6 +5,7 @@ export interface Entity extends TypeMeta {
5
5
  properties: Record<Name, Prop>;
6
6
  interfaces?: Name[];
7
7
  indexes?: Index[];
8
+ cardinality?: number;
8
9
  }
9
10
  export interface JsonObject extends TypeMeta {
10
11
  kind: 'object';
@@ -14,6 +15,7 @@ export interface JsonObject extends TypeMeta {
14
15
  export interface Interface extends TypeMeta {
15
16
  kind: 'interface';
16
17
  properties: Record<Name, Prop>;
18
+ queryable?: boolean;
17
19
  }
18
20
  export interface Union extends TypeMeta {
19
21
  kind: 'union';
@@ -67,7 +69,7 @@ export interface ListPropType {
67
69
  }
68
70
  export interface FkPropType {
69
71
  kind: 'fk';
70
- foreignEntity: Name;
72
+ entity: Name;
71
73
  }
72
74
  export interface LookupPropType {
73
75
  kind: 'lookup';
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { DocumentNode, GraphQLSchema } from "graphql";
2
- import { Model } from "./model";
1
+ import { DocumentNode, GraphQLSchema } from 'graphql';
2
+ import { Model } from './model';
3
3
  export declare function buildSchema(doc: DocumentNode): GraphQLSchema;
4
4
  export declare function buildModel(schema: GraphQLSchema): Model;
5
5
  export declare class SchemaError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"model.schema.d.ts","sourceRoot":"","sources":["../src/model.schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,YAAY,EAWZ,aAAa,EAIhB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAQ,KAAK,EAAyB,MAAM,SAAS,CAAA;AAoB5D,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,aAAa,CAO5D;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,CAWvD;AA6bD,qBAAa,WAAY,SAAQ,KAAK;CAAG"}
1
+ {"version":3,"file":"model.schema.d.ts","sourceRoot":"","sources":["../src/model.schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,YAAY,EAWZ,aAAa,EAIhB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAQ,KAAK,EAAyB,MAAM,SAAS,CAAA;AAqB5D,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,aAAa,CAO5D;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,CAWvD;AAudD,qBAAa,WAAY,SAAQ,KAAK;CAAG"}
@@ -11,11 +11,12 @@ const model_tools_1 = require("./model.tools");
11
11
  const scalars_1 = require("./scalars");
12
12
  const baseSchema = (0, graphql_1.buildASTSchema)((0, graphql_1.parse)(`
13
13
  directive @entity on OBJECT
14
+ directive @query on INTERFACE
14
15
  directive @derivedFrom(field: String!) on FIELD_DEFINITION
15
16
  directive @unique on FIELD_DEFINITION
16
17
  directive @index(fields: [String!] unique: Boolean) on OBJECT | FIELD_DEFINITION
17
18
  directive @fulltext(query: String!) on FIELD_DEFINITION
18
- directive @cardinality(value: Int!) on FIELD_DEFINITION
19
+ directive @cardinality(value: Int!) on OBJECT | FIELD_DEFINITION
19
20
  directive @byteWeight(value: Float!) on FIELD_DEFINITION
20
21
  directive @variant on OBJECT # legacy
21
22
  directive @jsonField on OBJECT # legacy
@@ -56,16 +57,17 @@ function addEntityOrJsonObjectOrInterface(model, type) {
56
57
  let properties = {};
57
58
  let interfaces = [];
58
59
  let indexes = type instanceof graphql_1.GraphQLObjectType ? checkEntityIndexes(type) : [];
60
+ let cardinality = checkEntityCardinality(type);
59
61
  let description = type.description || undefined;
60
62
  switch (kind) {
61
63
  case 'entity':
62
- model[type.name] = { kind, properties, description, interfaces, indexes };
64
+ model[type.name] = { kind, properties, description, interfaces, indexes, ...cardinality };
63
65
  break;
64
66
  case 'object':
65
67
  model[type.name] = { kind, properties, description, interfaces };
66
68
  break;
67
69
  case 'interface':
68
- model[type.name] = { kind, properties, description };
70
+ model[type.name] = { kind, properties, description, queryable: isQueryableInterface(type) };
69
71
  break;
70
72
  default:
71
73
  throw (0, util_internal_1.unexpectedCase)(kind);
@@ -146,7 +148,7 @@ function addEntityOrJsonObjectOrInterface(model, type) {
146
148
  };
147
149
  }
148
150
  else if (fieldType instanceof graphql_1.GraphQLObjectType) {
149
- if (isEntityType(fieldType)) {
151
+ if (isEntityType(fieldType) && kind != 'interface') {
150
152
  switch (list.nulls.length) {
151
153
  case 0:
152
154
  if (derivedFrom) {
@@ -170,7 +172,7 @@ function addEntityOrJsonObjectOrInterface(model, type) {
170
172
  properties[key] = {
171
173
  type: {
172
174
  kind: 'fk',
173
- foreignEntity: fieldType.name
175
+ entity: fieldType.name
174
176
  },
175
177
  nullable,
176
178
  unique,
@@ -404,10 +406,26 @@ function checkDerivedFrom(type, f) {
404
406
  (0, assert_1.default)(fieldArg.value.kind == 'StringValue');
405
407
  return { field: fieldArg.value.value };
406
408
  }
409
+ function checkEntityCardinality(type) {
410
+ let directives = type.astNode?.directives?.filter(d => d.name.value == 'cardinality') || [];
411
+ if (directives.length > 0 && !isEntityType(type)) {
412
+ throw new SchemaError(`@cardinality directive can be only applied to entities, but were applied to ${type.name}`);
413
+ }
414
+ if (directives.length > 1)
415
+ throw new SchemaError(`Multiple @cardinality directives where applied to ${type.name}`);
416
+ if (directives.length == 0)
417
+ return {};
418
+ let arg = (0, util_internal_1.assertNotNull)(directives[0].arguments?.find(arg => arg.name.value == 'value'));
419
+ (0, assert_1.default)(arg.value.kind == 'IntValue');
420
+ let cardinality = parseInt(arg.value.value, 10);
421
+ if (cardinality < 0)
422
+ throw new SchemaError(`Incorrect @cardinality where applied to ${type.name}. Cardinality value must be positive.`);
423
+ return { cardinality };
424
+ }
407
425
  function checkCardinalityLimitDirective(type, f) {
408
426
  let directives = f.astNode?.directives?.filter(d => d.name.value == 'cardinality') || [];
409
427
  if (directives.length > 1)
410
- throw new SchemaError(`Multiple @cardinality where applied to ${type.name}.${f.name}`);
428
+ throw new SchemaError(`Multiple @cardinality directives where applied to ${type.name}.${f.name}`);
411
429
  if (directives.length == 0)
412
430
  return {};
413
431
  let arg = (0, util_internal_1.assertNotNull)(directives[0].arguments?.find(arg => arg.name.value == 'value'));
@@ -420,7 +438,7 @@ function checkCardinalityLimitDirective(type, f) {
420
438
  function checkByteWeightDirective(type, f) {
421
439
  let directives = f.astNode?.directives?.filter(d => d.name.value == 'byteWeight') || [];
422
440
  if (directives.length > 1)
423
- throw new SchemaError(`Multiple @byteWeight where applied to ${type.name}.${f.name}`);
441
+ throw new SchemaError(`Multiple @byteWeight directives where applied to ${type.name}.${f.name}`);
424
442
  if (directives.length == 0)
425
443
  return {};
426
444
  let arg = (0, util_internal_1.assertNotNull)(directives[0].arguments?.find(arg => arg.name.value == 'value'));
@@ -430,6 +448,10 @@ function checkByteWeightDirective(type, f) {
430
448
  throw new SchemaError(`Incorrect @byteWeight where applied to ${type.name}.${f.name}. Byte weight value must be positive.`);
431
449
  return { byteWeight };
432
450
  }
451
+ function isQueryableInterface(type) {
452
+ return type instanceof graphql_1.GraphQLInterfaceType
453
+ && !!type.astNode?.directives?.find(d => d.name.value == 'query');
454
+ }
433
455
  function unsupportedFieldTypeError(propName) {
434
456
  return new SchemaError(`Property ${propName} has unsupported type`);
435
457
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model.schema.js","sourceRoot":"","sources":["../src/model.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.schema.js","sourceRoot":"","sources":["../src/model.schema.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,18 @@
1
- import { Entity, FTS_Query, JsonObject, Model, PropType } from "./model";
1
+ import { Entity, FTS_Query, Interface, JsonObject, Model, Prop, PropType } from './model';
2
2
  export declare function getUnionProps(model: Model, unionName: string): JsonObject;
3
3
  export declare function buildUnionProps(model: Model, unionName: string): JsonObject;
4
+ export declare function getQueryableEntities(model: Model, queryableName: string): string[];
5
+ export declare function getQueryableProperties(model: Model, queryableName: string): Record<string, Prop>;
6
+ export declare function getUniversalProperties(model: Model, typeName: string): Record<string, Prop>;
4
7
  export declare function validateModel(model: Model): void;
5
8
  export declare function validateNames(model: Model): void;
6
9
  export declare function validateUnionTypes(model: Model): void;
7
10
  export declare function validateLookups(model: Model): void;
8
11
  export declare function validateIndexes(model: Model): void;
12
+ export declare function validateQueryableInterfaces(model: Model): void;
9
13
  export declare function propTypeEquals(a: PropType, b: PropType): boolean;
10
14
  export declare function getEntity(model: Model, name: string): Entity;
11
15
  export declare function getObject(model: Model, name: string): JsonObject;
16
+ export declare function getInterface(model: Model, name: string): Interface;
12
17
  export declare function getFtsQuery(model: Model, name: string): FTS_Query;
13
18
  //# sourceMappingURL=model.tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.tools.d.ts","sourceRoot":"","sources":["../src/model.tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAQ,QAAQ,EAAC,MAAM,SAAS,CAAA;AAM5E,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAQzE;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAe3E;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,QAMzC;AAOD,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,QAwBzC;AAGD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAoBrD;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAiClD;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAwBlD;AAQD,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAYhE;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5D;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAIhE;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAIjE"}
1
+ {"version":3,"file":"model.tools.d.ts","sourceRoot":"","sources":["../src/model.tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAA;AAMvF,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAQzE;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAc3E;AAMD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBlF;AAGD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAkBhG;AAoCD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAc3F;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,QAOzC;AAOD,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,QAwBzC;AAGD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAoBrD;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAiClD;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAwBlD;AAGD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAO9D;AAQD,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAchE;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI5D;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAIhE;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAIlE;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAIjE"}