@distrohelena/canton-typescript-sdk 0.1.28 → 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 +70 -2
  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";
@@ -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({
@@ -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:
@@ -169,6 +233,7 @@ export class Lf2ModelMapper {
169
233
  return new DamlLfDataType({
170
234
  name: Lf2ModelMapper.resolveInternedDottedName(rawPackage.internedStrings, rawPackage.internedDottedNames, rawDataType.nameInternedDname),
171
235
  definition,
236
+ typeParameters: rawDataType.params.map((parameter) => Lf2ModelMapper.mapTypeParameter(rawPackage, parameter)),
172
237
  });
173
238
  }
174
239
  static mapTemplateOrThrow(packageId, moduleName, rawTemplate, rawPackage, dataTypes) {
@@ -648,6 +713,9 @@ export class Lf2ModelMapper {
648
713
  }
649
714
  return internedStrings[index];
650
715
  }
716
+ static resolveInternedStringOrUndefined(internedStrings, index) {
717
+ return index === undefined ? undefined : internedStrings[index];
718
+ }
651
719
  static resolveInternedDottedName(internedStrings, internedDottedNames, index) {
652
720
  if (index === undefined || internedDottedNames[index] === undefined) {
653
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.28",
3
+ "version": "0.1.29",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",