payid 0.4.6 → 0.4.8

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.
@@ -8,7 +8,7 @@ import {
8
8
  evaluate,
9
9
  generateDecisionProof,
10
10
  resolveRule
11
- } from "./chunk-ANG3SJGI.js";
11
+ } from "./chunk-TIK4HPDU.js";
12
12
  import {
13
13
  __export
14
14
  } from "./chunk-R5U7XKVJ.js";
@@ -20,6 +20,7 @@ __export(client_exports, {
20
20
  });
21
21
 
22
22
  // src/core/client/client.ts
23
+ import { loadWasm } from "payid-rule-engine";
23
24
  import "ethers";
24
25
  function isRuleSource(rule) {
25
26
  return typeof rule === "object" && rule !== null && "uri" in rule;
@@ -28,6 +29,22 @@ var PayIDClient = class {
28
29
  constructor(debugTrace, wasm) {
29
30
  this.debugTrace = debugTrace;
30
31
  this.wasm = wasm;
32
+ this._ready = loadWasm(this.wasm).then(() => {
33
+ }).catch(() => {
34
+ });
35
+ }
36
+ // Preload promise — WASM mulai di-fetch saat createPayID() dipanggil,
37
+ // bukan saat evaluate() pertama. Hasilnya di-cache di wasm.ts.
38
+ _ready;
39
+ /**
40
+ * Tunggu sampai WASM siap. Opsional — evaluate() akan menunggu sendiri,
41
+ * tapi bisa di-await eksplisit untuk warmup:
42
+ *
43
+ * const client = createPayID();
44
+ * await client.ready(); // WASM pasti sudah loaded setelah ini
45
+ */
46
+ async ready() {
47
+ return this._ready;
31
48
  }
32
49
  async evaluate(context, rule) {
33
50
  const config = isRuleSource(rule) ? (await resolveRule(rule)).config : rule;
@@ -2,7 +2,7 @@ import {
2
2
  evaluate,
3
3
  generateDecisionProof,
4
4
  resolveRule
5
- } from "./chunk-ANG3SJGI.js";
5
+ } from "./chunk-TIK4HPDU.js";
6
6
  import {
7
7
  __export
8
8
  } from "./chunk-R5U7XKVJ.js";
@@ -146,25 +146,9 @@ async function evaluate(context, ruleConfig, options, wasmBinary) {
146
146
  }
147
147
  let result;
148
148
  try {
149
- const preparedContext = options?.trustedIssuers ? preprocessContextV2(
150
- context,
151
- ruleConfig,
152
- options.trustedIssuers
153
- ) : context;
149
+ const preparedContext = options?.trustedIssuers ? preprocessContextV2(context, ruleConfig, options.trustedIssuers) : context;
154
150
  const normalized = normalizeContext(preparedContext);
155
- let wasmForEngine;
156
- if (wasmBinary == null) {
157
- wasmForEngine = void 0;
158
- } else if (typeof Buffer !== "undefined") {
159
- wasmForEngine = Buffer.isBuffer(wasmBinary) ? wasmBinary : Buffer.from(wasmBinary);
160
- } else {
161
- wasmForEngine = wasmBinary;
162
- }
163
- result = await executeRule(
164
- normalized,
165
- ruleConfig,
166
- wasmForEngine
167
- );
151
+ result = await executeRule(normalized, ruleConfig, wasmBinary);
168
152
  } catch (err) {
169
153
  return {
170
154
  decision: "REJECT",
@@ -1,4 +1,4 @@
1
- export { c as createPayID } from '../../index-2O3usHUn.js';
1
+ export { c as createPayID } from '../../index-BUTI_SDh.js';
2
2
  import 'payid-types';
3
3
  import 'ethers';
4
4
  import '../../types-B8pJQdMQ.js';
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createPayID
3
- } from "../../chunk-GB3FSF7K.js";
3
+ } from "../../chunk-E262BLMV.js";
4
4
  import "../../chunk-GG34PNTF.js";
5
5
  import "../../chunk-MXKZJKXE.js";
6
6
  import "../../chunk-6VPSJFO4.js";
7
- import "../../chunk-ANG3SJGI.js";
7
+ import "../../chunk-TIK4HPDU.js";
8
8
  import "../../chunk-5ZEKI5Y2.js";
9
9
  import "../../chunk-R5U7XKVJ.js";
10
10
  export {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createPayID
3
- } from "../../chunk-YUAYDVGX.js";
4
- import "../../chunk-ANG3SJGI.js";
3
+ } from "../../chunk-K2FSXHVA.js";
4
+ import "../../chunk-TIK4HPDU.js";
5
5
  import "../../chunk-5ZEKI5Y2.js";
6
6
  import "../../chunk-R5U7XKVJ.js";
7
7
  export {
@@ -3,41 +3,19 @@ import { ethers } from 'ethers';
3
3
  import { R as RuleSource, D as DecisionProof } from './types-B8pJQdMQ.js';
4
4
  import { P as PayIDSessionPolicyPayloadV1 } from './types-BmMf7udp.js';
5
5
 
6
- /**
7
- * @class PayIDClient
8
- * @description Client-side PayID engine.
9
- *
10
- * Fully serverless — aman dipakai di browser, mobile, edge.
11
- * Tidak butuh issuer wallet, tidak butuh server.
12
- *
13
- * Untuk attestation, gunakan EAS UIDs yang di-fetch via `eas.EASClient`.
14
- *
15
- * @example
16
- * ```ts
17
- * const client = new PayIDClient(wasmBinary)
18
- *
19
- * // 1. Evaluate rule
20
- * const result = await client.evaluate(context, ruleConfig)
21
- *
22
- * // 2. Evaluate + generate proof (payer sign sendiri)
23
- * const { result, proof } = await client.evaluateAndProve({
24
- * context,
25
- * authorityRule: ruleConfig,
26
- * payId: "pay.id/merchant",
27
- * payer: await signer.getAddress(),
28
- * receiver: "0xRECEIVER",
29
- * asset: USDT_ADDRESS,
30
- * amount: parseUnits("100", 6),
31
- * signer,
32
- * verifyingContract: PAYID_VERIFIER_ADDRESS,
33
- * ruleAuthority: RULE_AUTHORITY_ADDRESS,
34
- * })
35
- * ```
36
- */
37
6
  declare class PayIDClient {
38
7
  private readonly debugTrace?;
39
8
  private readonly wasm?;
9
+ private readonly _ready;
40
10
  constructor(debugTrace?: boolean | undefined, wasm?: Uint8Array | undefined);
11
+ /**
12
+ * Tunggu sampai WASM siap. Opsional — evaluate() akan menunggu sendiri,
13
+ * tapi bisa di-await eksplisit untuk warmup:
14
+ *
15
+ * const client = createPayID();
16
+ * await client.ready(); // WASM pasti sudah loaded setelah ini
17
+ */
18
+ ready(): Promise<void>;
41
19
  evaluate(context: RuleContext, rule: RuleConfig | RuleSource): Promise<RuleResult>;
42
20
  evaluateAndProve(params: {
43
21
  context: RuleContext;
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { i as sessionPolicy } from './index-BQQnMG2H.js';
7
7
  export { i as rule } from './index-DerQdZmf.js';
8
8
  export { i as issuer } from './index-2JCvey4-.js';
9
9
  export { i as context } from './index-BEvnPzzt.js';
10
- export { i as client } from './index-2O3usHUn.js';
10
+ export { i as client } from './index-BUTI_SDh.js';
11
11
  import './types-BmMf7udp.js';
12
12
 
13
13
  interface PayIDClient {
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-Y75PSD7U.js";
14
14
  import {
15
15
  client_exports
16
- } from "./chunk-GB3FSF7K.js";
16
+ } from "./chunk-E262BLMV.js";
17
17
  import "./chunk-GG34PNTF.js";
18
18
  import "./chunk-MXKZJKXE.js";
19
19
  import "./chunk-6VPSJFO4.js";
@@ -22,12 +22,12 @@ import {
22
22
  buildPayETHCallData,
23
23
  buildUserOperation,
24
24
  server_exports
25
- } from "./chunk-YUAYDVGX.js";
25
+ } from "./chunk-K2FSXHVA.js";
26
26
  import {
27
27
  evaluate,
28
28
  generateDecisionProof,
29
29
  resolveRule
30
- } from "./chunk-ANG3SJGI.js";
30
+ } from "./chunk-TIK4HPDU.js";
31
31
  import "./chunk-5ZEKI5Y2.js";
32
32
  import {
33
33
  __export
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payid",
3
- "version": "0.4.6",
3
+ "version": "0.4.8",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "ethers": "^6.16.0",
40
- "payid-rule-engine": "^0.2.6",
40
+ "payid-rule-engine": "^0.2.9",
41
41
  "payid-types": "^0.1.9"
42
42
  },
43
43
  "files": [