@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.
- package/dist/daml-interface/analysis/analyzed-daml-type-definition.d.ts +6 -1
- package/dist/daml-interface/analysis/analyzed-daml-type.d.ts +7 -1
- package/dist/daml-interface/analysis/daml-interface-analyzer.d.ts +6 -0
- package/dist/daml-interface/analysis/daml-interface-analyzer.js +92 -25
- package/dist/daml-interface/emission/named-type-emitter.d.ts +7 -1
- package/dist/daml-interface/emission/named-type-emitter.js +86 -21
- package/dist/daml-interface/emission/project-emitter.js +1 -1
- package/dist/daml-interface/emission/registry-emitter.js +3 -3
- package/dist/daml-interface/emission/support-file-emitter.d.ts +2 -0
- package/dist/daml-interface/emission/support-file-emitter.js +45 -20
- package/dist/daml-interface/emission/template-binding-emitter.js +58 -16
- package/dist/daml-interface/emission/type-script-name-resolver.d.ts +8 -2
- package/dist/daml-interface/emission/type-script-name-resolver.js +41 -6
- package/dist/daml-interface/index.d.ts +3 -3
- package/dist/daml-interface/index.js +3 -3
- package/dist/daml-interface/runtime/daml-event-source-normalizer.d.ts +8 -11
- package/dist/daml-interface/runtime/daml-event-source-normalizer.js +14 -11
- package/dist/daml-interface/runtime/daml-type-descriptor.d.ts +2 -1
- package/dist/daml-interface/runtime/daml-value-converter.d.ts +5 -2
- package/dist/daml-interface/runtime/daml-value-converter.js +11 -5
- package/dist/daml-interface/runtime/daml-value-materializer.d.ts +4 -1
- package/dist/daml-interface/runtime/daml-value-materializer.js +7 -1
- package/dist/daml-lf/daml-lf-compilation.d.ts +3 -0
- package/dist/daml-lf/daml-lf-compilation.js +4 -0
- package/dist/daml-lf/model/daml-lf-data-type.d.ts +19 -0
- package/dist/daml-lf/model/daml-lf-data-type.js +15 -0
- package/dist/daml-lf/model/daml-lf-type.d.ts +13 -0
- package/dist/daml-lf/model/daml-lf-type.js +24 -0
- package/dist/daml-lf/model/lf-2-model-mapper.d.ts +4 -0
- package/dist/daml-lf/model/lf-2-model-mapper.js +77 -5
- 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
|
|
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");
|