@sentio/sdk 2.61.0-rc.12 → 2.61.0-rc.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"database-schema.d.ts","sourceRoot":"","sources":["../../src/core/database-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAI/C,KAAK,MAAM,GAAG;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;CAC3C,CAAA;AAED,qBAAa,mBAAoB,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IAC/D,MAAM,CAAC,QAAQ,sBAA4B;CAC5C;AAED,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAI9B,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;CAS/B;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAyB7C"}
1
+ {"version":3,"file":"database-schema.d.ts","sourceRoot":"","sources":["../../src/core/database-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAM/C,KAAK,MAAM,GAAG;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;CAC3C,CAAA;AAED,qBAAa,mBAAoB,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IAC/D,MAAM,CAAC,QAAQ,sBAA4B;CAC5C;AAED,qBAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAI9B,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM;CAS/B;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UA0B7C"}
@@ -1,6 +1,8 @@
1
1
  import { ListStateStorage } from '@sentio/runtime';
2
- import { isInterfaceType, isObjectType, isScalarType, parse, printType } from 'graphql/index.js';
2
+ import { isInterfaceType, isObjectType, isScalarType, parse } from 'graphql/index.js';
3
3
  import { buildSchema } from '../store/schema.js';
4
+ import { printSchemaWithDirectives } from '@graphql-tools/utils';
5
+ import { GraphQLSchema } from 'graphql';
4
6
  export class DatabaseSchemaState extends ListStateStorage {
5
7
  static INSTANCE = new DatabaseSchemaState();
6
8
  }
@@ -18,31 +20,32 @@ export class DatabaseSchema {
18
20
  }
19
21
  }
20
22
  export function mergeSchemas(schemas) {
21
- let ret = '';
22
- const types = {};
23
+ const allTypes = {};
24
+ let mergedSchema = new GraphQLSchema({});
23
25
  for (const schema of schemas) {
24
26
  const gqlSchema = buildSchema(parse(schema.source));
25
27
  for (const type of Object.values(gqlSchema.getTypeMap())) {
26
28
  if (isScalarType(type) || type.name.startsWith('__')) {
29
+ // types.push(type)
27
30
  continue;
28
31
  }
29
- if (types[type.name]) {
32
+ if (allTypes[type.name]) {
30
33
  console.warn(`Type ${type.name} is already registered, you have duplicate definitions in multiple schemas.`);
31
34
  }
32
35
  else if (isObjectType(type) || isInterfaceType(type)) {
33
- types[type.name] = type;
34
- type.description = null;
35
- for (const field of Object.values(type.getFields())) {
36
- field.description = null;
37
- }
38
- ret += printType(type) + '\n';
36
+ allTypes[type.name] = type;
39
37
  }
40
38
  else {
41
- types[type.name] = type;
42
- ret += printType(type) + '\n';
39
+ allTypes[type.name] = type;
43
40
  }
44
41
  }
42
+ mergedSchema = new GraphQLSchema({
43
+ types: [...Object.values(allTypes)]
44
+ });
45
45
  }
46
- return ret;
46
+ return printSchemaWithDirectives(mergedSchema, {
47
+ commentDescriptions: false,
48
+ assumeValid: true
49
+ });
47
50
  }
48
51
  //# sourceMappingURL=database-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"database-schema.js","sourceRoot":"","sources":["../../src/core/database-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAOhD,MAAM,OAAO,mBAAoB,SAAQ,gBAAwB;IAC/D,MAAM,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAA;;AAG7C,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,MAAc;QAC5B,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAY;QAC5B,KAAK,MAAM,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAC,OAAiB;IAC5C,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,MAAM,KAAK,GAAwB,EAAE,CAAA;IACrC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QACnD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;YACzD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,SAAQ;YACV,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,6EAA6E,CAAC,CAAA;YAC9G,CAAC;iBAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;gBACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;gBACvB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;oBACpD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;gBAC1B,CAAC;gBACD,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAC/B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;gBACvB,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"database-schema.js","sourceRoot":"","sources":["../../src/core/database-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAOvC,MAAM,OAAO,mBAAoB,SAAQ,gBAAwB;IAC/D,MAAM,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAA;;AAG7C,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,MAAc;QAC5B,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAY;QAC5B,KAAK,MAAM,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAC,OAAiB;IAC5C,MAAM,QAAQ,GAAwB,EAAE,CAAA;IACxC,IAAI,YAAY,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;IACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;QACnD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;YACzD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrD,mBAAmB;gBACnB,SAAQ;YACV,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,6EAA6E,CAAC,CAAA;YAC9G,CAAC;iBAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAC5B,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAC5B,CAAC;QACH,CAAC;QACD,YAAY,GAAG,IAAI,aAAa,CAAC;YAC/B,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACpC,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,yBAAyB,CAAC,YAAY,EAAE;QAC7C,mBAAmB,EAAE,KAAK;QAC1B,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"database-schema.test.js","sourceRoot":"","sources":["../../src/core/database-schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,+CAA+C;AAC/C,MAAM,QAAQ;IACZ,YAAY,IAAuB;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3B,CAAC;IACD,EAAE,CAAS;IACX,IAAI,CAAS;CACd;AAED,MAAM,WAAW;IACf,YAAY,IAA0B;QACpC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3B,CAAC;IACD,EAAE,CAAS;IACX,KAAK,CAAS;IACd,KAAK,CAAS;CACf;AAED,MAAM,SAAS;IACb,YAAY,IAAwB;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3B,CAAC;IACD,EAAE,CAAS;IACX,MAAM,CAAS;IACf,KAAK,CAAS;CACf;AAED,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,yCAAyC;YACjD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAiC;aACxC;SACF,CAAA;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QAErC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,kDAAkD,CAAC,CAAA;IAChF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,yCAAyC;YACjD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAiC;aACxC;SACF,CAAA;QAED,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,2DAA2D;YACnE,QAAQ,EAAE;gBACR,OAAO,EAAE,WAAuC;aACjD;SACF,CAAA;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAE/C,MAAM,QAAQ,GACZ,uHAAuH,CAAA;QACzH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,yCAAyC;YACjD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAiC;aACxC;SACF,CAAA;QAED,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,sFAAsF;YAC9F,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAiC,EAAE,gCAAgC;gBACzE,OAAO,EAAE,WAAuC;aACjD;SACF,CAAA;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAE/C,qEAAqE;QACrE,MAAM,QAAQ,GACZ,sGAAsG,CAAA;QACxG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"database-schema.test.js","sourceRoot":"","sources":["../../src/core/database-schema.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
- "version": "2.61.0-rc.12",
3
+ "version": "2.61.0-rc.14",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -60,6 +60,7 @@
60
60
  "@aptos-labs/ts-sdk": "~4.0.0",
61
61
  "@coral-xyz/anchor": "^0.30.1",
62
62
  "@coral-xyz/borsh": "^0.30.1",
63
+ "@graphql-tools/utils": "^10.9.1",
63
64
  "@iota/iota-sdk": "~1.5.0",
64
65
  "@mysten/sui": "~1.37.1",
65
66
  "@prettier/sync": "^0.5.2",
@@ -79,7 +80,7 @@
79
80
  "ethers": "npm:@sentio/ethers@6.13.1-patch.6",
80
81
  "fuels": "^0.101.3",
81
82
  "got": "^14.4.7",
82
- "graphql": "^16.9.0",
83
+ "graphql": "^16.11.0",
83
84
  "js-sha3": "^0.9.3",
84
85
  "lru-cache": "^11.0.0",
85
86
  "mkdirp": "^3.0.1",
@@ -97,8 +98,8 @@
97
98
  "typechain": "^8.3.2",
98
99
  "utility-types": "^3.11.0",
99
100
  "yaml": "^2.3.4",
100
- "@sentio/protos": "2.61.0-rc.12",
101
- "@sentio/runtime": "^2.61.0-rc.12"
101
+ "@sentio/protos": "2.61.0-rc.14",
102
+ "@sentio/runtime": "^2.61.0-rc.14"
102
103
  },
