@distrohelena/canton-typescript-sdk 0.1.27 → 0.1.29

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 (31) hide show
  1. package/dist/daml-interface/analysis/analyzed-daml-type-definition.d.ts +6 -1
  2. package/dist/daml-interface/analysis/analyzed-daml-type.d.ts +7 -1
  3. package/dist/daml-interface/analysis/daml-interface-analyzer.d.ts +6 -0
  4. package/dist/daml-interface/analysis/daml-interface-analyzer.js +92 -25
  5. package/dist/daml-interface/emission/named-type-emitter.d.ts +7 -1
  6. package/dist/daml-interface/emission/named-type-emitter.js +86 -21
  7. package/dist/daml-interface/emission/project-emitter.js +1 -1
  8. package/dist/daml-interface/emission/registry-emitter.js +3 -3
  9. package/dist/daml-interface/emission/support-file-emitter.d.ts +2 -0
  10. package/dist/daml-interface/emission/support-file-emitter.js +45 -20
  11. package/dist/daml-interface/emission/template-binding-emitter.js +58 -16
  12. package/dist/daml-interface/emission/type-script-name-resolver.d.ts +8 -2
  13. package/dist/daml-interface/emission/type-script-name-resolver.js +41 -6
  14. package/dist/daml-interface/index.d.ts +3 -3
  15. package/dist/daml-interface/index.js +3 -3
  16. package/dist/daml-interface/runtime/daml-event-source-normalizer.d.ts +8 -11
  17. package/dist/daml-interface/runtime/daml-event-source-normalizer.js +14 -11
  18. package/dist/daml-interface/runtime/daml-type-descriptor.d.ts +2 -1
  19. package/dist/daml-interface/runtime/daml-value-converter.d.ts +5 -2
  20. package/dist/daml-interface/runtime/daml-value-converter.js +11 -5
  21. package/dist/daml-interface/runtime/daml-value-materializer.d.ts +4 -1
  22. package/dist/daml-interface/runtime/daml-value-materializer.js +7 -1
  23. package/dist/daml-lf/daml-lf-compilation.d.ts +3 -0
  24. package/dist/daml-lf/daml-lf-compilation.js +4 -0
  25. package/dist/daml-lf/model/daml-lf-data-type.d.ts +19 -0
  26. package/dist/daml-lf/model/daml-lf-data-type.js +15 -0
  27. package/dist/daml-lf/model/daml-lf-type.d.ts +13 -0
  28. package/dist/daml-lf/model/daml-lf-type.js +24 -0
  29. package/dist/daml-lf/model/lf-2-model-mapper.d.ts +4 -0
  30. package/dist/daml-lf/model/lf-2-model-mapper.js +77 -5
  31. package/package.json +1 -1
@@ -3,7 +3,7 @@ import { DamlLfDecodeException } from "../errors/daml-lf-decode.exception.js";
3
3
  import { DamlLfBuiltinType } from "./daml-lf-builtin-type.js";
4
4
  import { DamlLfChoice } from "./daml-lf-choice.js";
5
5
  import { DamlLfChoiceParameter } from "./daml-lf-choice-parameter.js";
6
- import { DamlLfDataType } from "./daml-lf-data-type.js";
6
+ import { DamlLfDataType, } from "./daml-lf-data-type.js";
7
7
  import { DamlLfExpression } from "./daml-lf-expression.js";
8
8
  import { DamlLfField } from "./daml-lf-field.js";
9
9
  import { DamlLfModule } from "./daml-lf-module.js";
