@haneullabs/codegen 0.1.0

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 (119) hide show
  1. package/CHANGELOG.md +259 -0
  2. package/README.md +195 -0
  3. package/dist/cjs/bin/bash-complete.d.ts +2 -0
  4. package/dist/cjs/bin/bash-complete.js +51 -0
  5. package/dist/cjs/bin/bash-complete.js.map +7 -0
  6. package/dist/cjs/bin/cli.d.ts +2 -0
  7. package/dist/cjs/bin/cli.js +34 -0
  8. package/dist/cjs/bin/cli.js.map +7 -0
  9. package/dist/cjs/cli/cli.d.ts +1 -0
  10. package/dist/cjs/cli/cli.js +49 -0
  11. package/dist/cjs/cli/cli.js.map +7 -0
  12. package/dist/cjs/cli/commands/generate/command.d.ts +1 -0
  13. package/dist/cjs/cli/commands/generate/command.js +80 -0
  14. package/dist/cjs/cli/commands/generate/command.js.map +7 -0
  15. package/dist/cjs/cli/commands/generate/impl.d.ts +8 -0
  16. package/dist/cjs/cli/commands/generate/impl.js +66 -0
  17. package/dist/cjs/cli/commands/generate/impl.js.map +7 -0
  18. package/dist/cjs/cli/context.d.ts +6 -0
  19. package/dist/cjs/cli/context.js +45 -0
  20. package/dist/cjs/cli/context.js.map +7 -0
  21. package/dist/cjs/config.d.ts +51 -0
  22. package/dist/cjs/config.js +75 -0
  23. package/dist/cjs/config.js.map +7 -0
  24. package/dist/cjs/file-builder.d.ts +13 -0
  25. package/dist/cjs/file-builder.js +83 -0
  26. package/dist/cjs/file-builder.js.map +7 -0
  27. package/dist/cjs/generate-utils.d.ts +1 -0
  28. package/dist/cjs/generate-utils.js +187 -0
  29. package/dist/cjs/generate-utils.js.map +7 -0
  30. package/dist/cjs/index.d.ts +8 -0
  31. package/dist/cjs/index.js +124 -0
  32. package/dist/cjs/index.js.map +7 -0
  33. package/dist/cjs/move-module-builder.d.ts +26 -0
  34. package/dist/cjs/move-module-builder.js +464 -0
  35. package/dist/cjs/move-module-builder.js.map +7 -0
  36. package/dist/cjs/package.json +5 -0
  37. package/dist/cjs/render-types.d.ts +19 -0
  38. package/dist/cjs/render-types.js +313 -0
  39. package/dist/cjs/render-types.js.map +7 -0
  40. package/dist/cjs/summary.d.ts +3 -0
  41. package/dist/cjs/summary.js +218 -0
  42. package/dist/cjs/summary.js.map +7 -0
  43. package/dist/cjs/types/deserialized.d.ts +89 -0
  44. package/dist/cjs/types/deserialized.js +17 -0
  45. package/dist/cjs/types/deserialized.js.map +7 -0
  46. package/dist/cjs/types/summary.d.ts +105 -0
  47. package/dist/cjs/types/summary.js +17 -0
  48. package/dist/cjs/types/summary.js.map +7 -0
  49. package/dist/cjs/utils.d.ts +22 -0
  50. package/dist/cjs/utils.js +164 -0
  51. package/dist/cjs/utils.js.map +7 -0
  52. package/dist/esm/bin/bash-complete.d.ts +2 -0
  53. package/dist/esm/bin/bash-complete.js +31 -0
  54. package/dist/esm/bin/bash-complete.js.map +7 -0
  55. package/dist/esm/bin/cli.d.ts +2 -0
  56. package/dist/esm/bin/cli.js +32 -0
  57. package/dist/esm/bin/cli.js.map +7 -0
  58. package/dist/esm/cli/cli.d.ts +1 -0
  59. package/dist/esm/cli/cli.js +29 -0
  60. package/dist/esm/cli/cli.js.map +7 -0
  61. package/dist/esm/cli/commands/generate/command.d.ts +1 -0
  62. package/dist/esm/cli/commands/generate/command.js +50 -0
  63. package/dist/esm/cli/commands/generate/command.js.map +7 -0
  64. package/dist/esm/cli/commands/generate/impl.d.ts +8 -0
  65. package/dist/esm/cli/commands/generate/impl.js +46 -0
  66. package/dist/esm/cli/commands/generate/impl.js.map +7 -0
  67. package/dist/esm/cli/context.d.ts +6 -0
  68. package/dist/esm/cli/context.js +15 -0
  69. package/dist/esm/cli/context.js.map +7 -0
  70. package/dist/esm/config.d.ts +51 -0
  71. package/dist/esm/config.js +45 -0
  72. package/dist/esm/config.js.map +7 -0
  73. package/dist/esm/file-builder.d.ts +13 -0
  74. package/dist/esm/file-builder.js +63 -0
  75. package/dist/esm/file-builder.js.map +7 -0
  76. package/dist/esm/generate-utils.d.ts +1 -0
  77. package/dist/esm/generate-utils.js +167 -0
  78. package/dist/esm/generate-utils.js.map +7 -0
  79. package/dist/esm/index.d.ts +8 -0
  80. package/dist/esm/index.js +104 -0
  81. package/dist/esm/index.js.map +7 -0
  82. package/dist/esm/move-module-builder.d.ts +26 -0
  83. package/dist/esm/move-module-builder.js +457 -0
  84. package/dist/esm/move-module-builder.js.map +7 -0
  85. package/dist/esm/package.json +5 -0
  86. package/dist/esm/render-types.d.ts +19 -0
  87. package/dist/esm/render-types.js +293 -0
  88. package/dist/esm/render-types.js.map +7 -0
  89. package/dist/esm/summary.d.ts +3 -0
  90. package/dist/esm/summary.js +198 -0
  91. package/dist/esm/summary.js.map +7 -0
  92. package/dist/esm/types/deserialized.d.ts +89 -0
  93. package/dist/esm/types/deserialized.js +1 -0
  94. package/dist/esm/types/deserialized.js.map +7 -0
  95. package/dist/esm/types/summary.d.ts +105 -0
  96. package/dist/esm/types/summary.js +1 -0
  97. package/dist/esm/types/summary.js.map +7 -0
  98. package/dist/esm/utils.d.ts +22 -0
  99. package/dist/esm/utils.js +134 -0
  100. package/dist/esm/utils.js.map +7 -0
  101. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  102. package/dist/tsconfig.tsbuildinfo +1 -0
  103. package/package.json +70 -0
  104. package/src/bin/bash-complete.ts +35 -0
  105. package/src/bin/cli.ts +40 -0
  106. package/src/cli/cli.ts +29 -0
  107. package/src/cli/commands/generate/command.ts +50 -0
  108. package/src/cli/commands/generate/impl.ts +66 -0
  109. package/src/cli/context.ts +21 -0
  110. package/src/config.ts +54 -0
  111. package/src/file-builder.ts +74 -0
  112. package/src/generate-utils.ts +163 -0
  113. package/src/index.ts +131 -0
  114. package/src/move-module-builder.ts +599 -0
  115. package/src/render-types.ts +349 -0
  116. package/src/summary.ts +242 -0
  117. package/src/types/deserialized.ts +107 -0
  118. package/src/types/summary.ts +144 -0
  119. package/src/utils.ts +180 -0
