@pezkuwi/api-contract 16.5.5 → 16.5.6

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 (234) hide show
  1. package/Abi/index.js +359 -0
  2. package/Abi/toLatestCompatible.js +30 -0
  3. package/Abi/toV1.js +21 -0
  4. package/Abi/toV2.js +27 -0
  5. package/Abi/toV3.js +10 -0
  6. package/Abi/toV4.js +10 -0
  7. package/LICENSE +201 -0
  8. package/README.md +1 -1
  9. package/augment.js +1 -0
  10. package/base/Base.js +40 -0
  11. package/base/Blueprint.js +51 -0
  12. package/base/Code.js +74 -0
  13. package/base/Contract.js +127 -0
  14. package/{src/base/index.ts → base/index.js} +0 -3
  15. package/base/mock.js +38 -0
  16. package/{build/base → base}/util.d.ts +1 -1
  17. package/base/util.js +33 -0
  18. package/bundle-pezkuwi-api-contract.js +1238 -0
  19. package/{src/bundle.ts → bundle.js} +0 -6
  20. package/cjs/Abi/index.d.ts +31 -0
  21. package/cjs/Abi/index.js +363 -0
  22. package/cjs/Abi/toLatestCompatible.d.ts +15 -0
  23. package/cjs/Abi/toLatestCompatible.js +36 -0
  24. package/cjs/Abi/toV1.d.ts +3 -0
  25. package/cjs/Abi/toV1.js +24 -0
  26. package/cjs/Abi/toV2.d.ts +3 -0
  27. package/cjs/Abi/toV2.js +30 -0
  28. package/cjs/Abi/toV3.d.ts +3 -0
  29. package/cjs/Abi/toV3.js +13 -0
  30. package/cjs/Abi/toV4.d.ts +3 -0
  31. package/cjs/Abi/toV4.js +13 -0
  32. package/cjs/augment.d.ts +1 -0
  33. package/cjs/augment.js +3 -0
  34. package/cjs/base/Base.d.ts +13 -0
  35. package/cjs/base/Base.js +44 -0
  36. package/cjs/base/Blueprint.d.ts +24 -0
  37. package/cjs/base/Blueprint.js +57 -0
  38. package/cjs/base/Code.d.ts +22 -0
  39. package/cjs/base/Code.js +80 -0
  40. package/cjs/base/Contract.d.ts +25 -0
  41. package/cjs/base/Contract.js +133 -0
  42. package/cjs/base/index.d.ts +3 -0
  43. package/cjs/base/index.js +14 -0
  44. package/cjs/base/mock.d.ts +3 -0
  45. package/cjs/base/mock.js +41 -0
  46. package/{src/base/types.ts → cjs/base/types.d.ts} +6 -21
  47. package/cjs/base/types.js +2 -0
  48. package/cjs/base/util.d.ts +16 -0
  49. package/cjs/base/util.js +42 -0
  50. package/cjs/bundle.d.ts +4 -0
  51. package/cjs/bundle.js +10 -0
  52. package/cjs/index.js +5 -0
  53. package/cjs/package.json +3 -0
  54. package/cjs/packageDetect.d.ts +1 -0
  55. package/cjs/packageDetect.js +7 -0
  56. package/cjs/packageInfo.js +4 -0
  57. package/cjs/promise/index.js +23 -0
  58. package/cjs/promise/types.js +2 -0
  59. package/cjs/rx/index.js +23 -0
  60. package/cjs/rx/types.js +2 -0
  61. package/cjs/types.js +2 -0
  62. package/cjs/util.js +13 -0
  63. package/index.d.ts +2 -0
  64. package/index.js +2 -0
  65. package/package.json +384 -15
  66. package/packageDetect.d.ts +1 -0
  67. package/{src/packageDetect.ts → packageDetect.js} +0 -8
  68. package/packageInfo.d.ts +6 -0
  69. package/packageInfo.js +1 -0
  70. package/promise/index.d.ts +13 -0
  71. package/promise/index.js +17 -0
  72. package/{src/promise/types.ts → promise/types.d.ts} +0 -4
  73. package/promise/types.js +1 -0
  74. package/rx/index.d.ts +13 -0
  75. package/rx/index.js +17 -0
  76. package/{src/rx/types.ts → rx/types.d.ts} +0 -4
  77. package/rx/types.js +1 -0
  78. package/types.d.ts +79 -0
  79. package/types.js +1 -0
  80. package/util.d.ts +5 -0
  81. package/util.js +10 -0
  82. package/src/Abi/Abi.spec.ts +0 -235
  83. package/src/Abi/index.ts +0 -477
  84. package/src/Abi/toLatestCompatible.spec.ts +0 -219
  85. package/src/Abi/toLatestCompatible.ts +0 -52
  86. package/src/Abi/toV1.ts +0 -35
  87. package/src/Abi/toV2.ts +0 -58
  88. package/src/Abi/toV3.ts +0 -18
  89. package/src/Abi/toV4.ts +0 -21
  90. package/src/augment.ts +0 -4
  91. package/src/base/Base.ts +0 -52
  92. package/src/base/Blueprint.ts +0 -90
  93. package/src/base/Code.spec.ts +0 -47
  94. package/src/base/Code.ts +0 -142
  95. package/src/base/Contract.ts +0 -197
  96. package/src/base/mock.ts +0 -48
  97. package/src/base/util.ts +0 -56
  98. package/src/checkTypes.manual.ts +0 -45
  99. package/src/index.ts +0 -6
  100. package/src/mod.ts +0 -4
  101. package/src/packageInfo.ts +0 -6
  102. package/src/promise/index.ts +0 -28
  103. package/src/rx/index.ts +0 -28
  104. package/src/test/compare/ink_v0_delegator.test.json +0 -47
  105. package/src/test/compare/ink_v0_dns.test.json +0 -232
  106. package/src/test/compare/ink_v0_erc20.test.json +0 -253
  107. package/src/test/compare/ink_v0_erc721.test.json +0 -415
  108. package/src/test/compare/ink_v0_flipper.test.json +0 -9
  109. package/src/test/compare/ink_v0_flipperBundle.test.json +0 -9
  110. package/src/test/compare/ink_v0_incrementer.test.json +0 -9
  111. package/src/test/compare/ink_v0_multisigPlain.test.json +0 -562
  112. package/src/test/compare/ink_v1_flipper.test.json +0 -9
  113. package/src/test/compare/ink_v1_psp22.test.json +0 -531
  114. package/src/test/compare/ink_v2_erc20.test.json +0 -205
  115. package/src/test/compare/ink_v2_flipper.test.json +0 -9
  116. package/src/test/compare/ink_v3_flipper.test.json +0 -9
  117. package/src/test/compare/ink_v3_traitErc20.test.json +0 -205
  118. package/src/test/compare/ink_v4_erc20Contract.test.json +0 -253
  119. package/src/test/compare/ink_v4_erc20Metadata.test.json +0 -253
  120. package/src/test/compare/ink_v4_flipperContract.test.json +0 -155
  121. package/src/test/compare/ink_v4_flipperMetadata.test.json +0 -155
  122. package/src/test/compare/ink_v5_erc20.test.json +0 -370
  123. package/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json +0 -370
  124. package/src/test/compare/ink_v5_erc20Contract.test.json +0 -370
  125. package/src/test/compare/ink_v5_erc20Metadata.test.json +0 -370
  126. package/src/test/compare/ink_v5_flipperContract.test.json +0 -174
  127. package/src/test/compare/ink_v5_flipperMetadata.test.json +0 -174
  128. package/src/test/compare/ink_v6_erc20Contract.test.json +0 -418
  129. package/src/test/compare/ink_v6_erc20Metadata.test.json +0 -418
  130. package/src/test/compare/solang_v0_ints256.test.json +0 -9
  131. package/src/test/compare/user_v0_assetTransfer.test.json +0 -54
  132. package/src/test/compare/user_v0_enumExample.test.json +0 -303
  133. package/src/test/compare/user_v0_recursive.test.json +0 -27
  134. package/src/test/compare/user_v0_withString.test.json +0 -260
  135. package/src/test/compare/user_v3_ask.test.json +0 -71
  136. package/src/test/compare/user_v4_events.test.json +0 -1328
  137. package/src/test/contracts/index.ts +0 -20
  138. package/src/test/contracts/ink/index.ts +0 -13
  139. package/src/test/contracts/ink/v0/accumulator.wasm +0 -0
  140. package/src/test/contracts/ink/v0/adder.wasm +0 -0
  141. package/src/test/contracts/ink/v0/delegator.json +0 -252
  142. package/src/test/contracts/ink/v0/delegator.wasm +0 -0
  143. package/src/test/contracts/ink/v0/dns.json +0 -713
  144. package/src/test/contracts/ink/v0/dns.wasm +0 -0
  145. package/src/test/contracts/ink/v0/erc20.json +0 -704
  146. package/src/test/contracts/ink/v0/erc20.wasm +0 -0
  147. package/src/test/contracts/ink/v0/erc721.json +0 -1197
  148. package/src/test/contracts/ink/v0/erc721.wasm +0 -0
  149. package/src/test/contracts/ink/v0/flipper.contract.json +0 -107
  150. package/src/test/contracts/ink/v0/flipper.json +0 -106
  151. package/src/test/contracts/ink/v0/flipper.wasm +0 -0
  152. package/src/test/contracts/ink/v0/incrementer.json +0 -108
  153. package/src/test/contracts/ink/v0/incrementer.wasm +0 -0
  154. package/src/test/contracts/ink/v0/index.ts +0 -11
  155. package/src/test/contracts/ink/v0/multisig_plain.json +0 -1466
  156. package/src/test/contracts/ink/v0/multisig_plain.wasm +0 -0
  157. package/src/test/contracts/ink/v0/subber.wasm +0 -0
  158. package/src/test/contracts/ink/v0/trait-flipper.json +0 -103
  159. package/src/test/contracts/ink/v0/trait-flipper.wasm +0 -0
  160. package/src/test/contracts/ink/v1/flipper.contract.json +0 -111
  161. package/src/test/contracts/ink/v1/index.ts +0 -6
  162. package/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json +0 -1722
  163. package/src/test/contracts/ink/v2/erc20.contract.json +0 -630
  164. package/src/test/contracts/ink/v2/flipper.contract.json +0 -103
  165. package/src/test/contracts/ink/v2/index.ts +0 -5
  166. package/src/test/contracts/ink/v3/flipper.contract.json +0 -105
  167. package/src/test/contracts/ink/v3/index.ts +0 -6
  168. package/src/test/contracts/ink/v3/trait_erc20.contract.json +0 -631
  169. package/src/test/contracts/ink/v4/erc20.contract.json +0 -1
  170. package/src/test/contracts/ink/v4/erc20.json +0 -821
  171. package/src/test/contracts/ink/v4/erc20.wasm +0 -0
  172. package/src/test/contracts/ink/v4/flipper.contract.json +0 -1
  173. package/src/test/contracts/ink/v4/flipper.json +0 -396
  174. package/src/test/contracts/ink/v4/flipper.wasm +0 -0
  175. package/src/test/contracts/ink/v4/index.ts +0 -7
  176. package/src/test/contracts/ink/v5/erc20.contract.json +0 -1
  177. package/src/test/contracts/ink/v5/erc20.json +0 -1025
  178. package/src/test/contracts/ink/v5/erc20.wasm +0 -0
  179. package/src/test/contracts/ink/v5/erc20_anonymous_transfer.json +0 -1025
  180. package/src/test/contracts/ink/v5/flipper.contract.json +0 -1
  181. package/src/test/contracts/ink/v5/flipper.json +0 -420
  182. package/src/test/contracts/ink/v5/flipper.wasm +0 -0
  183. package/src/test/contracts/ink/v5/index.ts +0 -8
  184. package/src/test/contracts/ink/v6/erc20.contract.json +0 -1
  185. package/src/test/contracts/ink/v6/erc20.json +0 -1081
  186. package/src/test/contracts/ink/v6/erc20.polkavm +0 -0
  187. package/src/test/contracts/ink/v6/index.ts +0 -5
  188. package/src/test/contracts/solang/index.ts +0 -7
  189. package/src/test/contracts/solang/v0/index.ts +0 -4
  190. package/src/test/contracts/solang/v0/ints256.json +0 -113
  191. package/src/test/contracts/solang/v0/ints256.sol +0 -13
  192. package/src/test/contracts/solang/v0/ints256.wasm +0 -0
  193. package/src/test/contracts/user/index.ts +0 -9
  194. package/src/test/contracts/user/v0/assetTransfer.json +0 -299
  195. package/src/test/contracts/user/v0/assetTransfer.wasm +0 -0
  196. package/src/test/contracts/user/v0/enumExample.json +0 -528
  197. package/src/test/contracts/user/v0/enumExample.wasm +0 -0
  198. package/src/test/contracts/user/v0/index.ts +0 -7
  199. package/src/test/contracts/user/v0/recursive.contract.json +0 -1
  200. package/src/test/contracts/user/v0/withString.json +0 -777
  201. package/src/test/contracts/user/v3/ask.json +0 -550
  202. package/src/test/contracts/user/v3/index.ts +0 -4
  203. package/src/test/contracts/user/v4/events.contract.json +0 -2990
  204. package/src/test/contracts/user/v4/index.ts +0 -4
  205. package/src/test/contracts/util.ts +0 -14
  206. package/src/types.ts +0 -98
  207. package/src/util.ts +0 -20
  208. package/tsconfig.build.json +0 -22
  209. package/tsconfig.build.tsbuildinfo +0 -1
  210. package/tsconfig.spec.json +0 -26
  211. /package/{build/Abi → Abi}/index.d.ts +0 -0
  212. /package/{build/Abi → Abi}/toLatestCompatible.d.ts +0 -0
  213. /package/{build/Abi → Abi}/toV1.d.ts +0 -0
  214. /package/{build/Abi → Abi}/toV2.d.ts +0 -0
  215. /package/{build/Abi → Abi}/toV3.d.ts +0 -0
  216. /package/{build/Abi → Abi}/toV4.d.ts +0 -0
  217. /package/{build/augment.d.ts → augment.d.ts} +0 -0
  218. /package/{build/base → base}/Base.d.ts +0 -0
  219. /package/{build/base → base}/Blueprint.d.ts +0 -0
  220. /package/{build/base → base}/Code.d.ts +0 -0
  221. /package/{build/base → base}/Contract.d.ts +0 -0
  222. /package/{build/base → base}/index.d.ts +0 -0
  223. /package/{build/base → base}/mock.d.ts +0 -0
  224. /package/{build/base → base}/types.d.ts +0 -0
  225. /package/{build/packageDetect.d.ts → base/types.js} +0 -0
  226. /package/{build/bundle.d.ts → bundle.d.ts} +0 -0
  227. /package/{build → cjs}/index.d.ts +0 -0
  228. /package/{build → cjs}/packageInfo.d.ts +0 -0
  229. /package/{build → cjs}/promise/index.d.ts +0 -0
  230. /package/{build → cjs}/promise/types.d.ts +0 -0
  231. /package/{build → cjs}/rx/index.d.ts +0 -0
  232. /package/{build → cjs}/rx/types.d.ts +0 -0
  233. /package/{build → cjs}/types.d.ts +0 -0
  234. /package/{build → cjs}/util.d.ts +0 -0
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Blueprint = exports.BlueprintSubmittableResult = void 0;
4
+ exports.extendBlueprint = extendBlueprint;
5
+ const api_1 = require("@pezkuwi/api");
6
+ const util_1 = require("@pezkuwi/util");
7
+ const util_js_1 = require("../util.js");
8
+ const Base_js_1 = require("./Base.js");
9
+ const Contract_js_1 = require("./Contract.js");
10
+ const util_js_2 = require("./util.js");
11
+ class BlueprintSubmittableResult extends api_1.SubmittableResult {
12
+ contract;
13
+ constructor(result, contract) {
14
+ super(result);
15
+ this.contract = contract;
16
+ }
17
+ }
18
+ exports.BlueprintSubmittableResult = BlueprintSubmittableResult;
19
+ class Blueprint extends Base_js_1.Base {
20
+ /**
21
+ * @description The on-chain code hash for this blueprint
22
+ */
23
+ codeHash;
24
+ #tx = {};
25
+ constructor(api, abi, codeHash, decorateMethod) {
26
+ super(api, abi, decorateMethod);
27
+ this.codeHash = this.registry.createType('Hash', codeHash);
28
+ this.abi.constructors.forEach((c) => {
29
+ if ((0, util_1.isUndefined)(this.#tx[c.method])) {
30
+ this.#tx[c.method] = (0, util_js_2.createBluePrintTx)(c, (o, p) => this.#deploy(c, o, p));
31
+ }
32
+ });
33
+ }
34
+ get tx() {
35
+ return this.#tx;
36
+ }
37
+ #deploy = (constructorOrId, { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, params) => {
38
+ const palletTx = this._isRevive
39
+ ? this.api.tx.revive
40
+ : this.api.tx.contracts;
41
+ return palletTx.instantiate(value,
42
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
43
+ // @ts-ignore jiggle v1 weights, metadata points to latest
44
+ this._isWeightV1
45
+ ? (0, util_js_2.convertWeight)(gasLimit).v1Weight
46
+ : (0, util_js_2.convertWeight)(gasLimit).v2Weight, storageDepositLimit, this.codeHash, this.abi.findConstructor(constructorOrId).toU8a(params), (0, util_js_2.encodeSalt)(salt)).withResultTransform((result) => new BlueprintSubmittableResult(result, (0, util_js_1.applyOnEvent)(result, ['Instantiated'], ([record]) => new Contract_js_1.Contract(this.api, this.abi, record.event.data[1], this._decorateMethod), this._isRevive)));
47
+ };
48
+ }
49
+ exports.Blueprint = Blueprint;
50
+ function extendBlueprint(type, decorateMethod) {
51
+ return class extends Blueprint {
52
+ static __BlueprintType = type;
53
+ constructor(api, abi, codeHash) {
54
+ super(api, abi, codeHash, decorateMethod);
55
+ }
56
+ };
57
+ }
@@ -0,0 +1,22 @@
1
+ import type { ApiBase } from '@pezkuwi/api/base';
2
+ import type { ApiTypes, DecorateMethod } from '@pezkuwi/api/types';
3
+ import type { ISubmittableResult } from '@pezkuwi/types/types';
4
+ import type { Abi } from '../Abi/index.js';
5
+ import type { MapConstructorExec } from './types.js';
6
+ import { SubmittableResult } from '@pezkuwi/api';
7
+ import { Base } from './Base.js';
8
+ import { Blueprint } from './Blueprint.js';
9
+ import { Contract } from './Contract.js';
10
+ export type CodeConstructor<ApiType extends ApiTypes> = new (api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, wasm: Uint8Array | string | Buffer | null | undefined) => Code<ApiType>;
11
+ export declare class CodeSubmittableResult<ApiType extends ApiTypes> extends SubmittableResult {
12
+ readonly blueprint?: Blueprint<ApiType> | undefined;
13
+ readonly contract?: Contract<ApiType> | undefined;
14
+ constructor(result: ISubmittableResult, blueprint?: Blueprint<ApiType> | undefined, contract?: Contract<ApiType> | undefined);
15
+ }
16
+ export declare class Code<ApiType extends ApiTypes> extends Base<ApiType> {
17
+ #private;
18
+ readonly code: Uint8Array;
19
+ constructor(api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, wasm: Uint8Array | string | Buffer | null | undefined, decorateMethod: DecorateMethod<ApiType>);
20
+ get tx(): MapConstructorExec<ApiType>;
21
+ }
22
+ export declare function extendCode<ApiType extends ApiTypes>(type: ApiType, decorateMethod: DecorateMethod<ApiType>): CodeConstructor<ApiType>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Code = exports.CodeSubmittableResult = void 0;
4
+ exports.extendCode = extendCode;
5
+ const api_1 = require("@pezkuwi/api");
6
+ const util_1 = require("@pezkuwi/util");
7
+ const util_js_1 = require("../util.js");
8
+ const Base_js_1 = require("./Base.js");
9
+ const Blueprint_js_1 = require("./Blueprint.js");
10
+ const Contract_js_1 = require("./Contract.js");
11
+ const util_js_2 = require("./util.js");
12
+ class CodeSubmittableResult extends api_1.SubmittableResult {
13
+ blueprint;
14
+ contract;
15
+ constructor(result, blueprint, contract) {
16
+ super(result);
17
+ this.blueprint = blueprint;
18
+ this.contract = contract;
19
+ }
20
+ }
21
+ exports.CodeSubmittableResult = CodeSubmittableResult;
22
+ function isValidCode(code) {
23
+ return (0, util_1.isWasm)(code) || (0, util_1.isRiscV)(code);
24
+ }
25
+ class Code extends Base_js_1.Base {
26
+ code;
27
+ #tx = {};
28
+ constructor(api, abi, wasm, decorateMethod) {
29
+ super(api, abi, decorateMethod);
30
+ this.code = isValidCode(this.abi.info.source.wasm)
31
+ ? this.abi.info.source.wasm
32
+ : (0, util_1.u8aToU8a)(wasm);
33
+ if (!isValidCode(this.code)) {
34
+ throw new Error('Invalid code provided');
35
+ }
36
+ this.abi.constructors.forEach((c) => {
37
+ if ((0, util_1.isUndefined)(this.#tx[c.method])) {
38
+ this.#tx[c.method] = (0, util_js_2.createBluePrintTx)(c, (o, p) => this.#instantiate(c, o, p));
39
+ }
40
+ });
41
+ }
42
+ get tx() {
43
+ return this.#tx;
44
+ }
45
+ #instantiate = (constructorOrId, { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, params) => {
46
+ const palletTx = this._isRevive ? this.api.tx.revive : this.api.tx.contracts;
47
+ if (this._isRevive) {
48
+ return palletTx.instantiateWithCode(value,
49
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
50
+ // @ts-ignore jiggle v1 weights, metadata points to latest
51
+ this._isWeightV1
52
+ ? (0, util_js_2.convertWeight)(gasLimit).v1Weight
53
+ : (0, util_js_2.convertWeight)(gasLimit).v2Weight, storageDepositLimit, (0, util_1.compactAddLength)(this.code), this.abi.findConstructor(constructorOrId).toU8a(params), (0, util_js_2.encodeSalt)(salt)).withResultTransform((result) => new CodeSubmittableResult(result, ...((0, util_js_1.applyOnEvent)(result, ['Instantiated'], (records) => records.reduce(([blueprint, contract], { event }) => this.api.events.revive['Instantiated'].is(event)
54
+ ? [
55
+ blueprint,
56
+ new Contract_js_1.Contract(this.api, this.abi, event.data[1], this._decorateMethod)
57
+ ]
58
+ : [blueprint, contract], [undefined, undefined]), this._isRevive) || [undefined, undefined])));
59
+ }
60
+ return palletTx.instantiateWithCode(value,
61
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
62
+ // @ts-ignore jiggle v1 weights, metadata points to latest
63
+ this._isWeightV1
64
+ ? (0, util_js_2.convertWeight)(gasLimit).v1Weight
65
+ : (0, util_js_2.convertWeight)(gasLimit).v2Weight, storageDepositLimit, (0, util_1.compactAddLength)(this.code), this.abi.findConstructor(constructorOrId).toU8a(params), (0, util_js_2.encodeSalt)(salt)).withResultTransform((result) => new CodeSubmittableResult(result, ...((0, util_js_1.applyOnEvent)(result, ['CodeStored', 'Instantiated'], (records) => records.reduce(([blueprint, contract], { event }) => this.api.events.contracts.Instantiated.is(event)
66
+ ? [blueprint, new Contract_js_1.Contract(this.api, this.abi, event.data[1], this._decorateMethod)]
67
+ : this.api.events.contracts.CodeStored.is(event)
68
+ ? [new Blueprint_js_1.Blueprint(this.api, this.abi, event.data[0], this._decorateMethod), contract]
69
+ : [blueprint, contract], [undefined, undefined]), this._isRevive) || [undefined, undefined])));
70
+ };
71
+ }
72
+ exports.Code = Code;
73
+ function extendCode(type, decorateMethod) {
74
+ return class extends Code {
75
+ static __CodeType = type;
76
+ constructor(api, abi, wasm) {
77
+ super(api, abi, wasm, decorateMethod);
78
+ }
79
+ };
80
+ }
@@ -0,0 +1,25 @@
1
+ import type { ApiBase } from '@pezkuwi/api/base';
2
+ import type { ApiTypes, DecorateMethod } from '@pezkuwi/api/types';
3
+ import type { AccountId, AccountId20 } from '@pezkuwi/types/interfaces';
4
+ import type { ISubmittableResult } from '@pezkuwi/types/types';
5
+ import type { Abi } from '../Abi/index.js';
6
+ import type { DecodedEvent } from '../types.js';
7
+ import type { MapMessageQuery, MapMessageTx } from './types.js';
8
+ import { SubmittableResult } from '@pezkuwi/api';
9
+ import { Base } from './Base.js';
10
+ export type ContractConstructor<ApiType extends ApiTypes> = new (api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, address: string | AccountId) => Contract<ApiType>;
11
+ export declare class ContractSubmittableResult extends SubmittableResult {
12
+ readonly contractEvents?: DecodedEvent[] | undefined;
13
+ constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]);
14
+ }
15
+ export declare class Contract<ApiType extends ApiTypes> extends Base<ApiType> {
16
+ #private;
17
+ /**
18
+ * @description The on-chain address for this contract
19
+ */
20
+ readonly address: AccountId | AccountId20;
21
+ constructor(api: ApiBase<ApiType>, abi: string | Record<string, unknown> | Abi, address: string | AccountId | AccountId20, decorateMethod: DecorateMethod<ApiType>);
22
+ get query(): MapMessageQuery<ApiType>;
23
+ get tx(): MapMessageTx<ApiType>;
24
+ }
25
+ export declare function extendContract<ApiType extends ApiTypes>(type: ApiType, decorateMethod: DecorateMethod<ApiType>): ContractConstructor<ApiType>;
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Contract = exports.ContractSubmittableResult = void 0;
4
+ exports.extendContract = extendContract;
5
+ const rxjs_1 = require("rxjs");
6
+ const api_1 = require("@pezkuwi/api");
7
+ const util_1 = require("@pezkuwi/util");
8
+ const util_js_1 = require("../util.js");
9
+ const Base_js_1 = require("./Base.js");
10
+ const util_js_2 = require("./util.js");
11
+ const MAX_CALL_GAS = new util_1.BN(5_000_000_000_000).isub(util_1.BN_ONE);
12
+ const l = (0, util_1.logger)('Contract');
13
+ function createQuery(meta, fn) {
14
+ return (0, util_js_2.withMeta)(meta, (origin, options, ...params) => fn(origin, options, params));
15
+ }
16
+ function createTx(meta, fn) {
17
+ return (0, util_js_2.withMeta)(meta, (options, ...params) => fn(options, params));
18
+ }
19
+ class ContractSubmittableResult extends api_1.SubmittableResult {
20
+ contractEvents;
21
+ constructor(result, contractEvents) {
22
+ super(result);
23
+ this.contractEvents = contractEvents;
24
+ }
25
+ }
26
+ exports.ContractSubmittableResult = ContractSubmittableResult;
27
+ class Contract extends Base_js_1.Base {
28
+ /**
29
+ * @description The on-chain address for this contract
30
+ */
31
+ address;
32
+ #query = {};
33
+ #tx = {};
34
+ constructor(api, abi, address, decorateMethod) {
35
+ super(api, abi, decorateMethod);
36
+ this.address = this.registry.createType(this._isRevive ? 'AccountId20' : 'AccountId', address);
37
+ this.abi.messages.forEach((m) => {
38
+ if ((0, util_1.isUndefined)(this.#tx[m.method])) {
39
+ this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p));
40
+ }
41
+ if ((0, util_1.isUndefined)(this.#query[m.method])) {
42
+ this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f));
43
+ }
44
+ });
45
+ }
46
+ get query() {
47
+ return this.#query;
48
+ }
49
+ get tx() {
50
+ return this.#tx;
51
+ }
52
+ #getGas = (_gasLimit, isCall = false) => {
53
+ const weight = (0, util_js_2.convertWeight)(_gasLimit);
54
+ if (weight.v1Weight.gt(util_1.BN_ZERO)) {
55
+ return weight;
56
+ }
57
+ return (0, util_js_2.convertWeight)(isCall
58
+ ? MAX_CALL_GAS
59
+ : (0, util_js_2.convertWeight)(this.api.consts.system.blockWeights
60
+ ? this.api.consts.system.blockWeights.maxBlock
61
+ : this.api.consts.system['maximumBlockWeight']).v1Weight.muln(64).div(util_1.BN_HUNDRED));
62
+ };
63
+ #exec = (messageOrId, { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, params) => {
64
+ const palletTx = this._isRevive ? this.api.tx.revive : this.api.tx.contracts;
65
+ return palletTx.call(this.address, value,
66
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
67
+ // @ts-ignore jiggle v1 weights, metadata points to latest
68
+ this._isWeightV1
69
+ ? (0, util_js_2.convertWeight)(gasLimit).v1Weight
70
+ : (0, util_js_2.convertWeight)(gasLimit).v2Weight, storageDepositLimit, this.abi.findMessage(messageOrId).toU8a(params)).withResultTransform((result) =>
71
+ // ContractEmitted is the current generation, ContractExecution is the previous generation
72
+ new ContractSubmittableResult(result, (0, util_js_1.applyOnEvent)(result, ['ContractEmitted', 'ContractExecution'], (records) => records
73
+ // Filter to only decode events emitted by this specific contract instance.
74
+ .filter((record) => {
75
+ try {
76
+ const contractAddress = record.event.data[0];
77
+ if (this.address.eq(contractAddress)) {
78
+ return true;
79
+ }
80
+ l.debug(`Skipping event from different contract ${contractAddress.toString()} (this contract: ${this.address.toString()})`);
81
+ return false;
82
+ }
83
+ catch (error) {
84
+ l.warn(`Unable to extract contract address from event: ${error.message}`);
85
+ return false;
86
+ }
87
+ })
88
+ .map((record) => {
89
+ try {
90
+ return this.abi.decodeEvent(record);
91
+ }
92
+ catch (error) {
93
+ l.error(`Unable to decode contract event: ${error.message}`);
94
+ return null;
95
+ }
96
+ })
97
+ .filter((decoded) => !!decoded), this._isRevive)));
98
+ };
99
+ #read = (messageOrId, { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, params) => {
100
+ const message = this.abi.findMessage(messageOrId);
101
+ return {
102
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
103
+ send: this._decorateMethod((origin) => (this._isRevive
104
+ ? this.api.rx.call.reviveApi.call
105
+ : this.api.rx.call.contractsApi.call)(origin, this.address, value,
106
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
107
+ // @ts-ignore jiggle v1 weights, metadata points to latest
108
+ this._isWeightV1
109
+ ? this.#getGas(gasLimit, true).v1Weight
110
+ : this.#getGas(gasLimit, true).v2Weight, storageDepositLimit, message.toU8a(params)).pipe((0, rxjs_1.map)(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({
111
+ debugMessage,
112
+ gasConsumed,
113
+ gasRequired: gasRequired && !(0, util_js_2.convertWeight)(gasRequired).v1Weight.isZero()
114
+ ? gasRequired
115
+ : gasConsumed,
116
+ output: result.isOk && message.returnType
117
+ ? this.abi.registry.createTypeUnsafe(message.returnType.lookupName || message.returnType.type, [result.asOk.data.toU8a(true)], { isPedantic: true })
118
+ : null,
119
+ result,
120
+ storageDeposit
121
+ }))))
122
+ };
123
+ };
124
+ }
125
+ exports.Contract = Contract;
126
+ function extendContract(type, decorateMethod) {
127
+ return class extends Contract {
128
+ static __ContractType = type;
129
+ constructor(api, abi, address) {
130
+ super(api, abi, address, decorateMethod);
131
+ }
132
+ };
133
+ }
@@ -0,0 +1,3 @@
1
+ export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js';
2
+ export { Code, CodeSubmittableResult, extendCode } from './Code.js';
3
+ export { Contract, extendContract } from './Contract.js';
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extendContract = exports.Contract = exports.extendCode = exports.CodeSubmittableResult = exports.Code = exports.extendBlueprint = exports.BlueprintSubmittableResult = exports.Blueprint = void 0;
4
+ var Blueprint_js_1 = require("./Blueprint.js");
5
+ Object.defineProperty(exports, "Blueprint", { enumerable: true, get: function () { return Blueprint_js_1.Blueprint; } });
6
+ Object.defineProperty(exports, "BlueprintSubmittableResult", { enumerable: true, get: function () { return Blueprint_js_1.BlueprintSubmittableResult; } });
7
+ Object.defineProperty(exports, "extendBlueprint", { enumerable: true, get: function () { return Blueprint_js_1.extendBlueprint; } });
8
+ var Code_js_1 = require("./Code.js");
9
+ Object.defineProperty(exports, "Code", { enumerable: true, get: function () { return Code_js_1.Code; } });
10
+ Object.defineProperty(exports, "CodeSubmittableResult", { enumerable: true, get: function () { return Code_js_1.CodeSubmittableResult; } });
11
+ Object.defineProperty(exports, "extendCode", { enumerable: true, get: function () { return Code_js_1.extendCode; } });
12
+ var Contract_js_1 = require("./Contract.js");
13
+ Object.defineProperty(exports, "Contract", { enumerable: true, get: function () { return Contract_js_1.Contract; } });
14
+ Object.defineProperty(exports, "extendContract", { enumerable: true, get: function () { return Contract_js_1.extendContract; } });
@@ -0,0 +1,3 @@
1
+ import type { ApiBase } from '@pezkuwi/api/base';
2
+ export declare const mockApi: ApiBase<"promise">;
3
+ export declare const mockReviveApi: ApiBase<"promise">;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockReviveApi = exports.mockApi = void 0;
4
+ const types_1 = require("@pezkuwi/types");
5
+ const registry = new types_1.TypeRegistry();
6
+ const instantiateWithCode = () => {
7
+ throw new Error('mock');
8
+ };
9
+ instantiateWithCode.meta = { args: new Array(6) };
10
+ exports.mockApi = {
11
+ call: {
12
+ contractsApi: {
13
+ call: () => {
14
+ throw new Error('mock');
15
+ }
16
+ }
17
+ },
18
+ isConnected: true,
19
+ registry,
20
+ tx: {
21
+ contracts: {
22
+ instantiateWithCode
23
+ }
24
+ }
25
+ };
26
+ exports.mockReviveApi = {
27
+ call: {
28
+ reviveApi: {
29
+ call: () => {
30
+ throw new Error('mock');
31
+ }
32
+ }
33
+ },
34
+ isConnected: true,
35
+ registry,
36
+ tx: {
37
+ revive: {
38
+ instantiateWithCode
39
+ }
40
+ }
41
+ };
@@ -1,40 +1,25 @@
1
- // Copyright 2017-2025 @polkadot/api-contract authors & contributors
2
- // SPDX-License-Identifier: Apache-2.0
3
-
4
1
  import type { Observable } from 'rxjs';