103
104
  "peerDependencies": {
104
105
  "@sentio/tsup": "^8.3.5-rc.1"
@@ -1,7 +1,9 @@
1
1
  import { ListStateStorage } from '@sentio/runtime'
2
2
  import { EntityClass } from '../store/index.js'
3
- import { isInterfaceType, isObjectType, isScalarType, parse, printType } from 'graphql/index.js'
3
+ import { isInterfaceType, isObjectType, isScalarType, parse } from 'graphql/index.js'
4
4
  import { buildSchema } from '../store/schema.js'
5
+ import { printSchemaWithDirectives } from '@graphql-tools/utils'
6
+ import { GraphQLSchema } from 'graphql'
5
7
 
6
8
  type Schema = {
7
9
  source: string
@@ -29,28 +31,29 @@ export class DatabaseSchema {
29
31
  }
30
32
 
31
33
  export function mergeSchemas(schemas: Schema[]) {
32
- let ret = ''
33
- const types: Record<string, any> = {}
34
+ const allTypes: Record<string, any> = {}
35
+ let mergedSchema = new GraphQLSchema({})
34
36
  for (const schema of schemas) {
35
37
  const gqlSchema = buildSchema(parse(schema.source))
36
38
  for (const type of Object.values(gqlSchema.getTypeMap())) {
37
39
  if (isScalarType(type) || type.name.startsWith('__')) {
40
+ // types.push(type)
38
41
  continue
39
42
  }
40
- if (types[type.name]) {
43
+ if (allTypes[type.name]) {
41
44
  console.warn(`Type ${type.name} is already registered, you have duplicate definitions in multiple schemas.`)
42
45
  } else if (isObjectType(type) || isInterfaceType(type)) {
43
- types[type.name] = type
44
- type.description = null
45
- for (const field of Object.values(type.getFields())) {
46
- field.description = null
47
- }
48
- ret += printType(type) + '\n'
46
+ allTypes[type.name] = type
49
47
  } else {
50
- types[type.name] = type
51
- ret += printType(type) + '\n'
48
+ allTypes[type.name] = type
52
49
  }
53
50
  }
51
+ mergedSchema = new GraphQLSchema({
52
+ types: [...Object.values(allTypes)]
53
+ })
54
54
  }
55
- return ret
55
+ return printSchemaWithDirectives(mergedSchema, {
56
+ commentDescriptions: false,
57
+ assumeValid: true
58
+ })
56
59
  }