@nevermined-io/core-kit 0.0.14 → 0.0.16

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.
@@ -25,8 +25,8 @@ export declare class AssetRegistry extends ContractBase {
25
25
  isTrialPlan?: boolean;
26
26
  txParams?: TxParameters;
27
27
  }): Promise<TransactionReceipt | UserOperationReceipt>;
28
- registerAssetAndPlan({ did, url, priceConfig, creditsConfig, owner, addFees, txParams, }: {
29
- did: string;
28
+ registerAssetAndPlan({ didSeed, url, priceConfig, creditsConfig, owner, addFees, txParams, }: {
29
+ didSeed: string;
30
30
  url: string;
31
31
  priceConfig: PriceConfig;
32
32
  creditsConfig: CreditsConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"AssetRegistry.d.ts","sourceRoot":"","sources":["../../src/contracts/AssetRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssetRegistry.d.ts","sourceRoot":"","sources":["../../src/contracts/AssetRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAa,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAS7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,qBAAa,aAAc,SAAQ,YAAY;WAChB,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;IAS/E,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAMxC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvC,QAAQ,CAAC,EACpB,OAAO,EACP,GAAG,EACH,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE;QACD,OAAO,EAAE,MAAM,CAAA;QACf,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,MAAM,EAAE,CAAA;QACf,KAAK,EAAE,OAAO,GAAG,YAAY,CAAA;QAC7B,QAAQ,CAAC,EAAE,YAAY,CAAA;KACxB,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAIzC,UAAU,CAAC,EACtB,WAAW,EACX,aAAa,EACb,KAAK,EACL,KAAU,EACV,OAAc,EACd,WAAmB,EACnB,QAAQ,GACT,EAAE;QACD,WAAW,EAAE,WAAW,CAAA;QACxB,aAAa,EAAE,aAAa,CAAA;QAC5B,KAAK,EAAE,OAAO,GAAG,YAAY,CAAA;QAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,QAAQ,CAAC,EAAE,YAAY,CAAA;KACxB,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAqBzC,oBAAoB,CAAC,EAChC,OAAO,EACP,GAAG,EACH,WAAW,EACX,aAAa,EACb,KAAK,EACL,OAAc,EACd,QAAQ,GACT,EAAE;QACD,OAAO,EAAE,MAAM,CAAA;QACf,GAAG,EAAE,MAAM,CAAA;QACX,WAAW,EAAE,WAAW,CAAA;QACxB,aAAa,EAAE,aAAa,CAAA;QAC5B,KAAK,EAAE,OAAO,GAAG,YAAY,CAAA;QAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,QAAQ,CAAC,EAAE,YAAY,CAAA;KACxB,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAWzC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,iBAAiB,CAAC,EAC7B,MAAM,EACN,IAAI,GACL,EAAE;QACD,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,IAAI,CAAA;KACZ,GAAG,OAAO,CAAC,MAAM,CAAC;IAYN,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxC,cAAc,CACzB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GAAG,YAAY,EAC7B,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAIxC,mBAAmB,CAC9B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GAAG,YAAY,EAC7B,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAIxC,mBAAmB,CAC9B,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,OAAO,UAAO;;;;;;;;;;;;;;;;;;;;IAwBH,UAAU,CACrB,YAAY,EAAE,WAAW,EACzB,cAAc,EAAE,aAAa,EAC7B,KAAK,EAAE,OAAO,EACd,OAAO,UAAO,EACd,KAAK,SAAK,GACT,OAAO,CAAC,MAAM,CAAC;IAUL,yBAAyB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAOrE,6BAA6B,CACxC,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;CAOjC"}
@@ -36,9 +36,9 @@ export class AssetRegistry extends ContractBase {
36
36
  return this.send('createPlan', owner, [_config.priceConfig, _config.creditsConfig, nonce], txParams);
37
37
  }
38
38
  }
39
- async registerAssetAndPlan({ did, url, priceConfig, creditsConfig, owner, addFees = true, txParams, }) {
39
+ async registerAssetAndPlan({ didSeed, url, priceConfig, creditsConfig, owner, addFees = true, txParams, }) {
40
40
  const _config = await this.planConfigPreFilter(priceConfig, creditsConfig, addFees);
41
- return this.send('registerAssetAndPlan', owner, [didZeroX(did), url, _config.priceConfig, _config.creditsConfig], txParams);
41
+ return this.send('registerAssetAndPlan', owner, [didZeroX(didSeed), url, _config.priceConfig, _config.creditsConfig], txParams);
42
42
  }
43
43
  async getPlan(planId) {
44
44
  const plan = this.contract.read.getPlan([planId]);
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentsApi.d.ts","sourceRoot":"","sources":["../../../src/nevermined/api/PaymentsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAoC,MAAM,MAAM,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,IAAI,EAA8B,MAAM,uBAAuB,CAAA;AAQrF,qBAAa,WAAY,SAAQ,YAAY;IAC3C;;;;OAIG;gBACS,MAAM,EAAE,kBAAkB;IAKzB,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB7E,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAChD,aAAa,EAAE,MAAM,CAAA;QACrB,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC;IAkCW,gBAAgB,CAC3B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,OAAO,EACrB,IAAI,EAAE,OAAO,GAAG,YAAY,GAC3B,OAAO,CAAC,WAAW,CAAC;IA0BV,kBAAkB,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,OAAO,GAAG,YAAY,GAC3B,OAAO,CAAC,WAAW,CAAC;CAmFxB"}
1
+ {"version":3,"file":"PaymentsApi.d.ts","sourceRoot":"","sources":["../../../src/nevermined/api/PaymentsApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAoC,MAAM,MAAM,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,IAAI,EAA8B,MAAM,uBAAuB,CAAA;AAQrF,qBAAa,WAAY,SAAQ,YAAY;IAC3C;;;;OAIG;gBACS,MAAM,EAAE,kBAAkB;IAKzB,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB7E,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAChD,aAAa,EAAE,MAAM,CAAA;QACrB,WAAW,EAAE,MAAM,CAAA;QACnB,cAAc,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC;IAkCW,gBAAgB,CAC3B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,OAAO,EACrB,IAAI,EAAE,OAAO,GAAG,YAAY,GAC3B,OAAO,CAAC,WAAW,CAAC;IA0BV,kBAAkB,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,OAAO,GAAG,YAAY,GAC3B,OAAO,CAAC,WAAW,CAAC;CAsFxB"}
@@ -101,6 +101,10 @@ export class PaymentsApi extends Instantiable {
101
101
  else {
102
102
  txHash = await this.nevermined.contracts.fixedPaymentTemplate.createAgreement(planId, from);
103
103
  }
104
+ if (!txHash) {
105
+ this.logger.error('Error in PaymentsApi order method: txHash not defined');
106
+ throw new Error('txHash not defined');
107
+ }
104
108
  const txReceipt = await this.nevermined.contracts.assetRegistry.getTransactionReceipt(txHash);
105
109
  return {
106
110
  txHash: txReceipt.transactionHash,
@@ -1,5 +1,11 @@
1
1
  import { SearchQuery } from '@nvm-monorepo/commons';
2
2
  import { URL } from 'whatwg-url';
3
+ interface ECIES {
4
+ iv: Buffer;
5
+ ephemPublicKey: Buffer;
6
+ ciphertext: Buffer;
7
+ mac: Buffer;
8
+ }
3
9
  export declare const buildQuery: (url: string, query?: SearchQuery) => URL;
4
10
  export declare const getCircularReplacer: () => (_key: string, value: unknown) => unknown;
5
11
  export declare const jsonReplacer: (_key: string, value: unknown) => unknown;
@@ -10,12 +16,8 @@ export declare function _sleep(ms: number): Promise<unknown>;
10
16
  export declare function urlSafeBase64Encode(input: Uint8Array): string;
11
17
  export declare function urlSafeBase64Decode(input: string): Uint8Array;
12
18
  export declare function encryptMessage(message: string, receiverPublicKey: string): Promise<string>;
19
+ export declare function serializeECIES(ecies: ECIES): string;
20
+ export declare function deserializeECIES(serialized: string): ECIES;
13
21
  export declare function decryptMessage(encryptedMessage: string, privateKey: string | any): Promise<string>;
14
- export declare function serializeECIES(ecies: any): string;
15
- export declare function deserializeECIES(serialized: any): {
16
- iv: Buffer<ArrayBuffer>;
17
- ephemPublicKey: Buffer<ArrayBuffer>;
18
- ciphertext: Buffer<ArrayBuffer>;
19
- mac: Buffer<ArrayBuffer>;
20
- };
22
+ export {};
21
23
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAInD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAGhC,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,QAAQ,WAAW,QAY1D,CAAA;AAED,eAAO,MAAM,mBAAmB,SAEtB,MAAM,MAAM,EAAE,OAAO,OAAO,YASrC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,OAAO,OAAO,YAGxD,CAAA;AAED,wBAAgB,eAAe,CAAC,IAAI,SAAM,GAAG,MAAM,CAWlD;AAED,wBAAgB,UAAU,CAAC,MAAM,SAAK,UAMrC;AAED,wBAAgB,eAAe,IAAI,KAAK,MAAM,EAAE,CAE/C;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,oBAEhC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAO7D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAY7D;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,mBAK9E;AAED,wBAAsB,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,mBAOtF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,UASxC;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,GAAG;;;;;EAS/C"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAInD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAIhC,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,QAAQ,WAAW,QAY1D,CAAA;AAED,eAAO,MAAM,mBAAmB,SAEtB,MAAM,MAAM,EAAE,OAAO,OAAO,YASrC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,OAAO,OAAO,YAGxD,CAAA;AAED,wBAAgB,eAAe,CAAC,IAAI,SAAM,GAAG,MAAM,CAWlD;AAED,wBAAgB,UAAU,CAAC,MAAM,SAAK,UAMrC;AAED,wBAAgB,eAAe,IAAI,KAAK,MAAM,EAAE,CAE/C;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,oBAEhC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAO7D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAY7D;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,mBAmB9E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,UAoB1C;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAyB1D;AAED,wBAAsB,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,mBAqBtF"}
@@ -1,4 +1,4 @@
1
- import { decrypt, encrypt } from 'eccrypto';
1
+ import { decrypt, encrypt } from 'eciesjs';
2
2
  import { v4 } from 'uuid';
3
3
  import { keccak256, toBytes } from 'viem';
4
4
  import { URL } from 'whatwg-url';
@@ -76,18 +76,34 @@ export function urlSafeBase64Decode(input) {
76
76
  export async function encryptMessage(message, receiverPublicKey) {
77
77
  const publicKeyBuffer = Buffer.from(noZeroX(receiverPublicKey), 'hex');
78
78
  const messageBuffer = Buffer.from(message);
79
- const ecies = await encrypt(publicKeyBuffer, messageBuffer);
80
- return serializeECIES(ecies);
81
- }
82
- export async function decryptMessage(encryptedMessage, privateKey) {
83
- const ecies = deserializeECIES(encryptedMessage);
84
- const pk = typeof privateKey === 'string' ? noZeroX(privateKey) : privateKey;
85
- const decrypted = await decrypt(Buffer.from(pk, 'hex'), ecies);
86
- // Revisit this code in case there is a problem decrypting the message
87
- const decryptedStr = typeof decrypted === 'string' ? decrypted : decrypted.toString('hex');
88
- return Buffer.from(decryptedStr, 'hex').toString();
79
+ try {
80
+ const ecies = await encrypt(publicKeyBuffer, messageBuffer);
81
+ // Handle both cases: when encrypt returns a Buffer or an ECIES object
82
+ if (Buffer.isBuffer(ecies)) {
83
+ // If it returns a Buffer, we need to handle it differently
84
+ // This might be the case with some versions of eciesjs
85
+ return ecies.toString('base64');
86
+ }
87
+ else {
88
+ // If it returns an ECIES object, serialize it
89
+ return serializeECIES(ecies);
90
+ }
91
+ }
92
+ catch (error) {
93
+ throw new Error(`Encryption failed: ${error}`);
94
+ }
89
95
  }
90
96
  export function serializeECIES(ecies) {
97
+ // Validate that all required properties exist
98
+ if (!ecies || typeof ecies !== 'object') {
99
+ throw new Error('Invalid ECIES object: must be a valid object');
100
+ }
101
+ const requiredProps = ['iv', 'ephemPublicKey', 'ciphertext', 'mac'];
102
+ for (const prop of requiredProps) {
103
+ if (!ecies[prop]) {
104
+ throw new Error(`Invalid ECIES object: missing required property '${prop}'`);
105
+ }
106
+ }
91
107
  const serialized = JSON.stringify({
92
108
  iv: Buffer.from(ecies.iv).toString('base64'),
93
109
  ephemPublicKey: Buffer.from(ecies.ephemPublicKey).toString('base64'),
@@ -95,11 +111,24 @@ export function serializeECIES(ecies) {
95
111
  mac: Buffer.from(ecies.mac).toString('base64'),
96
112
  });
97
113
  return serialized;
98
- //return Buffer.from(serialized).toString('binary')
99
114
  }
100
115
  export function deserializeECIES(serialized) {
101
- // const decoded = Buffer.from(serialized, 'binary').toString()
102
- const _obj = JSON.parse(serialized);
116
+ if (!serialized || typeof serialized !== 'string') {
117
+ throw new Error('Invalid serialized ECIES: must be a valid string');
118
+ }
119
+ let _obj;
120
+ try {
121
+ _obj = JSON.parse(serialized);
122
+ }
123
+ catch (error) {
124
+ throw new Error('Invalid serialized ECIES: not a valid JSON string');
125
+ }
126
+ const requiredProps = ['iv', 'ephemPublicKey', 'ciphertext', 'mac'];
127
+ for (const prop of requiredProps) {
128
+ if (!_obj[prop]) {
129
+ throw new Error(`Invalid serialized ECIES: missing required property '${prop}'`);
130
+ }
131
+ }
103
132
  return {
104
133
  iv: Buffer.from(_obj.iv, 'base64'),
105
134
  ephemPublicKey: Buffer.from(_obj.ephemPublicKey, 'base64'),
@@ -107,3 +136,26 @@ export function deserializeECIES(serialized) {
107
136
  mac: Buffer.from(_obj.mac, 'base64'),
108
137
  };
109
138
  }
139
+ export async function decryptMessage(encryptedMessage, privateKey) {
140
+ const pk = typeof privateKey === 'string' ? noZeroX(privateKey) : privateKey;
141
+ const privateKeyBuffer = Buffer.from(pk, 'hex');
142
+ // Try to parse as JSON first (ECIES object)
143
+ try {
144
+ const ecies = deserializeECIES(encryptedMessage);
145
+ // For eciesjs, we need to serialize the ECIES object back to a buffer
146
+ const eciesBuffer = Buffer.concat([ecies.iv, ecies.ephemPublicKey, ecies.ciphertext, ecies.mac]);
147
+ const decrypted = await decrypt(privateKeyBuffer, eciesBuffer);
148
+ return decrypted.toString();
149
+ }
150
+ catch (error) {
151
+ // If JSON parsing fails, try as base64 Buffer
152
+ try {
153
+ const encryptedBuffer = Buffer.from(encryptedMessage, 'base64');
154
+ const decrypted = await decrypt(privateKeyBuffer, encryptedBuffer);
155
+ return decrypted.toString();
156
+ }
157
+ catch (secondError) {
158
+ throw new Error(`Failed to decrypt message: ${secondError}`);
159
+ }
160
+ }
161
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nevermined-io/core-kit",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -26,6 +26,22 @@
26
26
  ],
27
27
  "nx": {
28
28
  "targets": {
29
+ "e2e": {
30
+ "executor": "nx:run-commands",
31
+ "options": {
32
+ "command": "NODE_OPTIONS='--loader ts-node/esm' mocha --config ./tests/integration/.mocharc.json",
33
+ "cwd": "packages/core-kit"
34
+ },
35
+ "dependsOn": [
36
+ "^build",
37
+ {
38
+ "target": "build",
39
+ "projects": [
40
+ "@nvm-monorepo/commons"
41
+ ]
42
+ }
43
+ ]
44
+ },
29
45
  "e2e:external": {
30
46
  "executor": "nx:run-commands",
31
47
  "options": {