@sentio/sdk 2.36.2-rc.1 → 2.37.0-rc.10

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 (70) hide show
  1. package/lib/core/base-context.d.ts +4 -0
  2. package/lib/core/base-context.d.ts.map +1 -1
  3. package/lib/core/base-context.js +20 -4
  4. package/lib/core/base-context.js.map +1 -1
  5. package/lib/core/core-plugin.d.ts.map +1 -1
  6. package/lib/core/core-plugin.js +8 -0
  7. package/lib/core/core-plugin.js.map +1 -1
  8. package/lib/core/database-schema.d.ts +15 -0
  9. package/lib/core/database-schema.d.ts.map +1 -0
  10. package/lib/core/database-schema.js +16 -0
  11. package/lib/core/database-schema.js.map +1 -0
  12. package/lib/core/index.d.ts +1 -0
  13. package/lib/core/index.d.ts.map +1 -1
  14. package/lib/core/index.js +1 -0
  15. package/lib/core/index.js.map +1 -1
  16. package/lib/store/codegen.d.ts +4 -0
  17. package/lib/store/codegen.d.ts.map +1 -0
  18. package/lib/store/codegen.js +221 -0
  19. package/lib/store/codegen.js.map +1 -0
  20. package/lib/store/context.d.ts +2 -0
  21. package/lib/store/context.d.ts.map +1 -0
  22. package/lib/store/context.js +2 -0
  23. package/lib/store/context.js.map +1 -0
  24. package/lib/store/decorators.d.ts +12 -0
  25. package/lib/store/decorators.d.ts.map +1 -0
  26. package/lib/store/decorators.js +25 -0
  27. package/lib/store/decorators.js.map +1 -0
  28. package/lib/store/entity.d.ts +17 -0
  29. package/lib/store/entity.d.ts.map +1 -0
  30. package/lib/store/entity.js +61 -0
  31. package/lib/store/entity.js.map +1 -0
  32. package/lib/store/index.d.ts +6 -0
  33. package/lib/store/index.d.ts.map +1 -0
  34. package/lib/store/index.js +6 -0
  35. package/lib/store/index.js.map +1 -0
  36. package/lib/store/run.d.ts +2 -0
  37. package/lib/store/run.d.ts.map +1 -0
  38. package/lib/store/run.js +11 -0
  39. package/lib/store/run.js.map +1 -0
  40. package/lib/store/schema.d.ts +7 -0
  41. package/lib/store/schema.d.ts.map +1 -0
  42. package/lib/store/schema.js +30 -0
  43. package/lib/store/schema.js.map +1 -0
  44. package/lib/store/store.d.ts +12 -0
  45. package/lib/store/store.d.ts.map +1 -0
  46. package/lib/store/store.js +74 -0
  47. package/lib/store/store.js.map +1 -0
  48. package/lib/store/types.d.ts +10 -0
  49. package/lib/store/types.d.ts.map +1 -0
  50. package/lib/store/types.js +2 -0
  51. package/lib/store/types.js.map +1 -0
  52. package/lib/testing/test-processor-server.d.ts +2 -5
  53. package/lib/testing/test-processor-server.d.ts.map +1 -1
  54. package/lib/testing/test-processor-server.js +2 -2
  55. package/lib/testing/test-processor-server.js.map +1 -1
  56. package/package.json +8 -5
  57. package/src/core/base-context.ts +22 -4
  58. package/src/core/core-plugin.ts +9 -0
  59. package/src/core/database-schema.ts +24 -0
  60. package/src/core/index.ts +1 -0
  61. package/src/store/codegen.ts +256 -0
  62. package/src/store/context.ts +1 -0
  63. package/src/store/decorators.ts +32 -0
  64. package/src/store/entity.ts +71 -0
  65. package/src/store/index.ts +5 -0
  66. package/src/store/run.ts +10 -0
  67. package/src/store/schema.ts +35 -0
  68. package/src/store/store.ts +80 -0
  69. package/src/store/types.ts +10 -0
  70. package/src/testing/test-processor-server.ts +13 -2
@@ -2,9 +2,11 @@ import { ProcessResult, RecordMetaData } from '@sentio/protos';
2
2
  import { EventLoggerBinding } from './event-logger.js';
