@dedot/codegen 0.0.1-next.59796573.28 → 0.0.1-next.5d366dea.50

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.
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConstsGen = void 0;
4
- const utils_1 = require("@dedot/utils");
4
+ const utils_1 = require("dedot/utils");
5
5
  const ApiGen_js_1 = require("./ApiGen.js");
6
6
  const utils_js_1 = require("./utils.js");
7
7
  class ConstsGen extends ApiGen_js_1.ApiGen {
8
- generate() {
8
+ generate(useSubPaths = false) {
9
9
  const { pallets } = this.metadata;
10
10
  this.typesGen.clearCache();
11
11
  this.typesGen.typeImports.addKnownType('GenericChainConsts', 'RpcVersion');
@@ -23,7 +23,7 @@ class ConstsGen extends ApiGen_js_1.ApiGen {
23
23
  ${(0, utils_js_1.commentBlock)('Generic pallet constant')}[name: string]: any,
24
24
  },`;
25
25
  }
26
- const importTypes = this.typesGen.typeImports.toImports();
26
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
27
27
  const template = (0, utils_js_1.compileTemplate)('consts.hbs');
28
28
  return (0, utils_js_1.beautifySourceCode)(template({ importTypes, defTypeOut }));
29
29
  }
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ErrorsGen = void 0;
4
- const utils_1 = require("@dedot/utils");
4
+ const utils_1 = require("dedot/utils");
5
5
  const ApiGen_js_1 = require("./ApiGen.js");
6
6
  const utils_js_1 = require("./utils.js");
7
7
  class ErrorsGen extends ApiGen_js_1.ApiGen {
8
- generate() {
8
+ generate(useSubPaths = false) {
9
9
  const { pallets } = this.metadata;
10
10
  this.typesGen.clearCache();
11
11
  this.typesGen.typeImports.addKnownType('GenericChainErrors', 'GenericPalletError', 'RpcVersion');
@@ -25,7 +25,7 @@ class ErrorsGen extends ApiGen_js_1.ApiGen {
25
25
  ${(0, utils_js_1.commentBlock)('Generic pallet error')}[error: string]: GenericPalletError<Rv>,
26
26
  },`;
27
27
  }
28
- const importTypes = this.typesGen.typeImports.toImports();
28
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
29
29
  const template = (0, utils_js_1.compileTemplate)('errors.hbs');
30
30
  return (0, utils_js_1.beautifySourceCode)(template({ importTypes, defTypeOut }));
31
31
  }
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EventsGen = void 0;
4
- const utils_1 = require("@dedot/utils");
4
+ const utils_1 = require("dedot/utils");
5
5
  const ApiGen_js_1 = require("./ApiGen.js");
6
6
  const utils_js_1 = require("./utils.js");
7
7
  class EventsGen extends ApiGen_js_1.ApiGen {
8
- generate() {
8
+ generate(useSubPaths = false) {
9
9
  const { pallets } = this.metadata;
10
10
  this.typesGen.clearCache();
11
11
  this.typesGen.typeImports.addKnownType('GenericChainEvents', 'GenericPalletEvent', 'RpcVersion');
@@ -37,7 +37,7 @@ class EventsGen extends ApiGen_js_1.ApiGen {
37
37
  ${(0, utils_js_1.commentBlock)('Generic pallet event')}[prop: string]: GenericPalletEvent<Rv>,
38
38
  },`;
39
39
  }
40
- const importTypes = this.typesGen.typeImports.toImports();
40
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
41
41
  const template = (0, utils_js_1.compileTemplate)('events.hbs');
42
42
  return (0, utils_js_1.beautifySourceCode)(template({ importTypes, defTypeOut }));
43
43
  }
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IndexGen = void 0;
4
- const utils_1 = require("@dedot/utils");
4
+ const utils_1 = require("dedot/utils");
5
5
  const utils_js_1 = require("./utils.js");
6
6
  class IndexGen {
7
7
  chain;
8
8
  constructor(chain) {
9
9
  this.chain = chain;
10
10
  }
11
- async generate() {
11
+ async generate(useSubPaths = false) {
12
12
  const interfaceName = (0, utils_1.stringPascalCase)(this.chain);
13
13
  const template = (0, utils_js_1.compileTemplate)('index.hbs');
14
14
  return (0, utils_js_1.beautifySourceCode)(template({ interfaceName }));
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JsonRpcGen = void 0;
4
- const specs_1 = require("@dedot/specs");
4
+ const dedot_1 = require("dedot");
5
5
  const index_js_1 = require("../generator/index.js");
6
6
  const utils_js_1 = require("./utils.js");
7
7
  const HIDDEN_RPCS = [
@@ -41,12 +41,12 @@ class JsonRpcGen extends index_js_1.ApiGen {
41
41
  HIDDEN_RPCS.filter((one) => !rpcMethods.includes(one)).forEach((one) => rpcMethods.push(one));
42
42
  rpcMethods.sort();
43
43
  }
44
- generate() {
44
+ generate(useSubPaths = false) {
45
45
  this.typesGen.clearCache();
46
46
  this.typesGen.typeImports.addKnownType('GenericJsonRpcApis', 'RpcVersion');
47
- this.typesGen.typeImports.addSpecType('JsonRpcApis');
48
- const toExclude = Object.values(specs_1.subscriptionsInfo).flat();
49
- const importTypes = this.typesGen.typeImports.toImports();
47
+ this.typesGen.typeImports.addKnownJsonRpcType('JsonRpcApis');
48
+ const toExclude = Object.values(dedot_1.subscriptionsInfo).flat();
49
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
50
50
  const template = (0, utils_js_1.compileTemplate)('json-rpc.hbs');
51
51
  const jsonRpcMethods = this.rpcMethods
52
52
  .filter((one) => !ALIAS_RPCS.includes(one)) // exclude alias rpcs
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueryGen = void 0;
4
- const utils_1 = require("@dedot/utils");
4
+ const utils_1 = require("dedot/utils");
5
5
  const ApiGen_js_1 = require("./ApiGen.js");
6
6
  const utils_js_1 = require("./utils.js");
7
7
  class QueryGen extends ApiGen_js_1.ApiGen {
8
- generate() {
8
+ generate(useSubPaths = false) {
9
9
  const { pallets } = this.metadata;
10
10
  this.typesGen.clearCache();
11
11
  this.typesGen.typeImports.addKnownType('GenericChainStorage', 'GenericStorageQuery', 'Callback', 'RpcVersion');
@@ -30,7 +30,7 @@ class QueryGen extends ApiGen_js_1.ApiGen {
30
30
  ${(0, utils_js_1.commentBlock)('Generic pallet storage query')}[storage: string]: GenericStorageQuery<Rv>;
31
31
  },`;
32
32
  }
33
- const importTypes = this.typesGen.typeImports.toImports();
33
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
34
34
  const template = (0, utils_js_1.compileTemplate)('query.hbs');
35
35
  return (0, utils_js_1.beautifySourceCode)(template({ importTypes, defTypeOut }));
36
36
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RuntimeApisGen = void 0;
4
- const specs_1 = require("@dedot/specs");
5
- const utils_1 = require("@dedot/utils");
4
+ const runtime_specs_1 = require("dedot/runtime-specs");
5
+ const utils_1 = require("dedot/utils");
6
6
  const ApiGen_js_1 = require("./ApiGen.js");
7
7
  const known_codecs_js_1 = require("./known-codecs.js");
8
8
  const utils_js_1 = require("./utils.js");
@@ -14,7 +14,7 @@ class RuntimeApisGen extends ApiGen_js_1.ApiGen {
14
14
  this.typesGen = typesGen;
15
15
  this.runtimeApis = runtimeApis;
16
16
  }
17
- generate() {
17
+ generate(useSubPaths = false) {
18
18
  this.typesGen.clearCache();
19
19
  this.typesGen.typeImports.addKnownType('GenericRuntimeApis', 'GenericRuntimeApiMethod', 'RpcVersion');
20
20
  let runtimeCallsOut = '';
@@ -46,7 +46,7 @@ class RuntimeApisGen extends ApiGen_js_1.ApiGen {
46
46
  }`;
47
47
  });
48
48
  }
49
- const importTypes = this.typesGen.typeImports.toImports();
49
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
50
50
  const template = (0, utils_js_1.compileTemplate)('runtime.hbs');
51
51
  return (0, utils_js_1.beautifySourceCode)(template({ importTypes, runtimeCallsOut }));
52
52
  }
@@ -112,8 +112,8 @@ class RuntimeApisGen extends ApiGen_js_1.ApiGen {
112
112
  }, []);
113
113
  }
114
114
  #findRuntimeApiSpec = (runtimeApiHash, version) => {
115
- const runtimeApiName = (0, specs_1.getRuntimeApiNames)().find((one) => (0, utils_1.calcRuntimeApiHash)(one) === runtimeApiHash);
116
- return (0, specs_1.getRuntimeApiSpecs)().find((one) => one.runtimeApiName === runtimeApiName && one.version === version);
115
+ const runtimeApiName = (0, runtime_specs_1.getRuntimeApiNames)().find((one) => (0, utils_1.calcRuntimeApiHash)(one) === runtimeApiHash);
116
+ return (0, runtime_specs_1.getRuntimeApiSpecs)().find((one) => one.runtimeApiName === runtimeApiName && one.version === version);
117
117
  };
118
118
  // TODO check typeIn, typeOut if param type, or rpc type isScale
119
119
  #addTypeImport(type, toTypeIn = true) {
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TxGen = void 0;
4
- const utils_1 = require("@dedot/utils");
4
+ const utils_1 = require("dedot/utils");
5
5
  const index_js_1 = require("../generator/index.js");
6
6
  const utils_js_1 = require("./utils.js");
7
7
  class TxGen extends index_js_1.ApiGen {
8
- generate() {
8
+ generate(useSubPaths = false) {
9
9
  const { pallets, types } = this.metadata;
10
10
  this.typesGen.clearCache();
11
11
  this.typesGen.typeImports.addKnownType('GenericChainTx', 'GenericTxCall', 'ISubmittableExtrinsic', 'ISubmittableResult', 'IRuntimeTxCall', 'RpcVersion', 'RpcV2', 'ISubmittableExtrinsicLegacy', 'TransactionStatusLegacy', 'TransactionStatusV2');
@@ -50,7 +50,7 @@ class TxGen extends index_js_1.ApiGen {
50
50
  ${(0, utils_js_1.commentBlock)('Generic pallet tx call')}[callName: string]: GenericTxCall<Rv, TxCall<Rv>>,
51
51
  },`;
52
52
  }
53
- const importTypes = this.typesGen.typeImports.toImports();
53
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
54
54
  // TODO make explicit separate type for Extra
55
55
  const defTypes = `
56
56
  export type ChainSubmittableExtrinsic<Rv extends RpcVersion, T extends IRuntimeTxCall = ${callTypeIn}> =
@@ -8,29 +8,31 @@ class TypeImports {
8
8
  codecTypes;
9
9
  // Known types that're not codecs or chain/portable types defined in @dedot/types
10
10
  knownTypes;
11
- specTypes;
11
+ knownJsonRpcTypes;
12
12
  // External types to define explicitly
13
13
  outTypes;
14
14
  constructor() {
15
15
  this.portableTypes = new Set();
16
16
  this.codecTypes = new Set();
17
17
  this.knownTypes = new Set();
18
- this.specTypes = new Set();
18
+ this.knownJsonRpcTypes = new Set();
19
19
  this.outTypes = new Set();
20
20
  }
21
21
  clear() {
22
22
  this.portableTypes.clear();
23
23
  this.codecTypes.clear();
24
24
  this.knownTypes.clear();
25
- this.specTypes.clear();
25
+ this.knownJsonRpcTypes.clear();
26
26
  this.outTypes.clear();
27
27
  }
28
- toImports(...excludeModules) {
28
+ toImports(config) {
29
+ const { excludeModules = [], useSubPaths = false } = config || {};
29
30
  // TODO generate outTypes!
31
+ const prefix = useSubPaths ? '' : '@';
30
32
  const toImports = [
31
- [this.knownTypes, '@dedot/types'],
32
- [this.specTypes, '@dedot/specs'],
33
- [this.codecTypes, '@dedot/codecs'],
33
+ [this.knownTypes, `${prefix}dedot/types`],
34
+ [this.knownJsonRpcTypes, `${prefix}dedot/types/json-rpc`],
35
+ [this.codecTypes, `${prefix}dedot/codecs`],
34
36
  [this.portableTypes, './types'],
35
37
  ];
36
38
  return toImports
@@ -54,8 +56,8 @@ class TypeImports {
54
56
  addKnownType(...types) {
55
57
  types.forEach((one) => this.knownTypes.add(one));
56
58
  }
57
- addSpecType(...types) {
58
- types.forEach((one) => this.specTypes.add(one));
59
+ addKnownJsonRpcType(...types) {
60
+ types.forEach((one) => this.knownJsonRpcTypes.add(one));
59
61
  }
60
62
  addOutType(...types) {
61
63
  types.forEach((one) => this.outTypes.add(one));
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypesGen = exports.BASIC_KNOWN_TYPES = void 0;
4
- const codecs_1 = require("@dedot/codecs");
5
- const utils_1 = require("@dedot/utils");
4
+ const codecs_1 = require("dedot/codecs");
5
+ const utils_1 = require("dedot/utils");
6
6
  const TypeImports_js_1 = require("./TypeImports.js");
7
7
  const known_codecs_js_1 = require("./known-codecs.js");
8
8
  const utils_js_1 = require("./utils.js");
@@ -43,7 +43,7 @@ class TypesGen {
43
43
  this.includedTypes = this.#includedTypes();
44
44
  this.typeImports = new TypeImports_js_1.TypeImports();
45
45
  }
46
- generate() {
46
+ generate(useSubPaths = false) {
47
47
  this.clearCache();
48
48
  let defTypeOut = '';
49
49
  Object.values(this.includedTypes)
@@ -54,7 +54,7 @@ class TypesGen {
54
54
  defTypeOut += `export type ${name} = ${this.generateType(id)};\n\n`;
55
55
  }
56
56
  });
57
- const importTypes = this.typeImports.toImports('./types');
57
+ const importTypes = this.typeImports.toImports({ useSubPaths, excludeModules: ['./types'] });
58
58
  const template = (0, utils_js_1.compileTemplate)('types.hbs');
59
59
  return (0, utils_js_1.beautifySourceCode)(template({ importTypes, defTypeOut }));
60
60
  }
@@ -24,10 +24,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.isKnownCodecType = exports.findKnownWrapperCodec = exports.findKnownCodec = exports.findKnownCodecType = exports.looseTypeCodecs = exports.normalizeCodecName = void 0;
27
- const Codecs = __importStar(require("@dedot/codecs"));
28
- const codecs_1 = require("@dedot/codecs");
29
- const $ = __importStar(require("@dedot/shape"));
30
- const utils_1 = require("@dedot/utils");
27
+ const dedot_1 = require("dedot");
28
+ const Codecs = __importStar(require("dedot/codecs"));
29
+ const codecs_1 = require("dedot/codecs");
30
+ const utils_1 = require("dedot/utils");
31
31
  const normalizeCodecName = (name) => {
32
32
  return name.startsWith('$') ? name : `$${name}`;
33
33
  };
@@ -96,7 +96,7 @@ function findKnownCodecType(name) {
96
96
  };
97
97
  }
98
98
  const $codec = findKnownCodec(name);
99
- if ($codec.nativeType && $[name]) {
99
+ if ($codec.nativeType && dedot_1.$[name]) {
100
100
  return {
101
101
  name: normalizedName,
102
102
  $codec,
@@ -114,7 +114,7 @@ function findKnownCodecType(name) {
114
114
  exports.findKnownCodecType = findKnownCodecType;
115
115
  function findKnownCodec(typeName) {
116
116
  // @ts-ignore
117
- const $codec = findKnownWrapperCodec(typeName) || Codecs[(0, exports.normalizeCodecName)(typeName)] || $[typeName];
117
+ const $codec = findKnownWrapperCodec(typeName) || Codecs[(0, exports.normalizeCodecName)(typeName)] || dedot_1.$[typeName];
118
118
  (0, utils_1.assert)($codec, `Known codec not found - ${typeName}`);
119
119
  return $codec;
120
120
  }
@@ -125,7 +125,7 @@ function findKnownWrapperCodec(typeName) {
125
125
  const [_, wrapper, inner] = matchNames;
126
126
  if (KNOWN_WRAPPER_TYPES.includes(wrapper)) {
127
127
  // @ts-ignore
128
- const $Wrapper = $[wrapper];
128
+ const $Wrapper = dedot_1.$[wrapper];
129
129
  if (inner.match(TUPLE_TYPE_REGEX) || inner.match(WRAPPER_TYPE_REGEX)) {
130
130
  return $Wrapper(findKnownWrapperCodec(inner));
131
131
  }
@@ -140,7 +140,7 @@ function findKnownWrapperCodec(typeName) {
140
140
  .split(',')
141
141
  .filter((x) => x)
142
142
  .map((one) => findKnownCodec(one.trim()));
143
- return $.Tuple(...$inner);
143
+ return dedot_1.$.Tuple(...$inner);
144
144
  }
145
145
  }
146
146
  exports.findKnownWrapperCodec = findKnownWrapperCodec;
package/cjs/index.js CHANGED
@@ -24,23 +24,23 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.generateTypes = exports.generateTypesFromEndpoint = void 0;
27
- const utils_1 = require("@dedot/utils");
28
27
  const dedot_1 = require("dedot");
28
+ const utils_1 = require("dedot/utils");
29
29
  const fs = __importStar(require("fs"));
30
30
  const path = __importStar(require("path"));
31
31
  const index_js_1 = require("./generator/index.js");
32
- async function generateTypesFromEndpoint(chain, endpoint, outDir, extension = 'd.ts') {
32
+ async function generateTypesFromEndpoint(chain, endpoint, outDir, extension = 'd.ts', useSubPaths = false) {
33
33
  const api = await dedot_1.Dedot.new(new dedot_1.WsProvider(endpoint));
34
34
  const { methods } = await api.rpc.rpc_methods();
35
35
  const apis = api.runtimeVersion.apis || {};
36
36
  if (!chain) {
37
37
  chain = (0, utils_1.stringCamelCase)(api.runtimeVersion.specName || 'local');
38
38
  }
39
- await generateTypes(chain, api.metadata.latest, methods, apis, outDir, extension);
39
+ await generateTypes(chain, api.metadata.latest, methods, apis, outDir, extension, useSubPaths);
40
40
  await api.disconnect();
41
41
  }
42
42
  exports.generateTypesFromEndpoint = generateTypesFromEndpoint;
43
- async function generateTypes(chain, metadata, rpcMethods, runtimeApis, outDir = '.', extension = 'd.ts') {
43
+ async function generateTypes(chain, metadata, rpcMethods, runtimeApis, outDir = '.', extension = 'd.ts', useSubPaths = false) {
44
44
  const dirPath = path.resolve(outDir, chain);
45
45
  const defTypesFileName = path.join(dirPath, `types.${extension}`);
46
46
  const constsTypesFileName = path.join(dirPath, `consts.${extension}`);
@@ -63,14 +63,14 @@ async function generateTypes(chain, metadata, rpcMethods, runtimeApis, outDir =
63
63
  const eventsGen = new index_js_1.EventsGen(typesGen);
64
64
  const runtimeApisGen = new index_js_1.RuntimeApisGen(typesGen, runtimeApis);
65
65
  const txGen = new index_js_1.TxGen(typesGen);
66
- fs.writeFileSync(defTypesFileName, await typesGen.generate());
67
- fs.writeFileSync(errorsFileName, await errorsGen.generate());
68
- fs.writeFileSync(eventsFileName, await eventsGen.generate());
69
- fs.writeFileSync(jsonRpcFileName, await jsonRpcGen.generate());
70
- fs.writeFileSync(queryTypesFileName, await queryGen.generate());
71
- fs.writeFileSync(constsTypesFileName, await constsGen.generate());
72
- fs.writeFileSync(txFileName, await txGen.generate());
73
- fs.writeFileSync(indexFileName, await indexGen.generate());
74
- fs.writeFileSync(runtimeApisFileName, await runtimeApisGen.generate());
66
+ fs.writeFileSync(defTypesFileName, await typesGen.generate(useSubPaths));
67
+ fs.writeFileSync(errorsFileName, await errorsGen.generate(useSubPaths));
68
+ fs.writeFileSync(eventsFileName, await eventsGen.generate(useSubPaths));
69
+ fs.writeFileSync(jsonRpcFileName, await jsonRpcGen.generate(useSubPaths));
70
+ fs.writeFileSync(queryTypesFileName, await queryGen.generate(useSubPaths));
71
+ fs.writeFileSync(constsTypesFileName, await constsGen.generate(useSubPaths));
72
+ fs.writeFileSync(txFileName, await txGen.generate(useSubPaths));
73
+ fs.writeFileSync(indexFileName, await indexGen.generate(useSubPaths));
74
+ fs.writeFileSync(runtimeApisFileName, await runtimeApisGen.generate(useSubPaths));
75
75
  }
76
76
  exports.generateTypes = generateTypes;
@@ -13,14 +13,14 @@ export declare abstract class ApiGen {
13
13
  type: {
14
14
  tag: "Struct";
15
15
  value: {
16
- fields: import("dedot").Field[];
16
+ fields: import("@dedot/codecs").Field[];
17
17
  };
18
18
  } | {
19
19
  tag: "Enum";
20
20
  value: {
21
21
  members: {
22
22
  name: string;
23
- fields: import("dedot").Field[];
23
+ fields: import("@dedot/codecs").Field[];
24
24
  index: number;
25
25
  docs: string[];
26
26
  }[];
@@ -134,5 +134,5 @@ export declare abstract class ApiGen {
134
134
  }>;
135
135
  };
136
136
  };
137
- get registry(): import("dedot").PortableRegistry;
137
+ get registry(): import("@dedot/codecs").PortableRegistry;
138
138
  }
@@ -1,4 +1,4 @@
1
1
  import { ApiGen } from './ApiGen.js';
2
2
  export declare class ConstsGen extends ApiGen {
3
- generate(): Promise<string>;
3
+ generate(useSubPaths?: boolean): Promise<string>;
4
4
  }
@@ -1,8 +1,8 @@
1
- import { normalizeName, stringCamelCase } from '@dedot/utils';
1
+ import { normalizeName, stringCamelCase } from 'dedot/utils';
2
2
  import { ApiGen } from './ApiGen.js';
3
3
  import { beautifySourceCode, commentBlock, compileTemplate } from './utils.js';
4
4
  export class ConstsGen extends ApiGen {
5
- generate() {
5
+ generate(useSubPaths = false) {
6
6
  const { pallets } = this.metadata;
7
7
  this.typesGen.clearCache();
8
8
  this.typesGen.typeImports.addKnownType('GenericChainConsts', 'RpcVersion');
@@ -20,7 +20,7 @@ export class ConstsGen extends ApiGen {
20
20
  ${commentBlock('Generic pallet constant')}[name: string]: any,
21
21
  },`;
22
22
  }
23
- const importTypes = this.typesGen.typeImports.toImports();
23
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
24
24
  const template = compileTemplate('consts.hbs');
25
25
  return beautifySourceCode(template({ importTypes, defTypeOut }));
26
26
  }
@@ -1,5 +1,5 @@
1
1
  import { ApiGen } from './ApiGen.js';
2
2
  export declare class ErrorsGen extends ApiGen {
3
3
  #private;
4
- generate(): Promise<string>;
4
+ generate(useSubPaths?: boolean): Promise<string>;
5
5
  }
@@ -1,8 +1,8 @@
1
- import { assert, stringCamelCase, stringPascalCase } from '@dedot/utils';
1
+ import { assert, stringCamelCase, stringPascalCase } from 'dedot/utils';
2
2
  import { ApiGen } from './ApiGen.js';
3
3
  import { beautifySourceCode, commentBlock, compileTemplate } from './utils.js';
4
4
  export class ErrorsGen extends ApiGen {
5
- generate() {
5
+ generate(useSubPaths = false) {
6
6
  const { pallets } = this.metadata;
7
7
  this.typesGen.clearCache();
8
8
  this.typesGen.typeImports.addKnownType('GenericChainErrors', 'GenericPalletError', 'RpcVersion');
@@ -22,7 +22,7 @@ export class ErrorsGen extends ApiGen {
22
22
  ${commentBlock('Generic pallet error')}[error: string]: GenericPalletError<Rv>,
23
23
  },`;
24
24
  }
25
- const importTypes = this.typesGen.typeImports.toImports();
25
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
26
26
  const template = compileTemplate('errors.hbs');
27
27
  return beautifySourceCode(template({ importTypes, defTypeOut }));
28
28
  }
@@ -1,5 +1,5 @@
1
1
  import { ApiGen } from './ApiGen.js';
2
2
  export declare class EventsGen extends ApiGen {
3
3
  #private;
4
- generate(): Promise<string>;
4
+ generate(useSubPaths?: boolean): Promise<string>;
5
5
  }
@@ -1,8 +1,8 @@
1
- import { assert, stringCamelCase, stringPascalCase } from '@dedot/utils';
1
+ import { assert, stringCamelCase, stringPascalCase } from 'dedot/utils';
2
2
  import { ApiGen } from './ApiGen.js';
3
3
  import { beautifySourceCode, commentBlock, compileTemplate } from './utils.js';
4
4
  export class EventsGen extends ApiGen {
5
- generate() {
5
+ generate(useSubPaths = false) {
6
6
  const { pallets } = this.metadata;
7
7
  this.typesGen.clearCache();
8
8
  this.typesGen.typeImports.addKnownType('GenericChainEvents', 'GenericPalletEvent', 'RpcVersion');
@@ -34,7 +34,7 @@ export class EventsGen extends ApiGen {
34
34
  ${commentBlock('Generic pallet event')}[prop: string]: GenericPalletEvent<Rv>,
35
35
  },`;
36
36
  }
37
- const importTypes = this.typesGen.typeImports.toImports();
37
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
38
38
  const template = compileTemplate('events.hbs');
39
39
  return beautifySourceCode(template({ importTypes, defTypeOut }));
40
40
  }
@@ -1,5 +1,5 @@
1
1
  export declare class IndexGen {
2
2
  readonly chain: string;
3
3
  constructor(chain: string);
4
- generate(): Promise<string>;
4
+ generate(useSubPaths?: boolean): Promise<string>;
5
5
  }
@@ -1,11 +1,11 @@
1
- import { stringPascalCase } from '@dedot/utils';
1
+ import { stringPascalCase } from 'dedot/utils';
2
2
  import { beautifySourceCode, compileTemplate } from './utils.js';
3
3
  export class IndexGen {
4
4
  chain;
5
5
  constructor(chain) {
6
6
  this.chain = chain;
7
7
  }
8
- async generate() {
8
+ async generate(useSubPaths = false) {
9
9
  const interfaceName = stringPascalCase(this.chain);
10
10
  const template = compileTemplate('index.hbs');
11
11
  return beautifySourceCode(template({ interfaceName }));
@@ -3,5 +3,5 @@ export declare class JsonRpcGen extends ApiGen {
3
3
  readonly typesGen: TypesGen;
4
4
  readonly rpcMethods: string[];
5
5
  constructor(typesGen: TypesGen, rpcMethods: string[]);
6
- generate(): Promise<string>;
6
+ generate(useSubPaths?: boolean): Promise<string>;
7
7
  }
@@ -1,4 +1,4 @@
1
- import { subscriptionsInfo } from '@dedot/specs';
1
+ import { subscriptionsInfo } from 'dedot';
2
2
  import { ApiGen } from '../generator/index.js';
3
3
  import { beautifySourceCode, compileTemplate } from './utils.js';
4
4
  const HIDDEN_RPCS = [
@@ -38,12 +38,12 @@ export class JsonRpcGen extends ApiGen {
38
38
  HIDDEN_RPCS.filter((one) => !rpcMethods.includes(one)).forEach((one) => rpcMethods.push(one));
39
39
  rpcMethods.sort();
40
40
  }
41
- generate() {
41
+ generate(useSubPaths = false) {
42
42
  this.typesGen.clearCache();
43
43
  this.typesGen.typeImports.addKnownType('GenericJsonRpcApis', 'RpcVersion');
44
- this.typesGen.typeImports.addSpecType('JsonRpcApis');
44
+ this.typesGen.typeImports.addKnownJsonRpcType('JsonRpcApis');
45
45
  const toExclude = Object.values(subscriptionsInfo).flat();
46
- const importTypes = this.typesGen.typeImports.toImports();
46
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
47
47
  const template = compileTemplate('json-rpc.hbs');
48
48
  const jsonRpcMethods = this.rpcMethods
49
49
  .filter((one) => !ALIAS_RPCS.includes(one)) // exclude alias rpcs
@@ -1,5 +1,5 @@
1
1
  import { ApiGen } from './ApiGen.js';
2
2
  export declare class QueryGen extends ApiGen {
3
3
  #private;
4
- generate(): Promise<string>;
4
+ generate(useSubPaths?: boolean): Promise<string>;
5
5
  }
@@ -1,8 +1,8 @@
1
- import { normalizeName, stringCamelCase } from '@dedot/utils';
1
+ import { normalizeName, stringCamelCase } from 'dedot/utils';
2
2
  import { ApiGen } from './ApiGen.js';
3
3
  import { beautifySourceCode, commentBlock, compileTemplate } from './utils.js';
4
4
  export class QueryGen extends ApiGen {
5
- generate() {
5
+ generate(useSubPaths = false) {
6
6
  const { pallets } = this.metadata;
7
7
  this.typesGen.clearCache();
8
8
  this.typesGen.typeImports.addKnownType('GenericChainStorage', 'GenericStorageQuery', 'Callback', 'RpcVersion');
@@ -27,7 +27,7 @@ export class QueryGen extends ApiGen {
27
27
  ${commentBlock('Generic pallet storage query')}[storage: string]: GenericStorageQuery<Rv>;
28
28
  },`;
29
29
  }
30
- const importTypes = this.typesGen.typeImports.toImports();
30
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
31
31
  const template = compileTemplate('query.hbs');
32
32
  return beautifySourceCode(template({ importTypes, defTypeOut }));
33
33
  }
@@ -5,5 +5,5 @@ export declare class RuntimeApisGen extends ApiGen {
5
5
  readonly typesGen: TypesGen;
6
6
  readonly runtimeApis: Record<string, number>;
7
7
  constructor(typesGen: TypesGen, runtimeApis: Record<string, number>);
8
- generate(): Promise<string>;
8
+ generate(useSubPaths?: boolean): Promise<string>;
9
9
  }
@@ -1,5 +1,5 @@
1
- import { getRuntimeApiNames, getRuntimeApiSpecs } from '@dedot/specs';
2
- import { calcRuntimeApiHash, stringSnakeCase, stringCamelCase } from '@dedot/utils';
1
+ import { getRuntimeApiNames, getRuntimeApiSpecs } from 'dedot/runtime-specs';
2
+ import { calcRuntimeApiHash, stringSnakeCase, stringCamelCase } from 'dedot/utils';
3
3
  import { ApiGen } from './ApiGen.js';
4
4
  import { findKnownCodecType } from './known-codecs.js';
5
5
  import { beautifySourceCode, commentBlock, compileTemplate, isNativeType, TUPLE_TYPE_REGEX, WRAPPER_TYPE_REGEX, } from './utils.js';
@@ -11,7 +11,7 @@ export class RuntimeApisGen extends ApiGen {
11
11
  this.typesGen = typesGen;
12
12
  this.runtimeApis = runtimeApis;
13
13
  }
14
- generate() {
14
+ generate(useSubPaths = false) {
15
15
  this.typesGen.clearCache();
16
16
  this.typesGen.typeImports.addKnownType('GenericRuntimeApis', 'GenericRuntimeApiMethod', 'RpcVersion');
17
17
  let runtimeCallsOut = '';
@@ -43,7 +43,7 @@ export class RuntimeApisGen extends ApiGen {
43
43
  }`;
44
44
  });
45
45
  }
46
- const importTypes = this.typesGen.typeImports.toImports();
46
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
47
47
  const template = compileTemplate('runtime.hbs');
48
48
  return beautifySourceCode(template({ importTypes, runtimeCallsOut }));
49
49
  }
@@ -1,5 +1,5 @@
1
1
  import { ApiGen } from '../generator/index.js';
2
2
  export declare class TxGen extends ApiGen {
3
3
  #private;
4
- generate(): Promise<string>;
4
+ generate(useSubPaths?: boolean): Promise<string>;
5
5
  }
@@ -1,8 +1,8 @@
1
- import { stringCamelCase, stringPascalCase } from '@dedot/utils';
1
+ import { stringCamelCase, stringPascalCase } from 'dedot/utils';
2
2
  import { ApiGen } from '../generator/index.js';
3
3
  import { beautifySourceCode, commentBlock, compileTemplate, isReservedWord } from './utils.js';
4
4
  export class TxGen extends ApiGen {
5
- generate() {
5
+ generate(useSubPaths = false) {
6
6
  const { pallets, types } = this.metadata;
7
7
  this.typesGen.clearCache();
8
8
  this.typesGen.typeImports.addKnownType('GenericChainTx', 'GenericTxCall', 'ISubmittableExtrinsic', 'ISubmittableResult', 'IRuntimeTxCall', 'RpcVersion', 'RpcV2', 'ISubmittableExtrinsicLegacy', 'TransactionStatusLegacy', 'TransactionStatusV2');
@@ -47,7 +47,7 @@ export class TxGen extends ApiGen {
47
47
  ${commentBlock('Generic pallet tx call')}[callName: string]: GenericTxCall<Rv, TxCall<Rv>>,
48
48
  },`;
49
49
  }
50
- const importTypes = this.typesGen.typeImports.toImports();
50
+ const importTypes = this.typesGen.typeImports.toImports({ useSubPaths });
51
51
  // TODO make explicit separate type for Extra
52
52
  const defTypes = `
53
53
  export type ChainSubmittableExtrinsic<Rv extends RpcVersion, T extends IRuntimeTxCall = ${callTypeIn}> =
@@ -1,16 +1,21 @@
1
+ type ImportConfig = {
2
+ excludeModules?: string[];
3
+ useSubPaths?: boolean;
4
+ };
1
5
  export declare class TypeImports {
2
6
  #private;
3
7
  portableTypes: Set<string>;
4
8
  codecTypes: Set<string>;
5
9
  knownTypes: Set<string>;
6
- specTypes: Set<string>;
10
+ knownJsonRpcTypes: Set<string>;
7
11
  outTypes: Set<string>;
8
12
  constructor();
9
13
  clear(): void;
10
- toImports(...excludeModules: string[]): string;
14
+ toImports(config?: ImportConfig): string;
11
15
  addPortableType(...types: string[]): void;
12
16
  addCodecType(...types: string[]): void;
13
17
  addKnownType(...types: string[]): void;
14
- addSpecType(...types: string[]): void;
18
+ addKnownJsonRpcType(...types: string[]): void;
15
19
  addOutType(...types: string[]): void;
16
20
  }
21
+ export {};
@@ -5,29 +5,31 @@ export class TypeImports {
5
5
  codecTypes;
6
6
  // Known types that're not codecs or chain/portable types defined in @dedot/types
7
7
  knownTypes;
8
- specTypes;
8
+ knownJsonRpcTypes;
9
9
  // External types to define explicitly
10
10
  outTypes;
11
11
  constructor() {
12
12
  this.portableTypes = new Set();
13
13
  this.codecTypes = new Set();
14
14
  this.knownTypes = new Set();
15
- this.specTypes = new Set();
15
+ this.knownJsonRpcTypes = new Set();
16
16
  this.outTypes = new Set();
17
17
  }
18
18
  clear() {
19
19
  this.portableTypes.clear();
20
20
  this.codecTypes.clear();
21
21
  this.knownTypes.clear();
22
- this.specTypes.clear();
22
+ this.knownJsonRpcTypes.clear();
23
23
  this.outTypes.clear();
24
24
  }
25
- toImports(...excludeModules) {
25
+ toImports(config) {
26
+ const { excludeModules = [], useSubPaths = false } = config || {};
26
27
  // TODO generate outTypes!
28
+ const prefix = useSubPaths ? '' : '@';
27
29
  const toImports = [
28
- [this.knownTypes, '@dedot/types'],
29
- [this.specTypes, '@dedot/specs'],
30
- [this.codecTypes, '@dedot/codecs'],
30
+ [this.knownTypes, `${prefix}dedot/types`],
31
+ [this.knownJsonRpcTypes, `${prefix}dedot/types/json-rpc`],
32
+ [this.codecTypes, `${prefix}dedot/codecs`],
31
33
  [this.portableTypes, './types'],
32
34
  ];
33
35
  return toImports
@@ -51,8 +53,8 @@ export class TypeImports {
51
53
  addKnownType(...types) {
52
54
  types.forEach((one) => this.knownTypes.add(one));
53
55
  }
54
- addSpecType(...types) {
55
- types.forEach((one) => this.specTypes.add(one));
56
+ addKnownJsonRpcType(...types) {
57
+ types.forEach((one) => this.knownJsonRpcTypes.add(one));
56
58
  }
57
59
  addOutType(...types) {
58
60
  types.forEach((one) => this.outTypes.add(one));
@@ -1,4 +1,4 @@
1
- import { Field, MetadataLatest, PortableRegistry, PortableType, TypeId } from '@dedot/codecs';
1
+ import { Field, MetadataLatest, PortableRegistry, PortableType, TypeId } from 'dedot/codecs';
2
2
  import { TypeImports } from './TypeImports.js';
3
3
  interface NamedType extends PortableType {
4
4
  name: string;
@@ -18,7 +18,7 @@ export declare class TypesGen {
18
18
  registry: PortableRegistry;
19
19
  typeImports: TypeImports;
20
20
  constructor(metadata: MetadataLatest);
21
- generate(): Promise<string>;
21
+ generate(useSubPaths?: boolean): Promise<string>;
22
22
  typeCache: Record<string, string>;
23
23
  clearCache(): void;
24
24
  generateType(typeId: TypeId, nestedLevel?: number, typeOut?: boolean): string;
@@ -1,5 +1,5 @@
1
- import { PortableRegistry } from '@dedot/codecs';
2
- import { normalizeName, stringPascalCase } from '@dedot/utils';
1
+ import { PortableRegistry } from 'dedot/codecs';
2
+ import { normalizeName, stringPascalCase } from 'dedot/utils';
3
3
  import { TypeImports } from './TypeImports.js';
4
4
  import { findKnownCodec, findKnownCodecType, isKnownCodecType } from './known-codecs.js';
5
5
  import { beautifySourceCode, commentBlock, compileTemplate, isNativeType } from './utils.js';
@@ -40,7 +40,7 @@ export class TypesGen {
40
40
  this.includedTypes = this.#includedTypes();
41
41
  this.typeImports = new TypeImports();
42
42
  }
43
- generate() {
43
+ generate(useSubPaths = false) {
44
44
  this.clearCache();
45
45
  let defTypeOut = '';
46
46
  Object.values(this.includedTypes)
@@ -51,7 +51,7 @@ export class TypesGen {
51
51
  defTypeOut += `export type ${name} = ${this.generateType(id)};\n\n`;
52
52
  }
53
53
  });
54
- const importTypes = this.typeImports.toImports('./types');
54
+ const importTypes = this.typeImports.toImports({ useSubPaths, excludeModules: ['./types'] });
55
55
  const template = compileTemplate('types.hbs');
56
56
  return beautifySourceCode(template({ importTypes, defTypeOut }));
57
57
  }
@@ -1,5 +1,5 @@
1
- import * as $ from '@dedot/shape';
2
- import { AnyShape } from '@dedot/shape';
1
+ import { $ } from 'dedot';
2
+ import { AnyShape } from 'dedot/shape';
3
3
  export type CodecName = `$${string}`;
4
4
  export interface CodecType {
5
5
  name: CodecName;
@@ -1,7 +1,7 @@
1
- import * as Codecs from '@dedot/codecs';
2
- import { $AccountId20, $AccountId32, $Bytes, $ConsensusEngineId, $Era, $EthereumAddress, $MultiAddress, $OpaqueExtrinsic, $PrefixedStorageKey, $RawBytes, $StorageData, $StorageKey, $UncheckedExtrinsic, } from '@dedot/codecs';
3
- import * as $ from '@dedot/shape';
4
- import { assert } from '@dedot/utils';
1
+ import { $ } from 'dedot';
2
+ import * as Codecs from 'dedot/codecs';
3
+ import { $AccountId20, $AccountId32, $Bytes, $ConsensusEngineId, $Era, $EthereumAddress, $MultiAddress, $OpaqueExtrinsic, $PrefixedStorageKey, $RawBytes, $StorageData, $StorageKey, $UncheckedExtrinsic, } from 'dedot/codecs';
4
+ import { assert } from 'dedot/utils';
5
5
  export const normalizeCodecName = (name) => {
6
6
  return name.startsWith('$') ? name : `$${name}`;
7
7
  };
package/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { MetadataLatest } from '@dedot/codecs';
2
- export declare function generateTypesFromEndpoint(chain: string, endpoint: string, outDir?: string, extension?: string): Promise<void>;
3
- export declare function generateTypes(chain: string, metadata: MetadataLatest, rpcMethods: string[], runtimeApis: Record<string, number>, outDir?: string, extension?: string): Promise<void>;
1
+ import { MetadataLatest } from 'dedot/codecs';
2
+ export declare function generateTypesFromEndpoint(chain: string, endpoint: string, outDir?: string, extension?: string, useSubPaths?: boolean): Promise<void>;
3
+ export declare function generateTypes(chain: string, metadata: MetadataLatest, rpcMethods: string[], runtimeApis: Record<string, number>, outDir?: string, extension?: string, useSubPaths?: boolean): Promise<void>;
package/index.js CHANGED
@@ -1,19 +1,19 @@
1
- import { stringCamelCase } from '@dedot/utils';
2
1
  import { Dedot, WsProvider } from 'dedot';
2
+ import { stringCamelCase } from 'dedot/utils';
3
3
  import * as fs from 'fs';
4
4
  import * as path from 'path';
5
- import { ConstsGen, ErrorsGen, EventsGen, IndexGen, QueryGen, JsonRpcGen, RuntimeApisGen, TxGen, TypesGen, } from './generator/index.js';
6
- export async function generateTypesFromEndpoint(chain, endpoint, outDir, extension = 'd.ts') {
5
+ import { ConstsGen, ErrorsGen, EventsGen, IndexGen, JsonRpcGen, QueryGen, RuntimeApisGen, TxGen, TypesGen, } from './generator/index.js';
6
+ export async function generateTypesFromEndpoint(chain, endpoint, outDir, extension = 'd.ts', useSubPaths = false) {
7
7
  const api = await Dedot.new(new WsProvider(endpoint));
8
8
  const { methods } = await api.rpc.rpc_methods();
9
9
  const apis = api.runtimeVersion.apis || {};
10
10
  if (!chain) {
11
11
  chain = stringCamelCase(api.runtimeVersion.specName || 'local');
12
12
  }
13
- await generateTypes(chain, api.metadata.latest, methods, apis, outDir, extension);
13
+ await generateTypes(chain, api.metadata.latest, methods, apis, outDir, extension, useSubPaths);
14
14
  await api.disconnect();
15
15
  }
16
- export async function generateTypes(chain, metadata, rpcMethods, runtimeApis, outDir = '.', extension = 'd.ts') {
16
+ export async function generateTypes(chain, metadata, rpcMethods, runtimeApis, outDir = '.', extension = 'd.ts', useSubPaths = false) {
17
17
  const dirPath = path.resolve(outDir, chain);
18
18
  const defTypesFileName = path.join(dirPath, `types.${extension}`);
19
19
  const constsTypesFileName = path.join(dirPath, `consts.${extension}`);
@@ -36,13 +36,13 @@ export async function generateTypes(chain, metadata, rpcMethods, runtimeApis, ou
36
36
  const eventsGen = new EventsGen(typesGen);
37
37
  const runtimeApisGen = new RuntimeApisGen(typesGen, runtimeApis);
38
38
  const txGen = new TxGen(typesGen);
39
- fs.writeFileSync(defTypesFileName, await typesGen.generate());
40
- fs.writeFileSync(errorsFileName, await errorsGen.generate());
41
- fs.writeFileSync(eventsFileName, await eventsGen.generate());
42
- fs.writeFileSync(jsonRpcFileName, await jsonRpcGen.generate());
43
- fs.writeFileSync(queryTypesFileName, await queryGen.generate());
44
- fs.writeFileSync(constsTypesFileName, await constsGen.generate());
45
- fs.writeFileSync(txFileName, await txGen.generate());
46
- fs.writeFileSync(indexFileName, await indexGen.generate());
47
- fs.writeFileSync(runtimeApisFileName, await runtimeApisGen.generate());
39
+ fs.writeFileSync(defTypesFileName, await typesGen.generate(useSubPaths));
40
+ fs.writeFileSync(errorsFileName, await errorsGen.generate(useSubPaths));
41
+ fs.writeFileSync(eventsFileName, await eventsGen.generate(useSubPaths));
42
+ fs.writeFileSync(jsonRpcFileName, await jsonRpcGen.generate(useSubPaths));
43
+ fs.writeFileSync(queryTypesFileName, await queryGen.generate(useSubPaths));
44
+ fs.writeFileSync(constsTypesFileName, await constsGen.generate(useSubPaths));
45
+ fs.writeFileSync(txFileName, await txGen.generate(useSubPaths));
46
+ fs.writeFileSync(indexFileName, await indexGen.generate(useSubPaths));
47
+ fs.writeFileSync(runtimeApisFileName, await runtimeApisGen.generate(useSubPaths));
48
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dedot/codegen",
3
- "version": "0.0.1-next.59796573.28+5979657",
3
+ "version": "0.0.1-next.5d366dea.50+5d366de",
4
4
  "description": "Generate types",
5
5
  "author": "Thang X. Vu <thang@coongcrafts.io>",
6
6
  "homepage": "https://github.com/dedotdev/dedot/tree/main/packages/codegen",
@@ -18,20 +18,16 @@
18
18
  "copy": "cp -R ./src/templates ./dist && cp -R ./src/templates ./dist/cjs"
19
19
  },
20
20
  "dependencies": {
21
- "@dedot/codecs": "0.0.1-next.59796573.28+5979657",
22
- "@dedot/shape": "0.0.1-next.59796573.28+5979657",
23
- "@dedot/specs": "0.0.1-next.59796573.28+5979657",
24
- "@dedot/utils": "0.0.1-next.59796573.28+5979657",
25
- "dedot": "0.0.1-next.59796573.28+5979657",
26
- "handlebars": "^4.7.8",
27
- "prettier": "^3.0.3"
21
+ "dedot": "0.0.1-next.5d366dea.50+5d366de",
22
+ "handlebars": "^4.7.7",
23
+ "prettier": "^3.2.5"
28
24
  },
29
25
  "publishConfig": {
30
26
  "access": "public",
31
27
  "directory": "dist"
32
28
  },
33
29
  "license": "Apache-2.0",
34
- "gitHead": "59796573a5449c47e2f6c06a913275660a0441e1",
30
+ "gitHead": "5d366dea6b6c3d076a616746d80b80ef37434ff7",
35
31
  "module": "./index.js",
36
32
  "types": "./index.d.ts",
37
33
  "exports": {