@distrohelena/canton-explorer 0.1.0 → 0.1.2

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 (50) hide show
  1. package/README.md +26 -0
  2. package/config/nodes.example.json +5 -1
  3. package/dist/public/assets/DebuggerView-Cf8sZ-NE.js +2 -0
  4. package/dist/public/assets/css.worker-BKx7BC4h.js +89 -0
  5. package/dist/public/assets/editor-C5uazxST.css +1 -0
  6. package/dist/public/assets/editor.api-8w-mShFJ.js +820 -0
  7. package/dist/public/assets/editor.worker-DQJwLooG.js +26 -0
  8. package/dist/public/assets/html.worker-ChRLLxCa.js +502 -0
  9. package/dist/public/assets/index-C6ucHbtz.js +1 -0
  10. package/dist/public/assets/index-D9pVnHtz.css +1 -0
  11. package/dist/public/assets/json.worker-DR52qCex.js +58 -0
  12. package/dist/public/assets/ts.worker-Cqvg7802.js +67734 -0
  13. package/dist/public/index.html +2 -2
  14. package/dist/src/api/debugger.controller.d.ts +16 -0
  15. package/dist/src/api/debugger.controller.js +105 -0
  16. package/dist/src/api/debugger.controller.js.map +1 -0
  17. package/dist/src/app-bootstrap.d.ts +1 -1
  18. package/dist/src/app-bootstrap.js +6 -2
  19. package/dist/src/app-bootstrap.js.map +1 -1
  20. package/dist/src/app.module.js +4 -1
  21. package/dist/src/app.module.js.map +1 -1
  22. package/dist/src/config/node-config.schema.d.ts +11 -0
  23. package/dist/src/config/node-config.schema.js +8 -0
  24. package/dist/src/config/node-config.schema.js.map +1 -1
  25. package/dist/src/config/node-config.service.d.ts +2 -1
  26. package/dist/src/config/node-config.service.js +3 -0
  27. package/dist/src/config/node-config.service.js.map +1 -1
  28. package/dist/src/debugger/debugger.service.d.ts +158 -0
  29. package/dist/src/debugger/debugger.service.js +746 -0
  30. package/dist/src/debugger/debugger.service.js.map +1 -0
  31. package/dist/src/domain/node.types.d.ts +1 -1
  32. package/dist/src/packages/daml-decoder.types.d.ts +8 -1
  33. package/dist/src/packages/daml-value-decoder.service.js.map +1 -1
  34. package/dist/src/packages/package-cache.service.js +103 -7
  35. package/dist/src/packages/package-cache.service.js.map +1 -1
  36. package/dist/src/packages/package-registry.service.js.map +1 -1
  37. package/dist/src/packages/package-sync.service.js +31 -3
  38. package/dist/src/packages/package-sync.service.js.map +1 -1
  39. package/dist/src/packages/pqs-package.service.js +15 -80
  40. package/dist/src/packages/pqs-package.service.js.map +1 -1
  41. package/dist/src/pqs/pqs-schema.d.ts +3 -0
  42. package/dist/src/pqs/pqs-schema.js +32 -0
  43. package/dist/src/pqs/pqs-schema.js.map +1 -0
  44. package/dist/src/pqs/pqs-summary.service.d.ts +3 -3
  45. package/dist/src/pqs/pqs-summary.service.js +619 -1414
  46. package/dist/src/pqs/pqs-summary.service.js.map +1 -1
  47. package/dist/tsconfig.build.tsbuildinfo +1 -1
  48. package/package.json +35 -31
  49. package/dist/public/assets/index-NfJYgVwb.css +0 -1
  50. package/dist/public/assets/index-ybPCCjei.js +0 -1