3
3
  import { Meter, Labels } from './meter.js';
4
4
  import { ChainId } from '@sentio/chain';
5
+ import { Store } from '../store/store.js';
5
6
  export declare abstract class BaseContext {
6
7
  meter: Meter;
7
8
  eventLogger: EventLoggerBinding;
9
+ private _store;
8
10
  protected baseLabels: Labels;
9
11
  private active;
10
12
  private _res;
@@ -14,5 +16,7 @@ export declare abstract class BaseContext {
14
16
  getMetaData(name: string, labels: Labels): RecordMetaData;
15
17
  protected abstract getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
16
18
  abstract getChainId(): ChainId;
19
+ get store(): Store;
20
+ initStore(): void;
17
21
  }
18
22
  //# sourceMappingURL=base-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-context.d.ts","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAKvC,8BAAsB,WAAW;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,kBAAkB,CAAA;IAC/B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,IAAI,CAQX;IAEM,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC;IAQzC,SAAS,aAAa,UAAU,EAAE,MAAM,GAAG,SAAS;IAOpD,gBAAgB,IAAI,aAAa;IASjC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAOzD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAEpF,QAAQ,CAAC,UAAU,IAAI,OAAO;CAC/B"}
1
+ {"version":3,"file":"base-context.d.ts","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,8BAAsB,WAAW;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,kBAAkB,CAAA;IAC/B,OAAO,CAAC,MAAM,CAAO;IACrB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,IAAI,CAQX;IAEM,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC;IAQzC,SAAS,aAAa,UAAU,EAAE,MAAM,GAAG,SAAS;IAQpD,gBAAgB,IAAI,aAAa;IASjC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAOzD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAEpF,QAAQ,CAAC,UAAU,IAAI,OAAO;IAE9B,IAAI,KAAK,UAKR;IAGD,SAAS;CAMV"}
@@ -1,11 +1,13 @@
1
1
  import { ProcessResult } from '@sentio/protos';
2
2
  import { EventLoggerBinding } from './event-logger.js';
3
3
  import { Meter } from './meter.js';
4
- import { mergeProcessResults } from '@sentio/runtime';
4
+ import { mergeProcessResults, PluginManager } from '@sentio/runtime';
5
5
  import { ServerError, Status } from 'nice-grpc';
6
+ import { Store } from '../store/store.js';
6
7
  export class BaseContext {
7
8
  meter;
8
9
  eventLogger;
10
+ _store;
9
11
  baseLabels;
10
12
  active;
11
13
  _res = {
@@ -14,8 +16,8 @@ export class BaseContext {
14
16
  exports: [],
15
17
  gauges: [],
16
18
  states: {
17
- configUpdated: false,
18
- },
19
+ configUpdated: false
20
+ }
19
21
  };
20
22
  update(res) {
21
23
  if (this.active) {
@@ -30,6 +32,7 @@ export class BaseContext {
30
32
  this.eventLogger = new EventLoggerBinding(this);
31
33
  this.baseLabels = baseLabels || {};
32
34
  this.active = true;
35
+ this.initStore();
33
36
  }
34
37
  stopAndGetResult() {
35
38
  if (this.active) {
@@ -43,8 +46,21 @@ export class BaseContext {
43
46
  getMetaData(name, labels) {
44
47
  return {
45
48
  ...this.baseLabels,
46
- ...this.getMetaDataInternal(name, labels),
49
+ ...this.getMetaDataInternal(name, labels)
47
50
  };
48
51
  }
52
+ get store() {
53
+ if (this._store == null) {
54
+ console.warn('Store is not set, please initialize the processor with your database schema first.');
55
+ }
56
+ return this._store;
57
+ }
58
+ // this method must be called within the dbContextLocalStorage scope
59
+ initStore() {
60
+ const dbContext = PluginManager.INSTANCE.dbContextLocalStorage.getStore();
61
+ if (dbContext) {
62
+ this._store = new Store(dbContext);
63
+ }
64
+ }
49
65
  }
50
66
  //# sourceMappingURL=base-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-context.js","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAE/C,MAAM,OAAgB,WAAW;IAC/B,KAAK,CAAO;IACZ,WAAW,CAAoB;IACrB,UAAU,CAAQ;IACpB,MAAM,CAAS;IAEf,IAAI,GAAsC;QAChD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,MAAM,EAAE;YACN,aAAa,EAAE,KAAK;SACrB;KACF,CAAA;IAEM,MAAM,CAAC,GAA2B;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC9E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,kEAAkE,CAAC,CAAA;QAC5G,CAAC;IACH,CAAC;IAED,YAAsB,UAA8B;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACpB,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACnB,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,GAAG,IAAI,CAAC,UAAU;YAClB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC;SAC1C,CAAA;IACH,CAAC;CAKF"}
1
+ {"version":3,"file":"base-context.js","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,MAAM,OAAgB,WAAW;IAC/B,KAAK,CAAO;IACZ,WAAW,CAAoB;IACvB,MAAM,CAAO;IACX,UAAU,CAAQ;IACpB,MAAM,CAAS;IAEf,IAAI,GAAsC;QAChD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,MAAM,EAAE;YACN,aAAa,EAAE,KAAK;SACrB;KACF,CAAA;IAEM,MAAM,CAAC,GAA2B;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC9E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,kEAAkE,CAAC,CAAA;QAC5G,CAAC;IACH,CAAC;IAED,YAAsB,UAA8B;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACnB,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,GAAG,IAAI,CAAC,UAAU;YAClB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC;SAC1C,CAAA;IACH,CAAC;IAMD,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAA;QACpG,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,oEAAoE;IACpE,SAAS;QACP,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAA;QACzE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"core-plugin.d.ts","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAQtD,qBAAa,UAAW,SAAQ,MAAM;IACpC,IAAI,EAAE,MAAM,CAAe;IAErB,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAmC9D"}
1
+ {"version":3,"file":"core-plugin.d.ts","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAStD,qBAAa,UAAW,SAAQ,MAAM;IACpC,IAAI,EAAE,MAAM,CAAe;IAErB,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CA2C9D"}
@@ -4,6 +4,7 @@ import { ExporterState } from './exporter.js';
4
4
  import { EventTrackerState } from './event-tracker.js';
5
5
  import { TemplateInstanceState } from './template.js';
6
6
  import { EventLoggerState } from './event-logger.js';
7
+ import { DatabaseSchemaState } from './database-schema.js';
7
8
  export class CorePlugin extends Plugin {
8
9
  name = 'CorePlugin';
9
10
  async configure(config) {
@@ -36,6 +37,13 @@ export class CorePlugin extends Plugin {
36
37
  channel: exporter.channel
37
38
  });
38
39
  }
40
+ if (DatabaseSchemaState.INSTANCE.getValues().length > 0) {
41
+ config.dbSchema = {
42
+ gqlSchema: DatabaseSchemaState.INSTANCE.getValues()
43
+ .map((e) => e.source)
44
+ .join('\n\n')
45
+ };
46
+ }
39
47
  }
40
48
  }
41
49
  PluginManager.INSTANCE.register(new CorePlugin());
@@ -1 +1 @@
1
- {"version":3,"file":"core-plugin.js","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,MAAM,OAAO,UAAW,SAAQ,MAAM;IACpC,IAAI,GAAW,YAAY,CAAA;IAE3B,KAAK,CAAC,SAAS,CAAC,MAA6B;QAC3C,4DAA4D;QAC5D,MAAM,CAAC,iBAAiB,GAAG,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;QAE1E,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YACtD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,GAAG,MAAM,CAAC,MAAM;aACjB,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,GAAG,KAAK,CAAC,MAAM;aAChB,CAAC,CAAA;QACJ,CAAC;QAED,mDAAmD;QACnD,KAAK,MAAM,YAAY,IAAI,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAClE,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC/B,yBAAyB,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE;gBACpE,SAAS,EAAE,YAAY,CAAC,IAAI;gBAC5B,eAAe,EAAE,SAAS;gBAC1B,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK;gBACpD,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK;aAC7C,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF;AAED,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"core-plugin.js","sourceRoot":"","sources":["../../src/core/core-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,OAAO,UAAW,SAAQ,MAAM;IACpC,IAAI,GAAW,YAAY,CAAA;IAE3B,KAAK,CAAC,SAAS,CAAC,MAA6B;QAC3C,4DAA4D;QAC5D,MAAM,CAAC,iBAAiB,GAAG,CAAC,GAAG,qBAAqB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;QAE1E,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YACtD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,GAAG,MAAM,CAAC,MAAM;aACjB,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1B,GAAG,KAAK,CAAC,MAAM;aAChB,CAAC,CAAA;QACJ,CAAC;QAED,mDAAmD;QACnD,KAAK,MAAM,YAAY,IAAI,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAClE,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC/B,yBAAyB,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE;gBACpE,SAAS,EAAE,YAAY,CAAC,IAAI;gBAC5B,eAAe,EAAE,SAAS;gBAC1B,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK;gBACpD,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK;aAC7C,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,QAAQ,GAAG;gBAChB,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE;qBAChD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;qBACpB,IAAI,CAAC,MAAM,CAAC;aAChB,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAED,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,EAAE,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { ListStateStorage } from '@sentio/runtime';
2
+ import { EntityClass } from '../store/index.js';
3
+ type Schema = {
4
+ source: string;
5
+ entities: Record<string, EntityClass<any>>;
6
+ };
7
+ export declare class DatabaseSchemaState extends ListStateStorage<Schema> {
8
+ static INSTANCE: DatabaseSchemaState;
9
+ }
10
+ export declare class DatabaseSchema {
11
+ static register(schema: Schema): void;
12
+ static findEntity(name: string): EntityClass<any> | undefined;
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=database-schema.d.ts.map
@@ -0,0 +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;AAE/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;CAM/B"}
@@ -0,0 +1,16 @@
1
+ import { ListStateStorage } from '@sentio/runtime';
2
+ export class DatabaseSchemaState extends ListStateStorage {
3
+ static INSTANCE = new DatabaseSchemaState();
4
+ }
5
+ export class DatabaseSchema {
6
+ static register(schema) {
7
+ DatabaseSchemaState.INSTANCE.addValue(schema);
8
+ }
9
+ static findEntity(name) {
10
+ const s = DatabaseSchemaState.INSTANCE.getValues().find((s) => {
11
+ return s.entities[name] != null;
12
+ });
13
+ return s?.entities[name];
14
+ }
15
+ }
16
+ //# sourceMappingURL=database-schema.js.map
@@ -0,0 +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;AAQlD,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,MAAM,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5D,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;QACjC,CAAC,CAAC,CAAA;QACF,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;CACF"}
@@ -9,4 +9,5 @@ export * from './event-tracker.js';
9
9
  export * from './event-logger.js';
10
10
  export { type Numberish, toBigInteger, toMetricValue } from './numberish.js';
11
11
  export { CorePlugin } from './core-plugin.js';
12
+ export { DatabaseSchema } from './database-schema.js';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,KAAK,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACxD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,KAAK,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
package/lib/core/index.js CHANGED
@@ -7,4 +7,5 @@ export * from './event-tracker.js'; // TODO remove this
7
7
  export * from './event-logger.js';
8
8
  export { toBigInteger, toMetricValue } from './numberish.js';
9
9
  export { CorePlugin } from './core-plugin.js';
10
+ export { DatabaseSchema } from './database-schema.js';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAe,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,cAAc,oBAAoB,CAAA,CAAC,mBAAmB;AACtD,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAkB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAe,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,cAAc,oBAAoB,CAAA,CAAC,mBAAmB;AACtD,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAkB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { DirectiveNode } from 'graphql';
2
+ export declare function codegen(srcDir: string, outputDir: string): Promise<void>;
3
+ export declare function directive2decorator(directive: DirectiveNode): string;
4
+ //# sourceMappingURL=codegen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/store/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAcd,MAAM,SAAS,CAAA;AAOhB,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAW9D;AA0MD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,aAAa,UAU3D"}
@@ -0,0 +1,221 @@
1
+ import { GraphQLEnumType, GraphQLInterfaceType, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLScalarType, Kind, isObjectType, isInterfaceType, isListType } from 'graphql';
2
+ import * as fs from 'node:fs';
3
+ import path from 'path';
4
+ import mkdirp from 'mkdirp';
5
+ import { schemaFromFile } from './schema.js';
6
+ import chalk from 'chalk';
7
+ export async function codegen(srcDir, outputDir) {
8
+ for (const file of fs.readdirSync(srcDir)) {
9
+ const f = path.join(srcDir, file);
10
+ const filePath = path.parse(f);
11
+ if (filePath.ext == '.graphql') {
12
+ const { schema, source } = schemaFromFile(f);
13
+ const target = path.join(outputDir, filePath.name + '.ts');
14
+ await codegenInternal(schema, source, target);
15
+ console.log(chalk.green(`Generated ${target}`));
16
+ }
17
+ }
18
+ }
19
+ async function codegenInternal(schema, source, target) {
20
+ const results = [
21
+ '/* Autogenerated file. Do not edit manually. */\n',
22
+ '/* tslint:disable */',
23
+ '/* eslint-disable */',
24
+ "import {entity, derivedFrom, DateTime, Json, Bytes, ID, Entity, Store} from '@sentio/sdk/store'",
25
+ `import { DatabaseSchema, BigDecimal } from "@sentio/sdk"`
26
+ ];
27
+ const entities = [];
28
+ for (const t of Object.values(schema.getTypeMap())) {
29
+ if (t.name.startsWith('__')) {
30
+ continue;
31
+ }
32
+ if (t instanceof GraphQLObjectType) {
33
+ const entityContent = genEntity(t);
34
+ results.push(entityContent);
35
+ entities.push(t.name);
36
+ }
37
+ if (t instanceof GraphQLEnumType) {
38
+ results.push(genEnum(t));
39
+ }
40
+ if (t instanceof GraphQLInterfaceType) {
41
+ results.push(genInterface(t));
42
+ }
43
+ }
44
+ const contents = results.join('\n') +
45
+ `\n
46
+ const source = \`${source.replaceAll('`', '`')}\`
47
+ DatabaseSchema.register({
48
+ source,
49
+ entities: {
50
+ ${entities.map((e) => `"${e}": ${e}`).join(',\n\t\t')}
51
+ }
52
+ })
53
+ `;
54
+ await mkdirp(path.dirname(target));
55
+ fs.writeFileSync(target, contents);
56
+ }
57
+ const JsTypes = {
58
+ ID: 'string',
59
+ String: 'string',
60
+ Int: 'number',
61
+ Float: 'number',
62
+ Boolean: 'boolean',
63
+ BigInt: 'bigint',
64
+ BigDecimal: 'BigDecimal',
65
+ DateTime: 'Date',
66
+ Json: 'any',
67
+ Bytes: 'Uint8Array'
68
+ };
69
+ const graphqlTypes = Object.entries(JsTypes).reduce((acc, [k, v]) => {
70
+ acc[v] = k;
71
+ return acc;
72
+ }, {});
73
+ function genType(type) {
74
+ if (type instanceof GraphQLNonNull) {
75
+ return genType(type.ofType);
76
+ }
77
+ else if (type instanceof GraphQLScalarType) {
78
+ return type.name;
79
+ }
80
+ else if (type instanceof GraphQLObjectType || type instanceof GraphQLInterfaceType) {
81
+ return type.name;
82
+ }
83
+ else if (type instanceof GraphQLList) {
84
+ return `Array<${genType(type.ofType)}>`;
85
+ }
86
+ else if (type instanceof GraphQLEnumType) {
87
+ return type.name;
88
+ }
89
+ else {
90
+ throw new Error('Unsupported type: ' + type);
91
+ }
92
+ }
93
+ function isObject(type) {
94
+ if (type instanceof GraphQLNonNull) {
95
+ return isObject(type.ofType);
96
+ }
97
+ else if (type instanceof GraphQLList) {
98
+ return isObject(type.ofType);
99
+ }
100
+ return isObjectType(type) || isInterfaceType(type);
101
+ }
102
+ function isList(type) {
103
+ if (type instanceof GraphQLNonNull) {
104
+ return isListType(type.ofType);
105
+ }
106
+ else {
107
+ return isListType(type);
108
+ }
109
+ }
110
+ function getElementType(type) {
111
+ if (type instanceof GraphQLNonNull) {
112
+ return getElementType(type.ofType);
113
+ }
114
+ else if (type instanceof GraphQLList) {
115
+ return type.ofType;
116
+ }
117
+ return type;
118
+ }
119
+ function genField(field) {
120
+ const isNonNull = field.type instanceof GraphQLNonNull;
121
+ const directives = field.astNode?.directives?.map((d) => '\t' + directive2decorator(d) + '\n') || [];
122
+ const type = genType(field.type);
123
+ const returnType = isNonNull ? type : `${type} | undefined`;
124
+ if (isObject(field.type)) {
125
+ const t = getElementType(field.type);
126
+ const typeAsArg = isInterfaceType(t) ? `"${t}"` : genType(t);
127
+ if (isList(field.type)) {
128
+ return `${directives.join()}\tget ${field.name}(): Promise<${genType(t)}[]> { return this.getFieldObjectArray(${typeAsArg}, "${field.name}") as Promise<${genType(t)}[]> }
129
+ set ${field.name}(value: ${type} | ID[]) { this.set("${field.name}", value) }
130
+ get ${field.name}Ids(): ID[] { return this.get("${field.name}") }`;
131
+ }
132
+ return `${directives.join()}\tget ${field.name}(): Promise<${genType(t)} | undefined> { return this.getFieldObject(${typeAsArg},"${field.name}") as Promise<${genType(t)} | undefined> }
133
+ set ${field.name}(value: ${type} | ID) { this.set("${field.name}", value) }
134
+ get ${field.name}Id(): ID | undefined { return this.get("${field.name}") }`;
135
+ }
136
+ if (returnType == 'BigInt') {
137
+ return `${directives.join()}\tget ${field.name}(): ${returnType} { return BigInt(this.get("${field.name}")) }
138
+ set ${field.name}(value: ${type}) { this.set("${field.name}", value.toString()) }`;
139
+ }
140
+ if (returnType == 'BigDecimal') {
141
+ return `${directives.join()}\tget ${field.name}(): ${returnType} { return new BigDecimal(this.get("${field.name}")) }
142
+ set ${field.name}(value: ${type}) { this.set("${field.name}", value.toString()) }`;
143
+ }
144
+ if (returnType == 'Bytes') {
145
+ return `${directives.join()}\tget ${field.name}(): ${returnType} { return Uint8Array.from(Buffer.from(this.get<string>("${field.name}"), 'hex')) ) }
146
+ set ${field.name}(value: ${type}) { this.set("${field.name}", Buffer.from(value).toString('hex')) }`;
147
+ }
148
+ return `${directives.join()}\tget ${field.name}(): ${returnType} { return this.get("${field.name}") }
149
+ set ${field.name}(value: ${type}) { this.set("${field.name}", value) }`;
150
+ }
151
+ function genDataType(t) {
152
+ let output = `type ${t.name}Data = `;
153
+ const relationsFields = Object.values(t.getFields()).filter((f) => isObject(f.type));
154
+ if (relationsFields.length > 0) {
155
+ output += `Omit<${t.name}, ${relationsFields.map((f) => `"${f.name}"`).join(' | ')}>`;
156
+ output +=
157
+ ' & {' +
158
+ relationsFields
159
+ .map((f) => {
160
+ const type = genType(getElementType(f.type));
161
+ return `${f.name}?: ${isList(f.type) ? `Array<ID|${type}>` : `ID | ${type}`}`;
162
+ })
163
+ .join(', ') +
164
+ '}';
165
+ }
166
+ else {
167
+ output += `${t.name}`;
168
+ }
169
+ return output;
170
+ }
171
+ function genEntity(t) {
172
+ const decorators = t.astNode?.directives?.filter((d) => d.name.value != 'entity').map(directive2decorator) || [];
173
+ let impls = '';
174
+ if (t.getInterfaces().length > 0) {
175
+ impls +=
176
+ ' implements ' +
177
+ t
178
+ .getInterfaces()
179
+ .map((i) => i.name)
180
+ .join(', ');
181
+ }
182
+ return `
183
+ ${genDataType(t)}
184
+ ${decorators.join('\n')}
185
+ @entity("${t.name}")
186
+ export class ${t.name} extends Entity${impls} {
187
+ constructor(data: Partial<${t.name}Data>) {
188
+ super(data)
189
+ }
190
+ ${Object.values(t.getFields()).map(genField).join('\n')}
191
+ }`;
192
+ }
193
+ function genInterface(t) {
194
+ return `
195
+ export interface ${t.name} {
196
+ ${Object.values(t.getFields())
197
+ .map((f) => `\t${f.name}: ${genType(f.type)}`)
198
+ .join('\n')}
199
+ }`;
200
+ }
201
+ export function directive2decorator(directive) {
202
+ let s = `@${directive.name.value}`;
203
+ if (directive.arguments?.length) {
204
+ s += `(${directive.arguments
205
+ ?.map((arg) => {
206
+ return arg.value.kind === Kind.STRING ? `"${arg.value.value}"` : `${arg.value}`;
207
+ })
208
+ .join(', ')})`;
209
+ }
210
+ return s;
211
+ }
212
+ function genEnum(t) {
213
+ return `
214
+ export enum ${t.name} {
215
+ ${t
216
+ .getValues()
217
+ .map((v) => `\t${v.name}`)
218
+ .join(', ')}
219
+ }`;
220
+ }
221
+ //# sourceMappingURL=codegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/store/codegen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { StoreContext } from '@sentio/runtime';
2
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/store/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { StoreContext } from '@sentio/runtime';
2
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/store/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,12 @@
1
+ type Constructor = {
2
+ new (...args: any[]): any;
3
+ };
4
+ export declare function entity(name: string): <T extends Constructor>(constructor: T, context: any) => T;
5
+ export declare function derivedFrom(field: string): (target: any, context: any) => void;
6
+ export declare function unique(field: string): (target: any, context: any) => void;
7
+ export declare function index(field: string[]): (target: any, context: any) => void;
8
+ export declare function fulltext(query: string): (target: any, context: any) => void;
9
+ export declare function cardinality(value: number): (target: any, context: any) => void;
10
+ export declare function byteWeight(value: number): (target: any, context: any) => void;
11
+ export {};
12
+ //# sourceMappingURL=decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;CAAE,CAAA;AAEhD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,wCACoB,CAAC,WAAW,GAAG,OAIrE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,YACd,GAAG,WAAW,GAAG,UAC3C;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,YACT,GAAG,WAAW,GAAG,UAC3C;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,YACV,GAAG,WAAW,GAAG,UAC3C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,YACX,GAAG,WAAW,GAAG,UAC3C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,YACd,GAAG,WAAW,GAAG,UAC3C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,YACb,GAAG,WAAW,GAAG,UAC3C"}
@@ -0,0 +1,25 @@
1
+ export function entity(name) {
2
+ return function (constructor, context) {
3
+ constructor.prototype.entityName = name;
4
+ return constructor;
5
+ };
6
+ }
7
+ export function derivedFrom(field) {
8
+ return function (target, context) { };
9
+ }
10
+ export function unique(field) {
11
+ return function (target, context) { };
12
+ }
13
+ export function index(field) {
14
+ return function (target, context) { };
15
+ }
16
+ export function fulltext(query) {
17
+ return function (target, context) { };
18
+ }
19
+ export function cardinality(value) {
20
+ return function (target, context) { };
21
+ }
22
+ export function byteWeight(value) {
23
+ return function (target, context) { };
24
+ }
25
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,UAAiC,WAAc,EAAE,OAAY;QAClE,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAA;QACvC,OAAO,WAAW,CAAA;IACpB,CAAC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,UAAU,MAAW,EAAE,OAAY,IAAG,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAa;IAClC,OAAO,UAAU,MAAW,EAAE,OAAY,IAAG,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,KAAe;IACnC,OAAO,UAAU,MAAW,EAAE,OAAY,IAAG,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,UAAU,MAAW,EAAE,OAAY,IAAG,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,UAAU,MAAW,EAAE,OAAY,IAAG,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,UAAU,MAAW,EAAE,OAAY,IAAG,CAAC,CAAA;AAChD,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { ID } from './types.js';
2
+ export interface EntityClass<T extends Entity> {
3
+ new (data: any): T;
4
+ }
5
+ export declare class Entity {
6
+ get id(): ID;
7
+ data: Record<string, any>;
8
+ constructor(data: any);
9
+ private getIdFromEntity;
10
+ private getStore;
11
+ get<T>(field: string): T;
12
+ set<T>(field: string, value: T | T[] | ID | ID[]): void;
13
+ protected getFieldObject<T extends Entity>(entity: EntityClass<T> | string, field: string): Promise<T | undefined>;
14
+ protected getFieldObjectArray<T extends Entity>(entity: EntityClass<T>, field: string): Promise<T[]>;
15
+ toString(): string;
16
+ }
17
+ //# sourceMappingURL=entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/store/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAI/B,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC3C,KAAK,IAAI,EAAE,GAAG,GAAG,CAAC,CAAA;CACnB;AAED,qBAAa,MAAM;IACjB,IAAI,EAAE,IAAI,EAAE,CAEX;IAED,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAK;gBAClB,IAAI,EAAE,GAAG;IAUrB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,QAAQ;IAQhB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAIxB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI;IASvD,SAAS,CAAC,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAKlH,SAAS,CAAC,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAMpG,QAAQ,IAAI,MAAM;CAKnB"}
@@ -0,0 +1,61 @@
1
+ import { PluginManager } from '@sentio/runtime';
2
+ import { Store } from './store.js';
3
+ export class Entity {
4
+ get id() {
5
+ return this.get('id');
6
+ }
7
+ data = {};
8
+ constructor(data) {
9
+ Object.entries(data).forEach(([key, value]) => {
10
+ if (Array.isArray(value)) {
11
+ this.data[key] = value.map((v) => this.getIdFromEntity(v));
12
+ }
13
+ else {
14
+ this.data[key] = this.getIdFromEntity(value);
15
+ }
16
+ });
17
+ }
18
+ getIdFromEntity(entity) {
19
+ if (entity instanceof Entity) {
20
+ return entity.id;
21
+ }
22
+ else if (typeof entity === 'object' && entity.id) {
23
+ return entity.id;
24
+ }
25
+ return entity;
26
+ }
27
+ getStore() {
28
+ const dbContext = PluginManager.INSTANCE.dbContextLocalStorage.getStore();
29
+ if (dbContext) {
30
+ return new Store(dbContext);
31
+ }
32
+ return undefined;
33
+ }
34
+ get(field) {
35
+ return this.data[field];
36
+ }
37
+ set(field, value) {
38
+ if (Array.isArray(value) && value instanceof Entity) {
39
+ this.data[field] = value.map((v) => v.id);
40
+ }
41
+ else if (value instanceof Entity) {
42
+ this.data[field] = value.id;
43
+ }
44
+ this.data[field] = value;
45
+ }
46
+ getFieldObject(entity, field) {
47
+ const id = this.data[field];
48
+ return id ? this.getStore()?.get(entity, id) : Promise.resolve(undefined);
49
+ }
50
+ getFieldObjectArray(entity, field) {
51
+ const ids = this.data[field];
52
+ const promises = ids.map((id) => this.getStore()?.get(entity, id));
53
+ return Promise.all(promises);
54
+ }
55
+ toString() {
56
+ const entityName = this.constructor.prototype.entityName;
57
+ const id = this.id;
58
+ return `${entityName}#${id} ${JSON.stringify(this.data)}`;
59
+ }
60
+ }
61
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/store/entity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './decorators.js';
2
+ export * from './types.js';
3
+ export * from './entity.js';
4
+ export * from './store.js';
5
+ export * from './context.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * from './decorators.js';
2
+ export * from './types.js';
3
+ export * from './entity.js';
4
+ export * from './store.js';
5
+ export * from './context.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/store/run.ts"],"names":[],"mappings":""}