5
2
  import type { SubmittableExtrinsic } from '@pezkuwi/api/submittable/types';
6
3
  import type { ApiTypes, ObsInnerType } from '@pezkuwi/api/types';
7
4
  import type { AccountId } from '@pezkuwi/types/interfaces';
8
5
  import type { AbiMessage, BlueprintOptions, ContractCallOutcome, ContractOptions } from '../types.js';
9
-
10
6
  export interface MessageMeta {
11
- readonly meta: AbiMessage;
7
+ readonly meta: AbiMessage;
12
8
  }
13
-
14
9
  export interface BlueprintDeploy<ApiType extends ApiTypes> extends MessageMeta {
15
- (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
10
+ (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
16
11
  }
17
-
18
12
  export interface ContractQuery<ApiType extends ApiTypes> extends MessageMeta {
19
- (origin: AccountId | string | Uint8Array, options: ContractOptions, ...params: unknown[]): ContractCallResult<ApiType, ContractCallOutcome>;
13
+ (origin: AccountId | string | Uint8Array, options: ContractOptions, ...params: unknown[]): ContractCallResult<ApiType, ContractCallOutcome>;
20
14
  }
21
-
22
15
  export interface ContractTx<ApiType extends ApiTypes> extends MessageMeta {
23
- (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
16
+ (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic<ApiType>;
24
17
  }
25
-
26
18
  export type ContractGeneric<O, T> = (messageOrId: AbiMessage | string | number, options: O, ...params: unknown[]) => T;
27
-
28
- export type ContractCallResult<ApiType extends ApiTypes, T> = ApiType extends 'rxjs'
29
- ? Observable<T>
30
- : Promise<ObsInnerType<Observable<T>>>;
31
-
19
+ export type ContractCallResult<ApiType extends ApiTypes, T> = ApiType extends 'rxjs' ? Observable<T> : Promise<ObsInnerType<Observable<T>>>;
32
20
  export interface ContractCallSend<ApiType extends ApiTypes> {
33
- send (account: string | AccountId | Uint8Array): ContractCallResult<ApiType, ContractCallOutcome>;
21
+ send(account: string | AccountId | Uint8Array): ContractCallResult<ApiType, ContractCallOutcome>;
34
22
  }
35
-
36
23
  export type MapConstructorExec<ApiType extends ApiTypes> = Record<string, BlueprintDeploy<ApiType>>;
37
-
38
24
  export type MapMessageTx<ApiType extends ApiTypes> = Record<string, ContractTx<ApiType>>;
39
-
40
25
  export type MapMessageQuery<ApiType extends ApiTypes> = Record<string, ContractQuery<ApiType>>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,16 @@
1
+ import type { SubmittableResult } from '@pezkuwi/api';
2
+ import type { SubmittableExtrinsic } from '@pezkuwi/api/submittable/types';
3
+ import type { ApiTypes } from '@pezkuwi/api/types';
4
+ import type { WeightV1, WeightV2 } from '@pezkuwi/types/interfaces';
5
+ import type { BN } from '@pezkuwi/util';
6
+ import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.js';
7
+ import type { BlueprintDeploy, ContractGeneric } from './types.js';
8
+ export declare const EMPTY_SALT: Uint8Array;
9
+ export declare function withMeta<T extends {
10
+ meta: AbiMessage;
11
+ }>(meta: AbiMessage, creator: Omit<T, 'meta'>): T;
12
+ export declare function createBluePrintTx<ApiType extends ApiTypes, R extends SubmittableResult>(meta: AbiMessage, fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic<ApiType, R>): BlueprintDeploy<ApiType>;
13
+ export declare function createBluePrintWithId<T>(fn: (constructorOrId: AbiConstructor | string | number, options: BlueprintOptions, params: unknown[]) => T): ContractGeneric<BlueprintOptions, T>;
14
+ export declare function encodeSalt(salt?: Uint8Array | string | null): Uint8Array;
15
+ export declare function convertWeight(weight: WeightV1 | WeightV2 | bigint | string | number | BN): WeightAll;
16
+ export declare function isWeightV2(weight: WeightV1 | WeightV2 | bigint | string | number | BN): weight is WeightV2;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EMPTY_SALT = void 0;
4
+ exports.withMeta = withMeta;
5
+ exports.createBluePrintTx = createBluePrintTx;
6
+ exports.createBluePrintWithId = createBluePrintWithId;
7
+ exports.encodeSalt = encodeSalt;
8
+ exports.convertWeight = convertWeight;
9
+ exports.isWeightV2 = isWeightV2;
10
+ const types_1 = require("@pezkuwi/types");
11
+ const util_1 = require("@pezkuwi/util");
12
+ const util_crypto_1 = require("@pezkuwi/util-crypto");
13
+ exports.EMPTY_SALT = new Uint8Array();
14
+ function withMeta(meta, creator) {
15
+ creator.meta = meta;
16
+ return creator;
17
+ }
18
+ function createBluePrintTx(meta, fn) {
19
+ return withMeta(meta, (options, ...params) => fn(options, params));
20
+ }
21
+ function createBluePrintWithId(fn) {
22
+ return (constructorOrId, options, ...params) => fn(constructorOrId, options, params);
23
+ }
24
+ function encodeSalt(salt = (0, util_crypto_1.randomAsU8a)()) {
25
+ return salt instanceof types_1.Bytes
26
+ ? salt
27
+ : salt?.length
28
+ ? (0, util_1.compactAddLength)((0, util_1.u8aToU8a)(salt))
29
+ : exports.EMPTY_SALT;
30
+ }
31
+ function convertWeight(weight) {
32
+ const [refTime, proofSize] = isWeightV2(weight)
33
+ ? [weight.refTime.toBn(), weight.proofSize.toBn()]
34
+ : [(0, util_1.bnToBn)(weight), undefined];
35
+ return {
36
+ v1Weight: refTime,
37
+ v2Weight: { proofSize, refTime }
38
+ };
39
+ }
40
+ function isWeightV2(weight) {
41
+ return !!weight.proofSize;
42
+ }
@@ -0,0 +1,4 @@
1
+ export { Abi } from './Abi/index.js';
2
+ export { packageInfo } from './packageInfo.js';
3
+ export * from './promise/index.js';
4
+ export * from './rx/index.js';
package/cjs/bundle.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.packageInfo = exports.Abi = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var index_js_1 = require("./Abi/index.js");
6
+ Object.defineProperty(exports, "Abi", { enumerable: true, get: function () { return index_js_1.Abi; } });
7
+ var packageInfo_js_1 = require("./packageInfo.js");
8
+ Object.defineProperty(exports, "packageInfo", { enumerable: true, get: function () { return packageInfo_js_1.packageInfo; } });
9
+ tslib_1.__exportStar(require("./promise/index.js"), exports);
10
+ tslib_1.__exportStar(require("./rx/index.js"), exports);
package/cjs/index.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ require("./packageDetect.js");
5
+ tslib_1.__exportStar(require("./bundle.js"), exports);
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const packageInfo_1 = require("@pezkuwi/api/cjs/packageInfo");
4
+ const packageInfo_2 = require("@pezkuwi/types/cjs/packageInfo");
5
+ const util_1 = require("@pezkuwi/util");
6
+ const packageInfo_js_1 = require("./packageInfo.js");
7
+ (0, util_1.detectPackage)(packageInfo_js_1.packageInfo, null, [packageInfo_1.packageInfo, packageInfo_2.packageInfo]);
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.packageInfo = void 0;
4
+ exports.packageInfo = { name: '@pezkuwi/api-contract', path: typeof __dirname === 'string' ? __dirname : 'auto', type: 'cjs', version: '16.5.4' };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContractPromise = exports.CodePromise = exports.BlueprintPromise = void 0;
4
+ const api_1 = require("@pezkuwi/api");
5
+ const index_js_1 = require("../base/index.js");
6
+ class BlueprintPromise extends index_js_1.Blueprint {
7
+ constructor(api, abi, codeHash) {
8
+ super(api, abi, codeHash, api_1.toPromiseMethod);
9
+ }
10
+ }
11
+ exports.BlueprintPromise = BlueprintPromise;
12
+ class CodePromise extends index_js_1.Code {
13
+ constructor(api, abi, wasm) {
14
+ super(api, abi, wasm, api_1.toPromiseMethod);
15
+ }
16
+ }
17
+ exports.CodePromise = CodePromise;
18
+ class ContractPromise extends index_js_1.Contract {
19
+ constructor(api, abi, address) {
20
+ super(api, abi, address, api_1.toPromiseMethod);
21
+ }
22
+ }
23
+ exports.ContractPromise = ContractPromise;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContractRx = exports.CodeRx = exports.BlueprintRx = void 0;
4
+ const api_1 = require("@pezkuwi/api");
5
+ const index_js_1 = require("../base/index.js");
6
+ class BlueprintRx extends index_js_1.Blueprint {
7
+ constructor(api, abi, codeHash) {
8
+ super(api, abi, codeHash, api_1.toRxMethod);
9
+ }
10
+ }
11
+ exports.BlueprintRx = BlueprintRx;
12
+ class CodeRx extends index_js_1.Code {
13
+ constructor(api, abi, wasm) {
14
+ super(api, abi, wasm, api_1.toRxMethod);
15
+ }
16
+ }
17
+ exports.CodeRx = CodeRx;
18
+ class ContractRx extends index_js_1.Contract {
19
+ constructor(api, abi, address) {
20
+ super(api, abi, address, api_1.toRxMethod);
21
+ }
22
+ }
23
+ exports.ContractRx = ContractRx;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/cjs/types.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/cjs/util.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyOnEvent = applyOnEvent;
4
+ function applyOnEvent(result, types, fn, isRevive) {
5
+ if (result.isInBlock || result.isFinalized) {
6
+ const section = isRevive ? 'revive' : 'contracts';
7
+ const records = result.filterRecords(section, types);
8
+ if (records.length) {
9
+ return fn(records);
10
+ }
11
+ }
12
+ return undefined;
13
+ }
package/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ import './packageDetect.js';
2
+ export * from './bundle.js';
package/index.js ADDED
@@ -0,0 +1,2 @@
1
+ import './packageDetect.js';
2
+ export * from './bundle.js';