@pezkuwi/typegen 16.5.16 → 16.5.18

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 (307) hide show
  1. package/build/LICENSE +201 -0
  2. package/build/README.md +3 -0
  3. package/build/augment.js +2 -0
  4. package/build/bundle.js +2 -0
  5. package/build/cjs/augment.d.ts +2 -0
  6. package/build/cjs/augment.js +4 -0
  7. package/build/cjs/bundle.d.ts +2 -0
  8. package/build/cjs/bundle.js +7 -0
  9. package/build/cjs/extractChain.js +44 -0
  10. package/build/cjs/fromChain.js +95 -0
  11. package/build/cjs/fromDefs.js +82 -0
  12. package/build/cjs/generate/consts.d.ts +5 -0
  13. package/build/cjs/generate/consts.js +91 -0
  14. package/build/cjs/generate/errors.d.ts +4 -0
  15. package/build/cjs/generate/errors.js +59 -0
  16. package/build/cjs/generate/events.d.ts +5 -0
  17. package/build/cjs/generate/events.js +139 -0
  18. package/build/cjs/generate/index.js +23 -0
  19. package/build/cjs/generate/interfaceRegistry.d.ts +4 -0
  20. package/build/cjs/generate/interfaceRegistry.js +64 -0
  21. package/build/cjs/generate/lookup.d.ts +4 -0
  22. package/build/cjs/generate/lookup.js +240 -0
  23. package/build/cjs/generate/query.d.ts +5 -0
  24. package/build/cjs/generate/query.js +140 -0
  25. package/build/cjs/generate/rpc.d.ts +6 -0
  26. package/build/cjs/generate/rpc.js +115 -0
  27. package/build/cjs/generate/runtime.d.ts +7 -0
  28. package/build/cjs/generate/runtime.js +233 -0
  29. package/build/cjs/generate/tsDef.d.ts +16 -0
  30. package/build/cjs/generate/tsDef.js +254 -0
  31. package/build/cjs/generate/tx.d.ts +5 -0
  32. package/build/cjs/generate/tx.js +121 -0
  33. package/build/cjs/generate/types.d.ts +12 -0
  34. package/build/cjs/generate/types.js +16 -0
  35. package/build/cjs/index.js +5 -0
  36. package/build/cjs/interfacesTs.js +28 -0
  37. package/build/cjs/metadataMd.js +652 -0
  38. package/build/cjs/packageInfo.js +4 -0
  39. package/build/cjs/util/assert.js +15 -0
  40. package/build/cjs/util/derived.js +128 -0
  41. package/build/cjs/util/docs.js +10 -0
  42. package/build/cjs/util/file.js +33 -0
  43. package/build/cjs/util/formatting.js +237 -0
  44. package/build/cjs/util/imports.js +126 -0
  45. package/build/cjs/util/index.js +39 -0
  46. package/build/cjs/util/initMeta.js +22 -0
  47. package/build/cjs/util/register.js +10 -0
  48. package/build/cjs/util/wsMeta.js +60 -0
  49. package/build/extractChain.d.ts +1 -0
  50. package/build/extractChain.js +40 -0
  51. package/build/fromChain.d.ts +1 -0
  52. package/build/fromChain.js +91 -0
  53. package/build/fromDefs.d.ts +1 -0
  54. package/build/fromDefs.js +78 -0
  55. package/build/generate/consts.d.ts +5 -0
  56. package/build/generate/consts.js +87 -0
  57. package/build/generate/errors.d.ts +4 -0
  58. package/build/generate/errors.js +55 -0
  59. package/build/generate/events.d.ts +5 -0
  60. package/build/generate/events.js +135 -0
  61. package/build/generate/index.d.ts +10 -0
  62. package/build/generate/index.js +10 -0
  63. package/build/generate/interfaceRegistry.d.ts +4 -0
  64. package/build/generate/interfaceRegistry.js +59 -0
  65. package/build/generate/lookup.d.ts +4 -0
  66. package/build/generate/lookup.js +235 -0
  67. package/build/generate/query.d.ts +5 -0
  68. package/build/generate/query.js +136 -0
  69. package/build/generate/rpc.d.ts +6 -0
  70. package/build/generate/rpc.js +110 -0
  71. package/build/generate/runtime.d.ts +7 -0
  72. package/build/generate/runtime.js +228 -0
  73. package/build/generate/tsDef.d.ts +16 -0
  74. package/build/generate/tsDef.js +246 -0
  75. package/build/generate/tx.d.ts +5 -0
  76. package/build/generate/tx.js +117 -0
  77. package/build/generate/types.d.ts +12 -0
  78. package/build/generate/types.js +13 -0
  79. package/build/index.d.ts +2 -0
  80. package/build/index.js +2 -0
  81. package/build/interfacesTs.d.ts +1 -0
  82. package/build/interfacesTs.js +24 -0
  83. package/build/metadataMd.d.ts +1 -0
  84. package/build/metadataMd.js +648 -0
  85. package/build/package.json +548 -0
  86. package/build/packageDetect.d.ts +1 -0
  87. package/build/packageDetect.js +6 -0
  88. package/build/packageInfo.d.ts +6 -0
  89. package/build/packageInfo.js +1 -0
  90. package/build/scripts/pezkuwi-types-chain-info.mjs +7 -0
  91. package/build/scripts/pezkuwi-types-from-chain.mjs +7 -0
  92. package/build/scripts/pezkuwi-types-from-defs.mjs +7 -0
  93. package/build/scripts/pezkuwi-types-internal-interfaces.mjs +7 -0
  94. package/build/scripts/pezkuwi-types-internal-metadata.mjs +7 -0
  95. package/build/templates/calls.hbs +30 -0
  96. package/build/templates/consts.hbs +28 -0
  97. package/build/templates/docs.hbs +7 -0
  98. package/build/templates/errors.hbs +28 -0
  99. package/build/templates/events.hbs +28 -0
  100. package/build/templates/header.hbs +2 -0
  101. package/build/templates/interfaceRegistry.hbs +15 -0
  102. package/build/templates/lookup/defs-named.hbs +12 -0
  103. package/build/templates/lookup/defs.hbs +15 -0
  104. package/build/templates/lookup/index.hbs +3 -0
  105. package/build/templates/lookup/types.hbs +14 -0
  106. package/build/templates/query.hbs +29 -0
  107. package/build/templates/rpc.hbs +22 -0
  108. package/build/templates/tsDef/index.hbs +3 -0
  109. package/build/templates/tsDef/moduleTypes.hbs +10 -0
  110. package/build/templates/tsDef/types.hbs +7 -0
  111. package/build/templates/tx.hbs +30 -0
  112. package/build/util/assert.d.ts +2 -0
  113. package/build/util/assert.js +10 -0
  114. package/build/util/derived.d.ts +4 -0
  115. package/build/util/derived.js +125 -0
  116. package/build/util/docs.d.ts +1 -0
  117. package/build/util/docs.js +6 -0
  118. package/build/util/file.d.ts +2 -0
  119. package/build/util/file.js +28 -0
  120. package/build/util/formatting.d.ts +11 -0
  121. package/build/util/formatting.js +230 -0
  122. package/build/util/imports.d.ts +23 -0
  123. package/build/util/imports.js +121 -0
  124. package/build/util/index.d.ts +16 -0
  125. package/build/util/index.js +34 -0
  126. package/build/util/initMeta.d.ts +12 -0
  127. package/build/util/initMeta.js +19 -0
  128. package/build/util/register.d.ts +4 -0
  129. package/build/util/register.js +7 -0
  130. package/build/util/wsMeta.d.ts +4 -0
  131. package/build/util/wsMeta.js +55 -0
  132. package/build-tsc-cjs/packageDetect.js +8 -0
  133. package/{cjs → build-tsc-cjs}/packageInfo.js +1 -1
  134. package/build-tsc-esm/generate/consts.js +87 -0
  135. package/build-tsc-esm/generate/errors.js +55 -0
  136. package/build-tsc-esm/generate/events.js +135 -0
  137. package/build-tsc-esm/generate/interfaceRegistry.js +59 -0
  138. package/build-tsc-esm/generate/lookup.js +235 -0
  139. package/build-tsc-esm/generate/query.js +136 -0
  140. package/build-tsc-esm/generate/rpc.js +110 -0
  141. package/build-tsc-esm/generate/runtime.js +228 -0
  142. package/build-tsc-esm/generate/tsDef.js +246 -0
  143. package/build-tsc-esm/generate/tx.js +117 -0
  144. package/build-tsc-esm/generate/types.js +13 -0
  145. package/{packageInfo.js → build-tsc-esm/packageInfo.js} +1 -1
  146. package/package.json +27 -27
  147. package/src/augment.ts +5 -0
  148. package/src/bundle.ts +5 -0
  149. package/src/extractChain.ts +54 -0
  150. package/src/fromChain.ts +123 -0
  151. package/src/fromDefs.ts +106 -0
  152. package/src/generate/consts.ts +112 -0
  153. package/src/generate/errors.ts +75 -0
  154. package/src/generate/events.ts +165 -0
  155. package/src/generate/index.ts +13 -0
  156. package/src/generate/interfaceRegistry.ts +85 -0
  157. package/src/generate/lookup.ts +322 -0
  158. package/src/generate/query.ts +169 -0
  159. package/src/generate/rpc.ts +158 -0
  160. package/src/generate/runtime.ts +293 -0
  161. package/src/generate/tsDef.ts +321 -0
  162. package/src/generate/tx.ts +152 -0
  163. package/src/generate/types.ts +26 -0
  164. package/src/index.ts +6 -0
  165. package/src/interfacesTs.ts +35 -0
  166. package/src/metadataMd.ts +844 -0
  167. package/src/packageDetect.ts +14 -0
  168. package/src/packageInfo.ts +6 -0
  169. package/src/templates/calls.hbs +30 -0
  170. package/src/templates/consts.hbs +28 -0
  171. package/src/templates/docs.hbs +7 -0
  172. package/src/templates/errors.hbs +28 -0
  173. package/src/templates/events.hbs +28 -0
  174. package/src/templates/header.hbs +2 -0
  175. package/src/templates/interfaceRegistry.hbs +15 -0
  176. package/src/templates/lookup/defs-named.hbs +12 -0
  177. package/src/templates/lookup/defs.hbs +15 -0
  178. package/src/templates/lookup/index.hbs +3 -0
  179. package/src/templates/lookup/types.hbs +14 -0
  180. package/src/templates/query.hbs +29 -0
  181. package/src/templates/rpc.hbs +22 -0
  182. package/src/templates/tsDef/index.hbs +3 -0
  183. package/src/templates/tsDef/moduleTypes.hbs +10 -0
  184. package/src/templates/tsDef/types.hbs +7 -0
  185. package/src/templates/tx.hbs +30 -0
  186. package/src/util/assert.ts +18 -0
  187. package/src/util/derived.spec.ts +58 -0
  188. package/src/util/derived.ts +133 -0
  189. package/src/util/docs.ts +13 -0
  190. package/src/util/file.ts +42 -0
  191. package/src/util/formatting.spec.ts +30 -0
  192. package/src/util/formatting.ts +322 -0
  193. package/src/util/imports.ts +164 -0
  194. package/src/util/index.ts +42 -0
  195. package/src/util/initMeta.ts +37 -0
  196. package/src/util/register.ts +12 -0
  197. package/src/util/wsMeta.ts +70 -0
  198. package/tsconfig.build.json +28 -0
  199. package/tsconfig.build.tsbuildinfo +1 -0
  200. package/tsconfig.scripts.json +19 -0
  201. package/tsconfig.spec.json +17 -0
  202. package/tsconfig.spec.tsbuildinfo +1 -0
  203. /package/{cjs → build}/augment.d.ts +0 -0
  204. /package/{cjs → build}/bundle.d.ts +0 -0
  205. /package/{extractChain.d.ts → build/cjs/extractChain.d.ts} +0 -0
  206. /package/{fromChain.d.ts → build/cjs/fromChain.d.ts} +0 -0
  207. /package/{fromDefs.d.ts → build/cjs/fromDefs.d.ts} +0 -0
  208. /package/{generate → build/cjs/generate}/index.d.ts +0 -0
  209. /package/{index.d.ts → build/cjs/index.d.ts} +0 -0
  210. /package/{interfacesTs.d.ts → build/cjs/interfacesTs.d.ts} +0 -0
  211. /package/{metadataMd.d.ts → build/cjs/metadataMd.d.ts} +0 -0
  212. /package/{cjs → build/cjs}/package.json +0 -0
  213. /package/{packageDetect.d.ts → build/cjs/packageDetect.d.ts} +0 -0
  214. /package/{cjs → build/cjs}/packageDetect.js +0 -0
  215. /package/{packageInfo.d.ts → build/cjs/packageInfo.d.ts} +0 -0
  216. /package/{util → build/cjs/util}/assert.d.ts +0 -0
  217. /package/{util → build/cjs/util}/derived.d.ts +0 -0
  218. /package/{util → build/cjs/util}/docs.d.ts +0 -0
  219. /package/{util → build/cjs/util}/file.d.ts +0 -0
  220. /package/{util → build/cjs/util}/formatting.d.ts +0 -0
  221. /package/{util → build/cjs/util}/imports.d.ts +0 -0
  222. /package/{util → build/cjs/util}/index.d.ts +0 -0
  223. /package/{util → build/cjs/util}/initMeta.d.ts +0 -0
  224. /package/{util → build/cjs/util}/register.d.ts +0 -0
  225. /package/{util → build/cjs/util}/wsMeta.d.ts +0 -0
  226. /package/{augment.d.ts → build-tsc/augment.d.ts} +0 -0
  227. /package/{bundle.d.ts → build-tsc/bundle.d.ts} +0 -0
  228. /package/{cjs → build-tsc}/extractChain.d.ts +0 -0
  229. /package/{cjs → build-tsc}/fromChain.d.ts +0 -0
  230. /package/{cjs → build-tsc}/fromDefs.d.ts +0 -0
  231. /package/{cjs → build-tsc}/generate/consts.d.ts +0 -0
  232. /package/{cjs → build-tsc}/generate/errors.d.ts +0 -0
  233. /package/{cjs → build-tsc}/generate/events.d.ts +0 -0
  234. /package/{cjs → build-tsc}/generate/index.d.ts +0 -0
  235. /package/{cjs → build-tsc}/generate/interfaceRegistry.d.ts +0 -0
  236. /package/{cjs → build-tsc}/generate/lookup.d.ts +0 -0
  237. /package/{cjs → build-tsc}/generate/query.d.ts +0 -0
  238. /package/{cjs → build-tsc}/generate/rpc.d.ts +0 -0
  239. /package/{cjs → build-tsc}/generate/runtime.d.ts +0 -0
  240. /package/{cjs → build-tsc}/generate/tsDef.d.ts +0 -0
  241. /package/{cjs → build-tsc}/generate/tx.d.ts +0 -0
  242. /package/{cjs → build-tsc}/generate/types.d.ts +0 -0
  243. /package/{cjs → build-tsc}/index.d.ts +0 -0
  244. /package/{cjs → build-tsc}/interfacesTs.d.ts +0 -0
  245. /package/{cjs → build-tsc}/metadataMd.d.ts +0 -0
  246. /package/{cjs → build-tsc}/packageDetect.d.ts +0 -0
  247. /package/{cjs → build-tsc}/packageInfo.d.ts +0 -0
  248. /package/{cjs → build-tsc}/util/assert.d.ts +0 -0
  249. /package/{cjs → build-tsc}/util/derived.d.ts +0 -0
  250. /package/{cjs → build-tsc}/util/docs.d.ts +0 -0
  251. /package/{cjs → build-tsc}/util/file.d.ts +0 -0
  252. /package/{cjs → build-tsc}/util/formatting.d.ts +0 -0
  253. /package/{cjs → build-tsc}/util/imports.d.ts +0 -0
  254. /package/{cjs → build-tsc}/util/index.d.ts +0 -0
  255. /package/{cjs → build-tsc}/util/initMeta.d.ts +0 -0
  256. /package/{cjs → build-tsc}/util/register.d.ts +0 -0
  257. /package/{cjs → build-tsc}/util/wsMeta.d.ts +0 -0
  258. /package/{cjs → build-tsc-cjs}/augment.js +0 -0
  259. /package/{cjs → build-tsc-cjs}/bundle.js +0 -0
  260. /package/{cjs → build-tsc-cjs}/extractChain.js +0 -0
  261. /package/{cjs → build-tsc-cjs}/fromChain.js +0 -0
  262. /package/{cjs → build-tsc-cjs}/fromDefs.js +0 -0
  263. /package/{cjs → build-tsc-cjs}/generate/consts.js +0 -0
  264. /package/{cjs → build-tsc-cjs}/generate/errors.js +0 -0
  265. /package/{cjs → build-tsc-cjs}/generate/events.js +0 -0
  266. /package/{cjs → build-tsc-cjs}/generate/index.js +0 -0
  267. /package/{cjs → build-tsc-cjs}/generate/interfaceRegistry.js +0 -0
  268. /package/{cjs → build-tsc-cjs}/generate/lookup.js +0 -0
  269. /package/{cjs → build-tsc-cjs}/generate/query.js +0 -0
  270. /package/{cjs → build-tsc-cjs}/generate/rpc.js +0 -0
  271. /package/{cjs → build-tsc-cjs}/generate/runtime.js +0 -0
  272. /package/{cjs → build-tsc-cjs}/generate/tsDef.js +0 -0
  273. /package/{cjs → build-tsc-cjs}/generate/tx.js +0 -0
  274. /package/{cjs → build-tsc-cjs}/generate/types.js +0 -0
  275. /package/{cjs → build-tsc-cjs}/index.js +0 -0
  276. /package/{cjs → build-tsc-cjs}/interfacesTs.js +0 -0
  277. /package/{cjs → build-tsc-cjs}/metadataMd.js +0 -0
  278. /package/{cjs → build-tsc-cjs}/util/assert.js +0 -0
  279. /package/{cjs → build-tsc-cjs}/util/derived.js +0 -0
  280. /package/{cjs → build-tsc-cjs}/util/docs.js +0 -0
  281. /package/{cjs → build-tsc-cjs}/util/file.js +0 -0
  282. /package/{cjs → build-tsc-cjs}/util/formatting.js +0 -0
  283. /package/{cjs → build-tsc-cjs}/util/imports.js +0 -0
  284. /package/{cjs → build-tsc-cjs}/util/index.js +0 -0
  285. /package/{cjs → build-tsc-cjs}/util/initMeta.js +0 -0
  286. /package/{cjs → build-tsc-cjs}/util/register.js +0 -0
  287. /package/{cjs → build-tsc-cjs}/util/wsMeta.js +0 -0
  288. /package/{augment.js → build-tsc-esm/augment.js} +0 -0
  289. /package/{bundle.js → build-tsc-esm/bundle.js} +0 -0
  290. /package/{extractChain.js → build-tsc-esm/extractChain.js} +0 -0
  291. /package/{fromChain.js → build-tsc-esm/fromChain.js} +0 -0
  292. /package/{fromDefs.js → build-tsc-esm/fromDefs.js} +0 -0
  293. /package/{generate → build-tsc-esm/generate}/index.js +0 -0
  294. /package/{index.js → build-tsc-esm/index.js} +0 -0
  295. /package/{interfacesTs.js → build-tsc-esm/interfacesTs.js} +0 -0
  296. /package/{metadataMd.js → build-tsc-esm/metadataMd.js} +0 -0
  297. /package/{packageDetect.js → build-tsc-esm/packageDetect.js} +0 -0
  298. /package/{util → build-tsc-esm/util}/assert.js +0 -0
  299. /package/{util → build-tsc-esm/util}/derived.js +0 -0
  300. /package/{util → build-tsc-esm/util}/docs.js +0 -0
  301. /package/{util → build-tsc-esm/util}/file.js +0 -0
  302. /package/{util → build-tsc-esm/util}/formatting.js +0 -0
  303. /package/{util → build-tsc-esm/util}/imports.js +0 -0
  304. /package/{util → build-tsc-esm/util}/index.js +0 -0
  305. /package/{util → build-tsc-esm/util}/initMeta.js +0 -0
  306. /package/{util → build-tsc-esm/util}/register.js +0 -0
  307. /package/{util → build-tsc-esm/util}/wsMeta.js +0 -0