@@ -0,0 +1,313 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var render_types_exports = {};
20
+ __export(render_types_exports, {
21
+ HANEUL_FRAMEWORK_ADDRESS: () => HANEUL_FRAMEWORK_ADDRESS,
22
+ HANEUL_SYSTEM_ADDRESS: () => HANEUL_SYSTEM_ADDRESS,
23
+ MOVE_STDLIB_ADDRESS: () => MOVE_STDLIB_ADDRESS,
24
+ getSafeName: () => getSafeName,
25
+ isPureSignature: () => isPureSignature,
26
+ renderTypeSignature: () => renderTypeSignature,
27
+ usesBcs: () => usesBcs
28
+ });
29
+ module.exports = __toCommonJS(render_types_exports);
30
+ var import_utils = require("@haneullabs/haneul/utils");
31
+ const MOVE_STDLIB_ADDRESS = (0, import_utils.normalizeHaneulAddress)("0x1");
32
+ const HANEUL_FRAMEWORK_ADDRESS = (0, import_utils.normalizeHaneulAddress)("0x2");
33
+ const HANEUL_SYSTEM_ADDRESS = (0, import_utils.normalizeHaneulAddress)("0x3");
34
+ function renderTypeSignature(type, options) {
35
+ if (options.onBcsType) {
36
+ if (usesBcs(type, options)) {
37
+ options.onBcsType();
38
+ }
39
+ }
40
+ switch (type) {
41
+ case "address":
42
+ switch (options.format) {
43
+ case "typescriptArg":
44
+ return "string";
45
+ case "typeTag":
46
+ return `address`;
47
+ case "bcs":
48
+ return "bcs.Address";
49
+ default:
50
+ throw new Error(`Unknown format: ${options.format}`);
51
+ }
52
+ case "bool":
53
+ switch (options.format) {
54
+ case "typescriptArg":
55
+ return "boolean";
56
+ case "typeTag":
57
+ return `bool`;
58
+ case "bcs":
59
+ return "bcs.bool()";
60
+ default:
61
+ throw new Error(`Unknown format: ${options.format}`);
62
+ }
63
+ case "u8":
64
+ case "u16":
65
+ case "u32":
66
+ switch (options.format) {
67
+ case "typescriptArg":
68
+ return "number";
69
+ case "typeTag":
70
+ return type.toLowerCase();
71
+ case "bcs":
72
+ return `bcs.${type.toLowerCase()}()`;
73
+ default:
74
+ throw new Error(`Unknown format: ${options.format}`);
75
+ }
76
+ case "u64":
77
+ case "u128":
78
+ case "u256":
79
+ switch (options.format) {
80
+ case "typescriptArg":
81
+ return `number | bigint`;
82
+ case "typeTag":
83
+ return type.toLowerCase();
84
+ case "bcs":
85
+ return `bcs.${type.toLowerCase()}()`;
86
+ default:
87
+ throw new Error(`Unknown format: ${options.format}`);
88
+ }
89
+ case "signer":
90
+ throw new Error("Signer is not supported");
91
+ case "_":
92
+ throw new Error("Macro placeholder is not supported");
93
+ }
94
+ if ("Datatype" in type) {
95
+ return renderDataType(type.Datatype, options);
96
+ }
97
+ if ("Reference" in type) {
98
+ return renderTypeSignature(type.Reference[1], options);
99
+ }
100
+ if ("vector" in type) {
101
+ switch (options.format) {
102
+ case "typescriptArg":
103
+ return `${renderTypeSignature(type.vector, options)}[]`;
104
+ case "typeTag":
105
+ return `vector<${renderTypeSignature(type.vector, options)}>`;
106
+ case "bcs":
107
+ return `bcs.vector(${renderTypeSignature(type.vector, options)})`;
108
+ default:
109
+ throw new Error(`Unknown format: ${options.format}`);
110
+ }
111
+ }
112
+ if ("TypeParameter" in type) {
113
+ options.onTypeParameter?.(type.TypeParameter);
114
+ switch (options.format) {
115
+ case "typescriptArg":
116
+ return options.typeParameters?.[type.TypeParameter]?.name ?? `T${type.TypeParameter}`;
117
+ case "typeTag":
118
+ return `\${options.typeArguments[${type.TypeParameter}]}`;
119
+ case "bcs":
120
+ return `typeParameters[${type.TypeParameter}]`;
121
+ default:
122
+ throw new Error(`Unknown format: ${options.format}`);
123
+ }
124
+ }
125
+ if ("NamedTypeParameter" in type) {
126
+ options.onTypeParameter?.(type.NamedTypeParameter);
127
+ const index = options.typeParameters?.findIndex((p) => p.name === type.NamedTypeParameter) ?? -1;
128
+ if (index === -1) {
129
+ throw new Error(`Named type parameter ${type.NamedTypeParameter} not found`);
130
+ }
131
+ switch (options.format) {
132
+ case "typescriptArg":
133
+ return type.NamedTypeParameter;
134
+ case "typeTag":
135
+ return `\${options.typeArguments[${index}]}`;
136
+ case "bcs":
137
+ return `typeParameters[${index}]`;
138
+ default:
139
+ throw new Error(`Unknown format: ${options.format}`);
140
+ }
141
+ }
142
+ throw new Error(`Unknown type signature: ${JSON.stringify(type, null, 2)}`);
143
+ }
144
+ function usesBcs(type, options) {
145
+ if (typeof type === "string") {
146
+ return true;
147
+ }
148
+ if ("Reference" in type) {
149
+ return usesBcs(type.Reference[1], options);
150
+ }
151
+ if ("Datatype" in type) {
152
+ return isPureDataType(type.Datatype, options);
153
+ }
154
+ if ("vector" in type) {
155
+ return true;
156
+ }
157
+ return false;
158
+ }
159
+ function isPureSignature(type, options) {
160
+ if (typeof type === "string") {
161
+ return true;
162
+ }
163
+ if ("Reference" in type) {
164
+ return isPureSignature(type.Reference[1], options);
165
+ }
166
+ if ("Datatype" in type) {
167
+ return isPureDataType(type.Datatype, options);
168
+ }
169
+ if ("vector" in type) {
170
+ return isPureSignature(type.vector, options);
171
+ }
172
+ if ("TypeParameter" in type) {
173
+ return false;
174
+ }
175
+ if ("NamedTypeParameter" in type) {
176
+ return false;
177
+ }
178
+ throw new Error(`Unknown type signature: ${JSON.stringify(type, null, 2)}`);
179
+ }
180
+ function isPureDataType(type, options) {
181
+ const address = options.resolveAddress(type.module.address);
182
+ if (address === MOVE_STDLIB_ADDRESS) {
183
+ if ((type.module.name === "ascii" || type.module.name === "string") && type.name === "String") {
184
+ return true;
185
+ }
186
+ if (type.module.name === "option" && type.name === "Option") {
187
+ return true;
188
+ }
189
+ }
190
+ if (address === HANEUL_FRAMEWORK_ADDRESS) {
191
+ if (type.module.name === "object" && type.name === "ID") {
192
+ return true;
193
+ }
194
+ }
195
+ return false;
196
+ }
197
+ function renderDataType(type, options) {
198
+ const address = options.resolveAddress(type.module.address);
199
+ if (options.format === "typeTag") {
200
+ const typeArgs = type.type_arguments.map((type2) => renderTypeSignature(type2.argument, options));
201
+ if (typeArgs.length === 0) {
202
+ return `${address === options.resolveAddress(options.summary.id.address) ? "${packageAddress}" : address}::${type.module.name}::${type.name}`;
203
+ }
204
+ return `${address === options.resolveAddress(options.summary.id.address) ? "${packageAddress}" : address}::${type.module.name}::${type.name}<${typeArgs.join(", ")}>`;
205
+ }
206
+ if (address === MOVE_STDLIB_ADDRESS) {
207
+ if ((type.module.name === "ascii" || type.module.name === "string") && type.name === "String") {
208
+ switch (options.format) {
209
+ case "typescriptArg":
210
+ return "string";
211
+ case "bcs":
212
+ return "bcs.string()";
213
+ default:
214
+ throw new Error(`Unknown format: ${options.format}`);
215
+ }
216
+ }
217
+ if (type.module.name === "option" && type.name === "Option") {
218
+ switch (options.format) {
219
+ case "typescriptArg":
220
+ if (isPureDataType(type, options)) {
221
+ return `${renderTypeSignature(type.type_arguments[0].argument, options)} | null`;
222
+ }
223
+ break;
224
+ case "bcs":
225
+ return `bcs.option(${renderTypeSignature(type.type_arguments[0].argument, options)})`;
226
+ default:
227
+ throw new Error(`Unknown format: ${options.format}`);
228
+ }
229
+ }
230
+ }
231
+ if (address === HANEUL_FRAMEWORK_ADDRESS) {
232
+ if (type.module.name === "object" && type.name === "ID") {
233
+ switch (options.format) {
234
+ case "typescriptArg":
235
+ return "string";
236
+ case "bcs":
237
+ return "bcs.Address";
238
+ default:
239
+ throw new Error(`Unknown format: ${options.format}`);
240
+ }
241
+ }
242
+ }
243
+ const isCurrentModule = address === options.resolveAddress(options.summary.id.address) && type.module.name === options.summary.id.name;
244
+ const importName = options.onDependency?.(type.module.address, type.module.name, type.name);
245
+ const typeNameRef = isCurrentModule ? type.name : `${importName ?? getSafeName(type.module.name)}.${getSafeName(type.name)}`;
246
+ const filteredTypeArguments = type.type_arguments.filter((arg) => !arg.phantom);
247
+ switch (options.format) {
248
+ case "typescriptArg":
249
+ return "string";
250
+ case "bcs":
251
+ if (filteredTypeArguments.length === 0) {
252
+ return typeNameRef;
253
+ }
254
+ return `${typeNameRef}(
255
+ ${filteredTypeArguments.map((type2) => renderTypeSignature(type2.argument, options)).join(", ")})`;
256
+ default:
257
+ throw new Error(`Unknown format: ${options.format}`);
258
+ }
259
+ }
260
+ const JS_RESERVED_NAMES = [
261
+ "new",
262
+ "delete",
263
+ "class",
264
+ "function",
265
+ "import",
266
+ "export",
267
+ "return",
268
+ "this",
269
+ "super",
270
+ "arguments",
271
+ "eval",
272
+ "void",
273
+ "typeof",
274
+ "instanceof",
275
+ "delete",
276
+ "in",
277
+ "from",
278
+ "of",
279
+ "as",
280
+ "async",
281
+ "await",
282
+ "break",
283
+ "case",
284
+ "catch",
285
+ "continue",
286
+ "debugger",
287
+ "default",
288
+ "do",
289
+ "else",
290
+ "finally",
291
+ "for",
292
+ "function",
293
+ "if",
294
+ "import",
295
+ "in",
296
+ "instanceof",
297
+ "new",
298
+ "return",
299
+ "switch",
300
+ "throw",
301
+ "try",
302
+ "typeof",
303
+ "var",
304
+ "void",
305
+ "while",
306
+ "with",
307
+ "yield",
308
+ "package"
309
+ ];
310
+ function getSafeName(name) {
311
+ return JS_RESERVED_NAMES.includes(name) ? `_${name}` : name;
312
+ }
313
+ //# sourceMappingURL=render-types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/render-types.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { normalizeHaneulAddress } from '@haneullabs/haneul/utils';\n\nimport type { Datatype, ModuleSummary, Type, TypeParameter } from './types/summary.js';\n\nexport const MOVE_STDLIB_ADDRESS = normalizeHaneulAddress('0x1');\nexport const HANEUL_FRAMEWORK_ADDRESS = normalizeHaneulAddress('0x2');\nexport const HANEUL_SYSTEM_ADDRESS = normalizeHaneulAddress('0x3');\n\ntype TypeSignatureFormat = 'typescriptArg' | 'bcs' | 'typeTag';\ninterface RenderTypeSignatureOptions {\n\tformat: TypeSignatureFormat;\n\tsummary: ModuleSummary;\n\ttypeParameters?: TypeParameter[];\n\tonDependency?: (address: string, module: string, type: string) => string | undefined;\n\tonBcsType?: () => void;\n\tonTypeParameter?: (typeParameter: number | string) => void;\n\tresolveAddress: (address: string) => string;\n}\n\nexport function renderTypeSignature(type: Type, options: RenderTypeSignatureOptions): string {\n\tif (options.onBcsType) {\n\t\tif (usesBcs(type, options)) {\n\t\t\toptions.onBcsType();\n\t\t}\n\t}\n\n\tswitch (type) {\n\t\tcase 'address':\n\t\t\tswitch (options.format) {\n\t\t\t\tcase 'typescriptArg':\n\t\t\t\t\treturn 'string';\n\t\t\t\tcase 'typeTag':\n\t\t\t\t\treturn `address`;\n\t\t\t\tcase 'bcs':\n\t\t\t\t\treturn 'bcs.Address';\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t\t\t}\n\t\tcase 'bool':\n\t\t\tswitch (options.format) {\n\t\t\t\tcase 'typescriptArg':\n\t\t\t\t\treturn 'boolean';\n\t\t\t\tcase 'typeTag':\n\t\t\t\t\treturn `bool`;\n\t\t\t\tcase 'bcs':\n\t\t\t\t\treturn 'bcs.bool()';\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t\t\t}\n\t\tcase 'u8':\n\t\tcase 'u16':\n\t\tcase 'u32':\n\t\t\tswitch (options.format) {\n\t\t\t\tcase 'typescriptArg':\n\t\t\t\t\treturn 'number';\n\t\t\t\tcase 'typeTag':\n\t\t\t\t\treturn type.toLowerCase();\n\t\t\t\tcase 'bcs':\n\t\t\t\t\treturn `bcs.${type.toLowerCase()}()`;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t\t\t}\n\t\tcase 'u64':\n\t\tcase 'u128':\n\t\tcase 'u256':\n\t\t\tswitch (options.format) {\n\t\t\t\tcase 'typescriptArg':\n\t\t\t\t\treturn `number | bigint`;\n\t\t\t\tcase 'typeTag':\n\t\t\t\t\treturn type.toLowerCase();\n\t\t\t\tcase 'bcs':\n\t\t\t\t\treturn `bcs.${type.toLowerCase()}()`;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t\t\t}\n\t\tcase 'signer':\n\t\t\tthrow new Error('Signer is not supported');\n\t\tcase '_':\n\t\t\tthrow new Error('Macro placeholder is not supported');\n\t}\n\n\tif ('Datatype' in type) {\n\t\treturn renderDataType(type.Datatype, options);\n\t}\n\n\tif ('Reference' in type) {\n\t\treturn renderTypeSignature(type.Reference[1], options);\n\t}\n\n\tif ('vector' in type) {\n\t\tswitch (options.format) {\n\t\t\tcase 'typescriptArg':\n\t\t\t\treturn `${renderTypeSignature(type.vector, options)}[]`;\n\t\t\tcase 'typeTag':\n\t\t\t\treturn `vector<${renderTypeSignature(type.vector, options)}>`;\n\t\t\tcase 'bcs':\n\t\t\t\treturn `bcs.vector(${renderTypeSignature(type.vector, options)})`;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t\t}\n\t}\n\n\tif ('TypeParameter' in type) {\n\t\toptions.onTypeParameter?.(type.TypeParameter);\n\t\tswitch (options.format) {\n\t\t\tcase 'typescriptArg':\n\t\t\t\treturn options.typeParameters?.[type.TypeParameter]?.name ?? `T${type.TypeParameter}`;\n\t\t\tcase 'typeTag':\n\t\t\t\treturn `\\${options.typeArguments[${type.TypeParameter}]}`;\n\t\t\tcase 'bcs':\n\t\t\t\treturn `typeParameters[${type.TypeParameter}]`;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t\t}\n\t}\n\n\tif ('NamedTypeParameter' in type) {\n\t\toptions.onTypeParameter?.(type.NamedTypeParameter);\n\t\tconst index =\n\t\t\toptions.typeParameters?.findIndex((p) => p.name === type.NamedTypeParameter) ?? -1;\n\n\t\tif (index === -1) {\n\t\t\tthrow new Error(`Named type parameter ${type.NamedTypeParameter} not found`);\n\t\t}\n\n\t\tswitch (options.format) {\n\t\t\tcase 'typescriptArg':\n\t\t\t\treturn type.NamedTypeParameter;\n\t\t\tcase 'typeTag':\n\t\t\t\treturn `\\${options.typeArguments[${index}]}`;\n\t\t\tcase 'bcs':\n\t\t\t\treturn `typeParameters[${index}]`;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t\t}\n\t}\n\n\tthrow new Error(`Unknown type signature: ${JSON.stringify(type, null, 2)}`);\n}\n\nexport function usesBcs(type: Type, options: RenderTypeSignatureOptions): boolean {\n\tif (typeof type === 'string') {\n\t\treturn true;\n\t}\n\n\tif ('Reference' in type) {\n\t\treturn usesBcs(type.Reference[1], options);\n\t}\n\n\tif ('Datatype' in type) {\n\t\treturn isPureDataType(type.Datatype, options);\n\t}\n\n\tif ('vector' in type) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nexport function isPureSignature(type: Type, options: RenderTypeSignatureOptions): boolean {\n\tif (typeof type === 'string') {\n\t\treturn true;\n\t}\n\n\tif ('Reference' in type) {\n\t\treturn isPureSignature(type.Reference[1], options);\n\t}\n\n\tif ('Datatype' in type) {\n\t\treturn isPureDataType(type.Datatype, options);\n\t}\n\n\tif ('vector' in type) {\n\t\treturn isPureSignature(type.vector, options);\n\t}\n\n\tif ('TypeParameter' in type) {\n\t\treturn false;\n\t}\n\n\tif ('NamedTypeParameter' in type) {\n\t\treturn false;\n\t}\n\n\tthrow new Error(`Unknown type signature: ${JSON.stringify(type, null, 2)}`);\n}\n\nfunction isPureDataType(type: Datatype, options: RenderTypeSignatureOptions) {\n\tconst address = options.resolveAddress(type.module.address);\n\n\tif (address === MOVE_STDLIB_ADDRESS) {\n\t\tif ((type.module.name === 'ascii' || type.module.name === 'string') && type.name === 'String') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (type.module.name === 'option' && type.name === 'Option') {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tif (address === HANEUL_FRAMEWORK_ADDRESS) {\n\t\tif (type.module.name === 'object' && type.name === 'ID') {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nfunction renderDataType(type: Datatype, options: RenderTypeSignatureOptions): string {\n\tconst address = options.resolveAddress(type.module.address);\n\n\tif (options.format === 'typeTag') {\n\t\tconst typeArgs = type.type_arguments.map((type) => renderTypeSignature(type.argument, options));\n\n\t\tif (typeArgs.length === 0) {\n\t\t\t// eslint-disable-next-line no-template-curly-in-string\n\t\t\treturn `${address === options.resolveAddress(options.summary.id.address) ? '${packageAddress}' : address}::${type.module.name}::${type.name}`;\n\t\t}\n\n\t\t// eslint-disable-next-line no-template-curly-in-string\n\t\treturn `${address === options.resolveAddress(options.summary.id.address) ? '${packageAddress}' : address}::${type.module.name}::${type.name}<${typeArgs.join(', ')}>`;\n\t}\n\n\tif (address === MOVE_STDLIB_ADDRESS) {\n\t\tif ((type.module.name === 'ascii' || type.module.name === 'string') && type.name === 'String') {\n\t\t\tswitch (options.format) {\n\t\t\t\tcase 'typescriptArg':\n\t\t\t\t\treturn 'string';\n\t\t\t\tcase 'bcs':\n\t\t\t\t\treturn 'bcs.string()';\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t\t\t}\n\t\t}\n\n\t\tif (type.module.name === 'option' && type.name === 'Option') {\n\t\t\tswitch (options.format) {\n\t\t\t\tcase 'typescriptArg':\n\t\t\t\t\tif (isPureDataType(type, options)) {\n\t\t\t\t\t\treturn `${renderTypeSignature(type.type_arguments[0].argument, options)} | null`;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'bcs':\n\t\t\t\t\treturn `bcs.option(${renderTypeSignature(type.type_arguments[0].argument, options)})`;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (address === HANEUL_FRAMEWORK_ADDRESS) {\n\t\tif (type.module.name === 'object' && type.name === 'ID') {\n\t\t\tswitch (options.format) {\n\t\t\t\tcase 'typescriptArg':\n\t\t\t\t\treturn 'string';\n\t\t\t\tcase 'bcs':\n\t\t\t\t\treturn 'bcs.Address';\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst isCurrentModule =\n\t\taddress === options.resolveAddress(options.summary.id.address) &&\n\t\ttype.module.name === options.summary.id.name;\n\n\tconst importName = options.onDependency?.(type.module.address, type.module.name, type.name);\n\n\tconst typeNameRef = isCurrentModule\n\t\t? type.name\n\t\t: `${importName ?? getSafeName(type.module.name)}.${getSafeName(type.name)}`;\n\n\tconst filteredTypeArguments = type.type_arguments.filter((arg) => !arg.phantom);\n\n\tswitch (options.format) {\n\t\tcase 'typescriptArg':\n\t\t\treturn 'string';\n\t\tcase 'bcs':\n\t\t\tif (filteredTypeArguments.length === 0) {\n\t\t\t\treturn typeNameRef;\n\t\t\t}\n\n\t\t\treturn `${typeNameRef}(\n ${filteredTypeArguments.map((type) => renderTypeSignature(type.argument, options)).join(', ')})`;\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown format: ${options.format}`);\n\t}\n}\n\nconst JS_RESERVED_NAMES = [\n\t'new',\n\t'delete',\n\t'class',\n\t'function',\n\t'import',\n\t'export',\n\t'return',\n\t'this',\n\t'super',\n\t'arguments',\n\t'eval',\n\t'void',\n\t'typeof',\n\t'instanceof',\n\t'delete',\n\t'in',\n\t'from',\n\t'of',\n\t'as',\n\t'async',\n\t'await',\n\t'break',\n\t'case',\n\t'catch',\n\t'continue',\n\t'debugger',\n\t'default',\n\t'do',\n\t'else',\n\t'finally',\n\t'for',\n\t'function',\n\t'if',\n\t'import',\n\t'in',\n\t'instanceof',\n\t'new',\n\t'return',\n\t'switch',\n\t'throw',\n\t'try',\n\t'typeof',\n\t'var',\n\t'void',\n\t'while',\n\t'with',\n\t'yield',\n\t'package',\n];\n\nexport function getSafeName(name: string) {\n\treturn JS_RESERVED_NAMES.includes(name) ? `_${name}` : name;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["type"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import type { DeserializedModule } from './types/deserialized.js';
2
+ import type { ModuleSummary } from './types/summary.js';
3
+ export declare function summaryFromDeserializedModule(mod: DeserializedModule): ModuleSummary;
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var summary_exports = {};
20
+ __export(summary_exports, {
21
+ summaryFromDeserializedModule: () => summaryFromDeserializedModule
22
+ });
23
+ module.exports = __toCommonJS(summary_exports);
24
+ var import_utils = require("@haneullabs/haneul/utils");
25
+ function summaryFromDeserializedModule(mod) {
26
+ const moduleHandle = mod.module_handles[mod.self_module_handle_idx];
27
+ const summary = {
28
+ id: {
29
+ address: (0, import_utils.normalizeHaneulAddress)(mod.address_identifiers[moduleHandle.address]),
30
+ name: mod.identifiers[moduleHandle.name]
31
+ },
32
+ immediate_dependencies: mod.module_handles.map((m) => ({
33
+ address: (0, import_utils.normalizeHaneulAddress)(mod.address_identifiers[m.address]),
34
+ name: mod.identifiers[m.name]
35
+ })),
36
+ functions: Object.fromEntries(
37
+ Array.from(
38
+ { length: mod.function_defs.length },
39
+ (_, i) => functionSummaryFromDeserializedFunction(mod, i)
40
+ )
41
+ ),
42
+ structs: Object.fromEntries(
43
+ Array.from(
44
+ { length: mod.struct_defs.length },
45
+ (_, i) => structSummaryFromDeserializedStruct(mod, i)
46
+ )
47
+ ),
48
+ enums: Object.fromEntries(
49
+ Array.from(
50
+ { length: mod.enum_defs.length },
51
+ (_, i) => enumSummaryFromDeserializedEnum(mod, i)
52
+ )
53
+ )
54
+ };
55
+ return summary;
56
+ }
57
+ function functionSummaryFromDeserializedFunction(mod, index) {
58
+ const def = mod.function_defs[index];
59
+ const handle = mod.function_handles[def.function];
60
+ const name = mod.identifiers[handle.name];
61
+ const functionSummary = {
62
+ index,
63
+ visibility: def.visibility,
64
+ entry: def.is_entry,
65
+ type_parameters: handle.type_parameters.map((p) => {
66
+ return {
67
+ phantom: p.is_phantom,
68
+ constraints: []
69
+ };
70
+ }),
71
+ parameters: mod.signatures[handle.parameters].map((type) => ({
72
+ type_: typeFromTypeSignature(mod, type)
73
+ })),
74
+ return_: mod.signatures[handle.return_].map((type) => typeFromTypeSignature(mod, type))
75
+ };
76
+ return [name, functionSummary];
77
+ }
78
+ function structSummaryFromDeserializedStruct(mod, index) {
79
+ const def = mod.struct_defs[index];
80
+ const handle = mod.datatype_handles[def.struct_handle];
81
+ const name = mod.identifiers[handle.name];
82
+ const structSummary = {
83
+ index,
84
+ abilities: [],
85
+ type_parameters: handle.type_parameters.map((p) => {
86
+ return {
87
+ phantom: p.is_phantom,
88
+ constraints: []
89
+ };
90
+ }),
91
+ fields: {
92
+ positional_fields: false,
93
+ fields: Object.fromEntries(
94
+ (def.field_information.Declared ?? []).map(
95
+ (field) => fieldSummaryFromDeserializedField(mod, field)
96
+ )
97
+ )
98
+ }
99
+ };
100
+ return [name, structSummary];
101
+ }
102
+ function enumSummaryFromDeserializedEnum(mod, index) {
103
+ const def = mod.enum_defs[index];
104
+ const handle = mod.datatype_handles[def.enum_handle];
105
+ const name = mod.identifiers[handle.name];
106
+ const enumSummary = {
107
+ index,
108
+ abilities: [],
109
+ type_parameters: handle.type_parameters.map((p) => {
110
+ return {
111
+ phantom: p.is_phantom,
112
+ constraints: []
113
+ };
114
+ }),
115
+ variants: Object.fromEntries(
116
+ def.variants.map((variant) => variantSummaryFromDeserializedVariant(mod, variant))
117
+ )
118
+ };
119
+ return [name, enumSummary];
120
+ }
121
+ function variantSummaryFromDeserializedVariant(mod, variant) {
122
+ return [
123
+ mod.identifiers[variant.variant_name],
124
+ {
125
+ index: variant.variant_name,
126
+ fields: {
127
+ positional_fields: false,
128
+ fields: Object.fromEntries(
129
+ variant.fields.map((field) => fieldSummaryFromDeserializedField(mod, field))
130
+ )
131
+ }
132
+ }
133
+ ];
134
+ }
135
+ function fieldSummaryFromDeserializedField(mod, declared) {
136
+ const name = mod.identifiers[declared.name];
137
+ const type = typeFromTypeSignature(mod, declared.signature);
138
+ const field = {
139
+ index: declared.name,
140
+ type_: type
141
+ };
142
+ return [name, field];
143
+ }
144
+ function typeFromTypeSignature(mod, type) {
145
+ switch (type) {
146
+ case "U8":
147
+ return "u8";
148
+ case "U16":
149
+ return "u16";
150
+ case "U32":
151
+ return "u32";
152
+ case "U64":
153
+ return "u64";
154
+ case "U128":
155
+ return "u128";
156
+ case "U256":
157
+ return "u256";
158
+ case "Address":
159
+ return "address";
160
+ case "Bool":
161
+ return "bool";
162
+ }
163
+ if ("Datatype" in type) {
164
+ const handle = mod.datatype_handles[type.Datatype];
165
+ const module2 = mod.module_handles[handle.module];
166
+ return {
167
+ Datatype: {
168
+ module: {
169
+ address: (0, import_utils.normalizeHaneulAddress)(mod.address_identifiers[module2.address]),
170
+ name: mod.identifiers[module2.name]
171
+ },
172
+ name: mod.identifiers[handle.name],
173
+ type_arguments: []
174
+ }
175
+ };
176
+ }
177
+ if ("DatatypeInstantiation" in type) {
178
+ const handle = mod.datatype_handles[type.DatatypeInstantiation[0]];
179
+ const module2 = mod.module_handles[handle.module];
180
+ return {
181
+ Datatype: {
182
+ module: {
183
+ address: (0, import_utils.normalizeHaneulAddress)(mod.address_identifiers[module2.address]),
184
+ name: mod.identifiers[module2.name]
185
+ },
186
+ name: mod.identifiers[handle.name],
187
+ type_arguments: type.DatatypeInstantiation[1].map((t, i) => {
188
+ return {
189
+ phantom: handle.type_parameters[i].is_phantom,
190
+ argument: typeFromTypeSignature(mod, t)
191
+ };
192
+ })
193
+ }
194
+ };
195
+ }
196
+ if ("Vector" in type) {
197
+ return {
198
+ vector: typeFromTypeSignature(mod, type.Vector)
199
+ };
200
+ }
201
+ if ("TypeParameter" in type) {
202
+ return {
203
+ TypeParameter: type.TypeParameter
204
+ };
205
+ }
206
+ if ("Reference" in type) {
207
+ return {
208
+ Reference: [false, typeFromTypeSignature(mod, type.Reference)]
209
+ };
210
+ }
211
+ if ("MutableReference" in type) {
212
+ return {
213
+ Reference: [true, typeFromTypeSignature(mod, type.MutableReference)]
214
+ };
215
+ }
216
+ throw new Error(`Unknown type: ${type}`);
217
+ }
218
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/summary.ts"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { normalizeHaneulAddress } from '@haneullabs/haneul/utils';\nimport type { DeserializedModule, TypeSignature } from './types/deserialized.js';\nimport type {\n\tEnumSummary,\n\tField,\n\tFunctionSummary,\n\tModuleSummary,\n\tStructSummary,\n\tType,\n\tVariant,\n} from './types/summary.js';\n\nexport function summaryFromDeserializedModule(mod: DeserializedModule) {\n\tconst moduleHandle = mod.module_handles[mod.self_module_handle_idx];\n\tconst summary: ModuleSummary = {\n\t\tid: {\n\t\t\taddress: normalizeHaneulAddress(mod.address_identifiers[moduleHandle.address]),\n\t\t\tname: mod.identifiers[moduleHandle.name],\n\t\t},\n\t\timmediate_dependencies: mod.module_handles.map((m) => ({\n\t\t\taddress: normalizeHaneulAddress(mod.address_identifiers[m.address]),\n\t\t\tname: mod.identifiers[m.name],\n\t\t})),\n\t\tfunctions: Object.fromEntries(\n\t\t\tArray.from({ length: mod.function_defs.length }, (_, i) =>\n\t\t\t\tfunctionSummaryFromDeserializedFunction(mod, i),\n\t\t\t),\n\t\t),\n\t\tstructs: Object.fromEntries(\n\t\t\tArray.from({ length: mod.struct_defs.length }, (_, i) =>\n\t\t\t\tstructSummaryFromDeserializedStruct(mod, i),\n\t\t\t),\n\t\t),\n\t\tenums: Object.fromEntries(\n\t\t\tArray.from({ length: mod.enum_defs.length }, (_, i) =>\n\t\t\t\tenumSummaryFromDeserializedEnum(mod, i),\n\t\t\t),\n\t\t),\n\t};\n\n\treturn summary;\n}\n\nfunction functionSummaryFromDeserializedFunction(mod: DeserializedModule, index: number) {\n\tconst def = mod.function_defs[index];\n\tconst handle = mod.function_handles[def.function];\n\tconst name = mod.identifiers[handle.name];\n\n\tconst functionSummary: FunctionSummary = {\n\t\tindex,\n\t\tvisibility: def.visibility,\n\t\tentry: def.is_entry,\n\t\ttype_parameters: handle.type_parameters.map((p) => {\n\t\t\treturn {\n\t\t\t\tphantom: p.is_phantom,\n\t\t\t\tconstraints: [],\n\t\t\t};\n\t\t}),\n\t\tparameters: mod.signatures[handle.parameters].map((type) => ({\n\t\t\ttype_: typeFromTypeSignature(mod, type),\n\t\t})),\n\t\treturn_: mod.signatures[handle.return_].map((type) => typeFromTypeSignature(mod, type)),\n\t};\n\n\treturn [name, functionSummary];\n}\n\nfunction structSummaryFromDeserializedStruct(mod: DeserializedModule, index: number) {\n\tconst def = mod.struct_defs[index];\n\tconst handle = mod.datatype_handles[def.struct_handle];\n\tconst name = mod.identifiers[handle.name];\n\n\tconst structSummary: StructSummary = {\n\t\tindex,\n\t\tabilities: [],\n\t\ttype_parameters: handle.type_parameters.map((p) => {\n\t\t\treturn {\n\t\t\t\tphantom: p.is_phantom,\n\t\t\t\tconstraints: [],\n\t\t\t};\n\t\t}),\n\t\tfields: {\n\t\t\tpositional_fields: false,\n\t\t\tfields: Object.fromEntries(\n\t\t\t\t(def.field_information.Declared ?? []).map((field) =>\n\t\t\t\t\tfieldSummaryFromDeserializedField(mod, field),\n\t\t\t\t),\n\t\t\t),\n\t\t},\n\t};\n\n\treturn [name, structSummary];\n}\n\nfunction enumSummaryFromDeserializedEnum(mod: DeserializedModule, index: number) {\n\tconst def = mod.enum_defs[index];\n\tconst handle = mod.datatype_handles[def.enum_handle];\n\tconst name = mod.identifiers[handle.name];\n\n\tconst enumSummary: EnumSummary = {\n\t\tindex,\n\t\tabilities: [],\n\t\ttype_parameters: handle.type_parameters.map((p) => {\n\t\t\treturn {\n\t\t\t\tphantom: p.is_phantom,\n\t\t\t\tconstraints: [],\n\t\t\t};\n\t\t}),\n\t\tvariants: Object.fromEntries(\n\t\t\tdef.variants.map((variant) => variantSummaryFromDeserializedVariant(mod, variant)),\n\t\t),\n\t};\n\n\treturn [name, enumSummary];\n}\n\nfunction variantSummaryFromDeserializedVariant(\n\tmod: DeserializedModule,\n\tvariant: {\n\t\tvariant_name: number;\n\t\tfields: Array<{\n\t\t\tname: number;\n\t\t\tsignature: TypeSignature;\n\t\t}>;\n\t},\n): [string, Variant] {\n\treturn [\n\t\tmod.identifiers[variant.variant_name],\n\t\t{\n\t\t\tindex: variant.variant_name,\n\t\t\tfields: {\n\t\t\t\tpositional_fields: false,\n\t\t\t\tfields: Object.fromEntries(\n\t\t\t\t\tvariant.fields.map((field) => fieldSummaryFromDeserializedField(mod, field)),\n\t\t\t\t),\n\t\t\t},\n\t\t},\n\t];\n}\n\nfunction fieldSummaryFromDeserializedField(\n\tmod: DeserializedModule,\n\tdeclared: {\n\t\tname: number;\n\t\tsignature: TypeSignature;\n\t},\n) {\n\tconst name = mod.identifiers[declared.name];\n\tconst type = typeFromTypeSignature(mod, declared.signature);\n\n\tconst field: Field = {\n\t\tindex: declared.name,\n\t\ttype_: type,\n\t};\n\n\treturn [name, field];\n}\n\nfunction typeFromTypeSignature(mod: DeserializedModule, type: TypeSignature): Type {\n\tswitch (type) {\n\t\tcase 'U8':\n\t\t\treturn 'u8';\n\t\tcase 'U16':\n\t\t\treturn 'u16';\n\t\tcase 'U32':\n\t\t\treturn 'u32';\n\t\tcase 'U64':\n\t\t\treturn 'u64';\n\t\tcase 'U128':\n\t\t\treturn 'u128';\n\t\tcase 'U256':\n\t\t\treturn 'u256';\n\t\tcase 'Address':\n\t\t\treturn 'address';\n\t\tcase 'Bool':\n\t\t\treturn 'bool';\n\t}\n\n\tif ('Datatype' in type) {\n\t\tconst handle = mod.datatype_handles[type.Datatype];\n\t\tconst module = mod.module_handles[handle.module];\n\t\treturn {\n\t\t\tDatatype: {\n\t\t\t\tmodule: {\n\t\t\t\t\taddress: normalizeHaneulAddress(mod.address_identifiers[module.address]),\n\t\t\t\t\tname: mod.identifiers[module.name],\n\t\t\t\t},\n\t\t\t\tname: mod.identifiers[handle.name],\n\t\t\t\ttype_arguments: [],\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('DatatypeInstantiation' in type) {\n\t\tconst handle = mod.datatype_handles[type.DatatypeInstantiation[0]];\n\t\tconst module = mod.module_handles[handle.module];\n\t\treturn {\n\t\t\tDatatype: {\n\t\t\t\tmodule: {\n\t\t\t\t\taddress: normalizeHaneulAddress(mod.address_identifiers[module.address]),\n\t\t\t\t\tname: mod.identifiers[module.name],\n\t\t\t\t},\n\t\t\t\tname: mod.identifiers[handle.name],\n\t\t\t\ttype_arguments: type.DatatypeInstantiation[1].map((t, i) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tphantom: handle.type_parameters[i].is_phantom,\n\t\t\t\t\t\targument: typeFromTypeSignature(mod, t),\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\t}\n\n\tif ('Vector' in type) {\n\t\treturn {\n\t\t\tvector: typeFromTypeSignature(mod, type.Vector),\n\t\t};\n\t}\n\n\tif ('TypeParameter' in type) {\n\t\treturn {\n\t\t\tTypeParameter: type.TypeParameter,\n\t\t};\n\t}\n\n\tif ('Reference' in type) {\n\t\treturn {\n\t\t\tReference: [false, typeFromTypeSignature(mod, type.Reference)],\n\t\t};\n\t}\n\n\tif ('MutableReference' in type) {\n\t\treturn {\n\t\t\tReference: [true, typeFromTypeSignature(mod, type.MutableReference)],\n\t\t};\n\t}\n\n\tthrow new Error(`Unknown type: ${type}`);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["module"]
7
+ }