@@ -12,34 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.PqsPackageService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const pqs_client_factory_1 = require("../pqs/pqs-client.factory");
15
- const PACKAGE_REFS_QUERY = `
16
- select
17
- package_row.package_id::text as package_id,
18
- min(package_row.main_package_id)::text as main_package_id,
19
- package_row.name::text as name,
20
- package_row.version::text as version,
21
- package_row.uploaded_at::text as uploaded_at,
22
- package_row.package_size::bigint as package_size
23
- from (
24
- select
25
- package_table.package_id,
26
- coalesce(dar_table.main_package_id, package_table.package_id) as main_package_id,
27
- package_table.name,
28
- package_table.version,
29
- package_table.uploaded_at,
30
- package_table.package_size
31
- from participant.par_daml_packages package_table
32
- left join participant.par_dar_packages dar_table
33
- on dar_table.package_id = package_table.package_id
34
- ) package_row
35
- group by
36
- package_row.package_id,
37
- package_row.name,
38
- package_row.version,
39
- package_row.uploaded_at,
40
- package_row.package_size
41
- order by package_row.package_id asc
42
- `;
15
+ const pqs_schema_1 = require("../pqs/pqs-schema");
43
16
  let PqsPackageService = class PqsPackageService {
44
17
  clientFactory;
45
18
  constructor(clientFactory) {
@@ -47,72 +20,34 @@ let PqsPackageService = class PqsPackageService {
47
20
  }
48
21
  async fetchPackageRefs(node) {
49
22
  const client = this.clientFactory.getClient(node);
50
- const result = await client.query(PACKAGE_REFS_QUERY);
51
- const rows = result.rows ?? [];
52
- return rows.map((row) => ({
53
- packageId: row.package_id,
54
- mainPackageId: row.main_package_id ?? row.package_id,
55
- name: row.name,
56
- version: row.version,
57
- uploadedAt: normalizeOptionalText(row.uploaded_at),
58
- packageSize: normalizeOptionalNumber(row.package_size),
59
- }));
60
- }
61
- async fetchPackagesById(node, packageIds) {
62
- if (packageIds.length === 0) {
63
- return [];
64
- }
65
- const client = this.clientFactory.getClient(node);
66
- const quotedIds = packageIds.map((packageId) => `'${escapeSqlLiteral(packageId)}'`).join(', ');
23
+ const packagesRelation = (0, pqs_schema_1.qualifyPqsRelation)(node, '__packages');
67
24
  const result = await client.query(`
68
25
  select
69
- package_id::text as package_id,
26
+ id::text as package_id,
70
27
  name::text as name,
71
- version::text as version,
72
- uploaded_at::text as uploaded_at,
73
- package_size::bigint as package_size,
74
- data
75
- from participant.par_daml_packages
76
- where package_id in (${quotedIds})
77
- order by package_id asc
28
+ version::text as version
29
+ from ${packagesRelation}
30
+ order by id asc
78
31
  `);
79
32
  const rows = result.rows ?? [];
80
- return rows
81
- .filter((row) => Buffer.isBuffer(row.data))
82
- .map((row) => ({
33
+ return rows.map((row) => ({
83
34
  packageId: row.package_id,
35
+ mainPackageId: row.package_id,
84
36
  name: row.name,
85
37
  version: row.version,
86
- uploadedAt: normalizeOptionalText(row.uploaded_at),
87
- packageSize: normalizeOptionalNumber(row.package_size),
88
- data: row.data,
38
+ uploadedAt: null,
39
+ packageSize: null,
89
40
  }));
90
41
  }
42
+ async fetchPackagesById(node, packageIds) {
43
+ void node;
44
+ void packageIds;
45
+ return [];
46
+ }
91
47
  };
92
48
  exports.PqsPackageService = PqsPackageService;
93
49
  exports.PqsPackageService = PqsPackageService = __decorate([
94
50
  (0, common_1.Injectable)(),
95
51
  __metadata("design:paramtypes", [pqs_client_factory_1.PqsClientFactory])
96
52
  ], PqsPackageService);
97
- function normalizeOptionalText(value) {
98
- if (typeof value === 'string') {
99
- return value;
100
- }
101
- if (typeof value === 'number') {
102
- return String(value);
103
- }
104
- return null;
105
- }
106
- function normalizeOptionalNumber(value) {
107
- if (typeof value === 'number') {
108
- return value;
109
- }
110
- if (typeof value === 'string' && value.length > 0) {
111
- return Number(value);
112
- }
113
- return null;
114
- }
115
- function escapeSqlLiteral(value) {
116
- return value.replaceAll("'", "''");
117
- }
118
53
  //# sourceMappingURL=pqs-package.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pqs-package.service.js","sourceRoot":"","sources":["../../../src/packages/pqs-package.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,kEAA6D;AAqB7D,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B1B,CAAC;AAGK,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACC;IAA7B,YAA6B,aAA+B;QAA/B,kBAAa,GAAb,aAAa,CAAkB;IAAG,CAAC;IAEhE,KAAK,CAAC,gBAAgB,CAAC,IAAgB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,IAAI,GAAI,MAAM,CAAC,IAAwB,IAAI,EAAE,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,aAAa,EAAE,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,UAAU;YACpD,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC;YAClD,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC;SACvD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,IAAgB,EAChB,UAAoB;QAEpB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;;;;;;;;;6BAST,SAAS;;KAEjC,CAAC,CAAC;QACH,MAAM,IAAI,GAAI,MAAM,CAAC,IAAyB,IAAI,EAAE,CAAC;QAErD,OAAO,IAAI;aACR,MAAM,CAAC,CAAC,GAAG,EAA4C,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACpF,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC;YAClD,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC,YAAY,CAAC;YACtD,IAAI,EAAE,GAAG,CAAC,IAAI;SACf,CAAC,CAAC,CAAC;IACR,CAAC;CACF,CAAA;AArDY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAEiC,qCAAgB;GADjD,iBAAiB,CAqD7B;AAED,SAAS,qBAAqB,CAAC,KAA6B;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,KAA6B;IAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"pqs-package.service.js","sourceRoot":"","sources":["../../../src/packages/pqs-package.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,kEAA6D;AAC7D,kDAAuD;AAUhD,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IACC;IAA7B,YAA6B,aAA+B;QAA/B,kBAAa,GAAb,aAAa,CAAkB;IAAG,CAAC;IAEhE,KAAK,CAAC,gBAAgB,CAAC,IAAgB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,IAAA,+BAAkB,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;;;;;aAKzB,gBAAgB;;KAExB,CAAC,CAAC;QACH,MAAM,IAAI,GAAI,MAAM,CAAC,IAAwB,IAAI,EAAE,CAAC;QAEpD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,aAAa,EAAE,GAAG,CAAC,UAAU;YAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,IAAgB,EAChB,UAAoB;QAEpB,KAAK,IAAI,CAAC;QACV,KAAK,UAAU,CAAC;QAEhB,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAA;AAnCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAEiC,qCAAgB;GADjD,iBAAiB,CAmC7B"}
@@ -0,0 +1,3 @@
1
+ import type { NodeConfig } from '../config/node-config.schema';
2
+ export declare function pqsSchema(node: NodeConfig): string;
3
+ export declare function qualifyPqsRelation(node: NodeConfig, relation: string): string;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pqsSchema = pqsSchema;
4
+ exports.qualifyPqsRelation = qualifyPqsRelation;
5
+ const IDENTIFIER_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
6
+ const PQS_RELATIONS = new Set([
7
+ '__contracts',
8
+ '__contract_tpe',
9
+ '__events',
10
+ '__exercises',
11
+ '__exercise_tpe',
12
+ '__packages',
13
+ '__transactions',
14
+ '__watermark',
15
+ ]);
16
+ function pqsSchema(node) {
17
+ const schema = node.pqs.schema ?? 'public';
18
+ if (!IDENTIFIER_PATTERN.test(schema)) {
19
+ throw new Error(`Invalid PQS schema identifier: ${schema}`);
20
+ }
21
+ return schema;
22
+ }
23
+ function qualifyPqsRelation(node, relation) {
24
+ if (!PQS_RELATIONS.has(relation)) {
25
+ throw new Error(`Invalid PQS relation name: ${relation}`);
26
+ }
27
+ return `${quoteIdentifier(pqsSchema(node))}.${quoteIdentifier(relation)}`;
28
+ }
29
+ function quoteIdentifier(identifier) {
30
+ return `"${identifier.replaceAll('"', '""')}"`;
31
+ }
32
+ //# sourceMappingURL=pqs-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pqs-schema.js","sourceRoot":"","sources":["../../../src/pqs/pqs-schema.ts"],"names":[],"mappings":";;AAeA,8BAQC;AAED,gDAMC;AA7BD,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAEtD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,aAAa;IACb,gBAAgB;IAChB,UAAU;IACV,aAAa;IACb,gBAAgB;IAChB,YAAY;IACZ,gBAAgB;IAChB,aAAa;CACL,CAAC,CAAC;AAEZ,SAAgB,SAAS,CAAC,IAAgB;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC;IAE3C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAgB,EAAE,QAAgB;IACnE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAmE,CAAC,EAAE,CAAC;QAC5F,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,OAAO,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;AACjD,CAAC"}
@@ -141,12 +141,9 @@ export declare class PqsSummaryService {
141
141
  private filterTokenTransfersByParties;
142
142
  fetchUpdateDetail(node: NodeConfig, eventOffset: string): Promise<NodeUpdateDetailResponse>;
143
143
  fetchContractDetail(node: NodeConfig, contractId: string): Promise<NodeContractDetailResponse>;
144
- private querySummary;
145
144
  private fetchPartyRecentUpdatesForNode;
146
145
  private fetchPartyRecentContractsForNode;
147
146
  private fetchPartyContractsForNode;
148
- private shouldFallbackToParticipantTables;
149
- private shouldFallbackToNormalizedEventTables;
150
147
  private fetchActivePartiesForNode;
151
148
  private fetchPartiesByUpdateId;
152
149
  private loadCachedObservedTokens;
@@ -208,6 +205,9 @@ export declare class PqsSummaryService {
208
205
  private readScalarField;
209
206
  private readNestedScalarField;
210
207
  private readTextMapEntryField;
208
+ private decodePqsJsonData;
209
+ private decodePqsJsonValue;
210
+ private isPlainJsonObject;
211
211
  private getFirstLengthDelimitedField;
212
212
  private getAllLengthDelimitedFields;
213
213
  private unwrapScalarVarint;