@@ -31,7 +31,7 @@ export class Lf2ModelMapper {
31
31
  if (rawType?.sum.oneofKind === "tapp") {
32
32
  const lhs = Lf2ModelMapper.mapType(currentPackageId, rawPackage, rawType.sum.tapp.lhs);
33
33
  const numericScale = lhs.builtinType === DamlLfBuiltinType.numeric
34
- ? Lf2ModelMapper.readNumericScale(rawType.sum.tapp.rhs)
34
+ ? Lf2ModelMapper.readNumericScale(rawPackage, rawType.sum.tapp.rhs)
35
35
  : undefined;
36
36
  return new DamlLfType({
37
37
  builtinType: lhs.builtinType,
@@ -43,6 +43,12 @@ export class Lf2ModelMapper {
43
43
  ...(lhs.typeConReference === undefined
44
44
  ? {}
45
45
  : { typeConReference: lhs.typeConReference }),
46
+ ...(lhs.typeVariable === undefined
47
+ ? {}
48
+ : { typeVariable: lhs.typeVariable }),
49
+ ...(lhs.diagnosticForall === undefined
50
+ ? {}
51
+ : { diagnosticForall: lhs.diagnosticForall }),
46
52
  typeArguments: numericScale === undefined
47
53
  ? [
48
54
  ...lhs.typeArguments,
@@ -52,7 +58,18 @@ export class Lf2ModelMapper {
52
58
  });
53
59
  }
54
60
  if (rawType?.sum.oneofKind === "forall") {
55
- return Lf2ModelMapper.mapType(currentPackageId, rawPackage, rawType.sum.forall.body);
61
+ return new DamlLfType({
62
+ diagnosticForall: {
63
+ typeParameters: rawType.sum.forall.vars.map((parameter) => Lf2ModelMapper.mapTypeParameter(rawPackage, parameter)),
64
+ body: Lf2ModelMapper.mapType(currentPackageId, rawPackage, rawType.sum.forall.body),
65
+ },
66
+ });
67
+ }
68
+ else if (rawType?.sum.oneofKind === "var") {
69
+ return new DamlLfType({
70
+ typeVariable: Lf2ModelMapper.mapTypeVariableReference(rawPackage, rawType.sum.var.varInternedStr),
71
+ typeArguments: rawType.sum.var.args.map((item) => Lf2ModelMapper.mapType(currentPackageId, rawPackage, item)),
72
+ });
56
73
  }
57
74
  if (rawType?.sum.oneofKind === "con") {
58
75
  return new DamlLfType({
@@ -63,7 +80,7 @@ export class Lf2ModelMapper {
63
80
  else if (rawType?.sum.oneofKind === "builtin") {
64
81
  const builtinType = Lf2ModelMapper.mapBuiltinType(rawType.sum.builtin.builtin);
65
82
  const numericScale = builtinType === DamlLfBuiltinType.numeric
66
- ? Lf2ModelMapper.readNumericScale(rawType.sum.builtin.args[0])
83
+ ? Lf2ModelMapper.readNumericScale(rawPackage, rawType.sum.builtin.args[0])
67
84
  : undefined;
68
85
  return new DamlLfType({
69
86
  builtinType,
@@ -79,6 +96,53 @@ export class Lf2ModelMapper {
79
96
  builtinType: DamlLfBuiltinType.unknown,
80
97
  });
81
98
  }
99
+ static mapTypeParameter(rawPackage, rawParameter) {
100
+ const name = Lf2ModelMapper.resolveInternedStringOrUndefined(rawPackage.internedStrings, rawParameter.varInternedStr);
101
+ return {
102
+ ...(name === undefined ? {} : { name }),
103
+ internedStringIndex: rawParameter.varInternedStr,
104
+ kind: Lf2ModelMapper.mapTypeParameterKind(rawPackage, rawParameter.kind),
105
+ };
106
+ }
107
+ static mapTypeVariableReference(rawPackage, internedStringIndex) {
108
+ const name = Lf2ModelMapper.resolveInternedStringOrUndefined(rawPackage.internedStrings, internedStringIndex);
109
+ return {
110
+ ...(name === undefined ? {} : { name }),
111
+ internedStringIndex,
112
+ };
113
+ }
114
+ static mapTypeParameterKind(rawPackage, rawKind, visitedInternedKindIndices = new Set()) {
115
+ if (rawKind?.sum.oneofKind === "star") {
116
+ return { kind: "star" };
117
+ }
118
+ else if (rawKind?.sum.oneofKind === "nat") {
119
+ return { kind: "nat" };
120
+ }
121
+ else if (rawKind?.sum.oneofKind === "arrow") {
122
+ return {
123
+ kind: "arrow",
124
+ parameters: rawKind.sum.arrow.params.map((parameter) => Lf2ModelMapper.mapTypeParameterKind(rawPackage, parameter, visitedInternedKindIndices)),
125
+ result: Lf2ModelMapper.mapTypeParameterKind(rawPackage, rawKind.sum.arrow.result, visitedInternedKindIndices),
126
+ };
127
+ }
128
+ if (rawKind?.sum.oneofKind !== "internedKind") {
129
+ return { kind: "unknown" };
130
+ }
131
+ const internedKindIndex = rawKind.sum.internedKind;
132
+ if (visitedInternedKindIndices.has(internedKindIndex)) {
133
+ return {
134
+ kind: "unknown",
135
+ internedKindIndex,
136
+ };
137
+ }
138
+ const internedKind = rawPackage.internedKinds[internedKindIndex];
139
+ return internedKind === undefined
140
+ ? {
141
+ kind: "unknown",
142
+ internedKindIndex,
143
+ }
144
+ : Lf2ModelMapper.mapTypeParameterKind(rawPackage, internedKind, new Set([...visitedInternedKindIndices, internedKindIndex]));
145
+ }
82
146
  static mapBuiltinType(builtinType) {
83
147
  switch (builtinType) {
84
148
  case BuiltinType.UNIT:
@@ -111,7 +175,11 @@ export class Lf2ModelMapper {
111
175
  return DamlLfBuiltinType.unknown;
112
176
  }
113
177
  }
114
- static readNumericScale(rawType) {
178
+ static readNumericScale(rawPackage, rawType) {
179
+ if (rawType?.sum.oneofKind === "internedType"
180
+ && rawType.sum.internedType >= 0) {
181
+ return Lf2ModelMapper.readNumericScale(rawPackage, rawPackage.internedTypes[rawType.sum.internedType]);
182
+ }
115
183
  if (rawType?.sum.oneofKind !== "nat") {
116
184
  return undefined;
117
185
  }
@@ -165,6 +233,7 @@ export class Lf2ModelMapper {
165
233
  return new DamlLfDataType({
166
234
  name: Lf2ModelMapper.resolveInternedDottedName(rawPackage.internedStrings, rawPackage.internedDottedNames, rawDataType.nameInternedDname),
167
235
  definition,
236
+ typeParameters: rawDataType.params.map((parameter) => Lf2ModelMapper.mapTypeParameter(rawPackage, parameter)),
168
237
  });
169
238
  }
170
239
  static mapTemplateOrThrow(packageId, moduleName, rawTemplate, rawPackage, dataTypes) {
@@ -644,6 +713,9 @@ export class Lf2ModelMapper {
644
713
  }
645
714
  return internedStrings[index];
646
715
  }
716
+ static resolveInternedStringOrUndefined(internedStrings, index) {
717
+ return index === undefined ? undefined : internedStrings[index];
718
+ }
647
719
  static resolveInternedDottedName(internedStrings, internedDottedNames, index) {
648
720
  if (index === undefined || internedDottedNames[index] === undefined) {
649
721
  throw new DamlLfDecodeException("daml lf package references a missing interned dotted name");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@distrohelena/canton-typescript-sdk",
3
- "version": "0.1.27",
3
+ "version": "0.1.29",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",