@@ -0,0 +1,55 @@
1
+ import Handlebars from 'handlebars';
2
+ import { stringCamelCase } from '@pezkuwi/util';
3
+ import { compareName, createImports, initMeta, readTemplate, writeFile } from '../util/index.js';
4
+ import { getDeprecationNotice } from './types.js';
5
+ const generateForMetaTemplate = Handlebars.compile(readTemplate('errors'));
6
+ /** @internal */
7
+ function generateForMeta(meta, dest, isStrict) {
8
+ writeFile(dest, () => {
9
+ const imports = createImports({});
10
+ const { lookup, pallets } = meta.asLatest;
11
+ const modules = pallets
12
+ .filter(({ errors }) => errors.isSome)
13
+ .map((data) => {
14
+ const name = data.name;
15
+ const errors = data.errors.unwrap();
16
+ const deprecationInfo = errors.deprecationInfo.toJSON();
17
+ return {
18
+ items: lookup.getSiType(errors.type).def.asVariant.variants
19
+ .map(({ docs, index, name }) => {
20
+ const rawStatus = deprecationInfo?.[index.toNumber()];
21
+ if (rawStatus) {
22
+ const deprecationVariantInfo = meta.registry.createTypeUnsafe('VariantDeprecationInfoV16', [rawStatus]);
23
+ const deprecationNotice = getDeprecationNotice(deprecationVariantInfo, name.toString());
24
+ const notice = docs.length ? ['', deprecationNotice] : [deprecationNotice];
25
+ docs.push(...notice.map((text) => meta.registry.createType('Text', text)));
26
+ }
27
+ return {
28
+ docs,
29
+ name: name.toString()
30
+ };
31
+ })
32
+ .sort(compareName),
33
+ name: stringCamelCase(name)
34
+ };
35
+ })
36
+ .sort(compareName);
37
+ return generateForMetaTemplate({
38
+ headerType: 'chain',
39
+ imports,
40
+ isStrict,
41
+ modules,
42
+ types: [
43
+ {
44
+ file: '@pezkuwi/api-base/types',
45
+ types: ['ApiTypes', 'AugmentedError']
46
+ }
47
+ ]
48
+ });
49
+ });
50
+ }
51
+ /** @internal */
52
+ export function generateDefaultErrors(dest, data, extraTypes = {}, isStrict = false) {
53
+ const { metadata } = initMeta(data, extraTypes);
54
+ return generateForMeta(metadata, dest, isStrict);
55
+ }
@@ -0,0 +1,135 @@
1
+ import Handlebars from 'handlebars';
2
+ import * as defaultDefs from '@pezkuwi/types/interfaces/definitions';
3
+ import lookupDefinitions from '@pezkuwi/types-augment/lookup/definitions';
4
+ import { stringCamelCase } from '@pezkuwi/util';
5
+ import { compareName, createImports, formatType, initMeta, readTemplate, rebrandTypeName, setImports, writeFile } from '../util/index.js';
6
+ import { ignoreUnusedLookups } from './lookup.js';
7
+ import { getDeprecationNotice } from './types.js';
8
+ const generateForMetaTemplate = Handlebars.compile(readTemplate('events'));
9
+ const ALIAS = [
10
+ 'symbol',
11
+ 'break',
12
+ 'case',
13
+ 'catch',
14
+ 'class',
15
+ 'const',
16
+ 'continue',
17
+ 'debugger',
18
+ 'default',
19
+ 'delete',
20
+ 'do',
21
+ 'else',
22
+ 'export',
23
+ 'extends',
24
+ 'false',
25
+ 'finally',
26
+ 'for',
27
+ 'function',
28
+ 'if',
29
+ 'import',
30
+ 'in',
31
+ 'instanceof',
32
+ 'new',
33
+ 'null',
34
+ 'return',
35
+ 'static',
36
+ 'super',
37
+ 'switch',
38
+ 'this',
39
+ 'throw',
40
+ 'true',
41
+ 'try',
42
+ 'typeof',
43
+ 'var',
44
+ 'void',
45
+ 'while',
46
+ 'with',
47
+ 'yield'
48
+ ];
49
+ /** @internal */
50
+ function generateForMeta(meta, dest, extraTypes, isStrict, customLookupDefinitions) {
51
+ writeFile(dest, () => {
52
+ const allTypes = {
53
+ '@pezkuwi/types-augment': {
54
+ lookup: {
55
+ ...lookupDefinitions,
56
+ ...customLookupDefinitions
57
+ }
58
+ },
59
+ '@pezkuwi/types/interfaces': defaultDefs,
60
+ ...extraTypes
61
+ };
62
+ const imports = createImports(allTypes);
63
+ const allDefs = Object.entries(allTypes).reduce((defs, [path, obj]) => {
64
+ return Object.entries(obj).reduce((defs, [key, value]) => ({ ...defs, [`${path}/${key}`]: value }), defs);
65
+ }, {});
66
+ const { lookup, pallets, registry } = meta.asLatest;
67
+ const usedTypes = new Set([]);
68
+ const modules = pallets
69
+ .filter(({ events }) => events.isSome)
70
+ .map((data) => {
71
+ const name = data.name;
72
+ const events = data.events.unwrap();
73
+ const deprecationInfo = events.deprecationInfo.toJSON();
74
+ return {
75
+ items: lookup.getSiType(events.type).def.asVariant.variants
76
+ .map(({ docs, fields, index, name }) => {
77
+ const rawStatus = deprecationInfo?.[index.toNumber()];
78
+ if (rawStatus) {
79
+ const deprecationVariantInfo = meta.registry.createTypeUnsafe('VariantDeprecationInfoV16', [rawStatus]);
80
+ const deprecationNotice = getDeprecationNotice(deprecationVariantInfo, name.toString());
81
+ const notice = docs.length ? ['', deprecationNotice] : [deprecationNotice];
82
+ docs.push(...notice.map((text) => meta.registry.createType('Text', text)));
83
+ }
84
+ const args = fields
85
+ .map(({ type }) => lookup.getTypeDef(type))
86
+ .map((typeDef) => {
87
+ const arg = rebrandTypeName(typeDef.lookupName || '') || formatType(registry, allDefs, typeDef, imports);
88
+ // Add the type to the list of used types
89
+ if (!(imports.primitiveTypes[arg])) {
90
+ usedTypes.add(arg);
91
+ }
92
+ return arg;
93
+ });
94
+ const names = fields
95
+ .map(({ name }) => registry.lookup.sanitizeField(name)[0])
96
+ .filter((n) => !!n);
97
+ setImports(allDefs, imports, args);
98
+ return {
99
+ docs,
100
+ name: name.toString(),
101
+ type: names.length !== 0 && names.length === args.length
102
+ ? `[${names.map((n, i) => `${ALIAS.includes(n) ? `${n}_` : n}: ${args[i]}`).join(', ')}], { ${names.map((n, i) => `${n}: ${args[i]}`).join(', ')} }`
103
+ : `[${args.join(', ')}]`
104
+ };
105
+ })
106
+ .sort(compareName),
107
+ name: stringCamelCase(name)
108
+ };
109
+ })
110
+ .sort(compareName);
111
+ // filter out the unused lookup types from imports
112
+ ignoreUnusedLookups([...usedTypes], imports);
113
+ return generateForMetaTemplate({
114
+ headerType: 'chain',
115
+ imports,
116
+ isStrict,
117
+ modules,
118
+ types: [
119
+ ...Object.keys(imports.localTypes).sort().map((packagePath) => ({
120
+ file: packagePath.replace('@pezkuwi/types-augment', '@pezkuwi/types'),
121
+ types: Object.keys(imports.localTypes[packagePath])
122
+ })),
123
+ {
124
+ file: '@pezkuwi/api-base/types',
125
+ types: ['ApiTypes', 'AugmentedEvent']
126
+ }
127
+ ]
128
+ });
129
+ });
130
+ }
131
+ /** @internal */
132
+ export function generateDefaultEvents(dest, data, extraTypes = {}, isStrict = false, customLookupDefinitions) {
133
+ const { metadata } = initMeta(data, extraTypes);
134
+ return generateForMeta(metadata, dest, extraTypes, isStrict, customLookupDefinitions);
135
+ }
@@ -0,0 +1,59 @@
1
+ import Handlebars from 'handlebars';
2
+ import { Json, Raw } from '@pezkuwi/types/codec';
3
+ import { TypeRegistry } from '@pezkuwi/types/create';
4
+ import * as defaultDefinitions from '@pezkuwi/types/interfaces/definitions';
5
+ import * as defaultPrimitives from '@pezkuwi/types/primitive';
6
+ import { createImports, readTemplate, setImports, writeFile } from '../util/index.js';
7
+ const primitiveClasses = {
8
+ ...defaultPrimitives,
9
+ Json,
10
+ Raw
11
+ };
12
+ const generateInterfaceTypesTemplate = Handlebars.compile(readTemplate('interfaceRegistry'));
13
+ /** @internal */
14
+ export function generateInterfaceTypes(importDefinitions, dest) {
15
+ const registry = new TypeRegistry();
16
+ writeFile(dest, () => {
17
+ Object.entries(importDefinitions).reduce((acc, def) => Object.assign(acc, def), {});
18
+ const imports = createImports(importDefinitions);
19
+ const definitions = imports.definitions;
20
+ const items = [];
21
+ // first we create imports for our known classes from the API
22
+ Object
23
+ .keys(primitiveClasses)
24
+ .filter((name) => !name.includes('Generic'))
25
+ .forEach((primitiveName) => {
26
+ setImports(definitions, imports, [primitiveName]);
27
+ items.push(primitiveName);
28
+ });
29
+ const existingTypes = {};
30
+ // ensure we have everything registered since we will get the definition
31
+ // form the available types (so any unknown should show after this)
32
+ Object.values(definitions).forEach(({ types }) => {
33
+ registry.register(types);
34
+ });
35
+ // create imports for everything that we have available
36
+ Object.values(definitions).forEach(({ types }) => {
37
+ setImports(definitions, imports, Object.keys(types));
38
+ const uniqueTypes = Object.keys(types).filter((type) => !existingTypes[type]);
39
+ uniqueTypes.forEach((type) => {
40
+ existingTypes[type] = true;
41
+ items.push(type);
42
+ });
43
+ });
44
+ return generateInterfaceTypesTemplate({
45
+ headerType: 'defs',
46
+ imports,
47
+ items: items.sort((a, b) => a.localeCompare(b)),
48
+ types: [
49
+ ...Object.keys(imports.localTypes).sort().map((packagePath) => ({
50
+ file: packagePath,
51
+ types: Object.keys(imports.localTypes[packagePath])
52
+ }))
53
+ ]
54
+ });
55
+ });
56
+ }
57
+ export function generateDefaultInterface() {
58
+ generateInterfaceTypes({ '@pezkuwi/types/interfaces': defaultDefinitions }, 'packages/types-augment/src/registry/interfaces.ts');
59
+ }
@@ -0,0 +1,235 @@
1
+ import Handlebars from 'handlebars';
2
+ import path from 'node:path';
3
+ import * as defaultDefinitions from '@pezkuwi/types/interfaces/definitions';
4
+ import staticAhDicle from '@pezkuwi/types-support/metadata/v15/asset-hub-dicle-hex';
5
+ import staticAhPezkuwi from '@pezkuwi/types-support/metadata/v15/asset-hub-pezkuwi-hex';
6
+ import staticBizinikiwi from '@pezkuwi/types-support/metadata/v15/bizinikiwi-hex';
7
+ import staticDicle from '@pezkuwi/types-support/metadata/v15/dicle-hex';
8
+ import staticPezkuwi from '@pezkuwi/types-support/metadata/v15/pezkuwi-hex';
9
+ import { isString, stringify } from '@pezkuwi/util';
10
+ import { createImports, exportInterface, initMeta, readTemplate, rebrandTypeName, writeFile } from '../util/index.js';
11
+ import { typeEncoders } from './tsDef.js';
12
+ function deepRebrandTypeDef(typeDef, isTopLevel = true) {
13
+ const rebrandedLookupName = typeDef.lookupName ? rebrandTypeName(typeDef.lookupName) : typeDef.lookupName;
14
+ const rebranded = {
15
+ ...typeDef,
16
+ type: rebrandTypeName(typeDef.type),
17
+ // For top-level types: set name from lookupName (mimics original: typeDef.name = typeDef.lookupName)
18
+ // For sub types (enum variants, struct fields): preserve the original name (field/variant name)
19
+ name: isTopLevel ? (rebrandedLookupName || typeDef.name) : typeDef.name,
20
+ lookupName: rebrandedLookupName,
21
+ lookupNameRoot: typeDef.lookupNameRoot ? rebrandTypeName(typeDef.lookupNameRoot) : typeDef.lookupNameRoot
22
+ };
23
+ // Recursively rebrand sub types (mark as not top-level)
24
+ if (typeDef.sub) {
25
+ if (Array.isArray(typeDef.sub)) {
26
+ rebranded.sub = typeDef.sub.map((s) => deepRebrandTypeDef(s, false));
27
+ }
28
+ else {
29
+ rebranded.sub = deepRebrandTypeDef(typeDef.sub, false);
30
+ }
31
+ }
32
+ return rebranded;
33
+ }
34
+ const WITH_TYPEDEF = false;
35
+ const generateLookupDefsTmpl = Handlebars.compile(readTemplate('lookup/defs'));
36
+ const generateLookupDefsNamedTmpl = Handlebars.compile(readTemplate('lookup/defs-named'));
37
+ const generateLookupIndexTmpl = Handlebars.compile(readTemplate('lookup/index'));
38
+ const generateLookupTypesTmpl = Handlebars.compile(readTemplate('lookup/types'));
39
+ const generateRegistryTmpl = Handlebars.compile(readTemplate('interfaceRegistry'));
40
+ function generateParamType(registry, { name, type }) {
41
+ if (type.isSome) {
42
+ const link = registry.lookup.types[type.unwrap().toNumber()];
43
+ if (link.type.path.length) {
44
+ return generateTypeDocs(registry, null, link.type.path, link.type.params);
45
+ }
46
+ }
47
+ return name.toString();
48
+ }
49
+ function generateTypeDocs(registry, id, path, params) {
50
+ return `${id ? `${registry.createLookupType(id)}${path.length ? ': ' : ''}` : ''}${path.map((p) => p.toString()).join('::')}${params.length ? `<${params.map((p) => generateParamType(registry, p)).join(', ')}>` : ''}`;
51
+ }
52
+ function formatObject(lines) {
53
+ const max = lines.length - 1;
54
+ return [
55
+ '{',
56
+ ...lines.map((l, index) => (l.endsWith(',') || l.endsWith('{') || index === max || lines[index + 1].endsWith('}') || lines[index + 1].endsWith('}'))
57
+ ? l
58
+ : `${l},`),
59
+ '}'
60
+ ];
61
+ }
62
+ function expandSet(parsed) {
63
+ return formatObject(Object.entries(parsed).reduce((all, [k, v]) => {
64
+ all.push(`${k}: ${v}`);
65
+ return all;
66
+ }, []));
67
+ }
68
+ function expandObject(parsed) {
69
+ if (parsed._set) {
70
+ return expandSet(parsed._set);
71
+ }
72
+ return formatObject(Object.entries(parsed).reduce((all, [k, v]) => {
73
+ const inner = isString(v)
74
+ ? expandType(v)
75
+ : Array.isArray(v)
76
+ ? [`[${v.map((e) => `'${e}'`).join(', ')}]`]
77
+ : expandObject(v);
78
+ inner.forEach((l, index) => {
79
+ all.push(`${index === 0
80
+ ? `${k}: ${l}`
81
+ : `${l}`}`);
82
+ });
83
+ return all;
84
+ }, []));
85
+ }
86
+ function expandType(encoded) {
87
+ if (!encoded.startsWith('{')) {
88
+ return [`'${rebrandTypeName(encoded)}'`];
89
+ }
90
+ return expandObject(JSON.parse(encoded));
91
+ }
92
+ function expandDefToString({ lookupNameRoot, type }, indent) {
93
+ if (lookupNameRoot) {
94
+ return `'${rebrandTypeName(lookupNameRoot)}'`;
95
+ }
96
+ const lines = expandType(type);
97
+ let inc = 0;
98
+ return lines.map((l, index) => {
99
+ let r;
100
+ if (l.endsWith('{')) {
101
+ r = index === 0
102
+ ? l
103
+ : `${' '.padStart(indent + inc)}${l}`;
104
+ inc += 2;
105
+ }
106
+ else {
107
+ if (l.endsWith('},') || l.endsWith('}')) {
108
+ inc -= 2;
109
+ }
110
+ r = index === 0
111
+ ? l
112
+ : `${' '.padStart(indent + inc)}${l}`;
113
+ }
114
+ return r;
115
+ }).join('\n');
116
+ }
117
+ function getFilteredTypes(lookup, exclude = []) {
118
+ const named = lookup.types.filter(({ id }) => !!lookup.getTypeDef(id).lookupName);
119
+ const names = named.map(({ id }) => lookup.getName(id));
120
+ return named
121
+ .filter((_, index) => !names.some((n, iindex) => index > iindex &&
122
+ n === names[index]))
123
+ .map((p) => [p, lookup.getTypeDef(p.id)])
124
+ .filter(([, typeDef]) => !exclude.includes(typeDef.lookupName || '<invalid>'));
125
+ }
126
+ function generateLookupDefs(registry, filtered, destDir, subPath) {
127
+ writeFile(path.join(destDir, `${subPath || 'definitions'}.ts`), () => {
128
+ const all = filtered.map(([{ id, type: { params, path } }, typeDef]) => {
129
+ const typeLookup = registry.createLookupType(id);
130
+ const def = expandDefToString(typeDef, subPath ? 2 : 4);
131
+ return {
132
+ docs: [
133
+ generateTypeDocs(registry, id, path, params),
134
+ WITH_TYPEDEF
135
+ ? `@typeDef ${stringify(typeDef)}`
136
+ : null
137
+ ].filter((d) => !!d),
138
+ type: { def, typeLookup, typeName: typeDef.lookupName ? rebrandTypeName(typeDef.lookupName) : undefined }
139
+ };
140
+ });
141
+ const max = all.length - 1;
142
+ return (subPath ? generateLookupDefsNamedTmpl : generateLookupDefsTmpl)({
143
+ defs: all.map(({ docs, type }, i) => {
144
+ const { def, typeLookup, typeName } = type;
145
+ return {
146
+ defs: [
147
+ [typeName || typeLookup, `${def}${i !== max ? ',' : ''}`]
148
+ ].map(([n, t]) => `${n}: ${t}`),
149
+ docs
150
+ };
151
+ }),
152
+ headerType: 'defs'
153
+ });
154
+ });
155
+ }
156
+ function generateLookupTypes(registry, filtered, destDir, subPath) {
157
+ const imports = {
158
+ ...createImports({ '@pezkuwi/types/interfaces': defaultDefinitions }, { types: {} }),
159
+ interfaces: []
160
+ };
161
+ const items = filtered
162
+ .map(([, typeDef]) => {
163
+ // Deep rebrand the type names (including nested sub types) before generating interfaces
164
+ const rebranded = deepRebrandTypeDef(typeDef);
165
+ return rebranded.lookupNameRoot && rebranded.lookupName
166
+ ? exportInterface(rebranded.lookupIndex, rebranded.lookupName, rebranded.lookupNameRoot)
167
+ : typeEncoders[rebranded.info](registry, imports.definitions, rebranded, imports);
168
+ })
169
+ .filter((t) => !!t)
170
+ .map((t) => t.replace(/\nexport /, '\n'));
171
+ writeFile(path.join(destDir, `types${subPath ? `-${subPath}` : ''}.ts`), () => generateLookupTypesTmpl({
172
+ headerType: 'defs',
173
+ imports,
174
+ items: items.map((l) => l
175
+ .split('\n')
176
+ .map((l) => l.length ? ` ${l}` : '')
177
+ .join('\n')),
178
+ types: [
179
+ ...Object.keys(imports.localTypes).sort().map((packagePath) => ({
180
+ file: packagePath,
181
+ types: Object.keys(imports.localTypes[packagePath])
182
+ }))
183
+ ]
184
+ }), true);
185
+ writeFile(path.join(destDir, 'index.ts'), () => generateLookupIndexTmpl({ headerType: 'defs' }), true);
186
+ }
187
+ function generateRegistry(_registry, filtered, destDir, subPath) {
188
+ writeFile(path.join(destDir, `${subPath}.ts`), () => {
189
+ const items = filtered
190
+ .map(([, { lookupName }]) => lookupName ? rebrandTypeName(lookupName) : lookupName)
191
+ .filter((n) => !!n)
192
+ .sort()
193
+ .reduce((all, n) => all.includes(n) ? all : all.concat(n), []);
194
+ const imports = createImports({}, { types: {} });
195
+ imports.lookupTypes = items.reduce((all, n) => ({ ...all, [n]: true }), {});
196
+ return generateRegistryTmpl({
197
+ headerType: 'defs',
198
+ imports,
199
+ items,
200
+ types: []
201
+ });
202
+ }, true);
203
+ }
204
+ function generateLookup(destDir, entries) {
205
+ entries.reduce((exclude, [subPath, staticMeta]) => {
206
+ const { lookup, registry } = initMeta(staticMeta).metadata.asLatest;
207
+ const filtered = getFilteredTypes(lookup, exclude);
208
+ generateLookupDefs(registry, filtered, destDir, subPath);
209
+ generateLookupTypes(registry, filtered, destDir, subPath);
210
+ generateRegistry(registry, filtered, destDir, subPath === 'lookup' ? 'registry' : `../registry/${subPath}`);
211
+ return exclude.concat(...filtered
212
+ .map(([, typeDef]) => typeDef.lookupName)
213
+ .filter((n) => !!n));
214
+ }, []);
215
+ }
216
+ export function generateDefaultLookup(destDir = 'packages/types-augment/src/lookup', staticData) {
217
+ generateLookup(destDir, staticData
218
+ ? [['lookup', staticData]]
219
+ : [
220
+ ['bizinikiwi', staticBizinikiwi],
221
+ ['pezkuwi', staticPezkuwi],
222
+ ['dicle', staticDicle],
223
+ ['assetHubPezkuwi', staticAhPezkuwi],
224
+ ['assetHubDicle', staticAhDicle]
225
+ ]);
226
+ }
227
+ export function ignoreUnusedLookups(usedTypes, imports) {
228
+ const usedStringified = usedTypes.toString();
229
+ const [lookupKey, typeDefinitions] = Object.entries(imports.localTypes).find(([typeModule, _]) => typeModule.includes('/lookup')) || ['', {}];
230
+ Object.keys(typeDefinitions).forEach((typeDef) => {
231
+ if (!(usedStringified.includes(typeDef))) {
232
+ delete (imports.localTypes[lookupKey])[typeDef];
233
+ }
234
+ });
235
+ }
@@ -0,0 +1,136 @@
1
+ import Handlebars from 'handlebars';
2
+ import * as defaultDefs from '@pezkuwi/types/interfaces/definitions';
3
+ import { unwrapStorageSi } from '@pezkuwi/types/util';
4
+ import lookupDefinitions from '@pezkuwi/types-augment/lookup/definitions';
5
+ import { stringCamelCase } from '@pezkuwi/util';
6
+ import { compareName, createImports, formatType, getSimilarTypes, initMeta, readTemplate, rebrandTypeName, setImports, writeFile } from '../util/index.js';
7
+ import { ignoreUnusedLookups } from './lookup.js';
8
+ import { getDeprecationNotice } from './types.js';
9
+ const generateForMetaTemplate = Handlebars.compile(readTemplate('query'));
10
+ /** @internal */
11
+ function entrySignature(lookup, allDefs, registry, section, storageEntry, imports) {
12
+ try {
13
+ const outputType = lookup.getTypeDef(unwrapStorageSi(storageEntry.type));
14
+ if (storageEntry.type.isPlain) {
15
+ const typeDef = lookup.getTypeDef(storageEntry.type.asPlain);
16
+ setImports(allDefs, imports, [
17
+ rebrandTypeName(typeDef.lookupName || typeDef.type),
18
+ storageEntry.modifier.isOptional
19
+ ? 'Option'
20
+ : null
21
+ ]);
22
+ return [storageEntry.modifier.isOptional, '', '', formatType(registry, allDefs, outputType, imports)];
23
+ }
24
+ else if (storageEntry.type.isMap) {
25
+ const { hashers, key, value } = storageEntry.type.asMap;
26
+ const keyDefs = hashers.length === 1
27
+ ? [lookup.getTypeDef(key)]
28
+ : lookup.getSiType(key).def.asTuple.map((k) => lookup.getTypeDef(k));
29
+ const similarTypes = keyDefs.map((k) => getSimilarTypes(registry, allDefs, k.lookupName || k.type, imports));
30
+ const keyTypes = similarTypes.map((t) => t.join(' | '));
31
+ const defValue = lookup.getTypeDef(value);
32
+ setImports(allDefs, imports, [
33
+ ...similarTypes.reduce((all, t) => all.concat(t), []),
34
+ storageEntry.modifier.isOptional
35
+ ? 'Option'
36
+ : null,
37
+ rebrandTypeName(defValue.lookupName || defValue.type)
38
+ ]);
39
+ return [
40
+ storageEntry.modifier.isOptional,
41
+ keyDefs.map((k) => formatType(registry, allDefs, k.lookupName || k.type, imports)).join(', '),
42
+ keyTypes.map((t, i) => `arg${keyTypes.length === 1 ? '' : (i + 1)}: ${t}`).join(', '),
43
+ rebrandTypeName(outputType.lookupName || '') || formatType(registry, allDefs, outputType, imports)
44
+ ];
45
+ }
46
+ throw new Error(`Expected Plain or Map type, found ${storageEntry.type.type}`);
47
+ }
48
+ catch (error) {
49
+ throw new Error(`entrySignature: Cannot create signature for query ${section}.${storageEntry.name.toString()}:: ${error.message}`);
50
+ }
51
+ }
52
+ /** @internal */
53
+ function generateForMeta(registry, meta, dest, extraTypes, isStrict, customLookupDefinitions) {
54
+ writeFile(dest, () => {
55
+ const allTypes = {
56
+ '@pezkuwi/types-augment': {
57
+ lookup: {
58
+ ...lookupDefinitions,
59
+ ...customLookupDefinitions
60
+ }
61
+ },
62
+ '@pezkuwi/types/interfaces': defaultDefs,
63
+ ...extraTypes
64
+ };
65
+ const imports = createImports(allTypes);
66
+ const allDefs = Object.entries(allTypes).reduce((defs, [path, obj]) => {
67
+ return Object.entries(obj).reduce((defs, [key, value]) => ({ ...defs, [`${path}/${key}`]: value }), defs);
68
+ }, {});
69
+ const { lookup, pallets } = meta.asLatest;
70
+ const usedTypes = new Set([]);
71
+ const modules = pallets
72
+ .filter(({ storage }) => storage.isSome)
73
+ .map(({ name, storage }) => {
74
+ const items = storage.unwrap().items
75
+ .map((storageEntry) => {
76
+ const { deprecationInfo, docs, name } = storageEntry;
77
+ const [isOptional, args, params, _returnType] = entrySignature(lookup, allDefs, registry, name.toString(), storageEntry, imports);
78
+ if (!deprecationInfo.isNotDeprecated) {
79
+ const deprecationNotice = getDeprecationNotice(deprecationInfo, stringCamelCase(name));
80
+ const items = docs.length
81
+ ? ['', deprecationNotice]
82
+ : [deprecationNotice];
83
+ docs.push(...items.map((text) => registry.createType('Text', text)));
84
+ }
85
+ // Add the type and args to the list of used types
86
+ if (!(imports.primitiveTypes[_returnType])) {
87
+ usedTypes.add(_returnType);
88
+ }
89
+ if (!(imports.primitiveTypes[args])) {
90
+ usedTypes.add(args);
91
+ }
92
+ const returnType = isOptional
93
+ ? `Option<${_returnType}>`
94
+ : _returnType;
95
+ return {
96
+ args,
97
+ docs,
98
+ entryType: 'AugmentedQuery',
99
+ name: stringCamelCase(storageEntry.name),
100
+ params,
101
+ returnType
102
+ };
103
+ })
104
+ .sort(compareName);
105
+ return {
106
+ items,
107
+ name: stringCamelCase(name)
108
+ };
109
+ })
110
+ .sort(compareName);
111
+ imports.typesTypes['Observable'] = true;
112
+ // filter out the unused lookup types from imports
113
+ ignoreUnusedLookups([...usedTypes], imports);
114
+ return generateForMetaTemplate({
115
+ headerType: 'chain',
116
+ imports,
117
+ isStrict,
118
+ modules,
119
+ types: [
120
+ ...Object.keys(imports.localTypes).sort().map((packagePath) => ({
121
+ file: packagePath.replace('@pezkuwi/types-augment', '@pezkuwi/types'),
122
+ types: Object.keys(imports.localTypes[packagePath])
123
+ })),
124
+ {
125
+ file: '@pezkuwi/api-base/types',
126
+ types: ['ApiTypes', 'AugmentedQuery', 'QueryableStorageEntry']
127
+ }
128
+ ]
129
+ });
130
+ });
131
+ }
132
+ /** @internal */
133
+ export function generateDefaultQuery(dest, data, extraTypes = {}, isStrict = false, customLookupDefinitions) {
134
+ const { metadata, registry } = initMeta(data, extraTypes);
135
+ return generateForMeta(registry, metadata, dest, extraTypes, isStrict, customLookupDefinitions);
136
+ }